@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.
- package/CHANGELOG.md +25 -0
- package/dist/{Breadcrumbs-B5bqrZ5D-BqK-Qfh9.js → Breadcrumbs-BMbkH9hL-BUjQksuj.js} +3 -3
- package/dist/{Breadcrumbs-B5bqrZ5D-BqK-Qfh9.js.map → Breadcrumbs-BMbkH9hL-BUjQksuj.js.map} +1 -1
- package/dist/{Breadcrumbs-De8uoLi8.js → Breadcrumbs-fthw3qaL.js} +2 -2
- package/dist/{Breadcrumbs-De8uoLi8.js.map → Breadcrumbs-fthw3qaL.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Calendar-DD5kmVd3-CBGTR11R.js → Calendar-BvftKznl-D4_xp9Rv.js} +3 -3
- package/dist/{Calendar-DD5kmVd3-CBGTR11R.js.map → Calendar-BvftKznl-D4_xp9Rv.js.map} +1 -1
- package/dist/{Calendar-Bgpz99F2.js → Calendar-DdOR9T_K.js} +2 -2
- package/dist/{Calendar-Bgpz99F2.js.map → Calendar-DdOR9T_K.js.map} +1 -1
- package/dist/Calendar.js +1 -1
- package/dist/{DateField-_TqCdcYv.js → DateField-Bqsnpt8S.js} +4 -4
- package/dist/{DateField-_TqCdcYv.js.map → DateField-Bqsnpt8S.js.map} +1 -1
- package/dist/DateField.js +1 -1
- package/dist/{DateFieldRange-Dk8WA52F.js → DateFieldRange-Cax7Kl9A.js} +2 -2
- package/dist/{DateFieldRange-Dk8WA52F.js.map → DateFieldRange-Cax7Kl9A.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-D3xD8YZk.js → DateFieldSingle-bMX770gU.js} +2 -2
- package/dist/{DateFieldSingle-D3xD8YZk.js.map → DateFieldSingle-bMX770gU.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-BxkCSNk5.js → DateFieldYearless-ClNYTBK_.js} +2 -2
- package/dist/{DateFieldYearless-BxkCSNk5.js.map → DateFieldYearless-ClNYTBK_.js.map} +1 -1
- package/dist/{DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js → DateFieldYearless-pejtv7-x-DBHpW83U.js} +7 -65
- package/dist/DateFieldYearless-pejtv7-x-DBHpW83U.js.map +1 -0
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{InputMask-wUro4G2j.js → InputMask-BOUlnmiF.js} +2 -2
- package/dist/{InputMask-wUro4G2j.js.map → InputMask-BOUlnmiF.js.map} +1 -1
- package/dist/{InputMask-CE3pdXwL-B8XVrj36.js → InputMask-BuO8lNAB-DdxdO5Jw.js} +3 -3
- package/dist/{InputMask-CE3pdXwL-B8XVrj36.js.map → InputMask-BuO8lNAB-DdxdO5Jw.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{Link-DZa0wmkA.js → Link-C4N_cV3i.js} +2 -2
- package/dist/{Link-DZa0wmkA.js.map → Link-C4N_cV3i.js.map} +1 -1
- package/dist/{Link-Dqp_XXl_-Bv20l_tY.js → Link-MiffPrW9-Cx1zYWSF.js} +3 -3
- package/dist/{Link-Dqp_XXl_-Bv20l_tY.js.map → Link-MiffPrW9-Cx1zYWSF.js.map} +1 -1
- package/dist/Link.js +1 -1
- package/dist/LinkButton.css +5 -0
- package/dist/LinkButton.d.ts +6 -0
- package/dist/LinkButton.js +76 -0
- package/dist/LinkButton.js.map +1 -0
- package/dist/{ListView-DdHpJHTc.js → ListView-DVPhWDCM.js} +24 -5
- package/dist/ListView-DVPhWDCM.js.map +1 -0
- package/dist/ListView.js +1 -1
- package/dist/NumberField-C9lMsPMD.js +1582 -0
- package/dist/NumberField-C9lMsPMD.js.map +1 -0
- package/dist/NumberField.css +49 -0
- package/dist/NumberField.d.ts +6 -0
- package/dist/NumberField.js +2 -0
- package/dist/NumberField.js.map +1 -0
- package/dist/{Page-CxB5N9dR.js → Page-CGAylFKz.js} +2 -2
- package/dist/{Page-CxB5N9dR.js.map → Page-CGAylFKz.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{SegmentedControl-DKMQuf7s.js → SegmentedControl-DY1PSYmd.js} +2 -2
- package/dist/{SegmentedControl-DKMQuf7s.js.map → SegmentedControl-DY1PSYmd.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-DUNwYa5y-BSi21Aba.js → SelectCard-LSAl_7Lh-BYtfe9PC.js} +3 -3
- package/dist/{SelectCard-DUNwYa5y-BSi21Aba.js.map → SelectCard-LSAl_7Lh-BYtfe9PC.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/{SelectCardGroup-YGYiBv5M.js → SelectCardGroup-u_QKdeRZ.js} +2 -2
- package/dist/{SelectCardGroup-YGYiBv5M.js.map → SelectCardGroup-u_QKdeRZ.js.map} +1 -1
- package/dist/{TextField-gYAqTpcX.js → TextField-B364hxo8.js} +2 -2
- package/dist/{TextField-gYAqTpcX.js.map → TextField-B364hxo8.js.map} +1 -1
- package/dist/{TextField-CRTh0gL_-D2CjcYXX.js → TextField-DoPP1CQ--UWAOTYiv.js} +2 -2
- package/dist/{TextField-CRTh0gL_-D2CjcYXX.js.map → TextField-DoPP1CQ--UWAOTYiv.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-DohNOiIp.js → Textarea-D2AAZ1L3.js} +2 -2
- package/dist/{Textarea-DohNOiIp.js.map → Textarea-D2AAZ1L3.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-DRHLRqN3.js → TimeField-tA9uo4lK.js} +5 -4
- package/dist/{TimeField-DRHLRqN3.js.map → TimeField-tA9uo4lK.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/components/LinkButton/LinkButton.d.ts +57 -0
- package/dist/components/LinkButton/index.d.ts +2 -0
- package/dist/components/NumberField/NumberField.d.ts +11 -0
- package/dist/components/NumberField/index.d.ts +2 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/{usePopoverSupport-B9Lsqryr-DhZHMoNb.js → index.esm-dyoPQhi6.js} +735 -13
- package/dist/index.esm-dyoPQhi6.js.map +1 -0
- package/dist/index.js +17 -16
- package/dist/index.js.map +1 -1
- package/dist/useFocusWithin-Cxz14Zyz-DEudRcSI.js +64 -0
- package/dist/useFocusWithin-Cxz14Zyz-DEudRcSI.js.map +1 -0
- package/dist/useLinkStyles.js +1 -1
- package/dist/{useOptionallyControlledState-DAv5LXXh-DAv5LXXh.js → useOptionallyControlledState-DbDuos5L-DbDuos5L.js} +9 -3
- package/dist/useOptionallyControlledState-DbDuos5L-DbDuos5L.js.map +1 -0
- package/dist/usePopoverSupport-B9Lsqryr-CYJxXiun.js +15 -0
- package/dist/usePopoverSupport-B9Lsqryr-CYJxXiun.js.map +1 -0
- package/package.json +2 -2
- package/dist/DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js.map +0 -1
- package/dist/ListView-DdHpJHTc.js.map +0 -1
- package/dist/useOptionallyControlledState-DAv5LXXh-DAv5LXXh.js.map +0 -1
- package/dist/usePopoverSupport-B9Lsqryr-DhZHMoNb.js.map +0 -1
- /package/dist/{Breadcrumbs-B5bqrZ5D.css → Breadcrumbs-BMbkH9hL.css} +0 -0
- /package/dist/{Calendar-DD5kmVd3.css → Calendar-BvftKznl.css} +0 -0
- /package/dist/{Link-Dqp_XXl_.css → Link-MiffPrW9.css} +0 -0
- /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-
|
|
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,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>>;
|