@cube-dev/ui-kit 0.97.1 → 0.98.0

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 (570) hide show
  1. package/CHANGELOG.md +35 -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 +197 -64
  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 +5 -2
  33. package/es/components/actions/ItemButton/ItemButton.js +28 -11
  34. package/es/components/actions/ItemButton/index.js +1 -1
  35. package/es/components/actions/Link/Link.js +2 -2
  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 +8 -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/Disclosure/Disclosure.js +8 -3
  63. package/es/components/content/Disclosure/index.js +1 -1
  64. package/es/components/content/Divider.js +1 -1
  65. package/es/components/content/Footer.js +1 -1
  66. package/es/components/content/Header.js +1 -1
  67. package/es/components/content/HotKeys/HotKeys.js +1 -1
  68. package/es/components/content/HotKeys/index.js +1 -1
  69. package/es/components/content/Item/Item.js +179 -60
  70. package/es/components/content/Item/index.js +1 -1
  71. package/es/components/content/ItemBadge/ItemBadge.js +1 -1
  72. package/es/components/content/ItemBadge/index.js +1 -1
  73. package/es/components/content/Layout/GridLayout.js +1 -1
  74. package/es/components/content/Layout/Layout.js +14 -8
  75. package/es/components/content/Layout/LayoutBlock.js +1 -1
  76. package/es/components/content/Layout/LayoutCenter.js +1 -1
  77. package/es/components/content/Layout/LayoutContainer.js +8 -5
  78. package/es/components/content/Layout/LayoutContent.js +11 -9
  79. package/es/components/content/Layout/LayoutContext.js +1 -1
  80. package/es/components/content/Layout/LayoutFlex.js +1 -1
  81. package/es/components/content/Layout/LayoutFooter.js +5 -1
  82. package/es/components/content/Layout/LayoutGrid.js +1 -1
  83. package/es/components/content/Layout/LayoutHeader.js +1 -1
  84. package/es/components/content/Layout/LayoutPane.js +9 -7
  85. package/es/components/content/Layout/LayoutPanel.js +8 -4
  86. package/es/components/content/Layout/LayoutPanelHeader.js +3 -6
  87. package/es/components/content/Layout/LayoutToolbar.js +2 -1
  88. package/es/components/content/Layout/hooks/useTinyScrollbar.js +15 -5
  89. package/es/components/content/Layout/index.js +1 -1
  90. package/es/components/content/Layout/utils.js +1 -1
  91. package/es/components/content/List/SectionHeading.js +1 -1
  92. package/es/components/content/List/index.js +1 -1
  93. package/es/components/content/Paragraph.js +1 -1
  94. package/es/components/content/Placeholder/Placeholder.js +1 -1
  95. package/es/components/content/PrismCode/PrismCode.js +1 -1
  96. package/es/components/content/PrismCode/prismSetup.js +1 -1
  97. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  98. package/es/components/content/Result/Result.js +1 -1
  99. package/es/components/content/Skeleton/Skeleton.js +1 -1
  100. package/es/components/content/Tag/Tag.js +15 -25
  101. package/es/components/content/Text.js +3 -2
  102. package/es/components/content/TextItem/TextItem.js +1 -1
  103. package/es/components/content/TextItem/index.js +1 -1
  104. package/es/components/content/Title.js +1 -1
  105. package/es/components/content/highlightText.js +1 -1
  106. package/es/components/content/use-auto-tooltip.js +1 -1
  107. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  108. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  109. package/es/components/fields/Checkbox/context.js +1 -1
  110. package/es/components/fields/Checkbox/index.js +1 -1
  111. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  112. package/es/components/fields/ComboBox/index.js +1 -1
  113. package/es/components/fields/DatePicker/DateInput.js +1 -1
  114. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  115. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  116. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  117. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  118. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  119. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  120. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  121. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  122. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  123. package/es/components/fields/DatePicker/index.js +1 -1
  124. package/es/components/fields/DatePicker/intl.js +1 -1
  125. package/es/components/fields/DatePicker/parseDate.js +1 -1
  126. package/es/components/fields/DatePicker/props.js +1 -1
  127. package/es/components/fields/DatePicker/types.js +1 -1
  128. package/es/components/fields/DatePicker/utils.js +1 -1
  129. package/es/components/fields/FileInput/FileInput.js +1 -1
  130. package/es/components/fields/FilterListBox/FilterListBox.js +6 -7
  131. package/es/components/fields/FilterListBox/index.js +1 -1
  132. package/es/components/fields/FilterPicker/FilterPicker.js +3 -3
  133. package/es/components/fields/FilterPicker/index.js +1 -1
  134. package/es/components/fields/Input/Input.js +1 -1
  135. package/es/components/fields/Input/index.js +1 -1
  136. package/es/components/fields/ListBox/ListBox.js +1 -1
  137. package/es/components/fields/ListBox/index.js +1 -1
  138. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  139. package/es/components/fields/NumberInput/StepButton.js +8 -11
  140. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  141. package/es/components/fields/Picker/Picker.js +3 -3
  142. package/es/components/fields/Picker/index.js +1 -1
  143. package/es/components/fields/RadioGroup/Radio.js +1 -1
  144. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  145. package/es/components/fields/RadioGroup/context.js +1 -1
  146. package/es/components/fields/RadioGroup/index.js +1 -1
  147. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  148. package/es/components/fields/SearchInput/index.js +1 -1
  149. package/es/components/fields/Select/Select.js +4 -4
  150. package/es/components/fields/Select/index.js +1 -1
  151. package/es/components/fields/Slider/Gradation.js +1 -1
  152. package/es/components/fields/Slider/Header.js +1 -1
  153. package/es/components/fields/Slider/RangeSlider.js +1 -1
  154. package/es/components/fields/Slider/Slider.js +1 -1
  155. package/es/components/fields/Slider/SliderBase.js +1 -1
  156. package/es/components/fields/Slider/SliderInput.js +1 -1
  157. package/es/components/fields/Slider/SliderThumb.js +1 -1
  158. package/es/components/fields/Slider/SliderTrack.js +1 -1
  159. package/es/components/fields/Slider/elements.js +1 -1
  160. package/es/components/fields/Slider/index.js +1 -1
  161. package/es/components/fields/Slider/types.js +1 -1
  162. package/es/components/fields/Switch/Switch.js +1 -1
  163. package/es/components/fields/Switch/index.js +1 -1
  164. package/es/components/fields/TextArea/TextArea.js +1 -1
  165. package/es/components/fields/TextArea/index.js +1 -1
  166. package/es/components/fields/TextInput/TextInput.js +1 -1
  167. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  168. package/es/components/fields/TextInput/index.js +1 -1
  169. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  170. package/es/components/fields/TextInputMapper/index.js +1 -1
  171. package/es/components/fields/index.js +1 -1
  172. package/es/components/form/FieldWrapper/FieldWrapper.js +3 -3
  173. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  174. package/es/components/form/FieldWrapper/index.js +1 -1
  175. package/es/components/form/FieldWrapper/types.js +1 -1
  176. package/es/components/form/Form/Field.js +1 -1
  177. package/es/components/form/Form/Form.js +1 -1
  178. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  179. package/es/components/form/Form/ResetButton/index.js +1 -1
  180. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  181. package/es/components/form/Form/SubmitButton/index.js +1 -1
  182. package/es/components/form/Form/SubmitError.js +1 -1
  183. package/es/components/form/Form/index.js +1 -1
  184. package/es/components/form/Form/types.js +1 -1
  185. package/es/components/form/Form/use-field/index.js +1 -1
  186. package/es/components/form/Form/use-field/types.js +1 -1
  187. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  188. package/es/components/form/Form/use-field/use-field.js +1 -1
  189. package/es/components/form/Form/use-form.js +1 -1
  190. package/es/components/form/Form/validation.js +1 -1
  191. package/es/components/form/Label.js +1 -1
  192. package/es/components/form/index.js +1 -1
  193. package/es/components/form/wrapper.js +1 -1
  194. package/es/components/helpers/DisplayTransition/DisplayTransition.js +33 -8
  195. package/es/components/helpers/DisplayTransition/index.js +10 -0
  196. package/es/components/helpers/IconSwitch/IconSwitch.js +143 -0
  197. package/es/components/helpers/index.js +2 -1
  198. package/es/components/layout/Flex.js +1 -1
  199. package/es/components/layout/Flow.js +1 -1
  200. package/es/components/layout/Grid.js +1 -1
  201. package/es/components/layout/Panel.js +1 -1
  202. package/es/components/layout/Prefix.js +1 -1
  203. package/es/components/layout/ResizablePanel.js +2 -2
  204. package/es/components/layout/Space.js +1 -1
  205. package/es/components/layout/Suffix.js +1 -1
  206. package/es/components/navigation/LegacyTabs/LegacyTabs.js +1 -1
  207. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  208. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  209. package/es/components/other/Base64Upload/Base64Upload.js +3 -2
  210. package/es/components/other/Calendar/Calendar.js +1 -1
  211. package/es/components/other/Calendar/CalendarCell.js +1 -1
  212. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  213. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  214. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  215. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  216. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  217. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  218. package/es/components/overlays/AlertDialog/index.js +1 -1
  219. package/es/components/overlays/AlertDialog/types.js +1 -1
  220. package/es/components/overlays/Dialog/Dialog.js +8 -8
  221. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  222. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  223. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  224. package/es/components/overlays/Dialog/context.js +1 -1
  225. package/es/components/overlays/Dialog/index.js +1 -1
  226. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  227. package/es/components/overlays/Modal/Modal.js +3 -3
  228. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  229. package/es/components/overlays/Modal/Overlay.js +1 -1
  230. package/es/components/overlays/Modal/Popover.js +1 -1
  231. package/es/components/overlays/Modal/Tray.js +1 -1
  232. package/es/components/overlays/Modal/Underlay.js +1 -1
  233. package/es/components/overlays/Modal/index.js +1 -1
  234. package/es/components/overlays/Modal/types.js +1 -1
  235. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  236. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  237. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  238. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  239. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  240. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  241. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  242. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  243. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  244. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +2 -2
  245. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  246. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  247. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  248. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  249. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  250. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  251. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  252. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  253. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  254. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  255. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  256. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  257. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  258. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  259. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  260. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  261. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  262. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  263. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  264. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  265. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  266. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  267. package/es/components/overlays/NewNotifications/index.js +1 -1
  268. package/es/components/overlays/NewNotifications/types.js +1 -1
  269. package/es/components/overlays/Notification/Notification.js +1 -1
  270. package/es/components/overlays/OverlayWrapper.js +1 -1
  271. package/es/components/overlays/Toasts/Toast.js +1 -1
  272. package/es/components/overlays/Toasts/index.js +1 -1
  273. package/es/components/overlays/Toasts/types.js +1 -1
  274. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  275. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  276. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  277. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  278. package/es/components/overlays/Tooltip/context.js +1 -1
  279. package/es/components/overlays/Tooltip/index.js +1 -1
  280. package/es/components/portal/Portal.js +1 -1
  281. package/es/components/portal/PortalProvider.js +1 -1
  282. package/es/components/portal/index.js +1 -1
  283. package/es/components/portal/types.js +1 -1
  284. package/es/components/portal/usePortal.js +1 -1
  285. package/es/components/shared/InvalidIcon.js +1 -1
  286. package/es/components/shared/ValidIcon.js +1 -1
  287. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  288. package/es/components/status/LoadingAnimation/index.js +1 -1
  289. package/es/components/status/Spin/Cube.js +1 -1
  290. package/es/components/status/Spin/InternalSpinner.js +1 -1
  291. package/es/components/status/Spin/Spin.js +1 -1
  292. package/es/components/status/Spin/SpinsContainer.js +1 -1
  293. package/es/components/status/Spin/index.js +1 -1
  294. package/es/components/status/Spin/types.js +1 -1
  295. package/es/components/status/index.js +1 -1
  296. package/es/data/item-themes.js +23 -1
  297. package/es/data/themes.js +1 -1
  298. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  299. package/es/icons/AdjustmentsIcon.js +1 -1
  300. package/es/icons/AiIcon.js +1 -1
  301. package/es/icons/AreaChartIcon.js +1 -1
  302. package/es/icons/BackwardIcon.js +1 -1
  303. package/es/icons/BarChartIcon.js +1 -1
  304. package/es/icons/BellFilledIcon.js +1 -1
  305. package/es/icons/BellIcon.js +1 -1
  306. package/es/icons/BooleanIcon.js +1 -1
  307. package/es/icons/CalendarEditIcon.js +1 -1
  308. package/es/icons/CalendarIcon.js +1 -1
  309. package/es/icons/CaretDownIcon.js +1 -1
  310. package/es/icons/CaretUpIcon.js +1 -1
  311. package/es/icons/ChartAreaStackedIcon.js +1 -1
  312. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  313. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  314. package/es/icons/ChartBarGroupedIcon.js +1 -1
  315. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  316. package/es/icons/ChartBarLineIcon.js +1 -1
  317. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  318. package/es/icons/ChartBarStackedIcon.js +1 -1
  319. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  320. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  321. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  322. package/es/icons/ChartBoxPlotIcon.js +1 -1
  323. package/es/icons/ChartBubbleIcon.js +1 -1
  324. package/es/icons/ChartDonut2Icon.js +1 -1
  325. package/es/icons/ChartFunnelIcon.js +1 -1
  326. package/es/icons/ChartHeatmapIcon.js +1 -1
  327. package/es/icons/ChartKPIIcon.js +1 -1
  328. package/es/icons/ChartPie2Icon.js +1 -1
  329. package/es/icons/ChartScatterIcon.js +1 -1
  330. package/es/icons/CheckCircleFilledIcon.js +1 -1
  331. package/es/icons/CheckCircleIcon.js +1 -1
  332. package/es/icons/CheckIcon.js +1 -1
  333. package/es/icons/CircleFilledIcon.js +1 -1
  334. package/es/icons/ClearIcon.js +1 -1
  335. package/es/icons/CloseCircleFilledIcon.js +1 -1
  336. package/es/icons/CloseCircleIcon.js +1 -1
  337. package/es/icons/CloseIcon.js +1 -1
  338. package/es/icons/CodeIcon.js +1 -1
  339. package/es/icons/CopyIcon.js +1 -1
  340. package/es/icons/CountIcon.js +1 -1
  341. package/es/icons/CubeIcon.js +1 -1
  342. package/es/icons/CubePauseIcon.js +1 -1
  343. package/es/icons/CubePlayIcon.js +1 -1
  344. package/es/icons/CurrencyDollarIcon.js +1 -1
  345. package/es/icons/DangerIcon.js +1 -1
  346. package/es/icons/DashboardIcon.js +1 -1
  347. package/es/icons/DatabaseIcon.js +1 -1
  348. package/es/icons/DecimalDecreaseIcon.js +1 -1
  349. package/es/icons/DecimalIncreaseIcon.js +1 -1
  350. package/es/icons/DirectionIcon.js +1 -1
  351. package/es/icons/DonutIcon.js +1 -1
  352. package/es/icons/DownIcon.js +1 -1
  353. package/es/icons/EditIcon.js +1 -1
  354. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  355. package/es/icons/ExclamationCircleIcon.js +1 -1
  356. package/es/icons/ExclamationIcon.js +1 -1
  357. package/es/icons/EyeIcon.js +1 -1
  358. package/es/icons/EyeInvisibleIcon.js +1 -1
  359. package/es/icons/FilterIcon.js +1 -1
  360. package/es/icons/FolderFilledIcon.js +1 -1
  361. package/es/icons/FolderIcon.js +1 -1
  362. package/es/icons/FolderOpenFilledIcon.js +1 -1
  363. package/es/icons/FolderOpenIcon.js +1 -1
  364. package/es/icons/ForwardIcon.js +1 -1
  365. package/es/icons/HierarchyIcon.js +1 -1
  366. package/es/icons/HierarchyOpenIcon.js +1 -1
  367. package/es/icons/Icon.js +1 -1
  368. package/es/icons/InfoCircleIcon.js +1 -1
  369. package/es/icons/InfoIcon.js +1 -1
  370. package/es/icons/KeyIcon.js +1 -1
  371. package/es/icons/LeftIcon.js +1 -1
  372. package/es/icons/LineChartIcon.js +1 -1
  373. package/es/icons/LoadingIcon.js +1 -1
  374. package/es/icons/LockFilledIcon.js +1 -1
  375. package/es/icons/LockIcon.js +1 -1
  376. package/es/icons/MoreIcon.js +1 -1
  377. package/es/icons/NotAllowedIcon.js +1 -1
  378. package/es/icons/Number123Icon.js +1 -1
  379. package/es/icons/NumberIcon.js +1 -1
  380. package/es/icons/PauseCircleFilledIcon.js +1 -1
  381. package/es/icons/PauseCircleIcon.js +1 -1
  382. package/es/icons/PauseIcon.js +1 -1
  383. package/es/icons/PercentageIcon.js +1 -1
  384. package/es/icons/PieChartIcon.js +1 -1
  385. package/es/icons/PlayCircleIcon.js +1 -1
  386. package/es/icons/PlayIcon.js +1 -1
  387. package/es/icons/PlusIcon.js +1 -1
  388. package/es/icons/ProgressBarIcon.js +1 -1
  389. package/es/icons/ReloadIcon.js +1 -1
  390. package/es/icons/ReportIcon.js +1 -1
  391. package/es/icons/ReturnIcon.js +1 -1
  392. package/es/icons/RightIcon.js +1 -1
  393. package/es/icons/SchemeIcon.js +1 -1
  394. package/es/icons/SearchIcon.js +1 -1
  395. package/es/icons/SettingsIcon.js +1 -1
  396. package/es/icons/ShieldFilledIcon.js +1 -1
  397. package/es/icons/ShieldIcon.js +1 -1
  398. package/es/icons/SlashIcon.js +1 -1
  399. package/es/icons/SparklesIcon.js +1 -1
  400. package/es/icons/SqlIcon.js +1 -1
  401. package/es/icons/StatsIcon.js +1 -1
  402. package/es/icons/StopIcon.js +1 -1
  403. package/es/icons/StringIcon.js +1 -1
  404. package/es/icons/SwitchIcon.js +1 -1
  405. package/es/icons/TableIcon.js +1 -1
  406. package/es/icons/ThumbsDownIcon.js +1 -1
  407. package/es/icons/ThumbsUpIcon.js +1 -1
  408. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  409. package/es/icons/ThunderboltFilledIcon.js +1 -1
  410. package/es/icons/ThunderboltIcon.js +1 -1
  411. package/es/icons/TimeIcon.js +1 -1
  412. package/es/icons/TrashIcon.js +1 -1
  413. package/es/icons/UnlockIcon.js +1 -1
  414. package/es/icons/UpIcon.js +1 -1
  415. package/es/icons/UserGroupIcon.js +1 -1
  416. package/es/icons/UserIcon.js +1 -1
  417. package/es/icons/UserLockIcon.js +1 -1
  418. package/es/icons/ViewIcon.js +1 -1
  419. package/es/icons/WarningFilledIcon.js +1 -1
  420. package/es/icons/WarningIcon.js +1 -1
  421. package/es/icons/add-new-icon.js +1 -1
  422. package/es/icons/index.js +1 -1
  423. package/es/icons/wrap-icon.js +1 -1
  424. package/es/index.js +1 -1
  425. package/es/provider.js +1 -1
  426. package/es/providers/TrackingProvider.js +1 -1
  427. package/es/providers/navigation.types.js +1 -1
  428. package/es/providers/navigationAdapter.default.js +1 -1
  429. package/es/services/notification.js +1 -1
  430. package/es/shared/form.js +1 -1
  431. package/es/shared/index.js +1 -1
  432. package/es/stories/Form.legacy-stories.js +1 -1
  433. package/es/stories/FormFieldArgs.js +1 -1
  434. package/es/stories/SimpleLayout.stories.js +1 -1
  435. package/es/stories/Tasty.stories.js +1 -1
  436. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  437. package/es/stories/components/DialogFormApp.js +1 -1
  438. package/es/stories/components/StyledButton.js +1 -1
  439. package/es/stories/lists/baseProps.js +1 -1
  440. package/es/tasty/debug.js +1 -1
  441. package/es/tasty/index.js +2 -1
  442. package/es/tasty/injector/index.js +1 -1
  443. package/es/tasty/injector/injector.js +1 -1
  444. package/es/tasty/injector/sheet-manager.js +1 -1
  445. package/es/tasty/injector/types.js +1 -1
  446. package/es/tasty/parser/classify.js +1 -1
  447. package/es/tasty/parser/const.js +1 -1
  448. package/es/tasty/parser/lru.js +1 -1
  449. package/es/tasty/parser/parser.js +1 -1
  450. package/es/tasty/parser/tokenizer.js +1 -1
  451. package/es/tasty/parser/types.js +1 -1
  452. package/es/tasty/providers/BreakpointsProvider.js +1 -1
  453. package/es/tasty/styles/align.js +1 -1
  454. package/es/tasty/styles/border.js +1 -1
  455. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  456. package/es/tasty/styles/color.js +1 -1
  457. package/es/tasty/styles/createStyle.js +1 -1
  458. package/es/tasty/styles/dimension.js +2 -2
  459. package/es/tasty/styles/display.js +1 -1
  460. package/es/tasty/styles/fade.js +1 -1
  461. package/es/tasty/styles/fill.js +1 -1
  462. package/es/tasty/styles/flow.js +1 -1
  463. package/es/tasty/styles/font.js +1 -1
  464. package/es/tasty/styles/fontStyle.js +1 -1
  465. package/es/tasty/styles/gap.js +1 -1
  466. package/es/tasty/styles/groupRadius.js +1 -1
  467. package/es/tasty/styles/height.js +1 -1
  468. package/es/tasty/styles/index.js +1 -1
  469. package/es/tasty/styles/inset.js +1 -1
  470. package/es/tasty/styles/justify.js +1 -1
  471. package/es/tasty/styles/list.js +3 -2
  472. package/es/tasty/styles/margin.js +1 -1
  473. package/es/tasty/styles/outline.js +1 -1
  474. package/es/tasty/styles/padding.js +1 -1
  475. package/es/tasty/styles/place.js +1 -1
  476. package/es/tasty/styles/predefined.js +1 -1
  477. package/es/tasty/styles/preset.js +6 -2
  478. package/es/tasty/styles/radius.js +1 -1
  479. package/es/tasty/styles/reset.js +1 -1
  480. package/es/tasty/styles/scrollbar.js +1 -1
  481. package/es/tasty/styles/shadow.js +1 -1
  482. package/es/tasty/styles/styledScrollbar.js +1 -1
  483. package/es/tasty/styles/transition.js +1 -1
  484. package/es/tasty/styles/types.js +1 -1
  485. package/es/tasty/styles/width.js +1 -1
  486. package/es/tasty/tasty.js +32 -3
  487. package/es/tasty/types.js +1 -1
  488. package/es/tasty/utils/cache-wrapper.js +1 -1
  489. package/es/tasty/utils/case-converter.js +1 -1
  490. package/es/tasty/utils/colors.js +1 -1
  491. package/es/tasty/utils/dotize.js +1 -1
  492. package/es/tasty/utils/filterBaseProps.js +1 -1
  493. package/es/tasty/utils/getDisplayName.js +1 -1
  494. package/es/tasty/utils/getModCombinations.js +1 -1
  495. package/es/tasty/utils/isDevEnv.js +1 -1
  496. package/es/tasty/utils/mergeStyles.js +1 -1
  497. package/es/tasty/utils/modAttrs.js +1 -1
  498. package/es/tasty/utils/processTokens.js +124 -0
  499. package/es/tasty/utils/renderStyles.js +1 -1
  500. package/es/tasty/utils/responsive.js +1 -1
  501. package/es/tasty/utils/string.js +1 -1
  502. package/es/tasty/utils/styles.js +1 -1
  503. package/es/tasty/utils/warnings.js +1 -1
  504. package/es/tokens.js +1 -1
  505. package/es/utils/ResizeSensor.js +1 -1
  506. package/es/utils/index.js +1 -1
  507. package/es/utils/modules.js +1 -1
  508. package/es/utils/promise.js +1 -1
  509. package/es/utils/raf.js +1 -1
  510. package/es/utils/random.js +1 -1
  511. package/es/utils/range.js +1 -1
  512. package/es/utils/react/RenderCache.js +1 -1
  513. package/es/utils/react/Slots.js +1 -1
  514. package/es/utils/react/chain.js +1 -1
  515. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  516. package/es/utils/react/index.js +2 -1
  517. package/es/utils/react/interactions.js +1 -1
  518. package/es/utils/react/isTextOnly.js +1 -1
  519. package/es/utils/react/mapProps.js +1 -1
  520. package/es/utils/react/mergeProps.js +1 -1
  521. package/es/utils/react/nullableValue.js +1 -1
  522. package/es/utils/react/resolveIcon.js +34 -0
  523. package/es/utils/react/sharedStore.js +1 -1
  524. package/es/utils/react/useCombinedRefs.js +1 -1
  525. package/es/utils/react/useControlledFocusVisible.js +1 -1
  526. package/es/utils/react/useEventBus.js +1 -1
  527. package/es/utils/react/useId.js +1 -1
  528. package/es/utils/react/useIsDarwin.js +1 -1
  529. package/es/utils/react/useKeySymbols.js +1 -1
  530. package/es/utils/react/useLayoutEffect.js +1 -1
  531. package/es/utils/react/useLocalStorage.js +1 -1
  532. package/es/utils/react/useQaProps.js +1 -1
  533. package/es/utils/react/useViewportSize.js +1 -1
  534. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  535. package/es/utils/tree.js +1 -1
  536. package/es/utils/warnings.js +1 -1
  537. package/es/version.js +2 -2
  538. package/package.json +2 -2
  539. package/types/components/HiddenInput.d.ts +827 -1
  540. package/types/components/actions/Button/Button.d.ts +1750 -33
  541. package/types/components/actions/CommandMenu/styled.d.ts +4135 -5
  542. package/types/components/actions/Menu/styled.d.ts +4165 -23
  543. package/types/components/actions/use-action.d.ts +1 -1
  544. package/types/components/content/Item/Item.d.ts +41 -15
  545. package/types/components/content/Layout/Layout.d.ts +5 -1
  546. package/types/components/content/Layout/LayoutContainer.d.ts +5 -1
  547. package/types/components/content/Layout/LayoutContent.d.ts +5 -1
  548. package/types/components/content/Layout/LayoutPane.d.ts +5 -1
  549. package/types/components/content/Layout/LayoutPanelHeader.d.ts +2 -4
  550. package/types/components/content/List/SectionHeading.d.ts +10 -6
  551. package/types/components/content/Tag/Tag.d.ts +1 -3
  552. package/types/components/content/Text.d.ts +77 -42
  553. package/types/components/fields/DatePicker/DatePickerElement.d.ts +10 -6
  554. package/types/components/fields/FilterPicker/FilterPicker.d.ts +1 -1
  555. package/types/components/fields/Picker/Picker.d.ts +1 -1
  556. package/types/components/fields/Select/Select.d.ts +836 -5
  557. package/types/components/fields/Slider/elements.d.ts +4962 -6
  558. package/types/components/form/FieldWrapper/types.d.ts +1 -1
  559. package/types/components/helpers/DisplayTransition/DisplayTransition.d.ts +3 -1
  560. package/types/components/helpers/DisplayTransition/index.d.ts +2 -0
  561. package/types/components/helpers/IconSwitch/IconSwitch.d.ts +20 -0
  562. package/types/components/helpers/index.d.ts +1 -0
  563. package/types/data/item-themes.d.ts +5 -1
  564. package/types/tasty/index.d.ts +3 -2
  565. package/types/tasty/styles/list.d.ts +6 -6
  566. package/types/tasty/tasty.d.ts +859 -7
  567. package/types/tasty/types.d.ts +30 -7
  568. package/types/tasty/utils/processTokens.d.ts +15 -0
  569. package/types/utils/react/index.d.ts +2 -0
  570. package/types/utils/react/resolveIcon.d.ts +23 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,40 @@
1
1
  # @cube-dev/ui-kit
2
2
 
3
+ ## 0.98.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#923](https://github.com/cube-js/cube-ui-kit/pull/923) [`cb6340ef`](https://github.com/cube-js/cube-ui-kit/commit/cb6340ef6b8faff274b7ebd52038587e60d72ff1) Thanks [@tenphi](https://github.com/tenphi)! - Rework of Button component to align its implementation and layout with Item and ItemButton components.
8
+
9
+ - [#924](https://github.com/cube-js/cube-ui-kit/pull/924) [`fd497403`](https://github.com/cube-js/cube-ui-kit/commit/fd4974035a916cc7f6a17b9a3678571c806f04ea) Thanks [@tenphi](https://github.com/tenphi)! - Add `tokens` prop to tasty components for defining CSS custom properties as inline styles. Tokens support design system values (`$name` for regular properties, `#name` for colors with RGB variants) and are merged from component defaults to instance usage. Use `tokens` instead of `style` prop for dynamic CSS custom properties.
10
+
11
+ - [#924](https://github.com/cube-js/cube-ui-kit/pull/924) [`fd497403`](https://github.com/cube-js/cube-ui-kit/commit/fd4974035a916cc7f6a17b9a3678571c806f04ea) Thanks [@tenphi](https://github.com/tenphi)! - Add dynamic icon support to Button and Item components. The `icon` and `rightIcon` props now support:
12
+
13
+ - `true` - renders an empty slot (reserves space but shows nothing)
14
+ - Function `({ loading, selected, ...mods }) => ReactNode | true` - dynamically renders icon based on component modifiers
15
+
16
+ Also made `Mods` type generic for better type definitions: `Mods<{ loading?: boolean }>` instead of extending interface.
17
+
18
+ ### Patch Changes
19
+
20
+ - [#924](https://github.com/cube-js/cube-ui-kit/pull/924) [`fd497403`](https://github.com/cube-js/cube-ui-kit/commit/fd4974035a916cc7f6a17b9a3678571c806f04ea) Thanks [@tenphi](https://github.com/tenphi)! - Enlarge the size of the fullscreen dialog.
21
+
22
+ - [#924](https://github.com/cube-js/cube-ui-kit/pull/924) [`fd497403`](https://github.com/cube-js/cube-ui-kit/commit/fd4974035a916cc7f6a17b9a3678571c806f04ea) Thanks [@tenphi](https://github.com/tenphi)! - Add IconSwitch component for icon transitions.
23
+
24
+ - [#924](https://github.com/cube-js/cube-ui-kit/pull/924) [`fd497403`](https://github.com/cube-js/cube-ui-kit/commit/fd4974035a916cc7f6a17b9a3678571c806f04ea) Thanks [@tenphi](https://github.com/tenphi)! - Remove redundant `isButton` prop from Item component.
25
+
26
+ - [#924](https://github.com/cube-js/cube-ui-kit/pull/924) [`fd497403`](https://github.com/cube-js/cube-ui-kit/commit/fd4974035a916cc7f6a17b9a3678571c806f04ea) Thanks [@tenphi](https://github.com/tenphi)! - Add `tight` modifier to `preset` style for setting line-height to the same value as font-size.
27
+
28
+ - [#924](https://github.com/cube-js/cube-ui-kit/pull/924) [`fd497403`](https://github.com/cube-js/cube-ui-kit/commit/fd4974035a916cc7f6a17b9a3678571c806f04ea) Thanks [@tenphi](https://github.com/tenphi)! - Add `card` type to Item component.
29
+
30
+ - [#924](https://github.com/cube-js/cube-ui-kit/pull/924) [`fd497403`](https://github.com/cube-js/cube-ui-kit/commit/fd4974035a916cc7f6a17b9a3678571c806f04ea) Thanks [@tenphi](https://github.com/tenphi)! - Add `preserveContent` prop to DisplayTransition component. When enabled (default: true), the component preserves children content during exit transitions, ensuring smooth animations even when parent components remove content immediately after hiding.
31
+
32
+ - [#924](https://github.com/cube-js/cube-ui-kit/pull/924) [`fd497403`](https://github.com/cube-js/cube-ui-kit/commit/fd4974035a916cc7f6a17b9a3678571c806f04ea) Thanks [@tenphi](https://github.com/tenphi)! - Add `title` type support to Item component.
33
+
34
+ - [#924](https://github.com/cube-js/cube-ui-kit/pull/924) [`fd497403`](https://github.com/cube-js/cube-ui-kit/commit/fd4974035a916cc7f6a17b9a3678571c806f04ea) Thanks [@tenphi](https://github.com/tenphi)! - Remove the selected mod in DisclosureTrigger.'
35
+
36
+ - [#924](https://github.com/cube-js/cube-ui-kit/pull/924) [`fd497403`](https://github.com/cube-js/cube-ui-kit/commit/fd4974035a916cc7f6a17b9a3678571c806f04ea) Thanks [@tenphi](https://github.com/tenphi)! - Fix Layout.PanelHeader props type.
37
+
3
38
  ## 0.97.1
4
39
 
5
40
  ### Patch Changes
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,31 +1,53 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.97.1
4
+ * @cube-dev/ui-kit v0.98.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
- import { cloneElement, forwardRef, useMemo } from 'react';
9
+ import { Children, forwardRef, isValidElement, useMemo, useState, } from 'react';
10
+ import { useIsFirstRender } from '../../../_internal/hooks/use-is-first-render';
10
11
  import { useWarn } from '../../../_internal/hooks/use-warn';
11
12
  import { DANGER_CLEAR_STYLES, DANGER_LINK_STYLES, DANGER_NEUTRAL_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DANGER_SECONDARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_LINK_STYLES, DEFAULT_NEUTRAL_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, DEFAULT_SECONDARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_LINK_STYLES, SPECIAL_NEUTRAL_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SPECIAL_SECONDARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_LINK_STYLES, SUCCESS_NEUTRAL_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES, SUCCESS_SECONDARY_STYLES, } from '../../../data/item-themes';
12
13
  import { LoadingIcon } from '../../../icons';
13
14
  import { CONTAINER_STYLES, extractStyles, tasty, TEXT_STYLES, } from '../../../tasty';
14
- import { Text } from '../../content/Text';
15
+ import { mergeProps, resolveIcon } from '../../../utils/react';
16
+ import { useAutoTooltip } from '../../content/use-auto-tooltip';
17
+ import { DisplayTransition } from '../../helpers/DisplayTransition';
18
+ import { IconSwitch } from '../../helpers/IconSwitch/IconSwitch';
15
19
  import { useAction } from '../use-action';
20
+ const BUTTON_SIZE_VALUES = [
21
+ 'xsmall',
22
+ 'small',
23
+ 'medium',
24
+ 'large',
25
+ 'xlarge',
26
+ 'inline',
27
+ ];
16
28
  const STYLE_PROPS = [...CONTAINER_STYLES, ...TEXT_STYLES];
29
+ const DEFAULT_ICON_STYLES = {
30
+ $: '>',
31
+ position: 'relative',
32
+ display: 'grid',
33
+ placeItems: 'center',
34
+ placeContent: 'center',
35
+ placeSelf: 'stretch',
36
+ // overflow: 'hidden',
37
+ width: 'fixed ($size - 2bw)',
38
+ height: 'fixed ($size - 2bw)',
39
+ pointerEvents: 'none',
40
+ transition: 'theme, width, height, translate',
41
+ };
17
42
  export const DEFAULT_BUTTON_STYLES = {
18
43
  display: 'inline-grid',
19
- flow: 'column',
20
- placeItems: 'center start',
21
- placeContent: {
22
- '': 'center',
23
- 'right-icon | suffix': 'center stretch',
24
- },
25
- gridColumns: {
26
- '': 'initial',
27
- 'left-icon | loading | prefix': 'max-content',
44
+ flow: 'column dense',
45
+ gap: 0,
46
+ placeItems: {
47
+ '': 'stretch',
48
+ 'raw-children': 'center stretch',
28
49
  },
50
+ placeContent: 'center stretch',
29
51
  position: 'relative',
30
52
  margin: 0,
31
53
  boxSizing: 'border-box',
@@ -35,31 +57,23 @@ export const DEFAULT_BUTTON_STYLES = {
35
57
  ':is(button)': '$pointer',
36
58
  disabled: 'not-allowed',
37
59
  },
38
- gap: {
39
- '': '.75x',
40
- 'size=small': '.5x',
41
- },
42
60
  preset: {
43
61
  '': 't3m',
44
62
  'size=xsmall': 't4',
45
63
  'size=xlarge': 't2m',
46
64
  },
47
65
  textDecoration: 'none',
48
- transition: 'theme',
49
66
  reset: 'button',
50
67
  outline: 0,
51
68
  outlineOffset: 1,
52
69
  padding: {
53
- '': '.5x (1.5x - 1bw)',
54
- 'size=small | size=xsmall': '.5x (1.25x - 1bw)',
55
- 'size=medium': '.5x (1.5x - 1bw)',
56
- 'size=large': '.5x (1.75x - 1bw)',
57
- 'size=xlarge': '.5x (2x - 1bw)',
58
- 'single-icon | type=link': 0,
70
+ '': 0,
71
+ 'raw-children & !has-icons': '$block-padding $inline-padding $block-padding $inline-padding',
72
+ 'type=link': '0',
59
73
  },
60
74
  width: {
61
75
  '': 'min $size',
62
- 'left-icon & right-icon': 'min ($size * 2 - 2bw)',
76
+ 'has-icon & has-right-icon': 'min ($size * 2 - 2bw)',
63
77
  'single-icon': 'fixed $size',
64
78
  'type=link': 'min 1ch',
65
79
  },
@@ -72,6 +86,8 @@ export const DEFAULT_BUTTON_STYLES = {
72
86
  '': true,
73
87
  'type=link & !focused': 0,
74
88
  },
89
+ transition: 'theme, grid-template, padding',
90
+ verticalAlign: 'bottom',
75
91
  $size: {
76
92
  '': '$size-md',
77
93
  'size=xsmall': '$size-xs',
@@ -79,17 +95,73 @@ export const DEFAULT_BUTTON_STYLES = {
79
95
  'size=medium': '$size-md',
80
96
  'size=large': '$size-lg',
81
97
  'size=xlarge': '$size-xl',
98
+ 'size=inline': '(1lh + 2bw)',
99
+ },
100
+ '$inline-padding': {
101
+ '': 'max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))',
82
102
  },
83
- ButtonIcon: {
84
- width: 'min 1fs',
103
+ '$block-padding': {
104
+ '': '.5x',
105
+ 'size=xsmall | size=small': '.25x',
85
106
  },
86
- '& [data-element="ButtonIcon"]:first-child:not(:last-child)': {
87
- marginLeft: '-.5x',
88
- placeSelf: 'center start',
107
+ '$inline-compensation': '.5x',
108
+ '$min-inline-padding': '(1x - 1bw)',
109
+ '$left-padding': {
110
+ '': '$inline-padding',
111
+ 'is-icon-shown': '0px',
89
112
  },
90
- '& [data-element="ButtonIcon"]:last-child:not(:first-child)': {
91
- marginRight: '-.5x',
92
- placeSelf: 'center end',
113
+ '$right-padding': {
114
+ '': '$inline-padding',
115
+ 'is-right-icon-shown': '0px',
116
+ },
117
+ // Icon sub-element (recommended format)
118
+ Icon: {
119
+ ...DEFAULT_ICON_STYLES,
120
+ width: {
121
+ '': 'fixed 0px',
122
+ 'is-icon-shown': 'fixed ($size - 2bw)',
123
+ },
124
+ opacity: {
125
+ '': 0,
126
+ 'is-icon-shown': 1,
127
+ },
128
+ translate: {
129
+ '': '($size * 1 / 4) 0',
130
+ 'is-icon-shown': '0 0',
131
+ },
132
+ },
133
+ // RightIcon sub-element (recommended format)
134
+ RightIcon: {
135
+ ...DEFAULT_ICON_STYLES,
136
+ width: {
137
+ '': 'fixed 0px',
138
+ 'is-right-icon-shown': 'fixed ($size - 2bw)',
139
+ },
140
+ opacity: {
141
+ '': 0,
142
+ 'is-right-icon-shown': 1,
143
+ },
144
+ translate: {
145
+ '': '($size * -1 / 4) 0',
146
+ 'is-right-icon-shown': '0 0',
147
+ },
148
+ },
149
+ // Label sub-element (recommended format)
150
+ Label: {
151
+ $: '>',
152
+ display: 'block',
153
+ placeSelf: 'center stretch',
154
+ boxSizing: 'border-box',
155
+ whiteSpace: 'nowrap',
156
+ overflow: 'hidden',
157
+ textOverflow: 'ellipsis',
158
+ maxWidth: '100%',
159
+ textAlign: 'center',
160
+ transition: 'theme, padding',
161
+ padding: {
162
+ '': '$block-padding $right-padding $block-padding $left-padding',
163
+ 'type=link': '0',
164
+ },
93
165
  },
94
166
  };
95
167
  const ButtonElement = tasty({
@@ -127,22 +199,51 @@ const ButtonElement = tasty({
127
199
  },
128
200
  });
129
201
  export const Button = forwardRef(function Button(allProps, ref) {
130
- let { type, size, label, children, theme = 'default', icon, rightIcon, mods, download, ...props } = allProps;
131
- const isDisabled = props.isDisabled || props.isLoading;
202
+ let { type, size: sizeProp, label, children, theme = 'default', icon: iconProp, rightIcon: rightIconProp, mods, download, tooltip = true, defaultTooltipPlacement = 'top', ...props } = allProps;
203
+ const size = sizeProp ?? (type === 'link' ? 'inline' : 'medium');
204
+ const isDisabled = props.isDisabled ?? props.isLoading;
132
205
  const isLoading = props.isLoading;
133
206
  const isSelected = props.isSelected;
134
- children = children || icon || rightIcon ? children : label;
207
+ // Base mods for icon resolution (without icon-dependent mods)
208
+ const baseMods = useMemo(() => ({
209
+ loading: isLoading,
210
+ selected: isSelected,
211
+ ...mods,
212
+ }), [isLoading, isSelected, mods]);
213
+ // Resolve dynamic icon props
214
+ const resolvedIcon = useMemo(() => resolveIcon(iconProp, baseMods), [iconProp, baseMods]);
215
+ const resolvedRightIcon = useMemo(() => resolveIcon(rightIconProp, baseMods), [rightIconProp, baseMods]);
216
+ const hasLeftSlot = resolvedIcon.hasSlot;
217
+ const hasRightSlot = resolvedRightIcon.hasSlot;
218
+ const icon = resolvedIcon.content;
219
+ const rightIcon = resolvedRightIcon.content;
220
+ // Generate stable keys for icon transitions based on icon type
221
+ const iconKey = isLoading
222
+ ? 'loading'
223
+ : isValidElement(icon)
224
+ ? icon.type?.displayName || icon.type?.name || 'icon'
225
+ : icon
226
+ ? 'icon'
227
+ : 'empty';
228
+ const rightIconKey = isValidElement(rightIcon)
229
+ ? rightIcon.type?.displayName ||
230
+ rightIcon.type?.name ||
231
+ 'icon'
232
+ : rightIcon
233
+ ? 'icon'
234
+ : 'empty';
235
+ children = children || hasLeftSlot || hasRightSlot ? children : label;
135
236
  const specifiedLabel = label ?? props['aria-label'] ?? props['aria-labelledby'];
136
237
  // Warn about accessibility issues when button has no accessible label
137
- useWarn(!children && icon && !specifiedLabel, {
138
- key: ['button-icon-no-label', !!icon],
238
+ useWarn(!children && hasLeftSlot && !specifiedLabel, {
239
+ key: ['button-icon-no-label', hasLeftSlot],
139
240
  args: [
140
241
  'accessibility issue:',
141
242
  'If you provide `icon` property for a Button and do not provide any children then you should specify the `aria-label` property to make sure the Button element stays accessible.',
142
243
  ],
143
244
  });
144
- useWarn(!children && !icon && !specifiedLabel, {
145
- key: ['button-no-content-no-label', !!icon],
245
+ useWarn(!children && !hasLeftSlot && !specifiedLabel, {
246
+ key: ['button-no-content-no-label', hasLeftSlot],
146
247
  args: [
147
248
  'accessibility issue:',
148
249
  'If you provide no children for a Button then you should specify the `aria-label` property to make sure the Button element stays accessible.',
@@ -151,43 +252,75 @@ export const Button = forwardRef(function Button(allProps, ref) {
151
252
  if (!children && !specifiedLabel) {
152
253
  label = 'Unnamed'; // fix to avoid warning in production
153
254
  }
154
- if (icon) {
155
- icon = cloneElement(icon, {
156
- 'data-element': 'ButtonIcon',
157
- });
158
- }
159
- if (rightIcon) {
160
- rightIcon = cloneElement(rightIcon, {
161
- 'data-element': 'ButtonIcon',
162
- });
163
- }
164
- const singleIcon = !!(((icon && !rightIcon) || (rightIcon && !icon)) &&
165
- !children);
166
- const hasIcons = !!icon || !!rightIcon;
255
+ const hasLeftIcon = !!(hasLeftSlot || isLoading);
256
+ const hasChildren = children != null;
257
+ const singleIcon = !!(((hasLeftIcon && !hasRightSlot) || (hasRightSlot && !hasLeftIcon)) &&
258
+ !hasChildren);
259
+ const hasIcons = hasLeftIcon || hasRightSlot;
260
+ const rawChildren = !!(hasChildren &&
261
+ typeof children !== 'string' &&
262
+ !Children.toArray(children).some((child) => typeof child === 'string'));
263
+ const [isIconShown, setIsIconShown] = useState(hasLeftIcon);
264
+ const [isRightIconShown, setIsRightIconShown] = useState(hasRightSlot);
265
+ const isFirstRender = useIsFirstRender();
167
266
  const modifiers = useMemo(() => ({
168
- loading: isLoading,
169
- selected: isSelected,
267
+ ...baseMods,
170
268
  'has-icons': hasIcons,
171
- 'left-icon': !!icon,
172
- 'right-icon': !!rightIcon,
269
+ 'has-icon': hasLeftIcon,
270
+ 'is-icon-shown': isIconShown,
271
+ 'has-right-icon': hasRightSlot,
272
+ 'is-right-icon-shown': isRightIconShown,
173
273
  'single-icon': singleIcon,
174
- 'text-only': !!(children && typeof children === 'string' && !hasIcons),
175
- ...mods,
274
+ 'text-only': !!(hasChildren && typeof children === 'string' && !hasIcons),
275
+ 'raw-children': rawChildren,
276
+ 'has-content': children != null,
176
277
  }), [
177
- mods,
278
+ baseMods,
178
279
  children,
179
- icon,
180
- rightIcon,
181
- isLoading,
182
- isSelected,
280
+ hasLeftIcon,
281
+ hasRightSlot,
183
282
  singleIcon,
184
283
  hasIcons,
284
+ hasChildren,
285
+ rawChildren,
286
+ isIconShown,
287
+ isRightIconShown,
185
288
  ]);
186
289
  const { actionProps } = useAction({ ...allProps, isDisabled, mods: modifiers, ...(label ? { label } : {}) }, ref);
187
290
  const styles = extractStyles(props, STYLE_PROPS);
188
291
  const isDisabledElement = actionProps.isDisabled;
189
292
  delete actionProps.isDisabled;
190
- return (_jsxs(ButtonElement, { download: download, ...actionProps, disabled: isDisabledElement, variant: `${theme}.${type ?? 'outline'}`, "data-theme": theme, "data-type": type ?? 'outline', "data-size": size ?? 'medium', styles: styles, children: [icon || isLoading ? (!isLoading ? (icon) : (_jsx(LoadingIcon, { "data-element": "ButtonIcon" }))) : null, typeof children === 'string' ? (_jsx(Text, { ellipsis: true, nowrap: true, children: children })) : (children), rightIcon] }));
293
+ const { labelProps: finalLabelProps, labelRef, renderWithTooltip, } = useAutoTooltip({
294
+ tooltip,
295
+ children,
296
+ labelProps: undefined,
297
+ });
298
+ // Render function that creates the button element
299
+ const renderButtonElement = (tooltipTriggerProps, tooltipRef) => {
300
+ // Use callback ref to merge multiple refs without calling hooks
301
+ const handleRef = (element) => {
302
+ // Set the component's forwarded ref from useAction
303
+ const domRef = actionProps.ref;
304
+ if (typeof domRef === 'function') {
305
+ domRef(element);
306
+ }
307
+ else if (domRef) {
308
+ domRef.current = element;
309
+ }
310
+ // Set the tooltip ref if provided
311
+ if (tooltipRef) {
312
+ tooltipRef.current = element;
313
+ }
314
+ };
315
+ // Determine if size is custom (number or unrecognized string)
316
+ const isCustomSize = typeof size === 'number' ||
317
+ (size != null &&
318
+ !BUTTON_SIZE_VALUES.includes(size));
319
+ const sizeTokenValue = typeof size === 'number' ? `${size}px` : isCustomSize ? size : undefined;
320
+ return (_jsxs(ButtonElement, { download: download, ...mergeProps(actionProps, tooltipTriggerProps || {}), ref: handleRef, disabled: isDisabledElement, variant: `${theme}.${type ?? 'outline'}`, "data-theme": theme, "data-type": type ?? 'outline', "data-size": size, styles: styles, tokens: sizeTokenValue ? { $size: sizeTokenValue } : undefined, children: [_jsx(DisplayTransition, { isShown: hasLeftIcon, animateOnMount: !isFirstRender, onToggle: setIsIconShown, children: ({ ref }) => (_jsx("div", { ref: ref, "data-element": "Icon", "aria-hidden": "true", children: _jsx(IconSwitch, { noWrapper: true, contentKey: iconKey, children: isLoading ? _jsx(LoadingIcon, {}) : icon }) })) }), hasChildren &&
321
+ (rawChildren ? (children) : (_jsx("div", { "data-element": "Label", ...finalLabelProps, ref: labelRef, children: children }))), _jsx(DisplayTransition, { isShown: hasRightSlot, animateOnMount: !isFirstRender, onToggle: setIsRightIconShown, children: ({ ref }) => (_jsx("div", { ref: ref, "data-element": "RightIcon", "aria-hidden": "true", children: _jsx(IconSwitch, { noWrapper: true, contentKey: rightIconKey, children: rightIcon }) })) })] }));
322
+ };
323
+ return renderWithTooltip(renderButtonElement, defaultTooltipPlacement);
191
324
  });
192
325
 
193
326
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
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.97.1
4
+ * @cube-dev/ui-kit v0.98.0
5
5
  * Released under the MIT license.
6
6
  */
7
7