@servicetitan/anvil2 3.0.6 → 3.0.8
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 +52 -0
- package/dist/{AiMark-BXL0sWIV.js → AiMark-CS6MvraM.js} +5 -4
- package/dist/{AiMark-BXL0sWIV.js.map → AiMark-CS6MvraM.js.map} +1 -1
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-BNH0UD2s.js → Alert-CNDLoh6b.js} +2 -2
- package/dist/{Alert-BNH0UD2s.js.map → Alert-CNDLoh6b.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{AnvilProvider-J9DjoJiB.js → AnvilProvider-BFK29dL5.js} +3 -2
- package/dist/{AnvilProvider-J9DjoJiB.js.map → AnvilProvider-BFK29dL5.js.map} +1 -1
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Avatar-FDHyqiCy.js → Avatar-Bl-Dxbhf.js} +7 -2
- package/dist/Avatar-Bl-Dxbhf.js.map +1 -0
- package/dist/{Avatar-B_cRQqKR.js → Avatar-CdAIJ5VK.js} +2 -2
- package/dist/{Avatar-B_cRQqKR.js.map → Avatar-CdAIJ5VK.js.map} +1 -1
- package/dist/Avatar.js +2 -2
- package/dist/{Breadcrumbs-Bzxbdu-S.js → Breadcrumbs--Xt6l_2L.js} +2 -2
- package/dist/{Breadcrumbs-Bzxbdu-S.js.map → Breadcrumbs--Xt6l_2L.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Calendar-DS5eWpGF.js → Calendar-5mAxtdNh.js} +2 -2
- package/dist/{Calendar-DS5eWpGF.js.map → Calendar-5mAxtdNh.js.map} +1 -1
- package/dist/{Calendar-BYNFAWpZ.js → Calendar-rITorBvD.js} +5 -3
- package/dist/{Calendar-BYNFAWpZ.js.map → Calendar-rITorBvD.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-BeIzx_ZX.js → Checkbox-BYWhkYoK.js} +2 -2
- package/dist/{Checkbox-BeIzx_ZX.js.map → Checkbox-BYWhkYoK.js.map} +1 -1
- package/dist/{Checkbox-BB3BDJsK.js → Checkbox-DTzoDcJl.js} +3 -3
- package/dist/{Checkbox-BB3BDJsK.js.map → Checkbox-DTzoDcJl.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-D2k5X_wX.js → Chip-CyMNyEPR.js} +3 -3
- package/dist/{Chip-D2k5X_wX.js.map → Chip-CyMNyEPR.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -2
- package/dist/Combobox.js.map +1 -1
- package/dist/{DataTable-0kOuVgSB.js → DataTable-Dwhwvm6R.js} +205 -78
- package/dist/DataTable-Dwhwvm6R.js.map +1 -0
- package/dist/DataTable.css +47 -5
- package/dist/{DateFieldRange-Be_I9GTp.js → DateFieldRange-BUug1tUy.js} +27 -15
- package/dist/DateFieldRange-BUug1tUy.js.map +1 -0
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-CsrsY9i8.js → DateFieldSingle-DR7faQGD.js} +5 -5
- package/dist/{DateFieldSingle-CsrsY9i8.js.map → DateFieldSingle-DR7faQGD.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-m_Hl2gMY.js → DateFieldYearless-7MFcR7L6.js} +4 -4
- package/dist/{DateFieldYearless-m_Hl2gMY.js.map → DateFieldYearless-7MFcR7L6.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-DNqSTBDr.js → DateFieldYearlessRange-DGtdyISH.js} +3 -3
- package/dist/{DateFieldYearlessRange-DNqSTBDr.js.map → DateFieldYearlessRange-DGtdyISH.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-D58z_eF3.js → DaysOfTheWeek-C7oN9nIe.js} +3 -3
- package/dist/{DaysOfTheWeek-D58z_eF3.js.map → DaysOfTheWeek-C7oN9nIe.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-CD-SDfPT.js → Dialog-dE9c90iR.js} +4 -4
- package/dist/{Dialog-CD-SDfPT.js.map → Dialog-dE9c90iR.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/{Drawer-s2y0xcgV.js → Drawer-Dk0MsaOU.js} +3 -3
- package/dist/{Drawer-s2y0xcgV.js.map → Drawer-Dk0MsaOU.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-B25pj0Jx.js → EditCard-DV2N7zWr.js} +2 -2
- package/dist/{EditCard-B25pj0Jx.js.map → EditCard-DV2N7zWr.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-D1qPAGtB.js → FieldLabel-VVn8GR64.js} +3 -3
- package/dist/{FieldLabel-D1qPAGtB.js.map → FieldLabel-VVn8GR64.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/FilterBar-CXGsoWw5.js +413 -0
- package/dist/FilterBar-CXGsoWw5.js.map +1 -0
- package/dist/FilterBar.js +1 -1
- package/dist/{InputMask-BDl09V4u.js → InputMask-VBHWGZGN.js} +3 -3
- package/dist/{InputMask-BDl09V4u.js.map → InputMask-VBHWGZGN.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-CcRRh1ap.js → ListView-BUrfz75g.js} +6 -6
- package/dist/{ListView-CcRRh1ap.js.map → ListView-BUrfz75g.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{ListView.module-CKUQP3kf.js → ListView.module-DfqtCL3Q.js} +3 -3
- package/dist/ListView.module-DfqtCL3Q.js.map +1 -0
- package/dist/{Listbox-CvQHBFWb.js → Listbox-CRY-0BkS.js} +2 -2
- package/dist/{Listbox-CvQHBFWb.js.map → Listbox-CRY-0BkS.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-W0c-xKdX.js → Menu-DNJ0YqjA.js} +11 -7
- package/dist/Menu-DNJ0YqjA.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/MenuFooter-CrsZdXvN.js +115 -0
- package/dist/MenuFooter-CrsZdXvN.js.map +1 -0
- package/dist/MenuFooter.css +28 -0
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-BMVROOjy.js → MultiSelectFieldSync-CIuy3aRD.js} +64 -79
- package/dist/MultiSelectFieldSync-CIuy3aRD.js.map +1 -0
- package/dist/MultiSelectFieldSync.css +72 -69
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-BNPp_2Bm.js → MultiSelectMenuSync-Drz8SEk9.js} +150 -46
- package/dist/MultiSelectMenuSync-Drz8SEk9.js.map +1 -0
- package/dist/{NumberField-BymFZhIJ.js → NumberField-bgYX7JGs.js} +3 -3
- package/dist/{NumberField-BymFZhIJ.js.map → NumberField-bgYX7JGs.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-SBy27-Wv.js → Page-BSHydn4p.js} +9 -9
- package/dist/{Page-SBy27-Wv.js.map → Page-BSHydn4p.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-Cm8-K6VH.js → Pagination-CAeyJ7Pl.js} +193 -27
- package/dist/Pagination-CAeyJ7Pl.js.map +1 -0
- package/dist/Pagination.css +4 -2
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-8mTJoMy7.js → Popover-Cq5tirFz.js} +11 -5
- package/dist/Popover-Cq5tirFz.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-C1CkQHV5.js → ProgressBar-ByR50ln7.js} +2 -2
- package/dist/{ProgressBar-C1CkQHV5.js.map → ProgressBar-ByR50ln7.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-BcHMk8dD.js → Radio-CPuctRpl.js} +2 -2
- package/dist/{Radio-BcHMk8dD.js.map → Radio-CPuctRpl.js.map} +1 -1
- package/dist/{Radio-D5WyQN2i.js → Radio-WlsZFRzX.js} +3 -3
- package/dist/{Radio-D5WyQN2i.js.map → Radio-WlsZFRzX.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{RichTextEditor-DstVbYch.js → RichTextEditor-CoPXdaWI.js} +78 -42
- package/dist/RichTextEditor-CoPXdaWI.js.map +1 -0
- package/dist/RichTextEditor.js +1 -1
- package/dist/SavedFiltersButton-DzJijqHz.js +651 -0
- package/dist/SavedFiltersButton-DzJijqHz.js.map +1 -0
- package/dist/SavedFiltersButton.css +8 -0
- package/dist/SavedFiltersButton.d.ts +1 -0
- package/dist/SavedFiltersButton.js +2 -0
- package/dist/SavedFiltersButton.js.map +1 -0
- package/dist/{SearchField-3tUPU8hH.js → SearchField-BMHJCVFu.js} +2 -2
- package/dist/{SearchField-3tUPU8hH.js.map → SearchField-BMHJCVFu.js.map} +1 -1
- package/dist/{SearchField-BcQZ5e0x.js → SearchField-fXc_vWEr.js} +2 -2
- package/dist/{SearchField-BcQZ5e0x.js.map → SearchField-fXc_vWEr.js.map} +1 -1
- package/dist/SearchField.js +1 -1
- package/dist/{SelectCard-BN-LI14f.js → SelectCard-DLWLHi_i.js} +3 -3
- package/dist/{SelectCard-BN-LI14f.js.map → SelectCard-DLWLHi_i.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-UbQT7fDD.js → SelectFieldLabel-vemffdmu.js} +2 -2
- package/dist/{SelectFieldLabel-UbQT7fDD.js.map → SelectFieldLabel-vemffdmu.js.map} +1 -1
- package/dist/{SelectFieldSync-BeDYbJ2M.js → SelectFieldSync-DlGiJ-Iy.js} +5 -4
- package/dist/{SelectFieldSync-BeDYbJ2M.js.map → SelectFieldSync-DlGiJ-Iy.js.map} +1 -1
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-C-PFemsQ.js → SelectMenuSync-CAweNjRL.js} +23 -9
- package/dist/SelectMenuSync-CAweNjRL.js.map +1 -0
- package/dist/{SelectOptions-Tr11Ckqw.js → SelectOptions-BGCap9fZ.js} +2 -2
- package/dist/{SelectOptions-Tr11Ckqw.js.map → SelectOptions-BGCap9fZ.js.map} +1 -1
- package/dist/{SelectTrigger-DTz7V-Xx.js → SelectTrigger-BbneVXMz.js} +3 -3
- package/dist/{SelectTrigger-DTz7V-Xx.js.map → SelectTrigger-BbneVXMz.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-Ds6I7Qbr.js → SelectTriggerBase-BjIOERXr.js} +136 -40
- package/dist/SelectTriggerBase-BjIOERXr.js.map +1 -0
- package/dist/{Switch-onmiKoRd.js → Switch-B6bKmpwN.js} +3 -3
- package/dist/{Switch-onmiKoRd.js.map → Switch-B6bKmpwN.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-BTzgTpqu.js → Text-w2gWn4K6.js} +2 -2
- package/dist/{Text-BTzgTpqu.js.map → Text-w2gWn4K6.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-WTYZJlX3.js → TextField-BQsCh5Nb.js} +2 -2
- package/dist/{TextField-WTYZJlX3.js.map → TextField-BQsCh5Nb.js.map} +1 -1
- package/dist/{TextField-rVfctM1E.js → TextField-DJ3gEIP6.js} +3 -3
- package/dist/{TextField-rVfctM1E.js.map → TextField-DJ3gEIP6.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-PXjppEQ6.js → Textarea-BK4Vf84K.js} +3 -3
- package/dist/{Textarea-PXjppEQ6.js.map → Textarea-BK4Vf84K.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{ThemeProvider-D4KdGCaP.js → ThemeProvider-BC6wbuLU.js} +4 -9
- package/dist/{ThemeProvider-D4KdGCaP.js.map → ThemeProvider-BC6wbuLU.js.map} +1 -1
- package/dist/ThemeProvider.js +1 -1
- package/dist/ThemeProvider.module-D9pNGYjP.js +8 -0
- package/dist/ThemeProvider.module-D9pNGYjP.js.map +1 -0
- package/dist/{TimeField-BJPXIv6W.js → TimeField-B4IW2B_o.js} +4 -4
- package/dist/{TimeField-BJPXIv6W.js.map → TimeField-B4IW2B_o.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-CoChsMD0.js → Toaster-BGY2IzF5.js} +53 -48
- package/dist/Toaster-BGY2IzF5.js.map +1 -0
- package/dist/{Toaster-DXLc86VD.js → Toaster-DTF9qnTy.js} +2 -2
- package/dist/{Toaster-DXLc86VD.js.map → Toaster-DTF9qnTy.js.map} +1 -1
- package/dist/{Toolbar-Bt3kShho.js → Toolbar-DObrJ_S5.js} +5 -4
- package/dist/{Toolbar-Bt3kShho.js.map → Toolbar-DObrJ_S5.js.map} +1 -1
- package/dist/{Toolbar-BUd9eNkq.js → Toolbar-DRJGKk8D.js} +7 -6
- package/dist/{Toolbar-BUd9eNkq.js.map → Toolbar-DRJGKk8D.js.map} +1 -1
- package/dist/Toolbar.js +2 -2
- package/dist/{ToolbarButtonToggle-C06cqJ6F.js → ToolbarButtonToggle-BCKgA8FE.js} +5 -4
- package/dist/ToolbarButtonToggle-BCKgA8FE.js.map +1 -0
- package/dist/{Tooltip-yr1D06BE.js → Tooltip-DqS6xDUf.js} +27 -25
- package/dist/Tooltip-DqS6xDUf.js.map +1 -0
- package/dist/Tooltip.js +1 -1
- package/dist/TreeSelectField.d.ts +1 -0
- package/dist/TreeSelectField.js +2 -0
- package/dist/TreeSelectField.js.map +1 -0
- package/dist/TreeSelectFieldSync-Do5ffU0b.js +609 -0
- package/dist/TreeSelectFieldSync-Do5ffU0b.js.map +1 -0
- package/dist/TreeSelectFieldSync.css +173 -0
- package/dist/TreeSelectMenu.d.ts +1 -0
- package/dist/TreeSelectMenu.js +2 -0
- package/dist/TreeSelectMenu.js.map +1 -0
- package/dist/TreeSelectMenuSync-s05Ly6lj.js +413 -0
- package/dist/TreeSelectMenuSync-s05Ly6lj.js.map +1 -0
- package/dist/{YearlessDateInputWithPicker-BIcVgz-J.js → YearlessDateInputWithPicker-BHfFjCqE.js} +2 -2
- package/dist/{YearlessDateInputWithPicker-BIcVgz-J.js.map → YearlessDateInputWithPicker-BHfFjCqE.js.map} +1 -1
- package/dist/beta.js +15 -12
- package/dist/beta.js.map +1 -1
- package/dist/confirmationTypes-CG7xl50f.js +75 -0
- package/dist/confirmationTypes-CG7xl50f.js.map +1 -0
- package/dist/filter-state-DyMDjdRS.js +1867 -0
- package/dist/filter-state-DyMDjdRS.js.map +1 -0
- package/dist/{FilterBar.css → filter-state.css} +19 -33
- package/dist/{floating-ui.react-dom-CHrYz13o.js → floating-ui.react-dom-BIKT960u.js} +2 -2
- package/dist/{floating-ui.react-dom-CHrYz13o.js.map → floating-ui.react-dom-BIKT960u.js.map} +1 -1
- package/dist/{index-DVYRUKtW.js → index-fSKD4ey4.js} +79 -109
- package/dist/{index-DVYRUKtW.js.map → index-fSKD4ey4.js.map} +1 -1
- package/dist/index.js +43 -44
- package/dist/index.js.map +1 -1
- package/dist/keyboard_arrow_left-CiE1n99w.js +6 -0
- package/dist/keyboard_arrow_left-CiE1n99w.js.map +1 -0
- package/dist/keyboard_arrow_right-DMloHg_F.js +6 -0
- package/dist/keyboard_arrow_right-DMloHg_F.js.map +1 -0
- package/dist/portalScopeClassNames-jlZkdug_.js +7 -0
- package/dist/portalScopeClassNames-jlZkdug_.js.map +1 -0
- package/dist/src/beta/components/FilterBar/FilterBar.d.ts +12 -10
- package/dist/src/beta/components/FilterBar/FilterDateList.d.ts +15 -5
- package/dist/src/beta/components/FilterBar/FilterDateRange.d.ts +34 -29
- package/dist/src/beta/components/FilterBar/FilterDateSingle.d.ts +31 -22
- package/dist/src/beta/components/FilterBar/FilterDrawer.d.ts +1 -1
- package/dist/src/beta/components/FilterBar/FilterItemWrapper.d.ts +4 -12
- package/dist/src/beta/components/FilterBar/FilterNumericRange.d.ts +29 -0
- package/dist/src/beta/components/FilterBar/FilterPopoverButton.d.ts +86 -0
- package/dist/src/beta/components/FilterBar/FilterTextInput.d.ts +29 -0
- package/dist/src/beta/components/FilterBar/FilterToggleButton.d.ts +2 -2
- package/dist/src/beta/components/FilterBar/FilterTriggerButton.d.ts +50 -0
- package/dist/src/beta/components/FilterBar/index.d.ts +1 -1
- package/dist/src/beta/components/FilterBar/internal/FilterGroupContext.d.ts +5 -9
- package/dist/src/beta/components/FilterBar/internal/adapters/asyncMultiSelect.d.ts +6 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/asyncSelect.d.ts +6 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/asyncTree.d.ts +6 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/boolean.d.ts +3 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/custom.d.ts +3 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/date.d.ts +5 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/dateList.d.ts +5 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/dateRange.d.ts +8 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/index.d.ts +15 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/multiSelect.d.ts +6 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/numericRange.d.ts +3 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/singleSelect.d.ts +6 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/textInput.d.ts +3 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/tree.d.ts +6 -0
- package/dist/src/beta/components/FilterBar/internal/adapters/types.d.ts +81 -0
- package/dist/src/beta/components/FilterBar/internal/types.d.ts +223 -61
- package/dist/src/beta/components/FilterBar/internal/utils/dateListLibraryOptions.d.ts +2 -2
- package/dist/src/beta/components/FilterBar/internal/utils/filter-state.d.ts +2 -40
- package/dist/src/beta/components/FilterBar/internal/utils/test.d.ts +16 -28
- package/dist/src/beta/components/FilterBar/internal/utils/value-compare.d.ts +14 -0
- package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
- package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
- package/dist/src/beta/components/MultiSelectField/internal/types.d.ts +4 -2
- package/dist/src/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +7 -5
- package/dist/src/beta/components/MultiSelectField/internal/useSelectModeMultiple.d.ts +5 -2
- package/dist/src/beta/components/MultiSelectField/types.d.ts +21 -36
- package/dist/src/beta/components/MultiSelectMenu/MultiSelectMenu.d.ts +1 -0
- package/dist/src/beta/components/MultiSelectMenu/types.d.ts +52 -12
- package/dist/src/beta/components/SavedFiltersButton/SavedFiltersButton.d.ts +40 -0
- package/dist/src/beta/components/SavedFiltersButton/index.d.ts +2 -0
- package/dist/src/beta/components/SavedFiltersButton/internal/AddSavedFilterDrawer.d.ts +27 -0
- package/dist/src/beta/components/SavedFiltersButton/internal/EditSavedFiltersDrawer.d.ts +38 -0
- package/dist/src/beta/components/SavedFiltersButton/types.d.ts +147 -0
- package/dist/src/beta/components/SelectField/types.d.ts +7 -11
- package/dist/src/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +8 -1
- package/dist/src/beta/components/SelectMenu/types.d.ts +21 -1
- package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +4 -6
- package/dist/src/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +6 -1
- package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +6 -0
- package/dist/src/beta/components/Table/DataTable/internal/context/focus/DTFocusContext.d.ts +1 -11
- package/dist/src/beta/components/Table/DataTable/internal/context/focus/useDTFocusDispatchContext.d.ts +0 -2
- package/dist/src/beta/components/Table/DataTable/internal/useColumnOrder.d.ts +1 -0
- package/dist/src/beta/components/Table/DataTable/types.d.ts +43 -10
- package/dist/src/beta/components/Toolbar/internal/ToolbarContext.d.ts +3 -2
- package/dist/src/beta/components/TreeSelectField/TreeSelectField.d.ts +68 -0
- package/dist/src/beta/components/TreeSelectField/TreeSelectFieldSync.d.ts +64 -0
- package/dist/src/beta/components/TreeSelectField/index.d.ts +3 -0
- package/dist/src/beta/components/TreeSelectField/internal/TreeContent.d.ts +31 -0
- package/dist/src/beta/components/TreeSelectField/internal/TreePanel.d.ts +56 -0
- package/dist/src/beta/components/TreeSelectField/internal/TreeRow.d.ts +56 -0
- package/dist/src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.d.ts +82 -0
- package/dist/src/beta/components/TreeSelectField/internal/VirtualizedTreePanel.d.ts +57 -0
- package/dist/src/beta/components/TreeSelectField/internal/treeSync.d.ts +33 -0
- package/dist/src/beta/components/TreeSelectField/internal/treeUtils.d.ts +25 -0
- package/dist/src/beta/components/TreeSelectField/internal/types.d.ts +12 -0
- package/dist/src/beta/components/TreeSelectField/internal/useTree.d.ts +99 -0
- package/dist/src/beta/components/TreeSelectField/internal/useTreeCascade.d.ts +93 -0
- package/dist/src/beta/components/TreeSelectField/internal/useTreeKeyboard.d.ts +42 -0
- package/dist/src/beta/components/TreeSelectField/internal/useTreeLazyCascade.d.ts +56 -0
- package/dist/src/beta/components/TreeSelectField/internal/useTreeLoader.d.ts +58 -0
- package/dist/src/beta/components/TreeSelectField/stories/TreeSelectField.stories.data.d.ts +21 -0
- package/dist/src/beta/components/TreeSelectField/types.d.ts +124 -0
- package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenu.d.ts +29 -0
- package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenuSync.d.ts +65 -0
- package/dist/src/beta/components/TreeSelectMenu/index.d.ts +4 -0
- package/dist/src/beta/components/TreeSelectMenu/types.d.ts +103 -0
- package/dist/src/beta/components/index.d.ts +3 -0
- package/dist/src/components/Pagination/internal/Pagination.d.ts +1 -0
- package/dist/src/components/Pagination/internal/PaginationOverflowMenu.d.ts +12 -1
- package/dist/src/internal/components/MenuFooter/MenuFooter.d.ts +43 -0
- package/dist/src/internal/components/OptionCheckbox.d.ts +6 -0
- package/dist/src/internal/components/OptionContentArea.d.ts +8 -0
- package/dist/src/internal/components/OptionRow.d.ts +10 -0
- package/dist/src/internal/components/OptionsPopover/OptionsPopover.d.ts +4 -4
- package/dist/src/internal/functions/portalScopeClassNames.d.ts +14 -0
- package/dist/src/internal/hooks/index.d.ts +2 -0
- package/dist/src/internal/hooks/useBulkActionRunner.d.ts +41 -0
- package/dist/src/internal/hooks/useConfirmationDraft.d.ts +21 -0
- package/dist/src/internal/types/bulkActionTypes.d.ts +39 -0
- package/dist/src/internal/types/confirmationTypes.d.ts +19 -0
- package/dist/src/internal/types/optionContent.d.ts +19 -0
- package/dist/src/internal/types/selectFieldInternalTypes.d.ts +2 -0
- package/dist/src/internal/utils/arrayIdsEqual.d.ts +10 -0
- package/dist/src/internal/utils/index.d.ts +1 -0
- package/dist/{stripInlineMarkdown-C5DNxxwf.js → stripInlineMarkdown-C0bVmYgG.js} +2 -2
- package/dist/{stripInlineMarkdown-C5DNxxwf.js.map → stripInlineMarkdown-C0bVmYgG.js.map} +1 -1
- package/dist/{syncFilterUtils-COxBIkt6.js → syncFilterUtils-DZqeVWTS.js} +49 -385
- package/dist/syncFilterUtils-DZqeVWTS.js.map +1 -0
- package/dist/syncFilterUtils.css +21 -164
- package/dist/treeSync-Cz3H08cr.js +1453 -0
- package/dist/treeSync-Cz3H08cr.js.map +1 -0
- package/dist/treeSync.css +40 -0
- package/dist/useAdaptiveView-CeYKH0Me.js +386 -0
- package/dist/useAdaptiveView-CeYKH0Me.js.map +1 -0
- package/dist/useAdaptiveView.css +181 -0
- package/dist/useChipLayout-BWZfKDgd.js +51 -0
- package/dist/useChipLayout-BWZfKDgd.js.map +1 -0
- package/dist/{useDrilldown-KZ9rRsXQ.js → useDrilldown-BJ2dHHKV.js} +2 -2
- package/dist/{useDrilldown-KZ9rRsXQ.js.map → useDrilldown-BJ2dHHKV.js.map} +1 -1
- package/dist/{Combobox-Cp7M4-4r.js → useInfiniteCombobox-C6TDFfds.js} +206 -31
- package/dist/useInfiniteCombobox-C6TDFfds.js.map +1 -0
- package/dist/{useMenuInteraction-C4RU5Fdq.js → useMenuInteraction-NEJXUD4I.js} +5 -4
- package/dist/useMenuInteraction-NEJXUD4I.js.map +1 -0
- package/dist/{useToggleSelection-B5PnTuT2.js → useToggleSelection-Bn7h-gGD.js} +53 -4
- package/dist/useToggleSelection-Bn7h-gGD.js.map +1 -0
- package/package.json +3 -5
- package/dist/Avatar-FDHyqiCy.js.map +0 -1
- package/dist/Combobox-Cp7M4-4r.js.map +0 -1
- package/dist/DataTable-0kOuVgSB.js.map +0 -1
- package/dist/DateFieldRange-Be_I9GTp.js.map +0 -1
- package/dist/FilterBar-yysyZ-t1.js +0 -1797
- package/dist/FilterBar-yysyZ-t1.js.map +0 -1
- package/dist/ListView.module-CKUQP3kf.js.map +0 -1
- package/dist/Menu-W0c-xKdX.js.map +0 -1
- package/dist/MultiSelectFieldSync-BMVROOjy.js.map +0 -1
- package/dist/MultiSelectMenuSync-BNPp_2Bm.js.map +0 -1
- package/dist/Pagination-Cm8-K6VH.js.map +0 -1
- package/dist/Popover-8mTJoMy7.js.map +0 -1
- package/dist/RichTextEditor-DstVbYch.js.map +0 -1
- package/dist/SelectMenuSync-C-PFemsQ.js.map +0 -1
- package/dist/SelectTriggerBase-Ds6I7Qbr.js.map +0 -1
- package/dist/Toaster-CoChsMD0.js.map +0 -1
- package/dist/ToolbarButtonToggle-C06cqJ6F.js.map +0 -1
- package/dist/Tooltip-yr1D06BE.js.map +0 -1
- package/dist/keyboard_arrow_right-DZWNVytH.js +0 -8
- package/dist/keyboard_arrow_right-DZWNVytH.js.map +0 -1
- package/dist/src/beta/components/FilterBar/FilterButton.d.ts +0 -33
- package/dist/src/beta/components/FilterBar/FilterSelect.d.ts +0 -29
- package/dist/syncFilterUtils-COxBIkt6.js.map +0 -1
- package/dist/useInfiniteCombobox-WcRgC9p6.js +0 -179
- package/dist/useInfiniteCombobox-WcRgC9p6.js.map +0 -1
- package/dist/useMenuInteraction-C4RU5Fdq.js.map +0 -1
- package/dist/useToggleSelection-B5PnTuT2.js.map +0 -1
- /package/dist/{Combobox.css → useInfiniteCombobox.css} +0 -0
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { DateFieldSingleProps } from '../../../../components/DateFieldSingle';
|
|
3
3
|
import { DateFieldRangeProps } from '../../../../components/DateFieldRange';
|
|
4
|
+
import { SelectMenuOption, SelectMenuProps, SelectMenuSyncProps } from '../../SelectMenu';
|
|
5
|
+
import { MultiSelectMenuOption, MultiSelectMenuProps, MultiSelectMenuSyncProps } from '../../MultiSelectMenu';
|
|
6
|
+
import { TreeSelectMenuProps, TreeSelectMenuSyncProps, TreeSelectMenuValue } from '../../TreeSelectMenu';
|
|
7
|
+
import { DistributiveOmit } from '../../../../types';
|
|
4
8
|
/**
|
|
5
9
|
* Base properties shared by all filter types
|
|
6
10
|
*/
|
|
@@ -9,6 +13,8 @@ export type BaseFilter = {
|
|
|
9
13
|
id: string;
|
|
10
14
|
/** Display label for the filter */
|
|
11
15
|
label: string;
|
|
16
|
+
/** When true, the filter is only reachable via the drawer and never rendered inline in the toolbar */
|
|
17
|
+
drawerOnly?: boolean;
|
|
12
18
|
};
|
|
13
19
|
/**
|
|
14
20
|
* Built-in boolean filter type
|
|
@@ -29,14 +35,9 @@ export type FilterRenderProps<T = unknown> = {
|
|
|
29
35
|
/** Callback to update the filter value */
|
|
30
36
|
onChange: (value?: T) => void;
|
|
31
37
|
};
|
|
32
|
-
|
|
33
|
-
* Custom filter type allowing for complex filter implementations
|
|
34
|
-
*/
|
|
35
|
-
export type CustomFilter<T = unknown> = BaseFilter & {
|
|
38
|
+
type CustomFilterShared<T> = BaseFilter & {
|
|
36
39
|
/** Identifies this as a custom filter */
|
|
37
40
|
type: "custom";
|
|
38
|
-
/** Function to render the filter content in the button/popover */
|
|
39
|
-
buttonRender: (props: FilterRenderProps<T>) => ReactNode;
|
|
40
41
|
/** Function to render the filter content in the drawer */
|
|
41
42
|
drawerRender: (props: FilterRenderProps<T>) => ReactNode;
|
|
42
43
|
/** Current value of the custom filter */
|
|
@@ -45,68 +46,62 @@ export type CustomFilter<T = unknown> = BaseFilter & {
|
|
|
45
46
|
labelChipCount?: number;
|
|
46
47
|
};
|
|
47
48
|
/**
|
|
48
|
-
*
|
|
49
|
+
* Custom filter type allowing for complex filter implementations.
|
|
50
|
+
*
|
|
51
|
+
* `buttonRender` is required for filters that can appear inline in the
|
|
52
|
+
* toolbar, and forbidden when `drawerOnly: true` since the filter never
|
|
53
|
+
* renders inline.
|
|
49
54
|
*/
|
|
50
|
-
export type
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
}
|
|
55
|
+
export type CustomFilter<T = unknown> = (CustomFilterShared<T> & {
|
|
56
|
+
drawerOnly: true;
|
|
57
|
+
buttonRender?: never;
|
|
58
|
+
}) | (CustomFilterShared<T> & {
|
|
59
|
+
drawerOnly?: false;
|
|
60
|
+
/** Function to render the filter content in the button/popover */
|
|
61
|
+
buttonRender: (props: FilterRenderProps<T>) => ReactNode;
|
|
62
|
+
});
|
|
63
|
+
/**
|
|
64
|
+
* Single select filter type backed by SelectMenuSync (toolbar) and
|
|
65
|
+
* SelectFieldSync (drawer). The consumer supplies a fixed `options` array;
|
|
66
|
+
* client-side filtering happens automatically via match-sorter (override with
|
|
67
|
+
* a custom `filter` function or MatchSorterOptions config).
|
|
68
|
+
*
|
|
69
|
+
* Uses DistributiveOmit so variant-specific fields survive — see AsyncSelectFilter.
|
|
70
|
+
*
|
|
71
|
+
* Filter-runtime concerns (`label`, `id`, `selectedOption`, `trigger`,
|
|
72
|
+
* `value`/`onSelectedOptionChange`, focus-lifecycle callbacks) are owned by
|
|
73
|
+
* FilterBar and the singleSelect adapter — consumers don't pass them.
|
|
74
|
+
*/
|
|
75
|
+
export type SingleSelectFilter = BaseFilter & {
|
|
54
76
|
/** Identifies this as a single select filter */
|
|
55
77
|
type: "singleSelect";
|
|
56
|
-
/**
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
/** Required callback for search functionality when hasSearch is true */
|
|
64
|
-
onSearch: (searchTerm: string) => void;
|
|
65
|
-
/** Optional callback when search is cleared (only used when hasSearch is true) */
|
|
66
|
-
onSearchClear: () => void;
|
|
67
|
-
simpleDrawerVariant?: never;
|
|
68
|
-
} | {
|
|
69
|
-
/** Whether to show the search field */
|
|
70
|
-
hasSearch?: false;
|
|
71
|
-
onSearch?: never;
|
|
72
|
-
onSearchClear?: never;
|
|
73
|
-
/** Whether to use simplified drawer rendering */
|
|
78
|
+
/** Currently selected option */
|
|
79
|
+
selectedOption?: SelectMenuOption;
|
|
80
|
+
/**
|
|
81
|
+
* When true, the drawer cell renders a Radio.Group over the full option set
|
|
82
|
+
* instead of the default SelectFieldSync combobox. The toolbar still uses
|
|
83
|
+
* SelectMenuSync regardless.
|
|
84
|
+
*/
|
|
74
85
|
simpleDrawerVariant?: boolean;
|
|
75
|
-
}
|
|
86
|
+
} & DistributiveOmit<SelectMenuSyncProps, "id" | "label" | "value" | "onSelectedOptionChange" | "trigger" | "onMenuKeyDown" | "onImplicitClose" | "onExplicitClose" | "clear">;
|
|
76
87
|
/**
|
|
77
|
-
* Multi select filter type
|
|
88
|
+
* Multi select filter type backed by MultiSelectMenuSync (toolbar) and
|
|
89
|
+
* MultiSelectFieldSync (drawer). Same option/filter model as SingleSelectFilter.
|
|
90
|
+
* Inherits MultiSelectMenuSync's simplified `selectAll` / `selectFiltered`
|
|
91
|
+
* (boolean | { label }) — click handling and check state are managed automatically.
|
|
78
92
|
*/
|
|
79
|
-
export type MultiSelectFilter
|
|
80
|
-
id: string;
|
|
81
|
-
label: string;
|
|
82
|
-
}> = BaseFilter & {
|
|
93
|
+
export type MultiSelectFilter = BaseFilter & {
|
|
83
94
|
/** Identifies this as a multi select filter */
|
|
84
95
|
type: "multiSelect";
|
|
85
|
-
/**
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
/** Whether to show the search field */
|
|
93
|
-
hasSearch: true;
|
|
94
|
-
/** Current search value */
|
|
95
|
-
searchValue?: string;
|
|
96
|
-
/** Required callback for search functionality when hasSearch is true */
|
|
97
|
-
onSearch: (searchTerm: string) => void;
|
|
98
|
-
/** Optional callback when search is cleared (only used when hasSearch is true) */
|
|
99
|
-
onSearchClear: () => void;
|
|
100
|
-
simpleDrawerVariant?: never;
|
|
101
|
-
} | {
|
|
102
|
-
/** Whether to show the search field */
|
|
103
|
-
hasSearch?: false;
|
|
104
|
-
searchValue?: never;
|
|
105
|
-
onSearch?: never;
|
|
106
|
-
onSearchClear?: never;
|
|
107
|
-
/** Whether to use simplified drawer rendering */
|
|
96
|
+
/** Currently selected options */
|
|
97
|
+
selectedOptions?: MultiSelectMenuOption[];
|
|
98
|
+
/**
|
|
99
|
+
* When true, the drawer cell renders a Checkbox.Group over the full option
|
|
100
|
+
* set instead of the default MultiSelectFieldSync combobox. The toolbar
|
|
101
|
+
* still uses MultiSelectMenuSync regardless.
|
|
102
|
+
*/
|
|
108
103
|
simpleDrawerVariant?: boolean;
|
|
109
|
-
}
|
|
104
|
+
} & DistributiveOmit<MultiSelectMenuSyncProps, "id" | "label" | "value" | "onSelectedOptionsChange" | "trigger" | "onMenuKeyDown" | "onImplicitClose" | "onExplicitClose" | "clear">;
|
|
110
105
|
/**
|
|
111
106
|
* Single date filter type using DateFieldSingle component
|
|
112
107
|
* Used for selecting a single date with calendar support
|
|
@@ -159,10 +154,177 @@ export type DateListFilter = BaseFilter & Pick<DateFieldSingleProps, "mode"> & {
|
|
|
159
154
|
/** The currently selected option (consumer or library) */
|
|
160
155
|
selectedOption?: DateListOption;
|
|
161
156
|
};
|
|
157
|
+
/**
|
|
158
|
+
* Async select filter type. Backed by SelectMenu in the toolbar and SelectField
|
|
159
|
+
* in the drawer, so the consumer supplies a `loadOptions` function instead of a
|
|
160
|
+
* static `items` array. Carries the full SelectMenu loader union (eager + lazy
|
|
161
|
+
* page/offset/group) plus pass-through configuration (pinned, cache, virtualize,
|
|
162
|
+
* search, displayMenuAs, etc.).
|
|
163
|
+
*
|
|
164
|
+
* Uses DistributiveOmit so variant-specific fields like `lazyOptions` and
|
|
165
|
+
* `groupToString` survive the omit — plain `Omit<SelectMenuProps, …>` would
|
|
166
|
+
* silently drop them, since it reduces unions to their common keys.
|
|
167
|
+
*
|
|
168
|
+
* Filter-runtime concerns (`label`, `id`, `selectedOption`, `trigger`,
|
|
169
|
+
* `value`/`onSelectedOptionChange`, focus-lifecycle callbacks) are owned by
|
|
170
|
+
* FilterBar and the asyncSelect adapter — consumers don't pass them.
|
|
171
|
+
*/
|
|
172
|
+
export type AsyncSelectFilter = BaseFilter & {
|
|
173
|
+
/** Identifies this as an async select filter */
|
|
174
|
+
type: "asyncSelect";
|
|
175
|
+
/** The currently selected option */
|
|
176
|
+
selectedOption?: SelectMenuOption;
|
|
177
|
+
} & DistributiveOmit<SelectMenuProps, "id" | "label" | "value" | "onSelectedOptionChange" | "trigger" | "onMenuKeyDown" | "onImplicitClose" | "onExplicitClose" | "clear">;
|
|
178
|
+
/**
|
|
179
|
+
* Async multi-select filter type. The multi-selection counterpart of
|
|
180
|
+
* AsyncSelectFilter — backed by MultiSelectMenu in the toolbar and
|
|
181
|
+
* MultiSelectField in the drawer, so the consumer supplies a `loadOptions`
|
|
182
|
+
* function instead of a static `items` array. Carries the full
|
|
183
|
+
* MultiSelectMenu loader union and pass-through configuration, including the
|
|
184
|
+
* `selectAll` and `selectFiltered` checkbox affordances.
|
|
185
|
+
*
|
|
186
|
+
* Filter-runtime concerns (`label`, `id`, `selectedOptions`, `trigger`,
|
|
187
|
+
* `value`/`onSelectedOptionsChange`, focus-lifecycle callbacks) are owned by
|
|
188
|
+
* FilterBar and the asyncMultiSelect adapter — consumers don't pass them.
|
|
189
|
+
*/
|
|
190
|
+
export type AsyncMultiSelectFilter = BaseFilter & {
|
|
191
|
+
/** Identifies this as an async multi-select filter */
|
|
192
|
+
type: "asyncMultiSelect";
|
|
193
|
+
/** The currently selected options */
|
|
194
|
+
selectedOptions?: MultiSelectMenuOption[];
|
|
195
|
+
} & DistributiveOmit<MultiSelectMenuProps, "id" | "label" | "value" | "onSelectedOptionsChange" | "trigger" | "onMenuKeyDown" | "onImplicitClose" | "onExplicitClose" | "clear">;
|
|
196
|
+
/**
|
|
197
|
+
* Value shape for a numeric range filter. Both bounds are optional —
|
|
198
|
+
* consumers may set only `min`, only `max`, or both. `null` represents
|
|
199
|
+
* "no filter applied" (treated as inactive).
|
|
200
|
+
*/
|
|
201
|
+
export type NumericRangeValue = {
|
|
202
|
+
min?: number;
|
|
203
|
+
max?: number;
|
|
204
|
+
} | null;
|
|
205
|
+
/**
|
|
206
|
+
* Numeric min/max range filter. Renders two NumberField inputs (compact
|
|
207
|
+
* stacked layout in the toolbar popover, side-by-side grid in the drawer).
|
|
208
|
+
*
|
|
209
|
+
* - `mode` toggles currency ($ prefix, 2dp) or percentage (% suffix, up to 3dp)
|
|
210
|
+
* decorators on both inputs and on the formatted label.
|
|
211
|
+
* - `minValue` / `maxValue` clamp entered bounds to a valid range.
|
|
212
|
+
* - `inclusiveBounds` switches the field labels between Min/Max (inclusive)
|
|
213
|
+
* and Above/Below (exclusive), and the label symbols between `≥`/`≤` and
|
|
214
|
+
* `>`/`<`.
|
|
215
|
+
*/
|
|
216
|
+
export type NumericRangeFilter = BaseFilter & {
|
|
217
|
+
/** Identifies this as a numeric range filter */
|
|
218
|
+
type: "numericRange";
|
|
219
|
+
/** Current min/max value (or null when inactive) */
|
|
220
|
+
value?: NumericRangeValue;
|
|
221
|
+
/** Optional decorator mode applied to both inputs and the formatted label */
|
|
222
|
+
mode?: "currency" | "percentage";
|
|
223
|
+
/** Clamps entered values from below */
|
|
224
|
+
minValue?: number;
|
|
225
|
+
/** Clamps entered values from above */
|
|
226
|
+
maxValue?: number;
|
|
227
|
+
/** When true, label uses ≥/≤ and Min/Max; otherwise >/< and Above/Below */
|
|
228
|
+
inclusiveBounds?: boolean;
|
|
229
|
+
/** Increment for arrow-key / scroll adjustments on the NumberFields. */
|
|
230
|
+
step?: number;
|
|
231
|
+
/**
|
|
232
|
+
* Override the minimum fraction digits applied to both inputs and the
|
|
233
|
+
* formatted label. Defaults derived from `mode`: `2` for currency, `0`
|
|
234
|
+
* for percentage, unset for plain.
|
|
235
|
+
*/
|
|
236
|
+
minimumFractionDigits?: number;
|
|
237
|
+
/**
|
|
238
|
+
* Override the maximum fraction digits applied to both inputs and the
|
|
239
|
+
* formatted label. Defaults derived from `mode`: `2` for currency, `3`
|
|
240
|
+
* for percentage, unset for plain.
|
|
241
|
+
*/
|
|
242
|
+
maximumFractionDigits?: number;
|
|
243
|
+
/**
|
|
244
|
+
* Hide the increment/decrement controls on the NumberFields.
|
|
245
|
+
* @default true
|
|
246
|
+
*/
|
|
247
|
+
hideControls?: boolean;
|
|
248
|
+
};
|
|
249
|
+
type TextInputFilterShared = BaseFilter & {
|
|
250
|
+
/** Identifies this as a text input filter */
|
|
251
|
+
type: "textInput";
|
|
252
|
+
/** Current text value (undefined or empty means inactive) */
|
|
253
|
+
value?: string;
|
|
254
|
+
/** Placeholder shown when the field is empty */
|
|
255
|
+
placeholder?: string;
|
|
256
|
+
};
|
|
257
|
+
/**
|
|
258
|
+
* Single text input filter. Renders a TextField — the field's own label is
|
|
259
|
+
* hidden inline in the toolbar (the filter button doubles as the label) and
|
|
260
|
+
* shown in the drawer cell.
|
|
261
|
+
*
|
|
262
|
+
* `placeholder` is shown when the field is empty; `maxLength` clamps entered
|
|
263
|
+
* text to that many characters. Set `showCounter: true` to render a
|
|
264
|
+
* `current/max` character counter under the input — `maxLength` is required
|
|
265
|
+
* (and must be a concrete `number`, not `undefined`) in that case, otherwise
|
|
266
|
+
* the counter renders with an empty denominator.
|
|
267
|
+
*/
|
|
268
|
+
export type TextInputFilter = (TextInputFilterShared & {
|
|
269
|
+
/** Show a `current/max` character counter under the input. */
|
|
270
|
+
showCounter: true;
|
|
271
|
+
/** Max character length; required when `showCounter` is true. */
|
|
272
|
+
maxLength: number;
|
|
273
|
+
}) | (TextInputFilterShared & {
|
|
274
|
+
/** Show a `current/max` character counter under the input. */
|
|
275
|
+
showCounter?: false;
|
|
276
|
+
/** Optional max character length; entered text is truncated to this length. */
|
|
277
|
+
maxLength?: number;
|
|
278
|
+
});
|
|
279
|
+
/**
|
|
280
|
+
* Sync tree filter type. Backed by TreeSelectMenuSync in the toolbar and
|
|
281
|
+
* TreeSelectFieldSync in the drawer, so the consumer supplies a static
|
|
282
|
+
* `options` tree (with optional client-side `filter` override) instead of a
|
|
283
|
+
* `loadOptions` function. Selection is always an array of node values, even in
|
|
284
|
+
* `selectionMode: "single"`.
|
|
285
|
+
*
|
|
286
|
+
* Uses DistributiveOmit so variant-specific fields survive the omit, matching
|
|
287
|
+
* the select-family filters.
|
|
288
|
+
*
|
|
289
|
+
* Filter-runtime concerns (`label`, `id`, `selectedNodes`, `trigger`,
|
|
290
|
+
* `value`/`onSelectedOptionsChange`, focus-lifecycle callbacks) are owned by
|
|
291
|
+
* FilterBar and the tree adapter — consumers don't pass them. Like the
|
|
292
|
+
* select-family filters, the inline menu honors `controlledFiltering`: when it
|
|
293
|
+
* is on, selections are buffered as a draft and commit only on Apply; when off,
|
|
294
|
+
* they commit immediately.
|
|
295
|
+
*/
|
|
296
|
+
export type TreeFilter = BaseFilter & {
|
|
297
|
+
/** Identifies this as a tree filter */
|
|
298
|
+
type: "tree";
|
|
299
|
+
/** Currently selected tree node values */
|
|
300
|
+
selectedNodes?: TreeSelectMenuValue[];
|
|
301
|
+
} & DistributiveOmit<TreeSelectMenuSyncProps, "id" | "label" | "value" | "onSelectedOptionsChange" | "trigger" | "onMenuKeyDown" | "onImplicitClose" | "onExplicitClose">;
|
|
302
|
+
/**
|
|
303
|
+
* Async tree filter type. The async counterpart of TreeFilter — backed by
|
|
304
|
+
* TreeSelectMenu in the toolbar and TreeSelectField in the drawer, so the
|
|
305
|
+
* consumer supplies a `loadOptions` function (with `parentNode` for lazy branch
|
|
306
|
+
* loading) instead of a static `options` tree. Carries the full TreeSelectMenu
|
|
307
|
+
* pass-through configuration (cache, virtualize, displayMenuAs, initialLoad,
|
|
308
|
+
* selectionMode, valueConsistsOf, etc.).
|
|
309
|
+
*
|
|
310
|
+
* Filter-runtime concerns (`label`, `id`, `selectedNodes`, `trigger`,
|
|
311
|
+
* `value`/`onSelectedOptionsChange`, focus-lifecycle callbacks) are owned by
|
|
312
|
+
* FilterBar and the asyncTree adapter — consumers don't pass them. Like
|
|
313
|
+
* TreeFilter, the inline menu honors `controlledFiltering`: when it is on,
|
|
314
|
+
* selections are buffered as a draft and commit only on Apply; when off, they
|
|
315
|
+
* commit immediately.
|
|
316
|
+
*/
|
|
317
|
+
export type AsyncTreeFilter = BaseFilter & {
|
|
318
|
+
/** Identifies this as an async tree filter */
|
|
319
|
+
type: "asyncTree";
|
|
320
|
+
/** Currently selected tree node values */
|
|
321
|
+
selectedNodes?: TreeSelectMenuValue[];
|
|
322
|
+
} & DistributiveOmit<TreeSelectMenuProps, "id" | "label" | "value" | "onSelectedOptionsChange" | "trigger" | "onMenuKeyDown" | "onImplicitClose" | "onExplicitClose">;
|
|
162
323
|
/**
|
|
163
324
|
* Union type of all available filter types
|
|
164
325
|
* Uses unknown instead of any for better type safety
|
|
165
326
|
*/
|
|
166
|
-
export type Filter = BooleanFilter | CustomFilter<any> | SingleSelectFilter
|
|
327
|
+
export type Filter = BooleanFilter | CustomFilter<any> | SingleSelectFilter | MultiSelectFilter | DateFilter | DateRangeFilter | DateListFilter | AsyncSelectFilter | AsyncMultiSelectFilter | TreeFilter | AsyncTreeFilter | NumericRangeFilter | TextInputFilter;
|
|
167
328
|
/** Type representing all possible filter values */
|
|
168
|
-
export type FilterValue = boolean | CustomFilter["value"] | SingleSelectFilter["
|
|
329
|
+
export type FilterValue = boolean | CustomFilter["value"] | SingleSelectFilter["selectedOption"] | MultiSelectFilter["selectedOptions"] | DateFilter["value"] | DateRangeFilter["value"] | DateListFilter["selectedOption"] | AsyncSelectFilter["selectedOption"] | AsyncMultiSelectFilter["selectedOptions"] | TreeFilter["selectedNodes"] | AsyncTreeFilter["selectedNodes"] | NumericRangeFilter["value"] | TextInputFilter["value"];
|
|
330
|
+
export {};
|
|
@@ -18,8 +18,8 @@ export declare const dateListLibraryOptions: ReadonlyArray<{
|
|
|
18
18
|
export declare const isDateListRangeLibraryId: (id: DateListLibraryOptionId) => boolean;
|
|
19
19
|
/**
|
|
20
20
|
* Build the display label for a committed dateList selection. Used by both
|
|
21
|
-
* the
|
|
22
|
-
* surfaces stay in sync.
|
|
21
|
+
* the toolbar `FilterTriggerButton` and the FilterDrawer `SelectField` so the
|
|
22
|
+
* two surfaces stay in sync.
|
|
23
23
|
*
|
|
24
24
|
* - Selection with `value: null` (e.g. "Any day") → option label only.
|
|
25
25
|
* - Custom Range library option → just the formatted range (label omitted
|
|
@@ -1,71 +1,33 @@
|
|
|
1
1
|
import { Filter, FilterValue } from '../types';
|
|
2
|
+
export { hasChangedFilter } from './value-compare';
|
|
2
3
|
/**
|
|
3
4
|
* Returns an array of filters that are currently active (i.e., have a value set).
|
|
4
|
-
*
|
|
5
|
-
* @param {Filter[]} filters - Array of filter objects to check
|
|
6
|
-
* @returns {Filter[]} Array of active filters
|
|
7
5
|
*/
|
|
8
6
|
export declare const getActiveFilters: (filters: Filter[]) => Filter[];
|
|
9
7
|
/**
|
|
10
8
|
* Checks if any filters in the array have active values
|
|
11
|
-
*
|
|
12
|
-
* @param {Filter[]} filters - Array of filter objects to check
|
|
13
|
-
* @returns {boolean} True if any filter has an active value
|
|
14
9
|
*/
|
|
15
10
|
export declare const checkActiveFilters: (filters: Filter[]) => boolean;
|
|
16
11
|
/**
|
|
17
12
|
* Resets all filters to their default state
|
|
18
|
-
*
|
|
19
|
-
* @param {Filter[]} filters - Array of filter objects to reset
|
|
20
|
-
* @returns {Filter[]} New array with reset filters
|
|
21
13
|
*/
|
|
22
14
|
export declare const resetFilters: (filters: Filter[]) => Filter[];
|
|
23
15
|
/**
|
|
24
16
|
* Updates a single filter in an array of filters
|
|
25
|
-
*
|
|
26
|
-
* @param {Filter[]} filters - Array of filter objects
|
|
27
|
-
* @param {string} filterId - ID of the filter to update
|
|
28
|
-
* @param {FilterValue} value - New value for the filter
|
|
29
|
-
* @returns {Filter[]} New array with updated filter
|
|
30
17
|
*/
|
|
31
18
|
export declare const updateSingleFilter: (filters: Filter[], filterId: string, value: FilterValue) => Filter[];
|
|
32
|
-
/**
|
|
33
|
-
* Determines if two filter values are different.
|
|
34
|
-
* For arrays (multiSelect), compares by id set (order-insensitive, avoids JSON serialization).
|
|
35
|
-
* For singleSelect, compares by id if both are objects with id.
|
|
36
|
-
* For dateList selections (objects with both id and value), compares id AND value
|
|
37
|
-
* so re-picking the same library option with a different date still counts as a change.
|
|
38
|
-
*
|
|
39
|
-
* @param {T} a - First value to compare
|
|
40
|
-
* @param {T} b - Second value to compare
|
|
41
|
-
* @returns {boolean} True if the values are different
|
|
42
|
-
*/
|
|
43
|
-
export declare const hasChangedFilter: <T>(a: T, b: T) => boolean;
|
|
44
19
|
/**
|
|
45
20
|
* Checks if the selection value of a filter has changed by comparing references.
|
|
46
21
|
* Uses reference equality (===) to detect if the parent has provided a new value.
|
|
47
|
-
*
|
|
48
|
-
* @param {Filter} existingFilter - The current filter state
|
|
49
|
-
* @param {Filter} newFilter - The incoming filter from props
|
|
50
|
-
* @returns {boolean} True if the selection value reference has changed
|
|
51
22
|
*/
|
|
52
23
|
export declare const hasFilterSelectionChanged: (existingFilter: Filter, newFilter: Filter) => boolean;
|
|
53
24
|
/**
|
|
54
25
|
* Preserves the selection state from an existing filter into a new filter.
|
|
55
|
-
* Used when filter configuration updates but the selection value reference hasn't changed
|
|
56
|
-
* allowing us to maintain user selections through configuration updates.
|
|
57
|
-
*
|
|
58
|
-
* @param {Filter} newFilter - The new filter configuration from props
|
|
59
|
-
* @param {Filter} existingFilter - The existing filter with user's selections
|
|
60
|
-
* @returns {Filter} New filter with configuration from newFilter and selection from existingFilter
|
|
26
|
+
* Used when filter configuration updates but the selection value reference hasn't changed.
|
|
61
27
|
*/
|
|
62
28
|
export declare const preserveFilterState: (newFilter: Filter, existingFilter: Filter) => Filter;
|
|
63
29
|
/**
|
|
64
30
|
* Creates a deep clone of filters with updated item references.
|
|
65
31
|
* Ensures that selected items reference the current items array for proper equality checks.
|
|
66
|
-
* Used when initializing draft state to ensure selections use current item references.
|
|
67
|
-
*
|
|
68
|
-
* @param {Filter[]} filters - Array of filter objects to clone
|
|
69
|
-
* @returns {Filter[]} New array with cloned filters and updated item references
|
|
70
32
|
*/
|
|
71
33
|
export declare const cloneFiltersWithItemRefs: (filters: Filter[]) => Filter[];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Filter, BooleanFilter, CustomFilter, SingleSelectFilter, MultiSelectFilter, DateFilter, DateListFilter, DateRangeFilter } from '../types';
|
|
1
|
+
import { AsyncMultiSelectFilter, AsyncSelectFilter, Filter, BooleanFilter, CustomFilter, SingleSelectFilter, MultiSelectFilter, DateFilter, DateListFilter, DateRangeFilter, NumericRangeFilter, TextInputFilter, TreeFilter, AsyncTreeFilter } from '../types';
|
|
2
2
|
export type TestValue = {
|
|
3
3
|
id: number;
|
|
4
4
|
label: string;
|
|
@@ -11,24 +11,12 @@ export declare const mockFilterOptions: {
|
|
|
11
11
|
}[];
|
|
12
12
|
export declare const defaultMockBooleanFilter: BooleanFilter;
|
|
13
13
|
export declare const defaultMockCustomFilter: CustomFilter<TestValue>;
|
|
14
|
-
export declare const defaultMockSingleSelectFilter: SingleSelectFilter
|
|
15
|
-
|
|
16
|
-
label: string;
|
|
17
|
-
}>;
|
|
18
|
-
export declare const defaultMockMultiSelectFilter: MultiSelectFilter<{
|
|
19
|
-
id: string;
|
|
20
|
-
label: string;
|
|
21
|
-
}>;
|
|
14
|
+
export declare const defaultMockSingleSelectFilter: SingleSelectFilter;
|
|
15
|
+
export declare const defaultMockMultiSelectFilter: MultiSelectFilter;
|
|
22
16
|
export declare const defaultMockDateFilter: DateFilter;
|
|
23
17
|
export declare const defaultMockDateRangeFilter: DateRangeFilter;
|
|
24
|
-
export declare const defaultMockFilters: (BooleanFilter | DateFilter | DateRangeFilter | CustomFilter<TestValue>
|
|
25
|
-
|
|
26
|
-
label: string;
|
|
27
|
-
}> | MultiSelectFilter<{
|
|
28
|
-
id: string;
|
|
29
|
-
label: string;
|
|
30
|
-
}>)[];
|
|
31
|
-
export declare function createMockFilter<T = unknown>(overrides?: Partial<Filter | CustomFilter<T> | SingleSelectFilter<T>>): Filter | CustomFilter<T> | SingleSelectFilter<T>;
|
|
18
|
+
export declare const defaultMockFilters: (BooleanFilter | SingleSelectFilter | MultiSelectFilter | DateFilter | DateRangeFilter | CustomFilter<TestValue>)[];
|
|
19
|
+
export declare function createMockFilter<T = unknown>(overrides?: Partial<Filter | CustomFilter<T> | SingleSelectFilter>): Filter | CustomFilter<T> | SingleSelectFilter;
|
|
32
20
|
export declare function createMockFilterContext(filters?: Filter[], contextOverrides?: {}): {
|
|
33
21
|
filterGroupRef: {
|
|
34
22
|
current: HTMLDivElement;
|
|
@@ -36,24 +24,24 @@ export declare function createMockFilterContext(filters?: Filter[], contextOverr
|
|
|
36
24
|
filters: Filter[];
|
|
37
25
|
updateFilter: import('vitest').Mock<(...args: any[]) => any>;
|
|
38
26
|
onFilterChange: import('vitest').Mock<(...args: any[]) => any>;
|
|
39
|
-
|
|
40
|
-
addHiddenFilter: import('vitest').Mock<(...args: any[]) => any>;
|
|
41
|
-
removeHiddenFilter: import('vitest').Mock<(...args: any[]) => any>;
|
|
27
|
+
drawerOnlyFilters: never[];
|
|
42
28
|
controlledFiltering: boolean;
|
|
43
29
|
associatedContent: string;
|
|
30
|
+
showInlineFilters: boolean;
|
|
44
31
|
};
|
|
45
32
|
export declare function createMockBooleanFilter(overrides?: Partial<BooleanFilter>): BooleanFilter;
|
|
46
33
|
export declare function createMockCustomFilter<T = unknown>(overrides?: Partial<CustomFilter<T>>): CustomFilter<T>;
|
|
47
|
-
export declare function createMockSingleSelectFilter<
|
|
48
|
-
|
|
49
|
-
label: string;
|
|
50
|
-
}>(overrides?: Partial<SingleSelectFilter<T>>): SingleSelectFilter<T>;
|
|
51
|
-
export declare function createMockMultiSelectFilter<T = {
|
|
52
|
-
id: string;
|
|
53
|
-
label: string;
|
|
54
|
-
}>(overrides?: Partial<MultiSelectFilter<T>>): MultiSelectFilter<T>;
|
|
34
|
+
export declare function createMockSingleSelectFilter(overrides?: Partial<SingleSelectFilter>): SingleSelectFilter;
|
|
35
|
+
export declare function createMockMultiSelectFilter(overrides?: Partial<MultiSelectFilter>): MultiSelectFilter;
|
|
55
36
|
export declare function createMockDateFilter(overrides?: Partial<DateFilter>): DateFilter;
|
|
56
37
|
export declare function createMockDateRangeFilter(overrides?: Partial<DateRangeFilter>): DateRangeFilter;
|
|
57
38
|
export declare function createMockDateListFilter(overrides?: Partial<DateListFilter>): DateListFilter;
|
|
39
|
+
export declare function createMockAsyncSelectFilter(overrides?: Partial<AsyncSelectFilter>): AsyncSelectFilter;
|
|
40
|
+
export declare function createMockAsyncMultiSelectFilter(overrides?: Partial<AsyncMultiSelectFilter>): AsyncMultiSelectFilter;
|
|
41
|
+
export declare function createMockTreeFilter(overrides?: Partial<TreeFilter>): TreeFilter;
|
|
42
|
+
export declare function createMockAsyncTreeFilter(overrides?: Partial<AsyncTreeFilter>): AsyncTreeFilter;
|
|
43
|
+
export declare function createMockNumericRangeFilter(overrides?: Partial<NumericRangeFilter>): NumericRangeFilter;
|
|
44
|
+
export declare function createMockTextInputFilter(overrides?: Partial<TextInputFilter>): TextInputFilter;
|
|
58
45
|
export declare const setupDesktopContainer: () => void;
|
|
59
46
|
export declare const setupMobileContainer: () => void;
|
|
47
|
+
export declare const setupSmContainer: () => void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determines if two filter values are different.
|
|
3
|
+
* For arrays (multiSelect), compares by id set (order-insensitive, avoids JSON serialization).
|
|
4
|
+
* For singleSelect, compares by id if both are objects with id.
|
|
5
|
+
* For dateList selections (objects with both id and value), compares id AND value
|
|
6
|
+
* so re-picking the same library option with a different date still counts as a change.
|
|
7
|
+
*
|
|
8
|
+
* Intentionally adapter-free — kept here (rather than in filter-state.ts) so that
|
|
9
|
+
* FilterPopoverButton can import it without pulling the adapter registry into
|
|
10
|
+
* the import graph. filter-state.ts depends on the adapter registry; the registry
|
|
11
|
+
* depends on FilterPopoverButton; FilterPopoverButton would otherwise depend on
|
|
12
|
+
* filter-state — closing a runtime-evaluated cycle.
|
|
13
|
+
*/
|
|
14
|
+
export declare const hasChangedFilter: <T>(a: T, b: T) => boolean;
|
package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts
CHANGED
|
@@ -2,4 +2,4 @@ import { MultiSelectFieldComboboxInternalProps } from './types';
|
|
|
2
2
|
/**
|
|
3
3
|
* Combobox mode: searchable multi-select using useCombobox.
|
|
4
4
|
*/
|
|
5
|
-
export declare const MultiSelectFieldComboboxMode: ({ labelAiMark, id, helperUid, selectedOptions, onSelectedOptionsChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, debounceMs, selectAll, selectFiltered, singleRow, maxChips, getChipProps, onSearchChange, addItemLabel, onAddNewItem, handleRemoveOption, handleClear, }: MultiSelectFieldComboboxInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export declare const MultiSelectFieldComboboxMode: ({ labelAiMark, id, helperUid, selectedOptions, onSelectedOptionsChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, debounceMs, selectAll, selectFiltered, bulkPending, onBulkActivate, singleRow, maxChips, getChipProps, onSearchChange, addItemLabel, onAddNewItem, handleRemoveOption, handleClear, }: MultiSelectFieldComboboxInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -3,4 +3,4 @@ import { MultiSelectFieldBaseInternalProps } from './types';
|
|
|
3
3
|
* Select mode: non-searchable multi-select using useSelect.
|
|
4
4
|
* Active when disableSearch is true.
|
|
5
5
|
*/
|
|
6
|
-
export declare const MultiSelectFieldSelectMode: ({ labelAiMark, id, helperUid, selectedOptions, onSelectedOptionsChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, selectAll, singleRow, maxChips, getChipProps, addItemLabel, onAddNewItem, handleRemoveOption, handleClear, }: MultiSelectFieldBaseInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export declare const MultiSelectFieldSelectMode: ({ labelAiMark, id, helperUid, selectedOptions, onSelectedOptionsChange, displayAs, isDisabledOrReadOnly, disabled, readOnly, required, placeholder, size, error, hasHelperText, disableClearButton, prefix, suffix, label, hideLabel, hint, moreInfo, moreInfoId, errorMessages, warning, description, className, style, layoutStyles, pinned, groupToString, groupSorter, virtualize, options, loading, loadingMore, hasMore, loadOptions, loadMore, initialLoad, initialLoadPerformed, setInitialLoadPerformed, inputWrapperRef, selectAll, bulkPending, onBulkActivate, singleRow, maxChips, getChipProps, addItemLabel, onAddNewItem, handleRemoveOption, handleClear, }: MultiSelectFieldBaseInternalProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -49,9 +49,12 @@ export type MultiSelectFieldBaseInternalProps = {
|
|
|
49
49
|
inputWrapperRef: RefObject<HTMLDivElement>;
|
|
50
50
|
selectAll?: {
|
|
51
51
|
label: string;
|
|
52
|
-
onClick: () => void;
|
|
53
52
|
checkState: CheckState;
|
|
54
53
|
};
|
|
54
|
+
/** True while a `compute`-driven bulk action's promise is in flight. */
|
|
55
|
+
bulkPending: boolean;
|
|
56
|
+
/** Called when the user activates the select-all or select-filtered row. */
|
|
57
|
+
onBulkActivate: (kind: "selectAll" | "selectFiltered", searchValue: string) => void;
|
|
55
58
|
singleRow?: boolean;
|
|
56
59
|
maxChips?: number;
|
|
57
60
|
getChipProps?: (option: MultiSelectFieldOption) => MultiSelectFieldChipProps;
|
|
@@ -64,7 +67,6 @@ export type MultiSelectFieldComboboxInternalProps = MultiSelectFieldBaseInternal
|
|
|
64
67
|
debounceMs: number;
|
|
65
68
|
selectFiltered?: (searchValue: string) => {
|
|
66
69
|
label?: string;
|
|
67
|
-
onClick: () => void;
|
|
68
70
|
checkState: CheckState;
|
|
69
71
|
};
|
|
70
72
|
onSearchChange?: (searchValue: string) => void;
|
|
@@ -11,18 +11,20 @@ export type UseComboMultipleOptions = {
|
|
|
11
11
|
groupToString?: (groupValue: MultiSelectFieldGroupByValue) => string;
|
|
12
12
|
/** Function to sort group sections */
|
|
13
13
|
groupSorter?: (a: MultiSelectFieldGroupByValue, b: MultiSelectFieldGroupByValue) => number;
|
|
14
|
-
/** Configuration for the "Select All" option (shown when search is empty) */
|
|
14
|
+
/** Configuration for the "Select All" option (shown when search is empty). */
|
|
15
15
|
selectAll?: {
|
|
16
16
|
label: string;
|
|
17
|
-
onClick: () => void;
|
|
18
17
|
checkState: CheckState;
|
|
19
18
|
};
|
|
20
|
-
/** Function that receives the search value and returns config for "Select Filtered" */
|
|
19
|
+
/** Function that receives the search value and returns config for "Select Filtered". */
|
|
21
20
|
selectFiltered?: (searchValue: string) => {
|
|
22
21
|
label?: string;
|
|
23
|
-
onClick: () => void;
|
|
24
22
|
checkState: CheckState;
|
|
25
23
|
};
|
|
24
|
+
/** True while a `compute`-driven bulk action is in flight. Disables option rows. */
|
|
25
|
+
bulkPending: boolean;
|
|
26
|
+
/** Called when the user activates the select-all or select-filtered row. */
|
|
27
|
+
onBulkActivate: (kind: "selectAll" | "selectFiltered", searchValue: string) => void;
|
|
26
28
|
/** The currently selected options (controlled from outside) */
|
|
27
29
|
selectedOptions: MultiSelectFieldOption[];
|
|
28
30
|
onSelectedOptionsChange: (options: MultiSelectFieldOption[]) => void;
|
|
@@ -43,7 +45,7 @@ export type UseComboMultipleOptions = {
|
|
|
43
45
|
* @param options - Configuration options for the hook
|
|
44
46
|
* @returns Downshift combobox props and state
|
|
45
47
|
*/
|
|
46
|
-
export declare const useComboMultiple: ({ options, pinned, groupToString, groupSorter, selectAll, selectFiltered, selectedOptions, onSelectedOptionsChange, onInputValueChange, onIsOpenChange, displayAs, disabled, loading, virtualize, onScrollToHighlight, }: UseComboMultipleOptions) => {
|
|
48
|
+
export declare const useComboMultiple: ({ options, pinned, groupToString, groupSorter, selectAll, selectFiltered, bulkPending, onBulkActivate, selectedOptions, onSelectedOptionsChange, onInputValueChange, onIsOpenChange, displayAs, disabled, loading, virtualize, onScrollToHighlight, }: UseComboMultipleOptions) => {
|
|
47
49
|
inputValue: string;
|
|
48
50
|
wrapperDivRef: import('react').RefObject<HTMLDivElement>;
|
|
49
51
|
getToggleButtonProps: <Options>(options?: import('downshift').UseComboboxGetToggleButtonPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseComboboxGetToggleButtonPropsReturnValue, Options>;
|
|
@@ -8,9 +8,12 @@ export type UseSelectModeMultipleOptions = {
|
|
|
8
8
|
groupSorter?: (a: MultiSelectFieldGroupByValue, b: MultiSelectFieldGroupByValue) => number;
|
|
9
9
|
selectAll?: {
|
|
10
10
|
label: string;
|
|
11
|
-
onClick: () => void;
|
|
12
11
|
checkState: CheckState;
|
|
13
12
|
};
|
|
13
|
+
/** True while a `compute`-driven bulk action is in flight. Disables option rows. */
|
|
14
|
+
bulkPending: boolean;
|
|
15
|
+
/** Called when the user activates the select-all row. */
|
|
16
|
+
onBulkActivate: (kind: "selectAll" | "selectFiltered", searchValue: string) => void;
|
|
14
17
|
selectedOptions: MultiSelectFieldOption[];
|
|
15
18
|
onSelectedOptionsChange: (options: MultiSelectFieldOption[]) => void;
|
|
16
19
|
onIsOpenChange?: (changes: {
|
|
@@ -25,7 +28,7 @@ export type UseSelectModeMultipleOptions = {
|
|
|
25
28
|
* Wraps downshift's useSelect for non-searchable multi-select fields.
|
|
26
29
|
* Keeps menu open after selection and handles bulk actions.
|
|
27
30
|
*/
|
|
28
|
-
export declare const useSelectModeMultiple: ({ options, pinned, groupToString, groupSorter, selectAll, selectedOptions, onSelectedOptionsChange, onIsOpenChange, displayAs, disabled, virtualize, onScrollToHighlight, }: UseSelectModeMultipleOptions) => {
|
|
31
|
+
export declare const useSelectModeMultiple: ({ options, pinned, groupToString, groupSorter, selectAll, bulkPending, onBulkActivate, selectedOptions, onSelectedOptionsChange, onIsOpenChange, displayAs, disabled, virtualize, onScrollToHighlight, }: UseSelectModeMultipleOptions) => {
|
|
29
32
|
wrapperDivRef: import('react').RefObject<HTMLDivElement>;
|
|
30
33
|
getToggleButtonProps: <Options>(options?: import('downshift').UseSelectGetToggleButtonPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetToggleButtonReturnValue, Options>;
|
|
31
34
|
getLabelProps: <Options>(options?: import('downshift').UseSelectGetLabelPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseSelectGetLabelPropsReturnValue, Options>;
|