@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
@@ -1,2 +1,2 @@
1
- export { R as RichTextEditor } from './RichTextEditor-DstVbYch.js';
1
+ export { R as RichTextEditor } from './RichTextEditor-CoPXdaWI.js';
2
2
  //# sourceMappingURL=RichTextEditor.js.map
@@ -0,0 +1,651 @@
1
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
+ import { useState, useEffect, useRef, useMemo, useCallback } from 'react';
3
+ import { S as SvgAdd } from './add-BcQkAUip.js';
4
+ import { S as SvgEdit } from './edit-DQOiktcu.js';
5
+ import { B as Button } from './Button-C_V2xQAs.js';
6
+ import { T as Text } from './Text-w2gWn4K6.js';
7
+ import { F as Flex } from './Flex-_orhvoxS.js';
8
+ import { a as OptionsPopover } from './useAdaptiveView-CeYKH0Me.js';
9
+ import { O as OptionsPanel } from './syncFilterUtils-DZqeVWTS.js';
10
+ import { u as useMenuInteraction } from './useMenuInteraction-NEJXUD4I.js';
11
+ import { c as cloneFiltersWithItemRefs, u as updateSingleFilter, b as getAdapter, D as DateListDialog, e as FilterTriggerButton } from './filter-state-DyMDjdRS.js';
12
+ import { D as Drawer } from './Drawer-Dk0MsaOU.js';
13
+ import { T as TextField } from './TextField-BQsCh5Nb.js';
14
+ import { A as Alert } from './Alert-CNDLoh6b.js';
15
+ import { D as Divider } from './Divider-CxtTyw8_.js';
16
+ import { DndSort } from './DndSort.js';
17
+ import { u as useDrillDown, D as DrillDown } from './useDrilldown-BJ2dHHKV.js';
18
+
19
+ import './SavedFiltersButton.css';const footer = "_footer_1cnkf_7";
20
+ const styles = {
21
+ "empty-state": "_empty-state_1cnkf_1",
22
+ footer: footer
23
+ };
24
+
25
+ const AddSavedFilterDrawer = ({
26
+ open,
27
+ onClose,
28
+ filtersSnapshot,
29
+ onSave,
30
+ validateName
31
+ }) => {
32
+ const [name, setName] = useState("");
33
+ const [submitting, setSubmitting] = useState(false);
34
+ const [submitError, setSubmitError] = useState(void 0);
35
+ const [justSubmitted, setJustSubmitted] = useState(false);
36
+ useEffect(() => {
37
+ if (open) {
38
+ setName("");
39
+ setSubmitting(false);
40
+ setSubmitError(void 0);
41
+ setJustSubmitted(false);
42
+ }
43
+ }, [open]);
44
+ const trimmed = name.trim();
45
+ const validationError = !justSubmitted && validateName ? validateName(trimmed) : void 0;
46
+ const canSubmit = trimmed.length > 0 && !validationError && !submitting;
47
+ const handleAdd = async () => {
48
+ if (!canSubmit) return;
49
+ setSubmitting(true);
50
+ setSubmitError(void 0);
51
+ try {
52
+ await onSave({ name: trimmed, filters: filtersSnapshot });
53
+ setJustSubmitted(true);
54
+ onClose();
55
+ } catch (err) {
56
+ setSubmitError(
57
+ err instanceof Error && err.message ? err.message : "Failed to save filter."
58
+ );
59
+ setSubmitting(false);
60
+ }
61
+ };
62
+ const handleCancel = () => {
63
+ if (submitting) return;
64
+ onClose();
65
+ };
66
+ return /* @__PURE__ */ jsxs(Drawer, { open, onClose: handleCancel, children: [
67
+ /* @__PURE__ */ jsx(Drawer.Header, { children: "Save Current Filter" }),
68
+ /* @__PURE__ */ jsx(Drawer.Content, { children: /* @__PURE__ */ jsx(Flex, { direction: "column", gap: "4", grow: 1, children: /* @__PURE__ */ jsx(
69
+ TextField,
70
+ {
71
+ label: "Filter Name",
72
+ placeholder: "Name this filter",
73
+ value: name,
74
+ onChange: (e) => setName(e?.target.value ?? ""),
75
+ disabled: submitting,
76
+ required: true,
77
+ error: submitError ?? validationError,
78
+ onKeyDown: (e) => {
79
+ if (e.key === "Enter" && canSubmit) {
80
+ e.preventDefault();
81
+ handleAdd();
82
+ }
83
+ }
84
+ }
85
+ ) }) }),
86
+ /* @__PURE__ */ jsx(Drawer.Footer, { children: /* @__PURE__ */ jsxs(Flex, { justifyContent: "flex-end", gap: "3", grow: 1, children: [
87
+ /* @__PURE__ */ jsx(Button, { onClick: handleCancel, disabled: submitting, children: "Cancel" }),
88
+ /* @__PURE__ */ jsx(
89
+ Button,
90
+ {
91
+ appearance: "primary",
92
+ onClick: handleAdd,
93
+ disabled: !canSubmit,
94
+ loading: submitting,
95
+ children: "Add Saved Filter"
96
+ }
97
+ )
98
+ ] }) })
99
+ ] });
100
+ };
101
+
102
+ const DEFAULT_ALERT_TEXT = {
103
+ saveSuccess: "Filter saved.",
104
+ saveError: "Failed to save filter.",
105
+ updateSuccess: "Filter updated.",
106
+ updateError: "Failed to update filter.",
107
+ deleteSuccess: "Filter deleted.",
108
+ deleteError: "Failed to delete filter.",
109
+ reorderError: "Failed to reorder filters."
110
+ };
111
+ const EDIT_INDEX = 0;
112
+ const EditSavedFiltersDrawer = ({
113
+ open,
114
+ onClose,
115
+ savedFilters,
116
+ onUpdate,
117
+ onDelete,
118
+ onReorder,
119
+ validateName,
120
+ alertText
121
+ }) => {
122
+ const { setIndex, back, drillDownProps } = useDrillDown();
123
+ const [editingId, setEditingId] = useState(null);
124
+ const [drilldownName, setDrilldownName] = useState("");
125
+ const [drilldownDraft, setDrilldownDraft] = useState([]);
126
+ const [dateListDialogState, setDateListDialogState] = useState(null);
127
+ const [submitting, setSubmitting] = useState(
128
+ null
129
+ );
130
+ const [submitError, setSubmitError] = useState(null);
131
+ const seededForRef = useRef(null);
132
+ const [listAlert, setListAlert] = useState(null);
133
+ const [drilldownAlert, setDrilldownAlert] = useState(
134
+ null
135
+ );
136
+ useEffect(() => {
137
+ if (!open) {
138
+ setEditingId(null);
139
+ seededForRef.current = null;
140
+ setSubmitError(null);
141
+ setSubmitting(null);
142
+ setListAlert(null);
143
+ setDrilldownAlert(null);
144
+ setIndex(void 0);
145
+ }
146
+ }, [open, setIndex]);
147
+ const drilldownTarget = editingId ? savedFilters.find((s) => s.id === editingId) : void 0;
148
+ useEffect(() => {
149
+ if (!editingId || !drilldownTarget) return;
150
+ if (seededForRef.current === editingId) return;
151
+ seededForRef.current = editingId;
152
+ setDrilldownName(drilldownTarget.name);
153
+ setDrilldownDraft(cloneFiltersWithItemRefs(drilldownTarget.filters));
154
+ setSubmitError(null);
155
+ }, [editingId, drilldownTarget]);
156
+ const resolvedAlertText = useMemo(
157
+ () => ({ ...DEFAULT_ALERT_TEXT, ...alertText }),
158
+ [alertText]
159
+ );
160
+ const handleEdit = useCallback(
161
+ (id) => {
162
+ setListAlert(null);
163
+ setEditingId(id);
164
+ setIndex(EDIT_INDEX);
165
+ },
166
+ [setIndex]
167
+ );
168
+ const handleDrop = useCallback(
169
+ (event) => {
170
+ if (!onReorder || !event.valid || !event.zoneSort) return;
171
+ Promise.resolve(onReorder(event.zoneSort.map((id) => String(id)))).catch(
172
+ (err) => {
173
+ console.error(
174
+ "SavedFiltersButton onReorderSavedFilters failed:",
175
+ err
176
+ );
177
+ setListAlert({
178
+ status: "danger",
179
+ title: err instanceof Error && err.message ? err.message : resolvedAlertText.reorderError
180
+ });
181
+ }
182
+ );
183
+ },
184
+ [onReorder, resolvedAlertText]
185
+ );
186
+ const sortedIds = useMemo(
187
+ () => savedFilters.map((s) => s.id),
188
+ [savedFilters]
189
+ );
190
+ const handleBackToList = useCallback(() => {
191
+ seededForRef.current = null;
192
+ setEditingId(null);
193
+ setSubmitError(null);
194
+ setDrilldownAlert(null);
195
+ back();
196
+ }, [back]);
197
+ const handleDraftChange = useCallback((filterId, value) => {
198
+ setDrilldownDraft((prev) => updateSingleFilter(prev, filterId, value));
199
+ }, []);
200
+ const requestDateListDialog = useCallback(
201
+ (filterId, libraryId) => {
202
+ setDateListDialogState({ filterId, libraryId });
203
+ },
204
+ []
205
+ );
206
+ const drilldownForm = useMemo(() => {
207
+ if (!drilldownTarget) return null;
208
+ return drilldownDraft.map((draftFilter) => {
209
+ const originalFilter = drilldownTarget.filters.find((f) => f.id === draftFilter.id) ?? draftFilter;
210
+ return getAdapter(draftFilter).renderDrawer({
211
+ originalFilter,
212
+ draftFilter,
213
+ onDraftChange: handleDraftChange,
214
+ requestDateListDialog
215
+ });
216
+ });
217
+ }, [
218
+ drilldownDraft,
219
+ drilldownTarget,
220
+ handleDraftChange,
221
+ requestDateListDialog
222
+ ]);
223
+ const trimmedName = drilldownName.trim();
224
+ const validationError = validateName && editingId ? validateName(trimmedName, editingId) : void 0;
225
+ const canSubmit = editingId !== null && trimmedName.length > 0 && !validationError && submitting === null;
226
+ const handleUpdate = useCallback(async () => {
227
+ if (!editingId || !onUpdate || !canSubmit) return;
228
+ setSubmitting("update");
229
+ setSubmitError(null);
230
+ setDrilldownAlert(null);
231
+ try {
232
+ await onUpdate(editingId, {
233
+ name: trimmedName,
234
+ filters: drilldownDraft
235
+ });
236
+ seededForRef.current = null;
237
+ setEditingId(null);
238
+ back();
239
+ setSubmitting(null);
240
+ setListAlert({
241
+ status: "success",
242
+ title: resolvedAlertText.updateSuccess
243
+ });
244
+ } catch (err) {
245
+ setDrilldownAlert({
246
+ status: "danger",
247
+ title: err instanceof Error && err.message ? err.message : resolvedAlertText.updateError
248
+ });
249
+ setSubmitting(null);
250
+ }
251
+ }, [
252
+ editingId,
253
+ onUpdate,
254
+ canSubmit,
255
+ trimmedName,
256
+ drilldownDraft,
257
+ resolvedAlertText,
258
+ back
259
+ ]);
260
+ const handleDelete = useCallback(async () => {
261
+ if (!editingId || !onDelete || submitting !== null) return;
262
+ if (drilldownTarget?.disableDelete) return;
263
+ setSubmitting("delete");
264
+ setSubmitError(null);
265
+ setDrilldownAlert(null);
266
+ try {
267
+ await onDelete(editingId);
268
+ seededForRef.current = null;
269
+ setEditingId(null);
270
+ back();
271
+ setSubmitting(null);
272
+ setListAlert({
273
+ status: "success",
274
+ title: resolvedAlertText.deleteSuccess
275
+ });
276
+ } catch (err) {
277
+ seededForRef.current = null;
278
+ setEditingId(null);
279
+ back();
280
+ setSubmitting(null);
281
+ setListAlert({
282
+ status: "danger",
283
+ title: err instanceof Error && err.message ? err.message : resolvedAlertText.deleteError
284
+ });
285
+ }
286
+ }, [
287
+ editingId,
288
+ onDelete,
289
+ submitting,
290
+ drilldownTarget,
291
+ resolvedAlertText,
292
+ back
293
+ ]);
294
+ const dateListDialogTarget = dateListDialogState ? drilldownDraft.find(
295
+ (f) => f.id === dateListDialogState.filterId && f.type === "dateList"
296
+ ) : void 0;
297
+ const dateListDialogSelected = dateListDialogTarget?.selectedOption;
298
+ const dateListDialogInitialValue = dateListDialogSelected && dateListDialogSelected.id === dateListDialogState?.libraryId && dateListDialogSelected.value !== null ? dateListDialogSelected.value : void 0;
299
+ const drilldownTitle = drilldownTarget?.name ?? "Edit Saved Filter";
300
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
301
+ /* @__PURE__ */ jsxs(Drawer, { open, onClose, ...drillDownProps, children: [
302
+ /* @__PURE__ */ jsx(Drawer.Header, { children: "Edit Saved Filters" }),
303
+ /* @__PURE__ */ jsx(Drawer.Content, { children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "4", grow: 1, children: [
304
+ listAlert && /* @__PURE__ */ jsx(Alert, { title: listAlert.title, status: listAlert.status }),
305
+ savedFilters.length === 0 ? /* @__PURE__ */ jsx(Text, { subdued: true, size: "small", children: "No saved filters to edit." }) : onReorder ? /* @__PURE__ */ jsx(DndSort, { onDrop: handleDrop, children: /* @__PURE__ */ jsx(
306
+ DndSort.Zone,
307
+ {
308
+ sortable: true,
309
+ id: "saved-filters-zone",
310
+ label: "Saved filters",
311
+ orientation: "vertical",
312
+ sortedIds,
313
+ gap: "2",
314
+ children: savedFilters.map((saved) => /* @__PURE__ */ jsx(
315
+ DndSort.Card,
316
+ {
317
+ id: saved.id,
318
+ label: saved.name,
319
+ dragOnlyWithHandle: true,
320
+ children: /* @__PURE__ */ jsxs(
321
+ Flex,
322
+ {
323
+ alignItems: "center",
324
+ justifyContent: "space-between",
325
+ gap: "2",
326
+ grow: 1,
327
+ children: [
328
+ /* @__PURE__ */ jsx(Text, { children: saved.name }),
329
+ !saved.disableEdit && /* @__PURE__ */ jsx(
330
+ Button,
331
+ {
332
+ appearance: "secondary",
333
+ size: "small",
334
+ icon: SvgEdit,
335
+ "aria-label": `Edit ${saved.name}`,
336
+ onClick: () => handleEdit(saved.id)
337
+ }
338
+ )
339
+ ]
340
+ }
341
+ )
342
+ },
343
+ saved.id
344
+ ))
345
+ }
346
+ ) }) : /* @__PURE__ */ jsx(Flex, { direction: "column", gap: "2", children: savedFilters.map((saved) => /* @__PURE__ */ jsxs(
347
+ Flex,
348
+ {
349
+ alignItems: "center",
350
+ justifyContent: "space-between",
351
+ gap: "2",
352
+ children: [
353
+ /* @__PURE__ */ jsx(Text, { children: saved.name }),
354
+ !saved.disableEdit && /* @__PURE__ */ jsx(
355
+ Button,
356
+ {
357
+ appearance: "secondary",
358
+ size: "small",
359
+ icon: SvgEdit,
360
+ "aria-label": `Edit ${saved.name}`,
361
+ onClick: () => handleEdit(saved.id)
362
+ }
363
+ )
364
+ ]
365
+ },
366
+ saved.id
367
+ )) })
368
+ ] }) }),
369
+ /* @__PURE__ */ jsx(Drawer.Footer, { children: /* @__PURE__ */ jsx(Flex, { justifyContent: "flex-end", grow: 1, children: /* @__PURE__ */ jsx(Button, { onClick: onClose, children: "Close" }) }) }),
370
+ /* @__PURE__ */ jsxs(DrillDown, { index: EDIT_INDEX, children: [
371
+ /* @__PURE__ */ jsx(DrillDown.Header, { children: drilldownTitle }),
372
+ /* @__PURE__ */ jsx(DrillDown.Content, { children: /* @__PURE__ */ jsxs(Flex, { direction: "column", gap: "4", grow: 1, children: [
373
+ drilldownAlert && /* @__PURE__ */ jsx(
374
+ Alert,
375
+ {
376
+ title: drilldownAlert.title,
377
+ status: drilldownAlert.status
378
+ }
379
+ ),
380
+ /* @__PURE__ */ jsx(
381
+ TextField,
382
+ {
383
+ label: "Filter Name",
384
+ placeholder: "Name this filter",
385
+ value: drilldownName,
386
+ onChange: (e) => setDrilldownName(e?.target.value ?? ""),
387
+ disabled: submitting !== null,
388
+ required: true,
389
+ error: submitError ?? validationError
390
+ }
391
+ ),
392
+ /* @__PURE__ */ jsx(Divider, {}),
393
+ drilldownForm
394
+ ] }) }),
395
+ /* @__PURE__ */ jsx(DrillDown.Footer, { children: /* @__PURE__ */ jsxs(
396
+ Flex,
397
+ {
398
+ justifyContent: drilldownTarget?.disableDelete ? "flex-end" : "space-between",
399
+ gap: "3",
400
+ grow: 1,
401
+ children: [
402
+ !drilldownTarget?.disableDelete && /* @__PURE__ */ jsx(
403
+ Button,
404
+ {
405
+ appearance: "danger-secondary",
406
+ onClick: handleDelete,
407
+ loading: submitting === "delete",
408
+ disabled: submitting !== null,
409
+ children: "Delete Filter"
410
+ }
411
+ ),
412
+ /* @__PURE__ */ jsxs(Flex, { gap: "3", children: [
413
+ /* @__PURE__ */ jsx(
414
+ Button,
415
+ {
416
+ onClick: handleBackToList,
417
+ disabled: submitting !== null,
418
+ children: "Cancel"
419
+ }
420
+ ),
421
+ /* @__PURE__ */ jsx(
422
+ Button,
423
+ {
424
+ appearance: "primary",
425
+ onClick: handleUpdate,
426
+ disabled: !canSubmit,
427
+ loading: submitting === "update",
428
+ children: "Update Filter"
429
+ }
430
+ )
431
+ ] })
432
+ ]
433
+ }
434
+ ) })
435
+ ] })
436
+ ] }),
437
+ /* @__PURE__ */ jsx(
438
+ DateListDialog,
439
+ {
440
+ libraryId: dateListDialogState?.libraryId ?? null,
441
+ parentFilterId: dateListDialogState?.filterId ?? "",
442
+ initialValue: dateListDialogInitialValue,
443
+ mode: dateListDialogTarget?.mode,
444
+ dialogCtaLabel: "Save",
445
+ onCommit: (option) => {
446
+ if (dateListDialogState) {
447
+ handleDraftChange(dateListDialogState.filterId, option);
448
+ }
449
+ setDateListDialogState(null);
450
+ },
451
+ onCancel: () => setDateListDialogState(null)
452
+ }
453
+ )
454
+ ] });
455
+ };
456
+
457
+ const SavedFiltersButton = (props) => {
458
+ const {
459
+ savedFilters,
460
+ currentFilters,
461
+ onApplySavedFilter,
462
+ onSaveCurrentFilter,
463
+ onUpdateSavedFilter,
464
+ onDeleteSavedFilter,
465
+ onReorderSavedFilters,
466
+ validateName,
467
+ alertText,
468
+ activeSavedFilterId,
469
+ label: labelProp,
470
+ emptyState
471
+ } = props;
472
+ const DEFAULT_LABEL = "Saved Filters";
473
+ const label = labelProp ? labelProp : activeSavedFilterId ? savedFilters.find((sf) => sf.id === activeSavedFilterId)?.name || DEFAULT_LABEL : DEFAULT_LABEL;
474
+ const triggerRef = useRef(null);
475
+ const items = useMemo(
476
+ () => savedFilters.map((saved) => ({
477
+ id: saved.id,
478
+ type: "option",
479
+ original: { id: saved.id, label: saved.name }
480
+ })),
481
+ [savedFilters]
482
+ );
483
+ const selectedItemIds = useMemo(
484
+ () => activeSavedFilterId ? /* @__PURE__ */ new Set([activeSavedFilterId]) : /* @__PURE__ */ new Set(),
485
+ [activeSavedFilterId]
486
+ );
487
+ const getCheckedState = useCallback(
488
+ (item) => item.id === activeSavedFilterId ? "checked" : "unchecked",
489
+ [activeSavedFilterId]
490
+ );
491
+ const handleItemActivate = useCallback(
492
+ (item) => {
493
+ const saved = savedFilters.find((s) => s.id === item.id);
494
+ if (saved) onApplySavedFilter(saved);
495
+ },
496
+ [savedFilters, onApplySavedFilter]
497
+ );
498
+ const [isOpen, setIsOpen] = useState(false);
499
+ const {
500
+ closeMenu,
501
+ highlightedIndex,
502
+ getTriggerProps,
503
+ getMenuProps,
504
+ getItemProps
505
+ } = useMenuInteraction({
506
+ items,
507
+ sectionsMeta: [],
508
+ onItemActivate: handleItemActivate,
509
+ selectedItemIds,
510
+ displayAs: "popover",
511
+ closeOnActivate: true,
512
+ id: "saved-filters",
513
+ triggerRef,
514
+ label,
515
+ isOpen,
516
+ setIsOpen
517
+ });
518
+ const handleClickOutside = useCallback(() => {
519
+ closeMenu({ restoreFocus: false });
520
+ }, [closeMenu]);
521
+ const triggerProps = getTriggerProps();
522
+ const [addOpen, setAddOpen] = useState(false);
523
+ const [editOpen, setEditOpen] = useState(false);
524
+ const [filtersSnapshot, setFiltersSnapshot] = useState(
525
+ []
526
+ );
527
+ const handleSaveCurrentClick = useCallback(() => {
528
+ setFiltersSnapshot(currentFilters);
529
+ closeMenu({ restoreFocus: false });
530
+ setAddOpen(true);
531
+ }, [closeMenu, currentFilters]);
532
+ const handleEditClick = useCallback(() => {
533
+ closeMenu({ restoreFocus: false });
534
+ setEditOpen(true);
535
+ }, [closeMenu]);
536
+ const handleFooterKeyDown = (e) => {
537
+ if (e.key === "Escape") {
538
+ e.preventDefault();
539
+ closeMenu();
540
+ }
541
+ };
542
+ const footer = /* @__PURE__ */ jsxs(
543
+ Flex,
544
+ {
545
+ direction: "column",
546
+ gap: "2",
547
+ className: styles["footer"],
548
+ onKeyDown: handleFooterKeyDown,
549
+ children: [
550
+ /* @__PURE__ */ jsx(
551
+ Button,
552
+ {
553
+ appearance: "secondary",
554
+ size: "small",
555
+ icon: { before: SvgAdd },
556
+ style: { width: "100%" },
557
+ onClick: handleSaveCurrentClick,
558
+ children: "Save Current Filter"
559
+ }
560
+ ),
561
+ /* @__PURE__ */ jsx(
562
+ Button,
563
+ {
564
+ appearance: "secondary",
565
+ size: "small",
566
+ icon: { before: SvgEdit },
567
+ style: { width: "100%" },
568
+ onClick: handleEditClick,
569
+ disabled: savedFilters.length === 0,
570
+ children: "Edit Saved Filters"
571
+ }
572
+ )
573
+ ]
574
+ }
575
+ );
576
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
577
+ /* @__PURE__ */ jsx(
578
+ FilterTriggerButton,
579
+ {
580
+ ...triggerProps,
581
+ filterId: "saved-filters",
582
+ label,
583
+ isSelected: !!(activeSavedFilterId ?? false)
584
+ }
585
+ ),
586
+ /* @__PURE__ */ jsx(
587
+ OptionsPopover,
588
+ {
589
+ id: "saved-filters-popover",
590
+ referenceElement: triggerRef,
591
+ open: isOpen,
592
+ onClose: handleClickOutside,
593
+ width: 280,
594
+ footer,
595
+ children: items.length === 0 ? /* @__PURE__ */ jsx(
596
+ Flex,
597
+ {
598
+ direction: "column",
599
+ alignItems: "center",
600
+ justifyContent: "center",
601
+ className: styles["empty-state"],
602
+ children: typeof emptyState === "string" || emptyState == null ? /* @__PURE__ */ jsx(Text, { subdued: true, size: "small", children: emptyState ?? "No saved filters yet." }) : emptyState
603
+ }
604
+ ) : /* @__PURE__ */ jsx(
605
+ OptionsPanel,
606
+ {
607
+ isOpen,
608
+ items,
609
+ getMenuProps,
610
+ getItemProps,
611
+ highlightedIndex,
612
+ getCheckedState,
613
+ selectionType: "single",
614
+ hasMore: false,
615
+ onLoadMore: () => {
616
+ },
617
+ loading: false,
618
+ loadingMore: false
619
+ }
620
+ )
621
+ }
622
+ ),
623
+ /* @__PURE__ */ jsx(
624
+ AddSavedFilterDrawer,
625
+ {
626
+ open: addOpen,
627
+ onClose: () => setAddOpen(false),
628
+ filtersSnapshot,
629
+ onSave: onSaveCurrentFilter,
630
+ validateName: validateName ? (name) => validateName(name) : void 0
631
+ }
632
+ ),
633
+ /* @__PURE__ */ jsx(
634
+ EditSavedFiltersDrawer,
635
+ {
636
+ open: editOpen,
637
+ onClose: () => setEditOpen(false),
638
+ savedFilters,
639
+ onUpdate: onUpdateSavedFilter,
640
+ onDelete: onDeleteSavedFilter,
641
+ onReorder: onReorderSavedFilters,
642
+ validateName,
643
+ alertText
644
+ }
645
+ )
646
+ ] });
647
+ };
648
+ SavedFiltersButton.displayName = "SavedFiltersButton";
649
+
650
+ export { SavedFiltersButton as S };
651
+ //# sourceMappingURL=SavedFiltersButton-DzJijqHz.js.map