@servicetitan/anvil2 3.15.0 → 3.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/dist/{AiMark-D57s1e0T.js → AiMark-BfmK30vL.js} +3 -3
- package/dist/{AiMark-D57s1e0T.js.map → AiMark-BfmK30vL.js.map} +1 -1
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-DExHiAbM.js → Alert-lLo1N7Tj.js} +3 -3
- package/dist/{Alert-DExHiAbM.js.map → Alert-lLo1N7Tj.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-CGTv6M31.js → Announcement-Cnz80WGx.js} +2 -2
- package/dist/{Announcement-CGTv6M31.js.map → Announcement-Cnz80WGx.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{Breadcrumbs-DtLSS0PJ.js → Breadcrumbs-RdL4Fvmu.js} +2 -2
- package/dist/{Breadcrumbs-DtLSS0PJ.js.map → Breadcrumbs-RdL4Fvmu.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Button-Dwh_Nd4l.js → Button-Dn6-01xl.js} +230 -67
- package/dist/Button-Dn6-01xl.js.map +1 -0
- package/dist/Button.js +1 -1
- package/dist/{ButtonToggle-DKDBD1g3.js → ButtonToggle-BSU8GBxr.js} +2 -2
- package/dist/{ButtonToggle-DKDBD1g3.js.map → ButtonToggle-BSU8GBxr.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-BUFPc5UN.js → Calendar-DoLRAWLp.js} +2 -2
- package/dist/Calendar-DoLRAWLp.js.map +1 -0
- package/dist/{Calendar-CEf7ke8X.js → Calendar-IzXG1aJw.js} +3 -3
- package/dist/Calendar-IzXG1aJw.js.map +1 -0
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-DVy-QESI.js → Checkbox-CVxbe-iN.js} +3 -3
- package/dist/{Checkbox-DVy-QESI.js.map → Checkbox-CVxbe-iN.js.map} +1 -1
- package/dist/{Checkbox-DBE35nMv.js → Checkbox-U-kuWhgc.js} +2 -2
- package/dist/{Checkbox-DBE35nMv.js.map → Checkbox-U-kuWhgc.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-B4G4zaP-.js → Chip-2OydLs66.js} +2 -2
- package/dist/{Chip-B4G4zaP-.js.map → Chip-2OydLs66.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-DbuXfDNJ.js → DataTable-DkEpJ_Op.js} +16 -41
- package/dist/DataTable-DkEpJ_Op.js.map +1 -0
- package/dist/{DateFieldRange-nyj8mtUP.js → DateFieldRange-X2jdOTYY.js} +4 -4
- package/dist/{DateFieldRange-nyj8mtUP.js.map → DateFieldRange-X2jdOTYY.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-BmCghXba.js → DateFieldSingle-BJ16tpOz.js} +4 -4
- package/dist/{DateFieldSingle-BmCghXba.js.map → DateFieldSingle-BJ16tpOz.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-Df7fA85i.js → DateFieldYearless-CMm8vtz_.js} +4 -4
- package/dist/{DateFieldYearless-Df7fA85i.js.map → DateFieldYearless-CMm8vtz_.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-DYpY4K1c.js → DateFieldYearlessRange-BHHs-Z1Q.js} +3 -3
- package/dist/{DateFieldYearlessRange-DYpY4K1c.js.map → DateFieldYearlessRange-BHHs-Z1Q.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-CyWGRqFG.js → DaysOfTheWeek-BHXxs0Bo.js} +3 -3
- package/dist/{DaysOfTheWeek-CyWGRqFG.js.map → DaysOfTheWeek-BHXxs0Bo.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-oM-nR4ju.js → Details-BxqP-5vp.js} +11 -9
- package/dist/Details-BxqP-5vp.js.map +1 -0
- package/dist/Details.css +18 -14
- package/dist/Details.js +1 -1
- package/dist/{Dialog-vSiZAR1y.js → Dialog-B9llUKJz.js} +5 -5
- package/dist/{Dialog-vSiZAR1y.js.map → Dialog-B9llUKJz.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-DBL0aKTK.js → DialogCancelButton-C0r8hJ8Z.js} +2 -2
- package/dist/{DialogCancelButton-DBL0aKTK.js.map → DialogCancelButton-C0r8hJ8Z.js.map} +1 -1
- package/dist/{Drawer-B4pxj_2P.js → Drawer-Bjd2XLUX.js} +6 -6
- package/dist/{Drawer-B4pxj_2P.js.map → Drawer-Bjd2XLUX.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-CX1G7G2Q.js → EditCard-B6l2vhBS.js} +3 -3
- package/dist/{EditCard-CX1G7G2Q.js.map → EditCard-B6l2vhBS.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-CAusaqUY.js → FieldLabel-ThEmUiAq.js} +2 -2
- package/dist/{FieldLabel-CAusaqUY.js.map → FieldLabel-ThEmUiAq.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/{FilterBar-CKYf-1oU.js → FilterBar-ecqJDraA.js} +7 -7
- package/dist/FilterBar-ecqJDraA.js.map +1 -0
- package/dist/FilterBar.js +1 -1
- package/dist/{InputMask-xMpquXPU.js → InputMask-BQigi5oW.js} +3 -3
- package/dist/{InputMask-xMpquXPU.js.map → InputMask-BQigi5oW.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{InteractiveCard-C0g5PxB6.js → InteractiveCard-C2CYRtgQ.js} +3 -3
- package/dist/InteractiveCard-C2CYRtgQ.js.map +1 -0
- package/dist/InteractiveCard.js +1 -1
- package/dist/{ListView-D6l1KY92.js → ListView-YJscfG4x.js} +2 -2
- package/dist/{ListView-D6l1KY92.js.map → ListView-YJscfG4x.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-Dep1eJ3u.js → Listbox-CD9ZptSZ.js} +2 -2
- package/dist/{Listbox-Dep1eJ3u.js.map → Listbox-CD9ZptSZ.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-eLxQwmZk.js → Menu-Da2OEN0o.js} +2 -2
- package/dist/{Menu-eLxQwmZk.js.map → Menu-Da2OEN0o.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/{MenuFooter-fGSZYh8e.js → MenuFooter-D__gg92C.js} +2 -2
- package/dist/{MenuFooter-fGSZYh8e.js.map → MenuFooter-D__gg92C.js.map} +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-ZNoNOm6d.js → MultiSelectFieldSync-DpPO0cya.js} +7 -7
- package/dist/{MultiSelectFieldSync-ZNoNOm6d.js.map → MultiSelectFieldSync-DpPO0cya.js.map} +1 -1
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-DrgqaUJj.js → MultiSelectMenuSync-BN_3moW_.js} +5 -5
- package/dist/{MultiSelectMenuSync-DrgqaUJj.js.map → MultiSelectMenuSync-BN_3moW_.js.map} +1 -1
- package/dist/{NumberField-D5ZzEHg1.js → NumberField-CxmJx4gs.js} +4 -4
- package/dist/{NumberField-D5ZzEHg1.js.map → NumberField-CxmJx4gs.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-B2HZzNGP.js → Page-IZ4p51iJ.js} +19 -188
- package/dist/Page-IZ4p51iJ.js.map +1 -0
- package/dist/Page.js +1 -1
- package/dist/{Pagination-CAgXtt9t.js → Pagination-Su4VBAhT.js} +5 -5
- package/dist/{Pagination-CAgXtt9t.js.map → Pagination-Su4VBAhT.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-CjL2ixjB.js → Popover-CIh1CsoJ.js} +3 -3
- package/dist/{Popover-CjL2ixjB.js.map → Popover-CIh1CsoJ.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-ClKcOcXq.js → ProgressBar-TQ0fPmn9.js} +2 -2
- package/dist/{ProgressBar-ClKcOcXq.js.map → ProgressBar-TQ0fPmn9.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-_ftIQSru.js → Radio-BYowelK2.js} +3 -3
- package/dist/{Radio-_ftIQSru.js.map → Radio-BYowelK2.js.map} +1 -1
- package/dist/{Radio-C2BJqWlV.js → Radio-C1VnatcL.js} +2 -2
- package/dist/{Radio-C2BJqWlV.js.map → Radio-C1VnatcL.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{RichTextEditor-TcZUnqcp.js → RichTextEditor-BpzUo8dB.js} +12 -17
- package/dist/RichTextEditor-BpzUo8dB.js.map +1 -0
- package/dist/RichTextEditor.js +1 -1
- package/dist/{SavedFiltersButton-B8lf3L2T.js → SavedFiltersButton-D9GJbJQu.js} +10 -24
- package/dist/SavedFiltersButton-D9GJbJQu.js.map +1 -0
- package/dist/SavedFiltersButton.js +1 -1
- package/dist/{SegmentedControl-CtKoYHoO.js → SegmentedControl-BHVJmmTH.js} +3 -3
- package/dist/{SegmentedControl-CtKoYHoO.js.map → SegmentedControl-BHVJmmTH.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/{SelectCard-BwIbfore.js → SelectCard-DrmMU_GD.js} +3 -3
- package/dist/{SelectCard-BwIbfore.js.map → SelectCard-DrmMU_GD.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-7VTZ83QJ.js → SelectFieldLabel-BxsKvfqo.js} +2 -2
- package/dist/{SelectFieldLabel-7VTZ83QJ.js.map → SelectFieldLabel-BxsKvfqo.js.map} +1 -1
- package/dist/{SelectFieldSync-CB75kkka.js → SelectFieldSync-BN2ebLWT.js} +6 -6
- package/dist/{SelectFieldSync-CB75kkka.js.map → SelectFieldSync-BN2ebLWT.js.map} +1 -1
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-DIMfovCI.js → SelectMenuSync-DuPf8KCc.js} +5 -5
- package/dist/{SelectMenuSync-DIMfovCI.js.map → SelectMenuSync-DuPf8KCc.js.map} +1 -1
- package/dist/{SelectOptions-si_rVLEZ.js → SelectOptions-BK7kNjYM.js} +2 -2
- package/dist/{SelectOptions-si_rVLEZ.js.map → SelectOptions-BK7kNjYM.js.map} +1 -1
- package/dist/{SelectTrigger-C3-Cne3D.js → SelectTrigger-B5h-aqhl.js} +2 -2
- package/dist/{SelectTrigger-C3-Cne3D.js.map → SelectTrigger-B5h-aqhl.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-BnsTYWVb.js → SelectTriggerBase-SML2Mlt-.js} +4 -4
- package/dist/{SelectTriggerBase-BnsTYWVb.js.map → SelectTriggerBase-SML2Mlt-.js.map} +1 -1
- package/dist/{Stepper-C-QC9QHx.js → Stepper-l_P6VPOv.js} +3 -3
- package/dist/{Stepper-C-QC9QHx.js.map → Stepper-l_P6VPOv.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-DWq4QI8M.js → Switch-1iNdXTik.js} +2 -2
- package/dist/{Switch-DWq4QI8M.js.map → Switch-1iNdXTik.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/{Tab-mXEQ0ifM.js → Tab-DR5YYXkq.js} +124 -19
- package/dist/Tab-DR5YYXkq.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-dONmlARH.js → Text-rihxXHSe.js} +2 -2
- package/dist/{Text-dONmlARH.js.map → Text-rihxXHSe.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-CtXjbtqa.js → TextField-Bxd-Qzoi.js} +2 -2
- package/dist/{TextField-CtXjbtqa.js.map → TextField-Bxd-Qzoi.js.map} +1 -1
- package/dist/{TextField-CQ7e3mC4.js → TextField-vuS7xeo-.js} +3 -3
- package/dist/{TextField-CQ7e3mC4.js.map → TextField-vuS7xeo-.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-DGVHQktZ.js → Textarea-ppapJUwh.js} +3 -3
- package/dist/{Textarea-DGVHQktZ.js.map → Textarea-ppapJUwh.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-AttXPsQw.js → TimeField-Hwt_oRbg.js} +4 -4
- package/dist/{TimeField-AttXPsQw.js.map → TimeField-Hwt_oRbg.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-CNtAl-tF.js → Toaster-BryQmKe1.js} +4 -4
- package/dist/{Toaster-CNtAl-tF.js.map → Toaster-BryQmKe1.js.map} +1 -1
- package/dist/{Toaster-DYO8NLTo.js → Toaster-BtP_HezK.js} +2 -2
- package/dist/{Toaster-DYO8NLTo.js.map → Toaster-BtP_HezK.js.map} +1 -1
- package/dist/{Toolbar-BIbbaCxh.js → Toolbar-CMulzswf.js} +5 -5
- package/dist/{Toolbar-BIbbaCxh.js.map → Toolbar-CMulzswf.js.map} +1 -1
- package/dist/{Toolbar-B_lHD0c2.js → Toolbar-DGHZpFi9.js} +11 -105
- package/dist/Toolbar-DGHZpFi9.js.map +1 -0
- package/dist/Toolbar.js +2 -2
- package/dist/{ToolbarButtonToggle-BMBmBdw1.js → ToolbarButtonToggle-T8YnSJ5x.js} +2 -3
- package/dist/ToolbarButtonToggle-T8YnSJ5x.js.map +1 -0
- package/dist/TreeSelectField.js +1 -1
- package/dist/{TreeSelectFieldSync-CKnFwROC.js → TreeSelectFieldSync-C0mXwYZL.js} +7 -7
- package/dist/TreeSelectFieldSync-C0mXwYZL.js.map +1 -0
- package/dist/TreeSelectMenu.js +1 -1
- package/dist/{TreeSelectMenuSync-CK-x2_ne.js → TreeSelectMenuSync-D2TvKxP-.js} +4 -4
- package/dist/TreeSelectMenuSync-D2TvKxP-.js.map +1 -0
- package/dist/{TypeaheadTextField-DqnUGXj0.js → TypeaheadTextField-DgazozK7.js} +10 -19
- package/dist/TypeaheadTextField-DgazozK7.js.map +1 -0
- package/dist/TypeaheadTextField.js +1 -1
- package/dist/{YearlessDateInputWithPicker-aI4UIyMD.js → YearlessDateInputWithPicker-Bc8a33D5.js} +2 -2
- package/dist/{YearlessDateInputWithPicker-aI4UIyMD.js.map → YearlessDateInputWithPicker-Bc8a33D5.js.map} +1 -1
- package/dist/beta.js +18 -18
- package/dist/{bulkActionTypes-sbwWLsDi.js → bulkActionTypes-D5y3Acn1.js} +2 -2
- package/dist/{bulkActionTypes-sbwWLsDi.js.map → bulkActionTypes-D5y3Acn1.js.map} +1 -1
- package/dist/{filter-state-DW8YmRHb.js → filter-state-Do862BNr.js} +55 -37
- package/dist/filter-state-Do862BNr.js.map +1 -0
- package/dist/{index-Cw2HFh0a.js → index-Dt0zG4YB.js} +2 -2
- package/dist/{index-Cw2HFh0a.js.map → index-Dt0zG4YB.js.map} +1 -1
- package/dist/index.js +49 -49
- package/dist/{proxy-DEehATlA.js → react-ORV84FjM.js} +6862 -5814
- package/dist/react-ORV84FjM.js.map +1 -0
- package/dist/src/beta/components/Calendar/Calendar.d.ts +8 -17
- package/dist/src/beta/components/Calendar/CalendarBetaPropsContext.d.ts +1 -0
- package/dist/src/beta/components/Calendar/useCalendarBetaProps.d.ts +1 -0
- package/dist/src/beta/components/FilterBar/FilterBar.d.ts +12 -53
- package/dist/src/beta/components/FilterBar/FilterDateList.d.ts +8 -0
- package/dist/src/beta/components/FilterBar/FilterDateRange.d.ts +15 -9
- package/dist/src/beta/components/FilterBar/FilterDateSingle.d.ts +15 -9
- package/dist/src/beta/components/FilterBar/FilterDrawer.d.ts +1 -14
- package/dist/src/beta/components/FilterBar/FilterItemWrapper.d.ts +0 -7
- package/dist/src/beta/components/FilterBar/FilterNumericRange.d.ts +4 -13
- package/dist/src/beta/components/FilterBar/FilterPopoverButton.d.ts +6 -8
- package/dist/src/beta/components/FilterBar/FilterSearchField.d.ts +3 -6
- package/dist/src/beta/components/FilterBar/FilterTextInput.d.ts +4 -13
- package/dist/src/beta/components/FilterBar/FilterToggleButton.d.ts +3 -14
- package/dist/src/beta/components/FilterBar/FilterTriggerButton.d.ts +3 -3
- package/dist/src/beta/components/FilterBar/internal/FilterGroupContext.d.ts +6 -20
- package/dist/src/beta/components/FilterBar/internal/adapters/index.d.ts +3 -8
- package/dist/src/beta/components/FilterBar/internal/adapters/types.d.ts +7 -19
- package/dist/src/beta/components/FilterBar/internal/types.d.ts +48 -57
- package/dist/src/beta/components/FilterBar/internal/utils/dateConstraints.d.ts +3 -3
- package/dist/src/beta/components/FilterBar/internal/utils/dateListLibraryOptions.d.ts +4 -7
- package/dist/src/beta/components/FilterBar/internal/utils/filter-state.d.ts +3 -24
- package/dist/src/beta/components/InteractiveCard/InteractiveCard.d.ts +2 -47
- package/dist/src/beta/components/InteractiveCard/types.d.ts +13 -71
- package/dist/src/beta/components/Page/Page.d.ts +8 -166
- package/dist/src/beta/components/Page/PageContent.d.ts +3 -17
- package/dist/src/beta/components/Page/PageContext.d.ts +9 -0
- package/dist/src/beta/components/Page/PageFooter.d.ts +2 -15
- package/dist/src/beta/components/Page/PageHeader.d.ts +38 -91
- package/dist/src/beta/components/Page/PagePanel.d.ts +17 -115
- package/dist/src/beta/components/Page/PagePanelContent.d.ts +5 -37
- package/dist/src/beta/components/Page/PagePanelFooter.d.ts +4 -27
- package/dist/src/beta/components/Page/PagePanelHeader.d.ts +3 -16
- package/dist/src/beta/components/Page/PageSidebar.d.ts +8 -41
- package/dist/src/beta/components/Page/PageSidebarHeader.d.ts +2 -20
- package/dist/src/beta/components/Page/internal/PagePanelContext.d.ts +1 -6
- package/dist/src/beta/components/Page/pageBreakpoint.d.ts +5 -18
- package/dist/src/beta/components/RichTextEditor/RichTextEditor.d.ts +2 -25
- package/dist/src/beta/components/RichTextEditor/internal/LinkPopover.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/MentionList.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/MentionPopover.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/RichTextEditorToolbar.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/YouTubeEmbedPrompt.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/YouTubePopover.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/extensions/ImageUploadExtension.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/extensions/LinkKeyboardShortcutExtension.d.ts +1 -0
- package/dist/src/beta/components/RichTextEditor/internal/extensions/MentionExtension.d.ts +5 -0
- package/dist/src/beta/components/RichTextEditor/internal/extensions/SafeImageExtension.d.ts +3 -10
- package/dist/src/beta/components/RichTextEditor/internal/extensions/YoutubeExtension.d.ts +4 -0
- package/dist/src/beta/components/RichTextEditor/internal/useRichTextEditor.d.ts +3 -17
- package/dist/src/beta/components/RichTextEditor/types.d.ts +46 -71
- package/dist/src/beta/components/SavedFiltersButton/SavedFiltersButton.d.ts +2 -33
- package/dist/src/beta/components/SavedFiltersButton/internal/AddSavedFilterDrawer.d.ts +2 -12
- package/dist/src/beta/components/SavedFiltersButton/internal/EditSavedFiltersDrawer.d.ts +2 -20
- package/dist/src/beta/components/SavedFiltersButton/parts.d.ts +0 -23
- package/dist/src/beta/components/SavedFiltersButton/types.d.ts +36 -85
- package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +34 -84
- package/dist/src/beta/components/Table/DataTable/internal/DataTableBody.d.ts +15 -22
- package/dist/src/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +47 -18
- package/dist/src/beta/components/Table/DataTable/internal/DataTableCellAffordance.d.ts +8 -0
- package/dist/src/beta/components/Table/DataTable/internal/DataTableFooter.d.ts +17 -23
- package/dist/src/beta/components/Table/DataTable/internal/DataTableHeader.d.ts +6 -9
- package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +16 -0
- package/dist/src/beta/components/Table/DataTable/internal/cells/CellFocusContext.d.ts +2 -11
- package/dist/src/beta/components/Table/DataTable/internal/cells/CellStatus.d.ts +7 -5
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyCell.d.ts +4 -8
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyImmutableCell.d.ts +4 -17
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyMutableCell.d.ts +4 -18
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableFooterCell.d.ts +3 -10
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableHeaderCell.d.ts +3 -15
- package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableOverflowCell.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/cells/useCellFocusListener.d.ts +2 -6
- package/dist/src/beta/components/Table/DataTable/internal/constants.d.ts +13 -30
- package/dist/src/beta/components/Table/DataTable/internal/context/focus/DTFocusContext.d.ts +1 -6
- package/dist/src/beta/components/Table/DataTable/internal/context/focus/DTFocusProvider.d.ts +3 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/focus/useDTFocusDispatchContext.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/focus/useDTFocusStateContext.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/DataTableRowClickContext.d.ts +2 -5
- package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/DataTableRowClickProvider.d.ts +2 -5
- package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/useDataTableRowClick.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/surface/DataTableSurfaceCoordinatorContext.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/surface/DataTableSurfaceCoordinatorProvider.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/surface/useDataTableSurfaceCoordinator.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/dataTableCellAffordanceHostClassName.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableBooleanCell.d.ts +6 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableCellEditIcon.d.ts +1 -4
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableCustomCell.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +5 -25
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +3 -13
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableNumberCell.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectAsyncCell.d.ts +5 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectCell.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableTextCell.d.ts +4 -0
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/types.d.ts +7 -20
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/useCustomEditHelpers.d.ts +13 -26
- package/dist/src/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +2 -10
- package/dist/src/beta/components/Table/DataTable/internal/useAsyncData.d.ts +8 -0
- package/dist/src/beta/components/Table/DataTable/internal/useColumnOrder.d.ts +2 -2
- package/dist/src/beta/components/Table/DataTable/internal/useDataTableVirtualizer.d.ts +7 -18
- package/dist/src/beta/components/Table/DataTable/internal/usePageDataCache.d.ts +6 -10
- package/dist/src/beta/components/Table/DataTable/internal/util/cellPositionHelpers.d.ts +0 -3
- package/dist/src/beta/components/Table/DataTable/internal/util/cellTypeHelpers.d.ts +7 -24
- package/dist/src/beta/components/Table/DataTable/internal/util/getCellInteractives.d.ts +4 -17
- package/dist/src/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +5 -29
- package/dist/src/beta/components/Table/DataTable/internal/util/shallowSortingEqual.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/parts.d.ts +3 -17
- package/dist/src/beta/components/Table/DataTable/types.d.ts +41 -64
- package/dist/src/beta/components/Table/base/TableBase.d.ts +8 -26
- package/dist/src/beta/components/Table/base/TableBody.d.ts +5 -14
- package/dist/src/beta/components/Table/base/TableContainer.d.ts +1 -11
- package/dist/src/beta/components/Table/base/TableFooter.d.ts +5 -14
- package/dist/src/beta/components/Table/base/TableHeader.d.ts +5 -14
- package/dist/src/beta/components/Table/base/cells/TableBodyCell.d.ts +4 -13
- package/dist/src/beta/components/Table/base/cells/TableEmptyCellContent.d.ts +1 -1
- package/dist/src/beta/components/Table/base/cells/TableFooterCell.d.ts +5 -13
- package/dist/src/beta/components/Table/base/cells/TableHeaderCell.d.ts +8 -25
- package/dist/src/beta/components/Table/base/cells/types.d.ts +2 -6
- package/dist/src/beta/components/Table/columnTypeDefaults.d.ts +7 -36
- package/dist/src/beta/components/Table/createColumnHelper.d.ts +38 -153
- package/dist/src/beta/components/Table/formatters/booleanFormatter.d.ts +4 -15
- package/dist/src/beta/components/Table/formatters/chipsFormatter.d.ts +7 -9
- package/dist/src/beta/components/Table/formatters/currencyFormatter.d.ts +3 -15
- package/dist/src/beta/components/Table/formatters/dateFormatter.d.ts +10 -23
- package/dist/src/beta/components/Table/formatters/dateTimeFormatter.d.ts +23 -46
- package/dist/src/beta/components/Table/formatters/htmlFormatter.d.ts +2 -11
- package/dist/src/beta/components/Table/formatters/htmlToMarkdown.d.ts +5 -10
- package/dist/src/beta/components/Table/formatters/markdownFormatter.d.ts +3 -8
- package/dist/src/beta/components/Table/formatters/numberFormatter.d.ts +8 -27
- package/dist/src/beta/components/Table/formatters/percentFormatter.d.ts +4 -15
- package/dist/src/beta/components/Table/formatters/presets.d.ts +4 -12
- package/dist/src/beta/components/Table/formatters/timeFormatter.d.ts +7 -17
- package/dist/src/beta/components/Table/formatters/yearlessDateFormatter.d.ts +9 -21
- package/dist/src/beta/components/Table/internal/ResizeHandle.d.ts +5 -9
- package/dist/src/beta/components/Table/internal/TruncateChips.d.ts +2 -11
- package/dist/src/beta/components/Table/internal/getCommonPinningClasses.d.ts +2 -1
- package/dist/src/beta/components/Table/internal/getCommonPinningStyles.d.ts +6 -2
- package/dist/src/beta/components/Table/internal/scrollCellIntoView.d.ts +3 -7
- package/dist/src/beta/components/Table/internal/types.d.ts +2 -7
- package/dist/src/beta/components/Table/types.d.ts +183 -462
- package/dist/src/beta/components/Toolbar/Toolbar.d.ts +35 -267
- package/dist/src/beta/components/Toolbar/ToolbarButton.d.ts +5 -26
- package/dist/src/beta/components/Toolbar/ToolbarButtonLink.d.ts +5 -28
- package/dist/src/beta/components/Toolbar/ToolbarButtonToggle.d.ts +5 -27
- package/dist/src/beta/components/Toolbar/ToolbarControlGroup.d.ts +6 -8
- package/dist/src/beta/components/Toolbar/ToolbarSearchField.d.ts +3 -14
- package/dist/src/beta/components/Toolbar/ToolbarSelect.d.ts +13 -65
- package/dist/src/beta/components/Toolbar/internal/ToolbarContext.d.ts +0 -32
- package/dist/src/beta/components/Toolbar/internal/ToolbarItemOverflowContext.d.ts +0 -13
- package/dist/src/beta/components/Toolbar/internal/ToolbarItemWrapper.d.ts +2 -28
- package/dist/src/beta/components/Toolbar/internal/ToolbarOverflowMenu.d.ts +4 -21
- package/dist/src/beta/components/Toolbar/internal/utils/accessibility.d.ts +7 -15
- package/dist/src/beta/components/Toolbar/types.d.ts +7 -26
- package/dist/src/beta/components/TreeSelectField/TreeSelectField.d.ts +2 -23
- package/dist/src/beta/components/TreeSelectField/TreeSelectFieldSync.d.ts +10 -46
- package/dist/src/beta/components/TreeSelectField/internal/TreeContent.d.ts +5 -21
- package/dist/src/beta/components/TreeSelectField/internal/TreePanel.d.ts +1 -38
- package/dist/src/beta/components/TreeSelectField/internal/TreeRow.d.ts +6 -38
- package/dist/src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.d.ts +2 -50
- package/dist/src/beta/components/TreeSelectField/internal/VirtualizedTreePanel.d.ts +2 -39
- package/dist/src/beta/components/TreeSelectField/internal/treeSync.d.ts +6 -21
- package/dist/src/beta/components/TreeSelectField/internal/treeUtils.d.ts +3 -19
- package/dist/src/beta/components/TreeSelectField/internal/useTree.d.ts +9 -50
- package/dist/src/beta/components/TreeSelectField/internal/useTreeCascade.d.ts +8 -79
- package/dist/src/beta/components/TreeSelectField/internal/useTreeKeyboard.d.ts +3 -29
- package/dist/src/beta/components/TreeSelectField/internal/useTreeLazyCascade.d.ts +8 -36
- package/dist/src/beta/components/TreeSelectField/internal/useTreeLoader.d.ts +10 -34
- package/dist/src/beta/components/TreeSelectField/parts.d.ts +3 -9
- package/dist/src/beta/components/TreeSelectField/types.d.ts +82 -68
- package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenu.d.ts +4 -18
- package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenuSync.d.ts +9 -47
- package/dist/src/beta/components/TreeSelectMenu/parts.d.ts +4 -4
- package/dist/src/beta/components/TreeSelectMenu/types.d.ts +44 -54
- package/dist/src/beta/components/TypeaheadTextField/TypeaheadTextField.d.ts +15 -43
- package/dist/src/beta/components/TypeaheadTextField/internal/SuggestionItem.d.ts +1 -18
- package/dist/src/beta/hooks/useAdaptiveView/useAdaptiveView.d.ts +6 -41
- package/dist/src/integration-testing/stepper-panel-flicker.spec.d.ts +1 -0
- package/dist/{stripInlineMarkdown-DmU2adBb.js → stripInlineMarkdown-BhYLEiXu.js} +2 -2
- package/dist/{stripInlineMarkdown-DmU2adBb.js.map → stripInlineMarkdown-BhYLEiXu.js.map} +1 -1
- package/dist/{syncFilterUtils-CP4dhWVs.js → syncFilterUtils-ClEj4Oeg.js} +4 -4
- package/dist/{syncFilterUtils-CP4dhWVs.js.map → syncFilterUtils-ClEj4Oeg.js.map} +1 -1
- package/dist/{treeSync-CDrgjuw8.js → treeSync-B38r1dRQ.js} +5 -11
- package/dist/treeSync-B38r1dRQ.js.map +1 -0
- package/dist/{use-reduced-motion-CqjZZ5QB.js → use-reduced-motion-yYB9Tb0D.js} +2 -2
- package/dist/use-reduced-motion-yYB9Tb0D.js.map +1 -0
- package/dist/{useDrilldown-DV4qyVOI.js → useDrilldown-BOeeNUsy.js} +4 -4
- package/dist/{useDrilldown-DV4qyVOI.js.map → useDrilldown-BOeeNUsy.js.map} +1 -1
- package/dist/{useInfiniteCombobox-DvyQpdwv.js → useInfiniteCombobox-7oIT2Mzn.js} +4 -4
- package/dist/{useInfiniteCombobox-DvyQpdwv.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-D3KWg4qK.js → useInvalidateOnOptionsChange-BD2VBpbK.js} +5 -5
- package/dist/useInvalidateOnOptionsChange-BD2VBpbK.js.map +1 -0
- 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 -4
- package/dist/Button-Dwh_Nd4l.js.map +0 -1
- package/dist/Calendar-BUFPc5UN.js.map +0 -1
- package/dist/Calendar-CEf7ke8X.js.map +0 -1
- package/dist/DataTable-DbuXfDNJ.js.map +0 -1
- package/dist/Details-oM-nR4ju.js.map +0 -1
- package/dist/FilterBar-CKYf-1oU.js.map +0 -1
- package/dist/InteractiveCard-C0g5PxB6.js.map +0 -1
- package/dist/Page-B2HZzNGP.js.map +0 -1
- package/dist/RichTextEditor-TcZUnqcp.js.map +0 -1
- package/dist/SavedFiltersButton-B8lf3L2T.js.map +0 -1
- package/dist/Tab-mXEQ0ifM.js.map +0 -1
- package/dist/Toolbar-B_lHD0c2.js.map +0 -1
- package/dist/ToolbarButtonToggle-BMBmBdw1.js.map +0 -1
- package/dist/TreeSelectFieldSync-CKnFwROC.js.map +0 -1
- package/dist/TreeSelectMenuSync-CK-x2_ne.js.map +0 -1
- package/dist/TypeaheadTextField-DqnUGXj0.js.map +0 -1
- package/dist/filter-state-DW8YmRHb.js.map +0 -1
- package/dist/proxy-DEehATlA.js.map +0 -1
- package/dist/treeSync-CDrgjuw8.js.map +0 -1
- package/dist/use-reduced-motion-CqjZZ5QB.js.map +0 -1
- package/dist/useInvalidateOnOptionsChange-D3KWg4qK.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolbarButtonToggle-T8YnSJ5x.js","sources":["../src/beta/components/Toolbar/internal/ToolbarContext.tsx","../src/beta/components/Toolbar/internal/utils/accessibility.ts","../src/beta/components/Toolbar/internal/ToolbarItemWrapper.tsx","../src/beta/components/Toolbar/internal/ToolbarItemOverflowContext.tsx","../src/beta/components/Toolbar/parts.ts","../src/beta/components/Toolbar/ToolbarButtonToggle.tsx"],"sourcesContent":["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 the toolbar's visible roving-focus controls, followed by its overflow\n * trigger when present.\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 // Exclude focusables that live inside floating content (popovers,\n // dialogs, menus, drawers) or are explicitly aria-hidden. Floating\n // containers using `display: none` / the `popover` API don't propagate\n // their hidden state to descendants via `getComputedStyle`, so we have\n // to detect them structurally.\n const isHidden = !item.closest('[aria-hidden=\"true\"]');\n const isInDrawer = !item.closest('[data-anv=\"filter-group-drawer\"]');\n const isInPopover = !item.closest('[data-anv=\"popover-content\"]');\n const isInDialog = !item.closest(\"dialog\");\n const isNotInMenuContent = !item.closest('[data-anv=\"menu-content\"]');\n // FilterBar's search field manages its own tabindex (always tabbable)\n // instead of participating in the roving-tabindex pool, so it must be\n // excluded here — see FilterSearchField.\n const isNotSearchField = !item.closest(\n '[data-anv=\"filter-search-field\"]',\n );\n return (\n isHidden &&\n isInDrawer &&\n isInPopover &&\n isInDialog &&\n isNotInMenuContent &&\n isNotSearchField\n );\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 control, defaulting to the\n * first visible 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 focus along the toolbar's orientation with wrapping arrow-key\n * navigation and Home/End shortcuts.\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 overflow-menu focus with wrapping vertical arrows and Home/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 cx from \"classnames\";\nimport styles from \"../Toolbar.module.scss\";\n\nexport type ToolbarItemWrapperProps = {\n item: Omit<ToolbarItemProps, \"id\">;\n children: React.ReactNode;\n observerRoot?: Element | null;\n onVisibilityChange?: (isVisible: boolean) => void;\n rootMargin?: string;\n className?: string;\n};\n\n/**\n * Registers controls that no longer fit for collapse overflow and keeps the active\n * control in the toolbar's roving-tabindex pool.\n */\nexport const ToolbarItemWrapper = ({\n item,\n children,\n observerRoot,\n onVisibilityChange,\n rootMargin,\n className,\n}: ToolbarItemWrapperProps) => {\n const { addItem, removeItem, toolbarRef, overflow } =\n useContext(ToolbarContext);\n const itemId = useId();\n const elementRef = useRef<HTMLDivElement | null>(null);\n const isCollapseMode = overflow === \"collapse\";\n const prevIntersectingRef = useRef<boolean>(true);\n\n // Ignore repeated observer reports so overflow registration stays idempotent.\n const handleVisibilityChange = useCallback(\n (isVisible: boolean) => {\n if (!isCollapseMode || prevIntersectingRef.current === isVisible) return;\n\n if (onVisibilityChange) {\n onVisibilityChange(isVisible);\n } else if (item) {\n const itemWithId = { ...item, id: itemId };\n if (isVisible) {\n removeItem(itemWithId);\n } else {\n addItem(itemWithId);\n }\n }\n prevIntersectingRef.current = isVisible;\n },\n [isCollapseMode, onVisibilityChange, item, itemId, addItem, removeItem],\n );\n\n const { isIntersecting, ref } = useIntersectionObserver({\n root: isCollapseMode ? (observerRoot ?? toolbarRef.current) : null,\n threshold: 1,\n initialIsIntersecting: true,\n onChange: handleVisibilityChange,\n rootMargin,\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 const toolbarItemClassName = cx(styles[\"toolbar-item\"], className);\n const isHidden = isCollapseMode && !isIntersecting;\n\n return (\n <div\n ref={setRefCallback}\n className={toolbarItemClassName}\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","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 { 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 input: COMMON_PART.input,\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 ButtonToggle, {\n type ButtonToggleProps,\n} from \"../../../components/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 \"../../../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<ButtonToggleProps, \"aria-label\" | \"children\"> */\ntype ToolbarButtonToggleBaseProps = Omit<\n ButtonToggleProps,\n \"aria-label\" | \"children\"\n> & {\n /** Bypasses toolbar overflow registration for FilterBar-managed controls. */\n isFilter?: boolean;\n};\n\n/** @extends WithAriaLabelEnforcement<ToolbarButtonToggleBaseProps> */\nexport type ToolbarButtonToggleProps =\n WithAriaLabelEnforcement<ToolbarButtonToggleBaseProps> & DataTrackingId;\n\n/**\n * Toolbar toggle that inherits its size and participates in roving focus and\n * collapse overflow. Icon-only toggles show their `aria-label` in 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, isFilter, ...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 || isFilter) {\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"],"names":[],"mappings":"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"}
|
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-
|
|
9
|
-
import { B as Button } from './Button-
|
|
10
|
-
import { C as Chip } from './Chip-
|
|
8
|
+
import { b as useAdaptiveView, O as OptionsDialog, a as OptionsPopover, u as useInvalidateOnOptionsChange } from './useInvalidateOnOptionsChange-BD2VBpbK.js';
|
|
9
|
+
import { B as Button } from './Button-Dn6-01xl.js';
|
|
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';
|
|
@@ -87,7 +87,7 @@ const TreeSelectFieldInput = ({
|
|
|
87
87
|
inputRef?.current?.focus();
|
|
88
88
|
};
|
|
89
89
|
return (
|
|
90
|
-
// eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events -- Click-to-focus
|
|
90
|
+
// eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events -- Click-to-focus wrapper; nested controls own keyboard interaction.
|
|
91
91
|
/* @__PURE__ */ jsxs(
|
|
92
92
|
"div",
|
|
93
93
|
{
|
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeSelectFieldSync-C0mXwYZL.js","sources":["../src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.tsx","../src/beta/components/TreeSelectField/TreeSelectField.tsx","../src/beta/components/TreeSelectField/TreeSelectFieldSync.tsx"],"sourcesContent":["import styles from \"./TreeSelectFieldInput.module.scss\";\nimport cx from \"classnames\";\nimport { Button } from \"../../../../components/Button\";\nimport { Chip } from \"../../../../components/Chip\";\nimport { Flex } from \"../../../../components/Flex\";\nimport Chevron_Right from \"@servicetitan/hammer-icon/mdi/round/chevron_right.svg\";\nimport type { ReactElement, RefObject, KeyboardEvent, MouseEvent } from \"react\";\nimport { ANV_PART_ATTR } from \"../../../../internal/constants/anvParts\";\nimport type { TreeSelectFieldValue } from \"../types\";\nimport { PARTS } from \"../parts\";\nimport type { MultiSelectFieldChipProps } from \"../../../../components/MultiSelectField/types\";\nimport { useChipLayout } from \"../../../../components/MultiSelectField/internal/useChipLayout\";\n\nexport type TreeSelectFieldInputProps = {\n id?: string;\n placeholder?: string;\n size?: \"small\" | \"medium\" | \"large\";\n disabled?: boolean;\n readOnly?: boolean;\n error?: boolean;\n single?: boolean;\n singleRow?: boolean;\n maxChips?: number;\n prefix?: string | ReactElement;\n suffix?: string | ReactElement;\n selectedOptions: TreeSelectFieldValue[];\n onRemoveOption: (option: TreeSelectFieldValue) => void;\n getChipProps?: (value: TreeSelectFieldValue) => MultiSelectFieldChipProps;\n inputRef?: RefObject<HTMLInputElement>;\n inputWrapperRef?: RefObject<HTMLDivElement>;\n searchValue?: string;\n onSearchChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n onInputKeyDown?: (e: React.KeyboardEvent) => void;\n onWrapperClick?: () => void;\n isOpen?: boolean;\n ariaControls?: string;\n disableSearch?: boolean;\n comboboxProps?: Record<string, unknown>;\n};\n\n/**\n * Renders the field trigger and toggle button. Multi-select search uses an\n * editable combobox; single-select or disabled search uses a read-only one.\n */\nexport const TreeSelectFieldInput = ({\n id,\n placeholder,\n size,\n disabled,\n readOnly,\n error,\n single,\n singleRow,\n maxChips,\n prefix,\n suffix,\n selectedOptions,\n onRemoveOption,\n getChipProps,\n inputRef,\n inputWrapperRef,\n searchValue,\n onSearchChange,\n onInputKeyDown,\n onWrapperClick,\n isOpen,\n ariaControls,\n disableSearch,\n comboboxProps,\n}: TreeSelectFieldInputProps) => {\n const { rowsRef, displayCount, hiddenCount } = useChipLayout({\n selectedOptionsLength: selectedOptions.length,\n singleRow,\n maxChips,\n });\n\n const inputWrapperClassNames = cx(styles[\"input-wrapper\"], {\n [styles[\"small\"]]: size === \"small\",\n [styles[\"large\"]]: size === \"large\",\n [styles[\"disabled\"]]: disabled || readOnly,\n });\n\n const handleWrapperClick = (e: MouseEvent<HTMLDivElement>) => {\n const target = e.target as HTMLElement;\n if (target.closest(\"button\") || target.tagName === \"INPUT\") {\n return;\n }\n onWrapperClick?.();\n inputRef?.current?.focus();\n };\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events -- Click-to-focus wrapper; nested controls own keyboard interaction.\n <div\n ref={inputWrapperRef}\n className={inputWrapperClassNames}\n onClick={handleWrapperClick}\n >\n {prefix ? <div className={styles[\"prefix\"]}>{prefix}</div> : null}\n\n <div\n className={styles[\"rows-wrapper\"]}\n ref={rowsRef}\n data-single-row={singleRow || undefined}\n >\n {!single && selectedOptions.length > 0\n ? selectedOptions.slice(0, displayCount).map((option, index) => (\n <div\n key={`selected-item-${option.id}-${index}`}\n className={styles[\"chip-wrapper\"]}\n >\n <Chip\n {...getChipProps?.(option)}\n {...{ [ANV_PART_ATTR]: PARTS.chip }}\n label={option.label}\n onClose={\n disabled || readOnly || option.disabled\n ? undefined\n : () => onRemoveOption(option)\n }\n className={styles[\"chip\"]}\n title={option.label}\n />\n </div>\n ))\n : null}\n\n {hiddenCount > 0 ? (\n <div className={styles[\"chip-wrapper\"]}>\n <Chip\n label={`+${hiddenCount}`}\n className={styles[\"chip\"]}\n title={selectedOptions\n .slice(displayCount)\n .map((option) => option.label)\n .join(\", \")}\n {...{ [ANV_PART_ATTR]: PARTS.overflowChip }}\n />\n </div>\n ) : null}\n\n {!disableSearch && !single ? (\n <Flex className={styles[\"input-flex\"]} alignItems=\"center\">\n <input\n ref={inputRef}\n id={id}\n type=\"text\"\n className={cx(styles[\"input\"], { [styles[\"error\"]]: error })}\n role=\"combobox\"\n aria-controls={ariaControls}\n aria-expanded={isOpen}\n aria-haspopup=\"tree\"\n value={searchValue}\n onChange={onSearchChange}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) =>\n onInputKeyDown?.(e)\n }\n disabled={disabled}\n readOnly={readOnly}\n placeholder={\n selectedOptions.length === 0 ? placeholder : undefined\n }\n {...comboboxProps}\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n </Flex>\n ) : null}\n\n {single || disableSearch ? (\n <Flex className={styles[\"input-flex\"]} alignItems=\"center\">\n <input\n ref={inputRef}\n id={id}\n type=\"text\"\n className={cx(styles[\"input\"], { [styles[\"error\"]]: error })}\n role=\"combobox\"\n aria-controls={ariaControls}\n aria-expanded={isOpen}\n aria-haspopup=\"tree\"\n readOnly\n value={\n single && selectedOptions.length > 0\n ? selectedOptions[0].label\n : \"\"\n }\n disabled={disabled}\n placeholder={\n selectedOptions.length === 0 ? placeholder : undefined\n }\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>) =>\n onInputKeyDown?.(e)\n }\n {...comboboxProps}\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n </Flex>\n ) : null}\n </div>\n\n {suffix ? <div className={styles[\"suffix\"]}>{suffix}</div> : null}\n\n <div className={styles[\"buttons-wrapper\"]}>\n <div className={styles[\"toggle-button-wrapper\"]}>\n <Button\n icon={Chevron_Right}\n aria-label=\"toggle menu\"\n appearance=\"ghost\"\n size=\"small\"\n disabled={disabled}\n aria-expanded={isOpen}\n className={styles[\"toggle-button\"]}\n tabIndex={-1}\n {...{ [ANV_PART_ATTR]: PARTS.toggleButton }}\n onClick={() => {\n onWrapperClick?.();\n inputRef?.current?.focus();\n }}\n />\n </div>\n </div>\n </div>\n );\n};\n\nTreeSelectFieldInput.displayName = \"TreeSelectFieldInput\";\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n useEffect,\n useImperativeHandle,\n useCallback,\n} from \"react\";\nimport cx from \"classnames\";\nimport type {\n TreeSelectFieldHandle,\n TreeSelectFieldNode,\n TreeSelectFieldProps,\n TreeSelectFieldValue,\n} from \"./types\";\nimport type { DataAttributes } from \"../../../types\";\nimport { useLayoutPropsUtil } from \"../../../internal/hooks/useLayoutPropsUtil\";\nimport { warnDeprecatedErrorUsage } from \"../../../components/FieldMessage\";\nimport { FieldMessage } from \"../../../components/FieldMessage\";\nimport { FieldLabel } from \"../../../components/FieldLabel\";\nimport { SrOnly } from \"../../../components/SrOnly\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { useAdaptiveView } from \"../../hooks/useAdaptiveView\";\nimport { TreeSelectFieldInput } from \"./internal/TreeSelectFieldInput\";\nimport { useTreeLoader } from \"./internal/useTreeLoader\";\nimport { useTree } from \"./internal/useTree\";\nimport { TreeContent } from \"./internal/TreeContent\";\nimport { findNode } from \"./internal/treeUtils\";\nimport { useTreeLazyCascade } from \"./internal/useTreeLazyCascade\";\nimport triggerStyles from \"../../../components/SelectTrigger/internal/SelectTriggerBase.module.scss\";\n\n/**\n * Hierarchical select rendered in a popover or dialog.\n * Multi-select supports search; every mode uses a controlled value array.\n */\nexport const TreeSelectField = forwardRef<\n TreeSelectFieldHandle,\n TreeSelectFieldProps\n>((propsWithLayout, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(propsWithLayout);\n\n const dataAttributes = Object.fromEntries(\n Object.entries(componentProps).filter(([key]) => key.startsWith(\"data-\")),\n ) as DataAttributes;\n\n const {\n id: idProp,\n label,\n labelNode,\n hideLabel,\n placeholder,\n size,\n error,\n hint,\n moreInfo,\n labelAiMark,\n description,\n warning,\n required,\n disabled,\n readOnly,\n prefix,\n suffix,\n className,\n style,\n disableSearch,\n debounceMs = 200,\n searchValue: searchValueProp,\n onSearchChange,\n singleRow,\n maxChips,\n getChipProps,\n virtualize,\n value,\n onSelectedOptionsChange,\n selectionMode = \"linked\",\n valueConsistsOf = \"LEAF_PRIORITY\",\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n loadOptions,\n cache,\n initialLoad,\n displayMenuAs: displayMenuAsProp = \"auto\",\n } = componentProps;\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const helperUid = useId();\n const moreInfoUid = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const treePanelRef = useRef<HTMLDivElement>(null);\n\n warnDeprecatedErrorUsage(\"TreeSelectField\", error);\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n const hasHelperText = !!(hint || errorMessages || warning || description);\n const isSingleSelect = selectionMode === \"single\";\n // Single mode uses LEAF_ONLY/BRANCH_ONLY as click filters. Multi-select\n // always permits nonempty branches; BRANCH_ONLY blocks leaves and LEAF_ONLY\n // blocks empty branches.\n const branchesSelectable = isSingleSelect\n ? valueConsistsOf !== \"LEAF_ONLY\"\n : true;\n const leavesSelectable = valueConsistsOf !== \"BRANCH_ONLY\";\n const emptyBranchesSelectable = valueConsistsOf !== \"LEAF_ONLY\";\n\n const { isMobile } = useAdaptiveView();\n const displayAs =\n displayMenuAsProp === \"auto\"\n ? isMobile\n ? \"dialog\"\n : \"popover\"\n : displayMenuAsProp;\n\n const isSearchControlled = searchValueProp !== undefined;\n const [internalSearchValue, setInternalSearchValue] = useState(\"\");\n const searchValue = isSearchControlled\n ? searchValueProp\n : internalSearchValue;\n\n const handleSearchChange = useCallback(\n (v: string) => {\n if (!isSearchControlled) {\n setInternalSearchValue(v);\n }\n onSearchChange?.(v);\n },\n [isSearchControlled, onSearchChange],\n );\n\n const loader = useTreeLoader({\n loadOptions,\n cache,\n initialLoad,\n debounceMs,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n\n const openMenu = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n loader.onOpen();\n }, [disabled, loader]);\n\n // The loader owns initial loading; this effect only handles later searches.\n const isFirstSearchEffect = useRef(true);\n useEffect(() => {\n if (isFirstSearchEffect.current) {\n isFirstSearchEffect.current = false;\n return;\n }\n loader.search(searchValue ?? \"\");\n // eslint-disable-next-line react-hooks/exhaustive-deps -- We only want to re-run when searchValue changes, not on loader reference changes\n }, [searchValue]);\n\n const tree = useTree({\n nodes: loader.nodes,\n value,\n onSelectedOptionsChange,\n selectionMode,\n valueConsistsOf,\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n searchValue,\n ancestry: loader.ancestry,\n loadingChildrenIds: loader.isLoadingChildren,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n clearCache: loader.clearCache,\n invalidate: loader.invalidate,\n expandAll: tree.expandAll,\n collapseAll: tree.collapseAll,\n }),\n [loader.clearCache, loader.invalidate, tree.expandAll, tree.collapseAll],\n );\n\n // The lazy-cascade callback needs closeMenu before it is defined.\n const closeMenuRef = useRef<() => void>(() => undefined);\n\n const onCloseAfterSingleSelect = useCallback(() => {\n closeMenuRef.current();\n inputRef.current?.focus();\n }, []);\n\n const {\n handleToggleNode,\n pendingToggleNodeId,\n reset: resetLazyCascade,\n } = useTreeLazyCascade({\n tree,\n loader,\n isSingleSelect,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n readOnly,\n onCloseAfterSingleSelect,\n });\n\n const closeMenu = useCallback(() => {\n setIsOpen(false);\n handleSearchChange(\"\");\n resetLazyCascade();\n }, [handleSearchChange, resetLazyCascade]);\n\n useEffect(() => {\n closeMenuRef.current = closeMenu;\n }, [closeMenu]);\n\n useEffect(() => {\n if (disabled && isOpen) {\n closeMenu();\n }\n }, [disabled, isOpen, closeMenu]);\n\n const handleRemoveOption = useCallback(\n (option: TreeSelectFieldValue) => {\n const target = value.find((v) => v.id === option.id);\n // Disabled selected options are locked — chip close / keyboard removal\n // must not drop them from the value.\n if (target?.disabled) {\n return;\n }\n onSelectedOptionsChange(value.filter((v) => v.id !== option.id));\n },\n [value, onSelectedOptionsChange],\n );\n\n // Match string ids first so values such as \"003\" are not coerced to 3.\n const getActiveNode = useCallback((): TreeSelectFieldNode | undefined => {\n const descId = tree.activeDescendantId;\n if (!descId) return undefined;\n const nodeId = descId.replace(/^treeitem-/, \"\");\n const stringMatch = findNode(tree.nodes, nodeId);\n if (stringMatch) return stringMatch;\n const numId = Number(nodeId);\n return Number.isNaN(numId) ? undefined : findNode(tree.nodes, numId);\n }, [tree.activeDescendantId, tree.nodes]);\n\n const handleInputKeyDown = useCallback(\n (e: React.KeyboardEvent) => {\n if (e.key === \"Escape\") {\n if (isOpen) {\n e.stopPropagation();\n closeMenu();\n }\n return;\n }\n\n if (e.key === \"Tab\") {\n if (isOpen) closeMenu();\n return;\n }\n\n if (e.key === \"ArrowDown\") {\n e.preventDefault();\n if (!isOpen) {\n openMenu();\n }\n tree.onKeyDown(e);\n return;\n }\n\n if (\n e.key === \"Backspace\" &&\n !isSingleSelect &&\n !readOnly &&\n searchValue === \"\" &&\n value.length > 0\n ) {\n // Disabled selected options are locked and are skipped.\n const lastRemovable = [...value]\n .reverse()\n .find((option) => !option.disabled);\n if (lastRemovable) {\n handleRemoveOption(lastRemovable);\n }\n return;\n }\n\n if (isOpen) {\n // Route selection through lazy loading; preserve Space for search text.\n if (e.key === \"Enter\" || (e.key === \" \" && disableSearch)) {\n const activeNode = getActiveNode();\n if (activeNode) {\n e.preventDefault();\n handleToggleNode(activeNode.id);\n }\n return;\n }\n\n // useTree expands branches but does not load their lazy children.\n if (e.key === \"ArrowRight\") {\n const activeNode = getActiveNode();\n if (activeNode?.children === null) {\n e.preventDefault();\n tree.toggleExpand(activeNode.id);\n void loader.loadChildren(activeNode);\n return;\n }\n }\n\n tree.onKeyDown(e);\n }\n },\n [\n isOpen,\n openMenu,\n closeMenu,\n isSingleSelect,\n readOnly,\n searchValue,\n value,\n handleRemoveOption,\n tree,\n getActiveNode,\n handleToggleNode,\n loader,\n disableSearch,\n ],\n );\n\n const handleLoadChildren = useCallback(\n (node: Parameters<typeof loader.loadChildren>[0]) => {\n void loader.loadChildren(node);\n },\n [loader],\n );\n\n // A scrollbar drag can move focus to the panel; keep keyboard navigation\n // there without adding a second Tab stop when search owns focus.\n const panelProps = {\n visibleNodes: tree.visibleNodes,\n getCheckState: (id: string | number) =>\n id === pendingToggleNodeId ? \"loading\" : tree.getCheckState(id),\n toggleNode: handleToggleNode,\n toggleExpand: tree.toggleExpand,\n getTreeItemProps: tree.getTreeItemProps,\n treeProps: {\n ...tree.treeProps,\n id: `${id}-tree`,\n \"aria-label\": label,\n onKeyDown:\n handleInputKeyDown as React.KeyboardEventHandler<HTMLDivElement>,\n tabIndex: disableSearch ? 0 : -1,\n },\n activeDescendantId: tree.activeDescendantId,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n readOnly,\n onHover: tree.setActiveNodeId,\n onLoadChildren: handleLoadChildren,\n };\n\n const labelContent = (\n <FieldLabel\n el=\"label\"\n htmlFor={`${id}-input`}\n required={required}\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n aiMark={labelAiMark}\n >\n {labelNode ?? label}\n </FieldLabel>\n );\n\n return (\n <div\n {...dataAttributes}\n data-anv=\"tree-select-field\"\n className={cx(triggerStyles[\"search-field\"], className)}\n style={{ ...layoutStyles, ...style }}\n >\n {hideLabel ? <SrOnly>{labelContent}</SrOnly> : labelContent}\n\n <TreeSelectFieldInput\n id={`${id}-input`}\n placeholder={placeholder}\n size={size}\n disabled={disabled}\n readOnly={readOnly}\n error={!!error}\n single={isSingleSelect}\n singleRow={singleRow}\n maxChips={maxChips}\n getChipProps={getChipProps}\n prefix={prefix}\n suffix={suffix}\n selectedOptions={value}\n onRemoveOption={handleRemoveOption}\n inputRef={inputRef}\n inputWrapperRef={inputWrapperRef}\n searchValue={searchValue}\n onSearchChange={(e) => {\n handleSearchChange(e.target.value);\n if (!isOpen) openMenu();\n }}\n onInputKeyDown={handleInputKeyDown}\n onWrapperClick={() => {\n if (!disabled) {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n inputRef.current?.focus();\n }\n }}\n isOpen={isOpen}\n ariaControls={`${id}-tree`}\n disableSearch={disableSearch}\n comboboxProps={{\n \"aria-describedby\":\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined,\n \"aria-invalid\": error ? (true as const) : undefined,\n \"aria-activedescendant\": isOpen ? tree.activeDescendantId : undefined,\n onClick: disabled\n ? undefined\n : () => {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n },\n }}\n />\n\n {hasHelperText ? (\n <FieldMessage\n id={helperUid}\n hint={hint}\n error={errorMessages}\n warning={warning}\n description={description}\n />\n ) : null}\n\n {displayAs === \"dialog\" ? (\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen && !disabled}\n onClose={closeMenu}\n title={label}\n initialFocusResolver={(elements) =>\n elements.find((el) => el.tagName === \"INPUT\") || elements[0]\n }\n field={\n <TreeSelectFieldInput\n id={`${id}-dialog-input`}\n placeholder={placeholder}\n size=\"medium\"\n disabled={disabled}\n readOnly={readOnly}\n error={!!error}\n single={isSingleSelect}\n singleRow\n maxChips={20}\n getChipProps={getChipProps}\n prefix={prefix}\n suffix={suffix}\n selectedOptions={value}\n onRemoveOption={handleRemoveOption}\n searchValue={searchValue}\n onSearchChange={(e) => {\n handleSearchChange(e.target.value);\n if (!isOpen) openMenu();\n }}\n onInputKeyDown={handleInputKeyDown}\n isOpen={isOpen}\n ariaControls={`${id}-tree`}\n disableSearch={false}\n comboboxProps={{\n \"aria-activedescendant\": isOpen\n ? tree.activeDescendantId\n : undefined,\n }}\n />\n }\n >\n {isOpen && !disabled ? (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n ) : null}\n </OptionsDialog>\n ) : (\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={inputWrapperRef}\n open={isOpen && !disabled}\n onClose={closeMenu}\n width=\"reference\"\n >\n {isOpen && !disabled ? (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n ) : null}\n </OptionsPopover>\n )}\n </div>\n );\n});\n\nTreeSelectField.displayName = \"TreeSelectField\";\n","import { useCallback, useMemo, useRef } from \"react\";\nimport type { MatchSorterOptions } from \"match-sorter\";\nimport { TreeSelectField } from \"./TreeSelectField\";\nimport type {\n TreeSelectFieldHandle,\n TreeSelectFieldNode,\n TreeSelectFieldProps,\n} from \"./types\";\nimport {\n type TreeSyncFilterFn,\n applyChildCounts,\n defaultTreeSyncFilter,\n toTreeSyncFilterFn,\n} from \"./internal/treeSync\";\nimport { useInvalidateOnOptionsChange } from \"../../../internal/hooks/useInvalidateOnOptionsChange\";\n\nexport type { TreeSyncFilterFn };\n\nexport type TreeSelectFieldSyncProps = Omit<\n TreeSelectFieldProps,\n \"loadOptions\" | \"debounceMs\" | \"cache\" | \"initialLoad\"\n> & {\n /** Complete tree used for selection and client-side search. */\n options: TreeSelectFieldNode[];\n /**\n * Custom function or match-sorter options. The default matches `label` and\n * `searchText`. Default and option-object filters preserve ancestors of\n * matches. A function replaces that stage; the field still applies its\n * loaded-row substring filter.\n *\n * @example\n * filter={(nodes, searchValue) => customTreeFilter(nodes, searchValue)}\n * // or\n * filter={{ keys: [\"label\"] }}\n */\n filter?: TreeSyncFilterFn | MatchSorterOptions<TreeSelectFieldNode>;\n};\n\n/**\n * Static-data variant of {@link TreeSelectField}.\n * Filters `options` on the client and refreshes the field when they change.\n */\nexport const TreeSelectFieldSync = (props: TreeSelectFieldSyncProps) => {\n const {\n options,\n filter: filterProp = defaultTreeSyncFilter,\n ...rest\n } = props;\n\n const filter = useMemo(() => toTreeSyncFilterFn(filterProp), [filterProp]);\n\n const processedOptions = useMemo(() => applyChildCounts(options), [options]);\n\n const loadOptions = useCallback(\n (searchValue: string) => {\n return filter(processedOptions, searchValue);\n },\n [filter, processedOptions],\n );\n\n const fieldRef = useRef<TreeSelectFieldHandle>(null);\n useInvalidateOnOptionsChange(fieldRef, options);\n\n return (\n <TreeSelectField\n ref={fieldRef}\n loadOptions={loadOptions}\n debounceMs={0}\n {...rest}\n />\n );\n};\n\nTreeSelectFieldSync.displayName = \"TreeSelectFieldSync\";\n"],"names":["Chevron_Right","id","triggerStyles"],"mappings":"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"}
|
package/dist/TreeSelectMenu.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { a as TreeSelectMenu, T as TreeSelectMenuSync } from './TreeSelectMenuSync-
|
|
1
|
+
export { a as TreeSelectMenu, T as TreeSelectMenuSync } from './TreeSelectMenuSync-D2TvKxP-.js';
|
|
2
2
|
//# sourceMappingURL=TreeSelectMenu.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef, useId, useRef, useState, useCallback, useEffect, useImperativeHandle, useMemo } from 'react';
|
|
3
3
|
import { C as COMMON_PART, A as ANV_PART_ATTR } from './anvParts-DFVq7-Cm.js';
|
|
4
|
-
import { b as useAdaptiveView, O as OptionsDialog, a as OptionsPopover, u as useInvalidateOnOptionsChange } from './useInvalidateOnOptionsChange-
|
|
5
|
-
import { M as MenuFooter } from './MenuFooter-
|
|
4
|
+
import { b as useAdaptiveView, O as OptionsDialog, a as OptionsPopover, u as useInvalidateOnOptionsChange } from './useInvalidateOnOptionsChange-BD2VBpbK.js';
|
|
5
|
+
import { M as MenuFooter } from './MenuFooter-D__gg92C.js';
|
|
6
6
|
import { r as resolveConfirmation, u as useConfirmationDraft } from './confirmationTypes-DeRtO_Cw.js';
|
|
7
7
|
import { a as arrayIdsEqual } from './arrayIdsEqual-DnevhwqN.js';
|
|
8
|
-
import { 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-
|
|
8
|
+
import { 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';
|
|
9
9
|
import { S as SearchField } from './SearchField-ChoNtw8w.js';
|
|
10
10
|
|
|
11
11
|
const PARTS = {
|
|
@@ -417,4 +417,4 @@ const TreeSelectMenuSync = (props) => {
|
|
|
417
417
|
TreeSelectMenuSync.displayName = "TreeSelectMenuSync";
|
|
418
418
|
|
|
419
419
|
export { TreeSelectMenuSync as T, TreeSelectMenu as a };
|
|
420
|
-
//# sourceMappingURL=TreeSelectMenuSync-
|
|
420
|
+
//# sourceMappingURL=TreeSelectMenuSync-D2TvKxP-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TreeSelectMenuSync-D2TvKxP-.js","sources":["../src/beta/components/TreeSelectMenu/parts.ts","../src/beta/components/TreeSelectMenu/TreeSelectMenu.tsx","../src/beta/components/TreeSelectMenu/TreeSelectMenuSync.tsx"],"sourcesContent":["import { COMMON_PART } from \"../../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for TreeSelectMenu interactive sub-elements.\n *\n * Only the trigger and search input are owned here. Tree parts come from\n * TreeSelectField internals; shell and footer parts come from shared option\n * shells. Consumer `data-*` merges into the trigger bag because there is no\n * wrapper root.\n */\nexport const PARTS = {\n trigger: COMMON_PART.trigger,\n input: COMMON_PART.input,\n} as const;\n","import {\n forwardRef,\n useId,\n useRef,\n useState,\n useEffect,\n useImperativeHandle,\n useCallback,\n type ChangeEvent,\n type KeyboardEvent,\n} from \"react\";\nimport type { TreeSelectMenuHandle, TreeSelectMenuProps } from \"./types\";\nimport type {\n TreeSelectFieldNode,\n TreeSelectFieldValue,\n} from \"../TreeSelectField/types\";\nimport { SearchField } from \"../../../components\";\nimport type { DataAttributes } from \"../../../types\";\nimport { ANV_PART_ATTR } from \"../../../internal/constants/anvParts\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { MenuFooter } from \"../../../internal/components/MenuFooter/MenuFooter\";\nimport { useConfirmationDraft } from \"../../../internal/hooks/useConfirmationDraft\";\nimport { resolveConfirmation } from \"../../../internal/types/confirmationTypes\";\nimport { arrayIdsEqual } from \"../../../internal/utils/arrayIdsEqual\";\nimport { useAdaptiveView } from \"../../hooks/useAdaptiveView\";\nimport { useTreeLoader } from \"../TreeSelectField/internal/useTreeLoader\";\nimport { useTree } from \"../TreeSelectField/internal/useTree\";\nimport { TreeContent } from \"../TreeSelectField/internal/TreeContent\";\nimport { findNode } from \"../TreeSelectField/internal/treeUtils\";\nimport { useTreeLazyCascade } from \"../TreeSelectField/internal/useTreeLazyCascade\";\nimport { PARTS } from \"./parts\";\n\n/**\n * Searchable tree selection opened by a consumer-rendered trigger.\n * Supports async root/search loading and lazy branch loading in a popover or dialog.\n *\n * @example\n * <TreeSelectMenu\n * trigger={(triggerProps) => <Button {...triggerProps}>Select categories</Button>}\n * label=\"Categories\"\n * value={selected}\n * onSelectedOptionsChange={setSelected}\n * loadOptions={loadCategories}\n * />\n */\nexport const TreeSelectMenu = forwardRef<\n TreeSelectMenuHandle,\n TreeSelectMenuProps\n>((props, ref) => {\n const dataAttributes = Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-\")),\n ) as DataAttributes;\n\n const {\n id: idProp,\n trigger,\n onMenuKeyDown,\n onImplicitClose,\n onExplicitClose,\n label,\n searchPlaceholder,\n displayMenuAs: displayMenuAsProp = \"auto\",\n virtualize,\n disableSearch,\n popoverWidth,\n debounceMs = 200,\n onSearchChange,\n value,\n onSelectedOptionsChange,\n selectionMode = \"linked\",\n valueConsistsOf = \"LEAF_PRIORITY\",\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n loadOptions,\n cache,\n initialLoad,\n confirmation: confirmationProp,\n clear,\n } = props;\n\n const confirmation = resolveConfirmation(confirmationProp);\n\n const autoId = useId();\n const id = idProp ?? autoId;\n const triggerRef = useRef<HTMLButtonElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n const treePanelRef = useRef<HTMLDivElement>(null);\n\n const isSingleSelect = selectionMode === \"single\";\n const branchesSelectable = isSingleSelect\n ? valueConsistsOf !== \"LEAF_ONLY\"\n : true;\n const leavesSelectable = valueConsistsOf !== \"BRANCH_ONLY\";\n const emptyBranchesSelectable = valueConsistsOf !== \"LEAF_ONLY\";\n\n const { isMobile } = useAdaptiveView();\n const displayAs =\n displayMenuAsProp === \"auto\"\n ? isMobile\n ? \"dialog\"\n : \"popover\"\n : displayMenuAsProp;\n\n const [inputValue, setInputValue] = useState(\"\");\n const searchValue = disableSearch ? \"\" : inputValue;\n\n const handleSearchChange = useCallback(\n (v: string) => {\n setInputValue(v);\n onSearchChange?.(v);\n },\n [onSearchChange],\n );\n\n const loader = useTreeLoader({\n loadOptions,\n cache,\n initialLoad,\n debounceMs,\n });\n\n const [isOpen, setIsOpen] = useState(false);\n\n const pendingApplyRef = useRef(false);\n const {\n displayValue: draftValue,\n setDraft,\n apply,\n cancel,\n } = useConfirmationDraft<TreeSelectFieldValue[]>({\n value,\n onCommit: onSelectedOptionsChange,\n isOpen,\n enabled: confirmation.enabled,\n isEqual: arrayIdsEqual,\n });\n\n const openMenu = useCallback(() => {\n setIsOpen(true);\n loader.onOpen();\n }, [loader]);\n\n const isFirstSearchEffect = useRef(true);\n useEffect(() => {\n if (isFirstSearchEffect.current) {\n isFirstSearchEffect.current = false;\n return;\n }\n loader.search(searchValue ?? \"\");\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Only re-run when searchValue changes\n }, [searchValue]);\n\n const tree = useTree({\n nodes: loader.nodes,\n value: draftValue,\n onSelectedOptionsChange: setDraft,\n selectionMode,\n valueConsistsOf,\n defaultExpandLevel,\n expandedIds,\n onExpandedIdsChange,\n searchValue,\n ancestry: loader.ancestry,\n loadingChildrenIds: loader.isLoadingChildren,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n clearCache: loader.clearCache,\n invalidate: loader.invalidate,\n expandAll: tree.expandAll,\n collapseAll: tree.collapseAll,\n }),\n [loader.clearCache, loader.invalidate, tree.expandAll, tree.collapseAll],\n );\n\n // The lazy-cascade callback needs closeMenu before it is defined.\n const closeMenuRef = useRef<() => void>(() => undefined);\n\n const onCloseAfterSingleSelect = useCallback(() => {\n // Auto-closing would discard the confirmation draft before Apply.\n if (confirmation.enabled) return;\n closeMenuRef.current();\n }, [confirmation.enabled]);\n\n const {\n handleToggleNode,\n pendingToggleNodeId,\n reset: resetLazyCascade,\n } = useTreeLazyCascade({\n tree,\n loader,\n isSingleSelect,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n onCloseAfterSingleSelect,\n });\n\n const closeMenu = useCallback(\n (opts?: { restoreFocus?: boolean }) => {\n // Apply and Clear mark their closes as commits; every other close cancels.\n if (confirmation.enabled && !pendingApplyRef.current) cancel();\n pendingApplyRef.current = false;\n\n setIsOpen(false);\n handleSearchChange(\"\");\n resetLazyCascade();\n\n const shouldRestoreFocus = opts?.restoreFocus ?? true;\n if (shouldRestoreFocus) {\n onExplicitClose?.();\n requestAnimationFrame(() => {\n triggerRef.current?.focus();\n });\n } else {\n onImplicitClose?.();\n }\n },\n [\n confirmation.enabled,\n cancel,\n handleSearchChange,\n resetLazyCascade,\n onImplicitClose,\n onExplicitClose,\n ],\n );\n\n useEffect(() => {\n closeMenuRef.current = () => closeMenu();\n }, [closeMenu]);\n\n const handleApply = useCallback(() => {\n apply();\n pendingApplyRef.current = true;\n closeMenu();\n }, [apply, closeMenu]);\n\n const handleCancel = useCallback(() => {\n closeMenu();\n }, [closeMenu]);\n\n const getActiveNode = useCallback((): TreeSelectFieldNode | undefined => {\n const descId = tree.activeDescendantId;\n if (!descId) return undefined;\n const nodeId = descId.replace(/^treeitem-/, \"\");\n const numId = Number(nodeId);\n return findNode(tree.nodes, Number.isNaN(numId) ? nodeId : numId);\n }, [tree.activeDescendantId, tree.nodes]);\n\n const handleMenuKeyDown = useCallback(\n (e: KeyboardEvent) => {\n onMenuKeyDown?.(e);\n if (e.defaultPrevented) return;\n\n if (e.key === \"Escape\") {\n e.stopPropagation();\n closeMenu();\n return;\n }\n\n if (e.key === \"Tab\") {\n closeMenu({ restoreFocus: false });\n return;\n }\n\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n tree.onKeyDown(e);\n return;\n }\n\n if (e.key === \"Enter\" || (disableSearch && e.key === \" \")) {\n const activeNode = getActiveNode();\n if (activeNode) {\n e.preventDefault();\n handleToggleNode(activeNode.id);\n }\n return;\n }\n\n if (e.key === \"ArrowRight\") {\n const activeNode = getActiveNode();\n if (activeNode?.children === null) {\n e.preventDefault();\n tree.toggleExpand(activeNode.id);\n void loader.loadChildren(activeNode);\n return;\n }\n }\n\n tree.onKeyDown(e);\n },\n [\n onMenuKeyDown,\n closeMenu,\n tree,\n getActiveNode,\n handleToggleNode,\n loader,\n disableSearch,\n ],\n );\n\n const handleTriggerKeyDown = useCallback(\n (e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"ArrowDown\" || e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (!isOpen) {\n openMenu();\n }\n }\n },\n [isOpen, openMenu],\n );\n\n const handleTriggerClick = useCallback(() => {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n }, [isOpen, openMenu, closeMenu]);\n\n useEffect(() => {\n if (!isOpen || displayAs !== \"popover\") return;\n\n const frameId = requestAnimationFrame(() => {\n if (!disableSearch) {\n searchRef.current?.focus();\n } else {\n treePanelRef.current?.focus();\n }\n });\n\n return () => cancelAnimationFrame(frameId);\n }, [isOpen, displayAs, disableSearch]);\n\n const handleLoadChildren = useCallback(\n (node: Parameters<typeof loader.loadChildren>[0]) => {\n void loader.loadChildren(node);\n },\n [loader],\n );\n\n // A scrollbar drag can move focus to the panel; keep keyboard navigation\n // there without adding a second Tab stop when search owns focus.\n const treePropsMerged = {\n ...tree.treeProps,\n id: `${id}-tree`,\n \"aria-label\": label,\n onKeyDown: handleMenuKeyDown as React.KeyboardEventHandler<HTMLDivElement>,\n tabIndex: disableSearch ? 0 : -1,\n };\n\n const panelProps = {\n visibleNodes: tree.visibleNodes,\n getCheckState: (nodeId: string | number) =>\n nodeId === pendingToggleNodeId ? \"loading\" : tree.getCheckState(nodeId),\n toggleNode: handleToggleNode,\n toggleExpand: tree.toggleExpand,\n getTreeItemProps: tree.getTreeItemProps,\n treeProps: treePropsMerged,\n activeDescendantId: tree.activeDescendantId,\n branchesSelectable,\n leavesSelectable,\n emptyBranchesSelectable,\n onHover: tree.setActiveNodeId,\n onLoadChildren: handleLoadChildren,\n } as const;\n\n const handleInputChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n handleSearchChange(e.target.value);\n },\n [handleSearchChange],\n );\n\n const handleSearchClear = useCallback(() => {\n handleSearchChange(\"\");\n }, [handleSearchChange]);\n\n const searchInput = !disableSearch ? (\n <SearchField\n ref={searchRef}\n value={inputValue}\n onChange={handleInputChange}\n onKeyDown={\n handleMenuKeyDown as React.KeyboardEventHandler<HTMLInputElement>\n }\n onClear={handleSearchClear}\n aria-activedescendant={tree.activeDescendantId}\n aria-controls={`${id}-tree`}\n placeholder={searchPlaceholder}\n type=\"search\"\n {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n ) : null;\n\n const handleClickOutside = useCallback(() => {\n closeMenu({ restoreFocus: false });\n }, [closeMenu]);\n\n const treeContent = (\n <TreeContent\n ref={treePanelRef}\n loading={loader.isLoading}\n hasNoVisibleNodes={tree.visibleNodes.length === 0}\n virtualize={virtualize}\n panelProps={panelProps}\n />\n );\n\n const triggerProps = {\n ref: triggerRef,\n onClick: handleTriggerClick,\n onKeyDown: handleTriggerKeyDown,\n \"aria-haspopup\": \"tree\" as const,\n \"aria-controls\": `${id}-tree`,\n \"aria-expanded\": isOpen,\n \"data-state\": (isOpen ? \"open\" : \"close\") as \"open\" | \"close\",\n ...dataAttributes,\n [ANV_PART_ATTR]: PARTS.trigger,\n };\n\n const confirmationConfig = confirmation.enabled\n ? {\n applyLabel: confirmation.applyLabel,\n cancelLabel: confirmation.cancelLabel,\n onApply: handleApply,\n onCancel: handleCancel,\n }\n : undefined;\n const wrappedClear = clear\n ? {\n ...clear,\n onClick: () => {\n clear.onClick();\n if (confirmation.enabled) pendingApplyRef.current = true;\n closeMenu();\n },\n }\n : undefined;\n // An empty MenuFooter still draws the shell's footer divider.\n const hasFooter = !!wrappedClear || !!confirmationConfig;\n const footer = hasFooter ? (\n <MenuFooter clear={wrappedClear} confirmation={confirmationConfig} />\n ) : undefined;\n\n if (displayAs === \"dialog\") {\n return (\n <>\n {trigger(triggerProps)}\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen}\n onClose={() => closeMenu()}\n title={label}\n field={searchInput ?? undefined}\n footer={footer}\n initialFocusResolver={\n !disableSearch\n ? (elements) =>\n elements.find((el) => el.tagName === \"INPUT\") || elements[0]\n : undefined\n }\n >\n {isOpen ? treeContent : null}\n </OptionsDialog>\n </>\n );\n }\n\n return (\n <>\n {trigger(triggerProps)}\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={triggerRef}\n open={isOpen}\n onClose={handleClickOutside}\n width={popoverWidth ?? 320}\n footer={footer}\n >\n {searchInput}\n {isOpen ? treeContent : null}\n </OptionsPopover>\n </>\n );\n});\n\nTreeSelectMenu.displayName = \"TreeSelectMenu\";\n","import { useCallback, useMemo, useRef } from \"react\";\nimport type { MatchSorterOptions } from \"match-sorter\";\nimport { TreeSelectMenu } from \"./TreeSelectMenu\";\nimport type {\n TreeSelectMenuHandle,\n TreeSelectMenuNode,\n TreeSelectMenuProps,\n} from \"./types\";\nimport {\n type TreeSyncFilterFn,\n applyChildCounts,\n defaultTreeSyncFilter,\n toTreeSyncFilterFn,\n} from \"../TreeSelectField/internal/treeSync\";\nimport { useInvalidateOnOptionsChange } from \"../../../internal/hooks/useInvalidateOnOptionsChange\";\n\nexport type { TreeSyncFilterFn };\n\nexport type TreeSelectMenuSyncProps = Omit<\n TreeSelectMenuProps,\n \"loadOptions\" | \"debounceMs\" | \"cache\" | \"initialLoad\"\n> & {\n /** Complete tree used for selection and client-side search. */\n options: TreeSelectMenuNode[];\n /**\n * Custom function or match-sorter options. The default matches `label` and\n * `searchText`. Default and option-object filters preserve ancestors of\n * matches; a function replaces that behavior.\n *\n * @example\n * filter={(nodes, searchValue) => customTreeFilter(nodes, searchValue)}\n * // or\n * filter={{ keys: [\"label\"] }}\n */\n filter?: TreeSyncFilterFn | MatchSorterOptions<TreeSelectMenuNode>;\n};\n\n/**\n * Static-data variant of {@link TreeSelectMenu}.\n * Filters `options` on the client and refreshes the menu when they change.\n */\nexport const TreeSelectMenuSync = (props: TreeSelectMenuSyncProps) => {\n const {\n options,\n filter: filterProp = defaultTreeSyncFilter,\n ...rest\n } = props;\n\n const filter = useMemo(() => toTreeSyncFilterFn(filterProp), [filterProp]);\n\n // Full-tree counts keep filtered branches from appearing fully selected.\n const processedOptions = useMemo(() => applyChildCounts(options), [options]);\n\n const loadOptions = useCallback(\n (searchValue: string) => {\n return filter(processedOptions, searchValue);\n },\n [filter, processedOptions],\n );\n\n const menuRef = useRef<TreeSelectMenuHandle>(null);\n useInvalidateOnOptionsChange(menuRef, options);\n\n return (\n <TreeSelectMenu\n ref={menuRef}\n loadOptions={loadOptions}\n debounceMs={0}\n {...rest}\n />\n );\n};\n\nTreeSelectMenuSync.displayName = \"TreeSelectMenuSync\";\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { forwardRef, useState, useRef, useId, useLayoutEffect, useCallback, useEffect } from 'react';
|
|
3
|
-
import { P as Popover } from './Popover-
|
|
3
|
+
import { P as Popover } from './Popover-CIh1CsoJ.js';
|
|
4
4
|
import { S as Spinner } from './Spinner-B7tTWcP6.js';
|
|
5
|
-
import { T as TextField } from './TextField-
|
|
5
|
+
import { T as TextField } from './TextField-Bxd-Qzoi.js';
|
|
6
6
|
import { m as mergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
7
7
|
import { c as cx } from './index-De1g9FRV.js';
|
|
8
8
|
import { m as menuStyles } from './Menu.module-CMDgSO9k.js';
|
|
@@ -205,16 +205,12 @@ function TypeaheadTextField({
|
|
|
205
205
|
height: SUFFIX_SLOT_WIDTH
|
|
206
206
|
},
|
|
207
207
|
"data-anv": "typeahead-suffix",
|
|
208
|
-
children: loading ? /* @__PURE__ */ jsx(Spinner, { size: "small", inherit: true }) : (
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
"
|
|
213
|
-
|
|
214
|
-
"aria-hidden": true,
|
|
215
|
-
style: { display: "inline-block", width: 1, height: 1 }
|
|
216
|
-
}
|
|
217
|
-
)
|
|
208
|
+
children: loading ? /* @__PURE__ */ jsx(Spinner, { size: "small", inherit: true }) : /* @__PURE__ */ jsx(
|
|
209
|
+
"span",
|
|
210
|
+
{
|
|
211
|
+
"aria-hidden": true,
|
|
212
|
+
style: { display: "inline-block", width: 1, height: 1 }
|
|
213
|
+
}
|
|
218
214
|
)
|
|
219
215
|
}
|
|
220
216
|
);
|
|
@@ -263,12 +259,7 @@ function TypeaheadTextField({
|
|
|
263
259
|
} = triggerProps;
|
|
264
260
|
const popoverRef = ref;
|
|
265
261
|
return (
|
|
266
|
-
//
|
|
267
|
-
// TextField box width (which includes the suffix slot) so the
|
|
268
|
-
// listbox can stretch to match. Popover positioning still anchors
|
|
269
|
-
// to the inner <input> via the merged ref to avoid the 8px gap
|
|
270
|
-
// that would appear if the popover measured this wrapper's
|
|
271
|
-
// bottom edge.
|
|
262
|
+
// Measure the wrapper, but anchor to the input to avoid its outer gap.
|
|
272
263
|
/* @__PURE__ */ jsx("div", { ref: wrapperRef, style: { width: "100%" }, children: /* @__PURE__ */ jsx(
|
|
273
264
|
TextField,
|
|
274
265
|
{
|
|
@@ -316,4 +307,4 @@ function TypeaheadTextField({
|
|
|
316
307
|
TypeaheadTextField.displayName = "TypeaheadTextField";
|
|
317
308
|
|
|
318
309
|
export { TypeaheadTextField as T };
|
|
319
|
-
//# sourceMappingURL=TypeaheadTextField-
|
|
310
|
+
//# sourceMappingURL=TypeaheadTextField-DgazozK7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeaheadTextField-DgazozK7.js","sources":["../src/beta/components/TypeaheadTextField/internal/SuggestionItem.tsx","../src/beta/components/TypeaheadTextField/TypeaheadTextField.tsx"],"sourcesContent":["import { type HTMLAttributes, type ReactNode, forwardRef } from \"react\";\nimport cx from \"classnames\";\nimport menuStyles from \"../../../../components/Menu/Menu.module.scss\";\nimport styles from \"./SuggestionItem.module.scss\";\n\nexport type SuggestionItemProps = HTMLAttributes<HTMLDivElement> & {\n label: ReactNode;\n selected?: boolean;\n disabled?: boolean;\n};\n\n/** Non-focusable option row; the input retains focus via active descendant. */\nexport const SuggestionItem = forwardRef<HTMLDivElement, SuggestionItemProps>(\n ({ label, selected, disabled, className, ...rest }, ref) => (\n <div\n {...rest}\n ref={ref}\n role=\"option\"\n aria-selected={selected ?? false}\n aria-disabled={disabled || undefined}\n data-anv=\"suggestion-option\"\n className={cx(menuStyles[\"item\"], styles[\"option\"], className)}\n >\n {label}\n </div>\n ),\n);\n\nSuggestionItem.displayName = \"SuggestionItem\";\n","import {\n type CSSProperties,\n type ChangeEvent,\n type FocusEvent,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n type Ref,\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { Popover } from \"../../../components/Popover\";\nimport { Spinner } from \"../../../components/Spinner\";\nimport { TextField, type TextFieldProps } from \"../../../components/TextField\";\nimport { mergeRefs } from \"../../../hooks/useMergeRefs/useMergeRefs\";\nimport { useDebouncedCallback } from \"../../../internal/hooks/useDebouncedCallback\";\nimport { useOptionallyControlledState } from \"../../../internal/hooks/useOptionallyControlledState\";\nimport type { DistributiveOmit } from \"../../../types\";\nimport { SuggestionItem } from \"./internal/SuggestionItem\";\nimport styles from \"./TypeaheadTextField.module.scss\";\n\nexport type TypeaheadTextFieldOption<T = string> = {\n /** Text committed to the input when the option is selected. */\n label: string;\n /** Consumer value returned through `onSelectOption`. */\n value: T;\n};\n\ntype LoadOptionsResult<T> =\n | TypeaheadTextFieldOption<T>[]\n | Promise<TypeaheadTextFieldOption<T>[]>;\n\n// Preserve TextFieldProps union arms; plain Omit collapses their discriminants.\nexport type TypeaheadTextFieldProps<T = string> = DistributiveOmit<\n TextFieldProps,\n \"value\" | \"defaultValue\" | \"onChange\" | \"suffix\"\n> & {\n /** Current input text in controlled mode. */\n value?: string;\n /** Initial input text in uncontrolled mode. */\n defaultValue?: string;\n /** Runs when typing, selection, or clearing changes the input text. */\n onChange?: (value: string) => void;\n /** Resolves suggestions for the current input after the configured delay. */\n loadOptions: (search: string) => LoadOptionsResult<T>;\n /** Runs after the input adopts the selected option's label. */\n onSelectOption?: (option: TypeaheadTextFieldOption<T>) => void;\n /**\n * Delay in milliseconds before each `loadOptions` request.\n * @default 300\n */\n debounceMs?: number;\n /**\n * Status shown when no suggestions are available.\n * @default \"No suggestions found\"\n */\n noSuggestionsLabel?: string;\n /**\n * Status announced while loading with no options to display.\n * @default \"Loading...\"\n */\n loadingLabel?: string;\n /** Replaces row content; selection still commits the option's `label`. */\n renderOption?: (option: TypeaheadTextFieldOption<T>) => ReactNode;\n /**\n * Opens and reloads suggestions when a non-empty input receives focus.\n * @default true\n */\n openOnFocus?: boolean;\n /**\n * Allows focus or click to load suggestions for an empty input.\n * @default false\n */\n openOnEmptyFocus?: boolean;\n};\n\nconst SUFFIX_SLOT_WIDTH = 20;\n\n/**\n * Text field with a debounced suggestion list that accepts synchronous or\n * asynchronous option loading.\n */\nexport function TypeaheadTextField<T = string>({\n value: valueProp,\n defaultValue,\n onChange,\n loadOptions,\n onSelectOption,\n debounceMs = 300,\n noSuggestionsLabel = \"No suggestions found\",\n loadingLabel = \"Loading...\",\n renderOption,\n openOnFocus = true,\n openOnEmptyFocus = false,\n onFocus,\n onBlur,\n onKeyDown,\n onClick,\n disabled,\n readOnly,\n loading: loadingProp,\n ...textFieldProps\n}: TypeaheadTextFieldProps<T>) {\n const [value, setValue] = useOptionallyControlledState<string>({\n controlledValue: valueProp,\n defaultValue: defaultValue ?? \"\",\n onChange,\n });\n\n const [open, setOpen] = useState(false);\n const [options, setOptions] = useState<TypeaheadTextFieldOption<T>[]>([]);\n const [internalLoading, setInternalLoading] = useState(false);\n const loading = loadingProp ?? internalLoading;\n\n // DOM focus stays on the input; this index drives the active descendant.\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const listRef = useRef<HTMLDivElement>(null);\n // Measure the visible field wrapper so the content-sized popover cannot\n // collapse below it.\n const wrapperRef = useRef<HTMLDivElement>(null);\n const listboxId = useId();\n const optionId = (index: number) => `${listboxId}-option-${index}`;\n const [wrapperWidth, setWrapperWidth] = useState(0);\n\n // Measure before paint so the first opened popover has the current width.\n useLayoutEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper) return;\n const measure = () => {\n const next = wrapper.offsetWidth;\n setWrapperWidth((prev) => (prev === next ? prev : next));\n };\n measure();\n const ro = new ResizeObserver(measure);\n ro.observe(wrapper);\n return () => ro.disconnect();\n }, []);\n\n // Only the newest request may update options or loading state.\n const requestIdRef = useRef(0);\n const loadOptionsRef = useRef(loadOptions);\n loadOptionsRef.current = loadOptions;\n\n const performLoad = useCallback(async (search: string) => {\n const reqId = ++requestIdRef.current;\n try {\n const result = await Promise.resolve(loadOptionsRef.current(search));\n if (requestIdRef.current === reqId) {\n setOptions(result);\n }\n } catch {\n if (requestIdRef.current === reqId) {\n setOptions([]);\n }\n } finally {\n if (requestIdRef.current === reqId) {\n setInternalLoading(false);\n }\n }\n }, []);\n\n const debouncedLoad = useDebouncedCallback(performLoad, debounceMs);\n\n const isInteractive = !disabled && !readOnly;\n\n const requestOpen = useCallback(\n (search: string) => {\n if (!isInteractive) return;\n setOpen(true);\n setInternalLoading(true);\n debouncedLoad(search);\n },\n [debouncedLoad, isInteractive],\n );\n\n useEffect(() => {\n setHighlightedIndex(-1);\n }, [options]);\n\n useEffect(() => {\n if (!open) setHighlightedIndex(-1);\n }, [open]);\n\n // Focus remains on the input, so keyboard navigation must scroll the row.\n useEffect(() => {\n if (!open || highlightedIndex < 0) return;\n const active = listRef.current?.querySelector<HTMLElement>(\n `#${CSS.escape(`${listboxId}-option-${highlightedIndex}`)}`,\n );\n active?.scrollIntoView({ block: \"nearest\" });\n }, [highlightedIndex, open, listboxId]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n const next = event.target.value;\n setValue(next);\n requestOpen(next);\n };\n\n const handleFocus = (event: FocusEvent<HTMLInputElement>) => {\n onFocus?.(event);\n if (!isInteractive || !openOnFocus) return;\n // Ignore focus returning from the menu so selection cannot reopen it.\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n if (relatedTarget && listRef.current?.contains(relatedTarget)) return;\n if (!value && !openOnEmptyFocus) return;\n requestOpen(value);\n };\n\n const handleClick = (event: MouseEvent<HTMLInputElement>) => {\n onClick?.(event);\n if (!isInteractive || open) return;\n if (!value && !openOnEmptyFocus) return;\n requestOpen(value);\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n onBlur?.(event);\n // Keep the menu open while focus moves into its content.\n const relatedTarget = event.relatedTarget as HTMLElement | null;\n if (relatedTarget && listRef.current?.contains(relatedTarget)) return;\n setOpen(false);\n };\n\n const handleSelect = (option: TypeaheadTextFieldOption<T>) => {\n setValue(option.label);\n setOpen(false);\n onSelectOption?.(option);\n };\n\n const handleKeyDown = (event: KeyboardEvent<HTMLInputElement>) => {\n onKeyDown?.(event);\n if (event.defaultPrevented) return;\n\n if (event.key === \"Escape\" && open) {\n event.stopPropagation();\n event.preventDefault();\n setOpen(false);\n return;\n }\n\n if (event.key === \"ArrowDown\") {\n event.preventDefault();\n // Opening starts a load; there is no rendered option to highlight yet.\n if (!open) {\n requestOpen(value);\n return;\n }\n if (options.length === 0) return;\n setHighlightedIndex((i) => (i >= options.length - 1 ? 0 : i + 1));\n return;\n }\n\n if (event.key === \"ArrowUp\") {\n if (!open) return;\n event.preventDefault();\n if (options.length === 0) return;\n setHighlightedIndex((i) => (i <= 0 ? options.length - 1 : i - 1));\n return;\n }\n\n if (event.key === \"Enter\" && open && highlightedIndex >= 0) {\n const option = options[highlightedIndex];\n if (option) {\n // Committing a suggestion must not submit an enclosing form.\n event.preventDefault();\n handleSelect(option);\n }\n }\n };\n\n // Reserve the suffix width so loading transitions do not reflow the field.\n const suffix = (\n <span\n style={{\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: SUFFIX_SLOT_WIDTH,\n height: SUFFIX_SLOT_WIDTH,\n }}\n data-anv=\"typeahead-suffix\"\n >\n {loading ? (\n <Spinner size=\"small\" inherit />\n ) : (\n <span\n aria-hidden\n style={{ display: \"inline-block\", width: 1, height: 1 }}\n />\n )}\n </span>\n );\n\n const renderList = () => {\n // Status rows stay outside the option set so they are not announced as\n // selectable results.\n if (loading && options.length === 0) {\n return (\n <div role=\"presentation\" aria-live=\"polite\" data-typeahead-status>\n {loadingLabel}\n </div>\n );\n }\n if (options.length === 0) {\n return (\n <div role=\"presentation\" data-typeahead-status>\n {noSuggestionsLabel}\n </div>\n );\n }\n return options.map((option, i) => (\n <SuggestionItem\n key={`${option.label}-${i}`}\n id={optionId(i)}\n label={renderOption ? renderOption(option) : option.label}\n selected={i === highlightedIndex}\n onClick={() => handleSelect(option)}\n // Keep input focus until the click commits this option.\n onMouseDown={(e) => e.preventDefault()}\n // Pointer and keyboard interaction share one active descendant.\n onMouseEnter={() => setHighlightedIndex(i)}\n />\n ));\n };\n\n return (\n <Popover\n open={open}\n onClose={() => setOpen(false)}\n onClickOutside={() => setOpen(false)}\n disableCaret\n disableTriggerFocus\n // Keep suggestions above or below the field instead of flipping sideways.\n disableFlipFallback\n noPadding\n placement=\"bottom-start\"\n >\n <Popover.Trigger>\n {(triggerProps) => {\n // The field owns open state, so discard Popover's trigger handlers.\n const {\n onClick: _ignoreTriggerClick,\n onKeyDown: _ignoreTriggerKey,\n onFocus: _ignoreTriggerFocus,\n onBlur: _ignoreTriggerBlur,\n onMouseEnter: _ignoreTriggerEnter,\n onMouseLeave: _ignoreTriggerLeave,\n ref,\n ...rest\n } = triggerProps;\n const popoverRef = ref as unknown as Ref<HTMLInputElement>;\n return (\n // Measure the wrapper, but anchor to the input to avoid its outer gap.\n <div ref={wrapperRef} style={{ width: \"100%\" }}>\n <TextField\n {...textFieldProps}\n {...rest}\n ref={mergeRefs([popoverRef, inputRef])}\n value={value}\n disabled={disabled}\n readOnly={readOnly}\n suffix={suffix}\n style={{ width: \"100%\", ...textFieldProps.style }}\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n aria-autocomplete=\"list\"\n aria-expanded={open}\n aria-controls={listboxId}\n aria-activedescendant={\n open && highlightedIndex >= 0\n ? optionId(highlightedIndex)\n : undefined\n }\n onChange={handleChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onClick={handleClick}\n onKeyDown={handleKeyDown}\n />\n </div>\n );\n }}\n </Popover.Trigger>\n <Popover.Content>\n <div\n ref={listRef}\n role=\"listbox\"\n id={listboxId}\n className={styles[\"listbox\"]}\n style={\n {\n \"--typeahead-min-width\": `${wrapperWidth}px`,\n } as CSSProperties\n }\n data-typeahead-list\n >\n {renderList()}\n </div>\n </Popover.Content>\n </Popover>\n );\n}\n\nTypeaheadTextField.displayName = \"TypeaheadTextField\";\n"],"names":["styles"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { T as TypeaheadTextField } from './TypeaheadTextField-
|
|
1
|
+
export { T as TypeaheadTextField } from './TypeaheadTextField-DgazozK7.js';
|
|
2
2
|
//# sourceMappingURL=TypeaheadTextField.js.map
|
package/dist/{YearlessDateInputWithPicker-aI4UIyMD.js → YearlessDateInputWithPicker-Bc8a33D5.js}
RENAMED
|
@@ -6,7 +6,7 @@ import { F as Flex } from './Flex-CRF7gj0_.js';
|
|
|
6
6
|
import { S as SvgCheck } from './check-Cf67OWrZ.js';
|
|
7
7
|
import { c as cx } from './index-De1g9FRV.js';
|
|
8
8
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
|
|
9
|
-
import { P as Popover, u as useMergeRefs } from './AiMark-
|
|
9
|
+
import { P as Popover, u as useMergeRefs } from './AiMark-BfmK30vL.js';
|
|
10
10
|
import { g as maskitoUpdateElement, m as maskitoDateOptionsGenerator, a as maskitoWithPlaceholder, h as maskitoTransform, u as useMaskito } from './index.esm-C2ZhC_8d.js';
|
|
11
11
|
import { m as makeZeroShortcutPreprocessor } from './makeZeroShortcutPreprocessor-D5KWcgUA.js';
|
|
12
12
|
import { t as textFieldStyles } from './TextField.module-DklyLNKz.js';
|
|
@@ -963,4 +963,4 @@ const YearlessDateInputWithPicker = forwardRef((props, ref) => {
|
|
|
963
963
|
YearlessDateInputWithPicker.displayName = "YearlessDateInputWithPicker";
|
|
964
964
|
|
|
965
965
|
export { PARTS as P, YearlessDateInputWithPicker as Y };
|
|
966
|
-
//# sourceMappingURL=YearlessDateInputWithPicker-
|
|
966
|
+
//# sourceMappingURL=YearlessDateInputWithPicker-Bc8a33D5.js.map
|