@servicetitan/anvil2 1.45.1 → 1.45.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 (106) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/{Calendar-Dq_of5A3.js → Calendar-BK861SAW.js} +1173 -166
  3. package/dist/Calendar-BK861SAW.js.map +1 -0
  4. package/dist/Calendar.css +83 -47
  5. package/dist/Calendar.js +1 -1
  6. package/dist/{Checkbox-BiOzGpgJ.js → Checkbox-CYNjFdtO.js} +2 -2
  7. package/dist/{Checkbox-BiOzGpgJ.js.map → Checkbox-CYNjFdtO.js.map} +1 -1
  8. package/dist/{Checkbox-3y2d9mBd.js → Checkbox-ZphVb1l0.js} +2 -2
  9. package/dist/{Checkbox-3y2d9mBd.js.map → Checkbox-ZphVb1l0.js.map} +1 -1
  10. package/dist/Checkbox.js +2 -2
  11. package/dist/Combobox.js +1 -1
  12. package/dist/{DateField-B2mnasH5.js → DateField-DnasO2rB.js} +4 -4
  13. package/dist/{DateField-B2mnasH5.js.map → DateField-DnasO2rB.js.map} +1 -1
  14. package/dist/DateField.js +1 -1
  15. package/dist/{DateFieldRange-DPbyzuHb.js → DateFieldRange-Ba-8T-Nz.js} +31 -25
  16. package/dist/DateFieldRange-Ba-8T-Nz.js.map +1 -0
  17. package/dist/DateFieldRange.js +1 -1
  18. package/dist/{DateFieldSingle-CfAJDcx9.js → DateFieldSingle-BBu5Hi9c.js} +26 -26
  19. package/dist/DateFieldSingle-BBu5Hi9c.js.map +1 -0
  20. package/dist/DateFieldSingle.js +1 -1
  21. package/dist/{DateFieldYearless-ydxcsmRV.js → DateFieldYearless-Ba7HiTiI.js} +2 -2
  22. package/dist/{DateFieldYearless-ydxcsmRV.js.map → DateFieldYearless-Ba7HiTiI.js.map} +1 -1
  23. package/dist/DateFieldYearless.js +1 -1
  24. package/dist/{DaysOfTheWeek-BYvE9QK5.js → DaysOfTheWeek-BYSYZySH.js} +2 -2
  25. package/dist/{DaysOfTheWeek-BYvE9QK5.js.map → DaysOfTheWeek-BYSYZySH.js.map} +1 -1
  26. package/dist/DaysOfTheWeek.js +1 -1
  27. package/dist/{Dialog-DpH2Qvbd.js → Dialog-CgkrvrQu.js} +2 -2
  28. package/dist/{Dialog-DpH2Qvbd.js.map → Dialog-CgkrvrQu.js.map} +1 -1
  29. package/dist/Dialog.js +1 -1
  30. package/dist/{Drawer-DI_k6W2k.js → Drawer-CM4ZbAro.js} +2 -2
  31. package/dist/{Drawer-DI_k6W2k.js.map → Drawer-CM4ZbAro.js.map} +1 -1
  32. package/dist/Drawer.js +1 -1
  33. package/dist/{FieldLabel-BfnCXung.js → FieldLabel-BsbTTyom.js} +3 -14
  34. package/dist/FieldLabel-BsbTTyom.js.map +1 -0
  35. package/dist/FieldLabel.js +1 -1
  36. package/dist/{InputMask-O_qi1p_3.js → InputMask-_F139qFu.js} +2 -2
  37. package/dist/{InputMask-O_qi1p_3.js.map → InputMask-_F139qFu.js.map} +1 -1
  38. package/dist/InputMask.js +1 -1
  39. package/dist/{ListView-jR2ZkBB7.js → ListView-DEAMQopB.js} +2 -2
  40. package/dist/{ListView-jR2ZkBB7.js.map → ListView-DEAMQopB.js.map} +1 -1
  41. package/dist/ListView.js +1 -1
  42. package/dist/{NumberField-1_gRsWT4.js → NumberField-CkZZrkYC.js} +5 -5
  43. package/dist/{NumberField-1_gRsWT4.js.map → NumberField-CkZZrkYC.js.map} +1 -1
  44. package/dist/NumberField.js +1 -1
  45. package/dist/{Page-CY6QRlvb.js → Page-cKXkjMmd.js} +2 -2
  46. package/dist/{Page-CY6QRlvb.js.map → Page-cKXkjMmd.js.map} +1 -1
  47. package/dist/Page.js +1 -1
  48. package/dist/{ProgressBar-BnXuQ6Bx.js → ProgressBar-DXcXZEJ2.js} +2 -2
  49. package/dist/{ProgressBar-BnXuQ6Bx.js.map → ProgressBar-DXcXZEJ2.js.map} +1 -1
  50. package/dist/ProgressBar.js +1 -1
  51. package/dist/{Radio-CwmRUIzo.js → Radio-C89VCMXd.js} +2 -2
  52. package/dist/{Radio-CwmRUIzo.js.map → Radio-C89VCMXd.js.map} +1 -1
  53. package/dist/Radio.js +2 -2
  54. package/dist/{RadioGroup-BNCWIHOG.js → RadioGroup-C_4buUtG.js} +2 -2
  55. package/dist/{RadioGroup-BNCWIHOG.js.map → RadioGroup-C_4buUtG.js.map} +1 -1
  56. package/dist/{SelectCard-DOGCG0zr.js → SelectCard-BWh8Yp7T.js} +3 -3
  57. package/dist/{SelectCard-DOGCG0zr.js.map → SelectCard-BWh8Yp7T.js.map} +1 -1
  58. package/dist/SelectCard.js +1 -1
  59. package/dist/{SelectTrigger-BMo0e-F7.js → SelectTrigger-f1hvRrSC.js} +2 -2
  60. package/dist/{SelectTrigger-BMo0e-F7.js.map → SelectTrigger-f1hvRrSC.js.map} +1 -1
  61. package/dist/SelectTrigger.js +1 -1
  62. package/dist/{SelectTriggerBase-BMMxnXrw.js → SelectTriggerBase-DP9fmRSo.js} +2 -2
  63. package/dist/{SelectTriggerBase-BMMxnXrw.js.map → SelectTriggerBase-DP9fmRSo.js.map} +1 -1
  64. package/dist/{TextField-CwgE_JJU.js → TextField-BiHxlzE3.js} +2 -2
  65. package/dist/{TextField-CwgE_JJU.js.map → TextField-BiHxlzE3.js.map} +1 -1
  66. package/dist/{TextField-DlsZEkS0.js → TextField-D8fow9j7.js} +2 -2
  67. package/dist/{TextField-DlsZEkS0.js.map → TextField-D8fow9j7.js.map} +1 -1
  68. package/dist/TextField.js +1 -1
  69. package/dist/{Textarea-DU-SpoDL.js → Textarea-BdVJJlbP.js} +2 -2
  70. package/dist/{Textarea-DU-SpoDL.js.map → Textarea-BdVJJlbP.js.map} +1 -1
  71. package/dist/Textarea.js +1 -1
  72. package/dist/{TimeField-CfhyRfX9.js → TimeField-CmbErrsZ.js} +2 -2
  73. package/dist/{TimeField-CfhyRfX9.js.map → TimeField-CmbErrsZ.js.map} +1 -1
  74. package/dist/TimeField.js +1 -1
  75. package/dist/Toast.js +2 -2
  76. package/dist/{Toaster-BgjT0p8b.js → Toaster-9cpG_tWR.js} +2 -2
  77. package/dist/{Toaster-BgjT0p8b.js.map → Toaster-9cpG_tWR.js.map} +1 -1
  78. package/dist/{Toaster-CfC9wod0.js → Toaster-B7zUwJOt.js} +2 -2
  79. package/dist/{Toaster-CfC9wod0.js.map → Toaster-B7zUwJOt.js.map} +1 -1
  80. package/dist/components/DateFieldRange/DateFieldRange.d.ts +2 -2
  81. package/dist/components/DateFieldRange/internal/useDateFieldRangeState.d.ts +2 -7
  82. package/dist/components/DateFieldSingle/DateFieldSingle.d.ts +2 -2
  83. package/dist/components/DateFieldSingle/internal/useDateFieldSingleState.d.ts +2 -7
  84. package/dist/components/NumberField/NumberField.d.ts +4 -4
  85. package/dist/index.js +26 -26
  86. package/dist/internal/components/YearSelector/YearSelector.d.ts +67 -0
  87. package/dist/internal/components/YearSelector/index.d.ts +1 -0
  88. package/dist/internal/components/YearSelector/internal/YearItem.d.ts +10 -0
  89. package/dist/internal/components/YearSelector/internal/useYearSelectorKeys.d.ts +19 -0
  90. package/dist/internal/hooks/useFocusWithin/useFocusWithin.d.ts +11 -16
  91. package/dist/types/PassThroughProps.d.ts +4 -0
  92. package/dist/types/index.d.ts +1 -0
  93. package/dist/{useDateFieldOrchestration-Cqa7dxtr.js → useDateFieldOrchestration-DPLftOxu.js} +2 -2
  94. package/dist/{useDateFieldOrchestration-Cqa7dxtr.js.map → useDateFieldOrchestration-DPLftOxu.js.map} +1 -1
  95. package/dist/useFocusWithin-BhhgRXdZ.js +32 -0
  96. package/dist/useFocusWithin-BhhgRXdZ.js.map +1 -0
  97. package/dist/{useInfiniteCombobox-BN2uGhBh.js → useInfiniteCombobox-BaYWUxjg.js} +2 -2
  98. package/dist/{useInfiniteCombobox-BN2uGhBh.js.map → useInfiniteCombobox-BaYWUxjg.js.map} +1 -1
  99. package/package.json +2 -1
  100. package/dist/Calendar-Dq_of5A3.js.map +0 -1
  101. package/dist/DateFieldRange-DPbyzuHb.js.map +0 -1
  102. package/dist/DateFieldSingle-CfAJDcx9.js.map +0 -1
  103. package/dist/FieldLabel-BfnCXung.js.map +0 -1
  104. package/dist/components/Calendar/internal/CalendarYearSelection.d.ts +0 -25
  105. package/dist/useFocusWithin-BhU7hoAD.js +0 -56
  106. package/dist/useFocusWithin-BhU7hoAD.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DateField-B2mnasH5.js","sources":["../src/components/DateField/internal/isoToDateFormat.ts","../src/components/DateField/internal/DateFieldLegacy/DateFieldLegacy.tsx","../src/components/DateField/DateField.tsx"],"sourcesContent":["import { DateTime } from \"luxon\";\n\nexport const isoToDateFormat = (date: string, format: string) => {\n // Returns a string of the proper format for ISO strings and the input date string for non-ISO strings\n const luxonDate = DateTime.fromISO(date);\n if (luxonDate.isValid) {\n return luxonDate.toFormat(format);\n }\n return date;\n};\n","import {\n ChangeEvent,\n ChangeEventHandler,\n FocusEventHandler,\n KeyboardEventHandler,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { InputMask } from \"../../../InputMask\";\nimport {\n TextField,\n TextFieldProps,\n} from \"../../../TextField/internal/TextField\";\nimport { PopoverLegacy } from \"../../../Popover/internal/PopoverLegacy\";\nimport {\n CalendarProps,\n CalendarValue,\n CalendarRangeValue,\n} from \"../../../Calendar/Calendar\";\nimport { Calendar } from \"../../../Calendar\";\nimport { useMergeRefs } from \"@floating-ui/react\";\nimport { IanaZone, Locale } from \"../../../../types\";\nimport { Icon } from \"../../../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport { DateTime } from \"luxon\";\nimport { isValidDate, toDateString } from \"../../../Calendar/internal/utils\";\n\nconst RANGE_DIVIDER = \" — \";\n\ninterface DateFieldLegacyCommonProps {\n format?: \"MM/dd/yyyy\" | \"dd/MM/yyyy\";\n locale?: Locale;\n defaultTimeZone?: IanaZone;\n openCalendar?: boolean;\n disableHint?: boolean;\n}\n\nexport interface LegacyDateSelect {\n value: string;\n date: string | null | undefined;\n isValid: boolean;\n}\n\nexport interface LegacyDateRangeSelect {\n start?: LegacyDateSelect;\n end?: LegacyDateSelect;\n value: string;\n}\n\ninterface DateFieldLegacySingleProps {\n onChange?: (\n event: ChangeEvent<HTMLInputElement>,\n data: LegacyDateSelect,\n ) => void;\n defaultValue?: string;\n range?: false;\n}\n\ninterface DateFieldLegacyRangeProps {\n onChange?: (\n event: ChangeEvent<HTMLInputElement>,\n data: LegacyDateRangeSelect,\n ) => void;\n defaultValue?: { start?: string; end?: string };\n range: true;\n}\n\nexport type DateFieldLegacyProps = Omit<CalendarProps, \"onChange\"> &\n Omit<\n TextFieldProps,\n \"prefix\" | \"suffix\" | \"hint\" | \"onChange\" | \"showCounter\"\n > &\n DateFieldLegacyCommonProps &\n (DateFieldLegacySingleProps | DateFieldLegacyRangeProps);\n\nexport const DateFieldLegacy = forwardRef<\n HTMLInputElement,\n DateFieldLegacyProps\n>(\n (\n {\n // DateFieldLegacy\n openCalendar,\n onFocus,\n onBlur,\n onChange,\n format = \"MM/dd/yyyy\",\n disableHint,\n\n // Calendar\n minDate,\n maxDate,\n unavailableDates,\n unavailable,\n startDay,\n defaultValue,\n value: inputValue,\n\n // Shared\n locale = Intl.DateTimeFormat().resolvedOptions().locale as Locale,\n defaultTimeZone = Intl.DateTimeFormat().resolvedOptions()\n .timeZone as IanaZone,\n range,\n\n // Input\n required,\n ...inputProps\n },\n ref,\n ) => {\n const [open, setOpen] = useState(openCalendar || false);\n const [internalValue, setInternalValue] = useState<\n LegacyDateSelect | LegacyDateRangeSelect | undefined\n >();\n const [disableFocusLock, setDisableFocusLock] = useState(true);\n const inputRef = useRef<HTMLInputElement>(null);\n const calRef = useRef<HTMLDivElement>(null);\n const iconRef = useRef<HTMLElement>(null);\n const docRef = useRef<Document | Node | null>(null);\n const floatRef = useRef<HTMLDivElement>(null);\n const isClickOutside = useRef(false);\n const formatMask = format.replace(/[^/]/g, \"_\");\n const hint = useMemo(\n () => (disableHint ? undefined : `Format: ${format.replace(/M/g, \"m\")}`),\n [format, disableHint],\n );\n\n useEffect(() => {\n if (!docRef.current) {\n if (document != null) {\n docRef.current = document;\n return;\n }\n const doc = inputRef.current?.closest(\"body\")?.ownerDocument;\n if (doc) {\n docRef.current = doc;\n }\n\n if (docRef.current == null && inputRef.current?.parentNode != null) {\n let node: Node = inputRef.current?.parentNode;\n while (node.parentNode != null) {\n node = node.parentNode;\n }\n docRef.current = node;\n }\n }\n const clickOutHandler = (ev: Event) => {\n // this is more accurate, especially in shadow doms\n const realTarget = ev.composedPath()[0] as Node;\n\n if (\n !floatRef.current?.contains(realTarget) &&\n !iconRef.current?.contains(realTarget) &&\n inputRef.current !== realTarget\n ) {\n setOpen(false);\n setDisableFocusLock(true);\n onBlur?.(ev as unknown as React.FocusEvent<HTMLInputElement>);\n }\n };\n\n if (open) {\n docRef.current?.addEventListener(\"click\", clickOutHandler);\n } else {\n docRef.current?.removeEventListener(\"click\", clickOutHandler);\n }\n\n return () => {\n docRef.current?.removeEventListener(\"click\", clickOutHandler);\n };\n }, [open, onBlur]);\n\n useEffect(() => {\n if (range) {\n let start;\n let end;\n if (typeof inputValue === \"string\") {\n const parts = inputValue.split(RANGE_DIVIDER);\n start = parts[0];\n end = parts[1];\n } else {\n start = inputValue?.start ?? \"\";\n end = inputValue?.end ?? \"\";\n }\n const startDate = DateTime.fromFormat(start ?? \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(end ?? \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newData: LegacyDateRangeSelect = {\n start: {\n value: start,\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: end,\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: `${start || formatMask}${RANGE_DIVIDER}${end || formatMask}`,\n };\n setInternalValue(newData);\n } else {\n if (typeof inputValue !== \"string\") return;\n const inputDate = DateTime.fromFormat(inputValue, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newData: LegacyDateSelect = {\n value: inputValue,\n date: toDateString(inputDate),\n isValid:\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n setInternalValue(newData);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inputValue]);\n\n const mask: string = useMemo(() => {\n const maskPart = format.replace(/[Mdy]/g, \"9\");\n if (range) {\n return maskPart + RANGE_DIVIDER + maskPart;\n } else {\n return maskPart;\n }\n }, [format, range]);\n\n useEffect(() => {\n // Set default only if uncontrolled and we have a defaultValue.\n if (typeof inputValue === \"string\") return;\n if (defaultValue) {\n if (range) {\n // Get input value\n const defValStart = defaultValue.start;\n const defValEnd = defaultValue.end;\n\n const initValStart =\n defValStart +\n (formatMask + RANGE_DIVIDER + formatMask).slice(\n defValStart?.length,\n );\n const initValEnd =\n defValEnd +\n (formatMask + RANGE_DIVIDER + formatMask).slice(defValEnd?.length);\n const newValue = initValStart + RANGE_DIVIDER + initValEnd;\n\n // Set calendar value\n const inputDateStart = DateTime.fromFormat(\n defValStart || \"\",\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const inputDateEnd = DateTime.fromFormat(defValEnd || \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n\n const isValidStart =\n inputDateStart.isValid &&\n isValidDate(\n inputDateStart,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n\n const isValidEnd =\n inputDateEnd.isValid &&\n isValidDate(\n inputDateEnd,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n const initCalendarValue: LegacyDateRangeSelect = {\n start: {\n value: initValStart,\n date: toDateString(inputDateStart),\n isValid: isValidStart,\n },\n end: {\n value: initValEnd,\n date: toDateString(inputDateEnd),\n isValid: isValidEnd,\n },\n value: newValue,\n };\n setInternalValue(initCalendarValue);\n } else {\n // Get input value\n const defVal = defaultValue as string;\n const initVal = defVal + formatMask.slice(defVal.length);\n\n // Set calendar value\n const inputDate = DateTime.fromFormat(defVal, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const isValid =\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n const initCalendarValue: LegacyDateSelect = {\n value: initVal,\n date: toDateString(inputDate),\n isValid,\n };\n setInternalValue(initCalendarValue);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const focusToCalendar = () => {\n if (calRef.current) {\n const currentFocusable =\n calRef.current.querySelectorAll('[tabindex = \"0\"]')[0];\n if (currentFocusable) {\n (currentFocusable as HTMLButtonElement).focus();\n }\n }\n };\n\n const handleInputKeyDown: KeyboardEventHandler<HTMLInputElement> = (ev) => {\n switch (ev.key) {\n case \"Tab\":\n setOpen(false);\n break;\n case \"ArrowDown\":\n if (!open) {\n setOpen(true);\n setTimeout(focusToCalendar, 100);\n } else {\n focusToCalendar();\n }\n }\n };\n\n const handleInputChange: ChangeEventHandler<HTMLInputElement> = (ev) => {\n if (range) {\n const parts = ev.target.value.split(RANGE_DIVIDER);\n if (parts.length !== 2) return;\n const startDate = DateTime.fromFormat(parts[0], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(parts[1], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: LegacyDateRangeSelect = {\n start: {\n value: parts[0],\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: parts[1],\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: ev.target.value,\n };\n if (!inputValue) {\n setInternalValue(returnValue);\n }\n onChange?.(ev, returnValue);\n } else {\n if (ev.target.value === (internalValue as LegacyDateSelect)?.date)\n return;\n // Check if the value is a real date.\n const inputDate = DateTime.fromFormat(ev.target.value, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: LegacyDateSelect = {\n value: ev.target.value,\n date: toDateString(inputDate),\n isValid:\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n if (!inputValue) {\n setInternalValue(returnValue);\n }\n onChange?.(ev, returnValue);\n }\n };\n\n const handleInputBlur: React.FocusEventHandler<HTMLInputElement> = (ev) => {\n if (isClickOutside.current) {\n isClickOutside.current = false;\n return;\n }\n\n if (!calRef.current?.contains(ev.relatedTarget as Node)) {\n setOpen(false);\n onBlur?.(ev);\n }\n };\n\n const handleCalendarKeyDown: KeyboardEventHandler<HTMLDivElement> = (\n ev,\n ) => {\n switch (ev.key) {\n case \"Escape\":\n setDisableFocusLock(true);\n inputRef.current?.focus();\n break;\n }\n };\n\n const handleCalendarBlur: React.FocusEventHandler<HTMLDivElement> = (\n ev,\n ) => {\n if (\n !(\n inputRef.current === ev.currentTarget ||\n calRef.current === ev.currentTarget\n )\n ) {\n setOpen(false);\n onBlur?.(ev);\n }\n if (!(calRef.current === ev.currentTarget)) {\n setDisableFocusLock(true);\n }\n };\n\n const handleCalendarFocus: React.FocusEventHandler = (_event) => {\n if (disableFocusLock) {\n setDisableFocusLock(false);\n }\n };\n\n const handleCalendarSelection = (\n data: { value: CalendarValue } | { value: CalendarRangeValue },\n ) => {\n if (range) {\n const calSelectData = data as { value: CalendarRangeValue };\n const startVal = DateTime.fromISO(calSelectData?.value?.start || \"\", {\n zone: defaultTimeZone,\n });\n const endVal = DateTime.fromISO(calSelectData?.value?.end || \"\", {\n zone: defaultTimeZone,\n });\n let newValue = \"\";\n const newInternalValue: LegacyDateRangeSelect = { value: \"\" };\n if (startVal.isValid) {\n newInternalValue.start = {\n value: startVal.toFormat(format),\n date: calSelectData?.value?.start,\n isValid: true,\n };\n newValue += startVal.toFormat(format);\n } else {\n newValue += formatMask;\n }\n newValue += RANGE_DIVIDER;\n if (endVal.isValid) {\n newInternalValue.end = {\n value: endVal.toFormat(format),\n date: calSelectData?.value?.end,\n isValid: true,\n };\n newValue += endVal.toFormat(format);\n } else {\n newValue += formatMask;\n }\n if (typeof inputValue !== \"string\") {\n setInternalValue(newInternalValue);\n }\n newInternalValue.value = newValue;\n const event = {\n target: {\n value: newValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(event, newInternalValue);\n } else {\n const calSelectData = data as { value: CalendarValue };\n const val = DateTime.fromISO(calSelectData.value || \"\", {\n zone: defaultTimeZone,\n });\n const newValue = val.toFormat(format);\n const newInternalValue: LegacyDateSelect = {\n value: newValue,\n date: calSelectData.value,\n isValid:\n val.isValid &&\n isValidDate(\n val,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n if (typeof inputValue !== \"string\") {\n setInternalValue(newInternalValue);\n }\n const event = {\n target: {\n value: newValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(event, newInternalValue);\n }\n };\n\n const handleInputFocus: FocusEventHandler<HTMLInputElement> = (ev) => {\n if (!open) {\n setOpen(true);\n onFocus?.(ev);\n }\n };\n\n return (\n <PopoverLegacy\n open={openCalendar || open}\n modal\n placement=\"bottom-start\"\n disableFlipFallback\n disableTriggerFocus\n disableFocusLock={disableFocusLock}\n >\n <PopoverLegacy.Trigger>\n {({ ref: popoverRef, ...props }) => (\n <>\n <InputMask\n mask={mask}\n inputProps={{\n onKeyDown: handleInputKeyDown,\n onBlur: handleInputBlur,\n onChange: handleInputChange,\n onFocus: handleInputFocus,\n }}\n value={internalValue?.value || \"\"}\n {...props}\n // eslint-disable-next-line react-hooks/rules-of-hooks\n ref={useMergeRefs([popoverRef, inputRef])}\n >\n <TextField\n hint={hint}\n ref={ref}\n prefix={<Icon svg={Event} ref={iconRef} />}\n {...inputProps}\n required={required}\n />\n </InputMask>\n </>\n )}\n </PopoverLegacy.Trigger>\n <PopoverLegacy.Content ref={floatRef}>\n {!range ? (\n <Calendar\n ref={calRef}\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={(internalValue as LegacyDateSelect)?.date}\n value={(internalValue as LegacyDateSelect)?.date || undefined}\n locale={locale}\n onBlur={handleCalendarBlur}\n onSelection={handleCalendarSelection}\n onFocus={handleCalendarFocus}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n />\n ) : (\n <Calendar\n ref={calRef}\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={\n (internalValue as LegacyDateRangeSelect)?.start?.date\n }\n value={\n internalValue\n ? {\n start:\n (internalValue as LegacyDateRangeSelect)?.start?.date ||\n undefined,\n end:\n (internalValue as LegacyDateRangeSelect)?.end?.date ||\n undefined,\n }\n : undefined\n }\n locale={locale}\n onBlur={handleCalendarBlur}\n onSelection={handleCalendarSelection}\n onFocus={handleCalendarFocus}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n range\n />\n )}\n </PopoverLegacy.Content>\n </PopoverLegacy>\n );\n },\n);\n\nDateFieldLegacy.displayName = \"DateFieldLegacy\";\n","import {\n ChangeEvent,\n ChangeEventHandler,\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n Ref,\n RefObject,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useTrackingId, useMergeRefs } from \"../../hooks\";\nimport { DataTrackingId, IanaZone } from \"../../types\";\nimport Calendar, {\n CalendarProps,\n CalendarRangeValue,\n CalendarValue,\n} from \"../Calendar\";\nimport { TextFieldProps } from \"../TextField\";\nimport {\n DateFieldCommonProps,\n DateFieldRangeProps,\n DateFieldSingleProps,\n} from \"./types\";\nimport { childrenToString, supportsPopover } from \"../../internal/functions\";\nimport InputMask from \"../InputMask\";\nimport Icon from \"../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport { DateTime } from \"luxon\";\nimport {\n useKeyboardFocusables,\n usePopoverCloseDelayWorkaround,\n} from \"../../internal/hooks\";\nimport { isoToDateFormat } from \"./internal/isoToDateFormat\";\nimport { isValidDate, toDateString } from \"../Calendar/internal/utils\";\nimport Popover from \"../Popover\";\nimport {\n DateFieldLegacy,\n DateFieldLegacyProps,\n} from \"./internal/DateFieldLegacy\";\n\nconst RANGE_DIVIDER = \" – \";\n\n/**\n * Data structure for a single date selection\n */\nexport type DateSelect = {\n /** The formatted date string value */\n value: string;\n /** The ISO date string or null if invalid */\n date: string | null | undefined;\n /** Whether the date is valid according to constraints */\n isValid: boolean;\n};\n\n/**\n * Data structure for a date range selection\n */\nexport type DateRangeSelect = {\n /** The start date selection */\n start?: DateSelect;\n /** The end date selection */\n end?: DateSelect;\n /** The combined formatted range string */\n value: string;\n};\n\n/**\n * Props for the DateField component\n */\nexport type DateFieldProps = Omit<\n CalendarProps,\n \"onChange\" | \"value\" | \"defaultValue\"\n> &\n Omit<\n TextFieldProps,\n | \"prefix\"\n | \"suffix\"\n | \"hint\"\n | \"onChange\"\n | \"showCounter\"\n | \"value\"\n | \"defaultValue\"\n > &\n DataTrackingId &\n DateFieldCommonProps &\n (DateFieldSingleProps | DateFieldRangeProps);\n\n/**\n * DateField component for selecting dates with calendar popup and input validation\n * @deprecated Use DateFieldSingle or DateFieldRange instead\n */\nexport const DateField = forwardRef(\n (props: DateFieldProps, ref: Ref<HTMLInputElement>) => {\n const data = {\n label: childrenToString(props.label),\n labelProps: props.labelProps,\n description: childrenToString(props.description),\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"DateField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const {\n // DateField\n openCalendar,\n onFocus,\n onBlur,\n onChange,\n onClick,\n format = \"MM/dd/yyyy\",\n disableHint,\n\n // Calendar\n minDate,\n maxDate,\n unavailableDates,\n unavailable,\n startDay,\n defaultValue,\n value: inputValue,\n\n // Shared\n // locale = Intl.DateTimeFormat().resolvedOptions().locale as Locale,\n defaultTimeZone = Intl.DateTimeFormat().resolvedOptions()\n .timeZone as IanaZone,\n range,\n\n // Input\n required,\n ...inputProps\n } = props;\n const [open, _setOpen] = useState(openCalendar || false);\n const setOpen = (val: boolean) => {\n if (open && !val) {\n inputRef.current?.focus();\n }\n _setOpen(val);\n };\n\n const [internalValue, setInternalValue] = useState<\n DateSelect | DateRangeSelect | undefined\n >();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const popperRef = useRef<HTMLDivElement>(null);\n const documentRef = useRef<HTMLElement>(document.body);\n const hint = useMemo(\n () => (disableHint ? undefined : `Format: ${format.replace(/M/g, \"m\")}`),\n [format, disableHint],\n );\n\n const { focusables } = useKeyboardFocusables(documentRef, {\n observeChange: true,\n });\n\n const { focusables: popoverFocusables } = useKeyboardFocusables(popperRef, {\n observeChange: true,\n });\n\n const pageFocusables = focusables?.filter(\n (item) => !popoverFocusables?.includes(item),\n );\n\n const [popoverRef, setPopoverRef] = useState<RefObject<HTMLInputElement>>();\n const combinedRef = useMergeRefs([popoverRef, inputRef]);\n\n useEffect(() => {\n // Set internalValue from defaultValue\n if (!defaultValue) return;\n if (range) {\n const startDate = DateTime.fromFormat(\n isoToDateFormat(defaultValue.start ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const endDate = DateTime.fromFormat(\n isoToDateFormat(defaultValue.end ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const newValue: DateRangeSelect = {\n start: {\n value: isoToDateFormat(defaultValue.start ?? \"\", format),\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: isoToDateFormat(defaultValue.end ?? \"\", format),\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value:\n isoToDateFormat(defaultValue.start ?? \"\", format) +\n RANGE_DIVIDER +\n isoToDateFormat(defaultValue.end ?? \"\", format),\n };\n setInternalValue(newValue);\n return;\n }\n const date = DateTime.fromFormat(\n isoToDateFormat(defaultValue, format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const newValue = {\n value: isoToDateFormat(defaultValue, format),\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n } as DateSelect;\n setInternalValue(newValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const getCurrentValue = () => {\n if (inputValue !== undefined) {\n if (range) {\n const startDate = DateTime.fromFormat(\n isoToDateFormat(inputValue.start ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const endDate = DateTime.fromFormat(\n isoToDateFormat(inputValue.end ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const returnValue: DateRangeSelect = {\n start: {\n value: isoToDateFormat(inputValue.start ?? \"\", format),\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: isoToDateFormat(inputValue.end ?? \"\", format),\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value:\n isoToDateFormat(inputValue.start ?? \"\", format) +\n RANGE_DIVIDER +\n isoToDateFormat(inputValue.end ?? \"\", format),\n };\n return returnValue;\n }\n const date = DateTime.fromFormat(\n isoToDateFormat(inputValue, format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n return {\n value: isoToDateFormat(inputValue, format),\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n } as DateSelect;\n }\n return internalValue;\n };\n\n const handleInputFocus: FocusEventHandler<HTMLInputElement> = (ev) => {\n // DO NOT OPEN THE CALENDAR ON KEYBOARD OR MANUAL FOCUS EVENT\n onFocus?.(ev);\n };\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = (ev) => {\n if (!popperRef.current?.contains(ev.relatedTarget)) {\n setOpen(false);\n onBlur?.(ev);\n }\n };\n\n const handleInputKeyDown: KeyboardEventHandler<HTMLInputElement> = (ev) => {\n let currentFocusIndex = 0;\n switch (ev.key) {\n case \"Escape\":\n setOpen(false);\n break;\n case \"Tab\":\n if (!open || !pageFocusables?.length) {\n break;\n }\n ev.preventDefault();\n currentFocusIndex = pageFocusables.indexOf(inputRef.current!) || 0;\n setOpen(false);\n if (ev.shiftKey) {\n if (currentFocusIndex === 0) {\n requestAnimationFrame(() =>\n pageFocusables[pageFocusables.length - 1].focus(),\n );\n } else {\n requestAnimationFrame(() =>\n pageFocusables[currentFocusIndex - 1].focus(),\n );\n }\n break;\n }\n if (pageFocusables.length > currentFocusIndex + 1) {\n requestAnimationFrame(() =>\n pageFocusables[currentFocusIndex + 1].focus(),\n );\n } else {\n requestAnimationFrame(() => pageFocusables[0].focus());\n }\n break;\n case \"ArrowDown\":\n if (!open) {\n setOpen(true);\n setTimeout(focusToCalendar, 200);\n } else {\n focusToCalendar();\n }\n }\n };\n\n const handleCalendarKeyDown: KeyboardEventHandler<HTMLDivElement> = (\n ev,\n ) => {\n switch (ev.key) {\n case \"Escape\":\n setOpen(false);\n inputRef.current?.focus();\n }\n };\n\n const handleInputClick: MouseEventHandler<HTMLInputElement> = (ev) => {\n setOpen(true);\n onClick?.(ev);\n };\n\n const handleInputChange: ChangeEventHandler<HTMLInputElement> = (ev) => {\n if (range) {\n const parts = ev.target.value.split(RANGE_DIVIDER);\n if (parts.length !== 2) return;\n const startDate = DateTime.fromFormat(parts[0], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(parts[1], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: DateRangeSelect = {\n start: {\n value: parts[0],\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: parts[1],\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: ev.target.value,\n };\n setInternalValue(returnValue);\n onChange?.(ev, returnValue);\n return;\n }\n const date = DateTime.fromFormat(ev.target.value, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newDate: DateSelect = {\n value: ev.target.value,\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n setInternalValue(newDate);\n onChange?.(ev, newDate);\n };\n\n const handleCalendarSelection = (\n data: { value: CalendarValue } | { value: CalendarRangeValue },\n ) => {\n if (range) {\n const startDate = (data.value as CalendarRangeValue)?.start ?? \"\";\n const endDate = (data.value as CalendarRangeValue)?.end ?? \"\";\n\n const startVal = DateTime.fromISO(startDate, {\n zone: defaultTimeZone,\n });\n const startValue = startVal.toFormat(format);\n const endVal = DateTime.fromISO(endDate, {\n zone: defaultTimeZone,\n });\n const endValue = endVal.toFormat(format);\n\n const newDateRange: DateRangeSelect = {\n start: {\n value: startValue,\n date: startDate,\n isValid: true,\n },\n end: {\n value: endValue,\n date: endDate,\n isValid: true,\n },\n value: startValue + RANGE_DIVIDER + endValue,\n };\n setInternalValue(newDateRange);\n const event = {\n target: {\n value: startValue + RANGE_DIVIDER + endValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n handleInputChange(event);\n return;\n }\n const date = data.value as CalendarValue;\n const val = DateTime.fromISO(date || \"\", {\n zone: defaultTimeZone,\n });\n\n const value = val.toFormat(format);\n const newDate: DateSelect = {\n value,\n date,\n isValid: true,\n };\n setInternalValue(newDate);\n const event = {\n target: {\n value,\n },\n } as ChangeEvent<HTMLInputElement>;\n handleInputChange(event);\n };\n\n const focusToCalendar = () => {\n if (popperRef.current) {\n const currentFocusable =\n popperRef.current.querySelectorAll('[tabindex = \"0\"]')[0];\n if (currentFocusable) {\n (currentFocusable as HTMLButtonElement).focus();\n }\n }\n };\n\n const handleClickOutside = () => {\n setOpen(false);\n };\n\n const currentValue = getCurrentValue();\n\n const popoverOpen = openCalendar ?? open;\n\n const shouldShowCalendar = usePopoverCloseDelayWorkaround(popoverOpen);\n\n const calendar = range ? (\n <Calendar\n range\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={(internalValue as DateRangeSelect)?.start?.date}\n value={{\n start: (currentValue as DateRangeSelect)?.start?.date || undefined,\n end: (currentValue as DateRangeSelect)?.end?.date || undefined,\n }}\n onSelection={handleCalendarSelection}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n />\n ) : (\n <Calendar\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={(internalValue as DateSelect)?.date}\n value={(currentValue as DateSelect)?.date || undefined}\n onSelection={handleCalendarSelection}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n />\n );\n\n if (!supportsPopover())\n return <DateFieldLegacy {...(props as DateFieldLegacyProps)} ref={ref} />;\n return (\n <Popover\n open={popoverOpen}\n modal\n placement=\"bottom-start\"\n disableFlipFallback\n disableTriggerFocus\n onOutsidePress={handleClickOutside}\n >\n <Popover.Trigger>\n {({ ref: iRef }) => {\n setPopoverRef(iRef as RefObject<HTMLInputElement>);\n return range ? (\n <InputMask\n mask={\"99/99/9999\" + RANGE_DIVIDER + \"99/99/9999\"}\n ref={combinedRef}\n onChange={handleInputChange}\n value={(currentValue as DateRangeSelect)?.value}\n inputProps={{\n onFocus: handleInputFocus,\n prefix: <Icon svg={Event} />,\n onBlur: handleInputBlur,\n onKeyDown: handleInputKeyDown,\n onClick: handleInputClick,\n hint,\n required,\n [\"data-tracking-id\"]: trackingId,\n ...inputProps,\n }}\n customMaskHandler={[\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 0,\n endPosition: 2,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 3,\n endPosition: 5,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 13,\n endPosition: 15,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 16,\n endPosition: 18,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n ]}\n />\n ) : (\n <InputMask\n mask={\"99/99/9999\"}\n ref={combinedRef}\n onChange={handleInputChange}\n value={(currentValue as DateSelect)?.value}\n inputProps={{\n onFocus: handleInputFocus,\n prefix: <Icon svg={Event} />,\n onBlur: handleInputBlur,\n onKeyDown: handleInputKeyDown,\n onClick: handleInputClick,\n hint,\n autoComplete: \"off\",\n required,\n [\"data-tracking-id\"]: trackingId,\n ...inputProps,\n }}\n customMaskHandler={[\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 0,\n endPosition: 2,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 3,\n endPosition: 5,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n ]}\n />\n );\n }}\n </Popover.Trigger>\n <Popover.Content ref={popperRef} data-calendar-popover>\n {shouldShowCalendar && calendar}\n </Popover.Content>\n </Popover>\n );\n },\n);\nDateField.displayName = \"DateField\";\n"],"names":["RANGE_DIVIDER","Event","useMergeRefs","newValue","data","event"],"mappings":"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"}
1
+ {"version":3,"file":"DateField-DnasO2rB.js","sources":["../src/components/DateField/internal/isoToDateFormat.ts","../src/components/DateField/internal/DateFieldLegacy/DateFieldLegacy.tsx","../src/components/DateField/DateField.tsx"],"sourcesContent":["import { DateTime } from \"luxon\";\n\nexport const isoToDateFormat = (date: string, format: string) => {\n // Returns a string of the proper format for ISO strings and the input date string for non-ISO strings\n const luxonDate = DateTime.fromISO(date);\n if (luxonDate.isValid) {\n return luxonDate.toFormat(format);\n }\n return date;\n};\n","import {\n ChangeEvent,\n ChangeEventHandler,\n FocusEventHandler,\n KeyboardEventHandler,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { InputMask } from \"../../../InputMask\";\nimport {\n TextField,\n TextFieldProps,\n} from \"../../../TextField/internal/TextField\";\nimport { PopoverLegacy } from \"../../../Popover/internal/PopoverLegacy\";\nimport {\n CalendarProps,\n CalendarValue,\n CalendarRangeValue,\n} from \"../../../Calendar/Calendar\";\nimport { Calendar } from \"../../../Calendar\";\nimport { useMergeRefs } from \"@floating-ui/react\";\nimport { IanaZone, Locale } from \"../../../../types\";\nimport { Icon } from \"../../../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport { DateTime } from \"luxon\";\nimport { isValidDate, toDateString } from \"../../../Calendar/internal/utils\";\n\nconst RANGE_DIVIDER = \" — \";\n\ninterface DateFieldLegacyCommonProps {\n format?: \"MM/dd/yyyy\" | \"dd/MM/yyyy\";\n locale?: Locale;\n defaultTimeZone?: IanaZone;\n openCalendar?: boolean;\n disableHint?: boolean;\n}\n\nexport interface LegacyDateSelect {\n value: string;\n date: string | null | undefined;\n isValid: boolean;\n}\n\nexport interface LegacyDateRangeSelect {\n start?: LegacyDateSelect;\n end?: LegacyDateSelect;\n value: string;\n}\n\ninterface DateFieldLegacySingleProps {\n onChange?: (\n event: ChangeEvent<HTMLInputElement>,\n data: LegacyDateSelect,\n ) => void;\n defaultValue?: string;\n range?: false;\n}\n\ninterface DateFieldLegacyRangeProps {\n onChange?: (\n event: ChangeEvent<HTMLInputElement>,\n data: LegacyDateRangeSelect,\n ) => void;\n defaultValue?: { start?: string; end?: string };\n range: true;\n}\n\nexport type DateFieldLegacyProps = Omit<CalendarProps, \"onChange\"> &\n Omit<\n TextFieldProps,\n \"prefix\" | \"suffix\" | \"hint\" | \"onChange\" | \"showCounter\"\n > &\n DateFieldLegacyCommonProps &\n (DateFieldLegacySingleProps | DateFieldLegacyRangeProps);\n\nexport const DateFieldLegacy = forwardRef<\n HTMLInputElement,\n DateFieldLegacyProps\n>(\n (\n {\n // DateFieldLegacy\n openCalendar,\n onFocus,\n onBlur,\n onChange,\n format = \"MM/dd/yyyy\",\n disableHint,\n\n // Calendar\n minDate,\n maxDate,\n unavailableDates,\n unavailable,\n startDay,\n defaultValue,\n value: inputValue,\n\n // Shared\n locale = Intl.DateTimeFormat().resolvedOptions().locale as Locale,\n defaultTimeZone = Intl.DateTimeFormat().resolvedOptions()\n .timeZone as IanaZone,\n range,\n\n // Input\n required,\n ...inputProps\n },\n ref,\n ) => {\n const [open, setOpen] = useState(openCalendar || false);\n const [internalValue, setInternalValue] = useState<\n LegacyDateSelect | LegacyDateRangeSelect | undefined\n >();\n const [disableFocusLock, setDisableFocusLock] = useState(true);\n const inputRef = useRef<HTMLInputElement>(null);\n const calRef = useRef<HTMLDivElement>(null);\n const iconRef = useRef<HTMLElement>(null);\n const docRef = useRef<Document | Node | null>(null);\n const floatRef = useRef<HTMLDivElement>(null);\n const isClickOutside = useRef(false);\n const formatMask = format.replace(/[^/]/g, \"_\");\n const hint = useMemo(\n () => (disableHint ? undefined : `Format: ${format.replace(/M/g, \"m\")}`),\n [format, disableHint],\n );\n\n useEffect(() => {\n if (!docRef.current) {\n if (document != null) {\n docRef.current = document;\n return;\n }\n const doc = inputRef.current?.closest(\"body\")?.ownerDocument;\n if (doc) {\n docRef.current = doc;\n }\n\n if (docRef.current == null && inputRef.current?.parentNode != null) {\n let node: Node = inputRef.current?.parentNode;\n while (node.parentNode != null) {\n node = node.parentNode;\n }\n docRef.current = node;\n }\n }\n const clickOutHandler = (ev: Event) => {\n // this is more accurate, especially in shadow doms\n const realTarget = ev.composedPath()[0] as Node;\n\n if (\n !floatRef.current?.contains(realTarget) &&\n !iconRef.current?.contains(realTarget) &&\n inputRef.current !== realTarget\n ) {\n setOpen(false);\n setDisableFocusLock(true);\n onBlur?.(ev as unknown as React.FocusEvent<HTMLInputElement>);\n }\n };\n\n if (open) {\n docRef.current?.addEventListener(\"click\", clickOutHandler);\n } else {\n docRef.current?.removeEventListener(\"click\", clickOutHandler);\n }\n\n return () => {\n docRef.current?.removeEventListener(\"click\", clickOutHandler);\n };\n }, [open, onBlur]);\n\n useEffect(() => {\n if (range) {\n let start;\n let end;\n if (typeof inputValue === \"string\") {\n const parts = inputValue.split(RANGE_DIVIDER);\n start = parts[0];\n end = parts[1];\n } else {\n start = inputValue?.start ?? \"\";\n end = inputValue?.end ?? \"\";\n }\n const startDate = DateTime.fromFormat(start ?? \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(end ?? \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newData: LegacyDateRangeSelect = {\n start: {\n value: start,\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: end,\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: `${start || formatMask}${RANGE_DIVIDER}${end || formatMask}`,\n };\n setInternalValue(newData);\n } else {\n if (typeof inputValue !== \"string\") return;\n const inputDate = DateTime.fromFormat(inputValue, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newData: LegacyDateSelect = {\n value: inputValue,\n date: toDateString(inputDate),\n isValid:\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n setInternalValue(newData);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [inputValue]);\n\n const mask: string = useMemo(() => {\n const maskPart = format.replace(/[Mdy]/g, \"9\");\n if (range) {\n return maskPart + RANGE_DIVIDER + maskPart;\n } else {\n return maskPart;\n }\n }, [format, range]);\n\n useEffect(() => {\n // Set default only if uncontrolled and we have a defaultValue.\n if (typeof inputValue === \"string\") return;\n if (defaultValue) {\n if (range) {\n // Get input value\n const defValStart = defaultValue.start;\n const defValEnd = defaultValue.end;\n\n const initValStart =\n defValStart +\n (formatMask + RANGE_DIVIDER + formatMask).slice(\n defValStart?.length,\n );\n const initValEnd =\n defValEnd +\n (formatMask + RANGE_DIVIDER + formatMask).slice(defValEnd?.length);\n const newValue = initValStart + RANGE_DIVIDER + initValEnd;\n\n // Set calendar value\n const inputDateStart = DateTime.fromFormat(\n defValStart || \"\",\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const inputDateEnd = DateTime.fromFormat(defValEnd || \"\", format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n\n const isValidStart =\n inputDateStart.isValid &&\n isValidDate(\n inputDateStart,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n\n const isValidEnd =\n inputDateEnd.isValid &&\n isValidDate(\n inputDateEnd,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n const initCalendarValue: LegacyDateRangeSelect = {\n start: {\n value: initValStart,\n date: toDateString(inputDateStart),\n isValid: isValidStart,\n },\n end: {\n value: initValEnd,\n date: toDateString(inputDateEnd),\n isValid: isValidEnd,\n },\n value: newValue,\n };\n setInternalValue(initCalendarValue);\n } else {\n // Get input value\n const defVal = defaultValue as string;\n const initVal = defVal + formatMask.slice(defVal.length);\n\n // Set calendar value\n const inputDate = DateTime.fromFormat(defVal, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const isValid =\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n );\n const initCalendarValue: LegacyDateSelect = {\n value: initVal,\n date: toDateString(inputDate),\n isValid,\n };\n setInternalValue(initCalendarValue);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const focusToCalendar = () => {\n if (calRef.current) {\n const currentFocusable =\n calRef.current.querySelectorAll('[tabindex = \"0\"]')[0];\n if (currentFocusable) {\n (currentFocusable as HTMLButtonElement).focus();\n }\n }\n };\n\n const handleInputKeyDown: KeyboardEventHandler<HTMLInputElement> = (ev) => {\n switch (ev.key) {\n case \"Tab\":\n setOpen(false);\n break;\n case \"ArrowDown\":\n if (!open) {\n setOpen(true);\n setTimeout(focusToCalendar, 100);\n } else {\n focusToCalendar();\n }\n }\n };\n\n const handleInputChange: ChangeEventHandler<HTMLInputElement> = (ev) => {\n if (range) {\n const parts = ev.target.value.split(RANGE_DIVIDER);\n if (parts.length !== 2) return;\n const startDate = DateTime.fromFormat(parts[0], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(parts[1], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: LegacyDateRangeSelect = {\n start: {\n value: parts[0],\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: parts[1],\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: ev.target.value,\n };\n if (!inputValue) {\n setInternalValue(returnValue);\n }\n onChange?.(ev, returnValue);\n } else {\n if (ev.target.value === (internalValue as LegacyDateSelect)?.date)\n return;\n // Check if the value is a real date.\n const inputDate = DateTime.fromFormat(ev.target.value, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: LegacyDateSelect = {\n value: ev.target.value,\n date: toDateString(inputDate),\n isValid:\n inputDate.isValid &&\n isValidDate(\n inputDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n if (!inputValue) {\n setInternalValue(returnValue);\n }\n onChange?.(ev, returnValue);\n }\n };\n\n const handleInputBlur: React.FocusEventHandler<HTMLInputElement> = (ev) => {\n if (isClickOutside.current) {\n isClickOutside.current = false;\n return;\n }\n\n if (!calRef.current?.contains(ev.relatedTarget as Node)) {\n setOpen(false);\n onBlur?.(ev);\n }\n };\n\n const handleCalendarKeyDown: KeyboardEventHandler<HTMLDivElement> = (\n ev,\n ) => {\n switch (ev.key) {\n case \"Escape\":\n setDisableFocusLock(true);\n inputRef.current?.focus();\n break;\n }\n };\n\n const handleCalendarBlur: React.FocusEventHandler<HTMLDivElement> = (\n ev,\n ) => {\n if (\n !(\n inputRef.current === ev.currentTarget ||\n calRef.current === ev.currentTarget\n )\n ) {\n setOpen(false);\n onBlur?.(ev);\n }\n if (!(calRef.current === ev.currentTarget)) {\n setDisableFocusLock(true);\n }\n };\n\n const handleCalendarFocus: React.FocusEventHandler = (_event) => {\n if (disableFocusLock) {\n setDisableFocusLock(false);\n }\n };\n\n const handleCalendarSelection = (\n data: { value: CalendarValue } | { value: CalendarRangeValue },\n ) => {\n if (range) {\n const calSelectData = data as { value: CalendarRangeValue };\n const startVal = DateTime.fromISO(calSelectData?.value?.start || \"\", {\n zone: defaultTimeZone,\n });\n const endVal = DateTime.fromISO(calSelectData?.value?.end || \"\", {\n zone: defaultTimeZone,\n });\n let newValue = \"\";\n const newInternalValue: LegacyDateRangeSelect = { value: \"\" };\n if (startVal.isValid) {\n newInternalValue.start = {\n value: startVal.toFormat(format),\n date: calSelectData?.value?.start,\n isValid: true,\n };\n newValue += startVal.toFormat(format);\n } else {\n newValue += formatMask;\n }\n newValue += RANGE_DIVIDER;\n if (endVal.isValid) {\n newInternalValue.end = {\n value: endVal.toFormat(format),\n date: calSelectData?.value?.end,\n isValid: true,\n };\n newValue += endVal.toFormat(format);\n } else {\n newValue += formatMask;\n }\n if (typeof inputValue !== \"string\") {\n setInternalValue(newInternalValue);\n }\n newInternalValue.value = newValue;\n const event = {\n target: {\n value: newValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(event, newInternalValue);\n } else {\n const calSelectData = data as { value: CalendarValue };\n const val = DateTime.fromISO(calSelectData.value || \"\", {\n zone: defaultTimeZone,\n });\n const newValue = val.toFormat(format);\n const newInternalValue: LegacyDateSelect = {\n value: newValue,\n date: calSelectData.value,\n isValid:\n val.isValid &&\n isValidDate(\n val,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n if (typeof inputValue !== \"string\") {\n setInternalValue(newInternalValue);\n }\n const event = {\n target: {\n value: newValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n onChange?.(event, newInternalValue);\n }\n };\n\n const handleInputFocus: FocusEventHandler<HTMLInputElement> = (ev) => {\n if (!open) {\n setOpen(true);\n onFocus?.(ev);\n }\n };\n\n return (\n <PopoverLegacy\n open={openCalendar || open}\n modal\n placement=\"bottom-start\"\n disableFlipFallback\n disableTriggerFocus\n disableFocusLock={disableFocusLock}\n >\n <PopoverLegacy.Trigger>\n {({ ref: popoverRef, ...props }) => (\n <>\n <InputMask\n mask={mask}\n inputProps={{\n onKeyDown: handleInputKeyDown,\n onBlur: handleInputBlur,\n onChange: handleInputChange,\n onFocus: handleInputFocus,\n }}\n value={internalValue?.value || \"\"}\n {...props}\n // eslint-disable-next-line react-hooks/rules-of-hooks\n ref={useMergeRefs([popoverRef, inputRef])}\n >\n <TextField\n hint={hint}\n ref={ref}\n prefix={<Icon svg={Event} ref={iconRef} />}\n {...inputProps}\n required={required}\n />\n </InputMask>\n </>\n )}\n </PopoverLegacy.Trigger>\n <PopoverLegacy.Content ref={floatRef}>\n {!range ? (\n <Calendar\n ref={calRef}\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={(internalValue as LegacyDateSelect)?.date}\n value={(internalValue as LegacyDateSelect)?.date || undefined}\n locale={locale}\n onBlur={handleCalendarBlur}\n onSelection={handleCalendarSelection}\n onFocus={handleCalendarFocus}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n />\n ) : (\n <Calendar\n ref={calRef}\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={\n (internalValue as LegacyDateRangeSelect)?.start?.date\n }\n value={\n internalValue\n ? {\n start:\n (internalValue as LegacyDateRangeSelect)?.start?.date ||\n undefined,\n end:\n (internalValue as LegacyDateRangeSelect)?.end?.date ||\n undefined,\n }\n : undefined\n }\n locale={locale}\n onBlur={handleCalendarBlur}\n onSelection={handleCalendarSelection}\n onFocus={handleCalendarFocus}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n range\n />\n )}\n </PopoverLegacy.Content>\n </PopoverLegacy>\n );\n },\n);\n\nDateFieldLegacy.displayName = \"DateFieldLegacy\";\n","import {\n ChangeEvent,\n ChangeEventHandler,\n FocusEventHandler,\n KeyboardEventHandler,\n MouseEventHandler,\n Ref,\n RefObject,\n forwardRef,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useTrackingId, useMergeRefs } from \"../../hooks\";\nimport { DataTrackingId, IanaZone } from \"../../types\";\nimport Calendar, {\n CalendarProps,\n CalendarRangeValue,\n CalendarValue,\n} from \"../Calendar\";\nimport { TextFieldProps } from \"../TextField\";\nimport {\n DateFieldCommonProps,\n DateFieldRangeProps,\n DateFieldSingleProps,\n} from \"./types\";\nimport { childrenToString, supportsPopover } from \"../../internal/functions\";\nimport InputMask from \"../InputMask\";\nimport Icon from \"../Icon\";\nimport Event from \"@servicetitan/hammer-icon/mdi/round/event.svg\";\nimport { DateTime } from \"luxon\";\nimport {\n useKeyboardFocusables,\n usePopoverCloseDelayWorkaround,\n} from \"../../internal/hooks\";\nimport { isoToDateFormat } from \"./internal/isoToDateFormat\";\nimport { isValidDate, toDateString } from \"../Calendar/internal/utils\";\nimport Popover from \"../Popover\";\nimport {\n DateFieldLegacy,\n DateFieldLegacyProps,\n} from \"./internal/DateFieldLegacy\";\n\nconst RANGE_DIVIDER = \" – \";\n\n/**\n * Data structure for a single date selection\n */\nexport type DateSelect = {\n /** The formatted date string value */\n value: string;\n /** The ISO date string or null if invalid */\n date: string | null | undefined;\n /** Whether the date is valid according to constraints */\n isValid: boolean;\n};\n\n/**\n * Data structure for a date range selection\n */\nexport type DateRangeSelect = {\n /** The start date selection */\n start?: DateSelect;\n /** The end date selection */\n end?: DateSelect;\n /** The combined formatted range string */\n value: string;\n};\n\n/**\n * Props for the DateField component\n */\nexport type DateFieldProps = Omit<\n CalendarProps,\n \"onChange\" | \"value\" | \"defaultValue\"\n> &\n Omit<\n TextFieldProps,\n | \"prefix\"\n | \"suffix\"\n | \"hint\"\n | \"onChange\"\n | \"showCounter\"\n | \"value\"\n | \"defaultValue\"\n > &\n DataTrackingId &\n DateFieldCommonProps &\n (DateFieldSingleProps | DateFieldRangeProps);\n\n/**\n * DateField component for selecting dates with calendar popup and input validation\n * @deprecated Use DateFieldSingle or DateFieldRange instead\n */\nexport const DateField = forwardRef(\n (props: DateFieldProps, ref: Ref<HTMLInputElement>) => {\n const data = {\n label: childrenToString(props.label),\n labelProps: props.labelProps,\n description: childrenToString(props.description),\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"DateField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const {\n // DateField\n openCalendar,\n onFocus,\n onBlur,\n onChange,\n onClick,\n format = \"MM/dd/yyyy\",\n disableHint,\n\n // Calendar\n minDate,\n maxDate,\n unavailableDates,\n unavailable,\n startDay,\n defaultValue,\n value: inputValue,\n\n // Shared\n // locale = Intl.DateTimeFormat().resolvedOptions().locale as Locale,\n defaultTimeZone = Intl.DateTimeFormat().resolvedOptions()\n .timeZone as IanaZone,\n range,\n\n // Input\n required,\n ...inputProps\n } = props;\n const [open, _setOpen] = useState(openCalendar || false);\n const setOpen = (val: boolean) => {\n if (open && !val) {\n inputRef.current?.focus();\n }\n _setOpen(val);\n };\n\n const [internalValue, setInternalValue] = useState<\n DateSelect | DateRangeSelect | undefined\n >();\n\n const inputRef = useRef<HTMLInputElement>(null);\n const popperRef = useRef<HTMLDivElement>(null);\n const documentRef = useRef<HTMLElement>(document.body);\n const hint = useMemo(\n () => (disableHint ? undefined : `Format: ${format.replace(/M/g, \"m\")}`),\n [format, disableHint],\n );\n\n const { focusables } = useKeyboardFocusables(documentRef, {\n observeChange: true,\n });\n\n const { focusables: popoverFocusables } = useKeyboardFocusables(popperRef, {\n observeChange: true,\n });\n\n const pageFocusables = focusables?.filter(\n (item) => !popoverFocusables?.includes(item),\n );\n\n const [popoverRef, setPopoverRef] = useState<RefObject<HTMLInputElement>>();\n const combinedRef = useMergeRefs([popoverRef, inputRef]);\n\n useEffect(() => {\n // Set internalValue from defaultValue\n if (!defaultValue) return;\n if (range) {\n const startDate = DateTime.fromFormat(\n isoToDateFormat(defaultValue.start ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const endDate = DateTime.fromFormat(\n isoToDateFormat(defaultValue.end ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const newValue: DateRangeSelect = {\n start: {\n value: isoToDateFormat(defaultValue.start ?? \"\", format),\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: isoToDateFormat(defaultValue.end ?? \"\", format),\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value:\n isoToDateFormat(defaultValue.start ?? \"\", format) +\n RANGE_DIVIDER +\n isoToDateFormat(defaultValue.end ?? \"\", format),\n };\n setInternalValue(newValue);\n return;\n }\n const date = DateTime.fromFormat(\n isoToDateFormat(defaultValue, format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const newValue = {\n value: isoToDateFormat(defaultValue, format),\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n } as DateSelect;\n setInternalValue(newValue);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const getCurrentValue = () => {\n if (inputValue !== undefined) {\n if (range) {\n const startDate = DateTime.fromFormat(\n isoToDateFormat(inputValue.start ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const endDate = DateTime.fromFormat(\n isoToDateFormat(inputValue.end ?? \"\", format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n const returnValue: DateRangeSelect = {\n start: {\n value: isoToDateFormat(inputValue.start ?? \"\", format),\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: isoToDateFormat(inputValue.end ?? \"\", format),\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value:\n isoToDateFormat(inputValue.start ?? \"\", format) +\n RANGE_DIVIDER +\n isoToDateFormat(inputValue.end ?? \"\", format),\n };\n return returnValue;\n }\n const date = DateTime.fromFormat(\n isoToDateFormat(inputValue, format),\n format,\n {\n zone: defaultTimeZone,\n },\n ).startOf(\"day\");\n return {\n value: isoToDateFormat(inputValue, format),\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n } as DateSelect;\n }\n return internalValue;\n };\n\n const handleInputFocus: FocusEventHandler<HTMLInputElement> = (ev) => {\n // DO NOT OPEN THE CALENDAR ON KEYBOARD OR MANUAL FOCUS EVENT\n onFocus?.(ev);\n };\n\n const handleInputBlur: FocusEventHandler<HTMLInputElement> = (ev) => {\n if (!popperRef.current?.contains(ev.relatedTarget)) {\n setOpen(false);\n onBlur?.(ev);\n }\n };\n\n const handleInputKeyDown: KeyboardEventHandler<HTMLInputElement> = (ev) => {\n let currentFocusIndex = 0;\n switch (ev.key) {\n case \"Escape\":\n setOpen(false);\n break;\n case \"Tab\":\n if (!open || !pageFocusables?.length) {\n break;\n }\n ev.preventDefault();\n currentFocusIndex = pageFocusables.indexOf(inputRef.current!) || 0;\n setOpen(false);\n if (ev.shiftKey) {\n if (currentFocusIndex === 0) {\n requestAnimationFrame(() =>\n pageFocusables[pageFocusables.length - 1].focus(),\n );\n } else {\n requestAnimationFrame(() =>\n pageFocusables[currentFocusIndex - 1].focus(),\n );\n }\n break;\n }\n if (pageFocusables.length > currentFocusIndex + 1) {\n requestAnimationFrame(() =>\n pageFocusables[currentFocusIndex + 1].focus(),\n );\n } else {\n requestAnimationFrame(() => pageFocusables[0].focus());\n }\n break;\n case \"ArrowDown\":\n if (!open) {\n setOpen(true);\n setTimeout(focusToCalendar, 200);\n } else {\n focusToCalendar();\n }\n }\n };\n\n const handleCalendarKeyDown: KeyboardEventHandler<HTMLDivElement> = (\n ev,\n ) => {\n switch (ev.key) {\n case \"Escape\":\n setOpen(false);\n inputRef.current?.focus();\n }\n };\n\n const handleInputClick: MouseEventHandler<HTMLInputElement> = (ev) => {\n setOpen(true);\n onClick?.(ev);\n };\n\n const handleInputChange: ChangeEventHandler<HTMLInputElement> = (ev) => {\n if (range) {\n const parts = ev.target.value.split(RANGE_DIVIDER);\n if (parts.length !== 2) return;\n const startDate = DateTime.fromFormat(parts[0], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const endDate = DateTime.fromFormat(parts[1], format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const returnValue: DateRangeSelect = {\n start: {\n value: parts[0],\n date: toDateString(startDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n startDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n end: {\n value: parts[1],\n date: toDateString(endDate),\n isValid:\n startDate.isValid &&\n isValidDate(\n endDate,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n },\n value: ev.target.value,\n };\n setInternalValue(returnValue);\n onChange?.(ev, returnValue);\n return;\n }\n const date = DateTime.fromFormat(ev.target.value, format, {\n zone: defaultTimeZone,\n }).startOf(\"day\");\n const newDate: DateSelect = {\n value: ev.target.value,\n date: toDateString(date),\n isValid:\n date.isValid &&\n isValidDate(\n date,\n minDate,\n maxDate,\n new Set(unavailableDates || unavailable?.dates),\n {\n dates: new Set(unavailable?.dates),\n daysOfWeek: new Set(unavailable?.daysOfWeek),\n },\n defaultTimeZone,\n ),\n };\n setInternalValue(newDate);\n onChange?.(ev, newDate);\n };\n\n const handleCalendarSelection = (\n data: { value: CalendarValue } | { value: CalendarRangeValue },\n ) => {\n if (range) {\n const startDate = (data.value as CalendarRangeValue)?.start ?? \"\";\n const endDate = (data.value as CalendarRangeValue)?.end ?? \"\";\n\n const startVal = DateTime.fromISO(startDate, {\n zone: defaultTimeZone,\n });\n const startValue = startVal.toFormat(format);\n const endVal = DateTime.fromISO(endDate, {\n zone: defaultTimeZone,\n });\n const endValue = endVal.toFormat(format);\n\n const newDateRange: DateRangeSelect = {\n start: {\n value: startValue,\n date: startDate,\n isValid: true,\n },\n end: {\n value: endValue,\n date: endDate,\n isValid: true,\n },\n value: startValue + RANGE_DIVIDER + endValue,\n };\n setInternalValue(newDateRange);\n const event = {\n target: {\n value: startValue + RANGE_DIVIDER + endValue,\n },\n } as ChangeEvent<HTMLInputElement>;\n handleInputChange(event);\n return;\n }\n const date = data.value as CalendarValue;\n const val = DateTime.fromISO(date || \"\", {\n zone: defaultTimeZone,\n });\n\n const value = val.toFormat(format);\n const newDate: DateSelect = {\n value,\n date,\n isValid: true,\n };\n setInternalValue(newDate);\n const event = {\n target: {\n value,\n },\n } as ChangeEvent<HTMLInputElement>;\n handleInputChange(event);\n };\n\n const focusToCalendar = () => {\n if (popperRef.current) {\n const currentFocusable =\n popperRef.current.querySelectorAll('[tabindex = \"0\"]')[0];\n if (currentFocusable) {\n (currentFocusable as HTMLButtonElement).focus();\n }\n }\n };\n\n const handleClickOutside = () => {\n setOpen(false);\n };\n\n const currentValue = getCurrentValue();\n\n const popoverOpen = openCalendar ?? open;\n\n const shouldShowCalendar = usePopoverCloseDelayWorkaround(popoverOpen);\n\n const calendar = range ? (\n <Calendar\n range\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={(internalValue as DateRangeSelect)?.start?.date}\n value={{\n start: (currentValue as DateRangeSelect)?.start?.date || undefined,\n end: (currentValue as DateRangeSelect)?.end?.date || undefined,\n }}\n onSelection={handleCalendarSelection}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n />\n ) : (\n <Calendar\n onKeyDown={handleCalendarKeyDown}\n defaultFocusedDate={(internalValue as DateSelect)?.date}\n value={(currentValue as DateSelect)?.date || undefined}\n onSelection={handleCalendarSelection}\n minDate={minDate}\n maxDate={maxDate}\n unavailableDates={unavailableDates}\n unavailable={unavailable}\n defaultTimeZone={defaultTimeZone}\n startDay={startDay}\n />\n );\n\n if (!supportsPopover())\n return <DateFieldLegacy {...(props as DateFieldLegacyProps)} ref={ref} />;\n return (\n <Popover\n open={popoverOpen}\n modal\n placement=\"bottom-start\"\n disableFlipFallback\n disableTriggerFocus\n onOutsidePress={handleClickOutside}\n >\n <Popover.Trigger>\n {({ ref: iRef }) => {\n setPopoverRef(iRef as RefObject<HTMLInputElement>);\n return range ? (\n <InputMask\n mask={\"99/99/9999\" + RANGE_DIVIDER + \"99/99/9999\"}\n ref={combinedRef}\n onChange={handleInputChange}\n value={(currentValue as DateRangeSelect)?.value}\n inputProps={{\n onFocus: handleInputFocus,\n prefix: <Icon svg={Event} />,\n onBlur: handleInputBlur,\n onKeyDown: handleInputKeyDown,\n onClick: handleInputClick,\n hint,\n required,\n [\"data-tracking-id\"]: trackingId,\n ...inputProps,\n }}\n customMaskHandler={[\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 0,\n endPosition: 2,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 3,\n endPosition: 5,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 13,\n endPosition: 15,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 16,\n endPosition: 18,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n ]}\n />\n ) : (\n <InputMask\n mask={\"99/99/9999\"}\n ref={combinedRef}\n onChange={handleInputChange}\n value={(currentValue as DateSelect)?.value}\n inputProps={{\n onFocus: handleInputFocus,\n prefix: <Icon svg={Event} />,\n onBlur: handleInputBlur,\n onKeyDown: handleInputKeyDown,\n onClick: handleInputClick,\n hint,\n autoComplete: \"off\",\n required,\n [\"data-tracking-id\"]: trackingId,\n ...inputProps,\n }}\n customMaskHandler={[\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 0,\n endPosition: 2,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n {\n match: {\n matchPattern: new RegExp(/^(\\d)\\//),\n startPosition: 3,\n endPosition: 5,\n },\n apply: {\n applyPattern: \"0$1\",\n caretOffset: 2,\n },\n },\n ]}\n />\n );\n }}\n </Popover.Trigger>\n <Popover.Content ref={popperRef} data-calendar-popover>\n {shouldShowCalendar && calendar}\n </Popover.Content>\n </Popover>\n );\n },\n);\nDateField.displayName = \"DateField\";\n"],"names":["RANGE_DIVIDER","Event","useMergeRefs","newValue","data","event"],"mappings":"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"}
package/dist/DateField.js CHANGED
@@ -1,2 +1,2 @@
1
- export { D as DateField, D as default } from './DateField-B2mnasH5.js';
1
+ export { D as DateField, D as default } from './DateField-DnasO2rB.js';
2
2
  //# sourceMappingURL=DateField.js.map
@@ -1,17 +1,17 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { c as maskitoDateRangeOptionsGenerator, a as maskitoWithPlaceholder, u as useMaskito, b as maskitoParseDate } from './index.esm-D889iexm.js';
3
- import { T as TextField } from './TextField-DlsZEkS0.js';
3
+ import { T as TextField } from './TextField-D8fow9j7.js';
4
4
  import { forwardRef, useState, useRef, useEffect, useMemo, useImperativeHandle, useCallback } from 'react';
5
5
  import { u as useMergeRefs } from './DrawerContext-DboTgTmo.js';
6
- import { D as DateTime, C as Calendar } from './Calendar-Dq_of5A3.js';
6
+ import { D as DateTime, C as Calendar } from './Calendar-BK861SAW.js';
7
7
  import { I as Icon } from './Icon-D8SPKeO4.js';
8
8
  import { S as SvgEvent } from './event-BEJFimi3.js';
9
9
  import { m as makeZeroShortcutPreprocessor } from './makeZeroShortcutPreprocessor-CxsiGTRW.js';
10
- import { D as DateModeToPlaceholderMap, a as DateModeToFormatMap, c as convertStringToDate, v as validateDate, u as useDateFieldOrchestration } from './useDateFieldOrchestration-Cqa7dxtr.js';
10
+ import { D as DateModeToPlaceholderMap, a as DateModeToFormatMap, c as convertStringToDate, v as validateDate, u as useDateFieldOrchestration } from './useDateFieldOrchestration-DPLftOxu.js';
11
11
  import { u as usePrevious } from './usePrevious-Bvq-5auG.js';
12
12
  import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
13
13
  import { P as Popover } from './Popover-r26xMIfm.js';
14
- import { u as useFocusWithin } from './useFocusWithin-BhU7hoAD.js';
14
+ import { u as useFocusWithin } from './useFocusWithin-BhhgRXdZ.js';
15
15
  import { u as usePopoverSupport } from './usePopoverSupport-DIjjfodl.js';
16
16
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
17
17
  import { useTrackingId } from './useTrackingId.js';
@@ -108,22 +108,23 @@ const MaskedDateRangeInput = forwardRef(
108
108
  const handleChange = (event) => {
109
109
  setInputValue(event.target.value);
110
110
  const {
111
- startDate: parsedStartDate,
112
- endDate: parsedEndDate,
111
+ startDate: newlyParsedStartDate,
112
+ endDate: newlyParsedEndDate,
113
113
  isInputValid,
114
114
  isInputEmpty,
115
115
  isHalfEmpty
116
116
  } = parseRangeInputValue(event.target.value, mode, removePlaceholder);
117
117
  const isValueDifferent = isInputValid !== currentParsedData.isInputValid || // The input has changed validity
118
118
  isInputEmpty !== currentParsedData.isInputEmpty || // The input has changed emptiness
119
- parsedStartDate === null !== (startDate === null) || // The start date has changed from empty to non-empty or vice versa
120
- parsedEndDate === null !== (endDate === null) || // The end date has changed from empty to non-empty or vice versa
121
- parsedStartDate !== null && startDate !== null && !parsedStartDate.equals(startDate) || // The start date has changed
122
- parsedEndDate !== null && endDate !== null && !parsedEndDate.equals(endDate);
119
+ newlyParsedStartDate === null !== (currentParsedData.startDate === null) || // The start date has changed from empty to non-empty or vice versa
120
+ newlyParsedEndDate === null !== (currentParsedData.endDate === null) || // The end date has changed from empty to non-empty or vice versa
121
+ isHalfEmpty !== currentParsedData.isHalfEmpty || // The half has changed from empty to non-empty or vice versa
122
+ newlyParsedStartDate !== null && currentParsedData.startDate !== null && !newlyParsedStartDate.equals(currentParsedData.startDate) || // The start date has changed
123
+ newlyParsedEndDate !== null && currentParsedData.endDate !== null && !newlyParsedEndDate.equals(currentParsedData.endDate);
123
124
  if (!isValueDifferent) return;
124
125
  onChange?.({
125
- startDate: isInputEmpty ? null : parsedStartDate ?? startDate ?? null,
126
- endDate: isInputEmpty || isHalfEmpty ? null : parsedEndDate ?? endDate ?? null,
126
+ startDate: isInputEmpty ? null : newlyParsedStartDate ?? startDate ?? null,
127
+ endDate: isInputEmpty || isHalfEmpty ? null : newlyParsedEndDate ?? endDate ?? null,
127
128
  isInputValid,
128
129
  isInputEmpty
129
130
  });
@@ -329,7 +330,6 @@ const useDateFieldRangeConversion = (props) => {
329
330
  function useDateFieldRangeState({
330
331
  valueProp,
331
332
  defaultValueProp,
332
- inputRef,
333
333
  onChange
334
334
  }) {
335
335
  const [startDate, setStartDate] = useOptionallyControlledState({
@@ -341,7 +341,6 @@ function useDateFieldRangeState({
341
341
  defaultValue: defaultValueProp !== void 0 ? defaultValueProp?.endDate : void 0
342
342
  });
343
343
  const setSharedValue = (value) => {
344
- inputRef.current?.setDateRange(value.startDate, value.endDate);
345
344
  setStartDate(value.startDate);
346
345
  setEndDate(value.endDate);
347
346
  };
@@ -423,8 +422,11 @@ const DateFieldRange = (props) => {
423
422
  onChange: onChangeProp,
424
423
  ...rest
425
424
  } = props;
426
- const { ref: wrapperRef } = useFocusWithin({
427
- onBlur,
425
+ const { props: wrapperProps } = useFocusWithin({
426
+ onBlur: (e) => {
427
+ onBlur?.(e);
428
+ setCalendarOpen(false);
429
+ },
428
430
  onFocus
429
431
  });
430
432
  const { value, defaultValue, minDate, maxDate, unavailable, onChange } = useDateFieldRangeConversion({
@@ -463,7 +465,6 @@ const DateFieldRange = (props) => {
463
465
  const { startDate, endDate, handleInputChange, handleCalendarSelection } = useDateFieldRangeState({
464
466
  valueProp: value,
465
467
  defaultValueProp: defaultValue,
466
- inputRef,
467
468
  onChange: handleChange
468
469
  });
469
470
  const {
@@ -510,16 +511,15 @@ const DateFieldRange = (props) => {
510
511
  onClick: () => setCalendarOpen(true),
511
512
  required,
512
513
  autoComplete: "off",
513
- "data-date-range-valid": currentValidity
514
+ "data-date-range-valid": currentValidity,
515
+ onFocus: !disableCalendar && !popoverSupported ? onFocus : void 0,
516
+ onBlur: !disableCalendar && !popoverSupported ? onBlur : void 0
514
517
  }
515
518
  );
516
- if (disableCalendar) {
517
- return justTheField;
518
- }
519
- if (!popoverSupported) {
519
+ if (disableCalendar || !popoverSupported) {
520
520
  return justTheField;
521
521
  }
522
- return /* @__PURE__ */ jsx("div", { ref: wrapperRef, children: /* @__PURE__ */ jsxs(
522
+ return /* @__PURE__ */ jsx("div", { ...wrapperProps, children: /* @__PURE__ */ jsxs(
523
523
  Popover,
524
524
  {
525
525
  open: calendarOpen,
@@ -541,7 +541,13 @@ const DateFieldRange = (props) => {
541
541
  startDate,
542
542
  endDate,
543
543
  onKeyDown: handleCalendarKeyDown,
544
- onSelection: handleCalendarSelection,
544
+ onSelection: (v) => {
545
+ if (v.endDate) {
546
+ inputRef.current?.focus();
547
+ setCalendarOpen(false);
548
+ }
549
+ handleCalendarSelection(v);
550
+ },
545
551
  minDate,
546
552
  maxDate,
547
553
  unavailable
@@ -554,4 +560,4 @@ const DateFieldRange = (props) => {
554
560
  DateFieldRange.displayName = "DateFieldRange";
555
561
 
556
562
  export { DateFieldRange as D };
557
- //# sourceMappingURL=DateFieldRange-DPbyzuHb.js.map
563
+ //# sourceMappingURL=DateFieldRange-Ba-8T-Nz.js.map