@cube-dev/ui-kit 0.84.0 → 0.85.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 (532) 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/GlobalStyles.js +1 -1
  18. package/es/components/GridProvider.js +1 -1
  19. package/es/components/HiddenInput.js +1 -1
  20. package/es/components/Item.js +7 -2
  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 +127 -12
  31. package/es/components/actions/ItemAction/index.js +1 -1
  32. package/es/components/actions/ItemActionContext.js +25 -0
  33. package/es/components/actions/ItemButton/ItemButton.js +102 -6
  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 +3 -3
  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 +2 -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/ItemBadge/ItemBadge.js +119 -0
  68. package/es/components/{fields/LegacyComboBox → content/ItemBadge}/index.js +2 -2
  69. package/es/components/content/ItemBase/ItemBase.js +92 -22
  70. package/es/components/content/ItemBase/index.js +2 -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 +1 -1
  82. package/es/components/content/Title.js +1 -1
  83. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  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 +33 -30
  88. package/es/components/fields/ComboBox/index.js +1 -1
  89. package/es/components/fields/DatePicker/DateInput.js +1 -1
  90. package/es/components/fields/DatePicker/DateInputBase.js +4 -3
  91. package/es/components/fields/DatePicker/DatePicker.js +2 -3
  92. package/es/components/fields/DatePicker/DatePickerButton.js +3 -8
  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 +3 -1
  96. package/es/components/fields/DatePicker/DateRangePicker.js +2 -3
  97. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +9 -5
  98. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  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 +1 -1
  106. package/es/components/fields/FilterListBox/FilterListBox.js +53 -109
  107. package/es/components/fields/FilterListBox/index.js +1 -1
  108. package/es/components/fields/FilterPicker/FilterPicker.js +1 -2
  109. package/es/components/fields/FilterPicker/index.js +1 -1
  110. package/es/components/fields/Input/Input.js +1 -1
  111. package/es/components/fields/Input/index.js +1 -1
  112. package/es/components/fields/ListBox/ListBox.js +3 -3
  113. package/es/components/fields/ListBox/index.js +1 -1
  114. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  115. package/es/components/fields/NumberInput/StepButton.js +1 -1
  116. package/es/components/fields/PasswordInput/PasswordInput.js +3 -3
  117. package/es/components/fields/Picker/Picker.js +2 -3
  118. package/es/components/fields/Picker/index.js +1 -1
  119. package/es/components/fields/RadioGroup/Radio.js +1 -1
  120. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  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 +1 -1
  124. package/es/components/fields/SearchInput/index.js +1 -1
  125. package/es/components/fields/Select/Select.js +37 -35
  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 +1 -1
  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 +1 -1
  139. package/es/components/fields/Switch/index.js +1 -1
  140. package/es/components/fields/TextArea/TextArea.js +1 -1
  141. package/es/components/fields/TextArea/index.js +1 -1
  142. package/es/components/fields/TextInput/TextInput.js +1 -1
  143. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  144. package/es/components/fields/TextInput/index.js +1 -1
  145. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  146. package/es/components/fields/TextInputMapper/index.js +1 -1
  147. package/es/components/fields/index.js +1 -2
  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 +3 -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 +17 -3
  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 +2 -2
  185. package/es/components/other/Calendar/CalendarCell.js +7 -10
  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 +1 -1
  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 +1 -1
  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 -14
  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 +2 -2
  250. package/es/components/overlays/Tooltip/TooltipProvider.js +4 -4
  251. package/es/components/overlays/Tooltip/TooltipTrigger.js +5 -4
  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 +48 -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/Icon.js +1 -1
  341. package/es/icons/InfoCircleIcon.js +1 -1
  342. package/es/icons/InfoIcon.js +1 -1
  343. package/es/icons/KeyIcon.js +1 -1
  344. package/es/icons/LeftIcon.js +1 -1
  345. package/es/icons/LineChartIcon.js +1 -1
  346. package/es/icons/LoadingIcon.js +1 -1
  347. package/es/icons/LockFilledIcon.js +1 -1
  348. package/es/icons/LockIcon.js +1 -1
  349. package/es/icons/MoreIcon.js +1 -1
  350. package/es/icons/NotAllowedIcon.js +1 -1
  351. package/es/icons/Number123Icon.js +1 -1
  352. package/es/icons/NumberIcon.js +1 -1
  353. package/es/icons/PauseCircleFilledIcon.js +1 -1
  354. package/es/icons/PauseCircleIcon.js +1 -1
  355. package/es/icons/PauseIcon.js +1 -1
  356. package/es/icons/PercentageIcon.js +1 -1
  357. package/es/icons/PieChartIcon.js +1 -1
  358. package/es/icons/PlayCircleIcon.js +1 -1
  359. package/es/icons/PlayIcon.js +1 -1
  360. package/es/icons/PlusIcon.js +1 -1
  361. package/es/icons/ProgressBarIcon.js +1 -1
  362. package/es/icons/ReloadIcon.js +1 -1
  363. package/es/icons/ReportIcon.js +1 -1
  364. package/es/icons/ReturnIcon.js +1 -1
  365. package/es/icons/RightIcon.js +1 -1
  366. package/es/icons/SchemeIcon.js +1 -1
  367. package/es/icons/SearchIcon.js +1 -1
  368. package/es/icons/SettingsIcon.js +1 -1
  369. package/es/icons/ShieldFilledIcon.js +1 -1
  370. package/es/icons/ShieldIcon.js +1 -1
  371. package/es/icons/SlashIcon.js +1 -1
  372. package/es/icons/SparklesIcon.js +1 -1
  373. package/es/icons/SqlIcon.js +1 -1
  374. package/es/icons/StatsIcon.js +1 -1
  375. package/es/icons/StopIcon.js +1 -1
  376. package/es/icons/StringIcon.js +1 -1
  377. package/es/icons/SwitchIcon.js +1 -1
  378. package/es/icons/TableIcon.js +1 -1
  379. package/es/icons/ThumbsDownIcon.js +1 -1
  380. package/es/icons/ThumbsUpIcon.js +1 -1
  381. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  382. package/es/icons/ThunderboltFilledIcon.js +1 -1
  383. package/es/icons/ThunderboltIcon.js +1 -1
  384. package/es/icons/TimeIcon.js +1 -1
  385. package/es/icons/UnlockIcon.js +1 -1
  386. package/es/icons/UpIcon.js +1 -1
  387. package/es/icons/UserGroupIcon.js +1 -1
  388. package/es/icons/UserIcon.js +1 -1
  389. package/es/icons/UserLockIcon.js +1 -1
  390. package/es/icons/ViewIcon.js +1 -1
  391. package/es/icons/WarningFilledIcon.js +1 -1
  392. package/es/icons/WarningIcon.js +1 -1
  393. package/es/icons/add-new-icon.js +1 -1
  394. package/es/icons/index.js +1 -1
  395. package/es/icons/wrap-icon.js +1 -1
  396. package/es/index.js +3 -2
  397. package/es/provider.js +1 -1
  398. package/es/providers/TrackingProvider.js +1 -1
  399. package/es/providers/navigation.types.js +1 -1
  400. package/es/providers/navigationAdapter.default.js +1 -1
  401. package/es/services/notification.js +1 -1
  402. package/es/shared/form.js +1 -1
  403. package/es/shared/index.js +1 -1
  404. package/es/stories/Form.legacy-stories.js +1 -1
  405. package/es/stories/FormFieldArgs.js +1 -1
  406. package/es/stories/Layout.stories.js +1 -1
  407. package/es/stories/Tasty.stories.js +1 -1
  408. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  409. package/es/stories/components/DialogFormApp.js +1 -1
  410. package/es/stories/components/StyledButton.js +1 -1
  411. package/es/stories/lists/baseProps.js +1 -1
  412. package/es/tasty/debug.js +1 -1
  413. package/es/tasty/index.js +1 -1
  414. package/es/tasty/injector/index.js +1 -1
  415. package/es/tasty/injector/injector.js +1 -1
  416. package/es/tasty/injector/sheet-manager.js +1 -1
  417. package/es/tasty/injector/types.js +1 -1
  418. package/es/tasty/parser/classify.js +1 -1
  419. package/es/tasty/parser/const.js +1 -1
  420. package/es/tasty/parser/lru.js +1 -1
  421. package/es/tasty/parser/parser.js +1 -1
  422. package/es/tasty/parser/tokenizer.js +1 -1
  423. package/es/tasty/parser/types.js +1 -1
  424. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  425. package/es/tasty/styles/align.js +1 -1
  426. package/es/tasty/styles/border.js +1 -1
  427. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  428. package/es/tasty/styles/color.js +1 -1
  429. package/es/tasty/styles/createStyle.js +1 -1
  430. package/es/tasty/styles/dimension.js +1 -1
  431. package/es/tasty/styles/display.js +1 -1
  432. package/es/tasty/styles/fade.js +1 -1
  433. package/es/tasty/styles/fill.js +1 -1
  434. package/es/tasty/styles/flow.js +1 -1
  435. package/es/tasty/styles/font.js +1 -1
  436. package/es/tasty/styles/fontStyle.js +1 -1
  437. package/es/tasty/styles/gap.js +1 -1
  438. package/es/tasty/styles/groupRadius.js +1 -1
  439. package/es/tasty/styles/height.js +1 -1
  440. package/es/tasty/styles/index.js +1 -1
  441. package/es/tasty/styles/inset.js +1 -1
  442. package/es/tasty/styles/justify.js +1 -1
  443. package/es/tasty/styles/list.js +1 -1
  444. package/es/tasty/styles/margin.js +1 -1
  445. package/es/tasty/styles/outline.js +1 -1
  446. package/es/tasty/styles/padding.js +1 -1
  447. package/es/tasty/styles/place.js +1 -1
  448. package/es/tasty/styles/predefined.js +1 -1
  449. package/es/tasty/styles/preset.js +1 -1
  450. package/es/tasty/styles/radius.js +1 -1
  451. package/es/tasty/styles/reset.js +1 -1
  452. package/es/tasty/styles/scrollbar.js +1 -1
  453. package/es/tasty/styles/shadow.js +1 -1
  454. package/es/tasty/styles/styledScrollbar.js +1 -1
  455. package/es/tasty/styles/transition.js +1 -1
  456. package/es/tasty/styles/types.js +1 -1
  457. package/es/tasty/styles/width.js +1 -1
  458. package/es/tasty/tasty.js +1 -1
  459. package/es/tasty/types.js +1 -1
  460. package/es/tasty/utils/cache-wrapper.js +1 -1
  461. package/es/tasty/utils/case-converter.js +1 -1
  462. package/es/tasty/utils/colors.js +1 -1
  463. package/es/tasty/utils/dotize.js +1 -1
  464. package/es/tasty/utils/filterBaseProps.js +1 -1
  465. package/es/tasty/utils/getDisplayName.js +1 -1
  466. package/es/tasty/utils/getModCombinations.js +1 -1
  467. package/es/tasty/utils/isDevEnv.js +1 -1
  468. package/es/tasty/utils/mergeStyles.js +1 -1
  469. package/es/tasty/utils/modAttrs.js +1 -1
  470. package/es/tasty/utils/renderStyles.js +1 -1
  471. package/es/tasty/utils/responsive.js +1 -1
  472. package/es/tasty/utils/string.js +1 -1
  473. package/es/tasty/utils/styles.js +1 -1
  474. package/es/tasty/utils/warnings.js +1 -1
  475. package/es/tokens.js +8 -1
  476. package/es/utils/ResizeSensor.js +1 -1
  477. package/es/utils/index.js +27 -0
  478. package/es/utils/modules.js +1 -1
  479. package/es/utils/promise.js +1 -1
  480. package/es/utils/raf.js +47 -0
  481. package/es/utils/random.js +1 -1
  482. package/es/utils/range.js +1 -1
  483. package/es/utils/react/Slots.js +1 -1
  484. package/es/utils/react/chain.js +1 -1
  485. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  486. package/es/utils/react/index.js +1 -1
  487. package/es/utils/react/interactions.js +1 -1
  488. package/es/utils/react/isTextOnly.js +1 -1
  489. package/es/utils/react/mapProps.js +1 -1
  490. package/es/utils/react/mergeProps.js +1 -1
  491. package/es/utils/react/nullableValue.js +1 -1
  492. package/es/utils/react/sharedStore.js +1 -1
  493. package/es/utils/react/useCombinedRefs.js +1 -1
  494. package/es/utils/react/useControlledFocusVisible.js +1 -1
  495. package/es/utils/react/useEventBus.js +1 -1
  496. package/es/utils/react/useId.js +1 -1
  497. package/es/utils/react/useIsDarwin.js +1 -1
  498. package/es/utils/react/useKeySymbols.js +1 -1
  499. package/es/utils/react/useLayoutEffect.js +1 -1
  500. package/es/utils/react/useQaProps.js +1 -1
  501. package/es/utils/react/useViewportSize.js +1 -1
  502. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  503. package/es/utils/tree.js +1 -1
  504. package/es/utils/warnings.js +1 -1
  505. package/es/version.js +2 -2
  506. package/package.json +1 -1
  507. package/types/components/Item.d.ts +4 -1
  508. package/types/components/actions/ItemAction/ItemAction.d.ts +15 -7
  509. package/types/components/actions/ItemActionContext.d.ts +14 -0
  510. package/types/components/actions/ItemButton/ItemButton.d.ts +14 -3
  511. package/types/components/actions/Menu/Menu.d.ts +4 -1
  512. package/types/components/actions/index.d.ts +1 -0
  513. package/types/components/content/ItemBadge/ItemBadge.d.ts +16 -0
  514. package/types/components/content/ItemBadge/index.d.ts +2 -0
  515. package/types/components/content/ItemBase/ItemBase.d.ts +21 -3
  516. package/types/components/content/ItemBase/index.d.ts +1 -0
  517. package/types/components/fields/ComboBox/ComboBox.d.ts +4 -2
  518. package/types/components/fields/DatePicker/DateInputBase.d.ts +1 -0
  519. package/types/components/fields/ListBox/ListBox.d.ts +1 -1
  520. package/types/components/fields/Select/Select.d.ts +4 -1
  521. package/types/components/fields/index.d.ts +0 -1
  522. package/types/components/helpers/DisplayTransition/DisplayTransition.d.ts +5 -1
  523. package/types/data/item-themes.d.ts +1 -0
  524. package/types/index.d.ts +3 -1
  525. package/types/tokens.d.ts +7 -0
  526. package/types/utils/index.d.ts +9 -0
  527. package/types/utils/raf.d.ts +17 -0
  528. package/es/components/fields/LegacyComboBox/LegacyComboBox.js +0 -290
  529. package/es/utils/transitions.js +0 -63
  530. package/types/components/fields/LegacyComboBox/LegacyComboBox.d.ts +0 -49
  531. package/types/components/fields/LegacyComboBox/index.d.ts +0 -1
  532. package/types/utils/transitions.d.ts +0 -8
@@ -10,8 +10,18 @@ export interface CubeItemBaseProps extends BaseProps, ContainerStyleProps {
10
10
  suffix?: ReactNode;
11
11
  description?: ReactNode;
12
12
  descriptionPlacement?: 'inline' | 'block' | 'auto';
13
+ /**
14
+ * Whether the item is selected.
15
+ * @default false
16
+ */
13
17
  isSelected?: boolean;
14
- size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'inline' | (string & {});
18
+ /**
19
+ * Actions to render inline or placeholder mode for ItemButton wrapper.
20
+ * - ReactNode: renders actions inline as part of the grid layout
21
+ * - true: placeholder mode for ItemButton (enables --actions-width calculation)
22
+ */
23
+ actions?: ReactNode | true;
24
+ size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'inline' | number | (string & {});
15
25
  type?: 'item' | 'primary' | 'secondary' | 'outline' | 'neutral' | 'clear' | 'link' | (string & {});
16
26
  theme?: 'default' | 'danger' | 'success' | 'special' | (string & {});
17
27
  variant?: ItemVariant;
@@ -46,6 +56,10 @@ export interface CubeItemBaseProps extends BaseProps, ContainerStyleProps {
46
56
  * and makes the component disabled.
47
57
  */
48
58
  isLoading?: boolean;
59
+ /**
60
+ * When true, applies card styling with increased border radius.
61
+ */
62
+ isCard?: boolean;
49
63
  /**
50
64
  * @private
51
65
  * Default tooltip placement for the item.
@@ -57,10 +71,11 @@ export interface CubeItemBaseProps extends BaseProps, ContainerStyleProps {
57
71
  */
58
72
  labelRef?: RefObject<HTMLElement>;
59
73
  }
60
- export declare function useAutoTooltip({ tooltip, children, labelProps, }: {
74
+ export declare function useAutoTooltip({ tooltip, children, labelProps, isDynamicLabel, }: {
61
75
  tooltip: CubeItemBaseProps['tooltip'];
62
76
  children: ReactNode;
63
77
  labelProps?: Props;
78
+ isDynamicLabel?: boolean;
64
79
  }): {
65
80
  labelRef: (element: HTMLElement | null) => void;
66
81
  labelProps: {
@@ -71,5 +86,8 @@ export declare function useAutoTooltip({ tooltip, children, labelProps, }: {
71
86
  hasTooltip: boolean;
72
87
  renderWithTooltip: (renderElement: (tooltipTriggerProps?: HTMLAttributes<HTMLElement>, tooltipRef?: RefObject<HTMLElement>) => ReactNode, defaultTooltipPlacement: OverlayProps["placement"]) => string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | import("react/jsx-runtime").JSX.Element | null | undefined;
73
88
  };
74
- declare const _ItemBase: import("react").ForwardRefExoticComponent<CubeItemBaseProps & import("react").RefAttributes<HTMLElement>>;
89
+ declare const _ItemBase: import("react").ForwardRefExoticComponent<CubeItemBaseProps & import("react").RefAttributes<HTMLElement>> & {
90
+ Action: import("react").ForwardRefExoticComponent<Omit<import("../../actions/ItemAction").CubeItemActionProps, "ref"> & import("react").RefAttributes<import("@react-types/shared").FocusableRefValue<HTMLElement, HTMLElement>>>;
91
+ Badge: import("react").ForwardRefExoticComponent<import("../ItemBadge").CubeItemBadgeProps & import("react").RefAttributes<HTMLDivElement>>;
92
+ };
75
93
  export { _ItemBase as ItemBase };
@@ -1 +1,2 @@
1
1
  export * from './ItemBase';
2
+ export * from '../ItemBadge';
@@ -1,4 +1,4 @@
1
- import { Key } from '@react-types/shared';
1
+ import { FocusableRef, Key } from '@react-types/shared';
2
2
  import React, { ForwardedRef, ReactElement, ReactNode, RefObject } from 'react';
3
3
  import { Section as BaseSection } from 'react-stately';
4
4
  import { FieldBaseProps } from '../../../shared';
@@ -23,6 +23,8 @@ export interface CubeComboBoxProps<T> extends BasePropsWithoutChildren, BaseStyl
23
23
  placeholder?: string;
24
24
  /** Whether the input should have autofocus */
25
25
  autoFocus?: boolean;
26
+ /** HTML autocomplete attribute for the input */
27
+ autoComplete?: string;
26
28
  /** Callback fired when focus enters the component (input, trigger, or popover). Does not receive event object. */
27
29
  onFocus?: () => void;
28
30
  /** Callback fired when focus leaves the component entirely. Does not receive event object. */
@@ -69,7 +71,7 @@ export interface CubeComboBoxProps<T> extends BasePropsWithoutChildren, BaseStyl
69
71
  /** Ref for accessing the popover element */
70
72
  popoverRef?: RefObject<HTMLDivElement>;
71
73
  /** Ref for accessing the trigger button element */
72
- triggerRef?: RefObject<HTMLButtonElement>;
74
+ triggerRef?: FocusableRef<HTMLButtonElement>;
73
75
  /** Custom styles for the input */
74
76
  inputStyles?: Styles;
75
77
  /** Custom styles for the trigger button */
@@ -13,6 +13,7 @@ interface CubeDateAtomInputProps extends ContainerStyleProps {
13
13
  size?: 'small' | 'medium' | 'large' | (string & {});
14
14
  validationState?: ValidationState;
15
15
  isLoading?: boolean;
16
+ suffix?: React.ReactNode;
16
17
  }
17
18
  declare const _DateInputBase: React.ForwardRefExoticComponent<CubeDateAtomInputProps & React.RefAttributes<unknown>>;
18
19
  export { _DateInputBase as DateInputBase };
@@ -56,7 +56,7 @@ export interface CubeListBoxProps<T> extends AriaListBoxProps<T>, CollectionBase
56
56
  /** Additional modifiers for styling the ListBox */
57
57
  mods?: Record<string, boolean>;
58
58
  /** Size variant of the ListBox */
59
- size?: 'medium' | 'large';
59
+ size?: 'small' | 'medium' | 'large';
60
60
  /**
61
61
  * When `true`, clicking an already-selected item keeps it selected instead of toggling it off.
62
62
  * Useful when embedding ListBox inside components like ComboBox.
@@ -86,7 +86,10 @@ declare const __Select: (<T extends object>(props: CubeSelectProps<object> & {
86
86
  Item: typeof Item;
87
87
  Section: typeof SelectSectionComponent;
88
88
  } & {
89
- Item: <T>(props: import("../../Item").CubeItemProps<T>) => ReactElement;
89
+ Item: (<T>(props: import("../../Item").CubeItemProps<T>) => ReactElement) & {
90
+ Action: React.ForwardRefExoticComponent<Omit<import("../../actions").CubeItemActionProps, "ref"> & React.RefAttributes<import("@react-types/shared").FocusableRefValue<HTMLElement, HTMLElement>>>;
91
+ Badge: React.ForwardRefExoticComponent<import("../../content/ItemBase").CubeItemBadgeProps & React.RefAttributes<HTMLDivElement>>;
92
+ };
90
93
  Section: any;
91
94
  };
92
95
  export { __Select as Select };
@@ -12,7 +12,6 @@ export * from './Slider';
12
12
  export * from './Switch/Switch';
13
13
  export * from './Select';
14
14
  export * from './ComboBox';
15
- export * from './LegacyComboBox';
16
15
  export * from './ListBox';
17
16
  export * from './FilterListBox';
18
17
  export * from './FilterPicker';
@@ -7,6 +7,10 @@ export type DisplayTransitionProps = {
7
7
  duration?: number;
8
8
  /** Fires after enter settles or after exit completes (unmount). */
9
9
  onRest?: (transition: 'enter' | 'exit') => void;
10
+ /** Fires when phase changes. */
11
+ onPhaseChange?: (phase: Phase) => void;
12
+ /** Fires when isShown (derived from phase) changes. */
13
+ onToggle?: (isShown: boolean) => void;
10
14
  /** Keep calling children during "unmounted" (you decide what to render). */
11
15
  exposeUnmounted?: boolean;
12
16
  /** If false and initially shown, start at "entered" (no first-mount animation/SSR pop). */
@@ -20,5 +24,5 @@ export type DisplayTransitionProps = {
20
24
  ref: RefCallback<HTMLElement>;
21
25
  }) => ReactNode;
22
26
  };
23
- export declare function DisplayTransition({ isShown: targetShown, duration, onRest, exposeUnmounted, animateOnMount, respectReducedMotion, children, }: DisplayTransitionProps): ReactNode;
27
+ export declare function DisplayTransition({ isShown: targetShown, duration, onRest, onPhaseChange, onToggle, exposeUnmounted, animateOnMount, respectReducedMotion, children, }: DisplayTransitionProps): ReactNode;
24
28
  export {};
@@ -1,5 +1,6 @@
1
1
  import { Styles } from 'src/tasty';
2
2
  export declare const VALIDATION_STYLES: Styles;
3
+ export declare const ITEM_ACTION_BASE_STYLES: Styles;
3
4
  export declare const DEFAULT_PRIMARY_STYLES: Styles;
4
5
  export declare const DEFAULT_SECONDARY_STYLES: Styles;
5
6
  export declare const DEFAULT_OUTLINE_STYLES: Styles;
package/types/index.d.ts CHANGED
@@ -9,6 +9,8 @@ export { Block } from './components/Block';
9
9
  export type { CubeBlockProps } from './components/Block';
10
10
  export { ItemBase } from './components/content/ItemBase/ItemBase';
11
11
  export type { CubeItemBaseProps } from './components/content/ItemBase/ItemBase';
12
+ export { ItemBadge } from './components/content/ItemBadge/ItemBadge';
13
+ export type { CubeItemBadgeProps } from './components/content/ItemBadge/ItemBadge';
12
14
  export { ActiveZone } from './components/content/ActiveZone/ActiveZone';
13
15
  export type { CubeActiveZoneProps } from './components/content/ActiveZone/ActiveZone';
14
16
  export * from './components/content/CopySnippet';
@@ -125,7 +127,7 @@ export { Portal } from './components/portal';
125
127
  export type { PortalProps } from './components/portal';
126
128
  export * from './components/fields';
127
129
  export type { TagName, AllBaseProps, BaseProps, BaseStyleProps, DimensionStyleProps, ColorStyleProps, OuterStyleProps, PositionStyleProps, TextStyleProps, BlockStyleProps, ContainerStyleProps, BasePropsWithoutChildren, Props, FlowStyleProps, ShortGridStyles, } from './tasty';
128
- export * from './utils/react';
130
+ export * from './utils';
129
131
  export * from './tasty';
130
132
  export { default as copy } from 'clipboard-copy';
131
133
  export * from '@react-aria/ssr';
package/types/tokens.d.ts CHANGED
@@ -5,6 +5,13 @@ export declare const SIZES: {
5
5
  LG: number;
6
6
  XL: number;
7
7
  };
8
+ export declare const SIZES_MAP: {
9
+ xsmall: string;
10
+ small: string;
11
+ medium: string;
12
+ large: string;
13
+ xlarge: string;
14
+ };
8
15
  declare const TOKENS: {
9
16
  'font-size': string;
10
17
  'line-height': string;
@@ -0,0 +1,9 @@
1
+ export * from './react';
2
+ export { chainRaf } from './raf';
3
+ export { toFlatTree } from './tree';
4
+ export { propDeprecationWarning } from './warnings';
5
+ export { extractModule } from './modules';
6
+ export { timeout } from './promise';
7
+ export { random, generateRandomId } from './random';
8
+ export { range } from './range';
9
+ export { ResizeSensor } from './ResizeSensor';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Chains N requestAnimationFrame calls and returns a cancel function.
3
+ * Useful for ensuring layout is complete before performing operations.
4
+ *
5
+ * @param callback - The function to call after N frames
6
+ * @param count - Number of RAF cycles to wait (default: 1)
7
+ * @returns A function to cancel the pending RAF call
8
+ *
9
+ * @example
10
+ * const cancel = chainRaf(() => {
11
+ * updatePosition();
12
+ * }, 3);
13
+ *
14
+ * // Later, if needed:
15
+ * cancel();
16
+ */
17
+ export declare function chainRaf(callback: () => void, count?: number): () => void;
@@ -1,290 +0,0 @@
1
- /**
2
- * @license MIT
3
- * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.84.0
5
- * Released under the MIT license.
6
- */
7
-
8
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
9
- import { cloneElement, forwardRef, useEffect, useMemo, } from 'react';
10
- import { useButton, useComboBox, useFilter, useHover, useOverlayPosition, } from 'react-aria';
11
- import { Section as BaseSection, useComboBoxState } from 'react-stately';
12
- import { useEvent } from '../../../_internal/index';
13
- import { CloseIcon, DownIcon, LoadingIcon } from '../../../icons';
14
- import { useProviderProps } from '../../../provider';
15
- import { BASE_STYLES, COLOR_STYLES, extractStyles, OUTER_STYLES, tasty, } from '../../../tasty';
16
- import { generateRandomId } from '../../../utils/random';
17
- import { mergeProps, useCombinedRefs, useLayoutEffect, } from '../../../utils/react';
18
- import { useFocus } from '../../../utils/react/interactions';
19
- import { useEventBus } from '../../../utils/react/useEventBus';
20
- import { ItemAction } from '../../actions';
21
- import { useFieldProps, useFormProps, wrapWithField } from '../../form';
22
- import { Item } from '../../Item';
23
- import { OverlayWrapper } from '../../overlays/OverlayWrapper';
24
- import { InvalidIcon } from '../../shared/InvalidIcon';
25
- import { ValidIcon } from '../../shared/ValidIcon';
26
- import { DEFAULT_INPUT_STYLES, INPUT_WRAPPER_STYLES } from '../index';
27
- import { ListBoxPopup } from '../Select';
28
- const LegacyComboBoxWrapperElement = tasty({
29
- styles: INPUT_WRAPPER_STYLES,
30
- });
31
- const InputElement = tasty({
32
- as: 'input',
33
- styles: DEFAULT_INPUT_STYLES,
34
- });
35
- const TriggerElement = tasty({
36
- as: 'button',
37
- type: 'neutral',
38
- styles: {
39
- display: 'grid',
40
- placeItems: 'center',
41
- placeContent: 'center',
42
- placeSelf: 'stretch',
43
- radius: '(1r - 1bw) right',
44
- padding: '0',
45
- width: '3x',
46
- boxSizing: 'border-box',
47
- color: {
48
- '': '#dark-02',
49
- hovered: '#dark-02',
50
- pressed: '#purple',
51
- disabled: '#dark.30',
52
- },
53
- border: 'left',
54
- reset: 'button',
55
- margin: 0,
56
- fill: {
57
- '': '#dark.0',
58
- hovered: '#dark.04',
59
- pressed: '#purple.10',
60
- disabled: '#clear',
61
- },
62
- cursor: 'pointer',
63
- },
64
- });
65
- const PROP_STYLES = [...BASE_STYLES, ...OUTER_STYLES, ...COLOR_STYLES];
66
- export const LegacyComboBox = forwardRef(function LegacyComboBox(props, ref) {
67
- props = useProviderProps(props);
68
- props = useFormProps(props);
69
- props = useFieldProps(props, {
70
- valuePropsMapper: ({ value, onChange }) => {
71
- return {
72
- selectedKey: !props.allowsCustomValue ? value ?? null : undefined,
73
- inputValue: props.allowsCustomValue ? value ?? '' : undefined,
74
- onInputChange(val) {
75
- if (!props.allowsCustomValue) {
76
- return;
77
- }
78
- onChange(val);
79
- },
80
- onSelectionChange(val) {
81
- if (val == null && props.allowsCustomValue) {
82
- return;
83
- }
84
- onChange(val);
85
- },
86
- };
87
- },
88
- });
89
- let { qa, label, extra, labelStyles, isRequired, necessityIndicator, validationState, icon, prefix, isDisabled, multiLine, autoFocus, wrapperRef, inputRef, triggerRef, popoverRef, listBoxRef, isLoading, loadingIndicator, overlayOffset = 8, inputStyles, optionStyles, triggerStyles, listBoxStyles, overlayStyles, wrapperStyles, suffix, hideTrigger, message, description, size = 'medium', autoComplete = 'off', direction = 'bottom', shouldFlip = true, menuTrigger = 'input', suffixPosition = 'before', loadingState, filter, styles, labelSuffix, selectedKey, defaultSelectedKey, isClearable, form, ...otherProps } = props;
90
- let isAsync = loadingState != null;
91
- let { contains } = useFilter({ sensitivity: 'base' });
92
- let comboBoxStateProps = {
93
- ...props,
94
- defaultFilter: filter || contains,
95
- filter: undefined,
96
- allowsEmptyCollection: isAsync,
97
- menuTrigger,
98
- };
99
- let state = useComboBoxState(comboBoxStateProps);
100
- // Generate a unique ID for this combobox instance
101
- const comboBoxId = useMemo(() => generateRandomId(), []);
102
- // Get event bus for menu synchronization
103
- const { emit, on } = useEventBus();
104
- // Listen for other menus opening and close this one if needed
105
- useEffect(() => {
106
- const unsubscribe = on('popover:open', (data) => {
107
- // If another menu is opening and this combobox is open, close this one
108
- if (data.menuId !== comboBoxId && state.isOpen) {
109
- state.close();
110
- }
111
- });
112
- return unsubscribe;
113
- }, [on, comboBoxId, state]);
114
- // Emit event when this combobox opens
115
- useEffect(() => {
116
- if (state.isOpen) {
117
- emit('popover:open', { menuId: comboBoxId });
118
- }
119
- }, [state.isOpen, emit, comboBoxId]);
120
- styles = extractStyles(otherProps, PROP_STYLES, styles);
121
- ref = useCombinedRefs(ref);
122
- wrapperRef = useCombinedRefs(wrapperRef);
123
- inputRef = useCombinedRefs(inputRef);
124
- triggerRef = useCombinedRefs(triggerRef);
125
- popoverRef = useCombinedRefs(popoverRef);
126
- listBoxRef = useCombinedRefs(listBoxRef);
127
- let { overlayProps, placement, updatePosition } = useOverlayPosition({
128
- targetRef: triggerRef,
129
- overlayRef: popoverRef,
130
- scrollRef: listBoxRef,
131
- placement: `${direction} end`,
132
- shouldFlip: shouldFlip,
133
- isOpen: state.isOpen,
134
- onClose: state.close,
135
- offset: overlayOffset,
136
- });
137
- let { labelProps, inputProps, listBoxProps, buttonProps: triggerProps, } = useComboBox({
138
- ...comboBoxStateProps,
139
- inputRef,
140
- buttonRef: triggerRef,
141
- listBoxRef,
142
- popoverRef,
143
- menuTrigger,
144
- }, state);
145
- let { isFocused, focusProps } = useFocus({ isDisabled });
146
- let { hoverProps, isHovered } = useHover({ isDisabled });
147
- // Get props for the button based on the trigger props from useComboBox
148
- let { buttonProps, isPressed: isTriggerPressed } = useButton(triggerProps, triggerRef);
149
- let { hoverProps: triggerHoverProps, isHovered: isTriggerHovered } = useHover({ isDisabled });
150
- let { focusProps: triggerFocusProps, isFocused: isTriggerFocused } = useFocus({ isDisabled }, true);
151
- useLayoutEffect(() => {
152
- if (state.isOpen) {
153
- updatePosition();
154
- }
155
- }, [state.isOpen, state.collection.size]);
156
- let isInvalid = validationState === 'invalid';
157
- let validationIcon = isInvalid ? InvalidIcon : ValidIcon;
158
- let validation = cloneElement(validationIcon);
159
- // Clear button logic
160
- let hasValue = props.allowsCustomValue
161
- ? state.inputValue !== ''
162
- : state.selectedKey != null;
163
- let showClearButton = isClearable && hasValue && !isDisabled && !props.isReadOnly;
164
- // Clear function
165
- let clearValue = useEvent(() => {
166
- // Always clear input value in state so UI resets to placeholder
167
- state.setInputValue('');
168
- // Notify external input value only when custom value mode is enabled
169
- if (props.allowsCustomValue) {
170
- props.onInputChange?.('');
171
- }
172
- props.onSelectionChange?.(null);
173
- state.setSelectedKey(null);
174
- // Close the popup if it's open
175
- if (state.isOpen) {
176
- state.close();
177
- }
178
- // Focus back to the input
179
- inputRef.current?.focus();
180
- props.onClear?.();
181
- });
182
- let comboBoxWidth = wrapperRef?.current?.offsetWidth;
183
- if (icon) {
184
- icon = _jsx("div", { "data-element": "InputIcon", children: icon });
185
- if (prefix) {
186
- prefix = (_jsxs(_Fragment, { children: [icon, prefix] }));
187
- }
188
- else {
189
- prefix = icon;
190
- }
191
- }
192
- let mods = useMemo(() => ({
193
- invalid: isInvalid,
194
- valid: validationState === 'valid',
195
- disabled: isDisabled,
196
- hovered: isHovered,
197
- focused: isFocused,
198
- loading: isLoading,
199
- prefix: !!prefix,
200
- suffix: true,
201
- clearable: showClearButton,
202
- }), [
203
- isInvalid,
204
- validationState,
205
- isDisabled,
206
- isHovered,
207
- isFocused,
208
- isLoading,
209
- prefix,
210
- showClearButton,
211
- ]);
212
- // If input is not full and the user presses Enter, pick the first option.
213
- let onKeyPress = useEvent((e) => {
214
- if (!props.onSelectionChange) {
215
- return;
216
- }
217
- if (e.key === 'Enter') {
218
- if (!props.allowsCustomValue) {
219
- if (state.isOpen) {
220
- // If there is a selected option then do nothing. It will be selected on Enter anyway.
221
- if (listBoxRef.current?.querySelector('li[aria-selected="true"]')) {
222
- return;
223
- }
224
- const option = [...state.collection][0]?.key;
225
- if (option && selectedKey !== option) {
226
- props.onSelectionChange?.(option);
227
- e.stopPropagation();
228
- e.preventDefault();
229
- }
230
- }
231
- else if (inputRef.current?.value &&
232
- ![...state.collection]
233
- .map((i) => i.textValue)
234
- .includes(inputRef.current?.value)) {
235
- // If the input value is not in the collection, we need to prevent the submitting of the form.
236
- // Also, we reset value manually.
237
- e.preventDefault();
238
- props.onSelectionChange?.(null);
239
- }
240
- // If a custom value is allowed, we need to check if the input value is in the collection.
241
- }
242
- else if (props.allowsCustomValue) {
243
- const inputValue = inputRef?.current?.value;
244
- const item = [...state.collection].find((item) => item.textValue.toLowerCase() === inputValue?.toLowerCase());
245
- props.onSelectionChange?.(item ? item.key : inputRef?.current?.value ?? '');
246
- }
247
- }
248
- });
249
- let onBlur = useEvent((e) => {
250
- // If the input value is not in the collection, we need to reset the value.
251
- if (!props.allowsCustomValue &&
252
- inputRef.current?.value &&
253
- ![...state.collection]
254
- .map((i) => i.textValue)
255
- .includes(inputRef.current?.value)) {
256
- props.onSelectionChange?.(null);
257
- }
258
- });
259
- useEffect(() => {
260
- inputRef.current?.addEventListener('keydown', onKeyPress, true);
261
- inputRef.current?.addEventListener('blur', onBlur, true);
262
- return () => {
263
- inputRef.current?.removeEventListener('keydown', onKeyPress, true);
264
- inputRef.current?.removeEventListener('blur', onBlur, true);
265
- };
266
- }, []);
267
- let allInputProps = useMemo(() => mergeProps(inputProps, hoverProps, focusProps), [inputProps, hoverProps, focusProps]);
268
- let comboBoxField = (_jsxs(LegacyComboBoxWrapperElement, { ref: wrapperRef, qa: qa || 'LegacyComboBox', mods: mods, styles: wrapperStyles, style: {
269
- zIndex: isFocused ? 1 : 'initial',
270
- }, "data-size": size, children: [prefix ? _jsx("div", { "data-element": "Prefix", children: prefix }) : null, _jsx(InputElement, { ref: inputRef, qa: "Input", autoFocus: autoFocus, "data-autofocus": autoFocus ? '' : undefined, ...allInputProps, autoComplete: autoComplete, styles: inputStyles, mods: mods, "data-size": size }), _jsxs("div", { "data-element": "Suffix", children: [suffixPosition === 'before' ? suffix : null, validationState || isLoading ? (_jsxs(_Fragment, { children: [validationState && !isLoading ? validation : null, isLoading ? _jsx(LoadingIcon, {}) : null] })) : null, suffixPosition === 'after' ? suffix : null, showClearButton && (_jsx(ItemAction, { icon: _jsx(CloseIcon, {}), size: size, theme: validationState === 'invalid' ? 'danger' : undefined, qa: "LegacyComboBoxClearButton", "data-no-trigger": hideTrigger ? '' : undefined, onPress: clearValue })), !hideTrigger ? (_jsx(TriggerElement, { "data-popover-trigger": true, qa: "LegacyComboBoxTrigger", ...mergeProps(buttonProps, triggerFocusProps, triggerHoverProps), ref: triggerRef, mods: {
271
- pressed: isTriggerPressed,
272
- focused: isTriggerFocused,
273
- hovered: isTriggerHovered,
274
- disabled: isDisabled,
275
- loading: isLoading,
276
- }, "data-size": size, isDisabled: isDisabled, styles: triggerStyles, children: _jsx(DownIcon, {}) })) : null] }), _jsx(OverlayWrapper, { isOpen: state.isOpen && !isDisabled, children: _jsx(ListBoxPopup, { ...listBoxProps, shouldUseVirtualFocus: true, listBoxRef: listBoxRef, popoverRef: popoverRef, overlayProps: overlayProps, placement: placement, state: state, listBoxStyles: listBoxStyles, overlayStyles: overlayStyles, optionStyles: optionStyles, minWidth: comboBoxWidth, triggerRef: triggerRef }) })] }));
277
- return wrapWithField(comboBoxField, ref, mergeProps({ ...props, styles }, { labelProps }));
278
- });
279
- const LegacyComboBoxSectionComponent = Object.assign(BaseSection, {
280
- displayName: 'Section',
281
- });
282
- LegacyComboBox.Item = Item;
283
- LegacyComboBox.Section = LegacyComboBoxSectionComponent;
284
- Object.defineProperty(LegacyComboBox, 'cubeInputType', {
285
- value: 'LegacyComboBox',
286
- enumerable: false,
287
- configurable: false,
288
- });
289
-
290
-
@@ -1,63 +0,0 @@
1
- /**
2
- * @license MIT
3
- * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.84.0
5
- * Released under the MIT license.
6
- */
7
-
8
- const DIRECTION_MAP = {
9
- initial: 'top center',
10
- top: 'bottom center',
11
- right: 'center left',
12
- left: 'center right',
13
- bottom: 'top center',
14
- };
15
- const TRANSLATE_MAP = {
16
- initial: 'translate(0px, calc(-1 * var(--overlay-offset)))',
17
- top: 'translate(0px, calc(1 * var(--overlay-offset)))',
18
- right: 'translate(calc(-1 * var(--overlay-offset)), 0px)',
19
- left: 'translate(calc(1 * var(--overlay-offset)), 0px)',
20
- bottom: 'translate(0px, calc(-1 * var(--overlay-offset)))',
21
- };
22
- export const getOverlayTransitionCSS = ({ suffix = '', placement = 'initial', minScale = 0.8, minOffset = '8px', } = {}) => `
23
- &${suffix} {
24
- transform: var(--overlay-position);
25
- transform-origin: ${DIRECTION_MAP[placement]};
26
- --overlay-offset: ${minOffset};
27
- --overlay-hidden-x-scale: ${placement === 'top' || placement === 'bottom' || placement === 'initial'
28
- ? '1'
29
- : minScale};
30
- --overlay-hidden-y-scale: ${placement === 'left' || placement === 'right' ? '1' : minScale};
31
- --overlay-translate-visible: translate(0px, 0px);
32
- --overlay-translate-hidden: ${TRANSLATE_MAP[placement]};
33
- --overlay-transition: 120ms;
34
- --overlay-hidden-scale: scale(var(--overlay-hidden-x-scale), var(--overlay-hidden-y-scale));
35
- --overlay-normal-scale: scale(1, 1);
36
- }
37
-
38
- &.cube-overlay-transition-enter${suffix} {
39
- opacity: 0;
40
- transform: var(--overlay-translate-hidden) var(--overlay-hidden-scale);
41
- }
42
-
43
- &.cube-overlay-transition-enter-active${suffix} {
44
- opacity: 1;
45
- transform: var(--overlay-translate-visible) var(--overlay-normal-scale);
46
- transition: transform var(--overlay-transition) cubic-bezier(0, .66, 0, .66), opacity var(--overlay-transition) cubic-bezier(0, .66, 0, .66);
47
- pointer-events: none;
48
- }
49
-
50
- &.cube-overlay-transition-exit${suffix} {
51
- opacity: 1;
52
- transform: var(--overlay-translate-visible) var(--overlay-normal-scale);
53
- }
54
-
55
- &.cube-overlay-transition-exit-active${suffix} {
56
- opacity: 0;
57
- transform: var(--overlay-translate-hidden) var(--overlay-hidden-scale);
58
- pointer-events: none;
59
- transition: transform var(--overlay-transition) cubic-bezier(.66, 0, .66, 0), opacity var(--overlay-transition) cubic-bezier(.66, 0, .66, 0);
60
- }
61
- `;
62
-
63
-
@@ -1,49 +0,0 @@
1
- import { ForwardedRef, ReactElement, RefObject } from 'react';
2
- import { AriaComboBoxProps, AriaTextFieldProps } from 'react-aria';
3
- import { Section as BaseSection } from 'react-stately';
4
- import { FieldBaseProps } from '../../../shared';
5
- import { Item } from '../../Item';
6
- import type { KeyboardDelegate, LoadingState } from '@react-types/shared';
7
- import type { CubeSelectBaseProps } from '../Select';
8
- type FilterFn = (textValue: string, inputValue: string) => boolean;
9
- export type MenuTriggerAction = 'focus' | 'input' | 'manual';
10
- export interface CubeLegacyComboBoxProps<T> extends Omit<CubeSelectBaseProps<T>, 'onOpenChange' | 'onBlur' | 'onFocus' | 'validate' | 'onSelectionChange'>, Omit<AriaComboBoxProps<T>, 'errorMessage'>, Omit<AriaTextFieldProps, 'errorMessage'>, FieldBaseProps {
11
- defaultSelectedKey?: string | null;
12
- selectedKey?: string | null;
13
- onSelectionChange?: (selectedKey: string | null) => void;
14
- onInputChange?: (inputValue: string) => void;
15
- inputValue?: string;
16
- placeholder?: string;
17
- icon?: ReactElement;
18
- multiLine?: boolean;
19
- autoComplete?: string;
20
- wrapperRef?: RefObject<HTMLDivElement>;
21
- inputRef?: RefObject<HTMLInputElement>;
22
- /** The ref for the list box popover. */
23
- popoverRef?: RefObject<HTMLDivElement>;
24
- /** The ref for the list box. */
25
- listBoxRef?: RefObject<HTMLElement>;
26
- /** An optional keyboard delegate implementation, to override the default. */
27
- keyboardDelegate?: KeyboardDelegate;
28
- loadingState?: LoadingState;
29
- /**
30
- * The filter function used to determine if a option should be included in the combo box list.
31
- * Has no effect when `items` is provided.
32
- */
33
- filter?: FilterFn;
34
- size?: 'small' | 'medium' | 'large' | (string & {});
35
- suffixPosition?: 'before' | 'after';
36
- menuTrigger?: MenuTriggerAction;
37
- allowsCustomValue?: boolean;
38
- /** Whether the combo box is clearable using ESC keyboard button or clear button inside the input */
39
- isClearable?: boolean;
40
- /** Callback called when the clear button is pressed */
41
- onClear?: () => void;
42
- }
43
- export declare const LegacyComboBox: (<T>(props: CubeLegacyComboBoxProps<T> & {
44
- ref?: ForwardedRef<HTMLDivElement>;
45
- }) => ReactElement) & {
46
- Item: typeof Item;
47
- Section: typeof BaseSection;
48
- };
49
- export {};
@@ -1 +0,0 @@
1
- export * from './LegacyComboBox';
@@ -1,8 +0,0 @@
1
- export interface OverlayTransitionCSSProps {
2
- suffix?: string;
3
- placement?: string;
4
- minScale?: string | number;
5
- minOffset?: string;
6
- forChild?: boolean;
7
- }
8
- export declare const getOverlayTransitionCSS: ({ suffix, placement, minScale, minOffset, }?: OverlayTransitionCSSProps) => string;