@servicetitan/anvil2 2.7.0 → 2.8.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 +60 -0
- package/dist/{floating-ui.react-C_s3_nEb.js → AiMark-Cwc9KoyE.js} +767 -5
- package/dist/AiMark-Cwc9KoyE.js.map +1 -0
- package/dist/AiMark.css +260 -0
- package/dist/AiMark.d.ts +2 -0
- package/dist/AiMark.js +2 -0
- package/dist/AiMark.js.map +1 -0
- package/dist/{Alert-C_o2f78C.js → Alert-5qhkSUN3.js} +27 -13
- package/dist/Alert-5qhkSUN3.js.map +1 -0
- package/dist/Alert.css +23 -15
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-CyrTvgP4.js → Announcement-fQmFNysn.js} +2 -2
- package/dist/{Announcement-CyrTvgP4.js.map → Announcement-fQmFNysn.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{Avatar-CCnbKkCm.js → Avatar-BckUfs1N.js} +48 -46
- package/dist/{Avatar-CCnbKkCm.js.map → Avatar-BckUfs1N.js.map} +1 -1
- package/dist/Avatar-ChybzixS.js +35 -0
- package/dist/Avatar-ChybzixS.js.map +1 -0
- package/dist/Avatar.js +2 -2
- package/dist/Breadcrumbs-BXo2FO2n.js +107 -0
- package/dist/Breadcrumbs-BXo2FO2n.js.map +1 -0
- package/dist/Breadcrumbs.js +1 -1
- package/dist/Button-a_D7tUgM.js +4517 -0
- package/dist/Button-a_D7tUgM.js.map +1 -0
- package/dist/Button.js +1 -1
- package/dist/{ButtonToggle-DaYJWso_.js → ButtonToggle-CmY77gUp.js} +2 -2
- package/dist/{ButtonToggle-DaYJWso_.js.map → ButtonToggle-CmY77gUp.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-SGlTt-bs.js → Calendar-Bd_WELZC.js} +130 -119
- package/dist/Calendar-Bd_WELZC.js.map +1 -0
- package/dist/{Calendar-C1U2npPP.js → Calendar-d2owsYe9.js} +2 -2
- package/dist/{Calendar-C1U2npPP.js.map → Calendar-d2owsYe9.js.map} +1 -1
- package/dist/Calendar.css +51 -51
- package/dist/Calendar.js +2 -2
- package/dist/Card-wz71dEVA.js.map +1 -1
- package/dist/{Checkbox-CtKUNeyu.js → Checkbox-BlFc6ZWy.js} +25 -14
- package/dist/Checkbox-BlFc6ZWy.js.map +1 -0
- package/dist/Checkbox-DbaZrUE2.js +52 -0
- package/dist/Checkbox-DbaZrUE2.js.map +1 -0
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-DjTAR0va.js → Chip-BnofwIUN.js} +43 -13
- package/dist/Chip-BnofwIUN.js.map +1 -0
- package/dist/Chip.css +44 -28
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-By8-34bw.js → Combobox-BOxAzG9v.js} +186 -183
- package/dist/{Combobox-By8-34bw.js.map → Combobox-BOxAzG9v.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-BYOS6icI.js → DataTable-DK9xRjnq.js} +762 -651
- package/dist/DataTable-DK9xRjnq.js.map +1 -0
- package/dist/DataTable.css +84 -74
- package/dist/{DateFieldRange-C8Uzrboc.js → DateFieldRange-5Jrz6dLl.js} +20 -6
- package/dist/DateFieldRange-5Jrz6dLl.js.map +1 -0
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-DrhLIjlK.js → DateFieldSingle-DWFr6Ew4.js} +8 -8
- package/dist/{DateFieldSingle-DrhLIjlK.js.map → DateFieldSingle-DWFr6Ew4.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-DbivK4Hm.js → DateFieldYearless-UU22A5-E.js} +22 -6
- package/dist/DateFieldYearless-UU22A5-E.js.map +1 -0
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-BEqJe4Uf.js → DateFieldYearlessRange-BoPLxm6t.js} +3 -3
- package/dist/DateFieldYearlessRange-BoPLxm6t.js.map +1 -0
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-BR32AA32.js → DaysOfTheWeek-4cfTmjzm.js} +4 -4
- package/dist/{DaysOfTheWeek-BR32AA32.js.map → DaysOfTheWeek-4cfTmjzm.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-Dxq_v3Qg.js → Details-CZOIpNP_.js} +8 -8
- package/dist/Details-CZOIpNP_.js.map +1 -0
- package/dist/Details.js +1 -1
- package/dist/{Dialog-CGhwkwvq.js → Dialog-Dn836WQM.js} +73 -73
- package/dist/Dialog-Dn836WQM.js.map +1 -0
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-DQDMzGeT.js → DialogCancelButton-B-jfihJr.js} +2 -2
- package/dist/{DialogCancelButton-DQDMzGeT.js.map → DialogCancelButton-B-jfihJr.js.map} +1 -1
- package/dist/{Drawer-DA4iAgt-.js → Drawer-CdDWt_Ba.js} +86 -86
- package/dist/Drawer-CdDWt_Ba.js.map +1 -0
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-CLN0GBN_.js → EditCard-CZibhEfS.js} +3 -3
- package/dist/{EditCard-CLN0GBN_.js.map → EditCard-CZibhEfS.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/FieldLabel-Dr41PRxH.js +180 -0
- package/dist/FieldLabel-Dr41PRxH.js.map +1 -0
- package/dist/FieldLabel.css +33 -73
- package/dist/FieldLabel.js +1 -1
- package/dist/Grid-DeYIx5k4.js +149 -0
- package/dist/Grid-DeYIx5k4.js.map +1 -0
- package/dist/Grid.js +1 -1
- package/dist/{InputMask-HjaNCb73.js → InputMask-CcXqzqdx.js} +3 -3
- package/dist/{InputMask-HjaNCb73.js.map → InputMask-CcXqzqdx.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{Layout-VfhlilMG.js → Layout-CISAxILX.js} +34 -33
- package/dist/Layout-CISAxILX.js.map +1 -0
- package/dist/Layout.js +1 -1
- package/dist/List--KhCpjZn.js +103 -0
- package/dist/List--KhCpjZn.js.map +1 -0
- package/dist/List.js +1 -1
- package/dist/{ListView-mujFK6mQ.js → ListView-D9cZUVer.js} +6 -6
- package/dist/ListView-D9cZUVer.js.map +1 -0
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-BtAgBDRS.js → Listbox-CgDwzRfz.js} +6 -5
- package/dist/Listbox-CgDwzRfz.js.map +1 -0
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-BXsmCP20.js → Menu-CPbuIsqC.js} +367 -367
- package/dist/Menu-CPbuIsqC.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-DGpGgu8q.js → MultiSelectFieldSync-Ei7DXzvs.js} +31 -18
- package/dist/MultiSelectFieldSync-Ei7DXzvs.js.map +1 -0
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-DiLddJDw.js → MultiSelectMenuSync-B_mXpTEe.js} +29 -9
- package/dist/MultiSelectMenuSync-B_mXpTEe.js.map +1 -0
- package/dist/{NumberField-svhZp1kB.js → NumberField-C5t47Obp.js} +16 -5
- package/dist/NumberField-C5t47Obp.js.map +1 -0
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.css +27 -26
- package/dist/Overflow.js +11 -11
- package/dist/{Page-Be029Dij.js → Page-2hbQxUj6.js} +223 -207
- package/dist/Page-2hbQxUj6.js.map +1 -0
- package/dist/Page.css +78 -76
- package/dist/Page.js +1 -1
- package/dist/{Pagination-BAwqfl_2.js → Pagination-CjGmJ_rU.js} +20 -18
- package/dist/Pagination-CjGmJ_rU.js.map +1 -0
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-D0qSKZ1J.js → Popover-CpU9VAcb.js} +356 -358
- package/dist/Popover-CpU9VAcb.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-JpRDW5vG.js → ProgressBar-FMuK8viJ.js} +2 -2
- package/dist/{ProgressBar-JpRDW5vG.js.map → ProgressBar-FMuK8viJ.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-BQg7exDG.js → Radio-CZZd8phn.js} +25 -14
- package/dist/Radio-CZZd8phn.js.map +1 -0
- package/dist/Radio-DmtVWAmN.js +60 -0
- package/dist/Radio-DmtVWAmN.js.map +1 -0
- package/dist/Radio.js +1 -1
- package/dist/{SegmentedControl-7fDLhgvh.js → SegmentedControl-B9NWUF7s.js} +81 -77
- package/dist/{SegmentedControl-7fDLhgvh.js.map → SegmentedControl-B9NWUF7s.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/SelectCard-8OmIDl1m.js +352 -0
- package/dist/SelectCard-8OmIDl1m.js.map +1 -0
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-Dr8HeW3N.js → SelectFieldLabel-C8PrXxDU.js} +5 -4
- package/dist/SelectFieldLabel-C8PrXxDU.js.map +1 -0
- package/dist/{SelectFieldSync-CJ2Ie_v1.js → SelectFieldSync-DGK8F2G9.js} +13 -13
- package/dist/SelectFieldSync-DGK8F2G9.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-CJA_coqD.js → SelectMenuSync-CuZp9mnt.js} +29 -9
- package/dist/SelectMenuSync-CuZp9mnt.js.map +1 -0
- package/dist/{SelectOptions-Bf4xsFek.js → SelectOptions-CmElsiTd.js} +2 -2
- package/dist/{SelectOptions-Bf4xsFek.js.map → SelectOptions-CmElsiTd.js.map} +1 -1
- package/dist/{SelectTrigger-ObsnAKNp.js → SelectTrigger-KF8w6Ynk.js} +8 -6
- package/dist/SelectTrigger-KF8w6Ynk.js.map +1 -0
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-DKfOL2RJ.js → SelectTriggerBase-Bxmv6oXk.js} +4 -4
- package/dist/{SelectTriggerBase-DKfOL2RJ.js.map → SelectTriggerBase-Bxmv6oXk.js.map} +1 -1
- package/dist/{SideNav-KksbSQn7.js → SideNav-CrxYExjh.js} +137 -135
- package/dist/{SideNav-KksbSQn7.js.map → SideNav-CrxYExjh.js.map} +1 -1
- package/dist/SideNav.css +72 -55
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton.css +18 -12
- package/dist/Skeleton.js +24 -11
- package/dist/Skeleton.js.map +1 -1
- package/dist/{Stepper-Dt8_ImvJ.js → Stepper-_27Lmm2K.js} +158 -158
- package/dist/{Stepper-Dt8_ImvJ.js.map → Stepper-_27Lmm2K.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-DpPHr3G3.js → Switch-DPGz7wC_.js} +14 -2
- package/dist/Switch-DPGz7wC_.js.map +1 -0
- package/dist/Switch.js +1 -1
- package/dist/{Tab-DO7LaUbw.js → Tab-BZpTCG0i.js} +227 -223
- package/dist/Tab-BZpTCG0i.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-BJo4oMI2.js → Text-MVxRo6yx.js} +30 -12
- package/dist/Text-MVxRo6yx.js.map +1 -0
- package/dist/Text.css +37 -20
- package/dist/Text.js +1 -1
- package/dist/{TextField-DeHpgPag.js → TextField-BpSxZa0z.js} +21 -5
- package/dist/TextField-BpSxZa0z.js.map +1 -0
- package/dist/{TextField-BW8sJAls.js → TextField-D93iv_pk.js} +2 -2
- package/dist/{TextField-BW8sJAls.js.map → TextField-D93iv_pk.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-DyqdMTvQ.js → Textarea-1u2fSMTh.js} +21 -5
- package/dist/Textarea-1u2fSMTh.js.map +1 -0
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-Dc0Y1JD-.js → TimeField-B4gLlBQJ.js} +6 -5
- package/dist/{TimeField-Dc0Y1JD-.js.map → TimeField-B4gLlBQJ.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-b0-Ub3yt.js → Toaster-CSJfSOHx.js} +5 -5
- package/dist/Toaster-CSJfSOHx.js.map +1 -0
- package/dist/{Toaster-DikGo_hR.js → Toaster-DbWYnF_t.js} +2 -2
- package/dist/{Toaster-DikGo_hR.js.map → Toaster-DbWYnF_t.js.map} +1 -1
- package/dist/{Toolbar-DAuz4Gs2.js → Toolbar-CWRk523l.js} +150 -149
- package/dist/{Toolbar-DAuz4Gs2.js.map → Toolbar-CWRk523l.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-Bupqao9B.js → Tooltip-C1PBRnJv.js} +225 -228
- package/dist/Tooltip-C1PBRnJv.js.map +1 -0
- package/dist/Tooltip.js +1 -1
- package/dist/{YearlessDateInputWithPicker-DFi08TLG.js → YearlessDateInputWithPicker-BSl5z2zo.js} +2 -3
- package/dist/{YearlessDateInputWithPicker-DFi08TLG.js.map → YearlessDateInputWithPicker-BSl5z2zo.js.map} +1 -1
- package/dist/assets/icons/st/ai_mark_gradient.svg +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +3 -2
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +3 -2
- package/dist/beta/components/MultiSelectField/internal/types.d.ts +4 -3
- package/dist/beta/components/MultiSelectField/types.d.ts +28 -7
- package/dist/beta/components/MultiSelectMenu/types.d.ts +15 -0
- package/dist/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
- package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +4 -4
- package/dist/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
- package/dist/beta/components/SelectField/types.d.ts +5 -5
- package/dist/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +3 -1
- package/dist/beta/components/SelectMenu/types.d.ts +15 -0
- package/dist/beta/components/Table/DataTable/DataTable.d.ts +2 -15
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +35 -0
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +4 -3
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectAsyncCell.d.ts +7 -0
- package/dist/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +34 -0
- package/dist/beta/components/Table/DataTable/internal/usePageDataCache.d.ts +29 -0
- package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +2 -4
- package/dist/beta/components/Table/DataTable/types.d.ts +48 -1
- package/dist/beta/components/Table/createColumnHelper.d.ts +23 -68
- package/dist/beta/components/Table/types.d.ts +218 -42
- package/dist/beta/components/Toolbar/Toolbar.d.ts +175 -44
- package/dist/beta/components/Toolbar/ToolbarSelect.d.ts +5 -3
- package/dist/beta.js +9 -9
- package/dist/components/AiMark/AiMark.d.ts +87 -0
- package/dist/components/AiMark/index.d.ts +1 -0
- package/dist/components/AiMark/internal/AiMarkIconAnimated.d.ts +30 -0
- package/dist/components/AiMark/internal/AiMarkInteractive.d.ts +10 -0
- package/dist/components/AiMark/stories/aiMarkStoryArgTypes.d.ts +16 -0
- package/dist/components/Alert/Alert.d.ts +12 -0
- package/dist/components/Avatar/Avatar.d.ts +14 -0
- package/dist/components/Button/Button.d.ts +14 -6
- package/dist/components/Button/internal/buttonAiMarkUtils.d.ts +18 -0
- package/dist/components/Button/internal/index.d.ts +1 -0
- package/dist/components/Calendar/Calendar.d.ts +84 -26
- package/dist/components/Card/Card.d.ts +6 -1
- package/dist/components/Checkbox/Checkbox.d.ts +2 -0
- package/dist/components/Checkbox/CheckboxGroup.d.ts +27 -6
- package/dist/components/Chip/Chip.d.ts +10 -1
- package/dist/components/Chip/internal/Chip.d.ts +4 -0
- package/dist/components/Combobox/Combobox.d.ts +172 -1
- package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +1 -1
- package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -1
- package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/DateFieldYearless.d.ts +8 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +1 -1
- package/dist/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +7 -0
- package/dist/components/Dialog/Dialog.d.ts +96 -28
- package/dist/components/DrillDown/DrillDown.d.ts +7 -1
- package/dist/components/FieldLabel/FieldLabel.d.ts +2 -1
- package/dist/components/FieldLabel/internal/FieldLabelButton.d.ts +3 -2
- package/dist/components/Layout/Layout.d.ts +52 -44
- package/dist/components/ListView/ListView.d.ts +5 -5
- package/dist/components/Listbox/Listbox.d.ts +5 -23
- package/dist/components/Menu/Menu.d.ts +1 -4
- package/dist/components/NumberField/NumberField.d.ts +29 -2
- package/dist/components/Radio/Radio.d.ts +2 -0
- package/dist/components/Radio/RadioGroup.d.ts +27 -6
- package/dist/components/SelectCard/SelectCard.d.ts +1 -1
- package/dist/components/SelectCard/SelectCardGroup.d.ts +18 -1
- package/dist/components/SelectCard/internal/SelectCardContext.d.ts +11 -0
- package/dist/components/SelectCard/internal/SelectCardProvider.d.ts +11 -1
- package/dist/components/Skeleton/SkeletonCircle.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonPill.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonRectangle.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonText.d.ts +6 -1
- package/dist/components/Skeleton/index.d.ts +3 -0
- package/dist/components/Switch/Switch.d.ts +11 -1
- package/dist/components/Text/types.d.ts +9 -0
- package/dist/components/TextField/internal/TextField.d.ts +11 -0
- package/dist/components/Textarea/Textarea.d.ts +9 -2
- package/dist/components/Toast/internal/Toast.d.ts +5 -0
- package/dist/components/Toast/toast.d.ts +1 -1
- package/dist/components/Toolbar/Toolbar.d.ts +8 -4
- package/dist/components/Toolbar/ToolbarSelect.d.ts +5 -3
- package/dist/components/index.d.ts +1 -0
- package/dist/{floating-ui.react-dom-imrk9N49.js → floating-ui.react-dom-CHrYz13o.js} +17 -2
- package/dist/floating-ui.react-dom-CHrYz13o.js.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/usePrefersReducedMotion/index.d.ts +1 -0
- package/dist/hooks/usePrefersReducedMotion/usePrefersReducedMotion.d.ts +15 -0
- package/dist/index.js +135 -133
- package/dist/index.js.map +1 -1
- package/dist/internal/components/InlineMarkdown/InlineMarkdown.d.ts +23 -0
- package/dist/internal/components/InlineMarkdown/index.d.ts +1 -0
- package/dist/internal/components/Label/Label.d.ts +1 -1
- package/dist/internal/components/Popover/Popover.d.ts +3 -1
- package/dist/internal/components/index.d.ts +2 -1
- package/dist/internal/functions/index.d.ts +2 -0
- package/dist/internal/functions/inlineMarkdown.d.ts +20 -0
- package/dist/internal/functions/stripInlineMarkdown.d.ts +8 -0
- package/dist/internal/types/props.d.ts +2 -1
- package/dist/internal/types/selectFieldInternalTypes.d.ts +2 -2
- package/dist/internal/utils/index.d.ts +1 -0
- package/dist/internal/utils/inlineMarkdownRegex.d.ts +5 -0
- package/dist/{proxy-BbFHSE6L.js → proxy-DEehATlA.js} +8 -2
- package/dist/{proxy-BbFHSE6L.js.map → proxy-DEehATlA.js.map} +1 -1
- package/dist/stripInlineMarkdown-DyqLAQnf.js +25 -0
- package/dist/stripInlineMarkdown-DyqLAQnf.js.map +1 -0
- package/dist/{syncFilterUtils-vt8ldsES.js → syncFilterUtils-CsbCnI1-.js} +194 -194
- package/dist/{syncFilterUtils-vt8ldsES.js.map → syncFilterUtils-CsbCnI1-.js.map} +1 -1
- package/dist/types/ai-marks.d.ts +72 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/{use-reduced-motion-DSpxmqyT.js → use-reduced-motion-CqjZZ5QB.js} +2 -2
- package/dist/{use-reduced-motion-DSpxmqyT.js.map → use-reduced-motion-CqjZZ5QB.js.map} +1 -1
- package/dist/{useDrilldown-wwXRpNgb.js → useDrilldown-C7eMBl68.js} +43 -41
- package/dist/{useDrilldown-wwXRpNgb.js.map → useDrilldown-C7eMBl68.js.map} +1 -1
- package/dist/{useInitialFocus-CdoVwSbr.js → useInitialFocus-DbaB-x5T.js} +2 -3
- package/dist/{useInitialFocus-CdoVwSbr.js.map → useInitialFocus-DbaB-x5T.js.map} +1 -1
- package/dist/{useMenuInteraction-zR_78KQC.js → useMenuInteraction-BwZ2ORo9.js} +8 -3
- package/dist/useMenuInteraction-BwZ2ORo9.js.map +1 -0
- package/dist/{index.esm-BZV0wNKZ.js → usePopoverTransitionStates-B1opfxxn.js} +88 -2
- package/dist/usePopoverTransitionStates-B1opfxxn.js.map +1 -0
- package/dist/usePrefersReducedMotion-DR9B_D6w.js +37 -0
- package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +1 -0
- package/dist/usePrefersReducedMotion.d.ts +2 -0
- package/dist/usePrefersReducedMotion.js +2 -0
- package/dist/usePrefersReducedMotion.js.map +1 -0
- package/dist/{useToggleSelection-BdXW3Zg3.js → useToggleSelection-BM8asdFj.js} +2 -2
- package/dist/{useToggleSelection-BdXW3Zg3.js.map → useToggleSelection-BM8asdFj.js.map} +1 -1
- package/package.json +4 -2
- package/dist/Alert-C_o2f78C.js.map +0 -1
- package/dist/Avatar--CnTAnfD.js +0 -35
- package/dist/Avatar--CnTAnfD.js.map +0 -1
- package/dist/Breadcrumbs-3Y7jnj-F.js +0 -105
- package/dist/Breadcrumbs-3Y7jnj-F.js.map +0 -1
- package/dist/Button-CVsGhVJz.js +0 -113
- package/dist/Button-CVsGhVJz.js.map +0 -1
- package/dist/Calendar-SGlTt-bs.js.map +0 -1
- package/dist/Checkbox-CjEKa5Iv.js +0 -50
- package/dist/Checkbox-CjEKa5Iv.js.map +0 -1
- package/dist/Checkbox-CtKUNeyu.js.map +0 -1
- package/dist/Chip-DjTAR0va.js.map +0 -1
- package/dist/DataTable-BYOS6icI.js.map +0 -1
- package/dist/DateFieldRange-C8Uzrboc.js.map +0 -1
- package/dist/DateFieldYearless-DbivK4Hm.js.map +0 -1
- package/dist/DateFieldYearlessRange-BEqJe4Uf.js.map +0 -1
- package/dist/Details-Dxq_v3Qg.js.map +0 -1
- package/dist/Dialog-CGhwkwvq.js.map +0 -1
- package/dist/Drawer-DA4iAgt-.js.map +0 -1
- package/dist/FieldLabel-DbMosKtd.js +0 -125
- package/dist/FieldLabel-DbMosKtd.js.map +0 -1
- package/dist/Grid-ONcUpb__.js +0 -147
- package/dist/Grid-ONcUpb__.js.map +0 -1
- package/dist/Layout-VfhlilMG.js.map +0 -1
- package/dist/List-CJZjElAQ.js +0 -101
- package/dist/List-CJZjElAQ.js.map +0 -1
- package/dist/ListView-mujFK6mQ.js.map +0 -1
- package/dist/Listbox-BtAgBDRS.js.map +0 -1
- package/dist/Menu-BXsmCP20.js.map +0 -1
- package/dist/MultiSelectFieldSync-DGpGgu8q.js.map +0 -1
- package/dist/MultiSelectMenuSync-DiLddJDw.js.map +0 -1
- package/dist/NumberField-svhZp1kB.js.map +0 -1
- package/dist/Page-Be029Dij.js.map +0 -1
- package/dist/Pagination-BAwqfl_2.js.map +0 -1
- package/dist/Popover-D0qSKZ1J.js.map +0 -1
- package/dist/Popover-DxZF6lbJ.js +0 -535
- package/dist/Popover-DxZF6lbJ.js.map +0 -1
- package/dist/Popover2.css +0 -68
- package/dist/Radio-BOq9UkpC.js +0 -60
- package/dist/Radio-BOq9UkpC.js.map +0 -1
- package/dist/Radio-BQg7exDG.js.map +0 -1
- package/dist/SelectCard-cu4MBuh8.js +0 -320
- package/dist/SelectCard-cu4MBuh8.js.map +0 -1
- package/dist/SelectFieldLabel-Dr8HeW3N.js.map +0 -1
- package/dist/SelectFieldSync-CJ2Ie_v1.js.map +0 -1
- package/dist/SelectMenuSync-CJA_coqD.js.map +0 -1
- package/dist/SelectTrigger-ObsnAKNp.js.map +0 -1
- package/dist/Switch-DpPHr3G3.js.map +0 -1
- package/dist/Tab-DO7LaUbw.js.map +0 -1
- package/dist/Text-BJo4oMI2.js.map +0 -1
- package/dist/TextField-DeHpgPag.js.map +0 -1
- package/dist/Textarea-DyqdMTvQ.js.map +0 -1
- package/dist/Toaster-b0-Ub3yt.js.map +0 -1
- package/dist/Tooltip-Bupqao9B.js.map +0 -1
- package/dist/floating-ui.react-C_s3_nEb.js.map +0 -1
- package/dist/floating-ui.react-dom-imrk9N49.js.map +0 -1
- package/dist/index.esm-BZV0wNKZ.js.map +0 -1
- package/dist/safePopover-BDso-xSH.js +0 -17
- package/dist/safePopover-BDso-xSH.js.map +0 -1
- package/dist/useMenuInteraction-zR_78KQC.js.map +0 -1
- package/dist/useOpenCloseTransitionStates-CiTYrLGi.js +0 -68
- package/dist/useOpenCloseTransitionStates-CiTYrLGi.js.map +0 -1
- package/dist/usePopoverTransitionStates-CDIoNUuf.js +0 -24
- package/dist/usePopoverTransitionStates-CDIoNUuf.js.map +0 -1
|
@@ -3,15 +3,14 @@ import * as React from 'react';
|
|
|
3
3
|
import { createContext, forwardRef, useContext, useId, useRef, useState, useCallback, useLayoutEffect, useEffect, useMemo } from 'react';
|
|
4
4
|
import { c as cx } from './index-De1g9FRV.js';
|
|
5
5
|
import { S as SvgArrowDropDown } from './arrow_drop_down-ChAdBDux.js';
|
|
6
|
-
import { B as Button } from './Button-
|
|
6
|
+
import { B as Button } from './Button-a_D7tUgM.js';
|
|
7
7
|
import { D as DialogContext } from './DialogContext-DBgtApl9.js';
|
|
8
8
|
import { I as Icon } from './Icon-DuIlne4x.js';
|
|
9
9
|
import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
10
10
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
11
11
|
import { useTrackingId } from './useTrackingId.js';
|
|
12
|
-
import {
|
|
12
|
+
import { c as computePosition, o as offset, f as flip, d as shift, g as size, l as limitShift, a as autoUpdate, s as safeShowPopover, b as safeHidePopover } from './floating-ui.react-dom-CHrYz13o.js';
|
|
13
13
|
import { g as getActiveElement } from './getActiveElement-BcSyVE7S.js';
|
|
14
|
-
import { s as safeShowPopover, a as safeHidePopover } from './safePopover-BDso-xSH.js';
|
|
15
14
|
|
|
16
15
|
import './Menu.css';const SvgArrowDropUp = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M8.71 12.29 11.3 9.7a.996.996 0 0 1 1.41 0l2.59 2.59c.63.63.18 1.71-.71 1.71H9.41c-.89 0-1.33-1.08-.7-1.71z" }));
|
|
17
16
|
|
|
@@ -428,43 +427,155 @@ const MenuNested = (props) => {
|
|
|
428
427
|
] });
|
|
429
428
|
};
|
|
430
429
|
|
|
431
|
-
const
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
const timeoutId = setTimeout(() => {
|
|
430
|
+
const Menu = Object.assign(
|
|
431
|
+
function MenuInner(props) {
|
|
432
|
+
const {
|
|
433
|
+
children,
|
|
434
|
+
placement = "bottom-start",
|
|
435
|
+
open,
|
|
436
|
+
defaultOpen = false,
|
|
437
|
+
disableAutoHeight,
|
|
438
|
+
label,
|
|
439
|
+
onOutsidePress,
|
|
440
|
+
trigger,
|
|
441
|
+
contentClassName,
|
|
442
|
+
maxHeight,
|
|
443
|
+
...rest
|
|
444
|
+
} = props;
|
|
445
|
+
const uid = useId();
|
|
446
|
+
const [openState, setOpenState] = useState(open ?? defaultOpen);
|
|
447
|
+
const [scrollTop, setScrollTop] = useState(0);
|
|
448
|
+
const [menuHeight, setMenuHeight] = useState(null);
|
|
449
|
+
const [arrowStart, setArrowStart] = useState(false);
|
|
450
|
+
const [arrowEnd, setArrowEnd] = useState(false);
|
|
451
|
+
const invokerRef = useRef(null);
|
|
452
|
+
const menuRef = useRef(null);
|
|
453
|
+
const childrenRef = useRef(null);
|
|
454
|
+
const [focusItems, setFocusItems] = useState();
|
|
455
|
+
const dialogContext = useContext(DialogContext);
|
|
456
|
+
const menuContext = useContext(MenuContext);
|
|
457
|
+
const fallbackArr = useCallback(() => {
|
|
458
|
+
if (placement.startsWith("top")) {
|
|
459
|
+
return disableAutoHeight ? [placement] : ["top-start", "top-end", "bottom-start", "bottom-end"];
|
|
460
|
+
}
|
|
461
|
+
return disableAutoHeight ? [placement] : ["bottom-start", "bottom-end", "top-start", "top-end"];
|
|
462
|
+
}, [disableAutoHeight, placement]);
|
|
463
|
+
const updatePosition = useCallback(() => {
|
|
466
464
|
if (!invokerRef.current || !menuRef.current) return;
|
|
467
|
-
|
|
465
|
+
const timeoutId = setTimeout(() => {
|
|
466
|
+
if (!invokerRef.current || !menuRef.current) return;
|
|
467
|
+
computePosition(invokerRef.current, menuRef.current, {
|
|
468
|
+
placement,
|
|
469
|
+
middleware: [
|
|
470
|
+
offset({
|
|
471
|
+
mainAxis: 5,
|
|
472
|
+
alignmentAxis: 0
|
|
473
|
+
}),
|
|
474
|
+
flip({
|
|
475
|
+
fallbackStrategy: "bestFit",
|
|
476
|
+
fallbackPlacements: fallbackArr(),
|
|
477
|
+
padding: 50
|
|
478
|
+
// Setting to 50px as it is the size of menu with 1 item in it
|
|
479
|
+
}),
|
|
480
|
+
shift({
|
|
481
|
+
mainAxis: !menuContext?.disableAutoHeight,
|
|
482
|
+
crossAxis: false,
|
|
483
|
+
limiter: limitShift({
|
|
484
|
+
mainAxis: !menuContext?.disableAutoHeight
|
|
485
|
+
})
|
|
486
|
+
}),
|
|
487
|
+
size({
|
|
488
|
+
padding: 8,
|
|
489
|
+
apply({ availableWidth, availableHeight, elements }) {
|
|
490
|
+
if (disableAutoHeight ?? menuContext?.disableAutoHeight) return;
|
|
491
|
+
const newHeight = availableHeight - 16;
|
|
492
|
+
if (Math.abs((menuHeight ?? 0) - newHeight) > 1) {
|
|
493
|
+
setMenuHeight(newHeight);
|
|
494
|
+
Object.assign(elements.floating.style, {
|
|
495
|
+
maxWidth: `${availableWidth - 16}px`,
|
|
496
|
+
maxHeight: maxHeight ? `${Math.min(newHeight, typeof maxHeight === "number" ? maxHeight : parseInt(maxHeight.toString()))}px` : `${newHeight}px`
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
}
|
|
500
|
+
})
|
|
501
|
+
]
|
|
502
|
+
}).then(({ x, y }) => {
|
|
503
|
+
if (!menuRef.current) return;
|
|
504
|
+
Object.assign(menuRef.current.style, {
|
|
505
|
+
left: `${x}px`,
|
|
506
|
+
top: `${y}px`
|
|
507
|
+
});
|
|
508
|
+
menuRef.current.dataset.positioned = "true";
|
|
509
|
+
});
|
|
510
|
+
}, 50);
|
|
511
|
+
return () => clearTimeout(timeoutId);
|
|
512
|
+
}, [
|
|
513
|
+
placement,
|
|
514
|
+
fallbackArr,
|
|
515
|
+
menuContext?.disableAutoHeight,
|
|
516
|
+
disableAutoHeight,
|
|
517
|
+
menuHeight,
|
|
518
|
+
maxHeight
|
|
519
|
+
]);
|
|
520
|
+
const menuReference = useRef(null);
|
|
521
|
+
useLayoutEffect(() => {
|
|
522
|
+
if (!openState) {
|
|
523
|
+
setMenuHeight(null);
|
|
524
|
+
setScrollTop(0);
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
if (!menuRef.current) return;
|
|
528
|
+
menuReference.current = menuRef.current;
|
|
529
|
+
let resizeTimeout = null;
|
|
530
|
+
({
|
|
531
|
+
height: menuReference.current.clientHeight,
|
|
532
|
+
scrollHeight: childrenRef.current?.scrollHeight ?? 0
|
|
533
|
+
});
|
|
534
|
+
const updateArrows = (height, scrollHeight) => {
|
|
535
|
+
if (!childrenRef.current) return;
|
|
536
|
+
const isOverflow = scrollHeight > height;
|
|
537
|
+
setArrowStart(isOverflow && childrenRef.current.scrollTop > 0);
|
|
538
|
+
setArrowEnd(isOverflow && scrollHeight - height - scrollTop - 16 > 0);
|
|
539
|
+
};
|
|
540
|
+
const observer = new ResizeObserver(() => {
|
|
541
|
+
if (!childrenRef.current || !menuReference.current) return;
|
|
542
|
+
if (resizeTimeout) {
|
|
543
|
+
window.clearTimeout(resizeTimeout);
|
|
544
|
+
}
|
|
545
|
+
resizeTimeout = window.setTimeout(() => {
|
|
546
|
+
const newHeight = menuReference.current?.clientHeight ?? 0;
|
|
547
|
+
const newScrollHeight = childrenRef.current?.scrollHeight ?? 0;
|
|
548
|
+
if (!newHeight) return;
|
|
549
|
+
updateArrows(newHeight, newScrollHeight);
|
|
550
|
+
}, 150);
|
|
551
|
+
});
|
|
552
|
+
if (menuReference.current) {
|
|
553
|
+
observer.observe(menuReference.current);
|
|
554
|
+
}
|
|
555
|
+
return () => {
|
|
556
|
+
if (resizeTimeout) {
|
|
557
|
+
window.clearTimeout(resizeTimeout);
|
|
558
|
+
}
|
|
559
|
+
if (menuReference.current) {
|
|
560
|
+
observer.unobserve(menuReference.current);
|
|
561
|
+
}
|
|
562
|
+
observer.disconnect();
|
|
563
|
+
};
|
|
564
|
+
}, [openState, scrollTop]);
|
|
565
|
+
useLayoutEffect(() => {
|
|
566
|
+
if (!menuRef.current || !invokerRef.current) return;
|
|
567
|
+
const cleanup = autoUpdate(invokerRef.current, menuRef.current, () => {
|
|
568
|
+
updatePosition();
|
|
569
|
+
});
|
|
570
|
+
return () => {
|
|
571
|
+
cleanup();
|
|
572
|
+
};
|
|
573
|
+
}, [updatePosition]);
|
|
574
|
+
const openMenu = useCallback(async () => {
|
|
575
|
+
if (!menuRef.current || !childrenRef.current) return;
|
|
576
|
+
safeShowPopover(menuRef.current);
|
|
577
|
+
if (!invokerRef.current || !menuRef.current) return;
|
|
578
|
+
await computePosition(invokerRef.current, menuRef.current, {
|
|
468
579
|
placement,
|
|
469
580
|
middleware: [
|
|
470
581
|
offset({
|
|
@@ -483,20 +594,6 @@ const MenuElement = (props) => {
|
|
|
483
594
|
limiter: limitShift({
|
|
484
595
|
mainAxis: !menuContext?.disableAutoHeight
|
|
485
596
|
})
|
|
486
|
-
}),
|
|
487
|
-
size({
|
|
488
|
-
padding: 8,
|
|
489
|
-
apply({ availableWidth, availableHeight, elements }) {
|
|
490
|
-
if (disableAutoHeight ?? menuContext?.disableAutoHeight) return;
|
|
491
|
-
const newHeight = availableHeight - 16;
|
|
492
|
-
if (Math.abs((menuHeight ?? 0) - newHeight) > 1) {
|
|
493
|
-
setMenuHeight(newHeight);
|
|
494
|
-
Object.assign(elements.floating.style, {
|
|
495
|
-
maxWidth: `${availableWidth - 16}px`,
|
|
496
|
-
maxHeight: maxHeight ? `${Math.min(newHeight, typeof maxHeight === "number" ? maxHeight : parseInt(maxHeight.toString()))}px` : `${newHeight}px`
|
|
497
|
-
});
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
597
|
})
|
|
501
598
|
]
|
|
502
599
|
}).then(({ x, y }) => {
|
|
@@ -507,337 +604,240 @@ const MenuElement = (props) => {
|
|
|
507
604
|
});
|
|
508
605
|
menuRef.current.dataset.positioned = "true";
|
|
509
606
|
});
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
607
|
+
setOpenState(true);
|
|
608
|
+
requestAnimationFrame(() => {
|
|
609
|
+
if (!childrenRef.current) return;
|
|
610
|
+
const focusables = Array.from(
|
|
611
|
+
childrenRef.current.querySelectorAll(
|
|
612
|
+
`#scroller-${uid.replace(/:/g, "")} > button, #scroller-${uid.replace(/:/g, "")} > div[data-nested="true"] > button, #scroller-${uid.replace(/:/g, "")} > a[href]`
|
|
613
|
+
)
|
|
614
|
+
);
|
|
615
|
+
setFocusItems(focusables);
|
|
616
|
+
});
|
|
617
|
+
dialogContext?.setHasOpenPopover?.(true);
|
|
618
|
+
}, [
|
|
619
|
+
dialogContext,
|
|
620
|
+
uid,
|
|
621
|
+
placement,
|
|
622
|
+
fallbackArr,
|
|
623
|
+
menuContext?.disableAutoHeight
|
|
624
|
+
]);
|
|
625
|
+
const closeMenu = useCallback(
|
|
626
|
+
async (fn, options) => {
|
|
627
|
+
if (!menuRef.current || !openState) return;
|
|
628
|
+
fn?.();
|
|
629
|
+
setOpenState(false);
|
|
630
|
+
safeHidePopover(menuRef.current);
|
|
631
|
+
dialogContext?.setHasOpenPopover?.(false);
|
|
632
|
+
if (!options?.skipInvokerRefocus) {
|
|
633
|
+
invokerRef.current?.focus();
|
|
634
|
+
}
|
|
635
|
+
},
|
|
636
|
+
[openState, dialogContext]
|
|
637
|
+
);
|
|
638
|
+
const isControlled = typeof open !== "undefined";
|
|
639
|
+
const initialRender = useRef(true);
|
|
640
|
+
useEffect(() => {
|
|
641
|
+
if (!isControlled) return;
|
|
642
|
+
if (initialRender.current === true) {
|
|
643
|
+
if (open && menuRef.current) {
|
|
644
|
+
openMenu();
|
|
645
|
+
}
|
|
646
|
+
initialRender.current = false;
|
|
647
|
+
return;
|
|
544
648
|
}
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
updateArrows(newHeight, newScrollHeight);
|
|
550
|
-
}, 150);
|
|
551
|
-
});
|
|
552
|
-
if (menuReference.current) {
|
|
553
|
-
observer.observe(menuReference.current);
|
|
554
|
-
}
|
|
555
|
-
return () => {
|
|
556
|
-
if (resizeTimeout) {
|
|
557
|
-
window.clearTimeout(resizeTimeout);
|
|
649
|
+
if (open) {
|
|
650
|
+
openMenu();
|
|
651
|
+
} else {
|
|
652
|
+
closeMenu(void 0, { skipInvokerRefocus: true });
|
|
558
653
|
}
|
|
559
|
-
|
|
560
|
-
|
|
654
|
+
}, [closeMenu, isControlled, open, openMenu, dialogContext]);
|
|
655
|
+
useEffect(() => {
|
|
656
|
+
if (typeof document === "undefined") return;
|
|
657
|
+
let isClosable = false;
|
|
658
|
+
const onMouseDownHandler = (e) => {
|
|
659
|
+
if (!invokerRef.current || !menuRef.current) return;
|
|
660
|
+
const isInvoker = e.composedPath().includes(invokerRef.current);
|
|
661
|
+
const isPopover = e.composedPath().includes(menuRef.current);
|
|
662
|
+
if (!isInvoker && !isPopover && openState) {
|
|
663
|
+
onOutsidePress?.(e);
|
|
664
|
+
isClosable = true;
|
|
665
|
+
}
|
|
666
|
+
};
|
|
667
|
+
const onMouseUpHandler = (e) => {
|
|
668
|
+
if (!invokerRef.current || !menuRef.current) return;
|
|
669
|
+
const isInvoker = e.composedPath().includes(invokerRef.current);
|
|
670
|
+
const isPopover = e.composedPath().includes(menuRef.current);
|
|
671
|
+
if (!isInvoker && !isPopover && openState) {
|
|
672
|
+
if (isControlled || !isClosable || !openState) return;
|
|
673
|
+
closeMenu(void 0, { skipInvokerRefocus: true });
|
|
674
|
+
}
|
|
675
|
+
};
|
|
676
|
+
document.addEventListener("mousedown", onMouseDownHandler);
|
|
677
|
+
document.addEventListener("mouseup", onMouseUpHandler);
|
|
678
|
+
return () => {
|
|
679
|
+
document.removeEventListener("mousedown", onMouseDownHandler);
|
|
680
|
+
document.removeEventListener("mouseup", onMouseUpHandler);
|
|
681
|
+
};
|
|
682
|
+
}, [isControlled, openState, onOutsidePress, closeMenu]);
|
|
683
|
+
const onKeyDownHandler = (e) => {
|
|
684
|
+
if (!openState || !childrenRef.current || menuContext) return;
|
|
685
|
+
if (e.code === "Escape") {
|
|
686
|
+
e.stopPropagation();
|
|
687
|
+
e.preventDefault();
|
|
688
|
+
closeMenu();
|
|
561
689
|
}
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
}, [openState, scrollTop]);
|
|
565
|
-
useLayoutEffect(() => {
|
|
566
|
-
if (!menuRef.current || !invokerRef.current) return;
|
|
567
|
-
const cleanup = autoUpdate(invokerRef.current, menuRef.current, () => {
|
|
568
|
-
updatePosition();
|
|
569
|
-
});
|
|
570
|
-
return () => {
|
|
571
|
-
cleanup();
|
|
572
|
-
};
|
|
573
|
-
}, [updatePosition]);
|
|
574
|
-
const openMenu = useCallback(async () => {
|
|
575
|
-
if (!menuRef.current || !childrenRef.current) return;
|
|
576
|
-
safeShowPopover(menuRef.current);
|
|
577
|
-
if (!invokerRef.current || !menuRef.current) return;
|
|
578
|
-
await computePosition(invokerRef.current, menuRef.current, {
|
|
579
|
-
placement,
|
|
580
|
-
middleware: [
|
|
581
|
-
offset({
|
|
582
|
-
mainAxis: 5,
|
|
583
|
-
alignmentAxis: 0
|
|
584
|
-
}),
|
|
585
|
-
flip({
|
|
586
|
-
fallbackStrategy: "bestFit",
|
|
587
|
-
fallbackPlacements: fallbackArr(),
|
|
588
|
-
padding: 50
|
|
589
|
-
// Setting to 50px as it is the size of menu with 1 item in it
|
|
590
|
-
}),
|
|
591
|
-
shift({
|
|
592
|
-
mainAxis: !menuContext?.disableAutoHeight,
|
|
593
|
-
crossAxis: false,
|
|
594
|
-
limiter: limitShift({
|
|
595
|
-
mainAxis: !menuContext?.disableAutoHeight
|
|
596
|
-
})
|
|
597
|
-
})
|
|
598
|
-
]
|
|
599
|
-
}).then(({ x, y }) => {
|
|
600
|
-
if (!menuRef.current) return;
|
|
601
|
-
Object.assign(menuRef.current.style, {
|
|
602
|
-
left: `${x}px`,
|
|
603
|
-
top: `${y}px`
|
|
604
|
-
});
|
|
605
|
-
menuRef.current.dataset.positioned = "true";
|
|
606
|
-
});
|
|
607
|
-
setOpenState(true);
|
|
608
|
-
requestAnimationFrame(() => {
|
|
609
|
-
if (!childrenRef.current) return;
|
|
610
|
-
const focusables = Array.from(
|
|
611
|
-
childrenRef.current.querySelectorAll(
|
|
612
|
-
`#scroller-${uid.replace(/:/g, "")} > button, #scroller-${uid.replace(/:/g, "")} > div[data-nested="true"] > button, #scroller-${uid.replace(/:/g, "")} > a[href]`
|
|
613
|
-
)
|
|
690
|
+
const currentActiveIndex = focusItems?.findIndex(
|
|
691
|
+
(item) => item.id === getActiveElement(document)?.id
|
|
614
692
|
);
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
if (!menuRef.current || !openState) return;
|
|
628
|
-
fn?.();
|
|
629
|
-
setOpenState(false);
|
|
630
|
-
safeHidePopover(menuRef.current);
|
|
631
|
-
dialogContext?.setHasOpenPopover?.(false);
|
|
632
|
-
if (!options?.skipInvokerRefocus) {
|
|
633
|
-
invokerRef.current?.focus();
|
|
634
|
-
}
|
|
635
|
-
},
|
|
636
|
-
[openState, dialogContext]
|
|
637
|
-
);
|
|
638
|
-
const isControlled = typeof open !== "undefined";
|
|
639
|
-
const initialRender = useRef(true);
|
|
640
|
-
useEffect(() => {
|
|
641
|
-
if (!isControlled) return;
|
|
642
|
-
if (initialRender.current === true) {
|
|
643
|
-
if (open && menuRef.current) {
|
|
644
|
-
openMenu();
|
|
693
|
+
const firstItem = focusItems?.[0];
|
|
694
|
+
const lastItem = focusItems?.[focusItems.length - 1];
|
|
695
|
+
if (e.code === "ArrowDown") {
|
|
696
|
+
e.stopPropagation();
|
|
697
|
+
e.preventDefault();
|
|
698
|
+
if (currentActiveIndex === (focusItems?.length ?? 0) - 1) {
|
|
699
|
+
firstItem.focus();
|
|
700
|
+
return;
|
|
701
|
+
}
|
|
702
|
+
const nextItem = focusItems?.[(currentActiveIndex ?? 0) + 1];
|
|
703
|
+
nextItem.focus();
|
|
704
|
+
return;
|
|
645
705
|
}
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
if (typeof document === "undefined") return;
|
|
657
|
-
let isClosable = false;
|
|
658
|
-
const onMouseDownHandler = (e) => {
|
|
659
|
-
if (!invokerRef.current || !menuRef.current) return;
|
|
660
|
-
const isInvoker = e.composedPath().includes(invokerRef.current);
|
|
661
|
-
const isPopover = e.composedPath().includes(menuRef.current);
|
|
662
|
-
if (!isInvoker && !isPopover && openState) {
|
|
663
|
-
onOutsidePress?.(e);
|
|
664
|
-
isClosable = true;
|
|
706
|
+
if (e.code === "ArrowUp") {
|
|
707
|
+
e.stopPropagation();
|
|
708
|
+
e.preventDefault();
|
|
709
|
+
if (currentActiveIndex === 0) {
|
|
710
|
+
lastItem.focus();
|
|
711
|
+
return;
|
|
712
|
+
}
|
|
713
|
+
const prevItem = focusItems?.[(currentActiveIndex ?? 0) - 1];
|
|
714
|
+
prevItem.focus();
|
|
715
|
+
return;
|
|
665
716
|
}
|
|
666
717
|
};
|
|
667
|
-
const
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
718
|
+
const value = useMemo(() => {
|
|
719
|
+
return {
|
|
720
|
+
disableAutoHeight,
|
|
721
|
+
closeRootMenu: menuContext?.closeRootMenu ?? closeMenu
|
|
722
|
+
};
|
|
723
|
+
}, [disableAutoHeight, menuContext, closeMenu]);
|
|
724
|
+
const MenuButtonOnKeyDownHandler = (e) => {
|
|
725
|
+
if (e.code === "ArrowDown") {
|
|
726
|
+
focusItems?.[0].focus();
|
|
727
|
+
e.stopPropagation();
|
|
728
|
+
e.preventDefault();
|
|
674
729
|
}
|
|
675
730
|
};
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
document.removeEventListener("mouseup", onMouseUpHandler);
|
|
681
|
-
};
|
|
682
|
-
}, [isControlled, openState, onOutsidePress, closeMenu]);
|
|
683
|
-
const onKeyDownHandler = (e) => {
|
|
684
|
-
if (!openState || !childrenRef.current || menuContext) return;
|
|
685
|
-
if (e.code === "Escape") {
|
|
686
|
-
e.stopPropagation();
|
|
687
|
-
e.preventDefault();
|
|
688
|
-
closeMenu();
|
|
689
|
-
}
|
|
690
|
-
const currentActiveIndex = focusItems?.findIndex(
|
|
691
|
-
(item) => item.id === getActiveElement(document)?.id
|
|
692
|
-
);
|
|
693
|
-
const firstItem = focusItems?.[0];
|
|
694
|
-
const lastItem = focusItems?.[focusItems.length - 1];
|
|
695
|
-
if (e.code === "ArrowDown") {
|
|
696
|
-
e.stopPropagation();
|
|
697
|
-
e.preventDefault();
|
|
698
|
-
if (currentActiveIndex === (focusItems?.length ?? 0) - 1) {
|
|
699
|
-
firstItem.focus();
|
|
700
|
-
return;
|
|
701
|
-
}
|
|
702
|
-
const nextItem = focusItems?.[(currentActiveIndex ?? 0) + 1];
|
|
703
|
-
nextItem.focus();
|
|
704
|
-
return;
|
|
705
|
-
}
|
|
706
|
-
if (e.code === "ArrowUp") {
|
|
707
|
-
e.stopPropagation();
|
|
708
|
-
e.preventDefault();
|
|
709
|
-
if (currentActiveIndex === 0) {
|
|
710
|
-
lastItem.focus();
|
|
731
|
+
const MenuButtonOnClick = () => {
|
|
732
|
+
if (isControlled) return;
|
|
733
|
+
if (openState) {
|
|
734
|
+
closeMenu();
|
|
711
735
|
return;
|
|
712
736
|
}
|
|
713
|
-
|
|
714
|
-
prevItem.focus();
|
|
715
|
-
return;
|
|
716
|
-
}
|
|
717
|
-
};
|
|
718
|
-
const value = useMemo(() => {
|
|
719
|
-
return {
|
|
720
|
-
disableAutoHeight,
|
|
721
|
-
closeRootMenu: menuContext?.closeRootMenu ?? closeMenu
|
|
737
|
+
openMenu();
|
|
722
738
|
};
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
739
|
+
const data = {
|
|
740
|
+
label: childrenToString(props.label)
|
|
741
|
+
};
|
|
742
|
+
const trackingId = useTrackingId({
|
|
743
|
+
name: "Menu",
|
|
744
|
+
data,
|
|
745
|
+
hasOverride: !!props["data-tracking-id"]
|
|
746
|
+
});
|
|
747
|
+
if (menuContext) {
|
|
748
|
+
return /* @__PURE__ */ jsx(MenuContext.Provider, { value, children: /* @__PURE__ */ jsx(
|
|
749
|
+
MenuNested,
|
|
750
|
+
{
|
|
751
|
+
"data-tracking-id": trackingId,
|
|
752
|
+
open,
|
|
753
|
+
defaultOpen,
|
|
754
|
+
className: props.className,
|
|
755
|
+
icon: props.icon,
|
|
756
|
+
label,
|
|
757
|
+
children
|
|
758
|
+
}
|
|
759
|
+
) });
|
|
736
760
|
}
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
const data = {
|
|
740
|
-
label: childrenToString(props.label)
|
|
741
|
-
};
|
|
742
|
-
const trackingId = useTrackingId({
|
|
743
|
-
name: "Menu",
|
|
744
|
-
data,
|
|
745
|
-
hasOverride: !!props["data-tracking-id"]
|
|
746
|
-
});
|
|
747
|
-
if (menuContext) {
|
|
748
|
-
return /* @__PURE__ */ jsx(MenuContext.Provider, { value, children: /* @__PURE__ */ jsx(
|
|
749
|
-
MenuNested,
|
|
750
|
-
{
|
|
751
|
-
"data-tracking-id": trackingId,
|
|
752
|
-
open,
|
|
753
|
-
defaultOpen,
|
|
754
|
-
className: props.className,
|
|
755
|
-
icon: props.icon,
|
|
756
|
-
label,
|
|
757
|
-
children
|
|
758
|
-
}
|
|
759
|
-
) });
|
|
760
|
-
}
|
|
761
|
-
return /* @__PURE__ */ jsxs(MenuContext.Provider, { value, children: [
|
|
762
|
-
trigger ? trigger({
|
|
763
|
-
ref: invokerRef,
|
|
764
|
-
onClick: () => MenuButtonOnClick(),
|
|
765
|
-
onKeyDown: MenuButtonOnKeyDownHandler,
|
|
766
|
-
"aria-haspopup": true,
|
|
767
|
-
"aria-controls": `menu-${uid.replace(/:/g, "")}`,
|
|
768
|
-
"aria-expanded": openState,
|
|
769
|
-
"data-state": openState ? "open" : "close"
|
|
770
|
-
}) : /* @__PURE__ */ jsx(
|
|
771
|
-
Button,
|
|
772
|
-
{
|
|
761
|
+
return /* @__PURE__ */ jsxs(MenuContext.Provider, { value, children: [
|
|
762
|
+
trigger ? trigger({
|
|
773
763
|
ref: invokerRef,
|
|
774
|
-
onClick: MenuButtonOnClick,
|
|
764
|
+
onClick: () => MenuButtonOnClick(),
|
|
775
765
|
onKeyDown: MenuButtonOnKeyDownHandler,
|
|
776
766
|
"aria-haspopup": true,
|
|
777
767
|
"aria-controls": `menu-${uid.replace(/:/g, "")}`,
|
|
778
|
-
"data-state": openState ? "open" : "close",
|
|
779
768
|
"aria-expanded": openState,
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
769
|
+
"data-state": openState ? "open" : "close"
|
|
770
|
+
}) : /* @__PURE__ */ jsx(
|
|
771
|
+
Button,
|
|
772
|
+
{
|
|
773
|
+
ref: invokerRef,
|
|
774
|
+
onClick: MenuButtonOnClick,
|
|
775
|
+
onKeyDown: MenuButtonOnKeyDownHandler,
|
|
776
|
+
"aria-haspopup": true,
|
|
777
|
+
"aria-controls": `menu-${uid.replace(/:/g, "")}`,
|
|
778
|
+
"data-state": openState ? "open" : "close",
|
|
779
|
+
"aria-expanded": openState,
|
|
780
|
+
...rest,
|
|
781
|
+
children: label
|
|
782
|
+
}
|
|
783
|
+
),
|
|
784
|
+
/* @__PURE__ */ jsxs(
|
|
785
|
+
"div",
|
|
786
|
+
{
|
|
787
|
+
popover: "manual",
|
|
788
|
+
id: `menu-${uid.replace(/:/g, "")}`,
|
|
789
|
+
"data-anv": "menu-content",
|
|
790
|
+
className: cx(styles.content, contentClassName),
|
|
791
|
+
onKeyDown: onKeyDownHandler,
|
|
792
|
+
ref: menuRef,
|
|
793
|
+
role: "presentation",
|
|
794
|
+
children: [
|
|
795
|
+
arrowStart && /* @__PURE__ */ jsx("div", { className: styles["arrow-up"], "aria-hidden": true, children: /* @__PURE__ */ jsx(Icon, { svg: SvgArrowDropUp, size: "xlarge", className: styles["arrow-icon"] }) }),
|
|
796
|
+
/* @__PURE__ */ jsx(
|
|
797
|
+
"div",
|
|
798
|
+
{
|
|
799
|
+
className: styles.scroller,
|
|
800
|
+
tabIndex: -1,
|
|
801
|
+
ref: childrenRef,
|
|
802
|
+
style: {
|
|
803
|
+
position: "relative",
|
|
804
|
+
maxHeight: maxHeight ? `${Math.min(menuHeight ?? Infinity, typeof maxHeight === "number" ? maxHeight : parseInt(maxHeight.toString()))}px` : menuHeight ?? "inherit"
|
|
805
|
+
},
|
|
806
|
+
onScroll: (e) => setScrollTop(e.currentTarget.scrollTop),
|
|
807
|
+
role: "menu",
|
|
808
|
+
id: `scroller-${uid.replace(/:/g, "")}`,
|
|
809
|
+
children
|
|
810
|
+
}
|
|
811
|
+
),
|
|
812
|
+
arrowEnd && /* @__PURE__ */ jsx("div", { className: styles["arrow-down"], "aria-hidden": true, children: /* @__PURE__ */ jsx(Icon, { svg: SvgArrowDropDown, size: "xlarge", className: styles["arrow-icon"] }) })
|
|
813
|
+
]
|
|
814
|
+
}
|
|
815
|
+
)
|
|
816
|
+
] });
|
|
817
|
+
},
|
|
818
|
+
{
|
|
819
|
+
/**
|
|
820
|
+
* MenuItem component for individual menu options.
|
|
821
|
+
*
|
|
822
|
+
* Features:
|
|
823
|
+
* - Supports icons and labels
|
|
824
|
+
* - Keyboard navigation support
|
|
825
|
+
* - Disabled state handling
|
|
826
|
+
* - Automatic menu closing on selection
|
|
827
|
+
* - Fully accessible with proper ARIA attributes
|
|
828
|
+
* - Focus management and tab index handling
|
|
829
|
+
* - Click and mouse enter event handling
|
|
830
|
+
*
|
|
831
|
+
* @example
|
|
832
|
+
* <Menu.Item
|
|
833
|
+
* label="Edit Profile"
|
|
834
|
+
* icon={EditIcon}
|
|
835
|
+
* onClick={() => console.log('Edit profile clicked')}
|
|
836
|
+
* />
|
|
837
|
+
*/
|
|
838
|
+
Item: MenuItem
|
|
839
|
+
}
|
|
840
|
+
);
|
|
841
841
|
|
|
842
842
|
export { Menu as M };
|
|
843
|
-
//# sourceMappingURL=Menu-
|
|
843
|
+
//# sourceMappingURL=Menu-CPbuIsqC.js.map
|