@cube-dev/ui-kit 0.0.0-canary-b0df357 → 0.0.0-canary-876c009

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 (510) hide show
  1. package/es/_internal/hooks/index.js +1 -1
  2. package/es/_internal/hooks/use-chained-callback.js +1 -1
  3. package/es/_internal/hooks/use-debounced-value.js +1 -1
  4. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/es/_internal/hooks/use-effect-once.js +1 -1
  6. package/es/_internal/hooks/use-event.js +1 -1
  7. package/es/_internal/hooks/use-is-first-render.js +1 -1
  8. package/es/_internal/hooks/use-sync-ref.js +1 -1
  9. package/es/_internal/hooks/use-timer/index.js +1 -1
  10. package/es/_internal/hooks/use-timer/timer.js +1 -1
  11. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/es/_internal/hooks/use-update-effect.js +1 -1
  13. package/es/_internal/hooks/use-warn.js +1 -1
  14. package/es/_internal/index.js +1 -1
  15. package/es/components/Block.js +1 -1
  16. package/es/components/GlobalStyles.js +1 -1
  17. package/es/components/GridProvider.js +1 -1
  18. package/es/components/HiddenInput.js +1 -1
  19. package/es/components/Item.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 +1 -1
  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/ItemAction/ItemAction.js +1 -1
  30. package/es/components/actions/ItemAction/index.js +1 -1
  31. package/es/components/actions/ItemButton/ItemButton.js +1 -1
  32. package/es/components/actions/ItemButton/index.js +1 -1
  33. package/es/components/actions/Link/Link.js +1 -1
  34. package/es/components/actions/Menu/Menu.js +1 -1
  35. package/es/components/actions/Menu/MenuItem.js +1 -1
  36. package/es/components/actions/Menu/MenuSection.js +1 -1
  37. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  38. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  39. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  40. package/es/components/actions/Menu/context.js +1 -1
  41. package/es/components/actions/Menu/index.js +1 -1
  42. package/es/components/actions/Menu/styled.js +1 -1
  43. package/es/components/actions/index.js +1 -1
  44. package/es/components/actions/use-action.js +1 -1
  45. package/es/components/actions/use-anchored-menu.js +1 -1
  46. package/es/components/actions/use-context-menu.js +1 -1
  47. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  48. package/es/components/content/Alert/Alert.js +1 -1
  49. package/es/components/content/Alert/index.js +1 -1
  50. package/es/components/content/Alert/types.js +1 -1
  51. package/es/components/content/Alert/use-alert.js +1 -1
  52. package/es/components/content/Avatar/Avatar.js +1 -1
  53. package/es/components/content/Badge/Badge.js +1 -1
  54. package/es/components/content/Card/Card.js +1 -1
  55. package/es/components/content/Content.js +1 -1
  56. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  57. package/es/components/content/CopyPasteBlock/index.js +1 -1
  58. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  59. package/es/components/content/CopySnippet/index.js +1 -1
  60. package/es/components/content/Divider.js +1 -1
  61. package/es/components/content/Footer.js +1 -1
  62. package/es/components/content/Header.js +1 -1
  63. package/es/components/content/HotKeys/HotKeys.js +1 -1
  64. package/es/components/content/HotKeys/index.js +1 -1
  65. package/es/components/content/ItemBase/ItemBase.js +1 -1
  66. package/es/components/content/ItemBase/index.js +1 -1
  67. package/es/components/content/List/SectionHeading.js +1 -1
  68. package/es/components/content/List/index.js +1 -1
  69. package/es/components/content/Paragraph.js +1 -1
  70. package/es/components/content/Placeholder/Placeholder.js +1 -1
  71. package/es/components/content/PrismCode/PrismCode.js +1 -1
  72. package/es/components/content/PrismCode/prismSetup.js +1 -1
  73. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  74. package/es/components/content/Result/Result.js +1 -1
  75. package/es/components/content/Skeleton/Skeleton.js +1 -1
  76. package/es/components/content/Tag/Tag.js +1 -1
  77. package/es/components/content/Text.js +1 -1
  78. package/es/components/content/Title.js +1 -1
  79. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  80. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  81. package/es/components/fields/Checkbox/context.js +1 -1
  82. package/es/components/fields/Checkbox/index.js +1 -1
  83. package/es/components/fields/ComboBox/ComboBox.js +123 -211
  84. package/es/components/fields/ComboBox/index.js +1 -1
  85. package/es/components/fields/DatePicker/DateInput.js +1 -1
  86. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  87. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  88. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  89. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  90. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  91. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  92. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  93. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  94. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  95. package/es/components/fields/DatePicker/index.js +1 -1
  96. package/es/components/fields/DatePicker/intl.js +1 -1
  97. package/es/components/fields/DatePicker/parseDate.js +1 -1
  98. package/es/components/fields/DatePicker/props.js +1 -1
  99. package/es/components/fields/DatePicker/types.js +1 -1
  100. package/es/components/fields/DatePicker/utils.js +1 -1
  101. package/es/components/fields/FileInput/FileInput.js +1 -1
  102. package/es/components/fields/FilterListBox/FilterListBox.js +7 -4
  103. package/es/components/fields/FilterListBox/index.js +1 -1
  104. package/es/components/fields/FilterPicker/FilterPicker.js +4 -4
  105. package/es/components/fields/FilterPicker/index.js +1 -1
  106. package/es/components/fields/Input/Input.js +1 -1
  107. package/es/components/fields/Input/index.js +1 -1
  108. package/es/components/fields/LegacyComboBox/LegacyComboBox.js +1 -1
  109. package/es/components/fields/LegacyComboBox/index.js +1 -1
  110. package/es/components/fields/ListBox/ListBox.js +6 -7
  111. package/es/components/fields/ListBox/index.js +1 -1
  112. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  113. package/es/components/fields/NumberInput/StepButton.js +1 -1
  114. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  115. package/es/components/fields/RadioGroup/Radio.js +1 -1
  116. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  117. package/es/components/fields/RadioGroup/context.js +1 -1
  118. package/es/components/fields/RadioGroup/index.js +1 -1
  119. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  120. package/es/components/fields/SearchInput/index.js +1 -1
  121. package/es/components/fields/Select/Select.js +1 -1
  122. package/es/components/fields/Select/index.js +1 -1
  123. package/es/components/fields/Slider/Gradation.js +1 -1
  124. package/es/components/fields/Slider/Header.js +1 -1
  125. package/es/components/fields/Slider/RangeSlider.js +1 -1
  126. package/es/components/fields/Slider/Slider.js +1 -1
  127. package/es/components/fields/Slider/SliderBase.js +1 -1
  128. package/es/components/fields/Slider/SliderInput.js +1 -1
  129. package/es/components/fields/Slider/SliderThumb.js +1 -1
  130. package/es/components/fields/Slider/SliderTrack.js +1 -1
  131. package/es/components/fields/Slider/elements.js +1 -1
  132. package/es/components/fields/Slider/index.js +1 -1
  133. package/es/components/fields/Slider/types.js +1 -1
  134. package/es/components/fields/Switch/Switch.js +1 -1
  135. package/es/components/fields/Switch/index.js +1 -1
  136. package/es/components/fields/TextArea/TextArea.js +1 -1
  137. package/es/components/fields/TextArea/index.js +1 -1
  138. package/es/components/fields/TextInput/TextInput.js +1 -1
  139. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  140. package/es/components/fields/TextInput/index.js +1 -1
  141. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  142. package/es/components/fields/TextInputMapper/index.js +1 -1
  143. package/es/components/fields/index.js +1 -2
  144. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  145. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  146. package/es/components/form/FieldWrapper/index.js +1 -1
  147. package/es/components/form/FieldWrapper/types.js +1 -1
  148. package/es/components/form/Form/Field.js +1 -1
  149. package/es/components/form/Form/Form.js +1 -1
  150. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  151. package/es/components/form/Form/ResetButton/index.js +1 -1
  152. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  153. package/es/components/form/Form/SubmitButton/index.js +1 -1
  154. package/es/components/form/Form/SubmitError.js +1 -1
  155. package/es/components/form/Form/index.js +1 -1
  156. package/es/components/form/Form/types.js +1 -1
  157. package/es/components/form/Form/use-field/index.js +1 -1
  158. package/es/components/form/Form/use-field/types.js +1 -1
  159. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  160. package/es/components/form/Form/use-field/use-field.js +1 -1
  161. package/es/components/form/Form/use-form.js +1 -1
  162. package/es/components/form/Form/validation.js +1 -1
  163. package/es/components/form/Label.js +1 -1
  164. package/es/components/form/index.js +1 -1
  165. package/es/components/form/wrapper.js +1 -1
  166. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  167. package/es/components/helpers/index.js +1 -1
  168. package/es/components/layout/Flex.js +1 -1
  169. package/es/components/layout/Flow.js +1 -1
  170. package/es/components/layout/Grid.js +1 -1
  171. package/es/components/layout/Panel.js +1 -1
  172. package/es/components/layout/Prefix.js +1 -1
  173. package/es/components/layout/ResizablePanel.js +1 -1
  174. package/es/components/layout/Space.js +1 -1
  175. package/es/components/layout/Suffix.js +1 -1
  176. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  177. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  178. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  179. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  180. package/es/components/other/Calendar/Calendar.js +1 -1
  181. package/es/components/other/Calendar/CalendarCell.js +1 -1
  182. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  183. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  184. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  185. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  186. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  187. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  188. package/es/components/overlays/AlertDialog/index.js +1 -1
  189. package/es/components/overlays/AlertDialog/types.js +1 -1
  190. package/es/components/overlays/Dialog/Dialog.js +1 -2
  191. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  192. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  193. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  194. package/es/components/overlays/Dialog/context.js +1 -1
  195. package/es/components/overlays/Dialog/index.js +1 -1
  196. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  197. package/es/components/overlays/Modal/Modal.js +1 -1
  198. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  199. package/es/components/overlays/Modal/Overlay.js +1 -1
  200. package/es/components/overlays/Modal/Popover.js +1 -1
  201. package/es/components/overlays/Modal/Tray.js +1 -1
  202. package/es/components/overlays/Modal/Underlay.js +1 -1
  203. package/es/components/overlays/Modal/index.js +1 -1
  204. package/es/components/overlays/Modal/types.js +1 -1
  205. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  206. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  207. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  208. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  209. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  210. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  211. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  212. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  213. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  214. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  215. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  216. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  217. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  218. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  219. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  220. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  221. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  222. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  223. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  224. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  225. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  226. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  227. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  228. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  229. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  230. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  231. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  232. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  233. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  234. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  235. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  236. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  237. package/es/components/overlays/NewNotifications/index.js +1 -1
  238. package/es/components/overlays/NewNotifications/types.js +1 -1
  239. package/es/components/overlays/Notification/Notification.js +1 -1
  240. package/es/components/overlays/OverlayWrapper.js +1 -1
  241. package/es/components/overlays/Toasts/Toast.js +1 -1
  242. package/es/components/overlays/Toasts/index.js +1 -1
  243. package/es/components/overlays/Toasts/types.js +1 -1
  244. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  245. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  246. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  247. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  248. package/es/components/overlays/Tooltip/context.js +1 -1
  249. package/es/components/overlays/Tooltip/index.js +1 -1
  250. package/es/components/portal/Portal.js +1 -1
  251. package/es/components/portal/PortalProvider.js +1 -1
  252. package/es/components/portal/index.js +1 -1
  253. package/es/components/portal/types.js +1 -1
  254. package/es/components/portal/usePortal.js +1 -1
  255. package/es/components/shared/InvalidIcon.js +1 -1
  256. package/es/components/shared/ValidIcon.js +1 -1
  257. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  258. package/es/components/status/LoadingAnimation/index.js +1 -1
  259. package/es/components/status/Spin/Cube.js +1 -1
  260. package/es/components/status/Spin/InternalSpinner.js +1 -1
  261. package/es/components/status/Spin/Spin.js +1 -1
  262. package/es/components/status/Spin/SpinsContainer.js +1 -1
  263. package/es/components/status/Spin/index.js +1 -1
  264. package/es/components/status/Spin/types.js +1 -1
  265. package/es/components/status/index.js +1 -1
  266. package/es/data/item-themes.js +1 -1
  267. package/es/data/themes.js +1 -1
  268. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  269. package/es/icons/AdjustmentsIcon.js +1 -1
  270. package/es/icons/AiIcon.js +1 -1
  271. package/es/icons/AreaChartIcon.js +1 -1
  272. package/es/icons/BackwardIcon.js +1 -1
  273. package/es/icons/BarChartIcon.js +1 -1
  274. package/es/icons/BellFilledIcon.js +1 -1
  275. package/es/icons/BellIcon.js +1 -1
  276. package/es/icons/BooleanIcon.js +1 -1
  277. package/es/icons/CalendarEditIcon.js +1 -1
  278. package/es/icons/CalendarIcon.js +1 -1
  279. package/es/icons/CaretDownIcon.js +1 -1
  280. package/es/icons/CaretUpIcon.js +1 -1
  281. package/es/icons/ChartAreaStackedIcon.js +1 -1
  282. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  283. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  284. package/es/icons/ChartBarGroupedIcon.js +1 -1
  285. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  286. package/es/icons/ChartBarLineIcon.js +1 -1
  287. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  288. package/es/icons/ChartBarStackedIcon.js +1 -1
  289. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  290. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  291. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  292. package/es/icons/ChartBoxPlotIcon.js +1 -1
  293. package/es/icons/ChartBubbleIcon.js +1 -1
  294. package/es/icons/ChartDonut2Icon.js +1 -1
  295. package/es/icons/ChartFunnelIcon.js +1 -1
  296. package/es/icons/ChartHeatmapIcon.js +1 -1
  297. package/es/icons/ChartKPIIcon.js +1 -1
  298. package/es/icons/ChartPie2Icon.js +1 -1
  299. package/es/icons/ChartScatterIcon.js +1 -1
  300. package/es/icons/CheckCircleFilledIcon.js +1 -1
  301. package/es/icons/CheckCircleIcon.js +1 -1
  302. package/es/icons/CheckIcon.js +1 -1
  303. package/es/icons/CircleFilledIcon.js +1 -1
  304. package/es/icons/ClearIcon.js +1 -1
  305. package/es/icons/CloseCircleFilledIcon.js +1 -1
  306. package/es/icons/CloseCircleIcon.js +1 -1
  307. package/es/icons/CloseIcon.js +1 -1
  308. package/es/icons/CodeIcon.js +1 -1
  309. package/es/icons/CopyIcon.js +1 -1
  310. package/es/icons/CountIcon.js +1 -1
  311. package/es/icons/CubeIcon.js +1 -1
  312. package/es/icons/CubePauseIcon.js +1 -1
  313. package/es/icons/CubePlayIcon.js +1 -1
  314. package/es/icons/CurrencyDollarIcon.js +1 -1
  315. package/es/icons/DangerIcon.js +1 -1
  316. package/es/icons/DashboardIcon.js +1 -1
  317. package/es/icons/DatabaseIcon.js +1 -1
  318. package/es/icons/DecimalDecreaseIcon.js +1 -1
  319. package/es/icons/DecimalIncreaseIcon.js +1 -1
  320. package/es/icons/DirectionIcon.js +1 -1
  321. package/es/icons/DonutIcon.js +1 -1
  322. package/es/icons/DownIcon.js +1 -1
  323. package/es/icons/EditIcon.js +1 -1
  324. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  325. package/es/icons/ExclamationCircleIcon.js +1 -1
  326. package/es/icons/ExclamationIcon.js +1 -1
  327. package/es/icons/EyeIcon.js +1 -1
  328. package/es/icons/EyeInvisibleIcon.js +1 -1
  329. package/es/icons/FilterIcon.js +1 -1
  330. package/es/icons/FolderFilledIcon.js +1 -1
  331. package/es/icons/FolderIcon.js +1 -1
  332. package/es/icons/FolderOpenFilledIcon.js +1 -1
  333. package/es/icons/FolderOpenIcon.js +1 -1
  334. package/es/icons/ForwardIcon.js +1 -1
  335. package/es/icons/HierarchyIcon.js +1 -1
  336. package/es/icons/Icon.js +1 -1
  337. package/es/icons/InfoCircleIcon.js +1 -1
  338. package/es/icons/InfoIcon.js +1 -1
  339. package/es/icons/KeyIcon.js +1 -1
  340. package/es/icons/LeftIcon.js +1 -1
  341. package/es/icons/LineChartIcon.js +1 -1
  342. package/es/icons/LoadingIcon.js +1 -1
  343. package/es/icons/LockFilledIcon.js +1 -1
  344. package/es/icons/LockIcon.js +1 -1
  345. package/es/icons/MoreIcon.js +1 -1
  346. package/es/icons/NotAllowedIcon.js +1 -1
  347. package/es/icons/Number123Icon.js +1 -1
  348. package/es/icons/NumberIcon.js +1 -1
  349. package/es/icons/PauseCircleFilledIcon.js +1 -1
  350. package/es/icons/PauseCircleIcon.js +1 -1
  351. package/es/icons/PauseIcon.js +1 -1
  352. package/es/icons/PercentageIcon.js +1 -1
  353. package/es/icons/PieChartIcon.js +1 -1
  354. package/es/icons/PlayCircleIcon.js +1 -1
  355. package/es/icons/PlayIcon.js +1 -1
  356. package/es/icons/PlusIcon.js +1 -1
  357. package/es/icons/ProgressBarIcon.js +12 -0
  358. package/es/icons/ReloadIcon.js +1 -1
  359. package/es/icons/ReportIcon.js +1 -1
  360. package/es/icons/ReturnIcon.js +1 -1
  361. package/es/icons/RightIcon.js +1 -1
  362. package/es/icons/SchemeIcon.js +1 -1
  363. package/es/icons/SearchIcon.js +1 -1
  364. package/es/icons/SettingsIcon.js +1 -1
  365. package/es/icons/ShieldFilledIcon.js +1 -1
  366. package/es/icons/ShieldIcon.js +1 -1
  367. package/es/icons/SlashIcon.js +1 -1
  368. package/es/icons/SparklesIcon.js +1 -1
  369. package/es/icons/SqlIcon.js +1 -1
  370. package/es/icons/StatsIcon.js +1 -1
  371. package/es/icons/StopIcon.js +1 -1
  372. package/es/icons/StringIcon.js +1 -1
  373. package/es/icons/SwitchIcon.js +1 -1
  374. package/es/icons/TableIcon.js +1 -1
  375. package/es/icons/ThumbsDownIcon.js +1 -1
  376. package/es/icons/ThumbsUpIcon.js +1 -1
  377. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  378. package/es/icons/ThunderboltFilledIcon.js +1 -1
  379. package/es/icons/ThunderboltIcon.js +1 -1
  380. package/es/icons/TimeIcon.js +1 -1
  381. package/es/icons/UnlockIcon.js +1 -1
  382. package/es/icons/UpIcon.js +1 -1
  383. package/es/icons/UserGroupIcon.js +1 -1
  384. package/es/icons/UserIcon.js +1 -1
  385. package/es/icons/UserLockIcon.js +1 -1
  386. package/es/icons/ViewIcon.js +1 -1
  387. package/es/icons/WarningFilledIcon.js +1 -1
  388. package/es/icons/WarningIcon.js +1 -1
  389. package/es/icons/add-new-icon.js +1 -1
  390. package/es/icons/index.js +2 -1
  391. package/es/icons/wrap-icon.js +1 -1
  392. package/es/index.js +1 -1
  393. package/es/provider.js +1 -1
  394. package/es/providers/TrackingProvider.js +1 -1
  395. package/es/providers/navigation.types.js +1 -1
  396. package/es/providers/navigationAdapter.default.js +1 -1
  397. package/es/services/notification.js +1 -1
  398. package/es/shared/form.js +1 -1
  399. package/es/shared/index.js +1 -1
  400. package/es/stories/Form.legacy-stories.js +1 -1
  401. package/es/stories/FormFieldArgs.js +1 -1
  402. package/es/stories/Layout.stories.js +1 -1
  403. package/es/stories/Tasty.stories.js +1 -1
  404. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  405. package/es/stories/components/DialogFormApp.js +1 -1
  406. package/es/stories/components/StyledButton.js +1 -1
  407. package/es/stories/lists/baseProps.js +1 -1
  408. package/es/tasty/debug.js +1 -1
  409. package/es/tasty/index.js +1 -1
  410. package/es/tasty/injector/index.js +1 -1
  411. package/es/tasty/injector/injector.js +1 -1
  412. package/es/tasty/injector/sheet-manager.js +1 -1
  413. package/es/tasty/injector/types.js +1 -1
  414. package/es/tasty/parser/classify.js +1 -1
  415. package/es/tasty/parser/const.js +1 -1
  416. package/es/tasty/parser/lru.js +1 -1
  417. package/es/tasty/parser/parser.js +1 -1
  418. package/es/tasty/parser/tokenizer.js +1 -1
  419. package/es/tasty/parser/types.js +1 -1
  420. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  421. package/es/tasty/styles/align.js +1 -1
  422. package/es/tasty/styles/border.js +1 -1
  423. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  424. package/es/tasty/styles/color.js +1 -1
  425. package/es/tasty/styles/createStyle.js +1 -1
  426. package/es/tasty/styles/dimension.js +1 -1
  427. package/es/tasty/styles/display.js +1 -1
  428. package/es/tasty/styles/fade.js +1 -1
  429. package/es/tasty/styles/fill.js +1 -1
  430. package/es/tasty/styles/flow.js +1 -1
  431. package/es/tasty/styles/font.js +1 -1
  432. package/es/tasty/styles/fontStyle.js +1 -1
  433. package/es/tasty/styles/gap.js +1 -1
  434. package/es/tasty/styles/groupRadius.js +1 -1
  435. package/es/tasty/styles/height.js +1 -1
  436. package/es/tasty/styles/index.js +1 -1
  437. package/es/tasty/styles/inset.js +1 -1
  438. package/es/tasty/styles/justify.js +1 -1
  439. package/es/tasty/styles/list.js +1 -1
  440. package/es/tasty/styles/margin.js +1 -1
  441. package/es/tasty/styles/outline.js +1 -1
  442. package/es/tasty/styles/padding.js +1 -1
  443. package/es/tasty/styles/place.js +1 -1
  444. package/es/tasty/styles/predefined.js +1 -1
  445. package/es/tasty/styles/preset.js +1 -1
  446. package/es/tasty/styles/radius.js +1 -1
  447. package/es/tasty/styles/reset.js +1 -1
  448. package/es/tasty/styles/scrollbar.js +1 -1
  449. package/es/tasty/styles/shadow.js +1 -1
  450. package/es/tasty/styles/styledScrollbar.js +1 -1
  451. package/es/tasty/styles/transition.js +1 -1
  452. package/es/tasty/styles/types.js +1 -1
  453. package/es/tasty/styles/width.js +1 -1
  454. package/es/tasty/tasty.js +1 -1
  455. package/es/tasty/types.js +1 -1
  456. package/es/tasty/utils/cache-wrapper.js +1 -1
  457. package/es/tasty/utils/case-converter.js +1 -1
  458. package/es/tasty/utils/colors.js +1 -1
  459. package/es/tasty/utils/dotize.js +1 -1
  460. package/es/tasty/utils/filterBaseProps.js +1 -1
  461. package/es/tasty/utils/getDisplayName.js +1 -1
  462. package/es/tasty/utils/getModCombinations.js +1 -1
  463. package/es/tasty/utils/isDevEnv.js +1 -1
  464. package/es/tasty/utils/mergeStyles.js +1 -1
  465. package/es/tasty/utils/modAttrs.js +1 -1
  466. package/es/tasty/utils/renderStyles.js +1 -1
  467. package/es/tasty/utils/responsive.js +1 -1
  468. package/es/tasty/utils/string.js +1 -1
  469. package/es/tasty/utils/styles.js +1 -1
  470. package/es/tasty/utils/warnings.js +1 -1
  471. package/es/tokens.js +1 -1
  472. package/es/utils/ResizeSensor.js +1 -1
  473. package/es/utils/modules.js +1 -1
  474. package/es/utils/promise.js +1 -1
  475. package/es/utils/random.js +1 -1
  476. package/es/utils/range.js +1 -1
  477. package/es/utils/react/Slots.js +1 -1
  478. package/es/utils/react/chain.js +1 -1
  479. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  480. package/es/utils/react/index.js +1 -1
  481. package/es/utils/react/interactions.js +1 -1
  482. package/es/utils/react/isTextOnly.js +1 -1
  483. package/es/utils/react/mapProps.js +1 -1
  484. package/es/utils/react/mergeProps.js +1 -1
  485. package/es/utils/react/nullableValue.js +1 -1
  486. package/es/utils/react/sharedStore.js +1 -1
  487. package/es/utils/react/useCombinedRefs.js +1 -1
  488. package/es/utils/react/useControlledFocusVisible.js +1 -1
  489. package/es/utils/react/useEventBus.js +1 -1
  490. package/es/utils/react/useId.js +1 -1
  491. package/es/utils/react/useIsDarwin.js +1 -1
  492. package/es/utils/react/useKeySymbols.js +1 -1
  493. package/es/utils/react/useLayoutEffect.js +1 -1
  494. package/es/utils/react/useQaProps.js +1 -1
  495. package/es/utils/react/useViewportSize.js +1 -1
  496. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  497. package/es/utils/transitions.js +1 -1
  498. package/es/utils/tree.js +1 -1
  499. package/es/utils/warnings.js +1 -1
  500. package/es/version.js +2 -2
  501. package/package.json +1 -1
  502. package/types/components/fields/FilterListBox/FilterListBox.d.ts +1 -1
  503. package/types/components/fields/ListBox/ListBox.d.ts +0 -6
  504. package/types/components/fields/index.d.ts +0 -1
  505. package/types/icons/ProgressBarIcon.d.ts +4 -0
  506. package/types/icons/index.d.ts +1 -0
  507. package/es/components/fields/Picker/Picker.js +0 -419
  508. package/es/components/fields/Picker/index.js +0 -10
  509. package/types/components/fields/Picker/Picker.d.ts +0 -69
  510. package/types/components/fields/Picker/index.d.ts +0 -2
@@ -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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,14 +1,14 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
9
  import React, { cloneElement, forwardRef, useCallback, useEffect, useMemo, useRef, useState, } from 'react';
10
10
  import { useFilter, useKeyboard, useOverlay, useOverlayPosition, } from 'react-aria';
11
- import { Section as BaseSection, useListState } from 'react-stately';
11
+ import { Section as BaseSection } from 'react-stately';
12
12
  import { useEvent } from '../../../_internal';
13
13
  import { CloseIcon, DirectionIcon, LoadingIcon } from '../../../icons';
14
14
  import { useProviderProps } from '../../../provider';
@@ -118,37 +118,65 @@ function useComboBoxState({ selectedKey, defaultSelectedKey, inputValue, default
118
118
  isControlledInput,
119
119
  };
120
120
  }
121
- function useComboBoxFiltering({ effectiveInputValue, filter, }) {
121
+ function useComboBoxFiltering({ children, effectiveInputValue, filter, }) {
122
122
  const [isFilterActive, setIsFilterActive] = useState(false);
123
123
  const { contains } = useFilter({ sensitivity: 'base' });
124
124
  const textFilterFn = useMemo(() => (filter === false ? () => true : filter || contains), [filter, contains]);
125
- // Create a filter function for collection nodes
126
- const filterFn = useCallback((nodes) => {
125
+ // Filter children based on input value
126
+ const filteredChildren = useMemo(() => {
127
127
  const term = effectiveInputValue.trim();
128
- // Don't filter if not active or no search term
129
- if (!isFilterActive || !term) {
130
- return nodes;
131
- }
132
- // Filter nodes based on their textValue and preserve section structure
133
- return [...nodes]
134
- .map((node) => {
135
- if (node.type === 'section' && node.childNodes) {
136
- const filteredChildren = [...node.childNodes].filter((child) => textFilterFn(child.textValue || '', term));
137
- if (filteredChildren.length === 0) {
138
- return null;
128
+ if (!isFilterActive || !term || !children) {
129
+ return children;
130
+ }
131
+ const nodeMatches = (node) => {
132
+ if (!node?.props)
133
+ return false;
134
+ const textValue = node.props.textValue ||
135
+ (typeof node.props.children === 'string' ? node.props.children : '') ||
136
+ String(node.props.children || '');
137
+ return textFilterFn(textValue, term);
138
+ };
139
+ const filterChildren = (childNodes) => {
140
+ if (!childNodes)
141
+ return null;
142
+ const childArray = Array.isArray(childNodes) ? childNodes : [childNodes];
143
+ const filteredNodes = [];
144
+ childArray.forEach((child) => {
145
+ if (!child || typeof child !== 'object') {
146
+ return;
139
147
  }
140
- return {
141
- ...node,
142
- childNodes: filteredChildren,
143
- hasChildNodes: true,
144
- };
145
- }
146
- return textFilterFn(node.textValue || '', term) ? node : null;
147
- })
148
- .filter(Boolean);
149
- }, [isFilterActive, effectiveInputValue, textFilterFn]);
148
+ if (child.type === BaseSection ||
149
+ child.type?.displayName === 'Section') {
150
+ const sectionChildren = Array.isArray(child.props.children)
151
+ ? child.props.children
152
+ : [child.props.children];
153
+ const filteredSectionChildren = sectionChildren.filter((sectionChild) => {
154
+ return (sectionChild &&
155
+ typeof sectionChild === 'object' &&
156
+ nodeMatches(sectionChild));
157
+ });
158
+ if (filteredSectionChildren.length > 0) {
159
+ filteredNodes.push(cloneElement(child, {
160
+ key: child.key,
161
+ children: filteredSectionChildren,
162
+ }));
163
+ }
164
+ }
165
+ else if (child.type === Item) {
166
+ if (nodeMatches(child)) {
167
+ filteredNodes.push(child);
168
+ }
169
+ }
170
+ else if (nodeMatches(child)) {
171
+ filteredNodes.push(child);
172
+ }
173
+ });
174
+ return filteredNodes;
175
+ };
176
+ return filterChildren(children);
177
+ }, [isFilterActive, children, effectiveInputValue, textFilterFn]);
150
178
  return {
151
- filterFn,
179
+ filteredChildren,
152
180
  isFilterActive,
153
181
  setIsFilterActive,
154
182
  };
@@ -265,22 +293,6 @@ function useComboBoxKeyboard({ isPopoverOpen, listStateRef, hasResults, allowsCu
265
293
  }
266
294
  }
267
295
  else if (e.key === 'Enter') {
268
- // If popover is open, try to select the focused item first
269
- if (isPopoverOpen) {
270
- const listState = listStateRef.current;
271
- if (listState) {
272
- const keyToSelect = listState.selectionManager.focusedKey;
273
- if (keyToSelect != null) {
274
- e.preventDefault();
275
- listState.selectionManager.select(keyToSelect, e);
276
- // Ensure the popover closes even if selection stays the same
277
- onClosePopover();
278
- inputRef.current?.focus();
279
- return;
280
- }
281
- }
282
- }
283
- // If no results, handle empty input or custom values
284
296
  if (!hasResults) {
285
297
  e.preventDefault();
286
298
  if (allowsCustomValue) {
@@ -292,12 +304,18 @@ function useComboBoxKeyboard({ isPopoverOpen, listStateRef, hasResults, allowsCu
292
304
  }
293
305
  return;
294
306
  }
295
- // Clear selection if input is empty and popover is closed (or no focused item)
296
- const trimmed = (effectiveInputValue || '').trim();
297
- if (trimmed === '') {
298
- e.preventDefault();
299
- onSelectionChange(null);
300
- return;
307
+ if (isPopoverOpen) {
308
+ const listState = listStateRef.current;
309
+ if (!listState)
310
+ return;
311
+ const keyToSelect = listState.selectionManager.focusedKey;
312
+ if (keyToSelect != null) {
313
+ e.preventDefault();
314
+ listState.selectionManager.select(keyToSelect, e);
315
+ // Ensure the popover closes even if selection stays the same
316
+ onClosePopover();
317
+ inputRef.current?.focus();
318
+ }
301
319
  }
302
320
  }
303
321
  else if (e.key === 'Escape') {
@@ -358,7 +376,7 @@ const ComboBoxInput = forwardRef(function ComboBoxInput({ qa, inputRef, id, valu
358
376
  ? `ListBoxItem-${listStateRef.current?.selectionManager.focusedKey}`
359
377
  : undefined }));
360
378
  });
361
- function ComboBoxOverlay({ isOpen, triggerRef, popoverRef, listBoxRef, direction, shouldFlip, overlayOffset, comboBoxWidth, comboBoxId, overlayStyles, listBoxStyles, optionStyles, sectionStyles, headingStyles, effectiveSelectedKey, isDisabled, disabledKeys, items, children, listStateRef, onSelectionChange, onClose, label, ariaLabel, compositeFocusProps, filter, }) {
379
+ function ComboBoxOverlay({ isOpen, triggerRef, popoverRef, listBoxRef, direction, shouldFlip, overlayOffset, comboBoxWidth, comboBoxId, overlayStyles, listBoxStyles, optionStyles, sectionStyles, headingStyles, effectiveSelectedKey, isDisabled, disabledKeys, items, children, listStateRef, onSelectionChange, onClose, label, ariaLabel, compositeFocusProps, }) {
362
380
  // Overlay positioning
363
381
  const { overlayProps: overlayPositionProps, placement, updatePosition, } = useOverlayPosition({
364
382
  targetRef: triggerRef,
@@ -396,7 +414,7 @@ function ComboBoxOverlay({ isOpen, triggerRef, popoverRef, listBoxRef, direction
396
414
  }, [isOpen, updatePosition]);
397
415
  // Extract primary placement direction for consistent styling
398
416
  const placementDirection = placement?.split(' ')[0] || direction;
399
- const overlayContent = (_jsx(DisplayTransition, { isShown: isOpen, children: ({ phase, isShown, ref: transitionRef }) => (_jsx(ComboBoxOverlayElement, { ...mergeProps(overlayPositionProps, overlayBehaviorProps, compositeFocusProps), ref: (value) => {
417
+ const overlayContent = (_jsx(DisplayTransition, { exposeUnmounted: true, isShown: isOpen, children: ({ phase, isShown, ref: transitionRef }) => (_jsx(ComboBoxOverlayElement, { ...mergeProps(overlayPositionProps, overlayBehaviorProps, compositeFocusProps), ref: (value) => {
400
418
  transitionRef(value);
401
419
  popoverRef.current = value;
402
420
  }, "data-placement": placementDirection, "data-phase": phase, mods: {
@@ -405,7 +423,7 @@ function ComboBoxOverlay({ isOpen, triggerRef, popoverRef, listBoxRef, direction
405
423
  }, styles: overlayStyles, style: {
406
424
  '--min-width': comboBoxWidth ? `${comboBoxWidth}px` : undefined,
407
425
  ...overlayPositionProps.style,
408
- }, children: _jsx(ListBox, { ref: listBoxRef, focusOnHover: true, disableSelectionToggle: true, id: `ComboBoxListBox-${comboBoxId}`, "aria-label": ariaLabel || (typeof label === 'string' ? label : 'Options'), selectedKey: effectiveSelectedKey, selectionMode: "single", isDisabled: isDisabled, disabledKeys: disabledKeys, shouldUseVirtualFocus: true, items: items, filter: filter, styles: listBoxStyles, optionStyles: optionStyles, sectionStyles: sectionStyles, headingStyles: headingStyles, stateRef: listStateRef, mods: {
426
+ }, children: _jsx(ListBox, { ref: listBoxRef, focusOnHover: true, disableSelectionToggle: true, id: `ComboBoxListBox-${comboBoxId}`, "aria-label": ariaLabel || (typeof label === 'string' ? label : 'Options'), selectedKey: effectiveSelectedKey, selectionMode: "single", isDisabled: isDisabled, disabledKeys: disabledKeys, shouldUseVirtualFocus: true, items: items, styles: listBoxStyles, optionStyles: optionStyles, sectionStyles: sectionStyles, headingStyles: headingStyles, stateRef: listStateRef, mods: {
409
427
  popover: true,
410
428
  }, onSelectionChange: onSelectionChange, children: children }) })) }));
411
429
  return _jsx(Portal, { children: overlayContent });
@@ -535,152 +553,63 @@ export const ComboBox = forwardRef(function ComboBox(props, ref) {
535
553
  }
536
554
  }, [isPopoverOpen, effectiveSelectedKey]);
537
555
  // Filtering hook
538
- const { filterFn, isFilterActive, setIsFilterActive } = useComboBoxFiltering({
556
+ const { filteredChildren, isFilterActive, setIsFilterActive } = useComboBoxFiltering({
557
+ children,
539
558
  effectiveInputValue,
540
559
  filter,
541
560
  });
542
- // Create local collection state for reading item data (labels, etc.)
543
- // This allows us to read item labels even before the popover opens
544
- const localCollectionState = useListState({
545
- children,
546
- items: sortedItems,
547
- selectionMode: 'none', // Don't manage selection in this state
548
- });
549
- const { isFocused, focusProps } = useFocus({ isDisabled });
550
- // Helper to check if current input value is valid
551
- const checkInputValidity = useCallback(() => {
552
- if (!effectiveInputValue.trim()) {
553
- return { isValid: false, singleMatchKey: null, filteredCount: 0 };
554
- }
555
- // Get filtered collection based on current input
556
- const filteredNodes = filterFn(localCollectionState.collection);
557
- const filteredItems = [];
558
- // Flatten filtered nodes (handle sections)
559
- for (const node of filteredNodes) {
560
- if (node.type === 'section' && node.childNodes) {
561
- for (const child of node.childNodes) {
562
- if (child.type === 'item') {
563
- filteredItems.push({
564
- key: child.key,
565
- textValue: child.textValue || '',
566
- });
567
- }
568
- }
569
- }
570
- else if (node.type === 'item') {
571
- filteredItems.push({
572
- key: node.key,
573
- textValue: node.textValue || '',
574
- });
575
- }
576
- }
577
- const filteredCount = filteredItems.length;
578
- // Check for exact match
579
- const exactMatch = filteredItems.find((item) => item.textValue.toLowerCase() ===
580
- effectiveInputValue.trim().toLowerCase());
581
- if (exactMatch) {
582
- return { isValid: true, singleMatchKey: exactMatch.key, filteredCount };
583
- }
584
- // If exactly one filtered result, consider it valid
585
- if (filteredCount === 1) {
586
- return {
587
- isValid: true,
588
- singleMatchKey: filteredItems[0].key,
589
- filteredCount,
590
- };
561
+ // Freeze filtered children during close animation to prevent visual jumps
562
+ const frozenFilteredChildrenRef = useRef(null);
563
+ useEffect(() => {
564
+ // Update frozen children only when popover is open
565
+ if (isPopoverOpen) {
566
+ frozenFilteredChildrenRef.current = filteredChildren;
591
567
  }
592
- return { isValid: false, singleMatchKey: null, filteredCount };
593
- }, [effectiveInputValue, filterFn, localCollectionState.collection]);
568
+ }, [isPopoverOpen, filteredChildren]);
569
+ // Use frozen children during close animation, fresh children when open
570
+ const displayedFilteredChildren = isPopoverOpen
571
+ ? filteredChildren
572
+ : frozenFilteredChildrenRef.current ?? filteredChildren;
573
+ const { isFocused, focusProps } = useFocus({ isDisabled });
594
574
  // Composite blur handler - fires when focus leaves the entire component
595
575
  const handleCompositeBlur = useEvent(() => {
596
- // NOTE: Do NOT disable filter yet; we need it active for validity check
597
- // In allowsCustomValue mode
598
- if (allowsCustomValue) {
599
- // Commit the input value if it's non-empty and nothing is selected
600
- if (shouldCommitOnBlur &&
601
- effectiveInputValue &&
602
- effectiveSelectedKey == null) {
603
- externalOnSelectionChange?.(effectiveInputValue);
604
- if (!isControlledKey) {
605
- setInternalSelectedKey(effectiveInputValue);
606
- }
607
- onBlur?.();
608
- setIsFilterActive(false);
609
- return;
610
- }
611
- // Clear selection if input is empty
612
- if (!String(effectiveInputValue).trim()) {
613
- externalOnSelectionChange?.(null);
614
- if (!isControlledKey) {
615
- setInternalSelectedKey(null);
616
- }
617
- if (!isControlledInput) {
618
- setInternalInputValue('');
619
- }
620
- onInputChange?.('');
621
- onBlur?.();
622
- setIsFilterActive(false);
623
- return;
576
+ // Always disable filter on blur
577
+ setIsFilterActive(false);
578
+ // In allowsCustomValue mode with shouldCommitOnBlur, commit the input value
579
+ if (allowsCustomValue &&
580
+ shouldCommitOnBlur &&
581
+ effectiveInputValue &&
582
+ effectiveSelectedKey == null) {
583
+ externalOnSelectionChange?.(effectiveInputValue);
584
+ if (!isControlledKey) {
585
+ setInternalSelectedKey(effectiveInputValue);
624
586
  }
587
+ // Call user's onBlur callback
588
+ onBlur?.();
589
+ return;
625
590
  }
626
- // In non-custom-value mode, validate input and handle accordingly
627
- if (!allowsCustomValue) {
628
- const { isValid, singleMatchKey } = checkInputValidity();
629
- // If there's exactly one filtered result, auto-select it
630
- if (isValid &&
631
- singleMatchKey != null &&
632
- singleMatchKey !== effectiveSelectedKey) {
633
- const label = getItemLabel(singleMatchKey);
634
- if (!isControlledKey) {
635
- setInternalSelectedKey(singleMatchKey);
636
- }
637
- if (!isControlledInput) {
638
- setInternalInputValue(label);
639
- }
640
- onInputChange?.(label);
641
- externalOnSelectionChange?.(singleMatchKey);
642
- onBlur?.();
643
- setIsFilterActive(false);
644
- return;
591
+ // In clearOnBlur mode (only for non-custom-value mode), clear selection and input
592
+ if (clearOnBlur && !allowsCustomValue) {
593
+ externalOnSelectionChange?.(null);
594
+ if (!isControlledKey) {
595
+ setInternalSelectedKey(null);
645
596
  }
646
- // If input is invalid (no exact match, not a single result)
647
- if (!isValid) {
648
- const trimmedInput = effectiveInputValue.trim();
649
- // Clear if clearOnBlur is set or input is empty
650
- if (clearOnBlur || !trimmedInput) {
651
- externalOnSelectionChange?.(null);
652
- if (!isControlledKey) {
653
- setInternalSelectedKey(null);
654
- }
655
- if (!isControlledInput) {
656
- setInternalInputValue('');
657
- }
658
- onInputChange?.('');
659
- onBlur?.();
660
- setIsFilterActive(false);
661
- return;
662
- }
663
- // Reset input to current selected value (or empty if none)
664
- const nextValue = effectiveSelectedKey != null
665
- ? getItemLabel(effectiveSelectedKey)
666
- : '';
667
- if (!isControlledInput) {
668
- setInternalInputValue(nextValue);
669
- }
670
- onInputChange?.(nextValue);
671
- onBlur?.();
672
- setIsFilterActive(false);
673
- return;
597
+ if (!isControlledInput) {
598
+ setInternalInputValue('');
674
599
  }
600
+ onInputChange?.('');
601
+ // Call user's onBlur callback
602
+ onBlur?.();
603
+ return;
675
604
  }
676
- // Fallback: Reset input to show current selection (or empty if none)
605
+ // Reset input to show current selection (or empty if none)
677
606
  const nextValue = effectiveSelectedKey != null ? getItemLabel(effectiveSelectedKey) : '';
678
607
  if (!isControlledInput) {
679
608
  setInternalInputValue(nextValue);
680
609
  }
681
610
  onInputChange?.(nextValue);
611
+ // Call user's onBlur callback
682
612
  onBlur?.();
683
- setIsFilterActive(false);
684
613
  });
685
614
  // Composite focus hook - handles focus tracking across wrapper and portaled popover
686
615
  const { compositeFocusProps } = useCompositeFocus({
@@ -696,11 +625,11 @@ export const ComboBox = forwardRef(function ComboBox(props, ref) {
696
625
  // Ref to access internal ListBox state
697
626
  const listStateRef = useRef(null);
698
627
  const focusInitAttemptsRef = useRef(0);
699
- // Helper to get label from local collection
628
+ // Helper to get label from collection item
700
629
  const getItemLabel = useCallback((key) => {
701
- const item = localCollectionState?.collection?.getItem(key);
630
+ const item = listStateRef.current?.collection?.getItem(key);
702
631
  return item?.textValue || String(key);
703
- }, [localCollectionState?.collection]);
632
+ }, []);
704
633
  // Selection change handler
705
634
  const handleSelectionChange = useEvent((selection) => {
706
635
  // Extract single key from selection (we only support single selection)
@@ -771,6 +700,9 @@ export const ComboBox = forwardRef(function ComboBox(props, ref) {
771
700
  }
772
701
  // Priority 2: fall back to defaultSelectedKey's label
773
702
  if (defaultSelectedKey) {
703
+ // Wait for collection to be ready
704
+ if (!listStateRef.current?.collection)
705
+ return;
774
706
  const label = getItemLabel(defaultSelectedKey);
775
707
  setInternalInputValue(label);
776
708
  setHasInitialized(true);
@@ -784,17 +716,13 @@ export const ComboBox = forwardRef(function ComboBox(props, ref) {
784
716
  children,
785
717
  ]);
786
718
  // Sync input value with controlled selectedKey
787
- const lastSyncedSelectedKey = useRef(undefined);
788
719
  useEffect(() => {
789
720
  // Only run when selectedKey is controlled but inputValue is uncontrolled
790
721
  if (!isControlledKey || isControlledInput)
791
722
  return;
792
- // Skip if the key hasn't actually changed (prevents unnecessary resets when collection rebuilds)
793
- if (lastSyncedSelectedKey.current !== undefined &&
794
- lastSyncedSelectedKey.current === effectiveSelectedKey) {
723
+ // Wait for collection to be ready
724
+ if (!listStateRef.current?.collection)
795
725
  return;
796
- }
797
- lastSyncedSelectedKey.current = effectiveSelectedKey;
798
726
  // Get the expected label for the current selection
799
727
  const expectedLabel = effectiveSelectedKey != null ? getItemLabel(effectiveSelectedKey) : '';
800
728
  // Update the input value to match the selected key's label
@@ -817,26 +745,10 @@ export const ComboBox = forwardRef(function ComboBox(props, ref) {
817
745
  ? effectiveInputValue !== ''
818
746
  : effectiveSelectedKey != null;
819
747
  let showClearButton = isClearable && hasValue && !isDisabled && !isReadOnly;
820
- // Check if there are any results after filtering
821
- const hasResults = useMemo(() => {
822
- if (!children)
823
- return false;
824
- if (!Array.isArray(children) && children === null)
825
- return false;
826
- // If we have a collection, check if filtering will produce any results
827
- if (localCollectionState?.collection) {
828
- const filteredNodes = filterFn(localCollectionState.collection);
829
- const resultArray = Array.from(filteredNodes).flatMap((node) => {
830
- if (node.type === 'section' && node.childNodes) {
831
- return [...node.childNodes];
832
- }
833
- return [node];
834
- });
835
- return resultArray.length > 0;
836
- }
837
- // Fallback: check if children exists
838
- return Array.isArray(children) ? children.length > 0 : true;
839
- }, [children, localCollectionState?.collection, filterFn]);
748
+ const hasResults = Boolean(displayedFilteredChildren &&
749
+ (Array.isArray(displayedFilteredChildren)
750
+ ? displayedFilteredChildren.length > 0
751
+ : displayedFilteredChildren !== null));
840
752
  // Clear function
841
753
  let clearValue = useEvent(() => {
842
754
  // Clear input
@@ -977,7 +889,7 @@ export const ComboBox = forwardRef(function ComboBox(props, ref) {
977
889
  }
978
890
  }
979
891
  }
980
- } })) : null] }), _jsx(ComboBoxOverlay, { isOpen: shouldShowPopover, triggerRef: wrapperRef, popoverRef: popoverRef, listBoxRef: listBoxRef, direction: direction, shouldFlip: shouldFlip, overlayOffset: overlayOffset, comboBoxWidth: comboBoxWidth, comboBoxId: comboBoxId, overlayStyles: overlayStyles, listBoxStyles: listBoxStyles, optionStyles: optionStyles, sectionStyles: sectionStyles, headingStyles: headingStyles, effectiveSelectedKey: effectiveSelectedKey, isDisabled: isDisabled, disabledKeys: props.disabledKeys, items: sortedItems, listStateRef: listStateRef, label: label, ariaLabel: props['aria-label'], compositeFocusProps: compositeFocusProps, filter: filterFn, onSelectionChange: handleSelectionChange, onClose: () => setIsPopoverOpen(false), children: children })] }));
892
+ } })) : null] }), _jsx(ComboBoxOverlay, { isOpen: shouldShowPopover, triggerRef: wrapperRef, popoverRef: popoverRef, listBoxRef: listBoxRef, direction: direction, shouldFlip: shouldFlip, overlayOffset: overlayOffset, comboBoxWidth: comboBoxWidth, comboBoxId: comboBoxId, overlayStyles: overlayStyles, listBoxStyles: listBoxStyles, optionStyles: optionStyles, sectionStyles: sectionStyles, headingStyles: headingStyles, effectiveSelectedKey: effectiveSelectedKey, isDisabled: isDisabled, disabledKeys: props.disabledKeys, items: sortedItems, listStateRef: listStateRef, label: label, ariaLabel: props['aria-label'], compositeFocusProps: compositeFocusProps, onSelectionChange: handleSelectionChange, onClose: () => setIsPopoverOpen(false), children: displayedFilteredChildren })] }));
981
893
  const { children: _, ...propsWithoutChildren } = props;
982
894
  const finalProps = {
983
895
  ...propsWithoutChildren,
@@ -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-b0df357
4
+ * @cube-dev/ui-kit v0.0.0-canary-876c009
5
5
  * Released under the MIT license.
6
6
  */
7
7