@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
@@ -1,67 +0,0 @@
1
- /**
2
- * @license MIT
3
- * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
5
- * Released under the MIT license.
6
- */
7
-
8
- import { useInsertionEffect, useMemo, useRef } from 'react';
9
- import { injectGlobal } from '../injector/index.js';
10
- import { renderStyles } from '../pipeline/index.js';
11
- /**
12
- * Hook to inject global styles for a given selector.
13
- * Useful for styling elements by selector without generating classNames.
14
- *
15
- * @param selector - CSS selector to apply styles to (e.g., '.my-class', ':root', 'body')
16
- * @param styles - Tasty styles object
17
- *
18
- * @example
19
- * ```tsx
20
- * function MyComponent() {
21
- * useGlobalStyles('.card', {
22
- * padding: '2x',
23
- * radius: '1r',
24
- * fill: '#white',
25
- * });
26
- *
27
- * return <div className="card">Content</div>;
28
- * }
29
- * ```
30
- */
31
- export function useGlobalStyles(selector, styles) {
32
- const disposeRef = useRef(null);
33
- // Render styles with the provided selector
34
- // Note: renderStyles overload with selector string returns StyleResult[] directly
35
- const styleResults = useMemo(() => {
36
- if (!styles)
37
- return [];
38
- // Validate selector - empty string would cause renderStyles to return RenderResult instead of StyleResult[]
39
- if (!selector) {
40
- if (process.env.NODE_ENV !== 'production') {
41
- console.warn('[Tasty] useGlobalStyles: selector is required and cannot be empty. ' +
42
- 'Styles will not be injected.');
43
- }
44
- return [];
45
- }
46
- const result = renderStyles(styles, selector);
47
- // When a non-empty selector is provided, renderStyles returns StyleResult[]
48
- return result;
49
- }, [styles, selector]);
50
- // Inject as global styles
51
- useInsertionEffect(() => {
52
- disposeRef.current?.();
53
- if (styleResults.length > 0) {
54
- const { dispose } = injectGlobal(styleResults);
55
- disposeRef.current = dispose;
56
- }
57
- else {
58
- disposeRef.current = null;
59
- }
60
- return () => {
61
- disposeRef.current?.();
62
- disposeRef.current = null;
63
- };
64
- }, [styleResults]);
65
- }
66
-
67
-
@@ -1,40 +0,0 @@
1
- /**
2
- * @license MIT
3
- * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
5
- * Released under the MIT license.
6
- */
7
-
8
- import { useInsertionEffect, useMemo, useRef } from 'react';
9
- import { injectRawCSS } from '../injector/index.js';
10
- // Implementation
11
- export function useRawCSS(cssOrFactory, depsOrOptions, options) {
12
- // Detect which overload is being used
13
- const isFactory = typeof cssOrFactory === 'function';
14
- // Parse arguments based on overload
15
- const deps = isFactory && Array.isArray(depsOrOptions) ? depsOrOptions : undefined;
16
- const opts = isFactory
17
- ? options
18
- : depsOrOptions;
19
- // Memoize CSS - for factory functions, use provided deps; for strings, use the string itself
20
- const css = useMemo(() => isFactory ? cssOrFactory() : cssOrFactory, isFactory ? deps ?? [] : [cssOrFactory]);
21
- const disposeRef = useRef(null);
22
- useInsertionEffect(() => {
23
- // Dispose previous injection if any
24
- disposeRef.current?.();
25
- if (!css.trim()) {
26
- disposeRef.current = null;
27
- return;
28
- }
29
- // Inject new CSS
30
- const { dispose } = injectRawCSS(css, opts);
31
- disposeRef.current = dispose;
32
- // Cleanup on unmount or when css changes
33
- return () => {
34
- disposeRef.current?.();
35
- disposeRef.current = null;
36
- };
37
- }, [css, opts?.root]);
38
- }
39
-
40
-
@@ -1,206 +0,0 @@
1
- /**
2
- * @license MIT
3
- * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
5
- * Released under the MIT license.
6
- */
7
-
8
- import { useInsertionEffect, useMemo, useRef } from 'react';
9
- import { categorizeStyleKeys, CHUNK_NAMES, generateChunkCacheKey, renderStylesForChunk, } from '../chunks/index.js';
10
- import { getGlobalKeyframes, hasGlobalKeyframes } from '../config.js';
11
- import { allocateClassName, inject, keyframes } from '../injector/index.js';
12
- import { extractAnimationNamesFromStyles, extractLocalKeyframes, filterUsedKeyframes, hasLocalKeyframes, mergeKeyframes, replaceAnimationNames, } from '../keyframes/index.js';
13
- import { renderStyles } from '../pipeline/index.js';
14
- import { stringifyStyles } from '../utils/styles.js';
15
- /**
16
- * Check if styles contain @starting-style rules.
17
- *
18
- * @starting-style CSS cannot be applied via multiple class names because
19
- * of cascade - later rules override earlier ones. When @starting is detected,
20
- * we disable chunking and use a single class name for all styles.
21
- */
22
- function containsStartingStyle(styleKey) {
23
- return styleKey.includes('@starting');
24
- }
25
- /**
26
- * Get keyframes that are actually used in styles.
27
- * Returns null if no keyframes are used (fast path for zero overhead).
28
- *
29
- * Optimization order:
30
- * 1. Check if any keyframes are defined (local or global) - if not, return null
31
- * 2. Extract animation names from styles - if none, return null
32
- * 3. Merge and filter keyframes to only used ones
33
- */
34
- function getUsedKeyframes(styles) {
35
- // Fast path: no keyframes defined anywhere
36
- const hasLocal = hasLocalKeyframes(styles);
37
- const hasGlobal = hasGlobalKeyframes();
38
- if (!hasLocal && !hasGlobal)
39
- return null;
40
- // Extract animation names from styles (not from rendered CSS - faster)
41
- const usedNames = extractAnimationNamesFromStyles(styles);
42
- if (usedNames.size === 0)
43
- return null;
44
- // Merge local and global keyframes
45
- const local = hasLocal ? extractLocalKeyframes(styles) : null;
46
- const global = hasGlobal ? getGlobalKeyframes() : null;
47
- const allKeyframes = mergeKeyframes(local, global);
48
- // Filter to only used keyframes
49
- return filterUsedKeyframes(allKeyframes, usedNames);
50
- }
51
- /**
52
- * Hook to generate CSS classes from Tasty styles.
53
- * Handles style rendering, className allocation, and CSS injection.
54
- *
55
- * Uses chunking to split styles into logical groups for better caching
56
- * and CSS reuse across components.
57
- *
58
- * @example
59
- * ```tsx
60
- * function MyComponent() {
61
- * const { className } = useStyles({
62
- * padding: '2x',
63
- * fill: '#purple',
64
- * radius: '1r',
65
- * });
66
- *
67
- * return <div className={className}>Styled content</div>;
68
- * }
69
- * ```
70
- */
71
- export function useStyles(styles) {
72
- // Array of dispose functions for each chunk
73
- const disposeRef = useRef([]);
74
- // Store styles by their stringified key to avoid recomputing when only reference changes
75
- const stylesRef = useRef({
76
- key: '',
77
- styles: undefined,
78
- });
79
- // Compute style key - this is a primitive string that captures style content
80
- const styleKey = useMemo(() => {
81
- if (!styles || Object.keys(styles).length === 0) {
82
- return '';
83
- }
84
- return stringifyStyles(styles);
85
- }, [styles]);
86
- // Update ref when styleKey changes (content actually changed)
87
- if (stylesRef.current.key !== styleKey) {
88
- stylesRef.current = { key: styleKey, styles };
89
- }
90
- // Process chunks: categorize, generate cache keys, render, and allocate classNames
91
- // Only depends on styleKey (primitive), not styles object reference
92
- const processedChunks = useMemo(() => {
93
- const currentStyles = stylesRef.current.styles;
94
- if (!styleKey || !currentStyles) {
95
- return [];
96
- }
97
- // Disable chunking for styles containing @starting-style rules.
98
- // @starting-style CSS cannot work with multiple class names due to cascade -
99
- // the rules would override each other instead of combining properly.
100
- if (containsStartingStyle(styleKey)) {
101
- const renderResult = renderStyles(currentStyles);
102
- if (renderResult.rules.length === 0) {
103
- return [];
104
- }
105
- const { className } = allocateClassName(styleKey);
106
- return [
107
- {
108
- name: CHUNK_NAMES.COMBINED,
109
- styleKeys: Object.keys(currentStyles),
110
- cacheKey: styleKey,
111
- renderResult,
112
- className,
113
- },
114
- ];
115
- }
116
- // Categorize style keys into chunks
117
- const chunkMap = categorizeStyleKeys(currentStyles);
118
- const chunks = [];
119
- for (const [chunkName, chunkStyleKeys] of chunkMap) {
120
- // Skip empty chunks
121
- if (chunkStyleKeys.length === 0) {
122
- continue;
123
- }
124
- // Generate cache key for this chunk
125
- const cacheKey = generateChunkCacheKey(currentStyles, chunkName, chunkStyleKeys);
126
- // Render styles for this chunk
127
- const renderResult = renderStylesForChunk(currentStyles, chunkName, chunkStyleKeys);
128
- // Skip chunks with no rules
129
- if (renderResult.rules.length === 0) {
130
- continue;
131
- }
132
- // Allocate className for this chunk (safe in render phase)
133
- const { className } = allocateClassName(cacheKey);
134
- chunks.push({
135
- name: chunkName,
136
- styleKeys: chunkStyleKeys,
137
- cacheKey,
138
- renderResult,
139
- className,
140
- });
141
- }
142
- return chunks;
143
- }, [styleKey]);
144
- // Inject styles in insertion effect (avoids render phase side effects)
145
- useInsertionEffect(() => {
146
- // Cleanup all previous disposals
147
- disposeRef.current.forEach((dispose) => dispose?.());
148
- disposeRef.current = [];
149
- // Fast path: no chunks to inject
150
- if (processedChunks.length === 0) {
151
- return;
152
- }
153
- const currentStyles = stylesRef.current.styles;
154
- // Get keyframes that are actually used (returns null if none - zero overhead)
155
- const usedKeyframes = currentStyles
156
- ? getUsedKeyframes(currentStyles)
157
- : null;
158
- // Inject keyframes and build name map (only if we have keyframes)
159
- let nameMap = null;
160
- if (usedKeyframes) {
161
- nameMap = new Map();
162
- for (const [name, steps] of Object.entries(usedKeyframes)) {
163
- const result = keyframes(steps, { name });
164
- const injectedName = result.toString();
165
- // Only add to map if name differs (optimization for replacement check)
166
- if (injectedName !== name) {
167
- nameMap.set(name, injectedName);
168
- }
169
- disposeRef.current.push(result.dispose);
170
- }
171
- // Clear map if no replacements needed
172
- if (nameMap.size === 0) {
173
- nameMap = null;
174
- }
175
- }
176
- // Inject each chunk
177
- for (const chunk of processedChunks) {
178
- if (chunk.renderResult.rules.length > 0) {
179
- // Replace animation names only if needed
180
- const rulesToInject = nameMap
181
- ? chunk.renderResult.rules.map((rule) => ({
182
- ...rule,
183
- declarations: replaceAnimationNames(rule.declarations, nameMap),
184
- }))
185
- : chunk.renderResult.rules;
186
- const { dispose } = inject(rulesToInject, {
187
- cacheKey: chunk.cacheKey,
188
- });
189
- disposeRef.current.push(dispose);
190
- }
191
- }
192
- return () => {
193
- disposeRef.current.forEach((dispose) => dispose?.());
194
- disposeRef.current = [];
195
- };
196
- }, [processedChunks]);
197
- // Combine all chunk classNames
198
- const className = useMemo(() => {
199
- return processedChunks.map((chunk) => chunk.className).join(' ');
200
- }, [processedChunks]);
201
- return {
202
- className,
203
- };
204
- }
205
-
206
-
@@ -1,301 +0,0 @@
1
- /**
2
- * @license MIT
3
- * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-8ca04ef
5
- * Released under the MIT license.
6
- */
7
-
8
- /**
9
- * Keyframes Utilities
10
- *
11
- * Optimized utilities for extracting and processing keyframes in styles.
12
- * Designed for zero overhead when no keyframes are used.
13
- */
14
- import { getGlobalKeyframes, hasGlobalKeyframes } from '../config.js';
15
- // ============================================================================
16
- // Constants
17
- // ============================================================================
18
- const KEYFRAMES_KEY = '@keyframes';
19
- /**
20
- * Pattern to extract animation names from CSS animation property values.
21
- * Animation name is typically the first identifier in the shorthand.
22
- * Handles: "fadeIn 300ms ease-in", "pulse 1s infinite", etc.
23
- *
24
- * CSS animation shorthand order (all optional except name):
25
- * animation: name | duration | timing | delay | iteration | direction | fill-mode | play-state
26
- *
27
- * Animation names must:
28
- * - Start with a letter, underscore, or hyphen (but not a digit or CSS keyword)
29
- * - Not be CSS keywords: none, initial, inherit, unset, revert
30
- */
31
- const CSS_KEYWORDS = new Set([
32
- 'none',
33
- 'initial',
34
- 'inherit',
35
- 'unset',
36
- 'revert',
37
- 'auto',
38
- 'normal',
39
- 'running',
40
- 'paused',
41
- ]);
42
- /**
43
- * Pattern to match animation name at the start of an animation value.
44
- * Must start with letter, underscore, or hyphen (not digit).
45
- */
46
- const ANIMATION_NAME_PATTERN = /^([a-zA-Z_-][a-zA-Z0-9_-]*)/;
47
- // ============================================================================
48
- // Extraction Functions
49
- // ============================================================================
50
- /**
51
- * Check if styles object has local @keyframes definition.
52
- * Fast path: single property lookup.
53
- */
54
- export function hasLocalKeyframes(styles) {
55
- return KEYFRAMES_KEY in styles;
56
- }
57
- /**
58
- * Extract local @keyframes from styles object.
59
- * Returns null if no local keyframes (fast path).
60
- */
61
- export function extractLocalKeyframes(styles) {
62
- const keyframes = styles[KEYFRAMES_KEY];
63
- if (!keyframes || typeof keyframes !== 'object') {
64
- return null;
65
- }
66
- return keyframes;
67
- }
68
- /**
69
- * Merge local and global keyframes.
70
- * Local keyframes take priority over global.
71
- * Returns null if no keyframes exist (fast path).
72
- */
73
- export function mergeKeyframes(local, global) {
74
- if (!local && !global)
75
- return null;
76
- if (!local)
77
- return global;
78
- if (!global)
79
- return local;
80
- // Local overrides global
81
- return { ...global, ...local };
82
- }
83
- /**
84
- * Get merged keyframes for styles (local + global).
85
- * Returns null if no keyframes defined anywhere (fast path).
86
- */
87
- export function getKeyframesForStyles(styles) {
88
- const local = extractLocalKeyframes(styles);
89
- const global = hasGlobalKeyframes() ? getGlobalKeyframes() : null;
90
- return mergeKeyframes(local, global);
91
- }
92
- // ============================================================================
93
- // Animation Name Extraction
94
- // ============================================================================
95
- /**
96
- * Extract animation name from a single animation value.
97
- * Returns null if no valid name found.
98
- *
99
- * Examples:
100
- * - "fadeIn 300ms ease-in" → "fadeIn"
101
- * - "1s pulse infinite" → "pulse" (name can be anywhere)
102
- * - "none" → null (CSS keyword)
103
- * - "300ms ease-in" → null (no name, just duration/timing)
104
- */
105
- function extractAnimationNameFromValue(value) {
106
- const trimmed = value.trim();
107
- if (!trimmed)
108
- return null;
109
- // Split by whitespace and find the first valid animation name
110
- const parts = trimmed.split(/\s+/);
111
- for (const part of parts) {
112
- // Skip CSS keywords
113
- if (CSS_KEYWORDS.has(part.toLowerCase()))
114
- continue;
115
- // Skip time values (e.g., 300ms, 1s, 0.5s)
116
- if (/^-?[\d.]+m?s$/i.test(part))
117
- continue;
118
- // Skip iteration counts (e.g., infinite, 3)
119
- if (part === 'infinite' || /^\d+$/.test(part))
120
- continue;
121
- // Skip direction values
122
- if (['normal', 'reverse', 'alternate', 'alternate-reverse'].includes(part.toLowerCase()))
123
- continue;
124
- // Skip fill-mode values
125
- if (['forwards', 'backwards', 'both'].includes(part.toLowerCase()))
126
- continue;
127
- // Skip play-state values
128
- if (['running', 'paused'].includes(part.toLowerCase()))
129
- continue;
130
- // Skip timing functions (ease, linear, ease-in, etc., or cubic-bezier/steps)
131
- if (/^(ease|linear|ease-in|ease-out|ease-in-out|step-start|step-end)$/i.test(part))
132
- continue;
133
- if (/^(cubic-bezier|steps)\(/i.test(part))
134
- continue;
135
- // Check if it looks like a valid animation name
136
- const match = ANIMATION_NAME_PATTERN.exec(part);
137
- if (match) {
138
- return match[1];
139
- }
140
- }
141
- return null;
142
- }
143
- /**
144
- * Extract all animation names from an animation property value.
145
- * Handles multiple animations separated by commas.
146
- *
147
- * Example: "fadeIn 300ms, slideIn 500ms ease-out" → ["fadeIn", "slideIn"]
148
- */
149
- function extractAnimationNamesFromAnimationValue(value) {
150
- const names = [];
151
- // Split by comma for multiple animations
152
- const animations = value.split(',');
153
- for (const animation of animations) {
154
- const name = extractAnimationNameFromValue(animation);
155
- if (name && !names.includes(name)) {
156
- names.push(name);
157
- }
158
- }
159
- return names;
160
- }
161
- /**
162
- * Extract animation names from a style value (handles mappings and arrays).
163
- */
164
- function extractAnimationNamesFromStyleValue(value, names) {
165
- if (typeof value === 'string') {
166
- for (const name of extractAnimationNamesFromAnimationValue(value)) {
167
- names.add(name);
168
- }
169
- }
170
- else if (Array.isArray(value)) {
171
- // Responsive array
172
- for (const v of value) {
173
- extractAnimationNamesFromStyleValue(v, names);
174
- }
175
- }
176
- else if (value && typeof value === 'object') {
177
- // State mapping
178
- for (const v of Object.values(value)) {
179
- extractAnimationNamesFromStyleValue(v, names);
180
- }
181
- }
182
- }
183
- /**
184
- * Extract all animation names referenced in styles.
185
- * Scans 'animation' and 'animationName' properties including in state mappings.
186
- * Returns empty set if no animation properties found (fast path).
187
- */
188
- export function extractAnimationNamesFromStyles(styles) {
189
- const names = new Set();
190
- // Check animation property
191
- if ('animation' in styles) {
192
- extractAnimationNamesFromStyleValue(styles.animation, names);
193
- }
194
- // Check animationName property
195
- if ('animationName' in styles) {
196
- extractAnimationNamesFromStyleValue(styles.animationName, names);
197
- }
198
- // Check nested selectors (sub-elements)
199
- for (const [key, value] of Object.entries(styles)) {
200
- // Skip non-selector keys and special keys
201
- if (key === '$' || key === KEYFRAMES_KEY)
202
- continue;
203
- // Check if it's a selector (starts with &, ., or uppercase)
204
- if ((key.startsWith('&') || key.startsWith('.') || /^[A-Z]/.test(key)) &&
205
- value &&
206
- typeof value === 'object') {
207
- // Recursively extract from nested styles
208
- const nestedNames = extractAnimationNamesFromStyles(value);
209
- for (const name of nestedNames) {
210
- names.add(name);
211
- }
212
- }
213
- }
214
- return names;
215
- }
216
- // ============================================================================
217
- // Name Replacement
218
- // ============================================================================
219
- /**
220
- * Replace animation names in CSS declarations with injected names.
221
- * Optimized to avoid regex creation - uses simple string replacement.
222
- *
223
- * @param declarations CSS declarations string
224
- * @param nameMap Map from original name to injected name (only contains names that differ)
225
- * @returns Updated declarations string
226
- */
227
- export function replaceAnimationNames(declarations, nameMap) {
228
- // Fast path: no animation properties
229
- if (!declarations.includes('animation'))
230
- return declarations;
231
- // Parse and replace
232
- const parts = declarations.split(';');
233
- let modified = false;
234
- for (let i = 0; i < parts.length; i++) {
235
- const part = parts[i];
236
- const colonIdx = part.indexOf(':');
237
- if (colonIdx === -1)
238
- continue;
239
- const prop = part.slice(0, colonIdx).trim().toLowerCase();
240
- if (prop === 'animation' || prop === 'animation-name') {
241
- const prefix = part.slice(0, colonIdx + 1);
242
- let value = part.slice(colonIdx + 1);
243
- // Replace each animation name using simple word replacement
244
- for (const [original, injected] of nameMap) {
245
- // Simple word boundary replacement without regex
246
- const newValue = replaceWord(value, original, injected);
247
- if (newValue !== value) {
248
- value = newValue;
249
- modified = true;
250
- }
251
- }
252
- parts[i] = prefix + value;
253
- }
254
- }
255
- return modified ? parts.join(';') : declarations;
256
- }
257
- /**
258
- * Replace a word in a string (word boundary aware, no regex).
259
- */
260
- function replaceWord(str, word, replacement) {
261
- let result = str;
262
- let idx = 0;
263
- while ((idx = result.indexOf(word, idx)) !== -1) {
264
- // Check word boundaries
265
- const before = idx === 0 ? ' ' : result[idx - 1];
266
- const after = idx + word.length >= result.length ? ' ' : result[idx + word.length];
267
- const isWordBoundaryBefore = !/[a-zA-Z0-9_-]/.test(before);
268
- const isWordBoundaryAfter = !/[a-zA-Z0-9_-]/.test(after);
269
- if (isWordBoundaryBefore && isWordBoundaryAfter) {
270
- result =
271
- result.slice(0, idx) + replacement + result.slice(idx + word.length);
272
- idx += replacement.length;
273
- }
274
- else {
275
- idx += word.length;
276
- }
277
- }
278
- return result;
279
- }
280
- // ============================================================================
281
- // Filter Functions
282
- // ============================================================================
283
- /**
284
- * Filter keyframes to only those that are actually used.
285
- * Returns null if no keyframes are used (fast path).
286
- */
287
- export function filterUsedKeyframes(keyframes, usedNames) {
288
- if (!keyframes || usedNames.size === 0)
289
- return null;
290
- const used = {};
291
- let hasAny = false;
292
- for (const name of usedNames) {
293
- if (keyframes[name]) {
294
- used[name] = keyframes[name];
295
- hasAny = true;
296
- }
297
- }
298
- return hasAny ? used : null;
299
- }
300
-
301
-