@mantine/dates 9.0.0-alpha.3 → 9.0.0-alpha.5

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 (63) hide show
  1. package/cjs/components/Calendar/Calendar.cjs +6 -3
  2. package/cjs/components/Calendar/Calendar.cjs.map +1 -1
  3. package/cjs/components/DateInput/DateInput.cjs +5 -3
  4. package/cjs/components/DateInput/DateInput.cjs.map +1 -1
  5. package/cjs/components/DateTimePicker/DateTimePicker.cjs +1 -1
  6. package/cjs/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  7. package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.cjs +345 -0
  8. package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.cjs.map +1 -0
  9. package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.module.css.cjs +7 -0
  10. package/cjs/components/InlineDateTimePicker/InlineDateTimePicker.module.css.cjs.map +1 -0
  11. package/cjs/components/MonthPicker/MonthPicker.module.css.cjs +7 -0
  12. package/cjs/components/MonthPicker/MonthPicker.module.css.cjs.map +1 -0
  13. package/cjs/components/TimeGrid/TimeGrid.cjs +1 -1
  14. package/cjs/components/TimeGrid/TimeGrid.cjs.map +1 -1
  15. package/cjs/components/TimePicker/TimePicker.cjs +1 -1
  16. package/cjs/components/TimePicker/TimePicker.cjs.map +1 -1
  17. package/cjs/components/YearPicker/YearPicker.module.css.cjs +7 -0
  18. package/cjs/components/YearPicker/YearPicker.module.css.cjs.map +1 -0
  19. package/esm/components/Calendar/Calendar.mjs +6 -3
  20. package/esm/components/Calendar/Calendar.mjs.map +1 -1
  21. package/esm/components/DateInput/DateInput.mjs +5 -3
  22. package/esm/components/DateInput/DateInput.mjs.map +1 -1
  23. package/esm/components/DateTimePicker/DateTimePicker.mjs +1 -1
  24. package/esm/components/DateTimePicker/DateTimePicker.mjs.map +1 -1
  25. package/esm/components/InlineDateTimePicker/InlineDateTimePicker.mjs +339 -0
  26. package/esm/components/InlineDateTimePicker/InlineDateTimePicker.mjs.map +1 -0
  27. package/esm/components/InlineDateTimePicker/InlineDateTimePicker.module.css.mjs +5 -0
  28. package/esm/components/InlineDateTimePicker/InlineDateTimePicker.module.css.mjs.map +1 -0
  29. package/esm/components/MonthPicker/MonthPicker.module.css.mjs +5 -0
  30. package/esm/components/MonthPicker/MonthPicker.module.css.mjs.map +1 -0
  31. package/esm/components/TimeGrid/TimeGrid.mjs +1 -1
  32. package/esm/components/TimeGrid/TimeGrid.mjs.map +1 -1
  33. package/esm/components/TimePicker/TimePicker.mjs +1 -1
  34. package/esm/components/TimePicker/TimePicker.mjs.map +1 -1
  35. package/esm/components/YearPicker/YearPicker.module.css.mjs +5 -0
  36. package/esm/components/YearPicker/YearPicker.module.css.mjs.map +1 -0
  37. package/lib/components/DateInput/DateInput.d.ts +2 -0
  38. package/lib/components/InlineDateTimePicker/InlineDateTimePicker.d.ts +71 -0
  39. package/lib/components/InlineDateTimePicker/index.d.ts +9 -0
  40. package/package.json +7 -7
  41. package/styles.css +1 -1
  42. package/styles.layer.css +1 -1
  43. package/cjs/components/MaskedDateInput/MaskedDateInput.cjs +0 -632
  44. package/cjs/components/MaskedDateInput/MaskedDateInput.cjs.map +0 -1
  45. package/cjs/components/MaskedDateInput/MaskedDateInput.context.cjs +0 -12
  46. package/cjs/components/MaskedDateInput/MaskedDateInput.context.cjs.map +0 -1
  47. package/cjs/components/MaskedDateInput/MaskedDateInput.module.css.cjs +0 -7
  48. package/cjs/components/MaskedDateInput/MaskedDateInput.module.css.cjs.map +0 -1
  49. package/cjs/components/MaskedDateInput/use-masked-date-input.cjs +0 -447
  50. package/cjs/components/MaskedDateInput/use-masked-date-input.cjs.map +0 -1
  51. package/esm/components/MaskedDateInput/MaskedDateInput.context.mjs +0 -9
  52. package/esm/components/MaskedDateInput/MaskedDateInput.context.mjs.map +0 -1
  53. package/esm/components/MaskedDateInput/MaskedDateInput.mjs +0 -626
  54. package/esm/components/MaskedDateInput/MaskedDateInput.mjs.map +0 -1
  55. package/esm/components/MaskedDateInput/MaskedDateInput.module.css.mjs +0 -5
  56. package/esm/components/MaskedDateInput/MaskedDateInput.module.css.mjs.map +0 -1
  57. package/esm/components/MaskedDateInput/use-masked-date-input.mjs +0 -441
  58. package/esm/components/MaskedDateInput/use-masked-date-input.mjs.map +0 -1
  59. package/lib/components/MaskedDateInput/MaskedDateInput.context.d.ts +0 -7
  60. package/lib/components/MaskedDateInput/MaskedDateInput.d.ts +0 -123
  61. package/lib/components/MaskedDateInput/MaskedDateInput.types.d.ts +0 -19
  62. package/lib/components/MaskedDateInput/index.d.ts +0 -12
  63. package/lib/components/MaskedDateInput/use-masked-date-input.d.ts +0 -56
@@ -1,632 +0,0 @@
1
- 'use client';
2
- 'use strict';
3
-
4
- var jsxRuntime = require('react/jsx-runtime');
5
- var dayjs = require('dayjs');
6
- var react = require('react');
7
- var core = require('@mantine/core');
8
- var hooks = require('@mantine/hooks');
9
- var Calendar = require('../Calendar/Calendar.cjs');
10
- var pickCalendarLevelsProps = require('../Calendar/pick-calendar-levels-props/pick-calendar-levels-props.cjs');
11
- require('../DatesProvider/DatesProvider.cjs');
12
- var useDatesContext = require('../DatesProvider/use-dates-context.cjs');
13
- var isSameMonth = require('../Month/is-same-month/is-same-month.cjs');
14
- require('../Month/Month.cjs');
15
- var SpinInput = require('../SpinInput/SpinInput.cjs');
16
- var MaskedDateInput_context = require('./MaskedDateInput.context.cjs');
17
- var MaskedDateInput_module = require('./MaskedDateInput.module.css.cjs');
18
- var useMaskedDateInput = require('./use-masked-date-input.cjs');
19
-
20
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
21
-
22
- var dayjs__default = /*#__PURE__*/_interopDefault(dayjs);
23
-
24
- function SimpleAmPmSelect({
25
- labels,
26
- value,
27
- onChange,
28
- className,
29
- style,
30
- onPreviousInput,
31
- readOnly,
32
- onMouseDown,
33
- disabled,
34
- ...others
35
- }) {
36
- const handleKeyDown = (event) => {
37
- if (readOnly) {
38
- return;
39
- }
40
- if (event.key === "Home") {
41
- event.preventDefault();
42
- onChange(labels.am);
43
- }
44
- if (event.key === "End") {
45
- event.preventDefault();
46
- onChange(labels.pm);
47
- }
48
- if (event.key === "Backspace" || event.key === "Delete") {
49
- event.preventDefault();
50
- if (value === null) {
51
- onPreviousInput?.();
52
- } else {
53
- onChange(null);
54
- }
55
- }
56
- if (event.key === "ArrowLeft") {
57
- event.preventDefault();
58
- onPreviousInput?.();
59
- }
60
- if (event.key === "ArrowUp" || event.key === "ArrowDown") {
61
- event.preventDefault();
62
- onChange(value === labels.am ? labels.pm : labels.am);
63
- }
64
- if (event.code === "KeyA") {
65
- event.preventDefault();
66
- onChange(labels.am);
67
- }
68
- if (event.code === "KeyP") {
69
- event.preventDefault();
70
- onChange(labels.pm);
71
- }
72
- };
73
- return /* @__PURE__ */ jsxRuntime.jsxs(
74
- "select",
75
- {
76
- className,
77
- style,
78
- value: value || "",
79
- onChange: (event) => !readOnly && onChange(event.target.value || null),
80
- onClick: (event) => event.stopPropagation(),
81
- onKeyDown: handleKeyDown,
82
- onMouseDown: (event) => {
83
- event.stopPropagation();
84
- onMouseDown?.(event);
85
- },
86
- disabled,
87
- "data-am-pm": true,
88
- "data-mantine-stop-propagation": true,
89
- ...others,
90
- children: [
91
- /* @__PURE__ */ jsxRuntime.jsx("option", { value: "", children: "--" }),
92
- /* @__PURE__ */ jsxRuntime.jsx("option", { value: labels.am, children: labels.am }),
93
- /* @__PURE__ */ jsxRuntime.jsx("option", { value: labels.pm, children: labels.pm })
94
- ]
95
- }
96
- );
97
- }
98
- const defaultProps = {
99
- dateFieldsOrder: ["day", "month", "year"],
100
- dateSeparator: "/",
101
- timeSeparator: ":",
102
- dateTimeSeparator: " ",
103
- timeFormat: "24h",
104
- amPmLabels: { am: "AM", pm: "PM" },
105
- dayPlaceholder: "DD",
106
- monthPlaceholder: "MM",
107
- yearPlaceholder: "YYYY",
108
- hoursPlaceholder: "--",
109
- minutesPlaceholder: "--",
110
- secondsPlaceholder: "--"
111
- };
112
- const MaskedDateInput = core.factory((_props) => {
113
- const props = core.useProps("MaskedDateInput", defaultProps, _props);
114
- const {
115
- classNames,
116
- className,
117
- style,
118
- styles,
119
- unstyled,
120
- vars,
121
- dateFieldsOrder,
122
- dateSeparator,
123
- timeSeparator,
124
- dateTimeSeparator,
125
- withTime,
126
- withSeconds,
127
- timeFormat,
128
- amPmLabels,
129
- value,
130
- defaultValue,
131
- onChange,
132
- clearable,
133
- clearButtonProps,
134
- popoverProps,
135
- name,
136
- form,
137
- onFocus,
138
- onBlur,
139
- readOnly,
140
- disabled,
141
- size,
142
- dayInputProps,
143
- monthInputProps,
144
- yearInputProps,
145
- hoursInputProps,
146
- minutesInputProps,
147
- secondsInputProps,
148
- amPmSelectProps,
149
- hiddenInputProps,
150
- pasteSplit,
151
- dayRef,
152
- monthRef,
153
- yearRef,
154
- hoursRef,
155
- minutesRef,
156
- secondsRef,
157
- amPmRef,
158
- dayPlaceholder,
159
- monthPlaceholder,
160
- yearPlaceholder,
161
- hoursPlaceholder,
162
- minutesPlaceholder,
163
- secondsPlaceholder,
164
- dayInputLabel,
165
- monthInputLabel,
166
- yearInputLabel,
167
- hoursInputLabel,
168
- minutesInputLabel,
169
- secondsInputLabel,
170
- amPmInputLabel,
171
- rightSection,
172
- labelProps,
173
- attributes,
174
- onClick,
175
- onMouseDown,
176
- onFocusCapture,
177
- onBlurCapture,
178
- getDayProps,
179
- getMonthControlProps,
180
- getYearControlProps,
181
- locale,
182
- minDate,
183
- maxDate,
184
- ...others
185
- } = props;
186
- const { calendarProps, others: rest } = pickCalendarLevelsProps.pickCalendarProps(others);
187
- useDatesContext.useDatesContext();
188
- const { resolvedClassNames, resolvedStyles } = core.useResolvedStylesApi({
189
- classNames,
190
- styles,
191
- props
192
- });
193
- const getStyles = core.useStyles({
194
- name: "MaskedDateInput",
195
- classes: MaskedDateInput_module,
196
- props,
197
- className,
198
- style,
199
- classNames,
200
- styles,
201
- unstyled,
202
- attributes,
203
- vars
204
- });
205
- const controller = useMaskedDateInput.useMaskedDateInput({
206
- value: value || void 0,
207
- defaultValue: defaultValue || void 0,
208
- onChange,
209
- withTime,
210
- withSeconds,
211
- format: timeFormat,
212
- amPmLabels,
213
- min: void 0,
214
- max: void 0,
215
- minDate,
216
- maxDate,
217
- clearable,
218
- readOnly,
219
- disabled,
220
- pasteSplit
221
- });
222
- const _dayRef = hooks.useMergedRef(controller.refs.day, dayRef);
223
- const _monthRef = hooks.useMergedRef(controller.refs.month, monthRef);
224
- const _yearRef = hooks.useMergedRef(controller.refs.year, yearRef);
225
- const _hoursRef = hooks.useMergedRef(controller.refs.hours, hoursRef);
226
- const _minutesRef = hooks.useMergedRef(controller.refs.minutes, minutesRef);
227
- const _secondsRef = hooks.useMergedRef(controller.refs.seconds, secondsRef);
228
- const _amPmRef = hooks.useMergedRef(controller.refs.amPm, amPmRef);
229
- const dayInputId = hooks.useId();
230
- const hasFocusRef = react.useRef(false);
231
- const [dropdownOpened, setDropdownOpened] = react.useState(false);
232
- const handleFocus = (event) => {
233
- if (!hasFocusRef.current) {
234
- hasFocusRef.current = true;
235
- onFocus?.(event);
236
- }
237
- };
238
- const handleBlur = (event) => {
239
- if (!event.currentTarget.contains(event.relatedTarget)) {
240
- hasFocusRef.current = false;
241
- onBlur?.(event);
242
- }
243
- };
244
- const getNextField = (currentField, order) => {
245
- const currentIndex = order.indexOf(currentField);
246
- if (currentIndex < order.length - 1) {
247
- return order[currentIndex + 1];
248
- }
249
- return withTime ? "hours" : null;
250
- };
251
- const getPreviousField = (currentField, order) => {
252
- const currentIndex = order.indexOf(currentField);
253
- if (currentIndex > 0) {
254
- return order[currentIndex - 1];
255
- }
256
- return null;
257
- };
258
- const handleDateSelect = (selectedDate) => {
259
- dayjs__default.default(selectedDate);
260
- controller.setDateValue(selectedDate);
261
- setDropdownOpened(false);
262
- };
263
- const _getDayProps = (day) => ({
264
- ...getDayProps?.(day),
265
- selected: controller.calendarValue ? dayjs__default.default(controller.calendarValue).isSame(day, "day") : false,
266
- onClick: (event) => {
267
- getDayProps?.(day)?.onClick?.(event);
268
- handleDateSelect(day);
269
- }
270
- });
271
- const renderDateField = (field, isFirst, isLast) => {
272
- const fieldOrder = dateFieldsOrder;
273
- const getOnPreviousInput = () => {
274
- const previousField = getPreviousField(field, fieldOrder);
275
- return previousField ? () => controller.focus(previousField) : void 0;
276
- };
277
- const getOnNextInput = () => {
278
- const nextField = getNextField(field, fieldOrder);
279
- return nextField ? () => controller.focus(nextField) : void 0;
280
- };
281
- switch (field) {
282
- case "day":
283
- return /* @__PURE__ */ jsxRuntime.jsx(
284
- SpinInput.SpinInput,
285
- {
286
- id: isFirst ? dayInputId : void 0,
287
- ...dayInputProps,
288
- ...getStyles("field", {
289
- className: dayInputProps?.className,
290
- style: dayInputProps?.style
291
- }),
292
- value: controller.values.day,
293
- onChange: controller.setDay,
294
- onNextInput: getOnNextInput(),
295
- onPreviousInput: getOnPreviousInput(),
296
- min: 1,
297
- max: controller.getDaysInMonth(),
298
- focusable: true,
299
- step: 1,
300
- ref: _dayRef,
301
- "aria-label": dayInputLabel,
302
- readOnly,
303
- disabled,
304
- onPaste: controller.onPaste,
305
- onFocus: (event) => {
306
- handleFocus(event);
307
- dayInputProps?.onFocus?.(event);
308
- },
309
- placeholder: dayPlaceholder,
310
- tabIndex: isFirst ? 0 : -1
311
- },
312
- "day"
313
- );
314
- case "month":
315
- return /* @__PURE__ */ jsxRuntime.jsx(
316
- SpinInput.SpinInput,
317
- {
318
- id: isFirst ? dayInputId : void 0,
319
- ...monthInputProps,
320
- ...getStyles("field", {
321
- className: monthInputProps?.className,
322
- style: monthInputProps?.style
323
- }),
324
- value: controller.values.month,
325
- onChange: controller.setMonth,
326
- onNextInput: getOnNextInput(),
327
- onPreviousInput: getOnPreviousInput(),
328
- min: 1,
329
- max: 12,
330
- focusable: true,
331
- step: 1,
332
- ref: _monthRef,
333
- "aria-label": monthInputLabel,
334
- readOnly,
335
- disabled,
336
- onPaste: controller.onPaste,
337
- onFocus: (event) => {
338
- handleFocus(event);
339
- monthInputProps?.onFocus?.(event);
340
- },
341
- placeholder: monthPlaceholder,
342
- tabIndex: isFirst ? 0 : -1
343
- },
344
- "month"
345
- );
346
- case "year":
347
- return /* @__PURE__ */ jsxRuntime.jsx(
348
- SpinInput.SpinInput,
349
- {
350
- id: isFirst ? dayInputId : void 0,
351
- ...yearInputProps,
352
- ...getStyles("yearField", {
353
- className: yearInputProps?.className,
354
- style: yearInputProps?.style
355
- }),
356
- value: controller.values.year,
357
- onChange: controller.setYear,
358
- onNextInput: getOnNextInput(),
359
- onPreviousInput: getOnPreviousInput(),
360
- min: 1,
361
- max: 9999,
362
- focusable: true,
363
- step: 1,
364
- ref: _yearRef,
365
- "aria-label": yearInputLabel,
366
- readOnly,
367
- disabled,
368
- onPaste: controller.onPaste,
369
- onFocus: (event) => {
370
- handleFocus(event);
371
- yearInputProps?.onFocus?.(event);
372
- },
373
- placeholder: yearPlaceholder,
374
- tabIndex: isFirst ? 0 : -1
375
- },
376
- "year"
377
- );
378
- default:
379
- return null;
380
- }
381
- };
382
- const dateFields = dateFieldsOrder.map((field, index) => {
383
- const isFirst = index === 0;
384
- const isLast = index === dateFieldsOrder.length - 1;
385
- const fieldElement = renderDateField(field, isFirst);
386
- if (isLast) {
387
- return fieldElement;
388
- }
389
- return /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
390
- fieldElement,
391
- /* @__PURE__ */ jsxRuntime.jsx("span", { ...getStyles("separator"), children: dateSeparator })
392
- ] }, `${field}-group`);
393
- });
394
- const calendarDate = controller.calendarValue ? dayjs__default.default(controller.calendarValue).toDate() : void 0;
395
- return /* @__PURE__ */ jsxRuntime.jsx(MaskedDateInput_context.MaskedDateInputProvider, { value: { getStyles }, children: /* @__PURE__ */ jsxRuntime.jsxs(
396
- core.Popover,
397
- {
398
- opened: dropdownOpened,
399
- transitionProps: { duration: 0 },
400
- position: "bottom-start",
401
- withRoles: false,
402
- disabled: disabled || readOnly,
403
- ...popoverProps,
404
- children: [
405
- /* @__PURE__ */ jsxRuntime.jsx(core.Popover.Target, { children: /* @__PURE__ */ jsxRuntime.jsxs(
406
- core.InputBase,
407
- {
408
- component: "div",
409
- size,
410
- disabled,
411
- onClick: (event) => {
412
- onClick?.(event);
413
- controller.focus(dateFieldsOrder[0]);
414
- },
415
- onMouseDown: (event) => {
416
- event.preventDefault();
417
- onMouseDown?.(event);
418
- },
419
- onFocusCapture: (event) => {
420
- setDropdownOpened(true);
421
- onFocusCapture?.(event);
422
- },
423
- onBlurCapture: (event) => {
424
- setDropdownOpened(false);
425
- onBlurCapture?.(event);
426
- },
427
- rightSection: rightSection || controller.isClearable && /* @__PURE__ */ jsxRuntime.jsx(
428
- core.CloseButton,
429
- {
430
- ...clearButtonProps,
431
- size,
432
- onClick: (event) => {
433
- controller.clear();
434
- clearButtonProps?.onClick?.(event);
435
- },
436
- onMouseDown: (event) => {
437
- event.preventDefault();
438
- clearButtonProps?.onMouseDown?.(event);
439
- }
440
- }
441
- ),
442
- labelProps: { htmlFor: dayInputId, ...labelProps },
443
- style,
444
- className,
445
- classNames: resolvedClassNames,
446
- styles: resolvedStyles,
447
- attributes,
448
- __staticSelector: "MaskedDateInput",
449
- ...rest,
450
- children: [
451
- /* @__PURE__ */ jsxRuntime.jsx("div", { ...getStyles("fieldsRoot"), dir: "ltr", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { ...getStyles("fieldsGroup"), onBlur: handleBlur, children: [
452
- dateFields,
453
- withTime && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
454
- /* @__PURE__ */ jsxRuntime.jsx("span", { ...getStyles("separator"), children: dateTimeSeparator }),
455
- /* @__PURE__ */ jsxRuntime.jsx(
456
- SpinInput.SpinInput,
457
- {
458
- ...hoursInputProps,
459
- ...getStyles("field", {
460
- className: hoursInputProps?.className,
461
- style: hoursInputProps?.style
462
- }),
463
- value: controller.values.hours,
464
- onChange: controller.setHours,
465
- onPreviousInput: () => controller.focus(dateFieldsOrder[dateFieldsOrder.length - 1]),
466
- onNextInput: () => controller.focus("minutes"),
467
- min: timeFormat === "12h" ? 1 : 0,
468
- max: timeFormat === "12h" ? 12 : 23,
469
- allowTemporaryZero: timeFormat === "12h",
470
- focusable: true,
471
- step: 1,
472
- ref: _hoursRef,
473
- "aria-label": hoursInputLabel,
474
- tabIndex: -1,
475
- readOnly,
476
- disabled,
477
- onPaste: controller.onPaste,
478
- onFocus: (event) => {
479
- handleFocus(event);
480
- hoursInputProps?.onFocus?.(event);
481
- },
482
- onBlur: (event) => {
483
- const actualInputValue = event.currentTarget.value;
484
- const numericValue = actualInputValue ? parseInt(actualInputValue, 10) : null;
485
- if (timeFormat === "12h" && numericValue === 0) {
486
- controller.setHours(12);
487
- }
488
- hoursInputProps?.onBlur?.(event);
489
- },
490
- placeholder: hoursPlaceholder
491
- }
492
- ),
493
- /* @__PURE__ */ jsxRuntime.jsx("span", { ...getStyles("separator"), children: timeSeparator }),
494
- /* @__PURE__ */ jsxRuntime.jsx(
495
- SpinInput.SpinInput,
496
- {
497
- ...minutesInputProps,
498
- ...getStyles("field", {
499
- className: minutesInputProps?.className,
500
- style: minutesInputProps?.style
501
- }),
502
- value: controller.values.minutes,
503
- onChange: controller.setMinutes,
504
- min: 0,
505
- max: 59,
506
- focusable: true,
507
- step: 1,
508
- ref: _minutesRef,
509
- onPreviousInput: () => controller.focus("hours"),
510
- onNextInput: () => withSeconds ? controller.focus("seconds") : controller.focus("amPm"),
511
- "aria-label": minutesInputLabel,
512
- tabIndex: -1,
513
- readOnly,
514
- disabled,
515
- onPaste: controller.onPaste,
516
- onFocus: (event) => {
517
- handleFocus(event);
518
- minutesInputProps?.onFocus?.(event);
519
- },
520
- placeholder: minutesPlaceholder
521
- }
522
- ),
523
- withSeconds && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
524
- /* @__PURE__ */ jsxRuntime.jsx("span", { ...getStyles("separator"), children: timeSeparator }),
525
- /* @__PURE__ */ jsxRuntime.jsx(
526
- SpinInput.SpinInput,
527
- {
528
- ...secondsInputProps,
529
- ...getStyles("field", {
530
- className: secondsInputProps?.className,
531
- style: secondsInputProps?.style
532
- }),
533
- value: controller.values.seconds,
534
- onChange: controller.setSeconds,
535
- min: 0,
536
- max: 59,
537
- focusable: true,
538
- step: 1,
539
- ref: _secondsRef,
540
- onPreviousInput: () => controller.focus("minutes"),
541
- onNextInput: () => controller.focus("amPm"),
542
- "aria-label": secondsInputLabel,
543
- tabIndex: -1,
544
- readOnly,
545
- disabled,
546
- onPaste: controller.onPaste,
547
- onFocus: (event) => {
548
- handleFocus(event);
549
- secondsInputProps?.onFocus?.(event);
550
- },
551
- placeholder: secondsPlaceholder
552
- }
553
- )
554
- ] }),
555
- timeFormat === "12h" && /* @__PURE__ */ jsxRuntime.jsx(
556
- SimpleAmPmSelect,
557
- {
558
- ...amPmSelectProps,
559
- ...getStyles("field", {
560
- className: amPmSelectProps?.className,
561
- style: amPmSelectProps?.style
562
- }),
563
- labels: amPmLabels,
564
- value: controller.values.amPm,
565
- onChange: controller.setAmPm,
566
- ref: _amPmRef,
567
- "aria-label": amPmInputLabel,
568
- onPreviousInput: () => withSeconds ? controller.focus("seconds") : controller.focus("minutes"),
569
- readOnly,
570
- disabled,
571
- tabIndex: -1,
572
- onFocus: (event) => {
573
- handleFocus(event);
574
- amPmSelectProps?.onFocus?.(event);
575
- }
576
- }
577
- )
578
- ] })
579
- ] }) }),
580
- /* @__PURE__ */ jsxRuntime.jsx(
581
- "input",
582
- {
583
- type: "hidden",
584
- name,
585
- form,
586
- value: controller.hiddenInputValue,
587
- ...hiddenInputProps
588
- }
589
- )
590
- ]
591
- }
592
- ) }),
593
- /* @__PURE__ */ jsxRuntime.jsx(
594
- core.Popover.Dropdown,
595
- {
596
- ...getStyles("dropdown"),
597
- onMouseDown: (event) => event.preventDefault(),
598
- children: /* @__PURE__ */ jsxRuntime.jsx(
599
- Calendar.Calendar,
600
- {
601
- __staticSelector: "MaskedDateInput",
602
- ...calendarProps,
603
- unstyled,
604
- __preventFocus: true,
605
- minDate,
606
- maxDate,
607
- locale,
608
- getDayProps: _getDayProps,
609
- size,
610
- date: calendarDate,
611
- getMonthControlProps: (date) => ({
612
- selected: controller.calendarValue ? isSameMonth.isSameMonth(date, controller.calendarValue) : false,
613
- ...getMonthControlProps?.(date)
614
- }),
615
- getYearControlProps: (date) => ({
616
- selected: controller.calendarValue ? dayjs__default.default(date).isSame(controller.calendarValue, "year") : false,
617
- ...getYearControlProps?.(date)
618
- }),
619
- attributes
620
- }
621
- )
622
- }
623
- )
624
- ]
625
- }
626
- ) });
627
- });
628
- MaskedDateInput.displayName = "@mantine/dates/MaskedDateInput";
629
- MaskedDateInput.classes = MaskedDateInput_module;
630
-
631
- exports.MaskedDateInput = MaskedDateInput;
632
- //# sourceMappingURL=MaskedDateInput.cjs.map