@cube-dev/ui-kit 0.91.0 → 0.92.1

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 (517) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/es/_internal/hooks/index.js +1 -1
  3. package/es/_internal/hooks/use-chained-callback.js +1 -1
  4. package/es/_internal/hooks/use-debounced-value.js +1 -1
  5. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/es/_internal/hooks/use-effect-once.js +1 -1
  7. package/es/_internal/hooks/use-event.js +1 -1
  8. package/es/_internal/hooks/use-is-first-render.js +1 -1
  9. package/es/_internal/hooks/use-sync-ref.js +1 -1
  10. package/es/_internal/hooks/use-timer/index.js +1 -1
  11. package/es/_internal/hooks/use-timer/timer.js +1 -1
  12. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  13. package/es/_internal/hooks/use-update-effect.js +1 -1
  14. package/es/_internal/hooks/use-warn.js +1 -1
  15. package/es/_internal/index.js +1 -1
  16. package/es/components/Block.js +1 -1
  17. package/es/components/CollectionItem.js +1 -1
  18. package/es/components/GlobalStyles.js +1 -1
  19. package/es/components/GridProvider.js +1 -1
  20. package/es/components/HiddenInput.js +1 -1
  21. package/es/components/OpenTrasition.js +1 -1
  22. package/es/components/Root.js +1 -1
  23. package/es/components/actions/Action/Action.js +1 -1
  24. package/es/components/actions/Button/Button.js +1 -1
  25. package/es/components/actions/Button/index.js +1 -1
  26. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  27. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/es/components/actions/CommandMenu/index.js +1 -1
  29. package/es/components/actions/CommandMenu/styled.js +1 -1
  30. package/es/components/actions/ItemAction/ItemAction.js +1 -1
  31. package/es/components/actions/ItemAction/index.js +1 -1
  32. package/es/components/actions/ItemActionContext.js +1 -1
  33. package/es/components/actions/ItemButton/ItemButton.js +1 -1
  34. package/es/components/actions/ItemButton/index.js +1 -1
  35. package/es/components/actions/Link/Link.js +1 -1
  36. package/es/components/actions/Menu/Menu.js +1 -1
  37. package/es/components/actions/Menu/MenuItem.js +1 -1
  38. package/es/components/actions/Menu/MenuSection.js +1 -1
  39. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  40. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  41. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  42. package/es/components/actions/Menu/context.js +1 -1
  43. package/es/components/actions/Menu/index.js +1 -1
  44. package/es/components/actions/Menu/styled.js +1 -1
  45. package/es/components/actions/index.js +1 -1
  46. package/es/components/actions/use-action.js +1 -1
  47. package/es/components/actions/use-anchored-menu.js +1 -1
  48. package/es/components/actions/use-context-menu.js +1 -1
  49. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  50. package/es/components/content/Alert/Alert.js +1 -1
  51. package/es/components/content/Alert/index.js +1 -1
  52. package/es/components/content/Alert/types.js +1 -1
  53. package/es/components/content/Alert/use-alert.js +1 -1
  54. package/es/components/content/Avatar/Avatar.js +1 -1
  55. package/es/components/content/Badge/Badge.js +1 -1
  56. package/es/components/content/Card/Card.js +1 -1
  57. package/es/components/content/Content.js +1 -1
  58. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  59. package/es/components/content/CopyPasteBlock/index.js +1 -1
  60. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  61. package/es/components/content/CopySnippet/index.js +1 -1
  62. package/es/components/content/Divider.js +1 -1
  63. package/es/components/content/Footer.js +1 -1
  64. package/es/components/content/Header.js +1 -1
  65. package/es/components/content/HotKeys/HotKeys.js +1 -1
  66. package/es/components/content/HotKeys/index.js +1 -1
  67. package/es/components/content/Item/Item.js +9 -37
  68. package/es/components/content/Item/index.js +1 -1
  69. package/es/components/content/ItemBadge/ItemBadge.js +1 -1
  70. package/es/components/content/ItemBadge/index.js +1 -1
  71. package/es/components/content/List/SectionHeading.js +1 -1
  72. package/es/components/content/List/index.js +1 -1
  73. package/es/components/content/Paragraph.js +1 -1
  74. package/es/components/content/Placeholder/Placeholder.js +1 -1
  75. package/es/components/content/PrismCode/PrismCode.js +1 -1
  76. package/es/components/content/PrismCode/prismSetup.js +1 -1
  77. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  78. package/es/components/content/Result/Result.js +1 -1
  79. package/es/components/content/Skeleton/Skeleton.js +1 -1
  80. package/es/components/content/Tag/Tag.js +1 -1
  81. package/es/components/content/Text.js +2 -2
  82. package/es/components/content/Title.js +1 -1
  83. package/es/components/fields/Checkbox/Checkbox.js +2 -2
  84. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  85. package/es/components/fields/Checkbox/context.js +1 -1
  86. package/es/components/fields/Checkbox/index.js +1 -1
  87. package/es/components/fields/ComboBox/ComboBox.js +11 -8
  88. package/es/components/fields/ComboBox/index.js +1 -1
  89. package/es/components/fields/DatePicker/DateInput.js +3 -3
  90. package/es/components/fields/DatePicker/DateInputBase.js +3 -3
  91. package/es/components/fields/DatePicker/DatePicker.js +3 -3
  92. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  93. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  94. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  95. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  96. package/es/components/fields/DatePicker/DateRangePicker.js +3 -3
  97. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +3 -3
  98. package/es/components/fields/DatePicker/TimeInput.js +5 -4
  99. package/es/components/fields/DatePicker/index.js +1 -1
  100. package/es/components/fields/DatePicker/intl.js +1 -1
  101. package/es/components/fields/DatePicker/parseDate.js +1 -1
  102. package/es/components/fields/DatePicker/props.js +1 -1
  103. package/es/components/fields/DatePicker/types.js +1 -1
  104. package/es/components/fields/DatePicker/utils.js +1 -1
  105. package/es/components/fields/FileInput/FileInput.js +2 -2
  106. package/es/components/fields/FilterListBox/FilterListBox.js +48 -5
  107. package/es/components/fields/FilterListBox/index.js +1 -1
  108. package/es/components/fields/FilterPicker/FilterPicker.js +14 -9
  109. package/es/components/fields/FilterPicker/index.js +1 -1
  110. package/es/components/fields/Input/Input.js +2 -6
  111. package/es/components/fields/Input/index.js +1 -1
  112. package/es/components/fields/ListBox/ListBox.js +2 -2
  113. package/es/components/fields/ListBox/index.js +1 -1
  114. package/es/components/fields/NumberInput/NumberInput.js +6 -3
  115. package/es/components/fields/NumberInput/StepButton.js +1 -1
  116. package/es/components/fields/PasswordInput/PasswordInput.js +8 -5
  117. package/es/components/fields/Picker/Picker.js +16 -11
  118. package/es/components/fields/Picker/index.js +1 -1
  119. package/es/components/fields/RadioGroup/Radio.js +3 -4
  120. package/es/components/fields/RadioGroup/RadioGroup.js +3 -3
  121. package/es/components/fields/RadioGroup/context.js +1 -1
  122. package/es/components/fields/RadioGroup/index.js +1 -1
  123. package/es/components/fields/SearchInput/SearchInput.js +9 -6
  124. package/es/components/fields/SearchInput/index.js +1 -1
  125. package/es/components/fields/Select/Select.js +10 -16
  126. package/es/components/fields/Select/index.js +1 -1
  127. package/es/components/fields/Slider/Gradation.js +1 -1
  128. package/es/components/fields/Slider/Header.js +1 -1
  129. package/es/components/fields/Slider/RangeSlider.js +1 -1
  130. package/es/components/fields/Slider/Slider.js +1 -1
  131. package/es/components/fields/Slider/SliderBase.js +5 -5
  132. package/es/components/fields/Slider/SliderInput.js +1 -1
  133. package/es/components/fields/Slider/SliderThumb.js +1 -1
  134. package/es/components/fields/Slider/SliderTrack.js +1 -1
  135. package/es/components/fields/Slider/elements.js +1 -1
  136. package/es/components/fields/Slider/index.js +1 -1
  137. package/es/components/fields/Slider/types.js +1 -1
  138. package/es/components/fields/Switch/Switch.js +2 -2
  139. package/es/components/fields/Switch/index.js +1 -1
  140. package/es/components/fields/TextArea/TextArea.js +11 -6
  141. package/es/components/fields/TextArea/index.js +1 -1
  142. package/es/components/fields/TextInput/TextInput.js +8 -4
  143. package/es/components/fields/TextInput/TextInputBase.js +2 -2
  144. package/es/components/fields/TextInput/index.js +1 -1
  145. package/es/components/fields/TextInputMapper/TextInputMapper.js +3 -3
  146. package/es/components/fields/TextInputMapper/index.js +1 -1
  147. package/es/components/fields/index.js +1 -1
  148. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  149. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  150. package/es/components/form/FieldWrapper/index.js +1 -1
  151. package/es/components/form/FieldWrapper/types.js +1 -1
  152. package/es/components/form/Form/Field.js +1 -1
  153. package/es/components/form/Form/Form.js +1 -1
  154. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  155. package/es/components/form/Form/ResetButton/index.js +1 -1
  156. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  157. package/es/components/form/Form/SubmitButton/index.js +1 -1
  158. package/es/components/form/Form/SubmitError.js +1 -1
  159. package/es/components/form/Form/index.js +1 -1
  160. package/es/components/form/Form/types.js +1 -1
  161. package/es/components/form/Form/use-field/index.js +1 -1
  162. package/es/components/form/Form/use-field/types.js +1 -1
  163. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  164. package/es/components/form/Form/use-field/use-field.js +1 -1
  165. package/es/components/form/Form/use-form.js +1 -1
  166. package/es/components/form/Form/validation.js +1 -1
  167. package/es/components/form/Label.js +1 -1
  168. package/es/components/form/index.js +1 -1
  169. package/es/components/form/wrapper.js +1 -1
  170. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  171. package/es/components/helpers/index.js +1 -1
  172. package/es/components/layout/Flex.js +1 -1
  173. package/es/components/layout/Flow.js +1 -1
  174. package/es/components/layout/Grid.js +1 -1
  175. package/es/components/layout/Panel.js +1 -1
  176. package/es/components/layout/Prefix.js +1 -1
  177. package/es/components/layout/ResizablePanel.js +1 -1
  178. package/es/components/layout/Space.js +1 -1
  179. package/es/components/layout/Suffix.js +1 -1
  180. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  181. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  182. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  183. package/es/components/other/Base64Upload/Base64Upload.js +1 -1
  184. package/es/components/other/Calendar/Calendar.js +1 -1
  185. package/es/components/other/Calendar/CalendarCell.js +1 -1
  186. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  187. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  188. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  189. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  190. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  191. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  192. package/es/components/overlays/AlertDialog/index.js +1 -1
  193. package/es/components/overlays/AlertDialog/types.js +1 -1
  194. package/es/components/overlays/Dialog/Dialog.js +1 -1
  195. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  196. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  197. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  198. package/es/components/overlays/Dialog/context.js +1 -1
  199. package/es/components/overlays/Dialog/index.js +1 -1
  200. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  201. package/es/components/overlays/Modal/Modal.js +2 -2
  202. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  203. package/es/components/overlays/Modal/Overlay.js +1 -1
  204. package/es/components/overlays/Modal/Popover.js +1 -1
  205. package/es/components/overlays/Modal/Tray.js +2 -2
  206. package/es/components/overlays/Modal/Underlay.js +1 -1
  207. package/es/components/overlays/Modal/index.js +1 -1
  208. package/es/components/overlays/Modal/types.js +1 -1
  209. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  210. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  211. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  212. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  213. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  214. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  215. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  216. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  217. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  218. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  219. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  220. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  221. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  222. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  223. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  224. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  225. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  226. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  227. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  228. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  229. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  230. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  231. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  232. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  233. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  234. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  235. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  236. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  237. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  238. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  239. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  240. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  241. package/es/components/overlays/NewNotifications/index.js +1 -1
  242. package/es/components/overlays/NewNotifications/types.js +1 -1
  243. package/es/components/overlays/Notification/Notification.js +1 -1
  244. package/es/components/overlays/OverlayWrapper.js +1 -1
  245. package/es/components/overlays/Toasts/Toast.js +1 -1
  246. package/es/components/overlays/Toasts/index.js +1 -1
  247. package/es/components/overlays/Toasts/types.js +1 -1
  248. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  249. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  250. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  251. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  252. package/es/components/overlays/Tooltip/context.js +1 -1
  253. package/es/components/overlays/Tooltip/index.js +1 -1
  254. package/es/components/portal/Portal.js +1 -1
  255. package/es/components/portal/PortalProvider.js +1 -1
  256. package/es/components/portal/index.js +1 -1
  257. package/es/components/portal/types.js +1 -1
  258. package/es/components/portal/usePortal.js +1 -1
  259. package/es/components/shared/InvalidIcon.js +1 -1
  260. package/es/components/shared/ValidIcon.js +1 -1
  261. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  262. package/es/components/status/LoadingAnimation/index.js +1 -1
  263. package/es/components/status/Spin/Cube.js +1 -1
  264. package/es/components/status/Spin/InternalSpinner.js +1 -1
  265. package/es/components/status/Spin/Spin.js +1 -1
  266. package/es/components/status/Spin/SpinsContainer.js +1 -1
  267. package/es/components/status/Spin/index.js +1 -1
  268. package/es/components/status/Spin/types.js +1 -1
  269. package/es/components/status/index.js +1 -1
  270. package/es/data/item-themes.js +1 -1
  271. package/es/data/themes.js +1 -1
  272. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  273. package/es/icons/AdjustmentsIcon.js +1 -1
  274. package/es/icons/AiIcon.js +1 -1
  275. package/es/icons/AreaChartIcon.js +1 -1
  276. package/es/icons/BackwardIcon.js +1 -1
  277. package/es/icons/BarChartIcon.js +1 -1
  278. package/es/icons/BellFilledIcon.js +1 -1
  279. package/es/icons/BellIcon.js +1 -1
  280. package/es/icons/BooleanIcon.js +1 -1
  281. package/es/icons/CalendarEditIcon.js +1 -1
  282. package/es/icons/CalendarIcon.js +1 -1
  283. package/es/icons/CaretDownIcon.js +1 -1
  284. package/es/icons/CaretUpIcon.js +1 -1
  285. package/es/icons/ChartAreaStackedIcon.js +1 -1
  286. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  287. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  288. package/es/icons/ChartBarGroupedIcon.js +1 -1
  289. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  290. package/es/icons/ChartBarLineIcon.js +1 -1
  291. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  292. package/es/icons/ChartBarStackedIcon.js +1 -1
  293. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  294. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  295. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  296. package/es/icons/ChartBoxPlotIcon.js +1 -1
  297. package/es/icons/ChartBubbleIcon.js +1 -1
  298. package/es/icons/ChartDonut2Icon.js +1 -1
  299. package/es/icons/ChartFunnelIcon.js +1 -1
  300. package/es/icons/ChartHeatmapIcon.js +1 -1
  301. package/es/icons/ChartKPIIcon.js +1 -1
  302. package/es/icons/ChartPie2Icon.js +1 -1
  303. package/es/icons/ChartScatterIcon.js +1 -1
  304. package/es/icons/CheckCircleFilledIcon.js +1 -1
  305. package/es/icons/CheckCircleIcon.js +1 -1
  306. package/es/icons/CheckIcon.js +1 -1
  307. package/es/icons/CircleFilledIcon.js +1 -1
  308. package/es/icons/ClearIcon.js +1 -1
  309. package/es/icons/CloseCircleFilledIcon.js +1 -1
  310. package/es/icons/CloseCircleIcon.js +1 -1
  311. package/es/icons/CloseIcon.js +1 -1
  312. package/es/icons/CodeIcon.js +1 -1
  313. package/es/icons/CopyIcon.js +1 -1
  314. package/es/icons/CountIcon.js +1 -1
  315. package/es/icons/CubeIcon.js +1 -1
  316. package/es/icons/CubePauseIcon.js +1 -1
  317. package/es/icons/CubePlayIcon.js +1 -1
  318. package/es/icons/CurrencyDollarIcon.js +1 -1
  319. package/es/icons/DangerIcon.js +1 -1
  320. package/es/icons/DashboardIcon.js +1 -1
  321. package/es/icons/DatabaseIcon.js +1 -1
  322. package/es/icons/DecimalDecreaseIcon.js +1 -1
  323. package/es/icons/DecimalIncreaseIcon.js +1 -1
  324. package/es/icons/DirectionIcon.js +1 -1
  325. package/es/icons/DonutIcon.js +1 -1
  326. package/es/icons/DownIcon.js +1 -1
  327. package/es/icons/EditIcon.js +1 -1
  328. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  329. package/es/icons/ExclamationCircleIcon.js +1 -1
  330. package/es/icons/ExclamationIcon.js +1 -1
  331. package/es/icons/EyeIcon.js +1 -1
  332. package/es/icons/EyeInvisibleIcon.js +1 -1
  333. package/es/icons/FilterIcon.js +1 -1
  334. package/es/icons/FolderFilledIcon.js +1 -1
  335. package/es/icons/FolderIcon.js +1 -1
  336. package/es/icons/FolderOpenFilledIcon.js +1 -1
  337. package/es/icons/FolderOpenIcon.js +1 -1
  338. package/es/icons/ForwardIcon.js +1 -1
  339. package/es/icons/HierarchyIcon.js +1 -1
  340. package/es/icons/HierarchyOpenIcon.js +1 -1
  341. package/es/icons/Icon.js +1 -1
  342. package/es/icons/InfoCircleIcon.js +1 -1
  343. package/es/icons/InfoIcon.js +1 -1
  344. package/es/icons/KeyIcon.js +1 -1
  345. package/es/icons/LeftIcon.js +1 -1
  346. package/es/icons/LineChartIcon.js +1 -1
  347. package/es/icons/LoadingIcon.js +1 -1
  348. package/es/icons/LockFilledIcon.js +1 -1
  349. package/es/icons/LockIcon.js +1 -1
  350. package/es/icons/MoreIcon.js +1 -1
  351. package/es/icons/NotAllowedIcon.js +1 -1
  352. package/es/icons/Number123Icon.js +1 -1
  353. package/es/icons/NumberIcon.js +1 -1
  354. package/es/icons/PauseCircleFilledIcon.js +1 -1
  355. package/es/icons/PauseCircleIcon.js +1 -1
  356. package/es/icons/PauseIcon.js +1 -1
  357. package/es/icons/PercentageIcon.js +1 -1
  358. package/es/icons/PieChartIcon.js +1 -1
  359. package/es/icons/PlayCircleIcon.js +1 -1
  360. package/es/icons/PlayIcon.js +1 -1
  361. package/es/icons/PlusIcon.js +1 -1
  362. package/es/icons/ProgressBarIcon.js +1 -1
  363. package/es/icons/ReloadIcon.js +1 -1
  364. package/es/icons/ReportIcon.js +1 -1
  365. package/es/icons/ReturnIcon.js +1 -1
  366. package/es/icons/RightIcon.js +1 -1
  367. package/es/icons/SchemeIcon.js +1 -1
  368. package/es/icons/SearchIcon.js +1 -1
  369. package/es/icons/SettingsIcon.js +1 -1
  370. package/es/icons/ShieldFilledIcon.js +1 -1
  371. package/es/icons/ShieldIcon.js +1 -1
  372. package/es/icons/SlashIcon.js +1 -1
  373. package/es/icons/SparklesIcon.js +1 -1
  374. package/es/icons/SqlIcon.js +1 -1
  375. package/es/icons/StatsIcon.js +1 -1
  376. package/es/icons/StopIcon.js +1 -1
  377. package/es/icons/StringIcon.js +1 -1
  378. package/es/icons/SwitchIcon.js +1 -1
  379. package/es/icons/TableIcon.js +1 -1
  380. package/es/icons/ThumbsDownIcon.js +1 -1
  381. package/es/icons/ThumbsUpIcon.js +1 -1
  382. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  383. package/es/icons/ThunderboltFilledIcon.js +1 -1
  384. package/es/icons/ThunderboltIcon.js +1 -1
  385. package/es/icons/TimeIcon.js +1 -1
  386. package/es/icons/TrashIcon.js +1 -1
  387. package/es/icons/UnlockIcon.js +1 -1
  388. package/es/icons/UpIcon.js +1 -1
  389. package/es/icons/UserGroupIcon.js +1 -1
  390. package/es/icons/UserIcon.js +1 -1
  391. package/es/icons/UserLockIcon.js +1 -1
  392. package/es/icons/ViewIcon.js +1 -1
  393. package/es/icons/WarningFilledIcon.js +1 -1
  394. package/es/icons/WarningIcon.js +1 -1
  395. package/es/icons/add-new-icon.js +1 -1
  396. package/es/icons/index.js +1 -1
  397. package/es/icons/wrap-icon.js +1 -1
  398. package/es/index.js +1 -1
  399. package/es/provider.js +1 -1
  400. package/es/providers/TrackingProvider.js +1 -1
  401. package/es/providers/navigation.types.js +1 -1
  402. package/es/providers/navigationAdapter.default.js +1 -1
  403. package/es/services/notification.js +1 -1
  404. package/es/shared/form.js +1 -1
  405. package/es/shared/index.js +1 -1
  406. package/es/stories/Form.legacy-stories.js +1 -1
  407. package/es/stories/FormFieldArgs.js +1 -1
  408. package/es/stories/Layout.stories.js +1 -1
  409. package/es/stories/Tasty.stories.js +1 -1
  410. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  411. package/es/stories/components/DialogFormApp.js +1 -1
  412. package/es/stories/components/StyledButton.js +1 -1
  413. package/es/stories/lists/baseProps.js +1 -1
  414. package/es/tasty/debug.js +1 -1
  415. package/es/tasty/index.js +1 -1
  416. package/es/tasty/injector/index.js +1 -1
  417. package/es/tasty/injector/injector.js +1 -1
  418. package/es/tasty/injector/sheet-manager.js +1 -1
  419. package/es/tasty/injector/types.js +1 -1
  420. package/es/tasty/parser/classify.js +27 -13
  421. package/es/tasty/parser/const.js +1 -1
  422. package/es/tasty/parser/lru.js +1 -1
  423. package/es/tasty/parser/parser.js +1 -1
  424. package/es/tasty/parser/tokenizer.js +1 -1
  425. package/es/tasty/parser/types.js +1 -1
  426. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  427. package/es/tasty/styles/align.js +1 -1
  428. package/es/tasty/styles/border.js +1 -1
  429. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  430. package/es/tasty/styles/color.js +10 -5
  431. package/es/tasty/styles/createStyle.js +33 -4
  432. package/es/tasty/styles/dimension.js +1 -1
  433. package/es/tasty/styles/display.js +1 -1
  434. package/es/tasty/styles/fade.js +1 -1
  435. package/es/tasty/styles/fill.js +3 -2
  436. package/es/tasty/styles/flow.js +1 -1
  437. package/es/tasty/styles/font.js +1 -1
  438. package/es/tasty/styles/fontStyle.js +1 -1
  439. package/es/tasty/styles/gap.js +1 -1
  440. package/es/tasty/styles/groupRadius.js +1 -1
  441. package/es/tasty/styles/height.js +1 -1
  442. package/es/tasty/styles/index.js +1 -1
  443. package/es/tasty/styles/inset.js +1 -1
  444. package/es/tasty/styles/justify.js +1 -1
  445. package/es/tasty/styles/list.js +1 -1
  446. package/es/tasty/styles/margin.js +1 -1
  447. package/es/tasty/styles/outline.js +1 -1
  448. package/es/tasty/styles/padding.js +1 -1
  449. package/es/tasty/styles/place.js +1 -1
  450. package/es/tasty/styles/predefined.js +1 -1
  451. package/es/tasty/styles/preset.js +1 -1
  452. package/es/tasty/styles/radius.js +1 -1
  453. package/es/tasty/styles/reset.js +1 -1
  454. package/es/tasty/styles/scrollbar.js +1 -1
  455. package/es/tasty/styles/shadow.js +1 -1
  456. package/es/tasty/styles/styledScrollbar.js +1 -1
  457. package/es/tasty/styles/transition.js +1 -1
  458. package/es/tasty/styles/types.js +1 -1
  459. package/es/tasty/styles/width.js +1 -1
  460. package/es/tasty/tasty.js +1 -1
  461. package/es/tasty/types.js +1 -1
  462. package/es/tasty/utils/cache-wrapper.js +1 -1
  463. package/es/tasty/utils/case-converter.js +1 -1
  464. package/es/tasty/utils/colors.js +1 -1
  465. package/es/tasty/utils/dotize.js +1 -1
  466. package/es/tasty/utils/filterBaseProps.js +1 -1
  467. package/es/tasty/utils/getDisplayName.js +1 -1
  468. package/es/tasty/utils/getModCombinations.js +1 -1
  469. package/es/tasty/utils/isDevEnv.js +1 -1
  470. package/es/tasty/utils/mergeStyles.js +1 -1
  471. package/es/tasty/utils/modAttrs.js +1 -1
  472. package/es/tasty/utils/renderStyles.js +1 -1
  473. package/es/tasty/utils/responsive.js +1 -1
  474. package/es/tasty/utils/string.js +1 -1
  475. package/es/tasty/utils/styles.js +4 -3
  476. package/es/tasty/utils/warnings.js +1 -1
  477. package/es/tokens.js +1 -1
  478. package/es/utils/ResizeSensor.js +1 -1
  479. package/es/utils/index.js +1 -1
  480. package/es/utils/modules.js +1 -1
  481. package/es/utils/promise.js +1 -1
  482. package/es/utils/raf.js +1 -1
  483. package/es/utils/random.js +1 -1
  484. package/es/utils/range.js +1 -1
  485. package/es/utils/react/RenderCache.js +1 -1
  486. package/es/utils/react/Slots.js +1 -1
  487. package/es/utils/react/chain.js +1 -1
  488. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  489. package/es/utils/react/index.js +1 -1
  490. package/es/utils/react/interactions.js +1 -1
  491. package/es/utils/react/isTextOnly.js +1 -1
  492. package/es/utils/react/mapProps.js +1 -1
  493. package/es/utils/react/mergeProps.js +1 -1
  494. package/es/utils/react/nullableValue.js +1 -1
  495. package/es/utils/react/sharedStore.js +1 -1
  496. package/es/utils/react/useCombinedRefs.js +1 -1
  497. package/es/utils/react/useControlledFocusVisible.js +1 -1
  498. package/es/utils/react/useEventBus.js +1 -1
  499. package/es/utils/react/useId.js +1 -1
  500. package/es/utils/react/useIsDarwin.js +1 -1
  501. package/es/utils/react/useKeySymbols.js +1 -1
  502. package/es/utils/react/useLayoutEffect.js +1 -1
  503. package/es/utils/react/useQaProps.js +1 -1
  504. package/es/utils/react/useViewportSize.js +1 -1
  505. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  506. package/es/utils/tree.js +1 -1
  507. package/es/utils/warnings.js +1 -1
  508. package/es/version.js +2 -2
  509. package/package.json +1 -2
  510. package/types/components/fields/ComboBox/ComboBox.d.ts +2 -0
  511. package/types/components/fields/DatePicker/DateInputBase.d.ts +2 -0
  512. package/types/components/fields/FilterPicker/FilterPicker.d.ts +2 -0
  513. package/types/components/fields/Picker/Picker.d.ts +2 -0
  514. package/types/components/fields/Select/Select.d.ts +6 -0
  515. package/types/components/fields/TextInputMapper/TextInputMapper.d.ts +1 -0
  516. package/types/components/overlays/Dialog/DialogTrigger.d.ts +2 -0
  517. package/types/tasty/styles/createStyle.d.ts +5 -0
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -40,7 +40,7 @@ function DateRangeSeparatedPicker(props, ref) {
40
40
  });
41
41
  props = Object.assign({}, DEFAULT_DATE_PROPS, props);
42
42
  let styles = extractStyles(props, CONTAINER_STYLES);
43
- let { size, placeholderValue, isDisabled, validationState, useLocale: useLocaleProp, autoFocus, } = props;
43
+ let { qa, size, placeholderValue, isDisabled, validationState, useLocale: useLocaleProp, autoFocus, } = props;
44
44
  let targetRef = useRef(null);
45
45
  let state = useDateRangePickerState({
46
46
  ...props,
@@ -114,7 +114,7 @@ function DateRangeSeparatedPicker(props, ref) {
114
114
  endState.setOpen(false);
115
115
  }
116
116
  }
117
- const component = (_jsxs(DatePickerElement, { ref: targetRef, styles: props.wrapperStyles, children: [_jsx(DateInputBase, { disableFocusRing: startFocusProps.isFocused, isDisabled: isDisabled, validationState: validationState, size: size, ...startFocusRingProps.focusProps, suffix: _jsxs(DialogTrigger, { hideArrow: true, type: "popover", mobileType: "tray", placement: "bottom right", targetRef: targetRef, isOpen: startState.isOpen, shouldFlip: props.shouldFlip, onOpenChange: startState.setOpen, children: [_jsx(DatePickerButton, { size: size, ...mergeProps(startProps.buttonProps, startFocusProps.focusProps), isDisabled: isDisabled }), _jsxs(Dialog, { ...startProps.dialogProps, width: "max-content", children: [_jsx(Calendar, { ...startProps.calendarProps, defaultFocusedValue: state.value?.start || state.value?.end || undefined, selectedRange: state.value?.start && state.value?.end
117
+ const component = (_jsxs(DatePickerElement, { ref: targetRef, styles: props.wrapperStyles, qa: qa || 'DateRangeSeparatedPicker', "data-input-type": "daterangeseparatedpicker", children: [_jsx(DateInputBase, { disableFocusRing: startFocusProps.isFocused, isDisabled: isDisabled, validationState: validationState, size: size, ...startFocusRingProps.focusProps, suffix: _jsxs(DialogTrigger, { hideArrow: true, type: "popover", mobileType: "tray", placement: "bottom right", targetRef: targetRef, isOpen: startState.isOpen, shouldFlip: props.shouldFlip, onOpenChange: startState.setOpen, children: [_jsx(DatePickerButton, { size: size, ...mergeProps(startProps.buttonProps, startFocusProps.focusProps), isDisabled: isDisabled }), _jsxs(Dialog, { ...startProps.dialogProps, width: "max-content", children: [_jsx(Calendar, { ...startProps.calendarProps, defaultFocusedValue: state.value?.start || state.value?.end || undefined, selectedRange: state.value?.start && state.value?.end
118
118
  ? state.value
119
119
  : undefined, onChange: (value) => onChange(value, 'start') }), showTimeField && (_jsx(TimeInput, { padding: "1x", label: dateMessages['time'], value: startState.timeValue, placeholderValue: timePlaceholder, granularity: timeGranularity, minValue: timeMinValue, maxValue: timeMaxValue, hourCycle: props.hourCycle, hideTimeZone: props.hideTimeZone, onChange: startState.setTimeValue }))] })] }), children: _jsx(DatePickerInput, { useLocale: useLocaleProp, ...startFieldProps }) }), _jsx(DateRangeDash, {}), _jsx(DateInputBase, { disableFocusRing: endFocusProps.isFocused, isDisabled: isDisabled, validationState: validationState, size: size, ...endFocusRingProps.focusProps, suffix: _jsxs(DialogTrigger, { hideArrow: true, type: "popover", mobileType: "tray", placement: "bottom right", targetRef: targetRef, isOpen: endState.isOpen, shouldFlip: props.shouldFlip, onOpenChange: endState.setOpen, children: [_jsx(DatePickerButton, { "aria-label": "Show calendar for the end date", size: size, ...mergeProps(endFocusProps.focusProps, endProps.buttonProps), isDisabled: isDisabled }), _jsxs(Dialog, { ...endProps.dialogProps, width: "max-content", children: [_jsx(Calendar, { ...endProps.calendarProps, defaultFocusedValue: state.value?.end || state.value?.start || undefined, selectedRange: state.value?.start && state.value?.end
120
120
  ? state.value
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -11,6 +11,7 @@ import { useTimeField, } from 'react-aria';
11
11
  import { useTimeFieldState } from 'react-stately';
12
12
  import { useProviderProps } from '../../../provider';
13
13
  import { CONTAINER_STYLES, extractStyles, } from '../../../tasty';
14
+ import { mergeProps } from '../../../utils/react';
14
15
  import { useFieldProps, useFormProps, wrapWithField } from '../../form';
15
16
  import { DateInputBase } from './DateInputBase';
16
17
  import { DatePickerSegment } from './DatePickerSegment';
@@ -24,7 +25,7 @@ function TimeInput(props, ref) {
24
25
  });
25
26
  props = Object.assign({}, DEFAULT_TIME_PROPS, props);
26
27
  let styles = extractStyles(props, CONTAINER_STYLES);
27
- let { inputStyles, wrapperStyles, autoFocus, isDisabled, isReadOnly, isRequired, validationState, size = 'medium', } = props;
28
+ let { qa, inputStyles, wrapperStyles, autoFocus, isDisabled, isReadOnly, isRequired, validationState, size = 'medium', labelProps: userLabelProps, } = props;
28
29
  let domRef = useFocusManagerRef(ref);
29
30
  // let { locale } = useLocale();
30
31
  let state = useTimeFieldState({
@@ -33,11 +34,11 @@ function TimeInput(props, ref) {
33
34
  });
34
35
  let fieldRef = useRef(null);
35
36
  let { labelProps, fieldProps } = useTimeField(props, state, fieldRef);
36
- const timeInput = (_jsx(DateInputBase, { ref: fieldRef, size: size, fieldProps: fieldProps, isDisabled: isDisabled, autoFocus: autoFocus, inputStyles: inputStyles, styles: wrapperStyles, validationState: validationState, children: state.segments.map((segment, i) => (_jsx(DatePickerSegment, { segment: segment, state: state, isDisabled: isDisabled, isReadOnly: isReadOnly, isRequired: isRequired }, i))) }));
37
+ const timeInput = (_jsx(DateInputBase, { ref: fieldRef, qa: qa || 'TimeInput', inputType: "timeinput", size: size, fieldProps: fieldProps, isDisabled: isDisabled, autoFocus: autoFocus, inputStyles: inputStyles, styles: wrapperStyles, validationState: validationState, children: state.segments.map((segment, i) => (_jsx(DatePickerSegment, { segment: segment, state: state, isDisabled: isDisabled, isReadOnly: isReadOnly, isRequired: isRequired }, i))) }));
37
38
  return wrapWithField(timeInput, domRef, {
38
39
  ...props,
39
40
  styles,
40
- labelProps,
41
+ labelProps: mergeProps(labelProps, userLabelProps),
41
42
  });
42
43
  }
43
44
  /**
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
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.91.0
4
+ * @cube-dev/ui-kit v0.92.1
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.91.0
4
+ * @cube-dev/ui-kit v0.92.1
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.91.0
4
+ * @cube-dev/ui-kit v0.92.1
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.91.0
4
+ * @cube-dev/ui-kit v0.92.1
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.91.0
4
+ * @cube-dev/ui-kit v0.92.1
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.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -132,7 +132,7 @@ function FileInput(props, ref) {
132
132
  return inputRef?.current;
133
133
  },
134
134
  }));
135
- const fileInput = (_jsxs(FileInputElement, { ref: domRef, qa: "FileInput", styles: inputStyles, isDisabled: isDisabled, mods: {
135
+ const fileInput = (_jsxs(FileInputElement, { ref: domRef, qa: qa || 'FileInput', styles: inputStyles, isDisabled: isDisabled, "data-input-type": "fileinput", mods: {
136
136
  selected: !!value,
137
137
  'drag-hover': dragHover,
138
138
  }, onKeyDown: (e) => {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -322,6 +322,7 @@ export const FilterListBox = forwardRef(function FilterListBox(props, ref) {
322
322
  // If the currently focused item is no longer visible, move virtual focus to the first
323
323
  // available item so that arrow navigation and Enter behaviour continue to work.
324
324
  // If there are no available items, reset the selection so Enter won't select anything.
325
+ // Priority: focus on selected items first, then fall back to first visible item.
325
326
  useLayoutEffect(() => {
326
327
  const listState = listStateRef.current;
327
328
  if (!listState)
@@ -351,9 +352,51 @@ export const FilterListBox = forwardRef(function FilterListBox(props, ref) {
351
352
  if (currentFocused != null && visibleKeys.includes(currentFocused)) {
352
353
  return;
353
354
  }
354
- // Set focus to the first visible item
355
- selectionManager.setFocusedKey(visibleKeys[0]);
356
- }, [searchValue, enhancedChildren]);
355
+ // Helper to find the first selected item that's visible
356
+ const findFirstVisibleSelectedKey = () => {
357
+ if (selectionMode === 'single') {
358
+ // Single selection: check if selectedKey is visible
359
+ if (selectedKey != null) {
360
+ const selectedKeyStr = String(selectedKey);
361
+ if (visibleKeys.some((k) => String(k) === selectedKeyStr)) {
362
+ return selectedKey;
363
+ }
364
+ }
365
+ }
366
+ else if (selectionMode === 'multiple') {
367
+ // Multiple selection: find first selected key that's visible
368
+ if (selectedKeys && selectedKeys !== 'all') {
369
+ for (const key of selectedKeys) {
370
+ const keyStr = String(key);
371
+ if (visibleKeys.some((k) => String(k) === keyStr)) {
372
+ return key;
373
+ }
374
+ }
375
+ }
376
+ }
377
+ return null;
378
+ };
379
+ // Determine which key to focus
380
+ let keyToFocus = null;
381
+ // If there's no focus yet (initial state), prioritize selected items
382
+ if (currentFocused == null) {
383
+ keyToFocus = findFirstVisibleSelectedKey();
384
+ }
385
+ else {
386
+ // If current focused item was filtered out, try to focus another selected item
387
+ keyToFocus = findFirstVisibleSelectedKey();
388
+ }
389
+ // Fallback to first visible item if no selected item found
390
+ if (keyToFocus == null) {
391
+ keyToFocus = visibleKeys[0];
392
+ }
393
+ // Mark this focus change as keyboard navigation so ListBox will scroll to it
394
+ if (listState.lastFocusSourceRef) {
395
+ listState.lastFocusSourceRef.current = 'keyboard';
396
+ }
397
+ // Set focus to the determined key
398
+ selectionManager.setFocusedKey(keyToFocus);
399
+ }, [searchValue, enhancedChildren, selectionMode, selectedKey, selectedKeys]);
357
400
  // Keyboard navigation handler for search input
358
401
  const { keyboardProps } = useKeyboard({
359
402
  onKeyDown: (e) => {
@@ -542,7 +585,7 @@ export const FilterListBox = forwardRef(function FilterListBox(props, ref) {
542
585
  onOptionClick(key);
543
586
  }
544
587
  };
545
- const searchInput = (_jsxs(SearchWrapperElement, { mods: mods, "data-size": size, children: [isLoading && (_jsx("div", { "data-element": "Prefix", children: _jsx("div", { "data-element": "InputIcon", children: isLoading ? _jsx(LoadingIcon, {}) : null }) })), _jsx(SearchInputElement, { ref: searchInputRef, qa: qa || 'FilterListBox', id: id, "data-prefix": isLoading ? '' : undefined, type: "search", placeholder: searchPlaceholder, value: searchValue, disabled: isDisabled, autoFocus: autoFocus, "data-autofocus": autoFocus ? '' : undefined, styles: searchInputStyles, "data-size": size, role: "combobox", "aria-expanded": "true", "aria-haspopup": "listbox", "aria-activedescendant": listStateRef.current?.selectionManager.focusedKey != null
588
+ const searchInput = (_jsxs(SearchWrapperElement, { mods: mods, "data-size": size, children: [isLoading && (_jsx("div", { "data-element": "Prefix", children: _jsx("div", { "data-element": "InputIcon", children: isLoading ? _jsx(LoadingIcon, {}) : null }) })), _jsx(SearchInputElement, { ref: searchInputRef, qa: qa || 'FilterListBox', id: id, "data-prefix": isLoading ? '' : undefined, type: "search", placeholder: searchPlaceholder, value: searchValue, disabled: isDisabled, autoFocus: autoFocus, "data-autofocus": autoFocus ? '' : undefined, styles: searchInputStyles, "data-size": size, "data-input-type": "filterlistbox", role: "combobox", "aria-expanded": "true", "aria-haspopup": "listbox", "aria-activedescendant": listStateRef.current?.selectionManager.focusedKey != null
546
589
  ? `ListBoxItem-${listStateRef.current?.selectionManager.focusedKey}`
547
590
  : undefined, onChange: (e) => {
548
591
  const value = e.target.value;
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
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.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -63,7 +63,7 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
63
63
  return fieldProps;
64
64
  },
65
65
  });
66
- let { qa, label, extra, id, icon, rightIcon, prefix, suffix, hotkeys, triggerTooltip, triggerDescription, labelStyles, isRequired, necessityIndicator, validationState, isDisabled, isLoading, message, mods: externalMods, description, descriptionPlacement, placeholder, size = 'medium', styles, listBoxStyles, popoverStyles, type = 'outline', theme = 'default', labelSuffix, shouldFocusWrap, children, shouldFlip = true, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, disabledKeys, onSelectionChange, selectionMode = 'single', listStateRef, focusOnHover, showSelectAll, selectAllLabel = 'All', items, header, footer, headerStyles, footerStyles, triggerStyles, allowsCustomValue, renderSummary, isCheckable, allValueProps, customValueProps, newCustomValueProps, searchPlaceholder, autoFocus, filter, emptyLabel, searchInputStyles, searchInputRef, listStyles, optionStyles, sectionStyles, headingStyles, listRef, disallowEmptySelection, shouldUseVirtualFocus, onEscape, onOptionClick, isClearable, searchValue, onSearchChange, sortSelectedToTop: sortSelectedToTopProp, form, ...otherProps } = props;
66
+ let { qa, label, extra, id, icon, rightIcon, prefix, suffix, hotkeys, triggerTooltip, triggerDescription, labelStyles, isRequired, necessityIndicator, validationState, isDisabled, isLoading, message, mods: externalMods, description, descriptionPlacement, placeholder, size = 'medium', styles, listBoxStyles, popoverStyles, type = 'outline', theme = 'default', labelSuffix, shouldFocusWrap, children, shouldFlip = true, containerPadding = 8, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, disabledKeys, onSelectionChange, selectionMode = 'single', listStateRef, focusOnHover, showSelectAll, selectAllLabel = 'All', items, header, footer, headerStyles, footerStyles, triggerStyles, allowsCustomValue, renderSummary, isCheckable, allValueProps, customValueProps, newCustomValueProps, searchPlaceholder, autoFocus, filter, emptyLabel, searchInputStyles, searchInputRef, listStyles, optionStyles, sectionStyles, headingStyles, listRef, disallowEmptySelection, shouldUseVirtualFocus, onEscape, onOptionClick, isClearable, searchValue, onSearchChange, sortSelectedToTop: sortSelectedToTopProp, isButton = false, form, ...otherProps } = props;
67
67
  // Track if sortSelectedToTop was explicitly provided
68
68
  const sortSelectedToTopExplicit = sortSelectedToTopProp !== undefined;
69
69
  // Default to true if items are provided, false otherwise
@@ -356,7 +356,7 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
356
356
  }
357
357
  let content = '';
358
358
  if (!hasSelection) {
359
- content = placeholder;
359
+ return _jsx(Text.Placeholder, { children: placeholder });
360
360
  }
361
361
  else if (selectionMode === 'single') {
362
362
  content = selectedLabels[0];
@@ -370,9 +370,11 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
370
370
  if (!content) {
371
371
  return null;
372
372
  }
373
- return (_jsx(Text, { ellipsis: true, style: { opacity: hasSelection ? 1 : 'var(--disabled-opacity)' }, children: content }));
373
+ return content;
374
374
  };
375
375
  const [shouldUpdatePosition, setShouldUpdatePosition] = useState(true);
376
+ // Capture trigger width for overlay min-width
377
+ const triggerWidth = triggerRef?.current?.offsetWidth;
376
378
  // The trigger is rendered as a function so we can access the dialog state
377
379
  const renderTrigger = (state) => {
378
380
  // Listen for other menus opening and close this one if needed
@@ -447,12 +449,12 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
447
449
  props.onClear?.();
448
450
  return false;
449
451
  });
450
- return (_jsx(ItemButton, { ref: triggerRef, "data-popover-trigger": true, isButton: false, qa: qa || 'FilterPicker', id: id, type: type, theme: validationState === 'invalid' ? 'danger' : theme, size: size, isDisabled: isDisabled || isLoading, mods: {
452
+ return (_jsx(ItemButton, { ref: triggerRef, "data-popover-trigger": true, isButton: isButton, qa: qa || 'FilterPicker', id: id, type: type, theme: validationState === 'invalid' ? 'danger' : theme, size: size, isDisabled: isDisabled || isLoading, "data-input-type": "filterpicker", mods: {
451
453
  placeholder: !hasSelection,
452
454
  ...externalMods,
453
455
  }, icon: icon, rightIcon: isLoading ? (_jsx(LoadingIcon, {})) : rightIcon !== undefined ? (rightIcon) : showClearButton ? (_jsx(ItemAction, { icon: _jsx(CloseIcon, {}), size: size, theme: validationState === 'invalid' ? 'danger' : undefined, qa: "FilterPickerClearButton", mods: { pressed: false }, onPress: clearValue })) : (_jsx(DirectionIcon, { to: state.isOpen ? 'top' : 'bottom' })), prefix: prefix, suffix: suffix, hotkeys: hotkeys, tooltip: triggerTooltip, description: triggerDescription, descriptionPlacement: descriptionPlacement, styles: styles, ...keyboardProps, "aria-label": `${props['aria-label'] ?? props.label ?? ''}`, children: renderTriggerContent() }));
454
456
  };
455
- const filterPickerField = (_jsx(FilterPickerWrapper, { qa: "FilterPickerWrapper", styles: styles, ...filterBaseProps(otherProps, { eventProps: true }), children: _jsxs(DialogTrigger, { type: "popover", placement: "bottom start", styles: triggerStyles, shouldUpdatePosition: shouldUpdatePosition, shouldFlip: shouldFlip && shouldUpdatePosition, isDismissable: true, shouldCloseOnInteractOutside: (el) => {
457
+ const filterPickerField = (_jsx(FilterPickerWrapper, { qa: "FilterPickerWrapper", styles: styles, ...filterBaseProps(otherProps, { eventProps: true }), children: _jsxs(DialogTrigger, { type: "popover", placement: "bottom start", styles: triggerStyles, containerPadding: containerPadding, shouldUpdatePosition: shouldUpdatePosition, shouldFlip: shouldFlip && shouldUpdatePosition, isDismissable: true, shouldCloseOnInteractOutside: (el) => {
456
458
  const menuTriggerEl = el.closest('[data-popover-trigger]');
457
459
  // If no menu trigger was clicked, allow closing
458
460
  if (!menuTriggerEl)
@@ -462,11 +464,14 @@ export const FilterPicker = forwardRef(function FilterPicker(props, ref) {
462
464
  return true;
463
465
  // Otherwise, don't close here. Let the event bus handle closing when the other opens.
464
466
  return false;
465
- }, children: [renderTrigger, (close) => (_jsx(Dialog, { display: "grid", styles: {
467
+ }, children: [renderTrigger, (close) => (_jsx(Dialog, { qa: "FilterPickerOverlay", display: "grid", styles: {
466
468
  gridRows: '1sf',
467
- width: '30x max-content 50vw',
469
+ width: 'max($overlay-min-width, 30x) max-content 50vw',
470
+ '$overlay-min-width': '30x',
468
471
  ...popoverStyles,
469
- }, children: _jsx(FocusScope, { restoreFocus: true, children: _jsx(FilterListBox, { autoFocus: true, items: items ? finalItems : undefined, "aria-label": `${props['aria-label'] ?? props.label ?? ''} Picker`, _internalCollection: localCollectionState.collection, selectedKey: selectionMode === 'single' ? mappedSelectedKey : undefined, selectedKeys: selectionMode === 'multiple' ? mappedSelectedKeys : undefined, searchPlaceholder: searchPlaceholder, filter: filter, searchValue: searchValue, listStyles: listStyles, optionStyles: optionStyles, sectionStyles: sectionStyles, headingStyles: headingStyles, listRef: listRef, disallowEmptySelection: disallowEmptySelection, emptyLabel: emptyLabel, searchInputStyles: searchInputStyles, searchInputRef: searchInputRef, disabledKeys: disabledKeys, focusOnHover: focusOnHover, shouldFocusWrap: shouldFocusWrap, allowsCustomValue: allowsCustomValue, selectionMode: selectionMode, validationState: validationState, isDisabled: isDisabled, isLoading: isLoading, stateRef: listStateRef, isCheckable: isCheckable, mods: {
472
+ }, style: triggerWidth
473
+ ? { '--overlay-min-width': `${triggerWidth}px` }
474
+ : undefined, children: _jsx(FocusScope, { restoreFocus: true, children: _jsx(FilterListBox, { autoFocus: true, items: items ? finalItems : undefined, "aria-label": `${props['aria-label'] ?? props.label ?? ''} Picker`, _internalCollection: localCollectionState.collection, selectedKey: selectionMode === 'single' ? mappedSelectedKey : undefined, selectedKeys: selectionMode === 'multiple' ? mappedSelectedKeys : undefined, searchPlaceholder: searchPlaceholder, filter: filter, searchValue: searchValue, listStyles: listStyles, optionStyles: optionStyles, sectionStyles: sectionStyles, headingStyles: headingStyles, listRef: listRef, disallowEmptySelection: disallowEmptySelection, emptyLabel: emptyLabel, searchInputStyles: searchInputStyles, searchInputRef: searchInputRef, disabledKeys: disabledKeys, focusOnHover: focusOnHover, shouldFocusWrap: shouldFocusWrap, allowsCustomValue: allowsCustomValue, selectionMode: selectionMode, validationState: validationState, isDisabled: isDisabled, isLoading: isLoading, stateRef: listStateRef, isCheckable: isCheckable, mods: {
470
475
  popover: true,
471
476
  }, size: size === 'small' ? 'medium' : size, showSelectAll: showSelectAll, selectAllLabel: selectAllLabel, header: header, footer: footer, headerStyles: headerStyles, footerStyles: footerStyles, allValueProps: allValueProps, customValueProps: customValueProps, newCustomValueProps: newCustomValueProps, onSearchChange: onSearchChange, onEscape: () => close(), onOptionClick: (key) => {
472
477
  // For FilterPicker, clicking the content area should close the popover
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,20 +1,16 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- import { jsx as _jsx } from "react/jsx-runtime";
9
- import { forwardRef } from 'react';
10
8
  import { FileInput } from '../FileInput/FileInput';
11
9
  import { NumberInput } from '../NumberInput/NumberInput';
12
10
  import { PasswordInput } from '../PasswordInput/PasswordInput';
13
11
  import { TextArea } from '../TextArea/TextArea';
14
12
  import { TextInput } from '../TextInput';
15
- export const Input = Object.assign(forwardRef(function Input(props, ref) {
16
- return _jsx(TextInput, { ref: ref, ...props });
17
- }), {
13
+ export const Input = Object.assign(TextInput, {
18
14
  Text: TextInput,
19
15
  Password: PasswordInput,
20
16
  Number: NumberInput,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
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.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -526,7 +526,7 @@ export const ListBox = forwardRef(function ListBox(props, ref) {
526
526
  props.selectionMode,
527
527
  externalMods,
528
528
  ]);
529
- const listBoxField = (_jsxs(ListBoxWrapperElement, { ref: ref, qa: "ListBoxWrapper", mods: mods, styles: styles, "data-shape": shape, children: [header ? (_jsx(StyledHeader, { styles: headerStyles, "data-size": size, children: header })) : (_jsx("div", { role: "presentation" })), showSelectAll && props.selectionMode === 'multiple' ? (_jsx(SelectAllOption, { label: selectAllLabel || 'Select All', state: listState, lastFocusSourceRef: lastFocusSourceRef, isSelected: selectAllState.isSelected, isIndeterminate: selectAllState.isIndeterminate, isDisabled: isDisabled, isCheckable: isCheckable, size: size, allValueProps: allValueProps, onClick: handleSelectAllClick })) : (_jsxs(_Fragment, { children: [_jsx("div", { role: "presentation" }), _jsx("div", { role: "presentation" })] })), _jsx(ListBoxScrollElement, { ref: scrollRef, mods: mods, ...focusProps, children: listState.collection.size === 0 ? (_jsx(Item, { preset: "t4", color: "#dark-03", size: size, padding: "(.5x - 1bw)", children: emptyLabel })) : (_jsx(ListElement, { qa: qa || 'ListBox', ...mergedListBoxProps, ref: listRef, styles: listStyles, "aria-disabled": isDisabled || undefined, mods: { sections: hasSections }, "data-shape": shape, style: shouldVirtualize
529
+ const listBoxField = (_jsxs(ListBoxWrapperElement, { ref: ref, qa: "ListBoxWrapper", mods: mods, styles: styles, "data-shape": shape, children: [header ? (_jsx(StyledHeader, { styles: headerStyles, "data-size": size, children: header })) : (_jsx("div", { role: "presentation" })), showSelectAll && props.selectionMode === 'multiple' ? (_jsx(SelectAllOption, { label: selectAllLabel || 'Select All', state: listState, lastFocusSourceRef: lastFocusSourceRef, isSelected: selectAllState.isSelected, isIndeterminate: selectAllState.isIndeterminate, isDisabled: isDisabled, isCheckable: isCheckable, size: size, allValueProps: allValueProps, onClick: handleSelectAllClick })) : (_jsxs(_Fragment, { children: [_jsx("div", { role: "presentation" }), _jsx("div", { role: "presentation" })] })), _jsx(ListBoxScrollElement, { ref: scrollRef, mods: mods, ...focusProps, children: listState.collection.size === 0 ? (_jsx(Item, { preset: "t4", color: "#dark-03", size: size, padding: "(.5x - 1bw)", children: emptyLabel })) : (_jsx(ListElement, { qa: qa || 'ListBox', ...mergedListBoxProps, ref: listRef, styles: listStyles, "aria-disabled": isDisabled || undefined, mods: { sections: hasSections }, "data-shape": shape, "data-input-type": "listbox", style: shouldVirtualize
530
530
  ? {
531
531
  position: 'relative',
532
532
  height: `${rowVirtualizer.getTotalSize() + 3}px`,
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
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.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -11,6 +11,7 @@ import { useLocale, useNumberField } from 'react-aria';
11
11
  import { useNumberFieldState } from 'react-stately';
12
12
  import { useProviderProps } from '../../../provider';
13
13
  import { tasty } from '../../../tasty';
14
+ import { mergeProps } from '../../../utils/react';
14
15
  import { castNullableNumberValue, } from '../../../utils/react/nullableValue';
15
16
  import { useFieldProps } from '../../form';
16
17
  import { TextInputBase } from '../TextInput';
@@ -34,15 +35,17 @@ function NumberInput(props, ref) {
34
35
  props = castNullableNumberValue(props);
35
36
  props = useProviderProps(props);
36
37
  props = useFieldProps(props);
37
- let { hideStepper, suffix, value, defaultValue, onChange, inputRef, ...otherProps } = props;
38
+ let { hideStepper, suffix, value, defaultValue, onChange, inputRef, labelProps: userLabelProps, ...otherProps } = props;
38
39
  let showStepper = !hideStepper;
39
40
  let { locale } = useLocale();
40
41
  let state = useNumberFieldState({ ...props, locale });
41
42
  let localInputRef = useRef(null);
42
43
  inputRef = inputRef ?? localInputRef;
43
44
  let { groupProps, labelProps, inputProps, incrementButtonProps, decrementButtonProps, } = useNumberField(props, state, inputRef);
45
+ // Merge user-provided labelProps with aria labelProps
46
+ const mergedLabelProps = mergeProps(labelProps, userLabelProps);
44
47
  const steppers = showStepper ? (_jsxs(StepperContainer, { children: [_jsx(StepButton, { isDisabled: props.isDisabled, direction: "up", ...incrementButtonProps, size: otherProps.size }), _jsx(StepButton, { isDisabled: props.isDisabled, direction: "down", ...decrementButtonProps, size: otherProps.size })] })) : undefined;
45
- return (_jsx(StyledTextInputBase, { ...otherProps, ref: ref, labelProps: labelProps, inputProps: inputProps, inputRef: inputRef, wrapperProps: groupProps, suffixPosition: "after", suffix: showStepper ? (props.suffixPosition === 'before' ? (_jsxs(_Fragment, { children: [suffix, steppers] })) : (_jsxs(_Fragment, { children: [steppers, suffix] }))) : (suffix) }));
48
+ return (_jsx(StyledTextInputBase, { ...otherProps, ref: ref, labelProps: mergedLabelProps, inputProps: { ...inputProps, 'data-input-type': 'numberinput' }, inputRef: inputRef, wrapperProps: groupProps, suffixPosition: "after", suffix: showStepper ? (props.suffixPosition === 'before' ? (_jsxs(_Fragment, { children: [suffix, steppers] })) : (_jsxs(_Fragment, { children: [steppers, suffix] }))) : (suffix) }));
46
49
  }
47
50
  /**
48
51
  * NumberFields allow users to enter a number and increment or decrement the value using stepper buttons.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
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.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -10,6 +10,7 @@ import { forwardRef, useCallback, useRef, useState } from 'react';
10
10
  import { useTextField } from 'react-aria';
11
11
  import { EyeIcon, EyeInvisibleIcon } from '../../../icons';
12
12
  import { useProviderProps } from '../../../provider';
13
+ import { mergeProps } from '../../../utils/react';
13
14
  import { castNullableStringValue, } from '../../../utils/react/nullableValue';
14
15
  import { ItemAction } from '../../actions';
15
16
  import { useFieldProps } from '../../form';
@@ -25,18 +26,20 @@ function PasswordInput(props, ref) {
25
26
  }),
26
27
  });
27
28
  let [type, setType] = useState('password');
29
+ let { labelProps: userLabelProps, suffix, multiLine, inputRef: propsInputRef, ...rest } = props;
28
30
  let localInputRef = useRef(null);
29
- let inputRef = props.inputRef ?? localInputRef;
31
+ let inputRef = propsInputRef ?? localInputRef;
30
32
  let { labelProps, inputProps } = useTextField({
31
- ...props,
33
+ ...rest,
32
34
  type,
33
35
  }, inputRef);
34
- const { suffix, multiLine, ...rest } = props;
36
+ // Merge user-provided labelProps with aria labelProps
37
+ const mergedLabelProps = mergeProps(labelProps, userLabelProps);
35
38
  const toggleType = useCallback(() => {
36
39
  setType((type) => (type === 'password' ? 'text' : 'password'));
37
40
  }, []);
38
41
  const wrappedSuffix = (_jsxs(_Fragment, { children: [suffix, _jsx(ItemAction, { type: "neutral", tooltip: "Toggle masking", icon: type === 'password' ? _jsx(EyeInvisibleIcon, {}) : _jsx(EyeIcon, {}), onPress: toggleType })] }));
39
- return (_jsx(TextInputBase, { ref: ref, labelProps: labelProps, inputProps: inputProps, inputRef: inputRef, inputStyles: { paddingRight: '4x' }, type: type, suffixPosition: "after", suffix: wrappedSuffix, multiLine: multiLine, ...rest }));
42
+ return (_jsx(TextInputBase, { ref: ref, labelProps: mergedLabelProps, inputProps: { ...inputProps, 'data-input-type': 'passwordinput' }, inputRef: inputRef, inputStyles: { paddingRight: '4x' }, type: type, suffixPosition: "after", suffix: wrappedSuffix, multiLine: multiLine, ...rest }));
40
43
  }
41
44
  /**
42
45
  * PasswordInputs are password inputs that allow users to input passwords or code entries
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -62,7 +62,7 @@ export const Picker = forwardRef(function Picker(props, ref) {
62
62
  return fieldProps;
63
63
  },
64
64
  });
65
- let { id, qa, label, extra, icon, rightIcon, prefix, suffix, hotkeys, triggerTooltip, triggerDescription, labelStyles, isRequired, necessityIndicator, validationState, isDisabled, isLoading, message, mods: externalMods, description, descriptionPlacement, placeholder, size = 'medium', styles, listBoxStyles, popoverStyles, type = 'outline', theme = 'default', labelSuffix, shouldFocusWrap, children, shouldFlip = true, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, disabledKeys, onSelectionChange, selectionMode = 'single', listStateRef, focusOnHover, showSelectAll, selectAllLabel = 'All', items, header, footer, headerStyles, footerStyles, triggerStyles, renderSummary, isCheckable, allValueProps, listStyles, optionStyles, sectionStyles, headingStyles, listRef, disallowEmptySelection, shouldUseVirtualFocus, onEscape, onOptionClick, isClearable, onClear, sortSelectedToTop, listStateRef: externalListStateRef, ...otherProps } = props;
65
+ let { id, qa, label, extra, icon, rightIcon, prefix, suffix, hotkeys, triggerTooltip, triggerDescription, labelStyles, isRequired, necessityIndicator, validationState, isDisabled, isLoading, message, mods: externalMods, description, descriptionPlacement, placeholder, size = 'medium', styles, listBoxStyles, popoverStyles, type = 'outline', theme = 'default', labelSuffix, shouldFocusWrap, children, shouldFlip = true, containerPadding = 8, selectedKey, defaultSelectedKey, selectedKeys, defaultSelectedKeys, disabledKeys, onSelectionChange, selectionMode = 'single', listStateRef, focusOnHover, showSelectAll, selectAllLabel = 'All', items, header, footer, headerStyles, footerStyles, triggerStyles, renderSummary, isCheckable, allValueProps, listStyles, optionStyles, sectionStyles, headingStyles, listRef, disallowEmptySelection, shouldUseVirtualFocus, onEscape, onOptionClick, isClearable, onClear, sortSelectedToTop, isButton = false, listStateRef: externalListStateRef, ...otherProps } = props;
66
66
  styles = extractStyles(otherProps, PROP_STYLES, styles);
67
67
  // Generate a unique ID for this Picker instance
68
68
  const pickerId = useMemo(() => generateRandomId(), []);
@@ -235,7 +235,7 @@ export const Picker = forwardRef(function Picker(props, ref) {
235
235
  const hasSelection = selectedLabels.length > 0;
236
236
  const renderTriggerContent = () => {
237
237
  // When there is a selection and a custom summary renderer is provided – use it.
238
- if (hasSelection && typeof renderSummary === 'function') {
238
+ if (typeof renderSummary === 'function') {
239
239
  if (selectionMode === 'single') {
240
240
  return renderSummary({
241
241
  selectedLabel: selectedLabels[0],
@@ -251,12 +251,12 @@ export const Picker = forwardRef(function Picker(props, ref) {
251
251
  selectionMode: 'multiple',
252
252
  });
253
253
  }
254
- else if (hasSelection && renderSummary === false) {
254
+ else if (renderSummary === false) {
255
255
  return null;
256
256
  }
257
257
  let content = '';
258
258
  if (!hasSelection) {
259
- content = placeholder;
259
+ return _jsx(Text.Placeholder, { children: placeholder });
260
260
  }
261
261
  else if (selectionMode === 'single') {
262
262
  content = selectedLabels[0];
@@ -270,9 +270,11 @@ export const Picker = forwardRef(function Picker(props, ref) {
270
270
  if (!content) {
271
271
  return null;
272
272
  }
273
- return (_jsx(Text, { ellipsis: true, style: { opacity: hasSelection ? 1 : 'var(--disabled-opacity)' }, children: content }));
273
+ return content;
274
274
  };
275
275
  const [shouldUpdatePosition, setShouldUpdatePosition] = useState(true);
276
+ // Capture trigger width for overlay min-width
277
+ const triggerWidth = triggerRef?.current?.offsetWidth;
276
278
  // The trigger is rendered as a function so we can access the dialog state
277
279
  const renderTrigger = (state) => {
278
280
  // Listen for other menus opening and close this one if needed
@@ -341,12 +343,12 @@ export const Picker = forwardRef(function Picker(props, ref) {
341
343
  onClear?.();
342
344
  return false;
343
345
  });
344
- return (_jsx(ItemButton, { ref: triggerRef, "data-popover-trigger": true, isButton: false, id: id, qa: qa || 'PickerTrigger', type: type, theme: validationState === 'invalid' ? 'danger' : theme, size: size, isDisabled: isDisabled || isLoading, mods: {
346
+ return (_jsx(ItemButton, { ref: triggerRef, "data-popover-trigger": true, isButton: isButton, id: id, qa: qa || 'PickerTrigger', type: type, theme: validationState === 'invalid' ? 'danger' : theme, size: size, isDisabled: isDisabled || isLoading, "data-input-type": "picker", mods: {
345
347
  placeholder: !hasSelection,
346
348
  ...externalMods,
347
349
  }, icon: icon, rightIcon: isLoading ? (_jsx(LoadingIcon, {})) : rightIcon !== undefined ? (rightIcon) : showClearButton ? (_jsx(ItemAction, { icon: _jsx(CloseIcon, {}), size: size, theme: validationState === 'invalid' ? 'danger' : undefined, qa: "PickerClearButton", mods: { pressed: false }, onPress: clearValue })) : (_jsx(DirectionIcon, { to: state.isOpen ? 'top' : 'bottom' })), prefix: prefix, suffix: suffix, hotkeys: hotkeys, tooltip: triggerTooltip, description: triggerDescription, descriptionPlacement: descriptionPlacement, styles: styles, ...keyboardProps, "aria-label": `${props['aria-label'] ?? props.label ?? ''}`, children: renderTriggerContent() }));
348
350
  };
349
- const pickerField = (_jsx(PickerWrapper, { styles: styles, ...filterBaseProps(otherProps, { eventProps: true }), children: _jsxs(DialogTrigger, { type: "popover", placement: "bottom start", styles: triggerStyles, shouldUpdatePosition: shouldUpdatePosition, shouldFlip: shouldFlip && shouldUpdatePosition, isDismissable: true, shouldCloseOnInteractOutside: (el) => {
351
+ const pickerField = (_jsx(PickerWrapper, { styles: styles, ...filterBaseProps(otherProps, { eventProps: true }), children: _jsxs(DialogTrigger, { type: "popover", placement: "bottom start", styles: triggerStyles, containerPadding: containerPadding, shouldUpdatePosition: shouldUpdatePosition, shouldFlip: shouldFlip && shouldUpdatePosition, isDismissable: true, shouldCloseOnInteractOutside: (el) => {
350
352
  const menuTriggerEl = el.closest('[data-popover-trigger]');
351
353
  // If no menu trigger was clicked, allow closing
352
354
  if (!menuTriggerEl)
@@ -356,11 +358,14 @@ export const Picker = forwardRef(function Picker(props, ref) {
356
358
  return true;
357
359
  // Otherwise, don't close here. Let the event bus handle closing when the other opens.
358
360
  return false;
359
- }, children: [renderTrigger, (close) => (_jsx(Dialog, { display: "grid", styles: {
361
+ }, children: [renderTrigger, (close) => (_jsx(Dialog, { qa: "PickerOverlay", display: "grid", styles: {
360
362
  gridRows: '1sf',
361
- width: '30x max-content 50vw',
363
+ width: '$overlay-min-width max-content 50vw',
364
+ '$overlay-min-width': '30x',
362
365
  ...popoverStyles,
363
- }, children: _jsx(FocusScope, { restoreFocus: true, children: _jsx(ListBox, { autoFocus: true, items: items ? finalItems : undefined, "aria-label": `${props['aria-label'] ?? props.label ?? ''} Picker`, selectedKey: selectionMode === 'single' ? effectiveSelectedKey : undefined, selectedKeys: selectionMode === 'multiple'
366
+ }, style: triggerWidth
367
+ ? { '--overlay-min-width': `${triggerWidth}px` }
368
+ : undefined, children: _jsx(FocusScope, { restoreFocus: true, children: _jsx(ListBox, { autoFocus: true, items: items ? finalItems : undefined, "aria-label": `${props['aria-label'] ?? props.label ?? ''} Picker`, selectedKey: selectionMode === 'single' ? effectiveSelectedKey : undefined, selectedKeys: selectionMode === 'multiple'
364
369
  ? effectiveSelectedKeys
365
370
  : undefined, listStyles: listStyles, optionStyles: optionStyles, sectionStyles: sectionStyles, headingStyles: headingStyles, listRef: listRef, disallowEmptySelection: disallowEmptySelection, disabledKeys: disabledKeys, focusOnHover: focusOnHover, shouldFocusWrap: shouldFocusWrap, selectionMode: selectionMode, validationState: validationState, isDisabled: isDisabled, isLoading: isLoading, stateRef: internalListStateRef, isCheckable: isCheckable, shape: "popover", size: "medium", showSelectAll: showSelectAll, selectAllLabel: selectAllLabel, header: header, footer: footer, headerStyles: headerStyles, footerStyles: footerStyles, qa: `${props.qa || 'Picker'}ListBox`, allValueProps: allValueProps, onEscape: () => close(), onOptionClick: (key) => {
366
371
  // For Picker, clicking the content area should close the popover
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.91.0
4
+ * @cube-dev/ui-kit v0.92.1
5
5
  * Released under the MIT license.
6
6
  */
7
7