@kalyx/react 0.2.0 → 0.2.2
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 +16 -0
- package/README.md +67 -58
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +160 -162
- package/dist/index.d.ts +742 -17
- package/dist/index.js +2137 -11
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/components/DatePicker/Calendar.d.ts +0 -23
- package/dist/components/DatePicker/Calendar.d.ts.map +0 -1
- package/dist/components/DatePicker/Calendar.js +0 -127
- package/dist/components/DatePicker/Calendar.js.map +0 -1
- package/dist/components/DatePicker/Input.d.ts +0 -7
- package/dist/components/DatePicker/Input.d.ts.map +0 -1
- package/dist/components/DatePicker/Input.js +0 -73
- package/dist/components/DatePicker/Input.js.map +0 -1
- package/dist/components/DatePicker/MonthGrid.d.ts +0 -34
- package/dist/components/DatePicker/MonthGrid.d.ts.map +0 -1
- package/dist/components/DatePicker/MonthGrid.js +0 -54
- package/dist/components/DatePicker/MonthGrid.js.map +0 -1
- package/dist/components/DatePicker/Popover.d.ts +0 -6
- package/dist/components/DatePicker/Popover.d.ts.map +0 -1
- package/dist/components/DatePicker/Popover.js +0 -72
- package/dist/components/DatePicker/Popover.js.map +0 -1
- package/dist/components/DatePicker/Root.d.ts +0 -46
- package/dist/components/DatePicker/Root.d.ts.map +0 -1
- package/dist/components/DatePicker/Root.js +0 -90
- package/dist/components/DatePicker/Root.js.map +0 -1
- package/dist/components/DatePicker/Trigger.d.ts +0 -6
- package/dist/components/DatePicker/Trigger.d.ts.map +0 -1
- package/dist/components/DatePicker/Trigger.js +0 -21
- package/dist/components/DatePicker/Trigger.js.map +0 -1
- package/dist/components/DatePicker/YearGrid.d.ts +0 -29
- package/dist/components/DatePicker/YearGrid.d.ts.map +0 -1
- package/dist/components/DatePicker/YearGrid.js +0 -53
- package/dist/components/DatePicker/YearGrid.js.map +0 -1
- package/dist/components/DatePicker/index.d.ts +0 -48
- package/dist/components/DatePicker/index.d.ts.map +0 -1
- package/dist/components/DatePicker/index.js +0 -42
- package/dist/components/DatePicker/index.js.map +0 -1
- package/dist/components/DateTimePicker/Input.d.ts +0 -12
- package/dist/components/DateTimePicker/Input.d.ts.map +0 -1
- package/dist/components/DateTimePicker/Input.js +0 -41
- package/dist/components/DateTimePicker/Input.js.map +0 -1
- package/dist/components/DateTimePicker/Root.d.ts +0 -60
- package/dist/components/DateTimePicker/Root.d.ts.map +0 -1
- package/dist/components/DateTimePicker/Root.js +0 -140
- package/dist/components/DateTimePicker/Root.js.map +0 -1
- package/dist/components/DateTimePicker/index.d.ts +0 -55
- package/dist/components/DateTimePicker/index.d.ts.map +0 -1
- package/dist/components/DateTimePicker/index.js +0 -55
- package/dist/components/DateTimePicker/index.js.map +0 -1
- package/dist/components/RangePicker/Calendar.d.ts +0 -24
- package/dist/components/RangePicker/Calendar.d.ts.map +0 -1
- package/dist/components/RangePicker/Calendar.js +0 -134
- package/dist/components/RangePicker/Calendar.js.map +0 -1
- package/dist/components/RangePicker/Input.d.ts +0 -14
- package/dist/components/RangePicker/Input.d.ts.map +0 -1
- package/dist/components/RangePicker/Input.js +0 -38
- package/dist/components/RangePicker/Input.js.map +0 -1
- package/dist/components/RangePicker/Popover.d.ts +0 -6
- package/dist/components/RangePicker/Popover.d.ts.map +0 -1
- package/dist/components/RangePicker/Popover.js +0 -71
- package/dist/components/RangePicker/Popover.js.map +0 -1
- package/dist/components/RangePicker/Presets.d.ts +0 -49
- package/dist/components/RangePicker/Presets.d.ts.map +0 -1
- package/dist/components/RangePicker/Presets.js +0 -117
- package/dist/components/RangePicker/Presets.js.map +0 -1
- package/dist/components/RangePicker/Root.d.ts +0 -40
- package/dist/components/RangePicker/Root.d.ts.map +0 -1
- package/dist/components/RangePicker/Root.js +0 -138
- package/dist/components/RangePicker/Root.js.map +0 -1
- package/dist/components/RangePicker/index.d.ts +0 -48
- package/dist/components/RangePicker/index.d.ts.map +0 -1
- package/dist/components/RangePicker/index.js +0 -43
- package/dist/components/RangePicker/index.js.map +0 -1
- package/dist/components/TimePicker/AmPmToggle.d.ts +0 -15
- package/dist/components/TimePicker/AmPmToggle.d.ts.map +0 -1
- package/dist/components/TimePicker/AmPmToggle.js +0 -29
- package/dist/components/TimePicker/AmPmToggle.js.map +0 -1
- package/dist/components/TimePicker/HourList.d.ts +0 -18
- package/dist/components/TimePicker/HourList.d.ts.map +0 -1
- package/dist/components/TimePicker/HourList.js +0 -71
- package/dist/components/TimePicker/HourList.js.map +0 -1
- package/dist/components/TimePicker/Input.d.ts +0 -9
- package/dist/components/TimePicker/Input.d.ts.map +0 -1
- package/dist/components/TimePicker/Input.js +0 -37
- package/dist/components/TimePicker/Input.js.map +0 -1
- package/dist/components/TimePicker/MinuteList.d.ts +0 -15
- package/dist/components/TimePicker/MinuteList.d.ts.map +0 -1
- package/dist/components/TimePicker/MinuteList.js +0 -62
- package/dist/components/TimePicker/MinuteList.js.map +0 -1
- package/dist/components/TimePicker/Root.d.ts +0 -38
- package/dist/components/TimePicker/Root.d.ts.map +0 -1
- package/dist/components/TimePicker/Root.js +0 -40
- package/dist/components/TimePicker/Root.js.map +0 -1
- package/dist/components/TimePicker/index.d.ts +0 -32
- package/dist/components/TimePicker/index.d.ts.map +0 -1
- package/dist/components/TimePicker/index.js +0 -27
- package/dist/components/TimePicker/index.js.map +0 -1
- package/dist/context/DatePickerContext.d.ts +0 -49
- package/dist/context/DatePickerContext.d.ts.map +0 -1
- package/dist/context/DatePickerContext.js +0 -18
- package/dist/context/DatePickerContext.js.map +0 -1
- package/dist/context/RangePickerContext.d.ts +0 -53
- package/dist/context/RangePickerContext.d.ts.map +0 -1
- package/dist/context/RangePickerContext.js +0 -18
- package/dist/context/RangePickerContext.js.map +0 -1
- package/dist/context/TimePickerContext.d.ts +0 -29
- package/dist/context/TimePickerContext.d.ts.map +0 -1
- package/dist/context/TimePickerContext.js +0 -18
- package/dist/context/TimePickerContext.js.map +0 -1
- package/dist/hooks/useDatePicker.d.ts +0 -63
- package/dist/hooks/useDatePicker.d.ts.map +0 -1
- package/dist/hooks/useDatePicker.js +0 -82
- package/dist/hooks/useDatePicker.js.map +0 -1
- package/dist/hooks/useRangePicker.d.ts +0 -67
- package/dist/hooks/useRangePicker.d.ts.map +0 -1
- package/dist/hooks/useRangePicker.js +0 -116
- package/dist/hooks/useRangePicker.js.map +0 -1
- package/dist/hooks/useTimePicker.d.ts +0 -63
- package/dist/hooks/useTimePicker.d.ts.map +0 -1
- package/dist/hooks/useTimePicker.js +0 -69
- package/dist/hooks/useTimePicker.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
package/dist/index.d.cts
CHANGED
|
@@ -5,9 +5,9 @@ import { ISODateString, DisabledRule, WeekStartsOn, DateAdapter, DateRange, Cale
|
|
|
5
5
|
export { CalendarDay, DateAdapter, DateFnsAdapter, DateRange, DisabledRule, ISODateString, TimeValue } from '@kalyx/core';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* DatePicker
|
|
8
|
+
* Props for the DatePicker Root component.
|
|
9
9
|
*
|
|
10
|
-
* @example
|
|
10
|
+
* @example Controlled
|
|
11
11
|
* ```tsx
|
|
12
12
|
* <DatePicker value={date} onChange={setDate}>
|
|
13
13
|
* <DatePicker.Input />
|
|
@@ -17,7 +17,7 @@ export { CalendarDay, DateAdapter, DateFnsAdapter, DateRange, DisabledRule, ISOD
|
|
|
17
17
|
* </DatePicker>
|
|
18
18
|
* ```
|
|
19
19
|
*
|
|
20
|
-
* @example
|
|
20
|
+
* @example Uncontrolled
|
|
21
21
|
* ```tsx
|
|
22
22
|
* <DatePicker defaultValue="2026-01-15T00:00:00.000Z">
|
|
23
23
|
* <DatePicker.Input />
|
|
@@ -25,25 +25,25 @@ export { CalendarDay, DateAdapter, DateFnsAdapter, DateRange, DisabledRule, ISOD
|
|
|
25
25
|
* ```
|
|
26
26
|
*/
|
|
27
27
|
interface DatePickerRootProps {
|
|
28
|
-
/**
|
|
28
|
+
/** Selected date (controlled, ISO 8601 UTC). `null` means empty. */
|
|
29
29
|
value?: ISODateString | null;
|
|
30
|
-
/**
|
|
30
|
+
/** Initial date (uncontrolled) */
|
|
31
31
|
defaultValue?: ISODateString;
|
|
32
|
-
/**
|
|
32
|
+
/** Callback fired when the date changes */
|
|
33
33
|
onChange?: (value: ISODateString | null) => void;
|
|
34
|
-
/**
|
|
34
|
+
/** Disabled rules */
|
|
35
35
|
disabled?: DisabledRule[] | boolean;
|
|
36
|
-
/**
|
|
36
|
+
/** Read-only */
|
|
37
37
|
readOnly?: boolean;
|
|
38
|
-
/**
|
|
38
|
+
/** Week start day */
|
|
39
39
|
weekStartsOn?: WeekStartsOn;
|
|
40
|
-
/**
|
|
40
|
+
/** Date display format */
|
|
41
41
|
displayFormat?: string;
|
|
42
|
-
/** BCP 47 locale (
|
|
42
|
+
/** BCP 47 locale (e.g., "en-US", "ko-KR", "ja-JP") */
|
|
43
43
|
locale?: string;
|
|
44
|
-
/**
|
|
44
|
+
/** Date adapter */
|
|
45
45
|
adapter?: DateAdapter;
|
|
46
|
-
/**
|
|
46
|
+
/** Child components */
|
|
47
47
|
children: ReactNode;
|
|
48
48
|
}
|
|
49
49
|
declare function DatePickerRoot({ value: controlledValue, defaultValue, onChange, disabled, readOnly, weekStartsOn, displayFormat, locale, adapter, children, }: DatePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
@@ -70,7 +70,7 @@ interface DatePickerCalendarClassNames {
|
|
|
70
70
|
}
|
|
71
71
|
interface DatePickerCalendarProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
72
72
|
classNames?: DatePickerCalendarClassNames;
|
|
73
|
-
/**
|
|
73
|
+
/** Called when the title ("January 2026") is clicked. Useful for switching to Month/Year views. */
|
|
74
74
|
onTitleClick?: () => void;
|
|
75
75
|
}
|
|
76
76
|
declare function DatePickerCalendar({ classNames, onTitleClick, ...props }: DatePickerCalendarProps): react_jsx_runtime.JSX.Element;
|
|
@@ -87,14 +87,14 @@ interface DatePickerMonthGridClassNames {
|
|
|
87
87
|
}
|
|
88
88
|
interface DatePickerMonthGridProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
89
89
|
classNames?: DatePickerMonthGridClassNames;
|
|
90
|
-
/**
|
|
90
|
+
/** Called when a month is selected. Typically used to switch back to the day view. */
|
|
91
91
|
onSelect?: () => void;
|
|
92
|
-
/**
|
|
92
|
+
/** Called when the title (year) is clicked. Useful for switching to the year view. */
|
|
93
93
|
onTitleClick?: () => void;
|
|
94
94
|
}
|
|
95
95
|
/**
|
|
96
|
-
* DatePicker.MonthGrid —
|
|
97
|
-
* Calendar
|
|
96
|
+
* DatePicker.MonthGrid — Quickly pick a month from a 12-month grid.
|
|
97
|
+
* Click Calendar title -> MonthGrid -> click a month -> back to Calendar.
|
|
98
98
|
*
|
|
99
99
|
* @example
|
|
100
100
|
* ```tsx
|
|
@@ -120,12 +120,12 @@ interface DatePickerYearGridClassNames {
|
|
|
120
120
|
}
|
|
121
121
|
interface DatePickerYearGridProps extends Omit<HTMLAttributes<HTMLDivElement>, 'role'> {
|
|
122
122
|
classNames?: DatePickerYearGridClassNames;
|
|
123
|
-
/**
|
|
123
|
+
/** Called when a year is selected. Typically used to switch back to the month view. */
|
|
124
124
|
onSelect?: () => void;
|
|
125
125
|
}
|
|
126
126
|
/**
|
|
127
|
-
* DatePicker.YearGrid —
|
|
128
|
-
* MonthGrid
|
|
127
|
+
* DatePicker.YearGrid — Quickly pick a year from a 12-year grid.
|
|
128
|
+
* Click MonthGrid title -> YearGrid -> click a year -> back to MonthGrid.
|
|
129
129
|
*
|
|
130
130
|
* @example
|
|
131
131
|
* ```tsx
|
|
@@ -137,7 +137,7 @@ interface DatePickerYearGridProps extends Omit<HTMLAttributes<HTMLDivElement>, '
|
|
|
137
137
|
declare function DatePickerYearGrid({ classNames, onSelect, ...props }: DatePickerYearGridProps): react_jsx_runtime.JSX.Element;
|
|
138
138
|
|
|
139
139
|
interface DatePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
140
|
-
/**
|
|
140
|
+
/** Date display format (defaults to parent's displayFormat) */
|
|
141
141
|
format?: string;
|
|
142
142
|
}
|
|
143
143
|
|
|
@@ -148,7 +148,7 @@ interface DatePickerTriggerProps extends Omit<ButtonHTMLAttributes<HTMLButtonEle
|
|
|
148
148
|
/**
|
|
149
149
|
* DatePicker — Headless, SSR-safe React DatePicker
|
|
150
150
|
*
|
|
151
|
-
* @example
|
|
151
|
+
* @example Basic
|
|
152
152
|
* ```tsx
|
|
153
153
|
* <DatePicker value={date} onChange={setDate}>
|
|
154
154
|
* <DatePicker.Input placeholder="날짜 선택" />
|
|
@@ -158,7 +158,7 @@ interface DatePickerTriggerProps extends Omit<ButtonHTMLAttributes<HTMLButtonEle
|
|
|
158
158
|
* </DatePicker>
|
|
159
159
|
* ```
|
|
160
160
|
*
|
|
161
|
-
* @example Month/Year
|
|
161
|
+
* @example Month/Year quick navigation
|
|
162
162
|
* ```tsx
|
|
163
163
|
* const [view, setView] = useState('days');
|
|
164
164
|
* <DatePicker value={date} onChange={setDate}>
|
|
@@ -181,7 +181,7 @@ declare const DatePicker: typeof DatePickerRoot & {
|
|
|
181
181
|
};
|
|
182
182
|
|
|
183
183
|
/**
|
|
184
|
-
* RangePicker
|
|
184
|
+
* Props for the RangePicker Root component.
|
|
185
185
|
*
|
|
186
186
|
* @example
|
|
187
187
|
* ```tsx
|
|
@@ -195,25 +195,25 @@ declare const DatePicker: typeof DatePickerRoot & {
|
|
|
195
195
|
* ```
|
|
196
196
|
*/
|
|
197
197
|
interface RangePickerRootProps {
|
|
198
|
-
/**
|
|
198
|
+
/** Selected range (controlled). `{ start, end }` with ISO strings or null. */
|
|
199
199
|
value?: DateRange;
|
|
200
|
-
/**
|
|
200
|
+
/** Initial range (uncontrolled) */
|
|
201
201
|
defaultValue?: DateRange;
|
|
202
|
-
/**
|
|
202
|
+
/** Callback fired when the range changes */
|
|
203
203
|
onChange?: (range: DateRange) => void;
|
|
204
|
-
/**
|
|
204
|
+
/** Disabled rules */
|
|
205
205
|
disabled?: DisabledRule[] | boolean;
|
|
206
|
-
/**
|
|
206
|
+
/** Read-only */
|
|
207
207
|
readOnly?: boolean;
|
|
208
|
-
/**
|
|
208
|
+
/** Week start day */
|
|
209
209
|
weekStartsOn?: WeekStartsOn;
|
|
210
|
-
/**
|
|
210
|
+
/** Date display format */
|
|
211
211
|
displayFormat?: string;
|
|
212
212
|
/** BCP 47 locale */
|
|
213
213
|
locale?: string;
|
|
214
|
-
/**
|
|
214
|
+
/** Date adapter */
|
|
215
215
|
adapter?: DateAdapter;
|
|
216
|
-
/**
|
|
216
|
+
/** Child components */
|
|
217
217
|
children: ReactNode;
|
|
218
218
|
}
|
|
219
219
|
declare function RangePickerRoot({ value: controlledValue, defaultValue, onChange, disabled, readOnly, weekStartsOn, displayFormat, locale, adapter, children, }: RangePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
@@ -246,7 +246,7 @@ interface RangePickerCalendarProps extends Omit<HTMLAttributes<HTMLDivElement>,
|
|
|
246
246
|
}
|
|
247
247
|
declare function RangePickerCalendar({ classNames, ...props }: RangePickerCalendarProps): react_jsx_runtime.JSX.Element;
|
|
248
248
|
|
|
249
|
-
/**
|
|
249
|
+
/** Predefined preset keys. Custom ranges are also supported. */
|
|
250
250
|
type PresetKey = 'today' | 'yesterday' | 'last7days' | 'last30days' | 'thisWeek' | 'lastWeek' | 'thisMonth' | 'lastMonth' | 'thisYear';
|
|
251
251
|
interface RangePickerPresetsClassNames {
|
|
252
252
|
root?: string;
|
|
@@ -258,8 +258,8 @@ interface RangePickerPresetsProps extends Omit<HTMLAttributes<HTMLDivElement>, '
|
|
|
258
258
|
children?: ReactNode;
|
|
259
259
|
}
|
|
260
260
|
/**
|
|
261
|
-
* RangePicker.Presets —
|
|
262
|
-
*
|
|
261
|
+
* RangePicker.Presets — Container that wraps preset buttons.
|
|
262
|
+
* Place `RangePicker.Preset` buttons inside.
|
|
263
263
|
*
|
|
264
264
|
* @example
|
|
265
265
|
* ```tsx
|
|
@@ -271,17 +271,17 @@ interface RangePickerPresetsProps extends Omit<HTMLAttributes<HTMLDivElement>, '
|
|
|
271
271
|
*/
|
|
272
272
|
declare function RangePickerPresets({ classNames, children, ...props }: RangePickerPresetsProps): react_jsx_runtime.JSX.Element;
|
|
273
273
|
interface RangePickerPresetProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'value'> {
|
|
274
|
-
/**
|
|
274
|
+
/** Predefined preset key; omit when passing `range` directly */
|
|
275
275
|
value?: PresetKey;
|
|
276
|
-
/**
|
|
276
|
+
/** Pass a range directly (alternative to `value`) */
|
|
277
277
|
range?: DateRange;
|
|
278
278
|
children: ReactNode;
|
|
279
279
|
className?: string;
|
|
280
280
|
}
|
|
281
281
|
/**
|
|
282
|
-
* RangePicker.Preset —
|
|
282
|
+
* RangePicker.Preset — One-click preset button to select a date range.
|
|
283
283
|
*
|
|
284
|
-
* `value` (
|
|
284
|
+
* Pass either `value` (a preset key) or `range` (a direct range).
|
|
285
285
|
*
|
|
286
286
|
* @example
|
|
287
287
|
* ```tsx
|
|
@@ -295,16 +295,16 @@ declare function RangePickerPreset({ value: presetKey, range: directRange, child
|
|
|
295
295
|
|
|
296
296
|
type RangeInputPart = 'start' | 'end';
|
|
297
297
|
interface RangePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange' | 'type'> {
|
|
298
|
-
/**
|
|
298
|
+
/** Which part this input represents (start | end) */
|
|
299
299
|
part: RangeInputPart;
|
|
300
|
-
/**
|
|
300
|
+
/** Date display format (defaults to parent's displayFormat) */
|
|
301
301
|
format?: string;
|
|
302
302
|
}
|
|
303
303
|
|
|
304
304
|
/**
|
|
305
|
-
* RangePicker — Headless
|
|
305
|
+
* RangePicker — Headless date-range picker component
|
|
306
306
|
*
|
|
307
|
-
* @example
|
|
307
|
+
* @example Basic
|
|
308
308
|
* ```tsx
|
|
309
309
|
* <RangePicker value={range} onChange={setRange}>
|
|
310
310
|
* <RangePicker.Input part="start" />
|
|
@@ -315,7 +315,7 @@ interface RangePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElemen
|
|
|
315
315
|
* </RangePicker>
|
|
316
316
|
* ```
|
|
317
317
|
*
|
|
318
|
-
* @example Presets (
|
|
318
|
+
* @example Presets (dashboard)
|
|
319
319
|
* ```tsx
|
|
320
320
|
* <RangePicker value={range} onChange={setRange}>
|
|
321
321
|
* <RangePicker.Input part="start" />
|
|
@@ -342,7 +342,7 @@ declare const RangePicker: typeof RangePickerRoot & {
|
|
|
342
342
|
type TimePickerFormat = '12h' | '24h';
|
|
343
343
|
|
|
344
344
|
/**
|
|
345
|
-
* TimePicker
|
|
345
|
+
* Props for the TimePicker Root component.
|
|
346
346
|
*
|
|
347
347
|
* @example
|
|
348
348
|
* ```tsx
|
|
@@ -355,23 +355,23 @@ type TimePickerFormat = '12h' | '24h';
|
|
|
355
355
|
* ```
|
|
356
356
|
*/
|
|
357
357
|
interface TimePickerRootProps {
|
|
358
|
-
/**
|
|
358
|
+
/** Selected time (controlled, ISO 8601 UTC). The date portion is ignored; only the time is used. */
|
|
359
359
|
value?: ISODateString | null;
|
|
360
|
-
/**
|
|
360
|
+
/** Initial time (uncontrolled) */
|
|
361
361
|
defaultValue?: ISODateString;
|
|
362
|
-
/**
|
|
362
|
+
/** Callback fired when the time changes */
|
|
363
363
|
onChange?: (value: ISODateString | null) => void;
|
|
364
|
-
/** 12
|
|
364
|
+
/** 12-hour or 24-hour mode */
|
|
365
365
|
format?: TimePickerFormat;
|
|
366
|
-
/**
|
|
366
|
+
/** Minute step (e.g., 1, 5, 10, 15, 30) */
|
|
367
367
|
step?: number;
|
|
368
|
-
/**
|
|
368
|
+
/** Whether to display seconds */
|
|
369
369
|
withSeconds?: boolean;
|
|
370
|
-
/**
|
|
370
|
+
/** Whether entire picker is disabled */
|
|
371
371
|
disabled?: boolean;
|
|
372
|
-
/**
|
|
372
|
+
/** Read-only */
|
|
373
373
|
readOnly?: boolean;
|
|
374
|
-
/**
|
|
374
|
+
/** Child components */
|
|
375
375
|
children: ReactNode;
|
|
376
376
|
}
|
|
377
377
|
declare function TimePickerRoot({ value: controlledValue, defaultValue, onChange, format, step, withSeconds, disabled, readOnly, children, }: TimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
@@ -385,11 +385,11 @@ interface TimePickerHourListProps extends Omit<HTMLAttributes<HTMLUListElement>,
|
|
|
385
385
|
classNames?: TimePickerHourListClassNames;
|
|
386
386
|
}
|
|
387
387
|
/**
|
|
388
|
-
* TimePicker.HourList — `role="listbox"`
|
|
389
|
-
* 12h/24h
|
|
388
|
+
* TimePicker.HourList — `role="listbox"` pattern for hour selection.
|
|
389
|
+
* Renders differently depending on 12h/24h mode.
|
|
390
390
|
*
|
|
391
|
-
* ARIA
|
|
392
|
-
*
|
|
391
|
+
* ARIA-standard listbox: the <li role="option"> element itself is interactive.
|
|
392
|
+
* Keyboard: ArrowUp/ArrowDown to navigate, Enter/Space to select.
|
|
393
393
|
*/
|
|
394
394
|
declare function TimePickerHourList({ classNames, ...props }: TimePickerHourListProps): react_jsx_runtime.JSX.Element;
|
|
395
395
|
|
|
@@ -402,8 +402,8 @@ interface TimePickerMinuteListProps extends Omit<HTMLAttributes<HTMLUListElement
|
|
|
402
402
|
classNames?: TimePickerMinuteListClassNames;
|
|
403
403
|
}
|
|
404
404
|
/**
|
|
405
|
-
* TimePicker.MinuteList — `role="listbox"`
|
|
406
|
-
*
|
|
405
|
+
* TimePicker.MinuteList — `role="listbox"` pattern for minute selection.
|
|
406
|
+
* The displayed minutes depend on the `step` prop (e.g., step=15 -> [0, 15, 30, 45]).
|
|
407
407
|
*/
|
|
408
408
|
declare function TimePickerMinuteList({ classNames, ...props }: TimePickerMinuteListProps): react_jsx_runtime.JSX.Element;
|
|
409
409
|
|
|
@@ -416,8 +416,8 @@ interface TimePickerAmPmToggleProps extends Omit<HTMLAttributes<HTMLDivElement>,
|
|
|
416
416
|
classNames?: TimePickerAmPmToggleClassNames;
|
|
417
417
|
}
|
|
418
418
|
/**
|
|
419
|
-
* TimePicker.AmPmToggle —
|
|
420
|
-
*
|
|
419
|
+
* TimePicker.AmPmToggle — AM/PM toggle shown only in 12-hour mode.
|
|
420
|
+
* Returns null in 24-hour mode.
|
|
421
421
|
*/
|
|
422
422
|
declare function TimePickerAmPmToggle({ classNames, ...props }: TimePickerAmPmToggleProps): react_jsx_runtime.JSX.Element | null;
|
|
423
423
|
|
|
@@ -425,7 +425,7 @@ interface TimePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputElement
|
|
|
425
425
|
}
|
|
426
426
|
|
|
427
427
|
/**
|
|
428
|
-
* TimePicker — Headless
|
|
428
|
+
* TimePicker — Headless time-picker component
|
|
429
429
|
*
|
|
430
430
|
* @example
|
|
431
431
|
* ```tsx
|
|
@@ -447,8 +447,8 @@ declare const TimePicker: typeof TimePickerRoot & {
|
|
|
447
447
|
};
|
|
448
448
|
|
|
449
449
|
/**
|
|
450
|
-
* DateTimePicker
|
|
451
|
-
*
|
|
450
|
+
* Props for the DateTimePicker Root component.
|
|
451
|
+
* Internally provides both DatePickerContext and TimePickerContext (context bridging).
|
|
452
452
|
*
|
|
453
453
|
* @example
|
|
454
454
|
* ```tsx
|
|
@@ -463,43 +463,42 @@ declare const TimePicker: typeof TimePickerRoot & {
|
|
|
463
463
|
* ```
|
|
464
464
|
*/
|
|
465
465
|
interface DateTimePickerRootProps {
|
|
466
|
-
/**
|
|
466
|
+
/** Selected datetime (controlled, ISO 8601 UTC). Includes both date and time. */
|
|
467
467
|
value?: ISODateString | null;
|
|
468
|
-
/**
|
|
468
|
+
/** Initial datetime (uncontrolled) */
|
|
469
469
|
defaultValue?: ISODateString;
|
|
470
|
-
/** datetime
|
|
470
|
+
/** Callback fired when the datetime changes */
|
|
471
471
|
onChange?: (value: ISODateString | null) => void;
|
|
472
|
-
/** 12
|
|
472
|
+
/** 12-hour or 24-hour mode */
|
|
473
473
|
format?: TimePickerFormat;
|
|
474
|
-
/**
|
|
474
|
+
/** Minute step (e.g., 1, 5, 15, 30) */
|
|
475
475
|
step?: number;
|
|
476
|
-
/**
|
|
476
|
+
/** Disabled rules (applied to dates) */
|
|
477
477
|
disabled?: DisabledRule[] | boolean;
|
|
478
|
-
/**
|
|
478
|
+
/** Read-only */
|
|
479
479
|
readOnly?: boolean;
|
|
480
|
-
/**
|
|
480
|
+
/** Week start day */
|
|
481
481
|
weekStartsOn?: WeekStartsOn;
|
|
482
|
-
/**
|
|
482
|
+
/** Date+time display format (for Input) */
|
|
483
483
|
displayFormat?: string;
|
|
484
484
|
/** BCP 47 locale */
|
|
485
485
|
locale?: string;
|
|
486
|
-
/**
|
|
486
|
+
/** Date adapter */
|
|
487
487
|
adapter?: DateAdapter;
|
|
488
|
-
/**
|
|
488
|
+
/** Child components */
|
|
489
489
|
children: ReactNode;
|
|
490
490
|
}
|
|
491
491
|
/**
|
|
492
|
-
* DateTimePicker.Root — DatePicker + TimePicker
|
|
492
|
+
* DateTimePicker.Root — Combined DatePicker + TimePicker component.
|
|
493
493
|
*
|
|
494
|
-
*
|
|
495
|
-
* DatePickerContext
|
|
496
|
-
*
|
|
497
|
-
* 그대로 재사용할 수 있다.
|
|
494
|
+
* Manages a single ISO datetime as the source of truth while providing both
|
|
495
|
+
* DatePickerContext and TimePickerContext internally. This lets existing
|
|
496
|
+
* components such as DatePicker.Calendar and TimePicker.HourList be reused as-is.
|
|
498
497
|
*
|
|
499
|
-
*
|
|
500
|
-
* - Calendar
|
|
501
|
-
* - TimePicker
|
|
502
|
-
* - Escape /
|
|
498
|
+
* Key behavior:
|
|
499
|
+
* - Clicking a day in Calendar -> changes only the date, preserves the time, keeps popover open
|
|
500
|
+
* - Changing time in TimePicker -> changes only the time, preserves the date
|
|
501
|
+
* - Escape / outside click -> close the popover (commit)
|
|
503
502
|
*/
|
|
504
503
|
declare function DateTimePickerRoot({ value: controlledValue, defaultValue, onChange, format, step, disabled, readOnly, weekStartsOn, displayFormat, locale, adapter, children, }: DateTimePickerRootProps): react_jsx_runtime.JSX.Element;
|
|
505
504
|
|
|
@@ -507,12 +506,11 @@ interface DateTimePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputEle
|
|
|
507
506
|
}
|
|
508
507
|
|
|
509
508
|
/**
|
|
510
|
-
* DateTimePicker —
|
|
509
|
+
* DateTimePicker — Combined component for selecting both date and time.
|
|
511
510
|
*
|
|
512
|
-
*
|
|
513
|
-
* DatePickerContext
|
|
514
|
-
*
|
|
515
|
-
* 그대로 동작한다.
|
|
511
|
+
* Manages a single ISO datetime as the source of truth while providing both
|
|
512
|
+
* DatePickerContext and TimePickerContext internally. This lets existing
|
|
513
|
+
* components such as DatePicker.Calendar and TimePicker.HourList work as-is.
|
|
516
514
|
*
|
|
517
515
|
* @example
|
|
518
516
|
* ```tsx
|
|
@@ -526,7 +524,7 @@ interface DateTimePickerInputProps extends Omit<InputHTMLAttributes<HTMLInputEle
|
|
|
526
524
|
* </DateTimePicker>
|
|
527
525
|
* ```
|
|
528
526
|
*
|
|
529
|
-
* @example 12
|
|
527
|
+
* @example 12-hour mode
|
|
530
528
|
* ```tsx
|
|
531
529
|
* <DateTimePicker value={dt} onChange={setDt} format="12h" step={15}>
|
|
532
530
|
* <DateTimePicker.Input />
|
|
@@ -551,54 +549,54 @@ declare const DateTimePicker: typeof DateTimePickerRoot & {
|
|
|
551
549
|
};
|
|
552
550
|
|
|
553
551
|
interface UseDatePickerOptions {
|
|
554
|
-
/**
|
|
552
|
+
/** Selected date (controlled mode) */
|
|
555
553
|
value?: ISODateString | null;
|
|
556
|
-
/**
|
|
554
|
+
/** Initial date (uncontrolled mode) */
|
|
557
555
|
defaultValue?: ISODateString;
|
|
558
|
-
/**
|
|
556
|
+
/** Callback fired when the date changes */
|
|
559
557
|
onChange?: (value: ISODateString | null) => void;
|
|
560
|
-
/**
|
|
558
|
+
/** Rules that mark days as disabled */
|
|
561
559
|
disabled?: DisabledRule[];
|
|
562
|
-
/**
|
|
560
|
+
/** Day the week starts on */
|
|
563
561
|
weekStartsOn?: WeekStartsOn;
|
|
564
|
-
/**
|
|
562
|
+
/** Date adapter */
|
|
565
563
|
adapter?: DateAdapter;
|
|
566
564
|
}
|
|
567
565
|
interface UseDatePickerReturn {
|
|
568
|
-
/**
|
|
566
|
+
/** Currently selected date (ISO string) */
|
|
569
567
|
value: ISODateString | null;
|
|
570
|
-
/**
|
|
568
|
+
/** Whether the popover is open */
|
|
571
569
|
isOpen: boolean;
|
|
572
|
-
/**
|
|
570
|
+
/** Open the popover */
|
|
573
571
|
open: () => void;
|
|
574
|
-
/**
|
|
572
|
+
/** Close the popover */
|
|
575
573
|
close: () => void;
|
|
576
|
-
/**
|
|
574
|
+
/** Toggle the popover */
|
|
577
575
|
toggle: () => void;
|
|
578
|
-
/**
|
|
576
|
+
/** Select a date */
|
|
579
577
|
selectDate: (iso: ISODateString | null) => void;
|
|
580
|
-
/**
|
|
578
|
+
/** Month currently displayed (ISO string) */
|
|
581
579
|
viewMonth: ISODateString;
|
|
582
|
-
/**
|
|
580
|
+
/** Change the displayed month */
|
|
583
581
|
setViewMonth: (iso: ISODateString) => void;
|
|
584
|
-
/**
|
|
582
|
+
/** Calendar grid data */
|
|
585
583
|
calendar: CalendarGrid;
|
|
586
|
-
/**
|
|
584
|
+
/** Currently focused date */
|
|
587
585
|
focusedDate: ISODateString;
|
|
588
|
-
/**
|
|
586
|
+
/** Update the focused date */
|
|
589
587
|
setFocusedDate: (iso: ISODateString) => void;
|
|
590
|
-
/**
|
|
588
|
+
/** Move to the previous month */
|
|
591
589
|
previousMonth: () => void;
|
|
592
|
-
/**
|
|
590
|
+
/** Move to the next month */
|
|
593
591
|
nextMonth: () => void;
|
|
594
|
-
/**
|
|
592
|
+
/** Unique ID */
|
|
595
593
|
pickerId: string;
|
|
596
|
-
/**
|
|
594
|
+
/** Date adapter */
|
|
597
595
|
adapter: DateAdapter;
|
|
598
596
|
}
|
|
599
597
|
/**
|
|
600
|
-
*
|
|
601
|
-
*
|
|
598
|
+
* Hook that manages DatePicker state.
|
|
599
|
+
* Use this when you want to implement a fully custom UI without the built-in components.
|
|
602
600
|
*
|
|
603
601
|
* @example
|
|
604
602
|
* ```tsx
|
|
@@ -606,66 +604,66 @@ interface UseDatePickerReturn {
|
|
|
606
604
|
* const { value, isOpen, calendar, open, selectDate } = useDatePicker({
|
|
607
605
|
* onChange: (iso) => console.log(iso),
|
|
608
606
|
* });
|
|
609
|
-
* // ...
|
|
607
|
+
* // ... custom rendering
|
|
610
608
|
* }
|
|
611
609
|
* ```
|
|
612
610
|
*/
|
|
613
611
|
declare function useDatePicker(options?: UseDatePickerOptions): UseDatePickerReturn;
|
|
614
612
|
|
|
615
|
-
/**
|
|
613
|
+
/** Which part to select next (start | end) */
|
|
616
614
|
type RangeSelectingTarget = 'start' | 'end';
|
|
617
615
|
|
|
618
616
|
interface UseRangePickerOptions {
|
|
619
|
-
/**
|
|
617
|
+
/** Selected range (controlled mode) */
|
|
620
618
|
value?: DateRange;
|
|
621
|
-
/**
|
|
619
|
+
/** Initial range (uncontrolled mode) */
|
|
622
620
|
defaultValue?: DateRange;
|
|
623
|
-
/**
|
|
621
|
+
/** Callback fired when the range changes */
|
|
624
622
|
onChange?: (range: DateRange) => void;
|
|
625
|
-
/**
|
|
623
|
+
/** Rules that mark days as disabled */
|
|
626
624
|
disabled?: DisabledRule[];
|
|
627
|
-
/**
|
|
625
|
+
/** Day the week starts on */
|
|
628
626
|
weekStartsOn?: WeekStartsOn;
|
|
629
|
-
/**
|
|
627
|
+
/** Date adapter */
|
|
630
628
|
adapter?: DateAdapter;
|
|
631
629
|
}
|
|
632
630
|
interface UseRangePickerReturn {
|
|
633
|
-
/**
|
|
631
|
+
/** Currently selected range */
|
|
634
632
|
value: DateRange;
|
|
635
|
-
/**
|
|
633
|
+
/** Which endpoint will be selected next */
|
|
636
634
|
selectingTarget: RangeSelectingTarget;
|
|
637
|
-
/**
|
|
635
|
+
/** Handler for clicking a single date */
|
|
638
636
|
selectDate: (iso: ISODateString) => void;
|
|
639
|
-
/**
|
|
637
|
+
/** Set the range directly */
|
|
640
638
|
setRange: (range: DateRange) => void;
|
|
641
|
-
/**
|
|
639
|
+
/** Whether the popover is open */
|
|
642
640
|
isOpen: boolean;
|
|
643
641
|
open: () => void;
|
|
644
642
|
close: () => void;
|
|
645
643
|
toggle: () => void;
|
|
646
|
-
/**
|
|
644
|
+
/** Hovered date (for range preview) */
|
|
647
645
|
hoverDate: ISODateString | null;
|
|
648
646
|
setHoverDate: (iso: ISODateString | null) => void;
|
|
649
|
-
/**
|
|
647
|
+
/** Month currently displayed */
|
|
650
648
|
viewMonth: ISODateString;
|
|
651
649
|
setViewMonth: (iso: ISODateString) => void;
|
|
652
|
-
/**
|
|
650
|
+
/** Calendar grid */
|
|
653
651
|
calendar: CalendarGrid;
|
|
654
|
-
/**
|
|
652
|
+
/** Currently focused date */
|
|
655
653
|
focusedDate: ISODateString;
|
|
656
654
|
setFocusedDate: (iso: ISODateString) => void;
|
|
657
|
-
/**
|
|
655
|
+
/** Move to the previous month */
|
|
658
656
|
previousMonth: () => void;
|
|
659
|
-
/**
|
|
657
|
+
/** Move to the next month */
|
|
660
658
|
nextMonth: () => void;
|
|
661
|
-
/**
|
|
659
|
+
/** Unique ID */
|
|
662
660
|
pickerId: string;
|
|
663
|
-
/**
|
|
661
|
+
/** Date adapter */
|
|
664
662
|
adapter: DateAdapter;
|
|
665
663
|
}
|
|
666
664
|
/**
|
|
667
|
-
*
|
|
668
|
-
*
|
|
665
|
+
* Hook that manages RangePicker state.
|
|
666
|
+
* Use this when you want to build a fully custom UI without the built-in components.
|
|
669
667
|
*
|
|
670
668
|
* @example
|
|
671
669
|
* ```tsx
|
|
@@ -673,58 +671,58 @@ interface UseRangePickerReturn {
|
|
|
673
671
|
* const { value, calendar, selectDate, selectingTarget } = useRangePicker({
|
|
674
672
|
* onChange: (range) => console.log(range.start, range.end),
|
|
675
673
|
* });
|
|
676
|
-
* // selectingTarget === 'start'
|
|
677
|
-
* // selectingTarget === 'end'
|
|
674
|
+
* // selectingTarget === 'start' -> waiting for start date
|
|
675
|
+
* // selectingTarget === 'end' -> waiting for end date
|
|
678
676
|
* }
|
|
679
677
|
* ```
|
|
680
678
|
*/
|
|
681
679
|
declare function useRangePicker(options?: UseRangePickerOptions): UseRangePickerReturn;
|
|
682
680
|
|
|
683
681
|
interface UseTimePickerOptions {
|
|
684
|
-
/**
|
|
682
|
+
/** Selected time (controlled mode) */
|
|
685
683
|
value?: ISODateString | null;
|
|
686
|
-
/**
|
|
684
|
+
/** Initial time (uncontrolled mode) */
|
|
687
685
|
defaultValue?: ISODateString;
|
|
688
|
-
/**
|
|
686
|
+
/** Callback fired when the time changes */
|
|
689
687
|
onChange?: (value: ISODateString | null) => void;
|
|
690
|
-
/**
|
|
688
|
+
/** 12h or 24h format */
|
|
691
689
|
format?: TimePickerFormat;
|
|
692
|
-
/**
|
|
690
|
+
/** Minute step */
|
|
693
691
|
step?: number;
|
|
694
|
-
/**
|
|
692
|
+
/** Whether seconds are shown */
|
|
695
693
|
withSeconds?: boolean;
|
|
696
694
|
}
|
|
697
695
|
interface UseTimePickerReturn {
|
|
698
|
-
/**
|
|
696
|
+
/** Current ISO datetime value */
|
|
699
697
|
value: ISODateString | null;
|
|
700
|
-
/**
|
|
698
|
+
/** Current time (TimeValue) */
|
|
701
699
|
currentTime: TimeValue;
|
|
702
|
-
/**
|
|
700
|
+
/** Update part of the time */
|
|
703
701
|
setTime: (partial: Partial<TimeValue>) => void;
|
|
704
|
-
/**
|
|
702
|
+
/** Set the hour directly (1-12 in 12h mode, 0-23 in 24h mode) */
|
|
705
703
|
setHour: (hour: number) => void;
|
|
706
|
-
/**
|
|
704
|
+
/** Set the minute */
|
|
707
705
|
setMinute: (minute: number) => void;
|
|
708
|
-
/**
|
|
706
|
+
/** Set the second */
|
|
709
707
|
setSecond: (second: number) => void;
|
|
710
|
-
/** AM/PM
|
|
708
|
+
/** Change AM/PM (12h mode only) */
|
|
711
709
|
setPeriod: (period: 'AM' | 'PM') => void;
|
|
712
|
-
/**
|
|
710
|
+
/** Available hour list */
|
|
713
711
|
availableHours: number[];
|
|
714
|
-
/**
|
|
712
|
+
/** Available minute list (respects step) */
|
|
715
713
|
availableMinutes: number[];
|
|
716
|
-
/**
|
|
714
|
+
/** 12h or 24h mode */
|
|
717
715
|
format: TimePickerFormat;
|
|
718
|
-
/**
|
|
716
|
+
/** Hour value for display (1-12 in 12h mode) */
|
|
719
717
|
displayHour: number;
|
|
720
|
-
/**
|
|
718
|
+
/** Current AM/PM (12h mode only, null in 24h) */
|
|
721
719
|
period: 'AM' | 'PM' | null;
|
|
722
|
-
/**
|
|
720
|
+
/** Unique ID */
|
|
723
721
|
pickerId: string;
|
|
724
722
|
}
|
|
725
723
|
/**
|
|
726
|
-
*
|
|
727
|
-
*
|
|
724
|
+
* Hook that manages TimePicker state.
|
|
725
|
+
* Use this when you want to build a fully custom UI without the built-in components.
|
|
728
726
|
*
|
|
729
727
|
* @example
|
|
730
728
|
* ```tsx
|