@cube-dev/ui-kit 0.0.0-canary-5b2a269 → 0.0.0-canary-974afb8

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 (407) hide show
  1. package/dist/CHANGELOG.md +6 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.js +1 -1
  13. package/dist/components/GlobalStyles.js +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.js +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -1
  37. package/dist/components/actions/index.js +1 -1
  38. package/dist/components/actions/use-action.js +1 -1
  39. package/dist/components/actions/use-anchored-menu.js +1 -1
  40. package/dist/components/actions/use-context-menu.js +1 -1
  41. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  42. package/dist/components/content/Alert/Alert.js +1 -1
  43. package/dist/components/content/Alert/use-alert.js +1 -1
  44. package/dist/components/content/Avatar/Avatar.js +1 -1
  45. package/dist/components/content/Badge/Badge.js +1 -1
  46. package/dist/components/content/Card/Card.js +1 -1
  47. package/dist/components/content/Content.js +1 -1
  48. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  49. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  50. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  51. package/dist/components/content/Divider.js +1 -1
  52. package/dist/components/content/Footer.js +1 -1
  53. package/dist/components/content/Header.js +1 -1
  54. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  55. package/dist/components/content/Item/Item.js +1 -1
  56. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  57. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  58. package/dist/components/content/Layout/GridLayout.js +1 -1
  59. package/dist/components/content/Layout/Layout.js +1 -1
  60. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  61. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  62. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  63. package/dist/components/content/Layout/LayoutContent.js +1 -1
  64. package/dist/components/content/Layout/LayoutContext.js +1 -1
  65. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  66. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  67. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  68. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  69. package/dist/components/content/Layout/LayoutPane.js +1 -1
  70. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  71. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  72. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  73. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  74. package/dist/components/content/Layout/index.js +1 -1
  75. package/dist/components/content/Layout/utils.js +1 -1
  76. package/dist/components/content/Paragraph.js +1 -1
  77. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  78. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  79. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  80. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  81. package/dist/components/content/Result/Result.js +1 -1
  82. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  83. package/dist/components/content/Tag/Tag.js +1 -1
  84. package/dist/components/content/Text.js +1 -1
  85. package/dist/components/content/TextItem/TextItem.js +1 -1
  86. package/dist/components/content/Title.js +1 -1
  87. package/dist/components/content/highlightText.js +1 -1
  88. package/dist/components/content/use-auto-tooltip.js +1 -1
  89. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  90. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  91. package/dist/components/fields/Checkbox/context.js +1 -1
  92. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  93. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  94. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  95. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  96. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  97. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  98. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  99. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  100. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  101. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  102. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  103. package/dist/components/fields/DatePicker/intl.js +1 -1
  104. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  105. package/dist/components/fields/DatePicker/props.js +1 -1
  106. package/dist/components/fields/DatePicker/utils.js +1 -1
  107. package/dist/components/fields/FileInput/FileInput.js +1 -1
  108. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  109. package/dist/components/fields/FilterPicker/FilterPicker.js +190 -191
  110. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  111. package/dist/components/fields/Input/Input.js +1 -1
  112. package/dist/components/fields/ListBox/ListBox.js +1 -1
  113. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  114. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  115. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  116. package/dist/components/fields/Picker/Picker.js +1 -1
  117. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  118. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  119. package/dist/components/fields/RadioGroup/context.js +1 -1
  120. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  121. package/dist/components/fields/Select/Select.js +1 -1
  122. package/dist/components/fields/Slider/Gradation.js +1 -1
  123. package/dist/components/fields/Slider/HueSlider.js +1 -1
  124. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  125. package/dist/components/fields/Slider/Slider.js +1 -1
  126. package/dist/components/fields/Slider/SliderBase.js +1 -1
  127. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  128. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  129. package/dist/components/fields/Slider/elements.js +1 -1
  130. package/dist/components/fields/Slider/index.js +1 -1
  131. package/dist/components/fields/Switch/Switch.js +1 -1
  132. package/dist/components/fields/TextArea/TextArea.js +1 -1
  133. package/dist/components/fields/TextInput/TextInput.js +1 -1
  134. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  135. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  136. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  137. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  138. package/dist/components/form/Form/Field.js +1 -1
  139. package/dist/components/form/Form/Form.js +1 -1
  140. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  141. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  142. package/dist/components/form/Form/SubmitError.js +1 -1
  143. package/dist/components/form/Form/index.js +1 -1
  144. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  145. package/dist/components/form/Form/use-field/use-field.js +1 -1
  146. package/dist/components/form/Form/use-form.js +1 -1
  147. package/dist/components/form/Form/validation.js +1 -1
  148. package/dist/components/form/Label.js +1 -1
  149. package/dist/components/form/wrapper.js +1 -1
  150. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  151. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  152. package/dist/components/layout/Flex.js +1 -1
  153. package/dist/components/layout/Flow.js +1 -1
  154. package/dist/components/layout/Grid.js +1 -1
  155. package/dist/components/layout/Panel.js +1 -1
  156. package/dist/components/layout/Prefix.js +1 -1
  157. package/dist/components/layout/ResizablePanel.js +1 -1
  158. package/dist/components/layout/Space.js +1 -1
  159. package/dist/components/layout/Suffix.js +1 -1
  160. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  161. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  162. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  163. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  164. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  165. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  166. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  167. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  168. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  169. package/dist/components/navigation/Tabs/styled.js +1 -1
  170. package/dist/components/navigation/Tabs/types.js +1 -1
  171. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  172. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  173. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  174. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  175. package/dist/components/other/Calendar/Calendar.js +1 -1
  176. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  177. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  178. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  179. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  180. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  181. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  182. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  183. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  184. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  185. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  186. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  187. package/dist/components/overlays/Dialog/context.js +1 -1
  188. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  189. package/dist/components/overlays/Modal/Modal.js +1 -1
  190. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  191. package/dist/components/overlays/Modal/Overlay.js +1 -1
  192. package/dist/components/overlays/Modal/Popover.js +1 -1
  193. package/dist/components/overlays/Modal/Tray.js +1 -1
  194. package/dist/components/overlays/Modal/Underlay.js +1 -1
  195. package/dist/components/overlays/Notifications/Notification.js +1 -1
  196. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  197. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  198. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  199. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  200. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  201. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  202. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  203. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  204. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  205. package/dist/components/overlays/Notifications/index.js +1 -1
  206. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  207. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  208. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  209. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  210. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  211. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  212. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  213. package/dist/components/overlays/Toast/index.js +1 -1
  214. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  215. package/dist/components/overlays/Toast/useToast.js +1 -1
  216. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  217. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  218. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  219. package/dist/components/overlays/Tooltip/context.js +1 -1
  220. package/dist/components/portal/Portal.js +1 -1
  221. package/dist/components/portal/PortalProvider.js +1 -1
  222. package/dist/components/portal/usePortal.js +1 -1
  223. package/dist/components/shared/InvalidIcon.js +1 -1
  224. package/dist/components/shared/ValidIcon.js +1 -1
  225. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  226. package/dist/components/status/Spin/Cube.js +1 -1
  227. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  228. package/dist/components/status/Spin/Spin.js +1 -1
  229. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  230. package/dist/data/item-themes.js +1 -1
  231. package/dist/data/themes.js +1 -1
  232. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  233. package/dist/icons/AdjustmentsIcon.js +1 -1
  234. package/dist/icons/AiIcon.js +1 -1
  235. package/dist/icons/AreaChartIcon.js +1 -1
  236. package/dist/icons/BackwardIcon.js +1 -1
  237. package/dist/icons/BarChartIcon.js +1 -1
  238. package/dist/icons/BellFilledIcon.js +1 -1
  239. package/dist/icons/BellIcon.js +1 -1
  240. package/dist/icons/BooleanIcon.js +1 -1
  241. package/dist/icons/CalendarEditIcon.js +1 -1
  242. package/dist/icons/CalendarIcon.js +1 -1
  243. package/dist/icons/CaretDownIcon.js +1 -1
  244. package/dist/icons/CaretUpIcon.js +1 -1
  245. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  246. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  247. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  248. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  249. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  250. package/dist/icons/ChartBarLineIcon.js +1 -1
  251. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  252. package/dist/icons/ChartBarStackedIcon.js +1 -1
  253. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  254. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  255. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  256. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  257. package/dist/icons/ChartBubbleIcon.js +1 -1
  258. package/dist/icons/ChartDonut2Icon.js +1 -1
  259. package/dist/icons/ChartFunnelIcon.js +1 -1
  260. package/dist/icons/ChartHeatmapIcon.js +1 -1
  261. package/dist/icons/ChartKPIIcon.js +1 -1
  262. package/dist/icons/ChartPie2Icon.js +1 -1
  263. package/dist/icons/ChartScatterIcon.js +1 -1
  264. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  265. package/dist/icons/CheckCircleIcon.js +1 -1
  266. package/dist/icons/CheckIcon.js +1 -1
  267. package/dist/icons/CircleFilledIcon.js +1 -1
  268. package/dist/icons/ClearIcon.js +1 -1
  269. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  270. package/dist/icons/CloseCircleIcon.js +1 -1
  271. package/dist/icons/CloseIcon.js +1 -1
  272. package/dist/icons/CodeIcon.js +1 -1
  273. package/dist/icons/ColumnTotalIcon.js +1 -1
  274. package/dist/icons/CopyIcon.js +1 -1
  275. package/dist/icons/CountIcon.js +1 -1
  276. package/dist/icons/CubeIcon.js +1 -1
  277. package/dist/icons/CubePauseIcon.js +1 -1
  278. package/dist/icons/CubePlayIcon.js +1 -1
  279. package/dist/icons/CurrencyDollarIcon.js +1 -1
  280. package/dist/icons/DangerIcon.js +1 -1
  281. package/dist/icons/DashboardIcon.js +1 -1
  282. package/dist/icons/DatabaseIcon.js +1 -1
  283. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  284. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  285. package/dist/icons/DirectionIcon.js +1 -1
  286. package/dist/icons/DonutIcon.js +1 -1
  287. package/dist/icons/DownIcon.js +1 -1
  288. package/dist/icons/EditIcon.js +1 -1
  289. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  290. package/dist/icons/ExclamationCircleIcon.js +1 -1
  291. package/dist/icons/ExclamationIcon.js +1 -1
  292. package/dist/icons/EyeIcon.js +1 -1
  293. package/dist/icons/EyeInvisibleIcon.js +1 -1
  294. package/dist/icons/FilterIcon.js +1 -1
  295. package/dist/icons/FolderFilledIcon.js +1 -1
  296. package/dist/icons/FolderIcon.js +1 -1
  297. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  298. package/dist/icons/FolderOpenIcon.js +1 -1
  299. package/dist/icons/ForwardIcon.js +1 -1
  300. package/dist/icons/HierarchyIcon.js +1 -1
  301. package/dist/icons/HierarchyOpenIcon.js +1 -1
  302. package/dist/icons/Icon.js +1 -1
  303. package/dist/icons/InfoCircleIcon.js +1 -1
  304. package/dist/icons/InfoIcon.js +1 -1
  305. package/dist/icons/KeyIcon.js +1 -1
  306. package/dist/icons/LeftIcon.js +1 -1
  307. package/dist/icons/LineChartIcon.js +1 -1
  308. package/dist/icons/LoadingIcon.js +1 -1
  309. package/dist/icons/LockFilledIcon.js +1 -1
  310. package/dist/icons/LockIcon.js +1 -1
  311. package/dist/icons/MoreIcon.js +1 -1
  312. package/dist/icons/NotAllowedIcon.js +1 -1
  313. package/dist/icons/Number123Icon.js +1 -1
  314. package/dist/icons/NumberIcon.js +1 -1
  315. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  316. package/dist/icons/PauseCircleIcon.js +1 -1
  317. package/dist/icons/PauseIcon.js +1 -1
  318. package/dist/icons/PercentageIcon.js +1 -1
  319. package/dist/icons/PieChartIcon.js +1 -1
  320. package/dist/icons/PlayCircleIcon.js +1 -1
  321. package/dist/icons/PlayIcon.js +1 -1
  322. package/dist/icons/PlusIcon.js +1 -1
  323. package/dist/icons/ProgressBarIcon.js +1 -1
  324. package/dist/icons/ReloadIcon.js +1 -1
  325. package/dist/icons/ReportIcon.js +1 -1
  326. package/dist/icons/ReturnIcon.js +1 -1
  327. package/dist/icons/RightIcon.js +1 -1
  328. package/dist/icons/RowTotalsIcon.js +1 -1
  329. package/dist/icons/SchemeIcon.js +1 -1
  330. package/dist/icons/SearchIcon.js +1 -1
  331. package/dist/icons/SemanticQueryIcon.js +1 -1
  332. package/dist/icons/SettingsIcon.js +1 -1
  333. package/dist/icons/ShieldFilledIcon.js +1 -1
  334. package/dist/icons/ShieldIcon.js +1 -1
  335. package/dist/icons/SlashIcon.js +1 -1
  336. package/dist/icons/SparklesIcon.js +1 -1
  337. package/dist/icons/SqlIcon.js +1 -1
  338. package/dist/icons/StatsIcon.js +1 -1
  339. package/dist/icons/StopIcon.js +1 -1
  340. package/dist/icons/StringIcon.js +1 -1
  341. package/dist/icons/SubtotalsIcon.js +1 -1
  342. package/dist/icons/SwitchIcon.js +1 -1
  343. package/dist/icons/TableIcon.js +1 -1
  344. package/dist/icons/ThumbsDownIcon.js +1 -1
  345. package/dist/icons/ThumbsUpIcon.js +1 -1
  346. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  347. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  348. package/dist/icons/ThunderboltIcon.js +1 -1
  349. package/dist/icons/TimeIcon.js +1 -1
  350. package/dist/icons/TrashIcon.js +1 -1
  351. package/dist/icons/UnlockIcon.js +1 -1
  352. package/dist/icons/UpIcon.js +1 -1
  353. package/dist/icons/UserGroupIcon.js +1 -1
  354. package/dist/icons/UserIcon.js +1 -1
  355. package/dist/icons/UserLockIcon.js +1 -1
  356. package/dist/icons/ViewIcon.js +1 -1
  357. package/dist/icons/WarningFilledIcon.js +1 -1
  358. package/dist/icons/WarningIcon.js +1 -1
  359. package/dist/icons/wrap-icon.js +1 -1
  360. package/dist/index.js +1 -1
  361. package/dist/provider.js +1 -1
  362. package/dist/providers/TrackingProvider.js +1 -1
  363. package/dist/providers/navigationAdapter.default.js +1 -1
  364. package/dist/tokens/base.js +1 -1
  365. package/dist/tokens/colors.js +1 -1
  366. package/dist/tokens/index.js +1 -1
  367. package/dist/tokens/layout.js +1 -1
  368. package/dist/tokens/shadows.js +1 -1
  369. package/dist/tokens/sizes.js +1 -1
  370. package/dist/tokens/spacing.js +1 -1
  371. package/dist/tokens/typography.js +1 -1
  372. package/dist/utils/ResizeSensor.js +1 -1
  373. package/dist/utils/is-dev-env.js +1 -1
  374. package/dist/utils/modules.js +1 -1
  375. package/dist/utils/promise.js +1 -1
  376. package/dist/utils/raf.js +1 -1
  377. package/dist/utils/random.js +1 -1
  378. package/dist/utils/range.js +1 -1
  379. package/dist/utils/react/RenderCache.js +1 -1
  380. package/dist/utils/react/Slots.js +1 -1
  381. package/dist/utils/react/chain.js +1 -1
  382. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  383. package/dist/utils/react/index.js +1 -1
  384. package/dist/utils/react/interactions.js +1 -1
  385. package/dist/utils/react/isTextOnly.js +1 -1
  386. package/dist/utils/react/mapProps.js +1 -1
  387. package/dist/utils/react/mergeProps.js +1 -1
  388. package/dist/utils/react/nullableValue.js +1 -1
  389. package/dist/utils/react/resolveIcon.js +1 -1
  390. package/dist/utils/react/sharedStore.js +1 -1
  391. package/dist/utils/react/useCombinedRefs.js +1 -1
  392. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  393. package/dist/utils/react/useEventBus.js +1 -1
  394. package/dist/utils/react/useId.js +1 -1
  395. package/dist/utils/react/useIsDarwin.js +1 -1
  396. package/dist/utils/react/useKeySymbols.js +1 -1
  397. package/dist/utils/react/useLayoutEffect.js +1 -1
  398. package/dist/utils/react/useLocalStorage.js +1 -1
  399. package/dist/utils/react/useMergeStyles.js +1 -1
  400. package/dist/utils/react/useQaProps.js +1 -1
  401. package/dist/utils/react/useViewportSize.js +1 -1
  402. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  403. package/dist/utils/styles.js +1 -1
  404. package/dist/utils/tree.js +1 -1
  405. package/dist/utils/warnings.js +1 -1
  406. package/dist/version.js +2 -2
  407. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-5b2a269 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-974afb8 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useEventBus } from "../../../utils/react/useEventBus.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -19,12 +19,25 @@ import { DialogTrigger } from "../../overlays/Dialog/DialogTrigger.js";
19
19
  import { ListBox } from "../ListBox/ListBox.js";
20
20
  import { FilterListBox } from "../FilterListBox/FilterListBox.js";
21
21
  import { BASE_STYLES, COLOR_STYLES, OUTER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
22
- import { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from "react";
22
+ import { forwardRef, useEffect, useMemo, useRef, useState } from "react";
23
23
  import { jsx, jsxs } from "react/jsx-runtime";
24
24
  import { FocusScope, useKeyboard } from "react-aria";
25
25
  import { Section, useListState } from "react-stately";
26
26
 
27
27
  //#region src/components/fields/FilterPicker/FilterPicker.tsx
28
+ /**
29
+ * Pure function for deduplicating/toggling keys in a selection.
30
+ * Hoisted to module scope to avoid re-creation on every render.
31
+ */
32
+ function processSelectionArray(iterable) {
33
+ const resultSet = /* @__PURE__ */ new Set();
34
+ for (const key of iterable) {
35
+ const nKey = String(key);
36
+ if (resultSet.has(nKey)) resultSet.delete(nKey);
37
+ else resultSet.add(nKey);
38
+ }
39
+ return Array.from(resultSet);
40
+ }
28
41
  const PROP_STYLES = [
29
42
  ...BASE_STYLES,
30
43
  ...OUTER_STYLES,
@@ -64,11 +77,16 @@ const FilterPicker = forwardRef(function FilterPicker(props, ref) {
64
77
  key: ["filterpicker-checkable-single-mode"],
65
78
  args: ["CubeUIKit: isCheckable=false is not recommended in single selection mode as it may confuse users about selection behavior."]
66
79
  });
80
+ useWarn(sortSelectedToTopExplicit && sortSelectedToTop && !items, {
81
+ key: ["filterpicker-sort-selected-to-top-children"],
82
+ args: ["FilterPicker: sortSelectedToTop only works with the items prop. Sorting will be skipped when using JSX children."]
83
+ });
67
84
  const [internalSelectedKey, setInternalSelectedKey] = useState(defaultSelectedKey ?? null);
68
85
  const [internalSelectedKeys, setInternalSelectedKeys] = useState(defaultSelectedKeys ?? []);
69
86
  const [isPopoverOpen, setIsPopoverOpen] = useState(false);
70
87
  const cachedItemsOrder = useRef(null);
71
88
  const triggerRef = useRef(null);
89
+ const triggerWidthRef = useRef(void 0);
72
90
  useEffect(() => {
73
91
  cachedItemsOrder.current = null;
74
92
  }, [items]);
@@ -81,66 +99,53 @@ const FilterPicker = forwardRef(function FilterPicker(props, ref) {
81
99
  items,
82
100
  selectionMode: "none"
83
101
  });
84
- const findCollectionKey = useCallback((lookup) => {
85
- if (lookup == null) return lookup;
86
- for (const item of localCollectionState.collection) if (String(item.key) === String(lookup)) return item.key;
87
- return lookup;
102
+ const { labelMap, keyMap } = useMemo(() => {
103
+ const lm = /* @__PURE__ */ new Map();
104
+ const km = /* @__PURE__ */ new Map();
105
+ const traverse = (nodes) => {
106
+ for (const node of nodes) if (node.type === "item") {
107
+ const strKey = String(node.key);
108
+ lm.set(strKey, node.textValue || strKey);
109
+ km.set(strKey, node.key);
110
+ } else if (node.childNodes) traverse(node.childNodes);
111
+ };
112
+ traverse(localCollectionState.collection);
113
+ return {
114
+ labelMap: lm,
115
+ keyMap: km
116
+ };
88
117
  }, [localCollectionState.collection]);
89
118
  const mappedSelectedKey = useMemo(() => {
90
- if (selectionMode !== "single") return null;
91
- return effectiveSelectedKey ? findCollectionKey(effectiveSelectedKey) : null;
119
+ if (selectionMode !== "single" || effectiveSelectedKey == null) return null;
120
+ const strKey = String(effectiveSelectedKey);
121
+ return keyMap.get(strKey) ?? effectiveSelectedKey;
92
122
  }, [
93
123
  selectionMode,
94
124
  effectiveSelectedKey,
95
- findCollectionKey
125
+ keyMap
96
126
  ]);
97
127
  const mappedSelectedKeys = useMemo(() => {
98
128
  if (selectionMode !== "multiple") return void 0;
99
129
  if (effectiveSelectedKeys === "all") return "all";
100
- if (Array.isArray(effectiveSelectedKeys)) return effectiveSelectedKeys.map((k) => findCollectionKey(k));
130
+ if (Array.isArray(effectiveSelectedKeys)) return effectiveSelectedKeys.map((k) => {
131
+ const strKey = String(k);
132
+ return keyMap.get(strKey) ?? k;
133
+ });
101
134
  return effectiveSelectedKeys;
102
135
  }, [
103
136
  selectionMode,
104
137
  effectiveSelectedKeys,
105
- findCollectionKey
138
+ keyMap
139
+ ]);
140
+ const selectedLabels = useMemo(() => {
141
+ if (selectionMode === "multiple" && effectiveSelectedKeys === "all") return Array.from(labelMap.values());
142
+ return (selectionMode === "multiple" && effectiveSelectedKeys !== "all" ? (effectiveSelectedKeys || []).map(String) : effectiveSelectedKey != null ? [String(effectiveSelectedKey)] : []).map((k) => labelMap.get(k) ?? k);
143
+ }, [
144
+ selectionMode,
145
+ effectiveSelectedKey,
146
+ effectiveSelectedKeys,
147
+ labelMap
106
148
  ]);
107
- const processSelectionArray = (iterable) => {
108
- const resultSet = /* @__PURE__ */ new Set();
109
- for (const key of iterable) {
110
- const nKey = String(key);
111
- if (resultSet.has(nKey)) resultSet.delete(nKey);
112
- else resultSet.add(nKey);
113
- }
114
- return Array.from(resultSet);
115
- };
116
- const getSelectedLabels = () => {
117
- const collection = localCollectionState.collection;
118
- const collectAllLabels = () => {
119
- const allLabels = [];
120
- const traverse = (nodes) => {
121
- for (const node of nodes) if (node.type === "item") allLabels.push(node.textValue || String(node.key));
122
- else if (node.childNodes) traverse(node.childNodes);
123
- };
124
- traverse(collection);
125
- return allLabels;
126
- };
127
- if (selectionMode === "multiple" && effectiveSelectedKeys === "all") return collectAllLabels();
128
- const selectedSet = new Set(selectionMode === "multiple" && effectiveSelectedKeys !== "all" ? (effectiveSelectedKeys || []).map((k) => String(k)) : effectiveSelectedKey != null ? [String(effectiveSelectedKey)] : []);
129
- const labels = [];
130
- const processedKeys = /* @__PURE__ */ new Set();
131
- selectedSet.forEach((key) => {
132
- const item = collection.getItem(key);
133
- if (item) {
134
- labels.push(item.textValue || String(item.key));
135
- processedKeys.add(String(item.key));
136
- }
137
- });
138
- (selectionMode === "multiple" && effectiveSelectedKeys !== "all" ? (effectiveSelectedKeys || []).map(String) : effectiveSelectedKey != null ? [String(effectiveSelectedKey)] : []).forEach((key) => {
139
- if (!processedKeys.has(String(key))) labels.push(key);
140
- });
141
- return labels;
142
- };
143
- const selectedLabels = getSelectedLabels();
144
149
  const hasSelection = selectedLabels.length > 0;
145
150
  const latestSelectionRef = useRef({
146
151
  single: effectiveSelectedKey != null ? String(effectiveSelectedKey) : null,
@@ -159,16 +164,60 @@ const FilterPicker = forwardRef(function FilterPicker(props, ref) {
159
164
  useEffect(() => {
160
165
  selectionsWhenClosed.current = { ...latestSelectionRef.current };
161
166
  }, []);
162
- const getSortedChildren = useCallback(() => {
163
- if (sortSelectedToTopExplicit && sortSelectedToTop && !items) console.warn("FilterPicker: sortSelectedToTop only works with the items prop. Sorting will be skipped when using JSX children.");
164
- return children;
167
+ const handleOpenChange = useEvent((isOpen) => {
168
+ if (isOpen) triggerWidthRef.current = triggerRef?.current?.UNSAFE_getDOMNode()?.offsetWidth;
169
+ setIsPopoverOpen(isOpen);
170
+ if (!isOpen) {
171
+ selectionsWhenClosed.current = { ...latestSelectionRef.current };
172
+ cachedItemsOrder.current = null;
173
+ }
174
+ onOpenChange?.(isOpen);
175
+ });
176
+ useEffect(() => {
177
+ return on("popover:open", (data) => {
178
+ if (data.menuId !== filterPickerId && isPopoverOpen) handleOpenChange(false);
179
+ });
165
180
  }, [
166
- children,
167
- sortSelectedToTop,
168
- sortSelectedToTopExplicit,
169
- items
181
+ on,
182
+ filterPickerId,
183
+ isPopoverOpen,
184
+ handleOpenChange
185
+ ]);
186
+ useEffect(() => {
187
+ if (isPopoverOpen) emit("popover:open", { menuId: filterPickerId });
188
+ }, [
189
+ isPopoverOpen,
190
+ emit,
191
+ filterPickerId
170
192
  ]);
171
- const finalItems = useCallback(() => {
193
+ const [shouldUpdatePosition, setShouldUpdatePosition] = useState(true);
194
+ useEffect(() => {
195
+ if (isPopoverOpen) {
196
+ setShouldUpdatePosition(true);
197
+ const timerId = window.setTimeout(() => setShouldUpdatePosition(false), 160);
198
+ return () => window.clearTimeout(timerId);
199
+ } else setShouldUpdatePosition(true);
200
+ }, [isPopoverOpen]);
201
+ const { keyboardProps } = useKeyboard({ onKeyDown: (e) => {
202
+ if ((e.key === "ArrowUp" || e.key === "ArrowDown") && !isPopoverOpen) {
203
+ e.preventDefault();
204
+ handleOpenChange(true);
205
+ }
206
+ } });
207
+ const clearValue = useEvent(() => {
208
+ if (selectionMode === "multiple") {
209
+ if (!isControlledMultiple) setInternalSelectedKeys([]);
210
+ onSelectionChange?.([]);
211
+ } else {
212
+ if (!isControlledSingle) setInternalSelectedKey(null);
213
+ onSelectionChange?.(null);
214
+ }
215
+ handleOpenChange(false);
216
+ triggerRef?.current?.focus?.();
217
+ props.onClear?.();
218
+ return false;
219
+ });
220
+ const finalItems = useMemo(() => {
172
221
  if (!items) return items;
173
222
  if (!sortSelectedToTop) return items;
174
223
  if (cachedItemsOrder.current) return cachedItemsOrder.current;
@@ -207,18 +256,15 @@ const FilterPicker = forwardRef(function FilterPicker(props, ref) {
207
256
  return [...selectedArr, ...unselectedArr];
208
257
  };
209
258
  const sorted = sortArray(Array.isArray(items) ? items : Array.from(items));
210
- if (isPopoverOpen || !cachedItemsOrder.current) cachedItemsOrder.current = sorted;
259
+ cachedItemsOrder.current = sorted;
211
260
  return sorted;
212
261
  }, [
213
262
  items,
214
263
  sortSelectedToTop,
215
264
  selectionMode,
216
- isPopoverOpen,
217
- selectionsWhenClosed.current.multiple,
218
- selectionsWhenClosed.current.single
219
- ])();
220
- const finalChildren = getSortedChildren();
221
- const renderTriggerContent = () => {
265
+ isPopoverOpen
266
+ ]);
267
+ const triggerContent = useMemo(() => {
222
268
  if (typeof renderSummary === "function") {
223
269
  if (selectionMode === "single") return renderSummary({
224
270
  selectedLabel: selectedLabels[0],
@@ -233,128 +279,100 @@ const FilterPicker = forwardRef(function FilterPicker(props, ref) {
233
279
  selectionMode: "multiple"
234
280
  });
235
281
  } else if (renderSummary === false) return null;
236
- let content = "";
237
282
  if (!hasSelection) return /* @__PURE__ */ jsx(_Text.Placeholder, { children: placeholder });
238
- else if (selectionMode === "single") content = selectedLabels[0];
239
- else if (effectiveSelectedKeys === "all") content = selectAllLabel;
240
- else content = selectedLabels.join(", ");
241
- if (!content) return null;
242
- return content;
243
- };
244
- const [shouldUpdatePosition, setShouldUpdatePosition] = useState(true);
245
- const triggerWidth = triggerRef?.current?.UNSAFE_getDOMNode()?.offsetWidth;
246
- const renderTrigger = (state) => {
247
- useEffect(() => {
248
- return on("popover:open", (data) => {
249
- if (data.menuId !== filterPickerId && state.isOpen) state.close();
250
- });
251
- }, [
252
- on,
253
- filterPickerId,
254
- state
255
- ]);
256
- useEffect(() => {
257
- if (state.isOpen) emit("popover:open", { menuId: filterPickerId });
258
- }, [
259
- state.isOpen,
260
- emit,
261
- filterPickerId
262
- ]);
263
- useEffect(() => {
264
- if (state.isOpen !== isPopoverOpen) {
265
- setIsPopoverOpen(state.isOpen);
266
- if (!state.isOpen) {
267
- selectionsWhenClosed.current = { ...latestSelectionRef.current };
268
- cachedItemsOrder.current = null;
269
- }
270
- onOpenChange?.(state.isOpen);
271
- }
272
- }, [
273
- state.isOpen,
274
- isPopoverOpen,
275
- onOpenChange
276
- ]);
277
- const { keyboardProps } = useKeyboard({ onKeyDown: (e) => {
278
- if ((e.key === "ArrowUp" || e.key === "ArrowDown") && !state.isOpen) {
279
- e.preventDefault();
280
- state.open();
281
- }
282
- } });
283
- useEffect(() => {
284
- if (state.isOpen) {
285
- setShouldUpdatePosition(true);
286
- const id = window.setTimeout(() => setShouldUpdatePosition(false), 160);
287
- return () => window.clearTimeout(id);
288
- } else setShouldUpdatePosition(true);
289
- }, [state.isOpen]);
290
- let showClearButton = isClearable && hasSelection && !isDisabled && !props.isReadOnly;
291
- let clearValue = useEvent(() => {
292
- if (selectionMode === "multiple") {
293
- if (!isControlledMultiple) setInternalSelectedKeys([]);
294
- onSelectionChange?.([]);
295
- } else {
296
- if (!isControlledSingle) setInternalSelectedKey(null);
297
- onSelectionChange?.(null);
298
- }
299
- if (state.isOpen) state.close();
300
- triggerRef?.current?.focus?.();
301
- props.onClear?.();
302
- return false;
303
- });
304
- return /* @__PURE__ */ jsx(_ItemButton, {
305
- ref: triggerRef,
306
- "data-popover-trigger": true,
307
- qa: qa || "FilterPicker",
308
- id,
309
- type,
310
- theme: validationState === "invalid" ? "danger" : theme,
283
+ else if (selectionMode === "single") return selectedLabels[0] || null;
284
+ else if (effectiveSelectedKeys === "all") return selectAllLabel;
285
+ else return selectedLabels.join(", ") || null;
286
+ }, [
287
+ renderSummary,
288
+ selectionMode,
289
+ selectedLabels,
290
+ effectiveSelectedKey,
291
+ effectiveSelectedKeys,
292
+ hasSelection,
293
+ placeholder,
294
+ selectAllLabel
295
+ ]);
296
+ const showClearButton = isClearable && hasSelection && !isDisabled && !props.isReadOnly;
297
+ const triggerElement = /* @__PURE__ */ jsx(_ItemButton, {
298
+ ref: triggerRef,
299
+ "data-popover-trigger": true,
300
+ qa: qa || "FilterPicker",
301
+ id,
302
+ type,
303
+ theme: validationState === "invalid" ? "danger" : theme,
304
+ size,
305
+ shape,
306
+ isDisabled: isDisabled || isLoading,
307
+ "data-input-type": "filterpicker",
308
+ mods: {
309
+ placeholder: !hasSelection,
310
+ ...externalMods
311
+ },
312
+ icon,
313
+ rightIcon: isLoading ? /* @__PURE__ */ jsx(LoadingIcon, {}) : rightIcon !== void 0 ? rightIcon : showClearButton ? /* @__PURE__ */ jsx(ItemAction, {
314
+ icon: /* @__PURE__ */ jsx(CloseIcon, {}),
311
315
  size,
312
- shape,
313
- isDisabled: isDisabled || isLoading,
314
- "data-input-type": "filterpicker",
315
- mods: {
316
- placeholder: !hasSelection,
317
- ...externalMods
318
- },
319
- icon,
320
- rightIcon: isLoading ? /* @__PURE__ */ jsx(LoadingIcon, {}) : rightIcon !== void 0 ? rightIcon : showClearButton ? /* @__PURE__ */ jsx(ItemAction, {
321
- icon: /* @__PURE__ */ jsx(CloseIcon, {}),
322
- size,
323
- theme: validationState === "invalid" ? "danger" : void 0,
324
- qa: "FilterPickerClearButton",
325
- mods: { pressed: false },
326
- onPress: clearValue
327
- }) : /* @__PURE__ */ jsx(DirectionIcon, { to: state.isOpen ? "top" : "bottom" }),
328
- prefix,
329
- suffix,
330
- hotkeys,
331
- tooltip: triggerTooltip,
332
- description: triggerDescription,
333
- descriptionPlacement,
334
- styles: triggerStyles,
335
- ...keyboardProps,
336
- "aria-label": `${props["aria-label"] ?? props.label ?? ""}`,
337
- children: renderTriggerContent()
338
- });
339
- };
316
+ theme: validationState === "invalid" ? "danger" : void 0,
317
+ qa: "FilterPickerClearButton",
318
+ mods: { pressed: false },
319
+ onPress: clearValue
320
+ }) : /* @__PURE__ */ jsx(DirectionIcon, { to: isPopoverOpen ? "top" : "bottom" }),
321
+ prefix,
322
+ suffix,
323
+ hotkeys,
324
+ tooltip: triggerTooltip,
325
+ description: triggerDescription,
326
+ descriptionPlacement,
327
+ styles: triggerStyles,
328
+ ...keyboardProps,
329
+ "aria-label": `${props["aria-label"] ?? props.label ?? ""}`,
330
+ children: triggerContent
331
+ });
332
+ const handleSelectionChange = useEvent((selection) => {
333
+ if (selectionMode === "single") {
334
+ if (!isControlledSingle) setInternalSelectedKey(selection);
335
+ } else if (!isControlledMultiple) {
336
+ let normalized = selection;
337
+ if (selection === "all") normalized = "all";
338
+ else if (Array.isArray(selection)) normalized = processSelectionArray(selection);
339
+ else if (selection && typeof selection === "object" && selection instanceof Set) normalized = processSelectionArray(selection);
340
+ setInternalSelectedKeys(normalized);
341
+ }
342
+ if (selectionMode === "single") latestSelectionRef.current.single = selection != null ? String(selection) : null;
343
+ else if (selection === "all") latestSelectionRef.current.multiple = "all";
344
+ else if (Array.isArray(selection)) latestSelectionRef.current.multiple = Array.from(new Set(processSelectionArray(selection)));
345
+ else if (selection && typeof selection === "object" && selection instanceof Set) latestSelectionRef.current.multiple = Array.from(new Set(processSelectionArray(selection)));
346
+ else latestSelectionRef.current.multiple = selection === "all" ? "all" : Array.isArray(selection) ? selection.map(String) : [];
347
+ onSelectionChange?.(selection);
348
+ if (selectionMode === "single") handleOpenChange(false);
349
+ });
350
+ const handleEscape = useEvent(() => {
351
+ handleOpenChange(false);
352
+ });
353
+ const handleOptionClick = useEvent((key) => {
354
+ if (selectionMode === "multiple" && isCheckable || key === "__ALL__") handleOpenChange(false);
355
+ });
340
356
  return wrapWithField(/* @__PURE__ */ jsx(FilterPickerWrapper, {
341
357
  qa: "FilterPickerWrapper",
342
358
  styles,
343
359
  ...filterBaseProps(otherProps, { eventProps: true }),
344
360
  children: /* @__PURE__ */ jsxs(DialogTrigger, {
361
+ isDismissable: true,
345
362
  type: "popover",
346
363
  placement: "bottom start",
364
+ isOpen: isPopoverOpen,
347
365
  containerPadding,
348
366
  shouldUpdatePosition,
349
367
  shouldFlip: shouldFlip && shouldUpdatePosition,
350
- isDismissable: true,
351
368
  shouldCloseOnInteractOutside: (el) => {
352
369
  const menuTriggerEl = el.closest("[data-popover-trigger]");
353
370
  if (!menuTriggerEl) return true;
354
371
  if (menuTriggerEl === triggerRef?.current) return true;
355
372
  return false;
356
373
  },
357
- children: [renderTrigger, (close) => /* @__PURE__ */ jsx(Dialog, {
374
+ onOpenChange: handleOpenChange,
375
+ children: [triggerElement, () => /* @__PURE__ */ jsx(Dialog, {
358
376
  qa: "FilterPickerOverlay",
359
377
  display: "grid",
360
378
  styles: {
@@ -363,7 +381,7 @@ const FilterPicker = forwardRef(function FilterPicker(props, ref) {
363
381
  "$overlay-min-width": "30x",
364
382
  ...popoverStyles
365
383
  },
366
- style: triggerWidth ? { "--overlay-min-width": `${triggerWidth}px` } : void 0,
384
+ style: triggerWidthRef.current ? { "--overlay-min-width": `${triggerWidthRef.current}px` } : void 0,
367
385
  children: /* @__PURE__ */ jsx(FocusScope, {
368
386
  restoreFocus: true,
369
387
  children: /* @__PURE__ */ jsx(FilterListBox, {
@@ -407,29 +425,10 @@ const FilterPicker = forwardRef(function FilterPicker(props, ref) {
407
425
  customValueProps,
408
426
  newCustomValueProps,
409
427
  onSearchChange,
410
- onEscape: () => close(),
411
- onOptionClick: (key) => {
412
- if (selectionMode === "multiple" && isCheckable || key === "__ALL__") close();
413
- },
414
- onSelectionChange: (selection) => {
415
- if (selectionMode === "single") {
416
- if (!isControlledSingle) setInternalSelectedKey(selection);
417
- } else if (!isControlledMultiple) {
418
- let normalized = selection;
419
- if (selection === "all") normalized = "all";
420
- else if (Array.isArray(selection)) normalized = processSelectionArray(selection);
421
- else if (selection && typeof selection === "object" && selection instanceof Set) normalized = processSelectionArray(selection);
422
- setInternalSelectedKeys(normalized);
423
- }
424
- if (selectionMode === "single") latestSelectionRef.current.single = selection != null ? String(selection) : null;
425
- else if (selection === "all") latestSelectionRef.current.multiple = "all";
426
- else if (Array.isArray(selection)) latestSelectionRef.current.multiple = Array.from(new Set(processSelectionArray(selection)));
427
- else if (selection && typeof selection === "object" && selection instanceof Set) latestSelectionRef.current.multiple = Array.from(new Set(processSelectionArray(selection)));
428
- else latestSelectionRef.current.multiple = selection === "all" ? "all" : Array.isArray(selection) ? selection.map(String) : [];
429
- onSelectionChange?.(selection);
430
- if (selectionMode === "single") close();
431
- },
432
- children: children ? finalChildren : void 0
428
+ onEscape: handleEscape,
429
+ onOptionClick: handleOptionClick,
430
+ onSelectionChange: handleSelectionChange,
431
+ children: children ? children : void 0
433
432
  })
434
433
  })
435
434
  })]