@cube-dev/ui-kit 0.0.0-canary-9f366f2 → 0.0.0-canary-a7f959a

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 (450) 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/OpenTrasition.js +1 -1
  20. package/es/components/Root.js +1 -1
  21. package/es/components/actions/Action/Action.js +1 -1
  22. package/es/components/actions/Button/Button.js +1 -1
  23. package/es/components/actions/Button/index.js +1 -1
  24. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  25. package/es/components/actions/index.js +1 -1
  26. package/es/components/actions/use-action.js +1 -1
  27. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  28. package/es/components/content/Alert/Alert.js +1 -1
  29. package/es/components/content/Alert/index.js +1 -1
  30. package/es/components/content/Alert/types.js +1 -1
  31. package/es/components/content/Alert/use-alert.js +1 -1
  32. package/es/components/content/Avatar/Avatar.js +1 -1
  33. package/es/components/content/Badge/Badge.js +1 -1
  34. package/es/components/content/Card/Card.js +1 -1
  35. package/es/components/content/Content.js +1 -1
  36. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  37. package/es/components/content/CopyPasteBlock/index.js +1 -1
  38. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  39. package/es/components/content/CopySnippet/index.js +1 -1
  40. package/es/components/content/Divider.js +1 -1
  41. package/es/components/content/Footer.js +1 -1
  42. package/es/components/content/Header.js +1 -1
  43. package/es/components/content/Paragraph.js +1 -1
  44. package/es/components/content/Placeholder/Placeholder.js +1 -1
  45. package/es/components/content/PrismCode/PrismCode.js +1 -1
  46. package/es/components/content/PrismCode/prismSetup.js +1 -1
  47. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  48. package/es/components/content/Result/Result.js +1 -1
  49. package/es/components/content/Skeleton/Skeleton.js +1 -1
  50. package/es/components/content/Tag/Tag.js +1 -1
  51. package/es/components/content/Text.js +1 -1
  52. package/es/components/content/Title.js +1 -1
  53. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  54. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  55. package/es/components/fields/Checkbox/context.js +1 -1
  56. package/es/components/fields/Checkbox/index.js +1 -1
  57. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  58. package/es/components/fields/ComboBox/index.js +1 -1
  59. package/es/components/fields/DatePicker/DateInput.js +1 -1
  60. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  61. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  62. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  63. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  64. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  65. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  66. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  67. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  68. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  69. package/es/components/fields/DatePicker/index.js +1 -1
  70. package/es/components/fields/DatePicker/intl.js +1 -1
  71. package/es/components/fields/DatePicker/parseDate.js +1 -1
  72. package/es/components/fields/DatePicker/props.js +1 -1
  73. package/es/components/fields/DatePicker/types.js +1 -1
  74. package/es/components/fields/DatePicker/utils.js +1 -1
  75. package/es/components/fields/FileInput/FileInput.js +1 -1
  76. package/es/components/fields/Input/Input.js +1 -1
  77. package/es/components/fields/Input/index.js +1 -1
  78. package/es/components/fields/ListBox/ListBox.js +131 -87
  79. package/es/components/fields/ListBox/index.js +1 -1
  80. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  81. package/es/components/fields/NumberInput/StepButton.js +1 -1
  82. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  83. package/es/components/fields/RadioGroup/Radio.js +1 -1
  84. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  85. package/es/components/fields/RadioGroup/context.js +1 -1
  86. package/es/components/fields/RadioGroup/index.js +1 -1
  87. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  88. package/es/components/fields/SearchInput/index.js +1 -1
  89. package/es/components/fields/Select/Select.js +1 -1
  90. package/es/components/fields/Select/index.js +1 -1
  91. package/es/components/fields/Slider/Gradation.js +1 -1
  92. package/es/components/fields/Slider/Header.js +1 -1
  93. package/es/components/fields/Slider/RangeSlider.js +1 -1
  94. package/es/components/fields/Slider/Slider.js +1 -1
  95. package/es/components/fields/Slider/SliderBase.js +1 -1
  96. package/es/components/fields/Slider/SliderInput.js +1 -1
  97. package/es/components/fields/Slider/SliderThumb.js +1 -1
  98. package/es/components/fields/Slider/SliderTrack.js +1 -1
  99. package/es/components/fields/Slider/elements.js +1 -1
  100. package/es/components/fields/Slider/index.js +1 -1
  101. package/es/components/fields/Slider/types.js +1 -1
  102. package/es/components/fields/Switch/Switch.js +1 -1
  103. package/es/components/fields/Switch/index.js +1 -1
  104. package/es/components/fields/TextArea/TextArea.js +1 -1
  105. package/es/components/fields/TextArea/index.js +1 -1
  106. package/es/components/fields/TextInput/TextInput.js +1 -1
  107. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  108. package/es/components/fields/TextInput/index.js +1 -1
  109. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  110. package/es/components/fields/TextInputMapper/index.js +1 -1
  111. package/es/components/fields/index.js +1 -1
  112. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  113. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  114. package/es/components/form/FieldWrapper/index.js +1 -1
  115. package/es/components/form/FieldWrapper/types.js +1 -1
  116. package/es/components/form/Form/Field.js +1 -1
  117. package/es/components/form/Form/Form.js +1 -1
  118. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  119. package/es/components/form/Form/ResetButton/index.js +1 -1
  120. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  121. package/es/components/form/Form/SubmitButton/index.js +1 -1
  122. package/es/components/form/Form/SubmitError.js +1 -1
  123. package/es/components/form/Form/index.js +1 -1
  124. package/es/components/form/Form/types.js +1 -1
  125. package/es/components/form/Form/use-field/index.js +1 -1
  126. package/es/components/form/Form/use-field/types.js +1 -1
  127. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  128. package/es/components/form/Form/use-field/use-field.js +1 -1
  129. package/es/components/form/Form/use-form.js +1 -1
  130. package/es/components/form/Form/validation.js +1 -1
  131. package/es/components/form/Label.js +1 -1
  132. package/es/components/form/index.js +1 -1
  133. package/es/components/form/wrapper.js +1 -1
  134. package/es/components/layout/Flex.js +1 -1
  135. package/es/components/layout/Flow.js +1 -1
  136. package/es/components/layout/Grid.js +1 -1
  137. package/es/components/layout/Panel.js +1 -1
  138. package/es/components/layout/Prefix.js +1 -1
  139. package/es/components/layout/ResizablePanel.js +1 -1
  140. package/es/components/layout/Space.js +1 -1
  141. package/es/components/layout/Suffix.js +1 -1
  142. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  143. package/es/components/navigation/Link/Link.js +1 -1
  144. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  145. package/es/components/organisms/Modal/Modal.js +1 -1
  146. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  147. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  148. package/es/components/other/Calendar/Calendar.js +1 -1
  149. package/es/components/other/Calendar/CalendarCell.js +1 -1
  150. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  151. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  152. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  153. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  154. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  155. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  156. package/es/components/overlays/AlertDialog/index.js +1 -1
  157. package/es/components/overlays/AlertDialog/types.js +1 -1
  158. package/es/components/overlays/Dialog/Dialog.js +1 -1
  159. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  160. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  161. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  162. package/es/components/overlays/Dialog/context.js +1 -1
  163. package/es/components/overlays/Dialog/dialog-container.js +1 -1
  164. package/es/components/overlays/Dialog/index.js +1 -1
  165. package/es/components/overlays/Modal/Modal.js +1 -1
  166. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  167. package/es/components/overlays/Modal/Overlay.js +1 -1
  168. package/es/components/overlays/Modal/Popover.js +1 -1
  169. package/es/components/overlays/Modal/Tray.js +1 -1
  170. package/es/components/overlays/Modal/Underlay.js +1 -1
  171. package/es/components/overlays/Modal/index.js +1 -1
  172. package/es/components/overlays/Modal/types.js +1 -1
  173. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  174. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  175. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  176. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  177. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  178. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  179. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  180. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  181. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  182. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  183. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  184. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  185. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  186. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  187. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  188. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  189. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  190. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  191. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  192. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  193. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  194. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  195. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  196. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  197. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  198. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  199. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  200. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  201. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  202. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  203. package/es/components/overlays/NewNotifications/index.js +1 -1
  204. package/es/components/overlays/NewNotifications/types.js +1 -1
  205. package/es/components/overlays/Notification/Notification.js +1 -1
  206. package/es/components/overlays/OverlayWrapper.js +1 -1
  207. package/es/components/overlays/Toasts/Toast.js +1 -1
  208. package/es/components/overlays/Toasts/index.js +1 -1
  209. package/es/components/overlays/Toasts/types.js +1 -1
  210. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  211. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  212. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  213. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  214. package/es/components/overlays/Tooltip/context.js +1 -1
  215. package/es/components/overlays/Tooltip/index.js +1 -1
  216. package/es/components/pickers/Menu/Menu.js +1 -1
  217. package/es/components/pickers/Menu/MenuButton.js +1 -1
  218. package/es/components/pickers/Menu/MenuItem.js +1 -1
  219. package/es/components/pickers/Menu/MenuSection.js +1 -1
  220. package/es/components/pickers/Menu/MenuTrigger.js +1 -1
  221. package/es/components/pickers/Menu/context.js +1 -1
  222. package/es/components/pickers/Menu/styled.js +1 -1
  223. package/es/components/portal/Portal.js +1 -1
  224. package/es/components/portal/PortalProvider.js +1 -1
  225. package/es/components/portal/index.js +1 -1
  226. package/es/components/portal/storybook/templates/CustomRoot.js +1 -1
  227. package/es/components/portal/storybook/templates/PortalOrder.js +1 -1
  228. package/es/components/portal/storybook/templates/basic.js +1 -1
  229. package/es/components/portal/storybook/templates/index.js +1 -1
  230. package/es/components/portal/types.js +1 -1
  231. package/es/components/portal/usePortal.js +1 -1
  232. package/es/components/shared/InvalidIcon.js +1 -1
  233. package/es/components/shared/ValidIcon.js +1 -1
  234. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  235. package/es/components/status/LoadingAnimation/index.js +1 -1
  236. package/es/components/status/Spin/Cube.js +1 -1
  237. package/es/components/status/Spin/InternalSpinner.js +1 -1
  238. package/es/components/status/Spin/Spin.js +1 -1
  239. package/es/components/status/Spin/SpinsContainer.js +1 -1
  240. package/es/components/status/Spin/index.js +1 -1
  241. package/es/components/status/Spin/types.js +1 -1
  242. package/es/components/status/index.js +1 -1
  243. package/es/data/themes.js +1 -1
  244. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  245. package/es/icons/AdjustmentsIcon.js +1 -1
  246. package/es/icons/AiIcon.js +1 -1
  247. package/es/icons/AreaChartIcon.js +1 -1
  248. package/es/icons/BackwardIcon.js +1 -1
  249. package/es/icons/BarChartIcon.js +1 -1
  250. package/es/icons/BellFilledIcon.js +1 -1
  251. package/es/icons/BellIcon.js +1 -1
  252. package/es/icons/BooleanIcon.js +1 -1
  253. package/es/icons/CalendarEditIcon.js +1 -1
  254. package/es/icons/CalendarIcon.js +1 -1
  255. package/es/icons/CaretDownIcon.js +1 -1
  256. package/es/icons/CaretUpIcon.js +1 -1
  257. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  258. package/es/icons/ChartBarGroupedIcon.js +1 -1
  259. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  260. package/es/icons/ChartBarLineIcon.js +1 -1
  261. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  262. package/es/icons/ChartBarStackedIcon.js +1 -1
  263. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  264. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  265. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  266. package/es/icons/ChartBoxPlotIcon.js +1 -1
  267. package/es/icons/ChartBubbleIcon.js +1 -1
  268. package/es/icons/ChartDonut2Icon.js +1 -1
  269. package/es/icons/ChartPie2Icon.js +1 -1
  270. package/es/icons/ChartScatterIcon.js +1 -1
  271. package/es/icons/CheckCircleFilledIcon.js +1 -1
  272. package/es/icons/CheckCircleIcon.js +1 -1
  273. package/es/icons/CheckIcon.js +1 -1
  274. package/es/icons/CircleFilledIcon.js +1 -1
  275. package/es/icons/ClearIcon.js +1 -1
  276. package/es/icons/CloseCircleFilledIcon.js +1 -1
  277. package/es/icons/CloseCircleIcon.js +1 -1
  278. package/es/icons/CloseIcon.js +1 -1
  279. package/es/icons/CodeIcon.js +1 -1
  280. package/es/icons/CopyIcon.js +1 -1
  281. package/es/icons/CountIcon.js +1 -1
  282. package/es/icons/CubeIcon.js +1 -1
  283. package/es/icons/DangerIcon.js +1 -1
  284. package/es/icons/DashboardIcon.js +1 -1
  285. package/es/icons/DatabaseIcon.js +1 -1
  286. package/es/icons/DirectionIcon.js +1 -1
  287. package/es/icons/DonutIcon.js +1 -1
  288. package/es/icons/DownIcon.js +1 -1
  289. package/es/icons/EditIcon.js +1 -1
  290. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  291. package/es/icons/ExclamationCircleIcon.js +1 -1
  292. package/es/icons/ExclamationIcon.js +1 -1
  293. package/es/icons/EyeIcon.js +1 -1
  294. package/es/icons/EyeInvisibleIcon.js +1 -1
  295. package/es/icons/FilterIcon.js +1 -1
  296. package/es/icons/FolderFilledIcon.js +1 -1
  297. package/es/icons/FolderIcon.js +1 -1
  298. package/es/icons/FolderOpenFilledIcon.js +1 -1
  299. package/es/icons/FolderOpenIcon.js +1 -1
  300. package/es/icons/ForwardIcon.js +1 -1
  301. package/es/icons/HierarchyIcon.js +1 -1
  302. package/es/icons/Icon.js +1 -1
  303. package/es/icons/InfoCircleIcon.js +1 -1
  304. package/es/icons/InfoIcon.js +1 -1
  305. package/es/icons/KeyIcon.js +1 -1
  306. package/es/icons/LeftIcon.js +1 -1
  307. package/es/icons/LineChartIcon.js +1 -1
  308. package/es/icons/LoadingIcon.js +1 -1
  309. package/es/icons/LockFilledIcon.js +1 -1
  310. package/es/icons/LockIcon.js +1 -1
  311. package/es/icons/MoreIcon.js +1 -1
  312. package/es/icons/NotAllowedIcon.js +1 -1
  313. package/es/icons/NumberIcon.js +1 -1
  314. package/es/icons/PauseCircleFilledIcon.js +1 -1
  315. package/es/icons/PauseCircleIcon.js +1 -1
  316. package/es/icons/PauseIcon.js +1 -1
  317. package/es/icons/PieChartIcon.js +1 -1
  318. package/es/icons/PlayCircleIcon.js +1 -1
  319. package/es/icons/PlayIcon.js +1 -1
  320. package/es/icons/PlusIcon.js +1 -1
  321. package/es/icons/ReloadIcon.js +1 -1
  322. package/es/icons/ReportIcon.js +1 -1
  323. package/es/icons/ReturnIcon.js +1 -1
  324. package/es/icons/RightIcon.js +1 -1
  325. package/es/icons/SchemeIcon.js +1 -1
  326. package/es/icons/SearchIcon.js +1 -1
  327. package/es/icons/SettingsIcon.js +1 -1
  328. package/es/icons/ShieldFilledIcon.js +1 -1
  329. package/es/icons/ShieldIcon.js +1 -1
  330. package/es/icons/SlashIcon.js +1 -1
  331. package/es/icons/SparklesIcon.js +1 -1
  332. package/es/icons/SqlIcon.js +1 -1
  333. package/es/icons/StatsIcon.js +1 -1
  334. package/es/icons/StopIcon.js +1 -1
  335. package/es/icons/StringIcon.js +1 -1
  336. package/es/icons/SwitchIcon.js +1 -1
  337. package/es/icons/TableIcon.js +1 -1
  338. package/es/icons/ThumbsDownIcon.js +1 -1
  339. package/es/icons/ThumbsUpIcon.js +1 -1
  340. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  341. package/es/icons/ThunderboltFilledIcon.js +1 -1
  342. package/es/icons/ThunderboltIcon.js +1 -1
  343. package/es/icons/TimeIcon.js +1 -1
  344. package/es/icons/UnlockIcon.js +1 -1
  345. package/es/icons/UpIcon.js +1 -1
  346. package/es/icons/UserGroupIcon.js +1 -1
  347. package/es/icons/UserIcon.js +1 -1
  348. package/es/icons/UserLockIcon.js +1 -1
  349. package/es/icons/ViewIcon.js +1 -1
  350. package/es/icons/WarningFilledIcon.js +1 -1
  351. package/es/icons/WarningIcon.js +1 -1
  352. package/es/icons/add-new-icon.js +1 -1
  353. package/es/icons/index.js +1 -1
  354. package/es/icons/wrap-icon.js +1 -1
  355. package/es/index.js +1 -1
  356. package/es/provider.js +1 -1
  357. package/es/providers/TrackingProvider.js +1 -1
  358. package/es/services/notification.js +1 -1
  359. package/es/shared/form.js +1 -1
  360. package/es/shared/index.js +1 -1
  361. package/es/stories/Form.legacy-stories.js +1 -1
  362. package/es/stories/FormFieldArgs.js +1 -1
  363. package/es/stories/Layout.stories.js +1 -1
  364. package/es/stories/Tasty.stories.js +1 -1
  365. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  366. package/es/stories/components/DialogFormApp.js +1 -1
  367. package/es/stories/components/StyledButton.js +1 -1
  368. package/es/stories/lists/baseProps.js +1 -1
  369. package/es/tasty/index.js +1 -1
  370. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  371. package/es/tasty/styles/align.js +1 -1
  372. package/es/tasty/styles/border.js +1 -1
  373. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  374. package/es/tasty/styles/color.js +1 -1
  375. package/es/tasty/styles/createStyle.js +1 -1
  376. package/es/tasty/styles/dimension.js +1 -1
  377. package/es/tasty/styles/display.js +1 -1
  378. package/es/tasty/styles/fade.js +1 -1
  379. package/es/tasty/styles/fill.js +1 -1
  380. package/es/tasty/styles/flow.js +1 -1
  381. package/es/tasty/styles/font.js +1 -1
  382. package/es/tasty/styles/fontStyle.js +1 -1
  383. package/es/tasty/styles/gap.js +1 -1
  384. package/es/tasty/styles/groupRadius.js +1 -1
  385. package/es/tasty/styles/height.js +1 -1
  386. package/es/tasty/styles/index.js +1 -1
  387. package/es/tasty/styles/inset.js +1 -1
  388. package/es/tasty/styles/justify.js +1 -1
  389. package/es/tasty/styles/list.js +1 -1
  390. package/es/tasty/styles/margin.js +1 -1
  391. package/es/tasty/styles/marginBlock.js +1 -1
  392. package/es/tasty/styles/marginInline.js +1 -1
  393. package/es/tasty/styles/outline.js +1 -1
  394. package/es/tasty/styles/padding.js +1 -1
  395. package/es/tasty/styles/paddingBlock.js +1 -1
  396. package/es/tasty/styles/paddingInline.js +1 -1
  397. package/es/tasty/styles/place.js +1 -1
  398. package/es/tasty/styles/predefined.js +1 -1
  399. package/es/tasty/styles/preset.js +1 -1
  400. package/es/tasty/styles/radius.js +1 -1
  401. package/es/tasty/styles/reset.js +1 -1
  402. package/es/tasty/styles/scrollbar.js +1 -1
  403. package/es/tasty/styles/shadow.js +1 -1
  404. package/es/tasty/styles/styledScrollbar.js +1 -1
  405. package/es/tasty/styles/transition.js +1 -1
  406. package/es/tasty/styles/types.js +1 -1
  407. package/es/tasty/styles/width.js +1 -1
  408. package/es/tasty/tasty.js +1 -1
  409. package/es/tasty/types.js +1 -1
  410. package/es/tasty/utils/cache-wrapper.js +1 -1
  411. package/es/tasty/utils/case-converter.js +1 -1
  412. package/es/tasty/utils/colors.js +1 -1
  413. package/es/tasty/utils/dotize.js +1 -1
  414. package/es/tasty/utils/filterBaseProps.js +1 -1
  415. package/es/tasty/utils/getDisplayName.js +1 -1
  416. package/es/tasty/utils/getModCombinations.js +1 -1
  417. package/es/tasty/utils/mergeStyles.js +1 -1
  418. package/es/tasty/utils/modAttrs.js +1 -1
  419. package/es/tasty/utils/renderStyles.js +1 -1
  420. package/es/tasty/utils/responsive.js +1 -1
  421. package/es/tasty/utils/string.js +1 -1
  422. package/es/tasty/utils/styles.js +1 -1
  423. package/es/tasty/utils/warnings.js +1 -1
  424. package/es/tokens.js +1 -1
  425. package/es/type-checks.js +1 -1
  426. package/es/utils/ResizeSensor.js +1 -1
  427. package/es/utils/modules.js +1 -1
  428. package/es/utils/promise.js +1 -1
  429. package/es/utils/random.js +1 -1
  430. package/es/utils/range.js +1 -1
  431. package/es/utils/react/Slots.js +1 -1
  432. package/es/utils/react/chain.js +1 -1
  433. package/es/utils/react/index.js +1 -1
  434. package/es/utils/react/interactions.js +1 -1
  435. package/es/utils/react/isTextOnly.js +1 -1
  436. package/es/utils/react/mapProps.js +1 -1
  437. package/es/utils/react/mergeProps.js +1 -1
  438. package/es/utils/react/nullableValue.js +1 -1
  439. package/es/utils/react/useCombinedRefs.js +1 -1
  440. package/es/utils/react/useId.js +1 -1
  441. package/es/utils/react/useLayoutEffect.js +1 -1
  442. package/es/utils/react/useQaProps.js +1 -1
  443. package/es/utils/react/useViewportSize.js +1 -1
  444. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  445. package/es/utils/transitions.js +1 -1
  446. package/es/utils/tree.js +1 -1
  447. package/es/utils/warnings.js +1 -1
  448. package/es/version.js +2 -2
  449. package/package.json +1 -1
  450. package/types/components/fields/ListBox/ListBox.d.ts +4 -4
@@ -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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,22 +1,20 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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 { cloneElement, forwardRef, isValidElement, useEffect, useMemo, useRef, useState, } from 'react';
9
+ import { Children, cloneElement, forwardRef, isValidElement, useEffect, useMemo, useRef, useState, } from 'react';
10
10
  import { useFilter, useListBox, useListBoxSection, useOption, } from 'react-aria';
11
11
  import { Section as BaseSection, Item, useListState } from 'react-stately';
12
- import { SearchIcon } from '../../../icons';
12
+ import { LoadingIcon, SearchIcon } from '../../../icons';
13
13
  import { useProviderProps } from '../../../provider';
14
14
  import { BASE_STYLES, COLOR_STYLES, extractStyles, OUTER_STYLES, tasty, } from '../../../tasty';
15
15
  import { mergeProps, modAttrs, useCombinedRefs } from '../../../utils/react';
16
16
  import { useFocus } from '../../../utils/react/interactions';
17
17
  import { useFieldProps, useFormProps, wrapWithField } from '../../form';
18
- import { InvalidIcon } from '../../shared/InvalidIcon';
19
- import { ValidIcon } from '../../shared/ValidIcon';
20
18
  import { DEFAULT_INPUT_STYLES, INPUT_WRAPPER_STYLES, } from '../TextInput/TextInputBase';
21
19
  const ListBoxWrapperElement = tasty({
22
20
  styles: {
@@ -85,11 +83,15 @@ const OptionElement = tasty({
85
83
  '': '#dark-02',
86
84
  selected: '#dark',
87
85
  disabled: '#dark-04',
86
+ valid: '#success-text',
87
+ invalid: '#danger-text',
88
88
  },
89
89
  fill: {
90
90
  '': '#clear',
91
91
  focused: '#dark.03',
92
92
  selected: '#dark.06',
93
+ valid: '#success-bg',
94
+ invalid: '#danger-bg',
93
95
  disabled: '#clear',
94
96
  },
95
97
  Label: {
@@ -143,28 +145,39 @@ export const ListBox = forwardRef(function ListBox(props, ref) {
143
145
  props = useFormProps(props);
144
146
  props = useFieldProps(props, {
145
147
  valuePropsMapper: ({ value, onChange }) => {
146
- return {
147
- selectedKey: value ?? null,
148
- onSelectionChange: (key) => {
149
- // React Aria always passes a Set for selection changes
150
- // For single selection mode, we extract the first (and only) key
148
+ const fieldProps = {};
149
+ if (props.selectionMode === 'multiple') {
150
+ fieldProps.selectedKeys = Array.isArray(value)
151
+ ? value
152
+ : value
153
+ ? [value]
154
+ : [];
155
+ }
156
+ else {
157
+ fieldProps.selectedKey = value ?? null;
158
+ }
159
+ fieldProps.onSelectionChange = (key) => {
160
+ if (props.selectionMode === 'multiple') {
161
+ if (Array.isArray(key)) {
162
+ onChange(key);
163
+ }
164
+ else if (key instanceof Set) {
165
+ onChange(Array.from(key));
166
+ }
167
+ else {
168
+ onChange(key ? [key] : []);
169
+ }
170
+ }
171
+ else {
151
172
  if (key instanceof Set) {
152
- if (key.size === 0) {
153
- onChange(null);
154
- }
155
- else if (props.selectionMode === 'multiple') {
156
- onChange(key); // Return the Set for multiple selection
157
- }
158
- else {
159
- // Single selection - extract the first key
160
- onChange(Array.from(key)[0]);
161
- }
173
+ onChange(key.size === 0 ? null : Array.from(key)[0]);
162
174
  }
163
175
  else {
164
176
  onChange(key);
165
177
  }
166
- },
178
+ }
167
179
  };
180
+ return fieldProps;
168
181
  },
169
182
  });
170
183
  let { qa, label, extra, labelStyles, isRequired, necessityIndicator, validationState, isDisabled, isLoading, isSearchable = false, searchPlaceholder = 'Search...', filter, searchInputStyles, listStyles, optionStyles, sectionStyles, headingStyles, searchInputRef, listRef, message, description, styles, labelSuffix, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, onSelectionChange, ...otherProps } = props;
@@ -176,60 +189,48 @@ export const ListBox = forwardRef(function ListBox(props, ref) {
176
189
  return props.children;
177
190
  }
178
191
  const filterFn = filter || contains;
179
- // Filter React children elements
192
+ // Returns `true` if the given element's text value matches the search.
180
193
  const filterChild = (child) => {
181
- if (!child || typeof child !== 'object')
194
+ if (!isValidElement(child))
182
195
  return false;
183
- // Handle regular items
184
- const textValue = child.props?.children?.toString() || child.key?.toString() || '';
185
- return filterFn(textValue, searchValue);
196
+ const { textValue, children } = child.props;
197
+ // Prefer an explicit textValue prop (React Aria's Item), then children, then key.
198
+ let candidate = '';
199
+ if (typeof textValue === 'string') {
200
+ candidate = textValue;
201
+ }
202
+ else if (typeof children === 'string') {
203
+ candidate = children;
204
+ }
205
+ else if (Array.isArray(children)) {
206
+ candidate = children.join(' ');
207
+ }
208
+ else if (child.key != null) {
209
+ candidate = String(child.key);
210
+ }
211
+ return filterFn(candidate, searchValue);
186
212
  };
213
+ // Filters a Section element and returns a cloned element with only the matching children.
187
214
  const filterSection = (section) => {
188
- if (!section || typeof section !== 'object')
189
- return null;
190
- const sectionChildren = section.props?.children;
191
- if (!sectionChildren)
215
+ if (!isValidElement(section))
192
216
  return null;
193
- let filteredSectionChildren;
194
- if (Array.isArray(sectionChildren)) {
195
- filteredSectionChildren = sectionChildren.filter(filterChild);
196
- }
197
- else {
198
- filteredSectionChildren = filterChild(sectionChildren)
199
- ? [sectionChildren]
200
- : [];
201
- }
202
- // Only return the section if it has matching children
217
+ const childrenArray = Children.toArray(section.props.children);
218
+ const filteredSectionChildren = childrenArray.filter(filterChild);
203
219
  if (filteredSectionChildren.length === 0)
204
220
  return null;
205
- // Clone the section with filtered children
206
- return {
207
- ...section,
208
- props: {
209
- ...section.props,
210
- children: filteredSectionChildren,
211
- },
212
- };
221
+ return cloneElement(section, { children: filteredSectionChildren });
213
222
  };
214
- if (Array.isArray(props.children)) {
215
- return props.children
216
- .map((child) => {
217
- // Handle sections
218
- if (isValidElement(child) &&
219
- (child.type === BaseSection || child.props?.title)) {
220
- return filterSection(child);
221
- }
222
- // Handle regular items
223
- return filterChild(child) ? child : null;
224
- })
225
- .filter(Boolean);
226
- }
227
- // Single child case
228
- if (isValidElement(props.children) &&
229
- (props.children.type === BaseSection || props.children.props?.title)) {
230
- return filterSection(props.children);
231
- }
232
- return filterChild(props.children) ? props.children : null;
223
+ const childrenArray = Children.toArray(props.children);
224
+ const result = childrenArray
225
+ .map((child) => {
226
+ if (isValidElement(child) &&
227
+ (child.type === BaseSection || child.props?.title)) {
228
+ return filterSection(child);
229
+ }
230
+ return filterChild(child) ? child : null;
231
+ })
232
+ .filter(Boolean);
233
+ return result.length === 0 ? null : result;
233
234
  }, [isSearchable, searchValue, props.children, filter, contains]);
234
235
  // Create filtered items based on search
235
236
  const filteredItems = useMemo(() => {
@@ -261,13 +262,12 @@ export const ListBox = forwardRef(function ListBox(props, ref) {
261
262
  // For single selection mode, we extract the first (and only) key
262
263
  if (keys instanceof Set) {
263
264
  if (keys.size === 0) {
264
- externalSelectionHandler(null);
265
+ externalSelectionHandler(props.selectionMode === 'multiple' ? [] : null);
265
266
  }
266
267
  else if (props.selectionMode === 'multiple') {
267
- externalSelectionHandler(keys); // Return the Set for multiple selection
268
+ externalSelectionHandler(Array.from(keys));
268
269
  }
269
270
  else {
270
- // Single selection - extract the first key
271
271
  externalSelectionHandler(Array.from(keys)[0]);
272
272
  }
273
273
  }
@@ -288,10 +288,14 @@ export const ListBox = forwardRef(function ListBox(props, ref) {
288
288
  // Set selection props based on mode
289
289
  if (listStateProps.selectionMode === 'multiple') {
290
290
  if (selectedKeys !== undefined) {
291
- listStateProps.selectedKeys = selectedKeys;
291
+ listStateProps.selectedKeys =
292
+ selectedKeys === 'all' ? 'all' : new Set(selectedKeys);
292
293
  }
293
294
  if (defaultSelectedKeys !== undefined) {
294
- listStateProps.defaultSelectedKeys = defaultSelectedKeys;
295
+ listStateProps.defaultSelectedKeys =
296
+ defaultSelectedKeys === 'all'
297
+ ? 'all'
298
+ : new Set(defaultSelectedKeys);
295
299
  }
296
300
  // Remove single-selection props if any
297
301
  delete listStateProps.selectedKey;
@@ -302,11 +306,14 @@ export const ListBox = forwardRef(function ListBox(props, ref) {
302
306
  listStateProps.selectedKey = selectedKey;
303
307
  }
304
308
  if (defaultSelectedKey !== undefined) {
305
- listStateProps.defaultSelectedKey = defaultSelectedKey;
309
+ // useListState expects a Set for uncontrolled selections, even in single-selection mode
310
+ // so convert the provided key into a Set. Passing an empty Set means no default selection.
311
+ listStateProps.defaultSelectedKeys =
312
+ defaultSelectedKey == null ? new Set() : new Set([defaultSelectedKey]);
306
313
  }
307
314
  // Remove set-based props if any
308
315
  delete listStateProps.selectedKeys;
309
- delete listStateProps.defaultSelectedKeys;
316
+ delete listStateProps.defaultSelectedKey;
310
317
  }
311
318
  const listState = useListState(listStateProps);
312
319
  // Manually sync controlled selection if needed
@@ -333,11 +340,11 @@ export const ListBox = forwardRef(function ListBox(props, ref) {
333
340
  ...props,
334
341
  'aria-label': props['aria-label'] || label?.toString(),
335
342
  isDisabled,
343
+ shouldUseVirtualFocus: isSearchable,
344
+ shouldFocusWrap: true,
336
345
  }, listState, listRef);
337
346
  const { isFocused, focusProps } = useFocus({ isDisabled });
338
347
  const isInvalid = validationState === 'invalid';
339
- const validationIcon = isInvalid ? InvalidIcon : ValidIcon;
340
- const validation = cloneElement(validationIcon);
341
348
  const mods = useMemo(() => ({
342
349
  invalid: isInvalid,
343
350
  valid: validationState === 'valid',
@@ -353,7 +360,43 @@ export const ListBox = forwardRef(function ListBox(props, ref) {
353
360
  isLoading,
354
361
  isSearchable,
355
362
  ]);
356
- const searchInput = isSearchable ? (_jsxs(SearchWrapperElement, { mods: mods, "data-size": "small", children: [_jsx(SearchInputElement, { ref: searchInputRef, "data-is-prefix": true, type: "search", placeholder: searchPlaceholder, value: searchValue, disabled: isDisabled, styles: searchInputStyles, "data-size": "small", onChange: (e) => setSearchValue(e.target.value), ...modAttrs(mods) }), _jsx("div", { "data-element": "Prefix", children: _jsx("div", { "data-element": "InputIcon", children: _jsx(SearchIcon, {}) }) })] })) : null;
363
+ const searchInput = isSearchable ? (_jsxs(SearchWrapperElement, { mods: mods, "data-size": "small", children: [_jsx(SearchInputElement, { ref: searchInputRef, "data-is-prefix": true, type: "search", placeholder: searchPlaceholder, value: searchValue, disabled: isDisabled, styles: searchInputStyles, "data-size": "small", "aria-controls": listBoxProps.id, "aria-activedescendant": listState.selectionManager.focusedKey != null
364
+ ? `${listBoxProps.id}-option-${listState.selectionManager.focusedKey}`
365
+ : undefined, onChange: (e) => setSearchValue(e.target.value), onKeyDown: (e) => {
366
+ if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {
367
+ e.preventDefault();
368
+ const keyGetter = e.key === 'ArrowDown'
369
+ ? listState.collection.getKeyAfter.bind(listState.collection)
370
+ : listState.collection.getKeyBefore.bind(listState.collection);
371
+ const firstKey = e.key === 'ArrowDown'
372
+ ? listState.collection.getFirstKey()
373
+ : listState.collection.getLastKey();
374
+ let nextKey;
375
+ const currentKey = listState.selectionManager.focusedKey;
376
+ if (currentKey == null) {
377
+ nextKey = firstKey;
378
+ }
379
+ else {
380
+ nextKey = keyGetter(currentKey) ?? firstKey;
381
+ }
382
+ if (nextKey != null) {
383
+ listState.selectionManager.setFocusedKey(nextKey);
384
+ }
385
+ }
386
+ else if (e.key === 'Enter' ||
387
+ (e.key === ' ' && props.selectionMode === 'multiple')) {
388
+ const focusedKey = listState.selectionManager.focusedKey;
389
+ if (focusedKey != null) {
390
+ e.preventDefault();
391
+ if (props.selectionMode === 'multiple') {
392
+ listState.selectionManager.toggleSelection(focusedKey);
393
+ }
394
+ else {
395
+ listState.selectionManager.select(focusedKey);
396
+ }
397
+ }
398
+ }
399
+ }, ...modAttrs(mods) }), _jsx("div", { "data-element": "Prefix", children: _jsx("div", { "data-element": "InputIcon", children: isLoading ? _jsx(LoadingIcon, {}) : _jsx(SearchIcon, {}) }) })] })) : null;
357
400
  const listBoxField = (_jsxs(ListBoxWrapperElement, { ref: ref, qa: qa || 'ListBox', ...modAttrs(mods), styles: styles, ...focusProps, children: [searchInput, _jsx(ListElement, { ...listBoxProps, ref: listRef, styles: listStyles, "aria-disabled": isDisabled || undefined, children: (() => {
358
401
  const renderedItems = [];
359
402
  let isFirstSection = true;
@@ -362,39 +405,40 @@ export const ListBox = forwardRef(function ListBox(props, ref) {
362
405
  if (!isFirstSection) {
363
406
  renderedItems.push(_jsx(DividerElement, { role: "separator", "aria-orientation": "horizontal" }, `divider-${String(item.key)}`));
364
407
  }
365
- renderedItems.push(_jsx(ListBoxSection, { item: item, state: listState, optionStyles: optionStyles, headingStyles: headingStyles, sectionStyles: sectionStyles, isParentDisabled: isDisabled }, item.key));
408
+ renderedItems.push(_jsx(ListBoxSection, { item: item, state: listState, optionStyles: optionStyles, headingStyles: headingStyles, sectionStyles: sectionStyles, isParentDisabled: isDisabled, validationState: validationState }, item.key));
366
409
  isFirstSection = false;
367
410
  }
368
411
  else {
369
- renderedItems.push(_jsx(Option, { item: item, state: listState, styles: optionStyles, isParentDisabled: isDisabled }, item.key));
412
+ renderedItems.push(_jsx(Option, { item: item, state: listState, styles: optionStyles, isParentDisabled: isDisabled, validationState: validationState }, item.key));
370
413
  }
371
414
  }
372
415
  return renderedItems;
373
- })() }), (validationState && !isLoading) || isLoading ? (_jsxs("div", { "data-element": "ValidationState", style: { position: 'absolute', top: '1x', right: '1x' }, children: [validationState && !isLoading ? validation : null, isLoading && _jsx("div", { children: "Loading..." })] })) : null] }));
416
+ })() })] }));
374
417
  return wrapWithField(listBoxField, ref, mergeProps({ ...props, styles: undefined }, {}));
375
418
  });
376
- function Option({ item, state, styles, isParentDisabled }) {
419
+ function Option({ item, state, styles, isParentDisabled, validationState }) {
377
420
  const ref = useRef(null);
378
421
  const isDisabled = isParentDisabled || state.disabledKeys.has(item.key);
379
422
  const isSelected = state.selectionManager.isSelected(item.key);
380
- const { optionProps, isPressed } = useOption({
423
+ const { optionProps, isPressed, isFocused: optionFocused, } = useOption({
381
424
  key: item.key,
382
425
  isDisabled,
383
426
  isSelected,
384
427
  shouldSelectOnPressUp: true,
385
428
  shouldFocusOnHover: true,
386
429
  }, state, ref);
387
- const { isFocused, focusProps } = useFocus({ isDisabled });
388
430
  const description = item?.props?.description;
389
- return (_jsxs(OptionElement, { ...mergeProps(optionProps, focusProps), ref: ref, mods: {
431
+ return (_jsxs(OptionElement, { ...optionProps, ref: ref, mods: {
390
432
  selected: isSelected,
391
- focused: isFocused,
433
+ focused: optionFocused,
392
434
  disabled: isDisabled,
393
435
  pressed: isPressed,
436
+ valid: isSelected && validationState === 'valid',
437
+ invalid: isSelected && validationState === 'invalid',
394
438
  }, styles: styles, children: [_jsx("div", { "data-element": "Label", children: item.rendered }), description ? _jsx("div", { "data-element": "Description", children: description }) : null] }));
395
439
  }
396
440
  function ListBoxSection(props) {
397
- const { item, state, optionStyles, headingStyles, sectionStyles, isParentDisabled, } = props;
441
+ const { item, state, optionStyles, headingStyles, sectionStyles, isParentDisabled, validationState, } = props;
398
442
  const heading = item.rendered;
399
443
  const { itemProps, headingProps, groupProps } = useListBoxSection({
400
444
  heading,
@@ -402,7 +446,7 @@ function ListBoxSection(props) {
402
446
  });
403
447
  return (_jsxs(SectionWrapperElement, { ...itemProps, styles: sectionStyles, children: [heading && (_jsx(SectionHeadingElement, { ...headingProps, styles: headingStyles, children: heading })), _jsx(SectionListElement, { ...groupProps, children: [...item.childNodes]
404
448
  .filter((node) => state.collection.getItem(node.key))
405
- .map((node) => (_jsx(Option, { item: node, state: state, styles: optionStyles, isParentDisabled: isParentDisabled }, node.key))) })] }));
449
+ .map((node) => (_jsx(Option, { item: node, state: state, styles: optionStyles, isParentDisabled: isParentDisabled, validationState: validationState }, node.key))) })] }));
406
450
  }
407
451
  const ListBoxSectionComponent = Object.assign(BaseSection, {
408
452
  displayName: 'Section',
@@ -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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
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-9f366f2
4
+ * @cube-dev/ui-kit v0.0.0-canary-a7f959a
5
5
  * Released under the MIT license.
6
6
  */
7
7