@cube-dev/ui-kit 0.0.0-canary-8ca04ef → 0.0.0-canary-dae9b2f

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 (670) hide show
  1. package/es/_internal/hooks/index.js +10 -10
  2. package/es/_internal/hooks/use-chained-callback.js +2 -2
  3. package/es/_internal/hooks/use-debounced-value.js +1 -1
  4. package/es/_internal/hooks/use-deprecation-warning.js +2 -2
  5. package/es/_internal/hooks/use-effect-once.js +1 -1
  6. package/es/_internal/hooks/use-event.js +2 -2
  7. package/es/_internal/hooks/use-is-first-render.js +1 -1
  8. package/es/_internal/hooks/use-sync-ref.js +2 -2
  9. package/es/_internal/hooks/use-timer/index.js +3 -3
  10. package/es/_internal/hooks/use-timer/timer.js +1 -1
  11. package/es/_internal/hooks/use-timer/use-timer.js +3 -3
  12. package/es/_internal/hooks/use-update-effect.js +2 -2
  13. package/es/_internal/hooks/use-warn.js +3 -3
  14. package/es/_internal/index.js +2 -2
  15. package/es/components/Block.js +2 -2
  16. package/es/components/CollectionItem.js +3 -3
  17. package/es/components/GlobalStyles.js +65 -56
  18. package/es/components/GridProvider.js +4 -4
  19. package/es/components/HiddenInput.js +2 -2
  20. package/es/components/OpenTrasition.js +1 -1
  21. package/es/components/Root.js +64 -22
  22. package/es/components/actions/Action/Action.js +3 -3
  23. package/es/components/actions/Button/Button.js +12 -12
  24. package/es/components/actions/Button/index.js +2 -2
  25. package/es/components/actions/ButtonGroup/ButtonGroup.js +4 -4
  26. package/es/components/actions/CommandMenu/CommandMenu.js +11 -11
  27. package/es/components/actions/CommandMenu/index.js +2 -2
  28. package/es/components/actions/CommandMenu/styled.js +2 -2
  29. package/es/components/actions/ItemAction/ItemAction.js +9 -9
  30. package/es/components/actions/ItemAction/index.js +2 -2
  31. package/es/components/actions/ItemActionContext.js +1 -1
  32. package/es/components/actions/ItemButton/ItemButton.js +9 -9
  33. package/es/components/actions/ItemButton/index.js +2 -2
  34. package/es/components/actions/Link/Link.js +2 -2
  35. package/es/components/actions/Menu/Menu.js +10 -10
  36. package/es/components/actions/Menu/MenuItem.js +7 -7
  37. package/es/components/actions/Menu/MenuSection.js +4 -4
  38. package/es/components/actions/Menu/MenuTrigger.js +6 -6
  39. package/es/components/actions/Menu/SubMenuTrigger.js +6 -6
  40. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  41. package/es/components/actions/Menu/context.js +1 -1
  42. package/es/components/actions/Menu/index.js +10 -10
  43. package/es/components/actions/Menu/styled.js +5 -5
  44. package/es/components/actions/index.js +13 -13
  45. package/es/components/actions/use-action.js +7 -7
  46. package/es/components/actions/use-anchored-menu.js +6 -6
  47. package/es/components/actions/use-context-menu.js +6 -6
  48. package/es/components/content/ActiveZone/ActiveZone.js +4 -4
  49. package/es/components/content/Alert/Alert.js +4 -4
  50. package/es/components/content/Alert/index.js +2 -2
  51. package/es/components/content/Alert/types.js +1 -1
  52. package/es/components/content/Alert/use-alert.js +3 -3
  53. package/es/components/content/Avatar/Avatar.js +2 -2
  54. package/es/components/content/Badge/Badge.js +4 -4
  55. package/es/components/content/Card/Card.js +2 -2
  56. package/es/components/content/Content.js +3 -3
  57. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +8 -8
  58. package/es/components/content/CopyPasteBlock/index.js +2 -2
  59. package/es/components/content/CopySnippet/CopySnippet.js +9 -9
  60. package/es/components/content/CopySnippet/index.js +2 -2
  61. package/es/components/content/Disclosure/Disclosure.js +6 -6
  62. package/es/components/content/Disclosure/index.js +2 -2
  63. package/es/components/content/Divider.js +3 -3
  64. package/es/components/content/Footer.js +3 -3
  65. package/es/components/content/Header.js +3 -3
  66. package/es/components/content/HotKeys/HotKeys.js +5 -5
  67. package/es/components/content/HotKeys/index.js +2 -2
  68. package/es/components/content/Item/Item.js +24 -20
  69. package/es/components/content/Item/index.js +3 -3
  70. package/es/components/content/ItemBadge/ItemBadge.js +8 -8
  71. package/es/components/content/ItemBadge/index.js +2 -2
  72. package/es/components/content/Layout/GridLayout.js +13 -13
  73. package/es/components/content/Layout/Layout.js +6 -7
  74. package/es/components/content/Layout/LayoutBlock.js +3 -4
  75. package/es/components/content/Layout/LayoutCenter.js +3 -3
  76. package/es/components/content/Layout/LayoutContainer.js +4 -4
  77. package/es/components/content/Layout/LayoutContent.js +5 -6
  78. package/es/components/content/Layout/LayoutContext.js +1 -1
  79. package/es/components/content/Layout/LayoutFlex.js +3 -4
  80. package/es/components/content/Layout/LayoutFooter.js +3 -4
  81. package/es/components/content/Layout/LayoutGrid.js +3 -4
  82. package/es/components/content/Layout/LayoutHeader.js +7 -8
  83. package/es/components/content/Layout/LayoutPane.js +7 -8
  84. package/es/components/content/Layout/LayoutPanel.js +9 -10
  85. package/es/components/content/Layout/LayoutPanelHeader.js +7 -7
  86. package/es/components/content/Layout/LayoutToolbar.js +3 -4
  87. package/es/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  88. package/es/components/content/Layout/index.js +16 -16
  89. package/es/components/content/Layout/utils.js +1 -1
  90. package/es/components/content/List/SectionHeading.js +3 -3
  91. package/es/components/content/List/index.js +2 -2
  92. package/es/components/content/Paragraph.js +3 -3
  93. package/es/components/content/Placeholder/Placeholder.js +2 -2
  94. package/es/components/content/PrismCode/PrismCode.js +7 -7
  95. package/es/components/content/PrismCode/prismSetup.js +1 -1
  96. package/es/components/content/PrismDiffCode/PrismDiffCode.js +2 -2
  97. package/es/components/content/Result/Result.js +4 -4
  98. package/es/components/content/Skeleton/Skeleton.js +5 -5
  99. package/es/components/content/Tag/Tag.js +4 -4
  100. package/es/components/content/Text.js +3 -3
  101. package/es/components/content/TextItem/TextItem.js +5 -5
  102. package/es/components/content/TextItem/index.js +2 -2
  103. package/es/components/content/Title.js +4 -4
  104. package/es/components/content/highlightText.js +2 -2
  105. package/es/components/content/use-auto-tooltip.js +2 -2
  106. package/es/components/fields/Checkbox/Checkbox.js +12 -12
  107. package/es/components/fields/Checkbox/CheckboxGroup.js +7 -7
  108. package/es/components/fields/Checkbox/context.js +1 -1
  109. package/es/components/fields/Checkbox/index.js +3 -3
  110. package/es/components/fields/ComboBox/ComboBox.js +18 -18
  111. package/es/components/fields/ComboBox/index.js +2 -2
  112. package/es/components/fields/DatePicker/DateInput.js +10 -10
  113. package/es/components/fields/DatePicker/DateInputBase.js +6 -6
  114. package/es/components/fields/DatePicker/DatePicker.js +14 -14
  115. package/es/components/fields/DatePicker/DatePickerButton.js +4 -4
  116. package/es/components/fields/DatePicker/DatePickerElement.js +3 -3
  117. package/es/components/fields/DatePicker/DatePickerInput.js +5 -5
  118. package/es/components/fields/DatePicker/DatePickerSegment.js +2 -2
  119. package/es/components/fields/DatePicker/DateRangePicker.js +15 -15
  120. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +15 -15
  121. package/es/components/fields/DatePicker/TimeInput.js +9 -9
  122. package/es/components/fields/DatePicker/index.js +8 -8
  123. package/es/components/fields/DatePicker/intl.js +1 -1
  124. package/es/components/fields/DatePicker/parseDate.js +1 -1
  125. package/es/components/fields/DatePicker/props.js +1 -1
  126. package/es/components/fields/DatePicker/types.js +1 -1
  127. package/es/components/fields/DatePicker/utils.js +1 -1
  128. package/es/components/fields/FileInput/FileInput.js +6 -6
  129. package/es/components/fields/FilterListBox/FilterListBox.js +10 -10
  130. package/es/components/fields/FilterListBox/index.js +2 -2
  131. package/es/components/fields/FilterPicker/FilterPicker.js +14 -14
  132. package/es/components/fields/FilterPicker/index.js +2 -2
  133. package/es/components/fields/Input/Input.js +6 -6
  134. package/es/components/fields/Input/index.js +2 -2
  135. package/es/components/fields/ListBox/ListBox.js +14 -14
  136. package/es/components/fields/ListBox/index.js +2 -2
  137. package/es/components/fields/NumberInput/NumberInput.js +8 -8
  138. package/es/components/fields/NumberInput/StepButton.js +4 -4
  139. package/es/components/fields/PasswordInput/PasswordInput.js +8 -8
  140. package/es/components/fields/Picker/Picker.js +13 -13
  141. package/es/components/fields/Picker/index.js +2 -2
  142. package/es/components/fields/RadioGroup/Radio.js +10 -10
  143. package/es/components/fields/RadioGroup/RadioGroup.js +7 -7
  144. package/es/components/fields/RadioGroup/context.js +1 -1
  145. package/es/components/fields/RadioGroup/index.js +3 -3
  146. package/es/components/fields/SearchInput/SearchInput.js +8 -8
  147. package/es/components/fields/SearchInput/index.js +2 -2
  148. package/es/components/fields/Select/Select.js +20 -20
  149. package/es/components/fields/Select/index.js +2 -2
  150. package/es/components/fields/Slider/Gradation.js +2 -2
  151. package/es/components/fields/Slider/Header.js +1 -1
  152. package/es/components/fields/Slider/RangeSlider.js +5 -5
  153. package/es/components/fields/Slider/Slider.js +7 -7
  154. package/es/components/fields/Slider/SliderBase.js +6 -6
  155. package/es/components/fields/Slider/SliderInput.js +2 -2
  156. package/es/components/fields/Slider/SliderThumb.js +3 -3
  157. package/es/components/fields/Slider/SliderTrack.js +2 -2
  158. package/es/components/fields/Slider/elements.js +2 -2
  159. package/es/components/fields/Slider/index.js +4 -4
  160. package/es/components/fields/Slider/types.js +1 -1
  161. package/es/components/fields/Switch/Switch.js +11 -11
  162. package/es/components/fields/Switch/index.js +2 -2
  163. package/es/components/fields/TextArea/TextArea.js +7 -7
  164. package/es/components/fields/TextArea/index.js +2 -2
  165. package/es/components/fields/TextInput/TextInput.js +6 -6
  166. package/es/components/fields/TextInput/TextInputBase.js +9 -9
  167. package/es/components/fields/TextInput/index.js +3 -3
  168. package/es/components/fields/TextInputMapper/TextInputMapper.js +14 -14
  169. package/es/components/fields/TextInputMapper/index.js +2 -2
  170. package/es/components/fields/index.js +20 -20
  171. package/es/components/form/FieldWrapper/FieldWrapper.js +9 -9
  172. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  173. package/es/components/form/FieldWrapper/index.js +4 -4
  174. package/es/components/form/FieldWrapper/types.js +1 -1
  175. package/es/components/form/Form/Field.js +6 -6
  176. package/es/components/form/Form/Form.js +6 -6
  177. package/es/components/form/Form/ResetButton/ResetButton.js +6 -6
  178. package/es/components/form/Form/ResetButton/index.js +2 -2
  179. package/es/components/form/Form/SubmitButton/SubmitButton.js +4 -4
  180. package/es/components/form/Form/SubmitButton/index.js +2 -2
  181. package/es/components/form/Form/SubmitError.js +3 -3
  182. package/es/components/form/Form/index.js +11 -11
  183. package/es/components/form/Form/types.js +1 -1
  184. package/es/components/form/Form/use-field/index.js +4 -4
  185. package/es/components/form/Form/use-field/types.js +1 -1
  186. package/es/components/form/Form/use-field/use-field-props.js +6 -6
  187. package/es/components/form/Form/use-field/use-field.js +4 -4
  188. package/es/components/form/Form/use-form.js +3 -3
  189. package/es/components/form/Form/validation.js +1 -1
  190. package/es/components/form/Label.js +3 -3
  191. package/es/components/form/index.js +5 -5
  192. package/es/components/form/wrapper.js +3 -3
  193. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  194. package/es/components/helpers/DisplayTransition/index.js +2 -2
  195. package/es/components/helpers/IconSwitch/IconSwitch.js +3 -3
  196. package/es/components/helpers/index.js +3 -3
  197. package/es/components/layout/Flex.js +2 -2
  198. package/es/components/layout/Flow.js +2 -2
  199. package/es/components/layout/Grid.js +2 -2
  200. package/es/components/layout/Panel.js +2 -2
  201. package/es/components/layout/Prefix.js +3 -3
  202. package/es/components/layout/ResizablePanel.js +5 -5
  203. package/es/components/layout/Space.js +2 -2
  204. package/es/components/layout/Suffix.js +3 -3
  205. package/es/components/navigation/LegacyTabs/LegacyTabs.js +275 -0
  206. package/es/components/organisms/FileTabs/FileTabs.js +8 -8
  207. package/es/components/organisms/StatsCard/StatsCard.js +4 -4
  208. package/es/components/other/Base64Upload/Base64Upload.js +103 -0
  209. package/es/components/other/Calendar/Calendar.js +8 -8
  210. package/es/components/other/Calendar/CalendarCell.js +2 -2
  211. package/es/components/other/Calendar/CalendarGrid.js +3 -3
  212. package/es/components/other/Calendar/RangeCalendar.js +8 -8
  213. package/es/components/other/CloudLogo/CloudLogo.js +3 -3
  214. package/es/components/overlays/AlertDialog/AlertDialog.js +10 -10
  215. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +2 -2
  216. package/es/components/overlays/AlertDialog/AlertDialogZone.js +4 -4
  217. package/es/components/overlays/AlertDialog/index.js +4 -4
  218. package/es/components/overlays/AlertDialog/types.js +1 -1
  219. package/es/components/overlays/Dialog/Dialog.js +7 -7
  220. package/es/components/overlays/Dialog/DialogContainer.js +3 -3
  221. package/es/components/overlays/Dialog/DialogForm.js +8 -8
  222. package/es/components/overlays/Dialog/DialogTrigger.js +4 -4
  223. package/es/components/overlays/Dialog/context.js +1 -1
  224. package/es/components/overlays/Dialog/index.js +6 -6
  225. package/es/components/overlays/Dialog/use-dialog-container.js +4 -4
  226. package/es/components/overlays/Modal/Modal.js +5 -5
  227. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  228. package/es/components/overlays/Modal/Overlay.js +3 -3
  229. package/es/components/overlays/Modal/Popover.js +4 -4
  230. package/es/components/overlays/Modal/Tray.js +6 -6
  231. package/es/components/overlays/Modal/Underlay.js +2 -2
  232. package/es/components/overlays/Modal/index.js +7 -7
  233. package/es/components/overlays/Modal/types.js +1 -1
  234. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +5 -5
  235. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +7 -7
  236. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +34 -36
  237. package/es/components/overlays/NewNotifications/Bar/index.js +2 -2
  238. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  239. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +8 -8
  240. package/es/components/overlays/NewNotifications/Dialog/index.js +2 -2
  241. package/es/components/overlays/NewNotifications/Notification.js +4 -4
  242. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +5 -5
  243. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +4 -4
  244. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +4 -4
  245. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +3 -3
  246. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +3 -3
  247. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +4 -4
  248. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  249. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +12 -12
  250. package/es/components/overlays/NewNotifications/NotificationView/index.js +3 -3
  251. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  252. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  253. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +5 -5
  254. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +3 -3
  255. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +2 -2
  256. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +4 -4
  257. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +5 -5
  258. package/es/components/overlays/NewNotifications/NotificationsList/index.js +2 -2
  259. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  260. package/es/components/overlays/NewNotifications/hooks/index.js +6 -6
  261. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  262. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  263. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +2 -2
  264. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  265. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +3 -3
  266. package/es/components/overlays/NewNotifications/index.js +7 -7
  267. package/es/components/overlays/NewNotifications/types.js +1 -1
  268. package/es/components/overlays/Notification/Notification.js +7 -7
  269. package/es/components/overlays/OverlayWrapper.js +2 -2
  270. package/es/components/overlays/Toasts/Toast.js +4 -4
  271. package/es/components/overlays/Toasts/index.js +3 -3
  272. package/es/components/overlays/Toasts/types.js +1 -1
  273. package/es/components/overlays/Toasts/use-toasts-api.js +2 -2
  274. package/es/components/overlays/Tooltip/Tooltip.js +4 -4
  275. package/es/components/overlays/Tooltip/TooltipProvider.js +3 -3
  276. package/es/components/overlays/Tooltip/TooltipTrigger.js +6 -6
  277. package/es/components/overlays/Tooltip/context.js +1 -1
  278. package/es/components/overlays/Tooltip/index.js +4 -4
  279. package/es/components/portal/Portal.js +2 -2
  280. package/es/components/portal/PortalProvider.js +1 -1
  281. package/es/components/portal/index.js +3 -3
  282. package/es/components/portal/types.js +1 -1
  283. package/es/components/portal/usePortal.js +2 -2
  284. package/es/components/shared/InvalidIcon.js +2 -2
  285. package/es/components/shared/ValidIcon.js +2 -2
  286. package/es/components/status/LoadingAnimation/LoadingAnimation.js +114 -58
  287. package/es/components/status/LoadingAnimation/index.js +2 -2
  288. package/es/components/status/Spin/Cube.js +179 -95
  289. package/es/components/status/Spin/InternalSpinner.js +5 -5
  290. package/es/components/status/Spin/Spin.js +4 -4
  291. package/es/components/status/Spin/SpinsContainer.js +30 -28
  292. package/es/components/status/Spin/index.js +2 -2
  293. package/es/components/status/Spin/types.js +1 -1
  294. package/es/components/status/index.js +3 -3
  295. package/es/data/item-themes.js +1 -1
  296. package/es/data/themes.js +1 -1
  297. package/es/icons/AdjustmentsHorizontalIcon.js +2 -2
  298. package/es/icons/AdjustmentsIcon.js +2 -2
  299. package/es/icons/AiIcon.js +2 -2
  300. package/es/icons/AreaChartIcon.js +2 -2
  301. package/es/icons/BackwardIcon.js +2 -2
  302. package/es/icons/BarChartIcon.js +2 -2
  303. package/es/icons/BellFilledIcon.js +2 -2
  304. package/es/icons/BellIcon.js +2 -2
  305. package/es/icons/BooleanIcon.js +2 -2
  306. package/es/icons/CalendarEditIcon.js +2 -2
  307. package/es/icons/CalendarIcon.js +2 -2
  308. package/es/icons/CaretDownIcon.js +2 -2
  309. package/es/icons/CaretUpIcon.js +2 -2
  310. package/es/icons/ChartAreaStackedIcon.js +2 -2
  311. package/es/icons/ChartAreaStackedPercentageIcon.js +2 -2
  312. package/es/icons/ChartBarGroupedHorizontalIcon.js +2 -2
  313. package/es/icons/ChartBarGroupedIcon.js +2 -2
  314. package/es/icons/ChartBarHorizontalIcon.js +2 -2
  315. package/es/icons/ChartBarLineIcon.js +2 -2
  316. package/es/icons/ChartBarStackedHorizontalIcon.js +2 -2
  317. package/es/icons/ChartBarStackedIcon.js +2 -2
  318. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +2 -2
  319. package/es/icons/ChartBarStackedPercentageIcon.js +2 -2
  320. package/es/icons/ChartBoxPlot2Icon.js +2 -2
  321. package/es/icons/ChartBoxPlotIcon.js +2 -2
  322. package/es/icons/ChartBubbleIcon.js +2 -2
  323. package/es/icons/ChartDonut2Icon.js +2 -2
  324. package/es/icons/ChartFunnelIcon.js +2 -2
  325. package/es/icons/ChartHeatmapIcon.js +2 -2
  326. package/es/icons/ChartKPIIcon.js +2 -2
  327. package/es/icons/ChartPie2Icon.js +2 -2
  328. package/es/icons/ChartScatterIcon.js +2 -2
  329. package/es/icons/CheckCircleFilledIcon.js +2 -2
  330. package/es/icons/CheckCircleIcon.js +2 -2
  331. package/es/icons/CheckIcon.js +2 -2
  332. package/es/icons/CircleFilledIcon.js +2 -2
  333. package/es/icons/ClearIcon.js +2 -2
  334. package/es/icons/CloseCircleFilledIcon.js +2 -2
  335. package/es/icons/CloseCircleIcon.js +2 -2
  336. package/es/icons/CloseIcon.js +2 -2
  337. package/es/icons/CodeIcon.js +2 -2
  338. package/es/icons/ColumnTotalIcon.js +2 -2
  339. package/es/icons/CopyIcon.js +2 -2
  340. package/es/icons/CountIcon.js +2 -2
  341. package/es/icons/CubeIcon.js +2 -2
  342. package/es/icons/CubePauseIcon.js +2 -2
  343. package/es/icons/CubePlayIcon.js +2 -2
  344. package/es/icons/CurrencyDollarIcon.js +2 -2
  345. package/es/icons/DangerIcon.js +2 -2
  346. package/es/icons/DashboardIcon.js +2 -2
  347. package/es/icons/DatabaseIcon.js +2 -2
  348. package/es/icons/DecimalDecreaseIcon.js +2 -2
  349. package/es/icons/DecimalIncreaseIcon.js +2 -2
  350. package/es/icons/DirectionIcon.js +3 -3
  351. package/es/icons/DonutIcon.js +2 -2
  352. package/es/icons/DownIcon.js +2 -2
  353. package/es/icons/EditIcon.js +2 -2
  354. package/es/icons/ExclamationCircleFilledIcon.js +2 -2
  355. package/es/icons/ExclamationCircleIcon.js +2 -2
  356. package/es/icons/ExclamationIcon.js +2 -2
  357. package/es/icons/EyeIcon.js +2 -2
  358. package/es/icons/EyeInvisibleIcon.js +2 -2
  359. package/es/icons/FilterIcon.js +2 -2
  360. package/es/icons/FolderFilledIcon.js +2 -2
  361. package/es/icons/FolderIcon.js +2 -2
  362. package/es/icons/FolderOpenFilledIcon.js +2 -2
  363. package/es/icons/FolderOpenIcon.js +2 -2
  364. package/es/icons/ForwardIcon.js +2 -2
  365. package/es/icons/HierarchyIcon.js +2 -2
  366. package/es/icons/HierarchyOpenIcon.js +2 -2
  367. package/es/icons/Icon.js +2 -2
  368. package/es/icons/InfoCircleIcon.js +2 -2
  369. package/es/icons/InfoIcon.js +2 -2
  370. package/es/icons/KeyIcon.js +2 -2
  371. package/es/icons/LeftIcon.js +2 -2
  372. package/es/icons/LineChartIcon.js +2 -2
  373. package/es/icons/LoadingIcon.js +2 -2
  374. package/es/icons/LockFilledIcon.js +2 -2
  375. package/es/icons/LockIcon.js +2 -2
  376. package/es/icons/MoreIcon.js +2 -2
  377. package/es/icons/NotAllowedIcon.js +2 -2
  378. package/es/icons/Number123Icon.js +2 -2
  379. package/es/icons/NumberIcon.js +2 -2
  380. package/es/icons/PauseCircleFilledIcon.js +2 -2
  381. package/es/icons/PauseCircleIcon.js +2 -2
  382. package/es/icons/PauseIcon.js +2 -2
  383. package/es/icons/PercentageIcon.js +2 -2
  384. package/es/icons/PieChartIcon.js +2 -2
  385. package/es/icons/PlayCircleIcon.js +2 -2
  386. package/es/icons/PlayIcon.js +2 -2
  387. package/es/icons/PlusIcon.js +2 -2
  388. package/es/icons/ProgressBarIcon.js +2 -2
  389. package/es/icons/ReloadIcon.js +2 -2
  390. package/es/icons/ReportIcon.js +2 -2
  391. package/es/icons/ReturnIcon.js +2 -2
  392. package/es/icons/RightIcon.js +2 -2
  393. package/es/icons/RowTotalsIcon.js +2 -2
  394. package/es/icons/SchemeIcon.js +2 -2
  395. package/es/icons/SearchIcon.js +2 -2
  396. package/es/icons/SettingsIcon.js +2 -2
  397. package/es/icons/ShieldFilledIcon.js +2 -2
  398. package/es/icons/ShieldIcon.js +2 -2
  399. package/es/icons/SlashIcon.js +2 -2
  400. package/es/icons/SparklesIcon.js +2 -2
  401. package/es/icons/SqlIcon.js +2 -2
  402. package/es/icons/StatsIcon.js +2 -2
  403. package/es/icons/StopIcon.js +2 -2
  404. package/es/icons/StringIcon.js +2 -2
  405. package/es/icons/SubtotalsIcon.js +2 -2
  406. package/es/icons/SwitchIcon.js +2 -2
  407. package/es/icons/TableIcon.js +2 -2
  408. package/es/icons/ThumbsDownIcon.js +2 -2
  409. package/es/icons/ThumbsUpIcon.js +2 -2
  410. package/es/icons/ThunderboltCrossedIcon.js +2 -2
  411. package/es/icons/ThunderboltFilledIcon.js +2 -2
  412. package/es/icons/ThunderboltIcon.js +2 -2
  413. package/es/icons/TimeIcon.js +2 -2
  414. package/es/icons/TrashIcon.js +2 -2
  415. package/es/icons/UnlockIcon.js +2 -2
  416. package/es/icons/UpIcon.js +2 -2
  417. package/es/icons/UserGroupIcon.js +2 -2
  418. package/es/icons/UserIcon.js +2 -2
  419. package/es/icons/UserLockIcon.js +2 -2
  420. package/es/icons/ViewIcon.js +2 -2
  421. package/es/icons/WarningFilledIcon.js +2 -2
  422. package/es/icons/WarningIcon.js +2 -2
  423. package/es/icons/add-new-icon.js +129 -0
  424. package/es/icons/index.js +128 -128
  425. package/es/icons/wrap-icon.js +2 -2
  426. package/es/index.js +74 -73
  427. package/es/provider.js +10 -4
  428. package/es/providers/TrackingProvider.js +1 -1
  429. package/es/providers/navigation.types.js +1 -1
  430. package/es/providers/navigationAdapter.default.js +1 -1
  431. package/es/services/notification.js +2 -2
  432. package/es/shared/form.js +1 -1
  433. package/es/shared/index.js +2 -2
  434. package/es/stories/Form.legacy-stories.js +4 -4
  435. package/es/stories/FormFieldArgs.js +2 -2
  436. package/es/stories/SimpleLayout.stories.js +2 -2
  437. package/es/stories/Tasty.stories.js +2 -2
  438. package/es/stories/components/ConfirmDeletionDialogForm.js +2 -2
  439. package/es/stories/components/DialogFormApp.js +3 -3
  440. package/es/stories/components/StyledButton.js +15 -19
  441. package/es/stories/lists/baseProps.js +2 -2
  442. package/es/tasty/debug.js +9 -195
  443. package/es/tasty/index.js +17 -31
  444. package/es/tasty/injector/index.js +90 -34
  445. package/es/tasty/injector/injector.js +299 -81
  446. package/es/tasty/injector/sheet-manager.js +3 -138
  447. package/es/tasty/injector/types.js +1 -1
  448. package/es/tasty/parser/classify.js +6 -8
  449. package/es/tasty/parser/const.js +1 -1
  450. package/es/tasty/parser/lru.js +1 -1
  451. package/es/tasty/parser/parser.js +5 -18
  452. package/es/tasty/parser/tokenizer.js +1 -1
  453. package/es/tasty/parser/types.js +1 -2
  454. package/es/tasty/providers/BreakpointsProvider.js +16 -0
  455. package/es/tasty/styles/align.js +1 -1
  456. package/es/tasty/styles/border.js +2 -2
  457. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  458. package/es/tasty/styles/color.js +3 -3
  459. package/es/tasty/styles/createStyle.js +3 -3
  460. package/es/tasty/styles/dimension.js +2 -2
  461. package/es/tasty/styles/display.js +1 -1
  462. package/es/tasty/styles/fade.js +2 -2
  463. package/es/tasty/styles/fill.js +21 -11
  464. package/es/tasty/styles/flow.js +1 -1
  465. package/es/tasty/styles/font.js +1 -1
  466. package/es/tasty/styles/fontStyle.js +1 -1
  467. package/es/tasty/styles/gap.js +2 -2
  468. package/es/tasty/styles/groupRadius.js +2 -2
  469. package/es/tasty/styles/height.js +2 -2
  470. package/es/tasty/styles/index.js +3 -3
  471. package/es/tasty/styles/inset.js +2 -2
  472. package/es/tasty/styles/justify.js +1 -1
  473. package/es/tasty/styles/list.js +1 -1
  474. package/es/tasty/styles/margin.js +56 -76
  475. package/es/tasty/styles/outline.js +2 -2
  476. package/es/tasty/styles/padding.js +56 -76
  477. package/es/tasty/styles/place.js +1 -1
  478. package/es/tasty/styles/predefined.js +27 -28
  479. package/es/tasty/styles/preset.js +2 -2
  480. package/es/tasty/styles/radius.js +12 -5
  481. package/es/tasty/styles/reset.js +7 -3
  482. package/es/tasty/styles/scrollbar.js +2 -2
  483. package/es/tasty/styles/shadow.js +2 -2
  484. package/es/tasty/styles/styledScrollbar.js +1 -1
  485. package/es/tasty/styles/transition.js +3 -10
  486. package/es/tasty/styles/types.js +1 -1
  487. package/es/tasty/styles/width.js +2 -2
  488. package/es/tasty/tasty.js +122 -81
  489. package/es/tasty/types.js +1 -1
  490. package/es/tasty/utils/cache-wrapper.js +1 -1
  491. package/es/tasty/utils/case-converter.js +1 -1
  492. package/es/tasty/utils/colors.js +1 -1
  493. package/es/tasty/utils/dotize.js +1 -1
  494. package/es/tasty/utils/filterBaseProps.js +1 -1
  495. package/es/tasty/utils/getDisplayName.js +1 -1
  496. package/es/tasty/utils/getModCombinations.js +38 -0
  497. package/es/tasty/utils/isDevEnv.js +1 -1
  498. package/es/tasty/utils/mergeStyles.js +2 -2
  499. package/es/tasty/utils/modAttrs.js +3 -3
  500. package/es/tasty/utils/processTokens.js +2 -88
  501. package/es/tasty/utils/renderStyles.js +1050 -0
  502. package/es/tasty/utils/responsive.js +60 -0
  503. package/es/tasty/utils/string.js +1 -1
  504. package/es/tasty/utils/styles.js +22 -255
  505. package/es/tasty/utils/warnings.js +1 -1
  506. package/es/tokens.js +309 -0
  507. package/es/utils/ResizeSensor.js +1 -1
  508. package/es/utils/index.js +10 -10
  509. package/es/utils/modules.js +1 -1
  510. package/es/utils/promise.js +1 -1
  511. package/es/utils/raf.js +1 -1
  512. package/es/utils/random.js +1 -1
  513. package/es/utils/range.js +1 -1
  514. package/es/utils/react/RenderCache.js +1 -1
  515. package/es/utils/react/Slots.js +2 -2
  516. package/es/utils/react/chain.js +1 -1
  517. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  518. package/es/utils/react/index.js +17 -17
  519. package/es/utils/react/interactions.js +1 -1
  520. package/es/utils/react/isTextOnly.js +1 -1
  521. package/es/utils/react/mapProps.js +1 -1
  522. package/es/utils/react/mergeProps.js +4 -4
  523. package/es/utils/react/nullableValue.js +1 -1
  524. package/es/utils/react/resolveIcon.js +1 -1
  525. package/es/utils/react/sharedStore.js +2 -2
  526. package/es/utils/react/useCombinedRefs.js +1 -1
  527. package/es/utils/react/useControlledFocusVisible.js +2 -2
  528. package/es/utils/react/useEventBus.js +1 -1
  529. package/es/utils/react/useId.js +2 -2
  530. package/es/utils/react/useIsDarwin.js +1 -1
  531. package/es/utils/react/useKeySymbols.js +2 -2
  532. package/es/utils/react/useLayoutEffect.js +1 -1
  533. package/es/utils/react/useLocalStorage.js +2 -2
  534. package/es/utils/react/useQaProps.js +1 -1
  535. package/es/utils/react/useViewportSize.js +1 -1
  536. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  537. package/es/utils/tree.js +1 -1
  538. package/es/utils/warnings.js +1 -1
  539. package/es/version.js +2 -2
  540. package/package.json +4 -14
  541. package/types/components/GlobalStyles.d.ts +1 -2
  542. package/types/components/HiddenInput.d.ts +826 -828
  543. package/types/components/Root.d.ts +0 -1
  544. package/types/components/actions/Button/Button.d.ts +1645 -1649
  545. package/types/components/actions/CommandMenu/styled.d.ts +4130 -4140
  546. package/types/components/actions/Menu/styled.d.ts +4883 -4893
  547. package/types/components/actions/use-action.d.ts +1 -1
  548. package/types/components/content/List/SectionHeading.d.ts +251 -251
  549. package/types/components/content/Text.d.ts +1487 -1487
  550. package/types/components/fields/DatePicker/DatePickerElement.d.ts +251 -251
  551. package/types/components/fields/Select/Select.d.ts +826 -828
  552. package/types/components/fields/Slider/elements.d.ts +4956 -4968
  553. package/types/components/navigation/LegacyTabs/LegacyTabs.d.ts +43 -0
  554. package/types/components/other/Base64Upload/Base64Upload.d.ts +5 -0
  555. package/types/components/status/Spin/Cube.d.ts +1 -1
  556. package/types/components/status/Spin/SpinsContainer.d.ts +3 -6
  557. package/types/icons/add-new-icon.d.ts +2 -0
  558. package/types/index.d.ts +4 -1
  559. package/types/provider.d.ts +2 -1
  560. package/types/stories/components/StyledButton.d.ts +1 -1
  561. package/types/tasty/debug.d.ts +0 -35
  562. package/types/tasty/index.d.ts +4 -14
  563. package/types/tasty/injector/index.d.ts +19 -30
  564. package/types/tasty/injector/injector.d.ts +13 -19
  565. package/types/tasty/injector/sheet-manager.d.ts +1 -25
  566. package/types/tasty/injector/types.d.ts +2 -23
  567. package/types/tasty/parser/parser.d.ts +0 -4
  568. package/types/tasty/parser/types.d.ts +0 -1
  569. package/types/tasty/providers/BreakpointsProvider.d.ts +8 -0
  570. package/types/tasty/styles/fill.d.ts +1 -11
  571. package/types/tasty/styles/margin.d.ts +1 -3
  572. package/types/tasty/styles/padding.d.ts +1 -3
  573. package/types/tasty/styles/radius.d.ts +10 -2
  574. package/types/tasty/styles/types.d.ts +3 -24
  575. package/types/tasty/tasty.d.ts +840 -892
  576. package/types/tasty/utils/getModCombinations.d.ts +9 -0
  577. package/types/tasty/utils/renderStyles.d.ts +41 -0
  578. package/types/tasty/utils/responsive.d.ts +8 -0
  579. package/types/tasty/utils/styles.d.ts +6 -50
  580. package/types/tokens.d.ts +221 -0
  581. package/es/stories/playground/PlaygroundEditor.js +0 -89
  582. package/es/stories/playground/PlaygroundLayout.js +0 -16
  583. package/es/stories/playground/PlaygroundOutput.js +0 -92
  584. package/es/stories/playground/PlaygroundPreview.js +0 -91
  585. package/es/stories/playground/components/Button.js +0 -45
  586. package/es/stories/playground/components/Card.js +0 -20
  587. package/es/stories/playground/components/ScrollProgress.js +0 -17
  588. package/es/stories/playground/examples.js +0 -158
  589. package/es/tasty/chunks/cacheKey.js +0 -98
  590. package/es/tasty/chunks/definitions.js +0 -281
  591. package/es/tasty/chunks/index.js +0 -12
  592. package/es/tasty/chunks/renderChunk.js +0 -97
  593. package/es/tasty/config.js +0 -280
  594. package/es/tasty/hooks/index.js +0 -12
  595. package/es/tasty/hooks/useGlobalStyles.js +0 -67
  596. package/es/tasty/hooks/useRawCSS.js +0 -40
  597. package/es/tasty/hooks/useStyles.js +0 -206
  598. package/es/tasty/keyframes/index.js +0 -301
  599. package/es/tasty/pipeline/conditions.js +0 -426
  600. package/es/tasty/pipeline/exclusive.js +0 -311
  601. package/es/tasty/pipeline/index.js +0 -543
  602. package/es/tasty/pipeline/materialize.js +0 -1260
  603. package/es/tasty/pipeline/parseStateKey.js +0 -592
  604. package/es/tasty/pipeline/simplify.js +0 -898
  605. package/es/tasty/plugins/index.js +0 -26
  606. package/es/tasty/plugins/okhsl-plugin.js +0 -400
  607. package/es/tasty/plugins/types.js +0 -10
  608. package/es/tasty/states/index.js +0 -523
  609. package/es/tasty/static/index.js +0 -47
  610. package/es/tasty/static/tastyStatic.js +0 -55
  611. package/es/tasty/static/types.js +0 -34
  612. package/es/tasty/utils/typography.js +0 -67
  613. package/es/tasty/zero/babel.js +0 -453
  614. package/es/tasty/zero/css-writer.js +0 -94
  615. package/es/tasty/zero/extractor.js +0 -222
  616. package/es/tasty/zero/index.js +0 -28
  617. package/es/tasty/zero/next.js +0 -102
  618. package/es/tokens/base.js +0 -64
  619. package/es/tokens/colors.js +0 -68
  620. package/es/tokens/index.js +0 -63
  621. package/es/tokens/layout.js +0 -26
  622. package/es/tokens/shadows.js +0 -27
  623. package/es/tokens/sizes.js +0 -42
  624. package/es/tokens/spacing.js +0 -22
  625. package/es/tokens/typography.js +0 -237
  626. package/types/stories/playground/PlaygroundEditor.d.ts +0 -6
  627. package/types/stories/playground/PlaygroundLayout.d.ts +0 -8
  628. package/types/stories/playground/PlaygroundOutput.d.ts +0 -5
  629. package/types/stories/playground/PlaygroundPreview.d.ts +0 -6
  630. package/types/stories/playground/components/Button.d.ts +0 -11
  631. package/types/stories/playground/components/Card.d.ts +0 -7
  632. package/types/stories/playground/components/ScrollProgress.d.ts +0 -5
  633. package/types/stories/playground/examples.d.ts +0 -7
  634. package/types/tasty/chunks/cacheKey.d.ts +0 -26
  635. package/types/tasty/chunks/definitions.d.ts +0 -75
  636. package/types/tasty/chunks/index.d.ts +0 -4
  637. package/types/tasty/chunks/renderChunk.d.ts +0 -25
  638. package/types/tasty/config.d.ts +0 -171
  639. package/types/tasty/hooks/index.d.ts +0 -4
  640. package/types/tasty/hooks/useGlobalStyles.d.ts +0 -22
  641. package/types/tasty/hooks/useRawCSS.d.ts +0 -50
  642. package/types/tasty/hooks/useStyles.d.ts +0 -35
  643. package/types/tasty/keyframes/index.d.ts +0 -49
  644. package/types/tasty/pipeline/conditions.d.ts +0 -243
  645. package/types/tasty/pipeline/exclusive.d.ts +0 -103
  646. package/types/tasty/pipeline/index.d.ts +0 -67
  647. package/types/tasty/pipeline/materialize.d.ts +0 -162
  648. package/types/tasty/pipeline/parseStateKey.d.ts +0 -20
  649. package/types/tasty/pipeline/simplify.d.ts +0 -28
  650. package/types/tasty/plugins/index.d.ts +0 -17
  651. package/types/tasty/plugins/okhsl-plugin.d.ts +0 -45
  652. package/types/tasty/plugins/types.d.ts +0 -34
  653. package/types/tasty/states/index.d.ts +0 -101
  654. package/types/tasty/static/index.d.ts +0 -39
  655. package/types/tasty/static/tastyStatic.d.ts +0 -41
  656. package/types/tasty/static/types.d.ts +0 -44
  657. package/types/tasty/utils/typography.d.ts +0 -32
  658. package/types/tasty/zero/babel.d.ts +0 -63
  659. package/types/tasty/zero/css-writer.d.ts +0 -41
  660. package/types/tasty/zero/extractor.d.ts +0 -40
  661. package/types/tasty/zero/index.d.ts +0 -18
  662. package/types/tasty/zero/next.d.ts +0 -57
  663. package/types/tokens/base.d.ts +0 -8
  664. package/types/tokens/colors.d.ts +0 -6
  665. package/types/tokens/index.d.ts +0 -41
  666. package/types/tokens/layout.d.ts +0 -7
  667. package/types/tokens/shadows.d.ts +0 -12
  668. package/types/tokens/sizes.d.ts +0 -25
  669. package/types/tokens/spacing.d.ts +0 -8
  670. package/types/tokens/typography.d.ts +0 -30
package/es/tasty/tasty.js CHANGED
@@ -1,18 +1,22 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- import { createElement, forwardRef, useMemo, } from 'react';
8
+ import { createElement, forwardRef, useContext, useInsertionEffect, useMemo, useRef, } from 'react';
9
9
  import { isValidElementType } from 'react-is';
10
- import { useStyles } from './hooks/useStyles.js';
11
- import { BASE_STYLES } from './styles/list.js';
12
- import { getDisplayName } from './utils/getDisplayName.js';
13
- import { mergeStyles } from './utils/mergeStyles.js';
14
- import { modAttrs } from './utils/modAttrs.js';
15
- import { processTokens, stringifyTokens } from './utils/processTokens.js';
10
+ import { allocateClassName, inject, injectGlobal } from './injector';
11
+ import { BreakpointsContext } from './providers/BreakpointsProvider';
12
+ import { BASE_STYLES } from './styles/list';
13
+ import { cacheWrapper } from './utils/cache-wrapper';
14
+ import { getDisplayName } from './utils/getDisplayName';
15
+ import { mergeStyles } from './utils/mergeStyles';
16
+ import { modAttrs } from './utils/modAttrs';
17
+ import { processTokens, stringifyTokens } from './utils/processTokens';
18
+ import { renderStyles } from './utils/renderStyles';
19
+ import { stringifyStyles } from './utils/styles';
16
20
  /**
17
21
  * Mapping of is* properties to their corresponding HTML attributes
18
22
  */
@@ -43,68 +47,51 @@ function handleIsProperties(props) {
43
47
  }
44
48
  }
45
49
  /**
46
- * Creates a sub-element component for compound component patterns.
47
- * Sub-elements are lightweight components with data-element attribute for CSS targeting.
50
+ * Simple hash function for internal cache keys
48
51
  */
49
- function createSubElement(elementName, definition) {
50
- // Normalize definition to object form
51
- const config = typeof definition === 'string'
52
- ? { as: definition }
53
- : definition;
54
- const tag = config.as ?? 'div';
55
- const defaultQa = config.qa;
56
- const defaultQaVal = config.qaVal;
57
- const SubElement = forwardRef((props, ref) => {
58
- const { qa, qaVal, mods, tokens, isDisabled, isHidden, isChecked, className, style, ...htmlProps } = props;
59
- // Build mod attributes
60
- let modProps;
61
- if (mods) {
62
- modProps = modAttrs(mods);
63
- }
64
- // Process tokens into inline style properties
65
- const tokenStyle = tokens
66
- ? processTokens(tokens)
67
- : undefined;
68
- // Merge token styles with explicit style prop (style has priority)
69
- let mergedStyle;
70
- if (tokenStyle || style) {
71
- mergedStyle =
72
- tokenStyle && style
73
- ? { ...tokenStyle, ...style }
74
- : (tokenStyle ?? style);
75
- }
76
- const elementProps = {
77
- 'data-element': elementName,
78
- 'data-qa': qa ?? defaultQa,
79
- 'data-qaval': qaVal ?? defaultQaVal,
80
- ...(modProps || {}),
81
- ...htmlProps,
82
- className,
83
- style: mergedStyle,
84
- isDisabled,
85
- isHidden,
86
- isChecked,
87
- ref,
88
- };
89
- // Handle is* properties (isDisabled -> disabled + data-disabled, etc.)
90
- handleIsProperties(elementProps);
91
- // Clean up undefined data attributes
92
- if (elementProps['data-qa'] === undefined)
93
- delete elementProps['data-qa'];
94
- if (elementProps['data-qaval'] === undefined)
95
- delete elementProps['data-qaval'];
96
- return createElement(tag, elementProps);
97
- });
98
- SubElement.displayName = `SubElement(${elementName})`;
99
- return SubElement;
52
+ // Generate unique cache key for style deduplication
53
+ function generateStyleCacheKey(styleKey, contextKey) {
54
+ // Use null character as separator for better performance and no collision risk
55
+ return contextKey ? `${styleKey}\0${contextKey}` : styleKey;
100
56
  }
101
57
  // Implementation
102
58
  export function tasty(Component, options) {
59
+ if (typeof Component === 'string') {
60
+ return tastyGlobal(Component, options);
61
+ }
103
62
  if (isValidElementType(Component)) {
104
63
  return tastyWrap(Component, options);
105
64
  }
106
65
  return tastyElement(Component);
107
66
  }
67
+ // Internal specialized implementations
68
+ function tastyGlobal(selector, styles) {
69
+ const _StyleDeclarationComponent = ({ breakpoints, }) => {
70
+ let contextBreakpoints = useContext(BreakpointsContext);
71
+ const breakpointsList = (breakpoints ?? contextBreakpoints) || [980];
72
+ const disposeRef = useRef(null);
73
+ const styleResults = useMemo(() => {
74
+ if (!styles)
75
+ return [];
76
+ return renderStyles(styles, breakpointsList, selector);
77
+ }, [selector, styles, breakpointsList]);
78
+ // Inject styles at insertion phase; cleanup on change/unmount
79
+ useInsertionEffect(() => {
80
+ disposeRef.current?.();
81
+ if (styleResults.length === 0)
82
+ return;
83
+ const { dispose } = injectGlobal(styleResults);
84
+ disposeRef.current = dispose;
85
+ return () => {
86
+ disposeRef.current?.();
87
+ disposeRef.current = null;
88
+ };
89
+ }, [styleResults]);
90
+ return null;
91
+ };
92
+ _StyleDeclarationComponent.displayName = `TastyStyleDeclaration(${selector})`;
93
+ return _StyleDeclarationComponent;
94
+ }
108
95
  function tastyWrap(Component, options) {
109
96
  let { as: extendTag, element: extendElement, ...defaultProps } = (options ?? {});
110
97
  let propsWithStyles = ['styles'].concat(Object.keys(defaultProps).filter((prop) => prop.endsWith('Styles')));
@@ -138,7 +125,7 @@ function tastyWrap(Component, options) {
138
125
  return _WrappedComponent;
139
126
  }
140
127
  function tastyElement(tastyOptions) {
141
- let { as: originalAs = 'div', element: defaultElement, styles: defaultStyles, styleProps, variants, tokens: defaultTokens, elements, ...defaultProps } = tastyOptions;
128
+ let { as: originalAs = 'div', element: defaultElement, styles: defaultStyles, styleProps, variants, tokens: defaultTokens, ...defaultProps } = tastyOptions;
142
129
  let _TastyComponent;
143
130
  if (variants) {
144
131
  const variantEntries = Object.entries(variants);
@@ -175,10 +162,18 @@ function tastyElement(tastyOptions) {
175
162
  });
176
163
  }
177
164
  else {
165
+ /**
166
+ * An additional optimization that allows to avoid rendering styles across various instances
167
+ * of the same element if no custom styles are provided via `styles` prop or direct style props.
168
+ */
169
+ const renderDefaultStyles = cacheWrapper((breakpoints) => {
170
+ // Return rules without className - injector will add it
171
+ return renderStyles(defaultStyles || {}, breakpoints);
172
+ });
178
173
  let { qa: defaultQa, qaVal: defaultQaVal, ...otherDefaultProps } = defaultProps ?? {};
179
174
  // eslint-disable-next-line react/display-name
180
175
  _TastyComponent = forwardRef((allProps, ref) => {
181
- let { as, styles, variant: _omitVariant, mods, element, qa, qaVal, className: userClassName, tokens, style, ...otherProps } = allProps;
176
+ let { as, styles, variant: _omitVariant, breakpoints, mods, element, qa, qaVal, className: userClassName, tokens, style, ...otherProps } = allProps;
182
177
  // Optimize propStyles extraction - avoid creating empty objects
183
178
  let propStyles = null;
184
179
  const propsToCheck = styleProps
@@ -197,17 +192,66 @@ function tastyElement(tastyOptions) {
197
192
  (styles && Object.keys(styles).length === 0)) {
198
193
  styles = undefined;
199
194
  }
200
- // Merge default styles with instance styles and prop styles
201
- const allStyles = useMemo(() => {
195
+ let contextBreakpoints = useContext(BreakpointsContext);
196
+ breakpoints = breakpoints ?? contextBreakpoints;
197
+ // Memoize breakpoints key once
198
+ const breakpointsKey = useMemo(() => breakpoints?.join(',') || '', [breakpoints?.join(',')]);
199
+ const propStylesKey = stringifyStyles(propStyles);
200
+ // Optimize style computation and cache key generation
201
+ const { allStyles, cacheKey, useDefaultStyles } = useMemo(() => {
202
202
  const hasStyles = styles && Object.keys(styles).length > 0;
203
203
  const hasPropStyles = propStyles && Object.keys(propStyles).length > 0;
204
- if (!hasStyles && !hasPropStyles) {
205
- return defaultStyles;
204
+ const useDefault = !hasStyles && !hasPropStyles;
205
+ const merged = useDefault
206
+ ? defaultStyles
207
+ : mergeStyles(defaultStyles, styles, propStyles);
208
+ // Generate cache key for style deduplication
209
+ const styleKey = stringifyStyles(merged || {});
210
+ const key = generateStyleCacheKey(styleKey, breakpointsKey ? `bp:${breakpointsKey}` : undefined);
211
+ return {
212
+ allStyles: merged,
213
+ cacheKey: key,
214
+ useDefaultStyles: useDefault,
215
+ };
216
+ }, [styles, propStylesKey, breakpointsKey]);
217
+ // Compute rules synchronously; inject via insertion effect
218
+ const directResult = useMemo(() => {
219
+ if (useDefaultStyles) {
220
+ return renderDefaultStyles(breakpoints);
221
+ }
222
+ else if (allStyles && Object.keys(allStyles).length > 0) {
223
+ // Return rules without className - injector will add it
224
+ return renderStyles(allStyles, breakpoints);
225
+ }
226
+ else {
227
+ return { rules: [], className: '' };
228
+ }
229
+ }, [useDefaultStyles, allStyles, breakpointsKey, cacheKey]);
230
+ const disposeRef = useRef(null);
231
+ // Allocate className in render phase (safe for React Strict Mode)
232
+ const allocatedClassName = useMemo(() => {
233
+ if (!directResult.rules.length || !cacheKey)
234
+ return '';
235
+ const { className } = allocateClassName(cacheKey);
236
+ return className;
237
+ }, [directResult.rules.length, cacheKey]);
238
+ // Inject styles in insertion effect (avoids render phase side effects)
239
+ useInsertionEffect(() => {
240
+ // Cleanup previous disposal reference
241
+ disposeRef.current?.();
242
+ if (directResult.rules.length > 0) {
243
+ const injectionResult = inject(directResult.rules, { cacheKey });
244
+ disposeRef.current = injectionResult.dispose;
206
245
  }
207
- return mergeStyles(defaultStyles, styles, propStyles);
208
- }, [styles, propStyles]);
209
- // Use the useStyles hook for style generation and injection
210
- const { className: stylesClassName } = useStyles(allStyles);
246
+ else {
247
+ disposeRef.current = null;
248
+ }
249
+ return () => {
250
+ disposeRef.current?.();
251
+ disposeRef.current = null;
252
+ };
253
+ }, [directResult.rules, cacheKey]);
254
+ const injectedClassName = allocatedClassName;
211
255
  // Merge default tokens with instance tokens (instance overrides defaults)
212
256
  const tokensKey = stringifyTokens(tokens);
213
257
  const mergedTokens = useMemo(() => {
@@ -238,8 +282,11 @@ function tastyElement(tastyOptions) {
238
282
  const modsObject = mods;
239
283
  modProps = modAttrs(modsObject);
240
284
  }
241
- // Merge user className with generated className
242
- const finalClassName = [userClassName || '', stylesClassName]
285
+ // Merge user className with injected className
286
+ const finalClassName = [
287
+ userClassName || '',
288
+ injectedClassName,
289
+ ]
243
290
  .filter(Boolean)
244
291
  .join(' ');
245
292
  const elementProps = {
@@ -255,19 +302,13 @@ function tastyElement(tastyOptions) {
255
302
  };
256
303
  // Apply the helper to handle is* properties
257
304
  handleIsProperties(elementProps);
305
+ // NEW: Use plain createElement instead of styled Element
258
306
  const renderedElement = createElement(as ?? originalAs, elementProps);
307
+ // Note: Empty className is normal for elements with no styles
259
308
  return renderedElement;
260
309
  });
261
310
  }
262
311
  _TastyComponent.displayName = `TastyComponent(${defaultProps.qa || originalAs})`;
263
- // Attach sub-element components if elements are defined
264
- if (elements) {
265
- const subElements = Object.entries(elements).reduce((acc, [name, definition]) => {
266
- acc[name] = createSubElement(name, definition);
267
- return acc;
268
- }, {});
269
- return Object.assign(_TastyComponent, subElements);
270
- }
271
312
  return _TastyComponent;
272
313
  }
273
314
  export const Element = tasty({});
package/es/tasty/types.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ /**
9
+ * Efficient iterative combination generator with early pruning
10
+ * Generates combinations one by one and prunes branches early when conflicts are detected
11
+ * @param array - Array of mod strings to generate combinations from
12
+ * @param allowEmpty - Whether to include empty combination
13
+ * @param conflictChecker - Function to detect conflicting combinations (required)
14
+ */
15
+ export function getModCombinationsIterative(array, allowEmpty, conflictChecker) {
16
+ if (!conflictChecker) {
17
+ throw new Error('getModCombinationsIterative requires a conflictChecker function');
18
+ }
19
+ if (array.length === 0) {
20
+ return allowEmpty ? [[]] : [];
21
+ }
22
+ // Use iterative approach with early pruning for better performance
23
+ const combinations = [[]];
24
+ for (let i = 0; i < array.length; i++) {
25
+ const currentLength = combinations.length;
26
+ for (let j = 0; j < currentLength; j++) {
27
+ const newCombination = [...combinations[j], array[i]];
28
+ // Early conflict detection - only add if no conflicts
29
+ if (!conflictChecker(newCombination)) {
30
+ combinations.push(newCombination);
31
+ }
32
+ }
33
+ }
34
+ // Filter out empty combination if not allowed, but keep others
35
+ return combinations.filter((combo) => allowEmpty || combo.length > 0);
36
+ }
37
+
38
+
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- import { isSelector } from '../pipeline/index.js';
8
+ import { isSelector } from './renderStyles';
9
9
  export function mergeStyles(...objects) {
10
10
  let styles = objects[0] ? { ...objects[0] } : {};
11
11
  let pos = 1;
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- import { cacheWrapper } from './cache-wrapper.js';
9
- import { camelToKebab } from './case-converter.js';
8
+ import { cacheWrapper } from './cache-wrapper';
9
+ import { camelToKebab } from './case-converter';
10
10
  function modAttrs(map) {
11
11
  return map
12
12
  ? Object.keys(map).reduce((attrs, key) => {
@@ -1,86 +1,12 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
4
+ * @cube-dev/ui-kit v0.0.0-canary-dae9b2f
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- import { getRgbValuesFromRgbaString, hexToRgb, parseStyle } from './styles.js';
8
+ import { getRgbValuesFromRgbaString, hexToRgb, parseStyle } from './styles';
9
9
  const devMode = process.env.NODE_ENV !== 'production';
10
- /**
11
- * Parse HSL values from an hsl()/hsla() string.
12
- * Supports both comma-separated (legacy) and space-separated (modern) syntax:
13
- * hsl(200, 40%, 50%)
14
- * hsl(200 40% 50%)
15
- * hsl(200 40% 50% / 0.5)
16
- *
17
- * Returns [h, s, l] where h is 0-360, s and l are 0-1, or null if parsing fails.
18
- */
19
- function parseHslValues(str) {
20
- const match = str.match(/hsla?\(([^)]+)\)/i);
21
- if (!match)
22
- return null;
23
- const inner = match[1].trim();
24
- // Split by slash first (for alpha), then handle color components
25
- const [colorPart] = inner.split('/');
26
- // Split by comma or whitespace
27
- const parts = colorPart
28
- .trim()
29
- .split(/[,\s]+/)
30
- .filter(Boolean);
31
- if (parts.length < 3)
32
- return null;
33
- // Parse hue (can be unitless degrees, deg, turn, rad, or grad)
34
- let h = parseFloat(parts[0]);
35
- const hueStr = parts[0].toLowerCase();
36
- if (hueStr.endsWith('turn')) {
37
- h = parseFloat(hueStr) * 360;
38
- }
39
- else if (hueStr.endsWith('rad')) {
40
- h = (parseFloat(hueStr) * 180) / Math.PI;
41
- }
42
- else if (hueStr.endsWith('grad')) {
43
- h = parseFloat(hueStr) * 0.9; // 400 grad = 360 deg
44
- }
45
- // deg or unitless are already in degrees
46
- // Normalize hue to 0-360 range
47
- h = h % 360;
48
- if (h < 0)
49
- h += 360;
50
- // Parse saturation and lightness (percentages)
51
- const parsePercent = (val) => {
52
- const num = parseFloat(val);
53
- return val.includes('%') ? num / 100 : num;
54
- };
55
- const s = Math.max(0, Math.min(1, parsePercent(parts[1])));
56
- const l = Math.max(0, Math.min(1, parsePercent(parts[2])));
57
- return [h, s, l];
58
- }
59
- /**
60
- * Convert HSL to RGB (sRGB).
61
- * Algorithm from: https://en.wikipedia.org/wiki/HSL_and_HSV#HSL_to_RGB_alternative
62
- * Same as used in CSS Color 4 spec.
63
- *
64
- * @param h - Hue in degrees (0-360)
65
- * @param s - Saturation (0-1)
66
- * @param l - Lightness (0-1)
67
- * @returns RGB values in 0-255 range (may have fractional values)
68
- */
69
- function hslToRgb(h, s, l) {
70
- const a = s * Math.min(l, 1 - l);
71
- const f = (n) => {
72
- const k = (n + h / 30) % 12;
73
- return l - a * Math.max(-1, Math.min(k - 3, 9 - k, 1));
74
- };
75
- // Convert 0-1 range to 0-255
76
- return [f(0) * 255, f(8) * 255, f(4) * 255];
77
- }
78
- /**
79
- * Format a number to a string with up to 1 decimal place, removing trailing zeros.
80
- */
81
- function formatRgbComponent(n) {
82
- return parseFloat(n.toFixed(1)).toString();
83
- }
84
10
  /**
85
11
  * Extract RGB triplet from a color value.
86
12
  * Returns the RGB values as a space-separated string (e.g., "255 128 0")
@@ -99,18 +25,6 @@ function extractRgbValue(colorValue, parsedOutput) {
99
25
  return rgbValues.join(' ');
100
26
  }
101
27
  }
102
- // For hsl(...) values, convert to RGB triplet
103
- if (parsedOutput.startsWith('hsl(') ||
104
- parsedOutput.startsWith('hsla(') ||
105
- colorValue.startsWith('hsl(') ||
106
- colorValue.startsWith('hsla(')) {
107
- // Try parsedOutput first, then original colorValue
108
- const hslValues = parseHslValues(parsedOutput) || parseHslValues(colorValue);
109
- if (hslValues) {
110
- const [r, g, b] = hslToRgb(hslValues[0], hslValues[1], hslValues[2]);
111
- return `${formatRgbComponent(r)} ${formatRgbComponent(g)} ${formatRgbComponent(b)}`;
112
- }
113
- }
114
28
  // For hex values, convert to RGB triplet
115
29
  if (colorValue.startsWith('#') && /^#[0-9a-fA-F]{3,8}$/.test(colorValue)) {
116
30
  const rgbResult = hexToRgb(colorValue);