@servicetitan/anvil2 1.40.0 → 1.40.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/{Calendar-DixTCgAW-CfphBge0.js → Calendar-B2lMJY8r-Ddu4TfZW.js} +3 -3
- package/dist/{Calendar-DixTCgAW-CfphBge0.js.map → Calendar-B2lMJY8r-Ddu4TfZW.js.map} +1 -1
- package/dist/{Calendar-C2ONV7cq.js → Calendar-C099gPDT.js} +2 -2
- package/dist/{Calendar-C2ONV7cq.js.map → Calendar-C099gPDT.js.map} +1 -1
- package/dist/Calendar.js +1 -1
- package/dist/{Checkbox-BNrjUtHs-BBLXLwO5.js → Checkbox-B25R5cdM-CQSPNPUv.js} +2 -2
- package/dist/{Checkbox-BNrjUtHs-BBLXLwO5.js.map → Checkbox-B25R5cdM-CQSPNPUv.js.map} +1 -1
- package/dist/{Checkbox-Dxr3rgQV.js → Checkbox-BEM_rIup.js} +2 -2
- package/dist/{Checkbox-Dxr3rgQV.js.map → Checkbox-BEM_rIup.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Combobox-C7nV-w8I.js → Combobox-mdEmKiV9.js} +4 -4
- package/dist/{Combobox-C7nV-w8I.js.map → Combobox-mdEmKiV9.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DateField-Df42sxE9.js → DateField-Cwvw5EXY.js} +6 -6
- package/dist/{DateField-Df42sxE9.js.map → DateField-Cwvw5EXY.js.map} +1 -1
- package/dist/DateField.js +1 -1
- package/dist/{DateFieldRange-DQJ_FMeA.js → DateFieldRange-BmokKaNf.js} +2 -2
- package/dist/{DateFieldRange-DQJ_FMeA.js.map → DateFieldRange-BmokKaNf.js.map} +1 -1
- package/dist/{DateFieldRange--ZCTVrKX-DoogWMrm.js → DateFieldRange-DxR0h7Y6-CV2wAhJB.js} +5 -5
- package/dist/{DateFieldRange--ZCTVrKX-DoogWMrm.js.map → DateFieldRange-DxR0h7Y6-CV2wAhJB.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-BXPhS91g.js → DateFieldSingle-BlKlfasz.js} +2 -2
- package/dist/{DateFieldSingle-BXPhS91g.js.map → DateFieldSingle-BlKlfasz.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DaysOfTheWeek-C4ZGriW7.js → DaysOfTheWeek-CnTEWxtN.js} +2 -2
- package/dist/{DaysOfTheWeek-C4ZGriW7.js.map → DaysOfTheWeek-CnTEWxtN.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-CBWaZO5U.js → Dialog-CTf90W9W.js} +21 -26
- package/dist/Dialog-CTf90W9W.js.map +1 -0
- package/dist/Dialog.js +1 -1
- package/dist/{Drawer-Be0tyTMM.js → Drawer-BmyhW9rQ.js} +2 -2
- package/dist/{Drawer-Be0tyTMM.js.map → Drawer-BmyhW9rQ.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/{InputMask-CiHg25XE--lofQ4oF.js → InputMask-C9FmGrFp-BEgnXA0F.js} +2 -2
- package/dist/{InputMask-CiHg25XE--lofQ4oF.js.map → InputMask-C9FmGrFp-BEgnXA0F.js.map} +1 -1
- package/dist/{InputMask-DYthrVaU.js → InputMask-CzTlJ1ya.js} +2 -2
- package/dist/{InputMask-DYthrVaU.js.map → InputMask-CzTlJ1ya.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-DgrUsTC8.js → ListView-CULEOIJt.js} +3 -3
- package/dist/{ListView-DgrUsTC8.js.map → ListView-CULEOIJt.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Menu-By8ps-lb.js → Menu-C9fOIYH7.js} +2 -2
- package/dist/{Menu-By8ps-lb.js.map → Menu-C9fOIYH7.js.map} +1 -1
- package/dist/{Menu-jt64Cbkd-mK95uUq6.js → Menu-Dh8roQgP-De9kBXuN.js} +3 -3
- package/dist/{Menu-jt64Cbkd-mK95uUq6.js.map → Menu-Dh8roQgP-De9kBXuN.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/{Page-DoCYLmH8.js → Page--tqLz6hu.js} +5 -5
- package/dist/{Page-DoCYLmH8.js.map → Page--tqLz6hu.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/Pagination.js.map +1 -1
- package/dist/{Popover-Dv7ntx4P.js → Popover-DVPij2bz.js} +2 -2
- package/dist/{Popover-Dv7ntx4P.js.map → Popover-DVPij2bz.js.map} +1 -1
- package/dist/{Popover-CVCAWhdO-CJw1mW49.js → Popover-DwWPCZH--BIhxtOlK.js} +3 -3
- package/dist/{Popover-CVCAWhdO-CJw1mW49.js.map → Popover-DwWPCZH--BIhxtOlK.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-Eeudkcyc.js → ProgressBar-DOtekmJS.js} +2 -2
- package/dist/{ProgressBar-Eeudkcyc.js.map → ProgressBar-DOtekmJS.js.map} +1 -1
- package/dist/{ProgressBar-CZhkKwaS-dlDRDjxo.js → ProgressBar-Dg77Xf_k-CyD-A4pF.js} +21 -22
- package/dist/ProgressBar-Dg77Xf_k-CyD-A4pF.js.map +1 -0
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-DiBn0-hf-hhLKXDdl.js → Radio-BZ44ktjU-CZuSckW6.js} +3 -3
- package/dist/{Radio-DiBn0-hf-hhLKXDdl.js.map → Radio-BZ44ktjU-CZuSckW6.js.map} +1 -1
- package/dist/{Radio-Dx2GeEZp.js → Radio-BpE1s8OT.js} +2 -2
- package/dist/{Radio-Dx2GeEZp.js.map → Radio-BpE1s8OT.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{SelectCard-CL8T4DQb-ClozUyqV.js → SelectCard-BaKoHPjf-BLXKVIys.js} +4 -4
- package/dist/{SelectCard-CL8T4DQb-ClozUyqV.js.map → SelectCard-BaKoHPjf-BLXKVIys.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/{SelectCardGroup-KTtcsOar.js → SelectCardGroup-BVGPNZft.js} +2 -2
- package/dist/{SelectCardGroup-KTtcsOar.js.map → SelectCardGroup-BVGPNZft.js.map} +1 -1
- package/dist/{SelectTrigger-BvUO-g1F.js → SelectTrigger-DMMw_LkZ.js} +2 -2
- package/dist/{SelectTrigger-BvUO-g1F.js.map → SelectTrigger-DMMw_LkZ.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-BMhRDkFW-DjkagPpu.js → SelectTriggerBase-A6_sIBpr-DfI0HLx2.js} +3 -3
- package/dist/{SelectTriggerBase-BMhRDkFW-DjkagPpu.js.map → SelectTriggerBase-A6_sIBpr-DfI0HLx2.js.map} +1 -1
- package/dist/{TextField-C5KbQxoU-CSkSyt7P.js → TextField-CG6Nv-0C-jX4uvHT8.js} +2 -2
- package/dist/{TextField-C5KbQxoU-CSkSyt7P.js.map → TextField-CG6Nv-0C-jX4uvHT8.js.map} +1 -1
- package/dist/{TextField-0XKj7lDu.js → TextField-DoqYMou3.js} +2 -2
- package/dist/{TextField-0XKj7lDu.js.map → TextField-DoqYMou3.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-DkSeFIg7.js → Textarea-6omWLtXb.js} +2 -2
- package/dist/{Textarea-DkSeFIg7.js.map → Textarea-6omWLtXb.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/Toast.js +1 -1
- package/dist/{Toolbar-38Z9fVxY.js → Toolbar-B7NKUkgL.js} +3 -3
- package/dist/{Toolbar-38Z9fVxY.js.map → Toolbar-B7NKUkgL.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-BwUVaBEo.js → Tooltip-BcUIIzkM.js} +2 -2
- package/dist/{Tooltip-BwUVaBEo.js.map → Tooltip-BcUIIzkM.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/index.js +23 -23
- package/dist/{toast-CWVuLkyv.js → toast-ByZDutpT.js} +2 -2
- package/dist/{toast-CWVuLkyv.js.map → toast-ByZDutpT.js.map} +1 -1
- package/package.json +2 -2
- package/dist/Dialog-CBWaZO5U.js.map +0 -1
- package/dist/ProgressBar-CZhkKwaS-dlDRDjxo.js.map +0 -1
- /package/dist/{Calendar-DixTCgAW.css → Calendar-B2lMJY8r.css} +0 -0
- /package/dist/{Menu-jt64Cbkd.css → Menu-Dh8roQgP.css} +0 -0
- /package/dist/{Popover-CVCAWhdO.css → Popover-DwWPCZH-.css} +0 -0
- /package/dist/{ProgressBar-CZhkKwaS.css → ProgressBar-Dg77Xf_k.css} +0 -0
- /package/dist/{Radio-DiBn0-hf.css → Radio-BZ44ktjU.css} +0 -0
- /package/dist/{SelectCard-CL8T4DQb.css → SelectCard-BaKoHPjf.css} +0 -0
- /package/dist/{SelectTriggerBase-BMhRDkFW.css → SelectTriggerBase-A6_sIBpr.css} +0 -0
|
@@ -3,13 +3,13 @@ import { useTrackingId } from './useTrackingId.js';
|
|
|
3
3
|
import { useState, useRef, useEffect, forwardRef, useContext, useId, useCallback, useMemo, createContext } from 'react';
|
|
4
4
|
import { B as Button } from './Button-BaHFf1AT-BQy-PFB5.js';
|
|
5
5
|
import { B as ButtonToggle } from './ButtonToggle-Bm4KRl3o-B1-LbfjY.js';
|
|
6
|
-
import { d as Popover } from './Popover-
|
|
6
|
+
import { d as Popover } from './Popover-DwWPCZH--BIhxtOlK.js';
|
|
7
7
|
import { I as Icon } from './Icon-B6HmlQiR-BxQkO3X5.js';
|
|
8
8
|
import { S as SvgMoreHoriz } from './more_horiz-DJgdQiy0.js';
|
|
9
9
|
import { S as SvgMoreVert } from './more_vert-C_lJSyxt.js';
|
|
10
10
|
import { B as ButtonLink } from './ButtonLink-5qlX0uZx-b9H7MGhk.js';
|
|
11
11
|
import { c as cx } from './index-tZvMCc77.js';
|
|
12
|
-
import { f as Tooltip } from './ProgressBar-
|
|
12
|
+
import { f as Tooltip } from './ProgressBar-Dg77Xf_k-CyD-A4pF.js';
|
|
13
13
|
import { b as Listbox } from './Listbox-BvJLSAVO-Br5k6fmq.js';
|
|
14
14
|
import { S as SvgArrowDropDown } from './arrow_drop_down-ChAdBDux.js';
|
|
15
15
|
import { g as getKeyboardFocusableElements } from './getKeyboardFocusableElements-QqcABz0D.js';
|
|
@@ -920,4 +920,4 @@ const Toolbar = Object.assign(ToolbarElement, {
|
|
|
920
920
|
});
|
|
921
921
|
|
|
922
922
|
export { Toolbar as T, ToolbarElement as a, ToolbarButton as b, ToolbarButtonToggle as c, ToolbarButtonLink as d, ToolbarSelect as e };
|
|
923
|
-
//# sourceMappingURL=Toolbar-
|
|
923
|
+
//# sourceMappingURL=Toolbar-B7NKUkgL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar-38Z9fVxY.js","sources":["../../hammer-react/dist/useIntersectionObserver-BEmMDO3P.js","../../hammer-react/dist/Toolbar-DoCU0g74.js","../src/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\n\nfunction useIntersectionObserver({\n threshold = 0,\n root = null,\n rootMargin = \"0%\",\n freezeOnceVisible = false,\n initialIsIntersecting = false,\n onChange\n} = {}) {\n const [ref, setRef] = useState(null);\n const [state, setState] = useState(() => ({\n isIntersecting: initialIsIntersecting,\n entry: void 0\n }));\n const callbackRef = useRef();\n callbackRef.current = onChange;\n const frozen = state.entry?.isIntersecting && freezeOnceVisible;\n useEffect(() => {\n if (!ref) return;\n if (!(\"IntersectionObserver\" in window)) return;\n if (frozen) return;\n const observer = new IntersectionObserver(\n (entries) => {\n const thresholds = Array.isArray(observer.thresholds) ? observer.thresholds : [observer.thresholds];\n entries.forEach((entry) => {\n const isIntersecting = entry.isIntersecting && thresholds.some(\n (threshold2) => entry.intersectionRatio >= threshold2\n );\n setState({ isIntersecting, entry });\n if (callbackRef.current) {\n callbackRef.current(isIntersecting, entry);\n }\n });\n },\n { threshold, root, rootMargin }\n );\n observer.observe(ref);\n return () => {\n observer.disconnect();\n };\n }, [\n ref,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold),\n root,\n rootMargin,\n frozen,\n freezeOnceVisible\n ]);\n const prevRef = useRef(null);\n useEffect(() => {\n if (!ref && state.entry?.target && !freezeOnceVisible && !frozen && prevRef.current !== state.entry.target) {\n prevRef.current = state.entry.target;\n setState({ isIntersecting: initialIsIntersecting, entry: void 0 });\n }\n }, [ref, state.entry, freezeOnceVisible, frozen, initialIsIntersecting]);\n const result = [\n setRef,\n !!state.isIntersecting,\n state.entry\n ];\n result.ref = result[0];\n result.isIntersecting = result[1];\n result.entry = result[2];\n return result;\n}\n\nexport { useIntersectionObserver as u };\n//# sourceMappingURL=useIntersectionObserver-BEmMDO3P.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { useContext, useId, useRef, useCallback, useEffect, forwardRef, useState, useMemo, createContext } from 'react';\nimport { B as Button } from './Button-BaHFf1AT.js';\nimport { B as ButtonToggle } from './ButtonToggle-Bm4KRl3o.js';\nimport { P as Popover } from './Popover-CVCAWhdO.js';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport IconMoreHoriz from '@servicetitan/hammer-icon/mdi/round/more_horiz.svg';\nimport MoreVert from '@servicetitan/hammer-icon/mdi/round//more_vert.svg';\nimport { B as ButtonLink } from './ButtonLink-5qlX0uZx.js';\nimport cx from 'classnames';\nimport { g as Tooltip } from './ProgressBar-CZhkKwaS.js';\nimport { L as Listbox } from './Listbox-BvJLSAVO.js';\nimport Down from '@servicetitan/hammer-icon/mdi/round/arrow_drop_down.svg';\nimport { getKeyboardFocusableElements } from './getKeyboardFocusableElements.js';\nimport { F as Flex } from './Flex-CiK7uNUu.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { u as useIntersectionObserver } from './useIntersectionObserver-BEmMDO3P.js';\n\nimport './Toolbar.css';const toolbar = \"_toolbar_a1ext_3\";\nconst styles = {\n\ttoolbar: toolbar,\n\t\"toolbar-content\": \"_toolbar-content_a1ext_10\",\n\t\"toolbar-overflow-content\": \"_toolbar-overflow-content_a1ext_13\",\n\t\"toolbar-button-item\": \"_toolbar-button-item_a1ext_21\",\n\t\"toolbar-item\": \"_toolbar-item_a1ext_27\",\n\t\"overflow-collapse\": \"_overflow-collapse_a1ext_31\",\n\t\"toolbar-button-toggle-item\": \"_toolbar-button-toggle-item_a1ext_55\",\n\t\"toolbar-overflow-trigger\": \"_toolbar-overflow-trigger_a1ext_61\"\n};\n\nfunction getToolbarElements(toolbarElement) {\n const toolbarContent = toolbarElement.querySelector(\n '[data-anv=\"toolbar-content\"]'\n );\n const mainItems = getKeyboardFocusableElements(toolbarContent).filter(\n (item) => {\n const isVisible = !item.closest('[aria-hidden=\"true\"]');\n return isVisible;\n }\n );\n const overflowTrigger = toolbarElement.querySelector(\n '[data-anv=\"toolbar-overflow-trigger\"]'\n );\n return overflowTrigger ? [...mainItems, overflowTrigger] : mainItems;\n}\nfunction updateToolbarItemsTabIndex(toolbarElement, activeItem) {\n if (!toolbarElement) return;\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n let activeIndex = 0;\n if (typeof activeItem === \"number\") {\n activeIndex = Math.max(0, Math.min(activeItem, items.length - 1));\n } else if (activeItem instanceof Element) {\n const foundIndex = items.indexOf(activeItem);\n if (foundIndex !== -1) {\n activeIndex = foundIndex;\n }\n }\n items.forEach((item, index) => {\n item.setAttribute(\"tabindex\", index === activeIndex ? \"0\" : \"-1\");\n });\n return items[activeIndex];\n}\nfunction handleToolbarKeyDown(event, toolbarElement) {\n if (!toolbarElement || event.altKey || event.ctrlKey || event.metaKey) return;\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n const activeElement = event.target;\n if (!toolbarElement.contains(activeElement)) return;\n const activeItem = items.find(\n (item) => item === activeElement || Array.from(item.children).some((child) => child === activeElement)\n );\n const activeIndex = activeItem ? items.indexOf(activeItem) : -1;\n if (activeIndex === -1) return;\n let nextIndex = activeIndex;\n const isVertical = toolbarElement.getAttribute(\"aria-orientation\") === \"vertical\";\n switch (event.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n if (isVertical && event.key === \"ArrowUp\" || !isVertical && event.key === \"ArrowLeft\") {\n nextIndex = activeIndex <= 0 ? items.length - 1 : activeIndex - 1;\n }\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n if (isVertical && event.key === \"ArrowDown\" || !isVertical && event.key === \"ArrowRight\") {\n nextIndex = activeIndex >= items.length - 1 ? 0 : activeIndex + 1;\n }\n break;\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n case \"End\":\n event.preventDefault();\n nextIndex = items.length - 1;\n break;\n default:\n return;\n }\n updateToolbarItemsTabIndex(toolbarElement, nextIndex);\n items[nextIndex]?.focus();\n}\nconst handleMenuKeyboardNavigation = (event) => {\n const menuItems = Array.from(\n event.currentTarget.querySelectorAll('[role=\"menuitem\"]')\n ).map((menuItem) => {\n return getKeyboardFocusableElements(menuItem)[0] || menuItem;\n });\n if (!menuItems.length) return;\n const currentIndex = menuItems.indexOf(document.activeElement);\n if (currentIndex === -1) return;\n let nextIndex = currentIndex;\n const isModifierKey = event.altKey || event.ctrlKey || event.metaKey;\n if (isModifierKey) return;\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\": {\n event.preventDefault();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n nextIndex = (currentIndex + direction + menuItems.length) % menuItems.length;\n break;\n }\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n case \"End\":\n event.preventDefault();\n nextIndex = menuItems.length - 1;\n break;\n default:\n return;\n }\n menuItems[nextIndex]?.focus();\n};\n\nconst ToolbarItemWrapper = ({\n item,\n children\n}) => {\n const { addItem, removeItem, toolbarRef, overflow } = useContext(\n ToolbarOverflowContext\n );\n const itemId = useId();\n const elementRef = useRef(null);\n const prevIntersectingRef = useRef(true);\n const isCollapseMode = overflow === \"collapse\";\n const handleVisibilityChange = useCallback(\n (isVisible) => {\n if (!isCollapseMode || prevIntersectingRef.current === isVisible) return;\n const itemWithId = { ...item, id: itemId };\n if (isVisible) {\n removeItem(itemWithId);\n } else {\n addItem(itemWithId);\n }\n prevIntersectingRef.current = isVisible;\n },\n [isCollapseMode, item, itemId, addItem, removeItem]\n );\n const { isIntersecting, ref } = useIntersectionObserver({\n root: isCollapseMode ? toolbarRef.current : null,\n threshold: 1,\n initialIsIntersecting: false,\n onChange: handleVisibilityChange\n });\n const setRefCallback = useCallback(\n (node) => {\n elementRef.current = node;\n if (isCollapseMode) {\n ref(node);\n }\n },\n [ref, isCollapseMode]\n );\n const handleFocusOrClick = useCallback(() => {\n if (!toolbarRef.current || !elementRef.current) return;\n const currentElement = elementRef.current.querySelector(\"button, a, input\");\n if (!currentElement) return;\n updateToolbarItemsTabIndex(toolbarRef.current, currentElement);\n }, [toolbarRef]);\n useEffect(() => {\n const interactiveEl = elementRef.current?.querySelector(\"button, a, input\");\n if (!interactiveEl) return;\n interactiveEl.addEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.addEventListener(\"click\", handleFocusOrClick);\n return () => {\n interactiveEl.removeEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.removeEventListener(\"click\", handleFocusOrClick);\n };\n }, [handleFocusOrClick]);\n useEffect(() => {\n if (isCollapseMode) {\n prevIntersectingRef.current = true;\n }\n }, [isCollapseMode]);\n const isHidden = isCollapseMode && !isIntersecting;\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setRefCallback,\n className: styles[\"toolbar-item\"],\n style: { visibility: isHidden ? \"hidden\" : \"visible\" },\n \"aria-hidden\": isHidden,\n ...{ inert: isHidden ? \"\" : void 0 },\n \"data-id\": itemId,\n \"data-anv\": \"toolbar-item\",\n children\n }\n );\n};\n\nconst ToolbarButtonToggle = forwardRef((props, _ref) => {\n const { className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonToggleClassNames = cx(\n className,\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-button-toggle-item\"]\n );\n const item = children ? /* @__PURE__ */ jsx(\n ButtonToggle,\n {\n size: \"small\",\n \"data-anv\": \"toolbar-button-toggle\",\n className: buttonToggleClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n ButtonToggle,\n {\n size: \"small\",\n \"data-anv\": \"toolbar-button-toggle\",\n className: buttonToggleClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"buttonToggle\" }, children: item });\n});\nToolbarButtonToggle.displayName = \"ToolbarButtonToggle\";\n\nconst ToolbarButtonLink = forwardRef(\n (props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonLinkClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = children ? /* @__PURE__ */ jsx(\n ButtonLink,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button-link\",\n className: buttonLinkClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n ButtonLink,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button-link\",\n className: buttonLinkClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"buttonLink\" }, children: item });\n }\n);\nToolbarButtonLink.displayName = \"ToolbarButtonLink\";\n\nconst ToolbarSelect = forwardRef(\n (props, _ref) => {\n const {\n appearance = \"ghost\",\n onChange,\n selected: selectedItemId,\n accessibleLabel,\n className,\n items,\n ...rest\n } = props;\n const selectId = useId();\n const defaultId = items.length > 0 ? items[0].id : \"\";\n const [internalSelectedId, setInternalSelectedId] = useState(defaultId);\n const selectedId = selectedItemId ?? internalSelectedId;\n const selectedItem = items.find((item2) => item2.id === selectedId) || items.find((item2) => item2.id === defaultId);\n useEffect(() => {\n if (!selectedItemId && items.length > 0 && !items.some((item2) => item2.id === internalSelectedId)) {\n setInternalSelectedId(items[0].id);\n }\n }, [items, selectedItemId, internalSelectedId]);\n const handleSelectionChange = (selected) => {\n if (selected?.id) {\n if (selectedItemId === void 0) {\n setInternalSelectedId(selected.id);\n }\n onChange?.(selected.id);\n }\n };\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = /* @__PURE__ */ jsxs(Popover, { noPadding: true, children: [\n /* @__PURE__ */ jsx(\n Popover.Button,\n {\n appearance,\n size: \"small\",\n icon: { after: Down },\n className: buttonClassNames,\n id: selectId,\n \"data-anv\": \"toolbar-select\",\n ...rest,\n children: selectedItem?.label\n }\n ),\n /* @__PURE__ */ jsx(\n Popover.Content,\n {\n className: styles[\"toolbar-select-content\"],\n \"aria-label\": `${accessibleLabel} options`,\n children: /* @__PURE__ */ jsx(\n Listbox,\n {\n selected: selectedItem,\n onSelectionChange: handleSelectionChange,\n items,\n \"aria-labelledby\": selectId,\n children: ({ items: items2 }) => items2.map((item2) => /* @__PURE__ */ jsx(Listbox.Option, { item: item2, children: item2.label }, item2.label))\n }\n )\n }\n )\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"select\" }, children: item });\n }\n);\nToolbarSelect.displayName = \"ToolbarSelect\";\n\nconst OverflowItemContext = createContext({\n isInOverflowMenu: false\n});\nconst useOverFlowItemContext = () => useContext(OverflowItemContext);\nconst OverflowItem = ({ itemType, itemProps }) => {\n switch (itemType) {\n case \"button\":\n return /* @__PURE__ */ jsx(ToolbarButton, { ...itemProps });\n case \"buttonToggle\":\n return /* @__PURE__ */ jsx(ToolbarButtonToggle, { ...itemProps });\n case \"buttonLink\":\n return /* @__PURE__ */ jsx(ToolbarButtonLink, { ...itemProps });\n case \"select\":\n return /* @__PURE__ */ jsx(ToolbarSelect, { ...itemProps });\n default:\n return null;\n }\n};\nconst ToolbarOverflowMenu = ({\n additionalItems,\n direction\n}) => {\n const { overflowItems, orderedIds } = useContext(ToolbarOverflowContext);\n const menuTriggerId = useId();\n const orderedItems = useMemo(() => {\n const allElements = orderedIds?.map((id) => {\n return overflowItems.find((item) => item.id === id);\n });\n return allElements?.filter((item) => item !== void 0) || [];\n }, [orderedIds, overflowItems]);\n const popoverButtonClassNames = cx(\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-overflow-trigger\"]\n );\n const overflowIcon = direction === \"horizontal\" ? IconMoreHoriz : MoreVert;\n return /* @__PURE__ */ jsxs(Popover, { noPadding: true, children: [\n /* @__PURE__ */ jsx(\n Popover.Button,\n {\n size: \"small\",\n appearance: \"ghost\",\n id: menuTriggerId,\n className: popoverButtonClassNames,\n \"data-anv\": \"toolbar-overflow-trigger\",\n \"aria-label\": \"Additional toolbar options\",\n children: /* @__PURE__ */ jsx(Icon, { svg: overflowIcon, size: \"small\" })\n }\n ),\n /* @__PURE__ */ jsx(Popover.Content, { children: /* @__PURE__ */ jsx(OverflowItemContext.Provider, { value: { isInOverflowMenu: true }, children: /* @__PURE__ */ jsxs(\n \"ul\",\n {\n role: \"menu\",\n className: styles[\"toolbar-overflow-content\"],\n \"data-anv\": \"toolbar-overflow-menu\",\n \"aria-labelledby\": menuTriggerId,\n onKeyDown: handleMenuKeyboardNavigation,\n children: [\n orderedItems.map((item) => {\n const { itemType, itemProps, id } = item;\n return /* @__PURE__ */ jsx(\n \"li\",\n {\n role: \"menuitem\",\n \"data-anv\": \"toolbar-overflow-item\",\n children: /* @__PURE__ */ jsx(\n OverflowItem,\n {\n itemType,\n itemProps,\n id\n }\n )\n },\n `${itemType}-${id}`\n );\n }),\n additionalItems?.map((item, index) => /* @__PURE__ */ jsx(\n \"li\",\n {\n role: \"menuitem\",\n \"data-anv\": \"toolbar-overflow-item\",\n children: item\n },\n `additional-item-${index}`\n ))\n ]\n }\n ) }) })\n ] });\n};\n\nconst ToolbarButton = forwardRef(\n (props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = children ? /* @__PURE__ */ jsx(\n Button,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button\",\n className: buttonClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n Button,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button\",\n className: buttonClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"button\" }, children: item });\n }\n);\nToolbarButton.displayName = \"ToolbarButton\";\n\nconst ToolbarOverflowContext = createContext({\n overflowItems: [],\n addItem: () => {\n return;\n },\n removeItem: () => {\n return;\n },\n toolbarRef: { current: null },\n orderedIds: [],\n overflow: \"wrap\"\n});\nconst ToolbarElement = forwardRef(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n associatedContent,\n className,\n children,\n style,\n direction = \"horizontal\",\n overflow = \"wrap\",\n onKeyDown,\n additionalItems,\n ...rest\n } = componentProps;\n const [overflowItems, setOverflowItems] = useState([]);\n const toolbarItemsRef = useRef(null);\n const toolbarRef = useRef(null);\n const [orderedIds, setOrderedIds] = useState([]);\n useEffect(() => {\n const newOrderedIds = Array.from(\n toolbarItemsRef.current?.querySelectorAll(\"[data-id]\") || []\n ).map((el) => {\n return el.getAttribute(\"data-id\");\n });\n setOrderedIds(newOrderedIds);\n }, [children]);\n const addItem = useCallback((item) => {\n setOverflowItems((prev) => [...prev, item]);\n }, []);\n const removeItem = useCallback((item) => {\n setOverflowItems(\n (prev) => prev.filter((component) => component.id !== item.id)\n );\n }, []);\n useEffect(() => {\n if (toolbarRef.current) {\n updateToolbarItemsTabIndex(toolbarRef.current);\n }\n }, [children]);\n const handleKeyDown = useCallback(\n (event) => {\n if (toolbarRef.current) {\n handleToolbarKeyDown(event, toolbarRef.current);\n }\n onKeyDown?.(event);\n },\n [onKeyDown]\n );\n const showOverflowMenu = overflow === \"collapse\" && overflowItems.length > 0 || !!additionalItems;\n const value = useMemo(\n () => ({\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow\n }),\n [overflowItems, addItem, removeItem, toolbarRef, orderedIds, overflow]\n );\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n const toolbarClassNames = cx(styles[\"toolbar\"], className);\n const toolbarContentClassNames = cx(styles[\"toolbar-content\"], {\n [styles[`overflow-${overflow}`]]: overflow\n });\n return /* @__PURE__ */ jsx(ToolbarOverflowContext.Provider, { value, children: /* @__PURE__ */ jsxs(\n Flex,\n {\n direction: direction === \"horizontal\" ? \"row\" : \"column\",\n wrap: overflow === \"wrap\" ? \"wrap\" : \"nowrap\",\n alignItems: \"center\",\n className: toolbarClassNames,\n style: styleCombined,\n ref: useMergeRefs([toolbarRef, ref]),\n role: \"toolbar\",\n \"data-anv\": \"toolbar\",\n \"aria-orientation\": direction,\n \"aria-label\": `Toolbar for ${associatedContent}. Use arrow keys to navigate through toolbar controls.`,\n onKeyDown: handleKeyDown,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\n Flex,\n {\n ref: useMergeRefs([toolbarItemsRef, ref]),\n className: toolbarContentClassNames,\n direction: direction === \"horizontal\" ? \"row\" : \"column\",\n wrap: overflow === \"wrap\" ? \"wrap\" : \"nowrap\",\n alignItems: \"center\",\n grow: 1,\n \"data-anv\": \"toolbar-content\",\n children\n }\n ),\n showOverflowMenu && /* @__PURE__ */ jsx(\n ToolbarOverflowMenu,\n {\n direction,\n additionalItems\n }\n )\n ]\n }\n ) });\n }\n);\nToolbarElement.displayName = \"Toolbar\";\nconst Toolbar = Object.assign(ToolbarElement, {\n /**\n * ToolbarButton component for standard clickable actions within a toolbar.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\n Button: ToolbarButton,\n /**\n * ToolbarButtonToggle component for toggleable actions within a toolbar.\n *\n * Features:\n * - Toggle state management (on/off)\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only toggles\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Visual feedback for toggle state\n * - Proper ARIA attributes for toggle semantics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n *\n * @example\n * <Toolbar.ButtonToggle checked={isItalic}>\n * Italic\n * </Toolbar.ButtonToggle>\n */\n ButtonToggle: ToolbarButtonToggle,\n /**\n * ToolbarButtonLink component for link actions within a toolbar.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only links\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Proper anchor element semantics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n *\n * @example\n * <Toolbar.ButtonLink icon={ExternalLinkIcon} href=\"/docs\" aria-label=\"Documentation\" />\n */\n ButtonLink: ToolbarButtonLink,\n /**\n * ToolbarSelect component provides a dropdown selector within a toolbar.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n *\n * @example\n * <Toolbar.Select\n * appearance=\"primary\"\n * items={colorOptions}\n * accessibleLabel=\"Text color\"\n * />\n */\n Select: ToolbarSelect\n});\n\nexport { Toolbar as T, ToolbarButton as a, ToolbarButtonToggle as b, ToolbarButtonLink as c, ToolbarSelect as d, ToolbarItemWrapper as e, ToolbarOverflowMenu as f };\n//# sourceMappingURL=Toolbar-DoCU0g74.js.map\n","import {\n Toolbar as CoreToolbar,\n ToolbarProps as CoreToolbarProps,\n ToolbarButton as CoreToolbarButton,\n ToolbarButtonProps as CoreToolbarButtonProps,\n ToolbarButtonToggle as CoreToolbarButtonToggle,\n ToolbarButtonToggleProps as CoreToolbarButtonToggleProps,\n ToolbarButtonLink as CoreToolbarButtonLink,\n ToolbarButtonLinkProps as CoreToolbarButtonLinkProps,\n ToolbarSelect as CoreToolbarSelect,\n ToolbarSelectProps as CoreToolbarSelectProps,\n ToolbarOverflowTypes as CoreToolbarOverflowTypes,\n ToolbarItemAppearance as CoreToolbarItemAppearance,\n} from \"@servicetitan/hammer-react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the Toolbar component with tracking support\n * @property {string} associatedContent - Description of the content this toolbar is associated with, used for accessibility\n * @property {\"vertical\" | \"horizontal\"} [direction] - Orientation of the toolbar\n * @property {ToolbarOverflowTypes} [overflow] - How to handle overflow when items don't fit\n * @property {ReactElement[]} [additionalItems] - Additional items to display in the overflow menu\n * @extends DataTrackingId\n */\nexport type ToolbarProps = CoreToolbarProps & DataTrackingId;\n\n/**\n * Props for the ToolbarButton component with tracking support\n * @property {ToolbarItemAppearance} [appearance] - Visual appearance of the button\n * @property {string} [aria-label] - Accessible label for the button\n * @property {React.ReactNode} [children] - Button content\n * @property {boolean} [disabled] - Whether the button is disabled\n * @extends DataTrackingId\n */\nexport type ToolbarButtonProps = CoreToolbarButtonProps & DataTrackingId;\n\n/**\n * Props for the ToolbarButtonToggle component with tracking support\n * @property {boolean} [checked] - Whether the toggle is checked\n * @property {boolean} [disabled] - Whether the toggle is disabled\n * @property {string} [aria-label] - Accessible label for the toggle\n * @property {React.ReactNode} [children] - Toggle content\n * @extends DataTrackingId\n */\nexport type ToolbarButtonToggleProps = CoreToolbarButtonToggleProps &\n DataTrackingId;\n\n/**\n * Props for the ToolbarButtonLink component with tracking support\n * @property {string} [href] - Link destination URL\n * @property {boolean} [disabled] - Whether the link is disabled\n * @property {string} [aria-label] - Accessible label for the link\n * @property {React.ReactNode} [children] - Link content\n * @property {string} [target] - Link target attribute\n * @extends DataTrackingId\n */\nexport type ToolbarButtonLinkProps = CoreToolbarButtonLinkProps &\n DataTrackingId;\n\n/**\n * Props for the ToolbarSelect component with tracking support\n * @property {string} [selected] - Currently selected item ID\n * @property {boolean} [disabled] - Whether the select is disabled\n * @property {string} [aria-label] - Accessible label for the select\n * @property {unknown[]} [items] - Array of selectable items\n * @extends DataTrackingId\n */\nexport type ToolbarSelectProps<T> = CoreToolbarSelectProps<T> & DataTrackingId;\n\n/**\n * Toolbar overflow behavior options\n */\nexport type ToolbarOverflowTypes = CoreToolbarOverflowTypes;\n\n/**\n * Toolbar item appearance options\n */\nexport type ToolbarItemAppearance = CoreToolbarItemAppearance;\n\n/**\n * Toolbar component for grouping related interactive elements with anvil2 tracking.\n *\n * Features:\n * - Horizontal or vertical orientation\n * - Overflow handling with wrap or collapse behavior\n * - Keyboard navigation following ARIA best practices\n * - Screen reader announcements and accessibility\n * - Automatic overflow menu for collapsed items\n * - Support for buttons, toggles, selects, and links\n * - Layout utilities for positioning and spacing\n * - Context-based state management for child components\n * - Automatic tracking ID generation for analytics\n * - Integration with anvil2 tracking system\n *\n * @example\n * <Toolbar associatedContent=\"document editor\" overflow=\"collapse\">\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold\" />\n * <Toolbar.ButtonToggle icon={ItalicIcon} aria-label=\"Italic\" />\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * />\n * </Toolbar>\n */\nexport function ToolbarElement(props: ToolbarProps) {\n const trackingId = useTrackingId({\n name: \"Toolbar\",\n data: {\n overflow: props.overflow,\n direction: props.direction,\n associatedContent: props.associatedContent,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbar data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\nexport function ToolbarButton(props: ToolbarButtonProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButton\",\n data: {\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButton data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Toggle state management\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n */\nexport function ToolbarButtonToggle(props: ToolbarButtonToggleProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButtonToggle\",\n data: {\n checked: props.checked,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButtonToggle data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n */\nexport function ToolbarButtonLink(props: ToolbarButtonLinkProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButtonLink\",\n data: {\n href: props.href,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n target: props.target,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButtonLink data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n */\nexport function ToolbarSelect(props: ToolbarSelectProps<unknown>) {\n const trackingId = useTrackingId({\n name: \"ToolbarSelect\",\n data: {\n selected: props.selected,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n items: props.items,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarSelect data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * Toolbar component for grouping related interactive elements.\n *\n * Features:\n * - Horizontal or vertical orientation\n * - Overflow handling with wrap or collapse behavior\n * - Keyboard navigation following ARIA best practices\n * - Screen reader announcements and accessibility\n * - Automatic overflow menu for collapsed items\n * - Support for buttons, toggles, selects, and links\n * - Layout utilities for positioning and spacing\n * - Context-based state management for child components\n *\n * @example\n * <Toolbar associatedContent=\"document editor\" overflow=\"collapse\">\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold\" />\n * <Toolbar.ButtonToggle icon={ItalicIcon} aria-label=\"Italic\" />\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * />\n * </Toolbar>\n */\nexport const Toolbar = Object.assign(ToolbarElement, {\n /**\n * ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\n Button: ToolbarButton,\n /**\n * ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Toggle state management\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n */\n ButtonToggle: ToolbarButtonToggle,\n /**\n * ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n */\n ButtonLink: ToolbarButtonLink,\n /**\n * ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n */\n Select: ToolbarSelect,\n});\n"],"names":["ToolbarButtonToggle","ToolbarButtonLink","ToolbarSelect","Down","ToolbarButton","IconMoreHoriz","MoreVert","ToolbarElement","Toolbar","CoreToolbar","CoreToolbarButton","CoreToolbarButtonToggle","CoreToolbarButtonLink","CoreToolbarSelect"],"mappings":"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K,MAAM,GAAG,MAAM,GAAG,QAAQ;AAC3D,cAAc,UAAU,EAAE,QAAQ;AAClC,cAAc,IAAI,EAAE,CAAC;AACrB,cAAc,UAAU,EAAE,iBAAiB;AAC3C,cAAc;AACd;AACA,WAAW;AACX,UAAU,gBAAgB,oBAAoB,GAAG;AACjD,YAAY,mBAAmB;AAC/B,YAAY;AACZ,cAAc,SAAS;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA,KAAK,EAAE,CAAC;AACR;AACA,CAAC;AACDA,gBAAc,CAAC,WAAW,GAAG,SAAS;AACtC,MAAMC,SAAO,GAAG,MAAM,CAAC,MAAM,CAACD,gBAAc,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAEH,eAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAEJ,qBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAEC,mBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAEC;AACV,CAAC,CAAC;;ACvlBK,SAAS,eAAe,KAAqB,EAAA;AAClD,EAAA,MAAM,aAAa,aAAc,CAAA;AAAA,IAC/B,IAAM,EAAA,SAAA;AAAA,IACN,IAAM,EAAA;AAAA,MACJ,UAAU,KAAM,CAAA,QAAA;AAAA,MAChB,WAAW,KAAM,CAAA,SAAA;AAAA,MACjB,mBAAmB,KAAM,CAAA;AAAA,KAC3B;AAAA,IACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GA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"}
|
|
1
|
+
{"version":3,"file":"Toolbar-B7NKUkgL.js","sources":["../../hammer-react/dist/useIntersectionObserver-BEmMDO3P.js","../../hammer-react/dist/Toolbar-D1fgFomV.js","../src/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import { useState, useRef, useEffect } from 'react';\n\nfunction useIntersectionObserver({\n threshold = 0,\n root = null,\n rootMargin = \"0%\",\n freezeOnceVisible = false,\n initialIsIntersecting = false,\n onChange\n} = {}) {\n const [ref, setRef] = useState(null);\n const [state, setState] = useState(() => ({\n isIntersecting: initialIsIntersecting,\n entry: void 0\n }));\n const callbackRef = useRef();\n callbackRef.current = onChange;\n const frozen = state.entry?.isIntersecting && freezeOnceVisible;\n useEffect(() => {\n if (!ref) return;\n if (!(\"IntersectionObserver\" in window)) return;\n if (frozen) return;\n const observer = new IntersectionObserver(\n (entries) => {\n const thresholds = Array.isArray(observer.thresholds) ? observer.thresholds : [observer.thresholds];\n entries.forEach((entry) => {\n const isIntersecting = entry.isIntersecting && thresholds.some(\n (threshold2) => entry.intersectionRatio >= threshold2\n );\n setState({ isIntersecting, entry });\n if (callbackRef.current) {\n callbackRef.current(isIntersecting, entry);\n }\n });\n },\n { threshold, root, rootMargin }\n );\n observer.observe(ref);\n return () => {\n observer.disconnect();\n };\n }, [\n ref,\n // eslint-disable-next-line react-hooks/exhaustive-deps\n JSON.stringify(threshold),\n root,\n rootMargin,\n frozen,\n freezeOnceVisible\n ]);\n const prevRef = useRef(null);\n useEffect(() => {\n if (!ref && state.entry?.target && !freezeOnceVisible && !frozen && prevRef.current !== state.entry.target) {\n prevRef.current = state.entry.target;\n setState({ isIntersecting: initialIsIntersecting, entry: void 0 });\n }\n }, [ref, state.entry, freezeOnceVisible, frozen, initialIsIntersecting]);\n const result = [\n setRef,\n !!state.isIntersecting,\n state.entry\n ];\n result.ref = result[0];\n result.isIntersecting = result[1];\n result.entry = result[2];\n return result;\n}\n\nexport { useIntersectionObserver as u };\n//# sourceMappingURL=useIntersectionObserver-BEmMDO3P.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport { useContext, useId, useRef, useCallback, useEffect, forwardRef, useState, useMemo, createContext } from 'react';\nimport { B as Button } from './Button-BaHFf1AT.js';\nimport { B as ButtonToggle } from './ButtonToggle-Bm4KRl3o.js';\nimport { P as Popover } from './Popover-DwWPCZH-.js';\nimport { I as Icon } from './Icon-B6HmlQiR.js';\nimport IconMoreHoriz from '@servicetitan/hammer-icon/mdi/round/more_horiz.svg';\nimport MoreVert from '@servicetitan/hammer-icon/mdi/round//more_vert.svg';\nimport { B as ButtonLink } from './ButtonLink-5qlX0uZx.js';\nimport cx from 'classnames';\nimport { g as Tooltip } from './ProgressBar-Dg77Xf_k.js';\nimport { L as Listbox } from './Listbox-BvJLSAVO.js';\nimport Down from '@servicetitan/hammer-icon/mdi/round/arrow_drop_down.svg';\nimport { getKeyboardFocusableElements } from './getKeyboardFocusableElements.js';\nimport { F as Flex } from './Flex-CiK7uNUu.js';\nimport { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DWACCL8v.js';\nimport { u as useMergeRefs } from './useMergeRefs-Bde85AWI.js';\nimport { u as useIntersectionObserver } from './useIntersectionObserver-BEmMDO3P.js';\n\nimport './Toolbar.css';const toolbar = \"_toolbar_a1ext_3\";\nconst styles = {\n\ttoolbar: toolbar,\n\t\"toolbar-content\": \"_toolbar-content_a1ext_10\",\n\t\"toolbar-overflow-content\": \"_toolbar-overflow-content_a1ext_13\",\n\t\"toolbar-button-item\": \"_toolbar-button-item_a1ext_21\",\n\t\"toolbar-item\": \"_toolbar-item_a1ext_27\",\n\t\"overflow-collapse\": \"_overflow-collapse_a1ext_31\",\n\t\"toolbar-button-toggle-item\": \"_toolbar-button-toggle-item_a1ext_55\",\n\t\"toolbar-overflow-trigger\": \"_toolbar-overflow-trigger_a1ext_61\"\n};\n\nfunction getToolbarElements(toolbarElement) {\n const toolbarContent = toolbarElement.querySelector(\n '[data-anv=\"toolbar-content\"]'\n );\n const mainItems = getKeyboardFocusableElements(toolbarContent).filter(\n (item) => {\n const isVisible = !item.closest('[aria-hidden=\"true\"]');\n return isVisible;\n }\n );\n const overflowTrigger = toolbarElement.querySelector(\n '[data-anv=\"toolbar-overflow-trigger\"]'\n );\n return overflowTrigger ? [...mainItems, overflowTrigger] : mainItems;\n}\nfunction updateToolbarItemsTabIndex(toolbarElement, activeItem) {\n if (!toolbarElement) return;\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n let activeIndex = 0;\n if (typeof activeItem === \"number\") {\n activeIndex = Math.max(0, Math.min(activeItem, items.length - 1));\n } else if (activeItem instanceof Element) {\n const foundIndex = items.indexOf(activeItem);\n if (foundIndex !== -1) {\n activeIndex = foundIndex;\n }\n }\n items.forEach((item, index) => {\n item.setAttribute(\"tabindex\", index === activeIndex ? \"0\" : \"-1\");\n });\n return items[activeIndex];\n}\nfunction handleToolbarKeyDown(event, toolbarElement) {\n if (!toolbarElement || event.altKey || event.ctrlKey || event.metaKey) return;\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n const activeElement = event.target;\n if (!toolbarElement.contains(activeElement)) return;\n const activeItem = items.find(\n (item) => item === activeElement || Array.from(item.children).some((child) => child === activeElement)\n );\n const activeIndex = activeItem ? items.indexOf(activeItem) : -1;\n if (activeIndex === -1) return;\n let nextIndex = activeIndex;\n const isVertical = toolbarElement.getAttribute(\"aria-orientation\") === \"vertical\";\n switch (event.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n if (isVertical && event.key === \"ArrowUp\" || !isVertical && event.key === \"ArrowLeft\") {\n nextIndex = activeIndex <= 0 ? items.length - 1 : activeIndex - 1;\n }\n break;\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n if (isVertical && event.key === \"ArrowDown\" || !isVertical && event.key === \"ArrowRight\") {\n nextIndex = activeIndex >= items.length - 1 ? 0 : activeIndex + 1;\n }\n break;\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n case \"End\":\n event.preventDefault();\n nextIndex = items.length - 1;\n break;\n default:\n return;\n }\n updateToolbarItemsTabIndex(toolbarElement, nextIndex);\n items[nextIndex]?.focus();\n}\nconst handleMenuKeyboardNavigation = (event) => {\n const menuItems = Array.from(\n event.currentTarget.querySelectorAll('[role=\"menuitem\"]')\n ).map((menuItem) => {\n return getKeyboardFocusableElements(menuItem)[0] || menuItem;\n });\n if (!menuItems.length) return;\n const currentIndex = menuItems.indexOf(document.activeElement);\n if (currentIndex === -1) return;\n let nextIndex = currentIndex;\n const isModifierKey = event.altKey || event.ctrlKey || event.metaKey;\n if (isModifierKey) return;\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\": {\n event.preventDefault();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n nextIndex = (currentIndex + direction + menuItems.length) % menuItems.length;\n break;\n }\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n case \"End\":\n event.preventDefault();\n nextIndex = menuItems.length - 1;\n break;\n default:\n return;\n }\n menuItems[nextIndex]?.focus();\n};\n\nconst ToolbarItemWrapper = ({\n item,\n children\n}) => {\n const { addItem, removeItem, toolbarRef, overflow } = useContext(\n ToolbarOverflowContext\n );\n const itemId = useId();\n const elementRef = useRef(null);\n const prevIntersectingRef = useRef(true);\n const isCollapseMode = overflow === \"collapse\";\n const handleVisibilityChange = useCallback(\n (isVisible) => {\n if (!isCollapseMode || prevIntersectingRef.current === isVisible) return;\n const itemWithId = { ...item, id: itemId };\n if (isVisible) {\n removeItem(itemWithId);\n } else {\n addItem(itemWithId);\n }\n prevIntersectingRef.current = isVisible;\n },\n [isCollapseMode, item, itemId, addItem, removeItem]\n );\n const { isIntersecting, ref } = useIntersectionObserver({\n root: isCollapseMode ? toolbarRef.current : null,\n threshold: 1,\n initialIsIntersecting: false,\n onChange: handleVisibilityChange\n });\n const setRefCallback = useCallback(\n (node) => {\n elementRef.current = node;\n if (isCollapseMode) {\n ref(node);\n }\n },\n [ref, isCollapseMode]\n );\n const handleFocusOrClick = useCallback(() => {\n if (!toolbarRef.current || !elementRef.current) return;\n const currentElement = elementRef.current.querySelector(\"button, a, input\");\n if (!currentElement) return;\n updateToolbarItemsTabIndex(toolbarRef.current, currentElement);\n }, [toolbarRef]);\n useEffect(() => {\n const interactiveEl = elementRef.current?.querySelector(\"button, a, input\");\n if (!interactiveEl) return;\n interactiveEl.addEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.addEventListener(\"click\", handleFocusOrClick);\n return () => {\n interactiveEl.removeEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.removeEventListener(\"click\", handleFocusOrClick);\n };\n }, [handleFocusOrClick]);\n useEffect(() => {\n if (isCollapseMode) {\n prevIntersectingRef.current = true;\n }\n }, [isCollapseMode]);\n const isHidden = isCollapseMode && !isIntersecting;\n return /* @__PURE__ */ jsx(\n \"div\",\n {\n ref: setRefCallback,\n className: styles[\"toolbar-item\"],\n style: { visibility: isHidden ? \"hidden\" : \"visible\" },\n \"aria-hidden\": isHidden,\n ...{ inert: isHidden ? \"\" : void 0 },\n \"data-id\": itemId,\n \"data-anv\": \"toolbar-item\",\n children\n }\n );\n};\n\nconst ToolbarButtonToggle = forwardRef((props, _ref) => {\n const { className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonToggleClassNames = cx(\n className,\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-button-toggle-item\"]\n );\n const item = children ? /* @__PURE__ */ jsx(\n ButtonToggle,\n {\n size: \"small\",\n \"data-anv\": \"toolbar-button-toggle\",\n className: buttonToggleClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n ButtonToggle,\n {\n size: \"small\",\n \"data-anv\": \"toolbar-button-toggle\",\n className: buttonToggleClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"buttonToggle\" }, children: item });\n});\nToolbarButtonToggle.displayName = \"ToolbarButtonToggle\";\n\nconst ToolbarButtonLink = forwardRef(\n (props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonLinkClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = children ? /* @__PURE__ */ jsx(\n ButtonLink,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button-link\",\n className: buttonLinkClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n ButtonLink,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button-link\",\n className: buttonLinkClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"buttonLink\" }, children: item });\n }\n);\nToolbarButtonLink.displayName = \"ToolbarButtonLink\";\n\nconst ToolbarSelect = forwardRef(\n (props, _ref) => {\n const {\n appearance = \"ghost\",\n onChange,\n selected: selectedItemId,\n accessibleLabel,\n className,\n items,\n ...rest\n } = props;\n const selectId = useId();\n const defaultId = items.length > 0 ? items[0].id : \"\";\n const [internalSelectedId, setInternalSelectedId] = useState(defaultId);\n const selectedId = selectedItemId ?? internalSelectedId;\n const selectedItem = items.find((item2) => item2.id === selectedId) || items.find((item2) => item2.id === defaultId);\n useEffect(() => {\n if (!selectedItemId && items.length > 0 && !items.some((item2) => item2.id === internalSelectedId)) {\n setInternalSelectedId(items[0].id);\n }\n }, [items, selectedItemId, internalSelectedId]);\n const handleSelectionChange = (selected) => {\n if (selected?.id) {\n if (selectedItemId === void 0) {\n setInternalSelectedId(selected.id);\n }\n onChange?.(selected.id);\n }\n };\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = /* @__PURE__ */ jsxs(Popover, { noPadding: true, children: [\n /* @__PURE__ */ jsx(\n Popover.Button,\n {\n appearance,\n size: \"small\",\n icon: { after: Down },\n className: buttonClassNames,\n id: selectId,\n \"data-anv\": \"toolbar-select\",\n ...rest,\n children: selectedItem?.label\n }\n ),\n /* @__PURE__ */ jsx(\n Popover.Content,\n {\n className: styles[\"toolbar-select-content\"],\n \"aria-label\": `${accessibleLabel} options`,\n children: /* @__PURE__ */ jsx(\n Listbox,\n {\n selected: selectedItem,\n onSelectionChange: handleSelectionChange,\n items,\n \"aria-labelledby\": selectId,\n children: ({ items: items2 }) => items2.map((item2) => /* @__PURE__ */ jsx(Listbox.Option, { item: item2, children: item2.label }, item2.label))\n }\n )\n }\n )\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"select\" }, children: item });\n }\n);\nToolbarSelect.displayName = \"ToolbarSelect\";\n\nconst OverflowItemContext = createContext({\n isInOverflowMenu: false\n});\nconst useOverFlowItemContext = () => useContext(OverflowItemContext);\nconst OverflowItem = ({ itemType, itemProps }) => {\n switch (itemType) {\n case \"button\":\n return /* @__PURE__ */ jsx(ToolbarButton, { ...itemProps });\n case \"buttonToggle\":\n return /* @__PURE__ */ jsx(ToolbarButtonToggle, { ...itemProps });\n case \"buttonLink\":\n return /* @__PURE__ */ jsx(ToolbarButtonLink, { ...itemProps });\n case \"select\":\n return /* @__PURE__ */ jsx(ToolbarSelect, { ...itemProps });\n default:\n return null;\n }\n};\nconst ToolbarOverflowMenu = ({\n additionalItems,\n direction\n}) => {\n const { overflowItems, orderedIds } = useContext(ToolbarOverflowContext);\n const menuTriggerId = useId();\n const orderedItems = useMemo(() => {\n const allElements = orderedIds?.map((id) => {\n return overflowItems.find((item) => item.id === id);\n });\n return allElements?.filter((item) => item !== void 0) || [];\n }, [orderedIds, overflowItems]);\n const popoverButtonClassNames = cx(\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-overflow-trigger\"]\n );\n const overflowIcon = direction === \"horizontal\" ? IconMoreHoriz : MoreVert;\n return /* @__PURE__ */ jsxs(Popover, { noPadding: true, children: [\n /* @__PURE__ */ jsx(\n Popover.Button,\n {\n size: \"small\",\n appearance: \"ghost\",\n id: menuTriggerId,\n className: popoverButtonClassNames,\n \"data-anv\": \"toolbar-overflow-trigger\",\n \"aria-label\": \"Additional toolbar options\",\n children: /* @__PURE__ */ jsx(Icon, { svg: overflowIcon, size: \"small\" })\n }\n ),\n /* @__PURE__ */ jsx(Popover.Content, { children: /* @__PURE__ */ jsx(OverflowItemContext.Provider, { value: { isInOverflowMenu: true }, children: /* @__PURE__ */ jsxs(\n \"ul\",\n {\n role: \"menu\",\n className: styles[\"toolbar-overflow-content\"],\n \"data-anv\": \"toolbar-overflow-menu\",\n \"aria-labelledby\": menuTriggerId,\n onKeyDown: handleMenuKeyboardNavigation,\n children: [\n orderedItems.map((item) => {\n const { itemType, itemProps, id } = item;\n return /* @__PURE__ */ jsx(\n \"li\",\n {\n role: \"menuitem\",\n \"data-anv\": \"toolbar-overflow-item\",\n children: /* @__PURE__ */ jsx(\n OverflowItem,\n {\n itemType,\n itemProps,\n id\n }\n )\n },\n `${itemType}-${id}`\n );\n }),\n additionalItems?.map((item, index) => /* @__PURE__ */ jsx(\n \"li\",\n {\n role: \"menuitem\",\n \"data-anv\": \"toolbar-overflow-item\",\n children: item\n },\n `additional-item-${index}`\n ))\n ]\n }\n ) }) })\n ] });\n};\n\nconst ToolbarButton = forwardRef(\n (props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n const item = children ? /* @__PURE__ */ jsx(\n Button,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button\",\n className: buttonClassNames,\n ...rest,\n children\n }\n ) : /* @__PURE__ */ jsxs(Tooltip, { children: [\n /* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(\n Button,\n {\n appearance,\n size: \"small\",\n \"data-anv\": \"toolbar-button\",\n className: buttonClassNames,\n ...rest\n }\n ) }),\n /* @__PURE__ */ jsx(Tooltip.Content, { children: rest[\"aria-label\"] })\n ] });\n if (isInOverflowMenu) {\n return item;\n }\n return /* @__PURE__ */ jsx(ToolbarItemWrapper, { item: { itemProps: props, itemType: \"button\" }, children: item });\n }\n);\nToolbarButton.displayName = \"ToolbarButton\";\n\nconst ToolbarOverflowContext = createContext({\n overflowItems: [],\n addItem: () => {\n return;\n },\n removeItem: () => {\n return;\n },\n toolbarRef: { current: null },\n orderedIds: [],\n overflow: \"wrap\"\n});\nconst ToolbarElement = forwardRef(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n associatedContent,\n className,\n children,\n style,\n direction = \"horizontal\",\n overflow = \"wrap\",\n onKeyDown,\n additionalItems,\n ...rest\n } = componentProps;\n const [overflowItems, setOverflowItems] = useState([]);\n const toolbarItemsRef = useRef(null);\n const toolbarRef = useRef(null);\n const [orderedIds, setOrderedIds] = useState([]);\n useEffect(() => {\n const newOrderedIds = Array.from(\n toolbarItemsRef.current?.querySelectorAll(\"[data-id]\") || []\n ).map((el) => {\n return el.getAttribute(\"data-id\");\n });\n setOrderedIds(newOrderedIds);\n }, [children]);\n const addItem = useCallback((item) => {\n setOverflowItems((prev) => [...prev, item]);\n }, []);\n const removeItem = useCallback((item) => {\n setOverflowItems(\n (prev) => prev.filter((component) => component.id !== item.id)\n );\n }, []);\n useEffect(() => {\n if (toolbarRef.current) {\n updateToolbarItemsTabIndex(toolbarRef.current);\n }\n }, [children]);\n const handleKeyDown = useCallback(\n (event) => {\n if (toolbarRef.current) {\n handleToolbarKeyDown(event, toolbarRef.current);\n }\n onKeyDown?.(event);\n },\n [onKeyDown]\n );\n const showOverflowMenu = overflow === \"collapse\" && overflowItems.length > 0 || !!additionalItems;\n const value = useMemo(\n () => ({\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow\n }),\n [overflowItems, addItem, removeItem, toolbarRef, orderedIds, overflow]\n );\n const styleCombined = {\n ...style,\n ...layoutStyles\n };\n const toolbarClassNames = cx(styles[\"toolbar\"], className);\n const toolbarContentClassNames = cx(styles[\"toolbar-content\"], {\n [styles[`overflow-${overflow}`]]: overflow\n });\n return /* @__PURE__ */ jsx(ToolbarOverflowContext.Provider, { value, children: /* @__PURE__ */ jsxs(\n Flex,\n {\n direction: direction === \"horizontal\" ? \"row\" : \"column\",\n wrap: overflow === \"wrap\" ? \"wrap\" : \"nowrap\",\n alignItems: \"center\",\n className: toolbarClassNames,\n style: styleCombined,\n ref: useMergeRefs([toolbarRef, ref]),\n role: \"toolbar\",\n \"data-anv\": \"toolbar\",\n \"aria-orientation\": direction,\n \"aria-label\": `Toolbar for ${associatedContent}. Use arrow keys to navigate through toolbar controls.`,\n onKeyDown: handleKeyDown,\n ...rest,\n children: [\n /* @__PURE__ */ jsx(\n Flex,\n {\n ref: useMergeRefs([toolbarItemsRef, ref]),\n className: toolbarContentClassNames,\n direction: direction === \"horizontal\" ? \"row\" : \"column\",\n wrap: overflow === \"wrap\" ? \"wrap\" : \"nowrap\",\n alignItems: \"center\",\n grow: 1,\n \"data-anv\": \"toolbar-content\",\n children\n }\n ),\n showOverflowMenu && /* @__PURE__ */ jsx(\n ToolbarOverflowMenu,\n {\n direction,\n additionalItems\n }\n )\n ]\n }\n ) });\n }\n);\nToolbarElement.displayName = \"Toolbar\";\nconst Toolbar = Object.assign(ToolbarElement, {\n /**\n * ToolbarButton component for standard clickable actions within a toolbar.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\n Button: ToolbarButton,\n /**\n * ToolbarButtonToggle component for toggleable actions within a toolbar.\n *\n * Features:\n * - Toggle state management (on/off)\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only toggles\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Visual feedback for toggle state\n * - Proper ARIA attributes for toggle semantics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n *\n * @example\n * <Toolbar.ButtonToggle checked={isItalic}>\n * Italic\n * </Toolbar.ButtonToggle>\n */\n ButtonToggle: ToolbarButtonToggle,\n /**\n * ToolbarButtonLink component for link actions within a toolbar.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only links\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Proper anchor element semantics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n *\n * @example\n * <Toolbar.ButtonLink icon={ExternalLinkIcon} href=\"/docs\" aria-label=\"Documentation\" />\n */\n ButtonLink: ToolbarButtonLink,\n /**\n * ToolbarSelect component provides a dropdown selector within a toolbar.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n *\n * @example\n * <Toolbar.Select\n * appearance=\"primary\"\n * items={colorOptions}\n * accessibleLabel=\"Text color\"\n * />\n */\n Select: ToolbarSelect\n});\n\nexport { Toolbar as T, ToolbarButton as a, ToolbarButtonToggle as b, ToolbarButtonLink as c, ToolbarSelect as d, ToolbarItemWrapper as e, ToolbarOverflowMenu as f };\n//# sourceMappingURL=Toolbar-D1fgFomV.js.map\n","import {\n Toolbar as CoreToolbar,\n ToolbarProps as CoreToolbarProps,\n ToolbarButton as CoreToolbarButton,\n ToolbarButtonProps as CoreToolbarButtonProps,\n ToolbarButtonToggle as CoreToolbarButtonToggle,\n ToolbarButtonToggleProps as CoreToolbarButtonToggleProps,\n ToolbarButtonLink as CoreToolbarButtonLink,\n ToolbarButtonLinkProps as CoreToolbarButtonLinkProps,\n ToolbarSelect as CoreToolbarSelect,\n ToolbarSelectProps as CoreToolbarSelectProps,\n ToolbarOverflowTypes as CoreToolbarOverflowTypes,\n ToolbarItemAppearance as CoreToolbarItemAppearance,\n} from \"@servicetitan/hammer-react\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\n\n/**\n * Props for the Toolbar component with tracking support\n * @property {string} associatedContent - Description of the content this toolbar is associated with, used for accessibility\n * @property {\"vertical\" | \"horizontal\"} [direction] - Orientation of the toolbar\n * @property {ToolbarOverflowTypes} [overflow] - How to handle overflow when items don't fit\n * @property {ReactElement[]} [additionalItems] - Additional items to display in the overflow menu\n * @extends DataTrackingId\n */\nexport type ToolbarProps = CoreToolbarProps & DataTrackingId;\n\n/**\n * Props for the ToolbarButton component with tracking support\n * @property {ToolbarItemAppearance} [appearance] - Visual appearance of the button\n * @property {string} [aria-label] - Accessible label for the button\n * @property {React.ReactNode} [children] - Button content\n * @property {boolean} [disabled] - Whether the button is disabled\n * @extends DataTrackingId\n */\nexport type ToolbarButtonProps = CoreToolbarButtonProps & DataTrackingId;\n\n/**\n * Props for the ToolbarButtonToggle component with tracking support\n * @property {boolean} [checked] - Whether the toggle is checked\n * @property {boolean} [disabled] - Whether the toggle is disabled\n * @property {string} [aria-label] - Accessible label for the toggle\n * @property {React.ReactNode} [children] - Toggle content\n * @extends DataTrackingId\n */\nexport type ToolbarButtonToggleProps = CoreToolbarButtonToggleProps &\n DataTrackingId;\n\n/**\n * Props for the ToolbarButtonLink component with tracking support\n * @property {string} [href] - Link destination URL\n * @property {boolean} [disabled] - Whether the link is disabled\n * @property {string} [aria-label] - Accessible label for the link\n * @property {React.ReactNode} [children] - Link content\n * @property {string} [target] - Link target attribute\n * @extends DataTrackingId\n */\nexport type ToolbarButtonLinkProps = CoreToolbarButtonLinkProps &\n DataTrackingId;\n\n/**\n * Props for the ToolbarSelect component with tracking support\n * @property {string} [selected] - Currently selected item ID\n * @property {boolean} [disabled] - Whether the select is disabled\n * @property {string} [aria-label] - Accessible label for the select\n * @property {unknown[]} [items] - Array of selectable items\n * @extends DataTrackingId\n */\nexport type ToolbarSelectProps<T> = CoreToolbarSelectProps<T> & DataTrackingId;\n\n/**\n * Toolbar overflow behavior options\n */\nexport type ToolbarOverflowTypes = CoreToolbarOverflowTypes;\n\n/**\n * Toolbar item appearance options\n */\nexport type ToolbarItemAppearance = CoreToolbarItemAppearance;\n\n/**\n * Toolbar component for grouping related interactive elements with anvil2 tracking.\n *\n * Features:\n * - Horizontal or vertical orientation\n * - Overflow handling with wrap or collapse behavior\n * - Keyboard navigation following ARIA best practices\n * - Screen reader announcements and accessibility\n * - Automatic overflow menu for collapsed items\n * - Support for buttons, toggles, selects, and links\n * - Layout utilities for positioning and spacing\n * - Context-based state management for child components\n * - Automatic tracking ID generation for analytics\n * - Integration with anvil2 tracking system\n *\n * @example\n * <Toolbar associatedContent=\"document editor\" overflow=\"collapse\">\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold\" />\n * <Toolbar.ButtonToggle icon={ItalicIcon} aria-label=\"Italic\" />\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * />\n * </Toolbar>\n */\nexport function ToolbarElement(props: ToolbarProps) {\n const trackingId = useTrackingId({\n name: \"Toolbar\",\n data: {\n overflow: props.overflow,\n direction: props.direction,\n associatedContent: props.associatedContent,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbar data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\nexport function ToolbarButton(props: ToolbarButtonProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButton\",\n data: {\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButton data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Toggle state management\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n */\nexport function ToolbarButtonToggle(props: ToolbarButtonToggleProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButtonToggle\",\n data: {\n checked: props.checked,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButtonToggle data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n */\nexport function ToolbarButtonLink(props: ToolbarButtonLinkProps) {\n const trackingId = useTrackingId({\n name: \"ToolbarButtonLink\",\n data: {\n href: props.href,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n children: props.children,\n target: props.target,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarButtonLink data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n */\nexport function ToolbarSelect(props: ToolbarSelectProps<unknown>) {\n const trackingId = useTrackingId({\n name: \"ToolbarSelect\",\n data: {\n selected: props.selected,\n disabled: props.disabled,\n \"aria-label\": props[\"aria-label\"],\n items: props.items,\n },\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return <CoreToolbarSelect data-tracking-id={trackingId} {...props} />;\n}\n\n/**\n * Toolbar component for grouping related interactive elements.\n *\n * Features:\n * - Horizontal or vertical orientation\n * - Overflow handling with wrap or collapse behavior\n * - Keyboard navigation following ARIA best practices\n * - Screen reader announcements and accessibility\n * - Automatic overflow menu for collapsed items\n * - Support for buttons, toggles, selects, and links\n * - Layout utilities for positioning and spacing\n * - Context-based state management for child components\n *\n * @example\n * <Toolbar associatedContent=\"document editor\" overflow=\"collapse\">\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold\" />\n * <Toolbar.ButtonToggle icon={ItalicIcon} aria-label=\"Italic\" />\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * />\n * </Toolbar>\n */\nexport const Toolbar = Object.assign(ToolbarElement, {\n /**\n * ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Automatic tooltip for icon-only buttons\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Button icon={BoldIcon} aria-label=\"Bold text\" />\n *\n * @example\n * <Toolbar.Button appearance=\"primary\">\n * Save\n * </Toolbar.Button>\n */\n Button: ToolbarButton,\n /**\n * ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Toggle state management\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n */\n ButtonToggle: ToolbarButtonToggle,\n /**\n * ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Link functionality with href support\n * - Designed specifically for toolbar integration\n * - Consistent styling with other toolbar items\n * - Overflow menu support\n * - Accessibility enforcement for aria-labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.ButtonLink href=\"/help\">\n * Help\n * </Toolbar.ButtonLink>\n */\n ButtonLink: ToolbarButtonLink,\n /**\n * ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.\n *\n * Features:\n * - Dropdown menu with selectable options\n * - Controlled and uncontrolled usage patterns\n * - Automatic overflow menu integration\n * - Accessibility support with proper ARIA labels\n * - Small size optimized for toolbar layout\n * - Ghost and primary appearance options\n * - Dropdown arrow icon indicator\n * - Listbox integration for keyboard navigation\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Toolbar.Select\n * items={fontOptions}\n * selected=\"arial\"\n * accessibleLabel=\"Font family\"\n * onChange={(id) => setFont(id)}\n * />\n */\n Select: ToolbarSelect,\n});\n"],"names":["ToolbarButtonToggle","ToolbarButtonLink","ToolbarSelect","Down","ToolbarButton","IconMoreHoriz","MoreVert","ToolbarElement","Toolbar","CoreToolbar","CoreToolbarButton","CoreToolbarButtonToggle","CoreToolbarButtonLink","CoreToolbarSelect"],"mappings":";;;;;;;;;;;;;;;;;;;AAEA,SAAS,uBAAuB,CAAC;AACjC,EAAE,SAAS,GAAG,CAAC;AACf,EAAE,IAAI,GAAG,IAAI;AACb,EAAE,UAAU,GAAG,IAAI;AACnB,EAAE,iBAAiB,GAAG,KAAK;AAC3B,EAAE,qBAAqB,GAAG,KAAK;AAC/B,EAAE;AACF,CAAC,GAAG,EAAE,EAAE;AACR,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;AACtC,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,OAAO;AAC5C,IAAI,cAAc,EAAE,qBAAqB;AACzC,IAAI,KAAK,EAAE;AACX,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,WAAW,GAAG,MAAM,EAAE;AAC9B,EAAE,WAAW,CAAC,OAAO,GAAG,QAAQ;AAChC,EAAE,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,cAAc,IAAI,iBAAiB;AACjE,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,CAAC,GAAG,EAAE;AACd,IAAI,IAAI,EAAE,sBAAsB,IAAI,MAAM,CAAC,EAAE;AAC7C,IAAI,IAAI,MAAM,EAAE;AAChB,IAAI,MAAM,QAAQ,GAAG,IAAI,oBAAoB;AAC7C,MAAM,CAAC,OAAO,KAAK;AACnB,QAAQ,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,UAAU,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;AAC3G,QAAQ,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK;AACnC,UAAU,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,UAAU,CAAC,IAAI;AACxE,YAAY,CAAC,UAAU,KAAK,KAAK,CAAC,iBAAiB,IAAI;AACvD,WAAW;AACX,UAAU,QAAQ,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;AAC7C,UAAU,IAAI,WAAW,CAAC,OAAO,EAAE;AACnC,YAAY,WAAW,CAAC,OAAO,CAAC,cAAc,EAAE,KAAK,CAAC;AACtD;AACA,SAAS,CAAC;AACV,OAAO;AACP,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU;AACnC,KAAK;AACL,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AACzB,IAAI,OAAO,MAAM;AACjB,MAAM,QAAQ,CAAC,UAAU,EAAE;AAC3B,KAAK;AACL,GAAG,EAAE;AACL,IAAI,GAAG;AACP;AACA,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AAC7B,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,MAAM;AACV,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;AAC9B,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,iBAAiB,IAAI,CAAC,MAAM,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;AAChH,MAAM,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM;AAC1C,MAAM,QAAQ,CAAC,EAAE,cAAc,EAAE,qBAAqB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AACxE;AACA,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,EAAE,iBAAiB,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;AAC1E,EAAE,MAAM,MAAM,GAAG;AACjB,IAAI,MAAM;AACV,IAAI,CAAC,CAAC,KAAK,CAAC,cAAc;AAC1B,IAAI,KAAK,CAAC;AACV,GAAG;AACH,EAAE,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC;AACxB,EAAE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC;AACnC,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;AAC1B,EAAE,OAAO,MAAM;AACf;;AC/CuB,MAAM,OAAO,GAAG,kBAAkB;AACzD,MAAM,MAAM,GAAG;AACf,CAAC,OAAO,EAAE,OAAO;AACjB,CAAC,iBAAiB,EAAE,2BAA2B;AAC/C,CAAC,0BAA0B,EAAE,oCAAoC;AACjE,CAAC,qBAAqB,EAAE,+BAA+B;AACvD,CAAC,cAAc,EAAE,wBAAwB;AACzC,CAAC,mBAAmB,EAAE,6BAA6B;AACnD,CAAC,4BAA4B,EAAE,sCAAsC;AACrE,CAAC,0BAA0B,EAAE;AAC7B,CAAC;;AAED,SAAS,kBAAkB,CAAC,cAAc,EAAE;AAC5C,EAAE,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa;AACrD,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,SAAS,GAAG,4BAA4B,CAAC,cAAc,CAAC,CAAC,MAAM;AACvE,IAAI,CAAC,IAAI,KAAK;AACd,MAAM,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;AAC7D,MAAM,OAAO,SAAS;AACtB;AACA,GAAG;AACH,EAAE,MAAM,eAAe,GAAG,cAAc,CAAC,aAAa;AACtD,IAAI;AACJ,GAAG;AACH,EAAE,OAAO,eAAe,GAAG,CAAC,GAAG,SAAS,EAAE,eAAe,CAAC,GAAG,SAAS;AACtE;AACA,SAAS,0BAA0B,CAAC,cAAc,EAAE,UAAU,EAAE;AAChE,EAAE,IAAI,CAAC,cAAc,EAAE;AACvB,EAAE,MAAM,KAAK,GAAG,kBAAkB,CAAC,cAAc,CAAC;AAClD,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACrB,EAAE,IAAI,WAAW,GAAG,CAAC;AACrB,EAAE,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;AACtC,IAAI,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrE,GAAG,MAAM,IAAI,UAAU,YAAY,OAAO,EAAE;AAC5C,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;AAChD,IAAI,IAAI,UAAU,KAAK,EAAE,EAAE;AAC3B,MAAM,WAAW,GAAG,UAAU;AAC9B;AACA;AACA,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK;AACjC,IAAI,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,KAAK,KAAK,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC;AACrE,GAAG,CAAC;AACJ,EAAE,OAAO,KAAK,CAAC,WAAW,CAAC;AAC3B;AACA,SAAS,oBAAoB,CAAC,KAAK,EAAE,cAAc,EAAE;AACrD,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;AACzE,EAAE,MAAM,KAAK,GAAG,kBAAkB,CAAC,cAAc,CAAC;AAClD,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACrB,EAAE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM;AACpC,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;AAC/C,EAAE,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI;AAC/B,IAAI,CAAC,IAAI,KAAK,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,aAAa;AACzG,GAAG;AACH,EAAE,MAAM,WAAW,GAAG,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE;AACjE,EAAE,IAAI,WAAW,KAAK,EAAE,EAAE;AAC1B,EAAE,IAAI,SAAS,GAAG,WAAW;AAC7B,EAAE,MAAM,UAAU,GAAG,cAAc,CAAC,YAAY,CAAC,kBAAkB,CAAC,KAAK,UAAU;AACnF,EAAE,QAAQ,KAAK,CAAC,GAAG;AACnB,IAAI,KAAK,WAAW;AACpB,IAAI,KAAK,SAAS;AAClB,MAAM,KAAK,CAAC,cAAc,EAAE;AAC5B,MAAM,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;AAC7F,QAAQ,SAAS,GAAG,WAAW,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC;AACzE;AACA,MAAM;AACN,IAAI,KAAK,YAAY;AACrB,IAAI,KAAK,WAAW;AACpB,MAAM,KAAK,CAAC,cAAc,EAAE;AAC5B,MAAM,IAAI,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE;AAChG,QAAQ,SAAS,GAAG,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,WAAW,GAAG,CAAC;AACzE;AACA,MAAM;AACN,IAAI,KAAK,MAAM;AACf,MAAM,KAAK,CAAC,cAAc,EAAE;AAC5B,MAAM,SAAS,GAAG,CAAC;AACnB,MAAM;AACN,IAAI,KAAK,KAAK;AACd,MAAM,KAAK,CAAC,cAAc,EAAE;AAC5B,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;AAClC,MAAM;AACN,IAAI;AACJ,MAAM;AACN;AACA,EAAE,0BAA0B,CAAC,cAAc,EAAE,SAAS,CAAC;AACvD,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE;AAC3B;AACA,MAAM,4BAA4B,GAAG,CAAC,KAAK,KAAK;AAChD,EAAE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI;AAC9B,IAAI,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,mBAAmB;AAC5D,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK;AACtB,IAAI,OAAO,4BAA4B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,QAAQ;AAChE,GAAG,CAAC;AACJ,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;AACzB,EAAE,MAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;AAChE,EAAE,IAAI,YAAY,KAAK,EAAE,EAAE;AAC3B,EAAE,IAAI,SAAS,GAAG,YAAY;AAC9B,EAAE,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;AACtE,EAAE,IAAI,aAAa,EAAE;AACrB,EAAE,QAAQ,KAAK,CAAC,GAAG;AACnB,IAAI,KAAK,WAAW;AACpB,IAAI,KAAK,SAAS,EAAE;AACpB,MAAM,KAAK,CAAC,cAAc,EAAE;AAC5B,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE;AAC1D,MAAM,SAAS,GAAG,CAAC,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM;AAClF,MAAM;AACN;AACA,IAAI,KAAK,MAAM;AACf,MAAM,KAAK,CAAC,cAAc,EAAE;AAC5B,MAAM,SAAS,GAAG,CAAC;AACnB,MAAM;AACN,IAAI,KAAK,KAAK;AACd,MAAM,KAAK,CAAC,cAAc,EAAE;AAC5B,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC;AACtC,MAAM;AACN,IAAI;AACJ,MAAM;AACN;AACA,EAAE,SAAS,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE;AAC/B,CAAC;;AAED,MAAM,kBAAkB,GAAG,CAAC;AAC5B,EAAE,IAAI;AACN,EAAE;AACF,CAAC,KAAK;AACN,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,UAAU;AAClE,IAAI;AACJ,GAAG;AACH,EAAE,MAAM,MAAM,GAAG,KAAK,EAAE;AACxB,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;AACjC,EAAE,MAAM,mBAAmB,GAAG,MAAM,CAAC,IAAI,CAAC;AAC1C,EAAE,MAAM,cAAc,GAAG,QAAQ,KAAK,UAAU;AAChD,EAAE,MAAM,sBAAsB,GAAG,WAAW;AAC5C,IAAI,CAAC,SAAS,KAAK;AACnB,MAAM,IAAI,CAAC,cAAc,IAAI,mBAAmB,CAAC,OAAO,KAAK,SAAS,EAAE;AACxE,MAAM,MAAM,UAAU,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE;AAChD,MAAM,IAAI,SAAS,EAAE;AACrB,QAAQ,UAAU,CAAC,UAAU,CAAC;AAC9B,OAAO,MAAM;AACb,QAAQ,OAAO,CAAC,UAAU,CAAC;AAC3B;AACA,MAAM,mBAAmB,CAAC,OAAO,GAAG,SAAS;AAC7C,KAAK;AACL,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;AACtD,GAAG;AACH,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,uBAAuB,CAAC;AAC1D,IAAI,IAAI,EAAE,cAAc,GAAG,UAAU,CAAC,OAAO,GAAG,IAAI;AACpD,IAAI,SAAS,EAAE,CAAC;AAChB,IAAI,qBAAqB,EAAE,KAAK;AAChC,IAAI,QAAQ,EAAE;AACd,GAAG,CAAC;AACJ,EAAE,MAAM,cAAc,GAAG,WAAW;AACpC,IAAI,CAAC,IAAI,KAAK;AACd,MAAM,UAAU,CAAC,OAAO,GAAG,IAAI;AAC/B,MAAM,IAAI,cAAc,EAAE;AAC1B,QAAQ,GAAG,CAAC,IAAI,CAAC;AACjB;AACA,KAAK;AACL,IAAI,CAAC,GAAG,EAAE,cAAc;AACxB,GAAG;AACH,EAAE,MAAM,kBAAkB,GAAG,WAAW,CAAC,MAAM;AAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;AACpD,IAAI,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC;AAC/E,IAAI,IAAI,CAAC,cAAc,EAAE;AACzB,IAAI,0BAA0B,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,CAAC;AAClE,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;AAClB,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,kBAAkB,CAAC;AAC/E,IAAI,IAAI,CAAC,aAAa,EAAE;AACxB,IAAI,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC;AAC/D,IAAI,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,CAAC;AAC/D,IAAI,OAAO,MAAM;AACjB,MAAM,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,CAAC;AACpE,MAAM,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,CAAC;AACpE,KAAK;AACL,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAC;AAC1B,EAAE,SAAS,CAAC,MAAM;AAClB,IAAI,IAAI,cAAc,EAAE;AACxB,MAAM,mBAAmB,CAAC,OAAO,GAAG,IAAI;AACxC;AACA,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC;AACtB,EAAE,MAAM,QAAQ,GAAG,cAAc,IAAI,CAAC,cAAc;AACpD,EAAE,uBAAuB,GAAG;AAC5B,IAAI,KAAK;AACT,IAAI;AACJ,MAAM,GAAG,EAAE,cAAc;AACzB,MAAM,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC;AACvC,MAAM,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,EAAE;AAC5D,MAAM,aAAa,EAAE,QAAQ;AAC7B,MAAM,GAAG,EAAE,KAAK,EAAE,QAAQ,GAAG,EAAE,GAAG,MAAM,EAAE;AAC1C,MAAM,SAAS,EAAE,MAAM;AACvB,MAAM,UAAU,EAAE,cAAc;AAChC,MAAM;AACN;AACA,GAAG;AACH,CAAC;;AAED,MAAMA,qBAAmB,GAAG,UAAU,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK;AACxD,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AAChD,EAAE,MAAM,EAAE,gBAAgB,GAAG,KAAK,EAAE,GAAG,sBAAsB,IAAI,IAAI,EAAE;AACvE,EAAE,MAAM,sBAAsB,GAAG,EAAE;AACnC,IAAI,SAAS;AACb,IAAI,MAAM,CAAC,qBAAqB,CAAC;AACjC,IAAI,MAAM,CAAC,4BAA4B;AACvC,GAAG;AACH,EAAE,MAAM,IAAI,GAAG,QAAQ,mBAAmB,GAAG;AAC7C,IAAI,YAAY;AAChB,IAAI;AACJ,MAAM,IAAI,EAAE,OAAO;AACnB,MAAM,UAAU,EAAE,uBAAuB;AACzC,MAAM,SAAS,EAAE,sBAAsB;AACvC,MAAM,GAAG,IAAI;AACb,MAAM;AACN;AACA,GAAG,mBAAmB,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE;AAChD,oBAAoB,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,kBAAkB,GAAG;AACxE,MAAM,YAAY;AAClB,MAAM;AACN,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,UAAU,EAAE,uBAAuB;AAC3C,QAAQ,SAAS,EAAE,sBAAsB;AACzC,QAAQ,GAAG;AACX;AACA,KAAK,EAAE,CAAC;AACR,oBAAoB,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;AACzE,GAAG,EAAE,CAAC;AACN,EAAE,IAAI,gBAAgB,EAAE;AACxB,IAAI,OAAO,IAAI;AACf;AACA,EAAE,uBAAuB,GAAG,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC1H,CAAC,CAAC;AACFA,qBAAmB,CAAC,WAAW,GAAG,qBAAqB;;AAEvD,MAAMC,mBAAiB,GAAG,UAAU;AACpC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK;AACnB,IAAI,MAAM,EAAE,UAAU,GAAG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AACxE,IAAI,MAAM,EAAE,gBAAgB,GAAG,KAAK,EAAE,GAAG,sBAAsB,IAAI,IAAI,EAAE;AACzE,IAAI,MAAM,oBAAoB,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;AAC7E,IAAI,MAAM,IAAI,GAAG,QAAQ,mBAAmB,GAAG;AAC/C,MAAM,UAAU;AAChB,MAAM;AACN,QAAQ,UAAU;AAClB,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,UAAU,EAAE,qBAAqB;AACzC,QAAQ,SAAS,EAAE,oBAAoB;AACvC,QAAQ,GAAG,IAAI;AACf,QAAQ;AACR;AACA,KAAK,mBAAmB,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE;AAClD,sBAAsB,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,kBAAkB,GAAG;AAC1E,QAAQ,UAAU;AAClB,QAAQ;AACR,UAAU,UAAU;AACpB,UAAU,IAAI,EAAE,OAAO;AACvB,UAAU,UAAU,EAAE,qBAAqB;AAC3C,UAAU,SAAS,EAAE,oBAAoB;AACzC,UAAU,GAAG;AACb;AACA,OAAO,EAAE,CAAC;AACV,sBAAsB,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;AAC3E,KAAK,EAAE,CAAC;AACR,IAAI,IAAI,gBAAgB,EAAE;AAC1B,MAAM,OAAO,IAAI;AACjB;AACA,IAAI,uBAAuB,GAAG,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAC1H;AACA,CAAC;AACDA,mBAAiB,CAAC,WAAW,GAAG,mBAAmB;;AAEnD,MAAMC,eAAa,GAAG,UAAU;AAChC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK;AACnB,IAAI,MAAM;AACV,MAAM,UAAU,GAAG,OAAO;AAC1B,MAAM,QAAQ;AACd,MAAM,QAAQ,EAAE,cAAc;AAC9B,MAAM,eAAe;AACrB,MAAM,SAAS;AACf,MAAM,KAAK;AACX,MAAM,GAAG;AACT,KAAK,GAAG,KAAK;AACb,IAAI,MAAM,QAAQ,GAAG,KAAK,EAAE;AAC5B,IAAI,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE;AACzD,IAAI,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC3E,IAAI,MAAM,UAAU,GAAG,cAAc,IAAI,kBAAkB;AAC3D,IAAI,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,UAAU,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,SAAS,CAAC;AACxH,IAAI,SAAS,CAAC,MAAM;AACpB,MAAM,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,kBAAkB,CAAC,EAAE;AAC1G,QAAQ,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC1C;AACA,KAAK,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAC;AACnD,IAAI,MAAM,qBAAqB,GAAG,CAAC,QAAQ,KAAK;AAChD,MAAM,IAAI,QAAQ,EAAE,EAAE,EAAE;AACxB,QAAQ,IAAI,cAAc,KAAK,MAAM,EAAE;AACvC,UAAU,qBAAqB,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC5C;AACA,QAAQ,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC/B;AACA,KAAK;AACL,IAAI,MAAM,EAAE,gBAAgB,GAAG,KAAK,EAAE,GAAG,sBAAsB,IAAI,IAAI,EAAE;AACzE,IAAI,MAAM,gBAAgB,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACzE,IAAI,MAAM,IAAI,mBAAmB,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;AAC5E,sBAAsB,GAAG;AACzB,QAAQ,OAAO,CAAC,MAAM;AACtB,QAAQ;AACR,UAAU,UAAU;AACpB,UAAU,IAAI,EAAE,OAAO;AACvB,UAAU,IAAI,EAAE,EAAE,KAAK,EAAEC,gBAAI,EAAE;AAC/B,UAAU,SAAS,EAAE,gBAAgB;AACrC,UAAU,EAAE,EAAE,QAAQ;AACtB,UAAU,UAAU,EAAE,gBAAgB;AACtC,UAAU,GAAG,IAAI;AACjB,UAAU,QAAQ,EAAE,YAAY,EAAE;AAClC;AACA,OAAO;AACP,sBAAsB,GAAG;AACzB,QAAQ,OAAO,CAAC,OAAO;AACvB,QAAQ;AACR,UAAU,SAAS,EAAE,MAAM,CAAC,wBAAwB,CAAC;AACrD,UAAU,YAAY,EAAE,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC;AACpD,UAAU,QAAQ,kBAAkB,GAAG;AACvC,YAAY,OAAO;AACnB,YAAY;AACZ,cAAc,QAAQ,EAAE,YAAY;AACpC,cAAc,iBAAiB,EAAE,qBAAqB;AACtD,cAAc,KAAK;AACnB,cAAc,iBAAiB,EAAE,QAAQ;AACzC,cAAc,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,qBAAqB,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,KAAK,CAAC,KAAK,CAAC;AAC7J;AACA;AACA;AACA;AACA,KAAK,EAAE,CAAC;AACR,IAAI,IAAI,gBAAgB,EAAE;AAC1B,MAAM,OAAO,IAAI;AACjB;AACA,IAAI,uBAAuB,GAAG,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtH;AACA,CAAC;AACDD,eAAa,CAAC,WAAW,GAAG,eAAe;;AAE3C,MAAM,mBAAmB,GAAG,aAAa,CAAC;AAC1C,EAAE,gBAAgB,EAAE;AACpB,CAAC,CAAC;AACF,MAAM,sBAAsB,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC;AACpE,MAAM,YAAY,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK;AAClD,EAAE,QAAQ,QAAQ;AAClB,IAAI,KAAK,QAAQ;AACjB,MAAM,uBAAuB,GAAG,CAACE,eAAa,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC;AACjE,IAAI,KAAK,cAAc;AACvB,MAAM,uBAAuB,GAAG,CAACJ,qBAAmB,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC;AACvE,IAAI,KAAK,YAAY;AACrB,MAAM,uBAAuB,GAAG,CAACC,mBAAiB,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC;AACrE,IAAI,KAAK,QAAQ;AACjB,MAAM,uBAAuB,GAAG,CAACC,eAAa,EAAE,EAAE,GAAG,SAAS,EAAE,CAAC;AACjE,IAAI;AACJ,MAAM,OAAO,IAAI;AACjB;AACA,CAAC;AACD,MAAM,mBAAmB,GAAG,CAAC;AAC7B,EAAE,eAAe;AACjB,EAAE;AACF,CAAC,KAAK;AACN,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,sBAAsB,CAAC;AAC1E,EAAE,MAAM,aAAa,GAAG,KAAK,EAAE;AAC/B,EAAE,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM;AACrC,IAAI,MAAM,WAAW,GAAG,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,KAAK;AAChD,MAAM,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC;AACzD,KAAK,CAAC;AACN,IAAI,OAAO,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,MAAM,CAAC,IAAI,EAAE;AAC/D,GAAG,EAAE,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AACjC,EAAE,MAAM,uBAAuB,GAAG,EAAE;AACpC,IAAI,MAAM,CAAC,qBAAqB,CAAC;AACjC,IAAI,MAAM,CAAC,0BAA0B;AACrC,GAAG;AACH,EAAE,MAAM,YAAY,GAAG,SAAS,KAAK,YAAY,GAAGG,YAAa,GAAGC,WAAQ;AAC5E,EAAE,uBAAuB,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;AACpE,oBAAoB,GAAG;AACvB,MAAM,OAAO,CAAC,MAAM;AACpB,MAAM;AACN,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,UAAU,EAAE,OAAO;AAC3B,QAAQ,EAAE,EAAE,aAAa;AACzB,QAAQ,SAAS,EAAE,uBAAuB;AAC1C,QAAQ,UAAU,EAAE,0BAA0B;AAC9C,QAAQ,YAAY,EAAE,4BAA4B;AAClD,QAAQ,QAAQ,kBAAkB,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE;AAChF;AACA,KAAK;AACL,oBAAoB,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,kBAAkB,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,QAAQ,kBAAkB,IAAI;AAC1K,MAAM,IAAI;AACV,MAAM;AACN,QAAQ,IAAI,EAAE,MAAM;AACpB,QAAQ,SAAS,EAAE,MAAM,CAAC,0BAA0B,CAAC;AACrD,QAAQ,UAAU,EAAE,uBAAuB;AAC3C,QAAQ,iBAAiB,EAAE,aAAa;AACxC,QAAQ,SAAS,EAAE,4BAA4B;AAC/C,QAAQ,QAAQ,EAAE;AAClB,UAAU,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK;AACrC,YAAY,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI;AACpD,YAAY,uBAAuB,GAAG;AACtC,cAAc,IAAI;AAClB,cAAc;AACd,gBAAgB,IAAI,EAAE,UAAU;AAChC,gBAAgB,UAAU,EAAE,uBAAuB;AACnD,gBAAgB,QAAQ,kBAAkB,GAAG;AAC7C,kBAAkB,YAAY;AAC9B,kBAAkB;AAClB,oBAAoB,QAAQ;AAC5B,oBAAoB,SAAS;AAC7B,oBAAoB;AACpB;AACA;AACA,eAAe;AACf,cAAc,CAAC,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC;AAChC,aAAa;AACb,WAAW,CAAC;AACZ,UAAU,eAAe,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,qBAAqB,GAAG;AACnE,YAAY,IAAI;AAChB,YAAY;AACZ,cAAc,IAAI,EAAE,UAAU;AAC9B,cAAc,UAAU,EAAE,uBAAuB;AACjD,cAAc,QAAQ,EAAE;AACxB,aAAa;AACb,YAAY,CAAC,gBAAgB,EAAE,KAAK,CAAC;AACrC,WAAW;AACX;AACA;AACA,KAAK,EAAE,CAAC,EAAE;AACV,GAAG,EAAE,CAAC;AACN,CAAC;;AAED,MAAMF,eAAa,GAAG,UAAU;AAChC,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK;AACnB,IAAI,MAAM,EAAE,UAAU,GAAG,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK;AACxE,IAAI,MAAM,EAAE,gBAAgB,GAAG,KAAK,EAAE,GAAG,sBAAsB,IAAI,IAAI,EAAE;AACzE,IAAI,MAAM,gBAAgB,GAAG,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACzE,IAAI,MAAM,IAAI,GAAG,QAAQ,mBAAmB,GAAG;AAC/C,MAAM,MAAM;AACZ,MAAM;AACN,QAAQ,UAAU;AAClB,QAAQ,IAAI,EAAE,OAAO;AACrB,QAAQ,UAAU,EAAE,gBAAgB;AACpC,QAAQ,SAAS,EAAE,gBAAgB;AACnC,QAAQ,GAAG,IAAI;AACf,QAAQ;AACR;AACA,KAAK,mBAAmB,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE;AAClD,sBAAsB,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,kBAAkB,GAAG;AAC1E,QAAQ,MAAM;AACd,QAAQ;AACR,UAAU,UAAU;AACpB,UAAU,IAAI,EAAE,OAAO;AACvB,UAAU,UAAU,EAAE,gBAAgB;AACtC,UAAU,SAAS,EAAE,gBAAgB;AACrC,UAAU,GAAG;AACb;AACA,OAAO,EAAE,CAAC;AACV,sBAAsB,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;AAC3E,KAAK,EAAE,CAAC;AACR,IAAI,IAAI,gBAAgB,EAAE;AAC1B,MAAM,OAAO,IAAI;AACjB;AACA,IAAI,uBAAuB,GAAG,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AACtH;AACA,CAAC;AACDA,eAAa,CAAC,WAAW,GAAG,eAAe;;AAE3C,MAAM,sBAAsB,GAAG,aAAa,CAAC;AAC7C,EAAE,aAAa,EAAE,EAAE;AACnB,EAAE,OAAO,EAAE,MAAM;AACjB,IAAI;AACJ,GAAG;AACH,EAAE,UAAU,EAAE,MAAM;AACpB,IAAI;AACJ,GAAG;AACH,EAAE,UAAU,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC/B,EAAE,UAAU,EAAE,EAAE;AAChB,EAAE,QAAQ,EAAE;AACZ,CAAC,CAAC;AACF,MAAMG,gBAAc,GAAG,UAAU;AACjC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK;AAClB,IAAI,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACtE,IAAI,MAAM;AACV,MAAM,iBAAiB;AACvB,MAAM,SAAS;AACf,MAAM,QAAQ;AACd,MAAM,KAAK;AACX,MAAM,SAAS,GAAG,YAAY;AAC9B,MAAM,QAAQ,GAAG,MAAM;AACvB,MAAM,SAAS;AACf,MAAM,eAAe;AACrB,MAAM,GAAG;AACT,KAAK,GAAG,cAAc;AACtB,IAAI,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC1D,IAAI,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC;AACxC,IAAI,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;AACnC,IAAI,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AACpD,IAAI,SAAS,CAAC,MAAM;AACpB,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI;AACtC,QAAQ,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,WAAW,CAAC,IAAI;AAClE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK;AACpB,QAAQ,OAAO,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC;AACzC,OAAO,CAAC;AACR,MAAM,aAAa,CAAC,aAAa,CAAC;AAClC,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;AAClB,IAAI,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,IAAI,KAAK;AAC1C,MAAM,gBAAgB,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,KAAK,EAAE,EAAE,CAAC;AACV,IAAI,MAAM,UAAU,GAAG,WAAW,CAAC,CAAC,IAAI,KAAK;AAC7C,MAAM,gBAAgB;AACtB,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;AACrE,OAAO;AACP,KAAK,EAAE,EAAE,CAAC;AACV,IAAI,SAAS,CAAC,MAAM;AACpB,MAAM,IAAI,UAAU,CAAC,OAAO,EAAE;AAC9B,QAAQ,0BAA0B,CAAC,UAAU,CAAC,OAAO,CAAC;AACtD;AACA,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC;AAClB,IAAI,MAAM,aAAa,GAAG,WAAW;AACrC,MAAM,CAAC,KAAK,KAAK;AACjB,QAAQ,IAAI,UAAU,CAAC,OAAO,EAAE;AAChC,UAAU,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;AACzD;AACA,QAAQ,SAAS,GAAG,KAAK,CAAC;AAC1B,OAAO;AACP,MAAM,CAAC,SAAS;AAChB,KAAK;AACL,IAAI,MAAM,gBAAgB,GAAG,QAAQ,KAAK,UAAU,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,eAAe;AACrG,IAAI,MAAM,KAAK,GAAG,OAAO;AACzB,MAAM,OAAO;AACb,QAAQ,aAAa;AACrB,QAAQ,OAAO;AACf,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ,UAAU;AAClB,QAAQ;AACR,OAAO,CAAC;AACR,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ;AAC3E,KAAK;AACL,IAAI,MAAM,aAAa,GAAG;AAC1B,MAAM,GAAG,KAAK;AACd,MAAM,GAAG;AACT,KAAK;AACL,IAAI,MAAM,iBAAiB,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC;AAC9D,IAAI,MAAM,wBAAwB,GAAG,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE;AACnE,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG;AACxC,KAAK,CAAC;AACN,IAAI,uBAAuB,GAAG,CAAC,sBAAsB,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,kBAAkB,IAAI;AACvG,MAAM,IAAI;AACV,MAAM;AACN,QAAQ,SAAS,EAAE,SAAS,KAAK,YAAY,GAAG,KAAK,GAAG,QAAQ;AAChE,QAAQ,IAAI,EAAE,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ;AACrD,QAAQ,UAAU,EAAE,QAAQ;AAC5B,QAAQ,SAAS,EAAE,iBAAiB;AACpC,QAAQ,KAAK,EAAE,aAAa;AAC5B,QAAQ,GAAG,EAAE,YAAY,CAAC,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AAC5C,QAAQ,IAAI,EAAE,SAAS;AACvB,QAAQ,UAAU,EAAE,SAAS;AAC7B,QAAQ,kBAAkB,EAAE,SAAS;AACrC,QAAQ,YAAY,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,sDAAsD,CAAC;AAC9G,QAAQ,SAAS,EAAE,aAAa;AAChC,QAAQ,GAAG,IAAI;AACf,QAAQ,QAAQ,EAAE;AAClB,0BAA0B,GAAG;AAC7B,YAAY,IAAI;AAChB,YAAY;AACZ,cAAc,GAAG,EAAE,YAAY,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AACvD,cAAc,SAAS,EAAE,wBAAwB;AACjD,cAAc,SAAS,EAAE,SAAS,KAAK,YAAY,GAAG,KAAK,GAAG,QAAQ;AACtE,cAAc,IAAI,EAAE,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ;AAC3D,cAAc,UAAU,EAAE,QAAQ;AAClC,cAAc,IAAI,EAAE,CAAC;AACrB,cAAc,UAAU,EAAE,iBAAiB;AAC3C,cAAc;AACd;AACA,WAAW;AACX,UAAU,gBAAgB,oBAAoB,GAAG;AACjD,YAAY,mBAAmB;AAC/B,YAAY;AACZ,cAAc,SAAS;AACvB,cAAc;AACd;AACA;AACA;AACA;AACA,KAAK,EAAE,CAAC;AACR;AACA,CAAC;AACDA,gBAAc,CAAC,WAAW,GAAG,SAAS;AACtC,MAAMC,SAAO,GAAG,MAAM,CAAC,MAAM,CAACD,gBAAc,EAAE;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAEH,eAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,YAAY,EAAEJ,qBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,UAAU,EAAEC,mBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,MAAM,EAAEC;AACV,CAAC,CAAC;;ACvlBK,SAAS,eAAe,KAAqB,EAAA;AAClD,EAAA,MAAM,aAAa,aAAc,CAAA;AAAA,IAC/B,IAAM,EAAA,SAAA;AAAA,IACN,IAAM,EAAA;AAAA,MACJ,UAAU,KAAM,CAAA,QAAA;AAAA,MAChB,WAAW,KAAM,CAAA,SAAA;AAAA,MACjB,mBAAmB,KAAM,CAAA;AAAA,KAC3B;AAAA,IACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GA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"}
|
package/dist/Toolbar.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { T as Toolbar, b as ToolbarButton, d as ToolbarButtonLink, c as ToolbarButtonToggle, a as ToolbarElement, e as ToolbarSelect, T as default } from './Toolbar-
|
|
1
|
+
export { T as Toolbar, b as ToolbarButton, d as ToolbarButtonLink, c as ToolbarButtonToggle, a as ToolbarElement, e as ToolbarSelect, T as default } from './Toolbar-B7NKUkgL.js';
|
|
2
2
|
//# sourceMappingURL=Toolbar.js.map
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
3
|
import { useTrackingId } from './useTrackingId.js';
|
|
4
4
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb-Bz9MqbHb.js';
|
|
5
|
-
import { T as TooltipTrigger$1, e as TooltipContent$1, f as Tooltip$1 } from './ProgressBar-
|
|
5
|
+
import { T as TooltipTrigger$1, e as TooltipContent$1, f as Tooltip$1 } from './ProgressBar-Dg77Xf_k-CyD-A4pF.js';
|
|
6
6
|
|
|
7
7
|
const TooltipElement = (props) => {
|
|
8
8
|
return /* @__PURE__ */ jsx(Tooltip$1, { ...props });
|
|
@@ -70,4 +70,4 @@ const Tooltip = Object.assign(TooltipElement, {
|
|
|
70
70
|
});
|
|
71
71
|
|
|
72
72
|
export { Tooltip as T, TooltipTrigger as a, TooltipContent as b };
|
|
73
|
-
//# sourceMappingURL=Tooltip-
|
|
73
|
+
//# sourceMappingURL=Tooltip-BcUIIzkM.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip-
|
|
1
|
+
{"version":3,"file":"Tooltip-BcUIIzkM.js","sources":["../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import {\n TooltipProps as CoreTooltipProps,\n Tooltip as CoreTooltip,\n TooltipTrigger as CoreTooltipTrigger,\n TooltipTriggerProps as CoreTooltipTriggerProps,\n TooltipContent as CoreTooltipContent,\n TooltipContentProps as CoreTooltipContentProps,\n childrenToString,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef } from \"react\";\nimport { DataTrackingId } from \"../../types/DataTrackingId\";\nimport { useTrackingId } from \"../../hooks/useTrackingId\";\n\n/**\n * Props for the Tooltip component\n * @property {ComponentPropsWithoutRef<\"div\">[\"children\"]} [children] - The content to be wrapped by the tooltip\n * @property {string} [id] - Unique identifier for the tooltip\n * @property {boolean} [disableShift] - Disables the shift of floating element\n * @property {boolean} [disableFlip] - Disables the flip of floating element\n * @property {boolean} [disableFlipFallback] - Disables the flip cross-axis fallback of floating element\n * @property {boolean} [openOnHover] - Changes interaction to use hover\n * @property {Placement} [placement] - Changes height and positioning for select/combobox\n * @property {boolean} [open] - Controls the open state of the tooltip\n * @property {boolean} [defaultOpen] - Default open state of the tooltip\n * @property {UseFloatingOptions[\"onOpenChange\"]} [onOpenChange] - Callback when open state changes\n * @property {number} [delay] - Delay before showing the tooltip\n * @property {number} [offset] - Offset distance from the trigger element\n * @property {Placement[]} [fallbackPlacements] - Fallback placement options\n * @property {HTMLElement | React.MutableRefObject<HTMLElement | null> | null} [root] - Root element for the tooltip\n * @extends DataTrackingId\n */\nexport type TooltipProps = CoreTooltipProps;\n\n/**\n * Props for the TooltipTrigger component\n * @property {ReactElement} children - The element that triggers the tooltip\n * @extends DataTrackingId\n */\nexport type TooltipTriggerProps = CoreTooltipTriggerProps & DataTrackingId;\n\n/**\n * Props for the TooltipContent component\n */\nexport type TooltipContentProps = CoreTooltipContentProps;\n\nconst TooltipElement = (props: TooltipProps) => {\n return <CoreTooltip {...props} />;\n};\n\n/**\n * TooltipTrigger component that wraps the element that triggers the tooltip.\n *\n * Features:\n * - Wraps any React element to make it a tooltip trigger\n * - Handles mouse and keyboard interactions\n * - Provides proper ARIA attributes for accessibility\n * - Automatic tracking ID generation for analytics\n * - Supports all standard HTML element props\n * - Automatically clones child elements with proper refs\n * - Handles both focusable and non-focusable children\n * - Manages mouse enter/leave events for hover behavior\n *\n * @example\n * <Tooltip.Trigger>\n * <Button>Click me</Button>\n * </Tooltip.Trigger>\n */\nexport const TooltipTrigger = forwardRef(\n (props: TooltipTriggerProps, ref: Ref<HTMLDivElement>) => {\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"TooltipTrigger\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <CoreTooltipTrigger ref={ref} data-tracking-id={trackingId} {...props} />\n );\n },\n);\nTooltipTrigger.displayName = CoreTooltipTrigger.displayName;\n\n/**\n * TooltipContent component that displays the tooltip content.\n *\n * Features:\n * - Displays the tooltip content with proper positioning\n * - Includes an arrow pointing to the trigger element\n * - Supports keyboard navigation and escape key to close\n * - Handles mouse interactions for hover behavior\n * - Accessible with proper ARIA roles\n * - Supports all standard div element props\n * - Automatic focus management for keyboard navigation\n * - Real-time position updates\n * - Handles both string and complex content\n *\n * @example\n * <Tooltip.Content>\n * This tooltip provides helpful context\n * </Tooltip.Content>\n */\nexport const TooltipContent = forwardRef(\n (props: TooltipContentProps, ref: Ref<HTMLDivElement>) => {\n return <CoreTooltipContent ref={ref} {...props} />;\n },\n);\nTooltipContent.displayName = CoreTooltipContent.displayName;\n\n// export const useTooltipContext = useCoreTooltipContext;\n\n/**\n * Tooltip component for displaying contextual information on hover or focus.\n *\n * Features:\n * - Displays contextual information when hovering over or focusing on elements\n * - Supports multiple placement options (top, bottom, left, right)\n * - Automatic positioning with fallback placements\n * - Accessible with proper ARIA roles and keyboard navigation\n * - Supports controlled and uncontrolled open states\n * - Configurable delay and offset settings\n * - Automatic tracking ID generation for analytics\n * - Uses modern Popover API with fallback to legacy implementation\n * - Automatic arrow positioning and rotation\n * - Real-time position updates during scroll and resize\n *\n * @example\n * <Tooltip placement=\"top\" delay={200}>\n * <Tooltip.Trigger>\n * <Button>Hover me</Button>\n * </Tooltip.Trigger>\n * <Tooltip.Content>This is helpful information</Tooltip.Content>\n * </Tooltip>\n */\nexport const Tooltip = Object.assign(TooltipElement, {\n /**\n * TooltipTrigger component that wraps the element that triggers the tooltip.\n *\n * Features:\n * - Wraps any React element to make it a tooltip trigger\n * - Handles mouse and keyboard interactions\n * - Provides proper ARIA attributes for accessibility\n * - Automatic tracking ID generation for analytics\n * - Supports all standard HTML element props\n * - Automatically clones child elements with proper refs\n * - Handles both focusable and non-focusable children\n * - Manages mouse enter/leave events for hover behavior\n *\n * @example\n * <Tooltip.Trigger>\n * <Button>Click me</Button>\n * </Tooltip.Trigger>\n */\n Trigger: TooltipTrigger,\n /**\n * TooltipContent component that displays the tooltip content.\n *\n * Features:\n * - Displays the tooltip content with proper positioning\n * - Includes an arrow pointing to the trigger element\n * - Supports keyboard navigation and escape key to close\n * - Handles mouse interactions for hover behavior\n * - Accessible with proper ARIA roles\n * - Supports all standard div element props\n * - Automatic focus management for keyboard navigation\n * - Real-time position updates\n * - Handles both string and complex content\n *\n * @example\n * <Tooltip.Content>\n * This tooltip provides helpful context\n * </Tooltip.Content>\n */\n Content: TooltipContent,\n});\n"],"names":["CoreTooltip","CoreTooltipTrigger","CoreTooltipContent"],"mappings":";;;;;;AA6CA,MAAM,cAAA,GAAiB,CAAC,KAAwB,KAAA;AAC9C,EAAO,uBAAA,GAAA,CAACA,SAAa,EAAA,EAAA,GAAG,KAAO,EAAA,CAAA;AACjC,CAAA;AAoBO,MAAM,cAAiB,GAAA,UAAA;AAAA,EAC5B,CAAC,OAA4B,GAA6B,KAAA;AACxD,IAAA,MAAM,IAAO,GAAA;AAAA,MACX,QAAA,EAAU,gBAAiB,CAAA,KAAA,CAAM,QAAQ;AAAA,KAC3C;AAEA,IAAA,MAAM,aAAa,aAAc,CAAA;AAAA,MAC/B,IAAM,EAAA,gBAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAa,EAAA,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,2BACGC,gBAAmB,EAAA,EAAA,GAAA,EAAU,kBAAkB,EAAA,UAAA,EAAa,GAAG,KAAO,EAAA,CAAA;AAAA;AAG7E;AACA,cAAA,CAAe,cAAcA,gBAAmB,CAAA,WAAA;AAqBzC,MAAM,cAAiB,GAAA,UAAA;AAAA,EAC5B,CAAC,OAA4B,GAA6B,KAAA;AACxD,IAAA,uBAAQ,GAAA,CAAAC,gBAAA,EAAA,EAAmB,GAAW,EAAA,GAAG,KAAO,EAAA,CAAA;AAAA;AAEpD;AACA,cAAA,CAAe,cAAcA,gBAAmB,CAAA,WAAA;AA2BnC,MAAA,OAAA,GAAU,MAAO,CAAA,MAAA,CAAO,cAAgB,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBnD,OAAS,EAAA,cAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBT,OAAS,EAAA;AACX,CAAC;;;;"}
|
package/dist/Tooltip.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { T as Tooltip, b as TooltipContent, a as TooltipTrigger, T as default } from './Tooltip-
|
|
1
|
+
export { T as Tooltip, b as TooltipContent, a as TooltipTrigger, T as default } from './Tooltip-BcUIIzkM.js';
|
|
2
2
|
//# sourceMappingURL=Tooltip.js.map
|
package/dist/index.js
CHANGED
|
@@ -7,41 +7,41 @@ export { B as Button } from './Button-DMQKV2sV.js';
|
|
|
7
7
|
export { B as ButtonCompound } from './ButtonCompound-DGuF0zzT.js';
|
|
8
8
|
export { B as ButtonLink } from './ButtonLink-B0NJuVk5.js';
|
|
9
9
|
export { B as ButtonToggle } from './ButtonToggle-CKVyEODc.js';
|
|
10
|
-
export { C as Calendar, b as CalendarMonth, e as CalendarMonthButton, c as CalendarNext, a as CalendarNow, d as CalendarPrev, f as CalendarYearButton } from './Calendar-
|
|
10
|
+
export { C as Calendar, b as CalendarMonth, e as CalendarMonthButton, c as CalendarNext, a as CalendarNow, d as CalendarPrev, f as CalendarYearButton } from './Calendar-C099gPDT.js';
|
|
11
11
|
export { C as Card } from './Card-U2IJPk8B.js';
|
|
12
|
-
export { C as Checkbox, a as CheckboxGroup } from './Checkbox-
|
|
12
|
+
export { C as Checkbox, a as CheckboxGroup } from './Checkbox-BEM_rIup.js';
|
|
13
13
|
export { C as Chip } from './Chip-BlLavyIK.js';
|
|
14
|
-
export { C as Combobox, c as ComboboxContent, a as ComboboxElement, i as ComboboxEmpty, g as ComboboxItem, h as ComboboxItemAddNew, f as ComboboxList, d as ComboboxSearchField, b as ComboboxSelect, e as ComboboxSelectTrigger, u as useInfiniteCombobox } from './Combobox-
|
|
15
|
-
export { D as DateField } from './DateField-
|
|
16
|
-
export { D as DateFieldRange } from './DateFieldRange-
|
|
17
|
-
export { D as DateFieldSingle } from './DateFieldSingle-
|
|
18
|
-
export { D as DaysOfTheWeek } from './DaysOfTheWeek-
|
|
14
|
+
export { C as Combobox, c as ComboboxContent, a as ComboboxElement, i as ComboboxEmpty, g as ComboboxItem, h as ComboboxItemAddNew, f as ComboboxList, d as ComboboxSearchField, b as ComboboxSelect, e as ComboboxSelectTrigger, u as useInfiniteCombobox } from './Combobox-mdEmKiV9.js';
|
|
15
|
+
export { D as DateField } from './DateField-Cwvw5EXY.js';
|
|
16
|
+
export { D as DateFieldRange } from './DateFieldRange-BmokKaNf.js';
|
|
17
|
+
export { D as DateFieldSingle } from './DateFieldSingle-BlKlfasz.js';
|
|
18
|
+
export { D as DaysOfTheWeek } from './DaysOfTheWeek-CnTEWxtN.js';
|
|
19
19
|
export { D as Details, b as DetailsContent, a as DetailsSummary } from './Details-DVg0EOkv.js';
|
|
20
|
-
export { D as Dialog, d as DialogCancelButton, c as DialogContent, b as DialogFooter, a as DialogHeader } from './Dialog-
|
|
20
|
+
export { D as Dialog, d as DialogCancelButton, c as DialogContent, b as DialogFooter, a as DialogHeader } from './Dialog-CTf90W9W.js';
|
|
21
21
|
export { D as Divider } from './Divider-CN36wX4s.js';
|
|
22
22
|
export { D as Dnd } from './index-CKfiQx8n-4nziUo7G.js';
|
|
23
23
|
export { D as DndSort, a as DndSortCard, b as DndSortZone } from './DndSort-Cl0FCNQm.js';
|
|
24
|
-
export { D as Drawer, a as DrawerCancelButton, d as DrawerContent, b as DrawerFooter, c as DrawerHeader } from './Drawer-
|
|
24
|
+
export { D as Drawer, a as DrawerCancelButton, d as DrawerContent, b as DrawerFooter, c as DrawerHeader } from './Drawer-BmyhW9rQ.js';
|
|
25
25
|
export { E as EditCard } from './EditCard-C0hD1VPA.js';
|
|
26
26
|
export { F as FieldMessage } from './FieldMessage-DkJ0K5s-.js';
|
|
27
27
|
export { F as Flex } from './Flex-Ln6PmaDl.js';
|
|
28
28
|
export { G as Grid } from './Grid-CMcDeSYT.js';
|
|
29
29
|
export { I as Icon } from './Icon-BgKqBmlj.js';
|
|
30
|
-
export { I as InputMask } from './InputMask-
|
|
30
|
+
export { I as InputMask } from './InputMask-CzTlJ1ya.js';
|
|
31
31
|
export { L as Layout, a as LayoutElement, b as LayoutItem } from './Layout-CUUb2PVr.js';
|
|
32
32
|
export { L as Link } from './Link-DZa0wmkA.js';
|
|
33
33
|
export { L as Listbox, a as ListboxOption, b as ListboxOptionGroup } from './Listbox-dVARiucB.js';
|
|
34
|
-
export { L as ListView, a as ListViewOption, b as ListViewOptionCell } from './ListView-
|
|
35
|
-
export { M as Menu, a as MenuItem } from './Menu-
|
|
34
|
+
export { L as ListView, a as ListViewOption, b as ListViewOptionCell } from './ListView-CULEOIJt.js';
|
|
35
|
+
export { M as Menu, a as MenuItem } from './Menu-C9fOIYH7.js';
|
|
36
36
|
export { O as Overflow, a as OverflowText } from './Overflow-B6rIOkAI.js';
|
|
37
|
-
export { P as Page } from './Page
|
|
38
|
-
export { P as Popover, d as PopoverButton, c as PopoverClose, b as PopoverContent, a as PopoverTrigger } from './Popover-
|
|
39
|
-
export { P as ProgressBar } from './ProgressBar-
|
|
40
|
-
export { R as Radio, a as RadioGroup } from './Radio-
|
|
37
|
+
export { P as Page } from './Page--tqLz6hu.js';
|
|
38
|
+
export { P as Popover, d as PopoverButton, c as PopoverClose, b as PopoverContent, a as PopoverTrigger } from './Popover-DVPij2bz.js';
|
|
39
|
+
export { P as ProgressBar } from './ProgressBar-DOtekmJS.js';
|
|
40
|
+
export { R as Radio, a as RadioGroup } from './Radio-BpE1s8OT.js';
|
|
41
41
|
export { S as SearchField } from './SearchField-BQY7LHe2.js';
|
|
42
42
|
export { S as SegmentedControl, a as SegmentedControlSegment } from './SegmentedControl-DKMQuf7s.js';
|
|
43
|
-
export { S as SelectCard, b as SelectCardElement, a as SelectCardGroup } from './SelectCardGroup-
|
|
44
|
-
export { S as SelectTrigger } from './SelectTrigger-
|
|
43
|
+
export { S as SelectCard, b as SelectCardElement, a as SelectCardGroup } from './SelectCardGroup-BVGPNZft.js';
|
|
44
|
+
export { S as SelectTrigger } from './SelectTrigger-DMMw_LkZ.js';
|
|
45
45
|
export { S as SideNav, a as SideNavCollapsible, b as SideNavGroup, c as SideNavLink } from './SideNav-DEoGpeqJ.js';
|
|
46
46
|
export { S as Skeleton, a as SkeletonCircle, b as SkeletonPill, c as SkeletonRectangle, d as SkeletonText } from './Skeleton-COxTdwjO.js';
|
|
47
47
|
export { S as Spinner } from './Spinner-C1r3COiQ.js';
|
|
@@ -50,11 +50,11 @@ export { S as Stepper, d as StepperFinalPanel, a as StepperList, e as StepperNex
|
|
|
50
50
|
export { S as Switch } from './Switch-DAQFzi-X.js';
|
|
51
51
|
export { T as Tab, a as TabButton, b as TabList, c as TabPanel } from './Tab-BSC7e4rM.js';
|
|
52
52
|
export { T as Text } from './Text-B91g6xKn.js';
|
|
53
|
-
export { T as Textarea } from './Textarea-
|
|
54
|
-
export { T as TextField } from './TextField-
|
|
55
|
-
export { T as Toaster, t as toast } from './toast-
|
|
56
|
-
export { T as Toolbar, b as ToolbarButton, d as ToolbarButtonLink, c as ToolbarButtonToggle, a as ToolbarElement, e as ToolbarSelect } from './Toolbar-
|
|
57
|
-
export { T as Tooltip, b as TooltipContent, a as TooltipTrigger } from './Tooltip-
|
|
53
|
+
export { T as Textarea } from './Textarea-6omWLtXb.js';
|
|
54
|
+
export { T as TextField } from './TextField-DoqYMou3.js';
|
|
55
|
+
export { T as Toaster, t as toast } from './toast-ByZDutpT.js';
|
|
56
|
+
export { T as Toolbar, b as ToolbarButton, d as ToolbarButtonLink, c as ToolbarButtonToggle, a as ToolbarElement, e as ToolbarSelect } from './Toolbar-B7NKUkgL.js';
|
|
57
|
+
export { T as Tooltip, b as TooltipContent, a as TooltipTrigger } from './Tooltip-BcUIIzkM.js';
|
|
58
58
|
export { u as useAccessibleColor } from './useAccessibleColor-Dc6B_M-Z-BYKjkGRg.js';
|
|
59
59
|
export { u as useBreakpoint } from './useBreakpoint-7QkBkSeP-Cv5fnZxs.js';
|
|
60
60
|
export { u as useLinkStyles } from './Link-Dqp_XXl_-Bv20l_tY.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef, useRef, useState, useEffect } from 'react';
|
|
3
3
|
import { u as useMergeRefs } from './useMergeRefs-Bde85AWI-Bde85AWI.js';
|
|
4
|
-
import { h as Toaster$1, t as toast$1 } from './ProgressBar-
|
|
4
|
+
import { h as Toaster$1, t as toast$1 } from './ProgressBar-Dg77Xf_k-CyD-A4pF.js';
|
|
5
5
|
|
|
6
6
|
const SHADOW_HOST_DATA_ATTRS = "[data-mfe-portal-name], [data-mfe-name]";
|
|
7
7
|
const Toaster = forwardRef(
|
|
@@ -93,4 +93,4 @@ Toaster.displayName = Toaster$1.displayName;
|
|
|
93
93
|
const toast = toast$1;
|
|
94
94
|
|
|
95
95
|
export { Toaster as T, toast as t };
|
|
96
|
-
//# sourceMappingURL=toast-
|
|
96
|
+
//# sourceMappingURL=toast-ByZDutpT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-CWVuLkyv.js","sources":["../src/components/Toast/Toaster.tsx","../src/components/Toast/toast.ts"],"sourcesContent":["import {\n ToasterProps as HammerToasterProps,\n Toaster as HammerToaster,\n useMergeRefs,\n ToastEventType,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef, useEffect, useRef, useState } from \"react\";\n\nconst SHADOW_HOST_DATA_ATTRS = \"[data-mfe-portal-name], [data-mfe-name]\";\n\n/**\n * Props for the Toaster component\n * @property {number | false} [duration] - Timeout, in ms, before toasts auto-closes. If set to false, toasts will not auto-close\n * @property {string} id - Unique toaster id\n * @property {(toastEvent: ToastEventType) => void} [onToastEvent] - Callback function that is called when toasts are added, updated, or dismissed\n * @property {number | false} [duration] - Duration of the toast in milliseconds. If set to false, the toast will not auto-dismiss\n * @property {string} [focusKey] - How a screen-reader will announce the hotkey used to set focus on the first toast\n * @property {number} [toastsBeforeStack] - How many toasts to display before they start stacking\n * @extends Omit<HammerToasterProps, \"disableEvents\" | \"duration\">\n */\nexport type ToasterProps = Omit<\n HammerToasterProps,\n \"disableEvents\" | \"duration\"\n> & {\n /**\n * Timeout, in ms, before toasts auto-closes. If set to false, toasts will not auto-close.\n * @deprecated The monolith toaster controls the duration of toasts. This prop should not be used in other cases.\n * @default false\n */\n duration?: number | false;\n};\n\n/**\n * Toaster component for managing and displaying toast notifications with anvil2-specific features.\n *\n * Features:\n * - Manages multiple toast notifications in a stack\n * - Handles toast positioning and stacking behavior\n * - Supports custom events for toast management\n * - Automatic toast dismissal with configurable duration\n * - Keyboard navigation and accessibility support\n * - Dialog-aware positioning for modal contexts\n * - Session storage for dialog toaster state\n * - Custom event system for toast lifecycle management\n * - Responsive design with mobile support\n * - Automatic tracking ID generation for analytics\n * - Monolith toaster integration and coordination\n * - Shadow DOM support for micro-frontend environments\n * - A1 toast group compatibility and positioning\n *\n * @example\n * <Toaster\n * id=\"main-toaster\"\n * duration={5000}\n * toastsBeforeStack={3}\n * onToastEvent={(event) => console.log('Toast event:', event)}\n * />\n *\n * @example\n * <Toaster\n * id=\"dialog-toaster\"\n * disableEvents={false}\n * focusKey=\"t\"\n * />\n */\nexport const Toaster = forwardRef(\n (\n { onToastEvent, ...props }: HammerToasterProps,\n ref: Ref<HTMLDivElement>,\n ) => {\n const { id } = props;\n\n const toasterRef = useRef<HTMLDivElement>(null);\n const mergedToasterRef = useMergeRefs([toasterRef, ref]);\n\n const [shouldDisableEvents, setShouldDisableEvents] =\n useState<boolean>(false);\n\n useEffect(() => {\n const toasters = document.querySelectorAll(\"[data-anv='toaster']\");\n const shadowToasters =\n (\n toasterRef.current?.getRootNode() as Document | ShadowRoot\n )?.querySelectorAll(\"[data-anv='toaster']\") || [];\n\n // Toaster(s) exist in the document, bail out if this toaster is not the first one\n if (\n toasters.length &&\n id !== toasters[0].getAttribute(\"data-toaster-id\")\n ) {\n setShouldDisableEvents(true);\n } else if (\n // Toaster(s) exist in the shadow dom, bail out if this toaster is not the first one\n shadowToasters.length &&\n id !== shadowToasters[0].getAttribute(\"data-toaster-id\")\n ) {\n setShouldDisableEvents(true);\n }\n }, [id]);\n\n const a1ToastGroupObserver = useRef<MutationObserver | null>(null);\n const a1ToastGroupObserverConnected = useRef<boolean>(false);\n const [a1ToastGroups, setA1ToastGroups] = useState<Element[]>([]);\n const [toastCount, setToastCount] = useState<number>(0);\n\n const handleToastEvent = (event: ToastEventType) => {\n const { toastCount: newToastCount } = event;\n setToastCount(newToastCount);\n onToastEvent?.(event);\n };\n\n const updateA1ToastGroups = () => {\n const mfeRoots = document.querySelectorAll(SHADOW_HOST_DATA_ATTRS);\n const a1ToastGroupsLocal = [\n ...document.getElementsByClassName(\"ToastGroup\"),\n ];\n\n if (mfeRoots.length > 0) {\n mfeRoots.forEach((el) => {\n setTimeout(() => {\n if (el.shadowRoot) {\n a1ToastGroupsLocal.push(\n ...el.shadowRoot.querySelectorAll(\".ToastGroup\"),\n );\n }\n setA1ToastGroups(a1ToastGroupsLocal);\n });\n });\n } else {\n setA1ToastGroups(a1ToastGroupsLocal);\n }\n };\n\n useEffect(() => {\n // set mutation observer for a1 toasts after initial render\n a1ToastGroupObserver.current = new MutationObserver(updateA1ToastGroups);\n }, []);\n\n /*\n Listen for any new A1 Toast Groups to adjust styles and\n prevent overlapping.\n */\n useEffect(() => {\n if (a1ToastGroupObserver.current !== null) {\n if (toastCount > 0 && a1ToastGroupObserverConnected.current === false) {\n // listen for any new a1 toasts\n a1ToastGroupObserver.current.observe(document.body, {\n childList: true,\n subtree: true,\n });\n a1ToastGroupObserverConnected.current = true;\n\n // account for already existing a1 toasts\n updateA1ToastGroups();\n } else if (\n toastCount === 0 &&\n a1ToastGroupObserverConnected.current === true\n ) {\n a1ToastGroupObserver.current.disconnect();\n a1ToastGroupObserverConnected.current = false;\n }\n }\n }, [toastCount]);\n\n useEffect(() => {\n if (a1ToastGroups && a1ToastGroups.length > 0) {\n const toasterHeight =\n toasterRef.current?.firstElementChild?.getBoundingClientRect()\n .height as number;\n a1ToastGroups.forEach((group) => {\n (group as HTMLDivElement).style.top =\n toastCount === 0 ? \"16px\" : `calc(${toasterHeight}px + 2.5rem)`;\n });\n }\n // eslint-disable-next-line\n }, [a1ToastGroups.length, toastCount]);\n\n return (\n <HammerToaster\n {...props}\n onToastEvent={handleToastEvent}\n disableEvents={shouldDisableEvents}\n ref={mergedToasterRef}\n />\n );\n },\n);\n\nToaster.displayName = HammerToaster.displayName;\n","import {\n toast as coreToast,\n toastProps as coreToastProps,\n} from \"@servicetitan/hammer-react\";\n\n/**\n * Props for creating toast notifications\n * @property {string} id - Unique identifier for the toast\n * @property {AlertProps[\"status\"]} status - Visual status of the toast (info, success, warning, danger)\n * @property {string} title - Title text displayed in the toast\n * @property {string} [message] - Additional message content to display below the title\n * @property {number | false} [duration] - Duration in milliseconds before auto-dismiss. Set to false to disable auto-dismiss\n * @property {ToastAction & { secondary?: ToastAction }} [actions] - Action buttons to display in the toast\n * @property {ProgressBarProps[\"value\"] | \"indeterminate\"} [progress] - Progress bar value or indeterminate state\n * @property {() => void} [onDismiss] - Callback function called when toast is dismissed, expired, or closed\n * @property {() => void} [onClose] - Callback function called only when the close button is clicked\n * @property {string} [toasterId] - ID of the specific toaster to display the toast in\n */\nexport type toastProps = coreToastProps;\n\n/**\n * Toast utility functions for creating and managing toast notifications.\n *\n * Features:\n * - Create toast notifications with various status types\n * - Update existing toasts with new content\n * - Dismiss individual toasts or all toasts\n * - Support for action buttons and progress bars\n * - Automatic tracking ID generation for analytics\n * - Integration with anvil2 toaster system\n *\n * @example\n * toast.success({\n * id: \"success-toast\",\n * title: \"Success!\",\n * message: \"Your changes have been saved.\"\n * });\n */\nexport const toast = coreToast;\n"],"names":["HammerToaster","coreToast"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toast-ByZDutpT.js","sources":["../src/components/Toast/Toaster.tsx","../src/components/Toast/toast.ts"],"sourcesContent":["import {\n ToasterProps as HammerToasterProps,\n Toaster as HammerToaster,\n useMergeRefs,\n ToastEventType,\n} from \"@servicetitan/hammer-react\";\nimport { Ref, forwardRef, useEffect, useRef, useState } from \"react\";\n\nconst SHADOW_HOST_DATA_ATTRS = \"[data-mfe-portal-name], [data-mfe-name]\";\n\n/**\n * Props for the Toaster component\n * @property {number | false} [duration] - Timeout, in ms, before toasts auto-closes. If set to false, toasts will not auto-close\n * @property {string} id - Unique toaster id\n * @property {(toastEvent: ToastEventType) => void} [onToastEvent] - Callback function that is called when toasts are added, updated, or dismissed\n * @property {number | false} [duration] - Duration of the toast in milliseconds. If set to false, the toast will not auto-dismiss\n * @property {string} [focusKey] - How a screen-reader will announce the hotkey used to set focus on the first toast\n * @property {number} [toastsBeforeStack] - How many toasts to display before they start stacking\n * @extends Omit<HammerToasterProps, \"disableEvents\" | \"duration\">\n */\nexport type ToasterProps = Omit<\n HammerToasterProps,\n \"disableEvents\" | \"duration\"\n> & {\n /**\n * Timeout, in ms, before toasts auto-closes. If set to false, toasts will not auto-close.\n * @deprecated The monolith toaster controls the duration of toasts. This prop should not be used in other cases.\n * @default false\n */\n duration?: number | false;\n};\n\n/**\n * Toaster component for managing and displaying toast notifications with anvil2-specific features.\n *\n * Features:\n * - Manages multiple toast notifications in a stack\n * - Handles toast positioning and stacking behavior\n * - Supports custom events for toast management\n * - Automatic toast dismissal with configurable duration\n * - Keyboard navigation and accessibility support\n * - Dialog-aware positioning for modal contexts\n * - Session storage for dialog toaster state\n * - Custom event system for toast lifecycle management\n * - Responsive design with mobile support\n * - Automatic tracking ID generation for analytics\n * - Monolith toaster integration and coordination\n * - Shadow DOM support for micro-frontend environments\n * - A1 toast group compatibility and positioning\n *\n * @example\n * <Toaster\n * id=\"main-toaster\"\n * duration={5000}\n * toastsBeforeStack={3}\n * onToastEvent={(event) => console.log('Toast event:', event)}\n * />\n *\n * @example\n * <Toaster\n * id=\"dialog-toaster\"\n * disableEvents={false}\n * focusKey=\"t\"\n * />\n */\nexport const Toaster = forwardRef(\n (\n { onToastEvent, ...props }: HammerToasterProps,\n ref: Ref<HTMLDivElement>,\n ) => {\n const { id } = props;\n\n const toasterRef = useRef<HTMLDivElement>(null);\n const mergedToasterRef = useMergeRefs([toasterRef, ref]);\n\n const [shouldDisableEvents, setShouldDisableEvents] =\n useState<boolean>(false);\n\n useEffect(() => {\n const toasters = document.querySelectorAll(\"[data-anv='toaster']\");\n const shadowToasters =\n (\n toasterRef.current?.getRootNode() as Document | ShadowRoot\n )?.querySelectorAll(\"[data-anv='toaster']\") || [];\n\n // Toaster(s) exist in the document, bail out if this toaster is not the first one\n if (\n toasters.length &&\n id !== toasters[0].getAttribute(\"data-toaster-id\")\n ) {\n setShouldDisableEvents(true);\n } else if (\n // Toaster(s) exist in the shadow dom, bail out if this toaster is not the first one\n shadowToasters.length &&\n id !== shadowToasters[0].getAttribute(\"data-toaster-id\")\n ) {\n setShouldDisableEvents(true);\n }\n }, [id]);\n\n const a1ToastGroupObserver = useRef<MutationObserver | null>(null);\n const a1ToastGroupObserverConnected = useRef<boolean>(false);\n const [a1ToastGroups, setA1ToastGroups] = useState<Element[]>([]);\n const [toastCount, setToastCount] = useState<number>(0);\n\n const handleToastEvent = (event: ToastEventType) => {\n const { toastCount: newToastCount } = event;\n setToastCount(newToastCount);\n onToastEvent?.(event);\n };\n\n const updateA1ToastGroups = () => {\n const mfeRoots = document.querySelectorAll(SHADOW_HOST_DATA_ATTRS);\n const a1ToastGroupsLocal = [\n ...document.getElementsByClassName(\"ToastGroup\"),\n ];\n\n if (mfeRoots.length > 0) {\n mfeRoots.forEach((el) => {\n setTimeout(() => {\n if (el.shadowRoot) {\n a1ToastGroupsLocal.push(\n ...el.shadowRoot.querySelectorAll(\".ToastGroup\"),\n );\n }\n setA1ToastGroups(a1ToastGroupsLocal);\n });\n });\n } else {\n setA1ToastGroups(a1ToastGroupsLocal);\n }\n };\n\n useEffect(() => {\n // set mutation observer for a1 toasts after initial render\n a1ToastGroupObserver.current = new MutationObserver(updateA1ToastGroups);\n }, []);\n\n /*\n Listen for any new A1 Toast Groups to adjust styles and\n prevent overlapping.\n */\n useEffect(() => {\n if (a1ToastGroupObserver.current !== null) {\n if (toastCount > 0 && a1ToastGroupObserverConnected.current === false) {\n // listen for any new a1 toasts\n a1ToastGroupObserver.current.observe(document.body, {\n childList: true,\n subtree: true,\n });\n a1ToastGroupObserverConnected.current = true;\n\n // account for already existing a1 toasts\n updateA1ToastGroups();\n } else if (\n toastCount === 0 &&\n a1ToastGroupObserverConnected.current === true\n ) {\n a1ToastGroupObserver.current.disconnect();\n a1ToastGroupObserverConnected.current = false;\n }\n }\n }, [toastCount]);\n\n useEffect(() => {\n if (a1ToastGroups && a1ToastGroups.length > 0) {\n const toasterHeight =\n toasterRef.current?.firstElementChild?.getBoundingClientRect()\n .height as number;\n a1ToastGroups.forEach((group) => {\n (group as HTMLDivElement).style.top =\n toastCount === 0 ? \"16px\" : `calc(${toasterHeight}px + 2.5rem)`;\n });\n }\n // eslint-disable-next-line\n }, [a1ToastGroups.length, toastCount]);\n\n return (\n <HammerToaster\n {...props}\n onToastEvent={handleToastEvent}\n disableEvents={shouldDisableEvents}\n ref={mergedToasterRef}\n />\n );\n },\n);\n\nToaster.displayName = HammerToaster.displayName;\n","import {\n toast as coreToast,\n toastProps as coreToastProps,\n} from \"@servicetitan/hammer-react\";\n\n/**\n * Props for creating toast notifications\n * @property {string} id - Unique identifier for the toast\n * @property {AlertProps[\"status\"]} status - Visual status of the toast (info, success, warning, danger)\n * @property {string} title - Title text displayed in the toast\n * @property {string} [message] - Additional message content to display below the title\n * @property {number | false} [duration] - Duration in milliseconds before auto-dismiss. Set to false to disable auto-dismiss\n * @property {ToastAction & { secondary?: ToastAction }} [actions] - Action buttons to display in the toast\n * @property {ProgressBarProps[\"value\"] | \"indeterminate\"} [progress] - Progress bar value or indeterminate state\n * @property {() => void} [onDismiss] - Callback function called when toast is dismissed, expired, or closed\n * @property {() => void} [onClose] - Callback function called only when the close button is clicked\n * @property {string} [toasterId] - ID of the specific toaster to display the toast in\n */\nexport type toastProps = coreToastProps;\n\n/**\n * Toast utility functions for creating and managing toast notifications.\n *\n * Features:\n * - Create toast notifications with various status types\n * - Update existing toasts with new content\n * - Dismiss individual toasts or all toasts\n * - Support for action buttons and progress bars\n * - Automatic tracking ID generation for analytics\n * - Integration with anvil2 toaster system\n *\n * @example\n * toast.success({\n * id: \"success-toast\",\n * title: \"Success!\",\n * message: \"Your changes have been saved.\"\n * });\n */\nexport const toast = coreToast;\n"],"names":["HammerToaster","coreToast"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@servicetitan/anvil2",
|
|
3
|
-
"version": "1.40.
|
|
3
|
+
"version": "1.40.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"types": "./dist/index.d.ts",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"@servicetitan/anvil-fonts": ">=14",
|
|
27
27
|
"classnames": "^2.5.1",
|
|
28
28
|
"@servicetitan/hammer-icon": "1.2.0",
|
|
29
|
-
"@servicetitan/hammer-react": "1.38.
|
|
29
|
+
"@servicetitan/hammer-react": "1.38.1",
|
|
30
30
|
"@servicetitan/hammer-token": "2.4.0"
|
|
31
31
|
},
|
|
32
32
|
"peerDependencies": {
|