@cube-dev/ui-kit 0.0.0-canary-e864021 → 0.0.0-canary-3d5ac77

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 (476) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/es/_internal/hooks/index.js +1 -1
  3. package/es/_internal/hooks/use-chained-callback.js +1 -1
  4. package/es/_internal/hooks/use-debounced-value.js +1 -1
  5. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/es/_internal/hooks/use-effect-once.js +1 -1
  7. package/es/_internal/hooks/use-event.js +1 -1
  8. package/es/_internal/hooks/use-is-first-render.js +1 -1
  9. package/es/_internal/hooks/use-sync-ref.js +1 -1
  10. package/es/_internal/hooks/use-timer/index.js +1 -1
  11. package/es/_internal/hooks/use-timer/timer.js +1 -1
  12. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  13. package/es/_internal/hooks/use-update-effect.js +1 -1
  14. package/es/_internal/hooks/use-warn.js +1 -1
  15. package/es/_internal/index.js +1 -1
  16. package/es/components/Block.js +1 -1
  17. package/es/components/GlobalStyles.js +1 -1
  18. package/es/components/GridProvider.js +1 -1
  19. package/es/components/HiddenInput.js +1 -1
  20. package/es/components/OpenTrasition.js +1 -1
  21. package/es/components/Root.js +1 -1
  22. package/es/components/actions/Action/Action.js +1 -1
  23. package/es/components/actions/Button/Button.js +17 -2
  24. package/es/components/actions/Button/index.js +1 -1
  25. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  26. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  27. package/es/components/actions/CommandMenu/index.js +1 -1
  28. package/es/components/actions/CommandMenu/styled.js +1 -1
  29. package/es/components/actions/Menu/Menu.js +1 -1
  30. package/es/components/actions/Menu/MenuItem.js +1 -1
  31. package/es/components/actions/Menu/MenuSection.js +1 -1
  32. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/es/components/actions/Menu/context.js +1 -1
  34. package/es/components/actions/Menu/index.js +1 -1
  35. package/es/components/actions/Menu/styled.js +1 -1
  36. package/es/components/actions/index.js +1 -1
  37. package/es/components/actions/use-action.js +1 -1
  38. package/es/components/actions/use-anchored-menu.js +1 -1
  39. package/es/components/actions/use-context-menu.js +1 -1
  40. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  41. package/es/components/content/Alert/Alert.js +1 -1
  42. package/es/components/content/Alert/index.js +1 -1
  43. package/es/components/content/Alert/types.js +1 -1
  44. package/es/components/content/Alert/use-alert.js +1 -1
  45. package/es/components/content/Avatar/Avatar.js +1 -1
  46. package/es/components/content/Badge/Badge.js +1 -1
  47. package/es/components/content/Card/Card.js +1 -1
  48. package/es/components/content/Content.js +1 -1
  49. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  50. package/es/components/content/CopyPasteBlock/index.js +1 -1
  51. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/es/components/content/CopySnippet/index.js +1 -1
  53. package/es/components/content/Divider.js +1 -1
  54. package/es/components/content/Footer.js +1 -1
  55. package/es/components/content/Header.js +1 -1
  56. package/es/components/content/HotKeys/HotKeys.js +1 -1
  57. package/es/components/content/HotKeys/index.js +1 -1
  58. package/es/components/content/Paragraph.js +1 -1
  59. package/es/components/content/Placeholder/Placeholder.js +1 -1
  60. package/es/components/content/PrismCode/PrismCode.js +1 -1
  61. package/es/components/content/PrismCode/prismSetup.js +1 -1
  62. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  63. package/es/components/content/Result/Result.js +1 -1
  64. package/es/components/content/Skeleton/Skeleton.js +1 -1
  65. package/es/components/content/Tag/Tag.js +1 -1
  66. package/es/components/content/Text.js +1 -1
  67. package/es/components/content/Title.js +1 -1
  68. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  69. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  70. package/es/components/fields/Checkbox/context.js +1 -1
  71. package/es/components/fields/Checkbox/index.js +1 -1
  72. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  73. package/es/components/fields/ComboBox/index.js +1 -1
  74. package/es/components/fields/DatePicker/DateInput.js +1 -1
  75. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  76. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  77. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  78. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  79. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  80. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  81. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  82. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  83. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  84. package/es/components/fields/DatePicker/index.js +1 -1
  85. package/es/components/fields/DatePicker/intl.js +1 -1
  86. package/es/components/fields/DatePicker/parseDate.js +1 -1
  87. package/es/components/fields/DatePicker/props.js +1 -1
  88. package/es/components/fields/DatePicker/types.js +1 -1
  89. package/es/components/fields/DatePicker/utils.js +1 -1
  90. package/es/components/fields/FileInput/FileInput.js +1 -1
  91. package/es/components/fields/FilterListBox/FilterListBox.js +10 -4
  92. package/es/components/fields/FilterListBox/index.js +1 -1
  93. package/es/components/fields/FilterPicker/FilterPicker.js +194 -75
  94. package/es/components/fields/FilterPicker/index.js +1 -1
  95. package/es/components/fields/Input/Input.js +1 -1
  96. package/es/components/fields/Input/index.js +1 -1
  97. package/es/components/fields/ListBox/ListBox.js +126 -23
  98. package/es/components/fields/ListBox/index.js +1 -1
  99. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  100. package/es/components/fields/NumberInput/StepButton.js +1 -1
  101. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  102. package/es/components/fields/RadioGroup/Radio.js +1 -1
  103. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  104. package/es/components/fields/RadioGroup/context.js +1 -1
  105. package/es/components/fields/RadioGroup/index.js +1 -1
  106. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  107. package/es/components/fields/SearchInput/index.js +1 -1
  108. package/es/components/fields/Select/Select.js +1 -1
  109. package/es/components/fields/Select/index.js +1 -1
  110. package/es/components/fields/Slider/Gradation.js +1 -1
  111. package/es/components/fields/Slider/Header.js +1 -1
  112. package/es/components/fields/Slider/RangeSlider.js +1 -1
  113. package/es/components/fields/Slider/Slider.js +1 -1
  114. package/es/components/fields/Slider/SliderBase.js +1 -1
  115. package/es/components/fields/Slider/SliderInput.js +1 -1
  116. package/es/components/fields/Slider/SliderThumb.js +1 -1
  117. package/es/components/fields/Slider/SliderTrack.js +1 -1
  118. package/es/components/fields/Slider/elements.js +1 -1
  119. package/es/components/fields/Slider/index.js +1 -1
  120. package/es/components/fields/Slider/types.js +1 -1
  121. package/es/components/fields/Switch/Switch.js +1 -1
  122. package/es/components/fields/Switch/index.js +1 -1
  123. package/es/components/fields/TextArea/TextArea.js +1 -1
  124. package/es/components/fields/TextArea/index.js +1 -1
  125. package/es/components/fields/TextInput/TextInput.js +1 -1
  126. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  127. package/es/components/fields/TextInput/index.js +1 -1
  128. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  129. package/es/components/fields/TextInputMapper/index.js +1 -1
  130. package/es/components/fields/index.js +1 -1
  131. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  132. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  133. package/es/components/form/FieldWrapper/index.js +1 -1
  134. package/es/components/form/FieldWrapper/types.js +1 -1
  135. package/es/components/form/Form/Field.js +1 -1
  136. package/es/components/form/Form/Form.js +1 -1
  137. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  138. package/es/components/form/Form/ResetButton/index.js +1 -1
  139. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  140. package/es/components/form/Form/SubmitButton/index.js +1 -1
  141. package/es/components/form/Form/SubmitError.js +1 -1
  142. package/es/components/form/Form/index.js +1 -1
  143. package/es/components/form/Form/types.js +1 -1
  144. package/es/components/form/Form/use-field/index.js +1 -1
  145. package/es/components/form/Form/use-field/types.js +1 -1
  146. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  147. package/es/components/form/Form/use-field/use-field.js +1 -1
  148. package/es/components/form/Form/use-form.js +1 -1
  149. package/es/components/form/Form/validation.js +1 -1
  150. package/es/components/form/Label.js +1 -1
  151. package/es/components/form/index.js +1 -1
  152. package/es/components/form/wrapper.js +1 -1
  153. package/es/components/layout/Flex.js +1 -1
  154. package/es/components/layout/Flow.js +1 -1
  155. package/es/components/layout/Grid.js +1 -1
  156. package/es/components/layout/Panel.js +1 -1
  157. package/es/components/layout/Prefix.js +1 -1
  158. package/es/components/layout/ResizablePanel.js +1 -1
  159. package/es/components/layout/Space.js +1 -1
  160. package/es/components/layout/Suffix.js +1 -1
  161. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  162. package/es/components/navigation/Link/Link.js +1 -1
  163. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  164. package/es/components/organisms/Modal/Modal.js +1 -1
  165. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  166. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  167. package/es/components/other/Calendar/Calendar.js +1 -1
  168. package/es/components/other/Calendar/CalendarCell.js +1 -1
  169. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  170. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  171. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  172. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  173. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  174. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  175. package/es/components/overlays/AlertDialog/index.js +1 -1
  176. package/es/components/overlays/AlertDialog/types.js +1 -1
  177. package/es/components/overlays/Dialog/Dialog.js +1 -1
  178. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  179. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  180. package/es/components/overlays/Dialog/DialogTrigger.js +2 -1
  181. package/es/components/overlays/Dialog/context.js +1 -1
  182. package/es/components/overlays/Dialog/index.js +1 -1
  183. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  184. package/es/components/overlays/Modal/Modal.js +1 -1
  185. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  186. package/es/components/overlays/Modal/Overlay.js +1 -1
  187. package/es/components/overlays/Modal/Popover.js +1 -1
  188. package/es/components/overlays/Modal/Tray.js +1 -1
  189. package/es/components/overlays/Modal/Underlay.js +1 -1
  190. package/es/components/overlays/Modal/index.js +1 -1
  191. package/es/components/overlays/Modal/types.js +1 -1
  192. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  193. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  194. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  195. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  196. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  197. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  198. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  199. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  200. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  201. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  202. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  203. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  204. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  205. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  206. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  207. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  208. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  209. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  210. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  211. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  212. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  213. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  214. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  215. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  216. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  217. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  218. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  219. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  220. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  221. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  222. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  223. package/es/components/overlays/NewNotifications/index.js +1 -1
  224. package/es/components/overlays/NewNotifications/types.js +1 -1
  225. package/es/components/overlays/Notification/Notification.js +1 -1
  226. package/es/components/overlays/OverlayWrapper.js +1 -1
  227. package/es/components/overlays/Toasts/Toast.js +1 -1
  228. package/es/components/overlays/Toasts/index.js +1 -1
  229. package/es/components/overlays/Toasts/types.js +1 -1
  230. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  231. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  232. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  233. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  234. package/es/components/overlays/Tooltip/context.js +1 -1
  235. package/es/components/overlays/Tooltip/index.js +1 -1
  236. package/es/components/portal/Portal.js +1 -1
  237. package/es/components/portal/PortalProvider.js +1 -1
  238. package/es/components/portal/index.js +1 -1
  239. package/es/components/portal/storybook/templates/CustomRoot.js +1 -1
  240. package/es/components/portal/storybook/templates/PortalOrder.js +1 -1
  241. package/es/components/portal/storybook/templates/basic.js +1 -1
  242. package/es/components/portal/storybook/templates/index.js +1 -1
  243. package/es/components/portal/types.js +1 -1
  244. package/es/components/portal/usePortal.js +1 -1
  245. package/es/components/shared/InvalidIcon.js +1 -1
  246. package/es/components/shared/ValidIcon.js +1 -1
  247. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  248. package/es/components/status/LoadingAnimation/index.js +1 -1
  249. package/es/components/status/Spin/Cube.js +1 -1
  250. package/es/components/status/Spin/InternalSpinner.js +1 -1
  251. package/es/components/status/Spin/Spin.js +1 -1
  252. package/es/components/status/Spin/SpinsContainer.js +1 -1
  253. package/es/components/status/Spin/index.js +1 -1
  254. package/es/components/status/Spin/types.js +1 -1
  255. package/es/components/status/index.js +1 -1
  256. package/es/data/themes.js +1 -1
  257. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  258. package/es/icons/AdjustmentsIcon.js +1 -1
  259. package/es/icons/AiIcon.js +1 -1
  260. package/es/icons/AreaChartIcon.js +1 -1
  261. package/es/icons/BackwardIcon.js +1 -1
  262. package/es/icons/BarChartIcon.js +1 -1
  263. package/es/icons/BellFilledIcon.js +1 -1
  264. package/es/icons/BellIcon.js +1 -1
  265. package/es/icons/BooleanIcon.js +1 -1
  266. package/es/icons/CalendarEditIcon.js +1 -1
  267. package/es/icons/CalendarIcon.js +1 -1
  268. package/es/icons/CaretDownIcon.js +1 -1
  269. package/es/icons/CaretUpIcon.js +1 -1
  270. package/es/icons/ChartAreaStackedIcon.js +1 -1
  271. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  272. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  273. package/es/icons/ChartBarGroupedIcon.js +1 -1
  274. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  275. package/es/icons/ChartBarLineIcon.js +1 -1
  276. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  277. package/es/icons/ChartBarStackedIcon.js +1 -1
  278. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  279. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  280. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  281. package/es/icons/ChartBoxPlotIcon.js +1 -1
  282. package/es/icons/ChartBubbleIcon.js +1 -1
  283. package/es/icons/ChartDonut2Icon.js +1 -1
  284. package/es/icons/ChartFunnelIcon.js +1 -1
  285. package/es/icons/ChartKPIIcon.js +1 -1
  286. package/es/icons/ChartPie2Icon.js +1 -1
  287. package/es/icons/ChartScatterIcon.js +1 -1
  288. package/es/icons/CheckCircleFilledIcon.js +1 -1
  289. package/es/icons/CheckCircleIcon.js +1 -1
  290. package/es/icons/CheckIcon.js +1 -1
  291. package/es/icons/CircleFilledIcon.js +1 -1
  292. package/es/icons/ClearIcon.js +1 -1
  293. package/es/icons/CloseCircleFilledIcon.js +1 -1
  294. package/es/icons/CloseCircleIcon.js +1 -1
  295. package/es/icons/CloseIcon.js +1 -1
  296. package/es/icons/CodeIcon.js +1 -1
  297. package/es/icons/CopyIcon.js +1 -1
  298. package/es/icons/CountIcon.js +1 -1
  299. package/es/icons/CubeIcon.js +1 -1
  300. package/es/icons/DangerIcon.js +1 -1
  301. package/es/icons/DashboardIcon.js +1 -1
  302. package/es/icons/DatabaseIcon.js +1 -1
  303. package/es/icons/DirectionIcon.js +1 -1
  304. package/es/icons/DonutIcon.js +1 -1
  305. package/es/icons/DownIcon.js +1 -1
  306. package/es/icons/EditIcon.js +1 -1
  307. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  308. package/es/icons/ExclamationCircleIcon.js +1 -1
  309. package/es/icons/ExclamationIcon.js +1 -1
  310. package/es/icons/EyeIcon.js +1 -1
  311. package/es/icons/EyeInvisibleIcon.js +1 -1
  312. package/es/icons/FilterIcon.js +1 -1
  313. package/es/icons/FolderFilledIcon.js +1 -1
  314. package/es/icons/FolderIcon.js +1 -1
  315. package/es/icons/FolderOpenFilledIcon.js +1 -1
  316. package/es/icons/FolderOpenIcon.js +1 -1
  317. package/es/icons/ForwardIcon.js +1 -1
  318. package/es/icons/HierarchyIcon.js +1 -1
  319. package/es/icons/Icon.js +1 -1
  320. package/es/icons/InfoCircleIcon.js +1 -1
  321. package/es/icons/InfoIcon.js +1 -1
  322. package/es/icons/KeyIcon.js +1 -1
  323. package/es/icons/LeftIcon.js +1 -1
  324. package/es/icons/LineChartIcon.js +1 -1
  325. package/es/icons/LoadingIcon.js +1 -1
  326. package/es/icons/LockFilledIcon.js +1 -1
  327. package/es/icons/LockIcon.js +1 -1
  328. package/es/icons/MoreIcon.js +1 -1
  329. package/es/icons/NotAllowedIcon.js +1 -1
  330. package/es/icons/NumberIcon.js +1 -1
  331. package/es/icons/PauseCircleFilledIcon.js +1 -1
  332. package/es/icons/PauseCircleIcon.js +1 -1
  333. package/es/icons/PauseIcon.js +1 -1
  334. package/es/icons/PieChartIcon.js +1 -1
  335. package/es/icons/PlayCircleIcon.js +1 -1
  336. package/es/icons/PlayIcon.js +1 -1
  337. package/es/icons/PlusIcon.js +1 -1
  338. package/es/icons/ReloadIcon.js +1 -1
  339. package/es/icons/ReportIcon.js +1 -1
  340. package/es/icons/ReturnIcon.js +1 -1
  341. package/es/icons/RightIcon.js +1 -1
  342. package/es/icons/SchemeIcon.js +1 -1
  343. package/es/icons/SearchIcon.js +1 -1
  344. package/es/icons/SettingsIcon.js +1 -1
  345. package/es/icons/ShieldFilledIcon.js +1 -1
  346. package/es/icons/ShieldIcon.js +1 -1
  347. package/es/icons/SlashIcon.js +1 -1
  348. package/es/icons/SparklesIcon.js +1 -1
  349. package/es/icons/SqlIcon.js +1 -1
  350. package/es/icons/StatsIcon.js +1 -1
  351. package/es/icons/StopIcon.js +1 -1
  352. package/es/icons/StringIcon.js +1 -1
  353. package/es/icons/SwitchIcon.js +1 -1
  354. package/es/icons/TableIcon.js +1 -1
  355. package/es/icons/ThumbsDownIcon.js +1 -1
  356. package/es/icons/ThumbsUpIcon.js +1 -1
  357. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  358. package/es/icons/ThunderboltFilledIcon.js +1 -1
  359. package/es/icons/ThunderboltIcon.js +1 -1
  360. package/es/icons/TimeIcon.js +1 -1
  361. package/es/icons/UnlockIcon.js +1 -1
  362. package/es/icons/UpIcon.js +1 -1
  363. package/es/icons/UserGroupIcon.js +1 -1
  364. package/es/icons/UserIcon.js +1 -1
  365. package/es/icons/UserLockIcon.js +1 -1
  366. package/es/icons/ViewIcon.js +1 -1
  367. package/es/icons/WarningFilledIcon.js +1 -1
  368. package/es/icons/WarningIcon.js +1 -1
  369. package/es/icons/add-new-icon.js +1 -1
  370. package/es/icons/index.js +1 -1
  371. package/es/icons/wrap-icon.js +1 -1
  372. package/es/index.js +1 -1
  373. package/es/provider.js +1 -1
  374. package/es/providers/TrackingProvider.js +1 -1
  375. package/es/services/notification.js +1 -1
  376. package/es/shared/form.js +1 -1
  377. package/es/shared/index.js +1 -1
  378. package/es/stories/Form.legacy-stories.js +1 -1
  379. package/es/stories/FormFieldArgs.js +1 -1
  380. package/es/stories/Layout.stories.js +1 -1
  381. package/es/stories/Tasty.stories.js +1 -1
  382. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  383. package/es/stories/components/DialogFormApp.js +1 -1
  384. package/es/stories/components/StyledButton.js +1 -1
  385. package/es/stories/lists/baseProps.js +1 -1
  386. package/es/tasty/index.js +1 -1
  387. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  388. package/es/tasty/styles/align.js +1 -1
  389. package/es/tasty/styles/border.js +1 -1
  390. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  391. package/es/tasty/styles/color.js +1 -1
  392. package/es/tasty/styles/createStyle.js +1 -1
  393. package/es/tasty/styles/dimension.js +1 -1
  394. package/es/tasty/styles/display.js +1 -1
  395. package/es/tasty/styles/fade.js +1 -1
  396. package/es/tasty/styles/fill.js +1 -1
  397. package/es/tasty/styles/flow.js +1 -1
  398. package/es/tasty/styles/font.js +1 -1
  399. package/es/tasty/styles/fontStyle.js +1 -1
  400. package/es/tasty/styles/gap.js +1 -1
  401. package/es/tasty/styles/groupRadius.js +1 -1
  402. package/es/tasty/styles/height.js +1 -1
  403. package/es/tasty/styles/index.js +1 -1
  404. package/es/tasty/styles/inset.js +1 -1
  405. package/es/tasty/styles/justify.js +1 -1
  406. package/es/tasty/styles/list.js +1 -1
  407. package/es/tasty/styles/margin.js +1 -1
  408. package/es/tasty/styles/marginBlock.js +1 -1
  409. package/es/tasty/styles/marginInline.js +1 -1
  410. package/es/tasty/styles/outline.js +1 -1
  411. package/es/tasty/styles/padding.js +1 -1
  412. package/es/tasty/styles/paddingBlock.js +1 -1
  413. package/es/tasty/styles/paddingInline.js +1 -1
  414. package/es/tasty/styles/place.js +1 -1
  415. package/es/tasty/styles/predefined.js +1 -1
  416. package/es/tasty/styles/preset.js +1 -1
  417. package/es/tasty/styles/radius.js +1 -1
  418. package/es/tasty/styles/reset.js +1 -1
  419. package/es/tasty/styles/scrollbar.js +1 -1
  420. package/es/tasty/styles/shadow.js +1 -1
  421. package/es/tasty/styles/styledScrollbar.js +1 -1
  422. package/es/tasty/styles/transition.js +1 -1
  423. package/es/tasty/styles/types.js +1 -1
  424. package/es/tasty/styles/width.js +1 -1
  425. package/es/tasty/tasty.js +1 -1
  426. package/es/tasty/types.js +1 -1
  427. package/es/tasty/utils/cache-wrapper.js +1 -1
  428. package/es/tasty/utils/case-converter.js +1 -1
  429. package/es/tasty/utils/colors.js +1 -1
  430. package/es/tasty/utils/dotize.js +1 -1
  431. package/es/tasty/utils/filterBaseProps.js +1 -1
  432. package/es/tasty/utils/getDisplayName.js +1 -1
  433. package/es/tasty/utils/getModCombinations.js +1 -1
  434. package/es/tasty/utils/mergeStyles.js +1 -1
  435. package/es/tasty/utils/modAttrs.js +1 -1
  436. package/es/tasty/utils/renderStyles.js +1 -1
  437. package/es/tasty/utils/responsive.js +1 -1
  438. package/es/tasty/utils/string.js +1 -1
  439. package/es/tasty/utils/styles.js +1 -1
  440. package/es/tasty/utils/warnings.js +1 -1
  441. package/es/tokens.js +1 -1
  442. package/es/type-checks.js +1 -1
  443. package/es/utils/ResizeSensor.js +1 -1
  444. package/es/utils/modules.js +1 -1
  445. package/es/utils/promise.js +1 -1
  446. package/es/utils/random.js +1 -1
  447. package/es/utils/range.js +1 -1
  448. package/es/utils/react/Slots.js +1 -1
  449. package/es/utils/react/chain.js +1 -1
  450. package/es/utils/react/index.js +1 -1
  451. package/es/utils/react/interactions.js +1 -1
  452. package/es/utils/react/isTextOnly.js +1 -1
  453. package/es/utils/react/mapProps.js +1 -1
  454. package/es/utils/react/mergeProps.js +1 -1
  455. package/es/utils/react/nullableValue.js +1 -1
  456. package/es/utils/react/sharedStore.js +1 -1
  457. package/es/utils/react/useCombinedRefs.js +1 -1
  458. package/es/utils/react/useControlledFocusVisible.js +1 -1
  459. package/es/utils/react/useEventBus.js +1 -1
  460. package/es/utils/react/useId.js +1 -1
  461. package/es/utils/react/useIsDarwin.js +1 -1
  462. package/es/utils/react/useKeySymbols.js +1 -1
  463. package/es/utils/react/useLayoutEffect.js +1 -1
  464. package/es/utils/react/useQaProps.js +1 -1
  465. package/es/utils/react/useViewportSize.js +1 -1
  466. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  467. package/es/utils/transitions.js +1 -1
  468. package/es/utils/tree.js +1 -1
  469. package/es/utils/warnings.js +1 -1
  470. package/es/version.js +2 -2
  471. package/package.json +1 -1
  472. package/types/components/actions/Button/Button.d.ts +14 -1
  473. package/types/components/fields/FilterListBox/FilterListBox.d.ts +9 -9
  474. package/types/components/fields/FilterPicker/FilterPicker.d.ts +15 -12
  475. package/types/components/fields/ListBox/ListBox.d.ts +31 -20
  476. package/types/components/overlays/Dialog/DialogTrigger.d.ts +1 -0
@@ -1,18 +1,18 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-e864021
4
+ * @cube-dev/ui-kit v0.0.0-canary-3d5ac77
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
- import { Children, cloneElement, forwardRef, useCallback, useEffect, useRef, useState, } from 'react';
9
+ import { Children, cloneElement, forwardRef, useCallback, useEffect, useMemo, useRef, useState, } from 'react';
10
10
  import { FocusScope, useKeyboard } from 'react-aria';
11
11
  import { Section as BaseSection, Item } from 'react-stately';
12
12
  import { useWarn } from '../../../_internal/hooks/use-warn';
13
13
  import { DirectionIcon } from '../../../icons';
14
14
  import { useProviderProps } from '../../../provider';
15
- import { BASE_STYLES, COLOR_STYLES, extractStyles, OUTER_STYLES, } from '../../../tasty';
15
+ import { BASE_STYLES, COLOR_STYLES, extractStyles, OUTER_STYLES, tasty, } from '../../../tasty';
16
16
  import { mergeProps } from '../../../utils/react';
17
17
  import { Button } from '../../actions';
18
18
  import { Text } from '../../content/Text';
@@ -21,6 +21,22 @@ import { Dialog, DialogTrigger } from '../../overlays/Dialog';
21
21
  import { FilterListBox, } from '../FilterListBox/FilterListBox';
22
22
  import { ListBox } from '../ListBox';
23
23
  const PROP_STYLES = [...BASE_STYLES, ...OUTER_STYLES, ...COLOR_STYLES];
24
+ const FilterPickerWrapper = tasty({
25
+ qa: 'FilterPicker',
26
+ styles: {
27
+ display: 'grid',
28
+ flow: 'column',
29
+ gridRows: '1sf',
30
+ placeContent: 'stretch',
31
+ placeItems: 'stretch',
32
+ },
33
+ });
34
+ const TriggerButton = tasty(Button, {
35
+ qa: 'FilterPickerTrigger',
36
+ styles: {
37
+ placeContent: 'stretch',
38
+ },
39
+ });
24
40
  export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
25
41
  props = useProviderProps(props);
26
42
  props = useFormProps(props);
@@ -35,7 +51,13 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
35
51
  }
36
52
  fieldProps.onSelectionChange = (key) => {
37
53
  if (props.selectionMode === 'multiple') {
38
- onChange(key ? (Array.isArray(key) ? key : [key]) : []);
54
+ // Handle "all" selection and array selections
55
+ if (key === 'all') {
56
+ onChange('all');
57
+ }
58
+ else {
59
+ onChange(key ? (Array.isArray(key) ? key : [key]) : []);
60
+ }
39
61
  }
40
62
  else {
41
63
  onChange(Array.isArray(key) ? key[0] : key);
@@ -44,7 +66,7 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
44
66
  return fieldProps;
45
67
  },
46
68
  });
47
- let { qa, label, extra, icon, labelStyles, isRequired, necessityIndicator, validationState, isDisabled, isLoading, message, mods: externalMods, description, placeholder, size = 'medium', styles, listBoxStyles, popoverStyles, type = 'outline', theme = 'default', labelSuffix, shouldFocusWrap, children, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, disabledKeys, onSelectionChange, selectionMode = 'single', listStateRef, focusOnHover, header, footer, headerStyles, footerStyles, allowsCustomValue, renderSummary, isCheckable, ...otherProps } = props;
69
+ let { qa, label, extra, icon, labelStyles, isRequired, necessityIndicator, validationState, isDisabled, isLoading, message, mods: externalMods, description, placeholder, size = 'medium', styles, listBoxStyles, popoverStyles, type = 'outline', theme = 'default', labelSuffix, shouldFocusWrap, children, shouldFlip = true, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, disabledKeys, onSelectionChange, selectionMode = 'single', listStateRef, focusOnHover, showSelectAll, selectAllLabel, header, footer, headerStyles, footerStyles, triggerStyles, allowsCustomValue, renderSummary, isCheckable, ...otherProps } = props;
48
70
  styles = extractStyles(otherProps, PROP_STYLES, styles);
49
71
  // Warn if isCheckable is false in single selection mode
50
72
  useWarn(isCheckable === false && selectionMode === 'single', {
@@ -68,7 +90,8 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
68
90
  const effectiveSelectedKeys = isControlledMultiple
69
91
  ? selectedKeys
70
92
  : internalSelectedKeys;
71
- // Utility to normalize React keys by stripping array prefixes like ".$" or "."
93
+ // Utility: remove React's ".$" / "." prefixes from element keys so that we
94
+ // can compare them with user-provided keys.
72
95
  const normalizeKeyValue = (key) => {
73
96
  if (key == null)
74
97
  return '';
@@ -79,11 +102,56 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
79
102
  ? str.slice(1)
80
103
  : str;
81
104
  };
105
+ // ---------------------------------------------------------------------------
106
+ // Map public-facing keys (without React's "." prefix) to the actual React
107
+ // element keys that appear in the collection (which usually have the `.$`
108
+ // or `.` prefix added by React when children are in an array). This ensures
109
+ // that the key we pass to ListBox exactly matches the keys it receives from
110
+ // React Aria, so the initial selection is highlighted correctly.
111
+ // ---------------------------------------------------------------------------
112
+ const findReactKey = useCallback((lookup) => {
113
+ if (lookup == null)
114
+ return lookup;
115
+ const normalizedLookup = normalizeKeyValue(lookup);
116
+ let foundKey = lookup;
117
+ const traverse = (nodes) => {
118
+ Children.forEach(nodes, (child) => {
119
+ if (!child || typeof child !== 'object')
120
+ return;
121
+ if (child.key != null) {
122
+ if (normalizeKeyValue(child.key) === normalizedLookup) {
123
+ foundKey = child.key;
124
+ }
125
+ }
126
+ if (child.props?.children) {
127
+ traverse(child.props.children);
128
+ }
129
+ });
130
+ };
131
+ if (children)
132
+ traverse(children);
133
+ return foundKey;
134
+ }, [children]);
135
+ const mappedSelectedKey = useMemo(() => {
136
+ if (selectionMode !== 'single')
137
+ return null;
138
+ return findReactKey(effectiveSelectedKey);
139
+ }, [selectionMode, effectiveSelectedKey, findReactKey]);
140
+ const mappedSelectedKeys = useMemo(() => {
141
+ if (selectionMode !== 'multiple')
142
+ return undefined;
143
+ if (effectiveSelectedKeys === 'all')
144
+ return 'all';
145
+ if (Array.isArray(effectiveSelectedKeys)) {
146
+ return effectiveSelectedKeys.map((k) => findReactKey(k));
147
+ }
148
+ return effectiveSelectedKeys;
149
+ }, [selectionMode, effectiveSelectedKeys, findReactKey]);
82
150
  // Given an iterable of keys (array or Set) toggle membership for duplicates
83
151
  const processSelectionArray = (iterable) => {
84
152
  const resultSet = new Set();
85
153
  for (const key of iterable) {
86
- const nKey = normalizeKeyValue(key);
154
+ const nKey = String(key);
87
155
  if (resultSet.has(nKey)) {
88
156
  resultSet.delete(nKey); // toggle off if clicked twice
89
157
  }
@@ -97,10 +165,33 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
97
165
  const getSelectedLabels = () => {
98
166
  if (!children)
99
167
  return [];
100
- const selectedSet = new Set(selectionMode === 'multiple'
101
- ? (effectiveSelectedKeys || []).map(String)
168
+ // Handle "all" selection - return all available labels
169
+ if (selectionMode === 'multiple' && effectiveSelectedKeys === 'all') {
170
+ const allLabels = [];
171
+ const extractAllLabels = (nodes) => {
172
+ Children.forEach(nodes, (child) => {
173
+ if (!child || typeof child !== 'object')
174
+ return;
175
+ if (child.type === Item) {
176
+ const label = child.props.textValue ||
177
+ (typeof child.props.children === 'string'
178
+ ? child.props.children
179
+ : '') ||
180
+ String(child.props.children || '');
181
+ allLabels.push(label);
182
+ }
183
+ if (child.props?.children) {
184
+ extractAllLabels(child.props.children);
185
+ }
186
+ });
187
+ };
188
+ extractAllLabels(children);
189
+ return allLabels;
190
+ }
191
+ const selectedSet = new Set(selectionMode === 'multiple' && effectiveSelectedKeys !== 'all'
192
+ ? (effectiveSelectedKeys || []).map((k) => normalizeKeyValue(k))
102
193
  : effectiveSelectedKey != null
103
- ? [String(effectiveSelectedKey)]
194
+ ? [normalizeKeyValue(effectiveSelectedKey)]
104
195
  : []);
105
196
  const labels = [];
106
197
  const extractLabels = (nodes) => {
@@ -108,7 +199,7 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
108
199
  if (!child || typeof child !== 'object')
109
200
  return;
110
201
  if (child.type === Item) {
111
- if (selectedSet.has(String(child.key))) {
202
+ if (selectedSet.has(normalizeKeyValue(child.key))) {
112
203
  const label = child.props.textValue ||
113
204
  (typeof child.props.children === 'string'
114
205
  ? child.props.children
@@ -147,14 +238,14 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
147
238
  };
148
239
  extractLabelsWithTracking(children);
149
240
  // Handle custom values that don't have corresponding children
150
- const selectedKeysArr = selectionMode === 'multiple'
241
+ const selectedKeysArr = selectionMode === 'multiple' && effectiveSelectedKeys !== 'all'
151
242
  ? (effectiveSelectedKeys || []).map(String)
152
243
  : effectiveSelectedKey != null
153
244
  ? [String(effectiveSelectedKey)]
154
245
  : [];
155
246
  // Add labels for any selected keys that weren't processed (custom values)
156
247
  selectedKeysArr.forEach((key) => {
157
- if (!processedKeys.has(key)) {
248
+ if (!processedKeys.has(normalizeKeyValue(key))) {
158
249
  // This is a custom value, use the key as the label
159
250
  labels.push(key);
160
251
  }
@@ -165,29 +256,35 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
165
256
  const hasSelection = selectedLabels.length > 0;
166
257
  // Always keep the latest selection in a ref (with normalized keys) so that we can read it synchronously in the popover close effect.
167
258
  const latestSelectionRef = useRef({
168
- single: effectiveSelectedKey != null
169
- ? normalizeKeyValue(effectiveSelectedKey)
170
- : null,
171
- multiple: (effectiveSelectedKeys ?? []).map(normalizeKeyValue),
259
+ single: effectiveSelectedKey != null ? String(effectiveSelectedKey) : null,
260
+ multiple: effectiveSelectedKeys === 'all'
261
+ ? 'all'
262
+ : (effectiveSelectedKeys ?? []).map(String),
172
263
  });
173
264
  useEffect(() => {
174
265
  latestSelectionRef.current = {
175
- single: effectiveSelectedKey != null
176
- ? normalizeKeyValue(effectiveSelectedKey)
177
- : null,
178
- multiple: (effectiveSelectedKeys ?? []).map(normalizeKeyValue),
266
+ single: effectiveSelectedKey != null ? String(effectiveSelectedKey) : null,
267
+ multiple: effectiveSelectedKeys === 'all'
268
+ ? 'all'
269
+ : (effectiveSelectedKeys ?? []).map(String),
179
270
  };
180
271
  }, [effectiveSelectedKey, effectiveSelectedKeys]);
181
272
  const selectionsWhenClosed = useRef({ single: null, multiple: [] });
273
+ // Capture the initial selection (from defaultSelectedKey(s)) so that
274
+ // the very first popover open can already use it for sorting.
275
+ useEffect(() => {
276
+ selectionsWhenClosed.current = { ...latestSelectionRef.current };
277
+ }, []); // run only once on mount
182
278
  // Function to sort children with selected items on top
183
279
  const getSortedChildren = useCallback(() => {
184
280
  if (!children)
185
281
  return children;
186
- // When the popover is **closed** we don't want to trigger any resorting
187
- // that could cause visible re-flows during the fade-out animation. Simply
188
- // reuse whatever order we had while it was open (if available).
189
- if (!isPopoverOpen) {
190
- return cachedChildrenOrder.current ?? children;
282
+ // When the popover is **closed**, reuse the cached order if we have it to
283
+ // avoid unnecessary reflows. If we don't have a cache yet (first open),
284
+ // fall through to compute the sorted order so the very first render is
285
+ // already correct.
286
+ if (!isPopoverOpen && cachedChildrenOrder.current) {
287
+ return cachedChildrenOrder.current;
191
288
  }
192
289
  // Popover is open – compute (or recompute) the sorted order for this
193
290
  // session.
@@ -209,11 +306,17 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
209
306
  // Create selected keys set for fast lookup
210
307
  const selectedSet = new Set();
211
308
  if (selectionMode === 'multiple') {
212
- selectionsWhenClosed.current.multiple.forEach((key) => selectedSet.add(normalizeKeyValue(key)));
309
+ if (selectionsWhenClosed.current.multiple === 'all') {
310
+ // Don't sort when "all" is selected, just return original children
311
+ return children;
312
+ }
313
+ else {
314
+ selectionsWhenClosed.current.multiple.forEach((key) => selectedSet.add(String(key)));
315
+ }
213
316
  }
214
317
  else if (selectionMode === 'single' &&
215
318
  selectionsWhenClosed.current.single != null) {
216
- selectedSet.add(normalizeKeyValue(selectionsWhenClosed.current.single));
319
+ selectedSet.add(String(selectionsWhenClosed.current.single));
217
320
  }
218
321
  // Helper function to check if an item is selected
219
322
  const isItemSelected = (child) => {
@@ -278,8 +381,9 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
278
381
  // Sort the children
279
382
  const childrenArray = Children.toArray(children);
280
383
  const sortedChildren = sortChildrenArray(childrenArray);
281
- // Cache the sorted order when popover opens
282
- if (isPopoverOpen) {
384
+ // Cache the sorted order when popover opens or when we compute it for the
385
+ // first time before opening.
386
+ if (isPopoverOpen || !cachedChildrenOrder.current) {
283
387
  cachedChildrenOrder.current = sortedChildren;
284
388
  }
285
389
  return sortedChildren;
@@ -321,6 +425,9 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
321
425
  else if (selectionMode === 'single') {
322
426
  content = selectedLabels[0];
323
427
  }
428
+ else if (effectiveSelectedKeys === 'all') {
429
+ content = selectAllLabel;
430
+ }
324
431
  else {
325
432
  content = selectedLabels.join(', ');
326
433
  }
@@ -329,6 +436,7 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
329
436
  }
330
437
  return (_jsx(Text, { ellipsis: true, style: { opacity: hasSelection ? 1 : 'var(--disabled-opacity)' }, children: content }));
331
438
  };
439
+ const [shouldUpdatePosition, setShouldUpdatePosition] = useState(false);
332
440
  // The trigger is rendered as a function so we can access the dialog state
333
441
  const renderTrigger = (state) => {
334
442
  // Track popover open/close state to control sorting
@@ -352,64 +460,75 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
352
460
  }
353
461
  },
354
462
  });
355
- return (_jsx(Button, { ref: triggerRef, qa: props.qa || 'FilterPicker', type: type, theme: validationState === 'invalid' ? 'danger' : theme, size: size, isDisabled: isDisabled, isLoading: isLoading, mods: {
463
+ setTimeout(() => {
464
+ // Disable the update of the position while the popover is open (with a delay) to avoid jumping
465
+ setShouldUpdatePosition(!state.isOpen);
466
+ }, 100);
467
+ return (_jsx(TriggerButton, { ref: triggerRef, type: type, theme: validationState === 'invalid' ? 'danger' : theme, size: size, isDisabled: isDisabled, isLoading: isLoading, mods: {
356
468
  placeholder: !hasSelection,
357
469
  selected: hasSelection,
358
470
  ...externalMods,
359
471
  }, icon: icon, rightIcon: _jsx(DirectionIcon, { to: state.isOpen ? 'top' : 'bottom' }), styles: styles, ...otherProps, ...keyboardProps, "aria-label": `${props['aria-label'] ?? props.label ?? ''}`, children: renderTriggerContent() }));
360
472
  };
361
- const filterPickerField = (_jsxs(DialogTrigger, { type: "popover", placement: "bottom start", shouldFlip: true, isDismissable: true, children: [renderTrigger, (close) => (_jsx(Dialog, { display: "grid", styles: { gridRows: '1sf', ...popoverStyles }, children: _jsx(FocusScope, { restoreFocus: true, children: _jsx(FilterListBox, { autoFocus: true, "aria-label": `${props['aria-label'] ?? props.label ?? ''} Picker`, selectedKey: selectionMode === 'single' ? effectiveSelectedKey : undefined, selectedKeys: selectionMode === 'multiple' ? effectiveSelectedKeys : undefined, disabledKeys: disabledKeys, focusOnHover: focusOnHover, shouldFocusWrap: shouldFocusWrap, allowsCustomValue: allowsCustomValue, selectionMode: selectionMode, validationState: validationState, isDisabled: isDisabled, stateRef: listStateRef, isCheckable: isCheckable, mods: {
362
- popover: true,
363
- }, size: size === 'small' ? 'medium' : size, header: header, footer: footer, headerStyles: headerStyles, footerStyles: footerStyles, qa: `${props.qa || 'FilterPicker'}ListBox`, onEscape: () => close(), onOptionClick: (key) => {
364
- // For FilterPicker, clicking the content area should close the popover
365
- // in multiple selection mode (single mode already closes via onSelectionChange)
366
- if (selectionMode === 'multiple' && isCheckable) {
367
- close();
368
- }
369
- }, onSelectionChange: (selection) => {
370
- // No need to change any flags - children order is cached
371
- // Update internal state if uncontrolled
372
- if (selectionMode === 'single') {
373
- if (!isControlledSingle) {
374
- setInternalSelectedKey(selection);
473
+ const filterPickerField = (_jsx(FilterPickerWrapper, { qa: props.qa || 'FilterPicker', styles: styles, children: _jsxs(DialogTrigger, { type: "popover", placement: "bottom start", styles: triggerStyles, shouldUpdatePosition: shouldUpdatePosition, shouldFlip: shouldFlip, isDismissable: true, children: [renderTrigger, (close) => (_jsx(Dialog, { display: "grid", styles: { gridRows: '1sf', ...popoverStyles }, children: _jsx(FocusScope, { restoreFocus: true, children: _jsx(FilterListBox, { autoFocus: true, "aria-label": `${props['aria-label'] ?? props.label ?? ''} Picker`, selectedKey: selectionMode === 'single' ? mappedSelectedKey : undefined, selectedKeys: selectionMode === 'multiple' ? mappedSelectedKeys : undefined, disabledKeys: disabledKeys, focusOnHover: focusOnHover, shouldFocusWrap: shouldFocusWrap, allowsCustomValue: allowsCustomValue, selectionMode: selectionMode, validationState: validationState, isDisabled: isDisabled, stateRef: listStateRef, isCheckable: isCheckable, mods: {
474
+ popover: true,
475
+ }, size: size === 'small' ? 'medium' : size, showSelectAll: showSelectAll, selectAllLabel: selectAllLabel, header: header, footer: footer, headerStyles: headerStyles, footerStyles: footerStyles, qa: `${props.qa || 'FilterPicker'}ListBox`, onEscape: () => close(), onOptionClick: (key) => {
476
+ // For FilterPicker, clicking the content area should close the popover
477
+ // in multiple selection mode (single mode already closes via onSelectionChange)
478
+ if ((selectionMode === 'multiple' && isCheckable) ||
479
+ key === '__ALL__') {
480
+ close();
375
481
  }
376
- }
377
- else {
378
- if (!isControlledMultiple) {
379
- let normalized = selection;
380
- if (Array.isArray(selection)) {
381
- normalized = processSelectionArray(selection);
482
+ }, onSelectionChange: (selection) => {
483
+ // No need to change any flags - children order is cached
484
+ // Update internal state if uncontrolled
485
+ if (selectionMode === 'single') {
486
+ if (!isControlledSingle) {
487
+ setInternalSelectedKey(selection);
488
+ }
489
+ }
490
+ else {
491
+ if (!isControlledMultiple) {
492
+ let normalized = selection;
493
+ if (selection === 'all') {
494
+ normalized = 'all';
495
+ }
496
+ else if (Array.isArray(selection)) {
497
+ normalized = processSelectionArray(selection);
498
+ }
499
+ else if (selection &&
500
+ typeof selection === 'object' &&
501
+ selection instanceof Set) {
502
+ normalized = processSelectionArray(selection);
503
+ }
504
+ setInternalSelectedKeys(normalized);
505
+ }
506
+ }
507
+ // Update latest selection ref synchronously
508
+ if (selectionMode === 'single') {
509
+ latestSelectionRef.current.single = selection;
510
+ }
511
+ else {
512
+ if (selection === 'all') {
513
+ latestSelectionRef.current.multiple = 'all';
514
+ }
515
+ else if (Array.isArray(selection)) {
516
+ latestSelectionRef.current.multiple = Array.from(new Set(processSelectionArray(selection)));
382
517
  }
383
518
  else if (selection &&
384
519
  typeof selection === 'object' &&
385
520
  selection instanceof Set) {
386
- normalized = processSelectionArray(selection);
521
+ latestSelectionRef.current.multiple = Array.from(new Set(processSelectionArray(selection)));
522
+ }
523
+ else {
524
+ latestSelectionRef.current.multiple = selection;
387
525
  }
388
- setInternalSelectedKeys(normalized);
389
- }
390
- }
391
- // Update latest selection ref synchronously
392
- if (selectionMode === 'single') {
393
- latestSelectionRef.current.single = selection;
394
- }
395
- else {
396
- if (Array.isArray(selection)) {
397
- latestSelectionRef.current.multiple = Array.from(new Set(processSelectionArray(selection)));
398
- }
399
- else if (selection &&
400
- typeof selection === 'object' &&
401
- selection instanceof Set) {
402
- latestSelectionRef.current.multiple = Array.from(new Set(processSelectionArray(selection)));
403
526
  }
404
- else {
405
- latestSelectionRef.current.multiple = selection;
527
+ onSelectionChange?.(selection);
528
+ if (selectionMode === 'single') {
529
+ close();
406
530
  }
407
- }
408
- onSelectionChange?.(selection);
409
- if (selectionMode === 'single') {
410
- close();
411
- }
412
- }, children: finalChildren }) }) }))] }));
531
+ }, children: finalChildren }) }) }))] }) }));
413
532
  return wrapWithField(filterPickerField, ref, mergeProps({
414
533
  ...props,
415
534
  styles: undefined,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-e864021
4
+ * @cube-dev/ui-kit v0.0.0-canary-3d5ac77
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-e864021
4
+ * @cube-dev/ui-kit v0.0.0-canary-3d5ac77
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-e864021
4
+ * @cube-dev/ui-kit v0.0.0-canary-3d5ac77
5
5
  * Released under the MIT license.
6
6
  */
7
7