@servicetitan/anvil2 3.0.6 → 3.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/dist/{AiMark-BXL0sWIV.js → AiMark-CS6MvraM.js} +5 -4
  3. package/dist/{AiMark-BXL0sWIV.js.map → AiMark-CS6MvraM.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-BNH0UD2s.js → Alert-CNDLoh6b.js} +2 -2
  6. package/dist/{Alert-BNH0UD2s.js.map → Alert-CNDLoh6b.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{AnvilProvider-J9DjoJiB.js → AnvilProvider-BFK29dL5.js} +3 -2
  9. package/dist/{AnvilProvider-J9DjoJiB.js.map → AnvilProvider-BFK29dL5.js.map} +1 -1
  10. package/dist/AnvilProvider.js +1 -1
  11. package/dist/{Avatar-FDHyqiCy.js → Avatar-Bl-Dxbhf.js} +7 -2
  12. package/dist/Avatar-Bl-Dxbhf.js.map +1 -0
  13. package/dist/{Avatar-B_cRQqKR.js → Avatar-CdAIJ5VK.js} +2 -2
  14. package/dist/{Avatar-B_cRQqKR.js.map → Avatar-CdAIJ5VK.js.map} +1 -1
  15. package/dist/Avatar.js +2 -2
  16. package/dist/{Breadcrumbs-Bzxbdu-S.js → Breadcrumbs--Xt6l_2L.js} +2 -2
  17. package/dist/{Breadcrumbs-Bzxbdu-S.js.map → Breadcrumbs--Xt6l_2L.js.map} +1 -1
  18. package/dist/Breadcrumbs.js +1 -1
  19. package/dist/{Calendar-DS5eWpGF.js → Calendar-5mAxtdNh.js} +2 -2
  20. package/dist/{Calendar-DS5eWpGF.js.map → Calendar-5mAxtdNh.js.map} +1 -1
  21. package/dist/{Calendar-BYNFAWpZ.js → Calendar-rITorBvD.js} +5 -3
  22. package/dist/{Calendar-BYNFAWpZ.js.map → Calendar-rITorBvD.js.map} +1 -1
  23. package/dist/Calendar.js +2 -2
  24. package/dist/{Checkbox-BeIzx_ZX.js → Checkbox-BYWhkYoK.js} +2 -2
  25. package/dist/{Checkbox-BeIzx_ZX.js.map → Checkbox-BYWhkYoK.js.map} +1 -1
  26. package/dist/{Checkbox-BB3BDJsK.js → Checkbox-DTzoDcJl.js} +3 -3
  27. package/dist/{Checkbox-BB3BDJsK.js.map → Checkbox-DTzoDcJl.js.map} +1 -1
  28. package/dist/Checkbox.js +1 -1
  29. package/dist/{Chip-D2k5X_wX.js → Chip-CyMNyEPR.js} +3 -3
  30. package/dist/{Chip-D2k5X_wX.js.map → Chip-CyMNyEPR.js.map} +1 -1
  31. package/dist/Chip.js +1 -1
  32. package/dist/Combobox.js +1 -2
  33. package/dist/Combobox.js.map +1 -1
  34. package/dist/{DataTable-0kOuVgSB.js → DataTable-Dwhwvm6R.js} +205 -78
  35. package/dist/DataTable-Dwhwvm6R.js.map +1 -0
  36. package/dist/DataTable.css +47 -5
  37. package/dist/{DateFieldRange-Be_I9GTp.js → DateFieldRange-BUug1tUy.js} +27 -15
  38. package/dist/DateFieldRange-BUug1tUy.js.map +1 -0
  39. package/dist/DateFieldRange.js +1 -1
  40. package/dist/{DateFieldSingle-CsrsY9i8.js → DateFieldSingle-DR7faQGD.js} +5 -5
  41. package/dist/{DateFieldSingle-CsrsY9i8.js.map → DateFieldSingle-DR7faQGD.js.map} +1 -1
  42. package/dist/DateFieldSingle.js +1 -1
  43. package/dist/{DateFieldYearless-m_Hl2gMY.js → DateFieldYearless-7MFcR7L6.js} +4 -4
  44. package/dist/{DateFieldYearless-m_Hl2gMY.js.map → DateFieldYearless-7MFcR7L6.js.map} +1 -1
  45. package/dist/DateFieldYearless.js +1 -1
  46. package/dist/{DateFieldYearlessRange-DNqSTBDr.js → DateFieldYearlessRange-DGtdyISH.js} +3 -3
  47. package/dist/{DateFieldYearlessRange-DNqSTBDr.js.map → DateFieldYearlessRange-DGtdyISH.js.map} +1 -1
  48. package/dist/DateFieldYearlessRange.js +1 -1
  49. package/dist/{DaysOfTheWeek-D58z_eF3.js → DaysOfTheWeek-C7oN9nIe.js} +3 -3
  50. package/dist/{DaysOfTheWeek-D58z_eF3.js.map → DaysOfTheWeek-C7oN9nIe.js.map} +1 -1
  51. package/dist/DaysOfTheWeek.js +1 -1
  52. package/dist/{Dialog-CD-SDfPT.js → Dialog-dE9c90iR.js} +4 -4
  53. package/dist/{Dialog-CD-SDfPT.js.map → Dialog-dE9c90iR.js.map} +1 -1
  54. package/dist/Dialog.js +1 -1
  55. package/dist/{Drawer-s2y0xcgV.js → Drawer-Dk0MsaOU.js} +3 -3
  56. package/dist/{Drawer-s2y0xcgV.js.map → Drawer-Dk0MsaOU.js.map} +1 -1
  57. package/dist/Drawer.js +1 -1
  58. package/dist/DrillDown.js +1 -1
  59. package/dist/{EditCard-B25pj0Jx.js → EditCard-DV2N7zWr.js} +2 -2
  60. package/dist/{EditCard-B25pj0Jx.js.map → EditCard-DV2N7zWr.js.map} +1 -1
  61. package/dist/EditCard.js +1 -1
  62. package/dist/{FieldLabel-D1qPAGtB.js → FieldLabel-VVn8GR64.js} +3 -3
  63. package/dist/{FieldLabel-D1qPAGtB.js.map → FieldLabel-VVn8GR64.js.map} +1 -1
  64. package/dist/FieldLabel.js +1 -1
  65. package/dist/FilterBar-CXGsoWw5.js +413 -0
  66. package/dist/FilterBar-CXGsoWw5.js.map +1 -0
  67. package/dist/FilterBar.js +1 -1
  68. package/dist/{InputMask-BDl09V4u.js → InputMask-VBHWGZGN.js} +3 -3
  69. package/dist/{InputMask-BDl09V4u.js.map → InputMask-VBHWGZGN.js.map} +1 -1
  70. package/dist/InputMask.js +1 -1
  71. package/dist/{ListView-CcRRh1ap.js → ListView-BUrfz75g.js} +6 -6
  72. package/dist/{ListView-CcRRh1ap.js.map → ListView-BUrfz75g.js.map} +1 -1
  73. package/dist/ListView.js +1 -1
  74. package/dist/{ListView.module-CKUQP3kf.js → ListView.module-DfqtCL3Q.js} +3 -3
  75. package/dist/ListView.module-DfqtCL3Q.js.map +1 -0
  76. package/dist/{Listbox-CvQHBFWb.js → Listbox-CRY-0BkS.js} +2 -2
  77. package/dist/{Listbox-CvQHBFWb.js.map → Listbox-CRY-0BkS.js.map} +1 -1
  78. package/dist/Listbox.js +1 -1
  79. package/dist/{Menu-W0c-xKdX.js → Menu-DNJ0YqjA.js} +11 -7
  80. package/dist/Menu-DNJ0YqjA.js.map +1 -0
  81. package/dist/Menu.js +1 -1
  82. package/dist/MenuFooter-CrsZdXvN.js +115 -0
  83. package/dist/MenuFooter-CrsZdXvN.js.map +1 -0
  84. package/dist/MenuFooter.css +28 -0
  85. package/dist/MultiSelectField.js +1 -1
  86. package/dist/{MultiSelectFieldSync-BMVROOjy.js → MultiSelectFieldSync-CIuy3aRD.js} +64 -79
  87. package/dist/MultiSelectFieldSync-CIuy3aRD.js.map +1 -0
  88. package/dist/MultiSelectFieldSync.css +72 -69
  89. package/dist/MultiSelectMenu.js +1 -1
  90. package/dist/{MultiSelectMenuSync-BNPp_2Bm.js → MultiSelectMenuSync-Drz8SEk9.js} +150 -46
  91. package/dist/MultiSelectMenuSync-Drz8SEk9.js.map +1 -0
  92. package/dist/{NumberField-BymFZhIJ.js → NumberField-bgYX7JGs.js} +3 -3
  93. package/dist/{NumberField-BymFZhIJ.js.map → NumberField-bgYX7JGs.js.map} +1 -1
  94. package/dist/NumberField.js +1 -1
  95. package/dist/{Page-SBy27-Wv.js → Page-BSHydn4p.js} +9 -9
  96. package/dist/{Page-SBy27-Wv.js.map → Page-BSHydn4p.js.map} +1 -1
  97. package/dist/Page.js +1 -1
  98. package/dist/{Pagination-Cm8-K6VH.js → Pagination-CAeyJ7Pl.js} +193 -27
  99. package/dist/Pagination-CAeyJ7Pl.js.map +1 -0
  100. package/dist/Pagination.css +4 -2
  101. package/dist/Pagination.js +1 -1
  102. package/dist/{Popover-8mTJoMy7.js → Popover-Cq5tirFz.js} +11 -5
  103. package/dist/Popover-Cq5tirFz.js.map +1 -0
  104. package/dist/Popover.js +1 -1
  105. package/dist/{ProgressBar-C1CkQHV5.js → ProgressBar-ByR50ln7.js} +2 -2
  106. package/dist/{ProgressBar-C1CkQHV5.js.map → ProgressBar-ByR50ln7.js.map} +1 -1
  107. package/dist/ProgressBar.js +1 -1
  108. package/dist/{Radio-BcHMk8dD.js → Radio-CPuctRpl.js} +2 -2
  109. package/dist/{Radio-BcHMk8dD.js.map → Radio-CPuctRpl.js.map} +1 -1
  110. package/dist/{Radio-D5WyQN2i.js → Radio-WlsZFRzX.js} +3 -3
  111. package/dist/{Radio-D5WyQN2i.js.map → Radio-WlsZFRzX.js.map} +1 -1
  112. package/dist/Radio.js +1 -1
  113. package/dist/{RichTextEditor-DstVbYch.js → RichTextEditor-CoPXdaWI.js} +78 -42
  114. package/dist/RichTextEditor-CoPXdaWI.js.map +1 -0
  115. package/dist/RichTextEditor.js +1 -1
  116. package/dist/SavedFiltersButton-DzJijqHz.js +651 -0
  117. package/dist/SavedFiltersButton-DzJijqHz.js.map +1 -0
  118. package/dist/SavedFiltersButton.css +8 -0
  119. package/dist/SavedFiltersButton.d.ts +1 -0
  120. package/dist/SavedFiltersButton.js +2 -0
  121. package/dist/SavedFiltersButton.js.map +1 -0
  122. package/dist/{SearchField-3tUPU8hH.js → SearchField-BMHJCVFu.js} +2 -2
  123. package/dist/{SearchField-3tUPU8hH.js.map → SearchField-BMHJCVFu.js.map} +1 -1
  124. package/dist/{SearchField-BcQZ5e0x.js → SearchField-fXc_vWEr.js} +2 -2
  125. package/dist/{SearchField-BcQZ5e0x.js.map → SearchField-fXc_vWEr.js.map} +1 -1
  126. package/dist/SearchField.js +1 -1
  127. package/dist/{SelectCard-BN-LI14f.js → SelectCard-DLWLHi_i.js} +3 -3
  128. package/dist/{SelectCard-BN-LI14f.js.map → SelectCard-DLWLHi_i.js.map} +1 -1
  129. package/dist/SelectCard.js +1 -1
  130. package/dist/SelectField.js +1 -1
  131. package/dist/{SelectFieldLabel-UbQT7fDD.js → SelectFieldLabel-vemffdmu.js} +2 -2
  132. package/dist/{SelectFieldLabel-UbQT7fDD.js.map → SelectFieldLabel-vemffdmu.js.map} +1 -1
  133. package/dist/{SelectFieldSync-BeDYbJ2M.js → SelectFieldSync-DlGiJ-Iy.js} +5 -4
  134. package/dist/{SelectFieldSync-BeDYbJ2M.js.map → SelectFieldSync-DlGiJ-Iy.js.map} +1 -1
  135. package/dist/SelectMenu.js +1 -1
  136. package/dist/{SelectMenuSync-C-PFemsQ.js → SelectMenuSync-CAweNjRL.js} +23 -9
  137. package/dist/SelectMenuSync-CAweNjRL.js.map +1 -0
  138. package/dist/{SelectOptions-Tr11Ckqw.js → SelectOptions-BGCap9fZ.js} +2 -2
  139. package/dist/{SelectOptions-Tr11Ckqw.js.map → SelectOptions-BGCap9fZ.js.map} +1 -1
  140. package/dist/{SelectTrigger-DTz7V-Xx.js → SelectTrigger-BbneVXMz.js} +3 -3
  141. package/dist/{SelectTrigger-DTz7V-Xx.js.map → SelectTrigger-BbneVXMz.js.map} +1 -1
  142. package/dist/SelectTrigger.js +1 -1
  143. package/dist/{SelectTriggerBase-Ds6I7Qbr.js → SelectTriggerBase-BjIOERXr.js} +136 -40
  144. package/dist/SelectTriggerBase-BjIOERXr.js.map +1 -0
  145. package/dist/{Switch-onmiKoRd.js → Switch-B6bKmpwN.js} +3 -3
  146. package/dist/{Switch-onmiKoRd.js.map → Switch-B6bKmpwN.js.map} +1 -1
  147. package/dist/Switch.js +1 -1
  148. package/dist/Table.js +1 -1
  149. package/dist/{Text-BTzgTpqu.js → Text-w2gWn4K6.js} +2 -2
  150. package/dist/{Text-BTzgTpqu.js.map → Text-w2gWn4K6.js.map} +1 -1
  151. package/dist/Text.js +1 -1
  152. package/dist/{TextField-WTYZJlX3.js → TextField-BQsCh5Nb.js} +2 -2
  153. package/dist/{TextField-WTYZJlX3.js.map → TextField-BQsCh5Nb.js.map} +1 -1
  154. package/dist/{TextField-rVfctM1E.js → TextField-DJ3gEIP6.js} +3 -3
  155. package/dist/{TextField-rVfctM1E.js.map → TextField-DJ3gEIP6.js.map} +1 -1
  156. package/dist/TextField.js +1 -1
  157. package/dist/{Textarea-PXjppEQ6.js → Textarea-BK4Vf84K.js} +3 -3
  158. package/dist/{Textarea-PXjppEQ6.js.map → Textarea-BK4Vf84K.js.map} +1 -1
  159. package/dist/Textarea.js +1 -1
  160. package/dist/{ThemeProvider-D4KdGCaP.js → ThemeProvider-BC6wbuLU.js} +4 -9
  161. package/dist/{ThemeProvider-D4KdGCaP.js.map → ThemeProvider-BC6wbuLU.js.map} +1 -1
  162. package/dist/ThemeProvider.js +1 -1
  163. package/dist/ThemeProvider.module-D9pNGYjP.js +8 -0
  164. package/dist/ThemeProvider.module-D9pNGYjP.js.map +1 -0
  165. package/dist/{TimeField-BJPXIv6W.js → TimeField-B4IW2B_o.js} +4 -4
  166. package/dist/{TimeField-BJPXIv6W.js.map → TimeField-B4IW2B_o.js.map} +1 -1
  167. package/dist/TimeField.js +1 -1
  168. package/dist/Toast.js +2 -2
  169. package/dist/{Toaster-CoChsMD0.js → Toaster-BGY2IzF5.js} +53 -48
  170. package/dist/Toaster-BGY2IzF5.js.map +1 -0
  171. package/dist/{Toaster-DXLc86VD.js → Toaster-DTF9qnTy.js} +2 -2
  172. package/dist/{Toaster-DXLc86VD.js.map → Toaster-DTF9qnTy.js.map} +1 -1
  173. package/dist/{Toolbar-Bt3kShho.js → Toolbar-DObrJ_S5.js} +5 -4
  174. package/dist/{Toolbar-Bt3kShho.js.map → Toolbar-DObrJ_S5.js.map} +1 -1
  175. package/dist/{Toolbar-BUd9eNkq.js → Toolbar-DRJGKk8D.js} +7 -6
  176. package/dist/{Toolbar-BUd9eNkq.js.map → Toolbar-DRJGKk8D.js.map} +1 -1
  177. package/dist/Toolbar.js +2 -2
  178. package/dist/{ToolbarButtonToggle-C06cqJ6F.js → ToolbarButtonToggle-BCKgA8FE.js} +5 -4
  179. package/dist/ToolbarButtonToggle-BCKgA8FE.js.map +1 -0
  180. package/dist/{Tooltip-yr1D06BE.js → Tooltip-DqS6xDUf.js} +27 -25
  181. package/dist/Tooltip-DqS6xDUf.js.map +1 -0
  182. package/dist/Tooltip.js +1 -1
  183. package/dist/TreeSelectField.d.ts +1 -0
  184. package/dist/TreeSelectField.js +2 -0
  185. package/dist/TreeSelectField.js.map +1 -0
  186. package/dist/TreeSelectFieldSync-Do5ffU0b.js +609 -0
  187. package/dist/TreeSelectFieldSync-Do5ffU0b.js.map +1 -0
  188. package/dist/TreeSelectFieldSync.css +173 -0
  189. package/dist/TreeSelectMenu.d.ts +1 -0
  190. package/dist/TreeSelectMenu.js +2 -0
  191. package/dist/TreeSelectMenu.js.map +1 -0
  192. package/dist/TreeSelectMenuSync-s05Ly6lj.js +413 -0
  193. package/dist/TreeSelectMenuSync-s05Ly6lj.js.map +1 -0
  194. package/dist/{YearlessDateInputWithPicker-BIcVgz-J.js → YearlessDateInputWithPicker-BHfFjCqE.js} +2 -2
  195. package/dist/{YearlessDateInputWithPicker-BIcVgz-J.js.map → YearlessDateInputWithPicker-BHfFjCqE.js.map} +1 -1
  196. package/dist/beta.js +15 -12
  197. package/dist/beta.js.map +1 -1
  198. package/dist/confirmationTypes-CG7xl50f.js +75 -0
  199. package/dist/confirmationTypes-CG7xl50f.js.map +1 -0
  200. package/dist/filter-state-DyMDjdRS.js +1867 -0
  201. package/dist/filter-state-DyMDjdRS.js.map +1 -0
  202. package/dist/{FilterBar.css → filter-state.css} +19 -33
  203. package/dist/{floating-ui.react-dom-CHrYz13o.js → floating-ui.react-dom-BIKT960u.js} +2 -2
  204. package/dist/{floating-ui.react-dom-CHrYz13o.js.map → floating-ui.react-dom-BIKT960u.js.map} +1 -1
  205. package/dist/{index-DVYRUKtW.js → index-fSKD4ey4.js} +79 -109
  206. package/dist/{index-DVYRUKtW.js.map → index-fSKD4ey4.js.map} +1 -1
  207. package/dist/index.js +43 -44
  208. package/dist/index.js.map +1 -1
  209. package/dist/keyboard_arrow_left-CiE1n99w.js +6 -0
  210. package/dist/keyboard_arrow_left-CiE1n99w.js.map +1 -0
  211. package/dist/keyboard_arrow_right-DMloHg_F.js +6 -0
  212. package/dist/keyboard_arrow_right-DMloHg_F.js.map +1 -0
  213. package/dist/portalScopeClassNames-jlZkdug_.js +7 -0
  214. package/dist/portalScopeClassNames-jlZkdug_.js.map +1 -0
  215. package/dist/src/beta/components/FilterBar/FilterBar.d.ts +12 -10
  216. package/dist/src/beta/components/FilterBar/FilterDateList.d.ts +15 -5
  217. package/dist/src/beta/components/FilterBar/FilterDateRange.d.ts +34 -29
  218. package/dist/src/beta/components/FilterBar/FilterDateSingle.d.ts +31 -22
  219. package/dist/src/beta/components/FilterBar/FilterDrawer.d.ts +1 -1
  220. package/dist/src/beta/components/FilterBar/FilterItemWrapper.d.ts +4 -12
  221. package/dist/src/beta/components/FilterBar/FilterNumericRange.d.ts +29 -0
  222. package/dist/src/beta/components/FilterBar/FilterPopoverButton.d.ts +86 -0
  223. package/dist/src/beta/components/FilterBar/FilterTextInput.d.ts +29 -0
  224. package/dist/src/beta/components/FilterBar/FilterToggleButton.d.ts +2 -2
  225. package/dist/src/beta/components/FilterBar/FilterTriggerButton.d.ts +50 -0
  226. package/dist/src/beta/components/FilterBar/index.d.ts +1 -1
  227. package/dist/src/beta/components/FilterBar/internal/FilterGroupContext.d.ts +5 -9
  228. package/dist/src/beta/components/FilterBar/internal/adapters/asyncMultiSelect.d.ts +6 -0
  229. package/dist/src/beta/components/FilterBar/internal/adapters/asyncSelect.d.ts +6 -0
  230. package/dist/src/beta/components/FilterBar/internal/adapters/asyncTree.d.ts +6 -0
  231. package/dist/src/beta/components/FilterBar/internal/adapters/boolean.d.ts +3 -0
  232. package/dist/src/beta/components/FilterBar/internal/adapters/custom.d.ts +3 -0
  233. package/dist/src/beta/components/FilterBar/internal/adapters/date.d.ts +5 -0
  234. package/dist/src/beta/components/FilterBar/internal/adapters/dateList.d.ts +5 -0
  235. package/dist/src/beta/components/FilterBar/internal/adapters/dateRange.d.ts +8 -0
  236. package/dist/src/beta/components/FilterBar/internal/adapters/index.d.ts +15 -0
  237. package/dist/src/beta/components/FilterBar/internal/adapters/multiSelect.d.ts +6 -0
  238. package/dist/src/beta/components/FilterBar/internal/adapters/numericRange.d.ts +3 -0
  239. package/dist/src/beta/components/FilterBar/internal/adapters/singleSelect.d.ts +6 -0
  240. package/dist/src/beta/components/FilterBar/internal/adapters/textInput.d.ts +3 -0
  241. package/dist/src/beta/components/FilterBar/internal/adapters/tree.d.ts +6 -0
  242. package/dist/src/beta/components/FilterBar/internal/adapters/types.d.ts +81 -0
  243. package/dist/src/beta/components/FilterBar/internal/types.d.ts +223 -61
  244. package/dist/src/beta/components/FilterBar/internal/utils/dateListLibraryOptions.d.ts +2 -2
  245. package/dist/src/beta/components/FilterBar/internal/utils/filter-state.d.ts +2 -40
  246. package/dist/src/beta/components/FilterBar/internal/utils/test.d.ts +16 -28
  247. package/dist/src/beta/components/FilterBar/internal/utils/value-compare.d.ts +14 -0
  248. package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
  249. package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
  250. package/dist/src/beta/components/MultiSelectField/internal/types.d.ts +4 -2
  251. package/dist/src/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +7 -5
  252. package/dist/src/beta/components/MultiSelectField/internal/useSelectModeMultiple.d.ts +5 -2
  253. package/dist/src/beta/components/MultiSelectField/types.d.ts +21 -36
  254. package/dist/src/beta/components/MultiSelectMenu/MultiSelectMenu.d.ts +1 -0
  255. package/dist/src/beta/components/MultiSelectMenu/types.d.ts +52 -12
  256. package/dist/src/beta/components/SavedFiltersButton/SavedFiltersButton.d.ts +40 -0
  257. package/dist/src/beta/components/SavedFiltersButton/index.d.ts +2 -0
  258. package/dist/src/beta/components/SavedFiltersButton/internal/AddSavedFilterDrawer.d.ts +27 -0
  259. package/dist/src/beta/components/SavedFiltersButton/internal/EditSavedFiltersDrawer.d.ts +38 -0
  260. package/dist/src/beta/components/SavedFiltersButton/types.d.ts +147 -0
  261. package/dist/src/beta/components/SelectField/types.d.ts +7 -11
  262. package/dist/src/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +8 -1
  263. package/dist/src/beta/components/SelectMenu/types.d.ts +21 -1
  264. package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +4 -6
  265. package/dist/src/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +6 -1
  266. package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +6 -0
  267. package/dist/src/beta/components/Table/DataTable/internal/context/focus/DTFocusContext.d.ts +1 -11
  268. package/dist/src/beta/components/Table/DataTable/internal/context/focus/useDTFocusDispatchContext.d.ts +0 -2
  269. package/dist/src/beta/components/Table/DataTable/internal/useColumnOrder.d.ts +1 -0
  270. package/dist/src/beta/components/Table/DataTable/types.d.ts +43 -10
  271. package/dist/src/beta/components/Toolbar/internal/ToolbarContext.d.ts +3 -2
  272. package/dist/src/beta/components/TreeSelectField/TreeSelectField.d.ts +68 -0
  273. package/dist/src/beta/components/TreeSelectField/TreeSelectFieldSync.d.ts +64 -0
  274. package/dist/src/beta/components/TreeSelectField/index.d.ts +3 -0
  275. package/dist/src/beta/components/TreeSelectField/internal/TreeContent.d.ts +31 -0
  276. package/dist/src/beta/components/TreeSelectField/internal/TreePanel.d.ts +56 -0
  277. package/dist/src/beta/components/TreeSelectField/internal/TreeRow.d.ts +56 -0
  278. package/dist/src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.d.ts +82 -0
  279. package/dist/src/beta/components/TreeSelectField/internal/VirtualizedTreePanel.d.ts +57 -0
  280. package/dist/src/beta/components/TreeSelectField/internal/treeSync.d.ts +33 -0
  281. package/dist/src/beta/components/TreeSelectField/internal/treeUtils.d.ts +25 -0
  282. package/dist/src/beta/components/TreeSelectField/internal/types.d.ts +12 -0
  283. package/dist/src/beta/components/TreeSelectField/internal/useTree.d.ts +99 -0
  284. package/dist/src/beta/components/TreeSelectField/internal/useTreeCascade.d.ts +93 -0
  285. package/dist/src/beta/components/TreeSelectField/internal/useTreeKeyboard.d.ts +42 -0
  286. package/dist/src/beta/components/TreeSelectField/internal/useTreeLazyCascade.d.ts +56 -0
  287. package/dist/src/beta/components/TreeSelectField/internal/useTreeLoader.d.ts +58 -0
  288. package/dist/src/beta/components/TreeSelectField/stories/TreeSelectField.stories.data.d.ts +21 -0
  289. package/dist/src/beta/components/TreeSelectField/types.d.ts +124 -0
  290. package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenu.d.ts +29 -0
  291. package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenuSync.d.ts +65 -0
  292. package/dist/src/beta/components/TreeSelectMenu/index.d.ts +4 -0
  293. package/dist/src/beta/components/TreeSelectMenu/types.d.ts +103 -0
  294. package/dist/src/beta/components/index.d.ts +3 -0
  295. package/dist/src/components/Pagination/internal/Pagination.d.ts +1 -0
  296. package/dist/src/components/Pagination/internal/PaginationOverflowMenu.d.ts +12 -1
  297. package/dist/src/internal/components/MenuFooter/MenuFooter.d.ts +43 -0
  298. package/dist/src/internal/components/OptionCheckbox.d.ts +6 -0
  299. package/dist/src/internal/components/OptionContentArea.d.ts +8 -0
  300. package/dist/src/internal/components/OptionRow.d.ts +10 -0
  301. package/dist/src/internal/components/OptionsPopover/OptionsPopover.d.ts +4 -4
  302. package/dist/src/internal/functions/portalScopeClassNames.d.ts +14 -0
  303. package/dist/src/internal/hooks/index.d.ts +2 -0
  304. package/dist/src/internal/hooks/useBulkActionRunner.d.ts +41 -0
  305. package/dist/src/internal/hooks/useConfirmationDraft.d.ts +21 -0
  306. package/dist/src/internal/types/bulkActionTypes.d.ts +39 -0
  307. package/dist/src/internal/types/confirmationTypes.d.ts +19 -0
  308. package/dist/src/internal/types/optionContent.d.ts +19 -0
  309. package/dist/src/internal/types/selectFieldInternalTypes.d.ts +2 -0
  310. package/dist/src/internal/utils/arrayIdsEqual.d.ts +10 -0
  311. package/dist/src/internal/utils/index.d.ts +1 -0
  312. package/dist/{stripInlineMarkdown-C5DNxxwf.js → stripInlineMarkdown-C0bVmYgG.js} +2 -2
  313. package/dist/{stripInlineMarkdown-C5DNxxwf.js.map → stripInlineMarkdown-C0bVmYgG.js.map} +1 -1
  314. package/dist/{syncFilterUtils-COxBIkt6.js → syncFilterUtils-DZqeVWTS.js} +49 -385
  315. package/dist/syncFilterUtils-DZqeVWTS.js.map +1 -0
  316. package/dist/syncFilterUtils.css +21 -164
  317. package/dist/treeSync-Cz3H08cr.js +1453 -0
  318. package/dist/treeSync-Cz3H08cr.js.map +1 -0
  319. package/dist/treeSync.css +40 -0
  320. package/dist/useAdaptiveView-CeYKH0Me.js +386 -0
  321. package/dist/useAdaptiveView-CeYKH0Me.js.map +1 -0
  322. package/dist/useAdaptiveView.css +181 -0
  323. package/dist/useChipLayout-BWZfKDgd.js +51 -0
  324. package/dist/useChipLayout-BWZfKDgd.js.map +1 -0
  325. package/dist/{useDrilldown-KZ9rRsXQ.js → useDrilldown-BJ2dHHKV.js} +2 -2
  326. package/dist/{useDrilldown-KZ9rRsXQ.js.map → useDrilldown-BJ2dHHKV.js.map} +1 -1
  327. package/dist/{Combobox-Cp7M4-4r.js → useInfiniteCombobox-C6TDFfds.js} +206 -31
  328. package/dist/useInfiniteCombobox-C6TDFfds.js.map +1 -0
  329. package/dist/{useMenuInteraction-C4RU5Fdq.js → useMenuInteraction-NEJXUD4I.js} +5 -4
  330. package/dist/useMenuInteraction-NEJXUD4I.js.map +1 -0
  331. package/dist/{useToggleSelection-B5PnTuT2.js → useToggleSelection-Bn7h-gGD.js} +53 -4
  332. package/dist/useToggleSelection-Bn7h-gGD.js.map +1 -0
  333. package/package.json +3 -5
  334. package/dist/Avatar-FDHyqiCy.js.map +0 -1
  335. package/dist/Combobox-Cp7M4-4r.js.map +0 -1
  336. package/dist/DataTable-0kOuVgSB.js.map +0 -1
  337. package/dist/DateFieldRange-Be_I9GTp.js.map +0 -1
  338. package/dist/FilterBar-yysyZ-t1.js +0 -1797
  339. package/dist/FilterBar-yysyZ-t1.js.map +0 -1
  340. package/dist/ListView.module-CKUQP3kf.js.map +0 -1
  341. package/dist/Menu-W0c-xKdX.js.map +0 -1
  342. package/dist/MultiSelectFieldSync-BMVROOjy.js.map +0 -1
  343. package/dist/MultiSelectMenuSync-BNPp_2Bm.js.map +0 -1
  344. package/dist/Pagination-Cm8-K6VH.js.map +0 -1
  345. package/dist/Popover-8mTJoMy7.js.map +0 -1
  346. package/dist/RichTextEditor-DstVbYch.js.map +0 -1
  347. package/dist/SelectMenuSync-C-PFemsQ.js.map +0 -1
  348. package/dist/SelectTriggerBase-Ds6I7Qbr.js.map +0 -1
  349. package/dist/Toaster-CoChsMD0.js.map +0 -1
  350. package/dist/ToolbarButtonToggle-C06cqJ6F.js.map +0 -1
  351. package/dist/Tooltip-yr1D06BE.js.map +0 -1
  352. package/dist/keyboard_arrow_right-DZWNVytH.js +0 -8
  353. package/dist/keyboard_arrow_right-DZWNVytH.js.map +0 -1
  354. package/dist/src/beta/components/FilterBar/FilterButton.d.ts +0 -33
  355. package/dist/src/beta/components/FilterBar/FilterSelect.d.ts +0 -29
  356. package/dist/syncFilterUtils-COxBIkt6.js.map +0 -1
  357. package/dist/useInfiniteCombobox-WcRgC9p6.js +0 -179
  358. package/dist/useInfiniteCombobox-WcRgC9p6.js.map +0 -1
  359. package/dist/useMenuInteraction-C4RU5Fdq.js.map +0 -1
  360. package/dist/useToggleSelection-B5PnTuT2.js.map +0 -1
  361. /package/dist/{Combobox.css → useInfiniteCombobox.css} +0 -0
@@ -0,0 +1,103 @@
1
+ import { KeyboardEvent, ReactElement, RefObject } from 'react';
2
+ import { ConfirmationProp } from '../../../internal/types/confirmationTypes';
3
+ import { TreeSelectFieldNode as TreeSelectMenuNode, TreeSelectFieldValue as TreeSelectMenuValue, TreeSelectFieldValueConsistsOf as TreeSelectMenuValueConsistsOf, TreeSelectFieldHandle, TreeSelectFieldOptionContent as TreeSelectMenuOptionContent } from '../TreeSelectField/types';
4
+ /**
5
+ * Configures a "Clear" button in the menu footer. Presence of this prop
6
+ * enables the button; omit to suppress.
7
+ *
8
+ * - `onClick` — called when the user clicks Clear.
9
+ * - `label` — button label (default "Clear").
10
+ * - `disabled` — whether the button is inert. Filter adapters typically tie
11
+ * this to `!isActive(filter)` so the button is dim when nothing is selected.
12
+ */
13
+ export type TreeSelectMenuClearConfig = {
14
+ onClick: () => void;
15
+ label?: string;
16
+ disabled?: boolean;
17
+ };
18
+ export type { TreeSelectMenuNode, TreeSelectMenuValue, TreeSelectMenuValueConsistsOf, TreeSelectMenuOptionContent, };
19
+ /**
20
+ * Imperative handle for the TreeSelectMenu component.
21
+ * @property clearCache - Clears the options cache.
22
+ * @property invalidate - Clears the cache and triggers a fresh options load.
23
+ * @property expandAll - Expands all tree nodes.
24
+ * @property collapseAll - Collapses all tree nodes.
25
+ */
26
+ export type TreeSelectMenuHandle = TreeSelectFieldHandle;
27
+ /**
28
+ * Props provided to the trigger render function.
29
+ * @property ref - Ref to attach to the trigger element for positioning and focus restoration
30
+ * @property onClick - Click handler to toggle the menu
31
+ * @property onKeyDown - Key handler for keyboard navigation
32
+ * @property aria-haspopup - ARIA attribute indicating the trigger opens a tree
33
+ * @property aria-controls - ARIA attribute linking to the tree element
34
+ * @property aria-expanded - ARIA attribute indicating whether the menu is open
35
+ * @property data-state - Data attribute indicating the open/close state
36
+ */
37
+ export type TreeSelectMenuTriggerProps = {
38
+ ref: RefObject<HTMLButtonElement>;
39
+ onClick: () => void;
40
+ onKeyDown: (e: KeyboardEvent<HTMLButtonElement>) => void;
41
+ "aria-haspopup": "tree";
42
+ "aria-controls": string;
43
+ "aria-expanded": boolean;
44
+ "data-state": "open" | "close";
45
+ };
46
+ /**
47
+ * Props for the TreeSelectMenu component.
48
+ * @property id - Optional id for the menu; an internal id is generated when omitted.
49
+ * @property trigger - Render function that receives trigger props and returns the element that opens the menu.
50
+ * @property onMenuKeyDown - Called for key events on the open menu, after internal navigation handling.
51
+ * @property onImplicitClose - Called when the menu closes implicitly (outside click, blur, Escape).
52
+ * @property onExplicitClose - Called when the menu closes from an explicit selection or trigger toggle.
53
+ * @property label - Accessible label for the menu. Used by screen readers but not rendered visually.
54
+ * @property searchPlaceholder - Placeholder text for the search input inside the menu.
55
+ * @property displayMenuAs - "auto" (default): popover on desktop, dialog on mobile; or force "popover"/"dialog".
56
+ * @property virtualize - When true, renders the tree with windowed virtualization for large datasets.
57
+ * @property disableSearch - Hides the search input and disables search filtering.
58
+ * @property popoverWidth - Width of the popover. Accepts a CSS width value or "reference" to match trigger width.
59
+ * @property debounceMs - Milliseconds to debounce search input before calling loadOptions. Defaults to 200.
60
+ * @property onSearchChange - Called when the search value changes. Pair with controlled search wiring.
61
+ * @property value - Controlled value array. Always an array, even in single-select mode.
62
+ * @property onSelectedOptionsChange - Callback when selection changes.
63
+ * @property selectionMode - "single": one node at a time. "independent": no cascade. "linked" (default): parent-child cascade.
64
+ * @property valueConsistsOf - Controls which nodes are selectable and how the value is shaped.
65
+ * @property defaultExpandLevel - Initial expand depth. 0=collapsed, Infinity=all.
66
+ * @property expandedIds - Controlled set of expanded branch node ids. Pair with onExpandedIdsChange.
67
+ * @property onExpandedIdsChange - Called when the expanded set changes (controlled expansion).
68
+ * @property loadOptions - Async function to load tree nodes. Called with parentNode for lazy branch loading.
69
+ * @property cache - LRU cache configuration for loadOptions results ({ enabled, maxSize }).
70
+ * @property initialLoad - When loadOptions first runs: "immediate" on mount, "open" when the menu opens, or "auto".
71
+ * @property confirmation - When set, selections are buffered as a draft inside the open menu and only commit on Apply; dismissing the menu discards the draft. Pass `true` for default Apply/Cancel labels, or an object to customize.
72
+ * @property clear - Configures a "Clear" button in the menu footer. Omit to suppress.
73
+ */
74
+ export type TreeSelectMenuProps = {
75
+ id?: string;
76
+ trigger: (props: TreeSelectMenuTriggerProps) => ReactElement;
77
+ onMenuKeyDown?: (e: KeyboardEvent) => void;
78
+ onImplicitClose?: () => void;
79
+ onExplicitClose?: () => void;
80
+ label: string;
81
+ searchPlaceholder?: string;
82
+ displayMenuAs?: "auto" | "popover" | "dialog";
83
+ virtualize?: boolean;
84
+ disableSearch?: boolean;
85
+ popoverWidth?: "reference" | number | string;
86
+ debounceMs?: number;
87
+ onSearchChange?: (v: string) => void;
88
+ value: TreeSelectMenuValue[];
89
+ onSelectedOptionsChange: (nodes: TreeSelectMenuValue[]) => void;
90
+ selectionMode?: "single" | "independent" | "linked";
91
+ valueConsistsOf?: TreeSelectMenuValueConsistsOf;
92
+ defaultExpandLevel?: number;
93
+ expandedIds?: Set<string | number>;
94
+ onExpandedIdsChange?: (ids: Set<string | number>) => void;
95
+ loadOptions: (searchValue: string, parentNode?: TreeSelectMenuNode) => TreeSelectMenuNode[] | Promise<TreeSelectMenuNode[]>;
96
+ cache?: {
97
+ enabled?: boolean;
98
+ maxSize?: number;
99
+ };
100
+ initialLoad?: "auto" | "immediate" | "open";
101
+ confirmation?: ConfirmationProp;
102
+ clear?: TreeSelectMenuClearConfig;
103
+ };
@@ -8,3 +8,6 @@ export * from './SelectMenu';
8
8
  export * from './MultiSelectMenu';
9
9
  export * from './InteractiveCard';
10
10
  export * from './RichTextEditor';
11
+ export * from './SavedFiltersButton';
12
+ export * from './TreeSelectField';
13
+ export * from './TreeSelectMenu';
@@ -44,6 +44,7 @@ export declare const Pagination: import('react').ForwardRefExoticComponent<Omit<
44
44
  startPage: number;
45
45
  endPage: number;
46
46
  length: number;
47
+ currentPage: number;
47
48
  onItemClick: (page: number) => void;
48
49
  } & import('react').RefAttributes<HTMLLIElement>>;
49
50
  ItemsPerPageMenu: import('react').ForwardRefExoticComponent<import('./PaginationItemsPerPageMenu').PaginationItemsPerPageMenuProps & import('react').RefAttributes<HTMLDivElement>>;
@@ -16,6 +16,10 @@ export type PaginationOverflowMenuProps = ComponentPropsWithoutRef<"li"> & {
16
16
  * The number of pages in the overflow range.
17
17
  */
18
18
  length: number;
19
+ /**
20
+ * The current active page in the parent pagination.
21
+ */
22
+ currentPage: number;
19
23
  /**
20
24
  * Callback function called when a page in the overflow menu is selected.
21
25
  * @param page The selected page number
@@ -27,7 +31,9 @@ export type PaginationOverflowMenuProps = ComponentPropsWithoutRef<"li"> & {
27
31
  *
28
32
  * Features:
29
33
  * - Displays ellipsis menu for large page ranges
30
- * - Shows all pages in the overflow range as menu items
34
+ * - Renders the page items as a virtualized window only the slice visible
35
+ * in the scroller is in the DOM at any time, keeping pagination cheap
36
+ * even when the overflow spans tens of thousands of pages
31
37
  * - Integrates with pagination navigation system
32
38
  * - Fully accessible with proper ARIA labels
33
39
  * - Consistent styling with design system
@@ -37,6 +43,7 @@ export type PaginationOverflowMenuProps = ComponentPropsWithoutRef<"li"> & {
37
43
  * startPage={4}
38
44
  * endPage={8}
39
45
  * length={5}
46
+ * currentPage={4}
40
47
  * onItemClick={(page) => console.log('Page selected:', page)}
41
48
  * />
42
49
  */
@@ -53,6 +60,10 @@ export declare const PaginationOverflowMenu: import('react').ForwardRefExoticCom
53
60
  * The number of pages in the overflow range.
54
61
  */
55
62
  length: number;
63
+ /**
64
+ * The current active page in the parent pagination.
65
+ */
66
+ currentPage: number;
56
67
  /**
57
68
  * Callback function called when a page in the overflow menu is selected.
58
69
  * @param page The selected page number
@@ -0,0 +1,43 @@
1
+ import { ReactNode } from 'react';
2
+ export type MenuFooterClearConfig = {
3
+ onClick: () => void;
4
+ label?: string;
5
+ disabled?: boolean;
6
+ };
7
+ export type MenuFooterConfirmationConfig = {
8
+ onApply: () => void;
9
+ onCancel: () => void;
10
+ applyLabel?: string;
11
+ cancelLabel?: string;
12
+ applyDisabled?: boolean;
13
+ };
14
+ export type MenuFooterProps = {
15
+ /** Clear-selection button config. Omit to suppress. */
16
+ clear?: MenuFooterClearConfig;
17
+ /** Apply/Cancel pair config. Omit when not in confirmation mode. */
18
+ confirmation?: MenuFooterConfirmationConfig;
19
+ /**
20
+ * Pre-rendered add-new affordance (AddNewItemButton or similar). Layout owns
21
+ * its row vs. inline placement; the caller just provides the node.
22
+ */
23
+ addNew?: ReactNode;
24
+ };
25
+ /**
26
+ * MenuFooter composes the footer of a menu popover/dialog from up to three
27
+ * optional pieces: a clear-selection button, an Apply/Cancel pair, and an
28
+ * add-new affordance.
29
+ *
30
+ * Layout rules:
31
+ * - clear + confirmation + addNew → [addNew full-width row] / [clear | apply cancel]
32
+ * - clear + confirmation → [clear | apply cancel]
33
+ * - clear + addNew → [addNew] / [clear] (stacked, both full-width)
34
+ * - clear → [clear] (full-width)
35
+ * - confirmation + addNew → [addNew | apply cancel] (addNew on the leading side)
36
+ * - confirmation → [apply | cancel]
37
+ * - addNew → [addNew]
38
+ * - (none) → null
39
+ */
40
+ export declare const MenuFooter: {
41
+ ({ clear, confirmation, addNew, }: MenuFooterProps): import("react/jsx-runtime").JSX.Element | null;
42
+ displayName: string;
43
+ };
@@ -0,0 +1,6 @@
1
+ import { CheckState } from '../../types';
2
+ export type OptionCheckboxProps = {
3
+ checkState: CheckState;
4
+ className?: string;
5
+ };
6
+ export declare function OptionCheckbox({ checkState, className }: OptionCheckboxProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from 'react';
2
+ import { OptionContent } from '../types/optionContent';
3
+ export type OptionContentAreaProps = {
4
+ label: string;
5
+ content?: OptionContent;
6
+ children?: ReactNode;
7
+ };
8
+ export declare function OptionContentArea({ label, content, children, }: OptionContentAreaProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
+ export type OptionRowProps = ComponentPropsWithoutRef<"div"> & {
3
+ disabled?: boolean;
4
+ };
5
+ export declare const OptionRow: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
6
+ disabled?: boolean;
7
+ } & import('react').RefAttributes<HTMLDivElement>>;
8
+ export declare const OptionRowSideContent: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
9
+ children: ReactNode;
10
+ } & import('react').RefAttributes<HTMLDivElement>>;
@@ -5,10 +5,10 @@ export type OptionsPopoverProps = {
5
5
  referenceElement: RefObject<HTMLElement>;
6
6
  open: boolean;
7
7
  /**
8
- * Fired when the popover should close either because the user clicked
9
- * outside it, focus moved to an element outside the popover or its
10
- * reference (trigger) element, or the user pressed Escape inside the
11
- * popover.
8
+ * Fired when the popover should close (click-outside, focus-out, or
9
+ * Escape). On Escape, the popover restores focus to `referenceElement`
10
+ * before invoking this callback; for other paths focus has already moved
11
+ * elsewhere intentionally.
12
12
  */
13
13
  onClose: () => void;
14
14
  /** Controls the popover width strategy.
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Class names that re-establish the Anvil2 styling scope on a container.
3
+ *
4
+ * Native `popover` / top-layer elements (toasts, popovers, tooltips, surfaces)
5
+ * are promoted to the top layer and live high in the DOM, escaping any ancestor
6
+ * `AnvilProvider`'s `.anvil2` scope. Without the scope, descendants resolve none
7
+ * of the `--a2-*` design tokens (defined on `.anvil2.theme-core`) and miss the
8
+ * scoped component rules, so they render unstyled.
9
+ *
10
+ * Spread/append these class names onto such containers so they self-scope and
11
+ * render correctly in any host context (including outside an `AnvilProvider`,
12
+ * e.g. when an Anvil2 component is used from a legacy host).
13
+ */
14
+ export declare const portalScopeClassNames: string;
@@ -17,3 +17,5 @@ export * from './useContainerQuery';
17
17
  export * from './useTypeAhead';
18
18
  export * from './useSelectFieldLoading';
19
19
  export * from './useDownshiftEnvironment';
20
+ export * from './useConfirmationDraft';
21
+ export * from './useBulkActionRunner';
@@ -0,0 +1,41 @@
1
+ type BulkComputeResult<T> = T[] | Promise<T[]>;
2
+ export type UseBulkActionRunnerOptions<T> = {
3
+ /** Sets the draft (or commits when confirmation is off). */
4
+ setDraft: (next: T[]) => void;
5
+ };
6
+ export type UseBulkActionRunnerResult<T> = {
7
+ /**
8
+ * True while a bulk-action promise is in flight. While true, callers should
9
+ * disable option rows, override the bulk row's checkState to "loading", and
10
+ * disable Apply.
11
+ */
12
+ pending: boolean;
13
+ /**
14
+ * Run a bulk action. If `compute` returns an array synchronously, the draft
15
+ * is updated immediately. If it returns a promise, the runner enters the
16
+ * pending state until resolve/reject. Stale resolutions (those that finish
17
+ * after another draft mutation or another bulk run, or after `reset()`) are
18
+ * silently discarded.
19
+ */
20
+ runBulk: (compute: (current: T[]) => BulkComputeResult<T>, current: T[]) => void;
21
+ /**
22
+ * Wrap an external draft mutation so that any in-flight bulk promise's
23
+ * eventual resolution is discarded. Use this in place of the raw setDraft
24
+ * whenever the user mutates the draft outside of a bulk action (option
25
+ * click, etc.) so that a slow Select-All-fetching promise can't clobber a
26
+ * subsequent click.
27
+ */
28
+ setDraftAndBump: (next: T[]) => void;
29
+ /**
30
+ * Discard any in-flight bulk resolution. Call when the menu closes so that
31
+ * a promise resolving after close can't apply to the next menu instance.
32
+ */
33
+ reset: () => void;
34
+ };
35
+ /**
36
+ * Runs Select-All / Select-Filtered-style "bulk action" computations against
37
+ * the controlled or draft selection, with support for both synchronous and
38
+ * asynchronous results, and stale-result discard via a monotonic generation.
39
+ */
40
+ export declare function useBulkActionRunner<T>({ setDraft, }: UseBulkActionRunnerOptions<T>): UseBulkActionRunnerResult<T>;
41
+ export {};
@@ -0,0 +1,21 @@
1
+ export type UseConfirmationDraftOptions<T> = {
2
+ value: T;
3
+ onCommit: (value: T) => void;
4
+ isOpen: boolean;
5
+ enabled: boolean;
6
+ isEqual?: (a: T, b: T) => boolean;
7
+ };
8
+ export type UseConfirmationDraftResult<T> = {
9
+ displayValue: T;
10
+ setDraft: (next: T) => void;
11
+ apply: () => void;
12
+ cancel: () => void;
13
+ isDirty: boolean;
14
+ };
15
+ /**
16
+ * Holds a draft copy of a controlled value while a menu is open, so that
17
+ * selections can be confirmed (`apply`) or discarded (`cancel`). When
18
+ * `enabled` is false, `setDraft` passes through directly to `onCommit` and
19
+ * `displayValue` always reflects the controlled `value`.
20
+ */
21
+ export declare function useConfirmationDraft<T>({ value, onCommit, isOpen, enabled, isEqual, }: UseConfirmationDraftOptions<T>): UseConfirmationDraftResult<T>;
@@ -0,0 +1,39 @@
1
+ import { CheckState } from '../../types';
2
+ import { SelectFieldOption } from '../../beta/components/SelectField/types';
3
+ /**
4
+ * Configuration for the "Select All" / "Select Filtered" rows in a
5
+ * MultiSelectMenu or MultiSelectField.
6
+ *
7
+ * Choose exactly one of `onClick` or `compute`:
8
+ *
9
+ * - **`onClick`** — the row fires the callback; the consumer commits the next
10
+ * selection themselves via `onSelectedOptionsChange`. Simple and familiar.
11
+ * When `confirmation` is enabled, `onClick` bypasses the menu's draft layer
12
+ * (the menu warns once in development).
13
+ * - **`compute`** — the menu invokes `compute(currentDraft)` and writes the
14
+ * result into the draft (or commits it, when confirmation is off). `compute`
15
+ * may return a `Promise<SelectFieldOption[]>`; while the promise is pending
16
+ * the menu shows a loading state, disables all option rows, and disables
17
+ * Apply.
18
+ */
19
+ export type BulkActionConfig = {
20
+ label?: string;
21
+ checkState: boolean | CheckState;
22
+ onClick: () => void;
23
+ compute?: never;
24
+ } | {
25
+ label?: string;
26
+ checkState: boolean | CheckState;
27
+ compute: (current: SelectFieldOption[]) => SelectFieldOption[] | Promise<SelectFieldOption[]>;
28
+ onClick?: never;
29
+ };
30
+ /**
31
+ * Normalized form used internally after `checkState`'s `boolean` shorthand has
32
+ * been resolved to a `CheckState`.
33
+ */
34
+ export type ResolvedBulkAction = {
35
+ label?: string;
36
+ checkState: CheckState;
37
+ onClick?: () => void;
38
+ compute?: (current: SelectFieldOption[]) => SelectFieldOption[] | Promise<SelectFieldOption[]>;
39
+ };
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Opt-in confirmation mode for Select* and MultiSelect* components.
3
+ *
4
+ * When set, selection changes are held as a draft inside the open menu and
5
+ * only commit to the controlled `value` when the user clicks Apply. Dismissing
6
+ * the menu (Escape, click outside, toggling the trigger) discards the draft.
7
+ *
8
+ * `true` enables the default Apply/Cancel labels. Pass an object to customize.
9
+ */
10
+ export type ConfirmationProp = boolean | {
11
+ applyLabel?: string;
12
+ cancelLabel?: string;
13
+ };
14
+ export type ResolvedConfirmation = {
15
+ enabled: boolean;
16
+ applyLabel: string;
17
+ cancelLabel: string;
18
+ };
19
+ export declare const resolveConfirmation: (prop: ConfirmationProp | undefined) => ResolvedConfirmation;
@@ -0,0 +1,19 @@
1
+ import { AvatarProps, ChipProps, IconProps } from '../../components';
2
+ /**
3
+ * Shared content shape for option rows in SelectField, MultiSelectField, and TreeSelectField.
4
+ * @property title - Overrides the option label text when provided.
5
+ * @property description - Secondary text displayed below the title in a subdued color.
6
+ * @property chips - Tags displayed below the description.
7
+ * @property avatar - Avatar displayed to the left of the text content.
8
+ * @property icon - Icon displayed to the right of the text content.
9
+ */
10
+ export type OptionContent = {
11
+ title?: string;
12
+ description?: string;
13
+ chips?: Pick<ChipProps, "label" | "color" | "textWrap">[];
14
+ avatar?: Pick<AvatarProps, "name" | "status" | "color" | "image">;
15
+ icon?: Pick<IconProps, "svg" | "color"> & {
16
+ /** Accessible label for the icon. When omitted, the icon is treated as decorative. */
17
+ label?: string;
18
+ };
19
+ };
@@ -2,6 +2,7 @@ import { ReactElement, ReactNode, RefObject } from 'react';
2
2
  import { AiMarkWithTooltipOrPopoverProps, CheckState } from '../../types';
3
3
  import { SelectFieldOption, SelectFieldProps } from '../../beta/components/SelectField/types';
4
4
  import { AddNewItemProps } from './addNewItemTypes';
5
+ import { ResolvedConfirmation } from './confirmationTypes';
5
6
  /**
6
7
  * Metadata about list sections for rendering purposes.
7
8
  * Used by SelectOptions, MultiSelectOptions, and their Menu counterparts to render section headers and dividers.
@@ -63,6 +64,7 @@ export type SelectFieldBaseInternalProps = {
63
64
  initialLoadPerformed: boolean;
64
65
  setInitialLoadPerformed: (val: boolean) => void;
65
66
  inputWrapperRef: RefObject<HTMLDivElement>;
67
+ confirmation?: ResolvedConfirmation;
66
68
  } & AddNewItemProps;
67
69
  export type SelectFieldComboboxInternalProps = SelectFieldBaseInternalProps & {
68
70
  debounceMs: number;
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shallow set-equality of two value arrays by `id`, order-independent.
3
+ *
4
+ * Used as the `isEqual` comparator for `useConfirmationDraft` so that a draft
5
+ * is considered unchanged when it holds the same set of selected items as the
6
+ * committed value, regardless of order.
7
+ */
8
+ export declare function arrayIdsEqual<T extends {
9
+ id: string | number;
10
+ }>(a: T[], b: T[]): boolean;
@@ -1,3 +1,4 @@
1
+ export * from './arrayIdsEqual';
1
2
  export * from './generateChromaticStickersheetProps';
2
3
  export * from './inlineMarkdownRegex';
3
4
  export * from './layerManager';
@@ -1,4 +1,4 @@
1
- import { I as INLINE_MARKDOWN_REGEX } from './FieldLabel-D1qPAGtB.js';
1
+ import { I as INLINE_MARKDOWN_REGEX } from './FieldLabel-VVn8GR64.js';
2
2
 
3
3
  const stripInlineMarkdown = (str) => {
4
4
  const parts = [];
@@ -22,4 +22,4 @@ const stripInlineMarkdown = (str) => {
22
22
  };
23
23
 
24
24
  export { stripInlineMarkdown as s };
25
- //# sourceMappingURL=stripInlineMarkdown-C5DNxxwf.js.map
25
+ //# sourceMappingURL=stripInlineMarkdown-C0bVmYgG.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"stripInlineMarkdown-C5DNxxwf.js","sources":["../src/internal/functions/stripInlineMarkdown.ts"],"sourcesContent":["import { INLINE_MARKDOWN_REGEX } from \"../utils/inlineMarkdownRegex\";\n\n/**\n * Strips inline markdown syntax from a string, returning plain text.\n * Intended for accessibility contexts (e.g. `aria-label`) where only plain text is appropriate.\n *\n * @param str - The string to strip\n * @returns The string with all inline markdown syntax removed\n */\nexport const stripInlineMarkdown = (str: string): string => {\n const parts: string[] = [];\n let lastIndex = 0;\n\n INLINE_MARKDOWN_REGEX.lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = INLINE_MARKDOWN_REGEX.exec(str)) !== null) {\n if (match.index > lastIndex) {\n parts.push(str.substring(lastIndex, match.index));\n }\n\n const savedIndex = INLINE_MARKDOWN_REGEX.lastIndex;\n const inner =\n match[1] ?? match[2] ?? match[3] ?? match[4] ?? match[5] ?? \"\";\n\n // code spans don't support nested markdown, matching parseInlineMarkdown behavior\n parts.push(match[5] ? inner : stripInlineMarkdown(inner));\n\n INLINE_MARKDOWN_REGEX.lastIndex = savedIndex;\n lastIndex = savedIndex;\n }\n\n if (lastIndex < str.length) {\n parts.push(str.substring(lastIndex));\n }\n\n return parts.join(\"\");\n};\n"],"names":[],"mappings":";;AASO,MAAM,mBAAA,GAAsB,CAAC,GAAA,KAAwB;AAC1D,EAAA,MAAM,QAAkB,EAAC;AACzB,EAAA,IAAI,SAAA,GAAY,CAAA;AAEhB,EAAA,qBAAA,CAAsB,SAAA,GAAY,CAAA;AAClC,EAAA,IAAI,KAAA;AAEJ,EAAA,OAAA,CAAQ,KAAA,GAAQ,qBAAA,CAAsB,IAAA,CAAK,GAAG,OAAO,IAAA,EAAM;AACzD,IAAA,IAAI,KAAA,CAAM,QAAQ,SAAA,EAAW;AAC3B,MAAA,KAAA,CAAM,KAAK,GAAA,CAAI,SAAA,CAAU,SAAA,EAAW,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,IAClD;AAEA,IAAA,MAAM,aAAa,qBAAA,CAAsB,SAAA;AACzC,IAAA,MAAM,KAAA,GACJ,KAAA,CAAM,CAAC,CAAA,IAAK,MAAM,CAAC,CAAA,IAAK,KAAA,CAAM,CAAC,KAAK,KAAA,CAAM,CAAC,CAAA,IAAK,KAAA,CAAM,CAAC,CAAA,IAAK,EAAA;AAG9D,IAAA,KAAA,CAAM,KAAK,KAAA,CAAM,CAAC,IAAI,KAAA,GAAQ,mBAAA,CAAoB,KAAK,CAAC,CAAA;AAExD,IAAA,qBAAA,CAAsB,SAAA,GAAY,UAAA;AAClC,IAAA,SAAA,GAAY,UAAA;AAAA,EACd;AAEA,EAAA,IAAI,SAAA,GAAY,IAAI,MAAA,EAAQ;AAC1B,IAAA,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,SAAS,CAAC,CAAA;AAAA,EACrC;AAEA,EAAA,OAAO,KAAA,CAAM,KAAK,EAAE,CAAA;AACtB;;;;"}
1
+ {"version":3,"file":"stripInlineMarkdown-C0bVmYgG.js","sources":["../src/internal/functions/stripInlineMarkdown.ts"],"sourcesContent":["import { INLINE_MARKDOWN_REGEX } from \"../utils/inlineMarkdownRegex\";\n\n/**\n * Strips inline markdown syntax from a string, returning plain text.\n * Intended for accessibility contexts (e.g. `aria-label`) where only plain text is appropriate.\n *\n * @param str - The string to strip\n * @returns The string with all inline markdown syntax removed\n */\nexport const stripInlineMarkdown = (str: string): string => {\n const parts: string[] = [];\n let lastIndex = 0;\n\n INLINE_MARKDOWN_REGEX.lastIndex = 0;\n let match: RegExpExecArray | null;\n\n while ((match = INLINE_MARKDOWN_REGEX.exec(str)) !== null) {\n if (match.index > lastIndex) {\n parts.push(str.substring(lastIndex, match.index));\n }\n\n const savedIndex = INLINE_MARKDOWN_REGEX.lastIndex;\n const inner =\n match[1] ?? match[2] ?? match[3] ?? match[4] ?? match[5] ?? \"\";\n\n // code spans don't support nested markdown, matching parseInlineMarkdown behavior\n parts.push(match[5] ? inner : stripInlineMarkdown(inner));\n\n INLINE_MARKDOWN_REGEX.lastIndex = savedIndex;\n lastIndex = savedIndex;\n }\n\n if (lastIndex < str.length) {\n parts.push(str.substring(lastIndex));\n }\n\n return parts.join(\"\");\n};\n"],"names":[],"mappings":";;AASO,MAAM,mBAAA,GAAsB,CAAC,GAAA,KAAwB;AAC1D,EAAA,MAAM,QAAkB,EAAC;AACzB,EAAA,IAAI,SAAA,GAAY,CAAA;AAEhB,EAAA,qBAAA,CAAsB,SAAA,GAAY,CAAA;AAClC,EAAA,IAAI,KAAA;AAEJ,EAAA,OAAA,CAAQ,KAAA,GAAQ,qBAAA,CAAsB,IAAA,CAAK,GAAG,OAAO,IAAA,EAAM;AACzD,IAAA,IAAI,KAAA,CAAM,QAAQ,SAAA,EAAW;AAC3B,MAAA,KAAA,CAAM,KAAK,GAAA,CAAI,SAAA,CAAU,SAAA,EAAW,KAAA,CAAM,KAAK,CAAC,CAAA;AAAA,IAClD;AAEA,IAAA,MAAM,aAAa,qBAAA,CAAsB,SAAA;AACzC,IAAA,MAAM,KAAA,GACJ,KAAA,CAAM,CAAC,CAAA,IAAK,MAAM,CAAC,CAAA,IAAK,KAAA,CAAM,CAAC,KAAK,KAAA,CAAM,CAAC,CAAA,IAAK,KAAA,CAAM,CAAC,CAAA,IAAK,EAAA;AAG9D,IAAA,KAAA,CAAM,KAAK,KAAA,CAAM,CAAC,IAAI,KAAA,GAAQ,mBAAA,CAAoB,KAAK,CAAC,CAAA;AAExD,IAAA,qBAAA,CAAsB,SAAA,GAAY,UAAA;AAClC,IAAA,SAAA,GAAY,UAAA;AAAA,EACd;AAEA,EAAA,IAAI,SAAA,GAAY,IAAI,MAAA,EAAQ;AAC1B,IAAA,KAAA,CAAM,IAAA,CAAK,GAAA,CAAI,SAAA,CAAU,SAAS,CAAC,CAAA;AAAA,EACrC;AAEA,EAAA,OAAO,KAAA,CAAM,KAAK,EAAE,CAAA;AACtB;;;;"}