@cube-dev/ui-kit 0.98.8 → 0.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (676) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/es/_internal/hooks/index.js +10 -10
  3. package/es/_internal/hooks/use-chained-callback.js +2 -2
  4. package/es/_internal/hooks/use-debounced-value.js +1 -1
  5. package/es/_internal/hooks/use-deprecation-warning.js +2 -2
  6. package/es/_internal/hooks/use-effect-once.js +1 -1
  7. package/es/_internal/hooks/use-event.js +2 -2
  8. package/es/_internal/hooks/use-is-first-render.js +1 -1
  9. package/es/_internal/hooks/use-sync-ref.js +2 -2
  10. package/es/_internal/hooks/use-timer/index.js +3 -3
  11. package/es/_internal/hooks/use-timer/timer.js +1 -1
  12. package/es/_internal/hooks/use-timer/use-timer.js +3 -3
  13. package/es/_internal/hooks/use-update-effect.js +2 -2
  14. package/es/_internal/hooks/use-warn.js +3 -3
  15. package/es/_internal/index.js +2 -2
  16. package/es/components/Block.js +2 -2
  17. package/es/components/CollectionItem.js +3 -3
  18. package/es/components/GlobalStyles.js +56 -65
  19. package/es/components/GridProvider.js +4 -4
  20. package/es/components/HiddenInput.js +2 -2
  21. package/es/components/OpenTrasition.js +1 -1
  22. package/es/components/Root.js +22 -64
  23. package/es/components/actions/Action/Action.js +3 -3
  24. package/es/components/actions/Button/Button.js +12 -12
  25. package/es/components/actions/Button/index.js +2 -2
  26. package/es/components/actions/ButtonGroup/ButtonGroup.js +4 -4
  27. package/es/components/actions/CommandMenu/CommandMenu.js +11 -11
  28. package/es/components/actions/CommandMenu/index.js +2 -2
  29. package/es/components/actions/CommandMenu/styled.js +2 -2
  30. package/es/components/actions/ItemAction/ItemAction.js +9 -9
  31. package/es/components/actions/ItemAction/index.js +2 -2
  32. package/es/components/actions/ItemActionContext.js +1 -1
  33. package/es/components/actions/ItemButton/ItemButton.js +9 -9
  34. package/es/components/actions/ItemButton/index.js +2 -2
  35. package/es/components/actions/Link/Link.js +2 -2
  36. package/es/components/actions/Menu/Menu.js +10 -10
  37. package/es/components/actions/Menu/MenuItem.js +7 -7
  38. package/es/components/actions/Menu/MenuSection.js +4 -4
  39. package/es/components/actions/Menu/MenuTrigger.js +6 -6
  40. package/es/components/actions/Menu/SubMenuTrigger.js +6 -6
  41. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  42. package/es/components/actions/Menu/context.js +1 -1
  43. package/es/components/actions/Menu/index.js +10 -10
  44. package/es/components/actions/Menu/styled.js +5 -5
  45. package/es/components/actions/index.js +13 -13
  46. package/es/components/actions/use-action.js +7 -7
  47. package/es/components/actions/use-anchored-menu.js +6 -6
  48. package/es/components/actions/use-context-menu.js +6 -6
  49. package/es/components/content/ActiveZone/ActiveZone.js +4 -4
  50. package/es/components/content/Alert/Alert.js +4 -4
  51. package/es/components/content/Alert/index.js +2 -2
  52. package/es/components/content/Alert/types.js +1 -1
  53. package/es/components/content/Alert/use-alert.js +3 -3
  54. package/es/components/content/Avatar/Avatar.js +2 -2
  55. package/es/components/content/Badge/Badge.js +4 -4
  56. package/es/components/content/Card/Card.js +2 -2
  57. package/es/components/content/Content.js +3 -3
  58. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +8 -8
  59. package/es/components/content/CopyPasteBlock/index.js +2 -2
  60. package/es/components/content/CopySnippet/CopySnippet.js +9 -9
  61. package/es/components/content/CopySnippet/index.js +2 -2
  62. package/es/components/content/Disclosure/Disclosure.js +6 -6
  63. package/es/components/content/Disclosure/index.js +2 -2
  64. package/es/components/content/Divider.js +3 -3
  65. package/es/components/content/Footer.js +3 -3
  66. package/es/components/content/Header.js +3 -3
  67. package/es/components/content/HotKeys/HotKeys.js +5 -5
  68. package/es/components/content/HotKeys/index.js +2 -2
  69. package/es/components/content/Item/Item.js +25 -20
  70. package/es/components/content/Item/index.js +3 -3
  71. package/es/components/content/ItemBadge/ItemBadge.js +8 -8
  72. package/es/components/content/ItemBadge/index.js +2 -2
  73. package/es/components/content/Layout/GridLayout.js +13 -13
  74. package/es/components/content/Layout/Layout.js +7 -6
  75. package/es/components/content/Layout/LayoutBlock.js +4 -3
  76. package/es/components/content/Layout/LayoutCenter.js +3 -3
  77. package/es/components/content/Layout/LayoutContainer.js +4 -4
  78. package/es/components/content/Layout/LayoutContent.js +6 -5
  79. package/es/components/content/Layout/LayoutContext.js +1 -1
  80. package/es/components/content/Layout/LayoutFlex.js +4 -3
  81. package/es/components/content/Layout/LayoutFooter.js +4 -3
  82. package/es/components/content/Layout/LayoutGrid.js +4 -3
  83. package/es/components/content/Layout/LayoutHeader.js +8 -7
  84. package/es/components/content/Layout/LayoutPane.js +8 -7
  85. package/es/components/content/Layout/LayoutPanel.js +10 -9
  86. package/es/components/content/Layout/LayoutPanelHeader.js +7 -7
  87. package/es/components/content/Layout/LayoutToolbar.js +4 -3
  88. package/es/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  89. package/es/components/content/Layout/index.js +16 -16
  90. package/es/components/content/Layout/utils.js +1 -1
  91. package/es/components/content/List/SectionHeading.js +3 -3
  92. package/es/components/content/List/index.js +2 -2
  93. package/es/components/content/Paragraph.js +3 -3
  94. package/es/components/content/Placeholder/Placeholder.js +2 -2
  95. package/es/components/content/PrismCode/PrismCode.js +7 -7
  96. package/es/components/content/PrismCode/prismSetup.js +1 -1
  97. package/es/components/content/PrismDiffCode/PrismDiffCode.js +2 -2
  98. package/es/components/content/Result/Result.js +4 -4
  99. package/es/components/content/Skeleton/Skeleton.js +5 -5
  100. package/es/components/content/Tag/Tag.js +4 -4
  101. package/es/components/content/Text.js +3 -3
  102. package/es/components/content/TextItem/TextItem.js +5 -5
  103. package/es/components/content/TextItem/index.js +2 -2
  104. package/es/components/content/Title.js +4 -4
  105. package/es/components/content/highlightText.js +2 -2
  106. package/es/components/content/use-auto-tooltip.js +2 -2
  107. package/es/components/fields/Checkbox/Checkbox.js +12 -12
  108. package/es/components/fields/Checkbox/CheckboxGroup.js +7 -7
  109. package/es/components/fields/Checkbox/context.js +1 -1
  110. package/es/components/fields/Checkbox/index.js +3 -3
  111. package/es/components/fields/ComboBox/ComboBox.js +18 -18
  112. package/es/components/fields/ComboBox/index.js +2 -2
  113. package/es/components/fields/DatePicker/DateInput.js +10 -10
  114. package/es/components/fields/DatePicker/DateInputBase.js +6 -6
  115. package/es/components/fields/DatePicker/DatePicker.js +14 -14
  116. package/es/components/fields/DatePicker/DatePickerButton.js +4 -4
  117. package/es/components/fields/DatePicker/DatePickerElement.js +3 -3
  118. package/es/components/fields/DatePicker/DatePickerInput.js +5 -5
  119. package/es/components/fields/DatePicker/DatePickerSegment.js +2 -2
  120. package/es/components/fields/DatePicker/DateRangePicker.js +15 -15
  121. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +15 -15
  122. package/es/components/fields/DatePicker/TimeInput.js +9 -9
  123. package/es/components/fields/DatePicker/index.js +8 -8
  124. package/es/components/fields/DatePicker/intl.js +1 -1
  125. package/es/components/fields/DatePicker/parseDate.js +1 -1
  126. package/es/components/fields/DatePicker/props.js +1 -1
  127. package/es/components/fields/DatePicker/types.js +1 -1
  128. package/es/components/fields/DatePicker/utils.js +1 -1
  129. package/es/components/fields/FileInput/FileInput.js +6 -6
  130. package/es/components/fields/FilterListBox/FilterListBox.js +10 -10
  131. package/es/components/fields/FilterListBox/index.js +2 -2
  132. package/es/components/fields/FilterPicker/FilterPicker.js +14 -14
  133. package/es/components/fields/FilterPicker/index.js +2 -2
  134. package/es/components/fields/Input/Input.js +6 -6
  135. package/es/components/fields/Input/index.js +2 -2
  136. package/es/components/fields/ListBox/ListBox.js +14 -14
  137. package/es/components/fields/ListBox/index.js +2 -2
  138. package/es/components/fields/NumberInput/NumberInput.js +8 -8
  139. package/es/components/fields/NumberInput/StepButton.js +4 -4
  140. package/es/components/fields/PasswordInput/PasswordInput.js +8 -8
  141. package/es/components/fields/Picker/Picker.js +13 -13
  142. package/es/components/fields/Picker/index.js +2 -2
  143. package/es/components/fields/RadioGroup/Radio.js +10 -10
  144. package/es/components/fields/RadioGroup/RadioGroup.js +7 -7
  145. package/es/components/fields/RadioGroup/context.js +1 -1
  146. package/es/components/fields/RadioGroup/index.js +3 -3
  147. package/es/components/fields/SearchInput/SearchInput.js +8 -8
  148. package/es/components/fields/SearchInput/index.js +2 -2
  149. package/es/components/fields/Select/Select.js +20 -20
  150. package/es/components/fields/Select/index.js +2 -2
  151. package/es/components/fields/Slider/Gradation.js +2 -2
  152. package/es/components/fields/Slider/Header.js +1 -1
  153. package/es/components/fields/Slider/RangeSlider.js +5 -5
  154. package/es/components/fields/Slider/Slider.js +7 -7
  155. package/es/components/fields/Slider/SliderBase.js +6 -6
  156. package/es/components/fields/Slider/SliderInput.js +2 -2
  157. package/es/components/fields/Slider/SliderThumb.js +3 -3
  158. package/es/components/fields/Slider/SliderTrack.js +2 -2
  159. package/es/components/fields/Slider/elements.js +2 -2
  160. package/es/components/fields/Slider/index.js +4 -4
  161. package/es/components/fields/Slider/types.js +1 -1
  162. package/es/components/fields/Switch/Switch.js +11 -11
  163. package/es/components/fields/Switch/index.js +2 -2
  164. package/es/components/fields/TextArea/TextArea.js +7 -7
  165. package/es/components/fields/TextArea/index.js +2 -2
  166. package/es/components/fields/TextInput/TextInput.js +6 -6
  167. package/es/components/fields/TextInput/TextInputBase.js +9 -9
  168. package/es/components/fields/TextInput/index.js +3 -3
  169. package/es/components/fields/TextInputMapper/TextInputMapper.js +14 -14
  170. package/es/components/fields/TextInputMapper/index.js +2 -2
  171. package/es/components/fields/index.js +20 -20
  172. package/es/components/form/FieldWrapper/FieldWrapper.js +9 -9
  173. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  174. package/es/components/form/FieldWrapper/index.js +4 -4
  175. package/es/components/form/FieldWrapper/types.js +1 -1
  176. package/es/components/form/Form/Field.js +6 -6
  177. package/es/components/form/Form/Form.js +6 -6
  178. package/es/components/form/Form/ResetButton/ResetButton.js +6 -6
  179. package/es/components/form/Form/ResetButton/index.js +2 -2
  180. package/es/components/form/Form/SubmitButton/SubmitButton.js +4 -4
  181. package/es/components/form/Form/SubmitButton/index.js +2 -2
  182. package/es/components/form/Form/SubmitError.js +3 -3
  183. package/es/components/form/Form/index.js +11 -11
  184. package/es/components/form/Form/types.js +1 -1
  185. package/es/components/form/Form/use-field/index.js +4 -4
  186. package/es/components/form/Form/use-field/types.js +1 -1
  187. package/es/components/form/Form/use-field/use-field-props.js +6 -6
  188. package/es/components/form/Form/use-field/use-field.js +4 -4
  189. package/es/components/form/Form/use-form.js +3 -3
  190. package/es/components/form/Form/validation.js +1 -1
  191. package/es/components/form/Label.js +3 -3
  192. package/es/components/form/index.js +5 -5
  193. package/es/components/form/wrapper.js +3 -3
  194. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  195. package/es/components/helpers/DisplayTransition/index.js +2 -2
  196. package/es/components/helpers/IconSwitch/IconSwitch.js +3 -3
  197. package/es/components/helpers/index.js +3 -3
  198. package/es/components/layout/Flex.js +2 -2
  199. package/es/components/layout/Flow.js +2 -2
  200. package/es/components/layout/Grid.js +2 -2
  201. package/es/components/layout/Panel.js +2 -2
  202. package/es/components/layout/Prefix.js +3 -3
  203. package/es/components/layout/ResizablePanel.js +5 -5
  204. package/es/components/layout/Space.js +2 -2
  205. package/es/components/layout/Suffix.js +3 -3
  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/Calendar/Calendar.js +8 -8
  209. package/es/components/other/Calendar/CalendarCell.js +2 -2
  210. package/es/components/other/Calendar/CalendarGrid.js +3 -3
  211. package/es/components/other/Calendar/RangeCalendar.js +8 -8
  212. package/es/components/other/CloudLogo/CloudLogo.js +3 -3
  213. package/es/components/overlays/AlertDialog/AlertDialog.js +11 -10
  214. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +2 -2
  215. package/es/components/overlays/AlertDialog/AlertDialogZone.js +4 -4
  216. package/es/components/overlays/AlertDialog/index.js +4 -4
  217. package/es/components/overlays/AlertDialog/types.js +1 -1
  218. package/es/components/overlays/Dialog/Dialog.js +7 -7
  219. package/es/components/overlays/Dialog/DialogContainer.js +3 -3
  220. package/es/components/overlays/Dialog/DialogForm.js +8 -8
  221. package/es/components/overlays/Dialog/DialogTrigger.js +4 -4
  222. package/es/components/overlays/Dialog/context.js +1 -1
  223. package/es/components/overlays/Dialog/index.js +6 -6
  224. package/es/components/overlays/Dialog/use-dialog-container.js +4 -4
  225. package/es/components/overlays/Modal/Modal.js +5 -5
  226. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  227. package/es/components/overlays/Modal/Overlay.js +3 -3
  228. package/es/components/overlays/Modal/Popover.js +4 -4
  229. package/es/components/overlays/Modal/Tray.js +6 -6
  230. package/es/components/overlays/Modal/Underlay.js +2 -2
  231. package/es/components/overlays/Modal/index.js +7 -7
  232. package/es/components/overlays/Modal/types.js +1 -1
  233. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +5 -5
  234. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +7 -7
  235. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +36 -34
  236. package/es/components/overlays/NewNotifications/Bar/index.js +2 -2
  237. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  238. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +8 -8
  239. package/es/components/overlays/NewNotifications/Dialog/index.js +2 -2
  240. package/es/components/overlays/NewNotifications/Notification.js +4 -4
  241. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +5 -5
  242. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +4 -4
  243. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +4 -4
  244. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +3 -3
  245. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +3 -3
  246. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +4 -4
  247. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  248. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +12 -12
  249. package/es/components/overlays/NewNotifications/NotificationView/index.js +3 -3
  250. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  251. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  252. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +5 -5
  253. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +3 -3
  254. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +2 -2
  255. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +4 -4
  256. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +5 -5
  257. package/es/components/overlays/NewNotifications/NotificationsList/index.js +2 -2
  258. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  259. package/es/components/overlays/NewNotifications/hooks/index.js +6 -6
  260. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  261. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  262. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +2 -2
  263. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  264. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +3 -3
  265. package/es/components/overlays/NewNotifications/index.js +7 -7
  266. package/es/components/overlays/NewNotifications/types.js +1 -1
  267. package/es/components/overlays/Notification/Notification.js +7 -7
  268. package/es/components/overlays/OverlayWrapper.js +2 -2
  269. package/es/components/overlays/Toasts/Toast.js +4 -4
  270. package/es/components/overlays/Toasts/index.js +3 -3
  271. package/es/components/overlays/Toasts/types.js +1 -1
  272. package/es/components/overlays/Toasts/use-toasts-api.js +2 -2
  273. package/es/components/overlays/Tooltip/Tooltip.js +4 -4
  274. package/es/components/overlays/Tooltip/TooltipProvider.js +3 -3
  275. package/es/components/overlays/Tooltip/TooltipTrigger.js +6 -6
  276. package/es/components/overlays/Tooltip/context.js +1 -1
  277. package/es/components/overlays/Tooltip/index.js +4 -4
  278. package/es/components/portal/Portal.js +2 -2
  279. package/es/components/portal/PortalProvider.js +1 -1
  280. package/es/components/portal/index.js +3 -3
  281. package/es/components/portal/types.js +1 -1
  282. package/es/components/portal/usePortal.js +2 -2
  283. package/es/components/shared/InvalidIcon.js +2 -2
  284. package/es/components/shared/ValidIcon.js +2 -2
  285. package/es/components/status/LoadingAnimation/LoadingAnimation.js +58 -114
  286. package/es/components/status/LoadingAnimation/index.js +2 -2
  287. package/es/components/status/Spin/Cube.js +95 -179
  288. package/es/components/status/Spin/InternalSpinner.js +5 -5
  289. package/es/components/status/Spin/Spin.js +4 -4
  290. package/es/components/status/Spin/SpinsContainer.js +28 -30
  291. package/es/components/status/Spin/index.js +2 -2
  292. package/es/components/status/Spin/types.js +1 -1
  293. package/es/components/status/index.js +3 -3
  294. package/es/data/item-themes.js +1 -1
  295. package/es/data/themes.js +1 -1
  296. package/es/icons/AdjustmentsHorizontalIcon.js +2 -2
  297. package/es/icons/AdjustmentsIcon.js +2 -2
  298. package/es/icons/AiIcon.js +2 -2
  299. package/es/icons/AreaChartIcon.js +2 -2
  300. package/es/icons/BackwardIcon.js +2 -2
  301. package/es/icons/BarChartIcon.js +2 -2
  302. package/es/icons/BellFilledIcon.js +2 -2
  303. package/es/icons/BellIcon.js +2 -2
  304. package/es/icons/BooleanIcon.js +2 -2
  305. package/es/icons/CalendarEditIcon.js +2 -2
  306. package/es/icons/CalendarIcon.js +2 -2
  307. package/es/icons/CaretDownIcon.js +2 -2
  308. package/es/icons/CaretUpIcon.js +2 -2
  309. package/es/icons/ChartAreaStackedIcon.js +2 -2
  310. package/es/icons/ChartAreaStackedPercentageIcon.js +2 -2
  311. package/es/icons/ChartBarGroupedHorizontalIcon.js +2 -2
  312. package/es/icons/ChartBarGroupedIcon.js +2 -2
  313. package/es/icons/ChartBarHorizontalIcon.js +2 -2
  314. package/es/icons/ChartBarLineIcon.js +2 -2
  315. package/es/icons/ChartBarStackedHorizontalIcon.js +2 -2
  316. package/es/icons/ChartBarStackedIcon.js +2 -2
  317. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +2 -2
  318. package/es/icons/ChartBarStackedPercentageIcon.js +2 -2
  319. package/es/icons/ChartBoxPlot2Icon.js +2 -2
  320. package/es/icons/ChartBoxPlotIcon.js +2 -2
  321. package/es/icons/ChartBubbleIcon.js +2 -2
  322. package/es/icons/ChartDonut2Icon.js +2 -2
  323. package/es/icons/ChartFunnelIcon.js +2 -2
  324. package/es/icons/ChartHeatmapIcon.js +2 -2
  325. package/es/icons/ChartKPIIcon.js +2 -2
  326. package/es/icons/ChartPie2Icon.js +2 -2
  327. package/es/icons/ChartScatterIcon.js +2 -2
  328. package/es/icons/CheckCircleFilledIcon.js +2 -2
  329. package/es/icons/CheckCircleIcon.js +2 -2
  330. package/es/icons/CheckIcon.js +2 -2
  331. package/es/icons/CircleFilledIcon.js +2 -2
  332. package/es/icons/ClearIcon.js +2 -2
  333. package/es/icons/CloseCircleFilledIcon.js +2 -2
  334. package/es/icons/CloseCircleIcon.js +2 -2
  335. package/es/icons/CloseIcon.js +2 -2
  336. package/es/icons/CodeIcon.js +2 -2
  337. package/es/icons/ColumnTotalIcon.js +2 -2
  338. package/es/icons/CopyIcon.js +2 -2
  339. package/es/icons/CountIcon.js +2 -2
  340. package/es/icons/CubeIcon.js +2 -2
  341. package/es/icons/CubePauseIcon.js +2 -2
  342. package/es/icons/CubePlayIcon.js +2 -2
  343. package/es/icons/CurrencyDollarIcon.js +2 -2
  344. package/es/icons/DangerIcon.js +2 -2
  345. package/es/icons/DashboardIcon.js +2 -2
  346. package/es/icons/DatabaseIcon.js +2 -2
  347. package/es/icons/DecimalDecreaseIcon.js +2 -2
  348. package/es/icons/DecimalIncreaseIcon.js +2 -2
  349. package/es/icons/DirectionIcon.js +3 -3
  350. package/es/icons/DonutIcon.js +2 -2
  351. package/es/icons/DownIcon.js +2 -2
  352. package/es/icons/EditIcon.js +2 -2
  353. package/es/icons/ExclamationCircleFilledIcon.js +2 -2
  354. package/es/icons/ExclamationCircleIcon.js +2 -2
  355. package/es/icons/ExclamationIcon.js +2 -2
  356. package/es/icons/EyeIcon.js +2 -2
  357. package/es/icons/EyeInvisibleIcon.js +2 -2
  358. package/es/icons/FilterIcon.js +2 -2
  359. package/es/icons/FolderFilledIcon.js +2 -2
  360. package/es/icons/FolderIcon.js +2 -2
  361. package/es/icons/FolderOpenFilledIcon.js +2 -2
  362. package/es/icons/FolderOpenIcon.js +2 -2
  363. package/es/icons/ForwardIcon.js +2 -2
  364. package/es/icons/HierarchyIcon.js +2 -2
  365. package/es/icons/HierarchyOpenIcon.js +2 -2
  366. package/es/icons/Icon.js +2 -2
  367. package/es/icons/InfoCircleIcon.js +2 -2
  368. package/es/icons/InfoIcon.js +2 -2
  369. package/es/icons/KeyIcon.js +2 -2
  370. package/es/icons/LeftIcon.js +2 -2
  371. package/es/icons/LineChartIcon.js +2 -2
  372. package/es/icons/LoadingIcon.js +2 -2
  373. package/es/icons/LockFilledIcon.js +2 -2
  374. package/es/icons/LockIcon.js +2 -2
  375. package/es/icons/MoreIcon.js +2 -2
  376. package/es/icons/NotAllowedIcon.js +2 -2
  377. package/es/icons/Number123Icon.js +2 -2
  378. package/es/icons/NumberIcon.js +2 -2
  379. package/es/icons/PauseCircleFilledIcon.js +2 -2
  380. package/es/icons/PauseCircleIcon.js +2 -2
  381. package/es/icons/PauseIcon.js +2 -2
  382. package/es/icons/PercentageIcon.js +2 -2
  383. package/es/icons/PieChartIcon.js +2 -2
  384. package/es/icons/PlayCircleIcon.js +2 -2
  385. package/es/icons/PlayIcon.js +2 -2
  386. package/es/icons/PlusIcon.js +2 -2
  387. package/es/icons/ProgressBarIcon.js +2 -2
  388. package/es/icons/ReloadIcon.js +2 -2
  389. package/es/icons/ReportIcon.js +2 -2
  390. package/es/icons/ReturnIcon.js +2 -2
  391. package/es/icons/RightIcon.js +2 -2
  392. package/es/icons/RowTotalsIcon.js +2 -2
  393. package/es/icons/SchemeIcon.js +2 -2
  394. package/es/icons/SearchIcon.js +2 -2
  395. package/es/icons/SemanticQueryIcon.js +12 -0
  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/index.js +129 -128
  424. package/es/icons/wrap-icon.js +2 -2
  425. package/es/index.js +73 -74
  426. package/es/provider.js +4 -10
  427. package/es/providers/TrackingProvider.js +1 -1
  428. package/es/providers/navigation.types.js +1 -1
  429. package/es/providers/navigationAdapter.default.js +1 -1
  430. package/es/services/notification.js +2 -2
  431. package/es/shared/form.js +1 -1
  432. package/es/shared/index.js +2 -2
  433. package/es/stories/Form.legacy-stories.js +4 -4
  434. package/es/stories/FormFieldArgs.js +2 -2
  435. package/es/stories/SimpleLayout.stories.js +2 -2
  436. package/es/stories/Tasty.stories.js +2 -2
  437. package/es/stories/components/ConfirmDeletionDialogForm.js +2 -2
  438. package/es/stories/components/DialogFormApp.js +3 -3
  439. package/es/stories/components/StyledButton.js +19 -15
  440. package/es/stories/lists/baseProps.js +2 -2
  441. package/es/stories/playground/PlaygroundEditor.js +89 -0
  442. package/es/stories/playground/PlaygroundLayout.js +16 -0
  443. package/es/stories/playground/PlaygroundOutput.js +92 -0
  444. package/es/stories/playground/PlaygroundPreview.js +91 -0
  445. package/es/stories/playground/components/Button.js +45 -0
  446. package/es/stories/playground/components/Card.js +20 -0
  447. package/es/stories/playground/components/ScrollProgress.js +17 -0
  448. package/es/stories/playground/examples.js +158 -0
  449. package/es/tasty/chunks/cacheKey.js +98 -0
  450. package/es/tasty/chunks/definitions.js +281 -0
  451. package/es/tasty/chunks/index.js +12 -0
  452. package/es/tasty/chunks/renderChunk.js +97 -0
  453. package/es/tasty/config.js +280 -0
  454. package/es/tasty/debug.js +195 -9
  455. package/es/tasty/hooks/index.js +12 -0
  456. package/es/tasty/hooks/useGlobalStyles.js +67 -0
  457. package/es/tasty/hooks/useRawCSS.js +40 -0
  458. package/es/tasty/hooks/useStyles.js +206 -0
  459. package/es/tasty/index.js +31 -17
  460. package/es/tasty/injector/index.js +34 -90
  461. package/es/tasty/injector/injector.js +81 -299
  462. package/es/tasty/injector/sheet-manager.js +138 -3
  463. package/es/tasty/injector/types.js +1 -1
  464. package/es/tasty/keyframes/index.js +301 -0
  465. package/es/tasty/parser/classify.js +8 -6
  466. package/es/tasty/parser/const.js +1 -1
  467. package/es/tasty/parser/lru.js +1 -1
  468. package/es/tasty/parser/parser.js +18 -5
  469. package/es/tasty/parser/tokenizer.js +1 -1
  470. package/es/tasty/parser/types.js +2 -1
  471. package/es/tasty/pipeline/conditions.js +426 -0
  472. package/es/tasty/pipeline/exclusive.js +311 -0
  473. package/es/tasty/pipeline/index.js +543 -0
  474. package/es/tasty/pipeline/materialize.js +1260 -0
  475. package/es/tasty/pipeline/parseStateKey.js +592 -0
  476. package/es/tasty/pipeline/simplify.js +898 -0
  477. package/es/tasty/plugins/index.js +26 -0
  478. package/es/tasty/plugins/okhsl-plugin.js +400 -0
  479. package/es/tasty/plugins/types.js +10 -0
  480. package/es/tasty/states/index.js +523 -0
  481. package/es/tasty/static/index.js +47 -0
  482. package/es/tasty/static/tastyStatic.js +55 -0
  483. package/es/tasty/static/types.js +34 -0
  484. package/es/tasty/styles/align.js +1 -1
  485. package/es/tasty/styles/border.js +2 -2
  486. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  487. package/es/tasty/styles/color.js +3 -3
  488. package/es/tasty/styles/createStyle.js +3 -3
  489. package/es/tasty/styles/dimension.js +2 -2
  490. package/es/tasty/styles/display.js +1 -1
  491. package/es/tasty/styles/fade.js +2 -2
  492. package/es/tasty/styles/fill.js +11 -21
  493. package/es/tasty/styles/flow.js +1 -1
  494. package/es/tasty/styles/font.js +1 -1
  495. package/es/tasty/styles/fontStyle.js +1 -1
  496. package/es/tasty/styles/gap.js +2 -2
  497. package/es/tasty/styles/groupRadius.js +2 -2
  498. package/es/tasty/styles/height.js +2 -2
  499. package/es/tasty/styles/index.js +3 -3
  500. package/es/tasty/styles/inset.js +2 -2
  501. package/es/tasty/styles/justify.js +1 -1
  502. package/es/tasty/styles/list.js +1 -1
  503. package/es/tasty/styles/margin.js +76 -56
  504. package/es/tasty/styles/outline.js +2 -2
  505. package/es/tasty/styles/padding.js +76 -56
  506. package/es/tasty/styles/place.js +1 -1
  507. package/es/tasty/styles/predefined.js +28 -27
  508. package/es/tasty/styles/preset.js +2 -2
  509. package/es/tasty/styles/radius.js +5 -12
  510. package/es/tasty/styles/reset.js +3 -7
  511. package/es/tasty/styles/scrollbar.js +2 -2
  512. package/es/tasty/styles/shadow.js +2 -2
  513. package/es/tasty/styles/styledScrollbar.js +1 -1
  514. package/es/tasty/styles/transition.js +10 -3
  515. package/es/tasty/styles/types.js +1 -1
  516. package/es/tasty/styles/width.js +2 -2
  517. package/es/tasty/tasty.js +81 -122
  518. package/es/tasty/types.js +1 -1
  519. package/es/tasty/utils/cache-wrapper.js +1 -1
  520. package/es/tasty/utils/case-converter.js +1 -1
  521. package/es/tasty/utils/colors.js +1 -1
  522. package/es/tasty/utils/dotize.js +1 -1
  523. package/es/tasty/utils/filterBaseProps.js +1 -1
  524. package/es/tasty/utils/getDisplayName.js +1 -1
  525. package/es/tasty/utils/isDevEnv.js +1 -1
  526. package/es/tasty/utils/mergeStyles.js +2 -2
  527. package/es/tasty/utils/modAttrs.js +3 -3
  528. package/es/tasty/utils/processTokens.js +88 -2
  529. package/es/tasty/utils/string.js +1 -1
  530. package/es/tasty/utils/styles.js +255 -22
  531. package/es/tasty/utils/typography.js +67 -0
  532. package/es/tasty/utils/warnings.js +1 -1
  533. package/es/tasty/zero/babel.js +453 -0
  534. package/es/tasty/zero/css-writer.js +94 -0
  535. package/es/tasty/zero/extractor.js +222 -0
  536. package/es/tasty/zero/index.js +28 -0
  537. package/es/tasty/zero/next.js +102 -0
  538. package/es/tokens/base.js +64 -0
  539. package/es/tokens/colors.js +68 -0
  540. package/es/tokens/index.js +63 -0
  541. package/es/tokens/layout.js +26 -0
  542. package/es/tokens/shadows.js +27 -0
  543. package/es/tokens/sizes.js +42 -0
  544. package/es/tokens/spacing.js +22 -0
  545. package/es/tokens/typography.js +237 -0
  546. package/es/utils/ResizeSensor.js +1 -1
  547. package/es/utils/index.js +10 -10
  548. package/es/utils/modules.js +1 -1
  549. package/es/utils/promise.js +1 -1
  550. package/es/utils/raf.js +1 -1
  551. package/es/utils/random.js +1 -1
  552. package/es/utils/range.js +1 -1
  553. package/es/utils/react/RenderCache.js +1 -1
  554. package/es/utils/react/Slots.js +2 -2
  555. package/es/utils/react/chain.js +1 -1
  556. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  557. package/es/utils/react/index.js +17 -17
  558. package/es/utils/react/interactions.js +1 -1
  559. package/es/utils/react/isTextOnly.js +1 -1
  560. package/es/utils/react/mapProps.js +1 -1
  561. package/es/utils/react/mergeProps.js +4 -4
  562. package/es/utils/react/nullableValue.js +1 -1
  563. package/es/utils/react/resolveIcon.js +1 -1
  564. package/es/utils/react/sharedStore.js +2 -2
  565. package/es/utils/react/useCombinedRefs.js +1 -1
  566. package/es/utils/react/useControlledFocusVisible.js +2 -2
  567. package/es/utils/react/useEventBus.js +1 -1
  568. package/es/utils/react/useId.js +2 -2
  569. package/es/utils/react/useIsDarwin.js +1 -1
  570. package/es/utils/react/useKeySymbols.js +2 -2
  571. package/es/utils/react/useLayoutEffect.js +1 -1
  572. package/es/utils/react/useLocalStorage.js +2 -2
  573. package/es/utils/react/useQaProps.js +1 -1
  574. package/es/utils/react/useViewportSize.js +1 -1
  575. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  576. package/es/utils/tree.js +1 -1
  577. package/es/utils/warnings.js +1 -1
  578. package/es/version.js +2 -2
  579. package/package.json +14 -4
  580. package/types/components/GlobalStyles.d.ts +2 -1
  581. package/types/components/HiddenInput.d.ts +828 -826
  582. package/types/components/Root.d.ts +1 -0
  583. package/types/components/actions/Button/Button.d.ts +1649 -1645
  584. package/types/components/actions/CommandMenu/styled.d.ts +4140 -4130
  585. package/types/components/actions/ItemActionContext.d.ts +1 -1
  586. package/types/components/actions/Menu/styled.d.ts +4893 -4883
  587. package/types/components/actions/use-action.d.ts +1 -1
  588. package/types/components/content/List/SectionHeading.d.ts +251 -251
  589. package/types/components/content/Text.d.ts +1487 -1487
  590. package/types/components/fields/DatePicker/DatePickerElement.d.ts +251 -251
  591. package/types/components/fields/Select/Select.d.ts +828 -826
  592. package/types/components/fields/Slider/elements.d.ts +4968 -4956
  593. package/types/components/overlays/AlertDialog/AlertDialog.d.ts +1 -1
  594. package/types/components/status/Spin/Cube.d.ts +1 -1
  595. package/types/components/status/Spin/SpinsContainer.d.ts +6 -3
  596. package/types/icons/SemanticQueryIcon.d.ts +4 -0
  597. package/types/icons/index.d.ts +1 -0
  598. package/types/index.d.ts +1 -4
  599. package/types/provider.d.ts +1 -2
  600. package/types/stories/components/StyledButton.d.ts +1 -1
  601. package/types/stories/playground/PlaygroundEditor.d.ts +6 -0
  602. package/types/stories/playground/PlaygroundLayout.d.ts +8 -0
  603. package/types/stories/playground/PlaygroundOutput.d.ts +5 -0
  604. package/types/stories/playground/PlaygroundPreview.d.ts +6 -0
  605. package/types/stories/playground/components/Button.d.ts +11 -0
  606. package/types/stories/playground/components/Card.d.ts +7 -0
  607. package/types/stories/playground/components/ScrollProgress.d.ts +5 -0
  608. package/types/stories/playground/examples.d.ts +7 -0
  609. package/types/tasty/chunks/cacheKey.d.ts +26 -0
  610. package/types/tasty/chunks/definitions.d.ts +75 -0
  611. package/types/tasty/chunks/index.d.ts +4 -0
  612. package/types/tasty/chunks/renderChunk.d.ts +25 -0
  613. package/types/tasty/config.d.ts +171 -0
  614. package/types/tasty/debug.d.ts +35 -0
  615. package/types/tasty/hooks/index.d.ts +4 -0
  616. package/types/tasty/hooks/useGlobalStyles.d.ts +22 -0
  617. package/types/tasty/hooks/useRawCSS.d.ts +50 -0
  618. package/types/tasty/hooks/useStyles.d.ts +35 -0
  619. package/types/tasty/index.d.ts +14 -4
  620. package/types/tasty/injector/index.d.ts +30 -19
  621. package/types/tasty/injector/injector.d.ts +19 -13
  622. package/types/tasty/injector/sheet-manager.d.ts +25 -1
  623. package/types/tasty/injector/types.d.ts +23 -2
  624. package/types/tasty/keyframes/index.d.ts +49 -0
  625. package/types/tasty/parser/parser.d.ts +4 -0
  626. package/types/tasty/parser/types.d.ts +1 -0
  627. package/types/tasty/pipeline/conditions.d.ts +243 -0
  628. package/types/tasty/pipeline/exclusive.d.ts +103 -0
  629. package/types/tasty/pipeline/index.d.ts +67 -0
  630. package/types/tasty/pipeline/materialize.d.ts +162 -0
  631. package/types/tasty/pipeline/parseStateKey.d.ts +20 -0
  632. package/types/tasty/pipeline/simplify.d.ts +28 -0
  633. package/types/tasty/plugins/index.d.ts +17 -0
  634. package/types/tasty/plugins/okhsl-plugin.d.ts +45 -0
  635. package/types/tasty/plugins/types.d.ts +34 -0
  636. package/types/tasty/states/index.d.ts +101 -0
  637. package/types/tasty/static/index.d.ts +39 -0
  638. package/types/tasty/static/tastyStatic.d.ts +41 -0
  639. package/types/tasty/static/types.d.ts +44 -0
  640. package/types/tasty/styles/fill.d.ts +11 -1
  641. package/types/tasty/styles/margin.d.ts +3 -1
  642. package/types/tasty/styles/padding.d.ts +3 -1
  643. package/types/tasty/styles/radius.d.ts +2 -10
  644. package/types/tasty/styles/types.d.ts +24 -3
  645. package/types/tasty/tasty.d.ts +892 -840
  646. package/types/tasty/utils/styles.d.ts +50 -6
  647. package/types/tasty/utils/typography.d.ts +32 -0
  648. package/types/tasty/zero/babel.d.ts +63 -0
  649. package/types/tasty/zero/css-writer.d.ts +41 -0
  650. package/types/tasty/zero/extractor.d.ts +40 -0
  651. package/types/tasty/zero/index.d.ts +18 -0
  652. package/types/tasty/zero/next.d.ts +57 -0
  653. package/types/tokens/base.d.ts +8 -0
  654. package/types/tokens/colors.d.ts +6 -0
  655. package/types/tokens/index.d.ts +41 -0
  656. package/types/tokens/layout.d.ts +7 -0
  657. package/types/tokens/shadows.d.ts +12 -0
  658. package/types/tokens/sizes.d.ts +25 -0
  659. package/types/tokens/spacing.d.ts +8 -0
  660. package/types/tokens/typography.d.ts +30 -0
  661. package/es/components/navigation/LegacyTabs/LegacyTabs.js +0 -275
  662. package/es/components/other/Base64Upload/Base64Upload.js +0 -103
  663. package/es/icons/add-new-icon.js +0 -129
  664. package/es/tasty/providers/BreakpointsProvider.js +0 -16
  665. package/es/tasty/utils/getModCombinations.js +0 -38
  666. package/es/tasty/utils/renderStyles.js +0 -1050
  667. package/es/tasty/utils/responsive.js +0 -60
  668. package/es/tokens.js +0 -309
  669. package/types/components/navigation/LegacyTabs/LegacyTabs.d.ts +0 -43
  670. package/types/components/other/Base64Upload/Base64Upload.d.ts +0 -5
  671. package/types/icons/add-new-icon.d.ts +0 -2
  672. package/types/tasty/providers/BreakpointsProvider.d.ts +0 -8
  673. package/types/tasty/utils/getModCombinations.d.ts +0 -9
  674. package/types/tasty/utils/renderStyles.d.ts +0 -41
  675. package/types/tasty/utils/responsive.d.ts +0 -8
  676. package/types/tokens.d.ts +0 -221
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.99.0
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
+
@@ -0,0 +1,206 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.99.0
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
+
package/es/tasty/index.js CHANGED
@@ -1,25 +1,39 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.98.8
4
+ * @cube-dev/ui-kit v0.99.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- export { tasty, Element } from './tasty';
9
- export * from './utils/filterBaseProps';
10
- export * from './utils/colors';
11
- export * from './utils/styles';
12
- export * from './utils/modAttrs';
13
- export * from './utils/responsive';
14
- export * from './utils/renderStyles';
15
- export * from './utils/dotize';
16
- export * from './styles/list';
17
- export * from './providers/BreakpointsProvider';
18
- export * from './utils/mergeStyles';
19
- export * from './utils/warnings';
20
- export * from './utils/getDisplayName';
21
- export * from './utils/processTokens';
22
- export * from './injector';
23
- export * from './debug';
8
+ // Register built-in plugins at module load time
9
+ import { configure } from './config.js';
10
+ import { okhslPlugin } from './plugins/index.js';
11
+ export { tasty, Element } from './tasty.js';
12
+ export { useStyles, useGlobalStyles, useRawCSS } from './hooks/index.js';
13
+ // Configuration API
14
+ export { configure, getConfig, isConfigLocked, hasStylesGenerated, resetConfig, isTestEnvironment, hasGlobalKeyframes, getGlobalKeyframes, } from './config.js';
15
+ // Plugins
16
+ export { okhslPlugin, okhslFunc } from './plugins/index.js';
17
+ configure({
18
+ plugins: [okhslPlugin()],
19
+ });
20
+ // Chunk utilities for advanced use cases
21
+ export { CHUNK_NAMES, STYLE_TO_CHUNK, categorizeStyleKeys } from './chunks/index.js';
22
+ // Advanced state mapping utilities
23
+ export { getGlobalPredefinedStates, setGlobalPredefinedStates } from './states/index.js';
24
+ export * from './utils/filterBaseProps.js';
25
+ export * from './utils/colors.js';
26
+ export * from './utils/styles.js';
27
+ export * from './utils/modAttrs.js';
28
+ export { renderStyles, isSelector } from './pipeline/index.js';
29
+ export * from './utils/dotize.js';
30
+ export * from './styles/list.js';
31
+ export * from './utils/mergeStyles.js';
32
+ export * from './utils/warnings.js';
33
+ export * from './utils/getDisplayName.js';
34
+ export * from './utils/processTokens.js';
35
+ export * from './utils/typography.js';
36
+ export * from './injector/index.js';
37
+ export * from './debug.js';
24
38
 
25
39
 
@@ -1,85 +1,12 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.98.8
4
+ * @cube-dev/ui-kit v0.99.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- import { isDevEnv } from '../utils/isDevEnv';
9
- import { StyleInjector } from './injector';
10
- // Use a more robust global singleton that survives React Strict Mode
11
- const GLOBAL_INJECTOR_KEY = '__TASTY_GLOBAL_INJECTOR__';
12
- /**
13
- * Detect if we're running in a test environment
14
- */
15
- function isTestEnvironment() {
16
- // Check Node.js environment
17
- if (typeof process !== 'undefined' && process.env?.NODE_ENV === 'test') {
18
- return true;
19
- }
20
- // Check for Jest globals (safely)
21
- if (typeof global !== 'undefined') {
22
- const g = global;
23
- if (g.jest || g.expect || g.describe || g.it) {
24
- return true;
25
- }
26
- }
27
- // Check for jsdom environment (common in tests)
28
- if (typeof window !== 'undefined' &&
29
- window.navigator?.userAgent?.includes('jsdom')) {
30
- return true;
31
- }
32
- // Check for other test runners
33
- if (typeof globalThis !== 'undefined') {
34
- const gt = globalThis;
35
- if (gt.vitest || gt.mocha) {
36
- return true;
37
- }
38
- }
39
- return false;
40
- }
41
- /**
42
- * Create default configuration with optional test environment detection
43
- */
44
- function createDefaultConfig(isTest) {
45
- return {
46
- maxRulesPerSheet: 8192, // safer default cap per sheet
47
- unusedStylesThreshold: 500, // default threshold for bulk cleanup of unused styles
48
- bulkCleanupDelay: 5000, // default delay before bulk cleanup (ignored if idleCleanup is true)
49
- idleCleanup: true, // default to using requestIdleCallback instead of setTimeout
50
- forceTextInjection: isTest ?? false, // auto-enable for test environments
51
- devMode: isDevEnv(), // enable dev features: performance tracking and debug info
52
- bulkCleanupBatchRatio: 0.5,
53
- unusedStylesMinAgeMs: 10000,
54
- };
55
- }
56
- /**
57
- * Configure the global style injector
58
- */
59
- export function configure(config = {}) {
60
- const fullConfig = {
61
- ...createDefaultConfig(),
62
- ...config,
63
- };
64
- // Store on window to survive React Strict Mode resets
65
- if (typeof window !== 'undefined') {
66
- window[GLOBAL_INJECTOR_KEY] = new StyleInjector(fullConfig);
67
- }
68
- else {
69
- // Fallback for SSR
70
- globalThis[GLOBAL_INJECTOR_KEY] = new StyleInjector(fullConfig);
71
- }
72
- }
73
- /**
74
- * Get or create the global injector instance
75
- */
76
- function getGlobalInjector() {
77
- const storage = typeof window !== 'undefined' ? window : globalThis;
78
- if (!storage[GLOBAL_INJECTOR_KEY]) {
79
- configure();
80
- }
81
- return storage[GLOBAL_INJECTOR_KEY];
82
- }
8
+ import { getConfig, getGlobalInjector, isTestEnvironment, markStylesGenerated, } from '../config.js';
9
+ import { StyleInjector } from './injector.js';
83
10
  /**
84
11
  * Allocate a className for a cacheKey without injecting styles yet
85
12
  */
@@ -90,6 +17,8 @@ export function allocateClassName(cacheKey, options) {
90
17
  * Inject styles and return className with dispose function
91
18
  */
92
19
  export function inject(rules, options) {
20
+ // Mark that styles have been generated (prevents configuration changes)
21
+ markStylesGenerated();
93
22
  return getGlobalInjector().inject(rules, options);
94
23
  }
95
24
  /**
@@ -99,10 +28,30 @@ export function injectGlobal(rules, options) {
99
28
  return getGlobalInjector().injectGlobal(rules, options);
100
29
  }
101
30
  /**
102
- * Internal method for createGlobalStyle - not exported publicly
31
+ * Inject raw CSS text directly without parsing
32
+ * This is a low-overhead method for injecting raw CSS that doesn't need tasty processing.
33
+ * The CSS is inserted into a separate style element to avoid conflicts with tasty's chunking.
34
+ *
35
+ * @example
36
+ * ```tsx
37
+ * // Inject raw CSS
38
+ * const { dispose } = injectRawCSS(`
39
+ * body { margin: 0; padding: 0; }
40
+ * .my-class { color: red; }
41
+ * `);
42
+ *
43
+ * // Later, remove the injected CSS
44
+ * dispose();
45
+ * ```
46
+ */
47
+ export function injectRawCSS(css, options) {
48
+ return getGlobalInjector().injectRawCSS(css, options);
49
+ }
50
+ /**
51
+ * Get raw CSS text for SSR
103
52
  */
104
- function injectCreateGlobalStyle(rules, options) {
105
- return getGlobalInjector().injectCreateGlobalStyle(rules, options);
53
+ export function getRawCSSText(options) {
54
+ return getGlobalInjector().getRawCSSText(options);
106
55
  }
107
56
  /**
108
57
  * Inject keyframes and return object with toString() and dispose()
@@ -173,21 +122,16 @@ export function destroy(root) {
173
122
  * Create a new isolated injector instance
174
123
  */
175
124
  export function createInjector(config = {}) {
176
- const isTest = isTestEnvironment();
125
+ const defaultConfig = getConfig();
177
126
  const fullConfig = {
178
- ...createDefaultConfig(isTest),
127
+ ...defaultConfig,
128
+ // Auto-enable forceTextInjection in test environments
129
+ forceTextInjection: config.forceTextInjection ?? isTestEnvironment(),
179
130
  ...config,
180
131
  };
181
132
  return new StyleInjector(fullConfig);
182
133
  }
183
- /**
184
- * Create a global style component like styled-components createGlobalStyle
185
- * Returns a React component that injects global styles when mounted and cleans up when unmounted
186
- */
187
- export function createGlobalStyle(strings, ...interpolations) {
188
- return getGlobalInjector().createGlobalStyle(strings, ...interpolations);
189
- }
190
- export { StyleInjector } from './injector';
191
- export { SheetManager } from './sheet-manager';
134
+ export { StyleInjector } from './injector.js';
135
+ export { SheetManager } from './sheet-manager.js';
192
136
 
193
137