@servicetitan/anvil2 3.16.0 → 3.17.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.
Files changed (296) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/dist/{AiMark-BfmK30vL.js → AiMark-CYXbKuCA.js} +2 -2
  3. package/dist/{AiMark-BfmK30vL.js.map → AiMark-CYXbKuCA.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-lLo1N7Tj.js → Alert-CYpl0czJ.js} +3 -3
  6. package/dist/{Alert-lLo1N7Tj.js.map → Alert-CYpl0czJ.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-PfnsVVz1.js → Announcement-AN9HnhZ-.js} +2 -2
  9. package/dist/{Announcement-PfnsVVz1.js.map → Announcement-AN9HnhZ-.js.map} +1 -1
  10. package/dist/Announcement.js +1 -1
  11. package/dist/{Breadcrumbs-RdL4Fvmu.js → Breadcrumbs-C0CXs9Ma.js} +2 -2
  12. package/dist/{Breadcrumbs-RdL4Fvmu.js.map → Breadcrumbs-C0CXs9Ma.js.map} +1 -1
  13. package/dist/Breadcrumbs.js +1 -1
  14. package/dist/{Button-Dn6-01xl.js → Button-B_E6ybA-.js} +3 -3
  15. package/dist/{Button-Dn6-01xl.js.map → Button-B_E6ybA-.js.map} +1 -1
  16. package/dist/Button.js +1 -1
  17. package/dist/{ButtonToggle-BSU8GBxr.js → ButtonToggle-D0eXySEM.js} +2 -2
  18. package/dist/{ButtonToggle-BSU8GBxr.js.map → ButtonToggle-D0eXySEM.js.map} +1 -1
  19. package/dist/ButtonToggle.js +1 -1
  20. package/dist/{luxon-wpz4A-OQ.js → Calendar-BAIyDHX9.js} +1761 -3
  21. package/dist/Calendar-BAIyDHX9.js.map +1 -0
  22. package/dist/{Calendar-DoLRAWLp.js → Calendar-C_NPqjx3.js} +2 -2
  23. package/dist/{Calendar-DoLRAWLp.js.map → Calendar-C_NPqjx3.js.map} +1 -1
  24. package/dist/Calendar.js +2 -2
  25. package/dist/{Checkbox-U-kuWhgc.js → Checkbox-4Ow8rCbD.js} +2 -2
  26. package/dist/{Checkbox-U-kuWhgc.js.map → Checkbox-4Ow8rCbD.js.map} +1 -1
  27. package/dist/{Checkbox-CVxbe-iN.js → Checkbox-f1vutjn0.js} +3 -3
  28. package/dist/{Checkbox-CVxbe-iN.js.map → Checkbox-f1vutjn0.js.map} +1 -1
  29. package/dist/Checkbox.js +1 -1
  30. package/dist/{Chip-2OydLs66.js → Chip-AIF0WiNS.js} +2 -2
  31. package/dist/{Chip-2OydLs66.js.map → Chip-AIF0WiNS.js.map} +1 -1
  32. package/dist/Chip.js +1 -1
  33. package/dist/Combobox.js +1 -1
  34. package/dist/{DataTable-DIXP9-Bx.js → DataTableEditColumnsDrawer-DRgJgso9.js} +1288 -263
  35. package/dist/DataTableEditColumnsDrawer-DRgJgso9.js.map +1 -0
  36. package/dist/{DataTable.css → DataTableEditColumnsDrawer.css} +41 -0
  37. package/dist/{DateFieldRange-X2jdOTYY.js → DateFieldRange-D9PA985Z.js} +6 -7
  38. package/dist/{DateFieldRange-X2jdOTYY.js.map → DateFieldRange-D9PA985Z.js.map} +1 -1
  39. package/dist/DateFieldRange.js +1 -1
  40. package/dist/{DateFieldSingle-BJ16tpOz.js → DateFieldSingle-CMLojOb3.js} +6 -7
  41. package/dist/{DateFieldSingle-BJ16tpOz.js.map → DateFieldSingle-CMLojOb3.js.map} +1 -1
  42. package/dist/DateFieldSingle.js +1 -1
  43. package/dist/{DateFieldYearless-CMm8vtz_.js → DateFieldYearless-B5IyR75v.js} +4 -4
  44. package/dist/{DateFieldYearless-CMm8vtz_.js.map → DateFieldYearless-B5IyR75v.js.map} +1 -1
  45. package/dist/DateFieldYearless.js +1 -1
  46. package/dist/{DateFieldYearlessRange-BHHs-Z1Q.js → DateFieldYearlessRange-8yXILjx7.js} +3 -3
  47. package/dist/{DateFieldYearlessRange-BHHs-Z1Q.js.map → DateFieldYearlessRange-8yXILjx7.js.map} +1 -1
  48. package/dist/DateFieldYearlessRange.js +1 -1
  49. package/dist/{DaysOfTheWeek-BHXxs0Bo.js → DaysOfTheWeek-Cxp5VdYK.js} +3 -3
  50. package/dist/{DaysOfTheWeek-BHXxs0Bo.js.map → DaysOfTheWeek-Cxp5VdYK.js.map} +1 -1
  51. package/dist/DaysOfTheWeek.js +1 -1
  52. package/dist/{Dialog-_tHqOsbr.js → Dialog-KDAJphrA.js} +8 -7
  53. package/dist/Dialog-KDAJphrA.js.map +1 -0
  54. package/dist/Dialog.js +1 -1
  55. package/dist/{DialogCancelButton-C0r8hJ8Z.js → DialogCancelButton-CplrFu69.js} +2 -2
  56. package/dist/{DialogCancelButton-C0r8hJ8Z.js.map → DialogCancelButton-CplrFu69.js.map} +1 -1
  57. package/dist/Dnd.js +2 -2
  58. package/dist/{DndHandleButton-BRlodkDO.js → DndHandleButton-BJqj2hc0.js} +6 -4
  59. package/dist/DndHandleButton-BJqj2hc0.js.map +1 -0
  60. package/dist/DndSort.js +2 -2
  61. package/dist/{Drawer-D-ThWNp0.js → Drawer-C7E2NNnH.js} +9 -8
  62. package/dist/Drawer-C7E2NNnH.js.map +1 -0
  63. package/dist/Drawer.js +1 -1
  64. package/dist/DrillDown.css +41 -34
  65. package/dist/DrillDown.js +1 -1
  66. package/dist/DrillDown.module-BFE5BcJB.js +28 -0
  67. package/dist/DrillDown.module-BFE5BcJB.js.map +1 -0
  68. package/dist/{EditCard-B6l2vhBS.js → EditCard-CutlsXfK.js} +3 -3
  69. package/dist/{EditCard-B6l2vhBS.js.map → EditCard-CutlsXfK.js.map} +1 -1
  70. package/dist/EditCard.js +1 -1
  71. package/dist/{FieldLabel-ThEmUiAq.js → FieldLabel-DYcUS3A4.js} +2 -2
  72. package/dist/{FieldLabel-ThEmUiAq.js.map → FieldLabel-DYcUS3A4.js.map} +1 -1
  73. package/dist/FieldLabel.js +1 -1
  74. package/dist/{FilterBar-jFn8O7v7.js → FilterBar-DbDfZph-.js} +7 -7
  75. package/dist/{FilterBar-jFn8O7v7.js.map → FilterBar-DbDfZph-.js.map} +1 -1
  76. package/dist/FilterBar.js +1 -1
  77. package/dist/{InputMask-BQigi5oW.js → InputMask-BxdQc1ld.js} +3 -3
  78. package/dist/{InputMask-BQigi5oW.js.map → InputMask-BxdQc1ld.js.map} +1 -1
  79. package/dist/InputMask.js +1 -1
  80. package/dist/{ListView-YJscfG4x.js → ListView-BVanVvBk.js} +87 -108
  81. package/dist/ListView-BVanVvBk.js.map +1 -0
  82. package/dist/ListView.js +1 -1
  83. package/dist/{Listbox-CD9ZptSZ.js → Listbox-BR0YQIee.js} +2 -2
  84. package/dist/{Listbox-CD9ZptSZ.js.map → Listbox-BR0YQIee.js.map} +1 -1
  85. package/dist/Listbox.js +1 -1
  86. package/dist/{Menu-Da2OEN0o.js → Menu-DqP7YQgE.js} +2 -2
  87. package/dist/{Menu-Da2OEN0o.js.map → Menu-DqP7YQgE.js.map} +1 -1
  88. package/dist/Menu.js +1 -1
  89. package/dist/{MenuFooter-D__gg92C.js → MenuFooter-Dzhv0EfD.js} +2 -2
  90. package/dist/{MenuFooter-D__gg92C.js.map → MenuFooter-Dzhv0EfD.js.map} +1 -1
  91. package/dist/MultiSelectField.js +1 -1
  92. package/dist/{MultiSelectFieldSync-DuImKXuj.js → MultiSelectFieldSync-9253tott.js} +29 -29
  93. package/dist/{MultiSelectFieldSync-DuImKXuj.js.map → MultiSelectFieldSync-9253tott.js.map} +1 -1
  94. package/dist/MultiSelectFieldSync.css +71 -70
  95. package/dist/MultiSelectMenu.js +1 -1
  96. package/dist/{MultiSelectMenuSync-BhNXsgAN.js → MultiSelectMenuSync-BUJbWN2I.js} +5 -5
  97. package/dist/{MultiSelectMenuSync-BhNXsgAN.js.map → MultiSelectMenuSync-BUJbWN2I.js.map} +1 -1
  98. package/dist/{useNumberField-CXFYUZ_n.js → NumberField-DhxywJVp.js} +251 -5
  99. package/dist/NumberField-DhxywJVp.js.map +1 -0
  100. package/dist/NumberField.js +1 -1
  101. package/dist/{Page-ZSHNJs7z.js → Page-D_KL2tdK.js} +14 -13
  102. package/dist/{Page-ZSHNJs7z.js.map → Page-D_KL2tdK.js.map} +1 -1
  103. package/dist/Page.js +1 -1
  104. package/dist/{Pagination-Bsl99RRI.js → Pagination-DYpUtMha.js} +5 -5
  105. package/dist/{Pagination-Bsl99RRI.js.map → Pagination-DYpUtMha.js.map} +1 -1
  106. package/dist/Pagination.js +1 -1
  107. package/dist/{Popover-CIh1CsoJ.js → Popover-B2ix8Ji4.js} +2 -2
  108. package/dist/{Popover-CIh1CsoJ.js.map → Popover-B2ix8Ji4.js.map} +1 -1
  109. package/dist/Popover.js +1 -1
  110. package/dist/{ProgressBar-zPKYv4Il.js → ProgressBar-CjoOuJCi.js} +2 -2
  111. package/dist/{ProgressBar-zPKYv4Il.js.map → ProgressBar-CjoOuJCi.js.map} +1 -1
  112. package/dist/ProgressBar.js +1 -1
  113. package/dist/{Radio-C1VnatcL.js → Radio-Bz36_d0V.js} +2 -2
  114. package/dist/{Radio-C1VnatcL.js.map → Radio-Bz36_d0V.js.map} +1 -1
  115. package/dist/{Radio-BYowelK2.js → Radio-DOD1d9Vw.js} +3 -3
  116. package/dist/{Radio-BYowelK2.js.map → Radio-DOD1d9Vw.js.map} +1 -1
  117. package/dist/Radio.js +1 -1
  118. package/dist/{RichTextEditor-DcAVqd2d.js → RichTextEditor-BORVXVDw.js} +11 -11
  119. package/dist/{RichTextEditor-DcAVqd2d.js.map → RichTextEditor-BORVXVDw.js.map} +1 -1
  120. package/dist/RichTextEditor.js +1 -1
  121. package/dist/{SavedFiltersButton-Bl8mr-LB.js → SavedFiltersButton-vq_Kt4Qc.js} +10 -10
  122. package/dist/{SavedFiltersButton-Bl8mr-LB.js.map → SavedFiltersButton-vq_Kt4Qc.js.map} +1 -1
  123. package/dist/SavedFiltersButton.js +1 -1
  124. package/dist/{SegmentedControl-BHVJmmTH.js → SegmentedControl-BCqWq65N.js} +3 -3
  125. package/dist/{SegmentedControl-BHVJmmTH.js.map → SegmentedControl-BCqWq65N.js.map} +1 -1
  126. package/dist/SegmentedControl.js +1 -1
  127. package/dist/{SelectCard-DrmMU_GD.js → SelectCard-CJwetC1k.js} +3 -3
  128. package/dist/{SelectCard-DrmMU_GD.js.map → SelectCard-CJwetC1k.js.map} +1 -1
  129. package/dist/SelectCard.js +1 -1
  130. package/dist/SelectField.js +1 -1
  131. package/dist/{SelectFieldLabel-BxsKvfqo.js → SelectFieldLabel-BTKqybZm.js} +2 -2
  132. package/dist/{SelectFieldLabel-BxsKvfqo.js.map → SelectFieldLabel-BTKqybZm.js.map} +1 -1
  133. package/dist/{SelectFieldSync-SS7FELT3.js → SelectFieldSync-CoUi-BYw.js} +38 -11
  134. package/dist/SelectFieldSync-CoUi-BYw.js.map +1 -0
  135. package/dist/SelectMenu.js +1 -1
  136. package/dist/{SelectMenuSync-CPpE6vUG.js → SelectMenuSync-CvXx-6uU.js} +5 -5
  137. package/dist/{SelectMenuSync-CPpE6vUG.js.map → SelectMenuSync-CvXx-6uU.js.map} +1 -1
  138. package/dist/{SelectOptions-BDAu_9dv.js → SelectOptions-CGRUCyf4.js} +2 -2
  139. package/dist/{SelectOptions-BDAu_9dv.js.map → SelectOptions-CGRUCyf4.js.map} +1 -1
  140. package/dist/{SelectTrigger-B5h-aqhl.js → SelectTrigger-CRbl804u.js} +2 -2
  141. package/dist/{SelectTrigger-B5h-aqhl.js.map → SelectTrigger-CRbl804u.js.map} +1 -1
  142. package/dist/SelectTrigger.js +1 -1
  143. package/dist/{SelectTriggerBase-SML2Mlt-.js → SelectTriggerBase-BRUW_Zgc.js} +5 -5
  144. package/dist/{SelectTriggerBase-SML2Mlt-.js.map → SelectTriggerBase-BRUW_Zgc.js.map} +1 -1
  145. package/dist/SelectTriggerBase.css +51 -50
  146. package/dist/SelectTriggerBase.module-Dt4-6YvC.js +40 -0
  147. package/dist/SelectTriggerBase.module-Dt4-6YvC.js.map +1 -0
  148. package/dist/{Stepper-l_P6VPOv.js → Stepper-D3SHXfX1.js} +3 -3
  149. package/dist/{Stepper-l_P6VPOv.js.map → Stepper-D3SHXfX1.js.map} +1 -1
  150. package/dist/Stepper.js +1 -1
  151. package/dist/{Switch-1iNdXTik.js → Switch-rPPL4yEa.js} +2 -2
  152. package/dist/{Switch-1iNdXTik.js.map → Switch-rPPL4yEa.js.map} +1 -1
  153. package/dist/Switch.js +1 -1
  154. package/dist/{Tab-DR5YYXkq.js → Tab-CXwVQ5-G.js} +11 -7
  155. package/dist/Tab-CXwVQ5-G.js.map +1 -0
  156. package/dist/Tab.js +1 -1
  157. package/dist/Table.js +1 -1
  158. package/dist/{Text-rihxXHSe.js → Text-BRbkPr5s.js} +2 -2
  159. package/dist/{Text-rihxXHSe.js.map → Text-BRbkPr5s.js.map} +1 -1
  160. package/dist/Text.js +1 -1
  161. package/dist/{TextField-vuS7xeo-.js → TextField-B9hivHsD.js} +3 -3
  162. package/dist/{TextField-vuS7xeo-.js.map → TextField-B9hivHsD.js.map} +1 -1
  163. package/dist/{TextField-Bxd-Qzoi.js → TextField-DGRVg_Cw.js} +2 -2
  164. package/dist/{TextField-Bxd-Qzoi.js.map → TextField-DGRVg_Cw.js.map} +1 -1
  165. package/dist/TextField.js +1 -1
  166. package/dist/{Textarea-ppapJUwh.js → Textarea-DNqfV8rJ.js} +3 -3
  167. package/dist/{Textarea-ppapJUwh.js.map → Textarea-DNqfV8rJ.js.map} +1 -1
  168. package/dist/Textarea.js +1 -1
  169. package/dist/{TimeField-Hwt_oRbg.js → TimeField-DldMBNAj.js} +5 -5
  170. package/dist/{TimeField-Hwt_oRbg.js.map → TimeField-DldMBNAj.js.map} +1 -1
  171. package/dist/TimeField.js +1 -1
  172. package/dist/{TimezoneMessage-BrKB_psP.js → TimezoneMessage-CgVNxYpM.js} +2 -2
  173. package/dist/{TimezoneMessage-BrKB_psP.js.map → TimezoneMessage-CgVNxYpM.js.map} +1 -1
  174. package/dist/Toast.js +2 -2
  175. package/dist/{Toaster-dVGVVcat.js → Toaster-Bcy9XN3c.js} +2 -2
  176. package/dist/{Toaster-dVGVVcat.js.map → Toaster-Bcy9XN3c.js.map} +1 -1
  177. package/dist/{Toaster-SqkX0Kes.js → Toaster-C66ra4BK.js} +6 -8
  178. package/dist/Toaster-C66ra4BK.js.map +1 -0
  179. package/dist/{Toolbar-CMulzswf.js → Toolbar-Br-5yBxq.js} +5 -5
  180. package/dist/{Toolbar-CMulzswf.js.map → Toolbar-Br-5yBxq.js.map} +1 -1
  181. package/dist/{Toolbar-DGHZpFi9.js → Toolbar-DgPah7M3.js} +5 -5
  182. package/dist/{Toolbar-DGHZpFi9.js.map → Toolbar-DgPah7M3.js.map} +1 -1
  183. package/dist/Toolbar.js +2 -2
  184. package/dist/{ToolbarButtonToggle-T8YnSJ5x.js → ToolbarButtonToggle-BDfoHeie.js} +2 -2
  185. package/dist/{ToolbarButtonToggle-T8YnSJ5x.js.map → ToolbarButtonToggle-BDfoHeie.js.map} +1 -1
  186. package/dist/TreeSelectField.js +1 -1
  187. package/dist/{TreeSelectFieldSync-C0mXwYZL.js → TreeSelectFieldSync-1psUeqtG.js} +22 -22
  188. package/dist/{TreeSelectFieldSync-C0mXwYZL.js.map → TreeSelectFieldSync-1psUeqtG.js.map} +1 -1
  189. package/dist/TreeSelectFieldSync.css +36 -35
  190. package/dist/TreeSelectMenu.js +1 -1
  191. package/dist/{TreeSelectMenuSync-D2TvKxP-.js → TreeSelectMenuSync-DIPSYUnE.js} +4 -4
  192. package/dist/{TreeSelectMenuSync-D2TvKxP-.js.map → TreeSelectMenuSync-DIPSYUnE.js.map} +1 -1
  193. package/dist/{TypeaheadTextField-DgazozK7.js → TypeaheadTextField-Di9ulOBl.js} +3 -3
  194. package/dist/{TypeaheadTextField-DgazozK7.js.map → TypeaheadTextField-Di9ulOBl.js.map} +1 -1
  195. package/dist/TypeaheadTextField.js +1 -1
  196. package/dist/{YearlessDateInputWithPicker-Bc8a33D5.js → YearlessDateInputWithPicker-CQ2-6Uj4.js} +3 -3
  197. package/dist/{YearlessDateInputWithPicker-Bc8a33D5.js.map → YearlessDateInputWithPicker-CQ2-6Uj4.js.map} +1 -1
  198. package/dist/assets/icons/st/gnav_messages_active.svg +1 -0
  199. package/dist/assets/icons/st/gnav_messages_inactive.svg +1 -0
  200. package/dist/assets/icons/st.ts +2 -0
  201. package/dist/beta.js +17 -17
  202. package/dist/{bulkActionTypes-SukoplGV.js → bulkActionTypes-B71ZHjVu.js} +2 -2
  203. package/dist/{bulkActionTypes-SukoplGV.js.map → bulkActionTypes-B71ZHjVu.js.map} +1 -1
  204. package/dist/{filter-state-hDtCUggM.js → filter-state-Lw9qL0zP.js} +23 -23
  205. package/dist/{filter-state-hDtCUggM.js.map → filter-state-Lw9qL0zP.js.map} +1 -1
  206. package/dist/{index-C2dOrf4N.js → index-B3WhDZeI.js} +2 -2
  207. package/dist/{index-C2dOrf4N.js.map → index-B3WhDZeI.js.map} +1 -1
  208. package/dist/{index-Bldaza5t.js → index-CyN5oapA.js} +2 -2
  209. package/dist/{index-Bldaza5t.js.map → index-CyN5oapA.js.map} +1 -1
  210. package/dist/index-DfZCfS0S.js +36 -0
  211. package/dist/index-DfZCfS0S.js.map +1 -0
  212. package/dist/{index.esm-C2ZhC_8d.js → index.esm-CQXMoq5w.js} +2 -2
  213. package/dist/{index.esm-C2ZhC_8d.js.map → index.esm-CQXMoq5w.js.map} +1 -1
  214. package/dist/index.js +55 -53
  215. package/dist/index.js.map +1 -1
  216. package/dist/{react-ORV84FjM.js → react-CG1BUt2y.js} +5 -38
  217. package/dist/react-CG1BUt2y.js.map +1 -0
  218. package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +31 -4
  219. package/dist/src/beta/components/Table/DataTable/DataTableEditColumnsDrawer.d.ts +18 -0
  220. package/dist/src/beta/components/Table/DataTable/index.d.ts +1 -0
  221. package/dist/src/beta/components/Table/DataTable/internal/DataTableAddRow.d.ts +11 -0
  222. package/dist/src/beta/components/Table/DataTable/internal/DataTableBulkActionBar.d.ts +23 -0
  223. package/dist/src/beta/components/Table/DataTable/internal/DataTableFilterToolbar.d.ts +12 -0
  224. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/EditColumnsDrawer.d.ts +29 -0
  225. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/columnLayout.d.ts +43 -0
  226. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/toEditColumnsSection.d.ts +7 -0
  227. package/dist/src/beta/components/Table/DataTable/parts.d.ts +17 -0
  228. package/dist/src/beta/components/Table/DataTable/types.d.ts +245 -2
  229. package/dist/src/beta/components/Table/types.d.ts +6 -0
  230. package/dist/src/components/DrillDown/DrillDownHeader.d.ts +11 -2
  231. package/dist/src/components/DrillDown/index.d.ts +1 -1
  232. package/dist/src/components/DrillDown/internal/DrillDownContext.d.ts +7 -2
  233. package/dist/src/components/DrillDown/internal/useDrillDownContextState.d.ts +6 -3
  234. package/dist/src/hooks/usePrefersReducedMotion/index.d.ts +2 -0
  235. package/dist/src/hooks/usePrefersReducedMotion/prefersReducedMotion.d.ts +6 -0
  236. package/dist/src/hooks/usePrefersReducedMotion/useReducedMotion.d.ts +5 -0
  237. package/dist/{stripInlineMarkdown-BhYLEiXu.js → stripInlineMarkdown-B6lAJb4-.js} +2 -2
  238. package/dist/{stripInlineMarkdown-BhYLEiXu.js.map → stripInlineMarkdown-B6lAJb4-.js.map} +1 -1
  239. package/dist/{syncFilterUtils-SMop8ckR.js → syncFilterUtils-DnhuqY1S.js} +4 -4
  240. package/dist/{syncFilterUtils-SMop8ckR.js.map → syncFilterUtils-DnhuqY1S.js.map} +1 -1
  241. package/dist/token/core/component-variables.scss +49 -49
  242. package/dist/token/core/component.js +49 -49
  243. package/dist/token/core/component.scss +40 -40
  244. package/dist/token.js +49 -49
  245. package/dist/token.js.map +1 -1
  246. package/dist/{treeSync-B38r1dRQ.js → treeSync-BDwht_1r.js} +3 -3
  247. package/dist/{treeSync-B38r1dRQ.js.map → treeSync-BDwht_1r.js.map} +1 -1
  248. package/dist/{use-reduced-motion-yYB9Tb0D.js → use-reduced-motion-CUshwaEW.js} +2 -2
  249. package/dist/{use-reduced-motion-yYB9Tb0D.js.map → use-reduced-motion-CUshwaEW.js.map} +1 -1
  250. package/dist/{useDrillDownContext-D5_NjqY4.js → useDrillDownContext-BLDjyNEt.js} +2 -2
  251. package/dist/{useDrillDownContext-D5_NjqY4.js.map → useDrillDownContext-BLDjyNEt.js.map} +1 -1
  252. package/dist/{useDrilldown-BOeeNUsy.js → useDrilldown-CGdhHs8L.js} +54 -21
  253. package/dist/{useDrilldown-BOeeNUsy.js.map → useDrilldown-CGdhHs8L.js.map} +1 -1
  254. package/dist/{useInfiniteCombobox-7oIT2Mzn.js → useInfiniteCombobox-Db0kaxCj.js} +4 -4
  255. package/dist/{useInfiniteCombobox-7oIT2Mzn.js.map → useInfiniteCombobox-Db0kaxCj.js.map} +1 -1
  256. package/dist/{useInitialFocus-CGybEc6x.js → useInitialFocus-fBiTU9l8.js} +7 -4
  257. package/dist/useInitialFocus-fBiTU9l8.js.map +1 -0
  258. package/dist/{useInvalidateOnOptionsChange-BD2VBpbK.js → useInvalidateOnOptionsChange-PweyDORd.js} +4 -4
  259. package/dist/{useInvalidateOnOptionsChange-BD2VBpbK.js.map → useInvalidateOnOptionsChange-PweyDORd.js.map} +1 -1
  260. package/dist/{usePrefersReducedMotion-DR9B_D6w.js → usePrefersReducedMotion-BLoVFiJL.js} +11 -3
  261. package/dist/usePrefersReducedMotion-BLoVFiJL.js.map +1 -0
  262. package/dist/usePrefersReducedMotion.js +2 -1
  263. package/dist/usePrefersReducedMotion.js.map +1 -1
  264. package/package.json +3 -3
  265. package/dist/Calendar-IzXG1aJw.js +0 -1761
  266. package/dist/Calendar-IzXG1aJw.js.map +0 -1
  267. package/dist/DataTable-DIXP9-Bx.js.map +0 -1
  268. package/dist/Dialog-_tHqOsbr.js.map +0 -1
  269. package/dist/DndHandleButton-BRlodkDO.js.map +0 -1
  270. package/dist/Drawer-D-ThWNp0.js.map +0 -1
  271. package/dist/DrillDown.module-1VBKDZRA.js +0 -27
  272. package/dist/DrillDown.module-1VBKDZRA.js.map +0 -1
  273. package/dist/Lato.css +0 -24
  274. package/dist/ListView-YJscfG4x.js.map +0 -1
  275. package/dist/NumberField-CxmJx4gs.js +0 -252
  276. package/dist/NumberField-CxmJx4gs.js.map +0 -1
  277. package/dist/SelectFieldSync-SS7FELT3.js.map +0 -1
  278. package/dist/SelectTriggerBase.module-mYOfdBGA.js +0 -40
  279. package/dist/SelectTriggerBase.module-mYOfdBGA.js.map +0 -1
  280. package/dist/Tab-DR5YYXkq.js.map +0 -1
  281. package/dist/Toaster-SqkX0Kes.js.map +0 -1
  282. package/dist/app-css.379821199ec8105f2efd.bundle.css +0 -57579
  283. package/dist/bugfix-71.1orion.css +0 -491
  284. package/dist/design-system.859a127fc3b66175f0f0.bundle.css +0 -34599
  285. package/dist/drag_indicator-BRHAPLSJ.js +0 -6
  286. package/dist/drag_indicator-BRHAPLSJ.js.map +0 -1
  287. package/dist/favicon.ico +0 -0
  288. package/dist/kendo-css.ed976099efbbcc8b0639.bundle.css +0 -20601
  289. package/dist/luxon-wpz4A-OQ.js.map +0 -1
  290. package/dist/main.e26f249642be9a4bd747.bundle.css +0 -50386
  291. package/dist/react-ORV84FjM.js.map +0 -1
  292. package/dist/sui.a9dc22e36a27b7ea1ee8.bundle.css +0 -41149
  293. package/dist/useInitialFocus-CGybEc6x.js.map +0 -1
  294. package/dist/useNumberField-CXFYUZ_n.js.map +0 -1
  295. package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +0 -1
  296. package/dist/vite.svg +0 -1
@@ -1,8 +1,8 @@
1
1
  import { ComponentPropsWithoutRef, forwardRef, Ref, ReactNode } from 'react';
2
2
  import { DataAttributes, LayoutUtilProps } from '../../../../types';
3
3
  import { ColumnDef, CustomTableFooterCellProps, TableRow } from '../types';
4
- import { DataTableCacheOptions, DataTableEmptyState, DataTablePaginationConfig, DataTableRef, SortedColumn } from './types';
5
- export type { DataTableCacheOptions, DataTableRef, DataTableEmptyState, SortedColumn, };
4
+ import { DataTableBulkAction, DataTableBulkActions, DataTableBulkMenuAction, DataTableBulkMenuItem, DataTableBulkPrimaryAction, DataTableBulkSecondaryAction, DataTableBulkSelection, DataTableCacheOptions, DataTableColumnEditing, DataTableColumnPref, DataTableEditColumnsSection, DataTableEmptyState, DataTablePaginationConfig, DataTableFilters, DataTableRef, DataTableRowAdd, DataTableToolbarAction, DataTableTools, SortedColumn } from './types';
5
+ export type { DataTableBulkAction, DataTableBulkActions, DataTableBulkMenuAction, DataTableBulkMenuItem, DataTableBulkPrimaryAction, DataTableBulkSecondaryAction, DataTableBulkSelection, DataTableCacheOptions, DataTableFilters, DataTableColumnEditing, DataTableColumnPref, DataTableEditColumnsSection, DataTableRef, DataTableRowAdd, DataTableEmptyState, DataTableToolbarAction, DataTableTools, SortedColumn, };
6
6
  export type DataTableRowData = object;
7
7
  /**
8
8
  * @extends LayoutUtilProps
@@ -148,11 +148,38 @@ export type DataTableProps<T extends DataTableRowData> = LayoutUtilProps & Compo
148
148
  * appear stale when external state changes.
149
149
  */
150
150
  getRowVersion?: (row: T) => unknown;
151
+ /**
152
+ * Filter bar rendered above the table. See {@link DataTableFilters}.
153
+ */
154
+ filters?: DataTableFilters;
155
+ /**
156
+ * Toolbar rendered to the right of the filter bar. See
157
+ * {@link DataTableTools}.
158
+ */
159
+ tools?: DataTableTools;
160
+ /**
161
+ * {@link DataTableBulkActions} shown in a bar above the table while rows
162
+ * are selected; the bar replaces the filter bar and toolbar until the
163
+ * selection clears. Requires `isSelectable`.
164
+ */
165
+ bulkActions?: DataTableBulkActions<T>;
166
+ /**
167
+ * Adds an Edit Columns button at the end of the toolbar (unless `hideButton`). Its drawer lets
168
+ * users reorder, hide, and pin columns, then reports the result through
169
+ * `onLayoutChange`. Feed that layout back in; DataTable applies it to
170
+ * `columns` and doesn't store it.
171
+ */
172
+ columnEditing?: DataTableColumnEditing;
173
+ /**
174
+ * Add row button in a toolbar below the table. See {@link DataTableRowAdd}.
175
+ */
176
+ rowAdd?: DataTableRowAdd;
151
177
  };
152
178
  declare function DataTableInner<T extends DataTableRowData>(props: DataTableProps<T>, ref: Ref<DataTableRef>): import("react/jsx-runtime").JSX.Element;
153
179
  /**
154
- * Sortable, pageable data grid with optional selection, expansion, pinning,
155
- * and cell editing. Attach a {@link DataTableRef} to `refresh` or `clearCache`.
180
+ * Sortable, pageable data grid with optional selection, bulk actions,
181
+ * expansion, pinning, and cell editing. Attach a {@link DataTableRef} to
182
+ * `refresh`, `clearCache`, or `clearSelection`.
156
183
  */
157
184
  export declare const DataTable: (<T extends DataTableRowData>(props: DataTableProps<T> & {
158
185
  ref?: Ref<DataTableRef>;
@@ -0,0 +1,18 @@
1
+ import { DataTableEditColumnsSection } from './types';
2
+ export type DataTableEditColumnsDrawerProps = {
3
+ /** Controls whether the drawer is shown. */
4
+ open: boolean;
5
+ /** Requests that the controlling page close the drawer. */
6
+ onClose: () => void;
7
+ /**
8
+ * One titled section per table. Apply reports only the sections the user
9
+ * changed; Reset Defaults resets every section. Memoize the array.
10
+ */
11
+ sections: DataTableEditColumnsSection[];
12
+ };
13
+ /**
14
+ * Edit Columns drawer for one page-level trigger that covers several tables.
15
+ * Set `columnEditing.hideButton` on each table so only this drawer's trigger
16
+ * shows. For a single table, `columnEditing` alone is enough.
17
+ */
18
+ export declare function DataTableEditColumnsDrawer({ open, onClose, sections, }: DataTableEditColumnsDrawerProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1,2 @@
1
1
  export * from './DataTable';
2
+ export * from './DataTableEditColumnsDrawer';
@@ -0,0 +1,11 @@
1
+ import { DataTableRowAdd } from '../types';
2
+ /**
3
+ * Duplicate of the toolbar button, centered under the empty state. Rendered
4
+ * outside the grid element because the button is not a row or gridcell.
5
+ */
6
+ export declare function DataTableEmptyAddRow({ rowAdd }: {
7
+ rowAdd: DataTableRowAdd;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ export declare function DataTableAddRow({ rowAdd }: {
10
+ rowAdd: DataTableRowAdd;
11
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { RefObject } from 'react';
2
+ import { DataTableBulkActions, DataTableBulkSelection } from '../types';
3
+ export type DataTableBulkActionBarProps<T> = {
4
+ actions: DataTableBulkActions<T>;
5
+ /** Rows counted as selected; the total row count in "all" mode. */
6
+ selectedCount: number;
7
+ /** Shows "Select all N items" when set. */
8
+ selectAllCount?: number;
9
+ /** Some rows can't be selected, so the button reads "Select all N items of N". */
10
+ hasUnselectableRows: boolean;
11
+ onSelectAll: () => void;
12
+ onCancel: () => void;
13
+ getSelection: () => DataTableBulkSelection<T>;
14
+ /** Runs after an action completes without asking to keep the selection. */
15
+ onActionComplete: () => void;
16
+ tableRef: RefObject<HTMLDivElement>;
17
+ };
18
+ /**
19
+ * Selection count, select-all, cancel, and consumer actions shown above the
20
+ * table while rows are selected. The live region stays mounted so the first
21
+ * selection is announced too.
22
+ */
23
+ export declare function DataTableBulkActionBar<T>({ actions, selectedCount, selectAllCount, hasUnselectableRows, onSelectAll, onCancel, getSelection, onActionComplete, tableRef, }: DataTableBulkActionBarProps<T>): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,12 @@
1
+ import { Filter } from '../../../FilterBar';
2
+ import { DataTableFilters, DataTableTools } from '../types';
3
+ import { EditColumnsSection } from './columnEditing/EditColumnsDrawer';
4
+ type DataTableFilterToolbarProps = {
5
+ filters?: DataTableFilters;
6
+ tools?: DataTableTools;
7
+ columnEditing?: EditColumnsSection;
8
+ /** Wraps `filters.onChange` with DataTable's page and cache reset. */
9
+ onFilterChange: (filters: Filter[]) => void;
10
+ };
11
+ export declare function DataTableFilterToolbar({ filters, tools, onFilterChange, columnEditing, }: DataTableFilterToolbarProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};
@@ -0,0 +1,29 @@
1
+ import { DataTableColumnPref } from '../../types';
2
+ /** One table's columns in an {@link EditColumnsDrawer}. */
3
+ export type EditColumnsSection = {
4
+ /** Unique within the drawer; namespaces the drag zones. */
5
+ id: string;
6
+ /** Heading shown above the section when the drawer has more than one. */
7
+ title?: string;
8
+ /** True when `alwaysVisible` or right-pinned columns keep the table non-empty. */
9
+ hasFixedColumns?: boolean;
10
+ /** Ids of `alwaysVisible` columns, whose hide button is disabled. */
11
+ alwaysVisibleIds?: string[];
12
+ /** Editable columns' header labels by id. */
13
+ labels: Record<string, string>;
14
+ layout: DataTableColumnPref[];
15
+ onApply: (layout: DataTableColumnPref[]) => void;
16
+ onReset: () => void;
17
+ };
18
+ type EditColumnsDrawerProps = {
19
+ open: boolean;
20
+ onClose: () => void;
21
+ sections: EditColumnsSection[];
22
+ };
23
+ /**
24
+ * Edits stay in local drafts until Apply, which reports only the sections that
25
+ * changed. The drafts are rebuilt only when the drawer opens, so a layout
26
+ * change from outside mid-edit doesn't wipe them.
27
+ */
28
+ export declare function EditColumnsDrawer({ open, onClose, sections, }: EditColumnsDrawerProps): import("react/jsx-runtime").JSX.Element;
29
+ export {};
@@ -0,0 +1,43 @@
1
+ import { DndSortChangeEvent } from '../../../../../../components/DndSort';
2
+ import { ColumnDef } from '../../../types';
3
+ import { DataTableColumnLike, DataTableColumnPref } from '../../types';
4
+ /** Columns the drawer can move: everything but those pinned right. */
5
+ export declare function isEditableColumn(column: DataTableColumnLike): boolean;
6
+ export declare function getColumnLabel(column: DataTableColumnLike): string;
7
+ /** Ids of the columns that render a header cell of their own, descending into groups. */
8
+ export declare function getLeafColumnIds<T>(columns: ColumnDef<T>[]): Set<string>;
9
+ /** Layout implied by the `columns` prop: its order, all visible, left-pinned as declared. */
10
+ export declare function getDefaultLayout(columns: DataTableColumnLike[]): DataTableColumnPref[];
11
+ /**
12
+ * Reconciles a layout with the editable columns: unknown and duplicate ids
13
+ * drop out, omitted columns append as visible with their declared left pin,
14
+ * an `alwaysVisible` column is never hidden, and a hidden column is never
15
+ * pinned.
16
+ */
17
+ export declare function mergeLayout(layout: readonly DataTableColumnPref[], editable: readonly DataTableColumnLike[]): DataTableColumnPref[];
18
+ /**
19
+ * Returns `columns` reordered, filtered, and pinned by `layout`. Columns the
20
+ * drawer can't edit keep their slot; hidden columns are removed.
21
+ */
22
+ export declare function applyColumnLayout<T>(columns: ColumnDef<T>[], layout: readonly DataTableColumnPref[]): ColumnDef<T>[];
23
+ declare const PINNED = "pinned";
24
+ declare const VISIBLE = "visible";
25
+ declare const HIDDEN = "hidden";
26
+ export type ColumnBucketName = typeof PINNED | typeof VISIBLE | typeof HIDDEN;
27
+ /** Column ids grouped by where they sit in the drawer. */
28
+ export type ColumnBuckets = Record<ColumnBucketName, string[]>;
29
+ export declare function toBuckets(layout: readonly DataTableColumnPref[]): ColumnBuckets;
30
+ export declare function toLayout(buckets: ColumnBuckets): DataTableColumnPref[];
31
+ /** Applies a drop within one zone. Pinned and visible zones never exchange cards. */
32
+ export declare function reorderBucket(prev: ColumnBuckets, bucket: typeof PINNED | typeof VISIBLE, event: DndSortChangeEvent): ColumnBuckets;
33
+ /** Pins a visible column (to the end of the pinned list) or unpins one (to the top of visible). */
34
+ export declare function togglePinnedIn(prev: ColumnBuckets, id: string): ColumnBuckets;
35
+ /**
36
+ * True when hiding one more column would leave the table with none showing.
37
+ * `hasFixedColumns` is true when columns outside the drawer (`alwaysVisible`
38
+ * or pinned right) keep the table populated regardless.
39
+ */
40
+ export declare function isLastShown(buckets: ColumnBuckets, hasFixedColumns?: boolean): boolean;
41
+ /** Hides or shows an unpinned column; never hides the last one showing. */
42
+ export declare function toggleVisibleIn(prev: ColumnBuckets, id: string, hasFixedColumns?: boolean): ColumnBuckets;
43
+ export {};
@@ -0,0 +1,7 @@
1
+ import { DataTableEditColumnsSection } from '../../types';
2
+ import { EditColumnsSection } from './EditColumnsDrawer';
3
+ /**
4
+ * Reduces a table's `columns` and stored layout to what the drawer edits.
5
+ * Reset reports the layout implied by `columns`.
6
+ */
7
+ export declare function toEditColumnsSection({ title, columns, layout, onLayoutChange }: DataTableEditColumnsSection, id: string): EditColumnsSection;
@@ -13,4 +13,21 @@ export declare const PARTS: {
13
13
  readonly expandAllButton: "expand-all-button";
14
14
  readonly resizeHandle: "resize-handle";
15
15
  readonly editableInput: "editable-input";
16
+ readonly bulkActionBar: "bulk-action-bar";
17
+ readonly bulkSelectAllButton: "bulk-select-all-button";
18
+ readonly bulkCancelButton: "bulk-cancel-button";
19
+ readonly bulkActionsMenuButton: "bulk-actions-menu-button";
20
+ readonly bulkActionButton: "bulk-action-button";
21
+ readonly bulkActionMenuItem: "bulk-action-menu-item";
22
+ readonly rowAddButton: "row-add-button";
23
+ readonly editColumnsButton: "edit-columns-button";
24
+ readonly editColumnsDrawer: "edit-columns-drawer";
25
+ readonly columnsSection: "columns-section";
26
+ readonly columnCard: "column-card";
27
+ readonly pinColumnButton: "pin-column-button";
28
+ readonly hideColumnButton: "hide-column-button";
29
+ readonly resetColumnsButton: "reset-columns-button";
30
+ readonly applyButton: "apply-button";
31
+ readonly cancelButton: "cancel-button";
32
+ readonly confirmButton: "confirm-button";
16
33
  };
@@ -1,6 +1,10 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { TableRow } from '../types';
3
- import { Svg } from '../../../../types';
3
+ import { DataAttributes, Svg } from '../../../../types';
4
+ import { ButtonProps } from '../../../../components/Button';
5
+ import { ToolbarButtonProps } from '../../Toolbar';
6
+ import { ToolbarSize } from '../../Toolbar/types';
7
+ import { Filter } from '../../FilterBar';
4
8
  /**
5
9
  * Single-column sort. DataTable only applies `sorting[0]`.
6
10
  */
@@ -25,6 +29,11 @@ export type DataTableEmptyState = {
25
29
  };
26
30
  /** Rendered under the illustration. */
27
31
  content?: ReactNode;
32
+ /**
33
+ * Repeats the `rowAdd` button under `content`, for tables that start empty.
34
+ * Does nothing without `rowAdd`.
35
+ */
36
+ includeAddRow?: boolean;
28
37
  };
29
38
  /**
30
39
  * `loadPageData` page cache. Hits restore a page without calling the loader.
@@ -129,7 +138,96 @@ export type DataTableCursorPaginationConfig<T> = DataTablePaginationBaseConfig<T
129
138
  */
130
139
  export type DataTablePaginationConfig<T> = DataTableOffsetPaginationConfig<T> | DataTableCursorPaginationConfig<T>;
131
140
  /**
132
- * Imperative handle: refetch the current loader, or drop cached pages.
141
+ * What a bulk action applies to. `"rows"` lists the checked row ids as
142
+ * strings, the same form as `onSelectRow` (numeric ids arrive stringified).
143
+ * `"all"` means every selectable row across pages, including rows that have
144
+ * not loaded — rows rejected by `isSelectable` and rows in `readOnlyRowIds`
145
+ * are excluded, so the backend must apply the same rules. Its
146
+ * `selectedRowCount` is the count the bar shows, sub-rows included.
147
+ */
148
+ export type DataTableBulkSelection<T> = {
149
+ mode: "rows";
150
+ rowIds: TableRow<T>["id"][];
151
+ } | {
152
+ mode: "all";
153
+ selectedRowCount: number;
154
+ };
155
+ /**
156
+ * A bulk action button, or a menu item when nested under `items`.
157
+ */
158
+ export type DataTableBulkAction<T> = Omit<ButtonProps, "appearance" | "onClick" | "loading" | "children"> & {
159
+ /**
160
+ * Visible button text, or menu-item text when nested under `items`. A
161
+ * function receives the selected count (the total after "Select all N
162
+ * items"), e.g. for singular and plural wording.
163
+ */
164
+ label: string | ((selectedCount: number) => string);
165
+ /**
166
+ * Runs with the current {@link DataTableBulkSelection}. Selection clears
167
+ * once it returns or resolves. Return or resolve `false` to keep rows
168
+ * selected (e.g. while a confirmation dialog is open); a rejected promise
169
+ * also keeps them selected. The button shows a spinner while it is pending.
170
+ */
171
+ onClick: (selection: DataTableBulkSelection<T>) => void | boolean | Promise<void | boolean>;
172
+ };
173
+ /**
174
+ * The bar's primary button.
175
+ */
176
+ export type DataTableBulkPrimaryAction<T> = DataTableBulkAction<T> & {
177
+ /** Defaults to `"primary"`. */
178
+ appearance?: "primary" | "danger";
179
+ };
180
+ /**
181
+ * A primary button that opens a menu of actions instead of running one.
182
+ */
183
+ export type DataTableBulkMenuAction<T> = Omit<DataTableBulkPrimaryAction<T>, "onClick"> & {
184
+ /** Menu items. The button runs no handler of its own. */
185
+ items: DataTableBulkMenuItem<T>[];
186
+ };
187
+ /**
188
+ * An item in a primary action's menu. `data-*` attributes reach the item.
189
+ */
190
+ export type DataTableBulkMenuItem<T> = DataAttributes & Pick<DataTableBulkAction<T>, "label" | "onClick"> & {
191
+ /** Leading icon. */
192
+ icon?: Svg;
193
+ /** Prevents selection. Defaults to `false`. */
194
+ disabled?: boolean;
195
+ };
196
+ /**
197
+ * A secondary button in the bar.
198
+ */
199
+ export type DataTableBulkSecondaryAction<T> = DataTableBulkAction<T> & {
200
+ /** Defaults to `"secondary"`. */
201
+ appearance?: "secondary" | "danger-secondary";
202
+ };
203
+ /**
204
+ * Actions shown in the bulk action bar while rows are selected.
205
+ */
206
+ export type DataTableBulkActions<T> = {
207
+ /** Primary button. Pass `items` to open a menu of actions instead. */
208
+ primary?: DataTableBulkPrimaryAction<T> | DataTableBulkMenuAction<T>;
209
+ /**
210
+ * Button before the primary one. For more actions, pass `items` to the
211
+ * primary action instead.
212
+ */
213
+ secondary?: DataTableBulkSecondaryAction<T>;
214
+ /**
215
+ * Shows a "Select all N items" button that selects rows across pages. Only
216
+ * shown with offset pagination when the total exceeds one page.
217
+ * @default false
218
+ */
219
+ selectAll?: boolean;
220
+ /**
221
+ * Rows "Select all" selects when pages come from `loadPageData`, counting
222
+ * sub-rows and leaving out rows that can't be selected; the table can't see
223
+ * rows that haven't loaded. Defaults to `pagination.totalRowCount`. With
224
+ * `data`, the table counts the selectable rows itself.
225
+ */
226
+ selectableRowCount?: number;
227
+ };
228
+ /**
229
+ * Imperative handle: refetch the current loader, drop cached pages, or clear
230
+ * the selection.
133
231
  */
134
232
  export type DataTableRef = {
135
233
  /**
@@ -143,5 +241,150 @@ export type DataTableRef = {
143
241
  * `refresh` or a cache-invalidating input changes.
144
242
  */
145
243
  clearCache: () => void;
244
+ /**
245
+ * Clears the selection, including a "Select all N items" selection. Use it
246
+ * after a bulk action returned `false` to keep rows selected, e.g. once a
247
+ * confirmation dialog is confirmed.
248
+ */
249
+ clearSelection: () => void;
250
+ };
251
+ /** One column's place in a {@link DataTableColumnEditing} layout. */
252
+ export type DataTableColumnPref = {
253
+ /** Id of a top-level column in `columns`. */
254
+ id: string;
255
+ /** Controls rendering while retaining the column in the layout so it can be restored. */
256
+ visible: boolean;
257
+ /** Pins the column to the left. Hidden columns are never pinned. */
258
+ pinned: boolean;
259
+ };
260
+ /**
261
+ * Turns on the Edit Columns button and drawer. The consumer owns the layout:
262
+ * DataTable applies it to `columns` and reports Apply and Reset Defaults
263
+ * through `onLayoutChange`.
264
+ */
265
+ export type DataTableColumnEditing = {
266
+ /**
267
+ * Current order, visibility, and pinning: pinned columns first, then the
268
+ * rest, each in list order, with hidden columns left out. Ids that match no
269
+ * editable column and repeated ids are ignored; columns missing from the
270
+ * list are appended as visible, keeping a declared `pinned: "left"`, so a
271
+ * stored layout survives column changes.
272
+ */
273
+ layout: DataTableColumnPref[];
274
+ /**
275
+ * Fires with the full layout when the user applies their edits, and with
276
+ * the layout implied by `columns` when they reset to defaults.
277
+ */
278
+ onLayoutChange: (layout: DataTableColumnPref[]) => void;
279
+ /**
280
+ * Hides the toolbar button while the layout still applies, for a page that
281
+ * opens one {@link DataTableEditColumnsDrawer} across several tables.
282
+ * @default false
283
+ */
284
+ hideButton?: boolean;
285
+ };
286
+ /** The parts of a column def the drawer reads, so tables of any row type fit one section list. */
287
+ export type DataTableColumnLike = {
288
+ id: string | number | symbol;
289
+ pinned?: "left" | "right";
290
+ alwaysVisible?: boolean;
291
+ header?: {
292
+ label: string;
293
+ };
294
+ headerLabel?: string;
295
+ };
296
+ /** One table in a {@link DataTableEditColumnsDrawer}. */
297
+ export type DataTableEditColumnsSection = {
298
+ /** Heading shown above the section when the drawer has more than one. */
299
+ title?: string;
300
+ /** The same `columns` the table receives. */
301
+ columns: DataTableColumnLike[];
302
+ /**
303
+ * Current order, visibility, and pinning for this table's drawer-editable
304
+ * columns: pinned columns first, then the rest, each in list order, with
305
+ * hidden columns left out. Ids that match no editable column and repeated
306
+ * ids are ignored; columns missing from the list are appended as visible,
307
+ * keeping a declared `pinned: "left"`.
308
+ */
309
+ layout: DataTableColumnPref[];
310
+ /** Fires with the new layout on Apply, or the default layout on Reset. */
311
+ onLayoutChange: (layout: DataTableColumnPref[]) => void;
312
+ };
313
+ /**
314
+ * A button in the DataTable toolbar. Takes the props of a toolbar button:
315
+ * a text label as `children`, or an `icon` with a required `aria-label`.
316
+ */
317
+ export type DataTableToolbarAction = ToolbarButtonProps & {
318
+ /** Stable identity for the button. Not forwarded to the DOM. */
319
+ id: string;
320
+ };
321
+ /**
322
+ * Filter bar configuration for DataTable. DataTable does not filter rows
323
+ * itself: apply changes from `onChange` to `data` or to your `loadPageData`
324
+ * request.
325
+ */
326
+ export type DataTableFilters = {
327
+ /**
328
+ * Filter definitions rendered as a filter bar above the table. Memoize the
329
+ * array; a new identity re-syncs the bar and discards in-progress input.
330
+ */
331
+ items: Filter[];
332
+ /**
333
+ * Fires with the full filter list after a filter commit. Any change also
334
+ * returns a paginated table to its first page and, with `loadPageData`,
335
+ * clears the page cache and reloads, so the loader sees the new filters.
336
+ */
337
+ onChange: (filters: Filter[]) => void;
338
+ /**
339
+ * Delays inline commits for filters with an Apply affordance. Filters
340
+ * without one still commit immediately; the drawer always batches changes.
341
+ * @default false
342
+ */
343
+ controlled?: boolean;
344
+ /**
345
+ * Size of the filter bar controls.
346
+ * @default "medium"
347
+ */
348
+ size?: ToolbarSize;
349
+ };
350
+ /**
351
+ * Toolbar configuration for DataTable, rendered to the right of the filter
352
+ * bar. Works without `filters`.
353
+ */
354
+ export type DataTableTools = {
355
+ /**
356
+ * Buttons in the toolbar, e.g. Export. Only Anvil2 buttons are accepted;
357
+ * arbitrary nodes are not.
358
+ */
359
+ actions: DataTableToolbarAction[];
360
+ /**
361
+ * Size of the toolbar controls.
362
+ * @default "medium"
363
+ */
364
+ size?: ToolbarSize;
365
+ };
366
+ /**
367
+ * Add row button in a toolbar below the table. DataTable only fires
368
+ * `onAddRow`: the page owns the flow, such as a dialog or a takeover, and
369
+ * must update `data` when it finishes, or call {@link DataTableRef} `refresh`
370
+ * for a table that loads rows with `pagination.loadPageData`.
371
+ */
372
+ export type DataTableRowAdd = {
373
+ /** Fires when the Add button is clicked. */
374
+ onAddRow: () => void;
375
+ /**
376
+ * Label of the Add button.
377
+ * @default "Add row"
378
+ */
379
+ addRowLabel?: string;
380
+ /** Disables the Add button. */
381
+ disabled?: boolean;
382
+ /** Shows the Add button as busy, e.g. while an external check runs. */
383
+ loading?: boolean;
384
+ /**
385
+ * Size of the toolbar controls.
386
+ * @default "medium"
387
+ */
388
+ size?: ToolbarSize;
146
389
  };
147
390
  export {};
@@ -519,6 +519,12 @@ export type ColumnBaseDef = ColumnHeaderConfig & {
519
519
  defaultWidth?: number;
520
520
  /** Keeps the column against the chosen edge while horizontally scrolling. */
521
521
  pinned?: "left" | "right";
522
+ /**
523
+ * Disables the column's hide button in the Edit Columns drawer. It is still
524
+ * listed there and can be reordered or pinned. Only applies when DataTable
525
+ * has `columnEditing`.
526
+ */
527
+ alwaysVisible?: boolean;
522
528
  /** Shows a pointer-driven resize handle. */
523
529
  resizable?: boolean;
524
530
  };
@@ -1,11 +1,20 @@
1
1
  import { PassThroughPropsWithRef } from '../../types';
2
2
  import { TextProps } from '../Text';
3
+ import { DrawerHeaderAction } from '../Drawer/DrawerHeader';
4
+ /** Command shown in `DrillDown.Header`'s overflow menu. Same shape as {@link DrawerHeaderAction}. */
5
+ export type DrillDownHeaderAction = DrawerHeaderAction;
3
6
  export type DrillDownHeaderProps = PassThroughPropsWithRef<"header"> & {
4
7
  /** Heading element for the title. Defaults to `h1`. */
5
8
  el?: TextProps["el"];
9
+ /**
10
+ * Commands placed in an overflow menu before the close control. Belong to
11
+ * this screen only; the host Drawer's actions are not inherited.
12
+ */
13
+ actions?: DrillDownHeaderAction[];
6
14
  };
7
15
  /**
8
- * Title row with a back control. Close appears when this screen registered
9
- * `onClose`. Children are the heading text.
16
+ * Title row with a back control. An overflow menu appears when `actions` is
17
+ * non-empty, and Close appears when this screen registered `onClose`.
18
+ * Children are the heading text.
10
19
  */
11
20
  export declare const DrillDownHeader: import('react').ForwardRefExoticComponent<Omit<DrillDownHeaderProps, "ref"> & import('react').RefAttributes<HTMLDivElement>>;
@@ -1,5 +1,5 @@
1
1
  export { DrillDown as default, DrillDown, type DrillDownProps, } from './DrillDown';
2
- export { DrillDownHeader, type DrillDownHeaderProps } from './DrillDownHeader';
2
+ export { DrillDownHeader, type DrillDownHeaderAction, type DrillDownHeaderProps, } from './DrillDownHeader';
3
3
  export { DrillDownContent, type DrillDownContentProps, } from './DrillDownContent';
4
4
  export { DrillDownFooter, type DrillDownFooterProps } from './DrillDownFooter';
5
5
  export { DrillDownNextButton, type DrillDownNextButtonProps, } from './DrillDownNextButton';
@@ -1,5 +1,9 @@
1
1
  import { Dispatch, SetStateAction } from 'react';
2
+ /** Component that owns the DrillDown stack. */
3
+ export type DrillDownHost = "dialog" | "drawer" | "panel";
2
4
  export type DrillDownContextProps = {
5
+ /** Owning host. `DrillDown.Header` drops `actions` inside a `"dialog"`. */
6
+ host?: DrillDownHost;
3
7
  /** Active screen, or `undefined` when the stack is closed. */
4
8
  index?: number;
5
9
  setIndex?: (index: number | undefined) => void;
@@ -8,8 +12,9 @@ export type DrillDownContextProps = {
8
12
  /** Occupancy counts by index; a missing slot means `next()` should close. */
9
13
  registeredIndices?: number[];
10
14
  setRegisteredIndices?: Dispatch<SetStateAction<number[] | undefined>>;
11
- onClose?: (() => void)[];
12
- setOnClose?: (fn: () => void, index: number) => void;
15
+ onClose?: ((() => void) | undefined)[];
16
+ /** Registers a screen's Close handler; `undefined` clears that index. */
17
+ setOnClose?: (fn: (() => void) | undefined, index: number) => void;
13
18
  /** When `false`, no screen mounts (host is closing or unopened). */
14
19
  hostIsInteractive?: boolean;
15
20
  setHostTrigger?: (element: HTMLElement | null) => void;
@@ -1,19 +1,22 @@
1
+ import { DrillDownHost } from './DrillDownContext';
1
2
  type useDrillDownContextStateParams = {
2
3
  /**
3
4
  * Screen opened by the first `next()` from a closed stack, and restored when
4
5
  * the host closes after a drilldown session. Defaults to `0`.
5
6
  */
6
7
  defaultDrillDownIndex?: number;
8
+ host: DrillDownHost;
7
9
  };
8
- export declare function useDrillDownContextState({ defaultDrillDownIndex, }: useDrillDownContextStateParams): {
10
+ export declare function useDrillDownContextState({ defaultDrillDownIndex, host, }: useDrillDownContextStateParams): {
11
+ host: DrillDownHost;
9
12
  index: number | undefined;
10
13
  setIndex: (index: number | undefined) => void;
11
14
  back: () => void;
12
15
  next: () => void;
13
16
  registeredIndices: number[] | undefined;
14
17
  setRegisteredIndices: import('react').Dispatch<import('react').SetStateAction<number[] | undefined>>;
15
- onClose: (() => void)[];
16
- setOnClose: (fn: () => void, index: number) => void;
18
+ onClose: ((() => void) | undefined)[];
19
+ setOnClose: (fn: (() => void) | undefined, index: number) => void;
17
20
  hostIsInteractive: boolean;
18
21
  setHostTrigger: (element: HTMLElement | null) => void;
19
22
  onHostClose: () => void;
@@ -1 +1,3 @@
1
+ export { prefersReducedMotion } from './prefersReducedMotion';
1
2
  export * from './usePrefersReducedMotion';
3
+ export * from './useReducedMotion';
@@ -0,0 +1,6 @@
1
+ export declare const PREFERS_REDUCED_MOTION_QUERY = "(prefers-reduced-motion: reduce)";
2
+ /**
3
+ * One-shot read of the OS reduced-motion setting for non-React code.
4
+ * Returns `false` when `matchMedia` is unavailable.
5
+ */
6
+ export declare const prefersReducedMotion: () => boolean;
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Motion's reduced-motion hook. `true` or `false` after hydration, `null` during SSR.
3
+ * Prefer {@link usePrefersReducedMotion} when you want a boolean object that starts `false`.
4
+ */
5
+ export { useReducedMotion } from 'motion/react';
@@ -1,4 +1,4 @@
1
- import { I as INLINE_MARKDOWN_REGEX } from './FieldLabel-ThEmUiAq.js';
1
+ import { I as INLINE_MARKDOWN_REGEX } from './FieldLabel-DYcUS3A4.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-BhYLEiXu.js.map
25
+ //# sourceMappingURL=stripInlineMarkdown-B6lAJb4-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripInlineMarkdown-BhYLEiXu.js","sources":["../src/internal/functions/stripInlineMarkdown.ts"],"sourcesContent":["import { INLINE_MARKDOWN_REGEX } from \"../utils/inlineMarkdownRegex\";\n\n/**\n * Drops inline markdown markers and returns the inner text (for `aria-label`).\n * Shared global regex: reset `lastIndex` per call and save it around nested\n * strips. Code spans are not reparsed.\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 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":";;AAOO,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;AAE9D,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;;;;"}
1
+ {"version":3,"file":"stripInlineMarkdown-B6lAJb4-.js","sources":["../src/internal/functions/stripInlineMarkdown.ts"],"sourcesContent":["import { INLINE_MARKDOWN_REGEX } from \"../utils/inlineMarkdownRegex\";\n\n/**\n * Drops inline markdown markers and returns the inner text (for `aria-label`).\n * Shared global regex: reset `lastIndex` per call and save it around nested\n * strips. Code spans are not reparsed.\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 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":";;AAOO,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;AAE9D,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;;;;"}