@cube-dev/ui-kit 0.98.9 → 0.99.1

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 +42 -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 +20 -4
  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,453 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.99.1
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ /**
9
+ * Babel plugin for zero-runtime tasty static site generation.
10
+ *
11
+ * Transforms:
12
+ * - `tastyStatic(styles)` → StaticStyle object { className, styles, toString() }
13
+ * - `tastyStatic(base, styles)` → StaticStyle object with merged styles
14
+ * - `tastyStatic(selector, styles)` → removed entirely
15
+ *
16
+ * Usage:
17
+ * ```javascript
18
+ * // babel.config.js
19
+ * module.exports = {
20
+ * plugins: [
21
+ * ['@cube-dev/ui-kit/tasty/zero/babel', { output: 'public/tasty.css' }]
22
+ * ]
23
+ * };
24
+ * ```
25
+ */
26
+ import { declare } from '@babel/helper-plugin-utils';
27
+ import * as t from '@babel/types';
28
+ import { setGlobalPredefinedStates } from '../states/index.js';
29
+ import { mergeStyles } from '../utils/mergeStyles.js';
30
+ import { CUSTOM_UNITS, getGlobalFuncs, getGlobalParser } from '../utils/styles.js';
31
+ import { CSSWriter } from './css-writer.js';
32
+ import { extractKeyframesFromStyles, extractStylesForSelector, extractStylesWithChunks, } from './extractor.js';
33
+ export default declare((api, options) => {
34
+ api.assertVersion(7);
35
+ const outputPath = options.output || 'tasty.css';
36
+ const config = options.config || {};
37
+ const devMode = config.devMode ?? false;
38
+ // Apply global predefined states if configured
39
+ if (config.states) {
40
+ setGlobalPredefinedStates(config.states);
41
+ }
42
+ // Apply parser configuration (merge semantics - extend, not replace)
43
+ const parser = getGlobalParser();
44
+ if (config.units) {
45
+ // Merge with existing units
46
+ const currentUnits = parser.getUnits() ?? CUSTOM_UNITS;
47
+ parser.setUnits({ ...currentUnits, ...config.units });
48
+ }
49
+ if (config.funcs) {
50
+ // Merge with existing funcs
51
+ const currentFuncs = getGlobalFuncs();
52
+ const mergedFuncs = { ...currentFuncs, ...config.funcs };
53
+ parser.setFuncs(mergedFuncs);
54
+ // Also update the global registry so customFunc() continues to work
55
+ Object.assign(currentFuncs, config.funcs);
56
+ }
57
+ const cssWriter = new CSSWriter(outputPath, { devMode });
58
+ // Global registry for cross-file references (same build)
59
+ const globalRegistry = {};
60
+ return {
61
+ name: 'tasty-zero',
62
+ pre() {
63
+ // Initialize per-file registry
64
+ this.staticStyleRegistry = {};
65
+ // Extract source filename for devMode comments
66
+ if (devMode && this.filename) {
67
+ // Get relative path or just filename
68
+ this.sourceFile = this.filename.split('/').pop() || this.filename;
69
+ }
70
+ },
71
+ visitor: {
72
+ // Remove import statements for tasty/static
73
+ ImportDeclaration(path) {
74
+ const source = path.node.source.value;
75
+ if (source === '@cube-dev/ui-kit/tasty/static' ||
76
+ source.endsWith('/tasty/static')) {
77
+ path.remove();
78
+ }
79
+ },
80
+ // Transform tastyStatic() calls
81
+ CallExpression(path, state) {
82
+ const callee = path.node.callee;
83
+ // Match tastyStatic(...) calls
84
+ if (!t.isIdentifier(callee, { name: 'tastyStatic' })) {
85
+ return;
86
+ }
87
+ const args = path.node.arguments;
88
+ if (args.length === 0) {
89
+ throw path.buildCodeFrameError('tastyStatic() requires at least one argument');
90
+ }
91
+ const firstArg = args[0];
92
+ if (t.isStringLiteral(firstArg)) {
93
+ // Selector mode: tastyStatic(selector, styles)
94
+ handleSelectorMode(path, args, cssWriter, state.sourceFile, config.keyframes);
95
+ }
96
+ else if (t.isObjectExpression(firstArg)) {
97
+ // Styles mode: tastyStatic(styles)
98
+ handleStylesMode(path, args, cssWriter, state, globalRegistry, config.keyframes);
99
+ }
100
+ else if (t.isIdentifier(firstArg)) {
101
+ // Extension mode: tastyStatic(base, styles)
102
+ handleExtensionMode(path, args, cssWriter, state, globalRegistry, config.keyframes);
103
+ }
104
+ else {
105
+ throw path.buildCodeFrameError('tastyStatic() first argument must be an object (styles), ' +
106
+ 'identifier (base StaticStyle), or string (selector)');
107
+ }
108
+ },
109
+ // Track variable declarations to register StaticStyle objects
110
+ VariableDeclarator(path, state) {
111
+ const init = path.node.init;
112
+ const id = path.node.id;
113
+ // Check if this is a StaticStyle object (has className and styles properties)
114
+ if (t.isIdentifier(id) &&
115
+ t.isObjectExpression(init) &&
116
+ isStaticStyleObject(init)) {
117
+ const variableName = id.name;
118
+ const styles = extractStylesFromStaticStyleObject(init, path);
119
+ const className = extractClassNameFromStaticStyleObject(init);
120
+ if (styles && className) {
121
+ state.staticStyleRegistry[variableName] = { styles, className };
122
+ globalRegistry[variableName] = { styles, className };
123
+ }
124
+ }
125
+ },
126
+ },
127
+ post() {
128
+ // Write all collected CSS at the end of the build
129
+ if (cssWriter.size > 0) {
130
+ cssWriter.write();
131
+ }
132
+ },
133
+ };
134
+ });
135
+ /**
136
+ * Check if an object expression looks like a StaticStyle object
137
+ */
138
+ function isStaticStyleObject(node) {
139
+ const hasClassName = node.properties.some((p) => t.isObjectProperty(p) && t.isIdentifier(p.key, { name: 'className' }));
140
+ const hasStyles = node.properties.some((p) => t.isObjectProperty(p) && t.isIdentifier(p.key, { name: 'styles' }));
141
+ return hasClassName && hasStyles;
142
+ }
143
+ /**
144
+ * Extract styles object from a StaticStyle object expression
145
+ */
146
+ function extractStylesFromStaticStyleObject(node, path) {
147
+ for (const prop of node.properties) {
148
+ if (t.isObjectProperty(prop) &&
149
+ t.isIdentifier(prop.key, { name: 'styles' }) &&
150
+ t.isObjectExpression(prop.value)) {
151
+ return evaluateObjectExpression(prop.value, path);
152
+ }
153
+ }
154
+ return null;
155
+ }
156
+ /**
157
+ * Extract className from a StaticStyle object expression
158
+ */
159
+ function extractClassNameFromStaticStyleObject(node) {
160
+ for (const prop of node.properties) {
161
+ if (t.isObjectProperty(prop) &&
162
+ t.isIdentifier(prop.key, { name: 'className' }) &&
163
+ t.isStringLiteral(prop.value)) {
164
+ return prop.value.value;
165
+ }
166
+ }
167
+ return null;
168
+ }
169
+ /**
170
+ * Handle tastyStatic(styles) - returns StaticStyle object
171
+ */
172
+ function handleStylesMode(path, args, cssWriter, state, globalRegistry, globalKeyframes) {
173
+ const stylesArg = args[0];
174
+ if (!t.isObjectExpression(stylesArg)) {
175
+ throw path.buildCodeFrameError('tastyStatic(styles) argument must be a static object literal');
176
+ }
177
+ // Evaluate styles object at build time
178
+ const styles = evaluateObjectExpression(stylesArg, path);
179
+ // Extract keyframes (deduplicated by content)
180
+ const { keyframes, nameMap } = extractKeyframesFromStyles(styles, globalKeyframes);
181
+ // Add keyframes CSS
182
+ for (const kf of keyframes) {
183
+ cssWriter.add(kf.css, kf.css, state.sourceFile);
184
+ }
185
+ // Extract styles with chunking
186
+ const chunks = extractStylesWithChunks(styles);
187
+ // Add CSS to writer, replacing animation names if needed
188
+ for (const chunk of chunks) {
189
+ const css = nameMap.size > 0
190
+ ? replaceAnimationNamesInCSS(chunk.css, nameMap)
191
+ : chunk.css;
192
+ cssWriter.add(chunk.className, css, state.sourceFile);
193
+ }
194
+ // Generate className
195
+ const className = chunks.length > 0 ? chunks.map((c) => c.className).join(' ') : '';
196
+ // Replace call with StaticStyle object
197
+ const staticStyleObject = createStaticStyleAST(className, styles);
198
+ path.replaceWith(staticStyleObject);
199
+ // Register if this is being assigned to a variable
200
+ registerIfVariableDeclaration(path, className, styles, state, globalRegistry);
201
+ }
202
+ /**
203
+ * Handle tastyStatic(base, styles) - extends base with additional styles
204
+ */
205
+ function handleExtensionMode(path, args, cssWriter, state, globalRegistry, globalKeyframes) {
206
+ if (args.length < 2) {
207
+ throw path.buildCodeFrameError('tastyStatic(base, styles) requires two arguments');
208
+ }
209
+ const baseArg = args[0];
210
+ const stylesArg = args[1];
211
+ if (!t.isIdentifier(baseArg)) {
212
+ throw path.buildCodeFrameError('tastyStatic(base, styles) first argument must be an identifier');
213
+ }
214
+ if (!t.isObjectExpression(stylesArg)) {
215
+ throw path.buildCodeFrameError('tastyStatic(base, styles) second argument must be a static object literal');
216
+ }
217
+ const baseName = baseArg.name;
218
+ // Look up base styles in registry
219
+ const baseEntry = state.staticStyleRegistry[baseName] || globalRegistry[baseName];
220
+ if (!baseEntry) {
221
+ throw path.buildCodeFrameError(`Cannot find base StaticStyle '${baseName}'. ` +
222
+ 'Make sure it is defined before being extended.');
223
+ }
224
+ // Evaluate override styles
225
+ const overrideStyles = evaluateObjectExpression(stylesArg, path);
226
+ // Merge styles using mergeStyles
227
+ const mergedStyles = mergeStyles(baseEntry.styles, overrideStyles);
228
+ // Extract keyframes (deduplicated by content)
229
+ const { keyframes, nameMap } = extractKeyframesFromStyles(mergedStyles, globalKeyframes);
230
+ // Add keyframes CSS
231
+ for (const kf of keyframes) {
232
+ cssWriter.add(kf.css, kf.css, state.sourceFile);
233
+ }
234
+ // Extract styles with chunking
235
+ const chunks = extractStylesWithChunks(mergedStyles);
236
+ // Add CSS to writer, replacing animation names if needed
237
+ for (const chunk of chunks) {
238
+ const css = nameMap.size > 0
239
+ ? replaceAnimationNamesInCSS(chunk.css, nameMap)
240
+ : chunk.css;
241
+ cssWriter.add(chunk.className, css, state.sourceFile);
242
+ }
243
+ // Generate className
244
+ const className = chunks.length > 0 ? chunks.map((c) => c.className).join(' ') : '';
245
+ // Replace call with StaticStyle object
246
+ const staticStyleObject = createStaticStyleAST(className, mergedStyles);
247
+ path.replaceWith(staticStyleObject);
248
+ // Register if this is being assigned to a variable
249
+ registerIfVariableDeclaration(path, className, mergedStyles, state, globalRegistry);
250
+ }
251
+ /**
252
+ * Handle tastyStatic(selector, styles) - removes the call entirely
253
+ */
254
+ function handleSelectorMode(path, args, cssWriter, sourceFile, globalKeyframes) {
255
+ if (args.length < 2) {
256
+ throw path.buildCodeFrameError('tastyStatic(selector, styles) requires two arguments');
257
+ }
258
+ const selectorArg = args[0];
259
+ const stylesArg = args[1];
260
+ if (!t.isStringLiteral(selectorArg)) {
261
+ throw path.buildCodeFrameError('tastyStatic(selector, styles) first argument must be a string literal');
262
+ }
263
+ if (!t.isObjectExpression(stylesArg)) {
264
+ throw path.buildCodeFrameError('tastyStatic(selector, styles) second argument must be a static object literal');
265
+ }
266
+ const selector = selectorArg.value;
267
+ const styles = evaluateObjectExpression(stylesArg, path);
268
+ // Extract keyframes (deduplicated by content)
269
+ const { keyframes, nameMap } = extractKeyframesFromStyles(styles, globalKeyframes);
270
+ // Add keyframes CSS
271
+ for (const kf of keyframes) {
272
+ cssWriter.add(kf.css, kf.css, sourceFile);
273
+ }
274
+ // Extract styles for selector
275
+ const result = extractStylesForSelector(selector, styles);
276
+ // Replace animation names if needed and add CSS
277
+ const css = nameMap.size > 0
278
+ ? replaceAnimationNamesInCSS(result.css, nameMap)
279
+ : result.css;
280
+ cssWriter.add(selector, css, sourceFile);
281
+ // Remove the entire statement
282
+ const parent = path.parentPath;
283
+ if (parent && t.isExpressionStatement(parent.node)) {
284
+ parent.remove();
285
+ }
286
+ else {
287
+ // If used in an expression context (which would be incorrect usage),
288
+ // replace with undefined
289
+ path.replaceWith(t.identifier('undefined'));
290
+ }
291
+ }
292
+ /**
293
+ * Create a StaticStyle object AST node
294
+ */
295
+ function createStaticStyleAST(className, styles) {
296
+ return t.objectExpression([
297
+ t.objectProperty(t.identifier('className'), t.stringLiteral(className)),
298
+ t.objectProperty(t.identifier('styles'), valueToAST(styles)),
299
+ t.objectMethod('method', t.identifier('toString'), [], t.blockStatement([
300
+ t.returnStatement(t.memberExpression(t.thisExpression(), t.identifier('className'))),
301
+ ])),
302
+ ]);
303
+ }
304
+ /**
305
+ * Register a StaticStyle in the registry if it's being assigned to a variable
306
+ */
307
+ function registerIfVariableDeclaration(path, className, styles, state, globalRegistry) {
308
+ const parent = path.parentPath;
309
+ if (parent && t.isVariableDeclarator(parent.node)) {
310
+ const id = parent.node.id;
311
+ if (t.isIdentifier(id)) {
312
+ const variableName = id.name;
313
+ state.staticStyleRegistry[variableName] = { styles, className };
314
+ globalRegistry[variableName] = { styles, className };
315
+ }
316
+ }
317
+ }
318
+ /**
319
+ * Convert a JavaScript value to an AST node
320
+ */
321
+ function valueToAST(value) {
322
+ if (value === null) {
323
+ return t.nullLiteral();
324
+ }
325
+ if (value === undefined) {
326
+ return t.identifier('undefined');
327
+ }
328
+ if (typeof value === 'string') {
329
+ return t.stringLiteral(value);
330
+ }
331
+ if (typeof value === 'number') {
332
+ return t.numericLiteral(value);
333
+ }
334
+ if (typeof value === 'boolean') {
335
+ return t.booleanLiteral(value);
336
+ }
337
+ if (Array.isArray(value)) {
338
+ return t.arrayExpression(value.map(valueToAST));
339
+ }
340
+ if (typeof value === 'object') {
341
+ const properties = Object.entries(value).map(([key, val]) => t.objectProperty(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(key)
342
+ ? t.identifier(key)
343
+ : t.stringLiteral(key), valueToAST(val)));
344
+ return t.objectExpression(properties);
345
+ }
346
+ // Fallback for unsupported types
347
+ return t.identifier('undefined');
348
+ }
349
+ /**
350
+ * Evaluate an ObjectExpression to a plain JavaScript object.
351
+ * Only supports static values that can be determined at build time.
352
+ */
353
+ function evaluateObjectExpression(node, path) {
354
+ const result = {};
355
+ for (const prop of node.properties) {
356
+ if (t.isSpreadElement(prop)) {
357
+ throw path.buildCodeFrameError('Spread elements are not supported in tastyStatic() - styles must be fully static');
358
+ }
359
+ if (!t.isObjectProperty(prop)) {
360
+ throw path.buildCodeFrameError('Only object properties are supported in tastyStatic()');
361
+ }
362
+ // Get key
363
+ let key;
364
+ if (t.isIdentifier(prop.key)) {
365
+ key = prop.key.name;
366
+ }
367
+ else if (t.isStringLiteral(prop.key)) {
368
+ key = prop.key.value;
369
+ }
370
+ else {
371
+ throw path.buildCodeFrameError('Dynamic property keys are not supported in tastyStatic()');
372
+ }
373
+ // Get value
374
+ const value = evaluateExpression(prop.value, path);
375
+ result[key] = value;
376
+ }
377
+ return result;
378
+ }
379
+ /**
380
+ * Evaluate an expression to a JavaScript value.
381
+ */
382
+ function evaluateExpression(node, path) {
383
+ if (t.isStringLiteral(node)) {
384
+ return node.value;
385
+ }
386
+ if (t.isNumericLiteral(node)) {
387
+ return node.value;
388
+ }
389
+ if (t.isBooleanLiteral(node)) {
390
+ return node.value;
391
+ }
392
+ if (t.isNullLiteral(node)) {
393
+ return null;
394
+ }
395
+ if (t.isIdentifier(node, { name: 'undefined' })) {
396
+ return undefined;
397
+ }
398
+ if (t.isArrayExpression(node)) {
399
+ return node.elements.map((el) => {
400
+ if (el === null)
401
+ return null;
402
+ if (t.isSpreadElement(el)) {
403
+ throw path.buildCodeFrameError('Spread elements are not supported in tastyStatic()');
404
+ }
405
+ return evaluateExpression(el, path);
406
+ });
407
+ }
408
+ if (t.isObjectExpression(node)) {
409
+ return evaluateObjectExpression(node, path);
410
+ }
411
+ if (t.isTemplateLiteral(node)) {
412
+ // Only support template literals without expressions
413
+ if (node.expressions.length > 0) {
414
+ throw path.buildCodeFrameError('Template literals with expressions are not supported in tastyStatic()');
415
+ }
416
+ return node.quasis.map((q) => q.value.cooked).join('');
417
+ }
418
+ if (t.isUnaryExpression(node, { operator: '-' })) {
419
+ const arg = evaluateExpression(node.argument, path);
420
+ if (typeof arg === 'number') {
421
+ return -arg;
422
+ }
423
+ }
424
+ throw path.buildCodeFrameError(`Dynamic expressions are not supported in tastyStatic() - got ${node.type}. ` +
425
+ 'All values must be static literals.');
426
+ }
427
+ /**
428
+ * Replace animation names in CSS string.
429
+ * Wraps the keyframes replaceAnimationNames to work on full CSS blocks.
430
+ */
431
+ function replaceAnimationNamesInCSS(css, nameMap) {
432
+ if (nameMap.size === 0)
433
+ return css;
434
+ // The CSS contains full rules like ".class { animation: name 1s; }"
435
+ // We need to replace animation names within declaration blocks
436
+ return css.replace(/(animation(?:-name)?)\s*:\s*([^;}]+)/gi, (match, prop, value) => {
437
+ let newValue = value;
438
+ for (const [original, replacement] of nameMap) {
439
+ // Word boundary replacement
440
+ const pattern = new RegExp(`\\b${escapeRegex(original)}\\b`, 'g');
441
+ newValue = newValue.replace(pattern, replacement);
442
+ }
443
+ return `${prop}: ${newValue}`;
444
+ });
445
+ }
446
+ /**
447
+ * Escape special regex characters.
448
+ */
449
+ function escapeRegex(str) {
450
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
451
+ }
452
+
453
+
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.99.1
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ import * as fs from 'fs';
9
+ import * as path from 'path';
10
+ export class CSSWriter {
11
+ cssBlocks = new Map();
12
+ outputPath;
13
+ devMode;
14
+ constructor(outputPath, options = {}) {
15
+ this.outputPath = outputPath;
16
+ this.devMode = options.devMode ?? false;
17
+ }
18
+ /**
19
+ * Add CSS block with deduplication key
20
+ * @param key - Unique key for deduplication
21
+ * @param css - CSS content
22
+ * @param source - Optional source file path (used in devMode)
23
+ */
24
+ add(key, css, source) {
25
+ if (!this.cssBlocks.has(key)) {
26
+ this.cssBlocks.set(key, { css, source });
27
+ }
28
+ }
29
+ /**
30
+ * Check if a key already exists
31
+ */
32
+ has(key) {
33
+ return this.cssBlocks.has(key);
34
+ }
35
+ /**
36
+ * Get the number of CSS blocks
37
+ */
38
+ get size() {
39
+ return this.cssBlocks.size;
40
+ }
41
+ /**
42
+ * Write all collected CSS to the output file
43
+ */
44
+ write() {
45
+ const outputDir = path.dirname(this.outputPath);
46
+ // Ensure directory exists
47
+ if (!fs.existsSync(outputDir)) {
48
+ fs.mkdirSync(outputDir, { recursive: true });
49
+ }
50
+ // Combine all CSS blocks with optional source comments
51
+ const cssBlocks = [];
52
+ for (const block of this.cssBlocks.values()) {
53
+ if (this.devMode && block.source) {
54
+ cssBlocks.push(`/* from: ${block.source} */\n${block.css}`);
55
+ }
56
+ else {
57
+ cssBlocks.push(block.css);
58
+ }
59
+ }
60
+ const css = cssBlocks.join('\n\n');
61
+ // Add header comment
62
+ const header = `/* Generated by @cube-dev/ui-kit/tasty/zero - DO NOT EDIT */\n\n`;
63
+ fs.writeFileSync(this.outputPath, header + css);
64
+ }
65
+ /**
66
+ * Get all CSS as string (for testing or in-memory use)
67
+ */
68
+ getCSS() {
69
+ const cssBlocks = [];
70
+ for (const block of this.cssBlocks.values()) {
71
+ if (this.devMode && block.source) {
72
+ cssBlocks.push(`/* from: ${block.source} */\n${block.css}`);
73
+ }
74
+ else {
75
+ cssBlocks.push(block.css);
76
+ }
77
+ }
78
+ return cssBlocks.join('\n\n');
79
+ }
80
+ /**
81
+ * Clear all collected CSS
82
+ */
83
+ clear() {
84
+ this.cssBlocks.clear();
85
+ }
86
+ /**
87
+ * Get the output path
88
+ */
89
+ getOutputPath() {
90
+ return this.outputPath;
91
+ }
92
+ }
93
+
94
+