@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.
Files changed (125) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +67 -58
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +160 -162
  5. package/dist/index.d.ts +742 -17
  6. package/dist/index.js +2137 -11
  7. package/dist/index.js.map +1 -1
  8. package/package.json +2 -2
  9. package/dist/components/DatePicker/Calendar.d.ts +0 -23
  10. package/dist/components/DatePicker/Calendar.d.ts.map +0 -1
  11. package/dist/components/DatePicker/Calendar.js +0 -127
  12. package/dist/components/DatePicker/Calendar.js.map +0 -1
  13. package/dist/components/DatePicker/Input.d.ts +0 -7
  14. package/dist/components/DatePicker/Input.d.ts.map +0 -1
  15. package/dist/components/DatePicker/Input.js +0 -73
  16. package/dist/components/DatePicker/Input.js.map +0 -1
  17. package/dist/components/DatePicker/MonthGrid.d.ts +0 -34
  18. package/dist/components/DatePicker/MonthGrid.d.ts.map +0 -1
  19. package/dist/components/DatePicker/MonthGrid.js +0 -54
  20. package/dist/components/DatePicker/MonthGrid.js.map +0 -1
  21. package/dist/components/DatePicker/Popover.d.ts +0 -6
  22. package/dist/components/DatePicker/Popover.d.ts.map +0 -1
  23. package/dist/components/DatePicker/Popover.js +0 -72
  24. package/dist/components/DatePicker/Popover.js.map +0 -1
  25. package/dist/components/DatePicker/Root.d.ts +0 -46
  26. package/dist/components/DatePicker/Root.d.ts.map +0 -1
  27. package/dist/components/DatePicker/Root.js +0 -90
  28. package/dist/components/DatePicker/Root.js.map +0 -1
  29. package/dist/components/DatePicker/Trigger.d.ts +0 -6
  30. package/dist/components/DatePicker/Trigger.d.ts.map +0 -1
  31. package/dist/components/DatePicker/Trigger.js +0 -21
  32. package/dist/components/DatePicker/Trigger.js.map +0 -1
  33. package/dist/components/DatePicker/YearGrid.d.ts +0 -29
  34. package/dist/components/DatePicker/YearGrid.d.ts.map +0 -1
  35. package/dist/components/DatePicker/YearGrid.js +0 -53
  36. package/dist/components/DatePicker/YearGrid.js.map +0 -1
  37. package/dist/components/DatePicker/index.d.ts +0 -48
  38. package/dist/components/DatePicker/index.d.ts.map +0 -1
  39. package/dist/components/DatePicker/index.js +0 -42
  40. package/dist/components/DatePicker/index.js.map +0 -1
  41. package/dist/components/DateTimePicker/Input.d.ts +0 -12
  42. package/dist/components/DateTimePicker/Input.d.ts.map +0 -1
  43. package/dist/components/DateTimePicker/Input.js +0 -41
  44. package/dist/components/DateTimePicker/Input.js.map +0 -1
  45. package/dist/components/DateTimePicker/Root.d.ts +0 -60
  46. package/dist/components/DateTimePicker/Root.d.ts.map +0 -1
  47. package/dist/components/DateTimePicker/Root.js +0 -140
  48. package/dist/components/DateTimePicker/Root.js.map +0 -1
  49. package/dist/components/DateTimePicker/index.d.ts +0 -55
  50. package/dist/components/DateTimePicker/index.d.ts.map +0 -1
  51. package/dist/components/DateTimePicker/index.js +0 -55
  52. package/dist/components/DateTimePicker/index.js.map +0 -1
  53. package/dist/components/RangePicker/Calendar.d.ts +0 -24
  54. package/dist/components/RangePicker/Calendar.d.ts.map +0 -1
  55. package/dist/components/RangePicker/Calendar.js +0 -134
  56. package/dist/components/RangePicker/Calendar.js.map +0 -1
  57. package/dist/components/RangePicker/Input.d.ts +0 -14
  58. package/dist/components/RangePicker/Input.d.ts.map +0 -1
  59. package/dist/components/RangePicker/Input.js +0 -38
  60. package/dist/components/RangePicker/Input.js.map +0 -1
  61. package/dist/components/RangePicker/Popover.d.ts +0 -6
  62. package/dist/components/RangePicker/Popover.d.ts.map +0 -1
  63. package/dist/components/RangePicker/Popover.js +0 -71
  64. package/dist/components/RangePicker/Popover.js.map +0 -1
  65. package/dist/components/RangePicker/Presets.d.ts +0 -49
  66. package/dist/components/RangePicker/Presets.d.ts.map +0 -1
  67. package/dist/components/RangePicker/Presets.js +0 -117
  68. package/dist/components/RangePicker/Presets.js.map +0 -1
  69. package/dist/components/RangePicker/Root.d.ts +0 -40
  70. package/dist/components/RangePicker/Root.d.ts.map +0 -1
  71. package/dist/components/RangePicker/Root.js +0 -138
  72. package/dist/components/RangePicker/Root.js.map +0 -1
  73. package/dist/components/RangePicker/index.d.ts +0 -48
  74. package/dist/components/RangePicker/index.d.ts.map +0 -1
  75. package/dist/components/RangePicker/index.js +0 -43
  76. package/dist/components/RangePicker/index.js.map +0 -1
  77. package/dist/components/TimePicker/AmPmToggle.d.ts +0 -15
  78. package/dist/components/TimePicker/AmPmToggle.d.ts.map +0 -1
  79. package/dist/components/TimePicker/AmPmToggle.js +0 -29
  80. package/dist/components/TimePicker/AmPmToggle.js.map +0 -1
  81. package/dist/components/TimePicker/HourList.d.ts +0 -18
  82. package/dist/components/TimePicker/HourList.d.ts.map +0 -1
  83. package/dist/components/TimePicker/HourList.js +0 -71
  84. package/dist/components/TimePicker/HourList.js.map +0 -1
  85. package/dist/components/TimePicker/Input.d.ts +0 -9
  86. package/dist/components/TimePicker/Input.d.ts.map +0 -1
  87. package/dist/components/TimePicker/Input.js +0 -37
  88. package/dist/components/TimePicker/Input.js.map +0 -1
  89. package/dist/components/TimePicker/MinuteList.d.ts +0 -15
  90. package/dist/components/TimePicker/MinuteList.d.ts.map +0 -1
  91. package/dist/components/TimePicker/MinuteList.js +0 -62
  92. package/dist/components/TimePicker/MinuteList.js.map +0 -1
  93. package/dist/components/TimePicker/Root.d.ts +0 -38
  94. package/dist/components/TimePicker/Root.d.ts.map +0 -1
  95. package/dist/components/TimePicker/Root.js +0 -40
  96. package/dist/components/TimePicker/Root.js.map +0 -1
  97. package/dist/components/TimePicker/index.d.ts +0 -32
  98. package/dist/components/TimePicker/index.d.ts.map +0 -1
  99. package/dist/components/TimePicker/index.js +0 -27
  100. package/dist/components/TimePicker/index.js.map +0 -1
  101. package/dist/context/DatePickerContext.d.ts +0 -49
  102. package/dist/context/DatePickerContext.d.ts.map +0 -1
  103. package/dist/context/DatePickerContext.js +0 -18
  104. package/dist/context/DatePickerContext.js.map +0 -1
  105. package/dist/context/RangePickerContext.d.ts +0 -53
  106. package/dist/context/RangePickerContext.d.ts.map +0 -1
  107. package/dist/context/RangePickerContext.js +0 -18
  108. package/dist/context/RangePickerContext.js.map +0 -1
  109. package/dist/context/TimePickerContext.d.ts +0 -29
  110. package/dist/context/TimePickerContext.d.ts.map +0 -1
  111. package/dist/context/TimePickerContext.js +0 -18
  112. package/dist/context/TimePickerContext.js.map +0 -1
  113. package/dist/hooks/useDatePicker.d.ts +0 -63
  114. package/dist/hooks/useDatePicker.d.ts.map +0 -1
  115. package/dist/hooks/useDatePicker.js +0 -82
  116. package/dist/hooks/useDatePicker.js.map +0 -1
  117. package/dist/hooks/useRangePicker.d.ts +0 -67
  118. package/dist/hooks/useRangePicker.d.ts.map +0 -1
  119. package/dist/hooks/useRangePicker.js +0 -116
  120. package/dist/hooks/useRangePicker.js.map +0 -1
  121. package/dist/hooks/useTimePicker.d.ts +0 -63
  122. package/dist/hooks/useTimePicker.d.ts.map +0 -1
  123. package/dist/hooks/useTimePicker.js +0 -69
  124. package/dist/hooks/useTimePicker.js.map +0 -1
  125. 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 Root 컴포넌트 props.
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
- /** 선택된 날짜 (제어 모드, ISO 8601 UTC). `null`이면 상태. */
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 (예: "en-US", "ko-KR", "ja-JP") */
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
- /** 타이틀("January 2026") 클릭 콜백. Month/Year 전환에 사용. */
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
- /** 선택 콜백. 일반적으로 day 뷰로 전환한다. */
90
+ /** Called when a month is selected. Typically used to switch back to the day view. */
91
91
  onSelect?: () => void;
92
- /** 타이틀(년도) 클릭 콜백. Year 뷰로 전환할 사용. */
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 — 12개월 그리드에서 월을 빠르게 선택.
97
- * Calendar 타이틀 클릭 MonthGrid 표시 클릭 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
- /** 선택 콜백. 일반적으로 month 뷰로 전환한다. */
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 — 12년 단위 그리드에서 년도를 빠르게 선택.
128
- * MonthGrid 타이틀 클릭 YearGrid 표시 클릭 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
- /** 날짜 표시 포맷 (기본: 부모의 displayFormat) */
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 Root 컴포넌트 props.
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
- /** 선택된 범위 (제어 모드). `{ start, end }` 형태의 ISO string 또는 null. */
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
- * 내부에 `RangePicker.Preset` 버튼들을 배치한다.
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
- /** 미리 정의된 프리셋 또는 직접 range 전달 시 생략 */
274
+ /** Predefined preset key; omit when passing `range` directly */
275
275
  value?: PresetKey;
276
- /** 직접 범위를 지정할 사용 (value 대신) */
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` (프리셋 ) 또는 `range` (직접 범위)를 전달한다.
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
- /** 어떤 부분의 입력인지 (start | end) */
298
+ /** Which part this input represents (start | end) */
299
299
  part: RangeInputPart;
300
- /** 날짜 표시 포맷 (기본: 부모의 displayFormat) */
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 Root 컴포넌트 props.
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
- /** 선택된 시간 (제어 모드, ISO 8601 UTC). 날짜 부분은 무시되고 시간만 사용. */
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시간제 또는 24시간제 */
364
+ /** 12-hour or 24-hour mode */
365
365
  format?: TimePickerFormat;
366
- /** step (1, 5, 10, 15, 30) */
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 표준 listbox: <li role="option">이 직접 인터랙티브 요소.
392
- * 키보드: ↑/↓로 이동, Enter/Space 선택.
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
- * step prop에 따라 표시되는 분이 결정된다 (예: step=15 [0, 15, 30, 45]).
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 — 12시간제 모드에서만 표시되는 AM/PM 전환 버튼.
420
- * 24시간제에서는 null 반환한다.
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 Root 컴포넌트 props.
451
- * 내부적으로 DatePickerContext + TimePickerContext 동시에 제공 (Context Bridging).
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
- /** 선택된 datetime (제어 모드, ISO 8601 UTC). 날짜+시간 모두 포함. */
466
+ /** Selected datetime (controlled, ISO 8601 UTC). Includes both date and time. */
467
467
  value?: ISODateString | null;
468
- /** 초기 datetime (비제어 모드) */
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/24시간제 */
472
+ /** 12-hour or 24-hour mode */
473
473
  format?: TimePickerFormat;
474
- /** step (1, 5, 15, 30) */
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
- /** 날짜·시간 표시 포맷 (Input) */
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
- * 단일 ISO datetime source of truth 관리하고, 내부적으로
495
- * DatePickerContext TimePickerContext 동시에 제공한다.
496
- * 따라서 DatePicker.Calendar, TimePicker.HourList 기존 컴포넌트를
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
- * 단일 ISO datetime source of truth 관리하며, 내부적으로
513
- * DatePickerContext TimePickerContext 동시에 제공한다.
514
- * 따라서 DatePicker.Calendar, TimePicker.HourList 기존 컴포넌트가
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
- /** 현재 선택된 날짜 (ISO string) */
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
- /** 현재 표시 중인 (ISO string) */
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
- /** 고유 ID */
592
+ /** Unique ID */
595
593
  pickerId: string;
596
- /** 날짜 어댑터 */
594
+ /** Date adapter */
597
595
  adapter: DateAdapter;
598
596
  }
599
597
  /**
600
- * DatePicker의 상태를 관리하는 Hook.
601
- * 컴포넌트를 사용하지 않고 완전 커스텀 UI 구현할 사용한다.
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
- /** 다음에 선택할 부분 (start | end) */
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
- /** hover 날짜 (미리보기용) */
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
- /** 고유 ID */
659
+ /** Unique ID */
662
660
  pickerId: string;
663
- /** 어댑터 */
661
+ /** Date adapter */
664
662
  adapter: DateAdapter;
665
663
  }
666
664
  /**
667
- * RangePicker 상태 관리 Hook.
668
- * 컴포넌트 없이 완전 커스텀 UI 만들 사용한다.
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
- /** 12/24시간제 */
688
+ /** 12h or 24h format */
691
689
  format?: TimePickerFormat;
692
- /** step */
690
+ /** Minute step */
693
691
  step?: number;
694
- /** 표시 */
692
+ /** Whether seconds are shown */
695
693
  withSeconds?: boolean;
696
694
  }
697
695
  interface UseTimePickerReturn {
698
- /** 현재 ISO datetime */
696
+ /** Current ISO datetime value */
699
697
  value: ISODateString | null;
700
- /** 현재 시간 (TimeValue) */
698
+ /** Current time (TimeValue) */
701
699
  currentTime: TimeValue;
702
- /** 시간 부분 변경 */
700
+ /** Update part of the time */
703
701
  setTime: (partial: Partial<TimeValue>) => void;
704
- /** 시(hour) 직접 설정 (12h 모드면 1-12, 24h 모드면 0-23) */
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 변경 (12h 모드 전용) */
708
+ /** Change AM/PM (12h mode only) */
711
709
  setPeriod: (period: 'AM' | 'PM') => void;
712
- /** 사용 가능한 리스트 */
710
+ /** Available hour list */
713
711
  availableHours: number[];
714
- /** 사용 가능한 리스트 (step 적용) */
712
+ /** Available minute list (respects step) */
715
713
  availableMinutes: number[];
716
- /** 12/24h 모드 */
714
+ /** 12h or 24h mode */
717
715
  format: TimePickerFormat;
718
- /** 현재 표시용 (12h 모드면 1-12) */
716
+ /** Hour value for display (1-12 in 12h mode) */
719
717
  displayHour: number;
720
- /** 현재 AM/PM (12h 모드 전용, 24h면 null) */
718
+ /** Current AM/PM (12h mode only, null in 24h) */
721
719
  period: 'AM' | 'PM' | null;
722
- /** 고유 ID */
720
+ /** Unique ID */
723
721
  pickerId: string;
724
722
  }
725
723
  /**
726
- * TimePicker 상태 관리 Hook.
727
- * 컴포넌트 없이 완전 커스텀 UI 구현할 사용한다.
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