@servicetitan/anvil2 3.4.2 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/{AiMark-BLBxE1Oj.js → AiMark-D3nw58ho.js} +2 -2
  3. package/dist/{AiMark-BLBxE1Oj.js.map → AiMark-D3nw58ho.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-nwycCmiL.js → Alert-CSV4hRBD.js} +2 -2
  6. package/dist/{Alert-nwycCmiL.js.map → Alert-CSV4hRBD.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{AnvilProvider-BQsp0VPq.js → AnvilProvider-b3gvW6Md.js} +4 -39
  9. package/dist/AnvilProvider-b3gvW6Md.js.map +1 -0
  10. package/dist/AnvilProvider.js +1 -1
  11. package/dist/{Breadcrumbs-DbV4ld8s.js → Breadcrumbs-BkZVA_ux.js} +2 -2
  12. package/dist/{Breadcrumbs-DbV4ld8s.js.map → Breadcrumbs-BkZVA_ux.js.map} +1 -1
  13. package/dist/Breadcrumbs.js +1 -1
  14. package/dist/{Calendar-B6DqiqoX.js → Calendar-CJaZFWmO.js} +2 -2
  15. package/dist/{Calendar-B6DqiqoX.js.map → Calendar-CJaZFWmO.js.map} +1 -1
  16. package/dist/{Calendar-DqQczZgw.js → Calendar-Cw2UKiof.js} +7 -2
  17. package/dist/Calendar-Cw2UKiof.js.map +1 -0
  18. package/dist/Calendar.js +2 -2
  19. package/dist/{Checkbox-sgpRzk6a.js → Checkbox-7KubQWJc.js} +3 -3
  20. package/dist/{Checkbox-sgpRzk6a.js.map → Checkbox-7KubQWJc.js.map} +1 -1
  21. package/dist/{Checkbox-BkjA8p3F.js → Checkbox-Bq2EfltF.js} +2 -2
  22. package/dist/{Checkbox-BkjA8p3F.js.map → Checkbox-Bq2EfltF.js.map} +1 -1
  23. package/dist/Checkbox.js +1 -1
  24. package/dist/{Chip-DvmMbb5g.js → Chip-yyEbwLdG.js} +2 -2
  25. package/dist/{Chip-DvmMbb5g.js.map → Chip-yyEbwLdG.js.map} +1 -1
  26. package/dist/Chip.js +1 -1
  27. package/dist/Combobox.js +1 -1
  28. package/dist/{DataTable-DUTfew48.js → DataTable-BgD9Sh-7.js} +19 -7
  29. package/dist/{DataTable-DUTfew48.js.map → DataTable-BgD9Sh-7.js.map} +1 -1
  30. package/dist/{DateFieldRange-CjjqTRNu.js → DateFieldRange-OlkU5oeu.js} +4 -4
  31. package/dist/{DateFieldRange-CjjqTRNu.js.map → DateFieldRange-OlkU5oeu.js.map} +1 -1
  32. package/dist/DateFieldRange.js +1 -1
  33. package/dist/{DateFieldSingle-dSrWge6Y.js → DateFieldSingle-BGGlLAID.js} +4 -4
  34. package/dist/{DateFieldSingle-dSrWge6Y.js.map → DateFieldSingle-BGGlLAID.js.map} +1 -1
  35. package/dist/DateFieldSingle.js +1 -1
  36. package/dist/{DateFieldYearless-CuYYEkOz.js → DateFieldYearless-X9_F3VFM.js} +4 -4
  37. package/dist/{DateFieldYearless-CuYYEkOz.js.map → DateFieldYearless-X9_F3VFM.js.map} +1 -1
  38. package/dist/DateFieldYearless.js +1 -1
  39. package/dist/{DateFieldYearlessRange-CHj9OXZK.js → DateFieldYearlessRange-CWdTbFDF.js} +3 -3
  40. package/dist/{DateFieldYearlessRange-CHj9OXZK.js.map → DateFieldYearlessRange-CWdTbFDF.js.map} +1 -1
  41. package/dist/DateFieldYearlessRange.js +1 -1
  42. package/dist/{DaysOfTheWeek-DXzW04I1.js → DaysOfTheWeek-DfNYEwbg.js} +2 -2
  43. package/dist/{DaysOfTheWeek-DXzW04I1.js.map → DaysOfTheWeek-DfNYEwbg.js.map} +1 -1
  44. package/dist/DaysOfTheWeek.js +1 -1
  45. package/dist/{Dialog-l0UzKEU0.js → Dialog-BpS3KScw.js} +4 -4
  46. package/dist/{Dialog-l0UzKEU0.js.map → Dialog-BpS3KScw.js.map} +1 -1
  47. package/dist/Dialog.js +1 -1
  48. package/dist/{Drawer-DaE-1UgB.js → Drawer-CxVIDCIB.js} +4 -4
  49. package/dist/{Drawer-DaE-1UgB.js.map → Drawer-CxVIDCIB.js.map} +1 -1
  50. package/dist/Drawer.js +1 -1
  51. package/dist/DrillDown.js +1 -1
  52. package/dist/{EditCard-2Qt5-k2B.js → EditCard-T5mbl573.js} +2 -2
  53. package/dist/{EditCard-2Qt5-k2B.js.map → EditCard-T5mbl573.js.map} +1 -1
  54. package/dist/EditCard.js +1 -1
  55. package/dist/{FieldLabel-BgVl8hnF.js → FieldLabel-Dfg4wEra.js} +2 -2
  56. package/dist/{FieldLabel-BgVl8hnF.js.map → FieldLabel-Dfg4wEra.js.map} +1 -1
  57. package/dist/FieldLabel.js +1 -1
  58. package/dist/{FilterBar-CryC93pB.js → FilterBar-CA4MDEF-.js} +27 -6
  59. package/dist/FilterBar-CA4MDEF-.js.map +1 -0
  60. package/dist/FilterBar.js +1 -1
  61. package/dist/{InputMask-Bc0nDHzb.js → InputMask-C8ZAwqFi.js} +3 -3
  62. package/dist/{InputMask-Bc0nDHzb.js.map → InputMask-C8ZAwqFi.js.map} +1 -1
  63. package/dist/InputMask.js +1 -1
  64. package/dist/{InteractiveCard-CyUR_VLW.js → InteractiveCard-C0g5PxB6.js} +5 -2
  65. package/dist/InteractiveCard-C0g5PxB6.js.map +1 -0
  66. package/dist/InteractiveCard.js +1 -1
  67. package/dist/{ListView-Blmts4nT.js → ListView-BMo04Epa.js} +2 -2
  68. package/dist/{ListView-Blmts4nT.js.map → ListView-BMo04Epa.js.map} +1 -1
  69. package/dist/ListView.js +1 -1
  70. package/dist/{Listbox-DkzL11gb.js → Listbox-BQRMsA0L.js} +2 -2
  71. package/dist/{Listbox-DkzL11gb.js.map → Listbox-BQRMsA0L.js.map} +1 -1
  72. package/dist/Listbox.js +1 -1
  73. package/dist/MultiSelectField.js +1 -1
  74. package/dist/{MultiSelectFieldSync-CSIU43BR.js → MultiSelectFieldSync-Cn3tNZcf.js} +13 -11
  75. package/dist/MultiSelectFieldSync-Cn3tNZcf.js.map +1 -0
  76. package/dist/MultiSelectMenu.js +1 -1
  77. package/dist/{MultiSelectMenuSync-CkjXjnXp.js → MultiSelectMenuSync-FH_hXlIa.js} +23 -10
  78. package/dist/MultiSelectMenuSync-FH_hXlIa.js.map +1 -0
  79. package/dist/{NumberField-Dp5tJkMC.js → NumberField-DdaBRyCJ.js} +3 -3
  80. package/dist/{NumberField-Dp5tJkMC.js.map → NumberField-DdaBRyCJ.js.map} +1 -1
  81. package/dist/NumberField.js +1 -1
  82. package/dist/{Page-gMaR1lF5.js → Page-DpUv1L7T.js} +8 -8
  83. package/dist/{Page-gMaR1lF5.js.map → Page-DpUv1L7T.js.map} +1 -1
  84. package/dist/Page.js +1 -1
  85. package/dist/{Pagination-CfCUqyzB.js → Pagination-Dm10ZvKj.js} +2 -2
  86. package/dist/{Pagination-CfCUqyzB.js.map → Pagination-Dm10ZvKj.js.map} +1 -1
  87. package/dist/Pagination.js +1 -1
  88. package/dist/{Popover-80nFjp83.js → Popover-C-pv_ah6.js} +2 -2
  89. package/dist/{Popover-80nFjp83.js.map → Popover-C-pv_ah6.js.map} +1 -1
  90. package/dist/Popover.js +1 -1
  91. package/dist/{ProgressBar-3TSTcvbU.js → ProgressBar-fwE4FkQt.js} +2 -2
  92. package/dist/{ProgressBar-3TSTcvbU.js.map → ProgressBar-fwE4FkQt.js.map} +1 -1
  93. package/dist/ProgressBar.js +1 -1
  94. package/dist/{Radio-B30z0TdG.js → Radio-BuzABI6-.js} +3 -3
  95. package/dist/{Radio-B30z0TdG.js.map → Radio-BuzABI6-.js.map} +1 -1
  96. package/dist/{Radio-Dk7dH0oM.js → Radio-DUKkDky9.js} +2 -2
  97. package/dist/{Radio-Dk7dH0oM.js.map → Radio-DUKkDky9.js.map} +1 -1
  98. package/dist/Radio.js +1 -1
  99. package/dist/{RichTextEditor-DLIh_mzJ.js → RichTextEditor-x0anoUnS.js} +8 -8
  100. package/dist/{RichTextEditor-DLIh_mzJ.js.map → RichTextEditor-x0anoUnS.js.map} +1 -1
  101. package/dist/RichTextEditor.js +1 -1
  102. package/dist/{SavedFiltersButton-Cd_cOR1F.js → SavedFiltersButton-DgP-7upC.js} +9 -9
  103. package/dist/{SavedFiltersButton-Cd_cOR1F.js.map → SavedFiltersButton-DgP-7upC.js.map} +1 -1
  104. package/dist/SavedFiltersButton.js +1 -1
  105. package/dist/{SearchField-BfOMhmIc.js → SearchField-GMJ6vfV9.js} +2 -2
  106. package/dist/{SearchField-BfOMhmIc.js.map → SearchField-GMJ6vfV9.js.map} +1 -1
  107. package/dist/{SearchField-D9ZMOcbo.js → SearchField-hjWzcHZF.js} +2 -2
  108. package/dist/{SearchField-D9ZMOcbo.js.map → SearchField-hjWzcHZF.js.map} +1 -1
  109. package/dist/SearchField.js +1 -1
  110. package/dist/{SelectCard-BXXKD4Iy.js → SelectCard-CKlBGGSW.js} +3 -3
  111. package/dist/{SelectCard-BXXKD4Iy.js.map → SelectCard-CKlBGGSW.js.map} +1 -1
  112. package/dist/SelectCard.js +1 -1
  113. package/dist/SelectField.js +1 -1
  114. package/dist/{SelectFieldLabel-Dfdv0DQp.js → SelectFieldLabel-_LjbBRaT.js} +2 -2
  115. package/dist/{SelectFieldLabel-Dfdv0DQp.js.map → SelectFieldLabel-_LjbBRaT.js.map} +1 -1
  116. package/dist/{SelectFieldSync-BQIbfdka.js → SelectFieldSync-DUwFm6OH.js} +7 -7
  117. package/dist/SelectFieldSync-DUwFm6OH.js.map +1 -0
  118. package/dist/SelectMenu.js +1 -1
  119. package/dist/{SelectMenuSync-nFfKdEiV.js → SelectMenuSync-BZ3iXj3n.js} +5 -5
  120. package/dist/{SelectMenuSync-nFfKdEiV.js.map → SelectMenuSync-BZ3iXj3n.js.map} +1 -1
  121. package/dist/{SelectOptions-BjJ0JoQX.js → SelectOptions-DDindDgw.js} +2 -2
  122. package/dist/{SelectOptions-BjJ0JoQX.js.map → SelectOptions-DDindDgw.js.map} +1 -1
  123. package/dist/{SelectTrigger-BgzPogSC.js → SelectTrigger-DZ33_p3P.js} +2 -2
  124. package/dist/{SelectTrigger-BgzPogSC.js.map → SelectTrigger-DZ33_p3P.js.map} +1 -1
  125. package/dist/SelectTrigger.js +1 -1
  126. package/dist/{SelectTriggerBase-CnyyaWl-.js → SelectTriggerBase-DcP0Fsia.js} +3 -3
  127. package/dist/{SelectTriggerBase-CnyyaWl-.js.map → SelectTriggerBase-DcP0Fsia.js.map} +1 -1
  128. package/dist/{SideNav-BFkruKa4.js → SideNav-BNMwTm1u.js} +5 -2
  129. package/dist/{SideNav-BFkruKa4.js.map → SideNav-BNMwTm1u.js.map} +1 -1
  130. package/dist/SideNav.js +1 -1
  131. package/dist/{Switch-BlIZayq6.js → Switch-DEDfnLGU.js} +2 -2
  132. package/dist/{Switch-BlIZayq6.js.map → Switch-DEDfnLGU.js.map} +1 -1
  133. package/dist/Switch.js +1 -1
  134. package/dist/Table.js +1 -1
  135. package/dist/{Text-LXIB1J3C.js → Text-Dp-1foEc.js} +2 -2
  136. package/dist/{Text-LXIB1J3C.js.map → Text-Dp-1foEc.js.map} +1 -1
  137. package/dist/Text.js +1 -1
  138. package/dist/{TextField-Syedf1LW.js → TextField-B0iTBGho.js} +3 -3
  139. package/dist/{TextField-Syedf1LW.js.map → TextField-B0iTBGho.js.map} +1 -1
  140. package/dist/{TextField-fE3_0jQJ.js → TextField-CwJliCi7.js} +2 -2
  141. package/dist/{TextField-fE3_0jQJ.js.map → TextField-CwJliCi7.js.map} +1 -1
  142. package/dist/TextField.js +1 -1
  143. package/dist/{Textarea-CIAHsoWa.js → Textarea-CU3j_Yo0.js} +3 -3
  144. package/dist/{Textarea-CIAHsoWa.js.map → Textarea-CU3j_Yo0.js.map} +1 -1
  145. package/dist/Textarea.js +1 -1
  146. package/dist/{TimeField-B3yhtYZm.js → TimeField-CpMwgKDi.js} +4 -4
  147. package/dist/{TimeField-B3yhtYZm.js.map → TimeField-CpMwgKDi.js.map} +1 -1
  148. package/dist/TimeField.js +1 -1
  149. package/dist/Toast.js +2 -2
  150. package/dist/{Toaster-DDKuhPXX.js → Toaster-D75ZXkU1.js} +2 -2
  151. package/dist/{Toaster-DDKuhPXX.js.map → Toaster-D75ZXkU1.js.map} +1 -1
  152. package/dist/{Toaster-BM998ekj.js → Toaster-Djn0LfKr.js} +3 -3
  153. package/dist/{Toaster-BM998ekj.js.map → Toaster-Djn0LfKr.js.map} +1 -1
  154. package/dist/{Toolbar-DD1ieJNQ.js → Toolbar--psHvtjP.js} +3 -3
  155. package/dist/{Toolbar-DD1ieJNQ.js.map → Toolbar--psHvtjP.js.map} +1 -1
  156. package/dist/{Toolbar-DMUTGhNa.js → Toolbar-DjkQ2_cV.js} +5 -5
  157. package/dist/{Toolbar-DMUTGhNa.js.map → Toolbar-DjkQ2_cV.js.map} +1 -1
  158. package/dist/Toolbar.js +2 -2
  159. package/dist/{ToolbarButtonToggle-DsaG1BWZ.js → ToolbarButtonToggle-D62XxVp0.js} +6 -3
  160. package/dist/ToolbarButtonToggle-D62XxVp0.js.map +1 -0
  161. package/dist/TreeSelectField.js +1 -1
  162. package/dist/{TreeSelectFieldSync-C-mUoPrS.js → TreeSelectFieldSync-DR0Tzn2b.js} +5 -5
  163. package/dist/{TreeSelectFieldSync-C-mUoPrS.js.map → TreeSelectFieldSync-DR0Tzn2b.js.map} +1 -1
  164. package/dist/TreeSelectMenu.js +1 -1
  165. package/dist/{TreeSelectMenuSync-BWVk3vWK.js → TreeSelectMenuSync-B8GmAstR.js} +4 -4
  166. package/dist/{TreeSelectMenuSync-BWVk3vWK.js.map → TreeSelectMenuSync-B8GmAstR.js.map} +1 -1
  167. package/dist/{TypeaheadTextField-DX3MZTgl.js → TypeaheadTextField-N_6q6ojK.js} +3 -3
  168. package/dist/{TypeaheadTextField-DX3MZTgl.js.map → TypeaheadTextField-N_6q6ojK.js.map} +1 -1
  169. package/dist/TypeaheadTextField.js +1 -1
  170. package/dist/{YearlessDateInputWithPicker-KRKpi1-s.js → YearlessDateInputWithPicker-w3VGYELR.js} +2 -2
  171. package/dist/{YearlessDateInputWithPicker-KRKpi1-s.js.map → YearlessDateInputWithPicker-w3VGYELR.js.map} +1 -1
  172. package/dist/beta.js +17 -17
  173. package/dist/{useToggleSelection-B8OnmX8Q.js → bulkActionTypes-wU7Cby5y.js} +8 -3
  174. package/dist/bulkActionTypes-wU7Cby5y.js.map +1 -0
  175. package/dist/{filter-state-6m-E0d1i.js → filter-state-CSA3wjAR.js} +344 -66
  176. package/dist/filter-state-CSA3wjAR.js.map +1 -0
  177. package/dist/{index-BxdhXRLp.js → index-BN9SK9L3.js} +2 -2
  178. package/dist/{index-BxdhXRLp.js.map → index-BN9SK9L3.js.map} +1 -1
  179. package/dist/index.js +43 -43
  180. package/dist/src/beta/components/Calendar/Calendar.figma.d.ts +1 -0
  181. package/dist/src/beta/components/FilterBar/FilterSearchField.d.ts +28 -0
  182. package/dist/src/beta/components/FilterBar/index.d.ts +1 -1
  183. package/dist/src/beta/components/FilterBar/internal/adapters/search.d.ts +3 -0
  184. package/dist/src/beta/components/FilterBar/internal/adapters/types.d.ts +2 -1
  185. package/dist/src/beta/components/FilterBar/internal/types.d.ts +72 -6
  186. package/dist/src/beta/components/FilterBar/internal/utils/dateConstraints.d.ts +38 -0
  187. package/dist/src/beta/components/FilterBar/internal/utils/test.d.ts +2 -1
  188. package/dist/src/beta/components/InteractiveCard/InteractiveCard.figma.d.ts +1 -0
  189. package/dist/src/beta/components/InteractiveCard/types.d.ts +3 -3
  190. package/dist/src/beta/components/RichTextEditor/RichTextEditor.figma.d.ts +1 -0
  191. package/dist/src/beta/components/Table/DataTable/DataTable.figma.d.ts +1 -0
  192. package/dist/src/beta/components/Toolbar/Toolbar.figma.d.ts +1 -0
  193. package/dist/src/components/AiMark/AiMark.figma.d.ts +1 -0
  194. package/dist/src/components/ButtonLink/ButtonLink.figma.d.ts +1 -0
  195. package/dist/src/components/ButtonToggle/ButtonToggle.figma.d.ts +1 -0
  196. package/dist/src/components/Combobox/Combobox.d.ts +8 -4
  197. package/dist/src/components/Combobox/ComboboxSelect.d.ts +2 -2
  198. package/dist/src/components/DateFieldRange/DateFieldRange.figma.d.ts +1 -0
  199. package/dist/src/components/DateFieldSingle/DateFieldSingle.figma.d.ts +1 -0
  200. package/dist/src/components/DateFieldYearless/DateFieldYearless.figma.d.ts +1 -0
  201. package/dist/src/components/DateFieldYearlessRange/DateFieldYearlessRange.figma.d.ts +1 -0
  202. package/dist/src/components/DaysOfTheWeek/DaysOfTheWeek.figma.d.ts +1 -0
  203. package/dist/src/components/Details/Details.figma.d.ts +1 -0
  204. package/dist/src/components/Dialog/Dialog.figma.d.ts +1 -0
  205. package/dist/src/components/Dnd/Dnd.figma.d.ts +1 -0
  206. package/dist/src/components/DndSort/DndSort.figma.d.ts +1 -0
  207. package/dist/src/components/Drawer/Drawer.figma.d.ts +1 -0
  208. package/dist/src/components/Layout/Layout.figma.d.ts +1 -0
  209. package/dist/src/components/LinkButton/LinkButton.figma.d.ts +1 -0
  210. package/dist/src/components/ListView/ListView.figma.d.ts +1 -0
  211. package/dist/src/components/Listbox/Listbox.figma.d.ts +1 -0
  212. package/dist/src/components/Menu/Menu.figma.d.ts +1 -0
  213. package/dist/src/components/MultiSelectField/MultiSelectField.figma.d.ts +1 -0
  214. package/dist/src/components/MultiSelectField/types.d.ts +3 -0
  215. package/dist/src/components/MultiSelectMenu/MultiSelectMenu.figma.d.ts +1 -0
  216. package/dist/src/components/MultiSelectMenu/types.d.ts +5 -0
  217. package/dist/src/components/NumberField/NumberField.figma.d.ts +1 -0
  218. package/dist/src/components/Overflow/Overflow.figma.d.ts +1 -0
  219. package/dist/src/components/Page/Page.figma.d.ts +1 -0
  220. package/dist/src/components/Pagination/Pagination.figma.d.ts +1 -0
  221. package/dist/src/components/Popover/Popover.figma.d.ts +1 -0
  222. package/dist/src/components/SearchField/SearchField.figma.d.ts +1 -0
  223. package/dist/src/components/SegmentedControl/SegmentedControl.figma.d.ts +1 -0
  224. package/dist/src/components/SelectCard/SelectCard.figma.d.ts +1 -0
  225. package/dist/src/components/SelectField/SelectField.figma.d.ts +1 -0
  226. package/dist/src/components/SelectMenu/SelectMenu.figma.d.ts +1 -0
  227. package/dist/src/components/SideNav/SideNav.figma.d.ts +1 -0
  228. package/dist/src/components/Skeleton/Skeleton.figma.d.ts +1 -0
  229. package/dist/src/components/Stepper/Stepper.figma.d.ts +1 -0
  230. package/dist/src/components/Tab/Tab.figma.d.ts +1 -0
  231. package/dist/src/components/Text/Text.figma.d.ts +1 -0
  232. package/dist/src/components/TextField/TextField.figma.d.ts +1 -0
  233. package/dist/src/components/Textarea/Textarea.figma.d.ts +1 -0
  234. package/dist/src/components/TimeField/TimeField.figma.d.ts +1 -0
  235. package/dist/src/internal/types/bulkActionTypes.d.ts +27 -2
  236. package/dist/src/providers/AnvilProvider/AnvilProviderContext.d.ts +12 -0
  237. package/dist/{stripInlineMarkdown-mQ10Z5JU.js → stripInlineMarkdown-_rZx_gXG.js} +2 -2
  238. package/dist/{stripInlineMarkdown-mQ10Z5JU.js.map → stripInlineMarkdown-_rZx_gXG.js.map} +1 -1
  239. package/dist/{syncFilterUtils-DqvgB5sn.js → syncFilterUtils-CpDXQtFA.js} +3 -3
  240. package/dist/{syncFilterUtils-DqvgB5sn.js.map → syncFilterUtils-CpDXQtFA.js.map} +1 -1
  241. package/dist/{treeSync-BaEYV24N.js → treeSync-Dcq1ntVm.js} +3 -3
  242. package/dist/{treeSync-BaEYV24N.js.map → treeSync-Dcq1ntVm.js.map} +1 -1
  243. package/dist/{useAdaptiveView-BO9xU7Ym.js → useAdaptiveView-B8-BkcBX.js} +7 -7
  244. package/dist/{useAdaptiveView-BO9xU7Ym.js.map → useAdaptiveView-B8-BkcBX.js.map} +1 -1
  245. package/dist/useAdaptiveView.css +6 -4
  246. package/dist/{useDrilldown-22X8jHs_.js → useDrilldown-DmILG6sb.js} +3 -3
  247. package/dist/{useDrilldown-22X8jHs_.js.map → useDrilldown-DmILG6sb.js.map} +1 -1
  248. package/dist/{useInfiniteCombobox-COnx-GhH.js → useInfiniteCombobox-BfM3muPW.js} +8 -6
  249. package/dist/useInfiniteCombobox-BfM3muPW.js.map +1 -0
  250. package/dist/{useInitialFocus-BIvXK1Rp.js → useInitialFocus-BUxEDMEG.js} +2 -2
  251. package/dist/{useInitialFocus-BIvXK1Rp.js.map → useInitialFocus-BUxEDMEG.js.map} +1 -1
  252. package/dist/{usePopoverTransitionStates-B1opfxxn.js → usePopoverTransitionStates-CDXCdyKa.js} +2 -1
  253. package/dist/{usePopoverTransitionStates-B1opfxxn.js.map → usePopoverTransitionStates-CDXCdyKa.js.map} +1 -1
  254. package/package.json +1 -1
  255. package/dist/AnvilProvider-BQsp0VPq.js.map +0 -1
  256. package/dist/Calendar-DqQczZgw.js.map +0 -1
  257. package/dist/FilterBar-CryC93pB.js.map +0 -1
  258. package/dist/InteractiveCard-CyUR_VLW.js.map +0 -1
  259. package/dist/MultiSelectFieldSync-CSIU43BR.js.map +0 -1
  260. package/dist/MultiSelectMenuSync-CkjXjnXp.js.map +0 -1
  261. package/dist/SelectFieldSync-BQIbfdka.js.map +0 -1
  262. package/dist/ToolbarButtonToggle-DsaG1BWZ.js.map +0 -1
  263. package/dist/filter-state-6m-E0d1i.js.map +0 -1
  264. package/dist/useInfiniteCombobox-COnx-GhH.js.map +0 -1
  265. package/dist/useToggleSelection-B8OnmX8Q.js.map +0 -1
@@ -1,33 +1,38 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { useMemo, forwardRef, createElement, createContext, useRef, useId, useState, useContext, useEffect, useCallback } from 'react';
3
- import { C as Chip } from './Chip-DvmMbb5g.js';
4
- import { d as ToolbarItemWrapper, u as useToolbarSize, T as ToolbarButtonToggle } from './ToolbarButtonToggle-DsaG1BWZ.js';
3
+ import { C as Chip } from './Chip-yyEbwLdG.js';
4
+ import { d as ToolbarItemWrapper, u as useToolbarSize, T as ToolbarButtonToggle, b as ToolbarContext, g as getToolbarElements, a as updateToolbarItemsTabIndex } from './ToolbarButtonToggle-D62XxVp0.js';
5
5
  import { S as SvgKeyboardArrowDown } from './keyboard_arrow_down-C8WQ38p1.js';
6
- import { S as SvgEvent } from './TimezoneMessage-BrKB_psP.js';
6
+ import { S as SvgEvent, a as DateModeToFormatMap } from './TimezoneMessage-BrKB_psP.js';
7
7
  import { c as cx } from './index-De1g9FRV.js';
8
8
  import { B as Button } from './Button-CjeF1Agb.js';
9
- import { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-CSIU43BR.js';
10
- import { M as MultiSelectMenu, a as MultiSelectMenuSync } from './MultiSelectMenuSync-CkjXjnXp.js';
11
- import { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-BQIbfdka.js';
12
- import { S as SelectMenu, a as SelectMenuSync } from './SelectMenuSync-nFfKdEiV.js';
13
- import { T as TreeSelectField, a as TreeSelectFieldSync } from './TreeSelectFieldSync-C-mUoPrS.js';
14
- import { a as TreeSelectMenu, T as TreeSelectMenuSync } from './TreeSelectMenuSync-BWVk3vWK.js';
15
- import { C as Checkbox } from './Checkbox-BkjA8p3F.js';
16
- import { a as OptionsPopover } from './useAdaptiveView-BO9xU7Ym.js';
9
+ import { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-Cn3tNZcf.js';
10
+ import { M as MultiSelectMenu, a as MultiSelectMenuSync } from './MultiSelectMenuSync-FH_hXlIa.js';
11
+ import { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-DUwFm6OH.js';
12
+ import { S as SelectMenu, a as SelectMenuSync } from './SelectMenuSync-BZ3iXj3n.js';
13
+ import { T as TreeSelectField, a as TreeSelectFieldSync } from './TreeSelectFieldSync-DR0Tzn2b.js';
14
+ import { a as TreeSelectMenu, T as TreeSelectMenuSync } from './TreeSelectMenuSync-B8GmAstR.js';
15
+ import { C as Checkbox } from './Checkbox-Bq2EfltF.js';
16
+ import { a as OptionsPopover } from './useAdaptiveView-B8-BkcBX.js';
17
17
  import { M as MenuFooter } from './MenuFooter-BZTsAaOz.js';
18
18
  import { D as DateTime } from './luxon-wpz4A-OQ.js';
19
- import { u as useDateFieldSingleConversion, a as useDateFieldSingleState, M as MaskedDateInput, b as DateFieldSingleCalendar, D as DateFieldSingle } from './DateFieldSingle-dSrWge6Y.js';
19
+ import { u as useDateFieldSingleConversion, a as useDateFieldSingleState, M as MaskedDateInput, b as DateFieldSingleCalendar, D as DateFieldSingle } from './DateFieldSingle-BGGlLAID.js';
20
20
  import { F as Flex } from './Flex-Bb3iHExM.js';
21
21
  import { u as useConfirmationDraft } from './confirmationTypes-CG7xl50f.js';
22
- import { D as Dialog } from './Dialog-l0UzKEU0.js';
23
- import { u as useDateFieldRangeConversion, a as useDateFieldRangeState, M as MaskedDateRangeInput, b as DateFieldRangeCalendar, D as DateFieldRange } from './DateFieldRange-CjjqTRNu.js';
22
+ import { D as Dialog } from './Dialog-BpS3KScw.js';
23
+ import { u as useDateFieldRangeConversion, a as useDateFieldRangeState, M as MaskedDateRangeInput, b as DateFieldRangeCalendar, D as DateFieldRange } from './DateFieldRange-OlkU5oeu.js';
24
24
  import { w as warnOnce } from './warnOnce-Y9PRHcU4.js';
25
- import { F as FieldLabel } from './FieldLabel-BgVl8hnF.js';
25
+ import { F as FieldLabel } from './FieldLabel-Dfg4wEra.js';
26
26
  import { G as Grid } from './Grid-ho1pGJ5L.js';
27
- import { N as NumberField } from './NumberField-Dp5tJkMC.js';
28
- import { T as Text } from './Text-LXIB1J3C.js';
29
- import { R as Radio } from './Radio-Dk7dH0oM.js';
30
- import { T as TextField } from './TextField-fE3_0jQJ.js';
27
+ import { N as NumberField } from './NumberField-DdaBRyCJ.js';
28
+ import { T as Text } from './Text-Dp-1foEc.js';
29
+ import { T as TextField } from './TextField-CwJliCi7.js';
30
+ import { S as SvgClose } from './close-DZj38AEh.js';
31
+ import { a as SvgSearch, s as styles$1 } from './SearchField-hjWzcHZF.js';
32
+ import { t as textFieldStyles } from './TextField.module-DklyLNKz.js';
33
+ import { I as Icon } from './Icon-BEwHECSM.js';
34
+ import { useTrackingId } from './useTrackingId.js';
35
+ import { R as Radio } from './Radio-DUKkDky9.js';
31
36
 
32
37
  import './filter-state.css';const FilterItemWrapper = ({ children }) => {
33
38
  const props = useMemo(
@@ -80,7 +85,7 @@ const FilterTriggerButton = forwardRef(function FilterTriggerButton2({ filterId,
80
85
  );
81
86
  });
82
87
 
83
- const isSelected$9 = (filter) => !!filter.selectedOptions && filter.selectedOptions.length > 0;
88
+ const isSelected$a = (filter) => !!filter.selectedOptions && filter.selectedOptions.length > 0;
84
89
  const formatLabel$b = (filter) => {
85
90
  const count = filter.selectedOptions?.length ?? 0;
86
91
  if (count === 0) return filter.label;
@@ -113,7 +118,7 @@ const asyncMultiSelectAdapter = {
113
118
  getValue: (filter) => filter.selectedOptions ?? [],
114
119
  setValue: (filter, value) => ({ ...filter, selectedOptions: value }),
115
120
  reset: (filter) => ({ ...filter, selectedOptions: [] }),
116
- isActive: isSelected$9,
121
+ isActive: isSelected$a,
117
122
  preserveState: (newFilter, existingFilter) => ({
118
123
  ...newFilter,
119
124
  selectedOptions: existingFilter.selectedOptions
@@ -138,7 +143,7 @@ const asyncMultiSelectAdapter = {
138
143
  ...triggerProps,
139
144
  filterId: filter.id,
140
145
  label: formatLabel$b(filter),
141
- isSelected: isSelected$9(filter)
146
+ isSelected: isSelected$a(filter)
142
147
  }
143
148
  )
144
149
  }
@@ -154,7 +159,7 @@ const asyncMultiSelectAdapter = {
154
159
  }
155
160
  ),
156
161
  formatLabel: formatLabel$b,
157
- isSelected: isSelected$9
162
+ isSelected: isSelected$a
158
163
  };
159
164
 
160
165
  const formatLabel$a = (filter) => {
@@ -163,7 +168,7 @@ const formatLabel$a = (filter) => {
163
168
  }
164
169
  return filter.label;
165
170
  };
166
- const isSelected$8 = (filter) => filter.selectedOption !== void 0;
171
+ const isSelected$9 = (filter) => filter.selectedOption !== void 0;
167
172
  const passThroughMenuProps$4 = (filter) => {
168
173
  const {
169
174
  id: _id,
@@ -179,7 +184,7 @@ const asyncSelectAdapter = {
179
184
  getValue: (filter) => filter.selectedOption,
180
185
  setValue: (filter, value) => ({ ...filter, selectedOption: value }),
181
186
  reset: (filter) => ({ ...filter, selectedOption: void 0 }),
182
- isActive: isSelected$8,
187
+ isActive: isSelected$9,
183
188
  preserveState: (newFilter, existingFilter) => ({
184
189
  ...newFilter,
185
190
  selectedOption: existingFilter.selectedOption
@@ -203,7 +208,7 @@ const asyncSelectAdapter = {
203
208
  ...triggerProps,
204
209
  filterId: filter.id,
205
210
  label: formatLabel$a(filter),
206
- isSelected: isSelected$8(filter)
211
+ isSelected: isSelected$9(filter)
207
212
  }
208
213
  )
209
214
  }
@@ -219,10 +224,10 @@ const asyncSelectAdapter = {
219
224
  }
220
225
  ),
221
226
  formatLabel: formatLabel$a,
222
- isSelected: isSelected$8
227
+ isSelected: isSelected$9
223
228
  };
224
229
 
225
- const isSelected$7 = (filter) => !!filter.selectedNodes && filter.selectedNodes.length > 0;
230
+ const isSelected$8 = (filter) => !!filter.selectedNodes && filter.selectedNodes.length > 0;
226
231
  const formatLabel$9 = (filter) => {
227
232
  const count = filter.selectedNodes?.length ?? 0;
228
233
  if (count === 0) return filter.label;
@@ -255,7 +260,7 @@ const asyncTreeAdapter = {
255
260
  getValue: (filter) => filter.selectedNodes ?? [],
256
261
  setValue: (filter, value) => ({ ...filter, selectedNodes: value }),
257
262
  reset: (filter) => ({ ...filter, selectedNodes: [] }),
258
- isActive: isSelected$7,
263
+ isActive: isSelected$8,
259
264
  preserveState: (newFilter, existingFilter) => ({
260
265
  ...newFilter,
261
266
  selectedNodes: existingFilter.selectedNodes
@@ -273,7 +278,7 @@ const asyncTreeAdapter = {
273
278
  confirmation: controlledFiltering,
274
279
  clear: {
275
280
  onClick: () => updateFilter(filter.id, [], true),
276
- disabled: !isSelected$7(filter)
281
+ disabled: !isSelected$8(filter)
277
282
  },
278
283
  trigger: (triggerProps) => /* @__PURE__ */ jsx(
279
284
  FilterTriggerButton,
@@ -281,7 +286,7 @@ const asyncTreeAdapter = {
281
286
  ...triggerProps,
282
287
  filterId: filter.id,
283
288
  label: formatLabel$9(filter),
284
- isSelected: isSelected$7(filter)
289
+ isSelected: isSelected$8(filter)
285
290
  }
286
291
  )
287
292
  }
@@ -297,7 +302,7 @@ const asyncTreeAdapter = {
297
302
  }
298
303
  ),
299
304
  formatLabel: formatLabel$9,
300
- isSelected: isSelected$7
305
+ isSelected: isSelected$8
301
306
  };
302
307
 
303
308
  const FilterToggleButton = ({
@@ -610,6 +615,86 @@ const customAdapter = {
610
615
  isSelected: (filter) => filter.value !== void 0
611
616
  };
612
617
 
618
+ const toDate = (value) => {
619
+ if (!value) return null;
620
+ const date = DateTime.fromISO(value, { zone: "utc" }).startOf("day");
621
+ return date.isValid ? date : null;
622
+ };
623
+ const getDateConstraintReason = (value, { minDate, maxDate, unavailable }) => {
624
+ const date = toDate(value);
625
+ if (!date) return null;
626
+ const unavailableDates = unavailable?.dates?.map(toDate).filter((d) => d !== null);
627
+ if (unavailableDates?.some((d) => d.equals(date))) return "unavailable";
628
+ if (unavailable?.daysOfWeek?.includes(date.weekday)) {
629
+ return "unavailable";
630
+ }
631
+ const min = toDate(minDate);
632
+ const max = toDate(maxDate);
633
+ if (min && date < min) return "minDate";
634
+ if (max && date > max) return "maxDate";
635
+ return null;
636
+ };
637
+ const formatDate = (value, mode = "mm/dd/yyyy") => {
638
+ const date = toDate(value);
639
+ return date ? date.toFormat(DateModeToFormatMap[mode]) : "";
640
+ };
641
+ const defaultReasonMessage = (reason, { minDate, maxDate }, mode) => {
642
+ switch (reason) {
643
+ case "minDate":
644
+ return `Date must be on or after ${formatDate(minDate, mode)}.`;
645
+ case "maxDate":
646
+ return `Date must be on or before ${formatDate(maxDate, mode)}.`;
647
+ case "unavailable":
648
+ return "This date is unavailable.";
649
+ }
650
+ };
651
+ const resolveDateFilterError = (filter, value) => {
652
+ const reason = getDateConstraintReason(value, filter);
653
+ if (!reason || !value) return void 0;
654
+ return filter.getErrorMessage?.({ reason, value }) ?? defaultReasonMessage(
655
+ reason,
656
+ { minDate: filter.minDate, maxDate: filter.maxDate },
657
+ filter.mode
658
+ );
659
+ };
660
+ const getDateRangeConstraintViolation = (value, constraints) => {
661
+ const start = value?.startDate ?? null;
662
+ const end = value?.endDate ?? null;
663
+ const startReason = getDateConstraintReason(start, constraints);
664
+ if (startReason && start) {
665
+ return { reason: startReason, field: "start", value: start };
666
+ }
667
+ const endReason = getDateConstraintReason(end, constraints);
668
+ if (endReason && end) {
669
+ return { reason: endReason, field: "end", value: end };
670
+ }
671
+ const startDate = toDate(start);
672
+ const endDate = toDate(end);
673
+ if (startDate && endDate && startDate > endDate) {
674
+ return { reason: "startAfterEnd" };
675
+ }
676
+ return null;
677
+ };
678
+ const resolveDateRangeFilterError = (filter, value) => {
679
+ const violation = getDateRangeConstraintViolation(value, filter);
680
+ if (!violation) return void 0;
681
+ const context = violation.reason === "startAfterEnd" ? { reason: "startAfterEnd" } : {
682
+ reason: violation.reason,
683
+ field: violation.field,
684
+ value: violation.value
685
+ };
686
+ const custom = filter.getErrorMessage?.(context);
687
+ if (custom) return custom;
688
+ if (violation.reason === "startAfterEnd") {
689
+ return "Start date must be on or before the end date.";
690
+ }
691
+ return defaultReasonMessage(
692
+ violation.reason,
693
+ { minDate: filter.minDate, maxDate: filter.maxDate },
694
+ filter.mode
695
+ );
696
+ };
697
+
613
698
  const FilterDateSingle = (props) => {
614
699
  if (props.variant === "inline") {
615
700
  return /* @__PURE__ */ jsx(
@@ -632,14 +717,18 @@ const Body$1 = ({
632
717
  const handleChange = (change) => {
633
718
  onDraftChange(change.date);
634
719
  };
635
- const { value, onChange } = useDateFieldSingleConversion({
720
+ const { value, minDate, maxDate, unavailable, onChange } = useDateFieldSingleConversion({
636
721
  value: draftValue,
637
- onChange: handleChange
722
+ onChange: handleChange,
723
+ minDate: filter.minDate,
724
+ maxDate: filter.maxDate,
725
+ unavailable: filter.unavailable
638
726
  });
639
727
  const { handleInputChange, handleCalendarSelection } = useDateFieldSingleState({
640
728
  valueProp: value,
641
729
  onChange: (change) => onChange({ ...change, isDateValid: true })
642
730
  });
731
+ const error = resolveDateFilterError(filter, draftValue);
643
732
  return /* @__PURE__ */ jsxs(Flex, { gap: 4, direction: "column", children: [
644
733
  /* @__PURE__ */ jsx(
645
734
  MaskedDateInput,
@@ -648,14 +737,18 @@ const Body$1 = ({
648
737
  ref: maskedDateInputRef,
649
738
  onChange: handleInputChange,
650
739
  lastValidDate: value ?? null,
651
- autoComplete: "off"
740
+ autoComplete: "off",
741
+ error
652
742
  }
653
743
  ),
654
744
  /* @__PURE__ */ jsx(
655
745
  DateFieldSingleCalendar,
656
746
  {
657
747
  value: value ?? null,
658
- onSelection: handleCalendarSelection
748
+ onSelection: handleCalendarSelection,
749
+ minDate,
750
+ maxDate,
751
+ unavailable
659
752
  }
660
753
  )
661
754
  ] });
@@ -777,7 +870,11 @@ const dateAdapter = {
777
870
  label: draftFilter.label,
778
871
  value: draftFilter.value ?? null,
779
872
  onChange: (change) => onDraftChange(draftFilter.id, change.date),
780
- mode: draftFilter.mode
873
+ mode: draftFilter.mode,
874
+ minDate: draftFilter.minDate,
875
+ maxDate: draftFilter.maxDate,
876
+ unavailable: draftFilter.unavailable,
877
+ error: resolveDateFilterError(draftFilter, draftFilter.value ?? null)
781
878
  },
782
879
  draftFilter.id
783
880
  ),
@@ -814,9 +911,12 @@ const Body = ({
814
911
  });
815
912
  }
816
913
  };
817
- const { value, onChange } = useDateFieldRangeConversion({
914
+ const { value, minDate, maxDate, unavailable, onChange } = useDateFieldRangeConversion({
818
915
  value: draftValue,
819
- onChange: handleChange
916
+ onChange: handleChange,
917
+ minDate: filter.minDate,
918
+ maxDate: filter.maxDate,
919
+ unavailable: filter.unavailable
820
920
  });
821
921
  const { handleInputChange, handleCalendarSelection } = useDateFieldRangeState(
822
922
  {
@@ -830,6 +930,7 @@ const Body = ({
830
930
  }
831
931
  }
832
932
  );
933
+ const error = resolveDateRangeFilterError(filter, draftValue);
833
934
  return /* @__PURE__ */ jsxs(Flex, { gap: 4, direction: "column", children: [
834
935
  /* @__PURE__ */ jsx(
835
936
  MaskedDateRangeInput,
@@ -839,7 +940,8 @@ const Body = ({
839
940
  onChange: handleInputChange,
840
941
  startDate: value?.startDate ?? null,
841
942
  endDate: value?.endDate ?? null,
842
- autoComplete: "off"
943
+ autoComplete: "off",
944
+ error
843
945
  }
844
946
  ),
845
947
  /* @__PURE__ */ jsx(
@@ -847,7 +949,10 @@ const Body = ({
847
949
  {
848
950
  startDate: value?.startDate ?? null,
849
951
  endDate: value?.endDate ?? null,
850
- onSelection: handleCalendarSelection
952
+ onSelection: handleCalendarSelection,
953
+ minDate,
954
+ maxDate,
955
+ unavailable
851
956
  }
852
957
  )
853
958
  ] });
@@ -1098,14 +1203,18 @@ const FilterDateList = ({
1098
1203
  }, [filter.options, visibleLibraryOptions]);
1099
1204
  const options = useMemo(
1100
1205
  () => [
1101
- ...filter.options.map((opt) => ({
1102
- id: opt.id,
1103
- label: opt.label
1104
- })),
1105
- ...visibleLibraryOptions.map((opt) => ({
1106
- id: opt.id,
1107
- label: opt.label
1108
- }))
1206
+ ...filter.options.map(
1207
+ (opt) => ({
1208
+ id: opt.id,
1209
+ label: opt.label
1210
+ })
1211
+ ),
1212
+ ...visibleLibraryOptions.map(
1213
+ (opt) => ({
1214
+ id: opt.id,
1215
+ label: opt.label
1216
+ })
1217
+ )
1109
1218
  ],
1110
1219
  [filter.options, visibleLibraryOptions]
1111
1220
  );
@@ -1173,7 +1282,7 @@ const FilterDateList = ({
1173
1282
  ] });
1174
1283
  };
1175
1284
 
1176
- const isSelected$6 = (filter) => filter.selectedOption !== void 0 && filter.selectedOption.value !== null;
1285
+ const isSelected$7 = (filter) => filter.selectedOption !== void 0 && filter.selectedOption.value !== null;
1177
1286
  const formatLabel$6 = (filter) => {
1178
1287
  const selected = filter.selectedOption;
1179
1288
  if (!selected || selected.value === null) return filter.label;
@@ -1183,7 +1292,7 @@ const dateListAdapter = {
1183
1292
  getValue: (filter) => filter.selectedOption,
1184
1293
  setValue: (filter, value) => ({ ...filter, selectedOption: value }),
1185
1294
  reset: (filter) => ({ ...filter, selectedOption: void 0 }),
1186
- isActive: isSelected$6,
1295
+ isActive: isSelected$7,
1187
1296
  preserveState: (newFilter, existingFilter) => ({
1188
1297
  ...newFilter,
1189
1298
  selectedOption: existingFilter.selectedOption
@@ -1196,7 +1305,7 @@ const dateListAdapter = {
1196
1305
  committedValue: filter.selectedOption,
1197
1306
  onCommit: (value) => updateFilter(filter.id, value, true),
1198
1307
  label: formatLabel$6(filter),
1199
- isSelected: isSelected$6(filter),
1308
+ isSelected: isSelected$7(filter),
1200
1309
  dialogCtaLabel: "Apply",
1201
1310
  clear: {
1202
1311
  onClick: () => updateFilter(filter.id, void 0, true)
@@ -1260,7 +1369,7 @@ const dateListAdapter = {
1260
1369
  );
1261
1370
  },
1262
1371
  formatLabel: formatLabel$6,
1263
- isSelected: isSelected$6
1372
+ isSelected: isSelected$7
1264
1373
  };
1265
1374
 
1266
1375
  const formatLabel$5 = (filter) => {
@@ -1277,7 +1386,7 @@ const formatLabel$5 = (filter) => {
1277
1386
  }
1278
1387
  return filter.label;
1279
1388
  };
1280
- const isSelected$5 = (filter) => !!(filter.value?.startDate && filter.value?.endDate);
1389
+ const isSelected$6 = (filter) => !!(filter.value?.startDate && filter.value?.endDate);
1281
1390
  const dateRangeAdapter = {
1282
1391
  getValue: (filter) => filter.value ?? null,
1283
1392
  setValue: (filter, value) => ({ ...filter, value }),
@@ -1299,7 +1408,7 @@ const dateRangeAdapter = {
1299
1408
  onCommit: (value) => updateFilter(filter.id, value, true),
1300
1409
  controlledFiltering,
1301
1410
  label: formatLabel$5(filter),
1302
- isSelected: isSelected$5(filter),
1411
+ isSelected: isSelected$6(filter),
1303
1412
  clear: {
1304
1413
  onClick: () => updateFilter(filter.id, null, true)
1305
1414
  }
@@ -1315,15 +1424,22 @@ const dateRangeAdapter = {
1315
1424
  startDate: change.startDate,
1316
1425
  endDate: change.endDate
1317
1426
  }),
1318
- mode: draftFilter.mode
1427
+ mode: draftFilter.mode,
1428
+ minDate: draftFilter.minDate,
1429
+ maxDate: draftFilter.maxDate,
1430
+ unavailable: draftFilter.unavailable,
1431
+ error: resolveDateRangeFilterError(
1432
+ draftFilter,
1433
+ draftFilter.value ?? null
1434
+ )
1319
1435
  },
1320
1436
  draftFilter.id
1321
1437
  ),
1322
1438
  formatLabel: formatLabel$5,
1323
- isSelected: isSelected$5
1439
+ isSelected: isSelected$6
1324
1440
  };
1325
1441
 
1326
- const isSelected$4 = (filter) => !!filter.selectedOptions && filter.selectedOptions.length > 0;
1442
+ const isSelected$5 = (filter) => !!filter.selectedOptions && filter.selectedOptions.length > 0;
1327
1443
  const formatLabel$4 = (filter) => {
1328
1444
  const count = filter.selectedOptions?.length ?? 0;
1329
1445
  if (count === 0) return filter.label;
@@ -1357,7 +1473,7 @@ const multiSelectAdapter = {
1357
1473
  getValue: (filter) => filter.selectedOptions ?? [],
1358
1474
  setValue: (filter, value) => ({ ...filter, selectedOptions: value }),
1359
1475
  reset: (filter) => ({ ...filter, selectedOptions: [] }),
1360
- isActive: isSelected$4,
1476
+ isActive: isSelected$5,
1361
1477
  preserveState: (newFilter, existingFilter) => ({
1362
1478
  ...newFilter,
1363
1479
  selectedOptions: existingFilter.selectedOptions
@@ -1383,7 +1499,7 @@ const multiSelectAdapter = {
1383
1499
  ...triggerProps,
1384
1500
  filterId: filter.id,
1385
1501
  label: formatLabel$4(filter),
1386
- isSelected: isSelected$4(filter)
1502
+ isSelected: isSelected$5(filter)
1387
1503
  }
1388
1504
  )
1389
1505
  }
@@ -1426,7 +1542,7 @@ const multiSelectAdapter = {
1426
1542
  );
1427
1543
  },
1428
1544
  formatLabel: formatLabel$4,
1429
- isSelected: isSelected$4
1545
+ isSelected: isSelected$5
1430
1546
  };
1431
1547
 
1432
1548
  const clampToBounds = (n, minValue, maxValue) => {
@@ -1537,12 +1653,12 @@ const formatLabel$3 = (filter) => {
1537
1653
  }
1538
1654
  return `${filter.label}: ${maxSymbol} ${formatBound(filter.value.max, filter)}`;
1539
1655
  };
1540
- const isSelected$3 = (filter) => filter.value !== null && filter.value !== void 0 && (filter.value.min !== void 0 || filter.value.max !== void 0);
1656
+ const isSelected$4 = (filter) => filter.value !== null && filter.value !== void 0 && (filter.value.min !== void 0 || filter.value.max !== void 0);
1541
1657
  const numericRangeAdapter = {
1542
1658
  getValue: (filter) => filter.value ?? null,
1543
1659
  setValue: (filter, value) => ({ ...filter, value }),
1544
1660
  reset: (filter) => ({ ...filter, value: null }),
1545
- isActive: isSelected$3,
1661
+ isActive: isSelected$4,
1546
1662
  preserveState: (newFilter, existingFilter) => ({
1547
1663
  ...newFilter,
1548
1664
  value: existingFilter.value
@@ -1556,7 +1672,7 @@ const numericRangeAdapter = {
1556
1672
  {
1557
1673
  filter,
1558
1674
  label: formatLabel$3(filter),
1559
- isSelected: isSelected$3(filter),
1675
+ isSelected: isSelected$4(filter),
1560
1676
  committedValue: filter.value ?? null,
1561
1677
  initialValue: null,
1562
1678
  keepOpenOnUncontrolledChange: true,
@@ -1583,6 +1699,167 @@ const numericRangeAdapter = {
1583
1699
  draftFilter.id
1584
1700
  ),
1585
1701
  formatLabel: formatLabel$3,
1702
+ isSelected: isSelected$4
1703
+ };
1704
+
1705
+ const FilterSearchField = ({
1706
+ filter,
1707
+ value,
1708
+ onChange
1709
+ }) => {
1710
+ const { toolbarRef } = useContext(ToolbarContext);
1711
+ const size = useToolbarSize();
1712
+ const hasValue = !!value;
1713
+ const inputRef = useRef(null);
1714
+ const clearButtonRef = useRef(null);
1715
+ const placeholder = filter.placeholder ?? "Search...";
1716
+ const focusRovingItem = (edge) => {
1717
+ if (!toolbarRef.current) return;
1718
+ const items = getToolbarElements(toolbarRef.current);
1719
+ const target = edge === "first" ? items[0] : items[items.length - 1];
1720
+ if (!target) return;
1721
+ updateToolbarItemsTabIndex(toolbarRef.current, target);
1722
+ target.focus();
1723
+ };
1724
+ const handleChange = (e) => {
1725
+ onChange(e.target.value);
1726
+ };
1727
+ const handleClear = () => {
1728
+ onChange("");
1729
+ inputRef.current?.focus();
1730
+ };
1731
+ const handleInputKeyDown = (e) => {
1732
+ const input = e.currentTarget;
1733
+ if (e.code === "ArrowRight") {
1734
+ if (!hasValue) {
1735
+ e.preventDefault();
1736
+ focusRovingItem("first");
1737
+ } else if (input.selectionStart === input.value.length) {
1738
+ e.preventDefault();
1739
+ clearButtonRef.current?.focus();
1740
+ }
1741
+ } else if (e.code === "ArrowLeft") {
1742
+ if (input.selectionStart === 0) {
1743
+ e.preventDefault();
1744
+ focusRovingItem("last");
1745
+ }
1746
+ }
1747
+ };
1748
+ const handleClearKeyDown = (e) => {
1749
+ if (e.code === "Enter" || e.code === "Space") {
1750
+ e.preventDefault();
1751
+ handleClear();
1752
+ } else if (e.code === "ArrowLeft") {
1753
+ e.preventDefault();
1754
+ inputRef.current?.focus();
1755
+ } else if (e.code === "ArrowRight") {
1756
+ e.preventDefault();
1757
+ focusRovingItem("first");
1758
+ }
1759
+ };
1760
+ const trackingId = useTrackingId({
1761
+ name: "FilterSearchField",
1762
+ data: { value }
1763
+ });
1764
+ return /* @__PURE__ */ jsx(
1765
+ "div",
1766
+ {
1767
+ className: cx(
1768
+ textFieldStyles["textfield"],
1769
+ styles$1["searchfield"]
1770
+ ),
1771
+ "data-anv": "filter-search-field",
1772
+ children: /* @__PURE__ */ jsxs(
1773
+ "div",
1774
+ {
1775
+ className: cx(
1776
+ textFieldStyles["input-wrapper"],
1777
+ styles$1["input-wrapper"],
1778
+ {
1779
+ [textFieldStyles["xsmall"]]: size === "xsmall",
1780
+ [textFieldStyles["small"]]: size === "small",
1781
+ [textFieldStyles["large"]]: size === "large"
1782
+ }
1783
+ ),
1784
+ role: "presentation",
1785
+ onClick: () => inputRef.current?.focus(),
1786
+ children: [
1787
+ /* @__PURE__ */ jsx("div", { "aria-hidden": true, className: textFieldStyles["prefix"], children: /* @__PURE__ */ jsx(Icon, { svg: SvgSearch }) }),
1788
+ /* @__PURE__ */ jsx(
1789
+ "input",
1790
+ {
1791
+ className: cx(textFieldStyles["input"], styles$1["input"], {
1792
+ [styles$1["input--has-value"]]: hasValue
1793
+ }),
1794
+ ref: inputRef,
1795
+ onChange: handleChange,
1796
+ onKeyDown: handleInputKeyDown,
1797
+ placeholder,
1798
+ value,
1799
+ type: "search",
1800
+ autoComplete: "off",
1801
+ "aria-label": filter.label,
1802
+ "data-tracking-id": trackingId
1803
+ }
1804
+ ),
1805
+ /* @__PURE__ */ jsx(
1806
+ Icon,
1807
+ {
1808
+ ref: clearButtonRef,
1809
+ "aria-label": "Clear search",
1810
+ svg: SvgClose,
1811
+ role: "button",
1812
+ onClick: handleClear,
1813
+ onKeyDown: handleClearKeyDown,
1814
+ tabIndex: -1,
1815
+ className: styles$1["clear"],
1816
+ style: {
1817
+ visibility: hasValue ? "visible" : "hidden"
1818
+ }
1819
+ }
1820
+ )
1821
+ ]
1822
+ }
1823
+ )
1824
+ }
1825
+ );
1826
+ };
1827
+ FilterSearchField.displayName = "FilterSearchField";
1828
+
1829
+ const isSelected$3 = (filter) => filter.value !== void 0 && filter.value !== "";
1830
+ const searchAdapter = {
1831
+ getValue: (filter) => filter.value ?? "",
1832
+ setValue: (filter, value) => ({ ...filter, value: value || void 0 }),
1833
+ reset: (filter) => ({ ...filter, value: void 0 }),
1834
+ isActive: isSelected$3,
1835
+ preserveState: (newFilter, existingFilter) => ({
1836
+ ...newFilter,
1837
+ value: existingFilter.value
1838
+ }),
1839
+ cloneWithItemRefs: (filter) => ({ ...filter }),
1840
+ // Always visible inline — no popover/Apply affordance to gate behind, so
1841
+ // (like the boolean adapter) this commits on every keystroke regardless
1842
+ // of controlledFiltering.
1843
+ renderBarControl: ({ filter, updateFilter }) => /* @__PURE__ */ jsx(
1844
+ FilterSearchField,
1845
+ {
1846
+ filter,
1847
+ value: filter.value ?? "",
1848
+ onChange: (value) => updateFilter(filter.id, value, true)
1849
+ },
1850
+ filter.id
1851
+ ),
1852
+ renderDrawer: ({ draftFilter, onDraftChange }) => /* @__PURE__ */ jsx(
1853
+ TextField,
1854
+ {
1855
+ label: draftFilter.label,
1856
+ placeholder: draftFilter.placeholder,
1857
+ value: draftFilter.value ?? "",
1858
+ onChange: (e) => onDraftChange(draftFilter.id, e.target.value || void 0)
1859
+ },
1860
+ draftFilter.id
1861
+ ),
1862
+ formatLabel: (filter) => filter.label,
1586
1863
  isSelected: isSelected$3
1587
1864
  };
1588
1865
 
@@ -1842,7 +2119,8 @@ const filterAdapters = {
1842
2119
  tree: treeAdapter,
1843
2120
  asyncTree: asyncTreeAdapter,
1844
2121
  numericRange: numericRangeAdapter,
1845
- textInput: textInputAdapter
2122
+ textInput: textInputAdapter,
2123
+ search: searchAdapter
1846
2124
  };
1847
2125
  const unknownAdapter = {
1848
2126
  getValue: () => void 0,
@@ -1876,4 +2154,4 @@ const cloneFiltersWithItemRefs = (filters) => filters.map(
1876
2154
  );
1877
2155
 
1878
2156
  export { DateListDialog as D, FilterGroupContext as F, checkActiveFilters as a, getAdapter as b, cloneFiltersWithItemRefs as c, FilterItemWrapper as d, FilterTriggerButton as e, getActiveFilters as g, hasFilterSelectionChanged as h, preserveFilterState as p, resetFilters as r, styles as s, updateSingleFilter as u };
1879
- //# sourceMappingURL=filter-state-6m-E0d1i.js.map
2157
+ //# sourceMappingURL=filter-state-CSA3wjAR.js.map