@mantine/dates 3.6.3 → 3.6.7

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 (62) hide show
  1. package/cjs/components/DatePicker/DatePicker.js.map +1 -1
  2. package/cjs/components/DatePickerBase/DatePickerBase.js +1 -1
  3. package/cjs/components/DatePickerBase/DatePickerBase.js.map +1 -1
  4. package/cjs/components/DateRangePicker/DateRangePicker.js +1 -11
  5. package/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
  6. package/cjs/components/TimeInput/TimeInput.js +35 -44
  7. package/cjs/components/TimeInput/TimeInput.js.map +1 -1
  8. package/cjs/components/TimeInputBase/AmPmInput/AmPmInput.js +8 -6
  9. package/cjs/components/TimeInputBase/AmPmInput/AmPmInput.js.map +1 -1
  10. package/cjs/components/TimeInputBase/TimeField/TimeField.js +19 -5
  11. package/cjs/components/TimeInputBase/TimeField/TimeField.js.map +1 -1
  12. package/cjs/components/TimeInputBase/create-time-handler/create-time-handler.js +5 -11
  13. package/cjs/components/TimeInputBase/create-time-handler/create-time-handler.js.map +1 -1
  14. package/cjs/components/TimeInputBase/get-date/get-date.js +7 -1
  15. package/cjs/components/TimeInputBase/get-date/get-date.js.map +1 -1
  16. package/cjs/components/TimeInputBase/get-time-values/get-time-value.js +13 -4
  17. package/cjs/components/TimeInputBase/get-time-values/get-time-value.js.map +1 -1
  18. package/cjs/components/TimeRangeInput/TimeRangeInput.js +44 -237
  19. package/cjs/components/TimeRangeInput/TimeRangeInput.js.map +1 -1
  20. package/cjs/index.js +4 -0
  21. package/cjs/index.js.map +1 -1
  22. package/esm/components/DatePicker/DatePicker.js.map +1 -1
  23. package/esm/components/DatePickerBase/DatePickerBase.js +1 -1
  24. package/esm/components/DatePickerBase/DatePickerBase.js.map +1 -1
  25. package/esm/components/DateRangePicker/DateRangePicker.js +1 -11
  26. package/esm/components/DateRangePicker/DateRangePicker.js.map +1 -1
  27. package/esm/components/TimeInput/TimeInput.js +37 -46
  28. package/esm/components/TimeInput/TimeInput.js.map +1 -1
  29. package/esm/components/TimeInputBase/AmPmInput/AmPmInput.js +8 -6
  30. package/esm/components/TimeInputBase/AmPmInput/AmPmInput.js.map +1 -1
  31. package/esm/components/TimeInputBase/TimeField/TimeField.js +20 -6
  32. package/esm/components/TimeInputBase/TimeField/TimeField.js.map +1 -1
  33. package/esm/components/TimeInputBase/create-time-handler/create-time-handler.js +5 -11
  34. package/esm/components/TimeInputBase/create-time-handler/create-time-handler.js.map +1 -1
  35. package/esm/components/TimeInputBase/get-date/get-date.js +7 -1
  36. package/esm/components/TimeInputBase/get-date/get-date.js.map +1 -1
  37. package/esm/components/TimeInputBase/get-time-values/get-time-value.js +13 -4
  38. package/esm/components/TimeInputBase/get-time-values/get-time-value.js.map +1 -1
  39. package/esm/components/TimeRangeInput/TimeRangeInput.js +46 -239
  40. package/esm/components/TimeRangeInput/TimeRangeInput.js.map +1 -1
  41. package/esm/index.js +2 -0
  42. package/esm/index.js.map +1 -1
  43. package/lib/components/CalendarBase/index.d.ts +3 -0
  44. package/lib/components/CalendarBase/index.d.ts.map +1 -0
  45. package/lib/components/DatePicker/DatePicker.d.ts +1 -1
  46. package/lib/components/DatePicker/DatePicker.d.ts.map +1 -1
  47. package/lib/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
  48. package/lib/components/TimeInput/TimeInput.d.ts +4 -2
  49. package/lib/components/TimeInput/TimeInput.d.ts.map +1 -1
  50. package/lib/components/TimeInputBase/AmPmInput/AmPmInput.d.ts +0 -2
  51. package/lib/components/TimeInputBase/AmPmInput/AmPmInput.d.ts.map +1 -1
  52. package/lib/components/TimeInputBase/TimeField/TimeField.d.ts +6 -3
  53. package/lib/components/TimeInputBase/TimeField/TimeField.d.ts.map +1 -1
  54. package/lib/components/TimeInputBase/create-time-handler/create-time-handler.d.ts +1 -1
  55. package/lib/components/TimeInputBase/create-time-handler/create-time-handler.d.ts.map +1 -1
  56. package/lib/components/TimeInputBase/get-date/get-date.d.ts.map +1 -1
  57. package/lib/components/TimeInputBase/get-time-values/get-time-value.d.ts +2 -1
  58. package/lib/components/TimeInputBase/get-time-values/get-time-value.d.ts.map +1 -1
  59. package/lib/components/TimeRangeInput/TimeRangeInput.d.ts.map +1 -1
  60. package/lib/index.d.ts +2 -0
  61. package/lib/index.d.ts.map +1 -1
  62. package/package.json +3 -3
@@ -50,6 +50,7 @@ const TimeField = React.forwardRef((_a, ref) => {
50
50
  withSeparator = false,
51
51
  size = "sm",
52
52
  max,
53
+ min = 0,
53
54
  value
54
55
  } = _b, others = __objRest(_b, [
55
56
  "className",
@@ -60,16 +61,22 @@ const TimeField = React.forwardRef((_a, ref) => {
60
61
  "withSeparator",
61
62
  "size",
62
63
  "max",
64
+ "min",
63
65
  "value"
64
66
  ]);
67
+ const [digitsEntered, setDigitsEntered] = React.useState(0);
65
68
  const { classes, cx, theme } = TimeInputBase_styles['default']({ size, hasValue: !!value });
66
69
  const inputRef = React.useRef();
67
70
  const handleFocus = (event) => {
68
71
  typeof onFocus === "function" && onFocus(event);
69
72
  inputRef.current.select();
73
+ setDigitsEntered(0);
70
74
  };
71
75
  const handleBlur = (event) => {
72
76
  typeof onBlur === "function" && onBlur(event);
77
+ if (digitsEntered === 1) {
78
+ typeof onChange === "function" && onChange(event.currentTarget.value, false);
79
+ }
73
80
  };
74
81
  const handleClick = (event) => {
75
82
  event.stopPropagation();
@@ -78,25 +85,32 @@ const TimeField = React.forwardRef((_a, ref) => {
78
85
  const handleKeyDown = (event) => {
79
86
  if (event.nativeEvent.code === "ArrowUp") {
80
87
  event.preventDefault();
81
- const padded = padTime.padTime(hooks.clamp({ value: parseInt(event.currentTarget.value, 10) + 1, max, min: 0 }).toString());
88
+ const padded = padTime.padTime(hooks.clamp({ value: parseInt(event.currentTarget.value, 10) + 1, max, min }).toString());
82
89
  if (value !== padded) {
83
- setValue(padded);
84
90
  onChange(padded, false);
85
91
  }
86
92
  }
87
93
  if (event.nativeEvent.code === "ArrowDown") {
88
94
  event.preventDefault();
89
- const padded = padTime.padTime(hooks.clamp({ value: parseInt(event.currentTarget.value, 10) - 1, max, min: 0 }).toString());
95
+ const padded = padTime.padTime(hooks.clamp({ value: parseInt(event.currentTarget.value, 10) - 1, max, min }).toString());
90
96
  if (value !== padded) {
91
- setValue(padded);
92
97
  onChange(padded, false);
93
98
  }
94
99
  }
95
100
  };
101
+ const handleChange = (event) => {
102
+ setDigitsEntered(digitsEntered + 1);
103
+ const _val = parseInt(event.currentTarget.value, 10).toString();
104
+ if (_val === "0" && digitsEntered === 0) {
105
+ setValue("00");
106
+ return;
107
+ }
108
+ onChange(_val, true, digitsEntered > 0);
109
+ };
96
110
  return /* @__PURE__ */ React__default.createElement(React__default.Fragment, null, /* @__PURE__ */ React__default.createElement("input", __spreadValues({
97
111
  type: "text",
98
112
  ref: hooks.useMergedRef(inputRef, ref),
99
- onChange: (event) => onChange(event.currentTarget.value, true),
113
+ onChange: handleChange,
100
114
  onClick: handleClick,
101
115
  onFocus: handleFocus,
102
116
  onBlur: handleBlur,
@@ -1 +1 @@
1
- {"version":3,"file":"TimeField.js","sources":["../../../../src/components/TimeInputBase/TimeField/TimeField.tsx"],"sourcesContent":["import React, { useRef, forwardRef } from 'react';\nimport { useMergedRef, clamp } from '@mantine/hooks';\nimport { Text, MantineSize } from '@mantine/core';\nimport { padTime } from '../pad-time/pad-time';\nimport useStyles from '../TimeInputBase.styles';\n\ninterface TimeFieldProps\n extends Omit<React.ComponentPropsWithoutRef<'input'>, 'onChange' | 'size'> {\n /** Called with onChange event */\n onChange(value: string, triggerShift: boolean): void;\n\n /** Called when input loses focus, used to format value */\n setValue(value: string): void;\n\n /** Adds colon after the field */\n withSeparator?: boolean;\n\n /** Colon text size */\n size?: MantineSize;\n\n /** Maximum possible value, min value is always 0 */\n max?: number;\n}\n\nexport const TimeField = forwardRef<HTMLInputElement, TimeFieldProps>(\n (\n {\n className,\n onFocus,\n onBlur,\n onChange,\n setValue,\n withSeparator = false,\n size = 'sm',\n max,\n value,\n ...others\n }: TimeFieldProps,\n ref\n ) => {\n const { classes, cx, theme } = useStyles({ size, hasValue: !!value });\n const inputRef = useRef<HTMLInputElement>();\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n inputRef.current.select();\n };\n\n const handleBlur = (event: any) => {\n typeof onBlur === 'function' && onBlur(event);\n };\n\n const handleClick = (event: React.MouseEvent<HTMLInputElement, MouseEvent>) => {\n event.stopPropagation();\n inputRef.current.select();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.nativeEvent.code === 'ArrowUp') {\n event.preventDefault();\n const padded = padTime(\n clamp({ value: parseInt(event.currentTarget.value, 10) + 1, max, min: 0 }).toString()\n );\n\n if (value !== padded) {\n setValue(padded);\n onChange(padded, false);\n }\n }\n\n if (event.nativeEvent.code === 'ArrowDown') {\n event.preventDefault();\n const padded = padTime(\n clamp({ value: parseInt(event.currentTarget.value, 10) - 1, max, min: 0 }).toString()\n );\n\n if (value !== padded) {\n setValue(padded);\n onChange(padded, false);\n }\n }\n };\n\n return (\n <>\n <input\n type=\"text\"\n ref={useMergedRef(inputRef, ref)}\n onChange={(event) => onChange(event.currentTarget.value, true)}\n onClick={handleClick}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n value={value}\n className={cx(classes.timeInput, className)}\n {...others}\n />\n\n {withSeparator && (\n <Text\n size={size}\n style={{\n lineHeight: 1,\n color: value\n ? 'inherit'\n : theme.colorScheme === 'dark'\n ? theme.colors.dark[2]\n : theme.colors.gray[7],\n }}\n >\n :\n </Text>\n )}\n </>\n );\n }\n);\n\nTimeField.displayName = '@mantine/dates/TimeField';\n"],"names":["forwardRef","useStyles","useRef","padTime","clamp","React","useMergedRef","Text"],"mappings":"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"}
1
+ {"version":3,"file":"TimeField.js","sources":["../../../../src/components/TimeInputBase/TimeField/TimeField.tsx"],"sourcesContent":["import React, { useRef, forwardRef, useState } from 'react';\nimport { useMergedRef, clamp } from '@mantine/hooks';\nimport { Text, MantineSize } from '@mantine/core';\nimport { padTime } from '../pad-time/pad-time';\nimport useStyles from '../TimeInputBase.styles';\nimport type { createTimeHandler } from '../create-time-handler/create-time-handler';\n\ninterface TimeFieldProps\n extends Omit<React.ComponentPropsWithoutRef<'input'>, 'onChange' | 'size'> {\n /** Called with onChange event */\n onChange: ReturnType<typeof createTimeHandler>;\n\n /** Called to set input value and bypass parent validation/onChange calls */\n setValue(value: string): void;\n\n /** Adds colon after the field */\n withSeparator?: boolean;\n\n /** Colon text size */\n size?: MantineSize;\n\n /** Maximum possible value */\n max?: number;\n\n /** Minimum possible value. Default 0 */\n min?: number;\n}\n\nexport const TimeField = forwardRef<HTMLInputElement, TimeFieldProps>(\n (\n {\n className,\n onFocus,\n onBlur,\n onChange,\n setValue,\n withSeparator = false,\n size = 'sm',\n max,\n min = 0,\n value,\n ...others\n }: TimeFieldProps,\n ref\n ) => {\n const [digitsEntered, setDigitsEntered] = useState(0);\n const { classes, cx, theme } = useStyles({ size, hasValue: !!value });\n const inputRef = useRef<HTMLInputElement>();\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n typeof onFocus === 'function' && onFocus(event);\n inputRef.current.select();\n setDigitsEntered(0);\n };\n\n const handleBlur = (event: any) => {\n typeof onBlur === 'function' && onBlur(event);\n // Call onChange in case the only digit entered is 0\n if (digitsEntered === 1) {\n typeof onChange === 'function' && onChange(event.currentTarget.value, false);\n }\n };\n\n const handleClick = (event: React.MouseEvent<HTMLInputElement, MouseEvent>) => {\n event.stopPropagation();\n inputRef.current.select();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.nativeEvent.code === 'ArrowUp') {\n event.preventDefault();\n const padded = padTime(\n clamp({ value: parseInt(event.currentTarget.value, 10) + 1, max, min }).toString()\n );\n\n if (value !== padded) {\n onChange(padded, false);\n }\n }\n\n if (event.nativeEvent.code === 'ArrowDown') {\n event.preventDefault();\n const padded = padTime(\n clamp({ value: parseInt(event.currentTarget.value, 10) - 1, max, min }).toString()\n );\n\n if (value !== padded) {\n onChange(padded, false);\n }\n }\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n setDigitsEntered(digitsEntered + 1);\n\n const _val = parseInt(event.currentTarget.value, 10).toString();\n\n // In 12-hour format, 0 is not allowed, but it could be the start of 01, 02, etc.\n if (_val === '0' && digitsEntered === 0) {\n setValue('00');\n return;\n }\n onChange(_val, true, digitsEntered > 0);\n };\n\n return (\n <>\n <input\n type=\"text\"\n ref={useMergedRef(inputRef, ref)}\n onChange={handleChange}\n onClick={handleClick}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n value={value}\n className={cx(classes.timeInput, className)}\n {...others}\n />\n\n {withSeparator && (\n <Text\n size={size}\n style={{\n lineHeight: 1,\n color: value\n ? 'inherit'\n : theme.colorScheme === 'dark'\n ? theme.colors.dark[2]\n : theme.colors.gray[7],\n }}\n >\n :\n </Text>\n )}\n </>\n );\n }\n);\n\nTimeField.displayName = '@mantine/dates/TimeField';\n"],"names":["forwardRef","useState","useStyles","useRef","padTime","clamp","React","useMergedRef","Text"],"mappings":"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"}
@@ -6,22 +6,16 @@ var hooks = require('@mantine/hooks');
6
6
  var padTime = require('../pad-time/pad-time.js');
7
7
 
8
8
  function createTimeHandler({ onChange, nextRef, min, max, maxValue }) {
9
- return (value, triggerShift) => {
10
- var _a, _b, _c, _d;
11
- if (value === "00") {
12
- onChange("00");
13
- triggerShift && ((_a = nextRef == null ? void 0 : nextRef.current) == null ? void 0 : _a.focus());
14
- triggerShift && ((_b = nextRef == null ? void 0 : nextRef.current) == null ? void 0 : _b.select());
15
- return;
16
- }
9
+ return (value, triggerShift, forceTriggerShift = false) => {
10
+ var _a, _b;
17
11
  const parsed = parseInt(value, 10);
18
12
  if (Number.isNaN(parsed)) {
19
13
  return;
20
14
  }
21
- if (parsed > maxValue) {
15
+ if (parsed > maxValue || forceTriggerShift) {
22
16
  onChange(padTime.padTime(hooks.clamp({ value: parsed, min, max }).toString()));
23
- triggerShift && ((_c = nextRef == null ? void 0 : nextRef.current) == null ? void 0 : _c.focus());
24
- triggerShift && ((_d = nextRef == null ? void 0 : nextRef.current) == null ? void 0 : _d.select());
17
+ triggerShift && ((_a = nextRef == null ? void 0 : nextRef.current) == null ? void 0 : _a.focus());
18
+ triggerShift && ((_b = nextRef == null ? void 0 : nextRef.current) == null ? void 0 : _b.select());
25
19
  return;
26
20
  }
27
21
  onChange(parsed.toString());
@@ -1 +1 @@
1
- {"version":3,"file":"create-time-handler.js","sources":["../../../../src/components/TimeInputBase/create-time-handler/create-time-handler.ts"],"sourcesContent":["import { clamp } from '@mantine/hooks';\nimport { padTime } from '../pad-time/pad-time';\n\ninterface CreateTimeHandler {\n onChange(value: string): void;\n nextRef?: React.RefObject<HTMLInputElement>;\n min: number;\n max: number;\n maxValue: number;\n}\n\nexport function createTimeHandler({ onChange, nextRef, min, max, maxValue }: CreateTimeHandler) {\n return (value: string, triggerShift: boolean) => {\n if (value === '00') {\n onChange('00');\n triggerShift && nextRef?.current?.focus();\n triggerShift && nextRef?.current?.select();\n return;\n }\n\n const parsed = parseInt(value, 10);\n\n if (Number.isNaN(parsed)) {\n return;\n }\n\n if (parsed > maxValue) {\n onChange(padTime(clamp({ value: parsed, min, max }).toString()));\n triggerShift && nextRef?.current?.focus();\n triggerShift && nextRef?.current?.select();\n return;\n }\n\n onChange(parsed.toString());\n };\n}\n"],"names":["padTime","clamp"],"mappings":";;;;;;;AAEO,SAAS,iBAAiB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;AAC7E,EAAE,OAAO,CAAC,KAAK,EAAE,YAAY,KAAK;AAClC,IAAI,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AACvB,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;AACxB,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC;AACrB,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AACxG,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACzG,MAAM,OAAO;AACb,KAAK;AACL,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACvC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC9B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,MAAM,GAAG,QAAQ,EAAE;AAC3B,MAAM,QAAQ,CAACA,eAAO,CAACC,WAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACvE,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AACxG,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACzG,MAAM,OAAO;AACb,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,GAAG,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"create-time-handler.js","sources":["../../../../src/components/TimeInputBase/create-time-handler/create-time-handler.ts"],"sourcesContent":["import { clamp } from '@mantine/hooks';\nimport { padTime } from '../pad-time/pad-time';\n\ninterface CreateTimeHandler {\n onChange(value: string): void;\n nextRef?: React.RefObject<HTMLInputElement>;\n min: number;\n max: number;\n maxValue: number;\n}\n\nexport function createTimeHandler({ onChange, nextRef, min, max, maxValue }: CreateTimeHandler) {\n return (value: string, triggerShift: boolean, forceTriggerShift = false) => {\n const parsed = parseInt(value, 10);\n\n if (Number.isNaN(parsed)) {\n return;\n }\n\n if (parsed > maxValue || forceTriggerShift) {\n onChange(padTime(clamp({ value: parsed, min, max }).toString()));\n triggerShift && nextRef?.current?.focus();\n triggerShift && nextRef?.current?.select();\n return;\n }\n\n onChange(parsed.toString());\n };\n}\n"],"names":["padTime","clamp"],"mappings":";;;;;;;AAEO,SAAS,iBAAiB,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;AAC7E,EAAE,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,iBAAiB,GAAG,KAAK,KAAK;AAC7D,IAAI,IAAI,EAAE,EAAE,EAAE,CAAC;AACf,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACvC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC9B,MAAM,OAAO;AACb,KAAK;AACL,IAAI,IAAI,MAAM,GAAG,QAAQ,IAAI,iBAAiB,EAAE;AAChD,MAAM,QAAQ,CAACA,eAAO,CAACC,WAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACvE,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;AACxG,MAAM,YAAY,KAAK,CAAC,EAAE,GAAG,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,OAAO,KAAK,IAAI,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC;AACzG,MAAM,OAAO;AACb,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,GAAG,CAAC;AACJ;;;;"}
@@ -16,7 +16,13 @@ function getDate(hours, minutes, seconds, format, amPm) {
16
16
  if (Number.isNaN(_hours)) {
17
17
  _hours = 0;
18
18
  }
19
- return date.hour(format === "12" && amPm === "pm" ? _hours < 12 ? _hours - 12 : _hours : _hours).minute(Number.isNaN(_minutes) ? 0 : _minutes).second(Number.isNaN(_seconds) ? 0 : _seconds).toDate();
19
+ if (format === "12") {
20
+ _hours %= 12;
21
+ if (amPm === "pm") {
22
+ _hours += 12;
23
+ }
24
+ }
25
+ return date.hour(_hours).minute(Number.isNaN(_minutes) ? 0 : _minutes).second(Number.isNaN(_seconds) ? 0 : _seconds).toDate();
20
26
  }
21
27
 
22
28
  exports.getDate = getDate;
@@ -1 +1 @@
1
- {"version":3,"file":"get-date.js","sources":["../../../../src/components/TimeInputBase/get-date/get-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\nexport function getDate(\n hours: string,\n minutes: string,\n seconds: string,\n format: '12' | '24',\n amPm?: string\n) {\n const date = dayjs();\n let _hours = parseInt(hours, 10);\n const _minutes = parseInt(minutes, 10);\n const _seconds = parseInt(seconds, 10);\n\n if (Number.isNaN(_hours)) {\n _hours = 0;\n }\n\n return date\n .hour(format === '12' && amPm === 'pm' ? (_hours < 12 ? _hours - 12 : _hours) : _hours)\n .minute(Number.isNaN(_minutes) ? 0 : _minutes)\n .second(Number.isNaN(_seconds) ? 0 : _seconds)\n .toDate();\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AAC/D,EAAE,MAAM,IAAI,GAAGA,cAAK,EAAE,CAAC;AACvB,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnC,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AACxM;;;;"}
1
+ {"version":3,"file":"get-date.js","sources":["../../../../src/components/TimeInputBase/get-date/get-date.ts"],"sourcesContent":["import dayjs from 'dayjs';\n\nexport function getDate(\n hours: string,\n minutes: string,\n seconds: string,\n format: '12' | '24',\n amPm?: string\n) {\n const date = dayjs();\n let _hours = parseInt(hours, 10);\n const _minutes = parseInt(minutes, 10);\n const _seconds = parseInt(seconds, 10);\n\n if (Number.isNaN(_hours)) {\n _hours = 0;\n }\n\n if (format === '12') {\n _hours %= 12;\n if (amPm === 'pm') {\n _hours += 12;\n }\n }\n\n return date\n .hour(_hours)\n .minute(Number.isNaN(_minutes) ? 0 : _minutes)\n .second(Number.isNaN(_seconds) ? 0 : _seconds)\n .toDate();\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;;AACO,SAAS,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE;AAC/D,EAAE,MAAM,IAAI,GAAGA,cAAK,EAAE,CAAC;AACvB,EAAE,IAAI,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACnC,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,EAAE,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACzC,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,GAAG;AACH,EAAE,IAAI,MAAM,KAAK,IAAI,EAAE;AACvB,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,IAAI,IAAI,IAAI,KAAK,IAAI,EAAE;AACvB,MAAM,MAAM,IAAI,EAAE,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC;AAChI;;;;"}
@@ -4,14 +4,23 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var padTime = require('../pad-time/pad-time.js');
6
6
 
7
- function getTimeValues(value) {
7
+ function getTimeValues(value, format) {
8
8
  if (!(value instanceof Date)) {
9
- return { hours: "", minutes: "", seconds: "" };
9
+ return { hours: "", minutes: "", seconds: "", amPm: "" };
10
+ }
11
+ let _hours = value.getHours();
12
+ const isPm = _hours >= 12;
13
+ if (format === "12") {
14
+ _hours %= 12;
15
+ if (_hours === 0) {
16
+ _hours += 12;
17
+ }
10
18
  }
11
19
  return {
12
- hours: padTime.padTime(value.getHours().toString()),
20
+ hours: padTime.padTime(_hours.toString()),
13
21
  minutes: padTime.padTime(value.getMinutes().toString()),
14
- seconds: padTime.padTime(value.getSeconds().toString())
22
+ seconds: padTime.padTime(value.getSeconds().toString()),
23
+ amPm: isPm ? "pm" : "am"
15
24
  };
16
25
  }
17
26
 
@@ -1 +1 @@
1
- {"version":3,"file":"get-time-value.js","sources":["../../../../src/components/TimeInputBase/get-time-values/get-time-value.ts"],"sourcesContent":["import { padTime } from '../pad-time/pad-time';\n\nexport function getTimeValues(value: Date) {\n if (!(value instanceof Date)) {\n return { hours: '', minutes: '', seconds: '' };\n }\n\n return {\n hours: padTime(value.getHours().toString()),\n minutes: padTime(value.getMinutes().toString()),\n seconds: padTime(value.getSeconds().toString()),\n };\n}\n"],"names":["padTime"],"mappings":";;;;;;AACO,SAAS,aAAa,CAAC,KAAK,EAAE;AACrC,EAAE,IAAI,EAAE,KAAK,YAAY,IAAI,CAAC,EAAE;AAChC,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AACnD,GAAG;AACH,EAAE,OAAO;AACT,IAAI,KAAK,EAAEA,eAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;AAC/C,IAAI,OAAO,EAAEA,eAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;AACnD,IAAI,OAAO,EAAEA,eAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;AACnD,GAAG,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"get-time-value.js","sources":["../../../../src/components/TimeInputBase/get-time-values/get-time-value.ts"],"sourcesContent":["import { padTime } from '../pad-time/pad-time';\n\nexport function getTimeValues(value: Date, format: '12' | '24') {\n if (!(value instanceof Date)) {\n return { hours: '', minutes: '', seconds: '', amPm: '' };\n }\n\n let _hours = value.getHours();\n\n const isPm = _hours >= 12;\n if (format === '12') {\n _hours %= 12;\n if (_hours === 0) {\n _hours += 12;\n }\n }\n\n return {\n hours: padTime(_hours.toString()),\n minutes: padTime(value.getMinutes().toString()),\n seconds: padTime(value.getSeconds().toString()),\n amPm: isPm ? 'pm' : 'am',\n };\n}\n"],"names":["padTime"],"mappings":";;;;;;AACO,SAAS,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE;AAC7C,EAAE,IAAI,EAAE,KAAK,YAAY,IAAI,CAAC,EAAE;AAChC,IAAI,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AAC7D,GAAG;AACH,EAAE,IAAI,MAAM,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAChC,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,EAAE,CAAC;AAC5B,EAAE,IAAI,MAAM,KAAK,IAAI,EAAE;AACvB,IAAI,MAAM,IAAI,EAAE,CAAC;AACjB,IAAI,IAAI,MAAM,KAAK,CAAC,EAAE;AACtB,MAAM,MAAM,IAAI,EAAE,CAAC;AACnB,KAAK;AACL,GAAG;AACH,EAAE,OAAO;AACT,IAAI,KAAK,EAAEA,eAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACrC,IAAI,OAAO,EAAEA,eAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;AACnD,IAAI,OAAO,EAAEA,eAAO,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,CAAC;AACnD,IAAI,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI;AAC5B,GAAG,CAAC;AACJ;;;;"}
@@ -5,22 +5,14 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var React = require('react');
6
6
  var core = require('@mantine/core');
7
7
  var hooks = require('@mantine/hooks');
8
- var TimeField = require('../TimeInputBase/TimeField/TimeField.js');
9
- var createTimeHandler = require('../TimeInputBase/create-time-handler/create-time-handler.js');
10
- var getTimeValue = require('../TimeInputBase/get-time-values/get-time-value.js');
11
8
  var TimeRangeInput_styles = require('./TimeRangeInput.styles.js');
12
- var padTime = require('../TimeInputBase/pad-time/pad-time.js');
13
- var AmPmInput = require('../TimeInputBase/AmPmInput/AmPmInput.js');
14
- var createAmPmHandler = require('../TimeInputBase/create-amPm-handler/create-amPm-handler.js');
15
- var getDate = require('../TimeInputBase/get-date/get-date.js');
9
+ var TimeInput = require('../TimeInput/TimeInput.js');
16
10
 
17
11
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e['default'] : e; }
18
12
 
19
13
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
14
 
21
15
  var __defProp = Object.defineProperty;
22
- var __defProps = Object.defineProperties;
23
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
24
16
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
25
17
  var __hasOwnProp = Object.prototype.hasOwnProperty;
26
18
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -36,7 +28,6 @@ var __spreadValues = (a, b) => {
36
28
  }
37
29
  return a;
38
30
  };
39
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
40
31
  var __objRest = (source, exclude) => {
41
32
  var target = {};
42
33
  for (var prop in source)
@@ -70,7 +61,7 @@ const TimeRangeInput = React.forwardRef((_a, ref) => {
70
61
  styles,
71
62
  id,
72
63
  value,
73
- defaultValue,
64
+ defaultValue = [null, null],
74
65
  onChange,
75
66
  withSeconds = false,
76
67
  clearable = false,
@@ -119,106 +110,22 @@ const TimeRangeInput = React.forwardRef((_a, ref) => {
119
110
  const { classes, cx, theme } = TimeRangeInput_styles['default']({ size }, { classNames, styles, name: "TimeRangeInput" });
120
111
  const { margins, rest } = core.extractMargins(others);
121
112
  const uuid = hooks.useUuid(id);
122
- const hoursRef = React.useRef([]);
123
- const minutesRef = React.useRef([]);
124
- const secondsRef = React.useRef([]);
125
- const formatsRef = React.useRef([]);
126
- const [fromTime, setFromTime] = React.useState(getTimeValue.getTimeValues(value ? value[0] : defaultValue ? defaultValue[0] : void 0));
127
- const [toTime, setToTime] = React.useState(getTimeValue.getTimeValues(value ? value[1] : defaultValue ? defaultValue[1] : void 0));
128
- const [fromAmPm, setFromAmPm] = React.useState("am");
129
- const [toAmPm, setToAmPm] = React.useState("am");
130
- const [selectedFieldIndex, setSelectedFieldIndex] = React.useState(0);
113
+ const fromTimeRef = React.useRef();
114
+ const toTimeRef = React.useRef();
131
115
  const [_value, setValue] = React.useState(value != null ? value : defaultValue);
132
- React.useEffect(() => {
133
- setValue([
134
- getDate.getDate(fromTime.hours, fromTime.minutes, fromTime.seconds, format, fromAmPm),
135
- getDate.getDate(toTime.hours, toTime.minutes, toTime.seconds, format, toAmPm)
136
- ]);
137
- }, [
138
- fromTime.hours,
139
- fromTime.minutes,
140
- fromTime.seconds,
141
- toTime.hours,
142
- toTime.minutes,
143
- toTime.seconds,
144
- format,
145
- fromAmPm,
146
- toAmPm
147
- ]);
148
- React.useEffect(() => {
149
- if (format === "12" && (_value[0] || _value[1])) {
150
- setFromAmPm(parseInt(fromTime.hours, 10) >= 12 ? "pm" : "am");
151
- setToAmPm(parseInt(toTime.hours, 10) >= 12 ? "pm" : "am");
152
- }
153
- }, [format]);
154
- const setTime = (cb) => {
155
- selectedFieldIndex === 0 ? setFromTime(cb) : setToTime(cb);
156
- };
157
- const nextMinuteRef = () => {
158
- if (withSeconds) {
159
- return secondsRef.current[selectedFieldIndex];
160
- }
161
- if (format === "12") {
162
- return formatsRef.current[selectedFieldIndex];
163
- }
164
- if (format === "24" && selectedFieldIndex === 0) {
165
- return hoursRef.current[1];
166
- }
167
- return void 0;
168
- };
169
- const handleHoursChange = createTimeHandler.createTimeHandler({
170
- onChange: (val) => {
171
- setTime((current) => __spreadProps(__spreadValues({}, current), { hours: padTime.padTime(val) }));
172
- },
173
- min: 0,
174
- max: format === "12" ? 11 : 23,
175
- maxValue: format === "12" ? 1 : 2,
176
- nextRef: {
177
- current: minutesRef.current[selectedFieldIndex]
178
- }
179
- });
180
- const handleMinutesChange = createTimeHandler.createTimeHandler({
181
- onChange: (val) => {
182
- setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: padTime.padTime(val) }));
183
- },
184
- min: 0,
185
- max: 59,
186
- maxValue: 5,
187
- nextRef: {
188
- current: nextMinuteRef()
189
- }
190
- });
191
- const handleSecondsChange = createTimeHandler.createTimeHandler({
192
- onChange: (val) => {
193
- setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: padTime.padTime(val) }));
194
- },
195
- min: 0,
196
- max: 59,
197
- maxValue: 5,
198
- nextRef: {
199
- current: format === "12" ? formatsRef.current[selectedFieldIndex] : format === "24" && selectedFieldIndex === 0 ? hoursRef.current[1] : void 0
200
- }
201
- });
202
- const handleAmPmChange = createAmPmHandler.createAmPmHandler({
203
- onChange: (val) => {
204
- if (selectedFieldIndex === 0) {
205
- setFromAmPm(val);
206
- } else {
207
- setToAmPm(val);
208
- }
209
- },
210
- nextRef: {
211
- current: selectedFieldIndex === 0 ? hoursRef.current[1] : void 0
116
+ hooks.useDidUpdate(() => {
117
+ typeof onChange === "function" && onChange(_value);
118
+ }, [_value]);
119
+ hooks.useDidUpdate(() => {
120
+ var _a2, _b2, _c, _d;
121
+ if (((_a2 = value[0]) == null ? void 0 : _a2.getTime()) !== ((_b2 = _value[0]) == null ? void 0 : _b2.getTime()) || ((_c = value[1]) == null ? void 0 : _c.getTime()) !== ((_d = _value[1]) == null ? void 0 : _d.getTime())) {
122
+ setValue(value);
212
123
  }
213
- });
124
+ }, [value]);
214
125
  const handleClear = () => {
215
126
  var _a2;
216
- setFromTime({ hours: "", minutes: "", seconds: "" });
217
- setToTime({ hours: "", minutes: "", seconds: "" });
218
- setSelectedFieldIndex(0);
219
- setFromAmPm("");
220
- setToAmPm("");
221
- (_a2 = hoursRef.current[0]) == null ? void 0 : _a2.focus();
127
+ setValue([null, null]);
128
+ (_a2 = fromTimeRef.current) == null ? void 0 : _a2.focus();
222
129
  };
223
130
  const rightSection = clearable && _value.filter((item) => Boolean(item)).length > 0 ? /* @__PURE__ */ React__default.createElement(core.CloseButton, {
224
131
  variant: "transparent",
@@ -226,6 +133,18 @@ const TimeRangeInput = React.forwardRef((_a, ref) => {
226
133
  onClick: handleClear,
227
134
  size
228
135
  }) : null;
136
+ const forwardProps = {
137
+ amPmLabel,
138
+ amPmPlaceholder,
139
+ disabled,
140
+ format,
141
+ hoursLabel,
142
+ minutesLabel,
143
+ secondsLabel,
144
+ size,
145
+ timePlaceholder,
146
+ withSeconds
147
+ };
229
148
  return /* @__PURE__ */ React__default.createElement(core.InputWrapper, __spreadValues(__spreadValues({
230
149
  required,
231
150
  label,
@@ -245,8 +164,8 @@ const TimeRangeInput = React.forwardRef((_a, ref) => {
245
164
  required,
246
165
  invalid: !!error,
247
166
  onClick: () => {
248
- setSelectedFieldIndex(0);
249
- hoursRef.current[selectedFieldIndex].focus();
167
+ var _a2;
168
+ (_a2 = fromTimeRef.current) == null ? void 0 : _a2.focus();
250
169
  },
251
170
  size,
252
171
  className: cx({ [classes.disabled]: disabled }),
@@ -257,137 +176,25 @@ const TimeRangeInput = React.forwardRef((_a, ref) => {
257
176
  rightSectionWidth: theme.fn.size({ size, sizes: RIGHT_SECTION_WIDTH })
258
177
  }, rest), /* @__PURE__ */ React__default.createElement("div", {
259
178
  className: classes.inputWrapper
260
- }, /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
261
- ref: hooks.useMergedRef((node) => {
262
- hoursRef.current[0] = node;
263
- }, ref),
264
- value: fromTime.hours,
265
- onChange: handleHoursChange,
266
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { hours: val })),
267
- id: uuid,
268
- className: classes.timeField,
269
- withSeparator: true,
270
- size,
271
- max: format === "12" ? 11 : 23,
272
- placeholder: timePlaceholder,
273
- "aria-label": `from ${hoursLabel}`,
274
- disabled,
275
- onFocus: () => setSelectedFieldIndex(0)
276
- }), /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
277
- ref: (node) => {
278
- minutesRef.current[0] = node;
279
- },
280
- value: fromTime.minutes,
281
- onChange: handleMinutesChange,
282
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: val })),
283
- className: classes.timeField,
284
- withSeparator: withSeconds,
285
- size,
286
- max: 59,
287
- placeholder: timePlaceholder,
288
- "aria-label": `from ${minutesLabel}`,
289
- disabled,
290
- onFocus: () => setSelectedFieldIndex(0)
291
- }), withSeconds && /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
292
- ref: (node) => {
293
- secondsRef.current[0] = node;
294
- },
295
- value: fromTime.seconds,
296
- onChange: handleSecondsChange,
297
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: val })),
298
- className: classes.timeField,
299
- size,
300
- max: 59,
301
- placeholder: timePlaceholder,
302
- "aria-label": `from ${secondsLabel}`,
303
- disabled,
304
- onFocus: () => setSelectedFieldIndex(0)
305
- }), format === "12" && /* @__PURE__ */ React__default.createElement(AmPmInput.AmPmInput, {
306
- ref: (node) => {
307
- formatsRef.current[0] = node;
308
- },
309
- value: fromAmPm,
310
- onChange: handleAmPmChange,
311
- setValue: (val) => {
312
- setFromAmPm(val);
313
- },
314
- placeholder: amPmPlaceholder,
315
- onFocus: () => setSelectedFieldIndex(0),
316
- "aria-label": `from ${amPmLabel}`,
317
- disabled
318
- }), /* @__PURE__ */ React__default.createElement("span", {
179
+ }, /* @__PURE__ */ React__default.createElement(TimeInput.TimeInput, __spreadValues({
180
+ ref: hooks.useMergedRef(fromTimeRef, ref),
181
+ variant: "unstyled",
182
+ value: _value[0],
183
+ onChange: (date) => setValue([date, _value[1]]),
184
+ name,
185
+ nextRef: toTimeRef,
186
+ id: uuid
187
+ }, forwardProps)), /* @__PURE__ */ React__default.createElement("span", {
319
188
  className: classes.separator,
320
189
  style: {
321
- color: (toTime == null ? void 0 : toTime.hours) ? "inherit" : theme.colorScheme === "dark" ? theme.colors.dark[2] : theme.colors.gray[7]
190
+ color: theme.colorScheme === "dark" ? theme.colors.dark[2] : theme.colors.gray[7]
322
191
  }
323
- }, labelSeparator), /* @__PURE__ */ React__default.createElement("div", {
324
- className: classes.inputWrapper
325
- }, /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
326
- ref: (node) => {
327
- hoursRef.current[1] = node;
328
- },
329
- value: format === "12" && parseInt(toTime.hours, 10) >= 12 ? padTime.padTime((parseInt(toTime.hours, 10) - 12).toString()) : toTime.hours,
330
- onChange: handleHoursChange,
331
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { hours: val })),
332
- className: classes.timeField,
333
- withSeparator: true,
334
- size,
335
- max: format === "12" ? 11 : 23,
336
- placeholder: timePlaceholder,
337
- "aria-label": `to ${hoursLabel}`,
338
- disabled,
339
- onFocus: () => setSelectedFieldIndex(1)
340
- }), /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
341
- ref: (node) => {
342
- minutesRef.current[1] = node;
343
- },
344
- value: toTime.minutes,
345
- onChange: handleMinutesChange,
346
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { minutes: val })),
347
- className: classes.timeField,
348
- withSeparator: withSeconds,
349
- size,
350
- max: 59,
351
- placeholder: timePlaceholder,
352
- "aria-label": `to ${minutesLabel}`,
353
- disabled,
354
- onFocus: () => setSelectedFieldIndex(1)
355
- }), withSeconds && /* @__PURE__ */ React__default.createElement(TimeField.TimeField, {
356
- ref: (node) => {
357
- secondsRef.current[1] = node;
358
- },
359
- value: toTime.seconds,
360
- onChange: handleSecondsChange,
361
- setValue: (val) => setTime((current) => __spreadProps(__spreadValues({}, current), { seconds: val })),
362
- className: classes.timeField,
363
- size,
364
- max: 59,
365
- placeholder: timePlaceholder,
366
- "aria-label": `to ${secondsLabel}`,
367
- disabled,
368
- onFocus: () => setSelectedFieldIndex(1)
369
- }), format === "12" && /* @__PURE__ */ React__default.createElement(AmPmInput.AmPmInput, {
370
- ref: (node) => {
371
- formatsRef.current[1] = node;
372
- },
373
- value: toAmPm,
374
- onChange: handleAmPmChange,
375
- setValue: (val) => {
376
- setToAmPm(val);
377
- },
378
- placeholder: amPmPlaceholder,
379
- onFocus: () => setSelectedFieldIndex(1),
380
- "aria-label": `to ${amPmLabel}`,
381
- disabled
382
- })), name && /* @__PURE__ */ React__default.createElement("input", {
383
- type: "hidden",
384
- name: `${name}-from`,
385
- value: _value[0].toISOString()
386
- }), name && /* @__PURE__ */ React__default.createElement("input", {
387
- type: "hidden",
388
- name: `${name}-to`,
389
- value: _value[1].toISOString()
390
- }))));
192
+ }, labelSeparator), /* @__PURE__ */ React__default.createElement(TimeInput.TimeInput, __spreadValues({
193
+ ref: toTimeRef,
194
+ variant: "unstyled",
195
+ value: _value[1],
196
+ onChange: (date) => setValue([_value[0], date])
197
+ }, forwardProps)))));
391
198
  });
392
199
  TimeRangeInput.displayName = "@mantine/dates/TimeRangeInput";
393
200