@servicetitan/anvil2 3.15.2 → 3.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/dist/{AiMark-N8UfGfcV.js → AiMark-BfmK30vL.js} +2 -2
- package/dist/{AiMark-N8UfGfcV.js.map → AiMark-BfmK30vL.js.map} +1 -1
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-DTKIlitZ.js → Alert-lLo1N7Tj.js} +2 -2
- package/dist/{Alert-DTKIlitZ.js.map → Alert-lLo1N7Tj.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-Cnz80WGx.js → Announcement-PfnsVVz1.js} +5 -2
- package/dist/Announcement-PfnsVVz1.js.map +1 -0
- package/dist/Announcement.js +1 -1
- package/dist/{Breadcrumbs-B8UGx4Mq.js → Breadcrumbs-RdL4Fvmu.js} +2 -2
- package/dist/{Breadcrumbs-B8UGx4Mq.js.map → Breadcrumbs-RdL4Fvmu.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Calendar-Cv07q_tE.js → Calendar-DoLRAWLp.js} +2 -2
- package/dist/{Calendar-Cv07q_tE.js.map → Calendar-DoLRAWLp.js.map} +1 -1
- package/dist/{Calendar-CpmaI3b6.js → Calendar-IzXG1aJw.js} +2 -2
- package/dist/{Calendar-CpmaI3b6.js.map → Calendar-IzXG1aJw.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-cB0D9W0a.js → Checkbox-CVxbe-iN.js} +3 -3
- package/dist/{Checkbox-cB0D9W0a.js.map → Checkbox-CVxbe-iN.js.map} +1 -1
- package/dist/{Checkbox-jomKCuAj.js → Checkbox-U-kuWhgc.js} +2 -2
- package/dist/{Checkbox-jomKCuAj.js.map → Checkbox-U-kuWhgc.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-DivZ3OuB.js → Chip-2OydLs66.js} +2 -2
- package/dist/{Chip-DivZ3OuB.js.map → Chip-2OydLs66.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-_XXxSbvH.js → DataTable-DIXP9-Bx.js} +7 -7
- package/dist/{DataTable-_XXxSbvH.js.map → DataTable-DIXP9-Bx.js.map} +1 -1
- package/dist/{DateFieldRange-31zIfcR2.js → DateFieldRange-X2jdOTYY.js} +4 -4
- package/dist/{DateFieldRange-31zIfcR2.js.map → DateFieldRange-X2jdOTYY.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-DDFe1inZ.js → DateFieldSingle-BJ16tpOz.js} +4 -4
- package/dist/{DateFieldSingle-DDFe1inZ.js.map → DateFieldSingle-BJ16tpOz.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-Cv34myLZ.js → DateFieldYearless-CMm8vtz_.js} +4 -4
- package/dist/{DateFieldYearless-Cv34myLZ.js.map → DateFieldYearless-CMm8vtz_.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-D_ftkt3w.js → DateFieldYearlessRange-BHHs-Z1Q.js} +3 -3
- package/dist/{DateFieldYearlessRange-D_ftkt3w.js.map → DateFieldYearlessRange-BHHs-Z1Q.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-D4tUHUay.js → DaysOfTheWeek-BHXxs0Bo.js} +2 -2
- package/dist/{DaysOfTheWeek-D4tUHUay.js.map → DaysOfTheWeek-BHXxs0Bo.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-B2QAFibn.js → Dialog-_tHqOsbr.js} +4 -4
- package/dist/{Dialog-B2QAFibn.js.map → Dialog-_tHqOsbr.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/{Drawer-CBIOWwh3.js → Drawer-D-ThWNp0.js} +4 -4
- package/dist/{Drawer-CBIOWwh3.js.map → Drawer-D-ThWNp0.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-Q6WlsM4O.js → EditCard-B6l2vhBS.js} +2 -2
- package/dist/{EditCard-Q6WlsM4O.js.map → EditCard-B6l2vhBS.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-FsNIjn8T.js → FieldLabel-ThEmUiAq.js} +2 -2
- package/dist/{FieldLabel-FsNIjn8T.js.map → FieldLabel-ThEmUiAq.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/{FilterBar-PXv7_svO.js → FilterBar-jFn8O7v7.js} +18 -16
- package/dist/FilterBar-jFn8O7v7.js.map +1 -0
- package/dist/FilterBar.js +1 -1
- package/dist/{InputMask-BgZX650-.js → InputMask-BQigi5oW.js} +3 -3
- package/dist/{InputMask-BgZX650-.js.map → InputMask-BQigi5oW.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-aRwUEGI3.js → ListView-YJscfG4x.js} +2 -2
- package/dist/{ListView-aRwUEGI3.js.map → ListView-YJscfG4x.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-BCszel4v.js → Listbox-CD9ZptSZ.js} +2 -2
- package/dist/{Listbox-BCszel4v.js.map → Listbox-CD9ZptSZ.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-DY5wr7cT.js → MultiSelectFieldSync-DuImKXuj.js} +6 -6
- package/dist/{MultiSelectFieldSync-DY5wr7cT.js.map → MultiSelectFieldSync-DuImKXuj.js.map} +1 -1
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-D3sfHivW.js → MultiSelectMenuSync-BhNXsgAN.js} +4 -4
- package/dist/{MultiSelectMenuSync-D3sfHivW.js.map → MultiSelectMenuSync-BhNXsgAN.js.map} +1 -1
- package/dist/{NumberField-CrvEEy_h.js → NumberField-CxmJx4gs.js} +3 -3
- package/dist/{NumberField-CrvEEy_h.js.map → NumberField-CxmJx4gs.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-CS6x6C7Y.js → Page-ZSHNJs7z.js} +8 -8
- package/dist/{Page-CS6x6C7Y.js.map → Page-ZSHNJs7z.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-DianLtHs.js → Pagination-Bsl99RRI.js} +5 -3
- package/dist/{Pagination-DianLtHs.js.map → Pagination-Bsl99RRI.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-BsEwcuu4.js → Popover-CIh1CsoJ.js} +2 -2
- package/dist/{Popover-BsEwcuu4.js.map → Popover-CIh1CsoJ.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-0pebwBJ0.js → ProgressBar-zPKYv4Il.js} +11 -14
- package/dist/ProgressBar-zPKYv4Il.js.map +1 -0
- package/dist/ProgressBar.css +10 -14
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-BxXN612_.js → Radio-BYowelK2.js} +3 -3
- package/dist/{Radio-BxXN612_.js.map → Radio-BYowelK2.js.map} +1 -1
- package/dist/{Radio-CU2--1uW.js → Radio-C1VnatcL.js} +2 -2
- package/dist/{Radio-CU2--1uW.js.map → Radio-C1VnatcL.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{RichTextEditor-Dnc7vOjq.js → RichTextEditor-DcAVqd2d.js} +8 -8
- package/dist/{RichTextEditor-Dnc7vOjq.js.map → RichTextEditor-DcAVqd2d.js.map} +1 -1
- package/dist/RichTextEditor.js +1 -1
- package/dist/{SavedFiltersButton-BWlE7UnI.js → SavedFiltersButton-Bl8mr-LB.js} +9 -9
- package/dist/{SavedFiltersButton-BWlE7UnI.js.map → SavedFiltersButton-Bl8mr-LB.js.map} +1 -1
- package/dist/SavedFiltersButton.js +1 -1
- package/dist/{SelectCard-D2PAyR7T.js → SelectCard-DrmMU_GD.js} +3 -3
- package/dist/{SelectCard-D2PAyR7T.js.map → SelectCard-DrmMU_GD.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-BXJJQ0zt.js → SelectFieldLabel-BxsKvfqo.js} +2 -2
- package/dist/{SelectFieldLabel-BXJJQ0zt.js.map → SelectFieldLabel-BxsKvfqo.js.map} +1 -1
- package/dist/{SelectFieldSync-CkWoMhrv.js → SelectFieldSync-SS7FELT3.js} +5 -5
- package/dist/{SelectFieldSync-CkWoMhrv.js.map → SelectFieldSync-SS7FELT3.js.map} +1 -1
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-C-6mULc_.js → SelectMenuSync-CPpE6vUG.js} +4 -4
- package/dist/{SelectMenuSync-C-6mULc_.js.map → SelectMenuSync-CPpE6vUG.js.map} +1 -1
- package/dist/{SelectOptions-pAkVhulQ.js → SelectOptions-BDAu_9dv.js} +2 -2
- package/dist/{SelectOptions-pAkVhulQ.js.map → SelectOptions-BDAu_9dv.js.map} +1 -1
- package/dist/{SelectTrigger-B9WUUdIu.js → SelectTrigger-B5h-aqhl.js} +2 -2
- package/dist/{SelectTrigger-B9WUUdIu.js.map → SelectTrigger-B5h-aqhl.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-Dq7QDlPS.js → SelectTriggerBase-SML2Mlt-.js} +3 -3
- package/dist/{SelectTriggerBase-Dq7QDlPS.js.map → SelectTriggerBase-SML2Mlt-.js.map} +1 -1
- package/dist/{Switch-BS4bw5KF.js → Switch-1iNdXTik.js} +2 -2
- package/dist/{Switch-BS4bw5KF.js.map → Switch-1iNdXTik.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-B_-Ldn9K.js → Text-rihxXHSe.js} +2 -2
- package/dist/{Text-B_-Ldn9K.js.map → Text-rihxXHSe.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-B6tVKoxq.js → TextField-Bxd-Qzoi.js} +2 -2
- package/dist/{TextField-B6tVKoxq.js.map → TextField-Bxd-Qzoi.js.map} +1 -1
- package/dist/{TextField-DxQ6-IhP.js → TextField-vuS7xeo-.js} +3 -3
- package/dist/{TextField-DxQ6-IhP.js.map → TextField-vuS7xeo-.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-oChzBuWz.js → Textarea-ppapJUwh.js} +3 -3
- package/dist/{Textarea-oChzBuWz.js.map → Textarea-ppapJUwh.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-Dq7l8xNU.js → TimeField-Hwt_oRbg.js} +4 -4
- package/dist/{TimeField-Dq7l8xNU.js.map → TimeField-Hwt_oRbg.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-oK4dSBPK.js → Toaster-SqkX0Kes.js} +3 -3
- package/dist/{Toaster-oK4dSBPK.js.map → Toaster-SqkX0Kes.js.map} +1 -1
- package/dist/{Toaster-CsZkAOVn.js → Toaster-dVGVVcat.js} +2 -2
- package/dist/{Toaster-CsZkAOVn.js.map → Toaster-dVGVVcat.js.map} +1 -1
- package/dist/{Toolbar-Bp-A2P4L.js → Toolbar-CMulzswf.js} +3 -3
- package/dist/{Toolbar-Bp-A2P4L.js.map → Toolbar-CMulzswf.js.map} +1 -1
- package/dist/{Toolbar-Do8KEjJJ.js → Toolbar-DGHZpFi9.js} +3 -3
- package/dist/{Toolbar-Do8KEjJJ.js.map → Toolbar-DGHZpFi9.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/TreeSelectField.js +1 -1
- package/dist/{TreeSelectFieldSync-BXfLbDBM.js → TreeSelectFieldSync-C0mXwYZL.js} +5 -5
- package/dist/{TreeSelectFieldSync-BXfLbDBM.js.map → TreeSelectFieldSync-C0mXwYZL.js.map} +1 -1
- package/dist/TreeSelectMenu.js +1 -1
- package/dist/{TreeSelectMenuSync-D7fQIyHr.js → TreeSelectMenuSync-D2TvKxP-.js} +3 -3
- package/dist/{TreeSelectMenuSync-D7fQIyHr.js.map → TreeSelectMenuSync-D2TvKxP-.js.map} +1 -1
- package/dist/{TypeaheadTextField-Dkh84OCF.js → TypeaheadTextField-DgazozK7.js} +3 -3
- package/dist/{TypeaheadTextField-Dkh84OCF.js.map → TypeaheadTextField-DgazozK7.js.map} +1 -1
- package/dist/TypeaheadTextField.js +1 -1
- package/dist/{YearlessDateInputWithPicker-7y8xhacx.js → YearlessDateInputWithPicker-Bc8a33D5.js} +2 -2
- package/dist/{YearlessDateInputWithPicker-7y8xhacx.js.map → YearlessDateInputWithPicker-Bc8a33D5.js.map} +1 -1
- package/dist/beta.js +16 -16
- package/dist/{bulkActionTypes-BVJZ01mE.js → bulkActionTypes-SukoplGV.js} +2 -2
- package/dist/{bulkActionTypes-BVJZ01mE.js.map → bulkActionTypes-SukoplGV.js.map} +1 -1
- package/dist/downshift.esm-U4VMqrF-.js.map +1 -1
- package/dist/extends-Bg2s_OKl.js.map +1 -1
- package/dist/{filter-state-CPCn-owS.js → filter-state-hDtCUggM.js} +18 -18
- package/dist/{filter-state-CPCn-owS.js.map → filter-state-hDtCUggM.js.map} +1 -1
- package/dist/{index-D1WfdON1.js → index-C2dOrf4N.js} +2 -2
- package/dist/{index-D1WfdON1.js.map → index-C2dOrf4N.js.map} +1 -1
- package/dist/index.js +42 -42
- package/dist/src/components/Pagination/Pagination.d.ts +28 -0
- package/dist/src/internal/components/LoadMoreSlot.d.ts +13 -0
- package/dist/src/internal/hooks/useAutoLoadMore.d.ts +40 -0
- package/dist/src/internal/hooks/useFocusReturnOnUnmount.d.ts +10 -0
- package/dist/{stripInlineMarkdown-CcwDEdw0.js → stripInlineMarkdown-BhYLEiXu.js} +2 -2
- package/dist/{stripInlineMarkdown-CcwDEdw0.js.map → stripInlineMarkdown-BhYLEiXu.js.map} +1 -1
- package/dist/{syncFilterUtils-ubEYuRGQ.js → syncFilterUtils-SMop8ckR.js} +179 -64
- package/dist/syncFilterUtils-SMop8ckR.js.map +1 -0
- package/dist/{treeSync-CkjyJSVq.js → treeSync-B38r1dRQ.js} +3 -3
- package/dist/{treeSync-CkjyJSVq.js.map → treeSync-B38r1dRQ.js.map} +1 -1
- package/dist/{useDrilldown-DOXav1An.js → useDrilldown-BOeeNUsy.js} +3 -3
- package/dist/{useDrilldown-DOXav1An.js.map → useDrilldown-BOeeNUsy.js.map} +1 -1
- package/dist/{useInfiniteCombobox-15_SoeWw.js → useInfiniteCombobox-7oIT2Mzn.js} +4 -4
- package/dist/{useInfiniteCombobox-15_SoeWw.js.map → useInfiniteCombobox-7oIT2Mzn.js.map} +1 -1
- package/dist/{useInitialFocus-0TZ78bPz.js → useInitialFocus-CGybEc6x.js} +2 -2
- package/dist/{useInitialFocus-0TZ78bPz.js.map → useInitialFocus-CGybEc6x.js.map} +1 -1
- package/dist/{useInvalidateOnOptionsChange-DiRbyJFp.js → useInvalidateOnOptionsChange-BD2VBpbK.js} +4 -4
- package/dist/{useInvalidateOnOptionsChange-DiRbyJFp.js.map → useInvalidateOnOptionsChange-BD2VBpbK.js.map} +1 -1
- package/dist/{usePopoverTransitionStates-B1opfxxn.js → usePopoverTransitionStates-CDXCdyKa.js} +2 -1
- package/dist/{usePopoverTransitionStates-B1opfxxn.js.map → usePopoverTransitionStates-CDXCdyKa.js.map} +1 -1
- package/package.json +6 -6
- package/dist/Announcement-Cnz80WGx.js.map +0 -1
- package/dist/FilterBar-PXv7_svO.js.map +0 -1
- package/dist/ProgressBar-0pebwBJ0.js.map +0 -1
- package/dist/check_circle-C3DDoVXp.js +0 -8
- package/dist/check_circle-C3DDoVXp.js.map +0 -1
- package/dist/src/internal/components/InView.d.ts +0 -14
- package/dist/syncFilterUtils-ubEYuRGQ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar-Bp-A2P4L.js","sources":["../src/components/Toolbar/internal/ToolbarItemOverflowContext.tsx","../src/components/Toolbar/internal/ToolbarContext.tsx","../src/components/Toolbar/internal/utils/accessibility.ts","../src/components/Toolbar/internal/ToolbarItemWrapper.tsx","../src/components/Toolbar/parts.ts","../src/components/Toolbar/ToolbarButton.tsx","../src/components/Toolbar/ToolbarButtonToggle.tsx","../src/components/Toolbar/ToolbarButtonLink.tsx","../src/components/Toolbar/ToolbarSelect.tsx","../src/components/Toolbar/internal/ToolbarOverflowMenu.tsx","../src/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\ntype OverflowItemContextType = {\n isInOverflowMenu: boolean;\n};\n\nexport const OverflowItemContext = createContext<OverflowItemContextType>({\n isInOverflowMenu: false,\n});\n\nexport const useOverFlowItemContext = () => useContext(OverflowItemContext);\n","import { createContext, type RefObject, useContext } from \"react\";\nimport type {\n ToolbarItemProps,\n ToolbarOverflowTypes,\n ToolbarSize,\n} from \"../types\";\n\nexport type ToolbarContextProps = {\n overflowItems: ToolbarItemProps[];\n addItem: (element: ToolbarItemProps) => void;\n removeItem: (element: ToolbarItemProps) => void;\n toolbarRef: RefObject<HTMLDivElement>;\n orderedIds?: string[];\n overflow: ToolbarOverflowTypes;\n size: ToolbarSize;\n};\n\nexport const ToolbarContext = createContext<ToolbarContextProps>({\n overflowItems: [],\n addItem: () => {\n return;\n },\n removeItem: () => {\n return;\n },\n toolbarRef: { current: null },\n orderedIds: [],\n overflow: \"wrap\",\n size: \"xsmall\",\n});\n\nexport const useToolbarSize = (): ToolbarSize =>\n useContext(ToolbarContext).size;\n","import type { KeyboardEvent } from \"react\";\nimport { getKeyboardFocusableElements } from \"../../../../internal/functions\";\n\n/**\n * Returns visible toolbar controls, excluding controls inside open overlays.\n */\nexport function getToolbarElements(toolbarElement: HTMLElement) {\n const toolbarContent = toolbarElement.querySelector<HTMLElement>(\n '[data-anv=\"toolbar-content\"]',\n );\n\n const mainItems = getKeyboardFocusableElements(toolbarContent).filter(\n (item) => {\n const isVisible = !item.closest('[aria-hidden=\"true\"]');\n const isNotInMenuContent = !item.closest('[data-anv=\"menu-content\"]');\n const isNotInPopoverContent = !item.closest(\n '[data-anv=\"popover-content\"]',\n );\n return isVisible && isNotInMenuContent && isNotInPopoverContent;\n },\n );\n\n const overflowTrigger = toolbarElement.querySelector<HTMLElement>(\n '[data-anv=\"toolbar-overflow-trigger\"]',\n );\n\n return overflowTrigger ? [...mainItems, overflowTrigger] : mainItems;\n}\n\n/**\n * Applies roving tabindex and returns the active toolbar control.\n */\nexport function updateToolbarItemsTabIndex(\n toolbarElement: HTMLElement,\n activeItem?: Element | number,\n) {\n if (!toolbarElement) return;\n\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n\n let activeIndex = 0;\n\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\n items.forEach((item, index) => {\n item.setAttribute(\"tabindex\", index === activeIndex ? \"0\" : \"-1\");\n });\n\n return items[activeIndex];\n}\n\n/**\n * Moves roving focus along the toolbar's declared orientation.\n */\nexport function handleToolbarKeyDown(\n event: KeyboardEvent<HTMLElement>,\n toolbarElement: HTMLElement,\n) {\n if (!toolbarElement || event.altKey || event.ctrlKey || event.metaKey) return;\n\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n\n const activeElement = event.target as HTMLElement;\n if (!toolbarElement.contains(activeElement)) return;\n\n const activeItem = items.find(\n (item) =>\n item === activeElement ||\n Array.from(item.children).some((child) => child === activeElement),\n );\n\n const activeIndex = activeItem ? items.indexOf(activeItem) : -1;\n if (activeIndex === -1) return;\n\n let nextIndex = activeIndex;\n const isVertical =\n toolbarElement.getAttribute(\"aria-orientation\") === \"vertical\";\n\n switch (event.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n if (\n (isVertical && event.key === \"ArrowUp\") ||\n (!isVertical && event.key === \"ArrowLeft\")\n ) {\n nextIndex = activeIndex <= 0 ? items.length - 1 : activeIndex - 1;\n }\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n if (\n (isVertical && event.key === \"ArrowDown\") ||\n (!isVertical && event.key === \"ArrowRight\")\n ) {\n nextIndex = activeIndex >= items.length - 1 ? 0 : activeIndex + 1;\n }\n break;\n\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n\n case \"End\":\n event.preventDefault();\n nextIndex = items.length - 1;\n break;\n\n default:\n return;\n }\n\n updateToolbarItemsTabIndex(toolbarElement, nextIndex);\n (items[nextIndex] as HTMLElement)?.focus();\n}\n\n/** Moves focus through overflow menu items with Up, Down, Home, and End. */\nexport const handleMenuKeyboardNavigation = (\n event: KeyboardEvent<HTMLUListElement>,\n) => {\n const menuItems = Array.from(\n event.currentTarget.querySelectorAll('[role=\"menuitem\"]'),\n ).map((menuItem) => {\n return getKeyboardFocusableElements(menuItem as HTMLElement)[0] || menuItem;\n });\n\n if (!menuItems.length) return;\n\n const currentIndex = menuItems.indexOf(document.activeElement as HTMLElement);\n if (currentIndex === -1) return;\n\n let nextIndex = currentIndex;\n const isModifierKey = event.altKey || event.ctrlKey || event.metaKey;\n\n if (isModifierKey) return;\n\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\": {\n event.preventDefault();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n nextIndex =\n (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\n (menuItems[nextIndex] as HTMLElement)?.focus();\n};\n","import { useContext, useEffect, useId, useRef, useCallback } from \"react\";\nimport type { ToolbarItemProps } from \"../types\";\nimport { ToolbarContext } from \"./ToolbarContext\";\nimport { useIntersectionObserver } from \"../../../internal/hooks\";\nimport { updateToolbarItemsTabIndex } from \"./utils/accessibility\";\n\nimport styles from \"../Toolbar.module.scss\";\n\ntype ToolbarItemWrapperProps = {\n item: Omit<ToolbarItemProps, \"id\">;\n children: React.ReactNode;\n};\n\n/**\n * Registers a toolbar control for overflow and roving focus management.\n */\nexport const ToolbarItemWrapper = ({\n item,\n children,\n}: ToolbarItemWrapperProps) => {\n const { addItem, removeItem, toolbarRef, overflow } =\n useContext(ToolbarContext);\n const itemId = useId();\n const elementRef = useRef<HTMLDivElement | null>(null);\n const prevIntersectingRef = useRef<boolean>(true);\n const isCollapseMode = overflow === \"collapse\";\n\n const handleVisibilityChange = useCallback(\n (isVisible: boolean) => {\n if (!isCollapseMode || prevIntersectingRef.current === isVisible) return;\n\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\n const { isIntersecting, ref } = useIntersectionObserver({\n root: isCollapseMode ? toolbarRef.current : null,\n threshold: 1,\n initialIsIntersecting: false,\n onChange: handleVisibilityChange,\n });\n\n const setRefCallback = useCallback(\n (node: HTMLDivElement | null) => {\n elementRef.current = node;\n if (isCollapseMode) {\n ref(node);\n }\n },\n [ref, isCollapseMode],\n );\n\n const handleFocusOrClick = useCallback(() => {\n if (!toolbarRef.current || !elementRef.current) return;\n\n const currentElement = elementRef.current.querySelector(\"button, a, input\");\n if (!currentElement) return;\n\n updateToolbarItemsTabIndex(toolbarRef.current, currentElement);\n }, [toolbarRef]);\n\n useEffect(() => {\n const interactiveEl = elementRef.current?.querySelector(\"button, a, input\");\n if (!interactiveEl) return;\n\n interactiveEl.addEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.addEventListener(\"click\", handleFocusOrClick);\n\n return () => {\n interactiveEl.removeEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.removeEventListener(\"click\", handleFocusOrClick);\n };\n }, [handleFocusOrClick]);\n\n useEffect(() => {\n if (isCollapseMode) {\n prevIntersectingRef.current = true;\n }\n }, [isCollapseMode]);\n\n const isHidden = isCollapseMode && !isIntersecting;\n\n return (\n <div\n ref={setRefCallback}\n className={styles[\"toolbar-item\"]}\n style={{ visibility: isHidden ? \"hidden\" : \"visible\" }}\n aria-hidden={isHidden}\n {...{ inert: isHidden ? \"\" : undefined }}\n data-id={itemId}\n data-anv=\"toolbar-item\"\n >\n {children}\n </div>\n );\n};\n\nexport type { ToolbarItemWrapperProps };\n","import { COMMON_PART } from \"../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for Toolbar's interactive sub-elements.\n *\n * Scope in-wrapper parts by the consumer's `data-cy` on the Toolbar root.\n * Overflow menu/items render in the popover top layer — target them by part\n * attribute directly.\n */\nexport const PARTS = {\n trigger: COMMON_PART.trigger,\n menu: COMMON_PART.menu,\n overflowItem: \"overflow-item\",\n /**\n * A leaf toolbar control (`Toolbar.Button` / `Toolbar.ButtonToggle`).\n * Discriminate with `aria-label`, `id`, or a consumer `data-*`. Callers may\n * override this (e.g. FilterBar stamps `trigger` on boolean toggles).\n */\n item: \"item\",\n} as const;\n","import { forwardRef } from \"react\";\nimport Button, { type ButtonProps } from \"../Button\";\nimport type { ToolbarItemAppearance, WithAriaLabelEnforcement } from \"./types\";\nimport type { DataTrackingId } from \"../../types\";\nimport { ANV_PART_ATTR } from \"../../internal/constants/anvParts\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\nimport { PARTS } from \"./parts\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\ntype ToolbarButtonBaseProps = Omit<\n ButtonProps,\n \"appearance\" | \"aria-label\" | \"children\" | \"onClick\"\n> & {\n /** Limited to Toolbar-supported appearances. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n /** Handles activation in either the toolbar or its overflow menu. */\n onClick: ButtonProps[\"onClick\"];\n};\n\nexport type ToolbarButtonProps =\n WithAriaLabelEnforcement<ToolbarButtonBaseProps> & DataTrackingId;\n\n/**\n * Button action that inherits its size from Toolbar. In collapse mode,\n * clipped actions move into the overflow menu; icon-only actions show a tooltip.\n *\n * @example\n * <ToolbarButton icon={BoldIcon} aria-label=\"Bold text\" />\n */\nexport const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>(\n (props, ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\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 const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n // Default PARTS.item before {...rest} so callers (e.g. FilterBar) can override.\n const item = children ? (\n <Button\n ref={ref}\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button\"\n className={buttonClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n >\n {children}\n </Button>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n ref={ref}\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button\"\n className={buttonClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"button\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n },\n);\n\nToolbarButton.displayName = \"ToolbarButton\";\n","import { forwardRef } from \"react\";\nimport ButtonToggle, { type ButtonToggleProps } from \"../ButtonToggle\";\nimport type { WithAriaLabelEnforcement } from \"./types\";\nimport type { DataTrackingId } from \"../../types\";\nimport { ANV_PART_ATTR } from \"../../internal/constants/anvParts\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\nimport { PARTS } from \"./parts\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\ntype ToolbarButtonToggleBaseProps = Omit<\n ButtonToggleProps,\n \"aria-label\" | \"children\"\n>;\n\nexport type ToolbarButtonToggleProps =\n WithAriaLabelEnforcement<ToolbarButtonToggleBaseProps> & DataTrackingId;\n\n/**\n * Toggle action that inherits its size from Toolbar. In collapse mode, clipped\n * toggles move into the overflow menu; icon-only toggles show a tooltip.\n *\n * @example\n * <ToolbarButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n */\nexport const ToolbarButtonToggle = forwardRef<\n HTMLButtonElement,\n ToolbarButtonToggleProps\n>((props, _ref) => {\n const { className, children, ...rest } = props;\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\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 const buttonToggleClassNames = cx(\n className,\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-button-toggle-item\"],\n );\n\n // Default PARTS.item before {...rest} so callers (e.g. FilterBar) can override.\n const item = children ? (\n <ButtonToggle\n data-tracking-id={trackingId}\n size={size}\n data-anv=\"toolbar-button-toggle\"\n className={buttonToggleClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n >\n {children}\n </ButtonToggle>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonToggle\n data-tracking-id={trackingId}\n size={size}\n data-anv=\"toolbar-button-toggle\"\n className={buttonToggleClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"buttonToggle\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n});\n\nToolbarButtonToggle.displayName = \"ToolbarButtonToggle\";\n","import { forwardRef } from \"react\";\nimport ButtonLink, { type ButtonLinkProps } from \"../ButtonLink\";\nimport type { ToolbarItemAppearance, WithAriaLabelEnforcement } from \"./types\";\nimport type { DataTrackingId } from \"../../types\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\ntype ToolbarButtonLinkBaseProps = Omit<\n ButtonLinkProps,\n \"appearance\" | \"aria-label\" | \"children\"\n> & {\n /** Limited to Toolbar-supported appearances. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n};\n\nexport type ToolbarButtonLinkProps =\n WithAriaLabelEnforcement<ToolbarButtonLinkBaseProps> & DataTrackingId;\n\n/**\n * Link action that inherits its size from Toolbar. In collapse mode, clipped\n * links move into the overflow menu; icon-only links show a tooltip.\n *\n * @example\n * <ToolbarButtonLink icon={ExternalLinkIcon} href=\"/docs\" aria-label=\"Documentation\" />\n */\nexport const ToolbarButtonLink = forwardRef<\n HTMLAnchorElement,\n ToolbarButtonLinkProps\n>((props, _ref) => {\n const { appearance = \"ghost\", className, children, icon, ...rest } = props;\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\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 const buttonLinkClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n const item = children ? (\n <ButtonLink\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n icon={icon}\n data-anv=\"toolbar-button-link\"\n className={buttonLinkClassNames}\n {...rest}\n >\n {children}\n </ButtonLink>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonLink\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n icon={icon}\n data-anv=\"toolbar-button-link\"\n className={buttonLinkClassNames}\n {...rest}\n >\n {children}\n </ButtonLink>\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"buttonLink\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n});\n\nToolbarButtonLink.displayName = \"ToolbarButtonLink\";\n","import { forwardRef, useEffect, useId, useState } from \"react\";\nimport ArrowDropDown from \"@servicetitan/hammer-icon/mdi/round/arrow_drop_down.svg\";\nimport Listbox, { type ListboxItemType } from \"../Listbox\";\nimport Popover from \"../../internal/components/Popover\";\nimport type { ToolbarItemAppearance } from \"./types\";\nimport type { DataTrackingId } from \"../../types\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\ntype ToolbarSelectItem<T = Record<string, unknown>> = ListboxItemType<\n T & {\n id: string;\n }\n>;\n\nexport type ToolbarSelectProps<T = Record<string, unknown>> = Omit<\n React.ComponentPropsWithoutRef<typeof Popover.Button>,\n \"appearance\" | \"onChange\"\n> & {\n /** Limited to Toolbar-supported appearances. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n /** Called with the selected item's ID before the popover closes. */\n onChange?: (optionId: string) => void;\n /** Controls selection by item ID. Omit to select and manage the first item initially. */\n selected?: string;\n /** Options with unique IDs; the selected option's label is shown on the trigger. */\n items: ToolbarSelectItem<T>[];\n /** Accessible name for the options popover. */\n accessibleLabel: string;\n} & DataTrackingId;\n\n/**\n * Listbox selector that inherits its size from Toolbar. In collapse mode,\n * clipped selectors move into the overflow menu. Selection may be controlled.\n */\nexport const ToolbarSelect = forwardRef<HTMLButtonElement, ToolbarSelectProps>(\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\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n\n const defaultId = items.length > 0 ? items[0].id : \"\";\n const [internalSelectedId, setInternalSelectedId] = useState(defaultId);\n\n const selectedId = selectedItemId ?? internalSelectedId;\n\n const selectedItem =\n items.find((item) => item.id === selectedId) ||\n items.find((item) => item.id === defaultId);\n\n useEffect(() => {\n if (\n !selectedItemId &&\n items.length > 0 &&\n !items.some((item) => item.id === internalSelectedId)\n ) {\n setInternalSelectedId(items[0].id);\n }\n }, [items, selectedItemId, internalSelectedId]);\n\n const handleSelectionChange = (\n selected: ToolbarSelectItem<Record<string, unknown>> | undefined,\n ) => {\n if (selected?.id) {\n if (selectedItemId === undefined) {\n setInternalSelectedId(selected.id);\n }\n\n onChange?.(selected.id);\n\n setIsPopoverOpen(false);\n }\n };\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const toolbarSize = useToolbarSize();\n\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 const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n const item = (\n <Popover\n noPadding\n open={isPopoverOpen}\n onClickOutside={() => {\n setIsPopoverOpen(false);\n }}\n onClose={() => {\n setIsPopoverOpen(false);\n }}\n >\n <Popover.Button\n data-tracking-id={trackingId}\n appearance={appearance}\n size={toolbarSize}\n icon={{ after: ArrowDropDown }}\n className={buttonClassNames}\n id={selectId}\n data-anv=\"toolbar-select\"\n onClick={() => {\n setIsPopoverOpen(!isPopoverOpen);\n }}\n {...rest}\n >\n {selectedItem?.label}\n </Popover.Button>\n <Popover.Content\n className={styles[\"toolbar-select-content\"]}\n aria-label={accessibleLabel}\n >\n <Listbox\n selected={selectedItem}\n onSelectionChange={handleSelectionChange}\n items={items}\n aria-labelledby={selectId}\n disableAutoSelectOnFocus={true}\n >\n {({ items }) =>\n items.map((item) => (\n <Listbox.Option key={item.label} item={item}>\n {item.label}\n </Listbox.Option>\n ))\n }\n </Listbox>\n </Popover.Content>\n </Popover>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"select\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n },\n);\n\nToolbarSelect.displayName = \"ToolbarSelect\";\n","import { type ReactElement, useContext, useId, useMemo } from \"react\";\nimport MoreHoriz from \"@servicetitan/hammer-icon/mdi/round/more_horiz.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round//more_vert.svg\";\nimport type { ToolbarItemProps } from \"../types\";\nimport { ToolbarButton, type ToolbarButtonProps } from \"../ToolbarButton\";\nimport {\n ToolbarButtonToggle,\n type ToolbarButtonToggleProps,\n} from \"../ToolbarButtonToggle\";\nimport {\n ToolbarButtonLink,\n type ToolbarButtonLinkProps,\n} from \"../ToolbarButtonLink\";\nimport { ToolbarSelect, type ToolbarSelectProps } from \"../ToolbarSelect\";\nimport { ToolbarContext, useToolbarSize } from \"./ToolbarContext\";\nimport Popover from \"../../../internal/components/Popover\";\nimport { OverflowItemContext } from \"./ToolbarItemOverflowContext\";\nimport { handleMenuKeyboardNavigation } from \"./utils/accessibility\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport cx from \"classnames\";\nimport styles from \"../Toolbar.module.scss\";\n\nconst OverflowItem = ({ itemType, itemProps }: ToolbarItemProps) => {\n switch (itemType) {\n case \"button\":\n return <ToolbarButton {...(itemProps as ToolbarButtonProps)} />;\n\n case \"buttonToggle\":\n return (\n <ToolbarButtonToggle {...(itemProps as ToolbarButtonToggleProps)} />\n );\n\n case \"buttonLink\":\n return <ToolbarButtonLink {...(itemProps as ToolbarButtonLinkProps)} />;\n\n case \"select\":\n return <ToolbarSelect {...(itemProps as ToolbarSelectProps)} />;\n\n default:\n return null;\n }\n};\n\nexport type ToolbarOverflowMenuProps = {\n additionalItems?: ReactElement[];\n direction?: \"vertical\" | \"horizontal\";\n};\n\n/** Renders clipped actions in toolbar order, followed by custom actions. */\nexport const ToolbarOverflowMenu = ({\n additionalItems,\n direction,\n}: ToolbarOverflowMenuProps) => {\n const { overflowItems, orderedIds } = useContext(ToolbarContext);\n const menuTriggerId = useId();\n const size = useToolbarSize();\n\n const orderedItems = useMemo(() => {\n const allElements = orderedIds?.map((id) => {\n return overflowItems.find((item) => item.id === id);\n });\n\n return allElements?.filter((item) => item !== undefined) || [];\n }, [orderedIds, overflowItems]);\n\n const popoverButtonClassNames = cx(\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-overflow-trigger\"],\n );\n\n const overflowIcon = direction === \"horizontal\" ? MoreHoriz : MoreVert;\n\n return (\n <Popover noPadding>\n <Popover.Button\n size={size}\n appearance=\"ghost\"\n id={menuTriggerId}\n className={popoverButtonClassNames}\n data-anv=\"toolbar-overflow-trigger\"\n aria-label=\"Additional toolbar options\"\n icon={overflowIcon}\n {...{ [ANV_PART_ATTR]: PARTS.trigger }}\n />\n <Popover.Content>\n <OverflowItemContext.Provider value={{ isInOverflowMenu: true }}>\n <ul\n role=\"menu\"\n className={styles[\"toolbar-overflow-content\"]}\n data-anv=\"toolbar-overflow-menu\"\n aria-labelledby={menuTriggerId}\n onKeyDown={handleMenuKeyboardNavigation}\n {...{ [ANV_PART_ATTR]: PARTS.menu }}\n >\n {orderedItems.map((item) => {\n const { itemType, itemProps, id } = item;\n return (\n <li\n key={`${itemType}-${id}`}\n role=\"menuitem\"\n data-anv=\"toolbar-overflow-item\"\n data-id={id}\n {...{ [ANV_PART_ATTR]: PARTS.overflowItem }}\n >\n <OverflowItem\n itemType={itemType}\n itemProps={itemProps}\n id={id}\n />\n </li>\n );\n })}\n\n {additionalItems?.map((item, index) => (\n <li\n key={`additional-item-${index}`}\n role=\"menuitem\"\n data-anv=\"toolbar-overflow-item\"\n {...{ [ANV_PART_ATTR]: PARTS.overflowItem }}\n >\n {item}\n </li>\n ))}\n </ul>\n </OverflowItemContext.Provider>\n </Popover.Content>\n </Popover>\n );\n};\n","import { ToolbarButton } from \"./ToolbarButton\";\nimport { ToolbarButtonToggle } from \"./ToolbarButtonToggle\";\nimport { ToolbarButtonLink } from \"./ToolbarButtonLink\";\nimport { ToolbarSelect } from \"./ToolbarSelect\";\nimport type {\n ToolbarItemProps,\n ToolbarOverflowTypes,\n ToolbarSize,\n} from \"./types\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { DataAttributes, LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport {\n handleToolbarKeyDown,\n updateToolbarItemsTabIndex,\n} from \"./internal/utils/accessibility\";\nimport { ToolbarContext } from \"./internal/ToolbarContext\";\nimport Flex from \"../Flex\";\nimport { useMergeRefs } from \"../../hooks\";\nimport { ToolbarOverflowMenu } from \"./internal/ToolbarOverflowMenu\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\nexport type ToolbarProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps &\n DataAttributes & {\n /** Names the content associated with the toolbar in its accessible label. */\n associatedContent: string;\n /** Sets both the visual layout and arrow-key axis. Defaults to `horizontal`. */\n direction?: \"vertical\" | \"horizontal\";\n /** Wraps items or moves clipped items into a menu. Defaults to `wrap`. */\n overflow?: ToolbarOverflowTypes;\n /** Appends custom actions to the overflow menu, even when no toolbar items overflow. */\n additionalItems?: ReactElement[];\n /** Size inherited by the toolbar controls. Defaults to `xsmall`. */\n size?: ToolbarSize;\n };\n\n/**\n * Groups related controls with roving keyboard focus. Items can wrap or move\n * into an overflow menu when space is constrained.\n */\nexport const Toolbar = Object.assign(\n forwardRef<HTMLDivElement, ToolbarProps>(function ToolbarInner(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 size = \"xsmall\",\n ...rest\n } = componentProps;\n\n const [overflowItems, setOverflowItems] = useState<ToolbarItemProps[]>([]);\n const toolbarItemsRef = useRef<HTMLDivElement>(null);\n const toolbarRef = useRef<HTMLDivElement>(null);\n\n // Wrapper IDs preserve rendered order when hidden items move into overflow.\n const [orderedIds, setOrderedIds] = useState<string[]>([]);\n\n useEffect(() => {\n const newOrderedIds = Array.from(\n toolbarItemsRef.current?.querySelectorAll(\"[data-id]\") || [],\n ).map((el) => {\n return el.getAttribute(\"data-id\") as string;\n });\n\n setOrderedIds(newOrderedIds);\n }, [children]);\n\n const addItem = useCallback((item: ToolbarItemProps) => {\n setOverflowItems((prev) => [...prev, item]);\n }, []);\n\n const removeItem = useCallback((item: ToolbarItemProps) => {\n setOverflowItems((prev) =>\n prev.filter((component) => component.id !== item.id),\n );\n }, []);\n\n useEffect(() => {\n if (toolbarRef.current) {\n updateToolbarItemsTabIndex(toolbarRef.current);\n }\n }, [children]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (toolbarRef.current) {\n handleToolbarKeyDown(event, toolbarRef.current);\n }\n\n onKeyDown?.(event);\n },\n [onKeyDown],\n );\n\n const showOverflowMenu =\n (overflow === \"collapse\" && overflowItems.length > 0) ||\n !!additionalItems;\n\n const value = useMemo(\n () => ({\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow,\n size,\n }),\n [\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow,\n size,\n ],\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const toolbarClassNames = cx(styles[\"toolbar\"], className);\n\n const toolbarContentClassNames = cx(styles[\"toolbar-content\"], {\n [styles[`overflow-${overflow}`]]: overflow,\n });\n\n return (\n <ToolbarContext.Provider value={value}>\n <Flex\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 tabIndex={-1}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n <Flex\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 >\n {children}\n </Flex>\n\n {showOverflowMenu && (\n <ToolbarOverflowMenu\n direction={direction}\n additionalItems={additionalItems}\n />\n )}\n </Flex>\n </ToolbarContext.Provider>\n );\n }),\n {\n /** Button action that participates in toolbar sizing and overflow. */\n Button: ToolbarButton,\n /** Toggle action that participates in toolbar sizing and overflow. */\n ButtonToggle: ToolbarButtonToggle,\n /** Link action that participates in toolbar sizing and overflow. */\n ButtonLink: ToolbarButtonLink,\n /** Listbox selector that participates in toolbar sizing and overflow. */\n Select: ToolbarSelect,\n },\n);\nToolbar.displayName = \"Toolbar\";\n"],"names":["item","ArrowDropDown","items","MoreHoriz","MoreVert"],"mappings":";;;;;;;;;;;;;;;;;;;;AAMO,MAAM,sBAAsB,aAAA,CAAuC;AAAA,EACxE,gBAAA,EAAkB;AACpB,CAAC,CAAA;AAEM,MAAM,sBAAA,GAAyB,MAAM,UAAA,CAAW,mBAAmB,CAAA;;ACOnE,MAAM,iBAAiB,aAAA,CAAmC;AAAA,EAC/D,eAAe,EAAC;AAAA,EAChB,SAAS,MAAM;AACb,IAAA;AAAA,EACF,CAAA;AAAA,EACA,YAAY,MAAM;AAChB,IAAA;AAAA,EACF,CAAA;AAAA,EACA,UAAA,EAAY,EAAE,OAAA,EAAS,IAAA,EAAK;AAAA,EAC5B,YAAY,EAAC;AAAA,EACb,QAAA,EAAU,MAAA;AAAA,EACV,IAAA,EAAM;AACR,CAAC,CAAA;AAEM,MAAM,cAAA,GAAiB,MAC5B,UAAA,CAAW,cAAc,CAAA,CAAE,IAAA;;AC1BtB,SAAS,mBAAmB,cAAA,EAA6B;AAC9D,EAAA,MAAM,iBAAiB,cAAA,CAAe,aAAA;AAAA,IACpC;AAAA,GACF;AAEA,EAAA,MAAM,SAAA,GAAY,4BAAA,CAA6B,cAAc,CAAA,CAAE,MAAA;AAAA,IAC7D,CAAC,IAAA,KAAS;AACR,MAAA,MAAM,SAAA,GAAY,CAAC,IAAA,CAAK,OAAA,CAAQ,sBAAsB,CAAA;AACtD,MAAA,MAAM,kBAAA,GAAqB,CAAC,IAAA,CAAK,OAAA,CAAQ,2BAA2B,CAAA;AACpE,MAAA,MAAM,qBAAA,GAAwB,CAAC,IAAA,CAAK,OAAA;AAAA,QAClC;AAAA,OACF;AACA,MAAA,OAAO,aAAa,kBAAA,IAAsB,qBAAA;AAAA,IAC5C;AAAA,GACF;AAEA,EAAA,MAAM,kBAAkB,cAAA,CAAe,aAAA;AAAA,IACrC;AAAA,GACF;AAEA,EAAA,OAAO,eAAA,GAAkB,CAAC,GAAG,SAAA,EAAW,eAAe,CAAA,GAAI,SAAA;AAC7D;AAKO,SAAS,0BAAA,CACd,gBACA,UAAA,EACA;AACA,EAAA,IAAI,CAAC,cAAA,EAAgB;AAErB,EAAA,MAAM,KAAA,GAAQ,mBAAmB,cAAc,CAAA;AAC/C,EAAA,IAAI,CAAC,MAAM,MAAA,EAAQ;AAEnB,EAAA,IAAI,WAAA,GAAc,CAAA;AAElB,EAAA,IAAI,OAAO,eAAe,QAAA,EAAU;AAClC,IAAA,WAAA,GAAc,IAAA,CAAK,IAAI,CAAA,EAAG,IAAA,CAAK,IAAI,UAAA,EAAY,KAAA,CAAM,MAAA,GAAS,CAAC,CAAC,CAAA;AAAA,EAClE,CAAA,MAAA,IAAW,sBAAsB,OAAA,EAAS;AACxC,IAAA,MAAM,UAAA,GAAa,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA;AAC3C,IAAA,IAAI,eAAe,EAAA,EAAI;AACrB,MAAA,WAAA,GAAc,UAAA;AAAA,IAChB;AAAA,EACF;AAEA,EAAA,KAAA,CAAM,OAAA,CAAQ,CAAC,IAAA,EAAM,KAAA,KAAU;AAC7B,IAAA,IAAA,CAAK,YAAA,CAAa,UAAA,EAAY,KAAA,KAAU,WAAA,GAAc,MAAM,IAAI,CAAA;AAAA,EAClE,CAAC,CAAA;AAED,EAAA,OAAO,MAAM,WAAW,CAAA;AAC1B;AAKO,SAAS,oBAAA,CACd,OACA,cAAA,EACA;AACA,EAAA,IAAI,CAAC,cAAA,IAAkB,KAAA,CAAM,UAAU,KAAA,CAAM,OAAA,IAAW,MAAM,OAAA,EAAS;AAEvE,EAAA,MAAM,KAAA,GAAQ,mBAAmB,cAAc,CAAA;AAC/C,EAAA,IAAI,CAAC,MAAM,MAAA,EAAQ;AAEnB,EAAA,MAAM,gBAAgB,KAAA,CAAM,MAAA;AAC5B,EAAA,IAAI,CAAC,cAAA,CAAe,QAAA,CAAS,aAAa,CAAA,EAAG;AAE7C,EAAA,MAAM,aAAa,KAAA,CAAM,IAAA;AAAA,IACvB,CAAC,IAAA,KACC,IAAA,KAAS,aAAA,IACT,KAAA,CAAM,IAAA,CAAK,IAAA,CAAK,QAAQ,CAAA,CAAE,IAAA,CAAK,CAAC,KAAA,KAAU,UAAU,aAAa;AAAA,GACrE;AAEA,EAAA,MAAM,WAAA,GAAc,UAAA,GAAa,KAAA,CAAM,OAAA,CAAQ,UAAU,CAAA,GAAI,EAAA;AAC7D,EAAA,IAAI,gBAAgB,EAAA,EAAI;AAExB,EAAA,IAAI,SAAA,GAAY,WAAA;AAChB,EAAA,MAAM,UAAA,GACJ,cAAA,CAAe,YAAA,CAAa,kBAAkB,CAAA,KAAM,UAAA;AAEtD,EAAA,QAAQ,MAAM,GAAA;AAAK,IACjB,KAAK,WAAA;AAAA,IACL,KAAK,SAAA;AACH,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,IACG,UAAA,IAAc,MAAM,GAAA,KAAQ,SAAA,IAC5B,CAAC,UAAA,IAAc,KAAA,CAAM,QAAQ,WAAA,EAC9B;AACA,QAAA,SAAA,GAAY,WAAA,IAAe,CAAA,GAAI,KAAA,CAAM,MAAA,GAAS,IAAI,WAAA,GAAc,CAAA;AAAA,MAClE;AACA,MAAA;AAAA,IAEF,KAAK,YAAA;AAAA,IACL,KAAK,WAAA;AACH,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,IACG,UAAA,IAAc,MAAM,GAAA,KAAQ,WAAA,IAC5B,CAAC,UAAA,IAAc,KAAA,CAAM,QAAQ,YAAA,EAC9B;AACA,QAAA,SAAA,GAAY,WAAA,IAAe,KAAA,CAAM,MAAA,GAAS,CAAA,GAAI,IAAI,WAAA,GAAc,CAAA;AAAA,MAClE;AACA,MAAA;AAAA,IAEF,KAAK,MAAA;AACH,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,SAAA,GAAY,CAAA;AACZ,MAAA;AAAA,IAEF,KAAK,KAAA;AACH,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,SAAA,GAAY,MAAM,MAAA,GAAS,CAAA;AAC3B,MAAA;AAAA,IAEF;AACE,MAAA;AAAA;AAGJ,EAAA,0BAAA,CAA2B,gBAAgB,SAAS,CAAA;AACpD,EAAC,KAAA,CAAM,SAAS,CAAA,EAAmB,KAAA,EAAM;AAC3C;AAGO,MAAM,4BAAA,GAA+B,CAC1C,KAAA,KACG;AACH,EAAA,MAAM,YAAY,KAAA,CAAM,IAAA;AAAA,IACtB,KAAA,CAAM,aAAA,CAAc,gBAAA,CAAiB,mBAAmB;AAAA,GAC1D,CAAE,GAAA,CAAI,CAAC,QAAA,KAAa;AAClB,IAAA,OAAO,4BAAA,CAA6B,QAAuB,CAAA,CAAE,CAAC,CAAA,IAAK,QAAA;AAAA,EACrE,CAAC,CAAA;AAED,EAAA,IAAI,CAAC,UAAU,MAAA,EAAQ;AAEvB,EAAA,MAAM,YAAA,GAAe,SAAA,CAAU,OAAA,CAAQ,QAAA,CAAS,aAA4B,CAAA;AAC5E,EAAA,IAAI,iBAAiB,EAAA,EAAI;AAEzB,EAAA,IAAI,SAAA,GAAY,YAAA;AAChB,EAAA,MAAM,aAAA,GAAgB,KAAA,CAAM,MAAA,IAAU,KAAA,CAAM,WAAW,KAAA,CAAM,OAAA;AAE7D,EAAA,IAAI,aAAA,EAAe;AAEnB,EAAA,QAAQ,MAAM,GAAA;AAAK,IACjB,KAAK,WAAA;AAAA,IACL,KAAK,SAAA,EAAW;AACd,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,MAAM,SAAA,GAAY,KAAA,CAAM,GAAA,KAAQ,WAAA,GAAc,CAAA,GAAI,EAAA;AAClD,MAAA,SAAA,GAAA,CACG,YAAA,GAAe,SAAA,GAAY,SAAA,CAAU,MAAA,IAAU,SAAA,CAAU,MAAA;AAC5D,MAAA;AAAA,IACF;AAAA,IACA,KAAK,MAAA;AACH,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,SAAA,GAAY,CAAA;AACZ,MAAA;AAAA,IACF,KAAK,KAAA;AACH,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,SAAA,GAAY,UAAU,MAAA,GAAS,CAAA;AAC/B,MAAA;AAAA,IACF;AACE,MAAA;AAAA;AAGJ,EAAC,SAAA,CAAU,SAAS,CAAA,EAAmB,KAAA,EAAM;AAC/C,CAAA;;;;;;;;;;;;;;AC1JO,MAAM,qBAAqB,CAAC;AAAA,EACjC,IAAA;AAAA,EACA;AACF,CAAA,KAA+B;AAC7B,EAAA,MAAM,EAAE,OAAA,EAAS,UAAA,EAAY,YAAY,QAAA,EAAS,GAChD,WAAW,cAAc,CAAA;AAC3B,EAAA,MAAM,SAAS,KAAA,EAAM;AACrB,EAAA,MAAM,UAAA,GAAa,OAA8B,IAAI,CAAA;AACrD,EAAA,MAAM,mBAAA,GAAsB,OAAgB,IAAI,CAAA;AAChD,EAAA,MAAM,iBAAiB,QAAA,KAAa,UAAA;AAEpC,EAAA,MAAM,sBAAA,GAAyB,WAAA;AAAA,IAC7B,CAAC,SAAA,KAAuB;AACtB,MAAA,IAAI,CAAC,cAAA,IAAkB,mBAAA,CAAoB,OAAA,KAAY,SAAA,EAAW;AAElE,MAAA,MAAM,UAAA,GAAa,EAAE,GAAG,IAAA,EAAM,IAAI,MAAA,EAAO;AACzC,MAAA,IAAI,SAAA,EAAW;AACb,QAAA,UAAA,CAAW,UAAU,CAAA;AAAA,MACvB,CAAA,MAAO;AACL,QAAA,OAAA,CAAQ,UAAU,CAAA;AAAA,MACpB;AACA,MAAA,mBAAA,CAAoB,OAAA,GAAU,SAAA;AAAA,IAChC,CAAA;AAAA,IACA,CAAC,cAAA,EAAgB,IAAA,EAAM,MAAA,EAAQ,SAAS,UAAU;AAAA,GACpD;AAEA,EAAA,MAAM,EAAE,cAAA,EAAgB,GAAA,EAAI,GAAI,uBAAA,CAAwB;AAAA,IACtD,IAAA,EAAM,cAAA,GAAiB,UAAA,CAAW,OAAA,GAAU,IAAA;AAAA,IAC5C,SAAA,EAAW,CAAA;AAAA,IACX,qBAAA,EAAuB,KAAA;AAAA,IACvB,QAAA,EAAU;AAAA,GACX,CAAA;AAED,EAAA,MAAM,cAAA,GAAiB,WAAA;AAAA,IACrB,CAAC,IAAA,KAAgC;AAC/B,MAAA,UAAA,CAAW,OAAA,GAAU,IAAA;AACrB,MAAA,IAAI,cAAA,EAAgB;AAClB,QAAA,GAAA,CAAI,IAAI,CAAA;AAAA,MACV;AAAA,IACF,CAAA;AAAA,IACA,CAAC,KAAK,cAAc;AAAA,GACtB;AAEA,EAAA,MAAM,kBAAA,GAAqB,YAAY,MAAM;AAC3C,IAAA,IAAI,CAAC,UAAA,CAAW,OAAA,IAAW,CAAC,WAAW,OAAA,EAAS;AAEhD,IAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,OAAA,CAAQ,aAAA,CAAc,kBAAkB,CAAA;AAC1E,IAAA,IAAI,CAAC,cAAA,EAAgB;AAErB,IAAA,0BAAA,CAA2B,UAAA,CAAW,SAAS,cAAc,CAAA;AAAA,EAC/D,CAAA,EAAG,CAAC,UAAU,CAAC,CAAA;AAEf,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,OAAA,EAAS,aAAA,CAAc,kBAAkB,CAAA;AAC1E,IAAA,IAAI,CAAC,aAAA,EAAe;AAEpB,IAAA,aAAA,CAAc,gBAAA,CAAiB,SAAS,kBAAkB,CAAA;AAC1D,IAAA,aAAA,CAAc,gBAAA,CAAiB,SAAS,kBAAkB,CAAA;AAE1D,IAAA,OAAO,MAAM;AACX,MAAA,aAAA,CAAc,mBAAA,CAAoB,SAAS,kBAAkB,CAAA;AAC7D,MAAA,aAAA,CAAc,mBAAA,CAAoB,SAAS,kBAAkB,CAAA;AAAA,IAC/D,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,kBAAkB,CAAC,CAAA;AAEvB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,mBAAA,CAAoB,OAAA,GAAU,IAAA;AAAA,IAChC;AAAA,EACF,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AAEnB,EAAA,MAAM,QAAA,GAAW,kBAAkB,CAAC,cAAA;AAEpC,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,cAAA;AAAA,MACL,SAAA,EAAW,OAAO,cAAc,CAAA;AAAA,MAChC,KAAA,EAAO,EAAE,UAAA,EAAY,QAAA,GAAW,WAAW,SAAA,EAAU;AAAA,MACrD,aAAA,EAAa,QAAA;AAAA,MACZ,GAAG,EAAE,KAAA,EAAO,QAAA,GAAW,KAAK,MAAA,EAAU;AAAA,MACvC,SAAA,EAAS,MAAA;AAAA,MACT,UAAA,EAAS,cAAA;AAAA,MAER;AAAA;AAAA,GACH;AAEJ,CAAA;;AC7FO,MAAM,KAAA,GAAQ;AAAA,EACnB,SAAS,WAAA,CAAY,OAAA;AAAA,EACrB,MAAM,WAAA,CAAY,IAAA;AAAA,EAClB,YAAA,EAAc,eAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMd,IAAA,EAAM;AACR,CAAA;;ACgBO,MAAM,aAAA,GAAgB,UAAA;AAAA,EAC3B,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM,EAAE,UAAA,GAAa,OAAA,EAAS,WAAW,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AAE/D,IAAA,MAAM,EAAE,gBAAA,GAAmB,KAAA,EAAM,GAAI,sBAAA,QAA8B,EAAC;AACpE,IAAA,MAAM,OAAO,cAAA,EAAe;AAE5B,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAM;AAAA,QACJ,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,YAAA,EAAc,MAAM,YAAY,CAAA;AAAA,QAChC,UAAU,KAAA,CAAM;AAAA,OAClB;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,gBAAA,GAAmB,EAAA,CAAG,SAAA,EAAW,MAAA,CAAO,qBAAqB,CAAC,CAAA;AAGpE,IAAA,MAAM,OAAO,QAAA,mBACX,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,kBAAA,EAAkB,UAAA;AAAA,QAClB,UAAA;AAAA,QACA,IAAA;AAAA,QACA,UAAA,EAAS,gBAAA;AAAA,QACT,SAAA,EAAW,gBAAA;AAAA,QACV,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,IAAA,EAAK;AAAA,QACjC,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,wBAEC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,OAAA,CAAQ,SAAR,EACC,QAAA,kBAAA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,kBAAA,EAAkB,UAAA;AAAA,UAClB,UAAA;AAAA,UACA,IAAA;AAAA,UACA,UAAA,EAAS,gBAAA;AAAA,UACT,SAAA,EAAW,gBAAA;AAAA,UACV,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,IAAA,EAAK;AAAA,UACjC,GAAG;AAAA;AAAA,OACN,EACF,CAAA;AAAA,0BACC,OAAA,CAAQ,OAAA,EAAR,EAAiB,QAAA,EAAA,IAAA,CAAK,YAAY,CAAA,EAAE;AAAA,KAAA,EACvC,CAAA;AAGF,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,uBACE,GAAA,CAAC,sBAAmB,IAAA,EAAM,EAAE,WAAW,KAAA,EAAO,QAAA,EAAU,QAAA,EAAS,EAC9D,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;;ACpErB,MAAM,mBAAA,GAAsB,UAAA,CAGjC,CAAC,KAAA,EAAO,IAAA,KAAS;AACjB,EAAA,MAAM,EAAE,SAAA,EAAW,QAAA,EAAU,GAAG,MAAK,GAAI,KAAA;AAEzC,EAAA,MAAM,EAAE,gBAAA,GAAmB,KAAA,EAAM,GAAI,sBAAA,QAA8B,EAAC;AACpE,EAAA,MAAM,OAAO,cAAA,EAAe;AAE5B,EAAA,MAAM,aAAa,aAAA,CAAc;AAAA,IAC/B,IAAA,EAAM,qBAAA;AAAA,IACN,IAAA,EAAM;AAAA,MACJ,SAAS,KAAA,CAAM,OAAA;AAAA,MACf,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,YAAA,EAAc,MAAM,YAAY,CAAA;AAAA,MAChC,UAAU,KAAA,CAAM;AAAA,KAClB;AAAA,IACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GACxC,CAAA;AAED,EAAA,MAAM,sBAAA,GAAyB,EAAA;AAAA,IAC7B,SAAA;AAAA,IACA,OAAO,qBAAqB,CAAA;AAAA,IAC5B,OAAO,4BAA4B;AAAA,GACrC;AAGA,EAAA,MAAM,OAAO,QAAA,mBACX,GAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,kBAAA,EAAkB,UAAA;AAAA,MAClB,IAAA;AAAA,MACA,UAAA,EAAS,uBAAA;AAAA,MACT,SAAA,EAAW,sBAAA;AAAA,MACV,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,IAAA,EAAK;AAAA,MACjC,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH,wBAEC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,OAAA,CAAQ,SAAR,EACC,QAAA,kBAAA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkB,UAAA;AAAA,QAClB,IAAA;AAAA,QACA,UAAA,EAAS,uBAAA;AAAA,QACT,SAAA,EAAW,sBAAA;AAAA,QACV,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,IAAA,EAAK;AAAA,QACjC,GAAG;AAAA;AAAA,KACN,EACF,CAAA;AAAA,wBACC,OAAA,CAAQ,OAAA,EAAR,EAAiB,QAAA,EAAA,IAAA,CAAK,YAAY,CAAA,EAAE;AAAA,GAAA,EACvC,CAAA;AAGF,EAAA,IAAI,gBAAA,EAAkB;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA,CAAC,sBAAmB,IAAA,EAAM,EAAE,WAAW,KAAA,EAAO,QAAA,EAAU,cAAA,EAAe,EACpE,QAAA,EAAA,IAAA,EACH,CAAA;AAEJ,CAAC,CAAA;AAED,mBAAA,CAAoB,WAAA,GAAc,qBAAA;;AChE3B,MAAM,iBAAA,GAAoB,UAAA,CAG/B,CAAC,KAAA,EAAO,IAAA,KAAS;AACjB,EAAA,MAAM,EAAE,aAAa,OAAA,EAAS,SAAA,EAAW,UAAU,IAAA,EAAM,GAAG,MAAK,GAAI,KAAA;AAErE,EAAA,MAAM,EAAE,gBAAA,GAAmB,KAAA,EAAM,GAAI,sBAAA,QAA8B,EAAC;AACpE,EAAA,MAAM,OAAO,cAAA,EAAe;AAE5B,EAAA,MAAM,aAAa,aAAA,CAAc;AAAA,IAC/B,IAAA,EAAM,mBAAA;AAAA,IACN,IAAA,EAAM;AAAA,MACJ,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,YAAA,EAAc,MAAM,YAAY,CAAA;AAAA,MAChC,UAAU,KAAA,CAAM,QAAA;AAAA,MAChB,QAAQ,KAAA,CAAM;AAAA,KAChB;AAAA,IACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,GACxC,CAAA;AAED,EAAA,MAAM,oBAAA,GAAuB,EAAA,CAAG,SAAA,EAAW,MAAA,CAAO,qBAAqB,CAAC,CAAA;AAExE,EAAA,MAAM,OAAO,QAAA,mBACX,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACC,kBAAA,EAAkB,UAAA;AAAA,MAClB,UAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA,EAAS,qBAAA;AAAA,MACT,SAAA,EAAW,oBAAA;AAAA,MACV,GAAG,IAAA;AAAA,MAEH;AAAA;AAAA,GACH,wBAEC,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,OAAA,CAAQ,SAAR,EACC,QAAA,kBAAA,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkB,UAAA;AAAA,QAClB,UAAA;AAAA,QACA,IAAA;AAAA,QACA,IAAA;AAAA,QACA,UAAA,EAAS,qBAAA;AAAA,QACT,SAAA,EAAW,oBAAA;AAAA,QACV,GAAG,IAAA;AAAA,QAEH;AAAA;AAAA,KACH,EACF,CAAA;AAAA,wBACC,OAAA,CAAQ,OAAA,EAAR,EAAiB,QAAA,EAAA,IAAA,CAAK,YAAY,CAAA,EAAE;AAAA,GAAA,EACvC,CAAA;AAGF,EAAA,IAAI,gBAAA,EAAkB;AACpB,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA,CAAC,sBAAmB,IAAA,EAAM,EAAE,WAAW,KAAA,EAAO,QAAA,EAAU,YAAA,EAAa,EAClE,QAAA,EAAA,IAAA,EACH,CAAA;AAEJ,CAAC,CAAA;AAED,iBAAA,CAAkB,WAAA,GAAc,mBAAA;;ACxDzB,MAAM,aAAA,GAAgB,UAAA;AAAA,EAC3B,CAAC,OAAO,IAAA,KAAS;AACf,IAAA,MAAM;AAAA,MACJ,UAAA,GAAa,OAAA;AAAA,MACb,QAAA;AAAA,MACA,QAAA,EAAU,cAAA;AAAA,MACV,eAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AACJ,IAAA,MAAM,WAAW,KAAA,EAAM;AAEvB,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,KAAK,CAAA;AAExD,IAAA,MAAM,YAAY,KAAA,CAAM,MAAA,GAAS,IAAI,KAAA,CAAM,CAAC,EAAE,EAAA,GAAK,EAAA;AACnD,IAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAI,SAAS,SAAS,CAAA;AAEtE,IAAA,MAAM,aAAa,cAAA,IAAkB,kBAAA;AAErC,IAAA,MAAM,YAAA,GACJ,KAAA,CAAM,IAAA,CAAK,CAACA,UAASA,KAAAA,CAAK,EAAA,KAAO,UAAU,CAAA,IAC3C,MAAM,IAAA,CAAK,CAACA,KAAAA,KAASA,KAAAA,CAAK,OAAO,SAAS,CAAA;AAE5C,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IACE,CAAC,cAAA,IACD,KAAA,CAAM,MAAA,GAAS,CAAA,IACf,CAAC,KAAA,CAAM,IAAA,CAAK,CAACA,KAAAA,KAASA,KAAAA,CAAK,EAAA,KAAO,kBAAkB,CAAA,EACpD;AACA,QAAA,qBAAA,CAAsB,KAAA,CAAM,CAAC,CAAA,CAAE,EAAE,CAAA;AAAA,MACnC;AAAA,IACF,CAAA,EAAG,CAAC,KAAA,EAAO,cAAA,EAAgB,kBAAkB,CAAC,CAAA;AAE9C,IAAA,MAAM,qBAAA,GAAwB,CAC5B,QAAA,KACG;AACH,MAAA,IAAI,UAAU,EAAA,EAAI;AAChB,QAAA,IAAI,mBAAmB,MAAA,EAAW;AAChC,UAAA,qBAAA,CAAsB,SAAS,EAAE,CAAA;AAAA,QACnC;AAEA,QAAA,QAAA,GAAW,SAAS,EAAE,CAAA;AAEtB,QAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,MACxB;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,EAAE,gBAAA,GAAmB,KAAA,EAAM,GAAI,sBAAA,QAA8B,EAAC;AACpE,IAAA,MAAM,cAAc,cAAA,EAAe;AAEnC,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,eAAA;AAAA,MACN,IAAA,EAAM;AAAA,QACJ,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,YAAA,EAAc,MAAM,YAAY,CAAA;AAAA,QAChC,OAAO,KAAA,CAAM;AAAA,OACf;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,gBAAA,GAAmB,EAAA,CAAG,SAAA,EAAW,MAAA,CAAO,qBAAqB,CAAC,CAAA;AAEpE,IAAA,MAAM,IAAA,mBACJ,IAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAS,IAAA;AAAA,QACT,IAAA,EAAM,aAAA;AAAA,QACN,gBAAgB,MAAM;AACpB,UAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,QACxB,CAAA;AAAA,QACA,SAAS,MAAM;AACb,UAAA,gBAAA,CAAiB,KAAK,CAAA;AAAA,QACxB,CAAA;AAAA,QAEA,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,OAAA,CAAQ,MAAA;AAAA,YAAR;AAAA,cACC,kBAAA,EAAkB,UAAA;AAAA,cAClB,UAAA;AAAA,cACA,IAAA,EAAM,WAAA;AAAA,cACN,IAAA,EAAM,EAAE,KAAA,EAAOC,gBAAA,EAAc;AAAA,cAC7B,SAAA,EAAW,gBAAA;AAAA,cACX,EAAA,EAAI,QAAA;AAAA,cACJ,UAAA,EAAS,gBAAA;AAAA,cACT,SAAS,MAAM;AACb,gBAAA,gBAAA,CAAiB,CAAC,aAAa,CAAA;AAAA,cACjC,CAAA;AAAA,cACC,GAAG,IAAA;AAAA,cAEH,QAAA,EAAA,YAAA,EAAc;AAAA;AAAA,WACjB;AAAA,0BACA,GAAA;AAAA,YAAC,OAAA,CAAQ,OAAA;AAAA,YAAR;AAAA,cACC,SAAA,EAAW,OAAO,wBAAwB,CAAA;AAAA,cAC1C,YAAA,EAAY,eAAA;AAAA,cAEZ,QAAA,kBAAA,GAAA;AAAA,gBAAC,OAAA;AAAA,gBAAA;AAAA,kBACC,QAAA,EAAU,YAAA;AAAA,kBACV,iBAAA,EAAmB,qBAAA;AAAA,kBACnB,KAAA;AAAA,kBACA,iBAAA,EAAiB,QAAA;AAAA,kBACjB,wBAAA,EAA0B,IAAA;AAAA,kBAEzB,QAAA,EAAA,CAAC,EAAE,KAAA,EAAAC,MAAAA,OACFA,MAAAA,CAAM,GAAA,CAAI,CAACF,KAAAA,qBACT,GAAA,CAAC,QAAQ,MAAA,EAAR,EAAgC,MAAMA,KAAAA,EACpC,QAAA,EAAAA,MAAK,KAAA,EAAA,EADaA,KAAAA,CAAK,KAE1B,CACD;AAAA;AAAA;AAEL;AAAA;AACF;AAAA;AAAA,KACF;AAGF,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,uBACE,GAAA,CAAC,sBAAmB,IAAA,EAAM,EAAE,WAAW,KAAA,EAAO,QAAA,EAAU,QAAA,EAAS,EAC9D,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,EAEJ;AACF,CAAA;AAEA,aAAA,CAAc,WAAA,GAAc,eAAA;;AC7I5B,MAAM,YAAA,GAAe,CAAC,EAAE,QAAA,EAAU,WAAU,KAAwB;AAClE,EAAA,QAAQ,QAAA;AAAU,IAChB,KAAK,QAAA;AACH,MAAA,uBAAO,GAAA,CAAC,aAAA,EAAA,EAAe,GAAI,SAAA,EAAkC,CAAA;AAAA,IAE/D,KAAK,cAAA;AACH,MAAA,uBACE,GAAA,CAAC,mBAAA,EAAA,EAAqB,GAAI,SAAA,EAAwC,CAAA;AAAA,IAGtE,KAAK,YAAA;AACH,MAAA,uBAAO,GAAA,CAAC,iBAAA,EAAA,EAAmB,GAAI,SAAA,EAAsC,CAAA;AAAA,IAEvE,KAAK,QAAA;AACH,MAAA,uBAAO,GAAA,CAAC,aAAA,EAAA,EAAe,GAAI,SAAA,EAAkC,CAAA;AAAA,IAE/D;AACE,MAAA,OAAO,IAAA;AAAA;AAEb,CAAA;AAQO,MAAM,sBAAsB,CAAC;AAAA,EAClC,eAAA;AAAA,EACA;AACF,CAAA,KAAgC;AAC9B,EAAA,MAAM,EAAE,aAAA,EAAe,UAAA,EAAW,GAAI,WAAW,cAAc,CAAA;AAC/D,EAAA,MAAM,gBAAgB,KAAA,EAAM;AAC5B,EAAA,MAAM,OAAO,cAAA,EAAe;AAE5B,EAAA,MAAM,YAAA,GAAe,QAAQ,MAAM;AACjC,IAAA,MAAM,WAAA,GAAc,UAAA,EAAY,GAAA,CAAI,CAAC,EAAA,KAAO;AAC1C,MAAA,OAAO,cAAc,IAAA,CAAK,CAAC,IAAA,KAAS,IAAA,CAAK,OAAO,EAAE,CAAA;AAAA,IACpD,CAAC,CAAA;AAED,IAAA,OAAO,aAAa,MAAA,CAAO,CAAC,SAAS,IAAA,KAAS,MAAS,KAAK,EAAC;AAAA,EAC/D,CAAA,EAAG,CAAC,UAAA,EAAY,aAAa,CAAC,CAAA;AAE9B,EAAA,MAAM,uBAAA,GAA0B,EAAA;AAAA,IAC9B,OAAO,qBAAqB,CAAA;AAAA,IAC5B,OAAO,0BAA0B;AAAA,GACnC;AAEA,EAAA,MAAM,YAAA,GAAe,SAAA,KAAc,YAAA,GAAeG,YAAA,GAAYC,WAAA;AAE9D,EAAA,uBACE,IAAA,CAAC,OAAA,EAAA,EAAQ,SAAA,EAAS,IAAA,EAChB,QAAA,EAAA;AAAA,oBAAA,GAAA;AAAA,MAAC,OAAA,CAAQ,MAAA;AAAA,MAAR;AAAA,QACC,IAAA;AAAA,QACA,UAAA,EAAW,OAAA;AAAA,QACX,EAAA,EAAI,aAAA;AAAA,QACJ,SAAA,EAAW,uBAAA;AAAA,QACX,UAAA,EAAS,0BAAA;AAAA,QACT,YAAA,EAAW,4BAAA;AAAA,QACX,IAAA,EAAM,YAAA;AAAA,QACL,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,OAAA;AAAQ;AAAA,KACvC;AAAA,oBACA,GAAA,CAAC,OAAA,CAAQ,OAAA,EAAR,EACC,QAAA,kBAAA,GAAA,CAAC,mBAAA,CAAoB,QAAA,EAApB,EAA6B,KAAA,EAAO,EAAE,gBAAA,EAAkB,IAAA,EAAK,EAC5D,QAAA,kBAAA,IAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,MAAA;AAAA,QACL,SAAA,EAAW,OAAO,0BAA0B,CAAA;AAAA,QAC5C,UAAA,EAAS,uBAAA;AAAA,QACT,iBAAA,EAAiB,aAAA;AAAA,QACjB,SAAA,EAAW,4BAAA;AAAA,QACV,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,IAAA,EAAK;AAAA,QAEjC,QAAA,EAAA;AAAA,UAAA,YAAA,CAAa,GAAA,CAAI,CAAC,IAAA,KAAS;AAC1B,YAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,EAAA,EAAG,GAAI,IAAA;AACpC,YAAA,uBACE,GAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBAEC,IAAA,EAAK,UAAA;AAAA,gBACL,UAAA,EAAS,uBAAA;AAAA,gBACT,SAAA,EAAS,EAAA;AAAA,gBACR,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,YAAA,EAAa;AAAA,gBAE1C,QAAA,kBAAA,GAAA;AAAA,kBAAC,YAAA;AAAA,kBAAA;AAAA,oBACC,QAAA;AAAA,oBACA,SAAA;AAAA,oBACA;AAAA;AAAA;AACF,eAAA;AAAA,cAVK,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,EAAE,CAAA;AAAA,aAWxB;AAAA,UAEJ,CAAC,CAAA;AAAA,UAEA,eAAA,EAAiB,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,qBAC3B,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cAEC,IAAA,EAAK,UAAA;AAAA,cACL,UAAA,EAAS,uBAAA;AAAA,cACR,GAAG,EAAE,CAAC,aAAa,GAAG,MAAM,YAAA,EAAa;AAAA,cAEzC,QAAA,EAAA;AAAA,aAAA;AAAA,YALI,mBAAmB,KAAK,CAAA;AAAA,WAOhC;AAAA;AAAA;AAAA,OAEL,CAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ,CAAA;;AC9EO,MAAM,UAAU,MAAA,CAAO,MAAA;AAAA,EAC5B,UAAA,CAAyC,SAAS,YAAA,CAAa,KAAA,EAAO,GAAA,EAAK;AACzE,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM;AAAA,MACJ,iBAAA;AAAA,MACA,SAAA;AAAA,MACA,QAAA;AAAA,MACA,KAAA;AAAA,MACA,SAAA,GAAY,YAAA;AAAA,MACZ,QAAA,GAAW,MAAA;AAAA,MACX,SAAA;AAAA,MACA,eAAA;AAAA,MACA,IAAA,GAAO,QAAA;AAAA,MACP,GAAG;AAAA,KACL,GAAI,cAAA;AAEJ,IAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,QAAA,CAA6B,EAAE,CAAA;AACzE,IAAA,MAAM,eAAA,GAAkB,OAAuB,IAAI,CAAA;AACnD,IAAA,MAAM,UAAA,GAAa,OAAuB,IAAI,CAAA;AAG9C,IAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,QAAA,CAAmB,EAAE,CAAA;AAEzD,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,MAAM,gBAAgB,KAAA,CAAM,IAAA;AAAA,QAC1B,eAAA,CAAgB,OAAA,EAAS,gBAAA,CAAiB,WAAW,KAAK;AAAC,OAC7D,CAAE,GAAA,CAAI,CAAC,EAAA,KAAO;AACZ,QAAA,OAAO,EAAA,CAAG,aAAa,SAAS,CAAA;AAAA,MAClC,CAAC,CAAA;AAED,MAAA,aAAA,CAAc,aAAa,CAAA;AAAA,IAC7B,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,IAAA,MAAM,OAAA,GAAU,WAAA,CAAY,CAAC,IAAA,KAA2B;AACtD,MAAA,gBAAA,CAAiB,CAAC,IAAA,KAAS,CAAC,GAAG,IAAA,EAAM,IAAI,CAAC,CAAA;AAAA,IAC5C,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,UAAA,GAAa,WAAA,CAAY,CAAC,IAAA,KAA2B;AACzD,MAAA,gBAAA;AAAA,QAAiB,CAAC,SAChB,IAAA,CAAK,MAAA,CAAO,CAAC,SAAA,KAAc,SAAA,CAAU,EAAA,KAAO,IAAA,CAAK,EAAE;AAAA,OACrD;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,WAAW,OAAA,EAAS;AACtB,QAAA,0BAAA,CAA2B,WAAW,OAAO,CAAA;AAAA,MAC/C;AAAA,IACF,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,IAAA,MAAM,aAAA,GAAgB,WAAA;AAAA,MACpB,CAAC,KAAA,KAA+C;AAC9C,QAAA,IAAI,WAAW,OAAA,EAAS;AACtB,UAAA,oBAAA,CAAqB,KAAA,EAAO,WAAW,OAAO,CAAA;AAAA,QAChD;AAEA,QAAA,SAAA,GAAY,KAAK,CAAA;AAAA,MACnB,CAAA;AAAA,MACA,CAAC,SAAS;AAAA,KACZ;AAEA,IAAA,MAAM,mBACH,QAAA,KAAa,UAAA,IAAc,cAAc,MAAA,GAAS,CAAA,IACnD,CAAC,CAAC,eAAA;AAEJ,IAAA,MAAM,KAAA,GAAQ,OAAA;AAAA,MACZ,OAAO;AAAA,QACL,aAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAA;AAAA,QACA,UAAA;AAAA,QACA,UAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA,OACF,CAAA;AAAA,MACA;AAAA,QACE,aAAA;AAAA,QACA,OAAA;AAAA,QACA,UAAA;AAAA,QACA,UAAA;AAAA,QACA,UAAA;AAAA,QACA,QAAA;AAAA,QACA;AAAA;AACF,KACF;AAEA,IAAA,MAAM,aAAA,GAAgB;AAAA,MACpB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AAEA,IAAA,MAAM,iBAAA,GAAoB,EAAA,CAAG,MAAA,CAAO,SAAS,GAAG,SAAS,CAAA;AAEzD,IAAA,MAAM,wBAAA,GAA2B,EAAA,CAAG,MAAA,CAAO,iBAAiB,CAAA,EAAG;AAAA,MAC7D,CAAC,MAAA,CAAO,CAAA,SAAA,EAAY,QAAQ,CAAA,CAAE,CAAC,GAAG;AAAA,KACnC,CAAA;AAED,IAAA,uBACE,GAAA,CAAC,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EACvB,QAAA,kBAAA,IAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,SAAA,KAAc,YAAA,GAAe,KAAA,GAAQ,QAAA;AAAA,QAChD,IAAA,EAAM,QAAA,KAAa,MAAA,GAAS,MAAA,GAAS,QAAA;AAAA,QACrC,UAAA,EAAW,QAAA;AAAA,QACX,SAAA,EAAW,iBAAA;AAAA,QACX,KAAA,EAAO,aAAA;AAAA,QACP,GAAA,EAAK,YAAA,CAAa,CAAC,UAAA,EAAY,GAAG,CAAC,CAAA;AAAA,QACnC,IAAA,EAAK,SAAA;AAAA,QACL,UAAA,EAAS,SAAA;AAAA,QACT,kBAAA,EAAkB,SAAA;AAAA,QAClB,YAAA,EAAY,eAAe,iBAAiB,CAAA,sDAAA,CAAA;AAAA,QAC5C,QAAA,EAAU,EAAA;AAAA,QACV,SAAA,EAAW,aAAA;AAAA,QACV,GAAG,IAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,GAAA,EAAK,YAAA,CAAa,CAAC,eAAA,EAAiB,GAAG,CAAC,CAAA;AAAA,cACxC,SAAA,EAAW,wBAAA;AAAA,cACX,SAAA,EAAW,SAAA,KAAc,YAAA,GAAe,KAAA,GAAQ,QAAA;AAAA,cAChD,IAAA,EAAM,QAAA,KAAa,MAAA,GAAS,MAAA,GAAS,QAAA;AAAA,cACrC,UAAA,EAAW,QAAA;AAAA,cACX,IAAA,EAAM,CAAA;AAAA,cACN,UAAA,EAAS,iBAAA;AAAA,cAER;AAAA;AAAA,WACH;AAAA,UAEC,gBAAA,oBACC,GAAA;AAAA,YAAC,mBAAA;AAAA,YAAA;AAAA,cACC,SAAA;AAAA,cACA;AAAA;AAAA;AACF;AAAA;AAAA,KAEJ,EACF,CAAA;AAAA,EAEJ,CAAC,CAAA;AAAA,EACD;AAAA;AAAA,IAEE,MAAA,EAAQ,aAAA;AAAA;AAAA,IAER,YAAA,EAAc,mBAAA;AAAA;AAAA,IAEd,UAAA,EAAY,iBAAA;AAAA;AAAA,IAEZ,MAAA,EAAQ;AAAA;AAEZ;AACA,OAAA,CAAQ,WAAA,GAAc,SAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"Toolbar-CMulzswf.js","sources":["../src/components/Toolbar/internal/ToolbarItemOverflowContext.tsx","../src/components/Toolbar/internal/ToolbarContext.tsx","../src/components/Toolbar/internal/utils/accessibility.ts","../src/components/Toolbar/internal/ToolbarItemWrapper.tsx","../src/components/Toolbar/parts.ts","../src/components/Toolbar/ToolbarButton.tsx","../src/components/Toolbar/ToolbarButtonToggle.tsx","../src/components/Toolbar/ToolbarButtonLink.tsx","../src/components/Toolbar/ToolbarSelect.tsx","../src/components/Toolbar/internal/ToolbarOverflowMenu.tsx","../src/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\ntype OverflowItemContextType = {\n isInOverflowMenu: boolean;\n};\n\nexport const OverflowItemContext = createContext<OverflowItemContextType>({\n isInOverflowMenu: false,\n});\n\nexport const useOverFlowItemContext = () => useContext(OverflowItemContext);\n","import { createContext, type RefObject, useContext } from \"react\";\nimport type {\n ToolbarItemProps,\n ToolbarOverflowTypes,\n ToolbarSize,\n} from \"../types\";\n\nexport type ToolbarContextProps = {\n overflowItems: ToolbarItemProps[];\n addItem: (element: ToolbarItemProps) => void;\n removeItem: (element: ToolbarItemProps) => void;\n toolbarRef: RefObject<HTMLDivElement>;\n orderedIds?: string[];\n overflow: ToolbarOverflowTypes;\n size: ToolbarSize;\n};\n\nexport const ToolbarContext = createContext<ToolbarContextProps>({\n overflowItems: [],\n addItem: () => {\n return;\n },\n removeItem: () => {\n return;\n },\n toolbarRef: { current: null },\n orderedIds: [],\n overflow: \"wrap\",\n size: \"xsmall\",\n});\n\nexport const useToolbarSize = (): ToolbarSize =>\n useContext(ToolbarContext).size;\n","import type { KeyboardEvent } from \"react\";\nimport { getKeyboardFocusableElements } from \"../../../../internal/functions\";\n\n/**\n * Returns visible toolbar controls, excluding controls inside open overlays.\n */\nexport function getToolbarElements(toolbarElement: HTMLElement) {\n const toolbarContent = toolbarElement.querySelector<HTMLElement>(\n '[data-anv=\"toolbar-content\"]',\n );\n\n const mainItems = getKeyboardFocusableElements(toolbarContent).filter(\n (item) => {\n const isVisible = !item.closest('[aria-hidden=\"true\"]');\n const isNotInMenuContent = !item.closest('[data-anv=\"menu-content\"]');\n const isNotInPopoverContent = !item.closest(\n '[data-anv=\"popover-content\"]',\n );\n return isVisible && isNotInMenuContent && isNotInPopoverContent;\n },\n );\n\n const overflowTrigger = toolbarElement.querySelector<HTMLElement>(\n '[data-anv=\"toolbar-overflow-trigger\"]',\n );\n\n return overflowTrigger ? [...mainItems, overflowTrigger] : mainItems;\n}\n\n/**\n * Applies roving tabindex and returns the active toolbar control.\n */\nexport function updateToolbarItemsTabIndex(\n toolbarElement: HTMLElement,\n activeItem?: Element | number,\n) {\n if (!toolbarElement) return;\n\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n\n let activeIndex = 0;\n\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\n items.forEach((item, index) => {\n item.setAttribute(\"tabindex\", index === activeIndex ? \"0\" : \"-1\");\n });\n\n return items[activeIndex];\n}\n\n/**\n * Moves roving focus along the toolbar's declared orientation.\n */\nexport function handleToolbarKeyDown(\n event: KeyboardEvent<HTMLElement>,\n toolbarElement: HTMLElement,\n) {\n if (!toolbarElement || event.altKey || event.ctrlKey || event.metaKey) return;\n\n const items = getToolbarElements(toolbarElement);\n if (!items.length) return;\n\n const activeElement = event.target as HTMLElement;\n if (!toolbarElement.contains(activeElement)) return;\n\n const activeItem = items.find(\n (item) =>\n item === activeElement ||\n Array.from(item.children).some((child) => child === activeElement),\n );\n\n const activeIndex = activeItem ? items.indexOf(activeItem) : -1;\n if (activeIndex === -1) return;\n\n let nextIndex = activeIndex;\n const isVertical =\n toolbarElement.getAttribute(\"aria-orientation\") === \"vertical\";\n\n switch (event.key) {\n case \"ArrowLeft\":\n case \"ArrowUp\":\n event.preventDefault();\n if (\n (isVertical && event.key === \"ArrowUp\") ||\n (!isVertical && event.key === \"ArrowLeft\")\n ) {\n nextIndex = activeIndex <= 0 ? items.length - 1 : activeIndex - 1;\n }\n break;\n\n case \"ArrowRight\":\n case \"ArrowDown\":\n event.preventDefault();\n if (\n (isVertical && event.key === \"ArrowDown\") ||\n (!isVertical && event.key === \"ArrowRight\")\n ) {\n nextIndex = activeIndex >= items.length - 1 ? 0 : activeIndex + 1;\n }\n break;\n\n case \"Home\":\n event.preventDefault();\n nextIndex = 0;\n break;\n\n case \"End\":\n event.preventDefault();\n nextIndex = items.length - 1;\n break;\n\n default:\n return;\n }\n\n updateToolbarItemsTabIndex(toolbarElement, nextIndex);\n (items[nextIndex] as HTMLElement)?.focus();\n}\n\n/** Moves focus through overflow menu items with Up, Down, Home, and End. */\nexport const handleMenuKeyboardNavigation = (\n event: KeyboardEvent<HTMLUListElement>,\n) => {\n const menuItems = Array.from(\n event.currentTarget.querySelectorAll('[role=\"menuitem\"]'),\n ).map((menuItem) => {\n return getKeyboardFocusableElements(menuItem as HTMLElement)[0] || menuItem;\n });\n\n if (!menuItems.length) return;\n\n const currentIndex = menuItems.indexOf(document.activeElement as HTMLElement);\n if (currentIndex === -1) return;\n\n let nextIndex = currentIndex;\n const isModifierKey = event.altKey || event.ctrlKey || event.metaKey;\n\n if (isModifierKey) return;\n\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowUp\": {\n event.preventDefault();\n const direction = event.key === \"ArrowDown\" ? 1 : -1;\n nextIndex =\n (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\n (menuItems[nextIndex] as HTMLElement)?.focus();\n};\n","import { useContext, useEffect, useId, useRef, useCallback } from \"react\";\nimport type { ToolbarItemProps } from \"../types\";\nimport { ToolbarContext } from \"./ToolbarContext\";\nimport { useIntersectionObserver } from \"../../../internal/hooks\";\nimport { updateToolbarItemsTabIndex } from \"./utils/accessibility\";\n\nimport styles from \"../Toolbar.module.scss\";\n\ntype ToolbarItemWrapperProps = {\n item: Omit<ToolbarItemProps, \"id\">;\n children: React.ReactNode;\n};\n\n/**\n * Registers a toolbar control for overflow and roving focus management.\n */\nexport const ToolbarItemWrapper = ({\n item,\n children,\n}: ToolbarItemWrapperProps) => {\n const { addItem, removeItem, toolbarRef, overflow } =\n useContext(ToolbarContext);\n const itemId = useId();\n const elementRef = useRef<HTMLDivElement | null>(null);\n const prevIntersectingRef = useRef<boolean>(true);\n const isCollapseMode = overflow === \"collapse\";\n\n const handleVisibilityChange = useCallback(\n (isVisible: boolean) => {\n if (!isCollapseMode || prevIntersectingRef.current === isVisible) return;\n\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\n const { isIntersecting, ref } = useIntersectionObserver({\n root: isCollapseMode ? toolbarRef.current : null,\n threshold: 1,\n initialIsIntersecting: false,\n onChange: handleVisibilityChange,\n });\n\n const setRefCallback = useCallback(\n (node: HTMLDivElement | null) => {\n elementRef.current = node;\n if (isCollapseMode) {\n ref(node);\n }\n },\n [ref, isCollapseMode],\n );\n\n const handleFocusOrClick = useCallback(() => {\n if (!toolbarRef.current || !elementRef.current) return;\n\n const currentElement = elementRef.current.querySelector(\"button, a, input\");\n if (!currentElement) return;\n\n updateToolbarItemsTabIndex(toolbarRef.current, currentElement);\n }, [toolbarRef]);\n\n useEffect(() => {\n const interactiveEl = elementRef.current?.querySelector(\"button, a, input\");\n if (!interactiveEl) return;\n\n interactiveEl.addEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.addEventListener(\"click\", handleFocusOrClick);\n\n return () => {\n interactiveEl.removeEventListener(\"focus\", handleFocusOrClick);\n interactiveEl.removeEventListener(\"click\", handleFocusOrClick);\n };\n }, [handleFocusOrClick]);\n\n useEffect(() => {\n if (isCollapseMode) {\n prevIntersectingRef.current = true;\n }\n }, [isCollapseMode]);\n\n const isHidden = isCollapseMode && !isIntersecting;\n\n return (\n <div\n ref={setRefCallback}\n className={styles[\"toolbar-item\"]}\n style={{ visibility: isHidden ? \"hidden\" : \"visible\" }}\n aria-hidden={isHidden}\n {...{ inert: isHidden ? \"\" : undefined }}\n data-id={itemId}\n data-anv=\"toolbar-item\"\n >\n {children}\n </div>\n );\n};\n\nexport type { ToolbarItemWrapperProps };\n","import { COMMON_PART } from \"../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for Toolbar's interactive sub-elements.\n *\n * Scope in-wrapper parts by the consumer's `data-cy` on the Toolbar root.\n * Overflow menu/items render in the popover top layer — target them by part\n * attribute directly.\n */\nexport const PARTS = {\n trigger: COMMON_PART.trigger,\n menu: COMMON_PART.menu,\n overflowItem: \"overflow-item\",\n /**\n * A leaf toolbar control (`Toolbar.Button` / `Toolbar.ButtonToggle`).\n * Discriminate with `aria-label`, `id`, or a consumer `data-*`. Callers may\n * override this (e.g. FilterBar stamps `trigger` on boolean toggles).\n */\n item: \"item\",\n} as const;\n","import { forwardRef } from \"react\";\nimport Button, { type ButtonProps } from \"../Button\";\nimport type { ToolbarItemAppearance, WithAriaLabelEnforcement } from \"./types\";\nimport type { DataTrackingId } from \"../../types\";\nimport { ANV_PART_ATTR } from \"../../internal/constants/anvParts\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\nimport { PARTS } from \"./parts\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\ntype ToolbarButtonBaseProps = Omit<\n ButtonProps,\n \"appearance\" | \"aria-label\" | \"children\" | \"onClick\"\n> & {\n /** Limited to Toolbar-supported appearances. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n /** Handles activation in either the toolbar or its overflow menu. */\n onClick: ButtonProps[\"onClick\"];\n};\n\nexport type ToolbarButtonProps =\n WithAriaLabelEnforcement<ToolbarButtonBaseProps> & DataTrackingId;\n\n/**\n * Button action that inherits its size from Toolbar. In collapse mode,\n * clipped actions move into the overflow menu; icon-only actions show a tooltip.\n *\n * @example\n * <ToolbarButton icon={BoldIcon} aria-label=\"Bold text\" />\n */\nexport const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>(\n (props, ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\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 const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n // Default PARTS.item before {...rest} so callers (e.g. FilterBar) can override.\n const item = children ? (\n <Button\n ref={ref}\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button\"\n className={buttonClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n >\n {children}\n </Button>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n ref={ref}\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button\"\n className={buttonClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"button\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n },\n);\n\nToolbarButton.displayName = \"ToolbarButton\";\n","import { forwardRef } from \"react\";\nimport ButtonToggle, { type ButtonToggleProps } from \"../ButtonToggle\";\nimport type { WithAriaLabelEnforcement } from \"./types\";\nimport type { DataTrackingId } from \"../../types\";\nimport { ANV_PART_ATTR } from \"../../internal/constants/anvParts\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\nimport { PARTS } from \"./parts\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\ntype ToolbarButtonToggleBaseProps = Omit<\n ButtonToggleProps,\n \"aria-label\" | \"children\"\n>;\n\nexport type ToolbarButtonToggleProps =\n WithAriaLabelEnforcement<ToolbarButtonToggleBaseProps> & DataTrackingId;\n\n/**\n * Toggle action that inherits its size from Toolbar. In collapse mode, clipped\n * toggles move into the overflow menu; icon-only toggles show a tooltip.\n *\n * @example\n * <ToolbarButtonToggle icon={BoldIcon} aria-label=\"Bold\" checked={isBold} />\n */\nexport const ToolbarButtonToggle = forwardRef<\n HTMLButtonElement,\n ToolbarButtonToggleProps\n>((props, _ref) => {\n const { className, children, ...rest } = props;\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\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 const buttonToggleClassNames = cx(\n className,\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-button-toggle-item\"],\n );\n\n // Default PARTS.item before {...rest} so callers (e.g. FilterBar) can override.\n const item = children ? (\n <ButtonToggle\n data-tracking-id={trackingId}\n size={size}\n data-anv=\"toolbar-button-toggle\"\n className={buttonToggleClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n >\n {children}\n </ButtonToggle>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonToggle\n data-tracking-id={trackingId}\n size={size}\n data-anv=\"toolbar-button-toggle\"\n className={buttonToggleClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"buttonToggle\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n});\n\nToolbarButtonToggle.displayName = \"ToolbarButtonToggle\";\n","import { forwardRef } from \"react\";\nimport ButtonLink, { type ButtonLinkProps } from \"../ButtonLink\";\nimport type { ToolbarItemAppearance, WithAriaLabelEnforcement } from \"./types\";\nimport type { DataTrackingId } from \"../../types\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\ntype ToolbarButtonLinkBaseProps = Omit<\n ButtonLinkProps,\n \"appearance\" | \"aria-label\" | \"children\"\n> & {\n /** Limited to Toolbar-supported appearances. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n};\n\nexport type ToolbarButtonLinkProps =\n WithAriaLabelEnforcement<ToolbarButtonLinkBaseProps> & DataTrackingId;\n\n/**\n * Link action that inherits its size from Toolbar. In collapse mode, clipped\n * links move into the overflow menu; icon-only links show a tooltip.\n *\n * @example\n * <ToolbarButtonLink icon={ExternalLinkIcon} href=\"/docs\" aria-label=\"Documentation\" />\n */\nexport const ToolbarButtonLink = forwardRef<\n HTMLAnchorElement,\n ToolbarButtonLinkProps\n>((props, _ref) => {\n const { appearance = \"ghost\", className, children, icon, ...rest } = props;\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\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 const buttonLinkClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n const item = children ? (\n <ButtonLink\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n icon={icon}\n data-anv=\"toolbar-button-link\"\n className={buttonLinkClassNames}\n {...rest}\n >\n {children}\n </ButtonLink>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonLink\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n icon={icon}\n data-anv=\"toolbar-button-link\"\n className={buttonLinkClassNames}\n {...rest}\n >\n {children}\n </ButtonLink>\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"buttonLink\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n});\n\nToolbarButtonLink.displayName = \"ToolbarButtonLink\";\n","import { forwardRef, useEffect, useId, useState } from \"react\";\nimport ArrowDropDown from \"@servicetitan/hammer-icon/mdi/round/arrow_drop_down.svg\";\nimport Listbox, { type ListboxItemType } from \"../Listbox\";\nimport Popover from \"../../internal/components/Popover\";\nimport type { ToolbarItemAppearance } from \"./types\";\nimport type { DataTrackingId } from \"../../types\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\ntype ToolbarSelectItem<T = Record<string, unknown>> = ListboxItemType<\n T & {\n id: string;\n }\n>;\n\nexport type ToolbarSelectProps<T = Record<string, unknown>> = Omit<\n React.ComponentPropsWithoutRef<typeof Popover.Button>,\n \"appearance\" | \"onChange\"\n> & {\n /** Limited to Toolbar-supported appearances. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n /** Called with the selected item's ID before the popover closes. */\n onChange?: (optionId: string) => void;\n /** Controls selection by item ID. Omit to select and manage the first item initially. */\n selected?: string;\n /** Options with unique IDs; the selected option's label is shown on the trigger. */\n items: ToolbarSelectItem<T>[];\n /** Accessible name for the options popover. */\n accessibleLabel: string;\n} & DataTrackingId;\n\n/**\n * Listbox selector that inherits its size from Toolbar. In collapse mode,\n * clipped selectors move into the overflow menu. Selection may be controlled.\n */\nexport const ToolbarSelect = forwardRef<HTMLButtonElement, ToolbarSelectProps>(\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\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n\n const defaultId = items.length > 0 ? items[0].id : \"\";\n const [internalSelectedId, setInternalSelectedId] = useState(defaultId);\n\n const selectedId = selectedItemId ?? internalSelectedId;\n\n const selectedItem =\n items.find((item) => item.id === selectedId) ||\n items.find((item) => item.id === defaultId);\n\n useEffect(() => {\n if (\n !selectedItemId &&\n items.length > 0 &&\n !items.some((item) => item.id === internalSelectedId)\n ) {\n setInternalSelectedId(items[0].id);\n }\n }, [items, selectedItemId, internalSelectedId]);\n\n const handleSelectionChange = (\n selected: ToolbarSelectItem<Record<string, unknown>> | undefined,\n ) => {\n if (selected?.id) {\n if (selectedItemId === undefined) {\n setInternalSelectedId(selected.id);\n }\n\n onChange?.(selected.id);\n\n setIsPopoverOpen(false);\n }\n };\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const toolbarSize = useToolbarSize();\n\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 const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n const item = (\n <Popover\n noPadding\n open={isPopoverOpen}\n onClickOutside={() => {\n setIsPopoverOpen(false);\n }}\n onClose={() => {\n setIsPopoverOpen(false);\n }}\n >\n <Popover.Button\n data-tracking-id={trackingId}\n appearance={appearance}\n size={toolbarSize}\n icon={{ after: ArrowDropDown }}\n className={buttonClassNames}\n id={selectId}\n data-anv=\"toolbar-select\"\n onClick={() => {\n setIsPopoverOpen(!isPopoverOpen);\n }}\n {...rest}\n >\n {selectedItem?.label}\n </Popover.Button>\n <Popover.Content\n className={styles[\"toolbar-select-content\"]}\n aria-label={accessibleLabel}\n >\n <Listbox\n selected={selectedItem}\n onSelectionChange={handleSelectionChange}\n items={items}\n aria-labelledby={selectId}\n disableAutoSelectOnFocus={true}\n >\n {({ items }) =>\n items.map((item) => (\n <Listbox.Option key={item.label} item={item}>\n {item.label}\n </Listbox.Option>\n ))\n }\n </Listbox>\n </Popover.Content>\n </Popover>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"select\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n },\n);\n\nToolbarSelect.displayName = \"ToolbarSelect\";\n","import { type ReactElement, useContext, useId, useMemo } from \"react\";\nimport MoreHoriz from \"@servicetitan/hammer-icon/mdi/round/more_horiz.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round//more_vert.svg\";\nimport type { ToolbarItemProps } from \"../types\";\nimport { ToolbarButton, type ToolbarButtonProps } from \"../ToolbarButton\";\nimport {\n ToolbarButtonToggle,\n type ToolbarButtonToggleProps,\n} from \"../ToolbarButtonToggle\";\nimport {\n ToolbarButtonLink,\n type ToolbarButtonLinkProps,\n} from \"../ToolbarButtonLink\";\nimport { ToolbarSelect, type ToolbarSelectProps } from \"../ToolbarSelect\";\nimport { ToolbarContext, useToolbarSize } from \"./ToolbarContext\";\nimport Popover from \"../../../internal/components/Popover\";\nimport { OverflowItemContext } from \"./ToolbarItemOverflowContext\";\nimport { handleMenuKeyboardNavigation } from \"./utils/accessibility\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport cx from \"classnames\";\nimport styles from \"../Toolbar.module.scss\";\n\nconst OverflowItem = ({ itemType, itemProps }: ToolbarItemProps) => {\n switch (itemType) {\n case \"button\":\n return <ToolbarButton {...(itemProps as ToolbarButtonProps)} />;\n\n case \"buttonToggle\":\n return (\n <ToolbarButtonToggle {...(itemProps as ToolbarButtonToggleProps)} />\n );\n\n case \"buttonLink\":\n return <ToolbarButtonLink {...(itemProps as ToolbarButtonLinkProps)} />;\n\n case \"select\":\n return <ToolbarSelect {...(itemProps as ToolbarSelectProps)} />;\n\n default:\n return null;\n }\n};\n\nexport type ToolbarOverflowMenuProps = {\n additionalItems?: ReactElement[];\n direction?: \"vertical\" | \"horizontal\";\n};\n\n/** Renders clipped actions in toolbar order, followed by custom actions. */\nexport const ToolbarOverflowMenu = ({\n additionalItems,\n direction,\n}: ToolbarOverflowMenuProps) => {\n const { overflowItems, orderedIds } = useContext(ToolbarContext);\n const menuTriggerId = useId();\n const size = useToolbarSize();\n\n const orderedItems = useMemo(() => {\n const allElements = orderedIds?.map((id) => {\n return overflowItems.find((item) => item.id === id);\n });\n\n return allElements?.filter((item) => item !== undefined) || [];\n }, [orderedIds, overflowItems]);\n\n const popoverButtonClassNames = cx(\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-overflow-trigger\"],\n );\n\n const overflowIcon = direction === \"horizontal\" ? MoreHoriz : MoreVert;\n\n return (\n <Popover noPadding>\n <Popover.Button\n size={size}\n appearance=\"ghost\"\n id={menuTriggerId}\n className={popoverButtonClassNames}\n data-anv=\"toolbar-overflow-trigger\"\n aria-label=\"Additional toolbar options\"\n icon={overflowIcon}\n {...{ [ANV_PART_ATTR]: PARTS.trigger }}\n />\n <Popover.Content>\n <OverflowItemContext.Provider value={{ isInOverflowMenu: true }}>\n <ul\n role=\"menu\"\n className={styles[\"toolbar-overflow-content\"]}\n data-anv=\"toolbar-overflow-menu\"\n aria-labelledby={menuTriggerId}\n onKeyDown={handleMenuKeyboardNavigation}\n {...{ [ANV_PART_ATTR]: PARTS.menu }}\n >\n {orderedItems.map((item) => {\n const { itemType, itemProps, id } = item;\n return (\n <li\n key={`${itemType}-${id}`}\n role=\"menuitem\"\n data-anv=\"toolbar-overflow-item\"\n data-id={id}\n {...{ [ANV_PART_ATTR]: PARTS.overflowItem }}\n >\n <OverflowItem\n itemType={itemType}\n itemProps={itemProps}\n id={id}\n />\n </li>\n );\n })}\n\n {additionalItems?.map((item, index) => (\n <li\n key={`additional-item-${index}`}\n role=\"menuitem\"\n data-anv=\"toolbar-overflow-item\"\n {...{ [ANV_PART_ATTR]: PARTS.overflowItem }}\n >\n {item}\n </li>\n ))}\n </ul>\n </OverflowItemContext.Provider>\n </Popover.Content>\n </Popover>\n );\n};\n","import { ToolbarButton } from \"./ToolbarButton\";\nimport { ToolbarButtonToggle } from \"./ToolbarButtonToggle\";\nimport { ToolbarButtonLink } from \"./ToolbarButtonLink\";\nimport { ToolbarSelect } from \"./ToolbarSelect\";\nimport type {\n ToolbarItemProps,\n ToolbarOverflowTypes,\n ToolbarSize,\n} from \"./types\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { DataAttributes, LayoutUtilProps } from \"../../types\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport {\n handleToolbarKeyDown,\n updateToolbarItemsTabIndex,\n} from \"./internal/utils/accessibility\";\nimport { ToolbarContext } from \"./internal/ToolbarContext\";\nimport Flex from \"../Flex\";\nimport { useMergeRefs } from \"../../hooks\";\nimport { ToolbarOverflowMenu } from \"./internal/ToolbarOverflowMenu\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\nexport type ToolbarProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps &\n DataAttributes & {\n /** Names the content associated with the toolbar in its accessible label. */\n associatedContent: string;\n /** Sets both the visual layout and arrow-key axis. Defaults to `horizontal`. */\n direction?: \"vertical\" | \"horizontal\";\n /** Wraps items or moves clipped items into a menu. Defaults to `wrap`. */\n overflow?: ToolbarOverflowTypes;\n /** Appends custom actions to the overflow menu, even when no toolbar items overflow. */\n additionalItems?: ReactElement[];\n /** Size inherited by the toolbar controls. Defaults to `xsmall`. */\n size?: ToolbarSize;\n };\n\n/**\n * Groups related controls with roving keyboard focus. Items can wrap or move\n * into an overflow menu when space is constrained.\n */\nexport const Toolbar = Object.assign(\n forwardRef<HTMLDivElement, ToolbarProps>(function ToolbarInner(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 size = \"xsmall\",\n ...rest\n } = componentProps;\n\n const [overflowItems, setOverflowItems] = useState<ToolbarItemProps[]>([]);\n const toolbarItemsRef = useRef<HTMLDivElement>(null);\n const toolbarRef = useRef<HTMLDivElement>(null);\n\n // Wrapper IDs preserve rendered order when hidden items move into overflow.\n const [orderedIds, setOrderedIds] = useState<string[]>([]);\n\n useEffect(() => {\n const newOrderedIds = Array.from(\n toolbarItemsRef.current?.querySelectorAll(\"[data-id]\") || [],\n ).map((el) => {\n return el.getAttribute(\"data-id\") as string;\n });\n\n setOrderedIds(newOrderedIds);\n }, [children]);\n\n const addItem = useCallback((item: ToolbarItemProps) => {\n setOverflowItems((prev) => [...prev, item]);\n }, []);\n\n const removeItem = useCallback((item: ToolbarItemProps) => {\n setOverflowItems((prev) =>\n prev.filter((component) => component.id !== item.id),\n );\n }, []);\n\n useEffect(() => {\n if (toolbarRef.current) {\n updateToolbarItemsTabIndex(toolbarRef.current);\n }\n }, [children]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (toolbarRef.current) {\n handleToolbarKeyDown(event, toolbarRef.current);\n }\n\n onKeyDown?.(event);\n },\n [onKeyDown],\n );\n\n const showOverflowMenu =\n (overflow === \"collapse\" && overflowItems.length > 0) ||\n !!additionalItems;\n\n const value = useMemo(\n () => ({\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow,\n size,\n }),\n [\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow,\n size,\n ],\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const toolbarClassNames = cx(styles[\"toolbar\"], className);\n\n const toolbarContentClassNames = cx(styles[\"toolbar-content\"], {\n [styles[`overflow-${overflow}`]]: overflow,\n });\n\n return (\n <ToolbarContext.Provider value={value}>\n <Flex\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 tabIndex={-1}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n <Flex\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 >\n {children}\n </Flex>\n\n {showOverflowMenu && (\n <ToolbarOverflowMenu\n direction={direction}\n additionalItems={additionalItems}\n />\n )}\n </Flex>\n </ToolbarContext.Provider>\n );\n }),\n {\n /** Button action that participates in toolbar sizing and overflow. */\n Button: ToolbarButton,\n /** Toggle action that participates in toolbar sizing and overflow. */\n ButtonToggle: ToolbarButtonToggle,\n /** Link action that participates in toolbar sizing and overflow. */\n ButtonLink: ToolbarButtonLink,\n /** Listbox selector that participates in toolbar sizing and overflow. */\n Select: ToolbarSelect,\n },\n);\nToolbar.displayName = \"Toolbar\";\n"],"names":["item","ArrowDropDown","items","MoreHoriz","MoreVert"],"mappings":"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"}
|
|
@@ -8,8 +8,8 @@ import { c as cx } from './index-De1g9FRV.js';
|
|
|
8
8
|
import { useTrackingId } from './useTrackingId.js';
|
|
9
9
|
import { B as ButtonLink } from './ButtonLink-DOFAxNvC.js';
|
|
10
10
|
import { S as SvgArrowDropDown } from './arrow_drop_down-ChAdBDux.js';
|
|
11
|
-
import { L as Listbox } from './Listbox-
|
|
12
|
-
import { P as Popover } from './AiMark-
|
|
11
|
+
import { L as Listbox } from './Listbox-CD9ZptSZ.js';
|
|
12
|
+
import { P as Popover } from './AiMark-BfmK30vL.js';
|
|
13
13
|
import { F as Flex } from './Flex-CRF7gj0_.js';
|
|
14
14
|
import { S as SvgMoreHoriz } from './more_horiz-DJgdQiy0.js';
|
|
15
15
|
import { S as SvgMoreVert } from './more_vert-C_lJSyxt.js';
|
|
@@ -501,4 +501,4 @@ Toolbar.displayName = "Toolbar";
|
|
|
501
501
|
const ToolbarElement = Toolbar;
|
|
502
502
|
|
|
503
503
|
export { Toolbar as T, ToolbarButton as a, ToolbarButtonLink as b, ToolbarSelect as c, ToolbarControlGroup as d, ToolbarSearchField as e, ToolbarElement as f };
|
|
504
|
-
//# sourceMappingURL=Toolbar-
|
|
504
|
+
//# sourceMappingURL=Toolbar-DGHZpFi9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toolbar-Do8KEjJJ.js","sources":["../src/beta/components/Toolbar/ToolbarButton.tsx","../src/beta/components/Toolbar/ToolbarButtonLink.tsx","../src/beta/components/Toolbar/ToolbarSelect.tsx","../src/beta/components/Toolbar/internal/ToolbarOverflowMenu.tsx","../src/beta/components/Toolbar/ToolbarControlGroup.tsx","../src/beta/components/Toolbar/ToolbarSearchField.tsx","../src/beta/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport Button, { type ButtonProps } from \"../../../components/Button\";\nimport type { ToolbarItemAppearance, WithAriaLabelEnforcement } from \"./types\";\nimport type { DataTrackingId } from \"../../../types\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../../../components/Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\nimport { PARTS } from \"./parts\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\n/** @extends Omit<ButtonProps, \"appearance\" | \"aria-label\" | \"children\"> */\ntype ToolbarButtonBaseProps = Omit<\n ButtonProps,\n \"appearance\" | \"aria-label\" | \"children\"\n> & {\n /** Visual emphasis within the toolbar. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n};\n\n/** @extends WithAriaLabelEnforcement<ToolbarButtonBaseProps> */\nexport type ToolbarButtonProps =\n WithAriaLabelEnforcement<ToolbarButtonBaseProps> & DataTrackingId;\n\n/**\n * Toolbar action that inherits its size and participates in roving focus and\n * collapse overflow. Icon-only actions show their `aria-label` in a tooltip.\n *\n * @example\n * <ToolbarButton icon={BoldIcon} aria-label=\"Bold text\" />\n */\nexport const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>(\n (props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\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 const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n // Default PARTS.item before {...rest} so callers (e.g. FilterBar) can override.\n const item = children ? (\n <Button\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button\"\n className={buttonClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n >\n {children}\n </Button>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button\"\n className={buttonClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"button\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n },\n);\n\nToolbarButton.displayName = \"ToolbarButton\";\n","import { forwardRef } from \"react\";\nimport ButtonLink, {\n type ButtonLinkProps,\n} from \"../../../components/ButtonLink\";\nimport type { ToolbarItemAppearance, WithAriaLabelEnforcement } from \"./types\";\nimport type { DataTrackingId } from \"../../../types\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../../../components/Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\n/** @extends Omit<ButtonLinkProps, \"appearance\" | \"aria-label\" | \"children\"> */\ntype ToolbarButtonLinkBaseProps = Omit<\n ButtonLinkProps,\n \"appearance\" | \"aria-label\" | \"children\"\n> & {\n /** Visual emphasis within the toolbar. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n};\n\n/** @extends WithAriaLabelEnforcement<ToolbarButtonLinkBaseProps> */\nexport type ToolbarButtonLinkProps =\n WithAriaLabelEnforcement<ToolbarButtonLinkBaseProps> & DataTrackingId;\n\n/**\n * Toolbar link that inherits its size and participates in roving focus and\n * collapse overflow. Icon-only links show their `aria-label` in a tooltip.\n *\n * @example\n * <ToolbarButtonLink icon={ExternalLinkIcon} href=\"/docs\" aria-label=\"Documentation\" />\n */\nexport const ToolbarButtonLink = forwardRef<\n HTMLAnchorElement,\n ToolbarButtonLinkProps\n>((props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\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 const buttonLinkClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n const item = children ? (\n <ButtonLink\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button-link\"\n className={buttonLinkClassNames}\n {...rest}\n >\n {children}\n </ButtonLink>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonLink\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button-link\"\n className={buttonLinkClassNames}\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"buttonLink\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n});\n\nToolbarButtonLink.displayName = \"ToolbarButtonLink\";\n","import { forwardRef, useEffect, useId, useState } from \"react\";\nimport ArrowDropDown from \"@servicetitan/hammer-icon/mdi/round/arrow_drop_down.svg\";\nimport Listbox, { type ListboxItemType } from \"../../../components/Listbox\";\nimport Popover from \"../../../internal/components/Popover\";\nimport type { ToolbarItemAppearance } from \"./types\";\nimport type { DataTrackingId } from \"../../../types\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\ntype ToolbarSelectItem<T = Record<string, unknown>> = ListboxItemType<\n T & {\n id: string;\n }\n>;\n\n/** @extends Omit<React.ComponentPropsWithoutRef<typeof Popover.Button>, \"appearance\" | \"onChange\"> */\nexport type ToolbarSelectProps<T = Record<string, unknown>> = Omit<\n React.ComponentPropsWithoutRef<typeof Popover.Button>,\n \"appearance\" | \"onChange\"\n> & {\n /** Visual emphasis within the toolbar. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n /** Called with the selected item's ID. */\n onChange?: (optionId: string) => void;\n /** Controlled selected ID. Omit to select and manage the first item internally. */\n selected?: string;\n /** Options displayed in the listbox; the first is the uncontrolled default. */\n items: ToolbarSelectItem<T>[];\n /** Accessible name for the options popover, such as \"Status options\". */\n accessibleLabel: string;\n} & DataTrackingId;\n\n/**\n * Single-select toolbar control that inherits its size and participates in\n * roving focus and collapse overflow.\n */\nexport const ToolbarSelect = forwardRef<HTMLButtonElement, ToolbarSelectProps>(\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\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n\n const defaultId = items.length > 0 ? items[0].id : \"\";\n const [internalSelectedId, setInternalSelectedId] = useState(defaultId);\n\n const selectedId = selectedItemId ?? internalSelectedId;\n\n const selectedItem =\n items.find((item) => item.id === selectedId) ||\n items.find((item) => item.id === defaultId);\n\n useEffect(() => {\n if (\n !selectedItemId &&\n items.length > 0 &&\n !items.some((item) => item.id === internalSelectedId)\n ) {\n setInternalSelectedId(items[0].id);\n }\n }, [items, selectedItemId, internalSelectedId]);\n\n const handleSelectionChange = (\n selected: ToolbarSelectItem<Record<string, unknown>> | undefined,\n ) => {\n if (selected?.id) {\n if (selectedItemId === undefined) {\n setInternalSelectedId(selected.id);\n }\n\n onChange?.(selected.id);\n\n setIsPopoverOpen(false);\n }\n };\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const toolbarSize = useToolbarSize();\n\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 const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n const item = (\n <Popover\n noPadding\n open={isPopoverOpen}\n onClickOutside={() => {\n setIsPopoverOpen(false);\n }}\n onClose={() => {\n setIsPopoverOpen(false);\n }}\n >\n <Popover.Button\n data-tracking-id={trackingId}\n appearance={appearance}\n size={toolbarSize}\n icon={{ after: ArrowDropDown }}\n className={buttonClassNames}\n id={selectId}\n data-anv=\"toolbar-select\"\n onClick={() => {\n setIsPopoverOpen(!isPopoverOpen);\n }}\n {...rest}\n >\n {selectedItem?.label}\n </Popover.Button>\n <Popover.Content\n className={styles[\"toolbar-select-content\"]}\n aria-label={accessibleLabel}\n >\n <Listbox\n selected={selectedItem}\n onSelectionChange={handleSelectionChange}\n items={items}\n aria-labelledby={selectId}\n disableAutoSelectOnFocus={true}\n >\n {({ items }) =>\n items.map((item) => (\n <Listbox.Option key={item.label} item={item}>\n {item.label}\n </Listbox.Option>\n ))\n }\n </Listbox>\n </Popover.Content>\n </Popover>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"select\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n },\n);\n\nToolbarSelect.displayName = \"ToolbarSelect\";\n","import { type ReactElement, useContext, useId, useMemo } from \"react\";\nimport MoreHoriz from \"@servicetitan/hammer-icon/mdi/round/more_horiz.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round//more_vert.svg\";\nimport type { ToolbarItemProps } from \"../types\";\nimport { ToolbarButton, type ToolbarButtonProps } from \"../ToolbarButton\";\nimport {\n ToolbarButtonToggle,\n type ToolbarButtonToggleProps,\n} from \"../ToolbarButtonToggle\";\nimport {\n ToolbarButtonLink,\n type ToolbarButtonLinkProps,\n} from \"../ToolbarButtonLink\";\nimport { ToolbarSelect, type ToolbarSelectProps } from \"../ToolbarSelect\";\nimport { ToolbarContext, useToolbarSize } from \"./ToolbarContext\";\nimport Popover from \"../../../../internal/components/Popover\";\nimport Icon from \"../../../../components/Icon\";\nimport { OverflowItemContext } from \"./ToolbarItemOverflowContext\";\nimport { handleMenuKeyboardNavigation } from \"./utils/accessibility\";\nimport { ANV_PART_ATTR } from \"../../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport cx from \"classnames\";\nimport styles from \"../Toolbar.module.scss\";\n\nconst OverflowItem = ({ itemType, itemProps }: ToolbarItemProps) => {\n switch (itemType) {\n case \"button\":\n return <ToolbarButton {...(itemProps as ToolbarButtonProps)} />;\n\n case \"buttonToggle\":\n return (\n <ToolbarButtonToggle {...(itemProps as ToolbarButtonToggleProps)} />\n );\n\n case \"buttonLink\":\n return <ToolbarButtonLink {...(itemProps as ToolbarButtonLinkProps)} />;\n\n case \"select\":\n return <ToolbarSelect {...(itemProps as ToolbarSelectProps)} />;\n\n default:\n return null;\n }\n};\n\nexport type ToolbarOverflowMenuProps = {\n /** Items appended after controls collapsed from the toolbar. */\n additionalItems?: ReactElement[];\n /** Parent orientation used to choose the overflow icon. */\n direction?: \"vertical\" | \"horizontal\";\n};\n\n/**\n * Recreates clipped controls in their original order, followed by any\n * consumer-supplied overflow items.\n */\nexport const ToolbarOverflowMenu = ({\n additionalItems,\n direction,\n}: ToolbarOverflowMenuProps) => {\n const { overflowItems, orderedIds } = useContext(ToolbarContext);\n const menuTriggerId = useId();\n const size = useToolbarSize();\n\n const orderedItems = useMemo(() => {\n const allElements = orderedIds?.map((id) => {\n return overflowItems.find((item) => item.id === id);\n });\n\n return allElements?.filter((item) => item !== undefined) || [];\n }, [orderedIds, overflowItems]);\n\n const popoverButtonClassNames = cx(\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-overflow-trigger\"],\n );\n\n const overflowIcon = direction === \"horizontal\" ? MoreHoriz : MoreVert;\n\n return (\n <Popover noPadding>\n <Popover.Button\n size={size}\n appearance=\"ghost\"\n id={menuTriggerId}\n className={popoverButtonClassNames}\n data-anv=\"toolbar-overflow-trigger\"\n aria-label=\"Additional toolbar options\"\n {...{ [ANV_PART_ATTR]: PARTS.trigger }}\n >\n <Icon svg={overflowIcon} size={size === \"xsmall\" ? \"small\" : size} />\n </Popover.Button>\n <Popover.Content>\n <OverflowItemContext.Provider value={{ isInOverflowMenu: true }}>\n <ul\n role=\"menu\"\n className={styles[\"toolbar-overflow-content\"]}\n data-anv=\"toolbar-overflow-menu\"\n aria-labelledby={menuTriggerId}\n onKeyDown={handleMenuKeyboardNavigation}\n {...{ [ANV_PART_ATTR]: PARTS.menu }}\n >\n {orderedItems.map((item) => {\n const { itemType, itemProps, id } = item;\n return (\n <li\n key={`${itemType}-${id}`}\n role=\"menuitem\"\n data-anv=\"toolbar-overflow-item\"\n data-id={id}\n {...{ [ANV_PART_ATTR]: PARTS.overflowItem }}\n >\n <OverflowItem\n itemType={itemType}\n itemProps={itemProps}\n id={id}\n />\n </li>\n );\n })}\n\n {additionalItems?.map((item, index) => (\n <li\n key={`additional-item-${index}`}\n role=\"menuitem\"\n data-anv=\"toolbar-overflow-item\"\n {...{ [ANV_PART_ATTR]: PARTS.overflowItem }}\n >\n {item}\n </li>\n ))}\n </ul>\n </OverflowItemContext.Provider>\n </Popover.Content>\n </Popover>\n );\n};\n","import { type ComponentPropsWithoutRef, forwardRef, useContext } from \"react\";\nimport type { LayoutUtilProps } from \"../../../types\";\nimport { Flex } from \"../../../components/Flex\";\nimport { ToolbarContext } from \"./internal/ToolbarContext\";\n\nimport styles from \"./ToolbarControlGroup.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<'div'>\n * @extends LayoutUtilProps\n */\nexport type ToolbarControlGroupProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /** Accessible group name. Defaults to `Toolbar controls`. */\n \"aria-label\"?: string;\n };\n\nconst ToolbarControlGroupElement = forwardRef<\n HTMLDivElement,\n ToolbarControlGroupProps\n>((props, ref) => {\n const { children, \"aria-label\": ariaLabel, ...rest } = props;\n const { overflow } = useContext(ToolbarContext);\n\n return (\n <Flex\n ref={ref}\n alignItems=\"center\"\n gap={1}\n wrap={overflow === \"collapse\" ? \"nowrap\" : \"wrap\"}\n data-anv=\"toolbar-control-group\"\n role=\"group\"\n aria-label={ariaLabel ? ariaLabel : \"Toolbar controls\"}\n className={styles[\"toolbar-control-group\"]}\n {...rest}\n >\n {children}\n </Flex>\n );\n});\n\nToolbarControlGroupElement.displayName = \"ToolbarControlGroup\";\n\n/**\n * Semantically groups related toolbar controls. The group wraps with the\n * toolbar unless collapse overflow is active.\n */\nexport const ToolbarControlGroup = ToolbarControlGroupElement;\n","import { forwardRef, type Ref } from \"react\";\nimport {\n type SearchFieldProps,\n SearchField,\n} from \"../../../components/SearchField/internal/SearchField\";\n\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"./parts\";\n\nimport cx from \"classnames\";\nimport styles from \"./ToolbarSearchField.module.scss\";\n\n/** @extends Omit<SearchFieldProps, \"size\"> */\nexport type ToolbarSearchFieldProps = Omit<SearchFieldProps, \"size\">;\n\n/**\n * Search field styled for toolbar layouts. Its size is inherited from the\n * surrounding toolbar rather than set directly.\n */\nexport const ToolbarSearchField = forwardRef(\n (props: ToolbarSearchFieldProps, ref: Ref<HTMLInputElement>) => {\n const { className, ...rest } = props;\n const size = useToolbarSize();\n\n const searchFieldStyles = cx(styles[\"toolbar-search-field\"], className);\n\n return (\n <div className={styles[\"toolbar-search-field-container\"]}>\n <SearchField\n ref={ref}\n className={searchFieldStyles}\n size={size}\n data-anv=\"toolbar-search-field\"\n {...rest}\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n </div>\n );\n },\n);\n\nToolbarSearchField.displayName = \"ToolbarSearchField\";\n","import { ToolbarButton } from \"./ToolbarButton\";\nimport { ToolbarButtonToggle } from \"./ToolbarButtonToggle\";\nimport { ToolbarButtonLink } from \"./ToolbarButtonLink\";\nimport { ToolbarSelect } from \"./ToolbarSelect\";\nimport type {\n ToolbarItemProps,\n ToolbarOverflowTypes,\n ToolbarSize,\n} from \"./types\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { DataAttributes, LayoutUtilProps } from \"../../../types\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks\";\nimport {\n handleToolbarKeyDown,\n updateToolbarItemsTabIndex,\n} from \"./internal/utils/accessibility\";\nimport { ToolbarContext } from \"./internal/ToolbarContext\";\nimport Flex from \"../../../components/Flex\";\nimport { useMergeRefs } from \"../../../hooks\";\nimport { ToolbarOverflowMenu } from \"./internal/ToolbarOverflowMenu\";\nimport { ToolbarControlGroup } from \"./ToolbarControlGroup\";\nimport { ToolbarSearchField } from \"./ToolbarSearchField\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type ToolbarProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps &\n DataAttributes & {\n /** Names the content controlled by the toolbar in its accessible label. */\n associatedContent: string;\n /**\n * Sets both the control layout and arrow-key navigation axis.\n * @default \"horizontal\"\n */\n direction?: \"vertical\" | \"horizontal\";\n /**\n * Wraps controls or moves controls that no longer fit into an overflow menu.\n * @default \"wrap\"\n */\n overflow?: ToolbarOverflowTypes;\n /** Items appended to the overflow menu, whether or not controls have collapsed. */\n additionalItems?: ReactElement[];\n /** Size inherited by the toolbar's controls. Defaults to `xsmall`. */\n size?: ToolbarSize;\n };\n\n/**\n * Groups related controls with roving focus and orientation-aware arrow-key\n * navigation. In collapse mode, controls that no longer fit move into an overflow menu.\n */\nexport const Toolbar = Object.assign(\n forwardRef<HTMLDivElement, ToolbarProps>(function ToolbarInner(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 size = \"xsmall\",\n ...rest\n } = componentProps;\n\n const [overflowItems, setOverflowItems] = useState<ToolbarItemProps[]>([]);\n const toolbarItemsRef = useRef<HTMLDivElement>(null);\n const toolbarRef = useRef<HTMLDivElement>(null);\n\n const [orderedIds, setOrderedIds] = useState<string[]>([]);\n\n useEffect(() => {\n const newOrderedIds = Array.from(\n toolbarItemsRef.current?.querySelectorAll(\"[data-id]\") || [],\n ).map((el) => {\n return el.getAttribute(\"data-id\") as string;\n });\n\n setOrderedIds(newOrderedIds);\n }, [children]);\n\n const addItem = useCallback((item: ToolbarItemProps) => {\n setOverflowItems((prev) => [...prev, item]);\n }, []);\n\n const removeItem = useCallback((item: ToolbarItemProps) => {\n setOverflowItems((prev) =>\n prev.filter((component) => component.id !== item.id),\n );\n }, []);\n\n useEffect(() => {\n if (toolbarRef.current) {\n updateToolbarItemsTabIndex(toolbarRef.current);\n }\n }, [children]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (toolbarRef.current) {\n handleToolbarKeyDown(event, toolbarRef.current);\n }\n\n onKeyDown?.(event);\n },\n [onKeyDown],\n );\n\n const showOverflowMenu =\n (overflow === \"collapse\" && overflowItems.length > 0) ||\n !!additionalItems;\n\n const value = useMemo(\n () => ({\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow,\n size,\n }),\n [\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow,\n size,\n ],\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const toolbarClassNames = cx(styles[\"toolbar\"], className);\n\n const toolbarContentClassNames = cx(styles[\"toolbar-content\"], {\n [styles[`overflow-${overflow}`]]: overflow,\n });\n\n return (\n <ToolbarContext.Provider value={value}>\n <Flex\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 tabIndex={-1}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n <Flex\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 data-overflow={overflow}\n >\n {children}\n </Flex>\n\n {showOverflowMenu && (\n <ToolbarOverflowMenu\n direction={direction}\n additionalItems={additionalItems}\n />\n )}\n </Flex>\n </ToolbarContext.Provider>\n );\n }),\n {\n /** Action button that participates in toolbar focus and overflow behavior. */\n Button: ToolbarButton,\n /** Toggle button that participates in toolbar focus and overflow behavior. */\n ButtonToggle: ToolbarButtonToggle,\n /** Link-styled action that participates in toolbar focus and overflow behavior. */\n ButtonLink: ToolbarButtonLink,\n /** Single-select control that participates in toolbar focus and overflow behavior. */\n Select: ToolbarSelect,\n /** Groups related controls within the toolbar. */\n ControlGroup: ToolbarControlGroup,\n /** Search field that inherits the toolbar's control size. */\n Search: ToolbarSearchField,\n },\n);\nToolbar.displayName = \"Toolbar\";\nexport const ToolbarElement = Toolbar;\n"],"names":["styles","item","ArrowDropDown","items","MoreHoriz","MoreVert"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Toolbar-DGHZpFi9.js","sources":["../src/beta/components/Toolbar/ToolbarButton.tsx","../src/beta/components/Toolbar/ToolbarButtonLink.tsx","../src/beta/components/Toolbar/ToolbarSelect.tsx","../src/beta/components/Toolbar/internal/ToolbarOverflowMenu.tsx","../src/beta/components/Toolbar/ToolbarControlGroup.tsx","../src/beta/components/Toolbar/ToolbarSearchField.tsx","../src/beta/components/Toolbar/Toolbar.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport Button, { type ButtonProps } from \"../../../components/Button\";\nimport type { ToolbarItemAppearance, WithAriaLabelEnforcement } from \"./types\";\nimport type { DataTrackingId } from \"../../../types\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../../../components/Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\nimport { PARTS } from \"./parts\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\n/** @extends Omit<ButtonProps, \"appearance\" | \"aria-label\" | \"children\"> */\ntype ToolbarButtonBaseProps = Omit<\n ButtonProps,\n \"appearance\" | \"aria-label\" | \"children\"\n> & {\n /** Visual emphasis within the toolbar. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n};\n\n/** @extends WithAriaLabelEnforcement<ToolbarButtonBaseProps> */\nexport type ToolbarButtonProps =\n WithAriaLabelEnforcement<ToolbarButtonBaseProps> & DataTrackingId;\n\n/**\n * Toolbar action that inherits its size and participates in roving focus and\n * collapse overflow. Icon-only actions show their `aria-label` in a tooltip.\n *\n * @example\n * <ToolbarButton icon={BoldIcon} aria-label=\"Bold text\" />\n */\nexport const ToolbarButton = forwardRef<HTMLButtonElement, ToolbarButtonProps>(\n (props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\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 const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n // Default PARTS.item before {...rest} so callers (e.g. FilterBar) can override.\n const item = children ? (\n <Button\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button\"\n className={buttonClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n >\n {children}\n </Button>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <Button\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button\"\n className={buttonClassNames}\n {...{ [ANV_PART_ATTR]: PARTS.item }}\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"button\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n },\n);\n\nToolbarButton.displayName = \"ToolbarButton\";\n","import { forwardRef } from \"react\";\nimport ButtonLink, {\n type ButtonLinkProps,\n} from \"../../../components/ButtonLink\";\nimport type { ToolbarItemAppearance, WithAriaLabelEnforcement } from \"./types\";\nimport type { DataTrackingId } from \"../../../types\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport Tooltip from \"../../../components/Tooltip\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\n/** @extends Omit<ButtonLinkProps, \"appearance\" | \"aria-label\" | \"children\"> */\ntype ToolbarButtonLinkBaseProps = Omit<\n ButtonLinkProps,\n \"appearance\" | \"aria-label\" | \"children\"\n> & {\n /** Visual emphasis within the toolbar. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n};\n\n/** @extends WithAriaLabelEnforcement<ToolbarButtonLinkBaseProps> */\nexport type ToolbarButtonLinkProps =\n WithAriaLabelEnforcement<ToolbarButtonLinkBaseProps> & DataTrackingId;\n\n/**\n * Toolbar link that inherits its size and participates in roving focus and\n * collapse overflow. Icon-only links show their `aria-label` in a tooltip.\n *\n * @example\n * <ToolbarButtonLink icon={ExternalLinkIcon} href=\"/docs\" aria-label=\"Documentation\" />\n */\nexport const ToolbarButtonLink = forwardRef<\n HTMLAnchorElement,\n ToolbarButtonLinkProps\n>((props, _ref) => {\n const { appearance = \"ghost\", className, children, ...rest } = props;\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const size = useToolbarSize();\n\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 const buttonLinkClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n const item = children ? (\n <ButtonLink\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button-link\"\n className={buttonLinkClassNames}\n {...rest}\n >\n {children}\n </ButtonLink>\n ) : (\n <Tooltip>\n <Tooltip.Trigger>\n <ButtonLink\n data-tracking-id={trackingId}\n appearance={appearance}\n size={size}\n data-anv=\"toolbar-button-link\"\n className={buttonLinkClassNames}\n {...rest}\n />\n </Tooltip.Trigger>\n <Tooltip.Content>{rest[\"aria-label\"]}</Tooltip.Content>\n </Tooltip>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"buttonLink\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n});\n\nToolbarButtonLink.displayName = \"ToolbarButtonLink\";\n","import { forwardRef, useEffect, useId, useState } from \"react\";\nimport ArrowDropDown from \"@servicetitan/hammer-icon/mdi/round/arrow_drop_down.svg\";\nimport Listbox, { type ListboxItemType } from \"../../../components/Listbox\";\nimport Popover from \"../../../internal/components/Popover\";\nimport type { ToolbarItemAppearance } from \"./types\";\nimport type { DataTrackingId } from \"../../../types\";\nimport { useOverFlowItemContext } from \"./internal/ToolbarItemOverflowContext\";\nimport { ToolbarItemWrapper } from \"./internal/ToolbarItemWrapper\";\nimport { useTrackingId } from \"../../../hooks\";\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\ntype ToolbarSelectItem<T = Record<string, unknown>> = ListboxItemType<\n T & {\n id: string;\n }\n>;\n\n/** @extends Omit<React.ComponentPropsWithoutRef<typeof Popover.Button>, \"appearance\" | \"onChange\"> */\nexport type ToolbarSelectProps<T = Record<string, unknown>> = Omit<\n React.ComponentPropsWithoutRef<typeof Popover.Button>,\n \"appearance\" | \"onChange\"\n> & {\n /** Visual emphasis within the toolbar. Defaults to `ghost`. */\n appearance?: ToolbarItemAppearance;\n /** Called with the selected item's ID. */\n onChange?: (optionId: string) => void;\n /** Controlled selected ID. Omit to select and manage the first item internally. */\n selected?: string;\n /** Options displayed in the listbox; the first is the uncontrolled default. */\n items: ToolbarSelectItem<T>[];\n /** Accessible name for the options popover, such as \"Status options\". */\n accessibleLabel: string;\n} & DataTrackingId;\n\n/**\n * Single-select toolbar control that inherits its size and participates in\n * roving focus and collapse overflow.\n */\nexport const ToolbarSelect = forwardRef<HTMLButtonElement, ToolbarSelectProps>(\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\n const [isPopoverOpen, setIsPopoverOpen] = useState(false);\n\n const defaultId = items.length > 0 ? items[0].id : \"\";\n const [internalSelectedId, setInternalSelectedId] = useState(defaultId);\n\n const selectedId = selectedItemId ?? internalSelectedId;\n\n const selectedItem =\n items.find((item) => item.id === selectedId) ||\n items.find((item) => item.id === defaultId);\n\n useEffect(() => {\n if (\n !selectedItemId &&\n items.length > 0 &&\n !items.some((item) => item.id === internalSelectedId)\n ) {\n setInternalSelectedId(items[0].id);\n }\n }, [items, selectedItemId, internalSelectedId]);\n\n const handleSelectionChange = (\n selected: ToolbarSelectItem<Record<string, unknown>> | undefined,\n ) => {\n if (selected?.id) {\n if (selectedItemId === undefined) {\n setInternalSelectedId(selected.id);\n }\n\n onChange?.(selected.id);\n\n setIsPopoverOpen(false);\n }\n };\n\n const { isInOverflowMenu = false } = useOverFlowItemContext?.() || {};\n const toolbarSize = useToolbarSize();\n\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 const buttonClassNames = cx(className, styles[\"toolbar-button-item\"]);\n\n const item = (\n <Popover\n noPadding\n open={isPopoverOpen}\n onClickOutside={() => {\n setIsPopoverOpen(false);\n }}\n onClose={() => {\n setIsPopoverOpen(false);\n }}\n >\n <Popover.Button\n data-tracking-id={trackingId}\n appearance={appearance}\n size={toolbarSize}\n icon={{ after: ArrowDropDown }}\n className={buttonClassNames}\n id={selectId}\n data-anv=\"toolbar-select\"\n onClick={() => {\n setIsPopoverOpen(!isPopoverOpen);\n }}\n {...rest}\n >\n {selectedItem?.label}\n </Popover.Button>\n <Popover.Content\n className={styles[\"toolbar-select-content\"]}\n aria-label={accessibleLabel}\n >\n <Listbox\n selected={selectedItem}\n onSelectionChange={handleSelectionChange}\n items={items}\n aria-labelledby={selectId}\n disableAutoSelectOnFocus={true}\n >\n {({ items }) =>\n items.map((item) => (\n <Listbox.Option key={item.label} item={item}>\n {item.label}\n </Listbox.Option>\n ))\n }\n </Listbox>\n </Popover.Content>\n </Popover>\n );\n\n if (isInOverflowMenu) {\n return item;\n }\n\n return (\n <ToolbarItemWrapper item={{ itemProps: props, itemType: \"select\" }}>\n {item}\n </ToolbarItemWrapper>\n );\n },\n);\n\nToolbarSelect.displayName = \"ToolbarSelect\";\n","import { type ReactElement, useContext, useId, useMemo } from \"react\";\nimport MoreHoriz from \"@servicetitan/hammer-icon/mdi/round/more_horiz.svg\";\nimport MoreVert from \"@servicetitan/hammer-icon/mdi/round//more_vert.svg\";\nimport type { ToolbarItemProps } from \"../types\";\nimport { ToolbarButton, type ToolbarButtonProps } from \"../ToolbarButton\";\nimport {\n ToolbarButtonToggle,\n type ToolbarButtonToggleProps,\n} from \"../ToolbarButtonToggle\";\nimport {\n ToolbarButtonLink,\n type ToolbarButtonLinkProps,\n} from \"../ToolbarButtonLink\";\nimport { ToolbarSelect, type ToolbarSelectProps } from \"../ToolbarSelect\";\nimport { ToolbarContext, useToolbarSize } from \"./ToolbarContext\";\nimport Popover from \"../../../../internal/components/Popover\";\nimport Icon from \"../../../../components/Icon\";\nimport { OverflowItemContext } from \"./ToolbarItemOverflowContext\";\nimport { handleMenuKeyboardNavigation } from \"./utils/accessibility\";\nimport { ANV_PART_ATTR } from \"../../../../internal/constants/anvParts\";\nimport { PARTS } from \"../parts\";\n\nimport cx from \"classnames\";\nimport styles from \"../Toolbar.module.scss\";\n\nconst OverflowItem = ({ itemType, itemProps }: ToolbarItemProps) => {\n switch (itemType) {\n case \"button\":\n return <ToolbarButton {...(itemProps as ToolbarButtonProps)} />;\n\n case \"buttonToggle\":\n return (\n <ToolbarButtonToggle {...(itemProps as ToolbarButtonToggleProps)} />\n );\n\n case \"buttonLink\":\n return <ToolbarButtonLink {...(itemProps as ToolbarButtonLinkProps)} />;\n\n case \"select\":\n return <ToolbarSelect {...(itemProps as ToolbarSelectProps)} />;\n\n default:\n return null;\n }\n};\n\nexport type ToolbarOverflowMenuProps = {\n /** Items appended after controls collapsed from the toolbar. */\n additionalItems?: ReactElement[];\n /** Parent orientation used to choose the overflow icon. */\n direction?: \"vertical\" | \"horizontal\";\n};\n\n/**\n * Recreates clipped controls in their original order, followed by any\n * consumer-supplied overflow items.\n */\nexport const ToolbarOverflowMenu = ({\n additionalItems,\n direction,\n}: ToolbarOverflowMenuProps) => {\n const { overflowItems, orderedIds } = useContext(ToolbarContext);\n const menuTriggerId = useId();\n const size = useToolbarSize();\n\n const orderedItems = useMemo(() => {\n const allElements = orderedIds?.map((id) => {\n return overflowItems.find((item) => item.id === id);\n });\n\n return allElements?.filter((item) => item !== undefined) || [];\n }, [orderedIds, overflowItems]);\n\n const popoverButtonClassNames = cx(\n styles[\"toolbar-button-item\"],\n styles[\"toolbar-overflow-trigger\"],\n );\n\n const overflowIcon = direction === \"horizontal\" ? MoreHoriz : MoreVert;\n\n return (\n <Popover noPadding>\n <Popover.Button\n size={size}\n appearance=\"ghost\"\n id={menuTriggerId}\n className={popoverButtonClassNames}\n data-anv=\"toolbar-overflow-trigger\"\n aria-label=\"Additional toolbar options\"\n {...{ [ANV_PART_ATTR]: PARTS.trigger }}\n >\n <Icon svg={overflowIcon} size={size === \"xsmall\" ? \"small\" : size} />\n </Popover.Button>\n <Popover.Content>\n <OverflowItemContext.Provider value={{ isInOverflowMenu: true }}>\n <ul\n role=\"menu\"\n className={styles[\"toolbar-overflow-content\"]}\n data-anv=\"toolbar-overflow-menu\"\n aria-labelledby={menuTriggerId}\n onKeyDown={handleMenuKeyboardNavigation}\n {...{ [ANV_PART_ATTR]: PARTS.menu }}\n >\n {orderedItems.map((item) => {\n const { itemType, itemProps, id } = item;\n return (\n <li\n key={`${itemType}-${id}`}\n role=\"menuitem\"\n data-anv=\"toolbar-overflow-item\"\n data-id={id}\n {...{ [ANV_PART_ATTR]: PARTS.overflowItem }}\n >\n <OverflowItem\n itemType={itemType}\n itemProps={itemProps}\n id={id}\n />\n </li>\n );\n })}\n\n {additionalItems?.map((item, index) => (\n <li\n key={`additional-item-${index}`}\n role=\"menuitem\"\n data-anv=\"toolbar-overflow-item\"\n {...{ [ANV_PART_ATTR]: PARTS.overflowItem }}\n >\n {item}\n </li>\n ))}\n </ul>\n </OverflowItemContext.Provider>\n </Popover.Content>\n </Popover>\n );\n};\n","import { type ComponentPropsWithoutRef, forwardRef, useContext } from \"react\";\nimport type { LayoutUtilProps } from \"../../../types\";\nimport { Flex } from \"../../../components/Flex\";\nimport { ToolbarContext } from \"./internal/ToolbarContext\";\n\nimport styles from \"./ToolbarControlGroup.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<'div'>\n * @extends LayoutUtilProps\n */\nexport type ToolbarControlGroupProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /** Accessible group name. Defaults to `Toolbar controls`. */\n \"aria-label\"?: string;\n };\n\nconst ToolbarControlGroupElement = forwardRef<\n HTMLDivElement,\n ToolbarControlGroupProps\n>((props, ref) => {\n const { children, \"aria-label\": ariaLabel, ...rest } = props;\n const { overflow } = useContext(ToolbarContext);\n\n return (\n <Flex\n ref={ref}\n alignItems=\"center\"\n gap={1}\n wrap={overflow === \"collapse\" ? \"nowrap\" : \"wrap\"}\n data-anv=\"toolbar-control-group\"\n role=\"group\"\n aria-label={ariaLabel ? ariaLabel : \"Toolbar controls\"}\n className={styles[\"toolbar-control-group\"]}\n {...rest}\n >\n {children}\n </Flex>\n );\n});\n\nToolbarControlGroupElement.displayName = \"ToolbarControlGroup\";\n\n/**\n * Semantically groups related toolbar controls. The group wraps with the\n * toolbar unless collapse overflow is active.\n */\nexport const ToolbarControlGroup = ToolbarControlGroupElement;\n","import { forwardRef, type Ref } from \"react\";\nimport {\n type SearchFieldProps,\n SearchField,\n} from \"../../../components/SearchField/internal/SearchField\";\n\nimport { useToolbarSize } from \"./internal/ToolbarContext\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { PARTS } from \"./parts\";\n\nimport cx from \"classnames\";\nimport styles from \"./ToolbarSearchField.module.scss\";\n\n/** @extends Omit<SearchFieldProps, \"size\"> */\nexport type ToolbarSearchFieldProps = Omit<SearchFieldProps, \"size\">;\n\n/**\n * Search field styled for toolbar layouts. Its size is inherited from the\n * surrounding toolbar rather than set directly.\n */\nexport const ToolbarSearchField = forwardRef(\n (props: ToolbarSearchFieldProps, ref: Ref<HTMLInputElement>) => {\n const { className, ...rest } = props;\n const size = useToolbarSize();\n\n const searchFieldStyles = cx(styles[\"toolbar-search-field\"], className);\n\n return (\n <div className={styles[\"toolbar-search-field-container\"]}>\n <SearchField\n ref={ref}\n className={searchFieldStyles}\n size={size}\n data-anv=\"toolbar-search-field\"\n {...rest}\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n </div>\n );\n },\n);\n\nToolbarSearchField.displayName = \"ToolbarSearchField\";\n","import { ToolbarButton } from \"./ToolbarButton\";\nimport { ToolbarButtonToggle } from \"./ToolbarButtonToggle\";\nimport { ToolbarButtonLink } from \"./ToolbarButtonLink\";\nimport { ToolbarSelect } from \"./ToolbarSelect\";\nimport type {\n ToolbarItemProps,\n ToolbarOverflowTypes,\n ToolbarSize,\n} from \"./types\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type { DataAttributes, LayoutUtilProps } from \"../../../types\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks\";\nimport {\n handleToolbarKeyDown,\n updateToolbarItemsTabIndex,\n} from \"./internal/utils/accessibility\";\nimport { ToolbarContext } from \"./internal/ToolbarContext\";\nimport Flex from \"../../../components/Flex\";\nimport { useMergeRefs } from \"../../../hooks\";\nimport { ToolbarOverflowMenu } from \"./internal/ToolbarOverflowMenu\";\nimport { ToolbarControlGroup } from \"./ToolbarControlGroup\";\nimport { ToolbarSearchField } from \"./ToolbarSearchField\";\n\nimport cx from \"classnames\";\nimport styles from \"./Toolbar.module.scss\";\n\n/**\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type ToolbarProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps &\n DataAttributes & {\n /** Names the content controlled by the toolbar in its accessible label. */\n associatedContent: string;\n /**\n * Sets both the control layout and arrow-key navigation axis.\n * @default \"horizontal\"\n */\n direction?: \"vertical\" | \"horizontal\";\n /**\n * Wraps controls or moves controls that no longer fit into an overflow menu.\n * @default \"wrap\"\n */\n overflow?: ToolbarOverflowTypes;\n /** Items appended to the overflow menu, whether or not controls have collapsed. */\n additionalItems?: ReactElement[];\n /** Size inherited by the toolbar's controls. Defaults to `xsmall`. */\n size?: ToolbarSize;\n };\n\n/**\n * Groups related controls with roving focus and orientation-aware arrow-key\n * navigation. In collapse mode, controls that no longer fit move into an overflow menu.\n */\nexport const Toolbar = Object.assign(\n forwardRef<HTMLDivElement, ToolbarProps>(function ToolbarInner(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 size = \"xsmall\",\n ...rest\n } = componentProps;\n\n const [overflowItems, setOverflowItems] = useState<ToolbarItemProps[]>([]);\n const toolbarItemsRef = useRef<HTMLDivElement>(null);\n const toolbarRef = useRef<HTMLDivElement>(null);\n\n const [orderedIds, setOrderedIds] = useState<string[]>([]);\n\n useEffect(() => {\n const newOrderedIds = Array.from(\n toolbarItemsRef.current?.querySelectorAll(\"[data-id]\") || [],\n ).map((el) => {\n return el.getAttribute(\"data-id\") as string;\n });\n\n setOrderedIds(newOrderedIds);\n }, [children]);\n\n const addItem = useCallback((item: ToolbarItemProps) => {\n setOverflowItems((prev) => [...prev, item]);\n }, []);\n\n const removeItem = useCallback((item: ToolbarItemProps) => {\n setOverflowItems((prev) =>\n prev.filter((component) => component.id !== item.id),\n );\n }, []);\n\n useEffect(() => {\n if (toolbarRef.current) {\n updateToolbarItemsTabIndex(toolbarRef.current);\n }\n }, [children]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (toolbarRef.current) {\n handleToolbarKeyDown(event, toolbarRef.current);\n }\n\n onKeyDown?.(event);\n },\n [onKeyDown],\n );\n\n const showOverflowMenu =\n (overflow === \"collapse\" && overflowItems.length > 0) ||\n !!additionalItems;\n\n const value = useMemo(\n () => ({\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow,\n size,\n }),\n [\n overflowItems,\n addItem,\n removeItem,\n toolbarRef,\n orderedIds,\n overflow,\n size,\n ],\n );\n\n const styleCombined = {\n ...style,\n ...layoutStyles,\n };\n\n const toolbarClassNames = cx(styles[\"toolbar\"], className);\n\n const toolbarContentClassNames = cx(styles[\"toolbar-content\"], {\n [styles[`overflow-${overflow}`]]: overflow,\n });\n\n return (\n <ToolbarContext.Provider value={value}>\n <Flex\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 tabIndex={-1}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n <Flex\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 data-overflow={overflow}\n >\n {children}\n </Flex>\n\n {showOverflowMenu && (\n <ToolbarOverflowMenu\n direction={direction}\n additionalItems={additionalItems}\n />\n )}\n </Flex>\n </ToolbarContext.Provider>\n );\n }),\n {\n /** Action button that participates in toolbar focus and overflow behavior. */\n Button: ToolbarButton,\n /** Toggle button that participates in toolbar focus and overflow behavior. */\n ButtonToggle: ToolbarButtonToggle,\n /** Link-styled action that participates in toolbar focus and overflow behavior. */\n ButtonLink: ToolbarButtonLink,\n /** Single-select control that participates in toolbar focus and overflow behavior. */\n Select: ToolbarSelect,\n /** Groups related controls within the toolbar. */\n ControlGroup: ToolbarControlGroup,\n /** Search field that inherits the toolbar's control size. */\n Search: ToolbarSearchField,\n },\n);\nToolbar.displayName = \"Toolbar\";\nexport const ToolbarElement = Toolbar;\n"],"names":["styles","item","ArrowDropDown","items","MoreHoriz","MoreVert"],"mappings":"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"}
|
package/dist/Toolbar.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { T as Toolbar, a as ToolbarButton, b as ToolbarButtonLink, d as ToolbarControlGroup, f as ToolbarElement, e as ToolbarSearchField, c as ToolbarSelect, T as default } from './Toolbar-
|
|
1
|
+
export { T as Toolbar, a as ToolbarButton, b as ToolbarButtonLink, d as ToolbarControlGroup, f as ToolbarElement, e as ToolbarSearchField, c as ToolbarSelect, T as default } from './Toolbar-DGHZpFi9.js';
|
|
2
2
|
export { T as ToolbarButtonToggle } from './ToolbarButtonToggle-T8YnSJ5x.js';
|
|
3
3
|
//# sourceMappingURL=Toolbar.js.map
|
package/dist/TreeSelectField.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { T as TreeSelectField, a as TreeSelectFieldSync } from './TreeSelectFieldSync-
|
|
1
|
+
export { T as TreeSelectField, a as TreeSelectFieldSync } from './TreeSelectFieldSync-C0mXwYZL.js';
|
|
2
2
|
//# sourceMappingURL=TreeSelectField.js.map
|
|
@@ -3,15 +3,15 @@ import { forwardRef, useId, useRef, useState, useCallback, useEffect, useImperat
|
|
|
3
3
|
import { c as cx } from './index-De1g9FRV.js';
|
|
4
4
|
import { F as FieldMessage } from './FieldMessage-8c9yA_kw.js';
|
|
5
5
|
import { w as warnDeprecatedErrorUsage } from './utils-CM48ODEJ.js';
|
|
6
|
-
import { F as FieldLabel } from './FieldLabel-
|
|
6
|
+
import { F as FieldLabel } from './FieldLabel-ThEmUiAq.js';
|
|
7
7
|
import { S as SrOnly } from './SrOnly-pnf8ajnh.js';
|
|
8
|
-
import { b as useAdaptiveView, O as OptionsDialog, a as OptionsPopover, u as useInvalidateOnOptionsChange } from './useInvalidateOnOptionsChange-
|
|
8
|
+
import { b as useAdaptiveView, O as OptionsDialog, a as OptionsPopover, u as useInvalidateOnOptionsChange } from './useInvalidateOnOptionsChange-BD2VBpbK.js';
|
|
9
9
|
import { B as Button } from './Button-Dn6-01xl.js';
|
|
10
|
-
import { C as Chip } from './Chip-
|
|
10
|
+
import { C as Chip } from './Chip-2OydLs66.js';
|
|
11
11
|
import { F as Flex } from './Flex-CRF7gj0_.js';
|
|
12
12
|
import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
|
|
13
13
|
import { A as ANV_PART_ATTR } from './anvParts-DFVq7-Cm.js';
|
|
14
|
-
import { P as PARTS, u as useTreeLoader, a as useTree, b as useTreeLazyCascade, f as findNode, T as TreeContent, d as defaultTreeSyncFilter, t as toTreeSyncFilterFn, c as applyChildCounts } from './treeSync-
|
|
14
|
+
import { P as PARTS, u as useTreeLoader, a as useTree, b as useTreeLazyCascade, f as findNode, T as TreeContent, d as defaultTreeSyncFilter, t as toTreeSyncFilterFn, c as applyChildCounts } from './treeSync-B38r1dRQ.js';
|
|
15
15
|
import { u as useChipLayout } from './useChipLayout-BBe6Tzyl.js';
|
|
16
16
|
import { s as styles$1 } from './SelectTriggerBase.module-mYOfdBGA.js';
|
|
17
17
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
|
|
@@ -647,4 +647,4 @@ const TreeSelectFieldSync = (props) => {
|
|
|
647
647
|
TreeSelectFieldSync.displayName = "TreeSelectFieldSync";
|
|
648
648
|
|
|
649
649
|
export { TreeSelectField as T, TreeSelectFieldSync as a };
|
|
650
|
-
//# sourceMappingURL=TreeSelectFieldSync-
|
|
650
|
+
//# sourceMappingURL=TreeSelectFieldSync-C0mXwYZL.js.map
|