@cube-dev/ui-kit 0.0.0-canary-00718fb → 0.0.0-canary-837dfc4

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 (611) hide show
  1. package/es/_internal/hooks/index.js +1 -1
  2. package/es/_internal/hooks/use-chained-callback.js +1 -1
  3. package/es/_internal/hooks/use-debounced-value.js +1 -1
  4. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/es/_internal/hooks/use-effect-once.js +1 -1
  6. package/es/_internal/hooks/use-event.js +1 -1
  7. package/es/_internal/hooks/use-is-first-render.js +1 -1
  8. package/es/_internal/hooks/use-sync-ref.js +1 -1
  9. package/es/_internal/hooks/use-timer/index.js +1 -1
  10. package/es/_internal/hooks/use-timer/timer.js +1 -1
  11. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/es/_internal/hooks/use-update-effect.js +1 -1
  13. package/es/_internal/hooks/use-warn.js +1 -1
  14. package/es/_internal/index.js +1 -1
  15. package/es/components/Block.js +1 -1
  16. package/es/components/CollectionItem.js +1 -1
  17. package/es/components/GlobalStyles.js +1 -1
  18. package/es/components/GridProvider.js +1 -1
  19. package/es/components/HiddenInput.js +1 -1
  20. package/es/components/OpenTrasition.js +1 -1
  21. package/es/components/Root.js +1 -1
  22. package/es/components/actions/Action/Action.js +1 -1
  23. package/es/components/actions/Button/Button.js +1 -1
  24. package/es/components/actions/Button/index.js +1 -1
  25. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  26. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  27. package/es/components/actions/CommandMenu/index.js +1 -1
  28. package/es/components/actions/CommandMenu/styled.js +1 -1
  29. package/es/components/actions/ItemAction/ItemAction.js +1 -1
  30. package/es/components/actions/ItemAction/index.js +1 -1
  31. package/es/components/actions/ItemActionContext.js +1 -1
  32. package/es/components/actions/ItemButton/ItemButton.js +1 -1
  33. package/es/components/actions/ItemButton/index.js +1 -1
  34. package/es/components/actions/Link/Link.js +1 -1
  35. package/es/components/actions/Menu/Menu.js +1 -1
  36. package/es/components/actions/Menu/MenuItem.js +1 -1
  37. package/es/components/actions/Menu/MenuSection.js +1 -1
  38. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  39. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  40. package/es/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  41. package/es/components/actions/Menu/context.js +1 -1
  42. package/es/components/actions/Menu/index.js +1 -1
  43. package/es/components/actions/Menu/styled.js +1 -1
  44. package/es/components/actions/index.js +1 -1
  45. package/es/components/actions/use-action.js +1 -1
  46. package/es/components/actions/use-anchored-menu.js +1 -1
  47. package/es/components/actions/use-context-menu.js +1 -1
  48. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  49. package/es/components/content/Alert/Alert.js +1 -1
  50. package/es/components/content/Alert/index.js +1 -1
  51. package/es/components/content/Alert/types.js +1 -1
  52. package/es/components/content/Alert/use-alert.js +1 -1
  53. package/es/components/content/Avatar/Avatar.js +1 -1
  54. package/es/components/content/Badge/Badge.js +1 -1
  55. package/es/components/content/Card/Card.js +1 -1
  56. package/es/components/content/Content.js +1 -1
  57. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  58. package/es/components/content/CopyPasteBlock/index.js +1 -1
  59. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  60. package/es/components/content/CopySnippet/index.js +1 -1
  61. package/es/components/content/Disclosure/Disclosure.js +1 -1
  62. package/es/components/content/Disclosure/index.js +1 -1
  63. package/es/components/content/Divider.js +1 -1
  64. package/es/components/content/Footer.js +1 -1
  65. package/es/components/content/Header.js +1 -1
  66. package/es/components/content/HotKeys/HotKeys.js +1 -1
  67. package/es/components/content/HotKeys/index.js +1 -1
  68. package/es/components/content/Item/Item.js +11 -7
  69. package/es/components/content/Item/index.js +1 -1
  70. package/es/components/content/ItemBadge/ItemBadge.js +1 -1
  71. package/es/components/content/ItemBadge/index.js +1 -1
  72. package/es/components/content/Layout/GridLayout.js +1 -1
  73. package/es/components/content/Layout/Layout.js +1 -1
  74. package/es/components/content/Layout/LayoutBlock.js +1 -1
  75. package/es/components/content/Layout/LayoutCenter.js +1 -1
  76. package/es/components/content/Layout/LayoutContainer.js +1 -1
  77. package/es/components/content/Layout/LayoutContent.js +1 -1
  78. package/es/components/content/Layout/LayoutContext.js +1 -1
  79. package/es/components/content/Layout/LayoutFlex.js +1 -1
  80. package/es/components/content/Layout/LayoutFooter.js +1 -1
  81. package/es/components/content/Layout/LayoutGrid.js +1 -1
  82. package/es/components/content/Layout/LayoutHeader.js +1 -1
  83. package/es/components/content/Layout/LayoutPane.js +1 -1
  84. package/es/components/content/Layout/LayoutPanel.js +1 -1
  85. package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
  86. package/es/components/content/Layout/LayoutToolbar.js +1 -1
  87. package/es/components/content/Layout/hooks/useTinyScrollbar.js +13 -1
  88. package/es/components/content/Layout/index.js +1 -1
  89. package/es/components/content/Layout/utils.js +1 -1
  90. package/es/components/content/List/SectionHeading.js +1 -1
  91. package/es/components/content/List/index.js +1 -1
  92. package/es/components/content/Paragraph.js +1 -1
  93. package/es/components/content/Placeholder/Placeholder.js +1 -1
  94. package/es/components/content/PrismCode/PrismCode.js +1 -1
  95. package/es/components/content/PrismCode/prismSetup.js +1 -1
  96. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  97. package/es/components/content/Result/Result.js +1 -1
  98. package/es/components/content/Skeleton/Skeleton.js +1 -1
  99. package/es/components/content/Tag/Tag.js +1 -1
  100. package/es/components/content/Text.js +1 -1
  101. package/es/components/content/TextItem/TextItem.js +1 -1
  102. package/es/components/content/TextItem/index.js +1 -1
  103. package/es/components/content/Title.js +1 -1
  104. package/es/components/content/highlightText.js +1 -1
  105. package/es/components/content/use-auto-tooltip.js +1 -1
  106. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  107. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  108. package/es/components/fields/Checkbox/context.js +1 -1
  109. package/es/components/fields/Checkbox/index.js +1 -1
  110. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  111. package/es/components/fields/ComboBox/index.js +1 -1
  112. package/es/components/fields/DatePicker/DateInput.js +1 -1
  113. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  114. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  115. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  116. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  117. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  118. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  119. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  120. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  121. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  122. package/es/components/fields/DatePicker/index.js +1 -1
  123. package/es/components/fields/DatePicker/intl.js +1 -1
  124. package/es/components/fields/DatePicker/parseDate.js +1 -1
  125. package/es/components/fields/DatePicker/props.js +1 -1
  126. package/es/components/fields/DatePicker/types.js +1 -1
  127. package/es/components/fields/DatePicker/utils.js +1 -1
  128. package/es/components/fields/FileInput/FileInput.js +1 -1
  129. package/es/components/fields/FilterListBox/FilterListBox.js +1 -1
  130. package/es/components/fields/FilterListBox/index.js +1 -1
  131. package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
  132. package/es/components/fields/FilterPicker/index.js +1 -1
  133. package/es/components/fields/Input/Input.js +1 -1
  134. package/es/components/fields/Input/index.js +1 -1
  135. package/es/components/fields/ListBox/ListBox.js +1 -1
  136. package/es/components/fields/ListBox/index.js +1 -1
  137. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  138. package/es/components/fields/NumberInput/StepButton.js +1 -1
  139. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  140. package/es/components/fields/Picker/Picker.js +1 -1
  141. package/es/components/fields/Picker/index.js +1 -1
  142. package/es/components/fields/RadioGroup/Radio.js +1 -1
  143. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  144. package/es/components/fields/RadioGroup/context.js +1 -1
  145. package/es/components/fields/RadioGroup/index.js +1 -1
  146. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  147. package/es/components/fields/SearchInput/index.js +1 -1
  148. package/es/components/fields/Select/Select.js +1 -1
  149. package/es/components/fields/Select/index.js +1 -1
  150. package/es/components/fields/Slider/Gradation.js +1 -1
  151. package/es/components/fields/Slider/Header.js +1 -1
  152. package/es/components/fields/Slider/RangeSlider.js +1 -1
  153. package/es/components/fields/Slider/Slider.js +1 -1
  154. package/es/components/fields/Slider/SliderBase.js +1 -1
  155. package/es/components/fields/Slider/SliderInput.js +1 -1
  156. package/es/components/fields/Slider/SliderThumb.js +1 -1
  157. package/es/components/fields/Slider/SliderTrack.js +1 -1
  158. package/es/components/fields/Slider/elements.js +1 -1
  159. package/es/components/fields/Slider/index.js +1 -1
  160. package/es/components/fields/Slider/types.js +1 -1
  161. package/es/components/fields/Switch/Switch.js +1 -1
  162. package/es/components/fields/Switch/index.js +1 -1
  163. package/es/components/fields/TextArea/TextArea.js +1 -1
  164. package/es/components/fields/TextArea/index.js +1 -1
  165. package/es/components/fields/TextInput/TextInput.js +1 -1
  166. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  167. package/es/components/fields/TextInput/index.js +1 -1
  168. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  169. package/es/components/fields/TextInputMapper/index.js +1 -1
  170. package/es/components/fields/index.js +1 -1
  171. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  172. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  173. package/es/components/form/FieldWrapper/index.js +1 -1
  174. package/es/components/form/FieldWrapper/types.js +1 -1
  175. package/es/components/form/Form/Field.js +1 -1
  176. package/es/components/form/Form/Form.js +1 -1
  177. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  178. package/es/components/form/Form/ResetButton/index.js +1 -1
  179. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  180. package/es/components/form/Form/SubmitButton/index.js +1 -1
  181. package/es/components/form/Form/SubmitError.js +1 -1
  182. package/es/components/form/Form/index.js +1 -1
  183. package/es/components/form/Form/types.js +1 -1
  184. package/es/components/form/Form/use-field/index.js +1 -1
  185. package/es/components/form/Form/use-field/types.js +1 -1
  186. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  187. package/es/components/form/Form/use-field/use-field.js +1 -1
  188. package/es/components/form/Form/use-form.js +1 -1
  189. package/es/components/form/Form/validation.js +1 -1
  190. package/es/components/form/Label.js +1 -1
  191. package/es/components/form/index.js +1 -1
  192. package/es/components/form/wrapper.js +1 -1
  193. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  194. package/es/components/helpers/DisplayTransition/index.js +1 -1
  195. package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
  196. package/es/components/helpers/index.js +1 -1
  197. package/es/components/layout/Flex.js +1 -1
  198. package/es/components/layout/Flow.js +1 -1
  199. package/es/components/layout/Grid.js +1 -1
  200. package/es/components/layout/Panel.js +1 -1
  201. package/es/components/layout/Prefix.js +1 -1
  202. package/es/components/layout/ResizablePanel.js +1 -1
  203. package/es/components/layout/Space.js +1 -1
  204. package/es/components/layout/Suffix.js +1 -1
  205. package/es/components/navigation/Tabs/Tabs.js +894 -0
  206. package/es/components/navigation/Tabs/index.js +10 -0
  207. package/es/components/navigation/index.js +10 -0
  208. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  209. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  210. package/es/components/other/Calendar/Calendar.js +1 -1
  211. package/es/components/other/Calendar/CalendarCell.js +1 -1
  212. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  213. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  214. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  215. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  216. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  217. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  218. package/es/components/overlays/AlertDialog/index.js +1 -1
  219. package/es/components/overlays/AlertDialog/types.js +1 -1
  220. package/es/components/overlays/Dialog/Dialog.js +1 -1
  221. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  222. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  223. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  224. package/es/components/overlays/Dialog/context.js +1 -1
  225. package/es/components/overlays/Dialog/index.js +1 -1
  226. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  227. package/es/components/overlays/Modal/Modal.js +1 -1
  228. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  229. package/es/components/overlays/Modal/Overlay.js +1 -1
  230. package/es/components/overlays/Modal/Popover.js +1 -1
  231. package/es/components/overlays/Modal/Tray.js +1 -1
  232. package/es/components/overlays/Modal/Underlay.js +1 -1
  233. package/es/components/overlays/Modal/index.js +1 -1
  234. package/es/components/overlays/Modal/types.js +1 -1
  235. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  236. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  237. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  238. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  239. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  240. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  241. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  242. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  243. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  244. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  245. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  246. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  247. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  248. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  249. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  250. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  251. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  252. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  253. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  254. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  255. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  256. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  257. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  258. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  259. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  260. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  261. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  262. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  263. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  264. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  265. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  266. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  267. package/es/components/overlays/NewNotifications/index.js +1 -1
  268. package/es/components/overlays/NewNotifications/types.js +1 -1
  269. package/es/components/overlays/Notification/Notification.js +1 -1
  270. package/es/components/overlays/OverlayWrapper.js +1 -1
  271. package/es/components/overlays/Toasts/Toast.js +1 -1
  272. package/es/components/overlays/Toasts/index.js +1 -1
  273. package/es/components/overlays/Toasts/types.js +1 -1
  274. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  275. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  276. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  277. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  278. package/es/components/overlays/Tooltip/context.js +1 -1
  279. package/es/components/overlays/Tooltip/index.js +1 -1
  280. package/es/components/portal/Portal.js +1 -1
  281. package/es/components/portal/PortalProvider.js +1 -1
  282. package/es/components/portal/index.js +1 -1
  283. package/es/components/portal/types.js +1 -1
  284. package/es/components/portal/usePortal.js +1 -1
  285. package/es/components/shared/InvalidIcon.js +1 -1
  286. package/es/components/shared/ValidIcon.js +1 -1
  287. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  288. package/es/components/status/LoadingAnimation/index.js +1 -1
  289. package/es/components/status/Spin/Cube.js +1 -1
  290. package/es/components/status/Spin/InternalSpinner.js +1 -1
  291. package/es/components/status/Spin/Spin.js +1 -1
  292. package/es/components/status/Spin/SpinsContainer.js +1 -1
  293. package/es/components/status/Spin/index.js +1 -1
  294. package/es/components/status/Spin/types.js +1 -1
  295. package/es/components/status/index.js +1 -1
  296. package/es/data/item-themes.js +1 -1
  297. package/es/data/themes.js +1 -1
  298. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  299. package/es/icons/AdjustmentsIcon.js +1 -1
  300. package/es/icons/AiIcon.js +1 -1
  301. package/es/icons/AreaChartIcon.js +1 -1
  302. package/es/icons/BackwardIcon.js +1 -1
  303. package/es/icons/BarChartIcon.js +1 -1
  304. package/es/icons/BellFilledIcon.js +1 -1
  305. package/es/icons/BellIcon.js +1 -1
  306. package/es/icons/BooleanIcon.js +1 -1
  307. package/es/icons/CalendarEditIcon.js +1 -1
  308. package/es/icons/CalendarIcon.js +1 -1
  309. package/es/icons/CaretDownIcon.js +1 -1
  310. package/es/icons/CaretUpIcon.js +1 -1
  311. package/es/icons/ChartAreaStackedIcon.js +1 -1
  312. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  313. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  314. package/es/icons/ChartBarGroupedIcon.js +1 -1
  315. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  316. package/es/icons/ChartBarLineIcon.js +1 -1
  317. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  318. package/es/icons/ChartBarStackedIcon.js +1 -1
  319. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  320. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  321. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  322. package/es/icons/ChartBoxPlotIcon.js +1 -1
  323. package/es/icons/ChartBubbleIcon.js +1 -1
  324. package/es/icons/ChartDonut2Icon.js +1 -1
  325. package/es/icons/ChartFunnelIcon.js +1 -1
  326. package/es/icons/ChartHeatmapIcon.js +1 -1
  327. package/es/icons/ChartKPIIcon.js +1 -1
  328. package/es/icons/ChartPie2Icon.js +1 -1
  329. package/es/icons/ChartScatterIcon.js +1 -1
  330. package/es/icons/CheckCircleFilledIcon.js +1 -1
  331. package/es/icons/CheckCircleIcon.js +1 -1
  332. package/es/icons/CheckIcon.js +1 -1
  333. package/es/icons/CircleFilledIcon.js +1 -1
  334. package/es/icons/ClearIcon.js +1 -1
  335. package/es/icons/CloseCircleFilledIcon.js +1 -1
  336. package/es/icons/CloseCircleIcon.js +1 -1
  337. package/es/icons/CloseIcon.js +1 -1
  338. package/es/icons/CodeIcon.js +1 -1
  339. package/es/icons/ColumnTotalIcon.js +1 -1
  340. package/es/icons/CopyIcon.js +1 -1
  341. package/es/icons/CountIcon.js +1 -1
  342. package/es/icons/CubeIcon.js +1 -1
  343. package/es/icons/CubePauseIcon.js +1 -1
  344. package/es/icons/CubePlayIcon.js +1 -1
  345. package/es/icons/CurrencyDollarIcon.js +1 -1
  346. package/es/icons/DangerIcon.js +1 -1
  347. package/es/icons/DashboardIcon.js +1 -1
  348. package/es/icons/DatabaseIcon.js +1 -1
  349. package/es/icons/DecimalDecreaseIcon.js +1 -1
  350. package/es/icons/DecimalIncreaseIcon.js +1 -1
  351. package/es/icons/DirectionIcon.js +1 -1
  352. package/es/icons/DonutIcon.js +1 -1
  353. package/es/icons/DownIcon.js +1 -1
  354. package/es/icons/EditIcon.js +1 -1
  355. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  356. package/es/icons/ExclamationCircleIcon.js +1 -1
  357. package/es/icons/ExclamationIcon.js +1 -1
  358. package/es/icons/EyeIcon.js +1 -1
  359. package/es/icons/EyeInvisibleIcon.js +1 -1
  360. package/es/icons/FilterIcon.js +1 -1
  361. package/es/icons/FolderFilledIcon.js +1 -1
  362. package/es/icons/FolderIcon.js +1 -1
  363. package/es/icons/FolderOpenFilledIcon.js +1 -1
  364. package/es/icons/FolderOpenIcon.js +1 -1
  365. package/es/icons/ForwardIcon.js +1 -1
  366. package/es/icons/HierarchyIcon.js +1 -1
  367. package/es/icons/HierarchyOpenIcon.js +1 -1
  368. package/es/icons/Icon.js +1 -1
  369. package/es/icons/InfoCircleIcon.js +1 -1
  370. package/es/icons/InfoIcon.js +1 -1
  371. package/es/icons/KeyIcon.js +1 -1
  372. package/es/icons/LeftIcon.js +1 -1
  373. package/es/icons/LineChartIcon.js +1 -1
  374. package/es/icons/LoadingIcon.js +1 -1
  375. package/es/icons/LockFilledIcon.js +1 -1
  376. package/es/icons/LockIcon.js +1 -1
  377. package/es/icons/MoreIcon.js +1 -1
  378. package/es/icons/NotAllowedIcon.js +1 -1
  379. package/es/icons/Number123Icon.js +1 -1
  380. package/es/icons/NumberIcon.js +1 -1
  381. package/es/icons/PauseCircleFilledIcon.js +1 -1
  382. package/es/icons/PauseCircleIcon.js +1 -1
  383. package/es/icons/PauseIcon.js +1 -1
  384. package/es/icons/PercentageIcon.js +1 -1
  385. package/es/icons/PieChartIcon.js +1 -1
  386. package/es/icons/PlayCircleIcon.js +1 -1
  387. package/es/icons/PlayIcon.js +1 -1
  388. package/es/icons/PlusIcon.js +1 -1
  389. package/es/icons/ProgressBarIcon.js +1 -1
  390. package/es/icons/ReloadIcon.js +1 -1
  391. package/es/icons/ReportIcon.js +1 -1
  392. package/es/icons/ReturnIcon.js +1 -1
  393. package/es/icons/RightIcon.js +1 -1
  394. package/es/icons/RowTotalsIcon.js +1 -1
  395. package/es/icons/SchemeIcon.js +1 -1
  396. package/es/icons/SearchIcon.js +1 -1
  397. package/es/icons/SemanticQueryIcon.js +1 -1
  398. package/es/icons/SettingsIcon.js +1 -1
  399. package/es/icons/ShieldFilledIcon.js +1 -1
  400. package/es/icons/ShieldIcon.js +1 -1
  401. package/es/icons/SlashIcon.js +1 -1
  402. package/es/icons/SparklesIcon.js +1 -1
  403. package/es/icons/SqlIcon.js +1 -1
  404. package/es/icons/StatsIcon.js +1 -1
  405. package/es/icons/StopIcon.js +1 -1
  406. package/es/icons/StringIcon.js +1 -1
  407. package/es/icons/SubtotalsIcon.js +1 -1
  408. package/es/icons/SwitchIcon.js +1 -1
  409. package/es/icons/TableIcon.js +1 -1
  410. package/es/icons/ThumbsDownIcon.js +1 -1
  411. package/es/icons/ThumbsUpIcon.js +1 -1
  412. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  413. package/es/icons/ThunderboltFilledIcon.js +1 -1
  414. package/es/icons/ThunderboltIcon.js +1 -1
  415. package/es/icons/TimeIcon.js +1 -1
  416. package/es/icons/TrashIcon.js +1 -1
  417. package/es/icons/UnlockIcon.js +1 -1
  418. package/es/icons/UpIcon.js +1 -1
  419. package/es/icons/UserGroupIcon.js +1 -1
  420. package/es/icons/UserIcon.js +1 -1
  421. package/es/icons/UserLockIcon.js +1 -1
  422. package/es/icons/ViewIcon.js +1 -1
  423. package/es/icons/WarningFilledIcon.js +1 -1
  424. package/es/icons/WarningIcon.js +1 -1
  425. package/es/icons/index.js +1 -1
  426. package/es/icons/wrap-icon.js +1 -1
  427. package/es/index.js +3 -1
  428. package/es/provider.js +1 -1
  429. package/es/providers/TrackingProvider.js +1 -1
  430. package/es/providers/navigation.types.js +1 -1
  431. package/es/providers/navigationAdapter.default.js +1 -1
  432. package/es/services/notification.js +1 -1
  433. package/es/shared/form.js +1 -1
  434. package/es/shared/index.js +1 -1
  435. package/es/stories/Form.legacy-stories.js +1 -1
  436. package/es/stories/FormFieldArgs.js +1 -1
  437. package/es/stories/SimpleLayout.stories.js +1 -1
  438. package/es/stories/Tasty.stories.js +1 -1
  439. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  440. package/es/stories/components/DialogFormApp.js +1 -1
  441. package/es/stories/components/StyledButton.js +1 -1
  442. package/es/stories/lists/baseProps.js +1 -1
  443. package/es/stories/playground/PlaygroundEditor.js +1 -1
  444. package/es/stories/playground/PlaygroundLayout.js +1 -1
  445. package/es/stories/playground/PlaygroundOutput.js +1 -1
  446. package/es/stories/playground/PlaygroundPreview.js +1 -1
  447. package/es/stories/playground/components/Button.js +1 -1
  448. package/es/stories/playground/components/Card.js +1 -1
  449. package/es/stories/playground/components/ScrollProgress.js +1 -1
  450. package/es/stories/playground/examples.js +1 -1
  451. package/es/tasty/chunks/cacheKey.js +1 -1
  452. package/es/tasty/chunks/definitions.js +3 -3
  453. package/es/tasty/chunks/index.js +1 -1
  454. package/es/tasty/chunks/renderChunk.js +1 -1
  455. package/es/tasty/config.js +1 -1
  456. package/es/tasty/debug.js +1 -1
  457. package/es/tasty/hooks/index.js +3 -1
  458. package/es/tasty/hooks/useGlobalStyles.js +1 -1
  459. package/es/tasty/hooks/useKeyframes.js +82 -0
  460. package/es/tasty/hooks/useProperty.js +100 -0
  461. package/es/tasty/hooks/useRawCSS.js +1 -1
  462. package/es/tasty/hooks/useStyles.js +15 -2
  463. package/es/tasty/index.js +2 -2
  464. package/es/tasty/injector/index.js +39 -1
  465. package/es/tasty/injector/injector.js +67 -16
  466. package/es/tasty/injector/sheet-manager.js +2 -2
  467. package/es/tasty/injector/types.js +1 -1
  468. package/es/tasty/keyframes/index.js +1 -1
  469. package/es/tasty/parser/classify.js +15 -1
  470. package/es/tasty/parser/const.js +1 -1
  471. package/es/tasty/parser/lru.js +1 -1
  472. package/es/tasty/parser/parser.js +1 -1
  473. package/es/tasty/parser/tokenizer.js +1 -1
  474. package/es/tasty/parser/types.js +1 -1
  475. package/es/tasty/pipeline/conditions.js +1 -1
  476. package/es/tasty/pipeline/exclusive.js +1 -1
  477. package/es/tasty/pipeline/index.js +1 -1
  478. package/es/tasty/pipeline/materialize.js +1 -1
  479. package/es/tasty/pipeline/parseStateKey.js +1 -1
  480. package/es/tasty/pipeline/simplify.js +1 -1
  481. package/es/tasty/plugins/index.js +1 -1
  482. package/es/tasty/plugins/okhsl-plugin.js +1 -1
  483. package/es/tasty/plugins/types.js +1 -1
  484. package/es/tasty/properties/index.js +211 -0
  485. package/es/tasty/states/index.js +8 -2
  486. package/es/tasty/static/index.js +1 -1
  487. package/es/tasty/static/tastyStatic.js +1 -1
  488. package/es/tasty/static/types.js +1 -1
  489. package/es/tasty/styles/align.js +1 -1
  490. package/es/tasty/styles/border.js +114 -20
  491. package/es/tasty/styles/boxShadow.combinator.js +1 -1
  492. package/es/tasty/styles/color.js +1 -1
  493. package/es/tasty/styles/createStyle.js +1 -1
  494. package/es/tasty/styles/dimension.js +1 -1
  495. package/es/tasty/styles/display.js +1 -1
  496. package/es/tasty/styles/fade.js +46 -13
  497. package/es/tasty/styles/fill.js +1 -1
  498. package/es/tasty/styles/flow.js +1 -1
  499. package/es/tasty/styles/font.js +1 -1
  500. package/es/tasty/styles/fontStyle.js +1 -1
  501. package/es/tasty/styles/gap.js +1 -1
  502. package/es/tasty/styles/groupRadius.js +1 -1
  503. package/es/tasty/styles/height.js +1 -1
  504. package/es/tasty/styles/index.js +1 -1
  505. package/es/tasty/styles/inset.js +1 -1
  506. package/es/tasty/styles/justify.js +1 -1
  507. package/es/tasty/styles/list.js +1 -1
  508. package/es/tasty/styles/margin.js +1 -1
  509. package/es/tasty/styles/outline.js +1 -1
  510. package/es/tasty/styles/padding.js +1 -1
  511. package/es/tasty/styles/place.js +1 -1
  512. package/es/tasty/styles/predefined.js +1 -1
  513. package/es/tasty/styles/preset.js +1 -1
  514. package/es/tasty/styles/radius.js +1 -1
  515. package/es/tasty/styles/reset.js +1 -1
  516. package/es/tasty/styles/scrollbar.js +1 -1
  517. package/es/tasty/styles/shadow.js +1 -1
  518. package/es/tasty/styles/styledScrollbar.js +1 -1
  519. package/es/tasty/styles/transition.js +1 -1
  520. package/es/tasty/styles/types.js +1 -1
  521. package/es/tasty/styles/width.js +1 -1
  522. package/es/tasty/tasty.js +94 -113
  523. package/es/tasty/types.js +1 -1
  524. package/es/tasty/utils/cache-wrapper.js +1 -1
  525. package/es/tasty/utils/case-converter.js +1 -1
  526. package/es/tasty/utils/colors.js +1 -1
  527. package/es/tasty/utils/dotize.js +1 -1
  528. package/es/tasty/utils/filterBaseProps.js +1 -1
  529. package/es/tasty/utils/getDisplayName.js +1 -1
  530. package/es/tasty/utils/isDevEnv.js +1 -1
  531. package/es/tasty/utils/mergeStyles.js +1 -1
  532. package/es/tasty/utils/modAttrs.js +1 -1
  533. package/es/tasty/utils/processTokens.js +1 -1
  534. package/es/tasty/utils/string.js +1 -1
  535. package/es/tasty/utils/styles.js +1 -1
  536. package/es/tasty/utils/typography.js +1 -1
  537. package/es/tasty/utils/warnings.js +1 -1
  538. package/es/tasty/zero/babel.js +1 -1
  539. package/es/tasty/zero/css-writer.js +1 -1
  540. package/es/tasty/zero/extractor.js +1 -1
  541. package/es/tasty/zero/index.js +1 -1
  542. package/es/tasty/zero/next.js +1 -1
  543. package/es/tokens/base.js +5 -1
  544. package/es/tokens/colors.js +1 -1
  545. package/es/tokens/index.js +1 -1
  546. package/es/tokens/layout.js +1 -1
  547. package/es/tokens/shadows.js +1 -1
  548. package/es/tokens/sizes.js +1 -1
  549. package/es/tokens/spacing.js +1 -1
  550. package/es/tokens/typography.js +1 -1
  551. package/es/utils/ResizeSensor.js +1 -1
  552. package/es/utils/index.js +1 -1
  553. package/es/utils/modules.js +1 -1
  554. package/es/utils/promise.js +1 -1
  555. package/es/utils/raf.js +1 -1
  556. package/es/utils/random.js +1 -1
  557. package/es/utils/range.js +1 -1
  558. package/es/utils/react/RenderCache.js +1 -1
  559. package/es/utils/react/Slots.js +1 -1
  560. package/es/utils/react/chain.js +1 -1
  561. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  562. package/es/utils/react/index.js +1 -1
  563. package/es/utils/react/interactions.js +1 -1
  564. package/es/utils/react/isTextOnly.js +1 -1
  565. package/es/utils/react/mapProps.js +1 -1
  566. package/es/utils/react/mergeProps.js +1 -1
  567. package/es/utils/react/nullableValue.js +1 -1
  568. package/es/utils/react/resolveIcon.js +1 -1
  569. package/es/utils/react/sharedStore.js +1 -1
  570. package/es/utils/react/useCombinedRefs.js +1 -1
  571. package/es/utils/react/useControlledFocusVisible.js +1 -1
  572. package/es/utils/react/useEventBus.js +1 -1
  573. package/es/utils/react/useId.js +1 -1
  574. package/es/utils/react/useIsDarwin.js +1 -1
  575. package/es/utils/react/useKeySymbols.js +1 -1
  576. package/es/utils/react/useLayoutEffect.js +1 -1
  577. package/es/utils/react/useLocalStorage.js +1 -1
  578. package/es/utils/react/useQaProps.js +1 -1
  579. package/es/utils/react/useViewportSize.js +1 -1
  580. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  581. package/es/utils/tree.js +1 -1
  582. package/es/utils/warnings.js +1 -1
  583. package/es/version.js +2 -2
  584. package/package.json +1 -1
  585. package/types/components/HiddenInput.d.ts +2 -1
  586. package/types/components/actions/Button/Button.d.ts +4 -2
  587. package/types/components/actions/CommandMenu/styled.d.ts +10 -5
  588. package/types/components/actions/Menu/styled.d.ts +514 -509
  589. package/types/components/content/Item/Item.d.ts +7 -0
  590. package/types/components/content/Layout/hooks/useTinyScrollbar.d.ts +6 -0
  591. package/types/components/content/List/SectionHeading.d.ts +168 -168
  592. package/types/components/content/Text.d.ts +1176 -1176
  593. package/types/components/fields/DatePicker/DatePickerElement.d.ts +168 -168
  594. package/types/components/fields/Select/Select.d.ts +2 -1
  595. package/types/components/fields/Slider/elements.d.ts +12 -6
  596. package/types/components/navigation/Tabs/Tabs.d.ts +236 -0
  597. package/types/components/navigation/Tabs/index.d.ts +2 -0
  598. package/types/components/navigation/index.d.ts +2 -0
  599. package/types/index.d.ts +1 -0
  600. package/types/tasty/hooks/index.d.ts +3 -0
  601. package/types/tasty/hooks/useKeyframes.d.ts +52 -0
  602. package/types/tasty/hooks/useProperty.d.ts +75 -0
  603. package/types/tasty/index.d.ts +2 -2
  604. package/types/tasty/injector/index.d.ts +57 -1
  605. package/types/tasty/injector/injector.d.ts +19 -7
  606. package/types/tasty/injector/types.d.ts +14 -2
  607. package/types/tasty/properties/index.d.ts +90 -0
  608. package/types/tasty/styles/border.d.ts +11 -3
  609. package/types/tasty/styles/fade.d.ts +1 -1
  610. package/types/tasty/styles/types.d.ts +42 -6
  611. package/types/tasty/tasty.d.ts +2 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -0,0 +1,82 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ import { useInsertionEffect, useMemo, useRef } from 'react';
9
+ import { keyframes } from '../injector/index.js';
10
+ // Implementation
11
+ export function useKeyframes(stepsOrFactory, depsOrOptions, options) {
12
+ // Detect which overload is being used
13
+ const isFactory = typeof stepsOrFactory === 'function';
14
+ // Parse arguments based on overload
15
+ const deps = isFactory && Array.isArray(depsOrOptions) ? depsOrOptions : undefined;
16
+ const opts = isFactory
17
+ ? options
18
+ : depsOrOptions;
19
+ // Memoize the keyframes steps to get a stable reference
20
+ const stepsData = useMemo(() => {
21
+ const steps = isFactory
22
+ ? stepsOrFactory()
23
+ : stepsOrFactory;
24
+ if (!steps || Object.keys(steps).length === 0) {
25
+ return null;
26
+ }
27
+ return steps;
28
+ }, isFactory ? deps ?? [] : [stepsOrFactory]);
29
+ // Store keyframes results for cleanup - we need to track both the render-time
30
+ // injection (for the name) and the effect-time injection (for Strict Mode safety)
31
+ const renderResultRef = useRef(null);
32
+ const effectResultRef = useRef(null);
33
+ // Inject keyframes during render to ensure the animation name is available
34
+ // immediately. The keyframes() function uses reference counting internally,
35
+ // so multiple calls with the same content are deduplicated.
36
+ const name = useMemo(() => {
37
+ // Dispose previous render-time result if deps changed
38
+ renderResultRef.current?.dispose();
39
+ renderResultRef.current = null;
40
+ if (!stepsData) {
41
+ return '';
42
+ }
43
+ // Inject keyframes synchronously
44
+ const result = keyframes(stepsData, {
45
+ name: opts?.name,
46
+ root: opts?.root,
47
+ });
48
+ renderResultRef.current = result;
49
+ return result.toString();
50
+ }, [stepsData, opts?.name, opts?.root]);
51
+ // Handle injection and cleanup in useInsertionEffect to properly support
52
+ // React 18+ Strict Mode double-invocation (mount → unmount → mount).
53
+ // The effect setup re-injects the keyframes if cleanup was called, ensuring
54
+ // the CSS exists after Strict Mode remounts.
55
+ useInsertionEffect(() => {
56
+ // Dispose previous effect-time result
57
+ effectResultRef.current?.dispose();
58
+ effectResultRef.current = null;
59
+ // Re-inject keyframes. This ensures the CSS exists after Strict Mode cleanup.
60
+ // The keyframes() function uses reference counting, so this is idempotent
61
+ // if the CSS wasn't disposed.
62
+ if (stepsData) {
63
+ const result = keyframes(stepsData, {
64
+ name: opts?.name,
65
+ root: opts?.root,
66
+ });
67
+ effectResultRef.current = result;
68
+ }
69
+ // Cleanup on unmount or when dependencies change.
70
+ // Dispose both the effect-time and render-time results to properly
71
+ // decrement the reference count.
72
+ return () => {
73
+ effectResultRef.current?.dispose();
74
+ effectResultRef.current = null;
75
+ renderResultRef.current?.dispose();
76
+ renderResultRef.current = null;
77
+ };
78
+ }, [stepsData, opts?.name, opts?.root]);
79
+ return name;
80
+ }
81
+
82
+
@@ -0,0 +1,100 @@
1
+ /**
2
+ * @license MIT
3
+ * author: Cube Dev Team
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
+ * Released under the MIT license.
6
+ */
7
+
8
+ import { useInsertionEffect, useMemo } from 'react';
9
+ import { getGlobalInjector } from '../config.js';
10
+ /**
11
+ * Hook to register a CSS @property custom property.
12
+ * This enables advanced features like animating custom properties.
13
+ *
14
+ * Note: @property rules are global and persistent once defined.
15
+ * The hook ensures the property is only registered once per root.
16
+ *
17
+ * Accepts tasty token syntax for the property name:
18
+ * - `$name` → defines `--name`
19
+ * - `#name` → defines `--name-color` (auto-sets syntax: '<color>', defaults initialValue: 'transparent')
20
+ * - `--name` → defines `--name` (legacy format)
21
+ *
22
+ * @param name - The property token ($name, #name) or CSS property name (--name)
23
+ * @param options - Property configuration
24
+ *
25
+ * @example Basic property with token syntax
26
+ * ```tsx
27
+ * function Spinner() {
28
+ * useProperty('$rotation', {
29
+ * syntax: '<angle>',
30
+ * inherits: false,
31
+ * initialValue: '0deg',
32
+ * });
33
+ *
34
+ * return <div className="spinner" />;
35
+ * }
36
+ * ```
37
+ *
38
+ * @example Color property with token syntax (auto-sets syntax)
39
+ * ```tsx
40
+ * function MyComponent() {
41
+ * useProperty('#theme', {
42
+ * initialValue: 'red', // syntax: '<color>' is auto-set
43
+ * });
44
+ *
45
+ * // Now --theme-color can be animated with CSS transitions
46
+ * return <div style={{ '--theme-color': 'blue' } as React.CSSProperties}>Colored</div>;
47
+ * }
48
+ * ```
49
+ *
50
+ * @example Legacy format (still supported)
51
+ * ```tsx
52
+ * function ResizableBox() {
53
+ * useProperty('--box-size', {
54
+ * syntax: '<length>',
55
+ * initialValue: '100px',
56
+ * });
57
+ *
58
+ * return <div style={{ width: 'var(--box-size)' }} />;
59
+ * }
60
+ * ```
61
+ */
62
+ export function useProperty(name, options) {
63
+ // Memoize the options to create a stable dependency
64
+ const optionsKey = useMemo(() => {
65
+ if (!options)
66
+ return '';
67
+ return JSON.stringify({
68
+ syntax: options.syntax,
69
+ inherits: options.inherits,
70
+ initialValue: options.initialValue,
71
+ });
72
+ }, [options?.syntax, options?.inherits, options?.initialValue]);
73
+ useInsertionEffect(() => {
74
+ if (!name) {
75
+ if (process.env.NODE_ENV !== 'production') {
76
+ console.warn(`[Tasty] useProperty: property name is required`);
77
+ }
78
+ return;
79
+ }
80
+ const injector = getGlobalInjector();
81
+ // Check if already defined (properties are persistent)
82
+ // The injector handles token parsing internally
83
+ if (injector.isPropertyDefined(name, { root: options?.root })) {
84
+ return;
85
+ }
86
+ // Register the property
87
+ // The injector handles $name, #name, --name parsing and auto-sets
88
+ // syntax for color tokens
89
+ injector.property(name, {
90
+ syntax: options?.syntax,
91
+ inherits: options?.inherits,
92
+ initialValue: options?.initialValue,
93
+ root: options?.root,
94
+ });
95
+ // No cleanup - @property rules are global and persistent
96
+ // Re-registering is a no-op anyway due to the isPropertyDefined check
97
+ }, [name, optionsKey, options?.root]);
98
+ }
99
+
100
+
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,16 +1,17 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  import { useInsertionEffect, useMemo, useRef } from 'react';
9
9
  import { categorizeStyleKeys, CHUNK_NAMES, generateChunkCacheKey, renderStylesForChunk, } from '../chunks/index.js';
10
10
  import { getGlobalKeyframes, hasGlobalKeyframes } from '../config.js';
11
- import { allocateClassName, inject, keyframes } from '../injector/index.js';
11
+ import { allocateClassName, inject, keyframes, property } from '../injector/index.js';
12
12
  import { extractAnimationNamesFromStyles, extractLocalKeyframes, filterUsedKeyframes, hasLocalKeyframes, mergeKeyframes, replaceAnimationNames, } from '../keyframes/index.js';
13
13
  import { renderStyles } from '../pipeline/index.js';
14
+ import { extractLocalProperties, hasLocalProperties } from '../properties/index.js';
14
15
  import { stringifyStyles } from '../utils/styles.js';
15
16
  /**
16
17
  * Check if styles contain @starting-style rules.
@@ -173,6 +174,18 @@ export function useStyles(styles) {
173
174
  nameMap = null;
174
175
  }
175
176
  }
177
+ // Register @properties if defined (no dispose needed - properties are permanent)
178
+ // Token formats: $name → --name, #name → --name-color (with auto syntax: '<color>')
179
+ // The injector.property() handles token parsing and auto-settings internally
180
+ if (currentStyles && hasLocalProperties(currentStyles)) {
181
+ const properties = extractLocalProperties(currentStyles);
182
+ if (properties) {
183
+ for (const [token, definition] of Object.entries(properties)) {
184
+ // Pass the token directly - injector handles parsing
185
+ property(token, definition);
186
+ }
187
+ }
188
+ }
176
189
  // Inject each chunk
177
190
  for (const chunk of processedChunks) {
178
191
  if (chunk.renderResult.rules.length > 0) {
package/es/tasty/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  import { configure } from './config.js';
9
9
  import { okhslPlugin } from './plugins/index.js';
10
10
  export { tasty, Element } from './tasty.js';
11
- export { useStyles, useGlobalStyles, useRawCSS } from './hooks/index.js';
11
+ export { useStyles, useGlobalStyles, useRawCSS, useProperty, useKeyframes, } from './hooks/index.js';
12
12
  // Configuration API
13
13
  export { configure, getConfig, isConfigLocked, hasStylesGenerated, resetConfig, isTestEnvironment, hasGlobalKeyframes, getGlobalKeyframes, } from './config.js';
14
14
  // Plugins
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -59,6 +59,44 @@ export function getRawCSSText(options) {
59
59
  export function keyframes(steps, nameOrOptions) {
60
60
  return getGlobalInjector().keyframes(steps, nameOrOptions);
61
61
  }
62
+ /**
63
+ * Define a CSS @property custom property.
64
+ * This enables advanced features like animating custom properties.
65
+ *
66
+ * Note: @property rules are global and persistent once defined.
67
+ * Re-registering the same property name is a no-op.
68
+ *
69
+ * @param name - The custom property name (must start with --)
70
+ * @param options - Property configuration
71
+ *
72
+ * @example
73
+ * ```ts
74
+ * // Define a color property that can be animated
75
+ * property('--my-color', {
76
+ * syntax: '<color>',
77
+ * initialValue: 'red',
78
+ * });
79
+ *
80
+ * // Define an angle property
81
+ * property('--rotation', {
82
+ * syntax: '<angle>',
83
+ * inherits: false,
84
+ * initialValue: '0deg',
85
+ * });
86
+ * ```
87
+ */
88
+ export function property(name, options) {
89
+ return getGlobalInjector().property(name, options);
90
+ }
91
+ /**
92
+ * Check if a CSS @property has already been defined
93
+ *
94
+ * @param name - The custom property name to check
95
+ * @param options - Options including root
96
+ */
97
+ export function isPropertyDefined(name, options) {
98
+ return getGlobalInjector().isPropertyDefined(name, options);
99
+ }
62
100
  /**
63
101
  * Get CSS text from all sheets (for SSR)
64
102
  */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -9,6 +9,8 @@
9
9
  * Style injector that works with structured style objects
10
10
  * Eliminates CSS string parsing for better performance
11
11
  */
12
+ import { getEffectiveDefinition, normalizePropertyDefinition, } from '../properties/index.js';
13
+ import { isDevEnv } from '../utils/isDevEnv.js';
12
14
  import { parseStyle } from '../utils/styles.js';
13
15
  import { SheetManager } from './sheet-manager.js';
14
16
  /**
@@ -315,56 +317,105 @@ export class StyleInjector {
315
317
  this.sheetManager.resetMetrics(registry);
316
318
  }
317
319
  /**
318
- * Define a CSS @property custom property
320
+ * Define a CSS @property custom property.
321
+ *
322
+ * Accepts tasty token syntax for the property name:
323
+ * - `$name` → defines `--name`
324
+ * - `#name` → defines `--name-color` (auto-sets syntax: '<color>', defaults initialValue: 'transparent')
325
+ * - `--name` → defines `--name` (legacy format)
326
+ *
319
327
  * Example:
320
328
  * @property --rotation { syntax: "<angle>"; inherits: false; initial-value: 45deg; }
329
+ *
321
330
  * Note: No caching or dispose — this defines a global property.
331
+ *
332
+ * If the same property is registered with different options, a warning is emitted
333
+ * but the original definition is preserved (CSS @property cannot be redefined).
322
334
  */
323
335
  property(name, options) {
324
336
  const root = options?.root || document;
325
337
  const registry = this.sheetManager.getRegistry(root);
326
- // Check if already defined to avoid duplicates
327
- if (registry.injectedProperties.has(name)) {
338
+ // Parse the token and get effective definition
339
+ // This handles $name, #name, --name formats and auto-sets syntax for colors
340
+ const userDefinition = {
341
+ syntax: options?.syntax,
342
+ inherits: options?.inherits,
343
+ initialValue: options?.initialValue,
344
+ };
345
+ const effectiveResult = getEffectiveDefinition(name, userDefinition);
346
+ if (!effectiveResult.isValid) {
347
+ if (isDevEnv()) {
348
+ console.warn(`[Tasty] property(): ${effectiveResult.error}. Got: "${name}"`);
349
+ }
350
+ return;
351
+ }
352
+ const cssName = effectiveResult.cssName;
353
+ const definition = effectiveResult.definition;
354
+ // Normalize the definition for comparison
355
+ const normalizedDef = normalizePropertyDefinition(definition);
356
+ // Check if already defined
357
+ const existingDef = registry.injectedProperties.get(cssName);
358
+ if (existingDef !== undefined) {
359
+ // Property already exists - check if definitions match
360
+ if (existingDef !== normalizedDef) {
361
+ // Different definition - warn but don't replace (CSS @property can't be redefined)
362
+ if (isDevEnv()) {
363
+ console.warn(`[Tasty] @property ${cssName} was already defined with a different declaration. ` +
364
+ `The new declaration will be ignored. ` +
365
+ `Original: ${existingDef}, New: ${normalizedDef}`);
366
+ }
367
+ }
368
+ // Either exact match or warned - skip injection
328
369
  return;
329
370
  }
330
371
  const parts = [];
331
- if (options?.syntax != null) {
332
- let syntax = String(options.syntax).trim();
372
+ if (definition.syntax != null) {
373
+ let syntax = String(definition.syntax).trim();
333
374
  if (!/^['"]/u.test(syntax))
334
375
  syntax = `"${syntax}"`;
335
376
  parts.push(`syntax: ${syntax};`);
336
377
  }
337
378
  // inherits is required by the CSS @property spec - default to true
338
- const inherits = options?.inherits ?? true;
379
+ const inherits = definition.inherits ?? true;
339
380
  parts.push(`inherits: ${inherits ? 'true' : 'false'};`);
340
- if (options?.initialValue != null) {
381
+ if (definition.initialValue != null) {
341
382
  let initialValueStr;
342
- if (typeof options.initialValue === 'number') {
343
- initialValueStr = String(options.initialValue);
383
+ if (typeof definition.initialValue === 'number') {
384
+ initialValueStr = String(definition.initialValue);
344
385
  }
345
386
  else {
346
387
  // Process via tasty parser to resolve custom units/functions
347
- initialValueStr = parseStyle(options.initialValue).output;
388
+ initialValueStr = parseStyle(definition.initialValue).output;
348
389
  }
349
390
  parts.push(`initial-value: ${initialValueStr};`);
350
391
  }
351
392
  const declarations = parts.join(' ').trim();
352
393
  const rule = {
353
- selector: `@property ${name}`,
394
+ selector: `@property ${cssName}`,
354
395
  declarations,
355
396
  };
356
397
  // Insert as a global rule; ignore returned info (no tracking/dispose)
357
398
  this.sheetManager.insertGlobalRule(registry, [rule], `property:${name}`, root);
358
- // Track that this property was injected
359
- registry.injectedProperties.add(name);
399
+ // Track that this property was injected with its normalized definition
400
+ registry.injectedProperties.set(cssName, normalizedDef);
360
401
  }
361
402
  /**
362
- * Check whether a given @property name was already injected by this injector
403
+ * Check whether a given @property name was already injected by this injector.
404
+ *
405
+ * Accepts tasty token syntax:
406
+ * - `$name` → checks `--name`
407
+ * - `#name` → checks `--name-color`
408
+ * - `--name` → checks `--name` (legacy format)
363
409
  */
364
410
  isPropertyDefined(name, options) {
365
411
  const root = options?.root || document;
366
412
  const registry = this.sheetManager.getRegistry(root);
367
- return registry.injectedProperties.has(name);
413
+ // Parse the token to get the CSS property name
414
+ const effectiveResult = getEffectiveDefinition(name, {});
415
+ if (!effectiveResult.isValid) {
416
+ return false;
417
+ }
418
+ return registry.injectedProperties.has(effectiveResult.cssName);
368
419
  }
369
420
  /**
370
421
  * Inject keyframes and return object with toString() and dispose()
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -49,7 +49,7 @@ export class SheetManager {
49
49
  keyframesCache: new Map(),
50
50
  keyframesNameToContent: new Map(),
51
51
  keyframesCounter: 0,
52
- injectedProperties: new Set(),
52
+ injectedProperties: new Map(),
53
53
  globalRules: new Map(),
54
54
  };
55
55
  this.rootRegistries.set(root, registry);
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -72,6 +72,20 @@ export function classify(raw, opts, recurse) {
72
72
  (token.startsWith("'") && token.endsWith("'"))) {
73
73
  return { bucket: Bucket.Value, processed: token };
74
74
  }
75
+ // 0. Double prefix for literal CSS property names ($$name -> --name, ##name -> --name-color)
76
+ // Used in transitions and animations to reference the property name itself, not its value
77
+ if (token.startsWith('$$')) {
78
+ const name = token.slice(2);
79
+ if (/^[a-z_][a-z0-9-_]*$/i.test(name)) {
80
+ return { bucket: Bucket.Value, processed: `--${name}` };
81
+ }
82
+ }
83
+ if (token.startsWith('##')) {
84
+ const name = token.slice(2);
85
+ if (/^[a-z_][a-z0-9-_]*$/i.test(name)) {
86
+ return { bucket: Bucket.Value, processed: `--${name}-color` };
87
+ }
88
+ }
75
89
  // 0a. Check for predefined tokens (configured via configure({ tokens: {...} }))
76
90
  // Must happen before default $ and # handling to allow overriding
77
91
  if (token[0] === '$' || token[0] === '#') {
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.0.0-canary-00718fb
4
+ * @cube-dev/ui-kit v0.0.0-canary-837dfc4
5
5
  * Released under the MIT license.
6
6
  */
7
7