@cube-dev/ui-kit 0.99.3 → 0.101.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (641) hide show
  1. package/CHANGELOG.md +155 -0
  2. package/es/_internal/hooks/index.js +1 -1
  3. package/es/_internal/hooks/use-chained-callback.js +1 -1
  4. package/es/_internal/hooks/use-debounced-value.js +1 -1
  5. package/es/_internal/hooks/use-deprecation-warning.js +1 -1
  6. package/es/_internal/hooks/use-effect-once.js +1 -1
  7. package/es/_internal/hooks/use-event.js +1 -1
  8. package/es/_internal/hooks/use-is-first-render.js +1 -1
  9. package/es/_internal/hooks/use-sync-ref.js +1 -1
  10. package/es/_internal/hooks/use-timer/index.js +1 -1
  11. package/es/_internal/hooks/use-timer/timer.js +1 -1
  12. package/es/_internal/hooks/use-timer/use-timer.js +1 -1
  13. package/es/_internal/hooks/use-update-effect.js +1 -1
  14. package/es/_internal/hooks/use-warn.js +1 -1
  15. package/es/_internal/index.js +1 -1
  16. package/es/components/Block.js +1 -1
  17. package/es/components/CollectionItem.js +1 -1
  18. package/es/components/GlobalStyles.js +1 -1
  19. package/es/components/GridProvider.js +1 -1
  20. package/es/components/HiddenInput.js +1 -1
  21. package/es/components/OpenTrasition.js +1 -1
  22. package/es/components/Root.js +1 -1
  23. package/es/components/actions/Action/Action.js +1 -1
  24. package/es/components/actions/Button/Button.js +1 -1
  25. package/es/components/actions/Button/index.js +1 -1
  26. package/es/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  27. package/es/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/es/components/actions/CommandMenu/index.js +1 -1
  29. package/es/components/actions/CommandMenu/styled.js +1 -1
  30. package/es/components/actions/ItemAction/ItemAction.js +6 -3
  31. package/es/components/actions/ItemAction/index.js +1 -1
  32. package/es/components/actions/ItemActionContext.js +3 -2
  33. package/es/components/actions/ItemButton/ItemButton.js +14 -5
  34. package/es/components/actions/ItemButton/index.js +1 -1
  35. package/es/components/actions/Link/Link.js +1 -1
  36. package/es/components/actions/Menu/Menu.js +1 -1
  37. package/es/components/actions/Menu/MenuItem.js +1 -1
  38. package/es/components/actions/Menu/MenuSection.js +1 -1
  39. package/es/components/actions/Menu/MenuTrigger.js +1 -1
  40. package/es/components/actions/Menu/SubMenuTrigger.js +1 -1
  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 +1 -1
  44. package/es/components/actions/Menu/styled.js +1 -1
  45. package/es/components/actions/index.js +1 -1
  46. package/es/components/actions/use-action.js +1 -1
  47. package/es/components/actions/use-anchored-menu.js +1 -1
  48. package/es/components/actions/use-context-menu.js +1 -1
  49. package/es/components/content/ActiveZone/ActiveZone.js +1 -1
  50. package/es/components/content/Alert/Alert.js +1 -1
  51. package/es/components/content/Alert/index.js +1 -1
  52. package/es/components/content/Alert/types.js +1 -1
  53. package/es/components/content/Alert/use-alert.js +1 -1
  54. package/es/components/content/Avatar/Avatar.js +1 -1
  55. package/es/components/content/Badge/Badge.js +1 -1
  56. package/es/components/content/Card/Card.js +1 -1
  57. package/es/components/content/Content.js +1 -1
  58. package/es/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  59. package/es/components/content/CopyPasteBlock/index.js +1 -1
  60. package/es/components/content/CopySnippet/CopySnippet.js +1 -1
  61. package/es/components/content/CopySnippet/index.js +1 -1
  62. package/es/components/content/Disclosure/Disclosure.js +1 -1
  63. package/es/components/content/Disclosure/index.js +1 -1
  64. package/es/components/content/Divider.js +1 -1
  65. package/es/components/content/Footer.js +1 -1
  66. package/es/components/content/Header.js +1 -1
  67. package/es/components/content/HotKeys/HotKeys.js +1 -1
  68. package/es/components/content/HotKeys/index.js +1 -1
  69. package/es/components/content/Item/Item.js +12 -8
  70. package/es/components/content/Item/index.js +1 -1
  71. package/es/components/content/ItemBadge/ItemBadge.js +1 -1
  72. package/es/components/content/ItemBadge/index.js +1 -1
  73. package/es/components/content/Layout/GridLayout.js +1 -1
  74. package/es/components/content/Layout/Layout.js +1 -1
  75. package/es/components/content/Layout/LayoutBlock.js +1 -1
  76. package/es/components/content/Layout/LayoutCenter.js +1 -1
  77. package/es/components/content/Layout/LayoutContainer.js +1 -1
  78. package/es/components/content/Layout/LayoutContent.js +1 -1
  79. package/es/components/content/Layout/LayoutContext.js +1 -1
  80. package/es/components/content/Layout/LayoutFlex.js +1 -1
  81. package/es/components/content/Layout/LayoutFooter.js +1 -1
  82. package/es/components/content/Layout/LayoutGrid.js +1 -1
  83. package/es/components/content/Layout/LayoutHeader.js +1 -1
  84. package/es/components/content/Layout/LayoutPane.js +1 -1
  85. package/es/components/content/Layout/LayoutPanel.js +1 -1
  86. package/es/components/content/Layout/LayoutPanelHeader.js +1 -1
  87. package/es/components/content/Layout/LayoutToolbar.js +1 -1
  88. package/es/components/content/Layout/hooks/useTinyScrollbar.js +13 -1
  89. package/es/components/content/Layout/index.js +1 -1
  90. package/es/components/content/Layout/utils.js +1 -1
  91. package/es/components/content/List/SectionHeading.js +1 -1
  92. package/es/components/content/List/index.js +1 -1
  93. package/es/components/content/Paragraph.js +1 -1
  94. package/es/components/content/Placeholder/Placeholder.js +1 -1
  95. package/es/components/content/PrismCode/PrismCode.js +1 -1
  96. package/es/components/content/PrismCode/prismSetup.js +1 -1
  97. package/es/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  98. package/es/components/content/Result/Result.js +1 -1
  99. package/es/components/content/Skeleton/Skeleton.js +1 -1
  100. package/es/components/content/Tag/Tag.js +1 -1
  101. package/es/components/content/Text.js +1 -1
  102. package/es/components/content/TextItem/TextItem.js +1 -1
  103. package/es/components/content/TextItem/index.js +1 -1
  104. package/es/components/content/Title.js +1 -1
  105. package/es/components/content/highlightText.js +1 -1
  106. package/es/components/content/use-auto-tooltip.js +1 -1
  107. package/es/components/fields/Checkbox/Checkbox.js +1 -1
  108. package/es/components/fields/Checkbox/CheckboxGroup.js +1 -1
  109. package/es/components/fields/Checkbox/context.js +1 -1
  110. package/es/components/fields/Checkbox/index.js +1 -1
  111. package/es/components/fields/ComboBox/ComboBox.js +1 -1
  112. package/es/components/fields/ComboBox/index.js +1 -1
  113. package/es/components/fields/DatePicker/DateInput.js +1 -1
  114. package/es/components/fields/DatePicker/DateInputBase.js +1 -1
  115. package/es/components/fields/DatePicker/DatePicker.js +1 -1
  116. package/es/components/fields/DatePicker/DatePickerButton.js +1 -1
  117. package/es/components/fields/DatePicker/DatePickerElement.js +1 -1
  118. package/es/components/fields/DatePicker/DatePickerInput.js +1 -1
  119. package/es/components/fields/DatePicker/DatePickerSegment.js +1 -1
  120. package/es/components/fields/DatePicker/DateRangePicker.js +1 -1
  121. package/es/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  122. package/es/components/fields/DatePicker/TimeInput.js +1 -1
  123. package/es/components/fields/DatePicker/index.js +1 -1
  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 +1 -1
  130. package/es/components/fields/FilterListBox/FilterListBox.js +49 -2
  131. package/es/components/fields/FilterListBox/index.js +1 -1
  132. package/es/components/fields/FilterPicker/FilterPicker.js +1 -1
  133. package/es/components/fields/FilterPicker/index.js +1 -1
  134. package/es/components/fields/Input/Input.js +1 -1
  135. package/es/components/fields/Input/index.js +1 -1
  136. package/es/components/fields/ListBox/ListBox.js +11 -4
  137. package/es/components/fields/ListBox/index.js +1 -1
  138. package/es/components/fields/NumberInput/NumberInput.js +1 -1
  139. package/es/components/fields/NumberInput/StepButton.js +1 -1
  140. package/es/components/fields/PasswordInput/PasswordInput.js +1 -1
  141. package/es/components/fields/Picker/Picker.js +1 -1
  142. package/es/components/fields/Picker/index.js +1 -1
  143. package/es/components/fields/RadioGroup/Radio.js +1 -1
  144. package/es/components/fields/RadioGroup/RadioGroup.js +1 -1
  145. package/es/components/fields/RadioGroup/context.js +1 -1
  146. package/es/components/fields/RadioGroup/index.js +1 -1
  147. package/es/components/fields/SearchInput/SearchInput.js +1 -1
  148. package/es/components/fields/SearchInput/index.js +1 -1
  149. package/es/components/fields/Select/Select.js +1 -1
  150. package/es/components/fields/Select/index.js +1 -1
  151. package/es/components/fields/Slider/Gradation.js +1 -1
  152. package/es/components/fields/Slider/Header.js +1 -1
  153. package/es/components/fields/Slider/RangeSlider.js +1 -1
  154. package/es/components/fields/Slider/Slider.js +1 -1
  155. package/es/components/fields/Slider/SliderBase.js +1 -1
  156. package/es/components/fields/Slider/SliderInput.js +1 -1
  157. package/es/components/fields/Slider/SliderThumb.js +1 -1
  158. package/es/components/fields/Slider/SliderTrack.js +1 -1
  159. package/es/components/fields/Slider/elements.js +1 -1
  160. package/es/components/fields/Slider/index.js +1 -1
  161. package/es/components/fields/Slider/types.js +1 -1
  162. package/es/components/fields/Switch/Switch.js +1 -1
  163. package/es/components/fields/Switch/index.js +1 -1
  164. package/es/components/fields/TextArea/TextArea.js +1 -1
  165. package/es/components/fields/TextArea/index.js +1 -1
  166. package/es/components/fields/TextInput/TextInput.js +1 -1
  167. package/es/components/fields/TextInput/TextInputBase.js +1 -1
  168. package/es/components/fields/TextInput/index.js +1 -1
  169. package/es/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  170. package/es/components/fields/TextInputMapper/index.js +1 -1
  171. package/es/components/fields/index.js +1 -1
  172. package/es/components/form/FieldWrapper/FieldWrapper.js +1 -1
  173. package/es/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  174. package/es/components/form/FieldWrapper/index.js +1 -1
  175. package/es/components/form/FieldWrapper/types.js +1 -1
  176. package/es/components/form/Form/Field.js +1 -1
  177. package/es/components/form/Form/Form.js +1 -1
  178. package/es/components/form/Form/ResetButton/ResetButton.js +1 -1
  179. package/es/components/form/Form/ResetButton/index.js +1 -1
  180. package/es/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  181. package/es/components/form/Form/SubmitButton/index.js +1 -1
  182. package/es/components/form/Form/SubmitError.js +1 -1
  183. package/es/components/form/Form/index.js +1 -1
  184. package/es/components/form/Form/types.js +1 -1
  185. package/es/components/form/Form/use-field/index.js +1 -1
  186. package/es/components/form/Form/use-field/types.js +1 -1
  187. package/es/components/form/Form/use-field/use-field-props.js +1 -1
  188. package/es/components/form/Form/use-field/use-field.js +1 -1
  189. package/es/components/form/Form/use-form.js +1 -1
  190. package/es/components/form/Form/validation.js +1 -1
  191. package/es/components/form/Label.js +1 -1
  192. package/es/components/form/index.js +1 -1
  193. package/es/components/form/wrapper.js +1 -1
  194. package/es/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  195. package/es/components/helpers/DisplayTransition/index.js +1 -1
  196. package/es/components/helpers/IconSwitch/IconSwitch.js +1 -1
  197. package/es/components/helpers/index.js +1 -1
  198. package/es/components/layout/Flex.js +1 -1
  199. package/es/components/layout/Flow.js +1 -1
  200. package/es/components/layout/Grid.js +1 -1
  201. package/es/components/layout/Panel.js +1 -1
  202. package/es/components/layout/Prefix.js +1 -1
  203. package/es/components/layout/ResizablePanel.js +1 -1
  204. package/es/components/layout/Space.js +1 -1
  205. package/es/components/layout/Suffix.js +1 -1
  206. package/es/components/navigation/Tabs/Tabs.js +920 -0
  207. package/es/components/navigation/Tabs/index.js +10 -0
  208. package/es/components/navigation/index.js +10 -0
  209. package/es/components/organisms/FileTabs/FileTabs.js +1 -1
  210. package/es/components/organisms/StatsCard/StatsCard.js +1 -1
  211. package/es/components/other/Calendar/Calendar.js +1 -1
  212. package/es/components/other/Calendar/CalendarCell.js +1 -1
  213. package/es/components/other/Calendar/CalendarGrid.js +1 -1
  214. package/es/components/other/Calendar/RangeCalendar.js +1 -1
  215. package/es/components/other/CloudLogo/CloudLogo.js +1 -1
  216. package/es/components/overlays/AlertDialog/AlertDialog.js +1 -1
  217. package/es/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  218. package/es/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  219. package/es/components/overlays/AlertDialog/index.js +1 -1
  220. package/es/components/overlays/AlertDialog/types.js +1 -1
  221. package/es/components/overlays/Dialog/Dialog.js +1 -1
  222. package/es/components/overlays/Dialog/DialogContainer.js +1 -1
  223. package/es/components/overlays/Dialog/DialogForm.js +1 -1
  224. package/es/components/overlays/Dialog/DialogTrigger.js +1 -1
  225. package/es/components/overlays/Dialog/context.js +1 -1
  226. package/es/components/overlays/Dialog/index.js +1 -1
  227. package/es/components/overlays/Dialog/use-dialog-container.js +1 -1
  228. package/es/components/overlays/Modal/Modal.js +1 -1
  229. package/es/components/overlays/Modal/OpenTransition.js +1 -1
  230. package/es/components/overlays/Modal/Overlay.js +1 -1
  231. package/es/components/overlays/Modal/Popover.js +1 -1
  232. package/es/components/overlays/Modal/Tray.js +1 -1
  233. package/es/components/overlays/Modal/Underlay.js +1 -1
  234. package/es/components/overlays/Modal/index.js +1 -1
  235. package/es/components/overlays/Modal/types.js +1 -1
  236. package/es/components/overlays/NewNotifications/Bar/FloatingNotification.js +1 -1
  237. package/es/components/overlays/NewNotifications/Bar/NotificationsBar.js +1 -1
  238. package/es/components/overlays/NewNotifications/Bar/TransitionComponent.js +1 -1
  239. package/es/components/overlays/NewNotifications/Bar/index.js +1 -1
  240. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogContext.js +1 -1
  241. package/es/components/overlays/NewNotifications/Dialog/NotificationsDialogTrigger.js +1 -1
  242. package/es/components/overlays/NewNotifications/Dialog/index.js +1 -1
  243. package/es/components/overlays/NewNotifications/Notification.js +1 -1
  244. package/es/components/overlays/NewNotifications/NotificationView/NotificationAction.js +1 -1
  245. package/es/components/overlays/NewNotifications/NotificationView/NotificationCloseButton.js +1 -1
  246. package/es/components/overlays/NewNotifications/NotificationView/NotificationDescription.js +1 -1
  247. package/es/components/overlays/NewNotifications/NotificationView/NotificationFooter.js +1 -1
  248. package/es/components/overlays/NewNotifications/NotificationView/NotificationHeader.js +1 -1
  249. package/es/components/overlays/NewNotifications/NotificationView/NotificationIcon.js +1 -1
  250. package/es/components/overlays/NewNotifications/NotificationView/NotificationProvider.js +1 -1
  251. package/es/components/overlays/NewNotifications/NotificationView/NotificationView.js +1 -1
  252. package/es/components/overlays/NewNotifications/NotificationView/index.js +1 -1
  253. package/es/components/overlays/NewNotifications/NotificationView/types.js +1 -1
  254. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsContext.js +1 -1
  255. package/es/components/overlays/NewNotifications/NotificationsContext/NotificationsProvider.js +1 -1
  256. package/es/components/overlays/NewNotifications/NotificationsContext/index.js +1 -1
  257. package/es/components/overlays/NewNotifications/NotificationsContext/use-notifications.js +1 -1
  258. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsList.js +1 -1
  259. package/es/components/overlays/NewNotifications/NotificationsList/NotificationsListItem.js +1 -1
  260. package/es/components/overlays/NewNotifications/NotificationsList/index.js +1 -1
  261. package/es/components/overlays/NewNotifications/NotificationsList/types.js +1 -1
  262. package/es/components/overlays/NewNotifications/hooks/index.js +1 -1
  263. package/es/components/overlays/NewNotifications/hooks/types.js +1 -1
  264. package/es/components/overlays/NewNotifications/hooks/use-notification-list-item.js +1 -1
  265. package/es/components/overlays/NewNotifications/hooks/use-notifications-api.js +1 -1
  266. package/es/components/overlays/NewNotifications/hooks/use-notifications-list.js +1 -1
  267. package/es/components/overlays/NewNotifications/hooks/use-notifications-observer.js +1 -1
  268. package/es/components/overlays/NewNotifications/index.js +1 -1
  269. package/es/components/overlays/NewNotifications/types.js +1 -1
  270. package/es/components/overlays/Notification/Notification.js +1 -1
  271. package/es/components/overlays/OverlayWrapper.js +1 -1
  272. package/es/components/overlays/Toasts/Toast.js +1 -1
  273. package/es/components/overlays/Toasts/index.js +1 -1
  274. package/es/components/overlays/Toasts/types.js +1 -1
  275. package/es/components/overlays/Toasts/use-toasts-api.js +1 -1
  276. package/es/components/overlays/Tooltip/Tooltip.js +1 -1
  277. package/es/components/overlays/Tooltip/TooltipProvider.js +1 -1
  278. package/es/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  279. package/es/components/overlays/Tooltip/context.js +1 -1
  280. package/es/components/overlays/Tooltip/index.js +1 -1
  281. package/es/components/portal/Portal.js +1 -1
  282. package/es/components/portal/PortalProvider.js +1 -1
  283. package/es/components/portal/index.js +1 -1
  284. package/es/components/portal/types.js +1 -1
  285. package/es/components/portal/usePortal.js +1 -1
  286. package/es/components/shared/InvalidIcon.js +1 -1
  287. package/es/components/shared/ValidIcon.js +1 -1
  288. package/es/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  289. package/es/components/status/LoadingAnimation/index.js +1 -1
  290. package/es/components/status/Spin/Cube.js +1 -1
  291. package/es/components/status/Spin/InternalSpinner.js +1 -1
  292. package/es/components/status/Spin/Spin.js +1 -1
  293. package/es/components/status/Spin/SpinsContainer.js +1 -1
  294. package/es/components/status/Spin/index.js +1 -1
  295. package/es/components/status/Spin/types.js +1 -1
  296. package/es/components/status/index.js +1 -1
  297. package/es/data/item-themes.js +10 -19
  298. package/es/data/themes.js +1 -1
  299. package/es/icons/AdjustmentsHorizontalIcon.js +1 -1
  300. package/es/icons/AdjustmentsIcon.js +1 -1
  301. package/es/icons/AiIcon.js +1 -1
  302. package/es/icons/AreaChartIcon.js +1 -1
  303. package/es/icons/BackwardIcon.js +1 -1
  304. package/es/icons/BarChartIcon.js +1 -1
  305. package/es/icons/BellFilledIcon.js +1 -1
  306. package/es/icons/BellIcon.js +1 -1
  307. package/es/icons/BooleanIcon.js +1 -1
  308. package/es/icons/CalendarEditIcon.js +1 -1
  309. package/es/icons/CalendarIcon.js +1 -1
  310. package/es/icons/CaretDownIcon.js +1 -1
  311. package/es/icons/CaretUpIcon.js +1 -1
  312. package/es/icons/ChartAreaStackedIcon.js +1 -1
  313. package/es/icons/ChartAreaStackedPercentageIcon.js +1 -1
  314. package/es/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  315. package/es/icons/ChartBarGroupedIcon.js +1 -1
  316. package/es/icons/ChartBarHorizontalIcon.js +1 -1
  317. package/es/icons/ChartBarLineIcon.js +1 -1
  318. package/es/icons/ChartBarStackedHorizontalIcon.js +1 -1
  319. package/es/icons/ChartBarStackedIcon.js +1 -1
  320. package/es/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  321. package/es/icons/ChartBarStackedPercentageIcon.js +1 -1
  322. package/es/icons/ChartBoxPlot2Icon.js +1 -1
  323. package/es/icons/ChartBoxPlotIcon.js +1 -1
  324. package/es/icons/ChartBubbleIcon.js +1 -1
  325. package/es/icons/ChartDonut2Icon.js +1 -1
  326. package/es/icons/ChartFunnelIcon.js +1 -1
  327. package/es/icons/ChartHeatmapIcon.js +1 -1
  328. package/es/icons/ChartKPIIcon.js +1 -1
  329. package/es/icons/ChartPie2Icon.js +1 -1
  330. package/es/icons/ChartScatterIcon.js +1 -1
  331. package/es/icons/CheckCircleFilledIcon.js +1 -1
  332. package/es/icons/CheckCircleIcon.js +1 -1
  333. package/es/icons/CheckIcon.js +1 -1
  334. package/es/icons/CircleFilledIcon.js +1 -1
  335. package/es/icons/ClearIcon.js +1 -1
  336. package/es/icons/CloseCircleFilledIcon.js +1 -1
  337. package/es/icons/CloseCircleIcon.js +1 -1
  338. package/es/icons/CloseIcon.js +1 -1
  339. package/es/icons/CodeIcon.js +1 -1
  340. package/es/icons/ColumnTotalIcon.js +1 -1
  341. package/es/icons/CopyIcon.js +1 -1
  342. package/es/icons/CountIcon.js +1 -1
  343. package/es/icons/CubeIcon.js +1 -1
  344. package/es/icons/CubePauseIcon.js +1 -1
  345. package/es/icons/CubePlayIcon.js +1 -1
  346. package/es/icons/CurrencyDollarIcon.js +1 -1
  347. package/es/icons/DangerIcon.js +1 -1
  348. package/es/icons/DashboardIcon.js +1 -1
  349. package/es/icons/DatabaseIcon.js +1 -1
  350. package/es/icons/DecimalDecreaseIcon.js +1 -1
  351. package/es/icons/DecimalIncreaseIcon.js +1 -1
  352. package/es/icons/DirectionIcon.js +1 -1
  353. package/es/icons/DonutIcon.js +1 -1
  354. package/es/icons/DownIcon.js +1 -1
  355. package/es/icons/EditIcon.js +1 -1
  356. package/es/icons/ExclamationCircleFilledIcon.js +1 -1
  357. package/es/icons/ExclamationCircleIcon.js +1 -1
  358. package/es/icons/ExclamationIcon.js +1 -1
  359. package/es/icons/EyeIcon.js +1 -1
  360. package/es/icons/EyeInvisibleIcon.js +1 -1
  361. package/es/icons/FilterIcon.js +1 -1
  362. package/es/icons/FolderFilledIcon.js +1 -1
  363. package/es/icons/FolderIcon.js +1 -1
  364. package/es/icons/FolderOpenFilledIcon.js +1 -1
  365. package/es/icons/FolderOpenIcon.js +1 -1
  366. package/es/icons/ForwardIcon.js +1 -1
  367. package/es/icons/HierarchyIcon.js +1 -1
  368. package/es/icons/HierarchyOpenIcon.js +1 -1
  369. package/es/icons/Icon.js +1 -1
  370. package/es/icons/InfoCircleIcon.js +1 -1
  371. package/es/icons/InfoIcon.js +1 -1
  372. package/es/icons/KeyIcon.js +1 -1
  373. package/es/icons/LeftIcon.js +1 -1
  374. package/es/icons/LineChartIcon.js +1 -1
  375. package/es/icons/LoadingIcon.js +1 -1
  376. package/es/icons/LockFilledIcon.js +1 -1
  377. package/es/icons/LockIcon.js +1 -1
  378. package/es/icons/MoreIcon.js +1 -1
  379. package/es/icons/NotAllowedIcon.js +1 -1
  380. package/es/icons/Number123Icon.js +1 -1
  381. package/es/icons/NumberIcon.js +1 -1
  382. package/es/icons/PauseCircleFilledIcon.js +1 -1
  383. package/es/icons/PauseCircleIcon.js +1 -1
  384. package/es/icons/PauseIcon.js +1 -1
  385. package/es/icons/PercentageIcon.js +1 -1
  386. package/es/icons/PieChartIcon.js +1 -1
  387. package/es/icons/PlayCircleIcon.js +1 -1
  388. package/es/icons/PlayIcon.js +1 -1
  389. package/es/icons/PlusIcon.js +1 -1
  390. package/es/icons/ProgressBarIcon.js +1 -1
  391. package/es/icons/ReloadIcon.js +1 -1
  392. package/es/icons/ReportIcon.js +1 -1
  393. package/es/icons/ReturnIcon.js +1 -1
  394. package/es/icons/RightIcon.js +1 -1
  395. package/es/icons/RowTotalsIcon.js +1 -1
  396. package/es/icons/SchemeIcon.js +1 -1
  397. package/es/icons/SearchIcon.js +1 -1
  398. package/es/icons/SemanticQueryIcon.js +1 -1
  399. package/es/icons/SettingsIcon.js +1 -1
  400. package/es/icons/ShieldFilledIcon.js +1 -1
  401. package/es/icons/ShieldIcon.js +1 -1
  402. package/es/icons/SlashIcon.js +1 -1
  403. package/es/icons/SparklesIcon.js +1 -1
  404. package/es/icons/SqlIcon.js +1 -1
  405. package/es/icons/StatsIcon.js +1 -1
  406. package/es/icons/StopIcon.js +1 -1
  407. package/es/icons/StringIcon.js +1 -1
  408. package/es/icons/SubtotalsIcon.js +1 -1
  409. package/es/icons/SwitchIcon.js +1 -1
  410. package/es/icons/TableIcon.js +1 -1
  411. package/es/icons/ThumbsDownIcon.js +1 -1
  412. package/es/icons/ThumbsUpIcon.js +1 -1
  413. package/es/icons/ThunderboltCrossedIcon.js +1 -1
  414. package/es/icons/ThunderboltFilledIcon.js +1 -1
  415. package/es/icons/ThunderboltIcon.js +1 -1
  416. package/es/icons/TimeIcon.js +1 -1
  417. package/es/icons/TrashIcon.js +1 -1
  418. package/es/icons/UnlockIcon.js +1 -1
  419. package/es/icons/UpIcon.js +1 -1
  420. package/es/icons/UserGroupIcon.js +1 -1
  421. package/es/icons/UserIcon.js +1 -1
  422. package/es/icons/UserLockIcon.js +1 -1
  423. package/es/icons/ViewIcon.js +1 -1
  424. package/es/icons/WarningFilledIcon.js +1 -1
  425. package/es/icons/WarningIcon.js +1 -1
  426. package/es/icons/index.js +1 -1
  427. package/es/icons/wrap-icon.js +1 -1
  428. package/es/index.js +15 -1
  429. package/es/provider.js +1 -1
  430. package/es/providers/TrackingProvider.js +1 -1
  431. package/es/providers/navigation.types.js +1 -1
  432. package/es/providers/navigationAdapter.default.js +1 -1
  433. package/es/services/notification.js +1 -1
  434. package/es/shared/form.js +1 -1
  435. package/es/shared/index.js +1 -1
  436. package/es/stories/Form.legacy-stories.js +1 -1
  437. package/es/stories/FormFieldArgs.js +1 -1
  438. package/es/stories/SimpleLayout.stories.js +1 -1
  439. package/es/stories/Tasty.stories.js +1 -1
  440. package/es/stories/components/ConfirmDeletionDialogForm.js +1 -1
  441. package/es/stories/components/DialogFormApp.js +1 -1
  442. package/es/stories/components/StyledButton.js +1 -1
  443. package/es/stories/lists/baseProps.js +1 -1
  444. package/es/stories/playground/PlaygroundEditor.js +1 -1
  445. package/es/stories/playground/PlaygroundLayout.js +1 -1
  446. package/es/stories/playground/PlaygroundOutput.js +1 -1
  447. package/es/stories/playground/PlaygroundPreview.js +1 -1
  448. package/es/stories/playground/components/Button.js +1 -1
  449. package/es/stories/playground/components/Card.js +1 -1
  450. package/es/stories/playground/components/ScrollProgress.js +1 -1
  451. package/es/stories/playground/examples.js +1 -1
  452. package/es/tasty/chunks/cacheKey.js +1 -1
  453. package/es/tasty/chunks/definitions.js +97 -45
  454. package/es/tasty/chunks/index.js +2 -2
  455. package/es/tasty/chunks/renderChunk.js +1 -1
  456. package/es/tasty/config.js +88 -4
  457. package/es/tasty/debug.js +5 -5
  458. package/es/tasty/hooks/index.js +3 -1
  459. package/es/tasty/hooks/useGlobalStyles.js +1 -1
  460. package/es/tasty/hooks/useKeyframes.js +82 -0
  461. package/es/tasty/hooks/useProperty.js +100 -0
  462. package/es/tasty/hooks/useRawCSS.js +1 -1
  463. package/es/tasty/hooks/useStyles.js +16 -2
  464. package/es/tasty/index.js +3 -3
  465. package/es/tasty/injector/index.js +39 -1
  466. package/es/tasty/injector/injector.js +67 -16
  467. package/es/tasty/injector/sheet-manager.js +2 -2
  468. package/es/tasty/injector/types.js +1 -1
  469. package/es/tasty/keyframes/index.js +1 -1
  470. package/es/tasty/parser/classify.js +174 -4
  471. package/es/tasty/parser/const.js +3 -1
  472. package/es/tasty/parser/lru.js +1 -1
  473. package/es/tasty/parser/parser.js +51 -22
  474. package/es/tasty/parser/tokenizer.js +31 -12
  475. package/es/tasty/parser/types.js +29 -4
  476. package/es/tasty/pipeline/conditions.js +1 -1
  477. package/es/tasty/pipeline/exclusive.js +1 -1
  478. package/es/tasty/pipeline/index.js +1 -1
  479. package/es/tasty/pipeline/materialize.js +1 -1
  480. package/es/tasty/pipeline/parseStateKey.js +1 -1
  481. package/es/tasty/pipeline/simplify.js +1 -1
  482. package/es/tasty/plugins/index.js +1 -1
  483. package/es/tasty/plugins/okhsl-plugin.js +1 -1
  484. package/es/tasty/plugins/types.js +1 -1
  485. package/es/tasty/properties/index.js +211 -0
  486. package/es/tasty/states/index.js +8 -2
  487. package/es/tasty/static/index.js +1 -1
  488. package/es/tasty/static/tastyStatic.js +1 -1
  489. package/es/tasty/static/types.js +1 -1
  490. package/es/tasty/styles/align.js +1 -1
  491. package/es/tasty/styles/border.js +114 -20
  492. package/es/tasty/styles/boxShadow.combinator.js +2 -2
  493. package/es/tasty/styles/color.js +2 -2
  494. package/es/tasty/styles/createStyle.js +1 -1
  495. package/es/tasty/styles/dimension.js +100 -53
  496. package/es/tasty/styles/display.js +84 -4
  497. package/es/tasty/styles/fade.js +46 -13
  498. package/es/tasty/styles/fill.js +58 -9
  499. package/es/tasty/styles/flow.js +1 -1
  500. package/es/tasty/styles/gap.js +1 -1
  501. package/es/tasty/styles/height.js +4 -4
  502. package/es/tasty/styles/index.js +4 -3
  503. package/es/tasty/styles/inset.js +173 -23
  504. package/es/tasty/styles/justify.js +1 -1
  505. package/es/tasty/styles/list.js +2 -2
  506. package/es/tasty/styles/margin.js +1 -1
  507. package/es/tasty/styles/outline.js +48 -21
  508. package/es/tasty/styles/padding.js +1 -1
  509. package/es/tasty/styles/place.js +1 -1
  510. package/es/tasty/styles/predefined.js +245 -37
  511. package/es/tasty/styles/preset.js +140 -40
  512. package/es/tasty/styles/radius.js +2 -2
  513. package/es/tasty/styles/reset.js +1 -1
  514. package/es/tasty/styles/scrollbar.js +1 -1
  515. package/es/tasty/styles/shadow.js +2 -2
  516. package/es/tasty/styles/styledScrollbar.js +1 -1
  517. package/es/tasty/styles/transition.js +20 -2
  518. package/es/tasty/styles/types.js +1 -1
  519. package/es/tasty/styles/width.js +4 -4
  520. package/es/tasty/tasty.js +94 -113
  521. package/es/tasty/types.js +1 -1
  522. package/es/tasty/utils/cache-wrapper.js +1 -1
  523. package/es/tasty/utils/case-converter.js +1 -1
  524. package/es/tasty/utils/colors.js +1 -1
  525. package/es/tasty/utils/dotize.js +1 -1
  526. package/es/tasty/utils/filterBaseProps.js +1 -1
  527. package/es/tasty/utils/getDisplayName.js +1 -1
  528. package/es/tasty/utils/isDevEnv.js +1 -1
  529. package/es/tasty/utils/mergeStyles.js +1 -1
  530. package/es/tasty/utils/modAttrs.js +1 -1
  531. package/es/tasty/utils/processTokens.js +1 -1
  532. package/es/tasty/utils/string.js +1 -1
  533. package/es/tasty/utils/styles.js +51 -12
  534. package/es/tasty/utils/typography.js +1 -1
  535. package/es/tasty/utils/warnings.js +1 -1
  536. package/es/tasty/zero/babel.js +5 -22
  537. package/es/tasty/zero/css-writer.js +1 -1
  538. package/es/tasty/zero/extractor.js +1 -1
  539. package/es/tasty/zero/index.js +1 -1
  540. package/es/tasty/zero/next.js +1 -1
  541. package/es/tokens/base.js +5 -1
  542. package/es/tokens/colors.js +1 -1
  543. package/es/tokens/index.js +1 -1
  544. package/es/tokens/layout.js +1 -1
  545. package/es/tokens/shadows.js +1 -1
  546. package/es/tokens/sizes.js +1 -1
  547. package/es/tokens/spacing.js +1 -1
  548. package/es/tokens/typography.js +1 -1
  549. package/es/utils/ResizeSensor.js +1 -1
  550. package/es/utils/index.js +1 -1
  551. package/es/utils/modules.js +1 -1
  552. package/es/utils/promise.js +1 -1
  553. package/es/utils/raf.js +1 -1
  554. package/es/utils/random.js +1 -1
  555. package/es/utils/range.js +1 -1
  556. package/es/utils/react/RenderCache.js +1 -1
  557. package/es/utils/react/Slots.js +1 -1
  558. package/es/utils/react/chain.js +1 -1
  559. package/es/utils/react/forwardRefWithGenerics.js +1 -1
  560. package/es/utils/react/index.js +1 -1
  561. package/es/utils/react/interactions.js +1 -1
  562. package/es/utils/react/isTextOnly.js +1 -1
  563. package/es/utils/react/mapProps.js +1 -1
  564. package/es/utils/react/mergeProps.js +1 -1
  565. package/es/utils/react/nullableValue.js +1 -1
  566. package/es/utils/react/resolveIcon.js +1 -1
  567. package/es/utils/react/sharedStore.js +1 -1
  568. package/es/utils/react/useCombinedRefs.js +1 -1
  569. package/es/utils/react/useControlledFocusVisible.js +1 -1
  570. package/es/utils/react/useEventBus.js +1 -1
  571. package/es/utils/react/useId.js +1 -1
  572. package/es/utils/react/useIsDarwin.js +1 -1
  573. package/es/utils/react/useKeySymbols.js +1 -1
  574. package/es/utils/react/useLayoutEffect.js +1 -1
  575. package/es/utils/react/useLocalStorage.js +1 -1
  576. package/es/utils/react/useQaProps.js +1 -1
  577. package/es/utils/react/useViewportSize.js +1 -1
  578. package/es/utils/react/wrapNodeIfPlain.js +1 -1
  579. package/es/utils/tree.js +1 -1
  580. package/es/utils/warnings.js +1 -1
  581. package/es/version.js +2 -2
  582. package/package.json +1 -1
  583. package/types/components/HiddenInput.d.ts +6 -5
  584. package/types/components/actions/Button/Button.d.ts +18 -16
  585. package/types/components/actions/CommandMenu/styled.d.ts +30 -25
  586. package/types/components/actions/ItemActionContext.d.ts +3 -1
  587. package/types/components/actions/Menu/styled.d.ts +549 -541
  588. package/types/components/content/Item/Item.d.ts +7 -0
  589. package/types/components/content/Layout/hooks/useTinyScrollbar.d.ts +6 -0
  590. package/types/components/content/List/SectionHeading.d.ts +173 -172
  591. package/types/components/content/Text.d.ts +1197 -1190
  592. package/types/components/fields/DatePicker/DatePickerElement.d.ts +173 -172
  593. package/types/components/fields/Select/Select.d.ts +6 -5
  594. package/types/components/fields/Slider/elements.d.ts +36 -30
  595. package/types/components/navigation/Tabs/Tabs.d.ts +236 -0
  596. package/types/components/navigation/Tabs/index.d.ts +2 -0
  597. package/types/components/navigation/index.d.ts +2 -0
  598. package/types/index.d.ts +1 -0
  599. package/types/tasty/chunks/definitions.d.ts +63 -18
  600. package/types/tasty/chunks/index.d.ts +1 -1
  601. package/types/tasty/config.d.ts +97 -1
  602. package/types/tasty/hooks/index.d.ts +3 -0
  603. package/types/tasty/hooks/useKeyframes.d.ts +52 -0
  604. package/types/tasty/hooks/useProperty.d.ts +75 -0
  605. package/types/tasty/index.d.ts +3 -2
  606. package/types/tasty/injector/index.d.ts +57 -1
  607. package/types/tasty/injector/injector.d.ts +19 -7
  608. package/types/tasty/injector/types.d.ts +14 -2
  609. package/types/tasty/parser/const.d.ts +1 -0
  610. package/types/tasty/parser/parser.d.ts +6 -0
  611. package/types/tasty/parser/tokenizer.d.ts +1 -1
  612. package/types/tasty/parser/types.d.ts +31 -1
  613. package/types/tasty/plugins/types.d.ts +20 -1
  614. package/types/tasty/properties/index.d.ts +90 -0
  615. package/types/tasty/styles/border.d.ts +11 -3
  616. package/types/tasty/styles/boxShadow.combinator.d.ts +2 -2
  617. package/types/tasty/styles/color.d.ts +2 -2
  618. package/types/tasty/styles/dimension.d.ts +16 -1
  619. package/types/tasty/styles/display.d.ts +24 -6
  620. package/types/tasty/styles/fade.d.ts +3 -3
  621. package/types/tasty/styles/fill.d.ts +16 -6
  622. package/types/tasty/styles/height.d.ts +7 -3
  623. package/types/tasty/styles/index.d.ts +3 -1
  624. package/types/tasty/styles/inset.d.ts +35 -3
  625. package/types/tasty/styles/list.d.ts +3 -3
  626. package/types/tasty/styles/outline.d.ts +17 -11
  627. package/types/tasty/styles/predefined.d.ts +98 -1
  628. package/types/tasty/styles/preset.d.ts +23 -4
  629. package/types/tasty/styles/radius.d.ts +2 -2
  630. package/types/tasty/styles/shadow.d.ts +2 -2
  631. package/types/tasty/styles/types.d.ts +74 -22
  632. package/types/tasty/styles/width.d.ts +7 -3
  633. package/types/tasty/tasty.d.ts +6 -5
  634. package/types/tasty/utils/styles.d.ts +27 -4
  635. package/types/tasty/zero/babel.d.ts +47 -0
  636. package/es/tasty/styles/font.js +0 -23
  637. package/es/tasty/styles/fontStyle.js +0 -19
  638. package/es/tasty/styles/groupRadius.js +0 -61
  639. package/types/tasty/styles/font.d.ts +0 -9
  640. package/types/tasty/styles/fontStyle.d.ts +0 -8
  641. package/types/tasty/styles/groupRadius.d.ts +0 -11
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.101.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -13,6 +13,37 @@
13
13
  * 2. Logical grouping - related styles grouped for better cache reuse
14
14
  *
15
15
  * See STYLE_CHUNKING_SPEC.md for detailed rationale.
16
+ *
17
+ * ============================================================================
18
+ * ⚠️ CRITICAL ARCHITECTURAL CONSTRAINT: NO CROSS-CHUNK HANDLER DEPENDENCIES
19
+ * ============================================================================
20
+ *
21
+ * Style handlers declare their dependencies via `__lookupStyles` array.
22
+ * This creates a dependency graph where handlers read multiple style props.
23
+ *
24
+ * **ALL styles in a handler's `__lookupStyles` MUST be in the SAME chunk.**
25
+ *
26
+ * Why this matters:
27
+ * 1. Each chunk computes a cache key from ONLY its own style values
28
+ * 2. If a handler reads a style from another chunk, that value isn't in the cache key
29
+ * 3. Changing the cross-chunk style won't invalidate this chunk's cache
30
+ * 4. Result: stale CSS output or incorrect cache hits
31
+ *
32
+ * Example of a violation:
33
+ * ```
34
+ * // flowStyle.__lookupStyles = ['display', 'flow']
35
+ * // If 'display' is in DISPLAY chunk and 'flow' is in LAYOUT chunk:
36
+ * // - User sets { display: 'grid', flow: 'column' }
37
+ * // - LAYOUT chunk caches CSS with flow=column, display=grid
38
+ * // - User changes to { display: 'flex', flow: 'column' }
39
+ * // - LAYOUT chunk cache key unchanged (only has 'flow')
40
+ * // - Returns stale CSS computed with display=grid!
41
+ * ```
42
+ *
43
+ * Before adding/moving styles, verify:
44
+ * 1. Find all handlers that use this style (grep for the style name in __lookupStyles)
45
+ * 2. Ensure ALL styles from each handler's __lookupStyles are in the same chunk
46
+ * ============================================================================
16
47
  */
17
48
  import { isSelector } from '../pipeline/index.js';
18
49
  // ============================================================================
@@ -27,15 +58,17 @@ export const APPEARANCE_CHUNK_STYLES = [
27
58
  'opacity', // independent
28
59
  'border', // borderStyle (independent)
29
60
  'radius', // radiusStyle (independent)
30
- 'outline', // outlineStyle (independent)
31
- 'outlineOffset', // independent (used with outline)
61
+ 'outline', // outlineStyle: outline ↔ outlineOffset
62
+ 'outlineOffset', // outlineStyle: outline outlineOffset
32
63
  'shadow', // shadowStyle (independent)
33
64
  'fade', // fadeStyle (independent)
34
65
  ];
35
66
  /**
36
67
  * Font chunk - typography styles
37
- * ⚠️ presetStyle handler requires: preset, fontSize, lineHeight, letterSpacing,
38
- * textTransform, fontWeight, fontStyle, font - all MUST stay together
68
+ *
69
+ * Handler dependencies (all styles in each handler MUST stay in this chunk):
70
+ * ⚠️ presetStyle: preset, fontSize, lineHeight, letterSpacing, textTransform,
71
+ * fontWeight, fontStyle, font
39
72
  */
40
73
  export const FONT_CHUNK_STYLES = [
41
74
  // All from presetStyle handler - MUST stay together
@@ -50,17 +83,19 @@ export const FONT_CHUNK_STYLES = [
50
83
  // Independent text styles grouped for cohesion
51
84
  'fontFamily', // independent alias (logical grouping with font styles)
52
85
  'textAlign',
53
- 'whiteSpace',
54
86
  'textDecoration',
55
- 'textOverflow',
56
87
  'wordBreak',
57
88
  'wordWrap',
58
89
  'boldFontWeight',
59
90
  ];
60
91
  /**
61
92
  * Dimension chunk - sizing and spacing
62
- * ⚠️ paddingStyle handler requires all padding variants together
63
- * ⚠️ marginStyle handler requires all margin variants together
93
+ *
94
+ * Handler dependencies (all styles in each handler MUST stay in this chunk):
95
+ * ⚠️ paddingStyle: padding, paddingTop/Right/Bottom/Left, paddingBlock/Inline
96
+ * ⚠️ marginStyle: margin, marginTop/Right/Bottom/Left, marginBlock/Inline
97
+ * ⚠️ widthStyle: width, minWidth, maxWidth
98
+ * ⚠️ heightStyle: height, minHeight, maxHeight
64
99
  */
65
100
  export const DIMENSION_CHUNK_STYLES = [
66
101
  // All from paddingStyle handler - MUST stay together
@@ -79,11 +114,12 @@ export const DIMENSION_CHUNK_STYLES = [
79
114
  'marginLeft',
80
115
  'marginBlock',
81
116
  'marginInline',
82
- // Independent sizing styles
83
- 'width', // widthStyle (independent)
84
- 'height', // heightStyle (independent)
117
+ // widthStyle handler - MUST stay together
118
+ 'width',
85
119
  'minWidth',
86
120
  'maxWidth',
121
+ // heightStyle handler - MUST stay together
122
+ 'height',
87
123
  'minHeight',
88
124
  'maxHeight',
89
125
  'flexBasis',
@@ -92,19 +128,37 @@ export const DIMENSION_CHUNK_STYLES = [
92
128
  'flex',
93
129
  ];
94
130
  /**
95
- * Container chunk - display, flow, and grid layout
96
- * ⚠️ FORCED TOGETHER by transitive handler dependencies:
97
- * displayStyle(display,hide) + flowStyle(display,flow) +
98
- * gapStyle(display,flow,gap) + groupRadiusAttr(groupRadius,flow)
131
+ * Display chunk - display mode, layout flow, text overflow, and scrollbar
132
+ *
133
+ * Handler dependencies (all styles in each handler MUST stay in this chunk):
134
+ * ⚠️ displayStyle: display, hide, textOverflow, overflow, whiteSpace
135
+ * ⚠️ flowStyle: display, flow
136
+ * ⚠️ gapStyle: display, flow, gap
137
+ * ⚠️ scrollbarStyle: scrollbar, overflow
99
138
  */
100
- export const CONTAINER_CHUNK_STYLES = [
101
- // Forced together by handler dependencies
102
- 'display', // displayStyle: display ↔ hide
103
- 'hide', // displayStyle: display ↔ hide
104
- 'flow', // flowStyle: display ↔ flow
105
- 'gap', // gapStyle: display flow ↔ gap
106
- 'groupRadius', // groupRadiusAttr: groupRadius ↔ flow
107
- // Related container styles (independent but logically grouped)
139
+ export const DISPLAY_CHUNK_STYLES = [
140
+ // displayStyle handler
141
+ 'display',
142
+ 'hide',
143
+ 'textOverflow',
144
+ 'overflow', // also used by scrollbarStyle
145
+ 'whiteSpace',
146
+ // flowStyle handler (requires display)
147
+ 'flow',
148
+ // gapStyle handler (requires display, flow)
149
+ 'gap',
150
+ // scrollbarStyle handler (requires overflow)
151
+ 'scrollbar',
152
+ 'styledScrollbar', // styledScrollbarStyle (deprecated)
153
+ ];
154
+ /**
155
+ * Layout chunk - flex/grid alignment and grid templates
156
+ *
157
+ * Note: flow and gap are in DISPLAY chunk due to handler dependencies
158
+ * (flowStyle and gapStyle both require 'display' prop).
159
+ */
160
+ export const LAYOUT_CHUNK_STYLES = [
161
+ // Alignment styles (all independent handlers)
108
162
  'placeItems',
109
163
  'placeContent',
110
164
  'alignItems',
@@ -116,6 +170,7 @@ export const CONTAINER_CHUNK_STYLES = [
116
170
  'place', // placeStyle (independent)
117
171
  'columnGap',
118
172
  'rowGap',
173
+ // Grid template styles
119
174
  'gridColumns',
120
175
  'gridRows',
121
176
  'gridTemplate',
@@ -125,20 +180,17 @@ export const CONTAINER_CHUNK_STYLES = [
125
180
  'gridAutoRows',
126
181
  ];
127
182
  /**
128
- * Scrollbar chunk - scrollbar and overflow
129
- * ⚠️ scrollbarStyle handler requires scrollbar ↔ overflow together
130
- */
131
- export const SCROLLBAR_CHUNK_STYLES = [
132
- 'scrollbar', // scrollbarStyle: scrollbar ↔ overflow
133
- 'overflow', // scrollbarStyle: scrollbar ↔ overflow
134
- 'styledScrollbar', // styledScrollbarStyle (independent, deprecated)
135
- ];
136
- /**
137
- * Position chunk - element positioning (all independent handlers)
183
+ * Position chunk - element positioning
184
+ *
185
+ * Handler dependencies (all styles in each handler MUST stay in this chunk):
186
+ * ⚠️ insetStyle: inset, insetBlock, insetInline, top, right, bottom, left
138
187
  */
139
188
  export const POSITION_CHUNK_STYLES = [
140
189
  'position',
141
- 'inset', // insetStyle (independent)
190
+ // All from insetStyle handler - MUST stay together
191
+ 'inset',
192
+ 'insetBlock',
193
+ 'insetInline',
142
194
  'top',
143
195
  'right',
144
196
  'bottom',
@@ -165,8 +217,8 @@ export const CHUNK_NAMES = {
165
217
  APPEARANCE: 'appearance',
166
218
  FONT: 'font',
167
219
  DIMENSION: 'dimension',
168
- CONTAINER: 'container',
169
- SCROLLBAR: 'scrollbar',
220
+ DISPLAY: 'display',
221
+ LAYOUT: 'layout',
170
222
  POSITION: 'position',
171
223
  MISC: 'misc',
172
224
  };
@@ -189,11 +241,11 @@ function populateStyleToChunkMap() {
189
241
  for (const style of DIMENSION_CHUNK_STYLES) {
190
242
  STYLE_TO_CHUNK.set(style, CHUNK_NAMES.DIMENSION);
191
243
  }
192
- for (const style of CONTAINER_CHUNK_STYLES) {
193
- STYLE_TO_CHUNK.set(style, CHUNK_NAMES.CONTAINER);
244
+ for (const style of DISPLAY_CHUNK_STYLES) {
245
+ STYLE_TO_CHUNK.set(style, CHUNK_NAMES.DISPLAY);
194
246
  }
195
- for (const style of SCROLLBAR_CHUNK_STYLES) {
196
- STYLE_TO_CHUNK.set(style, CHUNK_NAMES.SCROLLBAR);
247
+ for (const style of LAYOUT_CHUNK_STYLES) {
248
+ STYLE_TO_CHUNK.set(style, CHUNK_NAMES.LAYOUT);
197
249
  }
198
250
  for (const style of POSITION_CHUNK_STYLES) {
199
251
  STYLE_TO_CHUNK.set(style, CHUNK_NAMES.POSITION);
@@ -212,8 +264,8 @@ const CHUNK_ORDER = [
212
264
  CHUNK_NAMES.APPEARANCE,
213
265
  CHUNK_NAMES.FONT,
214
266
  CHUNK_NAMES.DIMENSION,
215
- CHUNK_NAMES.CONTAINER,
216
- CHUNK_NAMES.SCROLLBAR,
267
+ CHUNK_NAMES.DISPLAY,
268
+ CHUNK_NAMES.LAYOUT,
217
269
  CHUNK_NAMES.POSITION,
218
270
  CHUNK_NAMES.MISC,
219
271
  CHUNK_NAMES.SUBCOMPONENTS,
@@ -240,8 +292,8 @@ export function categorizeStyleKeys(styles) {
240
292
  const keys = Object.keys(styles);
241
293
  for (const key of keys) {
242
294
  // Skip the $ helper key (used for selector combinators)
243
- // Skip @keyframes (processed separately in useStyles)
244
- if (key === '$' || key === '@keyframes') {
295
+ // Skip @keyframes and @properties (processed separately in useStyles)
296
+ if (key === '$' || key === '@keyframes' || key === '@properties') {
245
297
  continue;
246
298
  }
247
299
  if (isSelector(key)) {
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.101.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
- export { APPEARANCE_CHUNK_STYLES, FONT_CHUNK_STYLES, DIMENSION_CHUNK_STYLES, CONTAINER_CHUNK_STYLES, SCROLLBAR_CHUNK_STYLES, POSITION_CHUNK_STYLES, CHUNK_NAMES, STYLE_TO_CHUNK, categorizeStyleKeys, } from './definitions.js';
8
+ export { APPEARANCE_CHUNK_STYLES, FONT_CHUNK_STYLES, DIMENSION_CHUNK_STYLES, DISPLAY_CHUNK_STYLES, LAYOUT_CHUNK_STYLES, POSITION_CHUNK_STYLES, CHUNK_NAMES, STYLE_TO_CHUNK, categorizeStyleKeys, } from './definitions.js';
9
9
  export { generateChunkCacheKey } from './cacheKey.js';
10
10
  export { renderStylesForChunk } from './renderChunk.js';
11
11
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.101.0
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.99.3
4
+ * @cube-dev/ui-kit v0.101.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -18,9 +18,11 @@
18
18
  * reconfigure will emit a warning and be ignored.
19
19
  */
20
20
  import { StyleInjector } from './injector/injector.js';
21
+ import { clearPipelineCache } from './pipeline/index.js';
21
22
  import { setGlobalPredefinedStates } from './states/index.js';
23
+ import { normalizeHandlerDefinition, registerHandler, resetHandlers, } from './styles/predefined.js';
22
24
  import { isDevEnv } from './utils/isDevEnv.js';
23
- import { CUSTOM_UNITS, getGlobalFuncs, getGlobalParser } from './utils/styles.js';
25
+ import { CUSTOM_UNITS, getGlobalFuncs, getGlobalParser, resetGlobalPredefinedTokens, setGlobalPredefinedTokens, } from './utils/styles.js';
24
26
  // Warnings tracking to avoid duplicates
25
27
  const emittedWarnings = new Set();
26
28
  const devMode = isDevEnv();
@@ -42,6 +44,8 @@ let stylesGenerated = false;
42
44
  let currentConfig = null;
43
45
  // Global keyframes storage (null = no keyframes configured, empty object checked via hasGlobalKeyframes)
44
46
  let globalKeyframes = null;
47
+ // Global properties storage (null = no properties configured)
48
+ let globalProperties = null;
45
49
  // Global injector instance key
46
50
  const GLOBAL_INJECTOR_KEY = '__TASTY_GLOBAL_INJECTOR__';
47
51
  /**
@@ -94,9 +98,20 @@ function createDefaultConfig(isTest) {
94
98
  /**
95
99
  * Mark that styles have been generated (called by injector on first inject)
96
100
  * This locks the configuration - no further changes allowed.
101
+ * Also injects any global properties that were configured.
97
102
  */
98
103
  export function markStylesGenerated() {
104
+ if (stylesGenerated)
105
+ return; // Already marked, skip
99
106
  stylesGenerated = true;
107
+ // Inject global properties if any were configured
108
+ // Properties are permanent and only need to be injected once
109
+ if (globalProperties && Object.keys(globalProperties).length > 0) {
110
+ const injector = getGlobalInjector();
111
+ for (const [token, definition] of Object.entries(globalProperties)) {
112
+ injector.property(token, definition);
113
+ }
114
+ }
100
115
  }
101
116
  /**
102
117
  * Check if styles have been generated (configuration is locked)
@@ -140,6 +155,35 @@ function setGlobalKeyframes(keyframes) {
140
155
  }
141
156
  globalKeyframes = keyframes;
142
157
  }
158
+ // ============================================================================
159
+ // Global Properties Management
160
+ // ============================================================================
161
+ /**
162
+ * Check if any global properties are configured.
163
+ * Fast path: returns false if no properties were ever set.
164
+ */
165
+ export function hasGlobalProperties() {
166
+ return globalProperties !== null && Object.keys(globalProperties).length > 0;
167
+ }
168
+ /**
169
+ * Get global properties configuration.
170
+ * Returns null if no properties configured (fast path for zero-overhead).
171
+ */
172
+ export function getGlobalProperties() {
173
+ return globalProperties;
174
+ }
175
+ /**
176
+ * Set global properties (called from configure).
177
+ * Internal use only.
178
+ */
179
+ function setGlobalProperties(properties) {
180
+ if (stylesGenerated) {
181
+ warnOnce('properties-after-styles', `[Tasty] Cannot update properties after styles have been generated.\n` +
182
+ `The new properties will be ignored.`);
183
+ return;
184
+ }
185
+ globalProperties = properties;
186
+ }
143
187
  /**
144
188
  * Check if configuration is locked (styles have been generated)
145
189
  */
@@ -180,6 +224,8 @@ export function configure(config = {}) {
180
224
  let mergedStates = {};
181
225
  let mergedUnits = {};
182
226
  let mergedFuncs = {};
227
+ let mergedHandlers = {};
228
+ let mergedTokens = {};
183
229
  // Process plugins in order
184
230
  if (config.plugins) {
185
231
  for (const plugin of config.plugins) {
@@ -192,6 +238,12 @@ export function configure(config = {}) {
192
238
  if (plugin.funcs) {
193
239
  mergedFuncs = { ...mergedFuncs, ...plugin.funcs };
194
240
  }
241
+ if (plugin.handlers) {
242
+ mergedHandlers = { ...mergedHandlers, ...plugin.handlers };
243
+ }
244
+ if (plugin.tokens) {
245
+ mergedTokens = { ...mergedTokens, ...plugin.tokens };
246
+ }
195
247
  }
196
248
  }
197
249
  // Direct config overrides plugins
@@ -204,6 +256,12 @@ export function configure(config = {}) {
204
256
  if (config.funcs) {
205
257
  mergedFuncs = { ...mergedFuncs, ...config.funcs };
206
258
  }
259
+ if (config.handlers) {
260
+ mergedHandlers = { ...mergedHandlers, ...config.handlers };
261
+ }
262
+ if (config.tokens) {
263
+ mergedTokens = { ...mergedTokens, ...config.tokens };
264
+ }
207
265
  // Handle predefined states
208
266
  if (Object.keys(mergedStates).length > 0) {
209
267
  setGlobalPredefinedStates(mergedStates);
@@ -230,8 +288,30 @@ export function configure(config = {}) {
230
288
  if (config.keyframes) {
231
289
  setGlobalKeyframes(config.keyframes);
232
290
  }
233
- // Create config without states, parser options, plugins, and keyframes (handled separately)
234
- const { states: _states, parserCacheSize: _parserCacheSize, units: _units, funcs: _funcs, plugins: _plugins, keyframes: _keyframes, ...injectorConfig } = config;
291
+ // Handle properties
292
+ if (config.properties) {
293
+ setGlobalProperties(config.properties);
294
+ }
295
+ // Handle custom handlers
296
+ if (Object.keys(mergedHandlers).length > 0) {
297
+ for (const [name, definition] of Object.entries(mergedHandlers)) {
298
+ const handler = normalizeHandlerDefinition(name, definition);
299
+ registerHandler(handler);
300
+ }
301
+ }
302
+ // Handle predefined tokens
303
+ // Note: Tokens are processed by the classifier, not here.
304
+ // We just store the raw values; the classifier will process them when encountered.
305
+ if (Object.keys(mergedTokens).length > 0) {
306
+ // Store tokens (keys are normalized to lowercase by setGlobalPredefinedTokens)
307
+ const processedTokens = {};
308
+ for (const [key, value] of Object.entries(mergedTokens)) {
309
+ processedTokens[key] = String(value);
310
+ }
311
+ setGlobalPredefinedTokens(processedTokens);
312
+ }
313
+ // Create config without states, parser options, plugins, keyframes, properties, handlers, and tokens (handled separately)
314
+ const { states: _states, parserCacheSize: _parserCacheSize, units: _units, funcs: _funcs, plugins: _plugins, keyframes: _keyframes, properties: _properties, handlers: _handlers, tokens: _tokens, ...injectorConfig } = config;
235
315
  const fullConfig = {
236
316
  ...createDefaultConfig(),
237
317
  ...currentConfig,
@@ -272,6 +352,10 @@ export function resetConfig() {
272
352
  stylesGenerated = false;
273
353
  currentConfig = null;
274
354
  globalKeyframes = null;
355
+ globalProperties = null;
356
+ resetGlobalPredefinedTokens();
357
+ resetHandlers();
358
+ clearPipelineCache();
275
359
  emittedWarnings.clear();
276
360
  const storage = typeof window !== 'undefined' ? window : globalThis;
277
361
  delete storage[GLOBAL_INJECTOR_KEY];
package/es/tasty/debug.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.101.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
@@ -490,8 +490,8 @@ export const tastyDebug = {
490
490
  CHUNK_NAMES.APPEARANCE,
491
491
  CHUNK_NAMES.FONT,
492
492
  CHUNK_NAMES.DIMENSION,
493
- CHUNK_NAMES.CONTAINER,
494
- CHUNK_NAMES.SCROLLBAR,
493
+ CHUNK_NAMES.DISPLAY,
494
+ CHUNK_NAMES.LAYOUT,
495
495
  CHUNK_NAMES.POSITION,
496
496
  CHUNK_NAMES.MISC,
497
497
  CHUNK_NAMES.SUBCOMPONENTS,
@@ -816,8 +816,8 @@ export const tastyDebug = {
816
816
  CHUNK_NAMES.APPEARANCE,
817
817
  CHUNK_NAMES.FONT,
818
818
  CHUNK_NAMES.DIMENSION,
819
- CHUNK_NAMES.CONTAINER,
820
- CHUNK_NAMES.SCROLLBAR,
819
+ CHUNK_NAMES.DISPLAY,
820
+ CHUNK_NAMES.LAYOUT,
821
821
  CHUNK_NAMES.POSITION,
822
822
  CHUNK_NAMES.MISC,
823
823
  CHUNK_NAMES.SUBCOMPONENTS,
@@ -1,12 +1,14 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.101.0
5
5
  * Released under the MIT license.
6
6
  */
7
7
 
8
8
  export { useStyles } from './useStyles.js';
9
9
  export { useGlobalStyles } from './useGlobalStyles.js';
10
10
  export { useRawCSS } from './useRawCSS.js';
11
+ export { useKeyframes } from './useKeyframes.js';
12
+ export { useProperty } from './useProperty.js';
11
13
 
12
14
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @license MIT
3
3
  * author: Cube Dev Team
4
- * @cube-dev/ui-kit v0.99.3
4
+ * @cube-dev/ui-kit v0.101.0
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.101.0
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.101.0
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.99.3
4
+ * @cube-dev/ui-kit v0.101.0
5
5
  * Released under the MIT license.
6
6
  */
7
7