@kalyx/react 0.4.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 +128 -0
- package/dist/index.cjs +395 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +257 -5
- package/dist/index.d.ts +257 -5
- package/dist/index.js +393 -11
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.cts
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 */
|
|
@@ -54,7 +61,7 @@ interface DatePickerRootProps {
|
|
|
54
61
|
/** Child components */
|
|
55
62
|
children: ReactNode;
|
|
56
63
|
}
|
|
57
|
-
declare function DatePickerRoot({ value: controlledValue, defaultValue, onChange, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, 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;
|
|
58
65
|
|
|
59
66
|
interface DatePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
60
67
|
children?: ReactNode;
|
|
@@ -144,6 +151,50 @@ interface DatePickerYearGridProps extends Omit<HTMLAttributes<HTMLDivElement>, '
|
|
|
144
151
|
*/
|
|
145
152
|
declare function DatePickerYearGrid({ classNames, onSelect, ...props }: DatePickerYearGridProps): react_jsx_runtime.JSX.Element;
|
|
146
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
|
+
|
|
147
198
|
interface DatePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
148
199
|
/** Date display format (defaults to parent's displayFormat) */
|
|
149
200
|
format?: string;
|
|
@@ -186,6 +237,8 @@ declare const DatePicker: typeof DatePickerRoot & {
|
|
|
186
237
|
Calendar: typeof DatePickerCalendar;
|
|
187
238
|
MonthGrid: typeof DatePickerMonthGrid;
|
|
188
239
|
YearGrid: typeof DatePickerYearGrid;
|
|
240
|
+
Presets: typeof DatePickerPresets;
|
|
241
|
+
Preset: typeof DatePickerPreset;
|
|
189
242
|
};
|
|
190
243
|
|
|
191
244
|
/**
|
|
@@ -209,6 +262,13 @@ interface RangePickerRootProps {
|
|
|
209
262
|
defaultValue?: DateRange;
|
|
210
263
|
/** Callback fired when the range changes */
|
|
211
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;
|
|
212
272
|
/** Disabled rules */
|
|
213
273
|
disabled?: DisabledRule[] | boolean;
|
|
214
274
|
/** Read-only */
|
|
@@ -232,7 +292,7 @@ interface RangePickerRootProps {
|
|
|
232
292
|
/** Child components */
|
|
233
293
|
children: ReactNode;
|
|
234
294
|
}
|
|
235
|
-
declare function RangePickerRoot({ value: controlledValue, defaultValue, onChange, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, 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;
|
|
236
296
|
|
|
237
297
|
interface RangePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
238
298
|
children?: ReactNode;
|
|
@@ -257,10 +317,18 @@ interface RangePickerCalendarClassNames {
|
|
|
257
317
|
dayInRange?: string;
|
|
258
318
|
weekdayHeader?: string;
|
|
259
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';
|
|
260
326
|
interface RangePickerCalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
261
327
|
classNames?: RangePickerCalendarClassNames;
|
|
328
|
+
/** @default 'range' */
|
|
329
|
+
selectionMode?: RangePickerCalendarSelectionMode;
|
|
262
330
|
}
|
|
263
|
-
declare function RangePickerCalendar({ classNames, ...props }: RangePickerCalendarProps): react_jsx_runtime.JSX.Element;
|
|
331
|
+
declare function RangePickerCalendar({ classNames, selectionMode, ...props }: RangePickerCalendarProps): react_jsx_runtime.JSX.Element;
|
|
264
332
|
|
|
265
333
|
/** Predefined preset keys. Custom ranges are also supported. */
|
|
266
334
|
type PresetKey = 'today' | 'yesterday' | 'last7days' | 'last30days' | 'thisWeek' | 'lastWeek' | 'thisMonth' | 'lastMonth' | 'thisYear';
|
|
@@ -492,6 +560,13 @@ interface DateTimePickerRootProps {
|
|
|
492
560
|
defaultValue?: ISODateString;
|
|
493
561
|
/** Callback fired when the datetime changes */
|
|
494
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;
|
|
495
570
|
/** 12-hour or 24-hour mode */
|
|
496
571
|
format?: TimePickerFormat;
|
|
497
572
|
/** Minute step (e.g., 1, 5, 15, 30) */
|
|
@@ -531,7 +606,7 @@ interface DateTimePickerRootProps {
|
|
|
531
606
|
* - Changing time in TimePicker -> changes only the time, preserves the date
|
|
532
607
|
* - Escape / outside click -> close the popover (commit)
|
|
533
608
|
*/
|
|
534
|
-
declare function DateTimePickerRoot({ value: controlledValue, defaultValue, onChange, format, step, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, 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;
|
|
535
610
|
|
|
536
611
|
interface DateTimePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
537
612
|
}
|
|
@@ -579,6 +654,183 @@ declare const DateTimePicker: typeof DateTimePickerRoot & {
|
|
|
579
654
|
AmPmToggle: typeof TimePickerAmPmToggle;
|
|
580
655
|
};
|
|
581
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
|
+
|
|
582
834
|
interface UseDatePickerOptions {
|
|
583
835
|
/** Selected date (controlled mode) */
|
|
584
836
|
value?: ISODateString | null;
|
|
@@ -776,4 +1028,4 @@ interface UseTimePickerReturn {
|
|
|
776
1028
|
*/
|
|
777
1029
|
declare function useTimePicker(options?: UseTimePickerOptions): UseTimePickerReturn;
|
|
778
1030
|
|
|
779
|
-
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 };
|
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 */
|
|
@@ -54,7 +61,7 @@ interface DatePickerRootProps {
|
|
|
54
61
|
/** Child components */
|
|
55
62
|
children: ReactNode;
|
|
56
63
|
}
|
|
57
|
-
declare function DatePickerRoot({ value: controlledValue, defaultValue, onChange, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, 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;
|
|
58
65
|
|
|
59
66
|
interface DatePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
60
67
|
children?: ReactNode;
|
|
@@ -144,6 +151,50 @@ interface DatePickerYearGridProps extends Omit<HTMLAttributes<HTMLDivElement>, '
|
|
|
144
151
|
*/
|
|
145
152
|
declare function DatePickerYearGrid({ classNames, onSelect, ...props }: DatePickerYearGridProps): react_jsx_runtime.JSX.Element;
|
|
146
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
|
+
|
|
147
198
|
interface DatePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
148
199
|
/** Date display format (defaults to parent's displayFormat) */
|
|
149
200
|
format?: string;
|
|
@@ -186,6 +237,8 @@ declare const DatePicker: typeof DatePickerRoot & {
|
|
|
186
237
|
Calendar: typeof DatePickerCalendar;
|
|
187
238
|
MonthGrid: typeof DatePickerMonthGrid;
|
|
188
239
|
YearGrid: typeof DatePickerYearGrid;
|
|
240
|
+
Presets: typeof DatePickerPresets;
|
|
241
|
+
Preset: typeof DatePickerPreset;
|
|
189
242
|
};
|
|
190
243
|
|
|
191
244
|
/**
|
|
@@ -209,6 +262,13 @@ interface RangePickerRootProps {
|
|
|
209
262
|
defaultValue?: DateRange;
|
|
210
263
|
/** Callback fired when the range changes */
|
|
211
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;
|
|
212
272
|
/** Disabled rules */
|
|
213
273
|
disabled?: DisabledRule[] | boolean;
|
|
214
274
|
/** Read-only */
|
|
@@ -232,7 +292,7 @@ interface RangePickerRootProps {
|
|
|
232
292
|
/** Child components */
|
|
233
293
|
children: ReactNode;
|
|
234
294
|
}
|
|
235
|
-
declare function RangePickerRoot({ value: controlledValue, defaultValue, onChange, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, 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;
|
|
236
296
|
|
|
237
297
|
interface RangePickerPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
238
298
|
children?: ReactNode;
|
|
@@ -257,10 +317,18 @@ interface RangePickerCalendarClassNames {
|
|
|
257
317
|
dayInRange?: string;
|
|
258
318
|
weekdayHeader?: string;
|
|
259
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';
|
|
260
326
|
interface RangePickerCalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
261
327
|
classNames?: RangePickerCalendarClassNames;
|
|
328
|
+
/** @default 'range' */
|
|
329
|
+
selectionMode?: RangePickerCalendarSelectionMode;
|
|
262
330
|
}
|
|
263
|
-
declare function RangePickerCalendar({ classNames, ...props }: RangePickerCalendarProps): react_jsx_runtime.JSX.Element;
|
|
331
|
+
declare function RangePickerCalendar({ classNames, selectionMode, ...props }: RangePickerCalendarProps): react_jsx_runtime.JSX.Element;
|
|
264
332
|
|
|
265
333
|
/** Predefined preset keys. Custom ranges are also supported. */
|
|
266
334
|
type PresetKey = 'today' | 'yesterday' | 'last7days' | 'last30days' | 'thisWeek' | 'lastWeek' | 'thisMonth' | 'lastMonth' | 'thisYear';
|
|
@@ -492,6 +560,13 @@ interface DateTimePickerRootProps {
|
|
|
492
560
|
defaultValue?: ISODateString;
|
|
493
561
|
/** Callback fired when the datetime changes */
|
|
494
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;
|
|
495
570
|
/** 12-hour or 24-hour mode */
|
|
496
571
|
format?: TimePickerFormat;
|
|
497
572
|
/** Minute step (e.g., 1, 5, 15, 30) */
|
|
@@ -531,7 +606,7 @@ interface DateTimePickerRootProps {
|
|
|
531
606
|
* - Changing time in TimePicker -> changes only the time, preserves the date
|
|
532
607
|
* - Escape / outside click -> close the popover (commit)
|
|
533
608
|
*/
|
|
534
|
-
declare function DateTimePickerRoot({ value: controlledValue, defaultValue, onChange, format, step, disabled, readOnly, weekStartsOn, displayFormat, locale, displayTimezone, 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;
|
|
535
610
|
|
|
536
611
|
interface DateTimePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
537
612
|
}
|
|
@@ -579,6 +654,183 @@ declare const DateTimePicker: typeof DateTimePickerRoot & {
|
|
|
579
654
|
AmPmToggle: typeof TimePickerAmPmToggle;
|
|
580
655
|
};
|
|
581
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
|
+
|
|
582
834
|
interface UseDatePickerOptions {
|
|
583
835
|
/** Selected date (controlled mode) */
|
|
584
836
|
value?: ISODateString | null;
|
|
@@ -776,4 +1028,4 @@ interface UseTimePickerReturn {
|
|
|
776
1028
|
*/
|
|
777
1029
|
declare function useTimePicker(options?: UseTimePickerOptions): UseTimePickerReturn;
|
|
778
1030
|
|
|
779
|
-
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 };
|