@servicetitan/anvil2 1.42.2 → 1.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/{Combobox-D2aSaDkz.js → Combobox-Ct30JT3y.js} +8 -8
  3. package/dist/{Combobox-D2aSaDkz.js.map → Combobox-Ct30JT3y.js.map} +1 -1
  4. package/dist/Combobox.js +1 -1
  5. package/dist/{DateField-D28_sa7P.js → DateField-_TqCdcYv.js} +4 -3
  6. package/dist/{DateField-D28_sa7P.js.map → DateField-_TqCdcYv.js.map} +1 -1
  7. package/dist/DateField.js +1 -1
  8. package/dist/{DateFieldRange--oSGfjYa.js → DateFieldRange-Dk8WA52F.js} +2 -2
  9. package/dist/{DateFieldRange--oSGfjYa.js.map → DateFieldRange-Dk8WA52F.js.map} +1 -1
  10. package/dist/DateFieldRange.js +1 -1
  11. package/dist/{DateFieldSingle-0a8Bk7Yj.js → DateFieldSingle-D3xD8YZk.js} +2 -2
  12. package/dist/{DateFieldSingle-0a8Bk7Yj.js.map → DateFieldSingle-D3xD8YZk.js.map} +1 -1
  13. package/dist/DateFieldSingle.js +1 -1
  14. package/dist/{DateFieldYearless-DCv9WJdu.js → DateFieldYearless-BxkCSNk5.js} +2 -2
  15. package/dist/{DateFieldYearless-DCv9WJdu.js.map → DateFieldYearless-BxkCSNk5.js.map} +1 -1
  16. package/dist/DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js +1431 -0
  17. package/dist/DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js.map +1 -0
  18. package/dist/DateFieldYearless.js +1 -1
  19. package/dist/{Page-KN0DLtcf.js → Page-CxB5N9dR.js} +36 -36
  20. package/dist/{Page-KN0DLtcf.js.map → Page-CxB5N9dR.js.map} +1 -1
  21. package/dist/Page.css +72 -72
  22. package/dist/Page.js +1 -1
  23. package/dist/{Popover-B1HaUjGI.js → Popover-BPiqdyu1.js} +2 -2
  24. package/dist/{Popover-B1HaUjGI.js.map → Popover-BPiqdyu1.js.map} +1 -1
  25. package/dist/{Popover-CU2cGVD8-FWJOuFRj.js → Popover-CU2cGVD8-Casl3vM1.js} +2 -2
  26. package/dist/{Popover-CU2cGVD8-FWJOuFRj.js.map → Popover-CU2cGVD8-Casl3vM1.js.map} +1 -1
  27. package/dist/Popover.js +1 -1
  28. package/dist/TimeField-DRHLRqN3.js +913 -0
  29. package/dist/TimeField-DRHLRqN3.js.map +1 -0
  30. package/dist/TimeField.css +10 -0
  31. package/dist/TimeField.d.ts +2 -0
  32. package/dist/TimeField.js +2 -0
  33. package/dist/TimeField.js.map +1 -0
  34. package/dist/{Toolbar-BznMJKGJ.js → Toolbar-CSWhVSUM.js} +2 -2
  35. package/dist/{Toolbar-BznMJKGJ.js.map → Toolbar-CSWhVSUM.js.map} +1 -1
  36. package/dist/Toolbar.js +1 -1
  37. package/dist/assets/icons/st/gnav_field_pro_active.svg +1 -1
  38. package/dist/assets/icons/st/gnav_field_pro_inactive.svg +1 -1
  39. package/dist/assets/icons/st/gnav_home_filled.svg +1 -0
  40. package/dist/assets/icons/st/gnav_home_outline.svg +1 -0
  41. package/dist/assets/icons/st.ts +2 -0
  42. package/dist/components/TimeField/TimeField.d.ts +53 -0
  43. package/dist/components/TimeField/index.d.ts +1 -0
  44. package/dist/components/index.d.ts +1 -0
  45. package/dist/event-BEJFimi3.js +6 -0
  46. package/dist/event-BEJFimi3.js.map +1 -0
  47. package/dist/index.js +9 -8
  48. package/dist/index.js.map +1 -1
  49. package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT-BZcjPkvT.js +18 -0
  50. package/dist/usePopoverCloseDelayWorkaround-BZcjPkvT-BZcjPkvT.js.map +1 -0
  51. package/dist/{DateFieldYearless-C3_oGDr3-5meexzZO.js → usePopoverSupport-B9Lsqryr-DhZHMoNb.js} +470 -1429
  52. package/dist/usePopoverSupport-B9Lsqryr-DhZHMoNb.js.map +1 -0
  53. package/package.json +5 -5
  54. package/dist/DateFieldYearless-C3_oGDr3-5meexzZO.js.map +0 -1
  55. package/dist/usePopoverCloseDelayWorkaround-BhhG-xEB-hfJZaXHC.js +0 -21
  56. package/dist/usePopoverCloseDelayWorkaround-BhhG-xEB-hfJZaXHC.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DateFieldYearless-CAUHW6Ow-EUWxJ0OY.js","sources":["../../hammer-react/dist/DateFieldYearless-CAUHW6Ow.js"],"sourcesContent":["import { jsx, jsxs } from 'react/jsx-runtime';\nimport { maskitoDateOptionsGenerator, maskitoWithPlaceholder, maskitoParseDate, maskitoDateRangeOptionsGenerator } from '@maskito/kit';\nimport { useMaskito } from '@maskito/react';\nimport { T as TextField } from './TextField-CRTh0gL_.js';\nimport { useRef, useEffect, forwardRef, useState, useMemo, useImperativeHandle, useCallback } from 'react';\nimport { useMergeRefs } from '@floating-ui/react';\nimport { DateTime } from 'luxon';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport Event from '@servicetitan/hammer-icon/mdi/round/event.svg';\nimport { P as Popover } from './Popover-CU2cGVD8.js';\nimport { C as Calendar } from './Calendar-DD5kmVd3.js';\nimport { u as usePopoverSupport } from './usePopoverSupport-B9Lsqryr.js';\nimport { u as useOptionallyControlledState } from './useOptionallyControlledState-DAv5LXXh.js';\nimport { u as useMergeRefs$1 } from './useMergeRefs-Bde85AWI.js';\nimport { u as usePopoverCloseDelayWorkaround } from './usePopoverCloseDelayWorkaround-BZcjPkvT.js';\nimport { u as useKeyboardFocusables } from './useKeyboardFocusables-CwVMAe5C.js';\n\nfunction usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nconst makeZeroShortcutPreprocessor = (templateString, separator) => {\n const zeroShortcutPreprocessor = ({ elementState, data }, actionType) => {\n if (actionType === \"insert\" && // the user is inserting a character\n data === separator && // the user typed the separator character\n elementState.selection[0] === elementState.selection[1]) {\n const selectionIndex = elementState.selection[0];\n const separatorPositions = templateString.split(\"\").map((char, index) => char === separator ? index : null).filter((position) => position !== null).filter((position) => position > selectionIndex);\n const noRemainingSegments = !separatorPositions.length;\n const nothingEnteredYet = !elementState.value.length;\n const previousCharacterIsNotADigit = !/^\\d$/.test(\n elementState.value.slice(-1)\n );\n const currentCharacterIsSeparator = templateString[selectionIndex] === separator;\n if (noRemainingSegments || nothingEnteredYet || previousCharacterIsNotADigit || currentCharacterIsSeparator) {\n return { elementState, data };\n }\n const firstIndexOfSegment = Math.max(\n elementState.value.lastIndexOf(separator) + 1,\n elementState.value.lastIndexOf(\" \") + 1,\n 0\n );\n const lastIndexOfSegment = separatorPositions[0];\n const digitsCurrentlyInSegment = elementState.value.slice(firstIndexOfSegment);\n const targetNumberOfDigitsInSegment = templateString.slice(\n firstIndexOfSegment,\n lastIndexOfSegment\n ).length;\n const newSegment = digitsCurrentlyInSegment.padStart(\n targetNumberOfDigitsInSegment,\n \"0\"\n );\n const newValue = `${elementState.value.slice(0, firstIndexOfSegment)}${newSegment}`;\n return {\n elementState: {\n value: newValue + data,\n selection: [newValue.length, newValue.length]\n },\n data\n };\n }\n return { elementState, data };\n };\n return zeroShortcutPreprocessor;\n};\n\nconst datePlaceholderMask$1 = ({\n mode,\n separator = \"/\",\n placeholder\n}) => {\n const dateOptions = maskitoDateOptionsGenerator({\n mode,\n separator\n });\n const { plugins, removePlaceholder, ...placeholderOptions } = maskitoWithPlaceholder(placeholder);\n const datePlaceholderMask2 = {\n ...dateOptions,\n plugins: plugins.concat(dateOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...dateOptions.preprocessors,\n makeZeroShortcutPreprocessor(mode, separator)\n ],\n postprocessors: [\n ...dateOptions.postprocessors,\n ...placeholderOptions.postprocessors\n ]\n };\n return { options: datePlaceholderMask2, removePlaceholder };\n};\n\nconst DateModeToFormatMap = {\n \"mm/dd/yyyy\": \"MM/dd/yyyy\",\n \"dd/mm/yyyy\": \"dd/MM/yyyy\",\n \"yyyy/mm/dd\": \"yyyy/MM/dd\"\n};\nconst DateModeToPlaceholderMap = {\n \"dd/mm/yyyy\": \"__/__/____\",\n \"mm/dd/yyyy\": \"__/__/____\",\n \"yyyy/mm/dd\": \"____/__/__\"\n};\n\nconst MaskedDateInput = forwardRef(\n ({\n onChange,\n mode = \"mm/dd/yyyy\",\n lastValidDate,\n disableHint = false,\n ...props\n }, ref) => {\n const placeholder = DateModeToPlaceholderMap[mode];\n const [inputValue, setInputValue] = useState(placeholder);\n const { options, removePlaceholder } = datePlaceholderMask$1({\n mode,\n placeholder\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousDateRef = useRef(null);\n const previousMode = usePrevious(mode);\n useEffect(() => {\n if (mode !== previousMode) {\n setInputValue(\n (oldInputValue) => swapMode$2(oldInputValue, previousMode ?? mode, mode)\n );\n }\n }, [mode, previousMode]);\n useEffect(() => {\n if (lastValidDate === void 0) return;\n if (lastValidDate === previousDateRef.current) return;\n if (!lastValidDate?.equals(previousDateRef.current ?? DateTime.now())) {\n setInputValue(\n lastValidDate?.toFormat(DateModeToFormatMap[mode]) ?? placeholder\n );\n previousDateRef.current = lastValidDate;\n }\n }, [lastValidDate, mode, placeholder]);\n const currentParsedData = useMemo(() => {\n return parseInputValue$1(inputValue, mode, removePlaceholder);\n }, [inputValue, mode, removePlaceholder]);\n const handleChange = (event) => {\n setInputValue(event.target.value);\n const { date, isInputValid, isInputEmpty } = parseInputValue$1(\n event.target.value,\n mode,\n removePlaceholder\n );\n const isValueDifferent = isInputValid !== currentParsedData.isInputValid || // The input has changed validity\n isInputEmpty !== currentParsedData.isInputEmpty || // The input has changed emptiness\n date === null !== (lastValidDate === null) || // The input has changed from empty to non-empty or vice versa\n date !== null && lastValidDate !== null && !date.equals(lastValidDate);\n if (!isValueDifferent) return;\n onChange?.({\n date: date ?? lastValidDate ?? null,\n isInputValid,\n isInputEmpty\n });\n };\n useImperativeHandle(ref, () => {\n const input = inputRef.current;\n if (!input) return null;\n return Object.assign(input, {\n setDate: (date) => {\n setInputValue(\n date?.toFormat(DateModeToFormatMap[mode]) ?? placeholder\n );\n }\n });\n }, [mode, placeholder]);\n return /* @__PURE__ */ jsx(\n TextField,\n {\n ref: combinedRef,\n \"data-date\": lastValidDate?.toISODate() ?? \"\",\n \"data-input-valid\": currentParsedData.isInputValid,\n \"data-input-empty\": currentParsedData.isInputEmpty,\n ...props,\n showCounter: false,\n value: inputValue,\n onChange: handleChange,\n prefix: /* @__PURE__ */ jsx(Icon, { svg: Event }),\n hint: disableHint ? void 0 : `Format: ${mode}`\n }\n );\n }\n);\nMaskedDateInput.displayName = \"MaskedDateInput\";\nfunction parseInputValue$1(value, mode, removePlaceholder) {\n const valueMinusPlaceholder = removePlaceholder(value);\n const jsDate = maskitoParseDate(valueMinusPlaceholder, { mode });\n const luxonDate = jsDate ? DateTime.fromJSDate(jsDate, { zone: \"utc\" }) : null;\n return {\n date: luxonDate,\n isInputValid: !!luxonDate,\n isInputEmpty: valueMinusPlaceholder === \"\"\n };\n}\nfunction swapMode$2(inputString, previousMode, mode) {\n const { day, month, year } = divideSegments$1(inputString, previousMode);\n return orderSegmentsByMode(day, month, year, mode);\n}\nfunction divideSegments$1(value, mode) {\n const [segment1, segment2, segment3] = value.split(\"/\");\n if (mode === \"dd/mm/yyyy\") {\n return { day: segment1, month: segment2, year: segment3 };\n } else if (mode === \"mm/dd/yyyy\") {\n return { day: segment2, month: segment1, year: segment3 };\n } else if (mode === \"yyyy/mm/dd\") {\n return { day: segment3, month: segment2, year: segment1 };\n }\n return { day: \"__\", month: \"__\", year: \"____\" };\n}\nfunction orderSegmentsByMode(day, month, year, mode) {\n if (mode === \"dd/mm/yyyy\") {\n return `${day}/${month}/${year}`;\n } else if (mode === \"mm/dd/yyyy\") {\n return `${month}/${day}/${year}`;\n } else if (mode === \"yyyy/mm/dd\") {\n return `${year}/${month}/${day}`;\n } else {\n return \"\";\n }\n}\n\nfunction containsRelatedTarget(event) {\n if (event.currentTarget instanceof HTMLElement && event.relatedTarget instanceof HTMLElement) {\n return event.currentTarget.contains(event.relatedTarget);\n }\n return false;\n}\nfunction useFocusWithin({\n onBlur,\n onFocus\n} = {}) {\n const [focused, setFocused] = useState(false);\n const focusedRef = useRef(false);\n const elementRef = useRef(null);\n const _setFocused = useCallback((value) => {\n setFocused(value);\n focusedRef.current = value;\n }, []);\n const handleFocusIn = useCallback(\n (event) => {\n if (!focusedRef.current) {\n _setFocused(true);\n onFocus?.(event);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onFocus]\n );\n const handleFocusOut = useCallback(\n (event) => {\n if (focusedRef.current && !containsRelatedTarget(event)) {\n _setFocused(false);\n onBlur?.(event);\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onBlur]\n );\n useEffect(() => {\n const element = elementRef.current;\n if (!element) {\n return;\n }\n element.addEventListener(\"focusin\", handleFocusIn);\n element.addEventListener(\"focusout\", handleFocusOut);\n return () => {\n element.removeEventListener(\"focusin\", handleFocusIn);\n element.removeEventListener(\"focusout\", handleFocusOut);\n };\n }, [handleFocusIn, handleFocusOut]);\n return { ref: elementRef, focused };\n}\n\nfunction convertStringToDate(v) {\n if (v === void 0 || v === null) {\n return v;\n }\n const date = DateTime.fromISO(v, { setZone: true, zone: \"utc\" }).startOf(\n \"day\"\n );\n if (date.isValid) {\n return date;\n }\n return null;\n}\nfunction validateDate({\n date,\n constraints\n}) {\n const { required, unavailable, minDate, maxDate } = constraints;\n if (!date) {\n return required ? false : true;\n }\n if (unavailable?.dates?.some((d) => d.equals(date))) {\n return false;\n }\n if (unavailable?.daysOfWeek?.includes(date.weekday)) {\n return false;\n }\n if (minDate && date < minDate) {\n return false;\n }\n if (maxDate && date > maxDate) {\n return false;\n }\n return true;\n}\nfunction validateYearlessDate({\n value,\n constraints\n}) {\n const { required, unavailable, minDate, maxDate } = constraints;\n if (!value || !value?.day && !value?.month) {\n return required ? false : true;\n }\n if (value.day === null || value.month === null) {\n return false;\n }\n if (unavailable?.dates?.some(\n (d) => d.day === value.day && d.month === value.month\n )) {\n return false;\n }\n const minDateMonth = minDate?.month ?? 1;\n const minDateDay = minDate?.day ?? 1;\n const maxDateMonth = maxDate?.month ?? 12;\n const maxDateDay = maxDate?.day ?? 31;\n if (value.month < minDateMonth || // Earlier month\n value.month === minDateMonth && value.day < minDateDay) {\n return false;\n }\n if (value.month > maxDateMonth || // Later month\n value.month === maxDateMonth && value.day > maxDateDay) {\n return false;\n }\n return true;\n}\n\nfunction useDateFieldSingleConversion({\n value,\n defaultValue,\n minDate,\n maxDate,\n unavailable,\n onChange\n}) {\n const normalizedValue = useMemo(() => convertStringToDate(value), [value]);\n const normalizedDefaultValue = useMemo(\n () => convertStringToDate(defaultValue),\n [defaultValue]\n );\n const normalizedMinDate = useMemo(\n () => convertStringToDate(minDate),\n [minDate]\n );\n const normalizedMaxDate = useMemo(\n () => convertStringToDate(maxDate),\n [maxDate]\n );\n const normalizedUnavailableDates = useMemo(\n () => unavailable?.dates?.map((d) => convertStringToDate(d)).filter((d) => d !== null && d !== void 0),\n [unavailable?.dates]\n );\n const handleChange = useCallback(\n (change) => {\n onChange?.({\n ...change,\n date: change.date?.toISODate() ?? null\n });\n },\n [onChange]\n );\n return {\n value: normalizedValue,\n defaultValue: normalizedDefaultValue,\n minDate: normalizedMinDate,\n maxDate: normalizedMaxDate,\n unavailable: {\n dates: normalizedUnavailableDates,\n daysOfWeek: unavailable?.daysOfWeek\n },\n onChange: handleChange\n };\n}\n\nfunction DateFieldSingleCalendar({\n onKeyDown,\n value,\n onSelection,\n minDate,\n maxDate,\n unavailable,\n ...rest\n}) {\n const handleCalendarSelection = (data) => {\n if (data.value) {\n const date = DateTime.fromISO(data.value, { zone: \"utc\" });\n onSelection(date);\n }\n };\n return /* @__PURE__ */ jsx(\n Calendar,\n {\n ...rest,\n range: false,\n onKeyDown,\n defaultFocusedDate: value?.toISODate() || DateTime.now().toISODate(),\n value: value?.toISODate() || void 0,\n onSelection: handleCalendarSelection,\n defaultTimeZone: \"UTC\",\n minDate: minDate?.toISODate() ?? void 0,\n maxDate: maxDate?.toISODate() ?? void 0,\n unavailable: unavailable ? {\n dates: unavailable.dates?.map((d) => d.toISODate() ?? \"\"),\n daysOfWeek: unavailable.daysOfWeek\n } : void 0,\n _disableAutofocus: true\n }\n );\n}\n\nconst useDateFieldOrchestration = ({\n inputRef,\n calendarDefaultOpen,\n popoverContentRef,\n disableCalendar = false\n}) => {\n const documentRef = useRef(document.body);\n const [calendarOpen, setCalendarOpen] = useState(calendarDefaultOpen);\n const { focusables } = useKeyboardFocusables(documentRef, {\n observeChange: true\n });\n const { focusables: popoverFocusables } = useKeyboardFocusables(\n popoverContentRef,\n {\n observeChange: true\n }\n );\n const pageFocusables = focusables?.filter(\n (item) => !popoverFocusables?.includes(item)\n );\n const handleCalendarKeyDown = (event) => {\n if (event.key === \"Escape\") {\n inputRef.current?.focus();\n }\n };\n const focusToCalendar = () => {\n if (popoverContentRef.current) {\n const currentFocusable = popoverContentRef.current.querySelectorAll('[tabindex = \"0\"]')[0];\n if (currentFocusable) {\n currentFocusable.focus();\n }\n }\n };\n const handleInputKeyDown = (ev) => {\n if (disableCalendar) {\n return;\n }\n let currentFocusIndex = 0;\n switch (ev.key) {\n case \"Escape\":\n setCalendarOpen(false);\n break;\n case \"Tab\":\n if (!calendarOpen || !pageFocusables?.length) {\n break;\n }\n ev.preventDefault();\n currentFocusIndex = pageFocusables.indexOf(inputRef.current) || 0;\n setCalendarOpen(false);\n if (ev.shiftKey) {\n if (currentFocusIndex === 0) {\n requestAnimationFrame(\n () => pageFocusables[pageFocusables.length - 1].focus()\n );\n } else {\n requestAnimationFrame(\n () => pageFocusables[currentFocusIndex - 1].focus()\n );\n }\n break;\n }\n if (pageFocusables.length > currentFocusIndex + 1) {\n requestAnimationFrame(\n () => pageFocusables[currentFocusIndex + 1].focus()\n );\n } else {\n requestAnimationFrame(() => pageFocusables[0].focus());\n }\n break;\n case \"ArrowDown\":\n if (!calendarOpen) {\n setCalendarOpen(true);\n setTimeout(focusToCalendar, 200);\n } else {\n focusToCalendar();\n }\n }\n };\n return {\n calendarOpen,\n setCalendarOpen,\n handleCalendarKeyDown,\n handleInputKeyDown\n };\n};\n\nfunction useDateFieldSingleState({\n valueProp,\n defaultValueProp,\n inputRef,\n onChange\n}) {\n const [value, setValue] = useOptionallyControlledState({\n controlledValue: valueProp,\n defaultValue: defaultValueProp\n });\n const setSharedValue = (date) => {\n inputRef.current?.setDate(date);\n setValue(date);\n };\n const handleInputChange = (change) => {\n const date = change.isInputEmpty ? null : change.date?.startOf(\"day\") ?? null;\n onChange?.({\n date,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty\n });\n if (change.isInputValid) {\n setSharedValue(change.isInputEmpty ? null : change.date);\n }\n if (change.isInputEmpty) {\n setSharedValue(null);\n return;\n }\n if (change.date) {\n setSharedValue(change.date);\n }\n };\n const handleCalendarSelection = (date) => {\n setSharedValue(date);\n onChange?.({\n date,\n isInputValid: true,\n isInputEmpty: false\n });\n };\n return {\n value,\n setValue: setSharedValue,\n handleInputChange,\n handleCalendarSelection\n };\n}\n\nconst DateFieldSingle = ({\n onFocus,\n onBlur,\n disableCalendar,\n required,\n mode,\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp,\n ...rest\n}) => {\n const inputRef = useRef(null);\n const {\n value: normalizedValue,\n defaultValue: normalizedDefaultValue,\n minDate,\n maxDate,\n unavailable,\n onChange\n } = useDateFieldSingleConversion({\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange: onChangeProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp\n });\n const handleChange = (change) => {\n onChange?.({\n ...change,\n isDateValid: validateDate({\n date: change.date,\n constraints: {\n required,\n unavailable,\n minDate: minDate ?? void 0,\n maxDate: maxDate ?? void 0\n }\n })\n });\n };\n const { value, handleInputChange, handleCalendarSelection } = useDateFieldSingleState({\n valueProp: normalizedValue,\n defaultValueProp: normalizedDefaultValue,\n inputRef,\n onChange: handleChange\n });\n const { ref: wrapperRef } = useFocusWithin({\n onBlur,\n onFocus\n });\n const [popoverTriggerRef, setPopoverTriggerRef] = useState();\n const popoverContentRef = useRef(null);\n const combinedRef = useMergeRefs$1([popoverTriggerRef, inputRef]);\n const {\n calendarOpen,\n setCalendarOpen,\n handleCalendarKeyDown,\n handleInputKeyDown\n } = useDateFieldOrchestration({\n inputRef,\n calendarDefaultOpen: false,\n popoverContentRef,\n disableCalendar\n });\n const popoverSupported = usePopoverSupport();\n const shouldShowCalendar = usePopoverCloseDelayWorkaround(calendarOpen);\n const currentValidity = useMemo(\n () => validateDate({\n date: value,\n constraints: {\n required,\n unavailable,\n minDate: minDate ?? void 0,\n maxDate: maxDate ?? void 0\n }\n }),\n [value, required, unavailable, minDate, maxDate]\n );\n const justTheField = /* @__PURE__ */ jsx(\n MaskedDateInput,\n {\n ...rest,\n mode,\n ref: combinedRef,\n onChange: handleInputChange,\n onKeyDown: handleInputKeyDown,\n onClick: () => setCalendarOpen(true),\n lastValidDate: value,\n required,\n autoComplete: \"off\",\n \"data-date-valid\": currentValidity\n }\n );\n if (disableCalendar) {\n return justTheField;\n }\n if (!popoverSupported) {\n return justTheField;\n }\n return /* @__PURE__ */ jsx(\"div\", { ref: wrapperRef, children: /* @__PURE__ */ jsxs(\n Popover,\n {\n open: calendarOpen,\n modal: true,\n placement: \"bottom-start\",\n disableFlipFallback: true,\n disableTriggerFocus: true,\n onClose: () => setCalendarOpen(false),\n disableAutoUpdate: true,\n onClickOutside: () => setCalendarOpen(false),\n children: [\n /* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: iRef }) => {\n setPopoverTriggerRef(iRef);\n return justTheField;\n } }),\n /* @__PURE__ */ jsx(Popover.Content, { ref: popoverContentRef, \"data-testid\": \"calendar-popover\", children: shouldShowCalendar && /* @__PURE__ */ jsx(\n DateFieldSingleCalendar,\n {\n onKeyDown: handleCalendarKeyDown,\n value,\n onSelection: handleCalendarSelection,\n minDate,\n maxDate,\n unavailable\n }\n ) })\n ]\n }\n ) });\n};\nDateFieldSingle.displayName = \"DateFieldSingle\";\n\nconst datePlaceholderMask = ({\n mode,\n dateSeparator = \"/\",\n rangeSeparator = \" - \",\n placeholder\n}) => {\n const dateRangeOptions = maskitoDateRangeOptionsGenerator({\n mode,\n dateSeparator,\n rangeSeparator\n });\n const { plugins, removePlaceholder, ...placeholderOptions } = maskitoWithPlaceholder(placeholder);\n const datePlaceholderMask2 = {\n ...dateRangeOptions,\n plugins: plugins.concat(dateRangeOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...dateRangeOptions.preprocessors,\n makeZeroShortcutPreprocessor(placeholder, dateSeparator)\n ],\n postprocessors: [\n // NOTE this is super fragile. If Maskito maintainers change the order of the post-processors, this will break.\n // The last postprocessor is the date swap postprocessor, which we don't want to run.\n // A unit test is added to ensure this doesn't break on a dependency update.\n ...dateRangeOptions.postprocessors.slice(0, -1),\n ...placeholderOptions.postprocessors\n ]\n };\n return { options: datePlaceholderMask2, removePlaceholder };\n};\n\nconst RANGE_SEPARATOR = \" - \";\nconst MaskedDateRangeInput = forwardRef(\n ({\n onChange,\n mode = \"mm/dd/yyyy\",\n startDate,\n endDate,\n disableHint = false,\n ...props\n }, ref) => {\n const halfPlaceholder = DateModeToPlaceholderMap[mode];\n const fullPlaceholder = `${halfPlaceholder}${RANGE_SEPARATOR}${halfPlaceholder}`;\n const [inputValue, setInputValue] = useState(fullPlaceholder);\n const { options, removePlaceholder } = datePlaceholderMask({\n mode,\n placeholder: fullPlaceholder,\n dateSeparator: \"/\",\n rangeSeparator: RANGE_SEPARATOR\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousStartDate = usePrevious(startDate);\n const previousEndDate = usePrevious(endDate);\n const previousMode = usePrevious(mode);\n useEffect(() => {\n if (mode !== previousMode) {\n setInputValue(\n (previousInputValue) => swapMode$1(previousInputValue, previousMode ?? mode, mode)\n );\n }\n }, [mode, fullPlaceholder, previousMode]);\n useEffect(() => {\n if (startDate === void 0 || endDate === void 0) return;\n if (startDate === previousStartDate && endDate === previousEndDate)\n return;\n if (\n // plus one just represents a date that is guaranteed to be different.\n startDate?.equals(previousStartDate ?? startDate?.plus({ days: 1 })) && (endDate?.equals(previousEndDate ?? endDate?.plus({ days: 1 })) || endDate === previousEndDate)\n )\n return;\n const startDateString = startDate?.toFormat(DateModeToFormatMap[mode]) ?? halfPlaceholder;\n const endDateString = endDate?.toFormat(DateModeToFormatMap[mode]) ?? halfPlaceholder;\n const newInputValue = `${startDateString}${RANGE_SEPARATOR}${endDateString}`;\n setInputValue(newInputValue);\n }, [\n startDate,\n endDate,\n mode,\n halfPlaceholder,\n previousStartDate,\n previousEndDate\n ]);\n const currentParsedData = useMemo(() => {\n return parseRangeInputValue(inputValue, mode, removePlaceholder);\n }, [inputValue, mode, removePlaceholder]);\n const handleChange = (event) => {\n setInputValue(event.target.value);\n const {\n startDate: parsedStartDate,\n endDate: parsedEndDate,\n isInputValid,\n isInputEmpty,\n isHalfEmpty\n } = parseRangeInputValue(event.target.value, mode, removePlaceholder);\n const isValueDifferent = isInputValid !== currentParsedData.isInputValid || // The input has changed validity\n isInputEmpty !== currentParsedData.isInputEmpty || // The input has changed emptiness\n parsedStartDate === null !== (startDate === null) || // The start date has changed from empty to non-empty or vice versa\n parsedEndDate === null !== (endDate === null) || // The end date has changed from empty to non-empty or vice versa\n parsedStartDate !== null && startDate !== null && !parsedStartDate.equals(startDate) || // The start date has changed\n parsedEndDate !== null && endDate !== null && !parsedEndDate.equals(endDate);\n if (!isValueDifferent) return;\n onChange?.({\n startDate: isInputEmpty ? null : parsedStartDate ?? startDate ?? null,\n endDate: isInputEmpty || isHalfEmpty ? null : parsedEndDate ?? endDate ?? null,\n isInputValid,\n isInputEmpty\n });\n };\n useImperativeHandle(ref, () => {\n const input = inputRef.current;\n if (!input) return null;\n return Object.assign(input, {\n setDateRange: (startDate2, endDate2) => {\n const startDateString = startDate2?.toFormat(\n DateModeToFormatMap[mode]\n );\n const endDateString = endDate2?.toFormat(DateModeToFormatMap[mode]);\n const newInputValue = `${startDateString ?? halfPlaceholder}${RANGE_SEPARATOR}${endDateString ?? halfPlaceholder}`;\n setInputValue(newInputValue);\n }\n });\n }, [mode, halfPlaceholder]);\n return /* @__PURE__ */ jsx(\n TextField,\n {\n ref: combinedRef,\n \"data-start-date\": startDate?.toISODate() ?? \"\",\n \"data-end-date\": endDate?.toISODate() ?? \"\",\n \"data-input-valid\": currentParsedData.isInputValid,\n \"data-input-empty\": currentParsedData.isInputEmpty,\n ...props,\n showCounter: false,\n value: inputValue,\n onChange: handleChange,\n prefix: /* @__PURE__ */ jsx(Icon, { svg: Event }),\n hint: disableHint ? void 0 : `Format: ${mode}`\n }\n );\n }\n);\nMaskedDateRangeInput.displayName = \"MaskedDateRangeInput\";\nfunction parseRangeInputValue(value, mode, removePlaceholder) {\n const valueMinusPlaceholder = removePlaceholder(value);\n const [startDate, endDate] = valueMinusPlaceholder.split(RANGE_SEPARATOR);\n const startJsDate = maskitoParseDate(startDate, { mode });\n const endJsDate = endDate ? maskitoParseDate(endDate, { mode }) : null;\n const startLuxonDate = startJsDate ? DateTime.fromJSDate(startJsDate, { zone: \"utc\" }) : null;\n const endLuxonDate = endJsDate ? DateTime.fromJSDate(endJsDate, { zone: \"utc\" }) : null;\n return {\n startDate: startLuxonDate,\n endDate: endLuxonDate,\n isInputValid: !!(startLuxonDate && endLuxonDate),\n // input valid if both dates are filled\n isInputEmpty: valueMinusPlaceholder === \"\",\n // input empty if nothing is typed\n isHalfEmpty: endDate === void 0\n };\n}\nfunction swapMode$1(inputString, previousMode, mode) {\n const halves = inputString.split(RANGE_SEPARATOR);\n const segments = halves.map((half) => half.split(\"/\"));\n let startDay, startMonth, startYear, endDay, endMonth, endYear;\n if (previousMode === \"mm/dd/yyyy\") {\n startDay = segments[0][1];\n startMonth = segments[0][0];\n startYear = segments[0][2];\n endDay = segments[1][1];\n endMonth = segments[1][0];\n endYear = segments[1][2];\n }\n if (previousMode === \"dd/mm/yyyy\") {\n startDay = segments[0][0];\n startMonth = segments[0][1];\n startYear = segments[0][2];\n endDay = segments[1][0];\n endMonth = segments[1][1];\n endYear = segments[1][2];\n }\n if (previousMode === \"yyyy/mm/dd\") {\n startDay = segments[0][2];\n startMonth = segments[0][1];\n startYear = segments[0][0];\n endDay = segments[1][2];\n endMonth = segments[1][1];\n endYear = segments[1][0];\n }\n if (mode === \"mm/dd/yyyy\") {\n return `${startMonth}/${startDay}/${startYear}${RANGE_SEPARATOR}${endMonth}/${endDay}/${endYear}`;\n }\n if (mode === \"dd/mm/yyyy\") {\n return `${startDay}/${startMonth}/${startYear}${RANGE_SEPARATOR}${endDay}/${endMonth}/${endYear}`;\n }\n if (mode === \"yyyy/mm/dd\") {\n return `${startYear}/${startMonth}/${startDay}${RANGE_SEPARATOR}${endYear}/${endMonth}/${endDay}`;\n }\n return inputString;\n}\n\nconst useDateFieldRangeConversion = (props) => {\n const { value, defaultValue, minDate, maxDate, unavailable, onChange } = props;\n const normalizedValue = useMemo(() => {\n if (value === null || value === void 0) return value;\n return {\n startDate: convertStringToDate(value.startDate) ?? null,\n endDate: convertStringToDate(value.endDate) ?? null\n };\n }, [value]);\n const normalizedDefaultValue = useMemo(() => {\n if (defaultValue === null || defaultValue === void 0)\n return defaultValue;\n return {\n startDate: convertStringToDate(defaultValue.startDate) ?? null,\n endDate: convertStringToDate(defaultValue.endDate) ?? null\n };\n }, [defaultValue]);\n const normalizedMinDate = useMemo(\n () => convertStringToDate(minDate),\n [minDate]\n );\n const normalizedMaxDate = useMemo(\n () => convertStringToDate(maxDate),\n [maxDate]\n );\n const normalizedUnavailableDates = useMemo(() => {\n return unavailable?.dates?.map((date) => convertStringToDate(date)).filter((date) => date !== null && date !== void 0);\n }, [unavailable?.dates]);\n const handleChange = useCallback(\n (change) => {\n onChange?.({\n ...change,\n startDate: change.startDate?.toISODate() ?? null,\n endDate: change.endDate?.toISODate() ?? null\n });\n },\n [onChange]\n );\n return {\n value: normalizedValue,\n defaultValue: normalizedDefaultValue,\n minDate: normalizedMinDate,\n maxDate: normalizedMaxDate,\n unavailable: {\n dates: normalizedUnavailableDates,\n daysOfWeek: unavailable?.daysOfWeek\n },\n onChange: handleChange\n };\n};\n\nfunction useDateFieldRangeState({\n valueProp,\n defaultValueProp,\n inputRef,\n onChange\n}) {\n const [startDate, setStartDate] = useOptionallyControlledState({\n controlledValue: valueProp !== void 0 ? valueProp?.startDate : void 0,\n defaultValue: defaultValueProp !== void 0 ? defaultValueProp?.startDate : void 0\n });\n const [endDate, setEndDate] = useOptionallyControlledState({\n controlledValue: valueProp !== void 0 ? valueProp?.endDate : void 0,\n defaultValue: defaultValueProp !== void 0 ? defaultValueProp?.endDate : void 0\n });\n const setSharedValue = (value) => {\n inputRef.current?.setDateRange(value.startDate, value.endDate);\n setStartDate(value.startDate);\n setEndDate(value.endDate);\n };\n const handleInputChange = (change) => {\n const range = change.isInputEmpty ? null : {\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null\n };\n setStartDate(range?.startDate ?? null);\n setEndDate(range?.endDate ?? null);\n onChange?.({\n startDate: range?.startDate ?? null,\n endDate: range?.endDate ?? null,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty\n });\n };\n const handleCalendarSelection = ({\n startDate: startDate2,\n endDate: endDate2\n }) => {\n setSharedValue({ startDate: startDate2, endDate: endDate2 });\n onChange?.({\n startDate: startDate2,\n endDate: endDate2,\n isInputValid: true,\n isInputEmpty: false\n });\n };\n return {\n startDate,\n endDate,\n setStartDate,\n setEndDate,\n handleInputChange,\n handleCalendarSelection\n };\n}\n\nconst DateFieldRangeCalendar = ({\n startDate,\n endDate,\n onKeyDown,\n onSelection,\n minDate,\n maxDate,\n unavailable\n}) => {\n const previousStartDate = usePrevious(startDate);\n const previousEndDate = usePrevious(endDate);\n const handleCalendarSelection = (data) => {\n if (!data.value) return;\n const calStartDate = data.value.start ? DateTime.fromISO(data.value.start, { zone: \"utc\" }) : null;\n const calEndDate = data.value.end ? DateTime.fromISO(data.value.end, { zone: \"utc\" }) : null;\n onSelection({\n startDate: calStartDate,\n endDate: calEndDate\n });\n };\n const defaultFocusedDate = useMemo(() => {\n if (!startDate && !endDate) return DateTime.now().toISODate();\n if (!startDate) return endDate?.toISODate();\n if (!endDate) return startDate?.toISODate();\n if (endDate && !previousEndDate?.equals(endDate)) {\n return endDate.toISODate();\n } else if (startDate && !previousStartDate?.equals(startDate)) {\n return startDate.toISODate();\n }\n if (endDate) return endDate.toISODate();\n if (startDate) return startDate.toISODate();\n return DateTime.now().toISODate();\n }, [previousStartDate, previousEndDate, startDate, endDate]);\n return /* @__PURE__ */ jsx(\n Calendar,\n {\n range: true,\n onKeyDown,\n defaultFocusedDate,\n value: {\n start: startDate?.toISODate() || void 0,\n end: endDate?.toISODate() || void 0\n },\n onSelection: handleCalendarSelection,\n defaultTimeZone: \"UTC\",\n minDate: minDate?.toISODate() ?? void 0,\n maxDate: maxDate?.toISODate() ?? void 0,\n unavailable: unavailable ? {\n dates: unavailable.dates?.map((d) => d.toISODate() ?? \"\"),\n daysOfWeek: unavailable.daysOfWeek\n } : void 0,\n _disableAutofocus: true\n },\n `${startDate?.toISODate()}-${endDate?.toISODate()}`\n );\n};\n\nconst DateFieldRange = ({\n onFocus,\n onBlur,\n disableCalendar,\n required,\n mode,\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp,\n ...rest\n}) => {\n const { ref: wrapperRef } = useFocusWithin({\n onBlur,\n onFocus\n });\n const { value, defaultValue, minDate, maxDate, unavailable, onChange } = useDateFieldRangeConversion({\n value: valueProp,\n defaultValue: defaultValueProp,\n minDate: minDateProp,\n maxDate: maxDateProp,\n unavailable: unavailableProp,\n onChange: onChangeProp\n });\n const inputRef = useRef(null);\n const [popoverTriggerRef, setPopoverTriggerRef] = useState();\n const popoverContentRef = useRef(null);\n const combinedRef = useMergeRefs$1([popoverTriggerRef, inputRef]);\n const popoverSupported = usePopoverSupport();\n const handleChange = (change) => {\n const sharedConstraints = {\n unavailable,\n minDate: minDate ?? void 0,\n maxDate: maxDate ?? void 0\n };\n onChange?.({\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n isInputValid: change.isInputValid,\n isInputEmpty: change.isInputEmpty,\n isDateRangeValid: validateDateRange({\n required,\n startDate: change.startDate?.startOf(\"day\") ?? null,\n endDate: change.endDate?.startOf(\"day\") ?? null,\n startDateConstraints: sharedConstraints,\n endDateConstraints: sharedConstraints\n })\n });\n };\n const { startDate, endDate, handleInputChange, handleCalendarSelection } = useDateFieldRangeState({\n valueProp: value,\n defaultValueProp: defaultValue,\n inputRef,\n onChange: handleChange\n });\n const {\n calendarOpen,\n setCalendarOpen,\n handleCalendarKeyDown,\n handleInputKeyDown\n } = useDateFieldOrchestration({\n inputRef,\n calendarDefaultOpen: false,\n popoverContentRef,\n disableCalendar\n });\n const shouldShowCalendar = usePopoverCloseDelayWorkaround(calendarOpen);\n const currentValidity = useMemo(() => {\n return validateDateRange({\n required,\n startDate,\n endDate,\n startDateConstraints: {\n unavailable,\n minDate: minDate ?? void 0,\n maxDate: maxDate ?? void 0\n },\n endDateConstraints: {\n unavailable,\n minDate: minDate ?? void 0,\n maxDate: maxDate ?? void 0\n }\n });\n }, [required, startDate, endDate, minDate, maxDate, unavailable]);\n const justTheField = /* @__PURE__ */ jsx(\n MaskedDateRangeInput,\n {\n ...rest,\n mode,\n ref: combinedRef,\n startDate: startDate ?? null,\n endDate: endDate ?? null,\n onChange: handleInputChange,\n disableHint: rest.disableHint,\n onKeyDown: handleInputKeyDown,\n onClick: () => setCalendarOpen(true),\n required,\n autoComplete: \"off\",\n \"data-date-range-valid\": currentValidity\n }\n );\n if (disableCalendar) {\n return justTheField;\n }\n if (!popoverSupported) {\n return justTheField;\n }\n return /* @__PURE__ */ jsx(\"div\", { ref: wrapperRef, children: /* @__PURE__ */ jsxs(\n Popover,\n {\n open: calendarOpen,\n modal: true,\n placement: \"bottom-start\",\n disableFlipFallback: true,\n disableTriggerFocus: true,\n onClose: () => setCalendarOpen(false),\n disableAutoUpdate: true,\n onOutsidePress: () => setCalendarOpen(false),\n children: [\n /* @__PURE__ */ jsx(Popover.Trigger, { children: ({ ref: iRef }) => {\n setPopoverTriggerRef(iRef);\n return justTheField;\n } }),\n /* @__PURE__ */ jsx(Popover.Content, { ref: popoverContentRef, \"data-testid\": \"calendar-popover\", children: shouldShowCalendar && /* @__PURE__ */ jsx(\n DateFieldRangeCalendar,\n {\n startDate,\n endDate,\n onKeyDown: handleCalendarKeyDown,\n onSelection: handleCalendarSelection,\n minDate,\n maxDate,\n unavailable\n }\n ) })\n ]\n }\n ) });\n};\nDateFieldRange.displayName = \"DateFieldRange\";\nfunction validateDateRange({\n required,\n startDate,\n endDate,\n startDateConstraints,\n endDateConstraints\n}) {\n if (!required && !startDate && !endDate) return true;\n return validateDate({\n date: startDate,\n constraints: { ...startDateConstraints, required: true }\n }) && validateDate({\n date: endDate,\n constraints: { ...endDateConstraints, required: true }\n }) && (!startDate || !endDate || startDate <= endDate);\n}\n\nconst yearlessDatePlaceholderMask = ({\n mode,\n separator = \"/\",\n placeholder\n}) => {\n const dateOptions = maskitoDateOptionsGenerator({\n mode,\n separator\n });\n const { plugins, removePlaceholder, ...placeholderOptions } = maskitoWithPlaceholder(placeholder);\n const datePlaceholderMask = {\n ...dateOptions,\n plugins: plugins.concat(dateOptions.plugins || []),\n preprocessors: [\n ...placeholderOptions.preprocessors,\n ...dateOptions.preprocessors,\n makeZeroShortcutPreprocessor(mode, separator)\n ],\n postprocessors: [\n ...dateOptions.postprocessors,\n ...placeholderOptions.postprocessors\n ]\n };\n return { options: datePlaceholderMask, removePlaceholder };\n};\n\nconst MaskedYearlessDateInput = forwardRef(({ onChange, mode = \"mm/dd\", value, disableHint = false, ...props }, ref) => {\n const placeholder = \"__/__\";\n const [inputValue, setInputValue] = useState(placeholder);\n const { options, removePlaceholder } = yearlessDatePlaceholderMask({\n mode,\n placeholder\n });\n const maskedInputRef = useMaskito({ options });\n const inputRef = useRef(null);\n const combinedRef = useMergeRefs([maskedInputRef, inputRef, ref]);\n const previousValue = usePrevious(value);\n const previousMode = usePrevious(mode);\n useEffect(() => {\n if (mode !== previousMode) {\n setInputValue(\n (oldInputValue) => swapMode(oldInputValue, previousMode ?? mode, mode)\n );\n }\n }, [mode, previousMode]);\n useEffect(() => {\n if (previousValue?.day !== value?.day || previousValue?.month !== value?.month) {\n if (value?.day && value?.month) {\n setInputValue(stringifyYearlessDate(value.day, value.month, mode));\n } else if (previousValue !== null && previousValue !== void 0 && (value === null || value?.day === null && value?.month === null)) {\n setInputValue(placeholder);\n } else {\n return;\n }\n }\n }, [value, mode, previousValue]);\n const currentParsedData = useMemo(() => {\n return parseInputValue(inputValue, mode, removePlaceholder);\n }, [inputValue, mode, removePlaceholder]);\n const handleChange = (event) => {\n setInputValue(event.target.value);\n const {\n value: v,\n isInputValid,\n isInputEmpty\n } = parseInputValue(event.target.value, mode, removePlaceholder);\n const isDateDifferent = v === null !== (currentParsedData.value === null) || v?.day !== currentParsedData.value?.day || v?.month !== currentParsedData.value?.month;\n if (!isDateDifferent) {\n return;\n }\n onChange?.({\n event,\n value: v ?? currentParsedData.value ?? null,\n isInputValid,\n isInputEmpty\n });\n };\n useImperativeHandle(ref, () => {\n const input = inputRef.current;\n if (!input) return null;\n return Object.assign(input, {\n setValue: (value2) => {\n if (!value2) {\n setInputValue(placeholder);\n return;\n }\n setInputValue(\n stringifyYearlessDate(value2.day ?? 1, value2.month ?? 1, mode)\n );\n }\n });\n }, [mode, placeholder]);\n return /* @__PURE__ */ jsx(\n TextField,\n {\n ref: combinedRef,\n \"data-month-value\": value?.month,\n \"data-day-value\": value?.day,\n \"data-input-valid\": currentParsedData.isInputValid,\n \"data-input-empty\": currentParsedData.isInputEmpty,\n ...props,\n showCounter: false,\n value: inputValue,\n onChange: handleChange,\n hint: disableHint ? void 0 : `Format: ${mode}`\n }\n );\n});\nMaskedYearlessDateInput.displayName = \"MaskedYearlessDateInput\";\nfunction parseInputValue(value, mode, removePlaceholder) {\n const valueMinusPlaceholder = removePlaceholder(value);\n const [segment1, segment2] = valueMinusPlaceholder.split(\"/\");\n const incompleteFirstSegment = segment1?.length !== 2;\n const incompleteSecondSegment = segment2?.length !== 2;\n if (mode === \"dd/mm\") {\n return {\n value: {\n day: incompleteFirstSegment ? null : parseInt(segment1),\n month: incompleteSecondSegment ? null : parseInt(segment2)\n },\n isInputValid: !incompleteFirstSegment && !incompleteSecondSegment,\n isInputEmpty: valueMinusPlaceholder === \"\"\n };\n }\n return {\n value: {\n day: incompleteSecondSegment ? null : parseInt(segment2),\n month: incompleteFirstSegment ? null : parseInt(segment1)\n },\n isInputValid: !incompleteFirstSegment && !incompleteSecondSegment,\n isInputEmpty: valueMinusPlaceholder === \"\"\n };\n}\nfunction swapMode(inputString, previousMode, mode) {\n const { day, month } = divideSegments(inputString, previousMode);\n return stringifyYearlessDate(day, month, mode);\n}\nfunction divideSegments(value, mode) {\n const [segment1, segment2] = value.split(\"/\");\n if (mode === \"dd/mm\") {\n return { day: segment1, month: segment2 };\n }\n return { day: segment2, month: segment1 };\n}\nfunction stringifyYearlessDate(day, month, mode) {\n const dd = day.toString().padStart(2, \"0\");\n const mm = month.toString().padStart(2, \"0\");\n if (mode === \"dd/mm\") {\n return `${dd}/${mm}`;\n }\n return `${mm}/${dd}`;\n}\n\nconst DateFieldYearless = ({\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange,\n minDate,\n maxDate,\n unavailable,\n required,\n ...restProps\n}) => {\n const [value, setValue] = useOptionallyControlledState({\n controlledValue: valueProp,\n defaultValue: defaultValueProp\n });\n const currentValidity = useMemo(\n () => validateYearlessDate({\n value: value ?? null,\n constraints: {\n required,\n unavailable,\n minDate,\n maxDate\n }\n }),\n [value, required, unavailable, minDate, maxDate]\n );\n const handleInputChange = (change) => {\n const { event, value: value2, ...restChange } = change;\n setValue(value2);\n return onChange?.({\n ...restChange,\n value: value2,\n isValid: validateYearlessDate({\n value: value2,\n constraints: {\n required,\n unavailable,\n minDate,\n maxDate\n }\n })\n });\n };\n return /* @__PURE__ */ jsx(\n MaskedYearlessDateInput,\n {\n required,\n ...restProps,\n autoComplete: \"off\",\n onChange: handleInputChange,\n value,\n \"data-valid\": currentValidity\n }\n );\n};\nDateFieldYearless.displayName = \"DateFieldYearless\";\n\nexport { DateFieldSingle as D, MaskedDateInput as M, useDateFieldSingleConversion as a, DateFieldSingleCalendar as b, DateFieldRange as c, MaskedDateRangeInput as d, useDateFieldRangeState as e, useDateFieldRangeConversion as f, DateFieldRangeCalendar as g, DateFieldYearless as h, useDateFieldSingleState as u };\n//# sourceMappingURL=DateFieldYearless-CAUHW6Ow.js.map\n"],"names":["useMergeRefs","Event","useMergeRefs$1"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { D as DateFieldYearless } from './DateFieldYearless-DCv9WJdu.js';
1
+ export { D as DateFieldYearless } from './DateFieldYearless-BxkCSNk5.js';
2
2
  //# sourceMappingURL=DateFieldYearless.js.map
@@ -7,7 +7,7 @@ import { S as SvgKeyboardArrowDown } from './keyboard_arrow_down-C8WQ38p1.js';
7
7
  import { S as SvgKeyboardArrowUp } from './keyboard_arrow_up-CxzK6LAl.js';
8
8
  import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
9
9
  import { useTrackingId } from './useTrackingId.js';
10
- import { d as Popover } from './Popover-CU2cGVD8-FWJOuFRj.js';
10
+ import { P as Popover } from './Popover-CU2cGVD8-Casl3vM1.js';
11
11
  import { B as Button } from './Button-BaHFf1AT-BQy-PFB5.js';
12
12
  import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
13
13
  import { F as Flex } from './Flex-CiK7uNUu-BfxHG4L0.js';
@@ -23,46 +23,46 @@ import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
23
23
  import { D as Dialog } from './Dialog-BR6f-XRH.js';
24
24
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v-CZNrcQT-.js';
25
25
 
26
- import './Page.css';const page = "_page_e0zkf_1";
27
- const container = "_container_e0zkf_23";
28
- const content = "_content_e0zkf_5";
29
- const sidebar = "_sidebar_e0zkf_68";
30
- const panel = "_panel_e0zkf_153";
31
- const header = "_header_e0zkf_181";
32
- const title = "_title_e0zkf_185";
33
- const chips = "_chips_e0zkf_195";
34
- const actions = "_actions_e0zkf_199";
35
- const description = "_description_e0zkf_212";
36
- const open = "_open_e0zkf_226";
37
- const small = "_small_e0zkf_226";
38
- const medium = "_medium_e0zkf_229";
39
- const large = "_large_e0zkf_232";
40
- const collapsed = "_collapsed_e0zkf_235";
41
- const noPadding = "_noPadding_e0zkf_346";
42
- const layout = "_layout_e0zkf_399";
26
+ import './Page.css';const page = "_page_1tte7_1";
27
+ const container = "_container_1tte7_23";
28
+ const content = "_content_1tte7_5";
29
+ const sidebar = "_sidebar_1tte7_68";
30
+ const panel = "_panel_1tte7_153";
31
+ const header = "_header_1tte7_181";
32
+ const title = "_title_1tte7_185";
33
+ const chips = "_chips_1tte7_195";
34
+ const actions = "_actions_1tte7_199";
35
+ const description = "_description_1tte7_212";
36
+ const open = "_open_1tte7_226";
37
+ const small = "_small_1tte7_226";
38
+ const medium = "_medium_1tte7_229";
39
+ const large = "_large_1tte7_232";
40
+ const collapsed = "_collapsed_1tte7_235";
41
+ const noPadding = "_noPadding_1tte7_346";
42
+ const layout = "_layout_1tte7_399";
43
43
  const styles = {
44
44
  page: page,
45
- "content-footer": "_content-footer_e0zkf_5",
45
+ "content-footer": "_content-footer_1tte7_5",
46
46
  container: container,
47
47
  content: content,
48
- "content-inner": "_content-inner_e0zkf_46",
49
- "content-header-inner": "_content-header-inner_e0zkf_51",
48
+ "content-inner": "_content-inner_1tte7_46",
49
+ "content-header-inner": "_content-header-inner_1tte7_51",
50
50
  sidebar: sidebar,
51
- "sidebar-inner": "_sidebar-inner_e0zkf_79",
52
- "toggle-button-wrapper": "_toggle-button-wrapper_e0zkf_106",
53
- "toggle-button-tooltip": "_toggle-button-tooltip_e0zkf_114",
54
- "toggle-button": "_toggle-button_e0zkf_106",
55
- "sidebar-header": "_sidebar-header_e0zkf_132",
56
- "sidebar-adaptive-trigger-container": "_sidebar-adaptive-trigger-container_e0zkf_138",
57
- "sidebar-adaptive-container": "_sidebar-adaptive-container_e0zkf_147",
58
- "sidebar-adaptive": "_sidebar-adaptive_e0zkf_138",
51
+ "sidebar-inner": "_sidebar-inner_1tte7_79",
52
+ "toggle-button-wrapper": "_toggle-button-wrapper_1tte7_106",
53
+ "toggle-button-tooltip": "_toggle-button-tooltip_1tte7_114",
54
+ "toggle-button": "_toggle-button_1tte7_106",
55
+ "sidebar-header": "_sidebar-header_1tte7_132",
56
+ "sidebar-adaptive-trigger-container": "_sidebar-adaptive-trigger-container_1tte7_138",
57
+ "sidebar-adaptive-container": "_sidebar-adaptive-container_1tte7_147",
58
+ "sidebar-adaptive": "_sidebar-adaptive_1tte7_138",
59
59
  panel: panel,
60
- "panel-inner": "_panel-inner_e0zkf_161",
61
- "virtual-scroll-container": "_virtual-scroll-container_e0zkf_172",
60
+ "panel-inner": "_panel-inner_1tte7_161",
61
+ "virtual-scroll-container": "_virtual-scroll-container_1tte7_172",
62
62
  header: header,
63
- "title-wrapper": "_title-wrapper_e0zkf_185",
63
+ "title-wrapper": "_title-wrapper_1tte7_185",
64
64
  title: title,
65
- "preference-action": "_preference-action_e0zkf_192",
65
+ "preference-action": "_preference-action_1tte7_192",
66
66
  chips: chips,
67
67
  actions: actions,
68
68
  description: description,
@@ -72,8 +72,8 @@ const styles = {
72
72
  large: large,
73
73
  collapsed: collapsed,
74
74
  noPadding: noPadding,
75
- "sidebar-adaptive-trigger": "_sidebar-adaptive-trigger_e0zkf_138",
76
- "sidebar-adaptive-trigger-icon": "_sidebar-adaptive-trigger-icon_e0zkf_372",
75
+ "sidebar-adaptive-trigger": "_sidebar-adaptive-trigger_1tte7_138",
76
+ "sidebar-adaptive-trigger-icon": "_sidebar-adaptive-trigger-icon_1tte7_372",
77
77
  layout: layout
78
78
  };
79
79
 
@@ -614,4 +614,4 @@ const Page = Object.assign(PageElement, {
614
614
  });
615
615
 
616
616
  export { Page as P };
617
- //# sourceMappingURL=Page-KN0DLtcf.js.map
617
+ //# sourceMappingURL=Page-CxB5N9dR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Page-KN0DLtcf.js","sources":["../../hammer-icon/mdi/round/segment.svg","../../hammer-icon/mdi/round/chevron_left.svg","../src/components/Page/PageSidebarContext.ts","../src/components/Page/PageContext.ts","../src/components/Page/PageSidebar.tsx","../src/components/Page/PageSidebarHeader.tsx","../../hammer-icon/mdi/round/settings.svg","../src/components/Page/PageHeader.tsx","../src/components/Page/PageContent.tsx","../src/components/Page/PagePanel.tsx","../src/components/Page/PageFooter.tsx","../src/components/Page/Page.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgSegment = (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: \"M10 18h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zM3 7c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1zm7 6h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1z\" }));\nexport default SvgSegment;\n","import * as React from \"react\";\nconst SvgChevronLeft = (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: \"M14.71 6.71a.996.996 0 0 0-1.41 0L8.71 11.3a.996.996 0 0 0 0 1.41l4.59 4.59a.996.996 0 1 0 1.41-1.41L10.83 12l3.88-3.88c.39-.39.38-1.03 0-1.41z\" }));\nexport default SvgChevronLeft;\n","import { createContext } from \"react\";\n\ntype PageSideBarContextProps = {\n collapsed: boolean;\n};\n\nexport const PageSideBarContext = createContext<PageSideBarContextProps | null>(\n null,\n);\n","import { createContext } from \"react\";\n\nexport const PageContext = createContext<PageContextProps>({});\n\nexport type PageContextProps = {\n pageWidth?: number;\n};\n","import {\n Popover,\n Button,\n Icon,\n Flex,\n Tooltip,\n} from \"@servicetitan/hammer-react\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useContext,\n useState,\n useLayoutEffect,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport SegmentSVG from \"@servicetitan/hammer-icon/mdi/round/segment.svg\";\nimport RespOpen from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_down.svg\";\nimport RespClose from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_up.svg\";\nimport OpenSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport CloseSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_left.svg\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\nimport { PageContext, PageContextProps } from \"./PageContext\";\n\n/**\n * Props for the PageSidebar component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Key for storing sidebar collapsed state in localStorage\n * @default \"sidebar-collapsed\"\n */\n localStorageKey?: string;\n /**\n * Custom tracking ID for analytics\n */\n [\"data-tracking-id\"]?: string;\n /**\n * Title to display in the adaptive trigger button\n */\n currentPageTitle?: string;\n};\n\n/**\n * PageSidebar component for creating collapsible navigation sidebars.\n *\n * Features:\n * - Collapsible sidebar with localStorage persistence\n * - Responsive design with adaptive popover on mobile\n * - Automatic tracking ID generation for analytics\n * - Keyboard navigation and accessibility support\n * - Toggle button with tooltip\n * - Context provider for sidebar state\n * - Mobile-friendly popover navigation\n *\n * @example\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Sidebar Title</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n */\nexport const PageSidebar = forwardRef(\n (props: PageSidebarProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n className,\n currentPageTitle,\n localStorageKey = \"sidebar-collapsed\",\n ...rest\n } = props;\n\n const data = {\n localStorageKey,\n };\n\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n const [isMobile, setIsMobile] = useState<boolean>();\n\n useLayoutEffect(() => {\n const breakpointWidth = +(\n core.primitive?.BreakpointLg?.value.replace(\"px\", \"\") ?? 0\n );\n const innerWidth = pageWidth ?? 0;\n setIsMobile(innerWidth < breakpointWidth);\n }, [pageWidth]);\n\n const trackingId = useTrackingId({\n name: \"PageSidebarButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const [collapsed, setCollapsed] = useState<boolean>(() => {\n // getting stored value\n const sidebarState = localStorage.getItem(localStorageKey);\n return sidebarState ? JSON.parse(sidebarState) : false;\n });\n const classNames = cx([styles[\"sidebar\"]], className, {\n [styles[\"collapsed\"]]: collapsed,\n });\n const onToggleButtonClick = () => {\n setCollapsed((prev) => {\n localStorage.setItem(localStorageKey, JSON.stringify(!prev));\n return !prev;\n });\n };\n\n if (typeof isMobile !== \"undefined\" && isMobile) {\n return (\n <Popover fillAvailableHeight matchReferenceWidth noPadding disableCaret>\n <Popover.Trigger>\n {(props) => {\n if (typeof document !== \"undefined\") {\n if (props[\"data-state\"] === \"open\") {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"auto\";\n }\n }\n return (\n <div className={styles[\"sidebar-adaptive-trigger-container\"]}>\n <Button\n className={styles[\"sidebar-adaptive-trigger\"]}\n icon={SegmentSVG}\n appearance=\"ghost\"\n {...props}\n >\n {!currentPageTitle ? \"Menu\" : currentPageTitle}\n <Icon\n className={styles[\"sidebar-adaptive-trigger-icon\"]}\n justifyContent=\"end\"\n svg={\n props[\"data-state\"] === \"open\" ? RespClose : RespOpen\n }\n />\n </Button>\n </div>\n );\n }}\n </Popover.Trigger>\n <Popover.Content className={styles[\"sidebar-adaptive-container\"]}>\n <Flex\n direction=\"column\"\n className={styles[\"sidebar-adaptive\"]}\n ref={ref}\n >\n {children}\n </Flex>\n </Popover.Content>\n </Popover>\n );\n }\n\n return (\n <PageSideBarContext.Provider value={{ collapsed }}>\n <div className={classNames} ref={ref} {...rest}>\n <div className={styles[\"sidebar-inner\"]} aria-hidden={collapsed}>\n <div>{children}</div>\n </div>\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Tooltip placement=\"right\">\n <Tooltip.Trigger className={styles[\"toggle-button-tooltip\"]}>\n <Button\n size=\"small\"\n onClick={onToggleButtonClick}\n className={styles[\"toggle-button\"]}\n aria-label={collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n data-tracking-id={trackingId}\n icon={collapsed ? OpenSVG : CloseSVG}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n </Tooltip.Content>\n </Tooltip>\n </div>\n </div>\n </PageSideBarContext.Provider>\n );\n },\n);\n\nPageSidebar.displayName = \"Page.Sidebar\";\n","import { ComponentPropsWithoutRef, forwardRef, Ref, useContext } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\n\n/**\n * Props for the PageSidebarHeader component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarHeaderProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * PageSidebarHeader component for creating header sections within sidebars.\n *\n * Features:\n * - Container for sidebar header content\n * - Automatic visibility handling based on sidebar collapsed state\n * - Supports all standard div props\n * - Context-aware styling\n *\n * @example\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">\n * Sidebar Title\n * </Text>\n * </Page.SidebarHeader>\n */\nexport const PageSidebarHeader = forwardRef(\n (props: PageSidebarHeaderProps, ref: Ref<HTMLDivElement>) => {\n const { children, className, ...rest } = props;\n const context = useContext(PageSideBarContext);\n const classNames = cx([styles[\"sidebar-header\"]], className);\n\n return (\n <div className={classNames} ref={ref} {...rest}>\n <div\n className={styles[\"header-content\"]}\n aria-hidden={context?.collapsed}\n >\n {children}\n </div>\n </div>\n );\n },\n);\n\nPageSidebarHeader.displayName = \"Page.SidebarHeader\";\n","import * as React from \"react\";\nconst SvgSettings = (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: \"M19.5 12c0-.23-.01-.45-.03-.68l1.86-1.41c.4-.3.51-.86.26-1.3l-1.87-3.23a.987.987 0 0 0-1.25-.42l-2.15.91c-.37-.26-.76-.49-1.17-.68l-.29-2.31c-.06-.5-.49-.88-.99-.88h-3.73c-.51 0-.94.38-1 .88l-.29 2.31c-.41.19-.8.42-1.17.68l-2.15-.91c-.46-.2-1-.02-1.25.42L2.41 8.62c-.25.44-.14.99.26 1.3l1.86 1.41a7.343 7.343 0 0 0 0 1.35l-1.86 1.41c-.4.3-.51.86-.26 1.3l1.87 3.23c.25.44.79.62 1.25.42l2.15-.91c.37.26.76.49 1.17.68l.29 2.31c.06.5.49.88.99.88h3.73c.5 0 .93-.38.99-.88l.29-2.31c.41-.19.8-.42 1.17-.68l2.15.91c.46.2 1 .02 1.25-.42l1.87-3.23c.25-.44.14-.99-.26-1.3l-1.86-1.41c.03-.23.04-.45.04-.68zm-7.46 3.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z\" }));\nexport default SvgSettings;\n","import {\n ButtonProps,\n ButtonLinkProps,\n BreadcrumbsLinkProps,\n ChipProps,\n Tooltip,\n ButtonLink,\n Button,\n Flex,\n Menu,\n Breadcrumbs,\n Chip,\n Text,\n} from \"@servicetitan/hammer-react\";\nimport {\n ComponentPropsWithoutRef,\n ReactNode,\n forwardRef,\n Ref,\n RefObject,\n} from \"react\";\nimport Layout, { LayoutProps } from \"../Layout\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport LocalSettings from \"@servicetitan/hammer-icon/mdi/round/settings.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round/more_vert.svg\";\n\n/**\n * Props for page header action buttons\n */\ntype PageHeaderActionProps = Omit<ButtonProps, \"appearance\"> & {\n /**\n * Label text for the action button\n */\n label: string;\n};\n\n/**\n * Props for page header actions configuration\n */\ntype PageHeaderActionsProps = {\n /**\n * Primary action button\n */\n primary?: PageHeaderActionProps;\n /**\n * Array of secondary action buttons\n */\n secondary?: PageHeaderActionProps[];\n};\n\n/**\n * Base props for preference actions\n */\ntype BasePreferenceProps = {\n /**\n * Accessible label for the preference action\n */\n \"aria-label\": string;\n};\n\n/**\n * Props for preference button actions\n */\ntype PreferenceButtonProps = Omit<\n ButtonProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\n/**\n * Props for preference link actions\n */\ntype PreferenceLinkProps = Omit<\n ButtonLinkProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\n/**\n * Props for the PageHeader component\n * @extends ComponentPropsWithoutRef<\"header\">\n */\nexport type PageHeaderProps = ComponentPropsWithoutRef<\"header\"> & {\n /**\n * Main title of the page\n */\n title: string;\n /**\n * Breadcrumb navigation links\n */\n breadcrumbs?: BreadcrumbsLinkProps[];\n /**\n * Status chips to display\n */\n chips?: ChipProps[];\n /**\n * Description text or content below the title\n */\n description?: ReactNode;\n /**\n * Primary and secondary action buttons\n */\n actions?: PageHeaderActionsProps;\n /**\n * Preference action button or link\n */\n preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;\n /**\n * Layout configuration for the header\n */\n layout?: LayoutProps;\n};\n\n/**\n * PageHeader component for creating page headers with navigation and actions.\n *\n * Features:\n * - Page title with semantic heading\n * - Breadcrumb navigation support\n * - Status chips display\n * - Primary and secondary action buttons\n * - Preference action button/link\n * - Responsive layout with fluid grid\n * - Accessibility support with proper ARIA labels\n * - Flexible layout configuration\n * - Description content support\n *\n * @example\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[\n * { href: \"/\", children: \"Home\" },\n * { children: \"Current Page\" }\n * ]}\n * chips={[{ label: \"Status\" }]}\n * actions={{\n * primary: { label: \"Save\", onClick: handleSave },\n * secondary: [{ label: \"Cancel\", onClick: handleCancel }]\n * }}\n * />\n */\nexport const PageHeader = forwardRef(\n (props: PageHeaderProps, ref: Ref<HTMLHeadElement>) => {\n const {\n title,\n breadcrumbs,\n chips,\n description,\n actions,\n preferenceAction,\n layout,\n className,\n ...rest\n } = props;\n\n const { fluid, variant } = layout || {};\n\n const preferenceItem =\n preferenceAction &&\n (\"href\" in preferenceAction ? (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonLink\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceLinkProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceButtonProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ));\n\n const actionItems = actions && (\n <Flex justifyContent=\"flex-end\" className={styles.actions}>\n {/* Only primary action */}\n {actions.primary &&\n (!actions.secondary || actions.secondary.length === 0) && (\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n )}\n\n {/* Only secondary actions (1-2 buttons) */}\n {!!actions.secondary?.length &&\n actions.secondary.length < 3 &&\n !actions.primary &&\n actions.secondary.map((action, index) => (\n <Button key={index} appearance=\"secondary\" {...action}>\n {action.label}\n </Button>\n ))}\n\n {/* 1 secondary action + primary action */}\n {actions.primary &&\n !!actions.secondary?.length &&\n actions.secondary.length === 1 && (\n <>\n <Button appearance=\"secondary\" {...actions.secondary[0]}>\n {actions.secondary[0].label}\n </Button>\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n </>\n )}\n\n {/* Multiple secondary actions (3+) with optional primary */}\n {!!actions.secondary?.length &&\n (actions.secondary.length >= 3 ||\n (actions.secondary.length >= 2 && actions.primary)) && (\n <>\n <Menu\n trigger={({ ref, ...rest }) => (\n <Tooltip>\n <Tooltip.Trigger\n ref={ref as unknown as RefObject<HTMLDivElement>}\n {...rest}\n >\n <Button\n appearance=\"secondary\"\n icon={MoreVert}\n aria-label=\"More actions\"\n />\n </Tooltip.Trigger>\n <Tooltip.Content>More actions</Tooltip.Content>\n </Tooltip>\n )}\n >\n {actions.secondary.map((action, index) => (\n <Menu.Item\n key={index}\n label={action.label}\n onClick={action.onClick}\n disabled={action.disabled}\n />\n ))}\n </Menu>\n {actions.primary && (\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n )}\n </>\n )}\n </Flex>\n );\n\n const headerClassName = cx(styles.content, styles.header, className);\n\n const headerContentClassName = cx(\n styles[\"content-inner\"],\n styles[\"content-header-inner\"],\n );\n\n return (\n <header ref={ref} className={headerClassName} {...rest}>\n <div className={headerContentClassName}>\n <Layout fluid={fluid} variant={variant} className={styles[\"layout\"]}>\n <Layout.Item>\n {breadcrumbs && (\n <Breadcrumbs>\n {breadcrumbs.map((breadcrumb, index) => (\n <Breadcrumbs.Link key={index} {...breadcrumb} />\n ))}\n </Breadcrumbs>\n )}\n </Layout.Item>\n\n <Layout.Item md={actionItems ? 6 : 12}>\n <div className={styles[\"title-wrapper\"]}>\n <Text\n variant=\"headline\"\n size=\"large\"\n el=\"h1\"\n className={styles.title}\n >\n {title}\n </Text>\n\n {preferenceItem}\n </div>\n\n {chips && (\n <Flex className={styles.chips}>\n {chips.map((chip, index) => (\n <Chip key={index} {...chip} />\n ))}\n </Flex>\n )}\n </Layout.Item>\n\n {actions && <Layout.Item md={6}>{actionItems}</Layout.Item>}\n\n {description && (\n <Layout.Item md={12} className={styles.description}>\n {description}\n </Layout.Item>\n )}\n </Layout>\n </div>\n </header>\n );\n },\n);\n\nPageHeader.displayName = \"Page.Header\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useEffect,\n useRef,\n useState,\n UIEvent,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { useMergeRefs } from \"@servicetitan/hammer-react\";\n\n/**\n * Props for the PageContent component\n * @extends ComponentPropsWithoutRef<\"main\">\n */\nexport type PageContentProps = ComponentPropsWithoutRef<\"main\">;\n\n/**\n * PageContent component for the main content area of a page.\n *\n * Features:\n * - Semantic main element for page content\n * - Virtual scrolling support for long content\n * - Automatic scroll synchronization\n * - Responsive design\n * - Accessibility support with proper main landmark\n * - Scroll position management\n *\n * @example\n * <Page.Content>\n * <Text>Main page content goes here</Text>\n * <Button>Action Button</Button>\n * </Page.Content>\n */\nexport const PageContent = forwardRef(\n (props: PageContentProps, ref: Ref<HTMLAreaElement>) => {\n const { children, className, ...rest } = props;\n const classNames = cx([styles[\"content\"]], className);\n const mainRef = useRef<HTMLAreaElement>(null);\n const virtualScrollRef = useRef<HTMLDivElement>(null);\n const blocker = useRef(true);\n const [leftOffset, setLeftOffset] = useState(\n (mainRef.current?.offsetLeft ?? 0) +\n (mainRef.current?.offsetWidth ?? 0) -\n 9,\n );\n const [contentHeight, setContentHeight] = useState(\n mainRef.current?.offsetHeight,\n );\n\n // Updates scroll position\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n if (!blocker.current) return;\n function updatePosition() {\n const newValue = window.scrollY;\n\n virtualScrollRef.current?.scrollTo(0, newValue ?? 0);\n }\n window.addEventListener(\"scroll\", updatePosition, { passive: true });\n\n return () => {\n window.removeEventListener(\"scroll\", updatePosition);\n };\n }, []);\n\n // Updates virtual scroll properties when main resizes\n useEffect(() => {\n if (mainRef.current) {\n const observer = new ResizeObserver(() => {\n if (!mainRef.current) return;\n setLeftOffset(\n mainRef.current.offsetLeft + mainRef.current.offsetWidth - 9,\n );\n setContentHeight(mainRef.current.offsetHeight);\n });\n\n observer.observe(mainRef.current);\n\n // Cleanup function\n return () => {\n observer.disconnect();\n };\n }\n }, []);\n\n function scrollBody(e: UIEvent<HTMLElement>) {\n if (typeof window === \"undefined\") return;\n if (blocker.current) return;\n window.scrollTo(0, (e.target as HTMLDivElement).scrollTop);\n }\n\n return (\n <main className={classNames} ref={useMergeRefs([mainRef, ref])} {...rest}>\n <div className={styles[\"content-inner\"]}>{children}</div>\n <div\n className={styles[\"virtual-scroll-container\"]}\n ref={virtualScrollRef}\n style={{\n left: leftOffset,\n }}\n onScrollCapture={scrollBody}\n onMouseEnter={() => {\n blocker.current = false;\n }}\n onMouseLeave={() => {\n blocker.current = true;\n }}\n >\n <div style={{ width: 1, height: contentHeight }} />\n </div>\n </main>\n );\n },\n);\n\nPageContent.displayName = \"PageContent\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useContext,\n useLayoutEffect,\n useState,\n} from \"react\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport Dialog from \"../Dialog\";\nimport { PageContext, PageContextProps } from \"./PageContext\";\n\n/**\n * Props for the PagePanel component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PagePanelProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Whether the panel is open\n * @default true\n */\n open?: boolean;\n /**\n * Size of the panel\n * @default \"medium\"\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Whether to remove default padding from the panel\n * @default false\n */\n noPadding?: boolean;\n};\n\n/**\n * PagePanel component for creating slide-out panels or dialogs.\n *\n * Features:\n * - Responsive design with dialog fallback on mobile\n * - Multiple size variants (small, medium, large)\n * - Optional padding control\n * - Persistent or controlled open state\n * - Automatic mobile dialog conversion\n * - Keyboard navigation and accessibility support\n * - Smooth animations and transitions\n *\n * @example\n * <Page.Panel open={isOpen} size=\"medium\">\n * <Text variant=\"headline\" el=\"h3\">Panel Content</Text>\n * <Button onClick={() => setIsOpen(false)}>Close</Button>\n * </Page.Panel>\n */\nexport const PagePanel = forwardRef(\n (props: PagePanelProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n open,\n size = \"medium\",\n noPadding,\n style,\n className,\n ...rest\n } = props;\n const classNames = cx([styles[\"panel\"]], [styles[size]], className, {\n [styles[\"open\"]]: typeof open === \"undefined\" ? true : open,\n [styles[\"persistent\"]]: typeof open === \"undefined\",\n [styles[\"noPadding\"]]: noPadding,\n });\n\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n\n const [isMobile, setIsMobile] = useState<boolean>(false);\n\n useLayoutEffect(() => {\n const breakpointWidth = +(\n core.primitive?.BreakpointLg?.value.replace(\"px\", \"\") ?? 0\n );\n const innerWidth = pageWidth ?? 0;\n setIsMobile(innerWidth < breakpointWidth);\n }, [pageWidth]);\n\n if (typeof open !== \"undefined\" && isMobile) {\n return (\n <Dialog open={open}>\n <Dialog.Content>\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n </Dialog.Content>\n </Dialog>\n );\n }\n return (\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n <div\n className={styles[\"panel-inner\"]}\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n tabIndex={typeof open !== \"undefined\" && open ? 0 : -1}\n style={style}\n >\n <div>{children}</div>\n </div>\n </div>\n );\n },\n);\nPagePanel.displayName = \"PagePanel\";\n","import { ComponentPropsWithoutRef, forwardRef, Ref } from \"react\";\nimport {\n LayoutUtilProps,\n useLayoutPropsUtil,\n} from \"@servicetitan/hammer-react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\n\n/**\n * Props for the PageFooter component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type PageFooterProps = ComponentPropsWithoutRef<\"div\"> & LayoutUtilProps;\n\n/**\n * PageFooter component for creating page footers with layout utilities.\n *\n * Features:\n * - Semantic footer element\n * - Layout utility props support\n * - Responsive design\n * - Accessibility support with proper footer landmark\n * - Flexible content positioning\n *\n * @example\n * <Page.Footer>\n * <Text>Footer content with layout utilities</Text>\n * </Page.Footer>\n */\nexport const PageFooter = forwardRef(\n (props: PageFooterProps, ref: Ref<HTMLDivElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { children, className, style, ...rest } = componentProps;\n\n const classNames = cx([styles[\"content-footer\"]], className);\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n return (\n <footer className={classNames} ref={ref} style={styleCombined} {...rest}>\n {children}\n </footer>\n );\n },\n);\nPageFooter.displayName = \"PageFooter\";\n","import {\n ComponentPropsWithoutRef,\n Ref,\n forwardRef,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSidebar } from \"./PageSidebar\";\nimport { PageSidebarHeader } from \"./PageSidebarHeader\";\nimport { PageHeader } from \"./PageHeader\";\nimport { PageContent } from \"./PageContent\";\nimport { PagePanel } from \"./PagePanel\";\nimport { PageFooter } from \"./PageFooter\";\nimport { PageContext } from \"./PageContext\";\nimport { useMergeRefs } from \"@servicetitan/hammer-react\";\n\n//--- Start Page Element ---//\n/**\n * Props for the Page component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageProps = ComponentPropsWithoutRef<\"div\">;\n\nconst PageElement = forwardRef((props: PageProps, ref: Ref<HTMLDivElement>) => {\n const { children, className, ...rest } = props;\n const classNames = cx(styles[\"page\"], className);\n const elRef = useRef<HTMLDivElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n\n const [pageWidth, setPageWidth] = useState<number>(0);\n\n useLayoutEffect(() => {\n const element = elRef.current;\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n setPageWidth(entry.contentRect.width);\n }\n });\n if (element) {\n resizeObserver.observe(element);\n }\n return () => {\n if (element) {\n resizeObserver.unobserve(element);\n resizeObserver.disconnect();\n }\n };\n }, [elRef]);\n\n return (\n <PageContext.Provider value={{ pageWidth }}>\n <div className={classNames} data-anv=\"Page\" ref={combinedRef} {...rest}>\n <div className={styles[\"container\"]}>{children}</div>\n </div>\n </PageContext.Provider>\n );\n});\n\nPageElement.displayName = \"Page\";\n\n/**\n * Page component for creating full-page layouts with navigation and content areas.\n *\n * Features:\n * - Container for complete page layouts\n * - Supports sidebar navigation with collapsible state\n * - Header with breadcrumbs, chips, and action buttons\n * - Main content area with virtual scrolling\n * - Optional slide-out panels with responsive dialog fallback\n * - Footer with layout utilities\n * - Responsive design with mobile adaptations\n * - Accessibility support with proper landmarks\n * - Automatic tracking ID generation for analytics\n * - Local storage persistence for sidebar state\n *\n * @example\n * <Page>\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Navigation</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[{ href: \"/\", children: \"Home\" }]}\n * actions={{ primary: { label: \"Save\", onClick: handleSave } }}\n * />\n * <Page.Content>\n * <Text>Main content</Text>\n * </Page.Content>\n * <Page.Panel open={isPanelOpen} size=\"medium\">\n * <Text>Panel content</Text>\n * </Page.Panel>\n * <Page.Footer>\n * <Text>Footer content</Text>\n * </Page.Footer>\n * </Page>\n */\nexport const Page = Object.assign(PageElement, {\n /**\n * PageSidebar component for creating collapsible navigation sidebars.\n *\n * Features:\n * - Collapsible sidebar with localStorage persistence\n * - Responsive design with adaptive popover on mobile\n * - Automatic tracking ID generation for analytics\n * - Keyboard navigation and accessibility support\n * - Toggle button with tooltip\n * - Context provider for sidebar state\n * - Mobile-friendly popover navigation\n *\n * @example\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Sidebar Title</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n */\n Sidebar: PageSidebar,\n /**\n * PageSidebarHeader component for creating header sections within sidebars.\n *\n * Features:\n * - Container for sidebar header content\n * - Automatic visibility handling based on sidebar collapsed state\n * - Supports all standard div props\n * - Context-aware styling\n *\n * @example\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">\n * Sidebar Title\n * </Text>\n * </Page.SidebarHeader>\n */\n SidebarHeader: PageSidebarHeader,\n /**\n * PageHeader component for creating page headers with navigation and actions.\n *\n * Features:\n * - Page title with semantic heading\n * - Breadcrumb navigation support\n * - Status chips display\n * - Primary and secondary action buttons\n * - Preference action button/link\n * - Responsive layout with fluid grid\n * - Accessibility support with proper ARIA labels\n * - Flexible layout configuration\n * - Description content support\n *\n * @example\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[\n * { href: \"/\", children: \"Home\" },\n * { children: \"Current Page\" }\n * ]}\n * chips={[{ label: \"Status\" }]}\n * actions={{\n * primary: { label: \"Save\", onClick: handleSave },\n * secondary: [{ label: \"Cancel\", onClick: handleCancel }]\n * }}\n * />\n */\n Header: PageHeader,\n /**\n * PageContent component for the main content area of a page.\n *\n * Features:\n * - Semantic main element for page content\n * - Virtual scrolling support for long content\n * - Automatic scroll synchronization\n * - Responsive design\n * - Accessibility support with proper main landmark\n * - Scroll position management\n *\n * @example\n * <Page.Content>\n * <Text>Main page content goes here</Text>\n * <Button>Action Button</Button>\n * </Page.Content>\n */\n Content: PageContent,\n /**\n * PagePanel component for creating slide-out panels or dialogs.\n *\n * Features:\n * - Responsive design with dialog fallback on mobile\n * - Multiple size variants (small, medium, large)\n * - Optional padding control\n * - Persistent or controlled open state\n * - Automatic mobile dialog conversion\n * - Keyboard navigation and accessibility support\n * - Smooth animations and transitions\n *\n * @example\n * <Page.Panel open={isOpen} size=\"medium\">\n * <Text variant=\"headline\" el=\"h3\">Panel Content</Text>\n * <Button onClick={() => setIsOpen(false)}>Close</Button>\n * </Page.Panel>\n */\n Panel: PagePanel,\n /**\n * PageFooter component for creating page footers with layout utilities.\n *\n * Features:\n * - Semantic footer element\n * - Layout utility props support\n * - Responsive design\n * - Accessibility support with proper footer landmark\n * - Flexible content positioning\n *\n * @example\n * <Page.Footer>\n * <Text>Footer content with layout utilities</Text>\n * </Page.Footer>\n */\n Footer: PageFooter,\n});\n"],"names":["core.primitive?.BreakpointLg","props","SegmentSVG","RespClose","RespOpen","OpenSVG","CloseSVG","LocalSettings","ref","rest","MoreVert"],"mappings":"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"}
1
+ {"version":3,"file":"Page-CxB5N9dR.js","sources":["../../hammer-icon/mdi/round/segment.svg","../../hammer-icon/mdi/round/chevron_left.svg","../src/components/Page/PageSidebarContext.ts","../src/components/Page/PageContext.ts","../src/components/Page/PageSidebar.tsx","../src/components/Page/PageSidebarHeader.tsx","../../hammer-icon/mdi/round/settings.svg","../src/components/Page/PageHeader.tsx","../src/components/Page/PageContent.tsx","../src/components/Page/PagePanel.tsx","../src/components/Page/PageFooter.tsx","../src/components/Page/Page.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgSegment = (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: \"M10 18h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zM3 7c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1zm7 6h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1z\" }));\nexport default SvgSegment;\n","import * as React from \"react\";\nconst SvgChevronLeft = (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: \"M14.71 6.71a.996.996 0 0 0-1.41 0L8.71 11.3a.996.996 0 0 0 0 1.41l4.59 4.59a.996.996 0 1 0 1.41-1.41L10.83 12l3.88-3.88c.39-.39.38-1.03 0-1.41z\" }));\nexport default SvgChevronLeft;\n","import { createContext } from \"react\";\n\ntype PageSideBarContextProps = {\n collapsed: boolean;\n};\n\nexport const PageSideBarContext = createContext<PageSideBarContextProps | null>(\n null,\n);\n","import { createContext } from \"react\";\n\nexport const PageContext = createContext<PageContextProps>({});\n\nexport type PageContextProps = {\n pageWidth?: number;\n};\n","import {\n Popover,\n Button,\n Icon,\n Flex,\n Tooltip,\n} from \"@servicetitan/hammer-react\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useContext,\n useState,\n useLayoutEffect,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport SegmentSVG from \"@servicetitan/hammer-icon/mdi/round/segment.svg\";\nimport RespOpen from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_down.svg\";\nimport RespClose from \"@servicetitan/hammer-icon/mdi/round/keyboard_arrow_up.svg\";\nimport OpenSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport CloseSVG from \"@servicetitan/hammer-icon/mdi/round/chevron_left.svg\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\nimport { PageContext, PageContextProps } from \"./PageContext\";\n\n/**\n * Props for the PageSidebar component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Key for storing sidebar collapsed state in localStorage\n * @default \"sidebar-collapsed\"\n */\n localStorageKey?: string;\n /**\n * Custom tracking ID for analytics\n */\n [\"data-tracking-id\"]?: string;\n /**\n * Title to display in the adaptive trigger button\n */\n currentPageTitle?: string;\n};\n\n/**\n * PageSidebar component for creating collapsible navigation sidebars.\n *\n * Features:\n * - Collapsible sidebar with localStorage persistence\n * - Responsive design with adaptive popover on mobile\n * - Automatic tracking ID generation for analytics\n * - Keyboard navigation and accessibility support\n * - Toggle button with tooltip\n * - Context provider for sidebar state\n * - Mobile-friendly popover navigation\n *\n * @example\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Sidebar Title</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n */\nexport const PageSidebar = forwardRef(\n (props: PageSidebarProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n className,\n currentPageTitle,\n localStorageKey = \"sidebar-collapsed\",\n ...rest\n } = props;\n\n const data = {\n localStorageKey,\n };\n\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n const [isMobile, setIsMobile] = useState<boolean>();\n\n useLayoutEffect(() => {\n const breakpointWidth = +(\n core.primitive?.BreakpointLg?.value.replace(\"px\", \"\") ?? 0\n );\n const innerWidth = pageWidth ?? 0;\n setIsMobile(innerWidth < breakpointWidth);\n }, [pageWidth]);\n\n const trackingId = useTrackingId({\n name: \"PageSidebarButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const [collapsed, setCollapsed] = useState<boolean>(() => {\n // getting stored value\n const sidebarState = localStorage.getItem(localStorageKey);\n return sidebarState ? JSON.parse(sidebarState) : false;\n });\n const classNames = cx([styles[\"sidebar\"]], className, {\n [styles[\"collapsed\"]]: collapsed,\n });\n const onToggleButtonClick = () => {\n setCollapsed((prev) => {\n localStorage.setItem(localStorageKey, JSON.stringify(!prev));\n return !prev;\n });\n };\n\n if (typeof isMobile !== \"undefined\" && isMobile) {\n return (\n <Popover fillAvailableHeight matchReferenceWidth noPadding disableCaret>\n <Popover.Trigger>\n {(props) => {\n if (typeof document !== \"undefined\") {\n if (props[\"data-state\"] === \"open\") {\n document.body.style.overflow = \"hidden\";\n } else {\n document.body.style.overflow = \"auto\";\n }\n }\n return (\n <div className={styles[\"sidebar-adaptive-trigger-container\"]}>\n <Button\n className={styles[\"sidebar-adaptive-trigger\"]}\n icon={SegmentSVG}\n appearance=\"ghost\"\n {...props}\n >\n {!currentPageTitle ? \"Menu\" : currentPageTitle}\n <Icon\n className={styles[\"sidebar-adaptive-trigger-icon\"]}\n justifyContent=\"end\"\n svg={\n props[\"data-state\"] === \"open\" ? RespClose : RespOpen\n }\n />\n </Button>\n </div>\n );\n }}\n </Popover.Trigger>\n <Popover.Content className={styles[\"sidebar-adaptive-container\"]}>\n <Flex\n direction=\"column\"\n className={styles[\"sidebar-adaptive\"]}\n ref={ref}\n >\n {children}\n </Flex>\n </Popover.Content>\n </Popover>\n );\n }\n\n return (\n <PageSideBarContext.Provider value={{ collapsed }}>\n <div className={classNames} ref={ref} {...rest}>\n <div className={styles[\"sidebar-inner\"]} aria-hidden={collapsed}>\n <div>{children}</div>\n </div>\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Tooltip placement=\"right\">\n <Tooltip.Trigger className={styles[\"toggle-button-tooltip\"]}>\n <Button\n size=\"small\"\n onClick={onToggleButtonClick}\n className={styles[\"toggle-button\"]}\n aria-label={collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n data-tracking-id={trackingId}\n icon={collapsed ? OpenSVG : CloseSVG}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>\n {collapsed ? \"Open Sidebar\" : \"Close Sidebar\"}\n </Tooltip.Content>\n </Tooltip>\n </div>\n </div>\n </PageSideBarContext.Provider>\n );\n },\n);\n\nPageSidebar.displayName = \"Page.Sidebar\";\n","import { ComponentPropsWithoutRef, forwardRef, Ref, useContext } from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSideBarContext } from \"./PageSidebarContext\";\n\n/**\n * Props for the PageSidebarHeader component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageSidebarHeaderProps = ComponentPropsWithoutRef<\"div\">;\n\n/**\n * PageSidebarHeader component for creating header sections within sidebars.\n *\n * Features:\n * - Container for sidebar header content\n * - Automatic visibility handling based on sidebar collapsed state\n * - Supports all standard div props\n * - Context-aware styling\n *\n * @example\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">\n * Sidebar Title\n * </Text>\n * </Page.SidebarHeader>\n */\nexport const PageSidebarHeader = forwardRef(\n (props: PageSidebarHeaderProps, ref: Ref<HTMLDivElement>) => {\n const { children, className, ...rest } = props;\n const context = useContext(PageSideBarContext);\n const classNames = cx([styles[\"sidebar-header\"]], className);\n\n return (\n <div className={classNames} ref={ref} {...rest}>\n <div\n className={styles[\"header-content\"]}\n aria-hidden={context?.collapsed}\n >\n {children}\n </div>\n </div>\n );\n },\n);\n\nPageSidebarHeader.displayName = \"Page.SidebarHeader\";\n","import * as React from \"react\";\nconst SvgSettings = (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: \"M19.5 12c0-.23-.01-.45-.03-.68l1.86-1.41c.4-.3.51-.86.26-1.3l-1.87-3.23a.987.987 0 0 0-1.25-.42l-2.15.91c-.37-.26-.76-.49-1.17-.68l-.29-2.31c-.06-.5-.49-.88-.99-.88h-3.73c-.51 0-.94.38-1 .88l-.29 2.31c-.41.19-.8.42-1.17.68l-2.15-.91c-.46-.2-1-.02-1.25.42L2.41 8.62c-.25.44-.14.99.26 1.3l1.86 1.41a7.343 7.343 0 0 0 0 1.35l-1.86 1.41c-.4.3-.51.86-.26 1.3l1.87 3.23c.25.44.79.62 1.25.42l2.15-.91c.37.26.76.49 1.17.68l.29 2.31c.06.5.49.88.99.88h3.73c.5 0 .93-.38.99-.88l.29-2.31c.41-.19.8-.42 1.17-.68l2.15.91c.46.2 1 .02 1.25-.42l1.87-3.23c.25-.44.14-.99-.26-1.3l-1.86-1.41c.03-.23.04-.45.04-.68zm-7.46 3.5c-1.93 0-3.5-1.57-3.5-3.5s1.57-3.5 3.5-3.5 3.5 1.57 3.5 3.5-1.57 3.5-3.5 3.5z\" }));\nexport default SvgSettings;\n","import {\n ButtonProps,\n ButtonLinkProps,\n BreadcrumbsLinkProps,\n ChipProps,\n Tooltip,\n ButtonLink,\n Button,\n Flex,\n Menu,\n Breadcrumbs,\n Chip,\n Text,\n} from \"@servicetitan/hammer-react\";\nimport {\n ComponentPropsWithoutRef,\n ReactNode,\n forwardRef,\n Ref,\n RefObject,\n} from \"react\";\nimport Layout, { LayoutProps } from \"../Layout\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport LocalSettings from \"@servicetitan/hammer-icon/mdi/round/settings.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round/more_vert.svg\";\n\n/**\n * Props for page header action buttons\n */\ntype PageHeaderActionProps = Omit<ButtonProps, \"appearance\"> & {\n /**\n * Label text for the action button\n */\n label: string;\n};\n\n/**\n * Props for page header actions configuration\n */\ntype PageHeaderActionsProps = {\n /**\n * Primary action button\n */\n primary?: PageHeaderActionProps;\n /**\n * Array of secondary action buttons\n */\n secondary?: PageHeaderActionProps[];\n};\n\n/**\n * Base props for preference actions\n */\ntype BasePreferenceProps = {\n /**\n * Accessible label for the preference action\n */\n \"aria-label\": string;\n};\n\n/**\n * Props for preference button actions\n */\ntype PreferenceButtonProps = Omit<\n ButtonProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\n/**\n * Props for preference link actions\n */\ntype PreferenceLinkProps = Omit<\n ButtonLinkProps,\n \"aria-label\" | \"icon\" | \"appearance\" | \"size\" | \"className\"\n> &\n BasePreferenceProps;\n\n/**\n * Props for the PageHeader component\n * @extends ComponentPropsWithoutRef<\"header\">\n */\nexport type PageHeaderProps = ComponentPropsWithoutRef<\"header\"> & {\n /**\n * Main title of the page\n */\n title: string;\n /**\n * Breadcrumb navigation links\n */\n breadcrumbs?: BreadcrumbsLinkProps[];\n /**\n * Status chips to display\n */\n chips?: ChipProps[];\n /**\n * Description text or content below the title\n */\n description?: ReactNode;\n /**\n * Primary and secondary action buttons\n */\n actions?: PageHeaderActionsProps;\n /**\n * Preference action button or link\n */\n preferenceAction?: PreferenceButtonProps | PreferenceLinkProps;\n /**\n * Layout configuration for the header\n */\n layout?: LayoutProps;\n};\n\n/**\n * PageHeader component for creating page headers with navigation and actions.\n *\n * Features:\n * - Page title with semantic heading\n * - Breadcrumb navigation support\n * - Status chips display\n * - Primary and secondary action buttons\n * - Preference action button/link\n * - Responsive layout with fluid grid\n * - Accessibility support with proper ARIA labels\n * - Flexible layout configuration\n * - Description content support\n *\n * @example\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[\n * { href: \"/\", children: \"Home\" },\n * { children: \"Current Page\" }\n * ]}\n * chips={[{ label: \"Status\" }]}\n * actions={{\n * primary: { label: \"Save\", onClick: handleSave },\n * secondary: [{ label: \"Cancel\", onClick: handleCancel }]\n * }}\n * />\n */\nexport const PageHeader = forwardRef(\n (props: PageHeaderProps, ref: Ref<HTMLHeadElement>) => {\n const {\n title,\n breadcrumbs,\n chips,\n description,\n actions,\n preferenceAction,\n layout,\n className,\n ...rest\n } = props;\n\n const { fluid, variant } = layout || {};\n\n const preferenceItem =\n preferenceAction &&\n (\"href\" in preferenceAction ? (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonLink\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceLinkProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n appearance=\"ghost\"\n icon={LocalSettings}\n size=\"small\"\n className={styles[\"preference-action\"]}\n {...(preferenceAction as PreferenceButtonProps)}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{preferenceAction[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n ));\n\n const actionItems = actions && (\n <Flex justifyContent=\"flex-end\" className={styles.actions}>\n {/* Only primary action */}\n {actions.primary &&\n (!actions.secondary || actions.secondary.length === 0) && (\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n )}\n\n {/* Only secondary actions (1-2 buttons) */}\n {!!actions.secondary?.length &&\n actions.secondary.length < 3 &&\n !actions.primary &&\n actions.secondary.map((action, index) => (\n <Button key={index} appearance=\"secondary\" {...action}>\n {action.label}\n </Button>\n ))}\n\n {/* 1 secondary action + primary action */}\n {actions.primary &&\n !!actions.secondary?.length &&\n actions.secondary.length === 1 && (\n <>\n <Button appearance=\"secondary\" {...actions.secondary[0]}>\n {actions.secondary[0].label}\n </Button>\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n </>\n )}\n\n {/* Multiple secondary actions (3+) with optional primary */}\n {!!actions.secondary?.length &&\n (actions.secondary.length >= 3 ||\n (actions.secondary.length >= 2 && actions.primary)) && (\n <>\n <Menu\n trigger={({ ref, ...rest }) => (\n <Tooltip>\n <Tooltip.Trigger\n ref={ref as unknown as RefObject<HTMLDivElement>}\n {...rest}\n >\n <Button\n appearance=\"secondary\"\n icon={MoreVert}\n aria-label=\"More actions\"\n />\n </Tooltip.Trigger>\n <Tooltip.Content>More actions</Tooltip.Content>\n </Tooltip>\n )}\n >\n {actions.secondary.map((action, index) => (\n <Menu.Item\n key={index}\n label={action.label}\n onClick={action.onClick}\n disabled={action.disabled}\n />\n ))}\n </Menu>\n {actions.primary && (\n <Button appearance=\"primary\" {...actions.primary}>\n {actions.primary.label}\n </Button>\n )}\n </>\n )}\n </Flex>\n );\n\n const headerClassName = cx(styles.content, styles.header, className);\n\n const headerContentClassName = cx(\n styles[\"content-inner\"],\n styles[\"content-header-inner\"],\n );\n\n return (\n <header ref={ref} className={headerClassName} {...rest}>\n <div className={headerContentClassName}>\n <Layout fluid={fluid} variant={variant} className={styles[\"layout\"]}>\n <Layout.Item>\n {breadcrumbs && (\n <Breadcrumbs>\n {breadcrumbs.map((breadcrumb, index) => (\n <Breadcrumbs.Link key={index} {...breadcrumb} />\n ))}\n </Breadcrumbs>\n )}\n </Layout.Item>\n\n <Layout.Item md={actionItems ? 6 : 12}>\n <div className={styles[\"title-wrapper\"]}>\n <Text\n variant=\"headline\"\n size=\"large\"\n el=\"h1\"\n className={styles.title}\n >\n {title}\n </Text>\n\n {preferenceItem}\n </div>\n\n {chips && (\n <Flex className={styles.chips}>\n {chips.map((chip, index) => (\n <Chip key={index} {...chip} />\n ))}\n </Flex>\n )}\n </Layout.Item>\n\n {actions && <Layout.Item md={6}>{actionItems}</Layout.Item>}\n\n {description && (\n <Layout.Item md={12} className={styles.description}>\n {description}\n </Layout.Item>\n )}\n </Layout>\n </div>\n </header>\n );\n },\n);\n\nPageHeader.displayName = \"Page.Header\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useEffect,\n useRef,\n useState,\n UIEvent,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { useMergeRefs } from \"@servicetitan/hammer-react\";\n\n/**\n * Props for the PageContent component\n * @extends ComponentPropsWithoutRef<\"main\">\n */\nexport type PageContentProps = ComponentPropsWithoutRef<\"main\">;\n\n/**\n * PageContent component for the main content area of a page.\n *\n * Features:\n * - Semantic main element for page content\n * - Virtual scrolling support for long content\n * - Automatic scroll synchronization\n * - Responsive design\n * - Accessibility support with proper main landmark\n * - Scroll position management\n *\n * @example\n * <Page.Content>\n * <Text>Main page content goes here</Text>\n * <Button>Action Button</Button>\n * </Page.Content>\n */\nexport const PageContent = forwardRef(\n (props: PageContentProps, ref: Ref<HTMLAreaElement>) => {\n const { children, className, ...rest } = props;\n const classNames = cx([styles[\"content\"]], className);\n const mainRef = useRef<HTMLAreaElement>(null);\n const virtualScrollRef = useRef<HTMLDivElement>(null);\n const blocker = useRef(true);\n const [leftOffset, setLeftOffset] = useState(\n (mainRef.current?.offsetLeft ?? 0) +\n (mainRef.current?.offsetWidth ?? 0) -\n 9,\n );\n const [contentHeight, setContentHeight] = useState(\n mainRef.current?.offsetHeight,\n );\n\n // Updates scroll position\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n if (!blocker.current) return;\n function updatePosition() {\n const newValue = window.scrollY;\n\n virtualScrollRef.current?.scrollTo(0, newValue ?? 0);\n }\n window.addEventListener(\"scroll\", updatePosition, { passive: true });\n\n return () => {\n window.removeEventListener(\"scroll\", updatePosition);\n };\n }, []);\n\n // Updates virtual scroll properties when main resizes\n useEffect(() => {\n if (mainRef.current) {\n const observer = new ResizeObserver(() => {\n if (!mainRef.current) return;\n setLeftOffset(\n mainRef.current.offsetLeft + mainRef.current.offsetWidth - 9,\n );\n setContentHeight(mainRef.current.offsetHeight);\n });\n\n observer.observe(mainRef.current);\n\n // Cleanup function\n return () => {\n observer.disconnect();\n };\n }\n }, []);\n\n function scrollBody(e: UIEvent<HTMLElement>) {\n if (typeof window === \"undefined\") return;\n if (blocker.current) return;\n window.scrollTo(0, (e.target as HTMLDivElement).scrollTop);\n }\n\n return (\n <main className={classNames} ref={useMergeRefs([mainRef, ref])} {...rest}>\n <div className={styles[\"content-inner\"]}>{children}</div>\n <div\n className={styles[\"virtual-scroll-container\"]}\n ref={virtualScrollRef}\n style={{\n left: leftOffset,\n }}\n onScrollCapture={scrollBody}\n onMouseEnter={() => {\n blocker.current = false;\n }}\n onMouseLeave={() => {\n blocker.current = true;\n }}\n >\n <div style={{ width: 1, height: contentHeight }} />\n </div>\n </main>\n );\n },\n);\n\nPageContent.displayName = \"PageContent\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n Ref,\n useContext,\n useLayoutEffect,\n useState,\n} from \"react\";\nimport { core } from \"@servicetitan/hammer-token\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport Dialog from \"../Dialog\";\nimport { PageContext, PageContextProps } from \"./PageContext\";\n\n/**\n * Props for the PagePanel component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PagePanelProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * Whether the panel is open\n * @default true\n */\n open?: boolean;\n /**\n * Size of the panel\n * @default \"medium\"\n */\n size?: \"small\" | \"medium\" | \"large\";\n /**\n * Whether to remove default padding from the panel\n * @default false\n */\n noPadding?: boolean;\n};\n\n/**\n * PagePanel component for creating slide-out panels or dialogs.\n *\n * Features:\n * - Responsive design with dialog fallback on mobile\n * - Multiple size variants (small, medium, large)\n * - Optional padding control\n * - Persistent or controlled open state\n * - Automatic mobile dialog conversion\n * - Keyboard navigation and accessibility support\n * - Smooth animations and transitions\n *\n * @example\n * <Page.Panel open={isOpen} size=\"medium\">\n * <Text variant=\"headline\" el=\"h3\">Panel Content</Text>\n * <Button onClick={() => setIsOpen(false)}>Close</Button>\n * </Page.Panel>\n */\nexport const PagePanel = forwardRef(\n (props: PagePanelProps, ref: Ref<HTMLDivElement>) => {\n const {\n children,\n open,\n size = \"medium\",\n noPadding,\n style,\n className,\n ...rest\n } = props;\n const classNames = cx([styles[\"panel\"]], [styles[size]], className, {\n [styles[\"open\"]]: typeof open === \"undefined\" ? true : open,\n [styles[\"persistent\"]]: typeof open === \"undefined\",\n [styles[\"noPadding\"]]: noPadding,\n });\n\n const { pageWidth } = useContext<PageContextProps>(PageContext);\n\n const [isMobile, setIsMobile] = useState<boolean>(false);\n\n useLayoutEffect(() => {\n const breakpointWidth = +(\n core.primitive?.BreakpointLg?.value.replace(\"px\", \"\") ?? 0\n );\n const innerWidth = pageWidth ?? 0;\n setIsMobile(innerWidth < breakpointWidth);\n }, [pageWidth]);\n\n if (typeof open !== \"undefined\" && isMobile) {\n return (\n <Dialog open={open}>\n <Dialog.Content>\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n {children}\n </div>\n </Dialog.Content>\n </Dialog>\n );\n }\n return (\n <div\n className={classNames}\n aria-hidden={!open}\n aria-disabled={!open}\n ref={ref}\n {...rest}\n >\n <div\n className={styles[\"panel-inner\"]}\n /* eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex */\n tabIndex={typeof open !== \"undefined\" && open ? 0 : -1}\n style={style}\n >\n <div>{children}</div>\n </div>\n </div>\n );\n },\n);\nPagePanel.displayName = \"PagePanel\";\n","import { ComponentPropsWithoutRef, forwardRef, Ref } from \"react\";\nimport {\n LayoutUtilProps,\n useLayoutPropsUtil,\n} from \"@servicetitan/hammer-react\";\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\n\n/**\n * Props for the PageFooter component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type PageFooterProps = ComponentPropsWithoutRef<\"div\"> & LayoutUtilProps;\n\n/**\n * PageFooter component for creating page footers with layout utilities.\n *\n * Features:\n * - Semantic footer element\n * - Layout utility props support\n * - Responsive design\n * - Accessibility support with proper footer landmark\n * - Flexible content positioning\n *\n * @example\n * <Page.Footer>\n * <Text>Footer content with layout utilities</Text>\n * </Page.Footer>\n */\nexport const PageFooter = forwardRef(\n (props: PageFooterProps, ref: Ref<HTMLDivElement>) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const { children, className, style, ...rest } = componentProps;\n\n const classNames = cx([styles[\"content-footer\"]], className);\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n return (\n <footer className={classNames} ref={ref} style={styleCombined} {...rest}>\n {children}\n </footer>\n );\n },\n);\nPageFooter.displayName = \"PageFooter\";\n","import {\n ComponentPropsWithoutRef,\n Ref,\n forwardRef,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport cx from \"classnames\";\nimport styles from \"./Page.module.scss\";\nimport { PageSidebar } from \"./PageSidebar\";\nimport { PageSidebarHeader } from \"./PageSidebarHeader\";\nimport { PageHeader } from \"./PageHeader\";\nimport { PageContent } from \"./PageContent\";\nimport { PagePanel } from \"./PagePanel\";\nimport { PageFooter } from \"./PageFooter\";\nimport { PageContext } from \"./PageContext\";\nimport { useMergeRefs } from \"@servicetitan/hammer-react\";\n\n//--- Start Page Element ---//\n/**\n * Props for the Page component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type PageProps = ComponentPropsWithoutRef<\"div\">;\n\nconst PageElement = forwardRef((props: PageProps, ref: Ref<HTMLDivElement>) => {\n const { children, className, ...rest } = props;\n const classNames = cx(styles[\"page\"], className);\n const elRef = useRef<HTMLDivElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n\n const [pageWidth, setPageWidth] = useState<number>(0);\n\n useLayoutEffect(() => {\n const element = elRef.current;\n const resizeObserver = new ResizeObserver((entries) => {\n const entry = entries[0];\n if (entry) {\n setPageWidth(entry.contentRect.width);\n }\n });\n if (element) {\n resizeObserver.observe(element);\n }\n return () => {\n if (element) {\n resizeObserver.unobserve(element);\n resizeObserver.disconnect();\n }\n };\n }, [elRef]);\n\n return (\n <PageContext.Provider value={{ pageWidth }}>\n <div className={classNames} data-anv=\"Page\" ref={combinedRef} {...rest}>\n <div className={styles[\"container\"]}>{children}</div>\n </div>\n </PageContext.Provider>\n );\n});\n\nPageElement.displayName = \"Page\";\n\n/**\n * Page component for creating full-page layouts with navigation and content areas.\n *\n * Features:\n * - Container for complete page layouts\n * - Supports sidebar navigation with collapsible state\n * - Header with breadcrumbs, chips, and action buttons\n * - Main content area with virtual scrolling\n * - Optional slide-out panels with responsive dialog fallback\n * - Footer with layout utilities\n * - Responsive design with mobile adaptations\n * - Accessibility support with proper landmarks\n * - Automatic tracking ID generation for analytics\n * - Local storage persistence for sidebar state\n *\n * @example\n * <Page>\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Navigation</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[{ href: \"/\", children: \"Home\" }]}\n * actions={{ primary: { label: \"Save\", onClick: handleSave } }}\n * />\n * <Page.Content>\n * <Text>Main content</Text>\n * </Page.Content>\n * <Page.Panel open={isPanelOpen} size=\"medium\">\n * <Text>Panel content</Text>\n * </Page.Panel>\n * <Page.Footer>\n * <Text>Footer content</Text>\n * </Page.Footer>\n * </Page>\n */\nexport const Page = Object.assign(PageElement, {\n /**\n * PageSidebar component for creating collapsible navigation sidebars.\n *\n * Features:\n * - Collapsible sidebar with localStorage persistence\n * - Responsive design with adaptive popover on mobile\n * - Automatic tracking ID generation for analytics\n * - Keyboard navigation and accessibility support\n * - Toggle button with tooltip\n * - Context provider for sidebar state\n * - Mobile-friendly popover navigation\n *\n * @example\n * <Page.Sidebar currentPageTitle=\"Navigation\">\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\">Sidebar Title</Text>\n * </Page.SidebarHeader>\n * <SideNav>\n * <SideNavLink pathname=\"/\">Home</SideNavLink>\n * </SideNav>\n * </Page.Sidebar>\n */\n Sidebar: PageSidebar,\n /**\n * PageSidebarHeader component for creating header sections within sidebars.\n *\n * Features:\n * - Container for sidebar header content\n * - Automatic visibility handling based on sidebar collapsed state\n * - Supports all standard div props\n * - Context-aware styling\n *\n * @example\n * <Page.SidebarHeader>\n * <Text variant=\"headline\" el=\"h2\" size=\"medium\">\n * Sidebar Title\n * </Text>\n * </Page.SidebarHeader>\n */\n SidebarHeader: PageSidebarHeader,\n /**\n * PageHeader component for creating page headers with navigation and actions.\n *\n * Features:\n * - Page title with semantic heading\n * - Breadcrumb navigation support\n * - Status chips display\n * - Primary and secondary action buttons\n * - Preference action button/link\n * - Responsive layout with fluid grid\n * - Accessibility support with proper ARIA labels\n * - Flexible layout configuration\n * - Description content support\n *\n * @example\n * <Page.Header\n * title=\"Page Title\"\n * breadcrumbs={[\n * { href: \"/\", children: \"Home\" },\n * { children: \"Current Page\" }\n * ]}\n * chips={[{ label: \"Status\" }]}\n * actions={{\n * primary: { label: \"Save\", onClick: handleSave },\n * secondary: [{ label: \"Cancel\", onClick: handleCancel }]\n * }}\n * />\n */\n Header: PageHeader,\n /**\n * PageContent component for the main content area of a page.\n *\n * Features:\n * - Semantic main element for page content\n * - Virtual scrolling support for long content\n * - Automatic scroll synchronization\n * - Responsive design\n * - Accessibility support with proper main landmark\n * - Scroll position management\n *\n * @example\n * <Page.Content>\n * <Text>Main page content goes here</Text>\n * <Button>Action Button</Button>\n * </Page.Content>\n */\n Content: PageContent,\n /**\n * PagePanel component for creating slide-out panels or dialogs.\n *\n * Features:\n * - Responsive design with dialog fallback on mobile\n * - Multiple size variants (small, medium, large)\n * - Optional padding control\n * - Persistent or controlled open state\n * - Automatic mobile dialog conversion\n * - Keyboard navigation and accessibility support\n * - Smooth animations and transitions\n *\n * @example\n * <Page.Panel open={isOpen} size=\"medium\">\n * <Text variant=\"headline\" el=\"h3\">Panel Content</Text>\n * <Button onClick={() => setIsOpen(false)}>Close</Button>\n * </Page.Panel>\n */\n Panel: PagePanel,\n /**\n * PageFooter component for creating page footers with layout utilities.\n *\n * Features:\n * - Semantic footer element\n * - Layout utility props support\n * - Responsive design\n * - Accessibility support with proper footer landmark\n * - Flexible content positioning\n *\n * @example\n * <Page.Footer>\n * <Text>Footer content with layout utilities</Text>\n * </Page.Footer>\n */\n Footer: PageFooter,\n});\n"],"names":["core.primitive?.BreakpointLg","props","SegmentSVG","RespClose","RespOpen","OpenSVG","CloseSVG","LocalSettings","ref","rest","MoreVert"],"mappings":"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"}