@kalyx/core
v1.4.0
Published
Kalyx core — platform-agnostic date logic, IANA timezone helpers, and the DateAdapter contract used by @kalyx/react
Downloads
1,003
Maintainers
Readme
@kalyx/core
Platform-independent date logic powering the seven Kalyx pickers — single date, range, time, date+time, month, year, week. Types, adapters, and UTC-safe utilities.
Most users should install @kalyx/react directly — it re-exports what you need. Install @kalyx/core only if you're building your own picker layer or a custom platform adapter.
📚 Full docs: kalyx-docs-site.vercel.app/docs/api/core
Install
pnpm add @kalyx/coreWhat's inside
Types
import type {
ISODateString,
DisabledRule,
DateRange,
CalendarDay,
CalendarGrid,
WeekStartsOn,
CalendarOptions,
DateAdapter,
TimeValue,
} from '@kalyx/core';Adapter
@kalyx/core defines the DateAdapter interface but ships no implementation — the package is date-library-agnostic. Install a separate adapter package:
import { DateFnsAdapter } from '@kalyx/adapter-date-fns';
// UTC-safe adapter built on date-fns v4.Bring your own adapter by implementing the DateAdapter interface from @kalyx/core against any date library (dayjs, luxon, Temporal, etc.).
Calendar utilities
import { getCalendarDays, isDateDisabled, minDate, maxDate } from '@kalyx/core';Date helpers
import { normalizeISO, parseInputValue } from '@kalyx/core';Time helpers
import {
setTime, getTime,
parseTimeString, formatTimeString, formatTimeFromISO,
to12Hour, to24Hour,
generateHours, generateMinutes,
isSameTime,
} from '@kalyx/core';Locale helpers
import {
getMonthName, formatMonthYear,
getWeekdayNames, formatFullDate,
} from '@kalyx/core';Timezone helpers
DST-aware timezone utilities used by every picker when displayTimezone is set.
import {
formatInTimezone,
startOfDayInTimezone,
isSameDayInTimezone,
todayInTimezone,
getTimezoneOffsetMinutes,
civilMidnightFromUtcDay,
getTimeInTimezone,
setTimeInTimezone,
} from '@kalyx/core';Accessibility labels
Default ARIA labels (English). Override via the labels prop on any picker Root.
import {
DEFAULT_DATEPICKER_LABELS,
DEFAULT_RANGEPICKER_LABELS,
DEFAULT_TIMEPICKER_LABELS,
DEFAULT_DATETIMEPICKER_LABELS,
} from '@kalyx/core';Principles
- All dates are ISO 8601 UTC strings — never
Dateobjects. - UTC-only arithmetic — uses
getUTC*methods, never local-timezone variants. - Adapter abstraction — swap date engines by implementing
DateAdapter. - Pure functions — zero side effects, fully testable.
