@kalyx/react 0.3.0 → 1.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +152 -0
- package/dist/index.cjs +497 -72
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +287 -6
- package/dist/index.d.ts +287 -6
- package/dist/index.js +496 -74
- package/dist/index.js.map +1 -1
- package/package.json +12 -4
package/dist/index.d.ts
CHANGED
|
@@ -31,6 +31,13 @@ interface DatePickerRootProps {
|
|
|
31
31
|
defaultValue?: ISODateString;
|
|
32
32
|
/** Callback fired when the date changes */
|
|
33
33
|
onChange?: (value: ISODateString | null) => void;
|
|
34
|
+
/** Callback fired when the popover open state changes */
|
|
35
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Callback fired when the calendar view navigates to a different month.
|
|
38
|
+
* The value is the ISO string of the first day of the newly-visible month (UTC).
|
|
39
|
+
*/
|
|
40
|
+
onCalendarNavigate?: (viewMonth: ISODateString) => void;
|
|
34
41
|
/** Disabled rules */
|
|
35
42
|
disabled?: DisabledRule[] | boolean;
|
|
36
43
|
/** Read-only */
|
|
@@ -41,6 +48,12 @@ interface DatePickerRootProps {
|
|
|
41
48
|
displayFormat?: string;
|
|
42
49
|
/** BCP 47 locale (e.g., "en-US", "ko-KR", "ja-JP") */
|
|
43
50
|
locale?: string;
|
|
51
|
+
/**
|
|
52
|
+
* IANA timezone used for display and selection semantics (e.g., "Asia/Seoul").
|
|
53
|
+
* When set, the Input formats the value in this zone, Calendar highlights the matching civil
|
|
54
|
+
* day, and selecting a date emits the civil midnight of that day (UTC-ISO form).
|
|
55
|
+
*/
|
|
56
|
+
displayTimezone?: string;
|
|
44
57
|
/** Date adapter */
|
|
45
58
|
adapter?: DateAdapter;
|
|
46
59
|
/** Override ARIA labels (defaults to English) */
|
|
@@ -48,7 +61,7 @@ interface DatePickerRootProps {
|
|
|
48
61
|
/** Child components */
|
|
49
62
|
children: ReactNode;
|
|
50
63
|
}
|
|
51
|
-
declare function DatePickerRoot({ value: controlledValue, defaultValue, onChange, disabled, readOnly, weekStartsOn, displayFormat, locale, adapter, labels: labelsProp, children, }: DatePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
64
|
+
declare function DatePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter, labels: labelsProp, children, }: DatePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
52
65
|
|
|
53
66
|
interface DatePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
54
67
|
children?: ReactNode;
|
|
@@ -138,6 +151,50 @@ interface DatePickerYearGridProps extends Omit<HTMLAttributes<HTMLDivElement>, '
|
|
|
138
151
|
*/
|
|
139
152
|
declare function DatePickerYearGrid({ classNames, onSelect, ...props }: DatePickerYearGridProps): react_jsx_runtime.JSX.Element;
|
|
140
153
|
|
|
154
|
+
/** Predefined single-date preset keys. Pass a custom ISO via `date` for anything else. */
|
|
155
|
+
type DatePickerPresetKey = 'today' | 'tomorrow' | 'yesterday' | 'startOfMonth' | 'endOfMonth' | 'startOfYear';
|
|
156
|
+
interface DatePickerPresetsClassNames {
|
|
157
|
+
root?: string;
|
|
158
|
+
preset?: string;
|
|
159
|
+
presetActive?: string;
|
|
160
|
+
}
|
|
161
|
+
interface DatePickerPresetsProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
162
|
+
classNames?: DatePickerPresetsClassNames;
|
|
163
|
+
children?: ReactNode;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* DatePicker.Presets — Container wrapping preset buttons.
|
|
167
|
+
*
|
|
168
|
+
* @example
|
|
169
|
+
* ```tsx
|
|
170
|
+
* <DatePicker.Presets>
|
|
171
|
+
* <DatePicker.Preset value="today">Today</DatePicker.Preset>
|
|
172
|
+
* <DatePicker.Preset value="tomorrow">Tomorrow</DatePicker.Preset>
|
|
173
|
+
* </DatePicker.Presets>
|
|
174
|
+
* ```
|
|
175
|
+
*/
|
|
176
|
+
declare function DatePickerPresets({ classNames, children, ...props }: DatePickerPresetsProps): react_jsx_runtime.JSX.Element;
|
|
177
|
+
interface DatePickerPresetProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'value'> {
|
|
178
|
+
/** Predefined preset key; omit when passing `date` directly */
|
|
179
|
+
value?: DatePickerPresetKey;
|
|
180
|
+
/** Pass an ISO date directly (alternative to `value`) */
|
|
181
|
+
date?: ISODateString;
|
|
182
|
+
children: ReactNode;
|
|
183
|
+
className?: string;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* DatePicker.Preset — One-click preset button to select a specific date.
|
|
187
|
+
*
|
|
188
|
+
* Pass either `value` (a preset key) or `date` (a direct ISO string).
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```tsx
|
|
192
|
+
* <DatePicker.Preset value="today">Today</DatePicker.Preset>
|
|
193
|
+
* <DatePicker.Preset date="2026-01-01T00:00:00.000Z">New Year's</DatePicker.Preset>
|
|
194
|
+
* ```
|
|
195
|
+
*/
|
|
196
|
+
declare function DatePickerPreset({ value: presetKey, date: directDate, children, onClick, ...props }: DatePickerPresetProps): react_jsx_runtime.JSX.Element;
|
|
197
|
+
|
|
141
198
|
interface DatePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
142
199
|
/** Date display format (defaults to parent's displayFormat) */
|
|
143
200
|
format?: string;
|
|
@@ -180,6 +237,8 @@ declare const DatePicker: typeof DatePickerRoot & {
|
|
|
180
237
|
Calendar: typeof DatePickerCalendar;
|
|
181
238
|
MonthGrid: typeof DatePickerMonthGrid;
|
|
182
239
|
YearGrid: typeof DatePickerYearGrid;
|
|
240
|
+
Presets: typeof DatePickerPresets;
|
|
241
|
+
Preset: typeof DatePickerPreset;
|
|
183
242
|
};
|
|
184
243
|
|
|
185
244
|
/**
|
|
@@ -203,6 +262,13 @@ interface RangePickerRootProps {
|
|
|
203
262
|
defaultValue?: DateRange;
|
|
204
263
|
/** Callback fired when the range changes */
|
|
205
264
|
onChange?: (range: DateRange) => void;
|
|
265
|
+
/** Callback fired when the popover open state changes */
|
|
266
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
267
|
+
/**
|
|
268
|
+
* Callback fired when the calendar view navigates to a different month.
|
|
269
|
+
* The value is the ISO string of the first day of the newly-visible month (UTC).
|
|
270
|
+
*/
|
|
271
|
+
onCalendarNavigate?: (viewMonth: ISODateString) => void;
|
|
206
272
|
/** Disabled rules */
|
|
207
273
|
disabled?: DisabledRule[] | boolean;
|
|
208
274
|
/** Read-only */
|
|
@@ -213,6 +279,12 @@ interface RangePickerRootProps {
|
|
|
213
279
|
displayFormat?: string;
|
|
214
280
|
/** BCP 47 locale */
|
|
215
281
|
locale?: string;
|
|
282
|
+
/**
|
|
283
|
+
* IANA timezone for display (e.g., "Asia/Seoul"). When set, inputs format in this zone,
|
|
284
|
+
* calendar highlighting uses civil-day comparison in this zone, and selected start/end are
|
|
285
|
+
* emitted as civil midnight of the clicked day in this zone (UTC-ISO form).
|
|
286
|
+
*/
|
|
287
|
+
displayTimezone?: string;
|
|
216
288
|
/** Date adapter */
|
|
217
289
|
adapter?: DateAdapter;
|
|
218
290
|
/** Override ARIA labels (defaults to English) */
|
|
@@ -220,7 +292,7 @@ interface RangePickerRootProps {
|
|
|
220
292
|
/** Child components */
|
|
221
293
|
children: ReactNode;
|
|
222
294
|
}
|
|
223
|
-
declare function RangePickerRoot({ value: controlledValue, defaultValue, onChange, disabled, readOnly, weekStartsOn, displayFormat, locale, adapter, labels: labelsProp, children, }: RangePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
295
|
+
declare function RangePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter, labels: labelsProp, children, }: RangePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
224
296
|
|
|
225
297
|
interface RangePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
226
298
|
children?: ReactNode;
|
|
@@ -245,10 +317,18 @@ interface RangePickerCalendarClassNames {
|
|
|
245
317
|
dayInRange?: string;
|
|
246
318
|
weekdayHeader?: string;
|
|
247
319
|
}
|
|
320
|
+
/**
|
|
321
|
+
* Selection mode for the calendar grid.
|
|
322
|
+
* - `'range'` (default): RangePicker behavior — two clicks (start, end) commit a custom range.
|
|
323
|
+
* - `'week'`: WeekPicker behavior — a single click commits the entire week containing the clicked day.
|
|
324
|
+
*/
|
|
325
|
+
type RangePickerCalendarSelectionMode = 'range' | 'week';
|
|
248
326
|
interface RangePickerCalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
249
327
|
classNames?: RangePickerCalendarClassNames;
|
|
328
|
+
/** @default 'range' */
|
|
329
|
+
selectionMode?: RangePickerCalendarSelectionMode;
|
|
250
330
|
}
|
|
251
|
-
declare function RangePickerCalendar({ classNames, ...props }: RangePickerCalendarProps): react_jsx_runtime.JSX.Element;
|
|
331
|
+
declare function RangePickerCalendar({ classNames, selectionMode, ...props }: RangePickerCalendarProps): react_jsx_runtime.JSX.Element;
|
|
252
332
|
|
|
253
333
|
/** Predefined preset keys. Custom ranges are also supported. */
|
|
254
334
|
type PresetKey = 'today' | 'yesterday' | 'last7days' | 'last30days' | 'thisWeek' | 'lastWeek' | 'thisMonth' | 'lastMonth' | 'thisYear';
|
|
@@ -371,6 +451,11 @@ interface TimePickerRootProps {
|
|
|
371
451
|
step?: number;
|
|
372
452
|
/** Whether to display seconds */
|
|
373
453
|
withSeconds?: boolean;
|
|
454
|
+
/**
|
|
455
|
+
* IANA timezone used to interpret time. When set, the hour/minute controls read and write
|
|
456
|
+
* the time as observed in this zone.
|
|
457
|
+
*/
|
|
458
|
+
displayTimezone?: string;
|
|
374
459
|
/** Whether entire picker is disabled */
|
|
375
460
|
disabled?: boolean;
|
|
376
461
|
/** Read-only */
|
|
@@ -380,7 +465,7 @@ interface TimePickerRootProps {
|
|
|
380
465
|
/** Child components */
|
|
381
466
|
children: ReactNode;
|
|
382
467
|
}
|
|
383
|
-
declare function TimePickerRoot({ value: controlledValue, defaultValue, onChange, format, step, withSeconds, disabled, readOnly, labels: labelsProp, children, }: TimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
468
|
+
declare function TimePickerRoot({ value: controlledValue, defaultValue, onChange, format, step, withSeconds, displayTimezone, disabled, readOnly, labels: labelsProp, children, }: TimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
384
469
|
|
|
385
470
|
interface TimePickerHourListClassNames {
|
|
386
471
|
root?: string;
|
|
@@ -475,6 +560,13 @@ interface DateTimePickerRootProps {
|
|
|
475
560
|
defaultValue?: ISODateString;
|
|
476
561
|
/** Callback fired when the datetime changes */
|
|
477
562
|
onChange?: (value: ISODateString | null) => void;
|
|
563
|
+
/** Callback fired when the popover open state changes */
|
|
564
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
565
|
+
/**
|
|
566
|
+
* Callback fired when the calendar view navigates to a different month.
|
|
567
|
+
* The value is the ISO string of the first day of the newly-visible month (UTC).
|
|
568
|
+
*/
|
|
569
|
+
onCalendarNavigate?: (viewMonth: ISODateString) => void;
|
|
478
570
|
/** 12-hour or 24-hour mode */
|
|
479
571
|
format?: TimePickerFormat;
|
|
480
572
|
/** Minute step (e.g., 1, 5, 15, 30) */
|
|
@@ -489,6 +581,12 @@ interface DateTimePickerRootProps {
|
|
|
489
581
|
displayFormat?: string;
|
|
490
582
|
/** BCP 47 locale */
|
|
491
583
|
locale?: string;
|
|
584
|
+
/**
|
|
585
|
+
* IANA timezone used for display (e.g., "Asia/Seoul"). When set, Calendar highlights match
|
|
586
|
+
* civil days in this zone, TimePicker reads/writes the time in this zone, and the Input
|
|
587
|
+
* formats the combined date+time in this zone.
|
|
588
|
+
*/
|
|
589
|
+
displayTimezone?: string;
|
|
492
590
|
/** Date adapter */
|
|
493
591
|
adapter?: DateAdapter;
|
|
494
592
|
/** Override ARIA labels (defaults to English) */
|
|
@@ -508,7 +606,7 @@ interface DateTimePickerRootProps {
|
|
|
508
606
|
* - Changing time in TimePicker -> changes only the time, preserves the date
|
|
509
607
|
* - Escape / outside click -> close the popover (commit)
|
|
510
608
|
*/
|
|
511
|
-
declare function DateTimePickerRoot({ value: controlledValue, defaultValue, onChange, format, step, disabled, readOnly, weekStartsOn, displayFormat, locale, adapter, labels: labelsProp, children, }: DateTimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
609
|
+
declare function DateTimePickerRoot({ value: controlledValue, defaultValue, onChange, onOpenChange, onCalendarNavigate, format, step, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, adapter, labels: labelsProp, children, }: DateTimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
512
610
|
|
|
513
611
|
interface DateTimePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
514
612
|
}
|
|
@@ -556,6 +654,183 @@ declare const DateTimePicker: typeof DateTimePickerRoot & {
|
|
|
556
654
|
AmPmToggle: typeof TimePickerAmPmToggle;
|
|
557
655
|
};
|
|
558
656
|
|
|
657
|
+
/** Props for MonthPicker Root — identical to DatePicker Root, but `displayFormat` defaults to `"yyyy-MM"`. */
|
|
658
|
+
type MonthPickerRootProps = DatePickerRootProps;
|
|
659
|
+
/**
|
|
660
|
+
* MonthPicker.Root — thin wrapper over DatePicker.Root that defaults `displayFormat` to `"yyyy-MM"`.
|
|
661
|
+
* All other behavior (controlled/uncontrolled, displayTimezone, disabled rules) is inherited.
|
|
662
|
+
*/
|
|
663
|
+
declare function MonthPickerRoot(props: MonthPickerRootProps): react_jsx_runtime.JSX.Element;
|
|
664
|
+
|
|
665
|
+
interface MonthPickerGridClassNames {
|
|
666
|
+
root?: string;
|
|
667
|
+
header?: string;
|
|
668
|
+
title?: string;
|
|
669
|
+
navButton?: string;
|
|
670
|
+
grid?: string;
|
|
671
|
+
gridRow?: string;
|
|
672
|
+
month?: string;
|
|
673
|
+
monthSelected?: string;
|
|
674
|
+
monthCurrent?: string;
|
|
675
|
+
monthDisabled?: string;
|
|
676
|
+
}
|
|
677
|
+
interface MonthPickerGridProps extends Omit<HTMLAttributes<HTMLDivElement>, "role"> {
|
|
678
|
+
classNames?: MonthPickerGridClassNames;
|
|
679
|
+
}
|
|
680
|
+
/**
|
|
681
|
+
* MonthPicker.Grid — 12-month commit grid. Clicking a month selects it and closes the popover.
|
|
682
|
+
*
|
|
683
|
+
* Unlike `DatePicker.MonthGrid` (drilldown), this component commits the month selection
|
|
684
|
+
* via `ctx.selectDate`, emitting the month-start ISO string.
|
|
685
|
+
*
|
|
686
|
+
* @example
|
|
687
|
+
* ```tsx
|
|
688
|
+
* <MonthPicker value={month} onChange={setMonth} displayFormat="yyyy-MM">
|
|
689
|
+
* <MonthPicker.Input />
|
|
690
|
+
* <MonthPicker.Popover>
|
|
691
|
+
* <MonthPicker.Grid />
|
|
692
|
+
* </MonthPicker.Popover>
|
|
693
|
+
* </MonthPicker>
|
|
694
|
+
* ```
|
|
695
|
+
*/
|
|
696
|
+
declare function MonthPickerGrid({ classNames, ...props }: MonthPickerGridProps): react_jsx_runtime.JSX.Element;
|
|
697
|
+
|
|
698
|
+
/**
|
|
699
|
+
* MonthPicker — Headless month selector. Value is the first day of the selected month (UTC-ISO).
|
|
700
|
+
*
|
|
701
|
+
* Reuses DatePicker infrastructure (Root, Input, Trigger, Popover) so the public surface stays
|
|
702
|
+
* consistent. The only new building block is `MonthPicker.Grid`, a 12-month commit grid.
|
|
703
|
+
*
|
|
704
|
+
* @example Basic
|
|
705
|
+
* ```tsx
|
|
706
|
+
* const [month, setMonth] = useState<string | null>(null);
|
|
707
|
+
* <MonthPicker value={month} onChange={setMonth}>
|
|
708
|
+
* <MonthPicker.Input placeholder="Pick a month" />
|
|
709
|
+
* <MonthPicker.Popover>
|
|
710
|
+
* <MonthPicker.Grid />
|
|
711
|
+
* </MonthPicker.Popover>
|
|
712
|
+
* </MonthPicker>
|
|
713
|
+
* ```
|
|
714
|
+
*/
|
|
715
|
+
declare const MonthPicker: typeof MonthPickerRoot & {
|
|
716
|
+
Input: react.ForwardRefExoticComponent<DatePickerInputProps & react.RefAttributes<HTMLInputElement>>;
|
|
717
|
+
Trigger: react.ForwardRefExoticComponent<DatePickerTriggerProps & react.RefAttributes<HTMLButtonElement>>;
|
|
718
|
+
Popover: typeof DatePickerPopover;
|
|
719
|
+
Grid: typeof MonthPickerGrid;
|
|
720
|
+
};
|
|
721
|
+
|
|
722
|
+
/** Props for YearPicker Root — identical to DatePicker Root, but `displayFormat` defaults to `"yyyy"`. */
|
|
723
|
+
type YearPickerRootProps = DatePickerRootProps;
|
|
724
|
+
/**
|
|
725
|
+
* YearPicker.Root — thin wrapper over DatePicker.Root that defaults `displayFormat` to `"yyyy"`.
|
|
726
|
+
*/
|
|
727
|
+
declare function YearPickerRoot(props: YearPickerRootProps): react_jsx_runtime.JSX.Element;
|
|
728
|
+
|
|
729
|
+
interface YearPickerGridClassNames {
|
|
730
|
+
root?: string;
|
|
731
|
+
header?: string;
|
|
732
|
+
title?: string;
|
|
733
|
+
navButton?: string;
|
|
734
|
+
grid?: string;
|
|
735
|
+
gridRow?: string;
|
|
736
|
+
year?: string;
|
|
737
|
+
yearSelected?: string;
|
|
738
|
+
yearCurrent?: string;
|
|
739
|
+
yearDisabled?: string;
|
|
740
|
+
}
|
|
741
|
+
interface YearPickerGridProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
742
|
+
classNames?: YearPickerGridClassNames;
|
|
743
|
+
}
|
|
744
|
+
/**
|
|
745
|
+
* YearPicker.Grid — 12-year decade commit grid. Clicking a year selects it and closes the popover.
|
|
746
|
+
*
|
|
747
|
+
* Unlike `DatePicker.YearGrid` (drilldown), this component commits the year selection via
|
|
748
|
+
* `ctx.selectDate`, emitting the year-start ISO string (Jan 1 at UTC midnight).
|
|
749
|
+
*
|
|
750
|
+
* @example
|
|
751
|
+
* ```tsx
|
|
752
|
+
* <YearPicker value={year} onChange={setYear}>
|
|
753
|
+
* <YearPicker.Input />
|
|
754
|
+
* <YearPicker.Popover>
|
|
755
|
+
* <YearPicker.Grid />
|
|
756
|
+
* </YearPicker.Popover>
|
|
757
|
+
* </YearPicker>
|
|
758
|
+
* ```
|
|
759
|
+
*/
|
|
760
|
+
declare function YearPickerGrid({ classNames, ...props }: YearPickerGridProps): react_jsx_runtime.JSX.Element;
|
|
761
|
+
|
|
762
|
+
/**
|
|
763
|
+
* YearPicker — Headless year selector. Value is Jan 1 of the selected year (UTC-ISO).
|
|
764
|
+
*
|
|
765
|
+
* Reuses DatePicker infrastructure (Root, Input, Trigger, Popover) so the public surface stays
|
|
766
|
+
* consistent. The only new building block is `YearPicker.Grid`, a 12-year decade commit grid.
|
|
767
|
+
*
|
|
768
|
+
* @example Basic
|
|
769
|
+
* ```tsx
|
|
770
|
+
* const [year, setYear] = useState<string | null>(null);
|
|
771
|
+
* <YearPicker value={year} onChange={setYear}>
|
|
772
|
+
* <YearPicker.Input placeholder="Pick a year" />
|
|
773
|
+
* <YearPicker.Popover>
|
|
774
|
+
* <YearPicker.Grid />
|
|
775
|
+
* </YearPicker.Popover>
|
|
776
|
+
* </YearPicker>
|
|
777
|
+
* ```
|
|
778
|
+
*/
|
|
779
|
+
declare const YearPicker: typeof YearPickerRoot & {
|
|
780
|
+
Input: react.ForwardRefExoticComponent<DatePickerInputProps & react.RefAttributes<HTMLInputElement>>;
|
|
781
|
+
Trigger: react.ForwardRefExoticComponent<DatePickerTriggerProps & react.RefAttributes<HTMLButtonElement>>;
|
|
782
|
+
Popover: typeof DatePickerPopover;
|
|
783
|
+
Grid: typeof YearPickerGrid;
|
|
784
|
+
};
|
|
785
|
+
|
|
786
|
+
/** Props for WeekPicker.Root — reuses RangePicker.Root. */
|
|
787
|
+
type WeekPickerRootProps = RangePickerRootProps;
|
|
788
|
+
/**
|
|
789
|
+
* WeekPicker.Root — thin wrapper over RangePicker.Root.
|
|
790
|
+
*
|
|
791
|
+
* The wrapper is necessary (rather than aliasing `RangePickerRoot` directly) because
|
|
792
|
+
* `Object.assign` on the exported root mutates the target. Without a distinct identity here,
|
|
793
|
+
* `WeekPicker.Calendar` would leak onto `RangePicker.Calendar`.
|
|
794
|
+
*/
|
|
795
|
+
declare function WeekPickerRoot(props: WeekPickerRootProps): react_jsx_runtime.JSX.Element;
|
|
796
|
+
|
|
797
|
+
/**
|
|
798
|
+
* WeekPicker.Calendar — renders the same calendar grid as `RangePicker.Calendar` but with
|
|
799
|
+
* `selectionMode="week"` so a single click commits the full week containing the clicked day.
|
|
800
|
+
*
|
|
801
|
+
* This is a thin wrapper over `RangePicker.Calendar` — the two share all keyboard navigation,
|
|
802
|
+
* ARIA semantics, and rendering logic.
|
|
803
|
+
*/
|
|
804
|
+
declare function WeekPickerCalendar(props: Omit<RangePickerCalendarProps, 'selectionMode'>): react_jsx_runtime.JSX.Element;
|
|
805
|
+
/** Re-export RangePicker calendar classNames — the surface is identical. */
|
|
806
|
+
type WeekPickerCalendarClassNames = RangePickerCalendarClassNames;
|
|
807
|
+
type WeekPickerCalendarProps = Omit<RangePickerCalendarProps, 'selectionMode'>;
|
|
808
|
+
|
|
809
|
+
/**
|
|
810
|
+
* WeekPicker — Headless week selector. Value is a `DateRange` spanning the entire week (start
|
|
811
|
+
* and end days inclusive, based on `weekStartsOn`). A single click selects the full week.
|
|
812
|
+
*
|
|
813
|
+
* Internally reuses `RangePicker` infrastructure (Root, Input, Popover). The only new primitive
|
|
814
|
+
* is `WeekPicker.Calendar`, which overrides click behavior to commit the full week.
|
|
815
|
+
*
|
|
816
|
+
* @example Basic
|
|
817
|
+
* ```tsx
|
|
818
|
+
* const [week, setWeek] = useState<DateRange>({ start: null, end: null });
|
|
819
|
+
* <WeekPicker value={week} onChange={setWeek}>
|
|
820
|
+
* <WeekPicker.Input part="start" />
|
|
821
|
+
* <WeekPicker.Input part="end" />
|
|
822
|
+
* <WeekPicker.Popover>
|
|
823
|
+
* <WeekPicker.Calendar />
|
|
824
|
+
* </WeekPicker.Popover>
|
|
825
|
+
* </WeekPicker>
|
|
826
|
+
* ```
|
|
827
|
+
*/
|
|
828
|
+
declare const WeekPicker: typeof WeekPickerRoot & {
|
|
829
|
+
Input: react.ForwardRefExoticComponent<RangePickerInputProps & react.RefAttributes<HTMLInputElement>>;
|
|
830
|
+
Popover: typeof RangePickerPopover;
|
|
831
|
+
Calendar: typeof WeekPickerCalendar;
|
|
832
|
+
};
|
|
833
|
+
|
|
559
834
|
interface UseDatePickerOptions {
|
|
560
835
|
/** Selected date (controlled mode) */
|
|
561
836
|
value?: ISODateString | null;
|
|
@@ -569,6 +844,8 @@ interface UseDatePickerOptions {
|
|
|
569
844
|
weekStartsOn?: WeekStartsOn;
|
|
570
845
|
/** Date adapter */
|
|
571
846
|
adapter?: DateAdapter;
|
|
847
|
+
/** IANA timezone for display (see DatePickerRoot#displayTimezone) */
|
|
848
|
+
displayTimezone?: string;
|
|
572
849
|
}
|
|
573
850
|
interface UseDatePickerReturn {
|
|
574
851
|
/** Currently selected date (ISO string) */
|
|
@@ -634,6 +911,8 @@ interface UseRangePickerOptions {
|
|
|
634
911
|
weekStartsOn?: WeekStartsOn;
|
|
635
912
|
/** Date adapter */
|
|
636
913
|
adapter?: DateAdapter;
|
|
914
|
+
/** IANA timezone for display (see RangePickerRoot#displayTimezone) */
|
|
915
|
+
displayTimezone?: string;
|
|
637
916
|
}
|
|
638
917
|
interface UseRangePickerReturn {
|
|
639
918
|
/** Currently selected range */
|
|
@@ -699,6 +978,8 @@ interface UseTimePickerOptions {
|
|
|
699
978
|
step?: number;
|
|
700
979
|
/** Whether seconds are shown */
|
|
701
980
|
withSeconds?: boolean;
|
|
981
|
+
/** IANA timezone for time interpretation (see TimePickerRoot#displayTimezone) */
|
|
982
|
+
displayTimezone?: string;
|
|
702
983
|
}
|
|
703
984
|
interface UseTimePickerReturn {
|
|
704
985
|
/** Current ISO datetime value */
|
|
@@ -747,4 +1028,4 @@ interface UseTimePickerReturn {
|
|
|
747
1028
|
*/
|
|
748
1029
|
declare function useTimePicker(options?: UseTimePickerOptions): UseTimePickerReturn;
|
|
749
1030
|
|
|
750
|
-
export { DatePicker, type DatePickerCalendarClassNames, type DatePickerCalendarProps, type DatePickerInputProps, type DatePickerMonthGridClassNames, type DatePickerMonthGridProps, type DatePickerPopoverProps, type DatePickerRootProps, type DatePickerTriggerProps, type DatePickerYearGridClassNames, type DatePickerYearGridProps, DateTimePicker, type DateTimePickerInputProps, type DateTimePickerRootProps, type PresetKey, type RangeInputPart, RangePicker, type RangePickerCalendarClassNames, type RangePickerCalendarProps, type RangePickerInputProps, type RangePickerPopoverProps, type RangePickerPresetProps, type RangePickerPresetsClassNames, type RangePickerPresetsProps, type RangePickerRootProps, TimePicker, type TimePickerAmPmToggleClassNames, type TimePickerAmPmToggleProps, type TimePickerHourListClassNames, type TimePickerHourListProps, type TimePickerInputProps, type TimePickerMinuteListClassNames, type TimePickerMinuteListProps, type TimePickerRootProps, type UseDatePickerOptions, type UseDatePickerReturn, type UseRangePickerOptions, type UseRangePickerReturn, type UseTimePickerOptions, type UseTimePickerReturn, useDatePicker, useRangePicker, useTimePicker };
|
|
1031
|
+
export { DatePicker, type DatePickerCalendarClassNames, type DatePickerCalendarProps, type DatePickerInputProps, type DatePickerMonthGridClassNames, type DatePickerMonthGridProps, type DatePickerPopoverProps, type DatePickerPresetKey, type DatePickerPresetProps, type DatePickerPresetsClassNames, type DatePickerPresetsProps, type DatePickerRootProps, type DatePickerTriggerProps, type DatePickerYearGridClassNames, type DatePickerYearGridProps, DateTimePicker, type DateTimePickerInputProps, type DateTimePickerRootProps, MonthPicker, type MonthPickerGridClassNames, type MonthPickerGridProps, type DatePickerInputProps as MonthPickerInputProps, type DatePickerPopoverProps as MonthPickerPopoverProps, type MonthPickerRootProps, type DatePickerTriggerProps as MonthPickerTriggerProps, type PresetKey, type RangeInputPart, RangePicker, type RangePickerCalendarClassNames, type RangePickerCalendarProps, type RangePickerInputProps, type RangePickerPopoverProps, type RangePickerPresetProps, type RangePickerPresetsClassNames, type RangePickerPresetsProps, type RangePickerRootProps, TimePicker, type TimePickerAmPmToggleClassNames, type TimePickerAmPmToggleProps, type TimePickerHourListClassNames, type TimePickerHourListProps, type TimePickerInputProps, type TimePickerMinuteListClassNames, type TimePickerMinuteListProps, type TimePickerRootProps, type UseDatePickerOptions, type UseDatePickerReturn, type UseRangePickerOptions, type UseRangePickerReturn, type UseTimePickerOptions, type UseTimePickerReturn, WeekPicker, type WeekPickerCalendarClassNames, type WeekPickerCalendarProps, type RangePickerInputProps as WeekPickerInputProps, type RangePickerPopoverProps as WeekPickerPopoverProps, type WeekPickerRootProps, YearPicker, type YearPickerGridClassNames, type YearPickerGridProps, type DatePickerInputProps as YearPickerInputProps, type DatePickerPopoverProps as YearPickerPopoverProps, type YearPickerRootProps, type DatePickerTriggerProps as YearPickerTriggerProps, useDatePicker, useRangePicker, useTimePicker };
|