@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
@@ -0,0 +1,222 @@
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 { createHash } from 'crypto';
9
+ import { categorizeStyleKeys, generateChunkCacheKey, renderStylesForChunk, } from '../chunks/index.js';
10
+ import { extractAnimationNamesFromStyles, extractLocalKeyframes, filterUsedKeyframes, hasLocalKeyframes, mergeKeyframes, } from '../keyframes/index.js';
11
+ import { renderStyles } from '../pipeline/index.js';
12
+ /**
13
+ * Generate a deterministic className from a cache key using content hash.
14
+ * This ensures the same styles always produce the same className,
15
+ * regardless of build order or incremental compilation.
16
+ */
17
+ function generateClassName(cacheKey) {
18
+ const hash = createHash('md5').update(cacheKey).digest('hex').slice(0, 6);
19
+ return `ts${hash}`; // 'ts' prefix for "tasty-static" to distinguish from runtime 't' classes
20
+ }
21
+ /**
22
+ * Extract styles using chunking (for className mode).
23
+ * Returns multiple classes, one per chunk.
24
+ */
25
+ export function extractStylesWithChunks(styles) {
26
+ const chunks = [];
27
+ // Categorize style keys into chunks
28
+ const chunkMap = categorizeStyleKeys(styles);
29
+ for (const [chunkName, chunkStyleKeys] of chunkMap) {
30
+ if (chunkStyleKeys.length === 0)
31
+ continue;
32
+ // Generate cache key for this chunk (used for className hash)
33
+ const cacheKey = generateChunkCacheKey(styles, chunkName, chunkStyleKeys);
34
+ // Render styles for this chunk
35
+ const renderResult = renderStylesForChunk(styles, chunkName, chunkStyleKeys);
36
+ if (renderResult.rules.length === 0)
37
+ continue;
38
+ // Generate deterministic className from content hash
39
+ const className = generateClassName(cacheKey);
40
+ const selector = `.${className}.${className}`;
41
+ // Format CSS
42
+ const css = formatRulesToCSS(renderResult.rules, selector);
43
+ chunks.push({ className, css });
44
+ }
45
+ return chunks;
46
+ }
47
+ /**
48
+ * Extract styles for a specific selector (for global/selector mode).
49
+ * Returns a single CSS block.
50
+ */
51
+ export function extractStylesForSelector(selector, styles) {
52
+ // renderStyles with selector returns StyleResult[] with selectors already applied
53
+ const rules = renderStyles(styles, selector);
54
+ // Format without re-prefixing - rules already have the full selector
55
+ const css = formatRulesDirectly(rules);
56
+ return { selector, css };
57
+ }
58
+ /**
59
+ * Format StyleResult[] to CSS string.
60
+ * Prefixes each rule's selector with the base selector.
61
+ * Used for chunked styles where rules have relative selectors.
62
+ */
63
+ function formatRulesToCSS(rules, baseSelector) {
64
+ return rules
65
+ .map((rule) => {
66
+ // Handle selector as array (OR conditions) or string
67
+ // Note: renderStyles without className joins array selectors with '|||' placeholder
68
+ const selectorParts = Array.isArray(rule.selector)
69
+ ? rule.selector
70
+ : rule.selector
71
+ ? rule.selector.split('|||')
72
+ : [''];
73
+ // Prefix each selector part with the base selector
74
+ const fullSelector = selectorParts
75
+ .map((part) => {
76
+ // Build selector: [rootPrefix] baseSelector[part]
77
+ let selector;
78
+ // If part is empty, just use base selector
79
+ if (!part) {
80
+ selector = baseSelector;
81
+ }
82
+ else if (part.startsWith(':') || part.startsWith('[')) {
83
+ // If part starts with a pseudo-class or pseudo-element, append to base
84
+ selector = `${baseSelector}${part}`;
85
+ }
86
+ else if (part.startsWith('>') ||
87
+ part.startsWith('+') ||
88
+ part.startsWith('~')) {
89
+ // If part starts with >, +, ~ combinator, append with space
90
+ selector = `${baseSelector}${part}`;
91
+ }
92
+ else {
93
+ // Otherwise, combine base with part
94
+ selector = `${baseSelector}${part}`;
95
+ }
96
+ // Prepend rootPrefix if present (for @root() states)
97
+ if (rule.rootPrefix) {
98
+ selector = `${rule.rootPrefix} ${selector}`;
99
+ }
100
+ return selector;
101
+ })
102
+ .join(', ');
103
+ let css = `${fullSelector} { ${rule.declarations} }`;
104
+ // Wrap in at-rules (in reverse order for proper nesting)
105
+ if (rule.atRules && rule.atRules.length > 0) {
106
+ for (const atRule of [...rule.atRules].reverse()) {
107
+ css = `${atRule} {\n ${css}\n}`;
108
+ }
109
+ }
110
+ return css;
111
+ })
112
+ .join('\n\n');
113
+ }
114
+ /**
115
+ * Format StyleResult[] to CSS string directly without prefixing.
116
+ * Used for global styles where rules already have the full selector.
117
+ */
118
+ function formatRulesDirectly(rules) {
119
+ return rules
120
+ .map((rule) => {
121
+ // Prepend rootPrefix if present (for @root() states)
122
+ const selector = rule.rootPrefix
123
+ ? `${rule.rootPrefix} ${rule.selector}`
124
+ : rule.selector;
125
+ let css = `${selector} { ${rule.declarations} }`;
126
+ // Wrap in at-rules (in reverse order for proper nesting)
127
+ if (rule.atRules && rule.atRules.length > 0) {
128
+ for (const atRule of [...rule.atRules].reverse()) {
129
+ css = `${atRule} {\n ${css}\n}`;
130
+ }
131
+ }
132
+ return css;
133
+ })
134
+ .join('\n\n');
135
+ }
136
+ // Note: With hash-based className generation, counter management functions
137
+ // are no longer needed. ClassNames are deterministic based on content.
138
+ /**
139
+ * Generate a deterministic keyframes name from content hash.
140
+ * This ensures the same keyframes content always produces the same name,
141
+ * enabling automatic deduplication across elements and files.
142
+ */
143
+ function generateKeyframesName(steps) {
144
+ const content = JSON.stringify(steps);
145
+ const hash = createHash('md5').update(content).digest('hex').slice(0, 6);
146
+ return `kf${hash}`; // 'kf' prefix for "keyframes"
147
+ }
148
+ /**
149
+ * Extract keyframes that are used in styles.
150
+ * Merges local @keyframes with global keyframes, filters to only used ones.
151
+ * Generates hash-based names from content for automatic deduplication.
152
+ *
153
+ * @param styles - The styles object (may contain @keyframes and animation properties)
154
+ * @param globalKeyframes - Optional global keyframes from config
155
+ * @returns Keyframes to inject and name mapping for replacement
156
+ */
157
+ export function extractKeyframesFromStyles(styles, globalKeyframes) {
158
+ const emptyResult = {
159
+ keyframes: [],
160
+ nameMap: new Map(),
161
+ };
162
+ // Extract animation names from styles
163
+ const usedNames = extractAnimationNamesFromStyles(styles);
164
+ if (usedNames.size === 0)
165
+ return emptyResult;
166
+ // Merge local and global keyframes
167
+ const local = hasLocalKeyframes(styles)
168
+ ? extractLocalKeyframes(styles)
169
+ : null;
170
+ const allKeyframes = mergeKeyframes(local, globalKeyframes ?? null);
171
+ // Filter to only used keyframes
172
+ const usedKeyframes = filterUsedKeyframes(allKeyframes, usedNames);
173
+ if (!usedKeyframes)
174
+ return emptyResult;
175
+ // Generate hash-based names and collect unique keyframes
176
+ const seenHashes = new Set();
177
+ const nameMap = new Map();
178
+ const keyframesToEmit = [];
179
+ for (const [originalName, steps] of Object.entries(usedKeyframes)) {
180
+ const hashedName = generateKeyframesName(steps);
181
+ // Always map original name to hashed name (for CSS replacement)
182
+ nameMap.set(originalName, hashedName);
183
+ // Only emit each unique keyframe once
184
+ if (!seenHashes.has(hashedName)) {
185
+ seenHashes.add(hashedName);
186
+ const css = keyframesToCSS(hashedName, steps);
187
+ keyframesToEmit.push({ name: hashedName, css });
188
+ }
189
+ }
190
+ return { keyframes: keyframesToEmit, nameMap };
191
+ }
192
+ /**
193
+ * Convert keyframes steps to CSS string.
194
+ */
195
+ function keyframesToCSS(name, steps) {
196
+ const stepRules = [];
197
+ for (const [key, value] of Object.entries(steps)) {
198
+ if (typeof value === 'string') {
199
+ // Raw CSS string
200
+ stepRules.push(`${key} { ${value.trim()} }`);
201
+ }
202
+ else if (value && typeof value === 'object') {
203
+ // Style map - convert to CSS declarations
204
+ const declarations = Object.entries(value)
205
+ .map(([prop, val]) => {
206
+ const cssProperty = camelToKebab(prop);
207
+ return `${cssProperty}: ${val}`;
208
+ })
209
+ .join('; ');
210
+ stepRules.push(`${key} { ${declarations} }`);
211
+ }
212
+ }
213
+ return `@keyframes ${name} { ${stepRules.join(' ')} }`;
214
+ }
215
+ /**
216
+ * Convert camelCase to kebab-case.
217
+ */
218
+ function camelToKebab(str) {
219
+ return str.replace(/[A-Z]/g, (letter) => `-${letter.toLowerCase()}`);
220
+ }
221
+
222
+
@@ -0,0 +1,28 @@
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
+ /**
9
+ * Zero-runtime module for programmatic use.
10
+ *
11
+ * For the Babel plugin, import from '@cube-dev/ui-kit/tasty/zero/babel'
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * import { extractStylesWithChunks, CSSWriter } from '@cube-dev/ui-kit/tasty/zero';
16
+ *
17
+ * const chunks = extractStylesWithChunks({ fill: '#blue', padding: '2x' });
18
+ * const writer = new CSSWriter('output.css');
19
+ * chunks.forEach(chunk => writer.add(chunk.className, chunk.css));
20
+ * writer.write();
21
+ * ```
22
+ */
23
+ // Core extraction utilities
24
+ export { extractStylesWithChunks, extractStylesForSelector } from './extractor.js';
25
+ // CSS output utilities
26
+ export { CSSWriter } from './css-writer.js';
27
+
28
+
@@ -0,0 +1,102 @@
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
+ /**
9
+ * Next.js configuration wrapper for tasty-zero.
10
+ *
11
+ * Provides a convenient way to configure the Babel plugin for Next.js projects.
12
+ *
13
+ * @example
14
+ * ```javascript
15
+ * // next.config.js
16
+ * const { withTastyZero } = require('@cube-dev/ui-kit/tasty/zero/next');
17
+ *
18
+ * module.exports = withTastyZero({
19
+ * output: 'public/tasty.css',
20
+ * })({
21
+ * // your Next.js config
22
+ * });
23
+ * ```
24
+ */
25
+ import * as path from 'path';
26
+ /**
27
+ * Next.js configuration wrapper for tasty-zero.
28
+ *
29
+ * @param options - Configuration options
30
+ * @returns A function that wraps the Next.js config
31
+ *
32
+ * @example
33
+ * ```javascript
34
+ * // next.config.js
35
+ * const { withTastyZero } = require('@cube-dev/ui-kit/tasty/zero/next');
36
+ *
37
+ * module.exports = withTastyZero()({
38
+ * reactStrictMode: true,
39
+ * });
40
+ * ```
41
+ */
42
+ export function withTastyZero(options = {}) {
43
+ const { output = 'public/tasty.css', enabled = true } = options;
44
+ return (nextConfig = {}) => {
45
+ if (!enabled) {
46
+ return nextConfig;
47
+ }
48
+ return {
49
+ ...nextConfig,
50
+ webpack(config, context) {
51
+ const { isServer, dir } = context;
52
+ // Only process on client build to avoid duplicate CSS generation
53
+ if (!isServer) {
54
+ // Get absolute output path
55
+ const absoluteOutput = path.resolve(dir || process.cwd(), output);
56
+ // Find existing babel-loader rule or add new one
57
+ const babelPluginConfig = [
58
+ require.resolve('./babel'),
59
+ { output: absoluteOutput },
60
+ ];
61
+ // Add our plugin to the existing babel config or create new rule
62
+ const existingRule = config.module?.rules?.find((rule) => rule.use?.loader === 'babel-loader' ||
63
+ rule.use?.some?.((u) => u.loader === 'babel-loader'));
64
+ if (existingRule) {
65
+ // Add to existing babel-loader
66
+ const babelUse = Array.isArray(existingRule.use)
67
+ ? existingRule.use.find((u) => u.loader === 'babel-loader')
68
+ : existingRule.use;
69
+ if (babelUse?.options) {
70
+ babelUse.options.plugins = babelUse.options.plugins || [];
71
+ babelUse.options.plugins.push(babelPluginConfig);
72
+ }
73
+ }
74
+ else {
75
+ // Add new rule for our plugin
76
+ config.module = config.module || {};
77
+ config.module.rules = config.module.rules || [];
78
+ config.module.rules.push({
79
+ test: /\.(tsx?|jsx?)$/,
80
+ exclude: /node_modules/,
81
+ use: [
82
+ {
83
+ loader: require.resolve('babel-loader'),
84
+ options: {
85
+ plugins: [babelPluginConfig],
86
+ },
87
+ },
88
+ ],
89
+ });
90
+ }
91
+ }
92
+ // Chain with existing webpack config
93
+ if (typeof nextConfig.webpack === 'function') {
94
+ return nextConfig.webpack(config, context);
95
+ }
96
+ return config;
97
+ },
98
+ };
99
+ };
100
+ }
101
+
102
+
@@ -0,0 +1,64 @@
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
+ /**
9
+ * Base design system tokens.
10
+ * These define the fundamental units and values used throughout the system.
11
+ *
12
+ * Keys use $ prefix for CSS custom properties.
13
+ */
14
+ export const BASE_TOKENS = {
15
+ // Typography base
16
+ /** @deprecated Use preset tokens instead */
17
+ '$font-size': '14px',
18
+ /** @deprecated Use preset tokens instead */
19
+ '$line-height': '20px',
20
+ // Input typography
21
+ '$input-font-size': '14px',
22
+ '$input-line-height': '20px',
23
+ '$input-letter-spacing': '0.02em',
24
+ // Opacity & dimensions
25
+ /** Opacity for disabled elements */
26
+ '$disabled-opacity': '.4',
27
+ /** Base gap unit for spacing (used with `.5x`, `1x`, `2x` etc.) */
28
+ $gap: '8px',
29
+ /** Stroke width for icons */
30
+ '$stroke-width': 1.5,
31
+ /** Focus outline width */
32
+ '$outline-width': 'calc(1rem / 16 * 3)',
33
+ /** Border width for bordered elements */
34
+ '$border-width': '1px',
35
+ // Border radius
36
+ /** Base border radius (used with `1r`, `2r` etc.) */
37
+ $radius: '6px',
38
+ /** Larger radius using tasty calc: 1r + 0.5x */
39
+ '$large-radius': '(1r + .5x)',
40
+ /** Card border radius */
41
+ '$card-radius': '(1r + .5x)',
42
+ /** Sharp corner for leaf shapes */
43
+ '$leaf-sharp-radius': '0px',
44
+ // Misc dimensions
45
+ /** Width of fade effect for overflowing content */
46
+ '$fade-width': '32px',
47
+ /** Minimum dialog width (responsive) */
48
+ '$min-dialog-size': 'min(288px, calc(100vw - (2 * var(--gap))))',
49
+ // Transitions
50
+ /** Default transition duration */
51
+ $transition: '80ms',
52
+ /** Transition for disclosure animations */
53
+ '$disclosure-transition': '120ms',
54
+ // Scrollbar tokens
55
+ '$scrollbar-width': '1.5x',
56
+ '$scrollbar-outline-width': '1ow',
57
+ '$scrollbar-radius': '1.5r',
58
+ '#scrollbar-thumb': '#text.5',
59
+ '#scrollbar-outline': '#clear',
60
+ '#scrollbar-bg': '#dark-bg',
61
+ '#scrollbar-corner': '#clear',
62
+ };
63
+
64
+
@@ -0,0 +1,68 @@
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
+ /**
9
+ * Color tokens with # prefix for tasty color definitions.
10
+ * The tasty system automatically generates {name}-color-rgb variants.
11
+ */
12
+ export const COLOR_TOKENS = {
13
+ // Base colors
14
+ '#pink': 'rgb(255 100 146)',
15
+ '#pink-02': 'rgb(255 131 168)',
16
+ '#purple': 'rgb(113 110 238)',
17
+ '#purple-text': 'rgb(105 103 227)',
18
+ '#purple-bg': 'rgb(241 239 250)',
19
+ '#purple-icon': 'rgb(142 134 237)',
20
+ '#purple-01': 'rgb(122 119 255)',
21
+ '#purple-02': 'rgb(149 146 255)',
22
+ '#purple-03': 'rgb(175 173 255)',
23
+ '#purple-04': 'rgb(202 201 255)',
24
+ '#focus': 'rgb(172 163 238)',
25
+ '#text': 'rgb(91 92 125)',
26
+ '#dark': 'rgb(25 26 46)',
27
+ '#dark-01': 'rgb(25 26 46)',
28
+ '#dark-02': 'rgb(69 68 98)',
29
+ '#dark-03': 'rgb(115 114 139)',
30
+ '#dark-04': 'rgb(161 161 178)',
31
+ '#dark-05': 'rgb(213 213 222)',
32
+ '#dark-bg': 'rgb(249 249 251)',
33
+ '#light': 'rgb(246 246 248)',
34
+ '#white': 'rgb(255 255 255)',
35
+ '#black': 'rgb(0 0 0)',
36
+ '#danger': 'rgb(227 70 75)',
37
+ '#danger-text': 'rgb(208 57 56)',
38
+ '#danger-bg': 'rgb(253 245 244)',
39
+ '#danger-icon': 'rgb(245 101 99)',
40
+ '#success': 'rgb(9 145 88)',
41
+ '#success-text': 'rgb(12 135 82)',
42
+ '#success-icon': 'rgb(40 165 104)',
43
+ '#success-bg': 'rgb(238 249 242)',
44
+ '#note': 'rgb(158 119 19)',
45
+ '#note-text': 'rgb(150 112 8)',
46
+ '#note-bg': 'rgb(253 245 233)',
47
+ '#note-icon': 'rgb(181 140 44)',
48
+ '#border': 'rgb(227 227 233)',
49
+ '#light-border': 'rgb(227 227 233)',
50
+ // Semantic colors
51
+ '#clear': 'transparent',
52
+ '#border-opaque': 'rgb(227 227 233)',
53
+ '#shadow': '#dark.06',
54
+ '#draft': '#dark.2',
55
+ '#minor': '#dark.65',
56
+ '#danger-bg-hover': '#danger.1',
57
+ '#dark-75': '#dark.75',
58
+ '#primary': '#purple',
59
+ // Pink opacity variants
60
+ '#pink-8': '#pink.2',
61
+ '#pink-9': '#pink.1',
62
+ // Disabled state colors
63
+ '#disabled': '#dark-01.25',
64
+ '#disabled-text': '#dark-01.25',
65
+ '#disabled-bg': '#dark-05.2',
66
+ };
67
+
68
+
@@ -0,0 +1,63 @@
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
+ /**
9
+ * Design tokens for the Cube UI Kit.
10
+ *
11
+ * This module exports all design tokens used throughout the design system.
12
+ * All token keys use $ prefix for CSS custom properties.
13
+ *
14
+ * Categories:
15
+ * - Colors: Base color palette with -color and -color-rgb variants
16
+ * - Typography: Font presets for headings, text, paragraphs, etc.
17
+ * - Sizes: Component size values (XS, SM, MD, LG, XL)
18
+ * - Spacing: Space tokens using gap multipliers
19
+ * - Shadows: Shadow definitions for elevation
20
+ * - Layout: Common layout dimensions
21
+ * - Base: Core design system values
22
+ */
23
+ import { generateTypographyTokens } from '../tasty/utils/typography.js';
24
+ import { BASE_TOKENS } from './base.js';
25
+ import { COLOR_TOKENS } from './colors.js';
26
+ import { LAYOUT_TOKENS } from './layout.js';
27
+ import { SHADOW_TOKENS } from './shadows.js';
28
+ import { SIZE_TOKENS } from './sizes.js';
29
+ import { SPACE_TOKENS } from './spacing.js';
30
+ /**
31
+ * All design tokens combined into a single Styles object.
32
+ * Keys use $ prefix for CSS custom properties.
33
+ *
34
+ * Ready for use with useGlobalStyles('body', TOKENS).
35
+ *
36
+ * Includes:
37
+ * - Base tokens ($gap, $radius, etc.)
38
+ * - Space tokens ($space-xs, $space-sm, etc.)
39
+ * - Size tokens ($size-xs, $size-sm, etc.)
40
+ * - Shadow tokens ($item-shadow, $card-shadow, etc.)
41
+ * - Layout tokens ($max-content-width, $topbar-height, etc.)
42
+ * - Typography tokens ($h1-font-size, $t3-line-height, etc.)
43
+ * - Color tokens ($purple-color, $purple-color-rgb, etc.)
44
+ */
45
+ export const TOKENS = {
46
+ ...BASE_TOKENS,
47
+ ...SPACE_TOKENS,
48
+ ...SIZE_TOKENS,
49
+ ...SHADOW_TOKENS,
50
+ ...LAYOUT_TOKENS,
51
+ ...generateTypographyTokens(),
52
+ ...COLOR_TOKENS,
53
+ };
54
+ // Re-export category modules for direct access
55
+ export { COLOR_TOKENS } from './colors.js';
56
+ export { SIZES, SIZE_NAME_TO_KEY, SIZE_TOKENS } from './sizes.js';
57
+ export { SPACE_TOKENS } from './spacing.js';
58
+ export { SHADOW_TOKENS } from './shadows.js';
59
+ export { LAYOUT_TOKENS } from './layout.js';
60
+ export { BASE_TOKENS } from './base.js';
61
+ export { TYPOGRAPHY_PRESETS } from './typography.js';
62
+
63
+
@@ -0,0 +1,26 @@
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
+ /**
9
+ * Layout-related tokens for common UI dimensions.
10
+ *
11
+ * Keys use $ prefix for CSS custom properties.
12
+ */
13
+ export const LAYOUT_TOKENS = {
14
+ /** Maximum width for main content areas */
15
+ '$max-content-width': '1440px',
16
+ /** Height of the top navigation bar */
17
+ '$topbar-height': '48px',
18
+ /** Height of the development mode indicator bar */
19
+ '$devmodebar-height': '54px',
20
+ /** Width of the sidebar navigation */
21
+ '$sidebar-width': '200px',
22
+ /** Base border radius (legacy, prefer `radius`) */
23
+ '$border-radius-base': '4px',
24
+ };
25
+
26
+
@@ -0,0 +1,27 @@
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
+ /**
9
+ * Shadow tokens using tasty shorthand syntax.
10
+ *
11
+ * Format: `<offset-y> <blur> <spread?> <color>`
12
+ * - `1bw` = 1 × border-width
13
+ * - `.5x` = 0.5 × gap
14
+ * - `#dark.15` = dark color at 15% opacity
15
+ *
16
+ * Keys use $ prefix for CSS custom properties.
17
+ */
18
+ export const SHADOW_TOKENS = {
19
+ /** Subtle shadow for list items */
20
+ '$item-shadow': '0 1bw .375x #dark.15',
21
+ /** Standard card elevation */
22
+ '$card-shadow': '0 .5x 2x #shadow',
23
+ /** Elevated dialog shadow */
24
+ '$dialog-shadow': '0 1x 4x #dark.15',
25
+ };
26
+
27
+
@@ -0,0 +1,42 @@
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
+ /**
9
+ * Component size values in pixels.
10
+ * Used for buttons, inputs, and other interactive elements.
11
+ */
12
+ export const SIZES = {
13
+ XS: 24,
14
+ SM: 28,
15
+ MD: 32,
16
+ LG: 40,
17
+ XL: 48,
18
+ };
19
+ /**
20
+ * Map from size names to size keys.
21
+ * @example SIZE_NAME_TO_KEY['small'] // 'SM'
22
+ */
23
+ export const SIZE_NAME_TO_KEY = {
24
+ xsmall: 'XS',
25
+ small: 'SM',
26
+ medium: 'MD',
27
+ large: 'LG',
28
+ xlarge: 'XL',
29
+ };
30
+ /**
31
+ * Size tokens with $ prefix for CSS custom properties.
32
+ * Creates tokens like `$size-xs`, `$size-sm`, etc.
33
+ */
34
+ export const SIZE_TOKENS = {
35
+ '$size-xs': `${SIZES.XS}px`,
36
+ '$size-sm': `${SIZES.SM}px`,
37
+ '$size-md': `${SIZES.MD}px`,
38
+ '$size-lg': `${SIZES.LG}px`,
39
+ '$size-xl': `${SIZES.XL}px`,
40
+ };
41
+
42
+
@@ -0,0 +1,22 @@
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
+ /**
9
+ * Spacing tokens using tasty multiplier syntax.
10
+ * Values like `.5x` mean 0.5 × gap, `2x` means 2 × gap.
11
+ *
12
+ * Keys use $ prefix for CSS custom properties.
13
+ */
14
+ export const SPACE_TOKENS = {
15
+ '$space-xs': '.5x',
16
+ '$space-sm': '.75x',
17
+ '$space-md': '1x',
18
+ '$space-lg': '1.5x',
19
+ '$space-xl': '2x',
20
+ };
21
+
22
+