@servicetitan/anvil2 2.7.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +60 -0
- package/dist/{floating-ui.react-C_s3_nEb.js → AiMark-Cwc9KoyE.js} +767 -5
- package/dist/AiMark-Cwc9KoyE.js.map +1 -0
- package/dist/AiMark.css +260 -0
- package/dist/AiMark.d.ts +2 -0
- package/dist/AiMark.js +2 -0
- package/dist/AiMark.js.map +1 -0
- package/dist/{Alert-C_o2f78C.js → Alert-5qhkSUN3.js} +27 -13
- package/dist/Alert-5qhkSUN3.js.map +1 -0
- package/dist/Alert.css +23 -15
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-CyrTvgP4.js → Announcement-fQmFNysn.js} +2 -2
- package/dist/{Announcement-CyrTvgP4.js.map → Announcement-fQmFNysn.js.map} +1 -1
- package/dist/Announcement.js +1 -1
- package/dist/{Avatar-CCnbKkCm.js → Avatar-BckUfs1N.js} +48 -46
- package/dist/{Avatar-CCnbKkCm.js.map → Avatar-BckUfs1N.js.map} +1 -1
- package/dist/Avatar-ChybzixS.js +35 -0
- package/dist/Avatar-ChybzixS.js.map +1 -0
- package/dist/Avatar.js +2 -2
- package/dist/Breadcrumbs-BXo2FO2n.js +107 -0
- package/dist/Breadcrumbs-BXo2FO2n.js.map +1 -0
- package/dist/Breadcrumbs.js +1 -1
- package/dist/Button-a_D7tUgM.js +4517 -0
- package/dist/Button-a_D7tUgM.js.map +1 -0
- package/dist/Button.js +1 -1
- package/dist/{ButtonToggle-DaYJWso_.js → ButtonToggle-CmY77gUp.js} +2 -2
- package/dist/{ButtonToggle-DaYJWso_.js.map → ButtonToggle-CmY77gUp.js.map} +1 -1
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-SGlTt-bs.js → Calendar-Bd_WELZC.js} +130 -119
- package/dist/Calendar-Bd_WELZC.js.map +1 -0
- package/dist/{Calendar-C1U2npPP.js → Calendar-d2owsYe9.js} +2 -2
- package/dist/{Calendar-C1U2npPP.js.map → Calendar-d2owsYe9.js.map} +1 -1
- package/dist/Calendar.css +51 -51
- package/dist/Calendar.js +2 -2
- package/dist/Card-wz71dEVA.js.map +1 -1
- package/dist/{Checkbox-CtKUNeyu.js → Checkbox-BlFc6ZWy.js} +25 -14
- package/dist/Checkbox-BlFc6ZWy.js.map +1 -0
- package/dist/Checkbox-DbaZrUE2.js +52 -0
- package/dist/Checkbox-DbaZrUE2.js.map +1 -0
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-DjTAR0va.js → Chip-BnofwIUN.js} +43 -13
- package/dist/Chip-BnofwIUN.js.map +1 -0
- package/dist/Chip.css +44 -28
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-By8-34bw.js → Combobox-BOxAzG9v.js} +186 -183
- package/dist/{Combobox-By8-34bw.js.map → Combobox-BOxAzG9v.js.map} +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-BYOS6icI.js → DataTable-DK9xRjnq.js} +762 -651
- package/dist/DataTable-DK9xRjnq.js.map +1 -0
- package/dist/DataTable.css +84 -74
- package/dist/{DateFieldRange-C8Uzrboc.js → DateFieldRange-5Jrz6dLl.js} +20 -6
- package/dist/DateFieldRange-5Jrz6dLl.js.map +1 -0
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-DrhLIjlK.js → DateFieldSingle-DWFr6Ew4.js} +8 -8
- package/dist/{DateFieldSingle-DrhLIjlK.js.map → DateFieldSingle-DWFr6Ew4.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-DbivK4Hm.js → DateFieldYearless-UU22A5-E.js} +22 -6
- package/dist/DateFieldYearless-UU22A5-E.js.map +1 -0
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-BEqJe4Uf.js → DateFieldYearlessRange-BoPLxm6t.js} +3 -3
- package/dist/DateFieldYearlessRange-BoPLxm6t.js.map +1 -0
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-BR32AA32.js → DaysOfTheWeek-4cfTmjzm.js} +4 -4
- package/dist/{DaysOfTheWeek-BR32AA32.js.map → DaysOfTheWeek-4cfTmjzm.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-Dxq_v3Qg.js → Details-CZOIpNP_.js} +8 -8
- package/dist/Details-CZOIpNP_.js.map +1 -0
- package/dist/Details.js +1 -1
- package/dist/{Dialog-CGhwkwvq.js → Dialog-Dn836WQM.js} +73 -73
- package/dist/Dialog-Dn836WQM.js.map +1 -0
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-DQDMzGeT.js → DialogCancelButton-B-jfihJr.js} +2 -2
- package/dist/{DialogCancelButton-DQDMzGeT.js.map → DialogCancelButton-B-jfihJr.js.map} +1 -1
- package/dist/{Drawer-DA4iAgt-.js → Drawer-CdDWt_Ba.js} +86 -86
- package/dist/Drawer-CdDWt_Ba.js.map +1 -0
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-CLN0GBN_.js → EditCard-CZibhEfS.js} +3 -3
- package/dist/{EditCard-CLN0GBN_.js.map → EditCard-CZibhEfS.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/FieldLabel-Dr41PRxH.js +180 -0
- package/dist/FieldLabel-Dr41PRxH.js.map +1 -0
- package/dist/FieldLabel.css +33 -73
- package/dist/FieldLabel.js +1 -1
- package/dist/Grid-DeYIx5k4.js +149 -0
- package/dist/Grid-DeYIx5k4.js.map +1 -0
- package/dist/Grid.js +1 -1
- package/dist/{InputMask-HjaNCb73.js → InputMask-CcXqzqdx.js} +3 -3
- package/dist/{InputMask-HjaNCb73.js.map → InputMask-CcXqzqdx.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{Layout-VfhlilMG.js → Layout-CISAxILX.js} +34 -33
- package/dist/Layout-CISAxILX.js.map +1 -0
- package/dist/Layout.js +1 -1
- package/dist/List--KhCpjZn.js +103 -0
- package/dist/List--KhCpjZn.js.map +1 -0
- package/dist/List.js +1 -1
- package/dist/{ListView-mujFK6mQ.js → ListView-D9cZUVer.js} +6 -6
- package/dist/ListView-D9cZUVer.js.map +1 -0
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-BtAgBDRS.js → Listbox-CgDwzRfz.js} +6 -5
- package/dist/Listbox-CgDwzRfz.js.map +1 -0
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-BXsmCP20.js → Menu-CPbuIsqC.js} +367 -367
- package/dist/Menu-CPbuIsqC.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-DGpGgu8q.js → MultiSelectFieldSync-Ei7DXzvs.js} +31 -18
- package/dist/MultiSelectFieldSync-Ei7DXzvs.js.map +1 -0
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-DiLddJDw.js → MultiSelectMenuSync-B_mXpTEe.js} +29 -9
- package/dist/MultiSelectMenuSync-B_mXpTEe.js.map +1 -0
- package/dist/{NumberField-svhZp1kB.js → NumberField-C5t47Obp.js} +16 -5
- package/dist/NumberField-C5t47Obp.js.map +1 -0
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.css +27 -26
- package/dist/Overflow.js +11 -11
- package/dist/{Page-Be029Dij.js → Page-2hbQxUj6.js} +223 -207
- package/dist/Page-2hbQxUj6.js.map +1 -0
- package/dist/Page.css +78 -76
- package/dist/Page.js +1 -1
- package/dist/{Pagination-BAwqfl_2.js → Pagination-CjGmJ_rU.js} +20 -18
- package/dist/Pagination-CjGmJ_rU.js.map +1 -0
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-D0qSKZ1J.js → Popover-CpU9VAcb.js} +356 -358
- package/dist/Popover-CpU9VAcb.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-JpRDW5vG.js → ProgressBar-FMuK8viJ.js} +2 -2
- package/dist/{ProgressBar-JpRDW5vG.js.map → ProgressBar-FMuK8viJ.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-BQg7exDG.js → Radio-CZZd8phn.js} +25 -14
- package/dist/Radio-CZZd8phn.js.map +1 -0
- package/dist/Radio-DmtVWAmN.js +60 -0
- package/dist/Radio-DmtVWAmN.js.map +1 -0
- package/dist/Radio.js +1 -1
- package/dist/{SegmentedControl-7fDLhgvh.js → SegmentedControl-B9NWUF7s.js} +81 -77
- package/dist/{SegmentedControl-7fDLhgvh.js.map → SegmentedControl-B9NWUF7s.js.map} +1 -1
- package/dist/SegmentedControl.js +1 -1
- package/dist/SelectCard-8OmIDl1m.js +352 -0
- package/dist/SelectCard-8OmIDl1m.js.map +1 -0
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-Dr8HeW3N.js → SelectFieldLabel-C8PrXxDU.js} +5 -4
- package/dist/SelectFieldLabel-C8PrXxDU.js.map +1 -0
- package/dist/{SelectFieldSync-CJ2Ie_v1.js → SelectFieldSync-DGK8F2G9.js} +13 -13
- package/dist/SelectFieldSync-DGK8F2G9.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-CJA_coqD.js → SelectMenuSync-CuZp9mnt.js} +29 -9
- package/dist/SelectMenuSync-CuZp9mnt.js.map +1 -0
- package/dist/{SelectOptions-Bf4xsFek.js → SelectOptions-CmElsiTd.js} +2 -2
- package/dist/{SelectOptions-Bf4xsFek.js.map → SelectOptions-CmElsiTd.js.map} +1 -1
- package/dist/{SelectTrigger-ObsnAKNp.js → SelectTrigger-KF8w6Ynk.js} +8 -6
- package/dist/SelectTrigger-KF8w6Ynk.js.map +1 -0
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-DKfOL2RJ.js → SelectTriggerBase-Bxmv6oXk.js} +4 -4
- package/dist/{SelectTriggerBase-DKfOL2RJ.js.map → SelectTriggerBase-Bxmv6oXk.js.map} +1 -1
- package/dist/{SideNav-KksbSQn7.js → SideNav-CrxYExjh.js} +137 -135
- package/dist/{SideNav-KksbSQn7.js.map → SideNav-CrxYExjh.js.map} +1 -1
- package/dist/SideNav.css +72 -55
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton.css +18 -12
- package/dist/Skeleton.js +24 -11
- package/dist/Skeleton.js.map +1 -1
- package/dist/{Stepper-Dt8_ImvJ.js → Stepper-_27Lmm2K.js} +158 -158
- package/dist/{Stepper-Dt8_ImvJ.js.map → Stepper-_27Lmm2K.js.map} +1 -1
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-DpPHr3G3.js → Switch-DPGz7wC_.js} +14 -2
- package/dist/Switch-DPGz7wC_.js.map +1 -0
- package/dist/Switch.js +1 -1
- package/dist/{Tab-DO7LaUbw.js → Tab-BZpTCG0i.js} +227 -223
- package/dist/Tab-BZpTCG0i.js.map +1 -0
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-BJo4oMI2.js → Text-MVxRo6yx.js} +30 -12
- package/dist/Text-MVxRo6yx.js.map +1 -0
- package/dist/Text.css +37 -20
- package/dist/Text.js +1 -1
- package/dist/{TextField-DeHpgPag.js → TextField-BpSxZa0z.js} +21 -5
- package/dist/TextField-BpSxZa0z.js.map +1 -0
- package/dist/{TextField-BW8sJAls.js → TextField-D93iv_pk.js} +2 -2
- package/dist/{TextField-BW8sJAls.js.map → TextField-D93iv_pk.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-DyqdMTvQ.js → Textarea-1u2fSMTh.js} +21 -5
- package/dist/Textarea-1u2fSMTh.js.map +1 -0
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-Dc0Y1JD-.js → TimeField-B4gLlBQJ.js} +6 -5
- package/dist/{TimeField-Dc0Y1JD-.js.map → TimeField-B4gLlBQJ.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-b0-Ub3yt.js → Toaster-CSJfSOHx.js} +5 -5
- package/dist/Toaster-CSJfSOHx.js.map +1 -0
- package/dist/{Toaster-DikGo_hR.js → Toaster-DbWYnF_t.js} +2 -2
- package/dist/{Toaster-DikGo_hR.js.map → Toaster-DbWYnF_t.js.map} +1 -1
- package/dist/{Toolbar-DAuz4Gs2.js → Toolbar-CWRk523l.js} +150 -149
- package/dist/{Toolbar-DAuz4Gs2.js.map → Toolbar-CWRk523l.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-Bupqao9B.js → Tooltip-C1PBRnJv.js} +225 -228
- package/dist/Tooltip-C1PBRnJv.js.map +1 -0
- package/dist/Tooltip.js +1 -1
- package/dist/{YearlessDateInputWithPicker-DFi08TLG.js → YearlessDateInputWithPicker-BSl5z2zo.js} +2 -3
- package/dist/{YearlessDateInputWithPicker-DFi08TLG.js.map → YearlessDateInputWithPicker-BSl5z2zo.js.map} +1 -1
- package/dist/assets/icons/st/ai_mark_gradient.svg +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +3 -2
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
- package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +3 -2
- package/dist/beta/components/MultiSelectField/internal/types.d.ts +4 -3
- package/dist/beta/components/MultiSelectField/types.d.ts +28 -7
- package/dist/beta/components/MultiSelectMenu/types.d.ts +15 -0
- package/dist/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
- package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +4 -4
- package/dist/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
- package/dist/beta/components/SelectField/types.d.ts +5 -5
- package/dist/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +3 -1
- package/dist/beta/components/SelectMenu/types.d.ts +15 -0
- package/dist/beta/components/Table/DataTable/DataTable.d.ts +2 -15
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +35 -0
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +4 -3
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectAsyncCell.d.ts +7 -0
- package/dist/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +34 -0
- package/dist/beta/components/Table/DataTable/internal/usePageDataCache.d.ts +29 -0
- package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +2 -4
- package/dist/beta/components/Table/DataTable/types.d.ts +48 -1
- package/dist/beta/components/Table/createColumnHelper.d.ts +23 -68
- package/dist/beta/components/Table/types.d.ts +218 -42
- package/dist/beta/components/Toolbar/Toolbar.d.ts +175 -44
- package/dist/beta/components/Toolbar/ToolbarSelect.d.ts +5 -3
- package/dist/beta.js +9 -9
- package/dist/components/AiMark/AiMark.d.ts +87 -0
- package/dist/components/AiMark/index.d.ts +1 -0
- package/dist/components/AiMark/internal/AiMarkIconAnimated.d.ts +30 -0
- package/dist/components/AiMark/internal/AiMarkInteractive.d.ts +10 -0
- package/dist/components/AiMark/stories/aiMarkStoryArgTypes.d.ts +16 -0
- package/dist/components/Alert/Alert.d.ts +12 -0
- package/dist/components/Avatar/Avatar.d.ts +14 -0
- package/dist/components/Button/Button.d.ts +14 -6
- package/dist/components/Button/internal/buttonAiMarkUtils.d.ts +18 -0
- package/dist/components/Button/internal/index.d.ts +1 -0
- package/dist/components/Calendar/Calendar.d.ts +84 -26
- package/dist/components/Card/Card.d.ts +6 -1
- package/dist/components/Checkbox/Checkbox.d.ts +2 -0
- package/dist/components/Checkbox/CheckboxGroup.d.ts +27 -6
- package/dist/components/Chip/Chip.d.ts +10 -1
- package/dist/components/Chip/internal/Chip.d.ts +4 -0
- package/dist/components/Combobox/Combobox.d.ts +172 -1
- package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +1 -1
- package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -1
- package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/DateFieldYearless.d.ts +8 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +1 -1
- package/dist/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +7 -0
- package/dist/components/Dialog/Dialog.d.ts +96 -28
- package/dist/components/DrillDown/DrillDown.d.ts +7 -1
- package/dist/components/FieldLabel/FieldLabel.d.ts +2 -1
- package/dist/components/FieldLabel/internal/FieldLabelButton.d.ts +3 -2
- package/dist/components/Layout/Layout.d.ts +52 -44
- package/dist/components/ListView/ListView.d.ts +5 -5
- package/dist/components/Listbox/Listbox.d.ts +5 -23
- package/dist/components/Menu/Menu.d.ts +1 -4
- package/dist/components/NumberField/NumberField.d.ts +29 -2
- package/dist/components/Radio/Radio.d.ts +2 -0
- package/dist/components/Radio/RadioGroup.d.ts +27 -6
- package/dist/components/SelectCard/SelectCard.d.ts +1 -1
- package/dist/components/SelectCard/SelectCardGroup.d.ts +18 -1
- package/dist/components/SelectCard/internal/SelectCardContext.d.ts +11 -0
- package/dist/components/SelectCard/internal/SelectCardProvider.d.ts +11 -1
- package/dist/components/Skeleton/SkeletonCircle.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonPill.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonRectangle.d.ts +8 -0
- package/dist/components/Skeleton/SkeletonText.d.ts +6 -1
- package/dist/components/Skeleton/index.d.ts +3 -0
- package/dist/components/Switch/Switch.d.ts +11 -1
- package/dist/components/Text/types.d.ts +9 -0
- package/dist/components/TextField/internal/TextField.d.ts +11 -0
- package/dist/components/Textarea/Textarea.d.ts +9 -2
- package/dist/components/Toast/internal/Toast.d.ts +5 -0
- package/dist/components/Toast/toast.d.ts +1 -1
- package/dist/components/Toolbar/Toolbar.d.ts +8 -4
- package/dist/components/Toolbar/ToolbarSelect.d.ts +5 -3
- package/dist/components/index.d.ts +1 -0
- package/dist/{floating-ui.react-dom-imrk9N49.js → floating-ui.react-dom-CHrYz13o.js} +17 -2
- package/dist/floating-ui.react-dom-CHrYz13o.js.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/usePrefersReducedMotion/index.d.ts +1 -0
- package/dist/hooks/usePrefersReducedMotion/usePrefersReducedMotion.d.ts +15 -0
- package/dist/index.js +135 -133
- package/dist/index.js.map +1 -1
- package/dist/internal/components/InlineMarkdown/InlineMarkdown.d.ts +23 -0
- package/dist/internal/components/InlineMarkdown/index.d.ts +1 -0
- package/dist/internal/components/Label/Label.d.ts +1 -1
- package/dist/internal/components/Popover/Popover.d.ts +3 -1
- package/dist/internal/components/index.d.ts +2 -1
- package/dist/internal/functions/index.d.ts +2 -0
- package/dist/internal/functions/inlineMarkdown.d.ts +20 -0
- package/dist/internal/functions/stripInlineMarkdown.d.ts +8 -0
- package/dist/internal/types/props.d.ts +2 -1
- package/dist/internal/types/selectFieldInternalTypes.d.ts +2 -2
- package/dist/internal/utils/index.d.ts +1 -0
- package/dist/internal/utils/inlineMarkdownRegex.d.ts +5 -0
- package/dist/{proxy-BbFHSE6L.js → proxy-DEehATlA.js} +8 -2
- package/dist/{proxy-BbFHSE6L.js.map → proxy-DEehATlA.js.map} +1 -1
- package/dist/stripInlineMarkdown-DyqLAQnf.js +25 -0
- package/dist/stripInlineMarkdown-DyqLAQnf.js.map +1 -0
- package/dist/{syncFilterUtils-vt8ldsES.js → syncFilterUtils-CsbCnI1-.js} +194 -194
- package/dist/{syncFilterUtils-vt8ldsES.js.map → syncFilterUtils-CsbCnI1-.js.map} +1 -1
- package/dist/types/ai-marks.d.ts +72 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/{use-reduced-motion-DSpxmqyT.js → use-reduced-motion-CqjZZ5QB.js} +2 -2
- package/dist/{use-reduced-motion-DSpxmqyT.js.map → use-reduced-motion-CqjZZ5QB.js.map} +1 -1
- package/dist/{useDrilldown-wwXRpNgb.js → useDrilldown-C7eMBl68.js} +43 -41
- package/dist/{useDrilldown-wwXRpNgb.js.map → useDrilldown-C7eMBl68.js.map} +1 -1
- package/dist/{useInitialFocus-CdoVwSbr.js → useInitialFocus-DbaB-x5T.js} +2 -3
- package/dist/{useInitialFocus-CdoVwSbr.js.map → useInitialFocus-DbaB-x5T.js.map} +1 -1
- package/dist/{useMenuInteraction-zR_78KQC.js → useMenuInteraction-BwZ2ORo9.js} +8 -3
- package/dist/useMenuInteraction-BwZ2ORo9.js.map +1 -0
- package/dist/{index.esm-BZV0wNKZ.js → usePopoverTransitionStates-B1opfxxn.js} +88 -2
- package/dist/usePopoverTransitionStates-B1opfxxn.js.map +1 -0
- package/dist/usePrefersReducedMotion-DR9B_D6w.js +37 -0
- package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +1 -0
- package/dist/usePrefersReducedMotion.d.ts +2 -0
- package/dist/usePrefersReducedMotion.js +2 -0
- package/dist/usePrefersReducedMotion.js.map +1 -0
- package/dist/{useToggleSelection-BdXW3Zg3.js → useToggleSelection-BM8asdFj.js} +2 -2
- package/dist/{useToggleSelection-BdXW3Zg3.js.map → useToggleSelection-BM8asdFj.js.map} +1 -1
- package/package.json +4 -2
- package/dist/Alert-C_o2f78C.js.map +0 -1
- package/dist/Avatar--CnTAnfD.js +0 -35
- package/dist/Avatar--CnTAnfD.js.map +0 -1
- package/dist/Breadcrumbs-3Y7jnj-F.js +0 -105
- package/dist/Breadcrumbs-3Y7jnj-F.js.map +0 -1
- package/dist/Button-CVsGhVJz.js +0 -113
- package/dist/Button-CVsGhVJz.js.map +0 -1
- package/dist/Calendar-SGlTt-bs.js.map +0 -1
- package/dist/Checkbox-CjEKa5Iv.js +0 -50
- package/dist/Checkbox-CjEKa5Iv.js.map +0 -1
- package/dist/Checkbox-CtKUNeyu.js.map +0 -1
- package/dist/Chip-DjTAR0va.js.map +0 -1
- package/dist/DataTable-BYOS6icI.js.map +0 -1
- package/dist/DateFieldRange-C8Uzrboc.js.map +0 -1
- package/dist/DateFieldYearless-DbivK4Hm.js.map +0 -1
- package/dist/DateFieldYearlessRange-BEqJe4Uf.js.map +0 -1
- package/dist/Details-Dxq_v3Qg.js.map +0 -1
- package/dist/Dialog-CGhwkwvq.js.map +0 -1
- package/dist/Drawer-DA4iAgt-.js.map +0 -1
- package/dist/FieldLabel-DbMosKtd.js +0 -125
- package/dist/FieldLabel-DbMosKtd.js.map +0 -1
- package/dist/Grid-ONcUpb__.js +0 -147
- package/dist/Grid-ONcUpb__.js.map +0 -1
- package/dist/Layout-VfhlilMG.js.map +0 -1
- package/dist/List-CJZjElAQ.js +0 -101
- package/dist/List-CJZjElAQ.js.map +0 -1
- package/dist/ListView-mujFK6mQ.js.map +0 -1
- package/dist/Listbox-BtAgBDRS.js.map +0 -1
- package/dist/Menu-BXsmCP20.js.map +0 -1
- package/dist/MultiSelectFieldSync-DGpGgu8q.js.map +0 -1
- package/dist/MultiSelectMenuSync-DiLddJDw.js.map +0 -1
- package/dist/NumberField-svhZp1kB.js.map +0 -1
- package/dist/Page-Be029Dij.js.map +0 -1
- package/dist/Pagination-BAwqfl_2.js.map +0 -1
- package/dist/Popover-D0qSKZ1J.js.map +0 -1
- package/dist/Popover-DxZF6lbJ.js +0 -535
- package/dist/Popover-DxZF6lbJ.js.map +0 -1
- package/dist/Popover2.css +0 -68
- package/dist/Radio-BOq9UkpC.js +0 -60
- package/dist/Radio-BOq9UkpC.js.map +0 -1
- package/dist/Radio-BQg7exDG.js.map +0 -1
- package/dist/SelectCard-cu4MBuh8.js +0 -320
- package/dist/SelectCard-cu4MBuh8.js.map +0 -1
- package/dist/SelectFieldLabel-Dr8HeW3N.js.map +0 -1
- package/dist/SelectFieldSync-CJ2Ie_v1.js.map +0 -1
- package/dist/SelectMenuSync-CJA_coqD.js.map +0 -1
- package/dist/SelectTrigger-ObsnAKNp.js.map +0 -1
- package/dist/Switch-DpPHr3G3.js.map +0 -1
- package/dist/Tab-DO7LaUbw.js.map +0 -1
- package/dist/Text-BJo4oMI2.js.map +0 -1
- package/dist/TextField-DeHpgPag.js.map +0 -1
- package/dist/Textarea-DyqdMTvQ.js.map +0 -1
- package/dist/Toaster-b0-Ub3yt.js.map +0 -1
- package/dist/Tooltip-Bupqao9B.js.map +0 -1
- package/dist/floating-ui.react-C_s3_nEb.js.map +0 -1
- package/dist/floating-ui.react-dom-imrk9N49.js.map +0 -1
- package/dist/index.esm-BZV0wNKZ.js.map +0 -1
- package/dist/safePopover-BDso-xSH.js +0 -17
- package/dist/safePopover-BDso-xSH.js.map +0 -1
- package/dist/useMenuInteraction-zR_78KQC.js.map +0 -1
- package/dist/useOpenCloseTransitionStates-CiTYrLGi.js +0 -68
- package/dist/useOpenCloseTransitionStates-CiTYrLGi.js.map +0 -1
- package/dist/usePopoverTransitionStates-CDIoNUuf.js +0 -24
- package/dist/usePopoverTransitionStates-CDIoNUuf.js.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AriaAttributes, CSSProperties, ReactElement
|
|
2
|
-
import { LayoutUtilProps, Size } from '../../../types';
|
|
1
|
+
import { AriaAttributes, CSSProperties, ReactElement } from 'react';
|
|
2
|
+
import { AiMarkWithTooltipOrPopoverProps, LayoutUtilProps, Size } from '../../../types';
|
|
3
3
|
import { AvatarProps, ChipProps, IconProps } from '../../..';
|
|
4
4
|
/**
|
|
5
5
|
* Configuration options for the SelectField cache.
|
|
@@ -187,10 +187,10 @@ type SelectFieldCommonSelectFieldProps = {
|
|
|
187
187
|
*/
|
|
188
188
|
hint?: ReactElement | string;
|
|
189
189
|
/**
|
|
190
|
-
*
|
|
191
|
-
*
|
|
190
|
+
* AI mark configuration to display next to the label.
|
|
191
|
+
* Can be a boolean to show a simple AI mark, or an object with tooltip/popover configuration.
|
|
192
192
|
*/
|
|
193
|
-
|
|
193
|
+
labelAiMark?: AiMarkWithTooltipOrPopoverProps["aiMark"];
|
|
194
194
|
/**
|
|
195
195
|
* Description text displayed below the input field.
|
|
196
196
|
*/
|
|
@@ -12,6 +12,8 @@ export type UseMenuInteractionConfig = {
|
|
|
12
12
|
id: string;
|
|
13
13
|
triggerRef: RefObject<HTMLButtonElement>;
|
|
14
14
|
label: string;
|
|
15
|
+
onImplicitClose?: () => void;
|
|
16
|
+
onExplicitClose?: () => void;
|
|
15
17
|
};
|
|
16
18
|
export type MenuTriggerProps = {
|
|
17
19
|
ref: RefObject<HTMLButtonElement>;
|
|
@@ -54,7 +56,7 @@ type ItemReturnProps = {
|
|
|
54
56
|
};
|
|
55
57
|
export type GetMenuPropsFn = (opts?: MenuPropsArg) => MenuReturnProps;
|
|
56
58
|
export type GetItemPropsFn = (opts: ItemPropsArg) => ItemReturnProps;
|
|
57
|
-
export declare const useMenuInteraction: ({ items, sectionsMeta: _sectionsMeta, onItemActivate, selectedItemIds, displayAs: _displayAs, closeOnActivate, disabled, id, triggerRef, label, }: UseMenuInteractionConfig) => {
|
|
59
|
+
export declare const useMenuInteraction: ({ items, sectionsMeta: _sectionsMeta, onItemActivate, selectedItemIds, displayAs: _displayAs, closeOnActivate, disabled, id, triggerRef, label, onImplicitClose, onExplicitClose, }: UseMenuInteractionConfig) => {
|
|
58
60
|
isOpen: boolean;
|
|
59
61
|
openMenu: () => void;
|
|
60
62
|
closeMenu: (options?: {
|
|
@@ -52,6 +52,21 @@ type SelectMenuCommonProps = {
|
|
|
52
52
|
* Render function that receives trigger props and returns the element that opens the menu.
|
|
53
53
|
*/
|
|
54
54
|
trigger: (props: SelectMenuTriggerProps) => ReactElement;
|
|
55
|
+
/**
|
|
56
|
+
* Called when a key is pressed inside the menu (search field or listbox), before the
|
|
57
|
+
* menu's own key handling. Use `e.preventDefault()` to suppress the default behavior.
|
|
58
|
+
*/
|
|
59
|
+
onMenuKeyDown?: (e: KeyboardEvent) => void;
|
|
60
|
+
/**
|
|
61
|
+
* Called when the menu closes implicitly — due to Tab navigation, clicking outside,
|
|
62
|
+
* or other ambient focus loss. Focus is not restored to the trigger in these cases.
|
|
63
|
+
*/
|
|
64
|
+
onImplicitClose?: () => void;
|
|
65
|
+
/**
|
|
66
|
+
* Called when the menu closes explicitly — the user intentionally dismissed it
|
|
67
|
+
* via Escape, selecting an option, or toggling the trigger. Focus is restored to the trigger.
|
|
68
|
+
*/
|
|
69
|
+
onExplicitClose?: () => void;
|
|
55
70
|
/**
|
|
56
71
|
* Accessible label for the menu. Used by screen readers but not rendered visually.
|
|
57
72
|
*/
|
|
@@ -1,21 +1,8 @@
|
|
|
1
1
|
import { ComponentPropsWithoutRef, Ref, ReactNode } from 'react';
|
|
2
2
|
import { LayoutUtilProps } from '../../../../types';
|
|
3
3
|
import { ColumnDef, CustomTableFooterCellProps, TableRow } from '../types';
|
|
4
|
-
import { DataTableEmptyState, DataTablePaginationConfig, DataTableRef } from './types';
|
|
5
|
-
export type { DataTableRef, DataTableEmptyState };
|
|
6
|
-
/**
|
|
7
|
-
* Represents a sorted column configuration for DataTable
|
|
8
|
-
*/
|
|
9
|
-
export type SortedColumn = {
|
|
10
|
-
/**
|
|
11
|
-
* The column identifier
|
|
12
|
-
*/
|
|
13
|
-
id: string;
|
|
14
|
-
/**
|
|
15
|
-
* Whether the column is sorted in descending order
|
|
16
|
-
*/
|
|
17
|
-
desc: boolean;
|
|
18
|
-
};
|
|
4
|
+
import { DataTableCacheOptions, DataTableEmptyState, DataTablePaginationConfig, DataTableRef, SortedColumn } from './types';
|
|
5
|
+
export type { DataTableCacheOptions, DataTableRef, DataTableEmptyState, SortedColumn, };
|
|
19
6
|
/**
|
|
20
7
|
* Props for the DataTable component
|
|
21
8
|
* @extends LayoutUtilProps
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { EditableCellImperativeHandle, BaseEditableCellProps } from './types';
|
|
2
|
+
export type DataTableEditableMultiselectAsyncCellProps<T> = BaseEditableCellProps<T>;
|
|
3
|
+
/**
|
|
4
|
+
* Renders an async editable multiselect cell in a DataTable. This component provides a
|
|
5
|
+
* MultiSelectMenu popover that loads options asynchronously via a `loadOptions` function.
|
|
6
|
+
* The loader receives a `context` object containing the current row data, enabling per-row
|
|
7
|
+
* option loading.
|
|
8
|
+
*
|
|
9
|
+
* Features:
|
|
10
|
+
* - Supports all four MultiSelectMenu lazy variants: eager, page, offset, and group
|
|
11
|
+
* - Passes row context to `loadOptions` for per-row async option loading
|
|
12
|
+
* - Auto-disables caching by default to prevent cross-row cache pollution
|
|
13
|
+
* - Supports full MultiSelectMenu passthrough props (debounceMs, virtualize, selectAll, etc.)
|
|
14
|
+
* - Live selection: `onChange` fires on each toggle
|
|
15
|
+
* - Keyboard navigation consistent with other editable cell types
|
|
16
|
+
*
|
|
17
|
+
* **Value contract**: Unlike `mode: "multiselect"` (which stores ID arrays), the cell value
|
|
18
|
+
* must be `MultiSelectMenuOption[]` — full option objects. The consumer stores them wholesale
|
|
19
|
+
* from the `onChange` callback.
|
|
20
|
+
*
|
|
21
|
+
* @param props - The props for the DataTableEditableMultiselectAsyncCell component
|
|
22
|
+
* @param props.cell - The TanStack table cell instance
|
|
23
|
+
* @param props.cellProps - Props for styling and event handling of the cell container
|
|
24
|
+
* @param props.cellPosition - The position of the cell in the table
|
|
25
|
+
* @param props.children - The content to display when not editing
|
|
26
|
+
* @param props.isHovered - Whether the cell is currently hovered
|
|
27
|
+
* @param ref - Ref to the imperative handle for programmatic control
|
|
28
|
+
* @returns The rendered async editable multiselect cell component
|
|
29
|
+
*/
|
|
30
|
+
export declare function DataTableEditableMultiselectAsyncCellInner<T>(props: DataTableEditableMultiselectAsyncCellProps<T>, ref: React.Ref<EditableCellImperativeHandle>): import("react/jsx-runtime").JSX.Element;
|
|
31
|
+
export declare const DataTableEditableMultiselectAsyncCell: (<T>(props: DataTableEditableMultiselectAsyncCellProps<T> & {
|
|
32
|
+
ref?: React.Ref<EditableCellImperativeHandle>;
|
|
33
|
+
}) => React.ReactElement) & {
|
|
34
|
+
displayName: string;
|
|
35
|
+
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { EditableCellImperativeHandle, BaseEditableCellProps } from './types';
|
|
2
2
|
export type DataTableEditableMultiselectCellProps<T> = BaseEditableCellProps<T>;
|
|
3
3
|
/**
|
|
4
|
-
* Renders an editable multiselect cell in a DataTable. This component provides a
|
|
5
|
-
*
|
|
6
|
-
* from a list of options. Supports keyboard navigation
|
|
4
|
+
* Renders an editable multiselect cell in a DataTable. This component provides a
|
|
5
|
+
* MultiSelectMenu popover with search that appears when the cell is activated, allowing
|
|
6
|
+
* users to select multiple values from a list of options. Supports keyboard navigation
|
|
7
|
+
* and live selection.
|
|
7
8
|
*
|
|
8
9
|
* @param props - The props for the DataTableEditableMultiselectCell component
|
|
9
10
|
* @param props.cell - The TanStack table cell instance
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { EditableCellImperativeHandle, BaseEditableCellProps } from './types';
|
|
2
|
+
export type DataTableEditableSelectAsyncCellProps<T> = BaseEditableCellProps<T>;
|
|
3
|
+
export declare const DataTableEditableSelectAsyncCell: (<T>(props: DataTableEditableSelectAsyncCellProps<T> & {
|
|
4
|
+
ref?: React.Ref<EditableCellImperativeHandle>;
|
|
5
|
+
}) => React.ReactElement) & {
|
|
6
|
+
displayName: string;
|
|
7
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { CellPosition } from '../../../internal/types';
|
|
2
|
+
import { EditableCellImperativeHandle, EditableCellCellProps } from './types';
|
|
3
|
+
type UseEditableMenuCellOptions = {
|
|
4
|
+
cellPosition: CellPosition;
|
|
5
|
+
onCellKeyDown: EditableCellCellProps["onKeyDown"];
|
|
6
|
+
ref: React.Ref<EditableCellImperativeHandle>;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Shared hook for select/multiselect editable DataTable cells that use a menu-based
|
|
10
|
+
* editing UX (SelectMenu, MultiSelectMenu, and their async variants).
|
|
11
|
+
*
|
|
12
|
+
* Encapsulates the common state, refs, imperative handle, keyboard/focus/mouse handlers,
|
|
13
|
+
* and focus context value that are identical across all four menu-based cell components.
|
|
14
|
+
*
|
|
15
|
+
* @param options.cellPosition - The position of the cell in the table grid
|
|
16
|
+
* @param options.onCellKeyDown - The cell's keyDown handler from cellProps, forwarded when the menu is closed
|
|
17
|
+
* @param options.ref - Ref for the imperative handle (invoke/focus)
|
|
18
|
+
* @returns Shared state, refs, event handlers, and cellFocusContextValue
|
|
19
|
+
*/
|
|
20
|
+
export declare function useEditableMenuCell({ cellPosition, onCellKeyDown, ref, }: UseEditableMenuCellOptions): {
|
|
21
|
+
tabIndex: number;
|
|
22
|
+
cellRef: import('react').RefObject<HTMLTableCellElement>;
|
|
23
|
+
triggerClickRef: import('react').MutableRefObject<(() => void) | null>;
|
|
24
|
+
handleCellKeyDown: (event: React.KeyboardEvent<HTMLElement>, menuKeyDown: ((event: React.KeyboardEvent<HTMLButtonElement>) => void) | undefined, isOpen: boolean) => void;
|
|
25
|
+
handleMenuKeyDown: (e: React.KeyboardEvent) => void;
|
|
26
|
+
handleImplicitClose: () => void;
|
|
27
|
+
handleCellMouseDown: (triggerOnClick: () => void) => () => void;
|
|
28
|
+
handleCellBlur: (e: React.FocusEvent<HTMLElement>) => void;
|
|
29
|
+
handleCellFocus: (event: React.FocusEvent<HTMLTableCellElement>) => void;
|
|
30
|
+
cellFocusContextValue: {
|
|
31
|
+
isCellFocused: boolean;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TableRow } from '../../types';
|
|
2
|
+
import { DataTableCacheOptions, SortedColumn } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Hook for caching resolved page data in DataTable.
|
|
5
|
+
*
|
|
6
|
+
* Features:
|
|
7
|
+
* - Caches resolved page data per page index using a Map stored in a ref
|
|
8
|
+
* - Returns cached data synchronously on cache hit, avoiding unnecessary API calls
|
|
9
|
+
* - Synchronously clears cache during render when invalidation triggers change
|
|
10
|
+
* - Size-based eviction (FIFO) when cache exceeds maxSize: oldest entry is dropped to make room
|
|
11
|
+
*
|
|
12
|
+
* @param config - Configuration including loadPageData function, cache options, and invalidation triggers
|
|
13
|
+
* @returns Object containing getOrLoad function and clearCache function
|
|
14
|
+
*/
|
|
15
|
+
export declare function usePageDataCache<T>(config: {
|
|
16
|
+
loadPageData?: (params: {
|
|
17
|
+
pageIndex: number;
|
|
18
|
+
pageSize: number;
|
|
19
|
+
sorting?: SortedColumn;
|
|
20
|
+
}) => TableRow<T>[] | Promise<TableRow<T>[]>;
|
|
21
|
+
cache?: DataTableCacheOptions;
|
|
22
|
+
refreshKey?: string | number;
|
|
23
|
+
refreshCounter: number;
|
|
24
|
+
rowsPerPage: number;
|
|
25
|
+
sorting?: SortedColumn;
|
|
26
|
+
}): {
|
|
27
|
+
getOrLoad: (pageIndex: number, pageSize: number, sorting?: SortedColumn) => TableRow<T>[] | Promise<TableRow<T>[]>;
|
|
28
|
+
clearCache: () => void;
|
|
29
|
+
};
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import { ColumnDef as TanstackColumnDef } from '@tanstack/react-table';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { ColumnDef } from '../../../types';
|
|
3
|
+
import { ColumnDef, EditMode } from '../../../types';
|
|
4
4
|
declare module "@tanstack/react-table" {
|
|
5
5
|
interface ColumnMeta<TData, TValue> {
|
|
6
|
-
editMode?:
|
|
6
|
+
editMode?: EditMode;
|
|
7
7
|
editConfig?: ColumnDef<TData>["editConfig"];
|
|
8
|
-
onChange?: ColumnDef<TData>["onChange"];
|
|
9
|
-
options?: ColumnDef<TData>["options"];
|
|
10
8
|
/**
|
|
11
9
|
* The original column definition, stored for type narrowing and runtime access
|
|
12
10
|
*/
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { TableRow } from '../types';
|
|
3
3
|
import { Svg } from '../../../../types';
|
|
4
|
+
/**
|
|
5
|
+
* Represents a sorted column configuration for DataTable
|
|
6
|
+
*/
|
|
7
|
+
export type SortedColumn = {
|
|
8
|
+
/**
|
|
9
|
+
* The column identifier
|
|
10
|
+
*/
|
|
11
|
+
id: string;
|
|
12
|
+
/**
|
|
13
|
+
* Whether the column is sorted in descending order
|
|
14
|
+
*/
|
|
15
|
+
desc: boolean;
|
|
16
|
+
};
|
|
4
17
|
/**
|
|
5
18
|
* Configuration for the empty state displayed when the DataTable has no data
|
|
6
19
|
*/
|
|
@@ -19,6 +32,26 @@ export type DataTableEmptyState = {
|
|
|
19
32
|
*/
|
|
20
33
|
content?: ReactNode;
|
|
21
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* Configuration for caching loadPageData results in DataTable.
|
|
37
|
+
* When enabled, resolved page data is cached per page index, allowing
|
|
38
|
+
* instant restoration when returning to a previously loaded page.
|
|
39
|
+
* @property {boolean} [enabled] - Whether caching is enabled. Defaults to true.
|
|
40
|
+
* @property {number} [maxSize] - Maximum number of pages to cache. Oldest entry is evicted (FIFO) when the limit is reached. Defaults to 15.
|
|
41
|
+
*/
|
|
42
|
+
export type DataTableCacheOptions = {
|
|
43
|
+
/**
|
|
44
|
+
* Whether caching is enabled.
|
|
45
|
+
* @default true
|
|
46
|
+
*/
|
|
47
|
+
enabled?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Maximum number of pages to cache. When the limit is reached, the oldest cached page is
|
|
50
|
+
* evicted (FIFO) to make room for the new entry.
|
|
51
|
+
* @default 15
|
|
52
|
+
*/
|
|
53
|
+
maxSize?: number;
|
|
54
|
+
};
|
|
22
55
|
/**
|
|
23
56
|
* Configuration for pagination in DataTable
|
|
24
57
|
*/
|
|
@@ -45,10 +78,14 @@ export type DataTablePaginationConfig<T> = {
|
|
|
45
78
|
* Function to get the data for the current page. When used, the data displayed will be
|
|
46
79
|
* fully controlled by the implementor. This is useful for server-side pagination scenarios where
|
|
47
80
|
* the total number of rows may differ from the data array length.
|
|
81
|
+
*
|
|
82
|
+
* The `sorting` parameter is provided when a column is sorted, allowing the server
|
|
83
|
+
* to return data in the correct sort order.
|
|
48
84
|
*/
|
|
49
|
-
loadPageData?: ({ pageIndex, pageSize, }: {
|
|
85
|
+
loadPageData?: ({ pageIndex, pageSize, sorting, }: {
|
|
50
86
|
pageIndex: number;
|
|
51
87
|
pageSize: number;
|
|
88
|
+
sorting?: SortedColumn;
|
|
52
89
|
}) => TableRow<T>[] | Promise<TableRow<T>[]>;
|
|
53
90
|
/**
|
|
54
91
|
* Default page index for uncontrolled mode (0-based)
|
|
@@ -75,10 +112,16 @@ export type DataTablePaginationConfig<T> = {
|
|
|
75
112
|
* When changed, the page index automatically resets to 0.
|
|
76
113
|
*/
|
|
77
114
|
refreshKey?: string | number;
|
|
115
|
+
/**
|
|
116
|
+
* Configuration for caching loadPageData results.
|
|
117
|
+
* Caching is enabled by default. Set `{ enabled: false }` to disable.
|
|
118
|
+
*/
|
|
119
|
+
cache?: DataTableCacheOptions;
|
|
78
120
|
};
|
|
79
121
|
/**
|
|
80
122
|
* Ref handle for DataTable component
|
|
81
123
|
* @property {function} refresh - Triggers a data refetch and resets the page index to 0. Useful for manually refreshing data after external changes (e.g., after a mutation).
|
|
124
|
+
* @property {function} clearCache - Clears the page data cache without triggering a refetch.
|
|
82
125
|
*/
|
|
83
126
|
export type DataTableRef = {
|
|
84
127
|
/**
|
|
@@ -87,4 +130,8 @@ export type DataTableRef = {
|
|
|
87
130
|
* When using controlled pagination, this will call `onPageChange(0)`.
|
|
88
131
|
*/
|
|
89
132
|
refresh: () => void;
|
|
133
|
+
/**
|
|
134
|
+
* Clears the page data cache without triggering a refetch.
|
|
135
|
+
*/
|
|
136
|
+
clearCache: () => void;
|
|
90
137
|
};
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { ColumnDef, ColumnTypeConfig, TextEditConfig, NumberEditConfig, SelectEditConfig, MultiselectEditConfig, BooleanEditConfig, TableRow } from './types';
|
|
2
|
+
import { ColumnDef, ColumnTypeConfig, TextEditConfig, NumberEditConfig, SelectEditConfig, SelectAsyncEditConfig, MultiselectEditConfig, MultiselectAsyncEditConfig, BooleanEditConfig, TableRow } from './types';
|
|
3
|
+
import { MultiSelectMenuOption } from '../MultiSelectMenu';
|
|
3
4
|
/**
|
|
4
|
-
*
|
|
5
|
-
*/
|
|
6
|
-
type ArrayElement<T> = T extends (infer U)[] ? U : never;
|
|
7
|
-
/**
|
|
8
|
-
* Base column configuration without editMode-specific or editConfig-specific properties
|
|
5
|
+
* Base column configuration shared by all column types
|
|
9
6
|
*/
|
|
10
7
|
type BaseColumnConfig<T, K extends keyof T> = {
|
|
11
8
|
/**
|
|
@@ -70,9 +67,6 @@ type BaseColumnConfig<T, K extends keyof T> = {
|
|
|
70
67
|
*/
|
|
71
68
|
type ReadOnlyColumnConfig<T, K extends keyof T> = BaseColumnConfig<T, K> & {
|
|
72
69
|
editConfig?: undefined;
|
|
73
|
-
editMode?: undefined;
|
|
74
|
-
onChange?: never;
|
|
75
|
-
options?: never;
|
|
76
70
|
};
|
|
77
71
|
/**
|
|
78
72
|
* Configuration for text editable columns using editConfig.
|
|
@@ -80,9 +74,6 @@ type ReadOnlyColumnConfig<T, K extends keyof T> = BaseColumnConfig<T, K> & {
|
|
|
80
74
|
*/
|
|
81
75
|
type TextEditConfigColumnConfig<T, K extends keyof T> = NonNullable<T[K]> extends string ? BaseColumnConfig<T, K> & {
|
|
82
76
|
editConfig: TextEditConfig<T, K>;
|
|
83
|
-
editMode?: undefined;
|
|
84
|
-
onChange?: undefined;
|
|
85
|
-
options?: undefined;
|
|
86
77
|
} : never;
|
|
87
78
|
/**
|
|
88
79
|
* Configuration for number editable columns using editConfig.
|
|
@@ -90,18 +81,18 @@ type TextEditConfigColumnConfig<T, K extends keyof T> = NonNullable<T[K]> extend
|
|
|
90
81
|
*/
|
|
91
82
|
type NumberEditConfigColumnConfig<T, K extends keyof T> = NonNullable<T[K]> extends number ? BaseColumnConfig<T, K> & {
|
|
92
83
|
editConfig: NumberEditConfig<T, K>;
|
|
93
|
-
editMode?: undefined;
|
|
94
|
-
onChange?: undefined;
|
|
95
|
-
options?: undefined;
|
|
96
84
|
} : never;
|
|
97
85
|
/**
|
|
98
86
|
* Configuration for select editable columns using editConfig
|
|
99
87
|
*/
|
|
100
88
|
type SelectEditConfigColumnConfig<T, K extends keyof T> = BaseColumnConfig<T, K> & {
|
|
101
89
|
editConfig: SelectEditConfig<T, K>;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Configuration for async select editable columns using editConfig
|
|
93
|
+
*/
|
|
94
|
+
type SelectAsyncEditConfigColumnConfig<T, K extends keyof T> = BaseColumnConfig<T, K> & {
|
|
95
|
+
editConfig: SelectAsyncEditConfig<T>;
|
|
105
96
|
};
|
|
106
97
|
/**
|
|
107
98
|
* Configuration for multiselect editable columns using editConfig
|
|
@@ -109,9 +100,14 @@ type SelectEditConfigColumnConfig<T, K extends keyof T> = BaseColumnConfig<T, K>
|
|
|
109
100
|
*/
|
|
110
101
|
type MultiselectEditConfigColumnConfig<T, K extends keyof T> = NonNullable<T[K]> extends unknown[] ? BaseColumnConfig<T, K> & {
|
|
111
102
|
editConfig: MultiselectEditConfig<T, K>;
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
103
|
+
} : never;
|
|
104
|
+
/**
|
|
105
|
+
* Configuration for async multiselect editable columns using editConfig.
|
|
106
|
+
* Only valid when T[K] is MultiSelectMenuOption[] — full option objects,
|
|
107
|
+
* not a plain primitive array like string[].
|
|
108
|
+
*/
|
|
109
|
+
type MultiselectAsyncEditConfigColumnConfig<T, K extends keyof T> = NonNullable<T[K]> extends MultiSelectMenuOption[] ? BaseColumnConfig<T, K> & {
|
|
110
|
+
editConfig: MultiselectAsyncEditConfig<T>;
|
|
115
111
|
} : never;
|
|
116
112
|
/**
|
|
117
113
|
* Configuration for boolean editable columns using editConfig.
|
|
@@ -119,53 +115,12 @@ type MultiselectEditConfigColumnConfig<T, K extends keyof T> = NonNullable<T[K]>
|
|
|
119
115
|
*/
|
|
120
116
|
type BooleanEditConfigColumnConfig<T, K extends keyof T> = NonNullable<T[K]> extends boolean ? BaseColumnConfig<T, K> & {
|
|
121
117
|
editConfig: BooleanEditConfig<T, K>;
|
|
122
|
-
editMode?: undefined;
|
|
123
|
-
onChange?: undefined;
|
|
124
|
-
options?: undefined;
|
|
125
|
-
} : never;
|
|
126
|
-
/**
|
|
127
|
-
* Configuration for text editable columns (legacy).
|
|
128
|
-
* Valid when T[K] is a string.
|
|
129
|
-
* @deprecated Use editConfig instead: `editConfig: { mode: "text", onChange: ... }`
|
|
130
|
-
*/
|
|
131
|
-
type TextEditableColumnConfig<T, K extends keyof T> = NonNullable<T[K]> extends string ? BaseColumnConfig<T, K> & {
|
|
132
|
-
editConfig?: undefined;
|
|
133
|
-
editMode: "text";
|
|
134
|
-
onChange?: (value: string, rowId: string) => void;
|
|
135
|
-
options?: never;
|
|
136
|
-
} : never;
|
|
137
|
-
/**
|
|
138
|
-
* Configuration for select editable columns (legacy)
|
|
139
|
-
* @deprecated Use editConfig instead: `editConfig: { mode: "select", options: [...], onChange: ... }`
|
|
140
|
-
*/
|
|
141
|
-
type SelectEditableColumnConfig<T, K extends keyof T> = BaseColumnConfig<T, K> & {
|
|
142
|
-
editConfig?: undefined;
|
|
143
|
-
editMode: "select";
|
|
144
|
-
onChange?: (value: T[K], rowId: string) => void;
|
|
145
|
-
options: {
|
|
146
|
-
value: T[K];
|
|
147
|
-
label: string;
|
|
148
|
-
}[];
|
|
149
|
-
};
|
|
150
|
-
/**
|
|
151
|
-
* Configuration for multiselect editable columns (legacy)
|
|
152
|
-
* @deprecated Use editConfig instead: `editConfig: { mode: "multiselect", options: [...], onChange: ... }`
|
|
153
|
-
*/
|
|
154
|
-
type MultiselectEditableColumnConfig<T, K extends keyof T> = NonNullable<T[K]> extends unknown[] ? BaseColumnConfig<T, K> & {
|
|
155
|
-
editConfig?: undefined;
|
|
156
|
-
editMode: "multiselect";
|
|
157
|
-
onChange?: (value: T[K], rowId: string) => void;
|
|
158
|
-
options: {
|
|
159
|
-
value: ArrayElement<NonNullable<T[K]>>;
|
|
160
|
-
label: string;
|
|
161
|
-
}[];
|
|
162
118
|
} : never;
|
|
163
119
|
/**
|
|
164
120
|
* Full column configuration type - union of all possible configurations.
|
|
165
|
-
*
|
|
166
|
-
* TypeScript will enforce that the editMode/editConfig matches the value type constraints.
|
|
121
|
+
* TypeScript will enforce that the editConfig matches the value type constraints.
|
|
167
122
|
*/
|
|
168
|
-
type ColumnConfig<T, K extends keyof T> = ReadOnlyColumnConfig<T, K> | TextEditConfigColumnConfig<T, K> | NumberEditConfigColumnConfig<T, K> | SelectEditConfigColumnConfig<T, K> |
|
|
123
|
+
type ColumnConfig<T, K extends keyof T> = ReadOnlyColumnConfig<T, K> | TextEditConfigColumnConfig<T, K> | NumberEditConfigColumnConfig<T, K> | SelectEditConfigColumnConfig<T, K> | SelectAsyncEditConfigColumnConfig<T, K> | MultiselectEditConfigColumnConfig<T, K> | MultiselectAsyncEditConfigColumnConfig<T, K> | BooleanEditConfigColumnConfig<T, K>;
|
|
169
124
|
/**
|
|
170
125
|
* Factory function to create column helper function for defining Table columns.
|
|
171
126
|
*
|
|
@@ -214,8 +169,8 @@ type ColumnConfig<T, K extends keyof T> = ReadOnlyColumnConfig<T, K> | TextEditC
|
|
|
214
169
|
* headerLabel: "Status",
|
|
215
170
|
* editConfig: {
|
|
216
171
|
* mode: "select",
|
|
217
|
-
* options: [{
|
|
218
|
-
* onChange: (
|
|
172
|
+
* options: [{ id: "active", label: "Active" }],
|
|
173
|
+
* onChange: (option, rowId) => save(option?.id, rowId)
|
|
219
174
|
* }
|
|
220
175
|
* });
|
|
221
176
|
*
|
|
@@ -224,8 +179,8 @@ type ColumnConfig<T, K extends keyof T> = ReadOnlyColumnConfig<T, K> | TextEditC
|
|
|
224
179
|
* headerLabel: "Tags",
|
|
225
180
|
* editConfig: {
|
|
226
181
|
* mode: "multiselect",
|
|
227
|
-
* options: [{
|
|
228
|
-
* onChange: (
|
|
182
|
+
* options: [{ id: "urgent", label: "Urgent" }],
|
|
183
|
+
* onChange: (options, rowId) => save(options.map(o => o.id), rowId)
|
|
229
184
|
* }
|
|
230
185
|
* });
|
|
231
186
|
* ```
|