@cube-dev/ui-kit 0.98.9 → 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 (672) hide show
  1. package/CHANGELOG.md +36 -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 +15 -15
  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 -11
  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 +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/index.js +129 -129
  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/Menu/styled.d.ts +4893 -4883
  586. package/types/components/actions/use-action.d.ts +1 -1
  587. package/types/components/content/List/SectionHeading.d.ts +251 -251
  588. package/types/components/content/Text.d.ts +1487 -1487
  589. package/types/components/fields/DatePicker/DatePickerElement.d.ts +251 -251
  590. package/types/components/fields/Select/Select.d.ts +828 -826
  591. package/types/components/fields/Slider/elements.d.ts +4968 -4956
  592. package/types/components/status/Spin/Cube.d.ts +1 -1
  593. package/types/components/status/Spin/SpinsContainer.d.ts +6 -3
  594. package/types/index.d.ts +1 -4
  595. package/types/provider.d.ts +1 -2
  596. package/types/stories/components/StyledButton.d.ts +1 -1
  597. package/types/stories/playground/PlaygroundEditor.d.ts +6 -0
  598. package/types/stories/playground/PlaygroundLayout.d.ts +8 -0
  599. package/types/stories/playground/PlaygroundOutput.d.ts +5 -0
  600. package/types/stories/playground/PlaygroundPreview.d.ts +6 -0
  601. package/types/stories/playground/components/Button.d.ts +11 -0
  602. package/types/stories/playground/components/Card.d.ts +7 -0
  603. package/types/stories/playground/components/ScrollProgress.d.ts +5 -0
  604. package/types/stories/playground/examples.d.ts +7 -0
  605. package/types/tasty/chunks/cacheKey.d.ts +26 -0
  606. package/types/tasty/chunks/definitions.d.ts +75 -0
  607. package/types/tasty/chunks/index.d.ts +4 -0
  608. package/types/tasty/chunks/renderChunk.d.ts +25 -0
  609. package/types/tasty/config.d.ts +171 -0
  610. package/types/tasty/debug.d.ts +35 -0
  611. package/types/tasty/hooks/index.d.ts +4 -0
  612. package/types/tasty/hooks/useGlobalStyles.d.ts +22 -0
  613. package/types/tasty/hooks/useRawCSS.d.ts +50 -0
  614. package/types/tasty/hooks/useStyles.d.ts +35 -0
  615. package/types/tasty/index.d.ts +14 -4
  616. package/types/tasty/injector/index.d.ts +30 -19
  617. package/types/tasty/injector/injector.d.ts +19 -13
  618. package/types/tasty/injector/sheet-manager.d.ts +25 -1
  619. package/types/tasty/injector/types.d.ts +23 -2
  620. package/types/tasty/keyframes/index.d.ts +49 -0
  621. package/types/tasty/parser/parser.d.ts +4 -0
  622. package/types/tasty/parser/types.d.ts +1 -0
  623. package/types/tasty/pipeline/conditions.d.ts +243 -0
  624. package/types/tasty/pipeline/exclusive.d.ts +103 -0
  625. package/types/tasty/pipeline/index.d.ts +67 -0
  626. package/types/tasty/pipeline/materialize.d.ts +162 -0
  627. package/types/tasty/pipeline/parseStateKey.d.ts +20 -0
  628. package/types/tasty/pipeline/simplify.d.ts +28 -0
  629. package/types/tasty/plugins/index.d.ts +17 -0
  630. package/types/tasty/plugins/okhsl-plugin.d.ts +45 -0
  631. package/types/tasty/plugins/types.d.ts +34 -0
  632. package/types/tasty/states/index.d.ts +101 -0
  633. package/types/tasty/static/index.d.ts +39 -0
  634. package/types/tasty/static/tastyStatic.d.ts +41 -0
  635. package/types/tasty/static/types.d.ts +44 -0
  636. package/types/tasty/styles/fill.d.ts +11 -1
  637. package/types/tasty/styles/margin.d.ts +3 -1
  638. package/types/tasty/styles/padding.d.ts +3 -1
  639. package/types/tasty/styles/radius.d.ts +2 -10
  640. package/types/tasty/styles/types.d.ts +24 -3
  641. package/types/tasty/tasty.d.ts +892 -840
  642. package/types/tasty/utils/styles.d.ts +50 -6
  643. package/types/tasty/utils/typography.d.ts +32 -0
  644. package/types/tasty/zero/babel.d.ts +63 -0
  645. package/types/tasty/zero/css-writer.d.ts +41 -0
  646. package/types/tasty/zero/extractor.d.ts +40 -0
  647. package/types/tasty/zero/index.d.ts +18 -0
  648. package/types/tasty/zero/next.d.ts +57 -0
  649. package/types/tokens/base.d.ts +8 -0
  650. package/types/tokens/colors.d.ts +6 -0
  651. package/types/tokens/index.d.ts +41 -0
  652. package/types/tokens/layout.d.ts +7 -0
  653. package/types/tokens/shadows.d.ts +12 -0
  654. package/types/tokens/sizes.d.ts +25 -0
  655. package/types/tokens/spacing.d.ts +8 -0
  656. package/types/tokens/typography.d.ts +30 -0
  657. package/es/components/navigation/LegacyTabs/LegacyTabs.js +0 -275
  658. package/es/components/other/Base64Upload/Base64Upload.js +0 -103
  659. package/es/icons/add-new-icon.js +0 -129
  660. package/es/tasty/providers/BreakpointsProvider.js +0 -16
  661. package/es/tasty/utils/getModCombinations.js +0 -38
  662. package/es/tasty/utils/renderStyles.js +0 -1050
  663. package/es/tasty/utils/responsive.js +0 -60
  664. package/es/tokens.js +0 -309
  665. package/types/components/navigation/LegacyTabs/LegacyTabs.d.ts +0 -43
  666. package/types/components/other/Base64Upload/Base64Upload.d.ts +0 -5
  667. package/types/icons/add-new-icon.d.ts +0 -2
  668. package/types/tasty/providers/BreakpointsProvider.d.ts +0 -8
  669. package/types/tasty/utils/getModCombinations.d.ts +0 -9
  670. package/types/tasty/utils/renderStyles.d.ts +0 -41
  671. package/types/tasty/utils/responsive.d.ts +0 -8
  672. package/types/tokens.d.ts +0 -221
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.98.9
4
+ * @cube-dev/ui-kit v0.99.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -9,10 +9,8 @@
9
9
  * Style injector that works with structured style objects
10
10
  * Eliminates CSS string parsing for better performance
11
11
  */
12
- import { Component } from 'react';
13
- import { parseStyle } from '../utils/styles';
14
- // Simple CSS text to StyleResult converter for injectGlobal backward compatibility
15
- import { SheetManager } from './sheet-manager';
12
+ import { parseStyle } from '../utils/styles.js';
13
+ import { SheetManager } from './sheet-manager.js';
16
14
  /**
17
15
  * Generate sequential class name with format t{number}
18
16
  */
@@ -106,13 +104,25 @@ export class StyleInjector {
106
104
  let newSelector = rule.selector;
107
105
  // If rule needs className prepended
108
106
  if (rule.needsClassName) {
109
- // Simple concatenation: .className (double specificity) + selectorSuffix
110
- newSelector = `.${className}.${className}${newSelector}`;
107
+ // Handle multiple selectors (separated by ||| for OR conditions)
108
+ const selectorParts = newSelector ? newSelector.split('|||') : [''];
109
+ const classPrefix = `.${className}.${className}`;
110
+ newSelector = selectorParts
111
+ .map((part) => {
112
+ const classSelector = part ? `${classPrefix}${part}` : classPrefix;
113
+ // If there's a root prefix, add it before the class selector
114
+ if (rule.rootPrefix) {
115
+ return `${rule.rootPrefix} ${classSelector}`;
116
+ }
117
+ return classSelector;
118
+ })
119
+ .join(', ');
111
120
  }
112
121
  return {
113
122
  ...rule,
114
123
  selector: newSelector,
115
124
  needsClassName: undefined, // Remove the flag after processing
125
+ rootPrefix: undefined, // Remove rootPrefix after processing
116
126
  };
117
127
  });
118
128
  // Before inserting, auto-register @property for any color custom properties being defined.
@@ -202,26 +212,20 @@ export class StyleInjector {
202
212
  };
203
213
  }
204
214
  /**
205
- * Inject styles from createGlobalStyle (separate from injectGlobal for tracking)
215
+ * Inject raw CSS text directly without parsing
216
+ * This is a low-overhead alternative to createGlobalStyle for raw CSS
217
+ * The CSS is inserted into a separate style element to avoid conflicts with tasty's chunking
206
218
  */
207
- injectCreateGlobalStyle(rules, options) {
219
+ injectRawCSS(css, options) {
208
220
  const root = options?.root || document;
209
- const registry = this.sheetManager.getRegistry(root);
210
- if (!rules || rules.length === 0) {
211
- return { dispose: () => { } };
212
- }
213
- // Use a different prefix to distinguish from injectGlobal
214
- const key = `raw:${this.globalRuleCounter++}`;
215
- const info = this.sheetManager.insertGlobalRule(registry, rules, key, root);
216
- if (registry.metrics) {
217
- registry.metrics.totalInsertions++;
218
- }
219
- return {
220
- dispose: () => {
221
- if (info)
222
- this.sheetManager.deleteGlobalRule(registry, key);
223
- },
224
- };
221
+ return this.sheetManager.injectRawCSS(css, root);
222
+ }
223
+ /**
224
+ * Get raw CSS text for SSR
225
+ */
226
+ getRawCSSText(options) {
227
+ const root = options?.root || document;
228
+ return this.sheetManager.getRawCSSText(root);
225
229
  }
226
230
  /**
227
231
  * Dispose of a className
@@ -330,9 +334,9 @@ export class StyleInjector {
330
334
  syntax = `"${syntax}"`;
331
335
  parts.push(`syntax: ${syntax};`);
332
336
  }
333
- if (options?.inherits != null) {
334
- parts.push(`inherits: ${options.inherits ? 'true' : 'false'};`);
335
- }
337
+ // inherits is required by the CSS @property spec - default to true
338
+ const inherits = options?.inherits ?? true;
339
+ parts.push(`inherits: ${inherits ? 'true' : 'false'};`);
336
340
  if (options?.initialValue != null) {
337
341
  let initialValueStr;
338
342
  if (typeof options.initialValue === 'number') {
@@ -364,6 +368,12 @@ export class StyleInjector {
364
368
  }
365
369
  /**
366
370
  * Inject keyframes and return object with toString() and dispose()
371
+ *
372
+ * Keyframes are cached by content (steps). If the same content is injected
373
+ * multiple times with different provided names, the first injected name is reused.
374
+ *
375
+ * If the same name is provided with different content (collision), a unique
376
+ * name is generated to avoid overwriting the existing keyframes.
367
377
  */
368
378
  keyframes(steps, nameOrOptions) {
369
379
  // Parse parameters
@@ -377,32 +387,49 @@ export class StyleInjector {
377
387
  dispose: () => { },
378
388
  };
379
389
  }
380
- // Generate cache key from steps and name
381
- const cacheKey = providedName
382
- ? `${providedName}:${JSON.stringify(steps)}`
383
- : JSON.stringify(steps);
384
- // Check if already cached
385
- const existing = registry.keyframesCache.get(cacheKey);
390
+ // Generate content-based cache key (independent of provided name)
391
+ const contentHash = JSON.stringify(steps);
392
+ // Check if this exact content is already cached
393
+ const existing = registry.keyframesCache.get(contentHash);
386
394
  if (existing) {
387
395
  existing.refCount++;
388
396
  return {
389
397
  toString: () => existing.name,
390
- dispose: () => this.disposeKeyframes(cacheKey, registry),
398
+ dispose: () => this.disposeKeyframes(contentHash, registry),
391
399
  };
392
400
  }
393
- // Use provided name or generate new one
394
- const name = providedName || `k${registry.keyframesCounter++}`;
401
+ // Determine the actual name to use
402
+ let actualName;
403
+ if (providedName) {
404
+ // Check if this name is already used with different content
405
+ const existingContentForName = registry.keyframesNameToContent.get(providedName);
406
+ if (existingContentForName && existingContentForName !== contentHash) {
407
+ // Name collision: same name, different content
408
+ // Generate a unique name to avoid overwriting
409
+ actualName = `${providedName}-k${registry.keyframesCounter++}`;
410
+ }
411
+ else {
412
+ // Name is available or used with same content
413
+ actualName = providedName;
414
+ // Track this name -> content mapping
415
+ registry.keyframesNameToContent.set(providedName, contentHash);
416
+ }
417
+ }
418
+ else {
419
+ // No name provided, generate one
420
+ actualName = `k${registry.keyframesCounter++}`;
421
+ }
395
422
  // Insert keyframes
396
- const info = this.sheetManager.insertKeyframes(registry, steps, name, root);
423
+ const info = this.sheetManager.insertKeyframes(registry, steps, actualName, root);
397
424
  if (!info) {
398
425
  return {
399
426
  toString: () => '',
400
427
  dispose: () => { },
401
428
  };
402
429
  }
403
- // Cache the result
404
- registry.keyframesCache.set(cacheKey, {
405
- name,
430
+ // Cache the result by content hash
431
+ registry.keyframesCache.set(contentHash, {
432
+ name: actualName,
406
433
  refCount: 1,
407
434
  info,
408
435
  });
@@ -412,22 +439,30 @@ export class StyleInjector {
412
439
  registry.metrics.misses++;
413
440
  }
414
441
  return {
415
- toString: () => name,
416
- dispose: () => this.disposeKeyframes(cacheKey, registry),
442
+ toString: () => actualName,
443
+ dispose: () => this.disposeKeyframes(contentHash, registry),
417
444
  };
418
445
  }
419
446
  /**
420
447
  * Dispose keyframes
421
448
  */
422
- disposeKeyframes(cacheKey, registry) {
423
- const entry = registry.keyframesCache.get(cacheKey);
449
+ disposeKeyframes(contentHash, registry) {
450
+ const entry = registry.keyframesCache.get(contentHash);
424
451
  if (!entry)
425
452
  return;
426
453
  entry.refCount--;
427
454
  if (entry.refCount <= 0) {
428
455
  // Dispose immediately - keyframes are global and safe to clean up right away
429
456
  this.sheetManager.deleteKeyframes(registry, entry.info);
430
- registry.keyframesCache.delete(cacheKey);
457
+ registry.keyframesCache.delete(contentHash);
458
+ // Clean up name-to-content mapping if this name was tracked
459
+ // Find and remove the mapping for this content hash
460
+ for (const [name, hash] of registry.keyframesNameToContent.entries()) {
461
+ if (hash === contentHash) {
462
+ registry.keyframesNameToContent.delete(name);
463
+ break;
464
+ }
465
+ }
431
466
  // Update metrics
432
467
  if (registry.metrics) {
433
468
  registry.metrics.totalUnused++;
@@ -442,259 +477,6 @@ export class StyleInjector {
442
477
  const targetRoot = root || document;
443
478
  this.sheetManager.cleanup(targetRoot);
444
479
  }
445
- /**
446
- * Create a global style component like styled-components createGlobalStyle
447
- * Returns a React component that injects global styles when mounted and cleans up when unmounted
448
- */
449
- createGlobalStyle(strings, ...interpolations) {
450
- const injector = this; // Capture the injector instance
451
- class GlobalStyleComponent extends Component {
452
- disposeFunction = null;
453
- componentDidMount() {
454
- this.injectStyles();
455
- }
456
- componentDidUpdate() {
457
- this.disposeStyles();
458
- this.injectStyles();
459
- }
460
- componentWillUnmount() {
461
- this.disposeStyles();
462
- }
463
- injectStyles = () => {
464
- const css = this.interpolateTemplate();
465
- if (css.trim()) {
466
- const styleResults = this.parseCSSToStyleResults(css);
467
- // Use a special method for createGlobalStyle to distinguish from injectGlobal
468
- const result = injector.injectCreateGlobalStyle(styleResults, {
469
- root: this.props.root,
470
- });
471
- this.disposeFunction = result.dispose;
472
- }
473
- };
474
- disposeStyles = () => {
475
- if (this.disposeFunction) {
476
- this.disposeFunction();
477
- this.disposeFunction = null;
478
- }
479
- };
480
- interpolateTemplate = () => {
481
- let result = strings[0];
482
- for (let i = 0; i < interpolations.length; i++) {
483
- const interpolation = interpolations[i];
484
- const value = typeof interpolation === 'function'
485
- ? interpolation(this.props)
486
- : interpolation;
487
- result += String(value) + strings[i + 1];
488
- }
489
- return result;
490
- };
491
- parseCSSToStyleResults = (css) => {
492
- const rules = [];
493
- // Enhanced CSS parser for global styles that handles nested rules
494
- this.parseCSS(css, rules, [], '');
495
- return rules;
496
- };
497
- parseCSS = (css, rules, atRuleStack, parentSelector = '') => {
498
- // Remove both CSS and JavaScript-style comments
499
- let cleanCSS = css.replace(/\/\*[\s\S]*?\*\//g, ''); // CSS comments
500
- cleanCSS = cleanCSS.replace(/\/\/.*$/gm, ''); // JavaScript-style comments
501
- let i = 0;
502
- while (i < cleanCSS.length) {
503
- // Skip whitespace
504
- while (i < cleanCSS.length && /\s/.test(cleanCSS[i])) {
505
- i++;
506
- }
507
- if (i >= cleanCSS.length)
508
- break;
509
- // Find the next selector or at-rule
510
- let selectorStart = i;
511
- let braceDepth = 0;
512
- let inString = false;
513
- let stringChar = '';
514
- // Find the opening brace
515
- while (i < cleanCSS.length) {
516
- const char = cleanCSS[i];
517
- if (inString) {
518
- if (char === stringChar && cleanCSS[i - 1] !== '\\') {
519
- inString = false;
520
- }
521
- }
522
- else {
523
- if (char === '"' || char === "'") {
524
- inString = true;
525
- stringChar = char;
526
- }
527
- else if (char === '{') {
528
- braceDepth++;
529
- if (braceDepth === 1) {
530
- break; // Found the opening brace
531
- }
532
- }
533
- else if (char === '}') {
534
- braceDepth--;
535
- }
536
- }
537
- i++;
538
- }
539
- if (i >= cleanCSS.length)
540
- break;
541
- const selectorPart = cleanCSS.substring(selectorStart, i).trim();
542
- i++; // Skip the opening brace
543
- // Find the matching closing brace
544
- const contentStart = i;
545
- braceDepth = 1;
546
- inString = false;
547
- while (i < cleanCSS.length && braceDepth > 0) {
548
- const char = cleanCSS[i];
549
- if (inString) {
550
- if (char === stringChar && cleanCSS[i - 1] !== '\\') {
551
- inString = false;
552
- }
553
- }
554
- else {
555
- if (char === '"' || char === "'") {
556
- inString = true;
557
- stringChar = char;
558
- }
559
- else if (char === '{') {
560
- braceDepth++;
561
- }
562
- else if (char === '}') {
563
- braceDepth--;
564
- }
565
- }
566
- i++;
567
- }
568
- const content = cleanCSS.substring(contentStart, i - 1).trim();
569
- // Check if this is an at-rule
570
- if (selectorPart.startsWith('@')) {
571
- const atSelector = selectorPart.trim();
572
- // Leaf at-rules that contain declarations directly and should be emitted as-is
573
- const leafAtRules = [
574
- '@font-face',
575
- '@property',
576
- '@page',
577
- '@counter-style',
578
- '@font-feature-values',
579
- '@font-palette-values',
580
- '@color-profile',
581
- ];
582
- const isLeafAtRule = leafAtRules.some((prefix) => atSelector.startsWith(prefix));
583
- if (isLeafAtRule) {
584
- // Emit the at-rule with its declarations directly
585
- if (content.trim()) {
586
- rules.push({
587
- selector: atSelector,
588
- declarations: content,
589
- atRules: atRuleStack.length > 0 ? [...atRuleStack] : undefined,
590
- });
591
- }
592
- }
593
- else {
594
- // Wrapper at-rule (e.g., @media, @supports, @keyframes) — parse its content
595
- const newAtRuleStack = [...atRuleStack, atSelector];
596
- this.parseCSS(content, rules, newAtRuleStack, parentSelector);
597
- }
598
- }
599
- else {
600
- // Check if content contains nested rules (has { and })
601
- if (content.includes('{') && content.includes('}')) {
602
- // This selector has nested rules, parse them
603
- const { declarations, nestedCSS } = this.separateDeclarationsAndNested(content);
604
- // Process the selector (handle & syntax)
605
- const processedSelector = this.processSelector(selectorPart, parentSelector);
606
- // Add declarations if any
607
- if (declarations.trim()) {
608
- rules.push({
609
- selector: processedSelector,
610
- declarations: declarations.trim(),
611
- atRules: atRuleStack.length > 0 ? [...atRuleStack] : undefined,
612
- });
613
- }
614
- // Parse nested CSS with current selector as parent
615
- if (nestedCSS.trim()) {
616
- this.parseCSS(nestedCSS, rules, atRuleStack, processedSelector);
617
- }
618
- }
619
- else {
620
- // This is a regular selector with only declarations
621
- const processedSelector = this.processSelector(selectorPart, parentSelector);
622
- if (content && processedSelector) {
623
- rules.push({
624
- selector: processedSelector,
625
- declarations: content,
626
- atRules: atRuleStack.length > 0 ? [...atRuleStack] : undefined,
627
- });
628
- }
629
- }
630
- }
631
- }
632
- };
633
- separateDeclarationsAndNested = (content) => {
634
- const declarations = [];
635
- const nestedRules = [];
636
- let i = 0;
637
- let currentDeclaration = '';
638
- while (i < content.length) {
639
- const char = content[i];
640
- if (char === '{') {
641
- // Found start of nested rule, find the selector before it
642
- let selectorStart = currentDeclaration.lastIndexOf(';') + 1;
643
- if (selectorStart === 0 && currentDeclaration.trim()) {
644
- // No semicolon found, this might be the first rule
645
- selectorStart = 0;
646
- }
647
- const beforeBrace = currentDeclaration.substring(0, selectorStart);
648
- const selector = currentDeclaration.substring(selectorStart).trim();
649
- if (beforeBrace.trim()) {
650
- declarations.push(beforeBrace.trim());
651
- }
652
- // Find the matching closing brace
653
- let braceDepth = 1;
654
- let ruleStart = i + 1;
655
- i++; // Skip opening brace
656
- while (i < content.length && braceDepth > 0) {
657
- if (content[i] === '{')
658
- braceDepth++;
659
- else if (content[i] === '}')
660
- braceDepth--;
661
- i++;
662
- }
663
- const ruleContent = content.substring(ruleStart, i - 1);
664
- nestedRules.push(`${selector} { ${ruleContent} }`);
665
- currentDeclaration = '';
666
- }
667
- else {
668
- currentDeclaration += char;
669
- i++;
670
- }
671
- }
672
- // Add remaining declarations
673
- if (currentDeclaration.trim()) {
674
- declarations.push(currentDeclaration.trim());
675
- }
676
- return {
677
- declarations: declarations.join(' '),
678
- nestedCSS: nestedRules.join('\n'),
679
- };
680
- };
681
- processSelector = (selector, parentSelector) => {
682
- if (!parentSelector) {
683
- return selector;
684
- }
685
- // Handle & syntax - replace & with parent selector
686
- if (selector.includes('&')) {
687
- return selector.replace(/&/g, parentSelector);
688
- }
689
- // If no &, treat as descendant selector
690
- return `${parentSelector} ${selector}`;
691
- };
692
- render() {
693
- return null;
694
- }
695
- }
696
- return GlobalStyleComponent;
697
- }
698
480
  }
699
481
 
700
482
 
@@ -1,14 +1,20 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.98.9
4
+ * @cube-dev/ui-kit v0.99.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- import { createStyle, STYLE_HANDLER_MAP } from '../styles';
8
+ import { createStyle, STYLE_HANDLER_MAP } from '../styles/index.js';
9
9
  export class SheetManager {
10
10
  rootRegistries = new WeakMap();
11
11
  config;
12
+ /** Dedicated style elements for raw CSS per root */
13
+ rawStyleElements = new WeakMap();
14
+ /** Tracking for raw CSS blocks per root */
15
+ rawCSSBlocks = new WeakMap();
16
+ /** Counter for generating unique raw CSS IDs */
17
+ rawCSSCounter = 0;
12
18
  constructor(config) {
13
19
  this.config = config;
14
20
  }
@@ -41,6 +47,7 @@ export class SheetManager {
41
47
  metrics,
42
48
  classCounter: 0,
43
49
  keyframesCache: new Map(),
50
+ keyframesNameToContent: new Map(),
44
51
  keyframesCounter: 0,
45
52
  injectedProperties: new Set(),
46
53
  globalRules: new Map(),
@@ -237,8 +244,11 @@ export class SheetManager {
237
244
  currentRuleIndex = idx + 1;
238
245
  anyInserted = true;
239
246
  }
240
- catch (_) {
247
+ catch (singleErr) {
241
248
  // Skip unsupported selector in this engine (e.g., ::-moz-selection in Blink)
249
+ if (process.env.NODE_ENV !== 'production') {
250
+ console.warn('[tasty] Browser rejected CSS rule:', singleRule, singleErr);
251
+ }
242
252
  }
243
253
  }
244
254
  // If none inserted, continue without throwing to avoid aborting the whole batch
@@ -248,6 +258,9 @@ export class SheetManager {
248
258
  }
249
259
  else {
250
260
  // Single selector failed — skip it silently (likely unsupported in this engine)
261
+ if (process.env.NODE_ENV !== 'production') {
262
+ console.warn('[tasty] Browser rejected CSS rule:', fullRule, e);
263
+ }
251
264
  }
252
265
  }
253
266
  }
@@ -834,6 +847,16 @@ export class SheetManager {
834
847
  info.ruleIndex < styleSheet.cssRules.length) {
835
848
  styleSheet.deleteRule(info.ruleIndex);
836
849
  sheet.ruleCount = Math.max(0, sheet.ruleCount - 1);
850
+ // Adjust indices for all other rules in the same sheet
851
+ // This is critical - when a keyframe rule is deleted, all rules
852
+ // with higher indices shift down by 1
853
+ this.adjustIndicesAfterDeletion(registry, info.sheetIndex, info.ruleIndex, info.ruleIndex, 1,
854
+ // Create a dummy RuleInfo to satisfy the function signature
855
+ {
856
+ className: '',
857
+ ruleIndex: info.ruleIndex,
858
+ sheetIndex: info.sheetIndex,
859
+ });
837
860
  }
838
861
  }
839
862
  }
@@ -906,6 +929,118 @@ export class SheetManager {
906
929
  }
907
930
  // Clear registry
908
931
  this.rootRegistries.delete(root);
932
+ // Clean up raw CSS style element
933
+ const rawStyleElement = this.rawStyleElements.get(root);
934
+ if (rawStyleElement?.parentNode) {
935
+ rawStyleElement.parentNode.removeChild(rawStyleElement);
936
+ }
937
+ this.rawStyleElements.delete(root);
938
+ this.rawCSSBlocks.delete(root);
939
+ }
940
+ /**
941
+ * Get or create a dedicated style element for raw CSS
942
+ * Raw CSS is kept separate from tasty-managed sheets to avoid index conflicts
943
+ */
944
+ getOrCreateRawStyleElement(root) {
945
+ let styleElement = this.rawStyleElements.get(root);
946
+ if (!styleElement) {
947
+ styleElement =
948
+ root.createElement?.('style') ||
949
+ document.createElement('style');
950
+ if (this.config.nonce) {
951
+ styleElement.nonce = this.config.nonce;
952
+ }
953
+ styleElement.setAttribute('data-tasty-raw', '');
954
+ // Append to head or shadow root
955
+ if ('head' in root && root.head) {
956
+ root.head.appendChild(styleElement);
957
+ }
958
+ else if ('appendChild' in root) {
959
+ root.appendChild(styleElement);
960
+ }
961
+ else {
962
+ document.head.appendChild(styleElement);
963
+ }
964
+ this.rawStyleElements.set(root, styleElement);
965
+ this.rawCSSBlocks.set(root, new Map());
966
+ }
967
+ return styleElement;
968
+ }
969
+ /**
970
+ * Inject raw CSS text directly without parsing
971
+ * Returns a dispose function to remove the injected CSS
972
+ */
973
+ injectRawCSS(css, root) {
974
+ if (!css.trim()) {
975
+ return { dispose: () => { } };
976
+ }
977
+ const styleElement = this.getOrCreateRawStyleElement(root);
978
+ const blocksMap = this.rawCSSBlocks.get(root);
979
+ // Generate unique ID for this block
980
+ const id = `raw_${this.rawCSSCounter++}`;
981
+ // Calculate offsets
982
+ const currentContent = styleElement.textContent || '';
983
+ const startOffset = currentContent.length;
984
+ const cssWithNewline = (currentContent ? '\n' : '') + css;
985
+ const endOffset = startOffset + cssWithNewline.length;
986
+ // Append CSS
987
+ styleElement.textContent = currentContent + cssWithNewline;
988
+ // Track the block
989
+ const info = {
990
+ id,
991
+ css,
992
+ startOffset,
993
+ endOffset,
994
+ };
995
+ blocksMap.set(id, info);
996
+ return {
997
+ dispose: () => {
998
+ this.disposeRawCSS(id, root);
999
+ },
1000
+ };
1001
+ }
1002
+ /**
1003
+ * Remove a raw CSS block by ID
1004
+ */
1005
+ disposeRawCSS(id, root) {
1006
+ const styleElement = this.rawStyleElements.get(root);
1007
+ const blocksMap = this.rawCSSBlocks.get(root);
1008
+ if (!styleElement || !blocksMap) {
1009
+ return;
1010
+ }
1011
+ const info = blocksMap.get(id);
1012
+ if (!info) {
1013
+ return;
1014
+ }
1015
+ // Remove from tracking
1016
+ blocksMap.delete(id);
1017
+ // Rebuild the CSS content from remaining blocks
1018
+ // This is simpler and more reliable than trying to splice strings
1019
+ const remainingBlocks = Array.from(blocksMap.values());
1020
+ if (remainingBlocks.length === 0) {
1021
+ styleElement.textContent = '';
1022
+ }
1023
+ else {
1024
+ // Rebuild with remaining CSS blocks in order of their original insertion
1025
+ // Sort by original startOffset to maintain order
1026
+ remainingBlocks.sort((a, b) => a.startOffset - b.startOffset);
1027
+ const newContent = remainingBlocks.map((block) => block.css).join('\n');
1028
+ styleElement.textContent = newContent;
1029
+ // Update offsets for remaining blocks
1030
+ let offset = 0;
1031
+ for (const block of remainingBlocks) {
1032
+ block.startOffset = offset;
1033
+ block.endOffset = offset + block.css.length;
1034
+ offset = block.endOffset + 1; // +1 for newline
1035
+ }
1036
+ }
1037
+ }
1038
+ /**
1039
+ * Get the raw CSS content for SSR
1040
+ */
1041
+ getRawCSSText(root) {
1042
+ const styleElement = this.rawStyleElements.get(root);
1043
+ return styleElement?.textContent || '';
909
1044
  }
910
1045
  }
911
1046
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.98.9
4
+ * @cube-dev/ui-kit v0.99.0
5
5
  * Released under the MIT license.
6
6
  */
7
7