@servicetitan/anvil2 1.43.3 → 1.44.1

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 (95) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/dist/{Breadcrumbs-B5bqrZ5D-BqK-Qfh9.js → Breadcrumbs-BMbkH9hL-BUjQksuj.js} +3 -3
  3. package/dist/{Breadcrumbs-B5bqrZ5D-BqK-Qfh9.js.map → Breadcrumbs-BMbkH9hL-BUjQksuj.js.map} +1 -1
  4. package/dist/{Breadcrumbs-De8uoLi8.js → Breadcrumbs-fthw3qaL.js} +2 -2
  5. package/dist/{Breadcrumbs-De8uoLi8.js.map → Breadcrumbs-fthw3qaL.js.map} +1 -1
  6. package/dist/Breadcrumbs.js +1 -1
  7. package/dist/{Calendar-DD5kmVd3-CBGTR11R.js → Calendar-BvftKznl-D4_xp9Rv.js} +3 -3
  8. package/dist/{Calendar-DD5kmVd3-CBGTR11R.js.map → Calendar-BvftKznl-D4_xp9Rv.js.map} +1 -1
  9. package/dist/{Calendar-Bgpz99F2.js → Calendar-DdOR9T_K.js} +2 -2
  10. package/dist/{Calendar-Bgpz99F2.js.map → Calendar-DdOR9T_K.js.map} +1 -1
  11. package/dist/Calendar.js +1 -1
  12. package/dist/{DateField-_TqCdcYv.js → DateField-Bqsnpt8S.js} +4 -4
  13. package/dist/{DateField-_TqCdcYv.js.map → DateField-Bqsnpt8S.js.map} +1 -1
  14. package/dist/DateField.js +1 -1
  15. package/dist/{DateFieldRange-Dk8WA52F.js → DateFieldRange-Cax7Kl9A.js} +2 -2
  16. package/dist/{DateFieldRange-Dk8WA52F.js.map → DateFieldRange-Cax7Kl9A.js.map} +1 -1
  17. package/dist/DateFieldRange.js +1 -1
  18. package/dist/{DateFieldSingle-D3xD8YZk.js → DateFieldSingle-bMX770gU.js} +2 -2
  19. package/dist/{DateFieldSingle-D3xD8YZk.js.map → DateFieldSingle-bMX770gU.js.map} +1 -1
  20. package/dist/DateFieldSingle.js +1 -1
  21. package/dist/{DateFieldYearless-BxkCSNk5.js → DateFieldYearless-ClNYTBK_.js} +2 -2
  22. package/dist/{DateFieldYearless-BxkCSNk5.js.map → DateFieldYearless-ClNYTBK_.js.map} +1 -1
  23. package/dist/{DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js → DateFieldYearless-pejtv7-x-DBHpW83U.js} +7 -65
  24. package/dist/DateFieldYearless-pejtv7-x-DBHpW83U.js.map +1 -0
  25. package/dist/DateFieldYearless.js +1 -1
  26. package/dist/{InputMask-wUro4G2j.js → InputMask-BOUlnmiF.js} +2 -2
  27. package/dist/{InputMask-wUro4G2j.js.map → InputMask-BOUlnmiF.js.map} +1 -1
  28. package/dist/{InputMask-CE3pdXwL-B8XVrj36.js → InputMask-BuO8lNAB-DdxdO5Jw.js} +3 -3
  29. package/dist/{InputMask-CE3pdXwL-B8XVrj36.js.map → InputMask-BuO8lNAB-DdxdO5Jw.js.map} +1 -1
  30. package/dist/InputMask.js +1 -1
  31. package/dist/{Link-DZa0wmkA.js → Link-C4N_cV3i.js} +2 -2
  32. package/dist/{Link-DZa0wmkA.js.map → Link-C4N_cV3i.js.map} +1 -1
  33. package/dist/{Link-Dqp_XXl_-Bv20l_tY.js → Link-MiffPrW9-Cx1zYWSF.js} +3 -3
  34. package/dist/{Link-Dqp_XXl_-Bv20l_tY.js.map → Link-MiffPrW9-Cx1zYWSF.js.map} +1 -1
  35. package/dist/Link.js +1 -1
  36. package/dist/LinkButton.css +5 -0
  37. package/dist/LinkButton.d.ts +6 -0
  38. package/dist/LinkButton.js +76 -0
  39. package/dist/LinkButton.js.map +1 -0
  40. package/dist/{ListView-DdHpJHTc.js → ListView-DVPhWDCM.js} +24 -5
  41. package/dist/ListView-DVPhWDCM.js.map +1 -0
  42. package/dist/ListView.js +1 -1
  43. package/dist/NumberField-C9lMsPMD.js +1582 -0
  44. package/dist/NumberField-C9lMsPMD.js.map +1 -0
  45. package/dist/NumberField.css +49 -0
  46. package/dist/NumberField.d.ts +6 -0
  47. package/dist/NumberField.js +2 -0
  48. package/dist/NumberField.js.map +1 -0
  49. package/dist/{Page-CxB5N9dR.js → Page-CGAylFKz.js} +2 -2
  50. package/dist/{Page-CxB5N9dR.js.map → Page-CGAylFKz.js.map} +1 -1
  51. package/dist/Page.js +1 -1
  52. package/dist/{SegmentedControl-DKMQuf7s.js → SegmentedControl-DY1PSYmd.js} +2 -2
  53. package/dist/{SegmentedControl-DKMQuf7s.js.map → SegmentedControl-DY1PSYmd.js.map} +1 -1
  54. package/dist/SegmentedControl.js +1 -1
  55. package/dist/{SelectCard-DUNwYa5y-BSi21Aba.js → SelectCard-LSAl_7Lh-BYtfe9PC.js} +3 -3
  56. package/dist/{SelectCard-DUNwYa5y-BSi21Aba.js.map → SelectCard-LSAl_7Lh-BYtfe9PC.js.map} +1 -1
  57. package/dist/SelectCard.js +1 -1
  58. package/dist/{SelectCardGroup-YGYiBv5M.js → SelectCardGroup-u_QKdeRZ.js} +2 -2
  59. package/dist/{SelectCardGroup-YGYiBv5M.js.map → SelectCardGroup-u_QKdeRZ.js.map} +1 -1
  60. package/dist/{TextField-gYAqTpcX.js → TextField-B364hxo8.js} +2 -2
  61. package/dist/{TextField-gYAqTpcX.js.map → TextField-B364hxo8.js.map} +1 -1
  62. package/dist/{TextField-CRTh0gL_-D2CjcYXX.js → TextField-DoPP1CQ--UWAOTYiv.js} +2 -2
  63. package/dist/{TextField-CRTh0gL_-D2CjcYXX.js.map → TextField-DoPP1CQ--UWAOTYiv.js.map} +1 -1
  64. package/dist/TextField.js +1 -1
  65. package/dist/{Textarea-DohNOiIp.js → Textarea-D2AAZ1L3.js} +2 -2
  66. package/dist/{Textarea-DohNOiIp.js.map → Textarea-D2AAZ1L3.js.map} +1 -1
  67. package/dist/Textarea.js +1 -1
  68. package/dist/{TimeField-DRHLRqN3.js → TimeField-tA9uo4lK.js} +5 -4
  69. package/dist/{TimeField-DRHLRqN3.js.map → TimeField-tA9uo4lK.js.map} +1 -1
  70. package/dist/TimeField.js +1 -1
  71. package/dist/components/LinkButton/LinkButton.d.ts +57 -0
  72. package/dist/components/LinkButton/index.d.ts +2 -0
  73. package/dist/components/NumberField/NumberField.d.ts +11 -0
  74. package/dist/components/NumberField/index.d.ts +2 -0
  75. package/dist/components/index.d.ts +1 -0
  76. package/dist/{usePopoverSupport-B9Lsqryr-DhZHMoNb.js → index.esm-dyoPQhi6.js} +735 -13
  77. package/dist/index.esm-dyoPQhi6.js.map +1 -0
  78. package/dist/index.js +17 -16
  79. package/dist/index.js.map +1 -1
  80. package/dist/useFocusWithin-Cxz14Zyz-DEudRcSI.js +64 -0
  81. package/dist/useFocusWithin-Cxz14Zyz-DEudRcSI.js.map +1 -0
  82. package/dist/useLinkStyles.js +1 -1
  83. package/dist/{useOptionallyControlledState-DAv5LXXh-DAv5LXXh.js → useOptionallyControlledState-DbDuos5L-DbDuos5L.js} +9 -3
  84. package/dist/useOptionallyControlledState-DbDuos5L-DbDuos5L.js.map +1 -0
  85. package/dist/usePopoverSupport-B9Lsqryr-CYJxXiun.js +15 -0
  86. package/dist/usePopoverSupport-B9Lsqryr-CYJxXiun.js.map +1 -0
  87. package/package.json +2 -2
  88. package/dist/DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js.map +0 -1
  89. package/dist/ListView-DdHpJHTc.js.map +0 -1
  90. package/dist/useOptionallyControlledState-DAv5LXXh-DAv5LXXh.js.map +0 -1
  91. package/dist/usePopoverSupport-B9Lsqryr-DhZHMoNb.js.map +0 -1
  92. /package/dist/{Breadcrumbs-B5bqrZ5D.css → Breadcrumbs-BMbkH9hL.css} +0 -0
  93. /package/dist/{Calendar-DD5kmVd3.css → Calendar-BvftKznl.css} +0 -0
  94. /package/dist/{Link-Dqp_XXl_.css → Link-MiffPrW9.css} +0 -0
  95. /package/dist/{SelectCard-DUNwYa5y.css → SelectCard-LSAl_7Lh.css} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TimeField-DRHLRqN3.js","sources":["../../hammer-icon/mdi/round/access_time.svg","../../hammer-react/dist/TimeField-CMZD84d1.js","../src/components/TimeField/TimeField.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgAccessTime = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm-.22-13h-.06c-.4 0-.72.32-.72.72v4.72c0 .35.18.68.49.86l4.15 2.49c.34.2.78.1.98-.24a.71.71 0 0 0-.25-.99l-3.87-2.3V7.72c0-.4-.32-.72-.72-.72z\" }));\nexport default SvgAccessTime;\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { forwardRef, useState, useRef, useMemo, useEffect, useCallback, useImperativeHandle } from 'react';\nimport { T as TextField } from './TextField-CRTh0gL_.js';\nimport { maskitoTimeOptionsGenerator, maskitoWithPlaceholder } from '@maskito/kit';\nimport { useMaskito } from '@maskito/react';\nimport IconAccessTime from '@servicetitan/hammer-icon/mdi/round/access_time.svg';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport cx from 'classnames';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { P as Popover } from './Popover-CU2cGVD8.js';\nimport { L as Listbox } from './Listbox-B-WUuj-_.js';\nimport { u as usePopoverSupport } from './usePopoverSupport-B9Lsqryr.js';\nimport { u as useOptionallyControlledState } from './useOptionallyControlledState-DAv5LXXh.js';\nimport { u as usePopoverCloseDelayWorkaround } from './usePopoverCloseDelayWorkaround-BZcjPkvT.js';\n\nimport './TimeField.css';const timePlaceholderMask = ({\n format,\n placeholder\n}) => {\n const timeOptions = maskitoTimeOptionsGenerator({\n mode: format === 12 ? \"HH:MM AA\" : \"HH:MM\",\n step: 0\n // We handle step logic in your business layer\n });\n const { plugins, removePlaceholder, ...placeholderOptions } = maskitoWithPlaceholder(placeholder);\n const timePlaceholderMask2 = {\n ...timeOptions,\n plugins: plugins.concat(timeOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...timeOptions.preprocessors\n ],\n postprocessors: [\n ...timeOptions.postprocessors,\n ...placeholderOptions.postprocessors\n ]\n };\n return { options: timePlaceholderMask2, removePlaceholder };\n};\n\nconst TIME_CONSTANTS = {\n /** Minutes in a full day (24 hours * 60 minutes) */\n MINUTES_IN_DAY: 1440,\n /** Maximum hour in 24-hour format */\n MAX_HOUR_24: 23,\n /** Maximum minute value */\n MAX_MINUTE: 59,\n /** Timeout in milliseconds for input debouncing */\n INPUT_DEBOUNCE_TIMEOUT: 100\n};\nconst TIME_FORMAT_PLACEHOLDERS = {\n 12: \"––:–– ––\",\n 24: \"––:––\"\n};\nconst CLOCK_ICON = IconAccessTime;\n\nfunction formatTimeString(hours, minutes, format) {\n if (hours === 24) {\n hours = 0;\n }\n if (format === 12) {\n let displayHours = hours;\n let period = \"AM\";\n if (hours === 0) {\n displayHours = 12;\n } else if (hours > 12) {\n displayHours = hours - 12;\n period = \"PM\";\n } else if (hours === 12) {\n period = \"PM\";\n }\n return `${displayHours.toString().padStart(2, \"0\")}:${minutes.toString().padStart(2, \"0\")} ${period}`;\n } else {\n return `${hours.toString().padStart(2, \"0\")}:${minutes.toString().padStart(2, \"0\")}`;\n }\n}\n\nconst MAX_HOUR = TIME_CONSTANTS.MAX_HOUR_24;\nconst MAX_MINUTE = TIME_CONSTANTS.MAX_MINUTE;\nfunction getConstraintMinutes(min, max) {\n const minMinutes = min ? timeToMinutes(convertTimeFormat(min, 24)) : 0;\n const maxMinutes = max ? timeToMinutes(convertTimeFormat(max, 24)) : TIME_CONSTANTS.MINUTES_IN_DAY;\n return { minMinutes, maxMinutes };\n}\nfunction isWithinConstraints(timeMinutes, minMinutes, maxMinutes) {\n return timeMinutes >= minMinutes && timeMinutes <= maxMinutes;\n}\nconst timeToMinutes = (timeStr) => {\n const match = timeStr.match(/^(\\d{1,2}):(\\d{2})(?:\\s*(AM|PM))?$/i);\n if (!match) return 0;\n let hours = parseInt(match[1], 10);\n const minutes = parseInt(match[2], 10);\n const period = match[3]?.toUpperCase();\n if (minutes > MAX_MINUTE) return 0;\n if (period === \"PM\" && hours !== 12) {\n hours += 12;\n } else if (period === \"AM\" && hours === 12) {\n hours = 0;\n }\n if (hours > MAX_HOUR) return 0;\n return hours * 60 + minutes;\n};\nfunction convertTimeFormat(time, targetFormat) {\n if (!time) return time;\n const minutes = timeToMinutes(time);\n if (minutes === 0 && time !== \"00:00\" && time !== \"12:00 AM\") {\n return time;\n }\n const hours = Math.floor(minutes / 60);\n const mins = minutes % 60;\n return formatTimeString(hours, mins, targetFormat);\n}\nfunction normalizePartialInput(value) {\n const cleanValue = value.replace(/[–_:]/g, \"\").replace(/\\s+/g, \"\");\n if (/^\\d{1,2}$/.test(cleanValue)) {\n const result = `${cleanValue}:00`;\n return result;\n } else if (/^\\d{1,2}:\\d{1}$/.test(cleanValue)) {\n const result = `${cleanValue}0`;\n return result;\n } else if (/^\\d{4}$/.test(cleanValue)) {\n const result = `${cleanValue.slice(0, 2)}:${cleanValue.slice(2)}`;\n return result;\n } else if (/^\\d{4}(AM|PM)$/i.test(cleanValue)) {\n const digits = cleanValue.slice(0, 4);\n const ampm = cleanValue.slice(4);\n const result = `${digits.slice(0, 2)}:${digits.slice(2)} ${ampm}`;\n return result;\n }\n return value;\n}\nfunction parse12HourFormat(normalizedValue, min, max) {\n const match = normalizedValue.match(/^(\\d{1,2}):(\\d{1,2})(?:\\s*(AM|PM))?$/i);\n if (!match) return null;\n let hours = parseInt(match[1], 10);\n let minutes = parseInt(match[2], 10);\n const ampm = match[3]?.toUpperCase();\n if (minutes < 10 && normalizedValue.match(/^(\\d{1,2}):(\\d{1})$/)) {\n minutes *= 10;\n }\n if (ampm === \"PM\") {\n if (hours !== 12) {\n hours += 12;\n }\n } else if (ampm === \"AM\") {\n if (hours === 12) {\n hours = 0;\n }\n } else {\n if (hours === 12) {\n hours = 12;\n } else {\n if (min || max) {\n const amHours = hours;\n const pmHours = hours + 12;\n const { minMinutes, maxMinutes } = getConstraintMinutes(min, max);\n const amMinutes = amHours * 60 + minutes;\n const pmMinutes = pmHours * 60 + minutes;\n const amValid = isWithinConstraints(amMinutes, minMinutes, maxMinutes);\n const pmValid = isWithinConstraints(pmMinutes, minMinutes, maxMinutes);\n if (amValid && pmValid) ; else if (pmValid) {\n hours = pmHours;\n } else ;\n }\n }\n }\n return { hours, minutes };\n}\nfunction parse24HourFormat(normalizedValue) {\n const match = normalizedValue.match(/^(\\d{1,2}):(\\d{1,2})$/);\n if (!match) {\n return null;\n }\n const hours = parseInt(match[1], 10);\n let minutes = parseInt(match[2], 10);\n if (minutes < 10 && normalizedValue.match(/^(\\d{1,2}):(\\d{1})$/)) {\n minutes *= 10;\n }\n const result = { hours, minutes };\n return result;\n}\nfunction validate12HourConstraints(timeString, value, min, max) {\n if (!min && !max) return true;\n const originalHasAMPM = value.toUpperCase().includes(\"AM\") || value.toUpperCase().includes(\"PM\");\n if (!originalHasAMPM) {\n const timePart = timeString.replace(/\\s*(AM|PM)$/i, \"\");\n const amTime = `${timePart} AM`;\n const pmTime = `${timePart} PM`;\n const amMinutes = timeToMinutes(convertTimeFormat(amTime, 24));\n const pmMinutes = timeToMinutes(convertTimeFormat(pmTime, 24));\n const { minMinutes, maxMinutes } = getConstraintMinutes(min, max);\n return isWithinConstraints(amMinutes, minMinutes, maxMinutes) || isWithinConstraints(pmMinutes, minMinutes, maxMinutes);\n } else {\n const timeMinutes = timeToMinutes(convertTimeFormat(timeString, 24));\n const { minMinutes, maxMinutes } = getConstraintMinutes(min, max);\n return isWithinConstraints(timeMinutes, minMinutes, maxMinutes);\n }\n}\nfunction validate24HourConstraints(timeString, min, max) {\n if (!min && !max) return true;\n const timeMinutes = timeToMinutes(timeString);\n const { minMinutes, maxMinutes } = getConstraintMinutes(min, max);\n if (isWithinConstraints(timeMinutes, minMinutes, maxMinutes)) {\n return true;\n }\n const hours = Math.floor(timeMinutes / 60);\n const minutes = timeMinutes % 60;\n if (minutes === 0) {\n for (let h = minMinutes; h <= maxMinutes; h += 60) {\n const potentialHour = Math.floor(h / 60);\n if (potentialHour.toString().startsWith(hours.toString())) {\n return true;\n }\n }\n }\n if (hours >= Math.floor(minMinutes / 60) && hours <= Math.floor(maxMinutes / 60)) {\n const hourMinutes = hours * 60;\n const hourMinMinutes = Math.max(minMinutes, hourMinutes);\n const hourMaxMinutes = Math.min(maxMinutes, hourMinutes + 59);\n for (let m = hourMinMinutes; m <= hourMaxMinutes; m++) {\n const potentialMinutes = m % 60;\n if (potentialMinutes.toString().startsWith(minutes.toString())) {\n return true;\n }\n }\n }\n return false;\n}\nfunction parseInputValue(value, format, removePlaceholder, min, max) {\n const valueMinusPlaceholder = removePlaceholder(value);\n if (valueMinusPlaceholder === \"\") {\n return {\n time: null,\n isInputValid: false,\n isInputEmpty: true\n };\n }\n const normalizedValue = normalizePartialInput(valueMinusPlaceholder);\n const parsed = format === 12 ? parse12HourFormat(normalizedValue, min, max) : parse24HourFormat(normalizedValue);\n if (!parsed) {\n return {\n time: null,\n isInputValid: false,\n isInputEmpty: false\n };\n }\n const { hours, minutes } = parsed;\n if (hours < 0 || hours > MAX_HOUR || minutes < 0 || minutes > MAX_MINUTE) {\n return {\n time: null,\n isInputValid: false,\n isInputEmpty: false\n };\n }\n const timeString = formatTimeString(hours, minutes, format);\n const isValid = format === 12 ? validate12HourConstraints(timeString, value, min, max) : validate24HourConstraints(timeString, min, max);\n if (!isValid) {\n return {\n time: null,\n isInputValid: false,\n isInputEmpty: false\n };\n }\n return {\n time: timeString,\n isInputValid: true,\n isInputEmpty: false\n };\n}\n\nfunction isTimeOnStep(time, step) {\n if (!step || step <= 0) return true;\n const totalMinutes = timeToMinutes(time);\n return totalMinutes % step === 0;\n}\nfunction isValidTime(time) {\n if (!time) return false;\n return timeToMinutes(time) > 0 || time === \"00:00\";\n}\nfunction isPartialInputPotentiallyValid(inputValue, format, min, max) {\n if (!min || !max) return false;\n const digits = inputValue.replace(/[^\\d]/g, \"\");\n if (digits.length === 1) {\n const digit = parseInt(digits, 10);\n const minMinutes = timeToMinutes(min);\n const maxMinutes = timeToMinutes(max);\n for (let h = 0; h <= 23; h++) {\n const hourStr = h.toString().padStart(2, \"0\");\n const hourStrNoPad = h.toString();\n const startsWithDigit = hourStr.startsWith(digit.toString()) || hourStrNoPad.startsWith(digit.toString());\n if (!startsWithDigit) continue;\n if (format === 24) {\n const hourMinutes = h * 60;\n if (hourMinutes >= minMinutes && hourMinutes <= maxMinutes) {\n return true;\n }\n } else {\n if (h === 0) {\n if (digit === 1) {\n const midnightMinutes = 0;\n if (midnightMinutes >= minMinutes && midnightMinutes <= maxMinutes) {\n return true;\n }\n }\n } else if (h >= 1 && h <= 12) {\n const amHour24 = h === 12 ? 0 : h;\n const amMinutes = amHour24 * 60;\n if (amMinutes >= minMinutes && amMinutes <= maxMinutes) {\n return true;\n }\n const pmHour24 = h === 12 ? 12 : h + 12;\n const pmMinutes = pmHour24 * 60;\n if (pmMinutes >= minMinutes && pmMinutes <= maxMinutes) {\n return true;\n }\n }\n }\n }\n }\n return false;\n}\n\nconst styles = {\n\t\"time-field\": \"_time-field_11xzw_2\"\n};\n\nconst MaskedTimeInput = forwardRef(\n ({\n lastValidTime,\n format,\n placeholder,\n min,\n max,\n onInputChange,\n onKeyDown,\n onFocus,\n className,\n ...props\n }, ref) => {\n const [inputValue, setInputValue] = useState(placeholder);\n const { options, removePlaceholder } = timePlaceholderMask({\n format,\n placeholder\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousTimeRef = useRef(null);\n const isUserTypingRef = useRef(false);\n const inputValueRef = useRef(placeholder);\n const previousPlaceholderRef = useRef(placeholder);\n const currentParsedData = useMemo(() => {\n return parseInputValue(inputValue, format, removePlaceholder, min, max);\n }, [inputValue, format, removePlaceholder, min, max]);\n useEffect(() => {\n inputValueRef.current = inputValue;\n }, [inputValue]);\n useEffect(() => {\n previousPlaceholderRef.current = placeholder;\n }, [placeholder]);\n useEffect(() => {\n if (lastValidTime === void 0) return;\n if (lastValidTime === previousTimeRef.current) return;\n if (isUserTypingRef.current) return;\n const newInputValue = lastValidTime ? convertTimeFormat(lastValidTime, format) : placeholder;\n setInputValue(newInputValue);\n inputValueRef.current = newInputValue;\n previousTimeRef.current = lastValidTime;\n }, [lastValidTime, format, placeholder]);\n useEffect(() => {\n if (placeholder === previousPlaceholderRef.current) return;\n if (lastValidTime && inputValue === lastValidTime) return;\n const isOldPlaceholder = inputValue === TIME_FORMAT_PLACEHOLDERS[12] || inputValue === TIME_FORMAT_PLACEHOLDERS[24];\n if (isOldPlaceholder) {\n setInputValue(placeholder);\n }\n previousPlaceholderRef.current = placeholder;\n }, [placeholder, lastValidTime, inputValue]);\n const handleChange = useCallback(\n (event) => {\n isUserTypingRef.current = true;\n const { time, isInputValid, isInputEmpty } = parseInputValue(\n event.target.value,\n format,\n removePlaceholder,\n min,\n max\n );\n const isPotentiallyValidPartial = !isInputValid && !isInputEmpty && event.target.value.length >= placeholder.length && // User is typing, not deleting\n isPartialInputPotentiallyValid(event.target.value, format, min, max);\n if (isInputValid || isInputEmpty || isPotentiallyValidPartial) {\n setInputValue(event.target.value);\n } else {\n setInputValue(placeholder);\n }\n onInputChange?.({\n event,\n time,\n isInputValid,\n isInputEmpty\n });\n setTimeout(() => {\n isUserTypingRef.current = false;\n }, TIME_CONSTANTS.INPUT_DEBOUNCE_TIMEOUT);\n },\n [format, removePlaceholder, onInputChange, min, max, placeholder]\n );\n const resetTypingFlag = useCallback(() => {\n isUserTypingRef.current = false;\n }, []);\n useImperativeHandle(\n ref,\n () => ({\n ...inputRef.current,\n focus: () => inputRef.current?.focus(),\n resetTypingFlag\n })\n );\n const classNames = useMemo(() => {\n return cx(styles[\"time-field\"], className);\n }, [className]);\n return /* @__PURE__ */ jsx(\n TextField,\n {\n ref: combinedRef,\n \"data-input-valid\": currentParsedData.isInputValid,\n \"data-input-empty\": currentParsedData.isInputEmpty,\n \"data-time\": currentParsedData.time ?? \"\",\n value: inputValue,\n onChange: handleChange,\n prefix: /* @__PURE__ */ jsx(Icon, { svg: CLOCK_ICON }),\n autoComplete: \"off\",\n onKeyDown,\n onFocus,\n className: classNames,\n ...props\n }\n );\n }\n);\nMaskedTimeInput.displayName = \"MaskedTimeInput\";\n\nfunction generateTimeOptions({\n step = 30,\n min,\n max,\n format\n}) {\n const options = [];\n const minMinutes = min ? timeToMinutes(min) : 0;\n const maxMinutes = max ? timeToMinutes(max) : TIME_CONSTANTS.MINUTES_IN_DAY - 1;\n for (let minutes = 0; minutes < TIME_CONSTANTS.MINUTES_IN_DAY; minutes += step) {\n if (minutes < minMinutes || minutes > maxMinutes) {\n continue;\n }\n const hours = Math.floor(minutes / 60);\n const mins = minutes % 60;\n options.push(formatTimeString(hours, mins, format));\n }\n return options;\n}\nfunction normalizeTimeString(str) {\n return str.replace(/[–_:]/g, \"\").replace(/\\s+/g, \"\").toLowerCase();\n}\nfunction filterTimeOptions(options, userInput) {\n if (!userInput || userInput === TIME_FORMAT_PLACEHOLDERS[12] || userInput === TIME_FORMAT_PLACEHOLDERS[24]) {\n return options;\n }\n const normalizedInput = normalizeTimeString(userInput);\n const filtered = options.filter((option) => {\n const normalizedOption = normalizeTimeString(option);\n return normalizedOption.startsWith(normalizedInput);\n });\n return filtered;\n}\n\nfunction getNextFutureStep(time, step, format) {\n if (!step || step <= 0) return time;\n const totalMinutes = timeToMinutes(time);\n const nextStep = Math.ceil(totalMinutes / step) * step;\n const hours = Math.floor(nextStep / 60);\n const minutes = nextStep % 60;\n return formatTimeString(hours, minutes, format);\n}\nfunction handleAutoRounding(time, options) {\n const { autoround, step, format } = options;\n if (!autoround || !time) return time;\n const stepValue = step ?? 30;\n if (isTimeOnStep(time, stepValue)) {\n return time;\n }\n return getNextFutureStep(time, stepValue, format);\n}\nfunction generateAmPmVariants(currentTime, step, inputValue) {\n const hasAM = inputValue.toUpperCase().includes(\"AM\");\n const hasPM = inputValue.toUpperCase().includes(\"PM\");\n const getNextStepForTime = (time) => {\n const currentMinutes = timeToMinutes(time);\n const nextStepMinutes = Math.ceil(currentMinutes / step) * step;\n const finalMinutes = nextStepMinutes === currentMinutes ? nextStepMinutes + step : nextStepMinutes;\n const hours = Math.floor(finalMinutes / 60);\n const minutes = finalMinutes % 60;\n return formatTimeString(hours, minutes, 12);\n };\n const nextStep = getNextFutureStep(currentTime, step, 12);\n if (hasAM || hasPM) {\n return [nextStep];\n } else {\n const currentMinutes = timeToMinutes(currentTime);\n const pmMinutes = currentMinutes + 12 * 60;\n const pmHours = Math.floor(pmMinutes / 60);\n const pmMins = pmMinutes % 60;\n const pmVersion = getNextStepForTime(formatTimeString(pmHours, pmMins, 24));\n return [nextStep, pmVersion];\n }\n}\nfunction generatePmInterpretation(currentTime, step, inputValue) {\n if (inputValue.toUpperCase().includes(\"AM\") || inputValue.toUpperCase().includes(\"PM\")) {\n return [];\n }\n const currentMinutes = timeToMinutes(currentTime);\n const pmMinutes = currentMinutes + 12 * 60;\n const pmHours = Math.floor(pmMinutes / 60);\n const pmMins = pmMinutes % 60;\n const pmTime = formatTimeString(pmHours, pmMins, 12);\n if (isValidTime(pmTime)) {\n const pmNextStep = getNextFutureStep(pmTime, step, 12);\n return [pmNextStep];\n }\n return [];\n}\nfunction getAutoRoundingOptions(currentTime, step, format, inputValue, min) {\n if (!currentTime) {\n return [];\n }\n if (!isValidTime(currentTime)) {\n if (format === 12) {\n return generatePmInterpretation(currentTime, step, inputValue);\n }\n return [];\n }\n const nextStep = getNextFutureStep(currentTime, step, format);\n if (format === 12 && !min) {\n return generateAmPmVariants(currentTime, step, inputValue);\n }\n return [nextStep];\n}\n\nconst TimeFieldElement = forwardRef(\n function TimeField2({\n value: valueProp,\n defaultValue,\n min,\n max,\n onChange,\n format = 12,\n step = 30,\n required,\n description,\n error: errorProp,\n disableSuggestions = false,\n autoround = false,\n className,\n ...rest\n }, ref) {\n const [lastValidTime, setLastValidTime] = useOptionallyControlledState({\n controlledValue: valueProp,\n defaultValue: defaultValue ?? null\n });\n const [isDropdownOpen, setIsDropdownOpenRaw] = useState(false);\n const setIsDropdownOpen = (open) => {\n setIsDropdownOpenRaw(open);\n };\n const [selectedOptionIndex, setSelectedOptionIndex] = useState(0);\n const [inputValueForFiltering, setInputValueForFiltering] = useState(\"\");\n const [currentParsedTime, setCurrentParsedTime] = useState(\n null\n );\n const [inputParsedData, setInputParsedData] = useState({ time: null, isInputValid: false, isInputEmpty: true });\n const lastOnChangeCallRef = useRef(null);\n const isDropdownClickingRef = useRef(false);\n const [justSelected, setJustSelected] = useState(false);\n const tabJustPressedRef = useRef(false);\n const inputRef = useRef(null);\n const popoverContentRef = useRef(null);\n const combinedRef = useMergeRefs([inputRef, ref]);\n const popoverSupported = usePopoverSupport();\n const placeholder = TIME_FORMAT_PLACEHOLDERS[format];\n const shouldShowOptionsFromHook = usePopoverCloseDelayWorkaround(isDropdownOpen);\n const shouldShowOptions = tabJustPressedRef.current ? false : shouldShowOptionsFromHook;\n const dropdownTimeoutRef = useRef(null);\n useEffect(() => {\n const dropdownRef = dropdownTimeoutRef.current;\n return () => {\n if (dropdownRef) {\n clearTimeout(dropdownRef);\n }\n };\n }, []);\n const allTimeOptions = useMemo(\n () => generateTimeOptions({ step, min, max, format }),\n [step, min, max, format]\n );\n const baseFilteredOptions = useMemo(() => {\n if (!inputValueForFiltering || inputValueForFiltering.match(/^[–_:]+$/)) {\n return allTimeOptions;\n }\n return filterTimeOptions(allTimeOptions, inputValueForFiltering);\n }, [allTimeOptions, inputValueForFiltering]);\n const autoRoundingOptions = useMemo(() => {\n if (!autoround || baseFilteredOptions.length > 0 || !inputValueForFiltering || inputValueForFiltering.match(/^[–_:]+$/)) {\n return [];\n }\n const currentTime = currentParsedTime || inputParsedData.time;\n const autoRoundedOptions = getAutoRoundingOptions(\n currentTime,\n step ?? 30,\n format,\n inputValueForFiltering,\n min\n );\n return autoRoundedOptions.filter(\n (option) => !baseFilteredOptions.includes(option)\n );\n }, [\n autoround,\n baseFilteredOptions,\n inputValueForFiltering,\n currentParsedTime,\n inputParsedData.time,\n format,\n min,\n step\n ]);\n const filteredOptions = useMemo(() => {\n if (baseFilteredOptions.length === 0 && autoRoundingOptions.length === 0) {\n if (!inputParsedData.isInputValid && inputValueForFiltering && !inputValueForFiltering.match(/^[–_:]+$/)) {\n return allTimeOptions;\n }\n }\n return [...baseFilteredOptions, ...autoRoundingOptions];\n }, [\n baseFilteredOptions,\n autoRoundingOptions,\n allTimeOptions,\n inputValueForFiltering,\n inputParsedData.isInputValid\n ]);\n const handleBlur = useCallback(\n (event) => {\n if (event.relatedTarget && popoverContentRef.current?.contains(event.relatedTarget) && isDropdownClickingRef.current) {\n isDropdownClickingRef.current = false;\n return;\n }\n setIsDropdownOpen(false);\n setSelectedOptionIndex(0);\n const input = event.target;\n const parsedInputTime = input.dataset.time || null;\n const isInputValid = input.dataset.inputValid === \"true\";\n const isInputEmpty = input.dataset.inputEmpty === \"true\";\n let finalTime = parsedInputTime;\n if (autoround && finalTime && isInputValid) {\n finalTime = handleAutoRounding(finalTime, {\n autoround,\n step,\n format\n });\n }\n if (finalTime) {\n inputRef.current?.resetTypingFlag?.();\n setLastValidTime(finalTime);\n }\n const currentChange = {\n time: finalTime,\n isInputValid,\n isInputEmpty\n };\n const lastChange = lastOnChangeCallRef.current;\n const isDuplicate = lastChange && lastChange.time === currentChange.time && lastChange.isInputValid === currentChange.isInputValid && lastChange.isInputEmpty === currentChange.isInputEmpty;\n if (!isDuplicate) {\n onChange?.(currentChange);\n lastOnChangeCallRef.current = currentChange;\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [format, step, autoround, onChange]\n );\n const handleFocus = useCallback(() => {\n if (!disableSuggestions && !justSelected) {\n setIsDropdownOpen(true);\n setSelectedOptionIndex(0);\n }\n }, [disableSuggestions, justSelected]);\n useEffect(() => {\n if (filteredOptions.length <= 1 && isDropdownOpen) {\n setIsDropdownOpen(false);\n }\n if (!disableSuggestions && filteredOptions.length > 1 && document.activeElement && document.activeElement.tagName === \"INPUT\" && !isDropdownOpen && !justSelected && !tabJustPressedRef.current) {\n setIsDropdownOpen(true);\n setSelectedOptionIndex(0);\n }\n }, [filteredOptions, disableSuggestions, isDropdownOpen, justSelected]);\n const handleInputChange = (change) => {\n setInputValueForFiltering(change.event.target.value);\n setCurrentParsedTime(change.time);\n setInputParsedData({\n time: change.time,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty\n });\n setSelectedOptionIndex(0);\n setJustSelected(false);\n };\n const scrollToSelectedOption = useCallback(() => {\n if (!popoverContentRef.current || selectedOptionIndex < 0) return;\n const optionElements = popoverContentRef.current.querySelectorAll('[role=\"option\"]');\n const targetElement = optionElements[selectedOptionIndex];\n if (targetElement) {\n targetElement.scrollIntoView({\n block: \"center\",\n behavior: \"auto\"\n });\n }\n }, [selectedOptionIndex]);\n useEffect(() => {\n if (isDropdownOpen && selectedOptionIndex >= 0) {\n scrollToSelectedOption();\n }\n }, [selectedOptionIndex, isDropdownOpen, scrollToSelectedOption]);\n const handleOptionSelect = useCallback(\n (selectedTime) => {\n if (inputRef.current?.resetTypingFlag) {\n inputRef.current.resetTypingFlag();\n }\n setIsDropdownOpen(false);\n setSelectedOptionIndex(0);\n setJustSelected(true);\n setLastValidTime(selectedTime);\n setCurrentParsedTime(selectedTime);\n const changeData = {\n time: selectedTime,\n isInputValid: true,\n isInputEmpty: false\n };\n onChange?.(changeData);\n lastOnChangeCallRef.current = changeData;\n requestAnimationFrame(() => {\n inputRef.current?.focus();\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange]\n );\n const handleKeyDown = useCallback(\n (event) => {\n if (!isDropdownOpen) {\n return;\n }\n switch (event.key) {\n case \"ArrowDown\":\n event.preventDefault();\n setSelectedOptionIndex(\n (prev) => prev < filteredOptions.length - 1 ? prev + 1 : 0\n );\n break;\n case \"ArrowUp\":\n event.preventDefault();\n setSelectedOptionIndex(\n (prev) => prev > 0 ? prev - 1 : filteredOptions.length - 1\n );\n break;\n case \"Enter\":\n event.preventDefault();\n if (filteredOptions[selectedOptionIndex]) {\n handleOptionSelect(filteredOptions[selectedOptionIndex]);\n }\n break;\n case \"Tab\":\n tabJustPressedRef.current = true;\n setIsDropdownOpen(false);\n setSelectedOptionIndex(0);\n setTimeout(() => {\n tabJustPressedRef.current = false;\n }, 50);\n break;\n }\n },\n [\n isDropdownOpen,\n selectedOptionIndex,\n filteredOptions,\n handleOptionSelect\n ]\n );\n const popoverDisabled = disableSuggestions || !popoverSupported;\n const justTheInput = /* @__PURE__ */ jsx(\n MaskedTimeInput,\n {\n ref: combinedRef,\n lastValidTime,\n format,\n placeholder,\n min,\n max,\n onInputChange: handleInputChange,\n onKeyDown: handleKeyDown,\n onBlur: handleBlur,\n onFocus: handleFocus,\n description,\n error: errorProp,\n className: popoverDisabled ? className : void 0,\n ...rest,\n \"data-anv\": \"time-field\"\n }\n );\n if (popoverDisabled) {\n return justTheInput;\n }\n return /* @__PURE__ */ jsxs(\n Popover,\n {\n open: isDropdownOpen,\n noPadding: true,\n disableCaret: true,\n placement: \"bottom-start\",\n matchReferenceWidth: true,\n modal: false,\n onClickOutside: () => {\n setIsDropdownOpen(false);\n },\n onClose: () => {\n setIsDropdownOpen(false);\n },\n fitScreen: true,\n children: [\n /* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: popoverRef }) => /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: popoverRef,\n className,\n children: justTheInput\n }\n ) }),\n /* @__PURE__ */ jsx(\n Popover.Content,\n {\n ref: popoverContentRef,\n \"data-open\": isDropdownOpen,\n \"data-disabled\": disableSuggestions,\n onMouseDown: () => {\n isDropdownClickingRef.current = true;\n },\n onTouchStart: () => {\n isDropdownClickingRef.current = true;\n },\n children: shouldShowOptions && /* @__PURE__ */ jsx(\n Listbox,\n {\n selected: filteredOptions[selectedOptionIndex],\n onSelectionChange: (selected) => {\n if (selected) {\n handleOptionSelect(selected);\n } else {\n const currentOption = filteredOptions[selectedOptionIndex];\n if (currentOption) {\n handleOptionSelect(currentOption);\n }\n }\n },\n \"aria-label\": \"Time suggestions\",\n children: filteredOptions.map((option) => /* @__PURE__ */ jsx(Listbox.Option, { value: option, label: option, children: option }, option))\n }\n )\n }\n )\n ]\n }\n );\n }\n);\nconst TimeField = Object.assign(TimeFieldElement, {});\nTimeField.displayName = \"TimeField\";\n\nexport { TimeField as T };\n//# sourceMappingURL=TimeField-CMZD84d1.js.map\n","import {\n TimeFieldProps as CoreTimeFieldProps,\n TimeField as CoreTimeField,\n childrenToString,\n TimeFieldChange,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the TimeField component\n * @property {string | null} [value] - The current value of the time field\n * @property {string | null} [defaultValue] - The default value for uncontrolled mode\n * @property {TimeFieldChangeHandler} [onChange] - Callback when the time value changes\n * @property {TimeFormat} [format] - Time format to use\n * @property {number} [step] - Time increment in minutes\n * @property {string | null} [min] - Minimum allowed time\n * @property {string | null} [max] - Maximum allowed time\n * @property {boolean} [autoround] - Whether to automatically round to the nearest step\n * @property {boolean} [disableSuggestions] - Whether to disable the dropdown suggestions\n * @extends DataTrackingId\n */\nexport type TimeFieldProps = CoreTimeFieldProps & DataTrackingId;\n\n/**\n * Change event data for TimeField onChange callback.\n */\nexport type { TimeFieldChange };\n\n/**\n * TimeField component for entering time values with auto-rounding and suggestions.\n *\n * Features:\n * - Supports 12-hour and 24-hour time formats\n * - Min/max time constraints handled during input parsing\n * - Auto-rounding to step intervals when autoround is true\n * - Dropdown suggestions for quick time selection\n * - Controlled and uncontrolled modes\n * - Smart input masking with placeholders\n * - Integration with MaskedTimeInput for auto-complete\n * - Validation handled by implementors using onChange callback\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <TimeField\n * label=\"Meeting Time\"\n * value=\"14:30\"\n * format={24}\n * step={30}\n * min=\"09:00\"\n * max=\"17:00\"\n * autoround\n * disableSuggestions\n * onChange={(change) => {\n * // Handle time change and validation\n * if (change.isInputEmpty && required) {\n * // Show required error\n * }\n * }}\n * />\n */\nexport const TimeField = forwardRef(\n (props: TimeFieldProps, ref: Ref<HTMLInputElement>) => {\n const data = {\n label: childrenToString(props.label),\n labelProps: props.labelProps,\n prefix: childrenToString(props.prefix),\n hint: childrenToString(props.hint),\n description: childrenToString(props.description),\n size: props.size,\n format: props.format,\n step: props.step,\n min: props.min,\n max: props.max,\n autoround: props.autoround,\n disableSuggestions: props.disableSuggestions,\n };\n\n const trackingId = useTrackingId({\n name: \"TimeField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n return <CoreTimeField ref={ref} data-tracking-id={trackingId} {...props} />;\n },\n);\n\nTimeField.displayName = CoreTimeField.displayName;\n"],"names":["IconAccessTime","TimeField","CoreTimeField"],"mappings":"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"}
1
+ {"version":3,"file":"TimeField-tA9uo4lK.js","sources":["../../hammer-icon/mdi/round/access_time.svg","../../hammer-react/dist/TimeField-Dkq6ipvF.js","../src/components/TimeField/TimeField.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgAccessTime = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm-.22-13h-.06c-.4 0-.72.32-.72.72v4.72c0 .35.18.68.49.86l4.15 2.49c.34.2.78.1.98-.24a.71.71 0 0 0-.25-.99l-3.87-2.3V7.72c0-.4-.32-.72-.72-.72z\" }));\nexport default SvgAccessTime;\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { forwardRef, useState, useRef, useMemo, useEffect, useCallback, useImperativeHandle } from 'react';\nimport { T as TextField } from './TextField-DoPP1CQ-.js';\nimport { maskitoTimeOptionsGenerator, maskitoWithPlaceholder } from '@maskito/kit';\nimport { useMaskito } from '@maskito/react';\nimport IconAccessTime from '@servicetitan/hammer-icon/mdi/round/access_time.svg';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport cx from 'classnames';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { P as Popover } from './Popover-CU2cGVD8.js';\nimport { L as Listbox } from './Listbox-B-WUuj-_.js';\nimport { u as usePopoverSupport } from './usePopoverSupport-B9Lsqryr.js';\nimport { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';\nimport { u as usePopoverCloseDelayWorkaround } from './usePopoverCloseDelayWorkaround-BZcjPkvT.js';\n\nimport './TimeField.css';const timePlaceholderMask = ({\n format,\n placeholder\n}) => {\n const timeOptions = maskitoTimeOptionsGenerator({\n mode: format === 12 ? \"HH:MM AA\" : \"HH:MM\",\n step: 0\n // We handle step logic in your business layer\n });\n const { plugins, removePlaceholder, ...placeholderOptions } = maskitoWithPlaceholder(placeholder);\n const timePlaceholderMask2 = {\n ...timeOptions,\n plugins: plugins.concat(timeOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...timeOptions.preprocessors\n ],\n postprocessors: [\n ...timeOptions.postprocessors,\n ...placeholderOptions.postprocessors\n ]\n };\n return { options: timePlaceholderMask2, removePlaceholder };\n};\n\nconst TIME_CONSTANTS = {\n /** Minutes in a full day (24 hours * 60 minutes) */\n MINUTES_IN_DAY: 1440,\n /** Maximum hour in 24-hour format */\n MAX_HOUR_24: 23,\n /** Maximum minute value */\n MAX_MINUTE: 59,\n /** Timeout in milliseconds for input debouncing */\n INPUT_DEBOUNCE_TIMEOUT: 100\n};\nconst TIME_FORMAT_PLACEHOLDERS = {\n 12: \"––:–– ––\",\n 24: \"––:––\"\n};\nconst CLOCK_ICON = IconAccessTime;\n\nfunction formatTimeString(hours, minutes, format) {\n if (hours === 24) {\n hours = 0;\n }\n if (format === 12) {\n let displayHours = hours;\n let period = \"AM\";\n if (hours === 0) {\n displayHours = 12;\n } else if (hours > 12) {\n displayHours = hours - 12;\n period = \"PM\";\n } else if (hours === 12) {\n period = \"PM\";\n }\n return `${displayHours.toString().padStart(2, \"0\")}:${minutes.toString().padStart(2, \"0\")} ${period}`;\n } else {\n return `${hours.toString().padStart(2, \"0\")}:${minutes.toString().padStart(2, \"0\")}`;\n }\n}\n\nconst MAX_HOUR = TIME_CONSTANTS.MAX_HOUR_24;\nconst MAX_MINUTE = TIME_CONSTANTS.MAX_MINUTE;\nfunction getConstraintMinutes(min, max) {\n const minMinutes = min ? timeToMinutes(convertTimeFormat(min, 24)) : 0;\n const maxMinutes = max ? timeToMinutes(convertTimeFormat(max, 24)) : TIME_CONSTANTS.MINUTES_IN_DAY;\n return { minMinutes, maxMinutes };\n}\nfunction isWithinConstraints(timeMinutes, minMinutes, maxMinutes) {\n return timeMinutes >= minMinutes && timeMinutes <= maxMinutes;\n}\nconst timeToMinutes = (timeStr) => {\n const match = timeStr.match(/^(\\d{1,2}):(\\d{2})(?:\\s*(AM|PM))?$/i);\n if (!match) return 0;\n let hours = parseInt(match[1], 10);\n const minutes = parseInt(match[2], 10);\n const period = match[3]?.toUpperCase();\n if (minutes > MAX_MINUTE) return 0;\n if (period === \"PM\" && hours !== 12) {\n hours += 12;\n } else if (period === \"AM\" && hours === 12) {\n hours = 0;\n }\n if (hours > MAX_HOUR) return 0;\n return hours * 60 + minutes;\n};\nfunction convertTimeFormat(time, targetFormat) {\n if (!time) return time;\n const minutes = timeToMinutes(time);\n if (minutes === 0 && time !== \"00:00\" && time !== \"12:00 AM\") {\n return time;\n }\n const hours = Math.floor(minutes / 60);\n const mins = minutes % 60;\n return formatTimeString(hours, mins, targetFormat);\n}\nfunction normalizePartialInput(value) {\n const cleanValue = value.replace(/[–_:]/g, \"\").replace(/\\s+/g, \"\");\n if (/^\\d{1,2}$/.test(cleanValue)) {\n const result = `${cleanValue}:00`;\n return result;\n } else if (/^\\d{1,2}:\\d{1}$/.test(cleanValue)) {\n const result = `${cleanValue}0`;\n return result;\n } else if (/^\\d{4}$/.test(cleanValue)) {\n const result = `${cleanValue.slice(0, 2)}:${cleanValue.slice(2)}`;\n return result;\n } else if (/^\\d{4}(AM|PM)$/i.test(cleanValue)) {\n const digits = cleanValue.slice(0, 4);\n const ampm = cleanValue.slice(4);\n const result = `${digits.slice(0, 2)}:${digits.slice(2)} ${ampm}`;\n return result;\n }\n return value;\n}\nfunction parse12HourFormat(normalizedValue, min, max) {\n const match = normalizedValue.match(/^(\\d{1,2}):(\\d{1,2})(?:\\s*(AM|PM))?$/i);\n if (!match) return null;\n let hours = parseInt(match[1], 10);\n let minutes = parseInt(match[2], 10);\n const ampm = match[3]?.toUpperCase();\n if (minutes < 10 && normalizedValue.match(/^(\\d{1,2}):(\\d{1})$/)) {\n minutes *= 10;\n }\n if (ampm === \"PM\") {\n if (hours !== 12) {\n hours += 12;\n }\n } else if (ampm === \"AM\") {\n if (hours === 12) {\n hours = 0;\n }\n } else {\n if (hours === 12) {\n hours = 12;\n } else {\n if (min || max) {\n const amHours = hours;\n const pmHours = hours + 12;\n const { minMinutes, maxMinutes } = getConstraintMinutes(min, max);\n const amMinutes = amHours * 60 + minutes;\n const pmMinutes = pmHours * 60 + minutes;\n const amValid = isWithinConstraints(amMinutes, minMinutes, maxMinutes);\n const pmValid = isWithinConstraints(pmMinutes, minMinutes, maxMinutes);\n if (amValid && pmValid) ; else if (pmValid) {\n hours = pmHours;\n } else ;\n }\n }\n }\n return { hours, minutes };\n}\nfunction parse24HourFormat(normalizedValue) {\n const match = normalizedValue.match(/^(\\d{1,2}):(\\d{1,2})$/);\n if (!match) {\n return null;\n }\n const hours = parseInt(match[1], 10);\n let minutes = parseInt(match[2], 10);\n if (minutes < 10 && normalizedValue.match(/^(\\d{1,2}):(\\d{1})$/)) {\n minutes *= 10;\n }\n const result = { hours, minutes };\n return result;\n}\nfunction validate12HourConstraints(timeString, value, min, max) {\n if (!min && !max) return true;\n const originalHasAMPM = value.toUpperCase().includes(\"AM\") || value.toUpperCase().includes(\"PM\");\n if (!originalHasAMPM) {\n const timePart = timeString.replace(/\\s*(AM|PM)$/i, \"\");\n const amTime = `${timePart} AM`;\n const pmTime = `${timePart} PM`;\n const amMinutes = timeToMinutes(convertTimeFormat(amTime, 24));\n const pmMinutes = timeToMinutes(convertTimeFormat(pmTime, 24));\n const { minMinutes, maxMinutes } = getConstraintMinutes(min, max);\n return isWithinConstraints(amMinutes, minMinutes, maxMinutes) || isWithinConstraints(pmMinutes, minMinutes, maxMinutes);\n } else {\n const timeMinutes = timeToMinutes(convertTimeFormat(timeString, 24));\n const { minMinutes, maxMinutes } = getConstraintMinutes(min, max);\n return isWithinConstraints(timeMinutes, minMinutes, maxMinutes);\n }\n}\nfunction validate24HourConstraints(timeString, min, max) {\n if (!min && !max) return true;\n const timeMinutes = timeToMinutes(timeString);\n const { minMinutes, maxMinutes } = getConstraintMinutes(min, max);\n if (isWithinConstraints(timeMinutes, minMinutes, maxMinutes)) {\n return true;\n }\n const hours = Math.floor(timeMinutes / 60);\n const minutes = timeMinutes % 60;\n if (minutes === 0) {\n for (let h = minMinutes; h <= maxMinutes; h += 60) {\n const potentialHour = Math.floor(h / 60);\n if (potentialHour.toString().startsWith(hours.toString())) {\n return true;\n }\n }\n }\n if (hours >= Math.floor(minMinutes / 60) && hours <= Math.floor(maxMinutes / 60)) {\n const hourMinutes = hours * 60;\n const hourMinMinutes = Math.max(minMinutes, hourMinutes);\n const hourMaxMinutes = Math.min(maxMinutes, hourMinutes + 59);\n for (let m = hourMinMinutes; m <= hourMaxMinutes; m++) {\n const potentialMinutes = m % 60;\n if (potentialMinutes.toString().startsWith(minutes.toString())) {\n return true;\n }\n }\n }\n return false;\n}\nfunction parseInputValue(value, format, removePlaceholder, min, max) {\n const valueMinusPlaceholder = removePlaceholder(value);\n if (valueMinusPlaceholder === \"\") {\n return {\n time: null,\n isInputValid: false,\n isInputEmpty: true\n };\n }\n const normalizedValue = normalizePartialInput(valueMinusPlaceholder);\n const parsed = format === 12 ? parse12HourFormat(normalizedValue, min, max) : parse24HourFormat(normalizedValue);\n if (!parsed) {\n return {\n time: null,\n isInputValid: false,\n isInputEmpty: false\n };\n }\n const { hours, minutes } = parsed;\n if (hours < 0 || hours > MAX_HOUR || minutes < 0 || minutes > MAX_MINUTE) {\n return {\n time: null,\n isInputValid: false,\n isInputEmpty: false\n };\n }\n const timeString = formatTimeString(hours, minutes, format);\n const isValid = format === 12 ? validate12HourConstraints(timeString, value, min, max) : validate24HourConstraints(timeString, min, max);\n if (!isValid) {\n return {\n time: null,\n isInputValid: false,\n isInputEmpty: false\n };\n }\n return {\n time: timeString,\n isInputValid: true,\n isInputEmpty: false\n };\n}\n\nfunction isTimeOnStep(time, step) {\n if (!step || step <= 0) return true;\n const totalMinutes = timeToMinutes(time);\n return totalMinutes % step === 0;\n}\nfunction isValidTime(time) {\n if (!time) return false;\n return timeToMinutes(time) > 0 || time === \"00:00\";\n}\nfunction isPartialInputPotentiallyValid(inputValue, format, min, max) {\n if (!min || !max) return false;\n const digits = inputValue.replace(/[^\\d]/g, \"\");\n if (digits.length === 1) {\n const digit = parseInt(digits, 10);\n const minMinutes = timeToMinutes(min);\n const maxMinutes = timeToMinutes(max);\n for (let h = 0; h <= 23; h++) {\n const hourStr = h.toString().padStart(2, \"0\");\n const hourStrNoPad = h.toString();\n const startsWithDigit = hourStr.startsWith(digit.toString()) || hourStrNoPad.startsWith(digit.toString());\n if (!startsWithDigit) continue;\n if (format === 24) {\n const hourMinutes = h * 60;\n if (hourMinutes >= minMinutes && hourMinutes <= maxMinutes) {\n return true;\n }\n } else {\n if (h === 0) {\n if (digit === 1) {\n const midnightMinutes = 0;\n if (midnightMinutes >= minMinutes && midnightMinutes <= maxMinutes) {\n return true;\n }\n }\n } else if (h >= 1 && h <= 12) {\n const amHour24 = h === 12 ? 0 : h;\n const amMinutes = amHour24 * 60;\n if (amMinutes >= minMinutes && amMinutes <= maxMinutes) {\n return true;\n }\n const pmHour24 = h === 12 ? 12 : h + 12;\n const pmMinutes = pmHour24 * 60;\n if (pmMinutes >= minMinutes && pmMinutes <= maxMinutes) {\n return true;\n }\n }\n }\n }\n }\n return false;\n}\n\nconst styles = {\n\t\"time-field\": \"_time-field_11xzw_2\"\n};\n\nconst MaskedTimeInput = forwardRef(\n ({\n lastValidTime,\n format,\n placeholder,\n min,\n max,\n onInputChange,\n onKeyDown,\n onFocus,\n className,\n ...props\n }, ref) => {\n const [inputValue, setInputValue] = useState(placeholder);\n const { options, removePlaceholder } = timePlaceholderMask({\n format,\n placeholder\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousTimeRef = useRef(null);\n const isUserTypingRef = useRef(false);\n const inputValueRef = useRef(placeholder);\n const previousPlaceholderRef = useRef(placeholder);\n const currentParsedData = useMemo(() => {\n return parseInputValue(inputValue, format, removePlaceholder, min, max);\n }, [inputValue, format, removePlaceholder, min, max]);\n useEffect(() => {\n inputValueRef.current = inputValue;\n }, [inputValue]);\n useEffect(() => {\n previousPlaceholderRef.current = placeholder;\n }, [placeholder]);\n useEffect(() => {\n if (lastValidTime === void 0) return;\n if (lastValidTime === previousTimeRef.current) return;\n if (isUserTypingRef.current) return;\n const newInputValue = lastValidTime ? convertTimeFormat(lastValidTime, format) : placeholder;\n setInputValue(newInputValue);\n inputValueRef.current = newInputValue;\n previousTimeRef.current = lastValidTime;\n }, [lastValidTime, format, placeholder]);\n useEffect(() => {\n if (placeholder === previousPlaceholderRef.current) return;\n if (lastValidTime && inputValue === lastValidTime) return;\n const isOldPlaceholder = inputValue === TIME_FORMAT_PLACEHOLDERS[12] || inputValue === TIME_FORMAT_PLACEHOLDERS[24];\n if (isOldPlaceholder) {\n setInputValue(placeholder);\n }\n previousPlaceholderRef.current = placeholder;\n }, [placeholder, lastValidTime, inputValue]);\n const handleChange = useCallback(\n (event) => {\n isUserTypingRef.current = true;\n const { time, isInputValid, isInputEmpty } = parseInputValue(\n event.target.value,\n format,\n removePlaceholder,\n min,\n max\n );\n const isPotentiallyValidPartial = !isInputValid && !isInputEmpty && event.target.value.length >= placeholder.length && // User is typing, not deleting\n isPartialInputPotentiallyValid(event.target.value, format, min, max);\n if (isInputValid || isInputEmpty || isPotentiallyValidPartial) {\n setInputValue(event.target.value);\n } else {\n setInputValue(placeholder);\n }\n onInputChange?.({\n event,\n time,\n isInputValid,\n isInputEmpty\n });\n setTimeout(() => {\n isUserTypingRef.current = false;\n }, TIME_CONSTANTS.INPUT_DEBOUNCE_TIMEOUT);\n },\n [format, removePlaceholder, onInputChange, min, max, placeholder]\n );\n const resetTypingFlag = useCallback(() => {\n isUserTypingRef.current = false;\n }, []);\n useImperativeHandle(\n ref,\n () => ({\n ...inputRef.current,\n focus: () => inputRef.current?.focus(),\n resetTypingFlag\n })\n );\n const classNames = useMemo(() => {\n return cx(styles[\"time-field\"], className);\n }, [className]);\n return /* @__PURE__ */ jsx(\n TextField,\n {\n ref: combinedRef,\n \"data-input-valid\": currentParsedData.isInputValid,\n \"data-input-empty\": currentParsedData.isInputEmpty,\n \"data-time\": currentParsedData.time ?? \"\",\n value: inputValue,\n onChange: handleChange,\n prefix: /* @__PURE__ */ jsx(Icon, { svg: CLOCK_ICON }),\n autoComplete: \"off\",\n onKeyDown,\n onFocus,\n className: classNames,\n ...props\n }\n );\n }\n);\nMaskedTimeInput.displayName = \"MaskedTimeInput\";\n\nfunction generateTimeOptions({\n step = 30,\n min,\n max,\n format\n}) {\n const options = [];\n const minMinutes = min ? timeToMinutes(min) : 0;\n const maxMinutes = max ? timeToMinutes(max) : TIME_CONSTANTS.MINUTES_IN_DAY - 1;\n for (let minutes = 0; minutes < TIME_CONSTANTS.MINUTES_IN_DAY; minutes += step) {\n if (minutes < minMinutes || minutes > maxMinutes) {\n continue;\n }\n const hours = Math.floor(minutes / 60);\n const mins = minutes % 60;\n options.push(formatTimeString(hours, mins, format));\n }\n return options;\n}\nfunction normalizeTimeString(str) {\n return str.replace(/[–_:]/g, \"\").replace(/\\s+/g, \"\").toLowerCase();\n}\nfunction filterTimeOptions(options, userInput) {\n if (!userInput || userInput === TIME_FORMAT_PLACEHOLDERS[12] || userInput === TIME_FORMAT_PLACEHOLDERS[24]) {\n return options;\n }\n const normalizedInput = normalizeTimeString(userInput);\n const filtered = options.filter((option) => {\n const normalizedOption = normalizeTimeString(option);\n return normalizedOption.startsWith(normalizedInput);\n });\n return filtered;\n}\n\nfunction getNextFutureStep(time, step, format) {\n if (!step || step <= 0) return time;\n const totalMinutes = timeToMinutes(time);\n const nextStep = Math.ceil(totalMinutes / step) * step;\n const hours = Math.floor(nextStep / 60);\n const minutes = nextStep % 60;\n return formatTimeString(hours, minutes, format);\n}\nfunction handleAutoRounding(time, options) {\n const { autoround, step, format } = options;\n if (!autoround || !time) return time;\n const stepValue = step ?? 30;\n if (isTimeOnStep(time, stepValue)) {\n return time;\n }\n return getNextFutureStep(time, stepValue, format);\n}\nfunction generateAmPmVariants(currentTime, step, inputValue) {\n const hasAM = inputValue.toUpperCase().includes(\"AM\");\n const hasPM = inputValue.toUpperCase().includes(\"PM\");\n const getNextStepForTime = (time) => {\n const currentMinutes = timeToMinutes(time);\n const nextStepMinutes = Math.ceil(currentMinutes / step) * step;\n const finalMinutes = nextStepMinutes === currentMinutes ? nextStepMinutes + step : nextStepMinutes;\n const hours = Math.floor(finalMinutes / 60);\n const minutes = finalMinutes % 60;\n return formatTimeString(hours, minutes, 12);\n };\n const nextStep = getNextFutureStep(currentTime, step, 12);\n if (hasAM || hasPM) {\n return [nextStep];\n } else {\n const currentMinutes = timeToMinutes(currentTime);\n const pmMinutes = currentMinutes + 12 * 60;\n const pmHours = Math.floor(pmMinutes / 60);\n const pmMins = pmMinutes % 60;\n const pmVersion = getNextStepForTime(formatTimeString(pmHours, pmMins, 24));\n return [nextStep, pmVersion];\n }\n}\nfunction generatePmInterpretation(currentTime, step, inputValue) {\n if (inputValue.toUpperCase().includes(\"AM\") || inputValue.toUpperCase().includes(\"PM\")) {\n return [];\n }\n const currentMinutes = timeToMinutes(currentTime);\n const pmMinutes = currentMinutes + 12 * 60;\n const pmHours = Math.floor(pmMinutes / 60);\n const pmMins = pmMinutes % 60;\n const pmTime = formatTimeString(pmHours, pmMins, 12);\n if (isValidTime(pmTime)) {\n const pmNextStep = getNextFutureStep(pmTime, step, 12);\n return [pmNextStep];\n }\n return [];\n}\nfunction getAutoRoundingOptions(currentTime, step, format, inputValue, min) {\n if (!currentTime) {\n return [];\n }\n if (!isValidTime(currentTime)) {\n if (format === 12) {\n return generatePmInterpretation(currentTime, step, inputValue);\n }\n return [];\n }\n const nextStep = getNextFutureStep(currentTime, step, format);\n if (format === 12 && !min) {\n return generateAmPmVariants(currentTime, step, inputValue);\n }\n return [nextStep];\n}\n\nconst TimeFieldElement = forwardRef(\n function TimeField2({\n value: valueProp,\n defaultValue,\n min,\n max,\n onChange,\n format = 12,\n step = 30,\n required,\n description,\n error: errorProp,\n disableSuggestions = false,\n autoround = false,\n className,\n ...rest\n }, ref) {\n const [lastValidTime, setLastValidTime] = useOptionallyControlledState({\n controlledValue: valueProp,\n defaultValue: defaultValue ?? null\n });\n const [isDropdownOpen, setIsDropdownOpenRaw] = useState(false);\n const setIsDropdownOpen = (open) => {\n setIsDropdownOpenRaw(open);\n };\n const [selectedOptionIndex, setSelectedOptionIndex] = useState(0);\n const [inputValueForFiltering, setInputValueForFiltering] = useState(\"\");\n const [currentParsedTime, setCurrentParsedTime] = useState(\n null\n );\n const [inputParsedData, setInputParsedData] = useState({ time: null, isInputValid: false, isInputEmpty: true });\n const lastOnChangeCallRef = useRef(null);\n const isDropdownClickingRef = useRef(false);\n const [justSelected, setJustSelected] = useState(false);\n const tabJustPressedRef = useRef(false);\n const inputRef = useRef(null);\n const popoverContentRef = useRef(null);\n const combinedRef = useMergeRefs([inputRef, ref]);\n const popoverSupported = usePopoverSupport();\n const placeholder = TIME_FORMAT_PLACEHOLDERS[format];\n const shouldShowOptionsFromHook = usePopoverCloseDelayWorkaround(isDropdownOpen);\n const shouldShowOptions = tabJustPressedRef.current ? false : shouldShowOptionsFromHook;\n const dropdownTimeoutRef = useRef(null);\n useEffect(() => {\n const dropdownRef = dropdownTimeoutRef.current;\n return () => {\n if (dropdownRef) {\n clearTimeout(dropdownRef);\n }\n };\n }, []);\n const allTimeOptions = useMemo(\n () => generateTimeOptions({ step, min, max, format }),\n [step, min, max, format]\n );\n const baseFilteredOptions = useMemo(() => {\n if (!inputValueForFiltering || inputValueForFiltering.match(/^[–_:]+$/)) {\n return allTimeOptions;\n }\n return filterTimeOptions(allTimeOptions, inputValueForFiltering);\n }, [allTimeOptions, inputValueForFiltering]);\n const autoRoundingOptions = useMemo(() => {\n if (!autoround || baseFilteredOptions.length > 0 || !inputValueForFiltering || inputValueForFiltering.match(/^[–_:]+$/)) {\n return [];\n }\n const currentTime = currentParsedTime || inputParsedData.time;\n const autoRoundedOptions = getAutoRoundingOptions(\n currentTime,\n step ?? 30,\n format,\n inputValueForFiltering,\n min\n );\n return autoRoundedOptions.filter(\n (option) => !baseFilteredOptions.includes(option)\n );\n }, [\n autoround,\n baseFilteredOptions,\n inputValueForFiltering,\n currentParsedTime,\n inputParsedData.time,\n format,\n min,\n step\n ]);\n const filteredOptions = useMemo(() => {\n if (baseFilteredOptions.length === 0 && autoRoundingOptions.length === 0) {\n if (!inputParsedData.isInputValid && inputValueForFiltering && !inputValueForFiltering.match(/^[–_:]+$/)) {\n return allTimeOptions;\n }\n }\n return [...baseFilteredOptions, ...autoRoundingOptions];\n }, [\n baseFilteredOptions,\n autoRoundingOptions,\n allTimeOptions,\n inputValueForFiltering,\n inputParsedData.isInputValid\n ]);\n const handleBlur = useCallback(\n (event) => {\n if (event.relatedTarget && popoverContentRef.current?.contains(event.relatedTarget) && isDropdownClickingRef.current) {\n isDropdownClickingRef.current = false;\n return;\n }\n setIsDropdownOpen(false);\n setSelectedOptionIndex(0);\n const input = event.target;\n const parsedInputTime = input.dataset.time || null;\n const isInputValid = input.dataset.inputValid === \"true\";\n const isInputEmpty = input.dataset.inputEmpty === \"true\";\n let finalTime = parsedInputTime;\n if (autoround && finalTime && isInputValid) {\n finalTime = handleAutoRounding(finalTime, {\n autoround,\n step,\n format\n });\n }\n if (finalTime) {\n inputRef.current?.resetTypingFlag?.();\n setLastValidTime(finalTime);\n }\n const currentChange = {\n time: finalTime,\n isInputValid,\n isInputEmpty\n };\n const lastChange = lastOnChangeCallRef.current;\n const isDuplicate = lastChange && lastChange.time === currentChange.time && lastChange.isInputValid === currentChange.isInputValid && lastChange.isInputEmpty === currentChange.isInputEmpty;\n if (!isDuplicate) {\n onChange?.(currentChange);\n lastOnChangeCallRef.current = currentChange;\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [format, step, autoround, onChange]\n );\n const handleFocus = useCallback(() => {\n if (!disableSuggestions && !justSelected) {\n setIsDropdownOpen(true);\n setSelectedOptionIndex(0);\n }\n }, [disableSuggestions, justSelected]);\n useEffect(() => {\n if (filteredOptions.length <= 1 && isDropdownOpen) {\n setIsDropdownOpen(false);\n }\n if (!disableSuggestions && filteredOptions.length > 1 && document.activeElement && document.activeElement.tagName === \"INPUT\" && !isDropdownOpen && !justSelected && !tabJustPressedRef.current) {\n setIsDropdownOpen(true);\n setSelectedOptionIndex(0);\n }\n }, [filteredOptions, disableSuggestions, isDropdownOpen, justSelected]);\n const handleInputChange = (change) => {\n setInputValueForFiltering(change.event.target.value);\n setCurrentParsedTime(change.time);\n setInputParsedData({\n time: change.time,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty\n });\n setSelectedOptionIndex(0);\n setJustSelected(false);\n };\n const scrollToSelectedOption = useCallback(() => {\n if (!popoverContentRef.current || selectedOptionIndex < 0) return;\n const optionElements = popoverContentRef.current.querySelectorAll('[role=\"option\"]');\n const targetElement = optionElements[selectedOptionIndex];\n if (targetElement) {\n targetElement.scrollIntoView({\n block: \"center\",\n behavior: \"auto\"\n });\n }\n }, [selectedOptionIndex]);\n useEffect(() => {\n if (isDropdownOpen && selectedOptionIndex >= 0) {\n scrollToSelectedOption();\n }\n }, [selectedOptionIndex, isDropdownOpen, scrollToSelectedOption]);\n const handleOptionSelect = useCallback(\n (selectedTime) => {\n if (inputRef.current?.resetTypingFlag) {\n inputRef.current.resetTypingFlag();\n }\n setIsDropdownOpen(false);\n setSelectedOptionIndex(0);\n setJustSelected(true);\n setLastValidTime(selectedTime);\n setCurrentParsedTime(selectedTime);\n const changeData = {\n time: selectedTime,\n isInputValid: true,\n isInputEmpty: false\n };\n onChange?.(changeData);\n lastOnChangeCallRef.current = changeData;\n requestAnimationFrame(() => {\n inputRef.current?.focus();\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange]\n );\n const handleKeyDown = useCallback(\n (event) => {\n if (!isDropdownOpen) {\n return;\n }\n switch (event.key) {\n case \"ArrowDown\":\n event.preventDefault();\n setSelectedOptionIndex(\n (prev) => prev < filteredOptions.length - 1 ? prev + 1 : 0\n );\n break;\n case \"ArrowUp\":\n event.preventDefault();\n setSelectedOptionIndex(\n (prev) => prev > 0 ? prev - 1 : filteredOptions.length - 1\n );\n break;\n case \"Enter\":\n event.preventDefault();\n if (filteredOptions[selectedOptionIndex]) {\n handleOptionSelect(filteredOptions[selectedOptionIndex]);\n }\n break;\n case \"Tab\":\n tabJustPressedRef.current = true;\n setIsDropdownOpen(false);\n setSelectedOptionIndex(0);\n setTimeout(() => {\n tabJustPressedRef.current = false;\n }, 50);\n break;\n }\n },\n [\n isDropdownOpen,\n selectedOptionIndex,\n filteredOptions,\n handleOptionSelect\n ]\n );\n const popoverDisabled = disableSuggestions || !popoverSupported;\n const justTheInput = /* @__PURE__ */ jsx(\n MaskedTimeInput,\n {\n ref: combinedRef,\n lastValidTime,\n format,\n placeholder,\n min,\n max,\n onInputChange: handleInputChange,\n onKeyDown: handleKeyDown,\n onBlur: handleBlur,\n onFocus: handleFocus,\n description,\n error: errorProp,\n className: popoverDisabled ? className : void 0,\n ...rest,\n \"data-anv\": \"time-field\"\n }\n );\n if (popoverDisabled) {\n return justTheInput;\n }\n return /* @__PURE__ */ jsxs(\n Popover,\n {\n open: isDropdownOpen,\n noPadding: true,\n disableCaret: true,\n placement: \"bottom-start\",\n matchReferenceWidth: true,\n modal: false,\n onClickOutside: () => {\n setIsDropdownOpen(false);\n },\n onClose: () => {\n setIsDropdownOpen(false);\n },\n fitScreen: true,\n children: [\n /* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: popoverRef }) => /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: popoverRef,\n className,\n children: justTheInput\n }\n ) }),\n /* @__PURE__ */ jsx(\n Popover.Content,\n {\n ref: popoverContentRef,\n \"data-open\": isDropdownOpen,\n \"data-disabled\": disableSuggestions,\n onMouseDown: () => {\n isDropdownClickingRef.current = true;\n },\n onTouchStart: () => {\n isDropdownClickingRef.current = true;\n },\n children: shouldShowOptions && /* @__PURE__ */ jsx(\n Listbox,\n {\n selected: filteredOptions[selectedOptionIndex],\n onSelectionChange: (selected) => {\n if (selected) {\n handleOptionSelect(selected);\n } else {\n const currentOption = filteredOptions[selectedOptionIndex];\n if (currentOption) {\n handleOptionSelect(currentOption);\n }\n }\n },\n \"aria-label\": \"Time suggestions\",\n children: filteredOptions.map((option) => /* @__PURE__ */ jsx(Listbox.Option, { value: option, label: option, children: option }, option))\n }\n )\n }\n )\n ]\n }\n );\n }\n);\nconst TimeField = Object.assign(TimeFieldElement, {});\nTimeField.displayName = \"TimeField\";\n\nexport { TimeField as T };\n//# sourceMappingURL=TimeField-Dkq6ipvF.js.map\n","import {\n TimeFieldProps as CoreTimeFieldProps,\n TimeField as CoreTimeField,\n childrenToString,\n TimeFieldChange,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the TimeField component\n * @property {string | null} [value] - The current value of the time field\n * @property {string | null} [defaultValue] - The default value for uncontrolled mode\n * @property {TimeFieldChangeHandler} [onChange] - Callback when the time value changes\n * @property {TimeFormat} [format] - Time format to use\n * @property {number} [step] - Time increment in minutes\n * @property {string | null} [min] - Minimum allowed time\n * @property {string | null} [max] - Maximum allowed time\n * @property {boolean} [autoround] - Whether to automatically round to the nearest step\n * @property {boolean} [disableSuggestions] - Whether to disable the dropdown suggestions\n * @extends DataTrackingId\n */\nexport type TimeFieldProps = CoreTimeFieldProps & DataTrackingId;\n\n/**\n * Change event data for TimeField onChange callback.\n */\nexport type { TimeFieldChange };\n\n/**\n * TimeField component for entering time values with auto-rounding and suggestions.\n *\n * Features:\n * - Supports 12-hour and 24-hour time formats\n * - Min/max time constraints handled during input parsing\n * - Auto-rounding to step intervals when autoround is true\n * - Dropdown suggestions for quick time selection\n * - Controlled and uncontrolled modes\n * - Smart input masking with placeholders\n * - Integration with MaskedTimeInput for auto-complete\n * - Validation handled by implementors using onChange callback\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <TimeField\n * label=\"Meeting Time\"\n * value=\"14:30\"\n * format={24}\n * step={30}\n * min=\"09:00\"\n * max=\"17:00\"\n * autoround\n * disableSuggestions\n * onChange={(change) => {\n * // Handle time change and validation\n * if (change.isInputEmpty && required) {\n * // Show required error\n * }\n * }}\n * />\n */\nexport const TimeField = forwardRef(\n (props: TimeFieldProps, ref: Ref<HTMLInputElement>) => {\n const data = {\n label: childrenToString(props.label),\n labelProps: props.labelProps,\n prefix: childrenToString(props.prefix),\n hint: childrenToString(props.hint),\n description: childrenToString(props.description),\n size: props.size,\n format: props.format,\n step: props.step,\n min: props.min,\n max: props.max,\n autoround: props.autoround,\n disableSuggestions: props.disableSuggestions,\n };\n\n const trackingId = useTrackingId({\n name: \"TimeField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n return <CoreTimeField ref={ref} data-tracking-id={trackingId} {...props} />;\n },\n);\n\nTimeField.displayName = CoreTimeField.displayName;\n"],"names":["IconAccessTime","TimeField","CoreTimeField"],"mappings":"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"}
package/dist/TimeField.js CHANGED
@@ -1,2 +1,2 @@
1
- export { T as TimeField } from './TimeField-DRHLRqN3.js';
1
+ export { T as TimeField } from './TimeField-tA9uo4lK.js';
2
2
  //# sourceMappingURL=TimeField.js.map
@@ -0,0 +1,57 @@
1
+ import { LinkButtonProps as CoreLinkButtonProps } from '@servicetitan/hammer-react';
2
+ import { DataTrackingId } from '../../types/DataTrackingId';
3
+ /**
4
+ * Props for the Link component.
5
+ * @extends CoreLinkButtonProps
6
+ * @extends DataTrackingId
7
+ */
8
+ export type LinkButtonProps = CoreLinkButtonProps & DataTrackingId & ({
9
+ /**
10
+ * The visual appearance of the LinkButton.
11
+ * @default "primary"
12
+ */
13
+ appearance?: "primary";
14
+ /**
15
+ * Whether the LinkButton should have a quieter, less prominent appearance.
16
+ * @remarks Only available when appearance is "primary".
17
+ */
18
+ quiet?: boolean;
19
+ } | {
20
+ /**
21
+ * The visual appearance of the LinkButton. Secondary appearance cannot be quiet.
22
+ */
23
+ appearance: "secondary";
24
+ /**
25
+ * Whether the LinkButton should have a quieter, less prominent appearance.
26
+ * @remarks Must be false when appearance is "secondary".
27
+ */
28
+ quiet?: false;
29
+ });
30
+ export declare const LinkButton: import('react').ForwardRefExoticComponent<((Omit<Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "type" | "disabled"> & import('@servicetitan/hammer-react').LayoutUtilProps & {
31
+ appearance?: "primary";
32
+ quiet?: boolean;
33
+ } & DataTrackingId & {
34
+ /**
35
+ * The visual appearance of the LinkButton.
36
+ * @default "primary"
37
+ */
38
+ appearance?: "primary";
39
+ /**
40
+ * Whether the LinkButton should have a quieter, less prominent appearance.
41
+ * @remarks Only available when appearance is "primary".
42
+ */
43
+ quiet?: boolean;
44
+ }) | (Omit<Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "type" | "disabled"> & import('@servicetitan/hammer-react').LayoutUtilProps & {
45
+ appearance: "secondary";
46
+ quiet?: false;
47
+ } & DataTrackingId & {
48
+ /**
49
+ * The visual appearance of the LinkButton. Secondary appearance cannot be quiet.
50
+ */
51
+ appearance: "secondary";
52
+ /**
53
+ * Whether the LinkButton should have a quieter, less prominent appearance.
54
+ * @remarks Must be false when appearance is "secondary".
55
+ */
56
+ quiet?: false;
57
+ })) & import('react').RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,2 @@
1
+ export * from './LinkButton';
2
+ export { LinkButton as default } from './LinkButton';
@@ -0,0 +1,11 @@
1
+ import { NumberFieldProps as CoreNumberFieldProps } from '@servicetitan/hammer-react';
2
+ import { DistributiveOmit } from '../../types';
3
+ import { DataTrackingId } from '../../types/DataTrackingId';
4
+ export type NumberFieldProps = DistributiveOmit<CoreNumberFieldProps, "prefix" | "suffix"> & DataTrackingId & {
5
+ prefix?: string;
6
+ suffix?: string;
7
+ };
8
+ export declare const NumberField: import('react').ForwardRefExoticComponent<Omit<CoreNumberFieldProps, "prefix" | "suffix"> & DataTrackingId & {
9
+ prefix?: string;
10
+ suffix?: string;
11
+ } & import('react').RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,2 @@
1
+ export * from './NumberField';
2
+ export { NumberField as default } from './NumberField';
@@ -35,6 +35,7 @@ export * from './Link';
35
35
  export * from './Listbox';
36
36
  export * from './ListView';
37
37
  export * from './Menu';
38
+ export * from './NumberField';
38
39
  export * from './Overflow';
39
40
  export * from './Page';
40
41
  export * from './Pagination';