@fangxinyan/lumina 0.6.14 → 0.6.16

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 (41) hide show
  1. package/dist/{Calendar-RUTPKREW.css → Calendar-I6NHCXIB.css} +65 -0
  2. package/dist/Calendar.cjs +2 -2
  3. package/dist/Calendar.d.cts +2 -0
  4. package/dist/Calendar.d.ts +2 -0
  5. package/dist/Calendar.js +1 -1
  6. package/dist/DatePicker-VDVSIARF.css +60 -0
  7. package/dist/DatePicker.cjs +16 -0
  8. package/dist/DatePicker.d.cts +49 -0
  9. package/dist/DatePicker.d.ts +49 -0
  10. package/dist/DatePicker.js +7 -0
  11. package/dist/DateTimePicker-DRX7XA74.css +224 -0
  12. package/dist/DateTimePicker.cjs +16 -0
  13. package/dist/DateTimePicker.d.cts +61 -0
  14. package/dist/DateTimePicker.d.ts +61 -0
  15. package/dist/DateTimePicker.js +7 -0
  16. package/dist/TimePicker-ZBJOXH3U.css +151 -0
  17. package/dist/TimePicker.cjs +15 -0
  18. package/dist/TimePicker.d.cts +63 -0
  19. package/dist/TimePicker.d.ts +63 -0
  20. package/dist/TimePicker.js +6 -0
  21. package/dist/chunk-32FWB5NO.cjs +505 -0
  22. package/dist/chunk-4KDABJSY.cjs +241 -0
  23. package/dist/chunk-DU4VSUBF.js +393 -0
  24. package/dist/chunk-FKP5D5IS.js +271 -0
  25. package/dist/chunk-I7TOBKJO.js +219 -0
  26. package/dist/chunk-KHRYPNUV.cjs +293 -0
  27. package/dist/chunk-SFEWMO45.cjs +415 -0
  28. package/dist/chunk-YPE6CDXQ.js +483 -0
  29. package/dist/index.cjs +66 -51
  30. package/dist/index.d.cts +4 -1
  31. package/dist/index.d.ts +4 -1
  32. package/dist/index.js +15 -12
  33. package/dist/styles.css +439 -0
  34. package/docs/llms/calendar.md +2 -1
  35. package/docs/llms/datepicker.md +69 -0
  36. package/docs/llms/datetimepicker.md +83 -0
  37. package/docs/llms/timepicker.md +81 -0
  38. package/docs/llms.md +5 -2
  39. package/package.json +7 -3
  40. package/dist/chunk-XG5D777V.js +0 -90
  41. package/dist/chunk-ZBTGYTQE.cjs +0 -112
@@ -19,6 +19,36 @@
19
19
  transition: all var(--dur-fast) var(--ease);
20
20
  }
21
21
  .calendar-title:hover { background: var(--bg); box-shadow: var(--neu-shadow-subtle); }
22
+ .calendar-title.static {
23
+ cursor: default;
24
+ }
25
+ .calendar-title.static:hover {
26
+ background: transparent;
27
+ box-shadow: none;
28
+ }
29
+ .calendar-title-group {
30
+ display: inline-flex;
31
+ align-items: center;
32
+ gap: var(--gap-1);
33
+ }
34
+ .calendar-title-part {
35
+ border: none;
36
+ border-radius: var(--r-sm);
37
+ padding: 6px 8px;
38
+ background: transparent;
39
+ color: var(--fg);
40
+ cursor: pointer;
41
+ font: 600 14px var(--font-sans);
42
+ transition:
43
+ color var(--dur-fast) var(--ease),
44
+ background var(--dur-fast) var(--ease),
45
+ box-shadow var(--dur-fast) var(--ease);
46
+ }
47
+ .calendar-title-part:hover {
48
+ color: var(--accent-ink);
49
+ background: var(--bg);
50
+ box-shadow: var(--neu-shadow-subtle);
51
+ }
22
52
  .calendar-grid {
23
53
  display: grid;
24
54
  grid-template-columns: repeat(7, 1fr);
@@ -63,3 +93,38 @@
63
93
  }
64
94
  .calendar-cell.disabled { color: var(--fg-subtle); opacity: 0.4; cursor: not-allowed; }
65
95
  .calendar-cell.disabled:hover { background: transparent; box-shadow: none; }
96
+ .calendar-select-grid {
97
+ display: grid;
98
+ grid-template-columns: repeat(3, minmax(0, 1fr));
99
+ gap: var(--gap-2);
100
+ min-height: 244px;
101
+ align-content: center;
102
+ }
103
+ .calendar-select-option {
104
+ height: 42px;
105
+ border: none;
106
+ border-radius: var(--r-sm);
107
+ background: transparent;
108
+ color: var(--fg);
109
+ cursor: pointer;
110
+ font: 600 var(--fs-md) var(--font-mono);
111
+ transition:
112
+ color var(--dur-fast) var(--ease),
113
+ background var(--dur-fast) var(--ease),
114
+ box-shadow var(--dur-fast) var(--ease);
115
+ }
116
+ .calendar-select-option:hover:not(:disabled) {
117
+ color: var(--accent-ink);
118
+ background: var(--bg);
119
+ box-shadow: var(--neu-shadow-subtle);
120
+ }
121
+ .calendar-select-option.selected {
122
+ color: var(--accent-ink);
123
+ background: var(--bg);
124
+ box-shadow: var(--neu-shadow-inset);
125
+ }
126
+ .calendar-select-option.disabled {
127
+ color: var(--fg-subtle);
128
+ cursor: not-allowed;
129
+ opacity: 0.4;
130
+ }
package/dist/Calendar.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  'use strict';
2
2
 
3
- var chunkZBTGYTQE_cjs = require('./chunk-ZBTGYTQE.cjs');
3
+ var chunk4KDABJSY_cjs = require('./chunk-4KDABJSY.cjs');
4
4
  require('./chunk-QMX67CVT.cjs');
5
5
 
6
6
 
7
7
 
8
8
  Object.defineProperty(exports, "Calendar", {
9
9
  enumerable: true,
10
- get: function () { return chunkZBTGYTQE_cjs.Calendar; }
10
+ get: function () { return chunk4KDABJSY_cjs.Calendar; }
11
11
  });
@@ -4,6 +4,8 @@ interface CalendarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "defa
4
4
  value?: Date;
5
5
  defaultValue?: Date;
6
6
  onChange?: (date: Date) => void;
7
+ /** Sync the visible month to this date when it changes. */
8
+ viewDate?: Date;
7
9
  /** Min selectable date. */
8
10
  min?: Date;
9
11
  /** Max selectable date. */
@@ -4,6 +4,8 @@ interface CalendarProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "defa
4
4
  value?: Date;
5
5
  defaultValue?: Date;
6
6
  onChange?: (date: Date) => void;
7
+ /** Sync the visible month to this date when it changes. */
8
+ viewDate?: Date;
7
9
  /** Min selectable date. */
8
10
  min?: Date;
9
11
  /** Max selectable date. */
package/dist/Calendar.js CHANGED
@@ -1,2 +1,2 @@
1
- export { Calendar } from './chunk-XG5D777V.js';
1
+ export { Calendar } from './chunk-I7TOBKJO.js';
2
2
  import './chunk-FDZG27IG.js';
@@ -0,0 +1,60 @@
1
+ /* ============ DatePicker ============ */
2
+ .date-picker {
3
+ position: relative;
4
+ display: inline-block;
5
+ width: 100%;
6
+ min-width: 180px;
7
+ }
8
+
9
+ .date-picker.disabled {
10
+ opacity: 0.55;
11
+ pointer-events: none;
12
+ }
13
+
14
+ .date-picker.readonly .input-wrap {
15
+ cursor: default;
16
+ }
17
+
18
+ .date-picker .input-wrap {
19
+ width: 100%;
20
+ }
21
+
22
+ .date-picker.open .input-wrap {
23
+ box-shadow: var(--neu-shadow-inset);
24
+ }
25
+
26
+ .date-picker-panel {
27
+ position: fixed;
28
+ z-index: 1000;
29
+ width: 344px;
30
+ padding: var(--gap-3);
31
+ border-radius: var(--r-md);
32
+ background: var(--bg);
33
+ box-shadow: var(--neu-shadow-float);
34
+ animation: menuIn var(--dur) var(--ease);
35
+ }
36
+
37
+ .date-picker-panel .calendar {
38
+ width: 100%;
39
+ padding: 0;
40
+ background: transparent;
41
+ box-shadow: none;
42
+ }
43
+
44
+ .date-picker-panel .calendar-head {
45
+ padding: 0 0 var(--gap-3);
46
+ }
47
+
48
+ .date-picker-footer {
49
+ display: flex;
50
+ align-items: center;
51
+ gap: var(--gap-2);
52
+ margin-top: var(--gap-3);
53
+ padding-top: var(--gap-3);
54
+ border-top: 1px solid var(--divider);
55
+ }
56
+
57
+ .date-picker-footer-spacer {
58
+ flex: 1;
59
+ min-width: 0;
60
+ }
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var chunkKHRYPNUV_cjs = require('./chunk-KHRYPNUV.cjs');
4
+ require('./chunk-YB3IWIOJ.cjs');
5
+ require('./chunk-VS3I5OKA.cjs');
6
+ require('./chunk-RZEFKXL3.cjs');
7
+ require('./chunk-SW2HMNCA.cjs');
8
+ require('./chunk-4KDABJSY.cjs');
9
+ require('./chunk-QMX67CVT.cjs');
10
+
11
+
12
+
13
+ Object.defineProperty(exports, "DatePicker", {
14
+ enumerable: true,
15
+ get: function () { return chunkKHRYPNUV_cjs.DatePicker; }
16
+ });
@@ -0,0 +1,49 @@
1
+ import * as React from 'react';
2
+
3
+ type DatePickerFormat = "YYYY-MM-DD" | "YYYY/MM/DD" | "YYYY年MM月DD日";
4
+ type DatePickerSize = "sm" | "md" | "lg";
5
+ interface DatePickerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange"> {
6
+ /** Controlled selected date. Use `null` for an empty picker. */
7
+ value?: Date | null;
8
+ /** Initial selected date when uncontrolled. */
9
+ defaultValue?: Date | null;
10
+ /** Fires when the date changes or is cleared. */
11
+ onChange?: (date: Date | null, dateString: string) => void;
12
+ /** Display and input format. */
13
+ format?: DatePickerFormat | ((date: Date) => string);
14
+ placeholder?: string;
15
+ disabled?: boolean;
16
+ readOnly?: boolean;
17
+ invalid?: boolean;
18
+ size?: DatePickerSize;
19
+ /** Show a clear button when a date is selected. */
20
+ allowClear?: boolean;
21
+ /** Min selectable date. */
22
+ min?: Date;
23
+ /** Max selectable date. */
24
+ max?: Date;
25
+ /** Predicate that disables individual dates. */
26
+ disabledDate?: (date: Date) => boolean;
27
+ /** Where the panel appears relative to the trigger. */
28
+ placement?: "top" | "bottom" | "left" | "right";
29
+ /** Controlled panel open state. */
30
+ open?: boolean;
31
+ /** Initial panel open state when uncontrolled. */
32
+ defaultOpen?: boolean;
33
+ /** Called when panel open state changes. */
34
+ onOpenChange?: (open: boolean) => void;
35
+ /** Class for the popped-out panel. */
36
+ popupClassName?: string;
37
+ /** Alias for `popupClassName`. */
38
+ dropdownClassName?: string;
39
+ className?: string;
40
+ }
41
+ /**
42
+ * `DatePicker` — input-triggered date picker built on top of `Calendar`.
43
+ *
44
+ * @example
45
+ * <DatePicker value={date} onChange={setDate} allowClear />
46
+ */
47
+ declare const DatePicker: React.ForwardRefExoticComponent<DatePickerProps & React.RefAttributes<HTMLDivElement>>;
48
+
49
+ export { DatePicker, type DatePickerFormat, type DatePickerProps, type DatePickerSize };
@@ -0,0 +1,49 @@
1
+ import * as React from 'react';
2
+
3
+ type DatePickerFormat = "YYYY-MM-DD" | "YYYY/MM/DD" | "YYYY年MM月DD日";
4
+ type DatePickerSize = "sm" | "md" | "lg";
5
+ interface DatePickerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange"> {
6
+ /** Controlled selected date. Use `null` for an empty picker. */
7
+ value?: Date | null;
8
+ /** Initial selected date when uncontrolled. */
9
+ defaultValue?: Date | null;
10
+ /** Fires when the date changes or is cleared. */
11
+ onChange?: (date: Date | null, dateString: string) => void;
12
+ /** Display and input format. */
13
+ format?: DatePickerFormat | ((date: Date) => string);
14
+ placeholder?: string;
15
+ disabled?: boolean;
16
+ readOnly?: boolean;
17
+ invalid?: boolean;
18
+ size?: DatePickerSize;
19
+ /** Show a clear button when a date is selected. */
20
+ allowClear?: boolean;
21
+ /** Min selectable date. */
22
+ min?: Date;
23
+ /** Max selectable date. */
24
+ max?: Date;
25
+ /** Predicate that disables individual dates. */
26
+ disabledDate?: (date: Date) => boolean;
27
+ /** Where the panel appears relative to the trigger. */
28
+ placement?: "top" | "bottom" | "left" | "right";
29
+ /** Controlled panel open state. */
30
+ open?: boolean;
31
+ /** Initial panel open state when uncontrolled. */
32
+ defaultOpen?: boolean;
33
+ /** Called when panel open state changes. */
34
+ onOpenChange?: (open: boolean) => void;
35
+ /** Class for the popped-out panel. */
36
+ popupClassName?: string;
37
+ /** Alias for `popupClassName`. */
38
+ dropdownClassName?: string;
39
+ className?: string;
40
+ }
41
+ /**
42
+ * `DatePicker` — input-triggered date picker built on top of `Calendar`.
43
+ *
44
+ * @example
45
+ * <DatePicker value={date} onChange={setDate} allowClear />
46
+ */
47
+ declare const DatePicker: React.ForwardRefExoticComponent<DatePickerProps & React.RefAttributes<HTMLDivElement>>;
48
+
49
+ export { DatePicker, type DatePickerFormat, type DatePickerProps, type DatePickerSize };
@@ -0,0 +1,7 @@
1
+ export { DatePicker } from './chunk-FKP5D5IS.js';
2
+ import './chunk-DUFRASGO.js';
3
+ import './chunk-IOAOG5L7.js';
4
+ import './chunk-S7IHWY24.js';
5
+ import './chunk-IPSNC5VZ.js';
6
+ import './chunk-I7TOBKJO.js';
7
+ import './chunk-FDZG27IG.js';
@@ -0,0 +1,224 @@
1
+ /* ============ DateTimePicker ============ */
2
+ .date-time-picker {
3
+ position: relative;
4
+ display: inline-block;
5
+ width: 100%;
6
+ min-width: 220px;
7
+ }
8
+
9
+ .date-time-picker.disabled {
10
+ opacity: 0.55;
11
+ pointer-events: none;
12
+ }
13
+
14
+ .date-time-picker.readonly .input-wrap {
15
+ cursor: default;
16
+ }
17
+
18
+ .date-time-picker .input-wrap {
19
+ width: 100%;
20
+ }
21
+
22
+ .date-time-picker.open .input-wrap {
23
+ box-shadow: var(--neu-shadow-inset);
24
+ }
25
+
26
+ .date-time-picker-panel {
27
+ position: fixed;
28
+ z-index: 1000;
29
+ width: 476px;
30
+ padding: var(--gap-2) var(--gap-3);
31
+ border-radius: var(--r-md);
32
+ background: var(--bg);
33
+ box-shadow:
34
+ 0 calc(var(--shadow-offset) * 1.1) calc(var(--shadow-blur) * 1.3) color-mix(in oklch, var(--shadow-dark) 72%, transparent),
35
+ inset 0 0 0 1px var(--divider);
36
+ animation: menuIn var(--dur) var(--ease);
37
+ }
38
+
39
+ .date-time-picker-body {
40
+ display: grid;
41
+ grid-template-columns: 272px minmax(0, 168px);
42
+ gap: var(--gap-3);
43
+ align-items: start;
44
+ }
45
+
46
+ .date-time-picker-panel .calendar {
47
+ width: 100%;
48
+ padding: 0;
49
+ background: transparent;
50
+ box-shadow: none;
51
+ }
52
+
53
+ .date-time-picker-panel .calendar-head {
54
+ padding: 0 0 var(--gap-1);
55
+ }
56
+
57
+ .date-time-picker-panel .calendar-title {
58
+ padding: var(--gap-1) var(--gap-2);
59
+ font-size: var(--fs-sm);
60
+ }
61
+
62
+ .date-time-picker-panel .calendar-title-part {
63
+ padding: var(--gap-1) 6px;
64
+ font-size: var(--fs-sm);
65
+ }
66
+
67
+ .date-time-picker-panel .calendar-grid {
68
+ gap: 1px;
69
+ min-height: 222px;
70
+ }
71
+
72
+ .date-time-picker-panel .calendar-dow {
73
+ padding: var(--gap-1) 0;
74
+ }
75
+
76
+ .date-time-picker-panel .calendar-cell {
77
+ aspect-ratio: auto;
78
+ height: 32px;
79
+ font-size: var(--fs-xs);
80
+ border-radius: 7px;
81
+ }
82
+
83
+ .date-time-picker-panel .calendar-cell.today::after {
84
+ bottom: 3px;
85
+ }
86
+
87
+ .date-time-picker-panel .calendar-select-grid {
88
+ min-height: 222px;
89
+ gap: var(--gap-1);
90
+ }
91
+
92
+ .date-time-picker-panel .calendar-select-option {
93
+ height: 34px;
94
+ font-size: var(--fs-xs);
95
+ }
96
+
97
+ .date-time-picker-time {
98
+ min-width: 0;
99
+ }
100
+
101
+ .date-time-picker-time-columns {
102
+ display: grid;
103
+ grid-template-columns: repeat(3, minmax(0, 1fr));
104
+ padding: 8px;
105
+ border-radius: var(--r-sm);
106
+ background: var(--bg);
107
+ box-shadow: inset 0 0 0 1px var(--divider);
108
+ overflow: hidden;
109
+ }
110
+
111
+ .date-time-picker-panel.without-second .date-time-picker-time-columns {
112
+ grid-template-columns: repeat(2, minmax(0, 1fr));
113
+ }
114
+
115
+ .date-time-picker-time-column {
116
+ min-width: 0;
117
+ }
118
+
119
+ .date-time-picker-time-column + .date-time-picker-time-column {
120
+ border-left: 1px solid var(--divider);
121
+ }
122
+
123
+ .date-time-picker-time-label {
124
+ height: 20px;
125
+ display: grid;
126
+ place-items: center;
127
+ font-size: var(--fs-xs);
128
+ font-weight: 700;
129
+ color: var(--fg-muted);
130
+ }
131
+
132
+ .date-time-picker-time-list {
133
+ display: flex;
134
+ flex-direction: column;
135
+ gap: 4px;
136
+ height: 220px;
137
+ overflow-y: auto;
138
+ padding: calc((220px - 28px) / 2) 5px;
139
+ scroll-padding: calc((220px - 28px) / 2) 0;
140
+ scrollbar-width: none;
141
+ -webkit-mask-image: linear-gradient(to bottom, transparent 0, black 20px, black calc(100% - 20px), transparent 100%);
142
+ mask-image: linear-gradient(to bottom, transparent 0, black 20px, black calc(100% - 20px), transparent 100%);
143
+ }
144
+
145
+ .date-time-picker-time-list::-webkit-scrollbar {
146
+ width: 0;
147
+ height: 0;
148
+ }
149
+
150
+ .date-time-picker-time-option {
151
+ flex: 0 0 28px;
152
+ width: 100%;
153
+ height: 28px;
154
+ border: none;
155
+ border-radius: 7px;
156
+ background: transparent;
157
+ color: var(--fg);
158
+ cursor: pointer;
159
+ font: 600 var(--fs-md) var(--font-mono);
160
+ transition:
161
+ color var(--dur-fast) var(--ease),
162
+ background var(--dur-fast) var(--ease),
163
+ box-shadow var(--dur-fast) var(--ease);
164
+ }
165
+
166
+ .date-time-picker-time-option:hover:not(:disabled) {
167
+ color: var(--accent-ink);
168
+ background: var(--bg);
169
+ box-shadow: var(--neu-shadow-subtle);
170
+ }
171
+
172
+ .date-time-picker-time-option.selected {
173
+ color: var(--accent-ink);
174
+ background: var(--bg);
175
+ box-shadow: var(--neu-shadow-subtle);
176
+ }
177
+
178
+ .date-time-picker-time-option:disabled {
179
+ color: var(--fg-subtle);
180
+ cursor: not-allowed;
181
+ opacity: 0.45;
182
+ }
183
+
184
+ .date-time-picker-footer {
185
+ display: flex;
186
+ align-items: center;
187
+ gap: var(--gap-2);
188
+ margin-top: var(--gap-2);
189
+ padding-top: var(--gap-2);
190
+ border-top: 1px solid var(--divider);
191
+ }
192
+
193
+ .date-time-picker-footer-spacer {
194
+ flex: 1;
195
+ min-width: 0;
196
+ }
197
+
198
+ .date-time-picker-footer .btn {
199
+ min-width: 54px;
200
+ }
201
+
202
+ @media (max-width: 640px) {
203
+ .date-time-picker-panel {
204
+ width: 332px;
205
+ }
206
+
207
+ .date-time-picker-body {
208
+ display: block;
209
+ }
210
+
211
+ .date-time-picker-time {
212
+ margin-top: var(--gap-3);
213
+ }
214
+
215
+ .date-time-picker-time-columns {
216
+ height: auto;
217
+ }
218
+
219
+ .date-time-picker-time-list {
220
+ height: 118px;
221
+ padding: calc((118px - 28px) / 2) 8px;
222
+ scroll-padding: calc((118px - 28px) / 2) 0;
223
+ }
224
+ }
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ var chunk32FWB5NO_cjs = require('./chunk-32FWB5NO.cjs');
4
+ require('./chunk-YB3IWIOJ.cjs');
5
+ require('./chunk-VS3I5OKA.cjs');
6
+ require('./chunk-RZEFKXL3.cjs');
7
+ require('./chunk-SW2HMNCA.cjs');
8
+ require('./chunk-4KDABJSY.cjs');
9
+ require('./chunk-QMX67CVT.cjs');
10
+
11
+
12
+
13
+ Object.defineProperty(exports, "DateTimePicker", {
14
+ enumerable: true,
15
+ get: function () { return chunk32FWB5NO_cjs.DateTimePicker; }
16
+ });
@@ -0,0 +1,61 @@
1
+ import * as React from 'react';
2
+ import { TimePickerValue } from './TimePicker.cjs';
3
+
4
+ type DateTimePickerFormat = "YYYY-MM-DD HH:mm" | "YYYY-MM-DD HH:mm:ss";
5
+ type DateTimePickerSize = "sm" | "md" | "lg";
6
+ interface DateTimePickerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange"> {
7
+ /** Controlled selected date and time. Use `null` for an empty picker. */
8
+ value?: Date | null;
9
+ /** Initial selected date and time when uncontrolled. */
10
+ defaultValue?: Date | null;
11
+ /** Fires when the date-time changes or is cleared. */
12
+ onChange?: (date: Date | null, dateString: string) => void;
13
+ /** Display and input format. */
14
+ format?: DateTimePickerFormat | ((date: Date) => string);
15
+ /** Show the seconds column. Overrides `format` display if true. */
16
+ showSecond?: boolean;
17
+ placeholder?: string;
18
+ disabled?: boolean;
19
+ readOnly?: boolean;
20
+ invalid?: boolean;
21
+ size?: DateTimePickerSize;
22
+ /** Show a clear button when a value is selected. */
23
+ allowClear?: boolean;
24
+ /** Selectable hour increment. Default 1. */
25
+ hourStep?: number;
26
+ /** Selectable minute increment. Default 1. */
27
+ minuteStep?: number;
28
+ /** Selectable second increment. Default 1. */
29
+ secondStep?: number;
30
+ /** Min selectable date-time. */
31
+ min?: Date;
32
+ /** Max selectable date-time. */
33
+ max?: Date;
34
+ /** Predicate that disables individual days in the calendar. */
35
+ disabledDate?: (date: Date) => boolean;
36
+ /** Predicate that disables individual times for the active date. */
37
+ disabledTime?: (time: TimePickerValue, date: Date) => boolean;
38
+ /** Where the panel appears relative to the trigger. */
39
+ placement?: "top" | "bottom" | "left" | "right";
40
+ /** Controlled panel open state. */
41
+ open?: boolean;
42
+ /** Initial panel open state when uncontrolled. */
43
+ defaultOpen?: boolean;
44
+ /** Called when panel open state changes. */
45
+ onOpenChange?: (open: boolean) => void;
46
+ /** Class for the popped-out panel. */
47
+ popupClassName?: string;
48
+ /** Alias for `popupClassName`. */
49
+ dropdownClassName?: string;
50
+ className?: string;
51
+ }
52
+ /**
53
+ * `DateTimePicker` — input-triggered date and time picker built from
54
+ * `Calendar` plus compact hour / minute / optional second columns.
55
+ *
56
+ * @example
57
+ * <DateTimePicker value={startAt} onChange={setStartAt} minuteStep={15} />
58
+ */
59
+ declare const DateTimePicker: React.ForwardRefExoticComponent<DateTimePickerProps & React.RefAttributes<HTMLDivElement>>;
60
+
61
+ export { DateTimePicker, type DateTimePickerFormat, type DateTimePickerProps, type DateTimePickerSize };
@@ -0,0 +1,61 @@
1
+ import * as React from 'react';
2
+ import { TimePickerValue } from './TimePicker.js';
3
+
4
+ type DateTimePickerFormat = "YYYY-MM-DD HH:mm" | "YYYY-MM-DD HH:mm:ss";
5
+ type DateTimePickerSize = "sm" | "md" | "lg";
6
+ interface DateTimePickerProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "defaultValue" | "onChange"> {
7
+ /** Controlled selected date and time. Use `null` for an empty picker. */
8
+ value?: Date | null;
9
+ /** Initial selected date and time when uncontrolled. */
10
+ defaultValue?: Date | null;
11
+ /** Fires when the date-time changes or is cleared. */
12
+ onChange?: (date: Date | null, dateString: string) => void;
13
+ /** Display and input format. */
14
+ format?: DateTimePickerFormat | ((date: Date) => string);
15
+ /** Show the seconds column. Overrides `format` display if true. */
16
+ showSecond?: boolean;
17
+ placeholder?: string;
18
+ disabled?: boolean;
19
+ readOnly?: boolean;
20
+ invalid?: boolean;
21
+ size?: DateTimePickerSize;
22
+ /** Show a clear button when a value is selected. */
23
+ allowClear?: boolean;
24
+ /** Selectable hour increment. Default 1. */
25
+ hourStep?: number;
26
+ /** Selectable minute increment. Default 1. */
27
+ minuteStep?: number;
28
+ /** Selectable second increment. Default 1. */
29
+ secondStep?: number;
30
+ /** Min selectable date-time. */
31
+ min?: Date;
32
+ /** Max selectable date-time. */
33
+ max?: Date;
34
+ /** Predicate that disables individual days in the calendar. */
35
+ disabledDate?: (date: Date) => boolean;
36
+ /** Predicate that disables individual times for the active date. */
37
+ disabledTime?: (time: TimePickerValue, date: Date) => boolean;
38
+ /** Where the panel appears relative to the trigger. */
39
+ placement?: "top" | "bottom" | "left" | "right";
40
+ /** Controlled panel open state. */
41
+ open?: boolean;
42
+ /** Initial panel open state when uncontrolled. */
43
+ defaultOpen?: boolean;
44
+ /** Called when panel open state changes. */
45
+ onOpenChange?: (open: boolean) => void;
46
+ /** Class for the popped-out panel. */
47
+ popupClassName?: string;
48
+ /** Alias for `popupClassName`. */
49
+ dropdownClassName?: string;
50
+ className?: string;
51
+ }
52
+ /**
53
+ * `DateTimePicker` — input-triggered date and time picker built from
54
+ * `Calendar` plus compact hour / minute / optional second columns.
55
+ *
56
+ * @example
57
+ * <DateTimePicker value={startAt} onChange={setStartAt} minuteStep={15} />
58
+ */
59
+ declare const DateTimePicker: React.ForwardRefExoticComponent<DateTimePickerProps & React.RefAttributes<HTMLDivElement>>;
60
+
61
+ export { DateTimePicker, type DateTimePickerFormat, type DateTimePickerProps, type DateTimePickerSize };
@@ -0,0 +1,7 @@
1
+ export { DateTimePicker } from './chunk-YPE6CDXQ.js';
2
+ import './chunk-DUFRASGO.js';
3
+ import './chunk-IOAOG5L7.js';
4
+ import './chunk-S7IHWY24.js';
5
+ import './chunk-IPSNC5VZ.js';
6
+ import './chunk-I7TOBKJO.js';
7
+ import './chunk-FDZG27IG.js';