@cube-dev/ui-kit 0.154.1 → 0.156.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 (565) hide show
  1. package/dist/CHANGELOG.md +99 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.js +1 -1
  13. package/dist/components/GlobalStyles.js +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.js +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.d.ts +10 -1
  24. package/dist/components/actions/CommandMenu/CommandMenu.js +4 -3
  25. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  28. package/dist/components/actions/ItemActionContext.js +1 -1
  29. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  30. package/dist/components/actions/Link/Link.js +1 -1
  31. package/dist/components/actions/Menu/Menu.js +1 -1
  32. package/dist/components/actions/Menu/MenuItem.js +1 -1
  33. package/dist/components/actions/Menu/MenuSection.js +1 -1
  34. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  36. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  37. package/dist/components/actions/Menu/context.js +1 -1
  38. package/dist/components/actions/Menu/styled.js +1 -1
  39. package/dist/components/actions/index.js +1 -1
  40. package/dist/components/actions/use-action.js +1 -1
  41. package/dist/components/actions/use-anchored-menu.js +1 -1
  42. package/dist/components/actions/use-context-menu.js +1 -1
  43. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  44. package/dist/components/content/Alert/Alert.js +1 -1
  45. package/dist/components/content/Alert/use-alert.js +1 -1
  46. package/dist/components/content/Avatar/Avatar.js +1 -1
  47. package/dist/components/content/Badge/Badge.js +1 -1
  48. package/dist/components/content/Card/Card.js +1 -1
  49. package/dist/components/content/Content.js +1 -1
  50. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  51. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  53. package/dist/components/content/Divider.js +1 -1
  54. package/dist/components/content/Footer.js +1 -1
  55. package/dist/components/content/Header.js +1 -1
  56. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  57. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  58. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  59. package/dist/components/content/Item/Item.d.ts +2 -1
  60. package/dist/components/content/Item/Item.js +1 -1
  61. package/dist/components/content/Item/Item.js.map +1 -1
  62. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  63. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  64. package/dist/components/content/Layout/GridLayout.js +1 -1
  65. package/dist/components/content/Layout/Layout.js +1 -1
  66. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  67. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  68. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  69. package/dist/components/content/Layout/LayoutContent.js +1 -1
  70. package/dist/components/content/Layout/LayoutContext.js +1 -1
  71. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  72. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  73. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  74. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  75. package/dist/components/content/Layout/LayoutPane.js +1 -1
  76. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  77. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  78. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  79. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  80. package/dist/components/content/Layout/index.js +1 -1
  81. package/dist/components/content/Layout/utils.js +1 -1
  82. package/dist/components/content/Paragraph.js +1 -1
  83. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  84. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  85. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  86. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  87. package/dist/components/content/Result/Result.js +1 -1
  88. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  89. package/dist/components/content/Tag/Tag.js +1 -1
  90. package/dist/components/content/Text.d.ts +21 -42
  91. package/dist/components/content/Text.js +4 -5
  92. package/dist/components/content/Text.js.map +1 -1
  93. package/dist/components/content/TextItem/TextItem.js +1 -1
  94. package/dist/components/content/Title.js +2 -3
  95. package/dist/components/content/Title.js.map +1 -1
  96. package/dist/components/content/Tree/Tree.js +1 -1
  97. package/dist/components/content/Tree/TreeNode.js +1 -1
  98. package/dist/components/content/Tree/styled.js +1 -1
  99. package/dist/components/content/Tree/tree-index.js +1 -1
  100. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  101. package/dist/components/content/Tree/use-load-data.js +1 -1
  102. package/dist/components/content/highlightText.js +1 -1
  103. package/dist/components/content/use-auto-tooltip.d.ts +0 -1
  104. package/dist/components/content/use-auto-tooltip.js +1 -1
  105. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  106. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  107. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  108. package/dist/components/fields/Checkbox/context.js +1 -1
  109. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +67 -0
  110. package/dist/components/fields/ColorPicker/ColorPicker.js +240 -0
  111. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -0
  112. package/dist/components/fields/ColorPicker/ColorPickerPanel.js +149 -0
  113. package/dist/components/fields/ColorPicker/ColorPickerPanel.js.map +1 -0
  114. package/dist/components/fields/ColorPicker/channels.d.ts +13 -0
  115. package/dist/components/fields/ColorPicker/channels.js +194 -0
  116. package/dist/components/fields/ColorPicker/channels.js.map +1 -0
  117. package/dist/components/fields/ColorPicker/color.d.ts +15 -0
  118. package/dist/components/fields/ColorPicker/color.js +282 -0
  119. package/dist/components/fields/ColorPicker/color.js.map +1 -0
  120. package/dist/components/fields/ColorPicker/index.d.ts +4 -0
  121. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  122. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  123. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  124. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  125. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  126. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  127. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  128. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  129. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  130. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  131. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  132. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  133. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  134. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  135. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  136. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  137. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  138. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  139. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  140. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  141. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  142. package/dist/components/fields/DatePicker/period.js +1 -1
  143. package/dist/components/fields/DatePicker/props.js +1 -1
  144. package/dist/components/fields/DatePicker/utils.js +1 -1
  145. package/dist/components/fields/FileInput/FileInput.d.ts +2 -1
  146. package/dist/components/fields/FileInput/FileInput.js +1 -1
  147. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  148. package/dist/components/fields/FilterListBox/FilterListBox.d.ts +3 -3
  149. package/dist/components/fields/FilterListBox/FilterListBox.js +7 -6
  150. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  151. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  152. package/dist/components/fields/Input/Input.js +1 -1
  153. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  154. package/dist/components/fields/ListBox/ListBox.js +1 -1
  155. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  156. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  157. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  158. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  159. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  160. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  161. package/dist/components/fields/Picker/Picker.js +1 -1
  162. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  163. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  164. package/dist/components/fields/RadioGroup/context.js +1 -1
  165. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  166. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  167. package/dist/components/fields/Select/Select.d.ts +2 -1
  168. package/dist/components/fields/Select/Select.js +1 -1
  169. package/dist/components/fields/Select/Select.js.map +1 -1
  170. package/dist/components/fields/Slider/Gradation.js +1 -1
  171. package/dist/components/fields/Slider/HueSlider.js +1 -1
  172. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  173. package/dist/components/fields/Slider/Slider.js +1 -1
  174. package/dist/components/fields/Slider/SliderBase.js +1 -1
  175. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  176. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  177. package/dist/components/fields/Slider/elements.js +1 -1
  178. package/dist/components/fields/Slider/index.js +1 -1
  179. package/dist/components/fields/Switch/Switch.js +1 -1
  180. package/dist/components/fields/TextArea/TextArea.js +1 -1
  181. package/dist/components/fields/TextInput/TextInput.js +1 -1
  182. package/dist/components/fields/TextInput/TextInputBase.d.ts +2 -1
  183. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  184. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  185. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  186. package/dist/components/fields/index.d.ts +4 -0
  187. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +2 -1
  188. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  189. package/dist/components/form/FieldWrapper/types.d.ts +2 -1
  190. package/dist/components/form/Form/Field.js +1 -1
  191. package/dist/components/form/Form/Form.js +1 -1
  192. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  193. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  194. package/dist/components/form/Form/SubmitError.js +1 -1
  195. package/dist/components/form/Form/index.js +1 -1
  196. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  197. package/dist/components/form/Form/use-field/use-field.js +1 -1
  198. package/dist/components/form/Form/use-form.js +1 -1
  199. package/dist/components/form/Form/validation.js +1 -1
  200. package/dist/components/form/Label.js +1 -1
  201. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  202. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  203. package/dist/components/form/validation/use-validation-props.js +1 -1
  204. package/dist/components/form/wrapper.js +1 -1
  205. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  206. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  207. package/dist/components/layout/Board/Board.d.ts +55 -1
  208. package/dist/components/layout/Board/Board.js +278 -75
  209. package/dist/components/layout/Board/Board.js.map +1 -1
  210. package/dist/components/layout/Board/BoardProvider.js +1 -1
  211. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  212. package/dist/components/layout/Board/Widget.d.ts +16 -0
  213. package/dist/components/layout/Board/Widget.js +6 -3
  214. package/dist/components/layout/Board/Widget.js.map +1 -1
  215. package/dist/components/layout/Board/WidgetHost.js +81 -14
  216. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  217. package/dist/components/layout/Board/board-context.js +1 -1
  218. package/dist/components/layout/Board/board-context.js.map +1 -1
  219. package/dist/components/layout/Board/board-store.js +2 -2
  220. package/dist/components/layout/Board/board-store.js.map +1 -1
  221. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  222. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  223. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  224. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  225. package/dist/components/layout/Board/grid-core/group-move.js +132 -0
  226. package/dist/components/layout/Board/grid-core/group-move.js.map +1 -0
  227. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  228. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  229. package/dist/components/layout/Board/index.d.ts +2 -1
  230. package/dist/components/layout/Board/index.js +2 -2
  231. package/dist/components/layout/Board/index.js.map +1 -1
  232. package/dist/components/layout/Board/responsive-utils.js +1 -1
  233. package/dist/components/layout/Board/use-board-layout.js +17 -12
  234. package/dist/components/layout/Board/use-board-layout.js.map +1 -1
  235. package/dist/components/layout/Board/use-board-registry.js +139 -20
  236. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  237. package/dist/components/layout/Board/use-board-select-modifier-key.js +24 -0
  238. package/dist/components/layout/Board/use-board-select-modifier-key.js.map +1 -0
  239. package/dist/components/layout/Board/use-board-selection.d.ts +8 -0
  240. package/dist/components/layout/Board/use-board-selection.js +113 -0
  241. package/dist/components/layout/Board/use-board-selection.js.map +1 -0
  242. package/dist/components/layout/Flex.js +1 -1
  243. package/dist/components/layout/Flow.js +1 -1
  244. package/dist/components/layout/Grid.js +1 -1
  245. package/dist/components/layout/Panel.js +1 -1
  246. package/dist/components/layout/Prefix.js +1 -1
  247. package/dist/components/layout/ResizablePanel.js +1 -1
  248. package/dist/components/layout/Space.js +1 -1
  249. package/dist/components/layout/Suffix.js +1 -1
  250. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  251. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  252. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  253. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  254. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  255. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  256. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  257. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  258. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  259. package/dist/components/navigation/Tabs/styled.js +1 -1
  260. package/dist/components/navigation/Tabs/types.js +1 -1
  261. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  262. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  263. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  264. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  265. package/dist/components/other/Calendar/Calendar.js +1 -1
  266. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  267. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  268. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  269. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  270. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  271. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  272. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  273. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  274. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  275. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  276. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  277. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  278. package/dist/components/overlays/Dialog/context.js +1 -1
  279. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  280. package/dist/components/overlays/Modal/Modal.js +1 -1
  281. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  282. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  283. package/dist/components/overlays/Modal/Overlay.js +1 -1
  284. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  285. package/dist/components/overlays/Modal/Popover.js +1 -1
  286. package/dist/components/overlays/Modal/Tray.js +1 -1
  287. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  288. package/dist/components/overlays/Modal/Underlay.js +1 -1
  289. package/dist/components/overlays/Notifications/Notification.js +1 -1
  290. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  291. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  292. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  293. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  294. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  295. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  296. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  297. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  298. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  299. package/dist/components/overlays/Notifications/index.js +1 -1
  300. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  301. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  302. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  303. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  304. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  305. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  306. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  307. package/dist/components/overlays/Toast/index.js +1 -1
  308. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  309. package/dist/components/overlays/Toast/useToast.js +1 -1
  310. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  311. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  312. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  313. package/dist/components/overlays/Tooltip/context.js +1 -1
  314. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  315. package/dist/components/portal/Portal.js +1 -1
  316. package/dist/components/portal/PortalProvider.js +1 -1
  317. package/dist/components/portal/usePortal.js +1 -1
  318. package/dist/components/shared/DraggableCollection.js +1 -1
  319. package/dist/components/shared/InvalidIcon.js +1 -1
  320. package/dist/components/shared/ValidIcon.js +1 -1
  321. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  322. package/dist/components/status/Spin/Cube.js +1 -1
  323. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  324. package/dist/components/status/Spin/Spin.js +1 -1
  325. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  326. package/dist/data/item-themes.js +1 -1
  327. package/dist/data/themes.js +1 -1
  328. package/dist/eslint-plugin/defaults.generated.js +9 -1
  329. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  330. package/dist/eslint-plugin/index.js +1 -1
  331. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  332. package/dist/i18n/I18nProvider.js +1 -1
  333. package/dist/i18n/createFormatter.js +1 -1
  334. package/dist/i18n/index.js +1 -1
  335. package/dist/i18n/instance.js +1 -1
  336. package/dist/i18n/locales/de-DE/uikit.js +9 -1
  337. package/dist/i18n/locales/en-US/uikit.js +9 -1
  338. package/dist/i18n/locales/en-US/uikit.json.d.ts +9 -1
  339. package/dist/i18n/locales/es-ES/uikit.js +9 -1
  340. package/dist/i18n/locales/es-MX/uikit.js +9 -1
  341. package/dist/i18n/locales/fr-FR/uikit.js +9 -1
  342. package/dist/i18n/locales/it-IT/uikit.js +9 -1
  343. package/dist/i18n/locales/ja-JP/uikit.js +9 -1
  344. package/dist/i18n/locales/nb-NO/uikit.js +9 -1
  345. package/dist/i18n/locales/pt-BR/uikit.js +9 -1
  346. package/dist/i18n/locales/pt-PT/uikit.js +9 -1
  347. package/dist/i18n/locales/sv-SE/uikit.js +9 -1
  348. package/dist/i18n/locales/vi-VN/uikit.js +9 -1
  349. package/dist/i18n/locales.js +1 -1
  350. package/dist/i18n/useFormatter.js +1 -1
  351. package/dist/i18n/useI18n.js +1 -1
  352. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  353. package/dist/icons/AdjustmentsIcon.js +1 -1
  354. package/dist/icons/AiIcon.js +1 -1
  355. package/dist/icons/AreaChartIcon.js +1 -1
  356. package/dist/icons/BackwardIcon.js +1 -1
  357. package/dist/icons/BarChartIcon.js +1 -1
  358. package/dist/icons/BellFilledIcon.js +1 -1
  359. package/dist/icons/BellIcon.js +1 -1
  360. package/dist/icons/BooleanIcon.js +1 -1
  361. package/dist/icons/CalendarEditIcon.js +1 -1
  362. package/dist/icons/CalendarIcon.js +1 -1
  363. package/dist/icons/CaretDownIcon.js +1 -1
  364. package/dist/icons/CaretUpIcon.js +1 -1
  365. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  366. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  367. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  368. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  369. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  370. package/dist/icons/ChartBarLineIcon.js +1 -1
  371. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  372. package/dist/icons/ChartBarStackedIcon.js +1 -1
  373. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  374. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  375. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  376. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  377. package/dist/icons/ChartBubbleIcon.js +1 -1
  378. package/dist/icons/ChartDonut2Icon.js +1 -1
  379. package/dist/icons/ChartFunnelIcon.js +1 -1
  380. package/dist/icons/ChartHeatmapIcon.js +1 -1
  381. package/dist/icons/ChartKPIIcon.js +1 -1
  382. package/dist/icons/ChartPie2Icon.js +1 -1
  383. package/dist/icons/ChartScatterIcon.js +1 -1
  384. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  385. package/dist/icons/CheckCircleIcon.js +1 -1
  386. package/dist/icons/CheckIcon.js +1 -1
  387. package/dist/icons/CircleFilledIcon.js +1 -1
  388. package/dist/icons/ClearIcon.js +1 -1
  389. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  390. package/dist/icons/CloseCircleIcon.js +1 -1
  391. package/dist/icons/CloseIcon.js +1 -1
  392. package/dist/icons/CodeIcon.js +1 -1
  393. package/dist/icons/ColumnTotalIcon.js +1 -1
  394. package/dist/icons/CopyIcon.js +1 -1
  395. package/dist/icons/CountIcon.js +1 -1
  396. package/dist/icons/CubeIcon.js +1 -1
  397. package/dist/icons/CubePauseIcon.js +1 -1
  398. package/dist/icons/CubePlayIcon.js +1 -1
  399. package/dist/icons/CurrencyDollarIcon.js +1 -1
  400. package/dist/icons/DangerIcon.js +1 -1
  401. package/dist/icons/DashboardIcon.js +1 -1
  402. package/dist/icons/DatabaseIcon.js +1 -1
  403. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  404. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  405. package/dist/icons/DirectionIcon.js +1 -1
  406. package/dist/icons/DonutIcon.js +1 -1
  407. package/dist/icons/DownIcon.js +1 -1
  408. package/dist/icons/EditIcon.js +1 -1
  409. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  410. package/dist/icons/ExclamationCircleIcon.js +1 -1
  411. package/dist/icons/ExclamationIcon.js +1 -1
  412. package/dist/icons/EyeIcon.js +1 -1
  413. package/dist/icons/EyeInvisibleIcon.js +1 -1
  414. package/dist/icons/FilterIcon.js +1 -1
  415. package/dist/icons/FolderFilledIcon.js +1 -1
  416. package/dist/icons/FolderIcon.js +1 -1
  417. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  418. package/dist/icons/FolderOpenIcon.js +1 -1
  419. package/dist/icons/ForwardIcon.js +1 -1
  420. package/dist/icons/GripVerticalIcon.js +1 -1
  421. package/dist/icons/HierarchyIcon.js +1 -1
  422. package/dist/icons/HierarchyOpenIcon.js +1 -1
  423. package/dist/icons/Icon.js +1 -1
  424. package/dist/icons/InfoCircleIcon.js +1 -1
  425. package/dist/icons/InfoIcon.js +1 -1
  426. package/dist/icons/KeyIcon.js +1 -1
  427. package/dist/icons/LeftIcon.js +1 -1
  428. package/dist/icons/LineChartIcon.js +1 -1
  429. package/dist/icons/LoadingIcon.js +1 -1
  430. package/dist/icons/LockFilledIcon.js +1 -1
  431. package/dist/icons/LockIcon.js +1 -1
  432. package/dist/icons/MoreIcon.js +1 -1
  433. package/dist/icons/NotAllowedIcon.js +1 -1
  434. package/dist/icons/Number123Icon.js +1 -1
  435. package/dist/icons/NumberIcon.js +1 -1
  436. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  437. package/dist/icons/PauseCircleIcon.js +1 -1
  438. package/dist/icons/PauseIcon.js +1 -1
  439. package/dist/icons/PercentageIcon.js +1 -1
  440. package/dist/icons/PieChartIcon.js +1 -1
  441. package/dist/icons/PipetteIcon.d.ts +12 -0
  442. package/dist/icons/PipetteIcon.js +11 -0
  443. package/dist/icons/PipetteIcon.js.map +1 -0
  444. package/dist/icons/PlayCircleIcon.js +1 -1
  445. package/dist/icons/PlayIcon.js +1 -1
  446. package/dist/icons/PlusIcon.js +1 -1
  447. package/dist/icons/ProgressBarIcon.js +1 -1
  448. package/dist/icons/ReloadIcon.js +1 -1
  449. package/dist/icons/ReportIcon.js +1 -1
  450. package/dist/icons/ReturnIcon.js +1 -1
  451. package/dist/icons/RightIcon.js +1 -1
  452. package/dist/icons/RowTotalsIcon.js +1 -1
  453. package/dist/icons/SchemeIcon.js +1 -1
  454. package/dist/icons/SearchIcon.js +1 -1
  455. package/dist/icons/SemanticQueryIcon.js +1 -1
  456. package/dist/icons/SettingsIcon.js +1 -1
  457. package/dist/icons/ShieldFilledIcon.js +1 -1
  458. package/dist/icons/ShieldIcon.js +1 -1
  459. package/dist/icons/SlashIcon.js +1 -1
  460. package/dist/icons/SparklesIcon.js +1 -1
  461. package/dist/icons/SqlIcon.js +1 -1
  462. package/dist/icons/StatsIcon.js +1 -1
  463. package/dist/icons/StopIcon.js +1 -1
  464. package/dist/icons/StringIcon.js +1 -1
  465. package/dist/icons/SubtotalsIcon.js +1 -1
  466. package/dist/icons/SwitchIcon.js +1 -1
  467. package/dist/icons/TableIcon.js +1 -1
  468. package/dist/icons/ThumbsDownIcon.js +1 -1
  469. package/dist/icons/ThumbsUpIcon.js +1 -1
  470. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  471. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  472. package/dist/icons/ThunderboltIcon.js +1 -1
  473. package/dist/icons/TimeIcon.js +1 -1
  474. package/dist/icons/TrashIcon.js +1 -1
  475. package/dist/icons/UnlockIcon.js +1 -1
  476. package/dist/icons/UpIcon.js +1 -1
  477. package/dist/icons/UserGroupIcon.js +1 -1
  478. package/dist/icons/UserIcon.js +1 -1
  479. package/dist/icons/UserLockIcon.js +1 -1
  480. package/dist/icons/ViewIcon.js +1 -1
  481. package/dist/icons/WarningFilledIcon.js +1 -1
  482. package/dist/icons/WarningIcon.js +1 -1
  483. package/dist/icons/index.d.ts +1 -0
  484. package/dist/icons/wrap-icon.js +1 -1
  485. package/dist/index.d.ts +9 -3
  486. package/dist/index.js +13 -8
  487. package/dist/index.js.map +1 -1
  488. package/dist/props.d.ts +13 -0
  489. package/dist/provider.d.ts +1 -1
  490. package/dist/provider.js +1 -1
  491. package/dist/provider.js.map +1 -1
  492. package/dist/providers/TrackingProvider.js +1 -1
  493. package/dist/providers/navigationAdapter.default.js +1 -1
  494. package/dist/shared/form.d.ts +2 -1
  495. package/dist/tokens/base.js +1 -1
  496. package/dist/tokens/colors.js +1 -1
  497. package/dist/tokens/index.js +1 -1
  498. package/dist/tokens/layout.js +1 -1
  499. package/dist/tokens/lazy-styles.js +1 -1
  500. package/dist/tokens/palette-config.js +1 -1
  501. package/dist/tokens/palette.js +1 -1
  502. package/dist/tokens/shadows.js +1 -1
  503. package/dist/tokens/sizes.js +1 -1
  504. package/dist/tokens/spacing.js +1 -1
  505. package/dist/tokens/typography.js +1 -1
  506. package/dist/utils/ResizeSensor.js +1 -1
  507. package/dist/utils/is-dev-env.js +1 -1
  508. package/dist/utils/modules.js +1 -1
  509. package/dist/utils/promise.js +1 -1
  510. package/dist/utils/raf.js +1 -1
  511. package/dist/utils/random.js +1 -1
  512. package/dist/utils/range.js +1 -1
  513. package/dist/utils/react/RenderCache.js +1 -1
  514. package/dist/utils/react/Slots.js +1 -1
  515. package/dist/utils/react/chain.js +1 -1
  516. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  517. package/dist/utils/react/index.js +1 -1
  518. package/dist/utils/react/interactions.js +1 -1
  519. package/dist/utils/react/isTextOnly.js +1 -1
  520. package/dist/utils/react/mapProps.js +1 -1
  521. package/dist/utils/react/mergeProps.d.ts +1 -1
  522. package/dist/utils/react/mergeProps.js +1 -1
  523. package/dist/utils/react/mergeProps.js.map +1 -1
  524. package/dist/utils/react/nullableValue.d.ts +1 -1
  525. package/dist/utils/react/nullableValue.js +1 -1
  526. package/dist/utils/react/nullableValue.js.map +1 -1
  527. package/dist/utils/react/resolveIcon.js +1 -1
  528. package/dist/utils/react/sharedStore.js +1 -1
  529. package/dist/utils/react/useCombinedRefs.js +1 -1
  530. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  531. package/dist/utils/react/useEventBus.js +1 -1
  532. package/dist/utils/react/useId.js +1 -1
  533. package/dist/utils/react/useIsDarwin.js +1 -1
  534. package/dist/utils/react/useKeySymbols.js +1 -1
  535. package/dist/utils/react/useLayoutEffect.js +1 -1
  536. package/dist/utils/react/useLocalStorage.js +1 -1
  537. package/dist/utils/react/useMergeStyles.js +1 -1
  538. package/dist/utils/react/usePopoverSync.js +1 -1
  539. package/dist/utils/react/useQaProps.js +1 -1
  540. package/dist/utils/react/useViewportSize.js +1 -1
  541. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  542. package/dist/utils/selection.js +1 -1
  543. package/dist/utils/styles.js +1 -1
  544. package/dist/utils/tree.js +1 -1
  545. package/dist/utils/warnings.js +1 -1
  546. package/dist/version.js +3 -3
  547. package/docs/components/content/Text.md +1 -2
  548. package/docs/components/fields/ColorPicker.md +271 -0
  549. package/docs/components/layout/Board.md +154 -6
  550. package/docs/tasty/README.md +3 -1
  551. package/docs/tasty/ai-agents.md +21 -7
  552. package/docs/tasty/configuration.md +220 -30
  553. package/docs/tasty/debug.md +7 -7
  554. package/docs/tasty/design-system.md +2 -2
  555. package/docs/tasty/dsl.md +68 -8
  556. package/docs/tasty/injector.md +31 -4
  557. package/docs/tasty/methodology.md +1 -1
  558. package/docs/tasty/migration-v3.md +285 -0
  559. package/docs/tasty/pipeline.md +3 -3
  560. package/docs/tasty/plugins.md +349 -0
  561. package/docs/tasty/react-api.md +61 -1
  562. package/docs/tasty/ssr.md +41 -33
  563. package/docs/tasty/styles.md +27 -9
  564. package/docs/tasty/tasty-static.md +8 -6
  565. package/package.json +3 -3
@@ -1,6 +1,6 @@
1
1
  # React API
2
2
 
3
- The React-specific `tasty()` component factory, component props, and style functions. All Tasty style functions — `tasty()` components, `useStyles()`, `useGlobalStyles()`, `useRawCSS()`, `useKeyframes()`, `useProperty()`, `useFontFace()`, and `useCounterStyle()` — are hook-free and compatible with React Server Components. No `'use client'` directive needed. For the shared style language (state maps, tokens, units, extending semantics), see [Style DSL](dsl.md). For global configuration, see [Configuration](configuration.md). For the broader docs map, see the [Docs Hub](README.md).
3
+ The React-specific `tasty()` component factory, component props, and style functions. All Tasty style functions — `tasty()` components, `useStyles()`, `useGlobalStyles()`, `useRawCSS()`, `useKeyframes()`, `useProperty()`, `useFontFace()`, `useCounterStyle()`, and `useFunction()` — are hook-free and compatible with React Server Components. No `'use client'` directive needed. For the shared style language (state maps, tokens, units, extending semantics), see [Style DSL](dsl.md). For global configuration, see [Configuration](configuration.md). For the broader docs map, see the [Docs Hub](README.md).
4
4
 
5
5
  > **Note:** This file was previously named `runtime.md`. All functionality documented here works in both server and client contexts — "runtime" referred to style computation during React rendering, not to client-side JavaScript.
6
6
 
@@ -98,6 +98,26 @@ Style props accept state maps, so responsive values work through the same API:
98
98
 
99
99
  For predefined style prop lists (`FLOW_STYLES`, `POSITION_STYLES`, `DIMENSION_STYLES`, etc.) and guidance on which props to expose per component category, see [Methodology — styleProps as the public API](methodology.md#styleprops-as-the-public-api).
100
100
 
101
+ ### Always-available style props
102
+
103
+ A small set of style properties — `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, and `transition` — are always harvested as style props on every `tasty()` component, even when `styleProps` is omitted. This means you can pass `<Card display="grid" />` or `<Text preset="h1" />` without declaring them. When you do declare `styleProps`, these base props are unioned with your list (not replaced).
104
+
105
+ ---
106
+
107
+ ## `Element`
108
+
109
+ `Element` is the unstyled base component exported from the main entry — equivalent to `tasty({})` (a `div` with no default styles). It accepts all Tasty props (`styles`, `styleProps`, `mods`, `tokens`, `as`, `qa`, `theme`, the `is*` props, etc.) and is useful as a generic styled box or as a building block for layout primitives.
110
+
111
+ ```jsx
112
+ import { Element } from '@tenphi/tasty';
113
+
114
+ <Element as="section" padding="4x" fill="#surface">
115
+ Content
116
+ </Element>
117
+ ```
118
+
119
+ > Note: `Element` shadows the global DOM `Element` type when imported from `@tenphi/tasty`. In files that need the DOM type, alias the import: `import { Element as TastyElement } from '@tenphi/tasty'`.
120
+
101
121
  ---
102
122
 
103
123
  ## Mod Props
@@ -579,6 +599,46 @@ function useCounterStyle(
579
599
  ): string;
580
600
  ```
581
601
 
602
+ ### useFunction
603
+
604
+ Register a CSS `@function` (custom function). Permanent — no cleanup on unmount. Deduplicates by function name. The function name accepts `$$name` (matching the call site `$$name(...)`), `$name`, or `--name`.
605
+
606
+ ```tsx
607
+ import { tasty, useFunction } from '@tenphi/tasty';
608
+
609
+ const Box = tasty({ styles: { marginTop: '$$negative(10px)' } });
610
+
611
+ function Layout() {
612
+ useFunction('$$negative', { args: ['$value'], result: '(-1 * $value)' });
613
+ return <Box />;
614
+ }
615
+ ```
616
+
617
+ Call the function through the Tasty DSL rather than a raw `style` prop. An inline `style` value reaches the browser unparsed, so the `$$name(...)` sugar is never expanded — and under `configure({ polyfills: { functions: true } })` it silently does nothing, because the polyfill rewrites calls at parse time.
618
+
619
+ Inside a `tasty()` component you call functions with the same `$$name(...)` sugar:
620
+
621
+ ```tsx
622
+ const Box = tasty({
623
+ styles: {
624
+ '@function': { '$$negative': { args: ['$value'], result: '(-1 * $value)' } },
625
+ marginTop: '$$negative(10px)',
626
+ },
627
+ });
628
+ ```
629
+
630
+ Signature:
631
+
632
+ ```ts
633
+ function useFunction(
634
+ name: string,
635
+ definition: FunctionDefinition,
636
+ options?: { root?: Document | ShadowRoot },
637
+ ): void;
638
+ ```
639
+
640
+ See the [Functions section of the DSL reference](dsl.md#functions-function) for the full descriptor shape, token conventions, and value-sugar support. `@function` is an experimental CSS feature — unsupported browsers safely ignore the native rule, or enable the [`polyfills.functions`](configuration.md#polyfills) inline polyfill for full cross-browser support.
641
+
582
642
  ### Troubleshooting
583
643
 
584
644
  - Styles are not updating: make sure `configure()` runs before first render, and verify the generated class name or global rule with [Debug Utilities](debug.md).
package/docs/tasty/ssr.md CHANGED
@@ -18,18 +18,18 @@ The Astro integration (`@tenphi/tasty/ssr/astro`) has no additional dependencies
18
18
 
19
19
  ## How It Works
20
20
 
21
- `tasty()` components are hook-free and use `computeStyles()` internally — a synchronous, framework-agnostic function. On the server, `computeStyles()` discovers a `ServerStyleCollector` via a registered getter (module-level for Next.js, `globalThis` for Astro/generic frameworks using `AsyncLocalStorage`) and collects CSS into it instead of trying to access the DOM. On the client, CSS is injected synchronously into the DOM during render; the injector's content-based cache makes this idempotent. The collector accumulates all styles, serializes them as `<style>` tags and a cache state script in the HTML. On the client, `hydrateTastyCache()` pre-populates the injector cache so that `computeStyles()` skips the rendering pipeline entirely during hydration.
21
+ `tasty()` components are hook-free and use `computeStyles()` internally — a synchronous, framework-agnostic function. On the server, `computeStyles()` discovers a `ServerStyleCollector` via a registered getter (module-level for Next.js, `globalThis` for Astro/generic frameworks using `AsyncLocalStorage`) and collects CSS into it instead of trying to access the DOM. On the client, CSS is injected synchronously into the DOM during render; the injector's content-based cache makes this idempotent. The collector accumulates all styles and serializes them as `<style>` tags plus a class-list script in the HTML. On the client, `hydrateTastyClasses()` pre-populates the injector's rules map with the rendered class names so that `computeStyles()` skips the rendering pipeline entirely during hydration.
22
22
 
23
23
  ```
24
24
  Server Client
25
25
  ────── ──────
26
- tasty() renders hydrateTastyCache() pre-populates cache
27
- └─ computeStyles() └─ cacheKey className map ready
26
+ tasty() renders hydrateTastyClasses() reads window.__TASTY__
27
+ └─ computeStyles() └─ marks rendered class names as already-in-DOM
28
28
  └─ collector.collect()
29
29
  tasty() renders
30
30
  After render: └─ computeStyles()
31
- <style data-tasty-ssr> └─ cache hit → skip pipeline
32
- <script data-tasty-cache> └─ no CSS re-injection
31
+ <style data-tasty-ssr> └─ class name known → skip pipeline
32
+ <script> (pushes to __TASTY__) └─ no CSS re-injection
33
33
  ```
34
34
 
35
35
  ---
@@ -85,8 +85,8 @@ That's it. All `tasty()` components inside the tree automatically get SSR suppor
85
85
  - `TastyRegistry` is a `'use client'` component, but Next.js still server-renders it on initial page load. The `'use client'` boundary is required solely to access `useServerInsertedHTML` — **not** because `tasty()` components need the client.
86
86
  - During SSR, `TastyRegistry` creates a `ServerStyleCollector` and registers it via a module-level getter (not `globalThis` — this avoids leaking between Next.js's separate RSC and SSR module graphs). It also wraps children in a React context provider so that hooks inside the SSR tree can discover the collector. All style functions — `tasty()` components, `computeStyles()`, `useStyles()`, `useGlobalStyles()`, `useRawCSS()`, `useKeyframes()`, `useProperty()`, `useFontFace()`, and `useCounterStyle()` — discover the collector through the module-level getter or context provider.
87
87
  - `TastyRegistry` uses `useServerInsertedHTML` to flush collected CSS into the HTML stream as `<style data-tasty-ssr>` tags. This is fully streaming-compatible — styles are injected alongside each Suspense boundary as it resolves.
88
- - A companion inline `<script>` tag merges the `cacheKey className` mapping into `window.__TASTY_SSR_CACHE__` for each flush. This streaming-friendly approach accumulates cache entries incrementally as Suspense boundaries resolve.
89
- - When the `@tenphi/tasty/ssr/next` module loads on the client, `hydrateTastyCache()` runs automatically from `window.__TASTY_SSR_CACHE__` and pre-populates the injector cache. During hydration, `computeStyles()` hits the cache and skips the entire pipeline.
88
+ - A companion inline `<script>` tag pushes the rendered class names into `window.__TASTY__` for each flush. This streaming-friendly approach accumulates the class list incrementally as Suspense boundaries resolve.
89
+ - When the `@tenphi/tasty/ssr/next` module loads on the client, `hydrateTastyClasses()` runs automatically from `window.__TASTY__` and pre-populates the injector's rules map. During hydration, `computeStyles()` sees the class name is already registered and skips the entire pipeline.
90
90
 
91
91
  ### Using Tasty in Server Components
92
92
 
@@ -188,7 +188,7 @@ This gives you:
188
188
 
189
189
  - A `ServerStyleCollector` per request via `AsyncLocalStorage`, deduplicating CSS across all React trees on the page
190
190
  - A single consolidated `<style data-tasty-ssr>` injected into `</head>`
191
- - A `<script data-tasty-cache>` tag with the `cacheKey -> className` map for client hydration
191
+ - A `<script>` tag pushing the rendered class names into `window.__TASTY__` for client hydration
192
192
  - Auto-injected client hydration script (via `injectScript('before-hydration')`) so islands skip the style pipeline during hydration -- no need to import anything manually in each island component
193
193
 
194
194
  All style functions (`useGlobalStyles`, `useRawCSS`, `useKeyframes`, `useProperty`, `useFontFace`, `useCounterStyle`) work on the server.
@@ -223,7 +223,7 @@ export default defineConfig({
223
223
  });
224
224
  ```
225
225
 
226
- This gives the same middleware deduplication and hook support, but ships zero client-side JavaScript. No `<script data-tasty-cache>` is emitted.
226
+ This gives the same middleware deduplication and hook support, but ships zero client-side JavaScript. No class-list `<script>` is emitted.
227
227
 
228
228
  ### Manual middleware (advanced)
229
229
 
@@ -258,7 +258,7 @@ export const onRequest = tastyMiddleware({ transferCache: false });
258
258
  Astro's `@astrojs/react` renderer calls `renderToString()` for each React component without wrapping the tree in a provider. The middleware creates a `ServerStyleCollector` and binds it via `AsyncLocalStorage`. All `computeStyles()` calls within the request discover this collector automatically.
259
259
 
260
260
  - **Static components** (no `client:*`): Styles are collected during `renderToString` and injected into `</head>` as a single `<style>` tag. No JavaScript is shipped.
261
- - **Islands** (`client:load`, `client:visible`, etc.): Styles are collected during SSR the same way. On the client, the hydration script (auto-injected by `tastyIntegration()` or manually via `@tenphi/tasty/ssr/astro-client`) reads the cache state from `<script data-tasty-cache>` and pre-populates the injector. The island's `computeStyles()` calls hit the cache during hydration.
261
+ - **Islands** (`client:load`, `client:visible`, etc.): Styles are collected during SSR the same way. On the client, the hydration script (auto-injected by `tastyIntegration()` or manually via `@tenphi/tasty/ssr/astro-client`) reads the class list from `window.__TASTY__` and pre-populates the injector's rules map. The island's `computeStyles()` calls see the class names as already registered and skip the pipeline during hydration.
262
262
  - The middleware reads the full response body, then injects the collected CSS into `</head>` before sending the final HTML.
263
263
 
264
264
  ### CSP nonce
@@ -274,31 +274,30 @@ Any React-based framework can integrate using `runWithCollector`, which binds a
274
274
  ```tsx
275
275
  import {
276
276
  ServerStyleCollector,
277
+ createServerStyleCollector,
277
278
  runWithCollector,
278
- hydrateTastyCache,
279
+ hydrateTastyClasses,
279
280
  } from '@tenphi/tasty/ssr';
280
281
  import { renderToString } from 'react-dom/server';
281
282
  import { hydrateRoot } from 'react-dom/client';
282
283
 
283
284
  // ── Server ──────────────────────────────────────────────
284
285
 
285
- const collector = new ServerStyleCollector();
286
+ const collector = createServerStyleCollector();
286
287
 
287
288
  const html = await runWithCollector(collector, () =>
288
289
  renderToString(<App />)
289
290
  );
290
291
 
291
292
  const css = collector.getCSS();
292
- const cacheState = collector.getCacheState();
293
+ const classNames = collector.getRenderedClassNames();
293
294
 
294
295
  // Embed in your HTML template:
295
296
  const fullHtml = `
296
297
  <html>
297
298
  <head>
298
299
  <style data-tasty-ssr>${css}</style>
299
- <script data-tasty-cache type="application/json">
300
- ${JSON.stringify(cacheState)}
301
- </script>
300
+ <script>(window.__TASTY__=window.__TASTY__||[]).push(${JSON.stringify(classNames)})</script>
302
301
  </head>
303
302
  <body>
304
303
  <div id="root">${html}</div>
@@ -309,7 +308,7 @@ const fullHtml = `
309
308
  // ── Client ──────────────────────────────────────────────
310
309
 
311
310
  // Before hydration:
312
- hydrateTastyCache(); // reads from <script data-tasty-cache>
311
+ hydrateTastyClasses(); // reads from window.__TASTY__
313
312
 
314
313
  hydrateRoot(document.getElementById('root'), <App />);
315
314
  ```
@@ -319,7 +318,7 @@ hydrateRoot(document.getElementById('root'), <App />);
319
318
  For streaming with `renderToPipeableStream`, use `flushCSS()` instead of `getCSS()`:
320
319
 
321
320
  ```tsx
322
- const collector = new ServerStyleCollector();
321
+ const collector = createServerStyleCollector();
323
322
 
324
323
  const stream = await runWithCollector(collector, () =>
325
324
  renderToPipeableStream(<App />, {
@@ -330,12 +329,14 @@ const stream = await runWithCollector(collector, () =>
330
329
  stream.pipe(res);
331
330
  },
332
331
  onAllReady() {
333
- // Flush any remaining styles + cache state
332
+ // Flush any remaining styles + class list
334
333
  const css = collector.flushCSS();
335
334
  if (css) res.write(`<style data-tasty-ssr>${css}</style>`);
336
335
 
337
- const state = collector.getCacheState();
338
- res.write(`<script data-tasty-cache type="application/json">${JSON.stringify(state)}</script>`);
336
+ const classNames = collector.getRenderedClassNames();
337
+ res.write(
338
+ `<script>(window.__TASTY__=window.__TASTY__||[]).push(${JSON.stringify(classNames)})</script>`,
339
+ );
339
340
  },
340
341
  })
341
342
  );
@@ -349,16 +350,17 @@ const stream = await runWithCollector(collector, () =>
349
350
 
350
351
  | Import path | Description |
351
352
  |---|---|
352
- | `@tenphi/tasty/ssr` | Core SSR API: `ServerStyleCollector`, `runWithCollector`, `hydrateTastyCache` |
353
+ | `@tenphi/tasty/ssr` | Core SSR API: `ServerStyleCollector`, `createServerStyleCollector`, `runWithCollector`, `hydrateTastyClasses` |
353
354
  | `@tenphi/tasty/ssr/next` | Next.js App Router: `TastyRegistry` component |
354
355
  | `@tenphi/tasty/ssr/astro` | Astro: `tastyIntegration`, `tastyMiddleware` |
355
356
  | `@tenphi/tasty/ssr/astro-client` | Astro: client-side cache hydration (auto-injected by integration, or import manually) |
357
+ | `@tenphi/tasty/ssr/astro-middleware`<br>`@tenphi/tasty/ssr/astro-middleware-static` | Astro: the middleware entrypoints `tastyIntegration()` registers via `addMiddleware()`. Exported so Astro can resolve them by specifier; you should not import them. For manual setups use `tastyMiddleware()`. |
356
358
 
357
359
  ### `ServerStyleCollector`
358
360
 
359
361
  Server-safe style collector. One instance per request.
360
362
 
361
- Constructor: `new ServerStyleCollector(namePrefix?)`. The optional `namePrefix` overrides the value from `configure({ namePrefix })`; in normal usage you pass nothing and let the global config drive it. See [Configuration: Name prefix](configuration.md#name-prefix).
363
+ Constructor: `new ServerStyleCollector(namePrefix?)`, or use the `createServerStyleCollector(namePrefix?)` factory. The optional `namePrefix` overrides the value from `configure({ namePrefix })`; in normal usage you pass nothing and let the global config drive it. See [Configuration: Name prefix](configuration.md#name-prefix).
362
364
 
363
365
  | Method | Description |
364
366
  |---|---|
@@ -375,7 +377,7 @@ Constructor: `new ServerStyleCollector(namePrefix?)`. The optional `namePrefix`
375
377
  | `collectInternals()` | Collect internal `@property` rules, `:root` token defaults, `@font-face`, and `@counter-style` rules from the global config. Called automatically on first chunk collection; idempotent. |
376
378
  | `getCSS()` | Get all collected CSS as a single string. For non-streaming SSR. |
377
379
  | `flushCSS()` | Get only CSS collected since the last flush. For streaming SSR. |
378
- | `getCacheState()` | Serialize `{ entries: Record<cacheKey, className>, classCounter }` for client hydration. |
380
+ | `getRenderedClassNames()` | Get the list of class names rendered so far. Serialized to `window.__TASTY__` for client hydration via `hydrateTastyClasses()`. |
379
381
 
380
382
  ### `TastyRegistry`
381
383
 
@@ -402,9 +404,9 @@ Astro middleware factory. Use for manual middleware composition.
402
404
  |---|---|---|---|
403
405
  | `transferCache` | `boolean` | `true` | Embed cache state script for island hydration |
404
406
 
405
- ### `hydrateTastyCache(state?)`
407
+ ### `hydrateTastyClasses(classes?)`
406
408
 
407
- Pre-populate the client injector cache. When called without arguments, reads from `window.__TASTY_SSR_CACHE__` (streaming) or `<script data-tasty-cache>` (non-streaming).
409
+ Pre-populate the client injector's rules map with class names rendered on the server, marking them as already present in the DOM so `computeStyles()` skips re-injection during hydration. When called without arguments, reads the class list from `window.__TASTY__` (populated by the streaming `<script>` tags emitted during SSR).
408
410
 
409
411
  ### `runWithCollector(collector, fn)`
410
412
 
@@ -420,23 +422,29 @@ The `TastyRegistry` or `tastyIntegration` is missing. Ensure your layout wraps t
420
422
 
421
423
  ### Hydration mismatch warnings
422
424
 
423
- Class names are deterministic for the same render order. If you see mismatches, ensure `hydrateTastyCache()` runs before React hydration. For Next.js, this is automatic. For Astro with `tastyIntegration()`, this is also automatic. For manual Astro middleware setups, import `@tenphi/tasty/ssr/astro-client` in your island components. For custom setups, call `hydrateTastyCache()` before `hydrateRoot()`.
425
+ Class names are deterministic for the same render order. If you see mismatches, ensure `hydrateTastyClasses()` runs before React hydration. For Next.js, this is automatic. For Astro with `tastyIntegration()`, this is also automatic. For manual Astro middleware setups, import `@tenphi/tasty/ssr/astro-client` in your island components. For custom setups, call `hydrateTastyClasses()` before `hydrateRoot()`.
426
+
427
+ Class names are also derived from the *resolved* styles, so the server and the client must configure Tasty identically. Anything that changes what a component's styles resolve to will produce a mismatch if it is registered on only one side — `namePrefix`, `recipes`, `handlers`, and the `propHandlers` / `baseStyleProps` extension points described in [Plugins](plugins.md). Call the same `configure()` on both; global CSS is deduplicated automatically, so no `typeof window` guard is needed.
424
428
 
425
429
  ### Styles duplicated after hydration
426
430
 
427
431
  **Global CSS** (`:root` tokens, `@property`, `globalStyles`, `@font-face`, `@counter-style`) configured via `configure()` is automatically deduplicated. When Tasty detects `<style data-tasty-ssr>` in the document, it skips client-side injection of globals that were already rendered by the SSR collector. This means `configure()` can be called with the full config on both server and client — no `typeof window === 'undefined'` guard is needed.
428
432
 
429
- **Component CSS**: SSR `<style data-tasty-ssr>` tags remain in the DOM. The client injector creates separate `<style>` elements for any new styles. SSR styles are never modified or removed by the client. If this is a concern for very large apps, call `cleanupSSRStyles()` after hydration:
433
+ **Component CSS**: SSR `<style data-tasty-ssr>` tags remain in the DOM. The client injector creates separate `<style>` elements for any new styles. SSR styles are never modified or removed by the client. If this is a concern for very large apps, you can remove the SSR style tags and hydration scripts manually after hydration:
430
434
 
431
435
  ```tsx
432
- import { hydrateTastyCache } from '@tenphi/tasty/ssr';
436
+ import { hydrateTastyClasses } from '@tenphi/tasty/ssr';
433
437
 
434
- hydrateTastyCache();
438
+ hydrateTastyClasses();
435
439
  hydrateRoot(root, <App />);
436
440
 
437
- // Optional: remove SSR style tags after hydration
438
- document.querySelectorAll('style[data-tasty-ssr]').forEach(el => el.remove());
439
- document.querySelectorAll('script[data-tasty-cache]').forEach(el => el.remove());
441
+ // Optional: remove SSR style tags and class-list scripts after hydration
442
+ document.querySelectorAll('style[data-tasty-ssr]').forEach((el) => el.remove());
443
+ document
444
+ .querySelectorAll('script')
445
+ .forEach((el) => {
446
+ if (el.textContent?.includes('__TASTY__')) el.remove();
447
+ });
440
448
  ```
441
449
 
442
450
  ### `AsyncLocalStorage` not available
@@ -1,6 +1,6 @@
1
1
  # Style Properties Reference
2
2
 
3
- All standard CSS properties are supported in Tasty and benefit from its syntax sugar: design tokens (`$name`, `#name`), custom units (`2x`, `1r`, `1bw`), color opacity (`#purple.5`), auto-calc (`(100% - 2x)`), and custom functions. Values are parsed through the Tasty engine automatically.
3
+ All standard CSS properties are supported in Tasty and benefit from its syntax sugar: design tokens (`$name`, `#name`), custom units (`2x`, `1r`, `1bw`), color opacity (`#purple.5`), auto-calc (`(100% - 2x)`), and [custom functions](dsl.md#functions-function) (`$$negative(10px)`). Values are parsed through the Tasty engine automatically.
4
4
 
5
5
  The properties documented below have **custom handlers** with enhanced syntax. They should be **preferred** over their raw CSS equivalents because they:
6
6
 
@@ -100,18 +100,23 @@ For flex/grid layouts, outputs native `gap`. For block layouts, emulates gap usi
100
100
 
101
101
  Element padding with directional modifiers and multi-group support. Use **comma-separated groups** to set a base value and then override specific directions.
102
102
 
103
- **Syntax:** `[value]` | `[top right]` | `[top right bottom left]` | `[value directions...]` — comma-separated for multiple groups
103
+ **Syntax:** `[value]` | `[block inline]` | `[top right bottom left]` | `[value direction...]` — comma-separated for multiple groups
104
104
 
105
105
  **Direction modifiers:** `top`, `right`, `bottom`, `left`
106
106
 
107
107
  **Output modifier:** `longhand` — forces output as individual CSS longhand properties (`padding-top`, `padding-right`, `padding-bottom`, `padding-left`) instead of the `padding` shorthand. Useful when children need to selectively inherit individual directions.
108
108
 
109
+ **One value per directional group.** A group that names direction modifiers takes **exactly one** value, applied to every direction it names. For different values per side, use comma-separated groups: `padding: '2x top, 4x right'`. Writing `padding: '2x 4x top right'` ignores `4x` and warns in development — the parser keeps values and modifiers in separate buckets, so their interleaving in the source is not recoverable and `'2x 4x top right'`, `'2x top 4x right'` and `'top 2x right 4x'` are all the same input.
110
+
111
+ A group that names *no* direction keeps plain CSS shorthand order, which is unambiguous and unchanged.
112
+
109
113
  | Value | Effect |
110
114
  |-------|--------|
111
115
  | `"2x"` | All sides `2x` |
112
116
  | `"2x 1x"` | Top/bottom `2x`, left/right `1x` |
113
117
  | `"2x top"` | Top `2x`, right/bottom/left `0` |
114
118
  | `"1x left right"` | Left and right `1x`, top/bottom `0` |
119
+ | `"2x top, 4x right"` | Top `2x`, right `4x`, bottom/left `0` |
115
120
  | `"1x, 2x top"` | All sides `1x`, then top overridden to `2x` |
116
121
  | `"1x, 2x top bottom"` | Left/right `1x`, top/bottom `2x` |
117
122
  | `"2x longhand"` | All sides `2x`, output as 4 individual `padding-*` properties |
@@ -128,17 +133,20 @@ Individual props `paddingTop`, `paddingRight`, `paddingBottom`, `paddingLeft`, `
128
133
 
129
134
  Element margin. Same syntax, modifiers, and multi-group support as `padding`.
130
135
 
131
- **Syntax:** `[value]` | `[top right]` | `[top right bottom left]` | `[value directions...]` — comma-separated for multiple groups
136
+ **Syntax:** `[value]` | `[block inline]` | `[top right bottom left]` | `[value direction...]` — comma-separated for multiple groups
132
137
 
133
138
  **Direction modifiers:** `top`, `right`, `bottom`, `left`
134
139
 
135
140
  **Output modifier:** `longhand` — forces output as individual CSS longhand properties (`margin-top`, etc.) instead of the `margin` shorthand.
136
141
 
142
+ The [one-value-per-directional-group rule](#padding) from `padding` applies here too.
143
+
137
144
  | Value | Effect |
138
145
  |-------|--------|
139
146
  | `"2x"` | All sides `2x` |
140
147
  | `"2x 1x"` | Top/bottom `2x`, left/right `1x` |
141
148
  | `"2x top"` | Top `2x`, right/bottom/left `0` |
149
+ | `"2x top, 4x right"` | Top `2x`, right `4x`, bottom/left `0` |
142
150
  | `"auto left right, 1x top bottom"` | Left/right `auto`, top/bottom `1x` |
143
151
  | `true` | All sides `1x` |
144
152
  | Number | Converted to `px` |
@@ -191,17 +199,22 @@ Separate `minHeight` and `maxHeight` props are supported and override values fro
191
199
 
192
200
  Positioning offsets with directional modifiers and multi-group support. Same directional syntax as `padding`.
193
201
 
194
- **Syntax:** `[value]` | `[top right]` | `[top right bottom left]` | `[value directions...]` — comma-separated for multiple groups
202
+ **Syntax:** `[value]` | `[block inline]` | `[top right bottom left]` | `[value direction...]` — comma-separated for multiple groups
195
203
 
196
204
  **Direction modifiers:** `top`, `right`, `bottom`, `left`
197
205
 
206
+ The [one-value-per-directional-group rule](#padding) from `padding` applies here too, with `dock`
207
+ as the single exception.
208
+
198
209
  **`dock` modifier:** pins the named edge and spans its full length, by also applying the value
199
210
  to the two perpendicular sides. `inset: 'bottom dock'` gives `inset: auto 0 0 0` — anchored to
200
211
  the bottom, full width. Without a direction, `dock` fills every side.
201
212
 
202
- A second value applies to the spanned sides: `inset: '2x 4x bottom dock'` pins the bottom at
203
- `2x` and insets the sides by `4x`. Intended for a single edge combining `dock` with several
204
- directions has no well-defined meaning.
213
+ `dock` is the one place a directional group takes **two** values: the first insets the named
214
+ edge, the second the sides it spans. `inset: '2x 4x bottom dock'` pins the bottom at `2x` and
215
+ insets the sides by `4x`. A third value, or a second value without `dock`, is ignored and warns
216
+ in development. With several directions the first value applies to each named edge and the
217
+ second to every side they span.
205
218
 
206
219
  **Output modifier:** `longhand` — forces output as individual CSS properties (`top`, `right`, `bottom`, `left`) instead of the `inset` shorthand.
207
220
 
@@ -572,15 +585,20 @@ Scrollbar styling using CSS standard properties (`scrollbar-width`, `scrollbar-c
572
585
 
573
586
  Gradient-based edge fading using CSS masks. Use **comma-separated groups** to set different widths and colors per direction.
574
587
 
575
- **Syntax:** `[width] [directions...] [#from-color] [#to-color]` — comma-separated for multiple groups
588
+ **Syntax:** `[width] [direction...] [#from-color] [#to-color]` — comma-separated for multiple groups
576
589
 
577
590
  **Direction modifiers:** `top`, `right`, `bottom`, `left`
578
591
 
592
+ A group that names edges takes a **single** width, applied to every edge it names — different
593
+ widths per edge come from comma groups. A group that names no edge covers all four and keeps
594
+ plain CSS shorthand order, like `padding`. See the [`padding` rule](#padding).
595
+
579
596
  | Value | Effect |
580
597
  |-------|--------|
581
598
  | `"top"` | Fade top edge, default width (`2x`), all other edges unfaded |
582
599
  | `"2x left right"` | Fade left and right edges with `2x` width, top/bottom unfaded |
583
- | `"3x 1x top bottom"` | Fade top with `3x` width, bottom with `1x` width |
600
+ | `"3x 1x"` | All edges faded — top/bottom `3x`, left/right `1x` (CSS shorthand order) |
601
+ | `"3x top, 1x bottom"` | Fade top with `3x` width, bottom with `1x` width |
584
602
  | `"2x #transparent #dark"` | All edges faded with `2x` width, from `#transparent` to `#dark` |
585
603
  | `"top #a #b, bottom #c #d"` | Top fades from `#a` to `#b`, bottom fades from `#c` to `#d` |
586
604
 
@@ -20,7 +20,7 @@ The zero-runtime mode is part of the main `@tenphi/tasty` package but requires a
20
20
  | `@babel/core` | >= 7.24 | Babel plugin (`@tenphi/tasty/babel-plugin`) |
21
21
  | `@babel/helper-plugin-utils` | >= 7.24 | Babel plugin |
22
22
  | `@babel/types` | >= 7.24 | Babel plugin |
23
- | `jiti` | >= 2.6 | Next.js wrapper (`@tenphi/tasty/next`) when using `configFile` option |
23
+ | `jiti` | >= 2.6 | Next.js wrapper (`@tenphi/tasty/zero/next`) when using `configFile` option |
24
24
 
25
25
  All of these are declared as optional peer dependencies of `@tenphi/tasty`. Install only what your setup requires:
26
26
 
@@ -168,10 +168,11 @@ module.exports = {
168
168
  | `config.replaceTokens` | `Record<string, string \| number>` | — | Parse-time token substitution. Keys use `$name` for custom properties and `#name` for color tokens. |
169
169
  | `config.recipes` | `Record<string, RecipeStyles>` | `{}` | Predefined style recipes |
170
170
  | `config.keyframes` | `Record<string, KeyframesSteps>` | — | Global `@keyframes` definitions available to all `tastyStatic` calls |
171
- | `config.fontFace` | `Record<string, FontFaceInput>` | — | Global `@font-face` definitions |
172
- | `config.counterStyle` | `Record<string, CounterStyleDescriptors>` | — | Global `@counter-style` definitions |
171
+ | `config.fontFaces` | `Record<string, FontFaceInput>` | — | Global `@font-face` definitions |
172
+ | `config.counterStyles` | `Record<string, CounterStyleDescriptors>` | — | Global `@counter-style` definitions |
173
173
  | `config.units` | `Record<string, string \| UnitHandler>` | — | Custom units for the style parser (merged with built-ins). E.g. `{ em: 'em', vw: 'vw' }` |
174
- | `config.funcs` | `Record<string, Function>` | — | Custom functions for the style parser (merged with existing) |
174
+ | `config.functions` | `Record<string, FunctionDefinition \| Function>` | — | Custom functions (merged). Bare keys parse functions; `$$name` keys → declarative CSS `@function` definitions |
175
+ | `config.polyfills` | `{ functions?: boolean }` | `{}` | Opt-in polyfills. `functions: true` inlines `@function` calls into plain CSS at build time |
175
176
  | `config.plugins` | `TastyPlugin[]` | — | Plugins that extend tasty with custom functions, units, states, and handlers |
176
177
  | `config.handlers` | `Record<string, StyleHandlerDefinition>` | — | Custom style handlers that transform style properties into CSS declarations |
177
178
  | `config.presets` | `Record<string, TypographyPreset>` | — | Typography presets — shorthand for `generateTypographyTokens()`. Generated tokens merge under explicit `tokens`. |
@@ -236,7 +237,7 @@ The `withTastyZero` wrapper configures both **webpack** and **Turbopack** automa
236
237
 
237
238
  ```typescript
238
239
  // next.config.ts
239
- import { withTastyZero } from '@tenphi/tasty/next';
240
+ import { withTastyZero } from '@tenphi/tasty/zero/next';
240
241
 
241
242
  export default withTastyZero({
242
243
  output: 'public/tasty.css',
@@ -395,7 +396,7 @@ With Next.js:
395
396
 
396
397
  ```typescript
397
398
  // next.config.ts
398
- import { withTastyZero } from '@tenphi/tasty/next';
399
+ import { withTastyZero } from '@tenphi/tasty/zero/next';
399
400
 
400
401
  export default withTastyZero({
401
402
  mode: 'inject',
@@ -545,3 +546,4 @@ const card = tastyStatic({
545
546
  - [Style DSL](dsl.md) — State maps, tokens, units, extending semantics (shared by runtime and static)
546
547
  - [React API](react-api.md) — Runtime styling: `tasty()` factory, component props, variants, sub-elements, style functions
547
548
  - [Configuration](configuration.md) — Global configuration: tokens, recipes, custom units, and style handlers
549
+ - [Plugins & Extension Points](plugins.md) — Which extension points work at build time (`functions`, `units`, `states`, `handlers`, `recipes`) and which do not (`propHandlers` — `tastyStatic()` takes styles objects, not props)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.154.1",
3
+ "version": "0.156.0",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {
@@ -53,7 +53,7 @@
53
53
  "@tabler/icons-react": "^3.31.0",
54
54
  "@tanstack/react-virtual": "^3.13.12",
55
55
  "@tenphi/glaze": "1.3.0",
56
- "@tenphi/tasty": "2.11.2",
56
+ "@tenphi/tasty": "^3.0.0",
57
57
  "clipboard-copy": "^4.0.1",
58
58
  "clsx": "^1.1.1",
59
59
  "diff": "^8.0.3",
@@ -90,7 +90,7 @@
90
90
  "@statoscope/cli": "^5.20.1",
91
91
  "@storybook/addon-docs": "^10.3.6",
92
92
  "@storybook/react-vite": "^10.3.6",
93
- "@tenphi/eslint-plugin-tasty": "^0.11.2",
93
+ "@tenphi/eslint-plugin-tasty": "^1.0.0",
94
94
  "@testing-library/dom": "^10.4.1",
95
95
  "@testing-library/jest-dom": "^6.7.0",
96
96
  "@testing-library/react": "^16.3.0",