@servicetitan/anvil2 1.42.2 → 1.43.0
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 +13 -0
- package/dist/{Combobox-D2aSaDkz.js → Combobox-C7ANSGIu.js} +2 -2
- package/dist/{Combobox-D2aSaDkz.js.map → Combobox-C7ANSGIu.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DateField-D28_sa7P.js → DateField-_TqCdcYv.js} +4 -3
- package/dist/{DateField-D28_sa7P.js.map → DateField-_TqCdcYv.js.map} +1 -1
- package/dist/DateField.js +1 -1
- package/dist/{DateFieldRange--oSGfjYa.js → DateFieldRange-Dk8WA52F.js} +2 -2
- package/dist/{DateFieldRange--oSGfjYa.js.map → DateFieldRange-Dk8WA52F.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-0a8Bk7Yj.js → DateFieldSingle-D3xD8YZk.js} +2 -2
- package/dist/{DateFieldSingle-0a8Bk7Yj.js.map → DateFieldSingle-D3xD8YZk.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-DCv9WJdu.js → DateFieldYearless-BxkCSNk5.js} +2 -2
- package/dist/{DateFieldYearless-DCv9WJdu.js.map → DateFieldYearless-BxkCSNk5.js.map} +1 -1
- package/dist/DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js +1431 -0
- package/dist/DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js.map +1 -0
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{Page-KN0DLtcf.js → Page-CxB5N9dR.js} +36 -36
- package/dist/{Page-KN0DLtcf.js.map → Page-CxB5N9dR.js.map} +1 -1
- package/dist/Page.css +72 -72
- package/dist/Page.js +1 -1
- package/dist/{Popover-B1HaUjGI.js → Popover-BPiqdyu1.js} +2 -2
- package/dist/{Popover-B1HaUjGI.js.map → Popover-BPiqdyu1.js.map} +1 -1
- package/dist/{Popover-CU2cGVD8-FWJOuFRj.js → Popover-CU2cGVD8-Casl3vM1.js} +2 -2
- package/dist/{Popover-CU2cGVD8-FWJOuFRj.js.map → Popover-CU2cGVD8-Casl3vM1.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/TimeField-DRHLRqN3.js +913 -0
- package/dist/TimeField-DRHLRqN3.js.map +1 -0
- package/dist/TimeField.css +10 -0
- package/dist/TimeField.d.ts +2 -0
- package/dist/TimeField.js +2 -0
- package/dist/TimeField.js.map +1 -0
- package/dist/{Toolbar-BznMJKGJ.js → Toolbar-CSWhVSUM.js} +2 -2
- package/dist/{Toolbar-BznMJKGJ.js.map → Toolbar-CSWhVSUM.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/assets/icons/st/gnav_field_pro_active.svg +1 -1
- package/dist/assets/icons/st/gnav_field_pro_inactive.svg +1 -1
- package/dist/components/TimeField/TimeField.d.ts +53 -0
- package/dist/components/TimeField/index.d.ts +1 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/event-BEJFimi3.js +6 -0
- package/dist/event-BEJFimi3.js.map +1 -0
- package/dist/index.js +9 -8
- package/dist/index.js.map +1 -1
- package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT-BZcjPkvT.js +18 -0
- package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT-BZcjPkvT.js.map +1 -0
- package/dist/{DateFieldYearless-C3_oGDr3-5meexzZO.js → usePopoverSupport-B9Lsqryr-DhZHMoNb.js} +470 -1429
- package/dist/usePopoverSupport-B9Lsqryr-DhZHMoNb.js.map +1 -0
- package/package.json +4 -4
- package/dist/DateFieldYearless-C3_oGDr3-5meexzZO.js.map +0 -1
- package/dist/usePopoverCloseDelayWorkaround-BhhG-xEB-hfJZaXHC.js +0 -21
- package/dist/usePopoverCloseDelayWorkaround-BhhG-xEB-hfJZaXHC.js.map +0 -1
|
@@ -0,0 +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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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
@layer starter, reset, base, state, application;
|
|
2
|
+
@layer starter, reset, base, state, application;
|
|
3
|
+
@layer base {
|
|
4
|
+
._time-field_11xzw_2 input {
|
|
5
|
+
letter-spacing: 2.1px;
|
|
6
|
+
}
|
|
7
|
+
._time-field_11xzw_2 input[data-input-empty=false] {
|
|
8
|
+
font-size: 0.875rem;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimeField.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -3,7 +3,7 @@ import { useTrackingId } from './useTrackingId.js';
|
|
|
3
3
|
import { useState, useRef, useEffect, forwardRef, useContext, useId, useCallback, useMemo, createContext } from 'react';
|
|
4
4
|
import { B as Button } from './Button-BaHFf1AT-BQy-PFB5.js';
|
|
5
5
|
import { B as ButtonToggle } from './ButtonToggle-Bm4KRl3o-B1-LbfjY.js';
|
|
6
|
-
import {
|
|
6
|
+
import { P as Popover } from './Popover-CU2cGVD8-Casl3vM1.js';
|
|
7
7
|
import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
|
|
8
8
|
import { S as SvgMoreHoriz } from './more_horiz-DJgdQiy0.js';
|
|
9
9
|
import { S as SvgMoreVert } from './more_vert-C_lJSyxt.js';
|
|
@@ -920,4 +920,4 @@ const Toolbar = Object.assign(ToolbarElement, {
|
|
|
920
920
|
});
|
|
921
921
|
|
|
922
922
|
export { Toolbar as T, ToolbarElement as a, ToolbarButton as b, ToolbarButtonToggle as c, ToolbarButtonLink as d, ToolbarSelect as e };
|
|
923
|
-
//# sourceMappingURL=Toolbar-
|
|
923
|
+
//# sourceMappingURL=Toolbar-CSWhVSUM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar-BznMJKGJ.js","sources":["../../hammer-react/dist/useIntersectionObserver-BEmMDO3P.js","../../hammer-react/dist/Toolbar-z_R2GoaM.js","../src/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\n\nfunction useIntersectionObserver({\n threshold = 0,\n root = null,\n rootMargin = \"0%\",\n freezeOnceVisible = false,\n initialIsIntersecting = false,\n onChange\n} = {}) {\n const [ref, setRef] = useState(null);\n const [state, setState] = useState(() => ({\n isIntersecting: initialIsIntersecting,\n entry: void 0\n }));\n const callbackRef = useRef();\n callbackRef.current = onChange;\n const frozen = state.entry?.isIntersecting && freezeOnceVisible;\n useEffect(() => {\n if (!ref) return;\n if (!(\"IntersectionObserver\" in window)) return;\n if (frozen) return;\n const observer = new IntersectionObserver(\n (entries) => {\n const thresholds = Array.isArray(observer.thresholds) ? observer.thresholds : [observer.thresholds];\n entries.forEach((entry) => {\n const isIntersecting = entry.isIntersecting && thresholds.some(\n (threshold2) => entry.intersectionRatio >= threshold2\n );\n setState({ isIntersecting, entry });\n if (callbackRef.current) {\n callbackRef.current(isIntersecting, entry);\n }\n });\n },\n { threshold, root, rootMargin }\n );\n observer.observe(ref);\n return () => {\n observer.disconnect();\n };\n }, [\n ref,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold),\n root,\n rootMargin,\n frozen,\n freezeOnceVisible\n ]);\n const prevRef = useRef(null);\n useEffect(() => {\n if (!ref && state.entry?.target && !freezeOnceVisible && !frozen && prevRef.current !== state.entry.target) {\n prevRef.current = state.entry.target;\n setState({ isIntersecting: initialIsIntersecting, entry: void 0 });\n }\n }, [ref, state.entry, freezeOnceVisible, frozen, initialIsIntersecting]);\n const result = [\n setRef,\n !!state.isIntersecting,\n state.entry\n ];\n result.ref = result[0];\n result.isIntersecting = result[1];\n result.entry = result[2];\n return result;\n}\n\nexport { useIntersectionObserver as u };\n//# sourceMappingURL=useIntersectionObserver-BEmMDO3P.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { useContext, useId, useRef, useCallback, useEffect, forwardRef, useState, useMemo, createContext } from 'react';\nimport { B as Button } from './Button-BaHFf1AT.js';\nimport { B as ButtonToggle } from './ButtonToggle-Bm4KRl3o.js';\nimport { P as Popover } from './Popover-CU2cGVD8.js';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport IconMoreHoriz from '@servicetitan/hammer-icon/mdi/round/more_horiz.svg';\nimport MoreVert from '@servicetitan/hammer-icon/mdi/round//more_vert.svg';\nimport { B as ButtonLink } from './ButtonLink-5qlX0uZx.js';\nimport cx from 'classnames';\nimport { g as Tooltip } from './ProgressBar-BRvB-bD4.js';\nimport { L as Listbox } from './Listbox-B-WUuj-_.js';\nimport Down from '@servicetitan/hammer-icon/mdi/round/arrow_drop_down.svg';\nimport { getKeyboardFocusableElements } from './getKeyboardFocusableElements.js';\nimport { F as Flex } from './Flex-CiK7uNUu.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { u as useIntersectionObserver } from './useIntersectionObserver-BEmMDO3P.js';\n\nimport './Toolbar.css';const toolbar = \"_toolbar_a1ext_3\";\nconst styles = {\n\ttoolbar: toolbar,\n\t\"toolbar-content\": \"_toolbar-content_a1ext_10\",\n\t\"toolbar-overflow-content\": \"_toolbar-overflow-content_a1ext_13\",\n\t\"toolbar-button-item\": \"_toolbar-button-item_a1ext_21\",\n\t\"toolbar-item\": \"_toolbar-item_a1ext_27\",\n\t\"overflow-collapse\": \"_overflow-collapse_a1ext_31\",\n\t\"toolbar-button-toggle-item\": \"_toolbar-button-toggle-item_a1ext_55\",\n\t\"toolbar-overflow-trigger\": \"_toolbar-overflow-trigger_a1ext_61\"\n};\n\nfunction getToolbarElements(toolbarElement) {\n const toolbarContent = toolbarElement.querySelector(\n '[data-anv=\"toolbar-content\"]'\n );\n const mainItems = getKeyboardFocusableElements(toolbarContent).filter(\n (item) => {\n const isVisible = !item.closest('[aria-hidden=\"true\"]');\n return isVisible;\n }\n );\n const overflowTrigger = toolbarElement.querySelector(\n '[data-anv=\"toolbar-overflow-trigger\"]'\n );\n return overflowTrigger ? [...mainItems, overflowTrigger] : mainItems;\n}\nfunction updateToolbarItemsTabIndex(toolbarElement, activeItem) {\n if (!toolbarElement) return;\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n let activeIndex = 0;\n if (typeof activeItem === \"number\") {\n activeIndex = Math.max(0, Math.min(activeItem, items.length - 1));\n } else if (activeItem instanceof Element) {\n const foundIndex = items.indexOf(activeItem);\n if (foundIndex !== -1) {\n activeIndex = foundIndex;\n }\n }\n items.forEach((item, index) => {\n item.setAttribute(\"tabindex\", index === activeIndex ? \"0\" : \"-1\");\n });\n return items[activeIndex];\n}\nfunction handleToolbarKeyDown(event, toolbarElement) {\n if (!toolbarElement || event.altKey || event.ctrlKey || event.metaKey) return;\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n const activeElement = event.target;\n if (!toolbarElement.contains(activeElement)) return;\n const activeItem = items.find(\n (item) => item === activeElement || Array.from(item.children).some((child) => child === activeElement)\n );\n const activeIndex = activeItem ? items.indexOf(activeItem) : -1;\n if (activeIndex === -1) return;\n let nextIndex = activeIndex;\n const isVertical = toolbarElement.getAttribute(\"aria-orientation\") === \"vertical\";\n switch (event.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n if (isVertical && event.key === \"ArrowUp\" || !isVertical && event.key === \"ArrowLeft\") {\n nextIndex = activeIndex <= 0 ? items.length - 1 : activeIndex - 1;\n }\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n if (isVertical && event.key === \"ArrowDown\" || !isVertical && event.key === \"ArrowRight\") {\n nextIndex = activeIndex >= items.length - 1 ? 0 : activeIndex + 1;\n }\n break;\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n case \"End\":\n event.preventDefault();\n nextIndex = items.length - 1;\n break;\n default:\n return;\n }\n updateToolbarItemsTabIndex(toolbarElement, nextIndex);\n items[nextIndex]?.focus();\n}\nconst handleMenuKeyboardNavigation = (event) => {\n const menuItems = Array.from(\n event.currentTarget.querySelectorAll('[role=\"menuitem\"]')\n ).map((menuItem) => {\n return getKeyboardFocusableElements(menuItem)[0] || menuItem;\n });\n if (!menuItems.length) return;\n const currentIndex = menuItems.indexOf(document.activeElement);\n if (currentIndex === -1) return;\n let nextIndex = currentIndex;\n const isModifierKey = event.altKey || event.ctrlKey || event.metaKey;\n if (isModifierKey) return;\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\": {\n event.preventDefault();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n nextIndex = (currentIndex + direction + menuItems.length) % menuItems.length;\n break;\n }\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n case \"End\":\n event.preventDefault();\n nextIndex = menuItems.length - 1;\n break;\n default:\n return;\n }\n menuItems[nextIndex]?.focus();\n};\n\nconst ToolbarItemWrapper = ({\n item,\n children\n}) => {\n const { addItem, removeItem, toolbarRef, overflow } = useContext(\n ToolbarOverflowContext\n );\n const itemId = useId();\n const elementRef = useRef(null);\n const prevIntersectingRef = useRef(true);\n const isCollapseMode = overflow === \"collapse\";\n const handleVisibilityChange = useCallback(\n (isVisible) => {\n if (!isCollapseMode || prevIntersectingRef.current === isVisible) return;\n const itemWithId = { ...item, id: itemId };\n if (isVisible) {\n removeItem(itemWithId);\n } else {\n addItem(itemWithId);\n }\n prevIntersectingRef.current = isVisible;\n },\n [isCollapseMode, item, itemId, addItem, removeItem]\n );\n const { isIntersecting, ref } = useIntersectionObserver({\n root: isCollapseMode ? toolbarRef.current : null,\n threshold: 1,\n initialIsIntersecting: false,\n onChange: handleVisibilityChange\n });\n const setRefCallback = useCallback(\n (node) => {\n elementRef.current = node;\n if (isCollapseMode) {\n ref(node);\n }\n },\n [ref, isCollapseMode]\n );\n const handleFocusOrClick = useCallback(() => {\n if (!toolbarRef.current || !elementRef.current) return;\n const currentElement = elementRef.current.querySelector(\"button, a, input\");\n if (!currentElement) return;\n updateToolbarItemsTabIndex(toolbarRef.current, currentElement);\n }, [toolbarRef]);\n useEffect(() => {\n const interactiveEl = elementRef.current?.querySelector(\"button, a, input\");\n if (!interactiveEl) return;\n interactiveEl.addEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.addEventListener(\"click\", handleFocusOrClick);\n return () => {\n interactiveEl.removeEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.removeEventListener(\"click\", handleFocusOrClick);\n };\n }, [handleFocusOrClick]);\n useEffect(() => {\n if (isCollapseMode) {\n prevIntersectingRef.current = true;\n }\n }, [isCollapseMode]);\n const isHidden = isCollapseMode && !isIntersecting;\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setRefCallback,\n className: styles[\"toolbar-item\"],\n style: { visibility: isHidden ? \"hidden\" : \"visible\" },\n \"aria-hidden\": isHidden,\n ...{ inert: isHidden ? \"\" : void 0 },\n \"data-id\": itemId,\n \"data-anv\": \"toolbar-item\",\n children\n }\n );\n};\n\nconst ToolbarButtonToggle = forwardRef((props, _ref) => {\n const { className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonToggleClassNames = cx(\n className,\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-button-toggle-item\"]\n );\n const item = children ? /* @__PURE__ */ jsx(\n ButtonToggle,\n {\n size: \"small\",\n \"data-anv\": \"toolbar-button-toggle\",\n className: buttonToggleClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n ButtonToggle,\n {\n size: \"small\",\n \"data-anv\": \"toolbar-button-toggle\",\n className: buttonToggleClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"buttonToggle\" }, children: item });\n});\nToolbarButtonToggle.displayName = \"ToolbarButtonToggle\";\n\nconst ToolbarButtonLink = forwardRef(\n (props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonLinkClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = children ? /* @__PURE__ */ jsx(\n ButtonLink,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button-link\",\n className: buttonLinkClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n ButtonLink,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button-link\",\n className: buttonLinkClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"buttonLink\" }, children: item });\n }\n);\nToolbarButtonLink.displayName = \"ToolbarButtonLink\";\n\nconst ToolbarSelect = forwardRef(\n (props, _ref) => {\n const {\n appearance = \"ghost\",\n onChange,\n selected: selectedItemId,\n accessibleLabel,\n className,\n items,\n ...rest\n } = props;\n const selectId = useId();\n const defaultId = items.length > 0 ? items[0].id : \"\";\n const [internalSelectedId, setInternalSelectedId] = useState(defaultId);\n const selectedId = selectedItemId ?? internalSelectedId;\n const selectedItem = items.find((item2) => item2.id === selectedId) || items.find((item2) => item2.id === defaultId);\n useEffect(() => {\n if (!selectedItemId && items.length > 0 && !items.some((item2) => item2.id === internalSelectedId)) {\n setInternalSelectedId(items[0].id);\n }\n }, [items, selectedItemId, internalSelectedId]);\n const handleSelectionChange = (selected) => {\n if (selected?.id) {\n if (selectedItemId === void 0) {\n setInternalSelectedId(selected.id);\n }\n onChange?.(selected.id);\n }\n };\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = /* @__PURE__ */ jsxs(Popover, { noPadding: true, children: [\n /* @__PURE__ */ jsx(\n Popover.Button,\n {\n appearance,\n size: \"small\",\n icon: { after: Down },\n className: buttonClassNames,\n id: selectId,\n \"data-anv\": \"toolbar-select\",\n ...rest,\n children: selectedItem?.label\n }\n ),\n /* @__PURE__ */ jsx(\n Popover.Content,\n {\n className: styles[\"toolbar-select-content\"],\n \"aria-label\": `${accessibleLabel} options`,\n children: /* @__PURE__ */ jsx(\n Listbox,\n {\n selected: selectedItem,\n onSelectionChange: handleSelectionChange,\n items,\n \"aria-labelledby\": selectId,\n children: ({ items: items2 }) => items2.map((item2) => /* @__PURE__ */ jsx(Listbox.Option, { item: item2, children: item2.label }, item2.label))\n }\n )\n }\n )\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"select\" }, children: item });\n }\n);\nToolbarSelect.displayName = \"ToolbarSelect\";\n\nconst OverflowItemContext = createContext({\n isInOverflowMenu: false\n});\nconst useOverFlowItemContext = () => useContext(OverflowItemContext);\nconst OverflowItem = ({ itemType, itemProps }) => {\n switch (itemType) {\n case \"button\":\n return /* @__PURE__ */ jsx(ToolbarButton, { ...itemProps });\n case \"buttonToggle\":\n return /* @__PURE__ */ jsx(ToolbarButtonToggle, { ...itemProps });\n case \"buttonLink\":\n return /* @__PURE__ */ jsx(ToolbarButtonLink, { ...itemProps });\n case \"select\":\n return /* @__PURE__ */ jsx(ToolbarSelect, { ...itemProps });\n default:\n return null;\n }\n};\nconst ToolbarOverflowMenu = ({\n additionalItems,\n direction\n}) => {\n const { overflowItems, orderedIds } = useContext(ToolbarOverflowContext);\n const menuTriggerId = useId();\n const orderedItems = useMemo(() => {\n const allElements = orderedIds?.map((id) => {\n return overflowItems.find((item) => item.id === id);\n });\n return allElements?.filter((item) => item !== void 0) || [];\n }, [orderedIds, overflowItems]);\n const popoverButtonClassNames = cx(\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-overflow-trigger\"]\n );\n const overflowIcon = direction === \"horizontal\" ? IconMoreHoriz : MoreVert;\n return /* @__PURE__ */ jsxs(Popover, { noPadding: true, children: [\n /* @__PURE__ */ jsx(\n Popover.Button,\n {\n size: \"small\",\n appearance: \"ghost\",\n id: menuTriggerId,\n className: popoverButtonClassNames,\n \"data-anv\": \"toolbar-overflow-trigger\",\n \"aria-label\": \"Additional toolbar options\",\n children: /* @__PURE__ */ jsx(Icon, { svg: overflowIcon, size: \"small\" })\n }\n ),\n /* @__PURE__ */ jsx(Popover.Content, { children: /* @__PURE__ */ jsx(OverflowItemContext.Provider, { value: { isInOverflowMenu: true }, children: /* @__PURE__ */ jsxs(\n \"ul\",\n {\n role: \"menu\",\n className: styles[\"toolbar-overflow-content\"],\n \"data-anv\": \"toolbar-overflow-menu\",\n \"aria-labelledby\": menuTriggerId,\n onKeyDown: handleMenuKeyboardNavigation,\n children: [\n orderedItems.map((item) => {\n const { itemType, itemProps, id } = item;\n return /* @__PURE__ */ jsx(\n \"li\",\n {\n role: \"menuitem\",\n \"data-anv\": \"toolbar-overflow-item\",\n children: /* @__PURE__ */ jsx(\n OverflowItem,\n {\n itemType,\n itemProps,\n id\n }\n )\n },\n `${itemType}-${id}`\n );\n }),\n additionalItems?.map((item, index) => /* @__PURE__ */ jsx(\n \"li\",\n {\n role: \"menuitem\",\n \"data-anv\": \"toolbar-overflow-item\",\n children: item\n },\n `additional-item-${index}`\n ))\n ]\n }\n ) }) })\n ] });\n};\n\nconst ToolbarButton = forwardRef(\n (props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = children ? /* @__PURE__ */ jsx(\n Button,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button\",\n className: buttonClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n Button,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button\",\n className: buttonClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"button\" }, children: item });\n }\n);\nToolbarButton.displayName = \"ToolbarButton\";\n\nconst ToolbarOverflowContext = createContext({\n overflowItems: [],\n addItem: () => {\n return;\n },\n removeItem: () => {\n return;\n },\n toolbarRef: { current: null },\n orderedIds: [],\n overflow: \"wrap\"\n});\nconst ToolbarElement = forwardRef(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n associatedContent,\n className,\n children,\n style,\n direction = \"horizontal\",\n overflow = \"wrap\",\n onKeyDown,\n additionalItems,\n ...rest\n } = componentProps;\n const [overflowItems, setOverflowItems] = useState([]);\n const toolbarItemsRef = useRef(null);\n const toolbarRef = useRef(null);\n const [orderedIds, setOrderedIds] = useState([]);\n useEffect(() => {\n const newOrderedIds = Array.from(\n toolbarItemsRef.current?.querySelectorAll(\"[data-id]\") || []\n ).map((el) => {\n return el.getAttribute(\"data-id\");\n });\n setOrderedIds(newOrderedIds);\n }, [children]);\n const addItem = useCallback((item) => {\n setOverflowItems((prev) => [...prev, item]);\n }, []);\n const removeItem = useCallback((item) => {\n setOverflowItems(\n (prev) => prev.filter((component) => component.id !== item.id)\n );\n }, []);\n useEffect(() => {\n if (toolbarRef.current) {\n updateToolbarItemsTabIndex(toolbarRef.current);\n }\n }, [children]);\n const handleKeyDown = useCallback(\n (event) => {\n if (toolbarRef.current) {\n handleToolbarKeyDown(event, toolbarRef.current);\n }\n onKeyDown?.(event);\n },\n [onKeyDown]\n );\n const showOverflowMenu = overflow === \"collapse\" && overflowItems.length > 0 || !!additionalItems;\n const value = useMemo(\n () => ({\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow\n }),\n [overflowItems, addItem, removeItem, toolbarRef, orderedIds, overflow]\n );\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n const toolbarClassNames = cx(styles[\"toolbar\"], className);\n const toolbarContentClassNames = cx(styles[\"toolbar-content\"], {\n [styles[`overflow-${overflow}`]]: overflow\n });\n return /* @__PURE__ */ jsx(ToolbarOverflowContext.Provider, { value, children: /* @__PURE__ */ jsxs(\n Flex,\n {\n direction: direction === \"horizontal\" ? \"row\" : \"column\",\n wrap: overflow === \"wrap\" ? \"wrap\" : \"nowrap\",\n alignItems: \"center\",\n className: toolbarClassNames,\n style: styleCombined,\n ref: useMergeRefs([toolbarRef, ref]),\n role: \"toolbar\",\n \"data-anv\": \"toolbar\",\n \"aria-orientation\": direction,\n \"aria-label\": `Toolbar for ${associatedContent}. Use arrow keys to navigate through toolbar controls.`,\n onKeyDown: handleKeyDown,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\n Flex,\n {\n ref: useMergeRefs([toolbarItemsRef, ref]),\n className: toolbarContentClassNames,\n direction: direction === \"horizontal\" ? \"row\" : \"column\",\n wrap: overflow === \"wrap\" ? \"wrap\" : \"nowrap\",\n alignItems: \"center\",\n grow: 1,\n \"data-anv\": \"toolbar-content\",\n children\n }\n ),\n showOverflowMenu && /* @__PURE__ */ jsx(\n ToolbarOverflowMenu,\n {\n direction,\n additionalItems\n }\n )\n ]\n }\n ) });\n }\n);\nToolbarElement.displayName = \"Toolbar\";\nconst Toolbar = Object.assign(ToolbarElement, {\n /**\n * ToolbarButton component for standard clickable actions within a toolbar.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\n Button: ToolbarButton,\n /**\n * ToolbarButtonToggle component for toggleable actions within a toolbar.\n *\n * Features:\n * - Toggle state management (on/off)\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only toggles\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Visual feedback for toggle state\n * - Proper ARIA attributes for toggle semantics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n *\n * @example\n * <Toolbar.ButtonToggle checked={isItalic}>\n * Italic\n * </Toolbar.ButtonToggle>\n */\n ButtonToggle: ToolbarButtonToggle,\n /**\n * ToolbarButtonLink component for link actions within a toolbar.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only links\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Proper anchor element semantics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n *\n * @example\n * <Toolbar.ButtonLink icon={ExternalLinkIcon} href=\"/docs\" aria-label=\"Documentation\" />\n */\n ButtonLink: ToolbarButtonLink,\n /**\n * ToolbarSelect component provides a dropdown selector within a toolbar.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n *\n * @example\n * <Toolbar.Select\n * appearance=\"primary\"\n * items={colorOptions}\n * accessibleLabel=\"Text color\"\n * />\n */\n Select: ToolbarSelect\n});\n\nexport { Toolbar as T, ToolbarButton as a, ToolbarButtonToggle as b, ToolbarButtonLink as c, ToolbarSelect as d, ToolbarItemWrapper as e, ToolbarOverflowMenu as f };\n//# sourceMappingURL=Toolbar-z_R2GoaM.js.map\n","import {\n Toolbar as CoreToolbar,\n ToolbarProps as CoreToolbarProps,\n ToolbarButton as CoreToolbarButton,\n ToolbarButtonProps as CoreToolbarButtonProps,\n ToolbarButtonToggle as CoreToolbarButtonToggle,\n ToolbarButtonToggleProps as CoreToolbarButtonToggleProps,\n ToolbarButtonLink as CoreToolbarButtonLink,\n ToolbarButtonLinkProps as CoreToolbarButtonLinkProps,\n ToolbarSelect as CoreToolbarSelect,\n ToolbarSelectProps as CoreToolbarSelectProps,\n ToolbarOverflowTypes as CoreToolbarOverflowTypes,\n ToolbarItemAppearance as CoreToolbarItemAppearance,\n} from \"@servicetitan/hammer-react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the Toolbar component with tracking support\n * @property {string} associatedContent - Description of the content this toolbar is associated with, used for accessibility\n * @property {\"vertical\" | \"horizontal\"} [direction] - Orientation of the toolbar\n * @property {ToolbarOverflowTypes} [overflow] - How to handle overflow when items don't fit\n * @property {ReactElement[]} [additionalItems] - Additional items to display in the overflow menu\n * @extends DataTrackingId\n */\nexport type ToolbarProps = CoreToolbarProps & DataTrackingId;\n\n/**\n * Props for the ToolbarButton component with tracking support\n * @property {ToolbarItemAppearance} [appearance] - Visual appearance of the button\n * @property {string} [aria-label] - Accessible label for the button\n * @property {React.ReactNode} [children] - Button content\n * @property {boolean} [disabled] - Whether the button is disabled\n * @extends DataTrackingId\n */\nexport type ToolbarButtonProps = CoreToolbarButtonProps & DataTrackingId;\n\n/**\n * Props for the ToolbarButtonToggle component with tracking support\n * @property {boolean} [checked] - Whether the toggle is checked\n * @property {boolean} [disabled] - Whether the toggle is disabled\n * @property {string} [aria-label] - Accessible label for the toggle\n * @property {React.ReactNode} [children] - Toggle content\n * @extends DataTrackingId\n */\nexport type ToolbarButtonToggleProps = CoreToolbarButtonToggleProps &\n DataTrackingId;\n\n/**\n * Props for the ToolbarButtonLink component with tracking support\n * @property {string} [href] - Link destination URL\n * @property {boolean} [disabled] - Whether the link is disabled\n * @property {string} [aria-label] - Accessible label for the link\n * @property {React.ReactNode} [children] - Link content\n * @property {string} [target] - Link target attribute\n * @extends DataTrackingId\n */\nexport type ToolbarButtonLinkProps = CoreToolbarButtonLinkProps &\n DataTrackingId;\n\n/**\n * Props for the ToolbarSelect component with tracking support\n * @property {string} [selected] - Currently selected item ID\n * @property {boolean} [disabled] - Whether the select is disabled\n * @property {string} [aria-label] - Accessible label for the select\n * @property {unknown[]} [items] - Array of selectable items\n * @extends DataTrackingId\n */\nexport type ToolbarSelectProps<T> = CoreToolbarSelectProps<T> & DataTrackingId;\n\n/**\n * Toolbar overflow behavior options\n */\nexport type ToolbarOverflowTypes = CoreToolbarOverflowTypes;\n\n/**\n * Toolbar item appearance options\n */\nexport type ToolbarItemAppearance = CoreToolbarItemAppearance;\n\n/**\n * Toolbar component for grouping related interactive elements with anvil2 tracking.\n *\n * Features:\n * - Horizontal or vertical orientation\n * - Overflow handling with wrap or collapse behavior\n * - Keyboard navigation following ARIA best practices\n * - Screen reader announcements and accessibility\n * - Automatic overflow menu for collapsed items\n * - Support for buttons, toggles, selects, and links\n * - Layout utilities for positioning and spacing\n * - Context-based state management for child components\n * - Automatic tracking ID generation for analytics\n * - Integration with anvil2 tracking system\n *\n * @example\n * <Toolbar associatedContent=\"document editor\" overflow=\"collapse\">\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold\" />\n * <Toolbar.ButtonToggle icon={ItalicIcon} aria-label=\"Italic\" />\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * />\n * </Toolbar>\n */\nexport function ToolbarElement(props: ToolbarProps) {\n const trackingId = useTrackingId({\n name: \"Toolbar\",\n data: {\n overflow: props.overflow,\n direction: props.direction,\n associatedContent: props.associatedContent,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbar data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\nexport function ToolbarButton(props: ToolbarButtonProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButton\",\n data: {\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButton data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Toggle state management\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n */\nexport function ToolbarButtonToggle(props: ToolbarButtonToggleProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButtonToggle\",\n data: {\n checked: props.checked,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButtonToggle data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n */\nexport function ToolbarButtonLink(props: ToolbarButtonLinkProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButtonLink\",\n data: {\n href: props.href,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n target: props.target,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButtonLink data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n */\nexport function ToolbarSelect(props: ToolbarSelectProps<unknown>) {\n const trackingId = useTrackingId({\n name: \"ToolbarSelect\",\n data: {\n selected: props.selected,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n items: props.items,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarSelect data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * Toolbar component for grouping related interactive elements.\n *\n * Features:\n * - Horizontal or vertical orientation\n * - Overflow handling with wrap or collapse behavior\n * - Keyboard navigation following ARIA best practices\n * - Screen reader announcements and accessibility\n * - Automatic overflow menu for collapsed items\n * - Support for buttons, toggles, selects, and links\n * - Layout utilities for positioning and spacing\n * - Context-based state management for child components\n *\n * @example\n * <Toolbar associatedContent=\"document editor\" overflow=\"collapse\">\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold\" />\n * <Toolbar.ButtonToggle icon={ItalicIcon} aria-label=\"Italic\" />\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * />\n * </Toolbar>\n */\nexport const Toolbar = Object.assign(ToolbarElement, {\n /**\n * ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\n Button: ToolbarButton,\n /**\n * ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Toggle state management\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n */\n ButtonToggle: ToolbarButtonToggle,\n /**\n * ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n */\n ButtonLink: ToolbarButtonLink,\n /**\n * ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n */\n Select: ToolbarSelect,\n});\n"],"names":["ToolbarButtonToggle","ToolbarButtonLink","ToolbarSelect","Down","ToolbarButton","IconMoreHoriz","MoreVert","ToolbarElement","Toolbar","CoreToolbar","CoreToolbarButton","CoreToolbarButtonToggle","CoreToolbarButtonLink","CoreToolbarSelect"],"mappings":"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K,MAAM,GAAG,MAAM,GAAG,QAAQ;AAC3D,cAAc,UAAU,EAAE,QAAQ;AAClC,cAAc,IAAI,EAAE,CAAC;AACrB,cAAc,UAAU,EAAE,iBAAiB;AAC3C,cAAc;AACd;AACA,WAAW;AACX,UAAU,gBAAgB,oBAAoB,GAAG;AACjD,YAAY,mBAAmB;AAC/B,YAAY;AACZ,cAAc,SAAS;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA,KAAK,EAAE,CAAC;AACR;AACA,CAAC;AACDA,gBAAc,CAAC,WAAW,GAAG,SAAS;AACtC,MAAMC,SAAO,GAAG,MAAM,CAAC,MAAM,CAACD,gBAAc,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAEH,eAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAEJ,qBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAEC,mBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAEC;AACV,CAAC,CAAC;;ACvlBK,SAAS,eAAe,KAAqB,EAAA;AAClD,EAAA,MAAM,aAAa,aAAc,CAAA;AAAA,IAC/B,IAAM,EAAA,SAAA;AAAA,IACN,IAAM,EAAA;AAAA,MACJ,UAAU,KAAM,CAAA,QAAA;AAAA,MAChB,WAAW,KAAM,CAAA,SAAA;AAAA,MACjB,mBAAmB,KAAM,CAAA;AAAA,KAC3B;AAAA,IACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GA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"}
|
|
1
|
+
{"version":3,"file":"Toolbar-CSWhVSUM.js","sources":["../../hammer-react/dist/useIntersectionObserver-BEmMDO3P.js","../../hammer-react/dist/Toolbar-z_R2GoaM.js","../src/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\n\nfunction useIntersectionObserver({\n threshold = 0,\n root = null,\n rootMargin = \"0%\",\n freezeOnceVisible = false,\n initialIsIntersecting = false,\n onChange\n} = {}) {\n const [ref, setRef] = useState(null);\n const [state, setState] = useState(() => ({\n isIntersecting: initialIsIntersecting,\n entry: void 0\n }));\n const callbackRef = useRef();\n callbackRef.current = onChange;\n const frozen = state.entry?.isIntersecting && freezeOnceVisible;\n useEffect(() => {\n if (!ref) return;\n if (!(\"IntersectionObserver\" in window)) return;\n if (frozen) return;\n const observer = new IntersectionObserver(\n (entries) => {\n const thresholds = Array.isArray(observer.thresholds) ? observer.thresholds : [observer.thresholds];\n entries.forEach((entry) => {\n const isIntersecting = entry.isIntersecting && thresholds.some(\n (threshold2) => entry.intersectionRatio >= threshold2\n );\n setState({ isIntersecting, entry });\n if (callbackRef.current) {\n callbackRef.current(isIntersecting, entry);\n }\n });\n },\n { threshold, root, rootMargin }\n );\n observer.observe(ref);\n return () => {\n observer.disconnect();\n };\n }, [\n ref,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold),\n root,\n rootMargin,\n frozen,\n freezeOnceVisible\n ]);\n const prevRef = useRef(null);\n useEffect(() => {\n if (!ref && state.entry?.target && !freezeOnceVisible && !frozen && prevRef.current !== state.entry.target) {\n prevRef.current = state.entry.target;\n setState({ isIntersecting: initialIsIntersecting, entry: void 0 });\n }\n }, [ref, state.entry, freezeOnceVisible, frozen, initialIsIntersecting]);\n const result = [\n setRef,\n !!state.isIntersecting,\n state.entry\n ];\n result.ref = result[0];\n result.isIntersecting = result[1];\n result.entry = result[2];\n return result;\n}\n\nexport { useIntersectionObserver as u };\n//# sourceMappingURL=useIntersectionObserver-BEmMDO3P.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { useContext, useId, useRef, useCallback, useEffect, forwardRef, useState, useMemo, createContext } from 'react';\nimport { B as Button } from './Button-BaHFf1AT.js';\nimport { B as ButtonToggle } from './ButtonToggle-Bm4KRl3o.js';\nimport { P as Popover } from './Popover-CU2cGVD8.js';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport IconMoreHoriz from '@servicetitan/hammer-icon/mdi/round/more_horiz.svg';\nimport MoreVert from '@servicetitan/hammer-icon/mdi/round//more_vert.svg';\nimport { B as ButtonLink } from './ButtonLink-5qlX0uZx.js';\nimport cx from 'classnames';\nimport { g as Tooltip } from './ProgressBar-BRvB-bD4.js';\nimport { L as Listbox } from './Listbox-B-WUuj-_.js';\nimport Down from '@servicetitan/hammer-icon/mdi/round/arrow_drop_down.svg';\nimport { getKeyboardFocusableElements } from './getKeyboardFocusableElements.js';\nimport { F as Flex } from './Flex-CiK7uNUu.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { u as useIntersectionObserver } from './useIntersectionObserver-BEmMDO3P.js';\n\nimport './Toolbar.css';const toolbar = \"_toolbar_a1ext_3\";\nconst styles = {\n\ttoolbar: toolbar,\n\t\"toolbar-content\": \"_toolbar-content_a1ext_10\",\n\t\"toolbar-overflow-content\": \"_toolbar-overflow-content_a1ext_13\",\n\t\"toolbar-button-item\": \"_toolbar-button-item_a1ext_21\",\n\t\"toolbar-item\": \"_toolbar-item_a1ext_27\",\n\t\"overflow-collapse\": \"_overflow-collapse_a1ext_31\",\n\t\"toolbar-button-toggle-item\": \"_toolbar-button-toggle-item_a1ext_55\",\n\t\"toolbar-overflow-trigger\": \"_toolbar-overflow-trigger_a1ext_61\"\n};\n\nfunction getToolbarElements(toolbarElement) {\n const toolbarContent = toolbarElement.querySelector(\n '[data-anv=\"toolbar-content\"]'\n );\n const mainItems = getKeyboardFocusableElements(toolbarContent).filter(\n (item) => {\n const isVisible = !item.closest('[aria-hidden=\"true\"]');\n return isVisible;\n }\n );\n const overflowTrigger = toolbarElement.querySelector(\n '[data-anv=\"toolbar-overflow-trigger\"]'\n );\n return overflowTrigger ? [...mainItems, overflowTrigger] : mainItems;\n}\nfunction updateToolbarItemsTabIndex(toolbarElement, activeItem) {\n if (!toolbarElement) return;\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n let activeIndex = 0;\n if (typeof activeItem === \"number\") {\n activeIndex = Math.max(0, Math.min(activeItem, items.length - 1));\n } else if (activeItem instanceof Element) {\n const foundIndex = items.indexOf(activeItem);\n if (foundIndex !== -1) {\n activeIndex = foundIndex;\n }\n }\n items.forEach((item, index) => {\n item.setAttribute(\"tabindex\", index === activeIndex ? \"0\" : \"-1\");\n });\n return items[activeIndex];\n}\nfunction handleToolbarKeyDown(event, toolbarElement) {\n if (!toolbarElement || event.altKey || event.ctrlKey || event.metaKey) return;\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n const activeElement = event.target;\n if (!toolbarElement.contains(activeElement)) return;\n const activeItem = items.find(\n (item) => item === activeElement || Array.from(item.children).some((child) => child === activeElement)\n );\n const activeIndex = activeItem ? items.indexOf(activeItem) : -1;\n if (activeIndex === -1) return;\n let nextIndex = activeIndex;\n const isVertical = toolbarElement.getAttribute(\"aria-orientation\") === \"vertical\";\n switch (event.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n if (isVertical && event.key === \"ArrowUp\" || !isVertical && event.key === \"ArrowLeft\") {\n nextIndex = activeIndex <= 0 ? items.length - 1 : activeIndex - 1;\n }\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n if (isVertical && event.key === \"ArrowDown\" || !isVertical && event.key === \"ArrowRight\") {\n nextIndex = activeIndex >= items.length - 1 ? 0 : activeIndex + 1;\n }\n break;\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n case \"End\":\n event.preventDefault();\n nextIndex = items.length - 1;\n break;\n default:\n return;\n }\n updateToolbarItemsTabIndex(toolbarElement, nextIndex);\n items[nextIndex]?.focus();\n}\nconst handleMenuKeyboardNavigation = (event) => {\n const menuItems = Array.from(\n event.currentTarget.querySelectorAll('[role=\"menuitem\"]')\n ).map((menuItem) => {\n return getKeyboardFocusableElements(menuItem)[0] || menuItem;\n });\n if (!menuItems.length) return;\n const currentIndex = menuItems.indexOf(document.activeElement);\n if (currentIndex === -1) return;\n let nextIndex = currentIndex;\n const isModifierKey = event.altKey || event.ctrlKey || event.metaKey;\n if (isModifierKey) return;\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\": {\n event.preventDefault();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n nextIndex = (currentIndex + direction + menuItems.length) % menuItems.length;\n break;\n }\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n case \"End\":\n event.preventDefault();\n nextIndex = menuItems.length - 1;\n break;\n default:\n return;\n }\n menuItems[nextIndex]?.focus();\n};\n\nconst ToolbarItemWrapper = ({\n item,\n children\n}) => {\n const { addItem, removeItem, toolbarRef, overflow } = useContext(\n ToolbarOverflowContext\n );\n const itemId = useId();\n const elementRef = useRef(null);\n const prevIntersectingRef = useRef(true);\n const isCollapseMode = overflow === \"collapse\";\n const handleVisibilityChange = useCallback(\n (isVisible) => {\n if (!isCollapseMode || prevIntersectingRef.current === isVisible) return;\n const itemWithId = { ...item, id: itemId };\n if (isVisible) {\n removeItem(itemWithId);\n } else {\n addItem(itemWithId);\n }\n prevIntersectingRef.current = isVisible;\n },\n [isCollapseMode, item, itemId, addItem, removeItem]\n );\n const { isIntersecting, ref } = useIntersectionObserver({\n root: isCollapseMode ? toolbarRef.current : null,\n threshold: 1,\n initialIsIntersecting: false,\n onChange: handleVisibilityChange\n });\n const setRefCallback = useCallback(\n (node) => {\n elementRef.current = node;\n if (isCollapseMode) {\n ref(node);\n }\n },\n [ref, isCollapseMode]\n );\n const handleFocusOrClick = useCallback(() => {\n if (!toolbarRef.current || !elementRef.current) return;\n const currentElement = elementRef.current.querySelector(\"button, a, input\");\n if (!currentElement) return;\n updateToolbarItemsTabIndex(toolbarRef.current, currentElement);\n }, [toolbarRef]);\n useEffect(() => {\n const interactiveEl = elementRef.current?.querySelector(\"button, a, input\");\n if (!interactiveEl) return;\n interactiveEl.addEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.addEventListener(\"click\", handleFocusOrClick);\n return () => {\n interactiveEl.removeEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.removeEventListener(\"click\", handleFocusOrClick);\n };\n }, [handleFocusOrClick]);\n useEffect(() => {\n if (isCollapseMode) {\n prevIntersectingRef.current = true;\n }\n }, [isCollapseMode]);\n const isHidden = isCollapseMode && !isIntersecting;\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setRefCallback,\n className: styles[\"toolbar-item\"],\n style: { visibility: isHidden ? \"hidden\" : \"visible\" },\n \"aria-hidden\": isHidden,\n ...{ inert: isHidden ? \"\" : void 0 },\n \"data-id\": itemId,\n \"data-anv\": \"toolbar-item\",\n children\n }\n );\n};\n\nconst ToolbarButtonToggle = forwardRef((props, _ref) => {\n const { className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonToggleClassNames = cx(\n className,\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-button-toggle-item\"]\n );\n const item = children ? /* @__PURE__ */ jsx(\n ButtonToggle,\n {\n size: \"small\",\n \"data-anv\": \"toolbar-button-toggle\",\n className: buttonToggleClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n ButtonToggle,\n {\n size: \"small\",\n \"data-anv\": \"toolbar-button-toggle\",\n className: buttonToggleClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"buttonToggle\" }, children: item });\n});\nToolbarButtonToggle.displayName = \"ToolbarButtonToggle\";\n\nconst ToolbarButtonLink = forwardRef(\n (props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonLinkClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = children ? /* @__PURE__ */ jsx(\n ButtonLink,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button-link\",\n className: buttonLinkClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n ButtonLink,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button-link\",\n className: buttonLinkClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"buttonLink\" }, children: item });\n }\n);\nToolbarButtonLink.displayName = \"ToolbarButtonLink\";\n\nconst ToolbarSelect = forwardRef(\n (props, _ref) => {\n const {\n appearance = \"ghost\",\n onChange,\n selected: selectedItemId,\n accessibleLabel,\n className,\n items,\n ...rest\n } = props;\n const selectId = useId();\n const defaultId = items.length > 0 ? items[0].id : \"\";\n const [internalSelectedId, setInternalSelectedId] = useState(defaultId);\n const selectedId = selectedItemId ?? internalSelectedId;\n const selectedItem = items.find((item2) => item2.id === selectedId) || items.find((item2) => item2.id === defaultId);\n useEffect(() => {\n if (!selectedItemId && items.length > 0 && !items.some((item2) => item2.id === internalSelectedId)) {\n setInternalSelectedId(items[0].id);\n }\n }, [items, selectedItemId, internalSelectedId]);\n const handleSelectionChange = (selected) => {\n if (selected?.id) {\n if (selectedItemId === void 0) {\n setInternalSelectedId(selected.id);\n }\n onChange?.(selected.id);\n }\n };\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = /* @__PURE__ */ jsxs(Popover, { noPadding: true, children: [\n /* @__PURE__ */ jsx(\n Popover.Button,\n {\n appearance,\n size: \"small\",\n icon: { after: Down },\n className: buttonClassNames,\n id: selectId,\n \"data-anv\": \"toolbar-select\",\n ...rest,\n children: selectedItem?.label\n }\n ),\n /* @__PURE__ */ jsx(\n Popover.Content,\n {\n className: styles[\"toolbar-select-content\"],\n \"aria-label\": `${accessibleLabel} options`,\n children: /* @__PURE__ */ jsx(\n Listbox,\n {\n selected: selectedItem,\n onSelectionChange: handleSelectionChange,\n items,\n \"aria-labelledby\": selectId,\n children: ({ items: items2 }) => items2.map((item2) => /* @__PURE__ */ jsx(Listbox.Option, { item: item2, children: item2.label }, item2.label))\n }\n )\n }\n )\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"select\" }, children: item });\n }\n);\nToolbarSelect.displayName = \"ToolbarSelect\";\n\nconst OverflowItemContext = createContext({\n isInOverflowMenu: false\n});\nconst useOverFlowItemContext = () => useContext(OverflowItemContext);\nconst OverflowItem = ({ itemType, itemProps }) => {\n switch (itemType) {\n case \"button\":\n return /* @__PURE__ */ jsx(ToolbarButton, { ...itemProps });\n case \"buttonToggle\":\n return /* @__PURE__ */ jsx(ToolbarButtonToggle, { ...itemProps });\n case \"buttonLink\":\n return /* @__PURE__ */ jsx(ToolbarButtonLink, { ...itemProps });\n case \"select\":\n return /* @__PURE__ */ jsx(ToolbarSelect, { ...itemProps });\n default:\n return null;\n }\n};\nconst ToolbarOverflowMenu = ({\n additionalItems,\n direction\n}) => {\n const { overflowItems, orderedIds } = useContext(ToolbarOverflowContext);\n const menuTriggerId = useId();\n const orderedItems = useMemo(() => {\n const allElements = orderedIds?.map((id) => {\n return overflowItems.find((item) => item.id === id);\n });\n return allElements?.filter((item) => item !== void 0) || [];\n }, [orderedIds, overflowItems]);\n const popoverButtonClassNames = cx(\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-overflow-trigger\"]\n );\n const overflowIcon = direction === \"horizontal\" ? IconMoreHoriz : MoreVert;\n return /* @__PURE__ */ jsxs(Popover, { noPadding: true, children: [\n /* @__PURE__ */ jsx(\n Popover.Button,\n {\n size: \"small\",\n appearance: \"ghost\",\n id: menuTriggerId,\n className: popoverButtonClassNames,\n \"data-anv\": \"toolbar-overflow-trigger\",\n \"aria-label\": \"Additional toolbar options\",\n children: /* @__PURE__ */ jsx(Icon, { svg: overflowIcon, size: \"small\" })\n }\n ),\n /* @__PURE__ */ jsx(Popover.Content, { children: /* @__PURE__ */ jsx(OverflowItemContext.Provider, { value: { isInOverflowMenu: true }, children: /* @__PURE__ */ jsxs(\n \"ul\",\n {\n role: \"menu\",\n className: styles[\"toolbar-overflow-content\"],\n \"data-anv\": \"toolbar-overflow-menu\",\n \"aria-labelledby\": menuTriggerId,\n onKeyDown: handleMenuKeyboardNavigation,\n children: [\n orderedItems.map((item) => {\n const { itemType, itemProps, id } = item;\n return /* @__PURE__ */ jsx(\n \"li\",\n {\n role: \"menuitem\",\n \"data-anv\": \"toolbar-overflow-item\",\n children: /* @__PURE__ */ jsx(\n OverflowItem,\n {\n itemType,\n itemProps,\n id\n }\n )\n },\n `${itemType}-${id}`\n );\n }),\n additionalItems?.map((item, index) => /* @__PURE__ */ jsx(\n \"li\",\n {\n role: \"menuitem\",\n \"data-anv\": \"toolbar-overflow-item\",\n children: item\n },\n `additional-item-${index}`\n ))\n ]\n }\n ) }) })\n ] });\n};\n\nconst ToolbarButton = forwardRef(\n (props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = children ? /* @__PURE__ */ jsx(\n Button,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button\",\n className: buttonClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n Button,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button\",\n className: buttonClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"button\" }, children: item });\n }\n);\nToolbarButton.displayName = \"ToolbarButton\";\n\nconst ToolbarOverflowContext = createContext({\n overflowItems: [],\n addItem: () => {\n return;\n },\n removeItem: () => {\n return;\n },\n toolbarRef: { current: null },\n orderedIds: [],\n overflow: \"wrap\"\n});\nconst ToolbarElement = forwardRef(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n associatedContent,\n className,\n children,\n style,\n direction = \"horizontal\",\n overflow = \"wrap\",\n onKeyDown,\n additionalItems,\n ...rest\n } = componentProps;\n const [overflowItems, setOverflowItems] = useState([]);\n const toolbarItemsRef = useRef(null);\n const toolbarRef = useRef(null);\n const [orderedIds, setOrderedIds] = useState([]);\n useEffect(() => {\n const newOrderedIds = Array.from(\n toolbarItemsRef.current?.querySelectorAll(\"[data-id]\") || []\n ).map((el) => {\n return el.getAttribute(\"data-id\");\n });\n setOrderedIds(newOrderedIds);\n }, [children]);\n const addItem = useCallback((item) => {\n setOverflowItems((prev) => [...prev, item]);\n }, []);\n const removeItem = useCallback((item) => {\n setOverflowItems(\n (prev) => prev.filter((component) => component.id !== item.id)\n );\n }, []);\n useEffect(() => {\n if (toolbarRef.current) {\n updateToolbarItemsTabIndex(toolbarRef.current);\n }\n }, [children]);\n const handleKeyDown = useCallback(\n (event) => {\n if (toolbarRef.current) {\n handleToolbarKeyDown(event, toolbarRef.current);\n }\n onKeyDown?.(event);\n },\n [onKeyDown]\n );\n const showOverflowMenu = overflow === \"collapse\" && overflowItems.length > 0 || !!additionalItems;\n const value = useMemo(\n () => ({\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow\n }),\n [overflowItems, addItem, removeItem, toolbarRef, orderedIds, overflow]\n );\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n const toolbarClassNames = cx(styles[\"toolbar\"], className);\n const toolbarContentClassNames = cx(styles[\"toolbar-content\"], {\n [styles[`overflow-${overflow}`]]: overflow\n });\n return /* @__PURE__ */ jsx(ToolbarOverflowContext.Provider, { value, children: /* @__PURE__ */ jsxs(\n Flex,\n {\n direction: direction === \"horizontal\" ? \"row\" : \"column\",\n wrap: overflow === \"wrap\" ? \"wrap\" : \"nowrap\",\n alignItems: \"center\",\n className: toolbarClassNames,\n style: styleCombined,\n ref: useMergeRefs([toolbarRef, ref]),\n role: \"toolbar\",\n \"data-anv\": \"toolbar\",\n \"aria-orientation\": direction,\n \"aria-label\": `Toolbar for ${associatedContent}. Use arrow keys to navigate through toolbar controls.`,\n onKeyDown: handleKeyDown,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\n Flex,\n {\n ref: useMergeRefs([toolbarItemsRef, ref]),\n className: toolbarContentClassNames,\n direction: direction === \"horizontal\" ? \"row\" : \"column\",\n wrap: overflow === \"wrap\" ? \"wrap\" : \"nowrap\",\n alignItems: \"center\",\n grow: 1,\n \"data-anv\": \"toolbar-content\",\n children\n }\n ),\n showOverflowMenu && /* @__PURE__ */ jsx(\n ToolbarOverflowMenu,\n {\n direction,\n additionalItems\n }\n )\n ]\n }\n ) });\n }\n);\nToolbarElement.displayName = \"Toolbar\";\nconst Toolbar = Object.assign(ToolbarElement, {\n /**\n * ToolbarButton component for standard clickable actions within a toolbar.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\n Button: ToolbarButton,\n /**\n * ToolbarButtonToggle component for toggleable actions within a toolbar.\n *\n * Features:\n * - Toggle state management (on/off)\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only toggles\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Visual feedback for toggle state\n * - Proper ARIA attributes for toggle semantics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n *\n * @example\n * <Toolbar.ButtonToggle checked={isItalic}>\n * Italic\n * </Toolbar.ButtonToggle>\n */\n ButtonToggle: ToolbarButtonToggle,\n /**\n * ToolbarButtonLink component for link actions within a toolbar.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only links\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Proper anchor element semantics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n *\n * @example\n * <Toolbar.ButtonLink icon={ExternalLinkIcon} href=\"/docs\" aria-label=\"Documentation\" />\n */\n ButtonLink: ToolbarButtonLink,\n /**\n * ToolbarSelect component provides a dropdown selector within a toolbar.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n *\n * @example\n * <Toolbar.Select\n * appearance=\"primary\"\n * items={colorOptions}\n * accessibleLabel=\"Text color\"\n * />\n */\n Select: ToolbarSelect\n});\n\nexport { Toolbar as T, ToolbarButton as a, ToolbarButtonToggle as b, ToolbarButtonLink as c, ToolbarSelect as d, ToolbarItemWrapper as e, ToolbarOverflowMenu as f };\n//# sourceMappingURL=Toolbar-z_R2GoaM.js.map\n","import {\n Toolbar as CoreToolbar,\n ToolbarProps as CoreToolbarProps,\n ToolbarButton as CoreToolbarButton,\n ToolbarButtonProps as CoreToolbarButtonProps,\n ToolbarButtonToggle as CoreToolbarButtonToggle,\n ToolbarButtonToggleProps as CoreToolbarButtonToggleProps,\n ToolbarButtonLink as CoreToolbarButtonLink,\n ToolbarButtonLinkProps as CoreToolbarButtonLinkProps,\n ToolbarSelect as CoreToolbarSelect,\n ToolbarSelectProps as CoreToolbarSelectProps,\n ToolbarOverflowTypes as CoreToolbarOverflowTypes,\n ToolbarItemAppearance as CoreToolbarItemAppearance,\n} from \"@servicetitan/hammer-react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the Toolbar component with tracking support\n * @property {string} associatedContent - Description of the content this toolbar is associated with, used for accessibility\n * @property {\"vertical\" | \"horizontal\"} [direction] - Orientation of the toolbar\n * @property {ToolbarOverflowTypes} [overflow] - How to handle overflow when items don't fit\n * @property {ReactElement[]} [additionalItems] - Additional items to display in the overflow menu\n * @extends DataTrackingId\n */\nexport type ToolbarProps = CoreToolbarProps & DataTrackingId;\n\n/**\n * Props for the ToolbarButton component with tracking support\n * @property {ToolbarItemAppearance} [appearance] - Visual appearance of the button\n * @property {string} [aria-label] - Accessible label for the button\n * @property {React.ReactNode} [children] - Button content\n * @property {boolean} [disabled] - Whether the button is disabled\n * @extends DataTrackingId\n */\nexport type ToolbarButtonProps = CoreToolbarButtonProps & DataTrackingId;\n\n/**\n * Props for the ToolbarButtonToggle component with tracking support\n * @property {boolean} [checked] - Whether the toggle is checked\n * @property {boolean} [disabled] - Whether the toggle is disabled\n * @property {string} [aria-label] - Accessible label for the toggle\n * @property {React.ReactNode} [children] - Toggle content\n * @extends DataTrackingId\n */\nexport type ToolbarButtonToggleProps = CoreToolbarButtonToggleProps &\n DataTrackingId;\n\n/**\n * Props for the ToolbarButtonLink component with tracking support\n * @property {string} [href] - Link destination URL\n * @property {boolean} [disabled] - Whether the link is disabled\n * @property {string} [aria-label] - Accessible label for the link\n * @property {React.ReactNode} [children] - Link content\n * @property {string} [target] - Link target attribute\n * @extends DataTrackingId\n */\nexport type ToolbarButtonLinkProps = CoreToolbarButtonLinkProps &\n DataTrackingId;\n\n/**\n * Props for the ToolbarSelect component with tracking support\n * @property {string} [selected] - Currently selected item ID\n * @property {boolean} [disabled] - Whether the select is disabled\n * @property {string} [aria-label] - Accessible label for the select\n * @property {unknown[]} [items] - Array of selectable items\n * @extends DataTrackingId\n */\nexport type ToolbarSelectProps<T> = CoreToolbarSelectProps<T> & DataTrackingId;\n\n/**\n * Toolbar overflow behavior options\n */\nexport type ToolbarOverflowTypes = CoreToolbarOverflowTypes;\n\n/**\n * Toolbar item appearance options\n */\nexport type ToolbarItemAppearance = CoreToolbarItemAppearance;\n\n/**\n * Toolbar component for grouping related interactive elements with anvil2 tracking.\n *\n * Features:\n * - Horizontal or vertical orientation\n * - Overflow handling with wrap or collapse behavior\n * - Keyboard navigation following ARIA best practices\n * - Screen reader announcements and accessibility\n * - Automatic overflow menu for collapsed items\n * - Support for buttons, toggles, selects, and links\n * - Layout utilities for positioning and spacing\n * - Context-based state management for child components\n * - Automatic tracking ID generation for analytics\n * - Integration with anvil2 tracking system\n *\n * @example\n * <Toolbar associatedContent=\"document editor\" overflow=\"collapse\">\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold\" />\n * <Toolbar.ButtonToggle icon={ItalicIcon} aria-label=\"Italic\" />\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * />\n * </Toolbar>\n */\nexport function ToolbarElement(props: ToolbarProps) {\n const trackingId = useTrackingId({\n name: \"Toolbar\",\n data: {\n overflow: props.overflow,\n direction: props.direction,\n associatedContent: props.associatedContent,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbar data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\nexport function ToolbarButton(props: ToolbarButtonProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButton\",\n data: {\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButton data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Toggle state management\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n */\nexport function ToolbarButtonToggle(props: ToolbarButtonToggleProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButtonToggle\",\n data: {\n checked: props.checked,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButtonToggle data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n */\nexport function ToolbarButtonLink(props: ToolbarButtonLinkProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButtonLink\",\n data: {\n href: props.href,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n target: props.target,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButtonLink data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n */\nexport function ToolbarSelect(props: ToolbarSelectProps<unknown>) {\n const trackingId = useTrackingId({\n name: \"ToolbarSelect\",\n data: {\n selected: props.selected,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n items: props.items,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarSelect data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * Toolbar component for grouping related interactive elements.\n *\n * Features:\n * - Horizontal or vertical orientation\n * - Overflow handling with wrap or collapse behavior\n * - Keyboard navigation following ARIA best practices\n * - Screen reader announcements and accessibility\n * - Automatic overflow menu for collapsed items\n * - Support for buttons, toggles, selects, and links\n * - Layout utilities for positioning and spacing\n * - Context-based state management for child components\n *\n * @example\n * <Toolbar associatedContent=\"document editor\" overflow=\"collapse\">\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold\" />\n * <Toolbar.ButtonToggle icon={ItalicIcon} aria-label=\"Italic\" />\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * />\n * </Toolbar>\n */\nexport const Toolbar = Object.assign(ToolbarElement, {\n /**\n * ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\n Button: ToolbarButton,\n /**\n * ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Toggle state management\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n */\n ButtonToggle: ToolbarButtonToggle,\n /**\n * ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n */\n ButtonLink: ToolbarButtonLink,\n /**\n * ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n */\n Select: ToolbarSelect,\n});\n"],"names":["ToolbarButtonToggle","ToolbarButtonLink","ToolbarSelect","Down","ToolbarButton","IconMoreHoriz","MoreVert","ToolbarElement","Toolbar","CoreToolbar","CoreToolbarButton","CoreToolbarButtonToggle","CoreToolbarButtonLink","CoreToolbarSelect"],"mappings":"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K,MAAM,GAAG,MAAM,GAAG,QAAQ;AAC3D,cAAc,UAAU,EAAE,QAAQ;AAClC,cAAc,IAAI,EAAE,CAAC;AACrB,cAAc,UAAU,EAAE,iBAAiB;AAC3C,cAAc;AACd;AACA,WAAW;AACX,UAAU,gBAAgB,oBAAoB,GAAG;AACjD,YAAY,mBAAmB;AAC/B,YAAY;AACZ,cAAc,SAAS;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA,KAAK,EAAE,CAAC;AACR;AACA,CAAC;AACDA,gBAAc,CAAC,WAAW,GAAG,SAAS;AACtC,MAAMC,SAAO,GAAG,MAAM,CAAC,MAAM,CAACD,gBAAc,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAEH,eAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAEJ,qBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAEC,mBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAEC;AACV,CAAC,CAAC;;ACvlBK,SAAS,eAAe,KAAqB,EAAA;AAClD,EAAA,MAAM,aAAa,aAAc,CAAA;AAAA,IAC/B,IAAM,EAAA,SAAA;AAAA,IACN,IAAM,EAAA;AAAA,MACJ,UAAU,KAAM,CAAA,QAAA;AAAA,MAChB,WAAW,KAAM,CAAA,SAAA;AAAA,MACjB,mBAAmB,KAAM,CAAA;AAAA,KAC3B;AAAA,IACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GA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"}
|
package/dist/Toolbar.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { T as Toolbar, b as ToolbarButton, d as ToolbarButtonLink, c as ToolbarButtonToggle, a as ToolbarElement, e as ToolbarSelect, T as default } from './Toolbar-
|
|
1
|
+
export { T as Toolbar, b as ToolbarButton, d as ToolbarButtonLink, c as ToolbarButtonToggle, a as ToolbarElement, e as ToolbarSelect, T as default } from './Toolbar-CSWhVSUM.js';
|
|
2
2
|
//# sourceMappingURL=Toolbar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.104 13.373a.194.194 0 0 1 .254.115l.376 1.035a.21.21 0 0 1-.117.26q-.19.081-.368.185l-.026.017a3.5 3.5 0 1 0 3.87 5.82.21.21 0 0 1 .285.03l.707.84c.07.085.06.212-.027.28a5 5 0 0 1-.559.374v.001l-.071.04-.132.
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.104 13.373a.194.194 0 0 1 .254.115l.376 1.035a.21.21 0 0 1-.117.26q-.19.081-.368.185l-.026.017a3.5 3.5 0 1 0 3.87 5.82.21.21 0 0 1 .285.03l.707.84c.07.085.06.212-.027.28a5 5 0 0 1-.559.374v.001l-.071.04-.132.07-.104.051a6 6 0 0 1-.322.145l-.09.035-.068.027-.004-.002a5 5 0 0 1-3.002.134 5.003 5.003 0 0 1-3.536-6.124 5 5 0 0 1 1.616-2.535l.001-.001.065-.054.054-.043q.17-.133.35-.253l.044-.029q.38-.244.803-.418m-4.57 1.948-.182.486a7 7 0 0 0-.218 3.558l.12.504A7 7 0 0 0 12.26 22H5c-.55 0-1-.45-1-1v-2c0-2.556 4.921-3.89 7.675-3.991q-.075.154-.142.312m9.683 4.062a.21.21 0 0 1 .262-.117l1.032.376a.194.194 0 0 1 .116.255 5 5 0 0 1-.672 1.16.194.194 0 0 1-.278.027l-.842-.706a.21.21 0 0 1-.028-.285 3.5 3.5 0 0 0 .41-.71m-.856-4.013a.196.196 0 0 1 .269.269c-.575.985-1.648 2.794-1.932 3.073a1 1 0 0 1-1.402-1.426c.284-.28 2.083-1.343 3.065-1.916m2.366 1.795a.195.195 0 0 1 .227.163q.046.33.047.672-.001.341-.047.67a.194.194 0 0 1-.227.164l-1.082-.19a.21.21 0 0 1-.168-.232 3.6 3.6 0 0 0 0-.824.21.21 0 0 1 .168-.233zM18 13q.34 0 .67.046c.11.015.182.119.163.227l-.189 1.082a.21.21 0 0 1-.232.168 3.6 3.6 0 0 0-.825 0 .21.21 0 0 1-.233-.168l-.189-1.082a.194.194 0 0 1 .163-.227q.33-.045.672-.046M12 1a6 6 0 0 1 5.811 4.5H20a1 1 0 1 1 0 2h-2.023A5.999 5.999 0 0 1 6 7a6 6 0 0 1 6-6M8.043 7.5C8.339 9.312 10.179 11 12 11s3.66-1.688 3.957-3.5z"/></svg>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.104 13.373a.195.195 0 0 1 .254.115l.376 1.035a.21.21 0 0 1-.117.261 3.502 3.502 0 0 0-1.648 4.966 3.5 3.5 0 0 0 4.45 1.448q.038-.016.074-.034.055-.024.109-.052.258-.132.49-.306a.21.21 0 0 1 .286.029l.707.84c.07.085.06.212-.027.28a5 5 0 0 1-.559.374l.001.001q-.13.075-.263.14l-.082.039a5 5 0 0 1-.208.
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M16.104 13.373a.195.195 0 0 1 .254.115l.376 1.035a.21.21 0 0 1-.117.261 3.502 3.502 0 0 0-1.648 4.966 3.5 3.5 0 0 0 4.45 1.448q.038-.016.074-.034.055-.024.109-.052.258-.132.49-.306a.21.21 0 0 1 .286.029l.707.84c.07.085.06.212-.027.28a5 5 0 0 1-.559.374l.001.001q-.13.075-.263.14l-.082.039a5 5 0 0 1-.208.093l-.05.024-.011.003a5 5 0 0 1-3.18.201 5.003 5.003 0 0 1-3.536-6.124 5 5 0 0 1 1.76-2.651l.012-.011.064-.047q.08-.06.161-.115l.074-.05a5 5 0 0 1 .863-.459m-4.57 1.948-.182.486a7 7 0 0 0-.286 1.248c-1.014.108-2.259.378-3.324.804-.71.285-1.215.591-1.51.864-.262.24-.237.333-.232.29V20h5.296a7 7 0 0 0 .964 2H5c-.55 0-1-.45-1-1v-2c0-2.556 4.921-3.89 7.675-3.991q-.075.154-.142.312m9.683 4.062a.21.21 0 0 1 .262-.117l1.032.376a.195.195 0 0 1 .116.255 5 5 0 0 1-.672 1.16.194.194 0 0 1-.278.027l-.842-.706a.21.21 0 0 1-.028-.285q.245-.33.41-.71m-.856-4.013a.196.196 0 0 1 .269.269c-.575.985-1.648 2.794-1.932 3.073a1 1 0 0 1-1.402-1.426c.284-.28 2.083-1.343 3.065-1.916m2.366 1.795a.195.195 0 0 1 .227.163q.046.33.047.672-.001.342-.047.67a.195.195 0 0 1-.227.164l-1.082-.19a.21.21 0 0 1-.168-.232 3.6 3.6 0 0 0 0-.824.21.21 0 0 1 .168-.233zM18 13q.34 0 .67.046a.194.194 0 0 1 .163.227l-.189 1.082a.21.21 0 0 1-.232.168 3.6 3.6 0 0 0-.825 0 .21.21 0 0 1-.233-.168l-.189-1.082a.194.194 0 0 1 .163-.227q.33-.045.672-.046M12 1a6 6 0 0 1 5.811 4.5H20a1 1 0 1 1 0 2h-2.023A5.999 5.999 0 0 1 6 7a6 6 0 0 1 6-6M8.043 7.5C8.339 9.312 10.179 11 12 11s3.66-1.688 3.957-3.5z"/></svg>
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { TimeFieldProps as CoreTimeFieldProps, TimeFieldChange } from '@servicetitan/hammer-react';
|
|
2
|
+
import { DataTrackingId } from '../../types/DataTrackingId';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the TimeField component
|
|
5
|
+
* @property {string | null} [value] - The current value of the time field
|
|
6
|
+
* @property {string | null} [defaultValue] - The default value for uncontrolled mode
|
|
7
|
+
* @property {TimeFieldChangeHandler} [onChange] - Callback when the time value changes
|
|
8
|
+
* @property {TimeFormat} [format] - Time format to use
|
|
9
|
+
* @property {number} [step] - Time increment in minutes
|
|
10
|
+
* @property {string | null} [min] - Minimum allowed time
|
|
11
|
+
* @property {string | null} [max] - Maximum allowed time
|
|
12
|
+
* @property {boolean} [autoround] - Whether to automatically round to the nearest step
|
|
13
|
+
* @property {boolean} [disableSuggestions] - Whether to disable the dropdown suggestions
|
|
14
|
+
* @extends DataTrackingId
|
|
15
|
+
*/
|
|
16
|
+
export type TimeFieldProps = CoreTimeFieldProps & DataTrackingId;
|
|
17
|
+
/**
|
|
18
|
+
* Change event data for TimeField onChange callback.
|
|
19
|
+
*/
|
|
20
|
+
export type { TimeFieldChange };
|
|
21
|
+
/**
|
|
22
|
+
* TimeField component for entering time values with auto-rounding and suggestions.
|
|
23
|
+
*
|
|
24
|
+
* Features:
|
|
25
|
+
* - Supports 12-hour and 24-hour time formats
|
|
26
|
+
* - Min/max time constraints handled during input parsing
|
|
27
|
+
* - Auto-rounding to step intervals when autoround is true
|
|
28
|
+
* - Dropdown suggestions for quick time selection
|
|
29
|
+
* - Controlled and uncontrolled modes
|
|
30
|
+
* - Smart input masking with placeholders
|
|
31
|
+
* - Integration with MaskedTimeInput for auto-complete
|
|
32
|
+
* - Validation handled by implementors using onChange callback
|
|
33
|
+
* - Automatic tracking ID generation for analytics
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* <TimeField
|
|
37
|
+
* label="Meeting Time"
|
|
38
|
+
* value="14:30"
|
|
39
|
+
* format={24}
|
|
40
|
+
* step={30}
|
|
41
|
+
* min="09:00"
|
|
42
|
+
* max="17:00"
|
|
43
|
+
* autoround
|
|
44
|
+
* disableSuggestions
|
|
45
|
+
* onChange={(change) => {
|
|
46
|
+
* // Handle time change and validation
|
|
47
|
+
* if (change.isInputEmpty && required) {
|
|
48
|
+
* // Show required error
|
|
49
|
+
* }
|
|
50
|
+
* }}
|
|
51
|
+
* />
|
|
52
|
+
*/
|
|
53
|
+
export declare const TimeField: import('react').ForwardRefExoticComponent<TimeFieldProps & import('react').RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './TimeField';
|