@servicetitan/anvil2 1.50.0 → 1.50.2

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 (199) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/{Calendar-CAYitkfM.js → Calendar-BeFARXwq.js} +2 -2
  3. package/dist/{Calendar-CAYitkfM.js.map → Calendar-BeFARXwq.js.map} +1 -1
  4. package/dist/{Calendar-C9oxHTGG.js → Calendar-M9v994mm.js} +2 -2
  5. package/dist/{Calendar-C9oxHTGG.js.map → Calendar-M9v994mm.js.map} +1 -1
  6. package/dist/Calendar.js +2 -2
  7. package/dist/{Checkbox-DbBeuNdW.js → Checkbox-BwFY38z1.js} +3 -2
  8. package/dist/Checkbox-BwFY38z1.js.map +1 -0
  9. package/dist/{Checkbox-zAKOGEBl.js → Checkbox-Chck2V5C.js} +2 -2
  10. package/dist/{Checkbox-zAKOGEBl.js.map → Checkbox-Chck2V5C.js.map} +1 -1
  11. package/dist/Checkbox.js +2 -2
  12. package/dist/{Combobox-hxGMMb8x.js → Combobox-BTTWNSW1.js} +290 -192
  13. package/dist/Combobox-BTTWNSW1.js.map +1 -0
  14. package/dist/Combobox.js +1 -1
  15. package/dist/{DataTable-DSySFGWC.js → DataTable-hXWouflx.js} +114 -60
  16. package/dist/DataTable-hXWouflx.js.map +1 -0
  17. package/dist/DataTable.css +68 -26
  18. package/dist/{DateField-BT9jJRp5.js → DateField-B8JdMu94.js} +6 -6
  19. package/dist/{DateField-BT9jJRp5.js.map → DateField-B8JdMu94.js.map} +1 -1
  20. package/dist/DateField.js +1 -1
  21. package/dist/{DateFieldRange-ZAic_9mt.js → DateFieldRange-DWAgi_T9.js} +7 -7
  22. package/dist/{DateFieldRange-ZAic_9mt.js.map → DateFieldRange-DWAgi_T9.js.map} +1 -1
  23. package/dist/DateFieldRange.js +1 -1
  24. package/dist/{DateFieldSingle-DAtR8ImE.js → DateFieldSingle-CQ6X-bVX.js} +7 -7
  25. package/dist/{DateFieldSingle-DAtR8ImE.js.map → DateFieldSingle-CQ6X-bVX.js.map} +1 -1
  26. package/dist/DateFieldSingle.js +1 -1
  27. package/dist/{DateFieldYearless-DXO_MPwA.js → DateFieldYearless-D6-NfIHu.js} +4 -4
  28. package/dist/{DateFieldYearless-DXO_MPwA.js.map → DateFieldYearless-D6-NfIHu.js.map} +1 -1
  29. package/dist/DateFieldYearless.js +1 -1
  30. package/dist/{DateFieldYearlessRange-Cg6bbPIi.js → DateFieldYearlessRange-CQM0vibm.js} +4 -4
  31. package/dist/{DateFieldYearlessRange-Cg6bbPIi.js.map → DateFieldYearlessRange-CQM0vibm.js.map} +1 -1
  32. package/dist/DateFieldYearlessRange.js +1 -1
  33. package/dist/{DaysOfTheWeek-9B9d7-hF.js → DaysOfTheWeek-BR-mg77X.js} +3 -3
  34. package/dist/{DaysOfTheWeek-9B9d7-hF.js.map → DaysOfTheWeek-BR-mg77X.js.map} +1 -1
  35. package/dist/DaysOfTheWeek.js +1 -1
  36. package/dist/{Dialog-BwabBKoZ.js → Dialog-Ba2oIATn.js} +8 -8
  37. package/dist/Dialog-Ba2oIATn.js.map +1 -0
  38. package/dist/Dialog.js +2 -2
  39. package/dist/{DialogCancelButton-sTEfx5kf.js → DialogCancelButton-CBHyI0CI.js} +2 -2
  40. package/dist/{DialogCancelButton-sTEfx5kf.js.map → DialogCancelButton-CBHyI0CI.js.map} +1 -1
  41. package/dist/{Drawer-GXeoK-r9.js → Drawer-CWogbC68.js} +7 -7
  42. package/dist/{Drawer-GXeoK-r9.js.map → Drawer-CWogbC68.js.map} +1 -1
  43. package/dist/Drawer.js +1 -1
  44. package/dist/{DrawerContext-Cs3k160L.js → DrawerContext-rJvgnn3O.js} +2 -2
  45. package/dist/{DrawerContext-Cs3k160L.js.map → DrawerContext-rJvgnn3O.js.map} +1 -1
  46. package/dist/FieldDialog-BHgkQOhh.js +519 -0
  47. package/dist/FieldDialog-BHgkQOhh.js.map +1 -0
  48. package/dist/{SelectFieldSync.css → FieldDialog.css} +6 -5
  49. package/dist/{FieldLabel-jqlQ1Ldh.js → FieldLabel-BWOIFXgt.js} +7 -4
  50. package/dist/FieldLabel-BWOIFXgt.js.map +1 -0
  51. package/dist/FieldLabel.js +1 -1
  52. package/dist/{InputMask-CJC9xZHG.js → InputMask-BzY1DJoV.js} +3 -3
  53. package/dist/{InputMask-CJC9xZHG.js.map → InputMask-BzY1DJoV.js.map} +1 -1
  54. package/dist/InputMask.js +1 -1
  55. package/dist/{ListView-D8mfK8Lu.js → ListView-C5OBwbHe.js} +6 -4
  56. package/dist/ListView-C5OBwbHe.js.map +1 -0
  57. package/dist/ListView.js +1 -1
  58. package/dist/{Menu-Cn2JJe1Y.js → Menu-69JwGxYh.js} +2 -2
  59. package/dist/{Menu-Cn2JJe1Y.js.map → Menu-69JwGxYh.js.map} +1 -1
  60. package/dist/Menu.js +1 -1
  61. package/dist/MultiSelectField.d.ts +2 -0
  62. package/dist/MultiSelectField.js +2 -0
  63. package/dist/MultiSelectField.js.map +1 -0
  64. package/dist/MultiSelectFieldSync-B3HNQf7R.js +873 -0
  65. package/dist/MultiSelectFieldSync-B3HNQf7R.js.map +1 -0
  66. package/dist/MultiSelectFieldSync.css +259 -0
  67. package/dist/{NumberField-CjWLnD9X.js → NumberField-CcH25bnO.js} +3 -3
  68. package/dist/{NumberField-CjWLnD9X.js.map → NumberField-CcH25bnO.js.map} +1 -1
  69. package/dist/NumberField.js +1 -1
  70. package/dist/{Page-DEbpjQw0.js → Page-B5HZSjSl.js} +5 -5
  71. package/dist/{Page-DEbpjQw0.js.map → Page-B5HZSjSl.js.map} +1 -1
  72. package/dist/Page.js +1 -1
  73. package/dist/{Pagination-BR8MiRaA.js → Pagination-CkdBaQx6.js} +2 -2
  74. package/dist/{Pagination-BR8MiRaA.js.map → Pagination-CkdBaQx6.js.map} +1 -1
  75. package/dist/Pagination.js +1 -1
  76. package/dist/{Popover-CCXrzBul.js → Popover-D9SmGQTh.js} +6 -5
  77. package/dist/{Popover-CCXrzBul.js.map → Popover-D9SmGQTh.js.map} +1 -1
  78. package/dist/Popover.js +1 -1
  79. package/dist/{ProgressBar-BpKEr6cO.js → ProgressBar-BABkqVmW.js} +2 -2
  80. package/dist/{ProgressBar-BpKEr6cO.js.map → ProgressBar-BABkqVmW.js.map} +1 -1
  81. package/dist/ProgressBar.js +1 -1
  82. package/dist/{Radio-jj0-1dOg.js → Radio-Cds2laHA.js} +2 -2
  83. package/dist/{Radio-jj0-1dOg.js.map → Radio-Cds2laHA.js.map} +1 -1
  84. package/dist/Radio.js +2 -2
  85. package/dist/{RadioGroup-Bxy415eu.js → RadioGroup-COVlUmwy.js} +3 -3
  86. package/dist/{RadioGroup-Bxy415eu.js.map → RadioGroup-COVlUmwy.js.map} +1 -1
  87. package/dist/{SelectCard-CjbsPKZ4.js → SelectCard-C-Kjk5eS.js} +3 -3
  88. package/dist/{SelectCard-CjbsPKZ4.js.map → SelectCard-C-Kjk5eS.js.map} +1 -1
  89. package/dist/SelectCard.js +1 -1
  90. package/dist/SelectField.js +1 -1
  91. package/dist/SelectFieldSync-0CL0RTpg.js +679 -0
  92. package/dist/SelectFieldSync-0CL0RTpg.js.map +1 -0
  93. package/dist/{SelectTrigger-DfVnPiNf.js → SelectTrigger-C1U-PlLz.js} +6 -3
  94. package/dist/SelectTrigger-C1U-PlLz.js.map +1 -0
  95. package/dist/SelectTrigger.js +1 -1
  96. package/dist/{SelectTriggerBase-D8scKtBr.js → SelectTriggerBase-RHD4FTQE.js} +5 -17
  97. package/dist/SelectTriggerBase-RHD4FTQE.js.map +1 -0
  98. package/dist/SelectTriggerBase.css +65 -59
  99. package/dist/SelectTriggerBase.module-B0NFRlQP.js +36 -0
  100. package/dist/SelectTriggerBase.module-B0NFRlQP.js.map +1 -0
  101. package/dist/Table.js +1 -1
  102. package/dist/{TextField-Qv6OqiKQ.js → TextField-BYGSTwkL.js} +2 -2
  103. package/dist/{TextField-Qv6OqiKQ.js.map → TextField-BYGSTwkL.js.map} +1 -1
  104. package/dist/{TextField-DNuEXKyN.js → TextField-BZ3h2mqU.js} +3 -3
  105. package/dist/{TextField-DNuEXKyN.js.map → TextField-BZ3h2mqU.js.map} +1 -1
  106. package/dist/TextField.js +1 -1
  107. package/dist/{Textarea-DdLD4imO.js → Textarea-Cb0Qs2FH.js} +8 -3
  108. package/dist/Textarea-Cb0Qs2FH.js.map +1 -0
  109. package/dist/Textarea.js +1 -1
  110. package/dist/{TimeField-C39hYluo.js → TimeField-DBtJYC7t.js} +4 -4
  111. package/dist/{TimeField-C39hYluo.js.map → TimeField-DBtJYC7t.js.map} +1 -1
  112. package/dist/TimeField.js +1 -1
  113. package/dist/Toast.js +2 -2
  114. package/dist/{Toaster-DJ4tNy-0.js → Toaster-Cerf91qp.js} +2 -2
  115. package/dist/{Toaster-DJ4tNy-0.js.map → Toaster-Cerf91qp.js.map} +1 -1
  116. package/dist/{Toaster-DyDVYq4x.js → Toaster-DDrGllhh.js} +3 -3
  117. package/dist/{Toaster-DyDVYq4x.js.map → Toaster-DDrGllhh.js.map} +1 -1
  118. package/dist/{Toolbar-DEwvVf35.js → Toolbar-K9UFfyvX.js} +326 -171
  119. package/dist/Toolbar-K9UFfyvX.js.map +1 -0
  120. package/dist/Toolbar.css +62 -30
  121. package/dist/Toolbar.js +1 -1
  122. package/dist/{Tooltip-CBy7srE2.js → Tooltip-CkfkiQPz.js} +2 -2
  123. package/dist/{Tooltip-CBy7srE2.js.map → Tooltip-CkfkiQPz.js.map} +1 -1
  124. package/dist/Tooltip.js +1 -1
  125. package/dist/{YearlessDateInputWithPicker-DMGx3gE2.js → YearlessDateInputWithPicker-BIkxKxPi.js} +4 -4
  126. package/dist/{YearlessDateInputWithPicker-DMGx3gE2.js.map → YearlessDateInputWithPicker-BIkxKxPi.js.map} +1 -1
  127. package/dist/beta/components/MultiSelectField/MultiSelectField.d.ts +27 -0
  128. package/dist/beta/components/MultiSelectField/MultiSelectFieldSync.d.ts +63 -0
  129. package/dist/beta/components/MultiSelectField/index.d.ts +3 -0
  130. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +79 -0
  131. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldList.d.ts +26 -0
  132. package/dist/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +44 -0
  133. package/dist/beta/components/MultiSelectField/stories/MultiSelectField.stories.data.d.ts +19 -0
  134. package/dist/beta/components/MultiSelectField/types.d.ts +311 -0
  135. package/dist/beta/components/SelectField/internal/FieldDialog/FieldDialog.d.ts +3 -1
  136. package/dist/beta/components/SelectField/internal/FieldPopover/FieldPopover.d.ts +1 -0
  137. package/dist/beta/components/SelectField/internal/SelectFieldInput.d.ts +3 -1
  138. package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +11 -3
  139. package/dist/beta/components/SelectField/internal/SelectFieldListItem.d.ts +2 -1
  140. package/dist/beta/components/SelectField/internal/useCombo.d.ts +1 -0
  141. package/dist/beta/components/SelectField/types.d.ts +19 -1
  142. package/dist/beta/components/Table/DataTable/internal/cells/DataTableHeaderCell.d.ts +9 -1
  143. package/dist/beta/components/Table/DataTable/stories/DataTable.story-data.d.ts +1 -0
  144. package/dist/beta/components/Table/internal/ResizeHandle.d.ts +5 -2
  145. package/dist/beta/components/Table/internal/getCommonPinningStyles.d.ts +2 -1
  146. package/dist/beta/components/Toolbar/Filters/internal/utils/filter-state.d.ts +28 -0
  147. package/dist/beta/components/index.d.ts +1 -0
  148. package/dist/beta.js +7 -5
  149. package/dist/beta.js.map +1 -1
  150. package/dist/components/Button/Button.figma.d.ts +1 -0
  151. package/dist/components/Combobox/ComboboxTypes.d.ts +1 -1
  152. package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyTrigger.d.ts +2 -2
  153. package/dist/components/Combobox/internal/ComboboxLegacy/ComboboxLegacyUtils.d.ts +0 -36
  154. package/dist/components/Combobox/internal/ComboboxUtils.d.ts +0 -57
  155. package/dist/components/FieldLabel/FieldLabel.d.ts +5 -1
  156. package/dist/components/FieldLabel/internal/FieldLabelMoreInfoIcon.d.ts +3 -1
  157. package/dist/components/Icon/Icons.figma.d.ts +11 -0
  158. package/dist/components/ListView/ListView.d.ts +2 -9
  159. package/dist/components/ListView/internal/types.d.ts +12 -0
  160. package/dist/components/SelectTrigger/SelectTrigger.d.ts +1 -1
  161. package/dist/components/Switch/Switch.figma.d.ts +1 -0
  162. package/dist/components/Textarea/Textarea.d.ts +1 -1
  163. package/dist/index.js +34 -34
  164. package/dist/internal/components/Label/Label.d.ts +13 -3
  165. package/dist/internal/hooks/index.d.ts +1 -0
  166. package/dist/internal/hooks/useDownshiftEnvironment/index.d.ts +1 -0
  167. package/dist/internal/hooks/useDownshiftEnvironment/useDownshiftEnvironment.d.ts +36 -0
  168. package/dist/internal/hooks/useOnClickOutside/useOnClickOutside.d.ts +8 -7
  169. package/dist/{match-sorter.esm-CtBw0MrM.js → match-sorter.esm-NrKOPPde.js} +16 -3
  170. package/dist/match-sorter.esm-NrKOPPde.js.map +1 -0
  171. package/dist/types/props.d.ts +5 -0
  172. package/dist/{useInitialFocus-BpmW7pDB.js → useInitialFocus-D_ESGka7.js} +3 -3
  173. package/dist/{useInitialFocus-BpmW7pDB.js.map → useInitialFocus-D_ESGka7.js.map} +1 -1
  174. package/dist/useOnClickOutside-Zw5vzxSq.js +71 -0
  175. package/dist/useOnClickOutside-Zw5vzxSq.js.map +1 -0
  176. package/dist/useOpenCloseTransitionStates-CiTYrLGi.js +68 -0
  177. package/dist/useOpenCloseTransitionStates-CiTYrLGi.js.map +1 -0
  178. package/dist/{usePopoverSupport-CCSCHnit.js → usePopoverSupport-CldZmxFl.js} +2 -2
  179. package/dist/{usePopoverSupport-CCSCHnit.js.map → usePopoverSupport-CldZmxFl.js.map} +1 -1
  180. package/dist/{utils-Bkbn9cyk.js → utils-u8cyv323.js} +2 -2
  181. package/dist/{utils-Bkbn9cyk.js.map → utils-u8cyv323.js.map} +1 -1
  182. package/package.json +4 -3
  183. package/dist/Checkbox-DbBeuNdW.js.map +0 -1
  184. package/dist/Combobox-hxGMMb8x.js.map +0 -1
  185. package/dist/DataTable-DSySFGWC.js.map +0 -1
  186. package/dist/Dialog-BwabBKoZ.js.map +0 -1
  187. package/dist/FieldLabel-jqlQ1Ldh.js.map +0 -1
  188. package/dist/ListView-D8mfK8Lu.js.map +0 -1
  189. package/dist/SelectFieldSync-BOzavAtv.js +0 -1122
  190. package/dist/SelectFieldSync-BOzavAtv.js.map +0 -1
  191. package/dist/SelectTrigger-DfVnPiNf.js.map +0 -1
  192. package/dist/SelectTriggerBase-D8scKtBr.js.map +0 -1
  193. package/dist/SelectTriggerBase.module-Ce49lamD.js +0 -35
  194. package/dist/SelectTriggerBase.module-Ce49lamD.js.map +0 -1
  195. package/dist/Textarea-DdLD4imO.js.map +0 -1
  196. package/dist/Toolbar-DEwvVf35.js.map +0 -1
  197. package/dist/match-sorter.esm-CtBw0MrM.js.map +0 -1
  198. package/dist/useOnClickOutside-BDzuUjmY.js +0 -147
  199. package/dist/useOnClickOutside-BDzuUjmY.js.map +0 -1
@@ -2,7 +2,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { useState, useEffect, useContext, createContext, useId, useRef, useCallback, forwardRef, useMemo } from 'react';
4
4
  import { B as Button } from './Button-92_FKAyV.js';
5
- import { T as Tooltip } from './Tooltip-CBy7srE2.js';
5
+ import { T as Tooltip } from './Tooltip-CkfkiQPz.js';
6
6
  import { g as getKeyboardFocusableElements } from './getKeyboardFocusableElements-QqcABz0D.js';
7
7
  import { c as cx } from './index-tZvMCc77.js';
8
8
  import { u as useIntersectionObserver } from './useIntersectionObserver-BEmMDO3P.js';
@@ -11,24 +11,25 @@ import { B as ButtonToggle } from './ButtonToggle--sKvhBoA.js';
11
11
  import { B as ButtonLink } from './ButtonLink-C0zR7Wnb.js';
12
12
  import { S as SvgArrowDropDown } from './arrow_drop_down-ChAdBDux.js';
13
13
  import { L as Listbox } from './Listbox-C-n4IVVj.js';
14
- import { P as Popover } from './Popover-CCXrzBul.js';
14
+ import { P as Popover } from './Popover-D9SmGQTh.js';
15
15
  import { F as Flex } from './Flex-CjPHUTeq.js';
16
16
  import { S as SvgMoreHoriz } from './more_horiz-DJgdQiy0.js';
17
17
  import { S as SvgMoreVert } from './more_vert-C_lJSyxt.js';
18
18
  import { I as Icon } from './Icon-BSuTVNaa.js';
19
19
  import { S as SvgClose } from './close-DZj38AEh.js';
20
+ import { t as tabbable } from './DrawerContext-rJvgnn3O.js';
20
21
  import { S as SvgKeyboardArrowDown } from './keyboard_arrow_down-C8WQ38p1.js';
21
22
  import { S as SvgEvent } from './event-BEJFimi3.js';
22
- import { D as DateTime } from './Calendar-CAYitkfM.js';
23
+ import { D as DateTime } from './Calendar-BeFARXwq.js';
23
24
  import { C as Chip } from './Chip-UqdorCE2.js';
24
- import { L as ListView } from './ListView-D8mfK8Lu.js';
25
+ import { L as ListView } from './ListView-C5OBwbHe.js';
25
26
  import { S as SearchField, a as SvgSearch } from './SearchField-CJAo8dE0.js';
26
- import { u as useDateFieldSingleConversion, a as useDateFieldSingleState, M as MaskedDateInput, b as DateFieldSingleCalendar, D as DateFieldSingle } from './DateFieldSingle-DAtR8ImE.js';
27
- import { u as useDateFieldRangeConversion, a as useDateFieldRangeState, M as MaskedDateRangeInput, b as DateFieldRangeCalendar, D as DateFieldRange } from './DateFieldRange-ZAic_9mt.js';
28
- import { C as Checkbox } from './Checkbox-zAKOGEBl.js';
29
- import { R as Radio } from './Radio-jj0-1dOg.js';
30
- import { C as Combobox } from './Combobox-hxGMMb8x.js';
31
- import { D as Drawer } from './Drawer-GXeoK-r9.js';
27
+ import { u as useDateFieldSingleConversion, a as useDateFieldSingleState, M as MaskedDateInput, b as DateFieldSingleCalendar, D as DateFieldSingle } from './DateFieldSingle-CQ6X-bVX.js';
28
+ import { u as useDateFieldRangeConversion, a as useDateFieldRangeState, M as MaskedDateRangeInput, b as DateFieldRangeCalendar, D as DateFieldRange } from './DateFieldRange-DWAgi_T9.js';
29
+ import { C as Checkbox } from './Checkbox-Chck2V5C.js';
30
+ import { R as Radio } from './Radio-Cds2laHA.js';
31
+ import { C as Combobox } from './Combobox-BTTWNSW1.js';
32
+ import { D as Drawer } from './Drawer-CWogbC68.js';
32
33
  import { d as BreakpointSm, c as BreakpointMd, b as BreakpointLg, a as BreakpointXl, B as BreakpointXxl } from './primitive-BByug0kD.js';
33
34
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
34
35
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-BlIWftBb.js';
@@ -212,18 +213,18 @@ const handleMenuKeyboardNavigation = (event) => {
212
213
  menuItems[nextIndex]?.focus();
213
214
  };
214
215
 
215
- const toolbar = "_toolbar_bslcr_13";
216
+ const toolbar = "_toolbar_1em0g_13";
216
217
  const styles$3 = {
217
218
  toolbar: toolbar,
218
- "toolbar-outline-spacer": "_toolbar-outline-spacer_bslcr_17",
219
- "toolbar-content": "_toolbar-content_bslcr_20",
220
- "overflow-wrap": "_overflow-wrap_bslcr_24",
221
- "overflow-collapse": "_overflow-collapse_bslcr_27",
222
- "toolbar-overflow-content": "_toolbar-overflow-content_bslcr_30",
223
- "toolbar-button-item": "_toolbar-button-item_bslcr_38",
224
- "toolbar-item": "_toolbar-item_bslcr_44",
225
- "toolbar-button-toggle-item": "_toolbar-button-toggle-item_bslcr_63",
226
- "toolbar-overflow-trigger": "_toolbar-overflow-trigger_bslcr_69"
219
+ "toolbar-outline-spacer": "_toolbar-outline-spacer_1em0g_20",
220
+ "toolbar-content": "_toolbar-content_1em0g_23",
221
+ "overflow-wrap": "_overflow-wrap_1em0g_28",
222
+ "overflow-collapse": "_overflow-collapse_1em0g_31",
223
+ "toolbar-overflow-content": "_toolbar-overflow-content_1em0g_34",
224
+ "toolbar-button-item": "_toolbar-button-item_1em0g_42",
225
+ "toolbar-item": "_toolbar-item_1em0g_48",
226
+ "toolbar-button-toggle-item": "_toolbar-button-toggle-item_1em0g_67",
227
+ "toolbar-overflow-trigger": "_toolbar-overflow-trigger_1em0g_73"
227
228
  };
228
229
 
229
230
  const ToolbarItemWrapper = ({
@@ -679,14 +680,15 @@ const FilterGroupContext = createContext({
679
680
  });
680
681
 
681
682
  const styles$2 = {
682
- "filter-button-trigger": "_filter-button-trigger_320zf_18",
683
- "filter-button-content": "_filter-button-content_320zf_22",
684
- "filter-drawer-trigger": "_filter-drawer-trigger_320zf_26",
685
- "filter-button-buttons": "_filter-button-buttons_320zf_31",
686
- "filter-item": "_filter-item_320zf_37",
687
- "filter-select-search": "_filter-select-search_320zf_45",
688
- "filter-button-trigger--selected": "_filter-button-trigger--selected_320zf_54",
689
- "filter-drawer-trigger--chipped": "_filter-drawer-trigger--chipped_320zf_64"
683
+ "filter-button-trigger": "_filter-button-trigger_1gitm_18",
684
+ "filter-button-content": "_filter-button-content_1gitm_22",
685
+ "filter-select-content": "_filter-select-content_1gitm_26",
686
+ "filter-button-buttons": "_filter-button-buttons_1gitm_32",
687
+ "filter-drawer-trigger": "_filter-drawer-trigger_1gitm_38",
688
+ "filter-item": "_filter-item_1gitm_53",
689
+ "filter-select-search": "_filter-select-search_1gitm_61",
690
+ "filter-button-trigger--selected": "_filter-button-trigger--selected_1gitm_78",
691
+ "filter-drawer-trigger--chipped": "_filter-drawer-trigger--chipped_1gitm_88"
690
692
  };
691
693
 
692
694
  const FilterItemWrapper = ({
@@ -694,18 +696,8 @@ const FilterItemWrapper = ({
694
696
  children
695
697
  }) => {
696
698
  const { addHiddenFilter, removeHiddenFilter, filterGroupRef } = useContext(FilterGroupContext);
697
- const props = {
698
- item: {
699
- itemType: "button",
700
- itemProps: {
701
- children: null,
702
- "aria-hidden": true
703
- }
704
- },
705
- children,
706
- className: styles$2["filter-item"],
707
- observerRoot: filterGroupRef.current,
708
- onVisibilityChange: (isVisible) => {
699
+ const handleVisibilityChange = useCallback(
700
+ (isVisible) => {
709
701
  if (filter) {
710
702
  if (isVisible) {
711
703
  removeHiddenFilter?.(filter);
@@ -714,8 +706,25 @@ const FilterItemWrapper = ({
714
706
  }
715
707
  }
716
708
  },
717
- rootMargin: "0px -80px 0px 0px"
718
- };
709
+ [filter, addHiddenFilter, removeHiddenFilter]
710
+ );
711
+ const props = useMemo(
712
+ () => ({
713
+ item: {
714
+ itemType: "button",
715
+ itemProps: {
716
+ children: null,
717
+ "aria-hidden": true
718
+ }
719
+ },
720
+ children,
721
+ className: styles$2["filter-item"],
722
+ observerRoot: filterGroupRef.current,
723
+ onVisibilityChange: handleVisibilityChange,
724
+ rootMargin: "0px -80px 0px 0px"
725
+ }),
726
+ [children, filterGroupRef, handleVisibilityChange]
727
+ );
719
728
  return /* @__PURE__ */ jsx(ToolbarItemWrapper, { ...props });
720
729
  };
721
730
 
@@ -731,8 +740,9 @@ const getActiveFilters = (filters) => {
731
740
  case "multiSelect":
732
741
  return filter.selectedItems && filter.selectedItems.length > 0;
733
742
  case "date":
734
- case "dateRange":
735
743
  return filter.value !== null && filter.value !== void 0;
744
+ case "dateRange":
745
+ return filter.value !== null && filter.value !== void 0 && filter.value.startDate !== null && filter.value.endDate !== null;
736
746
  default:
737
747
  return false;
738
748
  }
@@ -820,6 +830,108 @@ const hasChangedFilter = (a, b) => {
820
830
  }
821
831
  return a !== b;
822
832
  };
833
+ const getFilterSelectionValue = (filter) => {
834
+ switch (filter.type) {
835
+ case "boolean":
836
+ return filter.checked;
837
+ case "singleSelect":
838
+ return filter.selectedItem;
839
+ case "multiSelect":
840
+ return filter.selectedItems;
841
+ case "date":
842
+ case "dateRange":
843
+ case "custom":
844
+ return filter.value;
845
+ default:
846
+ return void 0;
847
+ }
848
+ };
849
+ const hasFilterSelectionChanged = (existingFilter, newFilter) => {
850
+ const existingValue = getFilterSelectionValue(existingFilter);
851
+ const newValue = getFilterSelectionValue(newFilter);
852
+ return existingValue !== newValue;
853
+ };
854
+ const preserveFilterState = (newFilter, existingFilter) => {
855
+ switch (newFilter.type) {
856
+ case "boolean":
857
+ return {
858
+ ...newFilter,
859
+ checked: existingFilter.checked
860
+ };
861
+ case "singleSelect":
862
+ return {
863
+ ...newFilter,
864
+ selectedItem: existingFilter.selectedItem
865
+ };
866
+ case "multiSelect":
867
+ return {
868
+ ...newFilter,
869
+ selectedItems: existingFilter.selectedItems
870
+ };
871
+ case "date":
872
+ return {
873
+ ...newFilter,
874
+ value: existingFilter.value
875
+ };
876
+ case "dateRange":
877
+ return {
878
+ ...newFilter,
879
+ value: existingFilter.value
880
+ };
881
+ case "custom":
882
+ return {
883
+ ...newFilter,
884
+ value: existingFilter.value
885
+ };
886
+ default:
887
+ return newFilter;
888
+ }
889
+ };
890
+ const cloneFiltersWithItemRefs = (filters) => {
891
+ return filters.map((filter) => {
892
+ switch (filter.type) {
893
+ case "singleSelect":
894
+ return {
895
+ ...filter,
896
+ selectedItem: filter.selectedItem ? filter.items.find(
897
+ (item) => item.id === filter.selectedItem?.id
898
+ ) || filter.selectedItem : void 0
899
+ };
900
+ case "multiSelect":
901
+ return {
902
+ ...filter,
903
+ selectedItems: filter.selectedItems ? filter.selectedItems.map(
904
+ (selectedItem) => filter.items.find((item) => item.id === selectedItem.id) || selectedItem
905
+ ) : []
906
+ };
907
+ case "date":
908
+ return {
909
+ ...filter,
910
+ value: filter.value
911
+ };
912
+ case "dateRange":
913
+ return {
914
+ ...filter,
915
+ value: filter.value
916
+ };
917
+ case "custom": {
918
+ const { value } = filter;
919
+ if (value === void 0) {
920
+ return { ...filter, value: void 0 };
921
+ }
922
+ if (Array.isArray(value)) {
923
+ return { ...filter, value: [...value] };
924
+ }
925
+ if (typeof value === "object" && value !== null) {
926
+ return { ...filter, value: { ...value } };
927
+ }
928
+ return { ...filter, value };
929
+ }
930
+ default:
931
+ return { ...filter };
932
+ }
933
+ });
934
+ };
823
935
 
824
936
  const FilterToggleButton = ({
825
937
  id,
@@ -852,8 +964,30 @@ const FilterSelect = ({
852
964
  onDraftChange
853
965
  }) => {
854
966
  const isMultiSelect = filter.type === "multiSelect";
967
+ const listRef = useRef(null);
968
+ const handleSearch = useCallback(
969
+ (e) => {
970
+ filter.onSearch?.(e.target.value);
971
+ },
972
+ [filter]
973
+ );
974
+ const handleSearchClear = useCallback(() => {
975
+ filter.onSearchClear?.();
976
+ }, [filter]);
977
+ const handleSearchKeyDown = useCallback(
978
+ (e) => {
979
+ if (e.key === "ArrowDown" && listRef.current) {
980
+ e.preventDefault();
981
+ const focusableElements = tabbable(listRef.current);
982
+ if (focusableElements.length > 0) {
983
+ focusableElements[0].focus();
984
+ }
985
+ }
986
+ },
987
+ []
988
+ );
855
989
  const singleSelectList = useMemo(
856
- () => /* @__PURE__ */ jsx(
990
+ () => /* @__PURE__ */ jsx("div", { ref: listRef, children: /* @__PURE__ */ jsx(
857
991
  Listbox,
858
992
  {
859
993
  items: filter.items,
@@ -862,15 +996,23 @@ const FilterSelect = ({
862
996
  onDraftChange(selected);
863
997
  },
864
998
  disableAutoSelectOnFocus: true,
865
- style: { padding: 0 },
866
- children: ({ items }) => items.map((item) => /* @__PURE__ */ jsx(Listbox.Option, { item, disabled: item.disabled, children: item.label }, item.id))
999
+ style: { paddingInline: "1rem", paddingBlockStart: "1rem" },
1000
+ children: ({ items }) => items.map((item) => /* @__PURE__ */ jsx(
1001
+ Listbox.Option,
1002
+ {
1003
+ item,
1004
+ disabled: item.disabled,
1005
+ children: item.label
1006
+ },
1007
+ item.id
1008
+ ))
867
1009
  },
868
1010
  filter.id
869
- ),
1011
+ ) }),
870
1012
  [filter.id, filter.items, draftValue, onDraftChange]
871
1013
  );
872
1014
  const multiSelectList = useMemo(
873
- () => /* @__PURE__ */ jsx(
1015
+ () => /* @__PURE__ */ jsx("div", { ref: listRef, children: /* @__PURE__ */ jsx(
874
1016
  ListView,
875
1017
  {
876
1018
  items: filter.items,
@@ -879,11 +1021,11 @@ const FilterSelect = ({
879
1021
  const items = selectedItems;
880
1022
  onDraftChange(items);
881
1023
  },
882
- style: { padding: 0 },
1024
+ style: { paddingInline: "1rem", paddingBlockStart: "1rem" },
883
1025
  children: ({ items }) => items.map((item) => /* @__PURE__ */ jsx(ListView.Option, { item, children: item.label }, item.id))
884
1026
  },
885
1027
  filter.id
886
- ),
1028
+ ) }),
887
1029
  [filter.id, filter.items, draftValue, onDraftChange]
888
1030
  );
889
1031
  return /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -892,12 +1034,9 @@ const FilterSelect = ({
892
1034
  {
893
1035
  size: "small",
894
1036
  className: styles$2["filter-select-search"],
895
- onChange: (e) => {
896
- filter.onSearch?.(e.target.value);
897
- },
898
- onClear: () => {
899
- filter.onSearchClear?.();
900
- },
1037
+ onChange: handleSearch,
1038
+ onClear: handleSearchClear,
1039
+ onKeyDown: handleSearchKeyDown,
901
1040
  "data-anv": "filter-select-search"
902
1041
  }
903
1042
  ),
@@ -969,7 +1108,7 @@ const FilterDateRange = ({
969
1108
  onChange: (change) => {
970
1109
  const hasCompleteRange = change.startDate && change.endDate;
971
1110
  const isClearingRange = change.isInputEmpty;
972
- if (change.isInputValid && (hasCompleteRange || isClearingRange)) {
1111
+ if (change.isInputValid && hasCompleteRange || isClearingRange) {
973
1112
  onChange({ ...change, isDateRangeValid: true });
974
1113
  }
975
1114
  }
@@ -1008,7 +1147,13 @@ const FilterButton = ({
1008
1147
  const [draftValue, setDraftValue] = useState(
1009
1148
  filter.type === "multiSelect" ? [] : void 0
1010
1149
  );
1011
- const getCurrentFilterValue = () => {
1150
+ const draftValueRef = useRef(draftValue);
1151
+ const triggerRef = useRef(null);
1152
+ const contentRef = useRef(null);
1153
+ useEffect(() => {
1154
+ draftValueRef.current = draftValue;
1155
+ }, [draftValue]);
1156
+ const getCurrentFilterValue = useCallback(() => {
1012
1157
  switch (filter.type) {
1013
1158
  case "singleSelect":
1014
1159
  return filter.selectedItem;
@@ -1022,43 +1167,61 @@ const FilterButton = ({
1022
1167
  default:
1023
1168
  return void 0;
1024
1169
  }
1025
- };
1170
+ }, [filter]);
1171
+ const prevIsOpenRef = useRef(isOpen);
1172
+ const prevFilterRef = useRef(filter);
1026
1173
  useEffect(() => {
1174
+ const justOpened = isOpen && !prevIsOpenRef.current;
1175
+ prevIsOpenRef.current = isOpen;
1027
1176
  if (isOpen) {
1028
- const initialValue = getCurrentFilterValue();
1029
- setDraftValue(initialValue);
1177
+ const shouldSync = justOpened || prevFilterRef.current && hasFilterSelectionChanged(prevFilterRef.current, filter);
1178
+ if (shouldSync) {
1179
+ const currentValue = getCurrentFilterValue();
1180
+ setDraftValue(currentValue);
1181
+ }
1182
+ prevFilterRef.current = filter;
1030
1183
  }
1031
- }, [isOpen]);
1184
+ }, [isOpen, filter]);
1032
1185
  const handleChange = useCallback(
1033
1186
  (value) => {
1034
- if (hasChangedFilter(value, draftValue)) {
1187
+ if (hasChangedFilter(value, draftValueRef.current)) {
1035
1188
  setDraftValue(value);
1036
- if (!controlledFiltering) {
1189
+ if (!controlledFiltering && filter.type !== "multiSelect") {
1037
1190
  updateFilter(filter.id, value, true);
1038
- if (filter.type !== "multiSelect") {
1039
- setIsOpen(false);
1040
- }
1191
+ setIsOpen(false);
1192
+ requestAnimationFrame(() => {
1193
+ triggerRef.current?.focus();
1194
+ });
1041
1195
  }
1042
1196
  }
1043
1197
  },
1044
- [filter.id, filter.type, controlledFiltering, updateFilter, draftValue]
1198
+ [filter.id, filter.type, controlledFiltering, updateFilter]
1045
1199
  );
1046
- const handleSubmit = () => {
1200
+ const handleSubmit = useCallback(() => {
1047
1201
  const stateValue = getCurrentFilterValue();
1048
1202
  if (hasChangedFilter(draftValue, stateValue)) {
1049
1203
  updateFilter(filter.id, draftValue, true);
1050
1204
  }
1051
1205
  setIsOpen(false);
1052
- };
1053
- const handleCancel = () => {
1206
+ requestAnimationFrame(() => {
1207
+ triggerRef.current?.focus();
1208
+ });
1209
+ }, [draftValue, getCurrentFilterValue, filter.id, updateFilter]);
1210
+ const handleCancel = useCallback(() => {
1054
1211
  if (!controlledFiltering) {
1055
1212
  setIsOpen(false);
1213
+ requestAnimationFrame(() => {
1214
+ triggerRef.current?.focus();
1215
+ });
1056
1216
  return;
1057
1217
  }
1058
1218
  const originalValue = getCurrentFilterValue();
1059
1219
  setDraftValue(originalValue);
1060
1220
  setIsOpen(false);
1061
- };
1221
+ requestAnimationFrame(() => {
1222
+ triggerRef.current?.focus();
1223
+ });
1224
+ }, [controlledFiltering, getCurrentFilterValue]);
1062
1225
  const getButtonLabel = useMemo(() => {
1063
1226
  switch (filter.type) {
1064
1227
  case "singleSelect": {
@@ -1094,7 +1257,7 @@ const FilterButton = ({
1094
1257
  }
1095
1258
  return filter.label;
1096
1259
  case "dateRange":
1097
- if (filter.value) {
1260
+ if (filter.value?.startDate && filter.value?.endDate) {
1098
1261
  const start = DateTime.fromISO(filter.value.startDate, {
1099
1262
  zone: "local"
1100
1263
  });
@@ -1177,9 +1340,6 @@ const FilterButton = ({
1177
1340
  if (controlledFiltering) {
1178
1341
  handleCancel();
1179
1342
  } else {
1180
- if (filter.type === "multiSelect") {
1181
- updateFilter(filter.id, draftValue, true);
1182
- }
1183
1343
  handleSubmit();
1184
1344
  }
1185
1345
  };
@@ -1192,9 +1352,37 @@ const FilterButton = ({
1192
1352
  if (e.key === "Escape") {
1193
1353
  handleOutsidePress();
1194
1354
  }
1355
+ if (e.key === "Tab" && contentRef.current) {
1356
+ const focusableElements = tabbable(contentRef.current);
1357
+ if (focusableElements.length === 0) return;
1358
+ const firstElement = focusableElements[0];
1359
+ const lastElement = focusableElements[focusableElements.length - 1];
1360
+ const activeElement = document.activeElement;
1361
+ if (e.shiftKey && activeElement === firstElement) {
1362
+ e.preventDefault();
1363
+ lastElement.focus();
1364
+ } else if (!e.shiftKey && activeElement === lastElement) {
1365
+ e.preventDefault();
1366
+ firstElement.focus();
1367
+ }
1368
+ }
1369
+ };
1370
+ const handleTriggerKeyDown = (e) => {
1371
+ if (e.key === "ArrowDown") {
1372
+ if (isOpen && contentRef.current) {
1373
+ e.preventDefault();
1374
+ requestAnimationFrame(() => {
1375
+ if (!contentRef.current) return;
1376
+ const focusableElements = tabbable(contentRef.current);
1377
+ if (focusableElements.length > 0) {
1378
+ focusableElements[0].focus();
1379
+ }
1380
+ });
1381
+ }
1382
+ }
1195
1383
  };
1196
1384
  const triggerClasses = cx(styles$2["filter-button-trigger"], {
1197
- [styles$2["filter-button-trigger--selected"]]: filter.type === "custom" && filter.value || filter.type === "singleSelect" && filter.selectedItem || filter.type === "multiSelect" && filter.selectedItems && filter.selectedItems.length > 0 || filter.type === "date" && filter.value || filter.type === "dateRange" && filter.value
1385
+ [styles$2["filter-button-trigger--selected"]]: filter.type === "custom" && filter.value || filter.type === "singleSelect" && filter.selectedItem || filter.type === "multiSelect" && filter.selectedItems && filter.selectedItems.length > 0 || filter.type === "date" && filter.value || filter.type === "dateRange" && filter.value?.startDate && filter.value?.endDate
1198
1386
  });
1199
1387
  const contentClasses = cx(styles$2["filter-button-content"], className);
1200
1388
  const iconOptions = filter.type === "date" || filter.type === "dateRange" ? { before: SvgEvent } : { after: SvgKeyboardArrowDown };
@@ -1204,11 +1392,16 @@ const FilterButton = ({
1204
1392
  open: isOpen,
1205
1393
  onClickOutside: isOpen ? handleOutsidePress : void 0,
1206
1394
  placement: "bottom-start",
1395
+ noPadding: filter.type === "multiSelect" || filter.type === "singleSelect",
1207
1396
  children: [
1208
1397
  /* @__PURE__ */ jsx(
1209
1398
  Popover.Button,
1210
1399
  {
1211
- onKeyDown: handleKeyDown,
1400
+ ref: triggerRef,
1401
+ onKeyDown: (e) => {
1402
+ handleTriggerKeyDown(e);
1403
+ handleKeyDown(e);
1404
+ },
1212
1405
  appearance: "ghost",
1213
1406
  size: "small",
1214
1407
  icon: iconOptions,
@@ -1221,21 +1414,29 @@ const FilterButton = ({
1221
1414
  children: getButtonLabel
1222
1415
  }
1223
1416
  ),
1224
- /* @__PURE__ */ jsxs(Popover.Content, { onKeyDown: handleKeyDown, className: contentClasses, children: [
1225
- getContent,
1226
- controlledFiltering && /* @__PURE__ */ jsxs(
1227
- Flex,
1228
- {
1229
- gap: 2,
1230
- justifyContent: "flex-end",
1231
- className: styles$2["filter-button-buttons"],
1232
- children: [
1233
- /* @__PURE__ */ jsx(Popover.Close, { size: "small", onClick: handleCancel, children: "Cancel" }),
1234
- /* @__PURE__ */ jsx(Button, { appearance: "primary", size: "small", onClick: handleSubmit, children: "Apply" })
1235
- ]
1236
- }
1237
- )
1238
- ] })
1417
+ /* @__PURE__ */ jsxs(
1418
+ Popover.Content,
1419
+ {
1420
+ ref: contentRef,
1421
+ onKeyDown: handleKeyDown,
1422
+ className: contentClasses,
1423
+ children: [
1424
+ getContent,
1425
+ controlledFiltering && /* @__PURE__ */ jsxs(
1426
+ Flex,
1427
+ {
1428
+ gap: 2,
1429
+ justifyContent: "flex-end",
1430
+ className: styles$2["filter-button-buttons"],
1431
+ children: [
1432
+ /* @__PURE__ */ jsx(Popover.Close, { size: "small", onClick: handleCancel, children: "Cancel" }),
1433
+ /* @__PURE__ */ jsx(Button, { appearance: "primary", size: "small", onClick: handleSubmit, children: "Apply" })
1434
+ ]
1435
+ }
1436
+ )
1437
+ ]
1438
+ }
1439
+ )
1239
1440
  ]
1240
1441
  }
1241
1442
  ) });
@@ -1285,50 +1486,25 @@ const FilterDrawer = () => {
1285
1486
  const activeFiltersCount = getActiveFilters(
1286
1487
  !showInlineFilters ? filters : hiddenFilters
1287
1488
  ).length;
1489
+ const prevOpenRef = useRef(open);
1490
+ const prevFiltersRef = useRef(filters);
1288
1491
  useEffect(() => {
1492
+ const justOpened = open && !prevOpenRef.current;
1493
+ prevOpenRef.current = open;
1289
1494
  if (open) {
1290
- setDraftFilters(
1291
- filters.map((filter) => {
1292
- switch (filter.type) {
1293
- case "singleSelect":
1294
- return {
1295
- ...filter,
1296
- selectedItem: filter.selectedItem ? filter.items.find(
1297
- (item) => item.id === filter.selectedItem?.id
1298
- ) || filter.selectedItem : void 0
1299
- };
1300
- case "multiSelect":
1301
- return {
1302
- ...filter,
1303
- selectedItems: filter.selectedItems ? filter.selectedItems.map((selectedItem) => {
1304
- const matchingItem = filter.items.find(
1305
- (item) => item.id === selectedItem.id
1306
- );
1307
- return matchingItem || selectedItem;
1308
- }) : []
1309
- };
1310
- case "date":
1311
- return {
1312
- ...filter,
1313
- value: filter.value
1314
- };
1315
- case "dateRange":
1316
- return {
1317
- ...filter,
1318
- value: filter.value
1319
- };
1320
- case "custom":
1321
- return {
1322
- ...filter,
1323
- value: filter.value ? { ...filter.value } : void 0
1324
- };
1325
- default:
1326
- return { ...filter };
1327
- }
1328
- })
1495
+ const anySelectionChanged = prevFiltersRef.current.some(
1496
+ (prevFilter, index) => {
1497
+ const newFilter = filters[index];
1498
+ return newFilter && hasFilterSelectionChanged(prevFilter, newFilter);
1499
+ }
1329
1500
  );
1501
+ const shouldSync = justOpened || anySelectionChanged;
1502
+ if (shouldSync) {
1503
+ setDraftFilters(cloneFiltersWithItemRefs(filters));
1504
+ }
1505
+ prevFiltersRef.current = filters;
1330
1506
  }
1331
- }, [open]);
1507
+ }, [open, filters]);
1332
1508
  const handleDraftChange = useCallback(
1333
1509
  (filterId, value) => {
1334
1510
  setDraftFilters((draft) => updateSingleFilter(draft, filterId, value));
@@ -1690,43 +1866,14 @@ const FilterGroupElement = forwardRef(
1690
1866
  const showInlineFilters = containerQuery && containerQuery.name !== "xs" && containerQuery.name !== "sm";
1691
1867
  useEffect(() => {
1692
1868
  setFilters((prevFilters) => {
1869
+ const existingFiltersMap = new Map(prevFilters.map((f) => [f.id, f]));
1693
1870
  return initialFilters.map((newFilter) => {
1694
- const existingFilter = prevFilters.find((f) => f.id === newFilter.id);
1695
- if (existingFilter) {
1696
- switch (newFilter.type) {
1697
- case "boolean":
1698
- return {
1699
- ...newFilter,
1700
- checked: existingFilter.checked
1701
- };
1702
- case "singleSelect":
1703
- return {
1704
- ...newFilter,
1705
- selectedItem: existingFilter.selectedItem
1706
- };
1707
- case "multiSelect":
1708
- return {
1709
- ...newFilter,
1710
- selectedItems: existingFilter.selectedItems
1711
- };
1712
- case "date":
1713
- return {
1714
- ...newFilter,
1715
- value: existingFilter.value
1716
- };
1717
- case "dateRange":
1718
- return {
1719
- ...newFilter,
1720
- value: existingFilter.value
1721
- };
1722
- case "custom":
1723
- return {
1724
- ...newFilter,
1725
- value: existingFilter.value
1726
- };
1727
- default:
1728
- return newFilter;
1729
- }
1871
+ const existingFilter = existingFiltersMap.get(newFilter.id);
1872
+ if (!existingFilter) {
1873
+ return newFilter;
1874
+ }
1875
+ if (!hasFilterSelectionChanged(existingFilter, newFilter)) {
1876
+ return preserveFilterState(newFilter, existingFilter);
1730
1877
  }
1731
1878
  return newFilter;
1732
1879
  });
@@ -1785,9 +1932,17 @@ const FilterGroupElement = forwardRef(
1785
1932
  },
1786
1933
  filter.id
1787
1934
  );
1788
- case "custom":
1789
1935
  case "singleSelect":
1790
1936
  case "multiSelect":
1937
+ return /* @__PURE__ */ jsx(
1938
+ FilterButton,
1939
+ {
1940
+ filter,
1941
+ className: styles$2["filter-select-content"]
1942
+ },
1943
+ filter.id
1944
+ );
1945
+ case "custom":
1791
1946
  case "date":
1792
1947
  case "dateRange":
1793
1948
  return /* @__PURE__ */ jsx(FilterButton, { filter }, filter.id);
@@ -2121,4 +2276,4 @@ const Toolbar = Object.assign(ToolbarElement, {
2121
2276
  });
2122
2277
 
2123
2278
  export { Toolbar as T, ToolbarButton as a, ToolbarButtonToggle as b, ToolbarButtonLink as c, ToolbarSelect as d, ToolbarControlGroup as e, ToolbarSearchField as f, ToolbarElement as g };
2124
- //# sourceMappingURL=Toolbar-DEwvVf35.js.map
2279
+ //# sourceMappingURL=Toolbar-K9UFfyvX.js.map