@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
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { KeyboardEvent, ReactElement, RefObject } from 'react';
|
|
2
|
+
import { ConfirmationProp } from '../../../internal/types/confirmationTypes';
|
|
3
|
+
import { TreeSelectFieldNode as TreeSelectMenuNode, TreeSelectFieldValue as TreeSelectMenuValue, TreeSelectFieldValueConsistsOf as TreeSelectMenuValueConsistsOf, TreeSelectFieldHandle, TreeSelectFieldOptionContent as TreeSelectMenuOptionContent } from '../TreeSelectField/types';
|
|
4
|
+
/**
|
|
5
|
+
* Configures a "Clear" button in the menu footer. Presence of this prop
|
|
6
|
+
* enables the button; omit to suppress.
|
|
7
|
+
*
|
|
8
|
+
* - `onClick` — called when the user clicks Clear.
|
|
9
|
+
* - `label` — button label (default "Clear").
|
|
10
|
+
* - `disabled` — whether the button is inert. Filter adapters typically tie
|
|
11
|
+
* this to `!isActive(filter)` so the button is dim when nothing is selected.
|
|
12
|
+
*/
|
|
13
|
+
export type TreeSelectMenuClearConfig = {
|
|
14
|
+
onClick: () => void;
|
|
15
|
+
label?: string;
|
|
16
|
+
disabled?: boolean;
|
|
17
|
+
};
|
|
18
|
+
export type { TreeSelectMenuNode, TreeSelectMenuValue, TreeSelectMenuValueConsistsOf, TreeSelectMenuOptionContent, };
|
|
19
|
+
/**
|
|
20
|
+
* Imperative handle for the TreeSelectMenu component.
|
|
21
|
+
* @property clearCache - Clears the options cache.
|
|
22
|
+
* @property invalidate - Clears the cache and triggers a fresh options load.
|
|
23
|
+
* @property expandAll - Expands all tree nodes.
|
|
24
|
+
* @property collapseAll - Collapses all tree nodes.
|
|
25
|
+
*/
|
|
26
|
+
export type TreeSelectMenuHandle = TreeSelectFieldHandle;
|
|
27
|
+
/**
|
|
28
|
+
* Props provided to the trigger render function.
|
|
29
|
+
* @property ref - Ref to attach to the trigger element for positioning and focus restoration
|
|
30
|
+
* @property onClick - Click handler to toggle the menu
|
|
31
|
+
* @property onKeyDown - Key handler for keyboard navigation
|
|
32
|
+
* @property aria-haspopup - ARIA attribute indicating the trigger opens a tree
|
|
33
|
+
* @property aria-controls - ARIA attribute linking to the tree element
|
|
34
|
+
* @property aria-expanded - ARIA attribute indicating whether the menu is open
|
|
35
|
+
* @property data-state - Data attribute indicating the open/close state
|
|
36
|
+
*/
|
|
37
|
+
export type TreeSelectMenuTriggerProps = {
|
|
38
|
+
ref: RefObject<HTMLButtonElement>;
|
|
39
|
+
onClick: () => void;
|
|
40
|
+
onKeyDown: (e: KeyboardEvent<HTMLButtonElement>) => void;
|
|
41
|
+
"aria-haspopup": "tree";
|
|
42
|
+
"aria-controls": string;
|
|
43
|
+
"aria-expanded": boolean;
|
|
44
|
+
"data-state": "open" | "close";
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Props for the TreeSelectMenu component.
|
|
48
|
+
* @property id - Optional id for the menu; an internal id is generated when omitted.
|
|
49
|
+
* @property trigger - Render function that receives trigger props and returns the element that opens the menu.
|
|
50
|
+
* @property onMenuKeyDown - Called for key events on the open menu, after internal navigation handling.
|
|
51
|
+
* @property onImplicitClose - Called when the menu closes implicitly (outside click, blur, Escape).
|
|
52
|
+
* @property onExplicitClose - Called when the menu closes from an explicit selection or trigger toggle.
|
|
53
|
+
* @property label - Accessible label for the menu. Used by screen readers but not rendered visually.
|
|
54
|
+
* @property searchPlaceholder - Placeholder text for the search input inside the menu.
|
|
55
|
+
* @property displayMenuAs - "auto" (default): popover on desktop, dialog on mobile; or force "popover"/"dialog".
|
|
56
|
+
* @property virtualize - When true, renders the tree with windowed virtualization for large datasets.
|
|
57
|
+
* @property disableSearch - Hides the search input and disables search filtering.
|
|
58
|
+
* @property popoverWidth - Width of the popover. Accepts a CSS width value or "reference" to match trigger width.
|
|
59
|
+
* @property debounceMs - Milliseconds to debounce search input before calling loadOptions. Defaults to 200.
|
|
60
|
+
* @property onSearchChange - Called when the search value changes. Pair with controlled search wiring.
|
|
61
|
+
* @property value - Controlled value array. Always an array, even in single-select mode.
|
|
62
|
+
* @property onSelectedOptionsChange - Callback when selection changes.
|
|
63
|
+
* @property selectionMode - "single": one node at a time. "independent": no cascade. "linked" (default): parent-child cascade.
|
|
64
|
+
* @property valueConsistsOf - Controls which nodes are selectable and how the value is shaped.
|
|
65
|
+
* @property defaultExpandLevel - Initial expand depth. 0=collapsed, Infinity=all.
|
|
66
|
+
* @property expandedIds - Controlled set of expanded branch node ids. Pair with onExpandedIdsChange.
|
|
67
|
+
* @property onExpandedIdsChange - Called when the expanded set changes (controlled expansion).
|
|
68
|
+
* @property loadOptions - Async function to load tree nodes. Called with parentNode for lazy branch loading.
|
|
69
|
+
* @property cache - LRU cache configuration for loadOptions results ({ enabled, maxSize }).
|
|
70
|
+
* @property initialLoad - When loadOptions first runs: "immediate" on mount, "open" when the menu opens, or "auto".
|
|
71
|
+
* @property confirmation - When set, selections are buffered as a draft inside the open menu and only commit on Apply; dismissing the menu discards the draft. Pass `true` for default Apply/Cancel labels, or an object to customize.
|
|
72
|
+
* @property clear - Configures a "Clear" button in the menu footer. Omit to suppress.
|
|
73
|
+
*/
|
|
74
|
+
export type TreeSelectMenuProps = {
|
|
75
|
+
id?: string;
|
|
76
|
+
trigger: (props: TreeSelectMenuTriggerProps) => ReactElement;
|
|
77
|
+
onMenuKeyDown?: (e: KeyboardEvent) => void;
|
|
78
|
+
onImplicitClose?: () => void;
|
|
79
|
+
onExplicitClose?: () => void;
|
|
80
|
+
label: string;
|
|
81
|
+
searchPlaceholder?: string;
|
|
82
|
+
displayMenuAs?: "auto" | "popover" | "dialog";
|
|
83
|
+
virtualize?: boolean;
|
|
84
|
+
disableSearch?: boolean;
|
|
85
|
+
popoverWidth?: "reference" | number | string;
|
|
86
|
+
debounceMs?: number;
|
|
87
|
+
onSearchChange?: (v: string) => void;
|
|
88
|
+
value: TreeSelectMenuValue[];
|
|
89
|
+
onSelectedOptionsChange: (nodes: TreeSelectMenuValue[]) => void;
|
|
90
|
+
selectionMode?: "single" | "independent" | "linked";
|
|
91
|
+
valueConsistsOf?: TreeSelectMenuValueConsistsOf;
|
|
92
|
+
defaultExpandLevel?: number;
|
|
93
|
+
expandedIds?: Set<string | number>;
|
|
94
|
+
onExpandedIdsChange?: (ids: Set<string | number>) => void;
|
|
95
|
+
loadOptions: (searchValue: string, parentNode?: TreeSelectMenuNode) => TreeSelectMenuNode[] | Promise<TreeSelectMenuNode[]>;
|
|
96
|
+
cache?: {
|
|
97
|
+
enabled?: boolean;
|
|
98
|
+
maxSize?: number;
|
|
99
|
+
};
|
|
100
|
+
initialLoad?: "auto" | "immediate" | "open";
|
|
101
|
+
confirmation?: ConfirmationProp;
|
|
102
|
+
clear?: TreeSelectMenuClearConfig;
|
|
103
|
+
};
|
|
@@ -44,6 +44,7 @@ export declare const Pagination: import('react').ForwardRefExoticComponent<Omit<
|
|
|
44
44
|
startPage: number;
|
|
45
45
|
endPage: number;
|
|
46
46
|
length: number;
|
|
47
|
+
currentPage: number;
|
|
47
48
|
onItemClick: (page: number) => void;
|
|
48
49
|
} & import('react').RefAttributes<HTMLLIElement>>;
|
|
49
50
|
ItemsPerPageMenu: import('react').ForwardRefExoticComponent<import('./PaginationItemsPerPageMenu').PaginationItemsPerPageMenuProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
@@ -16,6 +16,10 @@ export type PaginationOverflowMenuProps = ComponentPropsWithoutRef<"li"> & {
|
|
|
16
16
|
* The number of pages in the overflow range.
|
|
17
17
|
*/
|
|
18
18
|
length: number;
|
|
19
|
+
/**
|
|
20
|
+
* The current active page in the parent pagination.
|
|
21
|
+
*/
|
|
22
|
+
currentPage: number;
|
|
19
23
|
/**
|
|
20
24
|
* Callback function called when a page in the overflow menu is selected.
|
|
21
25
|
* @param page The selected page number
|
|
@@ -27,7 +31,9 @@ export type PaginationOverflowMenuProps = ComponentPropsWithoutRef<"li"> & {
|
|
|
27
31
|
*
|
|
28
32
|
* Features:
|
|
29
33
|
* - Displays ellipsis menu for large page ranges
|
|
30
|
-
* -
|
|
34
|
+
* - Renders the page items as a virtualized window — only the slice visible
|
|
35
|
+
* in the scroller is in the DOM at any time, keeping pagination cheap
|
|
36
|
+
* even when the overflow spans tens of thousands of pages
|
|
31
37
|
* - Integrates with pagination navigation system
|
|
32
38
|
* - Fully accessible with proper ARIA labels
|
|
33
39
|
* - Consistent styling with design system
|
|
@@ -37,6 +43,7 @@ export type PaginationOverflowMenuProps = ComponentPropsWithoutRef<"li"> & {
|
|
|
37
43
|
* startPage={4}
|
|
38
44
|
* endPage={8}
|
|
39
45
|
* length={5}
|
|
46
|
+
* currentPage={4}
|
|
40
47
|
* onItemClick={(page) => console.log('Page selected:', page)}
|
|
41
48
|
* />
|
|
42
49
|
*/
|
|
@@ -53,6 +60,10 @@ export declare const PaginationOverflowMenu: import('react').ForwardRefExoticCom
|
|
|
53
60
|
* The number of pages in the overflow range.
|
|
54
61
|
*/
|
|
55
62
|
length: number;
|
|
63
|
+
/**
|
|
64
|
+
* The current active page in the parent pagination.
|
|
65
|
+
*/
|
|
66
|
+
currentPage: number;
|
|
56
67
|
/**
|
|
57
68
|
* Callback function called when a page in the overflow menu is selected.
|
|
58
69
|
* @param page The selected page number
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export type MenuFooterClearConfig = {
|
|
3
|
+
onClick: () => void;
|
|
4
|
+
label?: string;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export type MenuFooterConfirmationConfig = {
|
|
8
|
+
onApply: () => void;
|
|
9
|
+
onCancel: () => void;
|
|
10
|
+
applyLabel?: string;
|
|
11
|
+
cancelLabel?: string;
|
|
12
|
+
applyDisabled?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export type MenuFooterProps = {
|
|
15
|
+
/** Clear-selection button config. Omit to suppress. */
|
|
16
|
+
clear?: MenuFooterClearConfig;
|
|
17
|
+
/** Apply/Cancel pair config. Omit when not in confirmation mode. */
|
|
18
|
+
confirmation?: MenuFooterConfirmationConfig;
|
|
19
|
+
/**
|
|
20
|
+
* Pre-rendered add-new affordance (AddNewItemButton or similar). Layout owns
|
|
21
|
+
* its row vs. inline placement; the caller just provides the node.
|
|
22
|
+
*/
|
|
23
|
+
addNew?: ReactNode;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* MenuFooter composes the footer of a menu popover/dialog from up to three
|
|
27
|
+
* optional pieces: a clear-selection button, an Apply/Cancel pair, and an
|
|
28
|
+
* add-new affordance.
|
|
29
|
+
*
|
|
30
|
+
* Layout rules:
|
|
31
|
+
* - clear + confirmation + addNew → [addNew full-width row] / [clear | apply cancel]
|
|
32
|
+
* - clear + confirmation → [clear | apply cancel]
|
|
33
|
+
* - clear + addNew → [addNew] / [clear] (stacked, both full-width)
|
|
34
|
+
* - clear → [clear] (full-width)
|
|
35
|
+
* - confirmation + addNew → [addNew | apply cancel] (addNew on the leading side)
|
|
36
|
+
* - confirmation → [apply | cancel]
|
|
37
|
+
* - addNew → [addNew]
|
|
38
|
+
* - (none) → null
|
|
39
|
+
*/
|
|
40
|
+
export declare const MenuFooter: {
|
|
41
|
+
({ clear, confirmation, addNew, }: MenuFooterProps): import("react/jsx-runtime").JSX.Element | null;
|
|
42
|
+
displayName: string;
|
|
43
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { OptionContent } from '../types/optionContent';
|
|
3
|
+
export type OptionContentAreaProps = {
|
|
4
|
+
label: string;
|
|
5
|
+
content?: OptionContent;
|
|
6
|
+
children?: ReactNode;
|
|
7
|
+
};
|
|
8
|
+
export declare function OptionContentArea({ label, content, children, }: OptionContentAreaProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef, ReactNode } from 'react';
|
|
2
|
+
export type OptionRowProps = ComponentPropsWithoutRef<"div"> & {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
};
|
|
5
|
+
export declare const OptionRow: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
} & import('react').RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export declare const OptionRowSideContent: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
} & import('react').RefAttributes<HTMLDivElement>>;
|
|
@@ -5,10 +5,10 @@ export type OptionsPopoverProps = {
|
|
|
5
5
|
referenceElement: RefObject<HTMLElement>;
|
|
6
6
|
open: boolean;
|
|
7
7
|
/**
|
|
8
|
-
* Fired when the popover should close
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
8
|
+
* Fired when the popover should close (click-outside, focus-out, or
|
|
9
|
+
* Escape). On Escape, the popover restores focus to `referenceElement`
|
|
10
|
+
* before invoking this callback; for other paths focus has already moved
|
|
11
|
+
* elsewhere intentionally.
|
|
12
12
|
*/
|
|
13
13
|
onClose: () => void;
|
|
14
14
|
/** Controls the popover width strategy.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Class names that re-establish the Anvil2 styling scope on a container.
|
|
3
|
+
*
|
|
4
|
+
* Native `popover` / top-layer elements (toasts, popovers, tooltips, surfaces)
|
|
5
|
+
* are promoted to the top layer and live high in the DOM, escaping any ancestor
|
|
6
|
+
* `AnvilProvider`'s `.anvil2` scope. Without the scope, descendants resolve none
|
|
7
|
+
* of the `--a2-*` design tokens (defined on `.anvil2.theme-core`) and miss the
|
|
8
|
+
* scoped component rules, so they render unstyled.
|
|
9
|
+
*
|
|
10
|
+
* Spread/append these class names onto such containers so they self-scope and
|
|
11
|
+
* render correctly in any host context (including outside an `AnvilProvider`,
|
|
12
|
+
* e.g. when an Anvil2 component is used from a legacy host).
|
|
13
|
+
*/
|
|
14
|
+
export declare const portalScopeClassNames: string;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
type BulkComputeResult<T> = T[] | Promise<T[]>;
|
|
2
|
+
export type UseBulkActionRunnerOptions<T> = {
|
|
3
|
+
/** Sets the draft (or commits when confirmation is off). */
|
|
4
|
+
setDraft: (next: T[]) => void;
|
|
5
|
+
};
|
|
6
|
+
export type UseBulkActionRunnerResult<T> = {
|
|
7
|
+
/**
|
|
8
|
+
* True while a bulk-action promise is in flight. While true, callers should
|
|
9
|
+
* disable option rows, override the bulk row's checkState to "loading", and
|
|
10
|
+
* disable Apply.
|
|
11
|
+
*/
|
|
12
|
+
pending: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Run a bulk action. If `compute` returns an array synchronously, the draft
|
|
15
|
+
* is updated immediately. If it returns a promise, the runner enters the
|
|
16
|
+
* pending state until resolve/reject. Stale resolutions (those that finish
|
|
17
|
+
* after another draft mutation or another bulk run, or after `reset()`) are
|
|
18
|
+
* silently discarded.
|
|
19
|
+
*/
|
|
20
|
+
runBulk: (compute: (current: T[]) => BulkComputeResult<T>, current: T[]) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Wrap an external draft mutation so that any in-flight bulk promise's
|
|
23
|
+
* eventual resolution is discarded. Use this in place of the raw setDraft
|
|
24
|
+
* whenever the user mutates the draft outside of a bulk action (option
|
|
25
|
+
* click, etc.) so that a slow Select-All-fetching promise can't clobber a
|
|
26
|
+
* subsequent click.
|
|
27
|
+
*/
|
|
28
|
+
setDraftAndBump: (next: T[]) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Discard any in-flight bulk resolution. Call when the menu closes so that
|
|
31
|
+
* a promise resolving after close can't apply to the next menu instance.
|
|
32
|
+
*/
|
|
33
|
+
reset: () => void;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Runs Select-All / Select-Filtered-style "bulk action" computations against
|
|
37
|
+
* the controlled or draft selection, with support for both synchronous and
|
|
38
|
+
* asynchronous results, and stale-result discard via a monotonic generation.
|
|
39
|
+
*/
|
|
40
|
+
export declare function useBulkActionRunner<T>({ setDraft, }: UseBulkActionRunnerOptions<T>): UseBulkActionRunnerResult<T>;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export type UseConfirmationDraftOptions<T> = {
|
|
2
|
+
value: T;
|
|
3
|
+
onCommit: (value: T) => void;
|
|
4
|
+
isOpen: boolean;
|
|
5
|
+
enabled: boolean;
|
|
6
|
+
isEqual?: (a: T, b: T) => boolean;
|
|
7
|
+
};
|
|
8
|
+
export type UseConfirmationDraftResult<T> = {
|
|
9
|
+
displayValue: T;
|
|
10
|
+
setDraft: (next: T) => void;
|
|
11
|
+
apply: () => void;
|
|
12
|
+
cancel: () => void;
|
|
13
|
+
isDirty: boolean;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Holds a draft copy of a controlled value while a menu is open, so that
|
|
17
|
+
* selections can be confirmed (`apply`) or discarded (`cancel`). When
|
|
18
|
+
* `enabled` is false, `setDraft` passes through directly to `onCommit` and
|
|
19
|
+
* `displayValue` always reflects the controlled `value`.
|
|
20
|
+
*/
|
|
21
|
+
export declare function useConfirmationDraft<T>({ value, onCommit, isOpen, enabled, isEqual, }: UseConfirmationDraftOptions<T>): UseConfirmationDraftResult<T>;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { CheckState } from '../../types';
|
|
2
|
+
import { SelectFieldOption } from '../../beta/components/SelectField/types';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for the "Select All" / "Select Filtered" rows in a
|
|
5
|
+
* MultiSelectMenu or MultiSelectField.
|
|
6
|
+
*
|
|
7
|
+
* Choose exactly one of `onClick` or `compute`:
|
|
8
|
+
*
|
|
9
|
+
* - **`onClick`** — the row fires the callback; the consumer commits the next
|
|
10
|
+
* selection themselves via `onSelectedOptionsChange`. Simple and familiar.
|
|
11
|
+
* When `confirmation` is enabled, `onClick` bypasses the menu's draft layer
|
|
12
|
+
* (the menu warns once in development).
|
|
13
|
+
* - **`compute`** — the menu invokes `compute(currentDraft)` and writes the
|
|
14
|
+
* result into the draft (or commits it, when confirmation is off). `compute`
|
|
15
|
+
* may return a `Promise<SelectFieldOption[]>`; while the promise is pending
|
|
16
|
+
* the menu shows a loading state, disables all option rows, and disables
|
|
17
|
+
* Apply.
|
|
18
|
+
*/
|
|
19
|
+
export type BulkActionConfig = {
|
|
20
|
+
label?: string;
|
|
21
|
+
checkState: boolean | CheckState;
|
|
22
|
+
onClick: () => void;
|
|
23
|
+
compute?: never;
|
|
24
|
+
} | {
|
|
25
|
+
label?: string;
|
|
26
|
+
checkState: boolean | CheckState;
|
|
27
|
+
compute: (current: SelectFieldOption[]) => SelectFieldOption[] | Promise<SelectFieldOption[]>;
|
|
28
|
+
onClick?: never;
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Normalized form used internally after `checkState`'s `boolean` shorthand has
|
|
32
|
+
* been resolved to a `CheckState`.
|
|
33
|
+
*/
|
|
34
|
+
export type ResolvedBulkAction = {
|
|
35
|
+
label?: string;
|
|
36
|
+
checkState: CheckState;
|
|
37
|
+
onClick?: () => void;
|
|
38
|
+
compute?: (current: SelectFieldOption[]) => SelectFieldOption[] | Promise<SelectFieldOption[]>;
|
|
39
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Opt-in confirmation mode for Select* and MultiSelect* components.
|
|
3
|
+
*
|
|
4
|
+
* When set, selection changes are held as a draft inside the open menu and
|
|
5
|
+
* only commit to the controlled `value` when the user clicks Apply. Dismissing
|
|
6
|
+
* the menu (Escape, click outside, toggling the trigger) discards the draft.
|
|
7
|
+
*
|
|
8
|
+
* `true` enables the default Apply/Cancel labels. Pass an object to customize.
|
|
9
|
+
*/
|
|
10
|
+
export type ConfirmationProp = boolean | {
|
|
11
|
+
applyLabel?: string;
|
|
12
|
+
cancelLabel?: string;
|
|
13
|
+
};
|
|
14
|
+
export type ResolvedConfirmation = {
|
|
15
|
+
enabled: boolean;
|
|
16
|
+
applyLabel: string;
|
|
17
|
+
cancelLabel: string;
|
|
18
|
+
};
|
|
19
|
+
export declare const resolveConfirmation: (prop: ConfirmationProp | undefined) => ResolvedConfirmation;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { AvatarProps, ChipProps, IconProps } from '../../components';
|
|
2
|
+
/**
|
|
3
|
+
* Shared content shape for option rows in SelectField, MultiSelectField, and TreeSelectField.
|
|
4
|
+
* @property title - Overrides the option label text when provided.
|
|
5
|
+
* @property description - Secondary text displayed below the title in a subdued color.
|
|
6
|
+
* @property chips - Tags displayed below the description.
|
|
7
|
+
* @property avatar - Avatar displayed to the left of the text content.
|
|
8
|
+
* @property icon - Icon displayed to the right of the text content.
|
|
9
|
+
*/
|
|
10
|
+
export type OptionContent = {
|
|
11
|
+
title?: string;
|
|
12
|
+
description?: string;
|
|
13
|
+
chips?: Pick<ChipProps, "label" | "color" | "textWrap">[];
|
|
14
|
+
avatar?: Pick<AvatarProps, "name" | "status" | "color" | "image">;
|
|
15
|
+
icon?: Pick<IconProps, "svg" | "color"> & {
|
|
16
|
+
/** Accessible label for the icon. When omitted, the icon is treated as decorative. */
|
|
17
|
+
label?: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
@@ -2,6 +2,7 @@ import { ReactElement, ReactNode, RefObject } from 'react';
|
|
|
2
2
|
import { AiMarkWithTooltipOrPopoverProps, CheckState } from '../../types';
|
|
3
3
|
import { SelectFieldOption, SelectFieldProps } from '../../beta/components/SelectField/types';
|
|
4
4
|
import { AddNewItemProps } from './addNewItemTypes';
|
|
5
|
+
import { ResolvedConfirmation } from './confirmationTypes';
|
|
5
6
|
/**
|
|
6
7
|
* Metadata about list sections for rendering purposes.
|
|
7
8
|
* Used by SelectOptions, MultiSelectOptions, and their Menu counterparts to render section headers and dividers.
|
|
@@ -63,6 +64,7 @@ export type SelectFieldBaseInternalProps = {
|
|
|
63
64
|
initialLoadPerformed: boolean;
|
|
64
65
|
setInitialLoadPerformed: (val: boolean) => void;
|
|
65
66
|
inputWrapperRef: RefObject<HTMLDivElement>;
|
|
67
|
+
confirmation?: ResolvedConfirmation;
|
|
66
68
|
} & AddNewItemProps;
|
|
67
69
|
export type SelectFieldComboboxInternalProps = SelectFieldBaseInternalProps & {
|
|
68
70
|
debounceMs: number;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shallow set-equality of two value arrays by `id`, order-independent.
|
|
3
|
+
*
|
|
4
|
+
* Used as the `isEqual` comparator for `useConfirmationDraft` so that a draft
|
|
5
|
+
* is considered unchanged when it holds the same set of selected items as the
|
|
6
|
+
* committed value, regardless of order.
|
|
7
|
+
*/
|
|
8
|
+
export declare function arrayIdsEqual<T extends {
|
|
9
|
+
id: string | number;
|
|
10
|
+
}>(a: T[], b: T[]): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { I as INLINE_MARKDOWN_REGEX } from './FieldLabel-
|
|
1
|
+
import { I as INLINE_MARKDOWN_REGEX } from './FieldLabel-VVn8GR64.js';
|
|
2
2
|
|
|
3
3
|
const stripInlineMarkdown = (str) => {
|
|
4
4
|
const parts = [];
|
|
@@ -22,4 +22,4 @@ const stripInlineMarkdown = (str) => {
|
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
export { stripInlineMarkdown as s };
|
|
25
|
-
//# sourceMappingURL=stripInlineMarkdown-
|
|
25
|
+
//# sourceMappingURL=stripInlineMarkdown-C0bVmYgG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stripInlineMarkdown-
|
|
1
|
+
{"version":3,"file":"stripInlineMarkdown-C0bVmYgG.js","sources":["../src/internal/functions/stripInlineMarkdown.ts"],"sourcesContent":["import { INLINE_MARKDOWN_REGEX } from \"../utils/inlineMarkdownRegex\";\n\n/**\n * Strips inline markdown syntax from a string, returning plain text.\n * Intended for accessibility contexts (e.g. `aria-label`) where only plain text is appropriate.\n *\n * @param str - The string to strip\n * @returns The string with all inline markdown syntax removed\n */\nexport const stripInlineMarkdown = (str: string): string => {\n const parts: string[] = [];\n let lastIndex = 0;\n\n INLINE_MARKDOWN_REGEX.lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = INLINE_MARKDOWN_REGEX.exec(str)) !== null) {\n if (match.index > lastIndex) {\n parts.push(str.substring(lastIndex, match.index));\n }\n\n const savedIndex = INLINE_MARKDOWN_REGEX.lastIndex;\n const inner =\n match[1] ?? match[2] ?? match[3] ?? match[4] ?? match[5] ?? \"\";\n\n // code spans don't support nested markdown, matching parseInlineMarkdown behavior\n parts.push(match[5] ? inner : stripInlineMarkdown(inner));\n\n INLINE_MARKDOWN_REGEX.lastIndex = savedIndex;\n lastIndex = savedIndex;\n }\n\n if (lastIndex < str.length) {\n parts.push(str.substring(lastIndex));\n }\n\n return parts.join(\"\");\n};\n"],"names":[],"mappings":";;AASO,MAAM,mBAAA,GAAsB,CAAC,GAAA,KAAwB;AAC1D,EAAA,MAAM,QAAkB,EAAC;AACzB,EAAA,IAAI,SAAA,GAAY,CAAA;AAEhB,EAAA,qBAAA,CAAsB,SAAA,GAAY,CAAA;AAClC,EAAA,IAAI,KAAA;AAEJ,EAAA,OAAA,CAAQ,KAAA,GAAQ,qBAAA,CAAsB,IAAA,CAAK,GAAG,OAAO,IAAA,EAAM;AACzD,IAAA,IAAI,KAAA,CAAM,QAAQ,SAAA,EAAW;AAC3B,MAAA,KAAA,CAAM,KAAK,GAAA,CAAI,SAAA,CAAU,SAAA,EAAW,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,IAClD;AAEA,IAAA,MAAM,aAAa,qBAAA,CAAsB,SAAA;AACzC,IAAA,MAAM,KAAA,GACJ,KAAA,CAAM,CAAC,CAAA,IAAK,MAAM,CAAC,CAAA,IAAK,KAAA,CAAM,CAAC,KAAK,KAAA,CAAM,CAAC,CAAA,IAAK,KAAA,CAAM,CAAC,CAAA,IAAK,EAAA;AAG9D,IAAA,KAAA,CAAM,KAAK,KAAA,CAAM,CAAC,IAAI,KAAA,GAAQ,mBAAA,CAAoB,KAAK,CAAC,CAAA;AAExD,IAAA,qBAAA,CAAsB,SAAA,GAAY,UAAA;AAClC,IAAA,SAAA,GAAY,UAAA;AAAA,EACd;AAEA,EAAA,IAAI,SAAA,GAAY,IAAI,MAAA,EAAQ;AAC1B,IAAA,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,SAAS,CAAC,CAAA;AAAA,EACrC;AAEA,EAAA,OAAO,KAAA,CAAM,KAAK,EAAE,CAAA;AACtB;;;;"}
|