@cube-dev/ui-kit 0.124.0 → 0.124.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/dist/CHANGELOG.md +8 -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.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -16
  37. package/dist/components/actions/Menu/styled.js.map +1 -1
  38. package/dist/components/actions/index.js +1 -1
  39. package/dist/components/actions/use-action.js +1 -1
  40. package/dist/components/actions/use-anchored-menu.js +1 -1
  41. package/dist/components/actions/use-context-menu.js +1 -1
  42. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  43. package/dist/components/content/Alert/Alert.js +1 -1
  44. package/dist/components/content/Alert/use-alert.js +1 -1
  45. package/dist/components/content/Avatar/Avatar.js +1 -1
  46. package/dist/components/content/Badge/Badge.js +1 -1
  47. package/dist/components/content/Card/Card.js +1 -1
  48. package/dist/components/content/Content.js +1 -1
  49. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  50. package/dist/components/content/CopySnippet/CopySnippet.js +8 -5
  51. package/dist/components/content/CopySnippet/CopySnippet.js.map +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/Item/Item.js +1 -1
  58. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  59. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  60. package/dist/components/content/Layout/GridLayout.js +1 -1
  61. package/dist/components/content/Layout/Layout.js +1 -1
  62. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  63. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  64. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  65. package/dist/components/content/Layout/LayoutContent.js +1 -1
  66. package/dist/components/content/Layout/LayoutContext.js +1 -1
  67. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  68. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  69. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  70. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  71. package/dist/components/content/Layout/LayoutPane.js +1 -1
  72. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  75. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  76. package/dist/components/content/Layout/index.js +1 -1
  77. package/dist/components/content/Layout/utils.js +1 -1
  78. package/dist/components/content/Paragraph.js +1 -1
  79. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  80. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  81. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  82. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  83. package/dist/components/content/Result/Result.js +1 -1
  84. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  85. package/dist/components/content/Tag/Tag.js +1 -1
  86. package/dist/components/content/Text.d.ts +42 -42
  87. package/dist/components/content/Text.js +1 -1
  88. package/dist/components/content/TextItem/TextItem.js +1 -1
  89. package/dist/components/content/Title.js +1 -1
  90. package/dist/components/content/highlightText.js +1 -1
  91. package/dist/components/content/use-auto-tooltip.js +1 -1
  92. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  93. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  94. package/dist/components/fields/Checkbox/context.js +1 -1
  95. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  96. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  97. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  98. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  99. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  100. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  101. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  102. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  103. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  104. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  105. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  106. package/dist/components/fields/DatePicker/intl.js +1 -1
  107. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  108. package/dist/components/fields/DatePicker/props.js +1 -1
  109. package/dist/components/fields/DatePicker/utils.js +1 -1
  110. package/dist/components/fields/FileInput/FileInput.js +1 -1
  111. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  112. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  113. package/dist/components/fields/Input/Input.js +1 -1
  114. package/dist/components/fields/ListBox/ListBox.js +1 -1
  115. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  116. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  117. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  118. package/dist/components/fields/Picker/Picker.js +1 -1
  119. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  120. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  121. package/dist/components/fields/RadioGroup/context.js +1 -1
  122. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  123. package/dist/components/fields/Select/Select.d.ts +5 -5
  124. package/dist/components/fields/Select/Select.js +1 -1
  125. package/dist/components/fields/Slider/Gradation.js +1 -1
  126. package/dist/components/fields/Slider/HueSlider.js +1 -1
  127. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  128. package/dist/components/fields/Slider/Slider.js +1 -1
  129. package/dist/components/fields/Slider/SliderBase.js +1 -1
  130. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  131. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  132. package/dist/components/fields/Slider/elements.js +1 -1
  133. package/dist/components/fields/Slider/index.js +1 -1
  134. package/dist/components/fields/Switch/Switch.js +1 -1
  135. package/dist/components/fields/TextArea/TextArea.js +2 -2
  136. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  137. package/dist/components/fields/TextInput/TextInput.js +1 -1
  138. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  139. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  140. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  141. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  142. package/dist/components/form/Form/Field.js +1 -1
  143. package/dist/components/form/Form/Form.js +1 -1
  144. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  145. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  146. package/dist/components/form/Form/SubmitError.js +1 -1
  147. package/dist/components/form/Form/index.js +1 -1
  148. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  149. package/dist/components/form/Form/use-field/use-field.js +1 -1
  150. package/dist/components/form/Form/use-form.js +1 -1
  151. package/dist/components/form/Form/validation.js +1 -1
  152. package/dist/components/form/Label.js +1 -1
  153. package/dist/components/form/wrapper.js +1 -1
  154. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  155. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  156. package/dist/components/layout/Flex.js +1 -1
  157. package/dist/components/layout/Flow.js +1 -1
  158. package/dist/components/layout/Grid.js +1 -1
  159. package/dist/components/layout/Panel.js +1 -1
  160. package/dist/components/layout/Prefix.js +1 -1
  161. package/dist/components/layout/ResizablePanel.js +1 -1
  162. package/dist/components/layout/Space.js +1 -1
  163. package/dist/components/layout/Suffix.js +1 -1
  164. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  165. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  166. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  167. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  168. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  169. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  170. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  171. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  172. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  173. package/dist/components/navigation/Tabs/styled.js +1 -1
  174. package/dist/components/navigation/Tabs/types.js +1 -1
  175. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  176. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  177. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  178. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  179. package/dist/components/other/Calendar/Calendar.js +1 -1
  180. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  181. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  182. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  183. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  184. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  185. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  186. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  187. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  188. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  189. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  190. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  191. package/dist/components/overlays/Dialog/context.js +1 -1
  192. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  193. package/dist/components/overlays/Modal/Modal.js +1 -1
  194. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  195. package/dist/components/overlays/Modal/Overlay.js +1 -1
  196. package/dist/components/overlays/Modal/Popover.js +1 -1
  197. package/dist/components/overlays/Modal/Tray.js +1 -1
  198. package/dist/components/overlays/Modal/Underlay.js +1 -1
  199. package/dist/components/overlays/Notifications/Notification.js +1 -1
  200. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  201. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  202. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  203. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  204. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  205. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  206. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  207. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  208. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  209. package/dist/components/overlays/Notifications/index.js +1 -1
  210. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  211. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  212. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  213. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  214. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  215. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  216. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  217. package/dist/components/overlays/Toast/index.js +1 -1
  218. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  219. package/dist/components/overlays/Toast/useToast.js +1 -1
  220. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  221. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  222. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  223. package/dist/components/overlays/Tooltip/context.js +1 -1
  224. package/dist/components/portal/Portal.js +1 -1
  225. package/dist/components/portal/PortalProvider.js +1 -1
  226. package/dist/components/portal/usePortal.js +1 -1
  227. package/dist/components/shared/InvalidIcon.js +1 -1
  228. package/dist/components/shared/ValidIcon.js +1 -1
  229. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  230. package/dist/components/status/Spin/Cube.js +1 -1
  231. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  232. package/dist/components/status/Spin/Spin.js +1 -1
  233. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  234. package/dist/data/item-themes.js +1 -1
  235. package/dist/data/themes.js +1 -1
  236. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  237. package/dist/icons/AdjustmentsIcon.js +1 -1
  238. package/dist/icons/AiIcon.js +1 -1
  239. package/dist/icons/AreaChartIcon.js +1 -1
  240. package/dist/icons/BackwardIcon.js +1 -1
  241. package/dist/icons/BarChartIcon.js +1 -1
  242. package/dist/icons/BellFilledIcon.js +1 -1
  243. package/dist/icons/BellIcon.js +1 -1
  244. package/dist/icons/BooleanIcon.js +1 -1
  245. package/dist/icons/CalendarEditIcon.js +1 -1
  246. package/dist/icons/CalendarIcon.js +1 -1
  247. package/dist/icons/CaretDownIcon.js +1 -1
  248. package/dist/icons/CaretUpIcon.js +1 -1
  249. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  250. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  251. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  252. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  253. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  254. package/dist/icons/ChartBarLineIcon.js +1 -1
  255. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  256. package/dist/icons/ChartBarStackedIcon.js +1 -1
  257. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  258. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  259. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  260. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  261. package/dist/icons/ChartBubbleIcon.js +1 -1
  262. package/dist/icons/ChartDonut2Icon.js +1 -1
  263. package/dist/icons/ChartFunnelIcon.js +1 -1
  264. package/dist/icons/ChartHeatmapIcon.js +1 -1
  265. package/dist/icons/ChartKPIIcon.js +1 -1
  266. package/dist/icons/ChartPie2Icon.js +1 -1
  267. package/dist/icons/ChartScatterIcon.js +1 -1
  268. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  269. package/dist/icons/CheckCircleIcon.js +1 -1
  270. package/dist/icons/CheckIcon.js +1 -1
  271. package/dist/icons/CircleFilledIcon.js +1 -1
  272. package/dist/icons/ClearIcon.js +1 -1
  273. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  274. package/dist/icons/CloseCircleIcon.js +1 -1
  275. package/dist/icons/CloseIcon.js +1 -1
  276. package/dist/icons/CodeIcon.js +1 -1
  277. package/dist/icons/ColumnTotalIcon.js +1 -1
  278. package/dist/icons/CopyIcon.js +1 -1
  279. package/dist/icons/CountIcon.js +1 -1
  280. package/dist/icons/CubeIcon.js +1 -1
  281. package/dist/icons/CubePauseIcon.js +1 -1
  282. package/dist/icons/CubePlayIcon.js +1 -1
  283. package/dist/icons/CurrencyDollarIcon.js +1 -1
  284. package/dist/icons/DangerIcon.js +1 -1
  285. package/dist/icons/DashboardIcon.js +1 -1
  286. package/dist/icons/DatabaseIcon.js +1 -1
  287. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  288. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  289. package/dist/icons/DirectionIcon.js +1 -1
  290. package/dist/icons/DonutIcon.js +1 -1
  291. package/dist/icons/DownIcon.js +1 -1
  292. package/dist/icons/EditIcon.js +1 -1
  293. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  294. package/dist/icons/ExclamationCircleIcon.js +1 -1
  295. package/dist/icons/ExclamationIcon.js +1 -1
  296. package/dist/icons/EyeIcon.js +1 -1
  297. package/dist/icons/EyeInvisibleIcon.js +1 -1
  298. package/dist/icons/FilterIcon.js +1 -1
  299. package/dist/icons/FolderFilledIcon.js +1 -1
  300. package/dist/icons/FolderIcon.js +1 -1
  301. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  302. package/dist/icons/FolderOpenIcon.js +1 -1
  303. package/dist/icons/ForwardIcon.js +1 -1
  304. package/dist/icons/HierarchyIcon.js +1 -1
  305. package/dist/icons/HierarchyOpenIcon.js +1 -1
  306. package/dist/icons/Icon.js +3 -2
  307. package/dist/icons/Icon.js.map +1 -1
  308. package/dist/icons/InfoCircleIcon.js +1 -1
  309. package/dist/icons/InfoIcon.js +1 -1
  310. package/dist/icons/KeyIcon.js +1 -1
  311. package/dist/icons/LeftIcon.js +1 -1
  312. package/dist/icons/LineChartIcon.js +1 -1
  313. package/dist/icons/LoadingIcon.js +1 -1
  314. package/dist/icons/LockFilledIcon.js +1 -1
  315. package/dist/icons/LockIcon.js +1 -1
  316. package/dist/icons/MoreIcon.js +1 -1
  317. package/dist/icons/NotAllowedIcon.js +1 -1
  318. package/dist/icons/Number123Icon.js +1 -1
  319. package/dist/icons/NumberIcon.js +1 -1
  320. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  321. package/dist/icons/PauseCircleIcon.js +1 -1
  322. package/dist/icons/PauseIcon.js +1 -1
  323. package/dist/icons/PercentageIcon.js +1 -1
  324. package/dist/icons/PieChartIcon.js +1 -1
  325. package/dist/icons/PlayCircleIcon.js +1 -1
  326. package/dist/icons/PlayIcon.js +1 -1
  327. package/dist/icons/PlusIcon.js +1 -1
  328. package/dist/icons/ProgressBarIcon.js +1 -1
  329. package/dist/icons/ReloadIcon.js +1 -1
  330. package/dist/icons/ReportIcon.js +1 -1
  331. package/dist/icons/ReturnIcon.js +1 -1
  332. package/dist/icons/RightIcon.js +1 -1
  333. package/dist/icons/RowTotalsIcon.js +1 -1
  334. package/dist/icons/SchemeIcon.js +1 -1
  335. package/dist/icons/SearchIcon.js +1 -1
  336. package/dist/icons/SemanticQueryIcon.js +1 -1
  337. package/dist/icons/SettingsIcon.js +1 -1
  338. package/dist/icons/ShieldFilledIcon.js +1 -1
  339. package/dist/icons/ShieldIcon.js +1 -1
  340. package/dist/icons/SlashIcon.js +1 -1
  341. package/dist/icons/SparklesIcon.js +1 -1
  342. package/dist/icons/SqlIcon.js +1 -1
  343. package/dist/icons/StatsIcon.js +1 -1
  344. package/dist/icons/StopIcon.js +1 -1
  345. package/dist/icons/StringIcon.js +1 -1
  346. package/dist/icons/SubtotalsIcon.js +1 -1
  347. package/dist/icons/SwitchIcon.js +1 -1
  348. package/dist/icons/TableIcon.js +1 -1
  349. package/dist/icons/ThumbsDownIcon.js +1 -1
  350. package/dist/icons/ThumbsUpIcon.js +1 -1
  351. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  352. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  353. package/dist/icons/ThunderboltIcon.js +1 -1
  354. package/dist/icons/TimeIcon.js +1 -1
  355. package/dist/icons/TrashIcon.js +1 -1
  356. package/dist/icons/UnlockIcon.js +1 -1
  357. package/dist/icons/UpIcon.js +1 -1
  358. package/dist/icons/UserGroupIcon.js +1 -1
  359. package/dist/icons/UserIcon.js +1 -1
  360. package/dist/icons/UserLockIcon.js +1 -1
  361. package/dist/icons/ViewIcon.js +1 -1
  362. package/dist/icons/WarningFilledIcon.js +1 -1
  363. package/dist/icons/WarningIcon.js +1 -1
  364. package/dist/icons/wrap-icon.js +1 -1
  365. package/dist/index.js +1 -1
  366. package/dist/provider.js +1 -1
  367. package/dist/providers/TrackingProvider.js +1 -1
  368. package/dist/providers/navigationAdapter.default.js +1 -1
  369. package/dist/tokens/base.js +1 -1
  370. package/dist/tokens/colors.js +1 -1
  371. package/dist/tokens/index.js +1 -1
  372. package/dist/tokens/layout.js +1 -1
  373. package/dist/tokens/shadows.js +1 -1
  374. package/dist/tokens/sizes.js +1 -1
  375. package/dist/tokens/spacing.js +1 -1
  376. package/dist/tokens/typography.js +1 -1
  377. package/dist/utils/ResizeSensor.js +1 -1
  378. package/dist/utils/is-dev-env.js +1 -1
  379. package/dist/utils/modules.js +1 -1
  380. package/dist/utils/promise.js +1 -1
  381. package/dist/utils/raf.js +1 -1
  382. package/dist/utils/random.js +1 -1
  383. package/dist/utils/range.js +1 -1
  384. package/dist/utils/react/RenderCache.js +1 -1
  385. package/dist/utils/react/Slots.js +1 -1
  386. package/dist/utils/react/chain.js +1 -1
  387. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  388. package/dist/utils/react/index.js +1 -1
  389. package/dist/utils/react/interactions.js +1 -1
  390. package/dist/utils/react/isTextOnly.js +1 -1
  391. package/dist/utils/react/mapProps.js +1 -1
  392. package/dist/utils/react/mergeProps.js +1 -1
  393. package/dist/utils/react/nullableValue.js +1 -1
  394. package/dist/utils/react/resolveIcon.js +1 -1
  395. package/dist/utils/react/sharedStore.js +1 -1
  396. package/dist/utils/react/useCombinedRefs.js +1 -1
  397. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  398. package/dist/utils/react/useEventBus.js +1 -1
  399. package/dist/utils/react/useId.js +1 -1
  400. package/dist/utils/react/useIsDarwin.js +1 -1
  401. package/dist/utils/react/useKeySymbols.js +1 -1
  402. package/dist/utils/react/useLayoutEffect.js +1 -1
  403. package/dist/utils/react/useLocalStorage.js +1 -1
  404. package/dist/utils/react/useMergeStyles.js +1 -1
  405. package/dist/utils/react/useQaProps.js +1 -1
  406. package/dist/utils/react/useViewportSize.js +1 -1
  407. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  408. package/dist/utils/styles.js +1 -1
  409. package/dist/utils/tree.js +1 -1
  410. package/dist/utils/warnings.js +1 -1
  411. package/dist/version.js +2 -2
  412. package/docs/components/actions/Menu.md +0 -2
  413. package/docs/tasty/README.md +5 -4
  414. package/docs/tasty/adoption.md +6 -4
  415. package/docs/tasty/comparison.md +9 -7
  416. package/docs/tasty/design-system.md +1 -1
  417. package/docs/tasty/dsl.md +40 -0
  418. package/docs/tasty/getting-started.md +11 -9
  419. package/docs/tasty/methodology.md +3 -1
  420. package/docs/tasty/runtime.md +1 -25
  421. package/docs/tasty/ssr.md +2 -2
  422. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { Children, isValidElement } from "react";
3
3
 
4
4
  //#region src/utils/react/isTextOnly.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  //#region src/utils/react/mapProps.ts
3
3
  /** Converts AriaButtonProps to CubeButtonProps */
4
4
  function ariaToCubeButtonProps(props) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { chain } from "./chain.js";
3
3
  import { mergeIds } from "./useId.js";
4
4
  import { mergeStyles } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  //#region src/utils/react/nullableValue.ts
3
3
  function castNullableStringValue(props) {
4
4
  return castNullableField(props, ["value", "defaultValue"], "string", (v) => String(v));
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  //#region src/utils/react/resolveIcon.ts
3
3
  /**
4
4
  * Resolves a dynamic icon prop to its content and slot state.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { useEffect, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useCombinedRefs.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { createSharedStore } from "./sharedStore.js";
3
3
  import { useEffect } from "react";
4
4
  import { useFocusVisible } from "react-aria";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import React, { createContext, useCallback, useContext, useEffect, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useEventBus.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { useSSRSafeId } from "@react-aria/ssr";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useIsDarwin.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { useIsDarwin } from "./useIsDarwin.js";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import * as React$1 from "react";
3
3
 
4
4
  //#region src/utils/react/useLayoutEffect.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useCallback, useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { mergeStyles } from "@tenphi/tasty";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  //#region src/utils/react/useQaProps.ts
3
3
  /**
4
4
  * Processes QA props.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useViewportSize.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  import { isValidElement } from "react";
3
3
  import { isFragment } from "react-is";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  //#region src/utils/styles.ts
3
3
  /**
4
4
  * Split properties into style and non-style properties.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  //#region src/utils/tree.ts
3
3
  function toFlatTree(tree, includingFolders) {
4
4
  return tree.reduce((result, node) => {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  //#region src/utils/warnings.ts
3
3
  const SUGGESTED_PROP_MAP = {
4
4
  disabled: "isDisabled",
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
2
2
  //#region src/version.ts
3
- const VERSION = "0.124.0";
3
+ const VERSION = "0.124.1";
4
4
  if (typeof window !== "undefined") {
5
5
  const version = VERSION;
6
6
  window.CubeUIKit = window.CubeUIKit || { version };
@@ -66,8 +66,6 @@ Customizes individual menu items.
66
66
  - `Icon` - Icon element within menu items
67
67
  - `Text` - Main text content of menu items
68
68
  - `Description` - Secondary text content for items with descriptions
69
- - `Postfix` - Right-aligned content (shortcuts, badges, etc.)
70
-
71
69
  #### sectionStyles
72
70
 
73
71
  Customizes section container elements.
@@ -1,12 +1,13 @@
1
1
  # Tasty Docs
2
2
 
3
- Use this page when you know what you want to do, but not which document to open next.
3
+ Tasty is a styling engine for design systems that turns component state into deterministic CSS by compiling state maps into mutually exclusive selectors. Use this hub to choose the right guide once you know whether you are evaluating the model, adopting it in a design system, or implementing reusable, stateful components day to day.
4
4
 
5
5
  ## Start Here
6
6
 
7
7
  - **New to Tasty**: [Getting Started](getting-started.md) for installation, the first component, optional shared `configure()`, ESLint, editor tooling, and rendering mode selection.
8
8
  - **Learning the component model**: [Methodology](methodology.md) for root + sub-elements, `styleProps`, tokens, extension, and recommended boundaries between `styles`, `style`, and wrappers.
9
- - **Evaluating fit**: [Comparison](comparison.md) for tool-selection context, then [Adoption Guide](adoption.md) for rollout strategy inside a design system.
9
+ - **Evaluating the selector model**: [Style rendering pipeline](PIPELINE.md) for how mutually exclusive selectors make stateful styling deterministic.
10
+ - **Evaluating fit**: [Comparison](comparison.md) for tool-selection context, then [Adoption Guide](adoption.md) for audience fit and rollout strategy inside a design system.
10
11
 
11
12
  ## By Role
12
13
 
@@ -14,11 +15,11 @@ Use this page when you know what you want to do, but not which document to open
14
15
  - **Design-system author**: [Methodology](methodology.md), [Building a Design System](design-system.md), [Configuration](configuration.md), and [Adoption Guide](adoption.md).
15
16
  - **Platform or tooling engineer**: [Configuration](configuration.md), [Zero Runtime (tastyStatic)](tasty-static.md), [Server-Side Rendering](ssr.md), and [Debug Utilities](debug.md).
16
17
 
17
- ## By Rendering Mode
18
+ ## By Styling Approach
18
19
 
19
20
  - **Runtime React components**: [Runtime API](runtime.md)
20
21
  - **Zero-runtime / build-time extraction**: [Zero Runtime (tastyStatic)](tasty-static.md)
21
- - **SSR with runtime `tasty()`**: [Server-Side Rendering](ssr.md)
22
+ - **Runtime `tasty()` with server collection and hydration**: [Server-Side Rendering](ssr.md)
22
23
 
23
24
  ## By Task
24
25
 
@@ -1,6 +1,6 @@
1
1
  # Adoption Guide
2
2
 
3
- Tasty is not a drop-in replacement for another styling library. It is a **substrate for building a design-system-defined styling language**. That means the adoption path is not "rewrite your classes" but "reshape your styling architecture."
3
+ Tasty is not a drop-in replacement for another styling library. It is a **substrate for building a design-system-defined styling language**: what the comparison guide calls a house styling language. That means adoption usually starts where styling for reusable, stateful components has already become a composition problem, not with an all-at-once rewrite.
4
4
 
5
5
  This guide is for design-system maintainers and platform engineers evaluating Tasty or introducing it into an existing codebase. Use this document for rollout strategy and adoption sequencing; use the [Comparison guide](comparison.md) when the open question is whether Tasty is the right tool in the first place.
6
6
 
@@ -116,6 +116,8 @@ See [Configuration](configuration.md) for the full `configure()` API.
116
116
 
117
117
  You do not need to adopt everything at once. Tasty is designed to be introduced layer by layer.
118
118
 
119
+ A practical way to start is with the components that already suffer from intersecting state and variant logic: buttons, inputs, menus, disclosures, dialogs, list items, interactive cards, and compound components. Those are the places where deterministic resolution pays off fastest.
120
+
119
121
  ### Phase 1 -- Tokens and units
120
122
 
121
123
  Start by defining your design tokens and custom units. This is the lowest-risk step: it only configures the parser and does not require rewriting any components.
@@ -161,7 +163,7 @@ configure({
161
163
 
162
164
  ### Phase 3 -- Migrate a few primitives
163
165
 
164
- Pick 2-3 simple, widely used components (Box, Text, Button) and rewrite them with `tasty()`. Keep the public API identical so product code does not need to change.
166
+ Pick 2-3 widely used primitives (Box, Text, Button) and rewrite them with `tasty()`. Keep the public API identical so product code does not need to change.
165
167
 
166
168
  ```tsx
167
169
  const Box = tasty({
@@ -175,11 +177,11 @@ const Box = tasty({
175
177
  });
176
178
  ```
177
179
 
178
- At this point you can validate the DSL, token workflow, and component authoring experience before committing further.
180
+ At this point you can validate the DSL, token workflow, and component authoring experience before expanding the rollout.
179
181
 
180
182
  ### Phase 4 -- Encode complex states
181
183
 
182
- Move components with intersecting states (buttons with hover + disabled + theme variants, inputs with focus + error + readonly) to Tasty's state map syntax. This is where mutually exclusive selectors start paying off.
184
+ Move the components with the most painful intersecting states (buttons with hover + disabled + theme variants, inputs with focus + error + readonly) to Tasty's state map syntax. This is where mutually exclusive selectors start paying off.
183
185
 
184
186
  ```tsx
185
187
  const Button = tasty({
@@ -4,6 +4,10 @@ Use this guide when you are deciding whether Tasty is the right tool. If you hav
4
4
 
5
5
  Tasty is best understood not as a general-purpose CSS framework, but as a **styling engine for design systems and shared component APIs**.
6
6
 
7
+ It targets a different layer: helping design-system teams define a **house styling language** on top of CSS.
8
+
9
+ That does not require a big upfront configuration step. Tasty's built-in units and normal CSS color values work out of the box, and `okhsl(...)` is available immediately as the recommended path for color authoring. The extra setup comes later if a team wants shared tokens, aliases, recipes, or stricter conventions.
10
+
7
11
  Most styling tools focus on one of these layers:
8
12
 
9
13
  - direct app styling
@@ -12,9 +16,7 @@ Most styling tools focus on one of these layers:
12
16
  - utility composition
13
17
  - atomic CSS generation
14
18
 
15
- Tasty targets a different layer: it helps teams define a **house styling language** on top of CSS, including tokens, state semantics, style props, recipes, custom units, and sub-element rules.
16
-
17
- That does not mean a big upfront configuration step is required. Tasty's built-in units and normal CSS color values work out of the box, and `okhsl(...)` is available immediately as the recommended path for color authoring. The extra setup comes later if a team wants shared tokens, aliases, recipes, or stricter conventions.
19
+ Tasty's house styling language can include tokens, state semantics, style props, recipes, custom units, and sub-element rules. In other words, it is a governed styling model, not just another syntax for writing CSS.
18
20
 
19
21
  That is why syntax-level comparisons are often shallow. The more meaningful comparison is about:
20
22
 
@@ -87,9 +89,9 @@ Tasty compiles this into selectors where `disabled` is guarded by `:not(:hover)`
87
89
 
88
90
  That makes Tasty less of a "better way to write CSS objects" and more of a **state-aware style compiler for design systems**.
89
91
 
90
- Beyond state resolution, Tasty includes several structural capabilities that most other tools do not offer:
92
+ Beyond state resolution, Tasty also provides several structural capabilities that reinforce the design-system layer:
91
93
 
92
- - **CSS properties as typed React props** — `styleProps` lets a component expose selected style properties as normal props (`<Button placeSelf="end">`), including state maps for responsive values. No other tool provides this as a first-class, typed, design-system-aware feature.
94
+ - **CSS properties as typed React props** — `styleProps` lets a component expose selected style properties as normal props (`<Button placeSelf="end">`), including state maps for responsive values. This keeps layout and composition controls inside a governed component API instead of pushing teams back to ad hoc styling escapes.
93
95
  - **Sub-element styling** — Compound components declare inner parts via capitalized keys in `styles` and `data-element` attributes. States, tokens, and recipes apply across the entire element tree from a single definition. See [Runtime API — Sub-element Styling](runtime.md#sub-element-styling).
94
96
  - **Auto-inferred `@property`** — When a custom property is assigned a concrete value, Tasty infers the CSS `@property` syntax and registers it automatically, enabling smooth transitions on custom properties without manual declarations.
95
97
  - **AI-friendly style definitions** — Style definitions are declarative, self-contained, and structurally consistent. AI tools can read, refactor, and generate Tasty styles as confidently as a human — no hidden cascade logic or implicit ordering to second-guess.
@@ -122,7 +124,7 @@ So this is not mainly a comparison of syntax. It is a comparison of **governance
122
124
  - Tailwind: developers author directly with framework vocabulary
123
125
  - Tasty: design-system authors define the vocabulary product teams consume
124
126
 
125
- Tailwind is usually a stronger fit for fast product styling with framework-owned vocabulary. Tasty is usually a stronger fit when teams want direct usability now, but also a path toward governed design-system architecture.
127
+ Tailwind is a stronger fit for fast product styling with framework-owned vocabulary. Tasty is a stronger fit when styling should be exposed through a design-system-owned API and state resolution needs to stay deterministic as the component model grows.
126
128
 
127
129
  To make this concrete, consider a button with `hover`, `disabled`, and `theme=danger` states.
128
130
 
@@ -301,7 +303,7 @@ So while Stitches and Emotion are strong tools for building components, Tasty is
301
303
 
302
304
  That makes it narrower in audience, but deeper in architectural ambition.
303
305
 
304
- Tasty's runtime performance is also validated in enterprise-scale applications where styling overhead is not noticeable in normal UI flows an important consideration for teams evaluating runtime CSS-in-JS at scale.
306
+ For teams evaluating runtime styling at scale, Tasty also documents its runtime benchmarks and caching model in the main [README](../README.md#performance). That matters, but it is still secondary to the core question of whether you want Tasty's deterministic selector model.
305
307
 
306
308
  ---
307
309
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  This guide walks through building a design-system styling layer on top of Tasty — defining tokens, state aliases, recipes, primitive components, and compound components with sub-elements.
4
4
 
5
- It assumes you have already decided to adopt Tasty. For evaluation criteria, audience fit, and incremental adoption phases, see the [Adoption Guide](adoption.md). For the recommended component patterns and mental model, see [Methodology](methodology.md).
5
+ It assumes you have already decided to adopt Tasty. The goal is not just to centralize tokens, but to define a styling language whose component states resolve deterministically across variants, responsive rules, and sub-elements. For evaluation criteria, audience fit, and incremental adoption phases, see the [Adoption Guide](adoption.md). For the recommended component patterns and mental model, see [Methodology](methodology.md).
6
6
 
7
7
  ---
8
8
 
package/docs/tasty/dsl.md CHANGED
@@ -36,6 +36,46 @@ styles: { Title: { preset: 'h3' } }
36
36
  // Targets: <div data-element="Title">
37
37
  ```
38
38
 
39
+ #### Selector Affix (`$`)
40
+
41
+ Control how a sub-element selector attaches to the root selector using the `$` property inside the sub-element's styles:
42
+
43
+ | Pattern | Result | Description |
44
+ |---------|--------|-------------|
45
+ | *(none)* | ` [el]` | Descendant (default) |
46
+ | `>` | `> [el]` | Direct child |
47
+ | `>Body>Row>` | `> [Body] > [Row] > [el]` | Chained elements |
48
+ | `h1` | ` h1` | Tag selector (no key injection) |
49
+ | `h1 >` | ` h1 > [el]` | Key is direct child of tag |
50
+ | `h1 *` | ` h1 *` | Any descendant of tag |
51
+ | `*` | ` *` | All descendants |
52
+ | `::before` | `::before` | Root pseudo (no key) |
53
+ | `@::before` | `[el]::before` | Pseudo on the sub-element |
54
+ | `>@:hover` | `> [el]:hover` | Pseudo-class on the sub-element |
55
+ | `>@.active` | `> [el].active` | Class on the sub-element |
56
+
57
+ Rules for key injection (`[data-element="..."]`):
58
+
59
+ - **Trailing combinator** (`>`, `+`, `~`) — key is injected after it
60
+ - **Uppercase element name** (`Body`, `Row`) — key is injected as descendant
61
+ - **HTML tag** (`h1`, `a`, `span`) — no key injection; the tag IS the selector
62
+ - **Universal selector** (`*`) — no key injection
63
+ - **Pseudo / class / attribute** — no key injection
64
+
65
+ The `@` placeholder marks exactly where `[data-element="..."]` is injected, allowing you to attach pseudo-classes, pseudo-elements, or class selectors directly to the sub-element instead of the root:
66
+
67
+ ```jsx
68
+ const List = tasty({
69
+ styles: {
70
+ Item: {
71
+ $: '>@:last-child',
72
+ border: 'none',
73
+ },
74
+ },
75
+ });
76
+ // → .t0 > [data-element="Item"]:last-child { border: none }
77
+ ```
78
+
39
79
  ### Color Token
40
80
 
41
81
  Named color prefixed with `#` that maps to CSS custom properties. Supports opacity with `.N` suffix:
@@ -1,6 +1,6 @@
1
1
  # Getting Started
2
2
 
3
- This guide walks you from zero to a working Tasty component, then through the optional shared configuration and tooling layers. For a feature overview, see the [README](../README.md). For the full style language reference, see the [Style DSL](dsl.md). For the React API, see the [Runtime API](runtime.md). For the rest of the docs by role or task, see the [Docs Hub](README.md).
3
+ This guide walks you from zero to a working Tasty component, then through the optional shared configuration and tooling layers. It is the right starting point when you already want to try Tasty in code. If you are still deciding whether Tasty fits your team, start with [Comparison](comparison.md) and [Adoption Guide](adoption.md) first. For a feature overview, see the [README](../README.md). For the full style language reference, see the [Style DSL](dsl.md). For the React API, see the [Runtime API](runtime.md). For the rest of the docs by role or task, see the [Docs Hub](README.md).
4
4
 
5
5
  ---
6
6
 
@@ -10,6 +10,8 @@ This guide walks you from zero to a working Tasty component, then through the op
10
10
  - **React** >= 18 (peer dependency)
11
11
  - **Package manager**: pnpm, npm, or yarn
12
12
 
13
+ Tasty can be used immediately in a React app, but it is most compelling for teams building reusable components with intersecting states, variants, tokens, and design-system conventions.
14
+
13
15
  ---
14
16
 
15
17
  ## Install
@@ -177,25 +179,25 @@ export default [
177
179
 
178
180
  ## Choosing a rendering mode
179
181
 
180
- Tasty supports three rendering modes. Pick the one that fits your use case:
182
+ Tasty has two styling approaches. Pick the one that fits your use case, then decide whether your runtime setup also needs server rendering support:
181
183
 
182
- | Mode | Entry point | Best for | Trade-off |
184
+ | Approach | Entry point | Best for | Trade-off |
183
185
  |------|-------------|----------|-----------|
184
- | **Runtime** | `tasty()` from `@tenphi/tasty` | Interactive apps, design systems | CSS generated at runtime; full feature set (styleProps, sub-elements, variants) |
186
+ | **Runtime** | `tasty()` from `@tenphi/tasty` | Interactive apps with reusable stateful components, design systems | CSS generated at runtime; full feature set (styleProps, sub-elements, variants) |
185
187
  | **Zero-runtime** | `tastyStatic()` from `@tenphi/tasty/static` | Static sites, landing pages, SSG | Zero JS overhead; requires Babel plugin; no dynamic props |
186
- | **SSR** | `@tenphi/tasty/ssr/next` or `@tenphi/tasty/ssr/astro` | Next.js, Astro, streaming SSR | Runtime `tasty()` with server-rendered CSS and zero-cost hydration |
187
188
 
188
- All three share the same DSL, tokens, units, and state mappings.
189
+ Both share the same DSL, tokens, units, and state mappings.
189
190
 
190
191
  - Runtime is the default and requires no extra setup beyond `@tenphi/tasty`.
192
+ - If your framework can execute runtime code during server rendering, add SSR support on top of runtime with `@tenphi/tasty/ssr/next`, `@tenphi/tasty/ssr/astro`, or the core SSR API. This still uses `tasty()`; it just collects CSS on the server and hydrates the cache on the client.
191
193
  - Zero-runtime requires the Babel plugin and additional peer dependencies. See [Zero Runtime (tastyStatic)](tasty-static.md).
192
- - SSR works with existing `tasty()` components — wrap your app with a registry or middleware. See [Server-Side Rendering](ssr.md).
194
+ - SSR works with existing `tasty()` components — wrap your app with a registry, middleware, or collector. See [Server-Side Rendering](ssr.md).
193
195
 
194
196
  ---
195
197
 
196
198
  ## Next steps
197
199
 
198
- - **[Docs Hub](README.md)** — Pick the next guide by role, rendering mode, or task
200
+ - **[Docs Hub](README.md)** — Pick the next guide by role, styling approach, or task
199
201
  - **[Methodology](methodology.md)** — The recommended patterns for structuring Tasty components: sub-elements, styleProps, tokens, extension
200
202
  - **[Style DSL](dsl.md)** — State maps, tokens, units, extending semantics, keyframes, @property
201
203
  - **[Runtime API](runtime.md)** — `tasty()` factory, component props, variants, sub-elements, hooks
@@ -212,4 +214,4 @@ All three share the same DSL, tokens, units, and state mappings.
212
214
 
213
215
  - Styles are missing on first render: make sure the file that calls `configure()` is imported before any `tasty()` component renders.
214
216
  - Token or unit values are not what you expect: check your `configure({ tokens, units })` setup, then inspect the generated CSS variables with [Debug Utilities](debug.md).
215
- - You need zero-runtime or SSR instead of the default runtime path: use [Zero Runtime (tastyStatic)](tasty-static.md) or [Server-Side Rendering](ssr.md) rather than trying to retrofit the runtime setup later.
217
+ - You need build-time extraction or server-rendered CSS delivery: use [Zero Runtime (tastyStatic)](tasty-static.md) for extraction, or add [Server-Side Rendering](ssr.md) on top of runtime `tasty()` when your framework renders on the server.
@@ -1,11 +1,13 @@
1
1
  # Methodology
2
2
 
3
- Tasty has opinions about how components should be structured. The patterns described here are not mandatory — Tasty works without them — but following them gets the most out of the engine: better state resolution, cleaner component APIs, simpler overrides, and fewer surprises as the system grows.
3
+ Tasty has opinions about how components should be structured. The patterns described here are not mandatory — Tasty works without them — but following them gets the most out of the engine: deterministic state resolution, cleaner component APIs, simpler overrides, and fewer surprises as the system grows.
4
4
 
5
5
  ---
6
6
 
7
7
  ## Component architecture: root + sub-elements
8
8
 
9
+ This model matters most for design-system authors and platform teams building reusable, stateful components. It turns Tasty's selector guarantees into a component architecture that stays predictable as states, variants, and compound parts accumulate.
10
+
9
11
  ### The model
10
12
 
11
13
  Every Tasty component has a **root element** and zero or more **sub-elements**. The root owns the state context. Sub-elements participate in the same context by default.
@@ -178,31 +178,7 @@ const Card = tasty({
178
178
 
179
179
  ### Selector Affix (`$`)
180
180
 
181
- Control how a sub-element selector attaches to the root selector using the `$` property inside the sub-element's styles:
182
-
183
- | Pattern | Result | Description |
184
- |---------|--------|-------------|
185
- | *(none)* | ` [el]` | Descendant (default) |
186
- | `>` | `> [el]` | Direct child |
187
- | `>Body>Row>` | `> [Body] > [Row] > [el]` | Chained elements |
188
- | `::before` | `::before` | Root pseudo (no key) |
189
- | `@::before` | `[el]::before` | Pseudo on the sub-element |
190
- | `>@:hover` | `> [el]:hover` | Pseudo-class on the sub-element |
191
- | `>@.active` | `> [el].active` | Class on the sub-element |
192
-
193
- The `@` placeholder marks exactly where the `[data-element="..."]` selector is injected, allowing you to attach pseudo-classes, pseudo-elements, or class selectors directly to the sub-element instead of the root:
194
-
195
- ```jsx
196
- const List = tasty({
197
- styles: {
198
- Item: {
199
- $: '>@:last-child',
200
- border: 'none',
201
- },
202
- },
203
- });
204
- // → .t0 > [data-element="Item"]:last-child { border: none }
205
- ```
181
+ The `$` property inside a sub-element's styles controls how its selector attaches to the root selector combinators, HTML tags, pseudo-elements, the `@` placeholder, and more. For the full reference table and injection rules, see [DSL — Selector Affix](dsl.md#selector-affix-).
206
182
 
207
183
  For the mental model behind sub-elements — how they share root state context and how this differs from BEM — see [Methodology — Component architecture](methodology.md#component-architecture-root--sub-elements).
208
184
 
package/docs/tasty/ssr.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Server-Side Rendering (SSR)
2
2
 
3
- Tasty supports server-side rendering with zero-cost client hydration. Your existing `tasty()` components work unchanged -- SSR is opt-in and requires no per-component modifications. For the broader docs map, see the [Docs Hub](README.md).
3
+ Tasty supports server-side rendering with zero-cost client hydration. This does **not** introduce a separate styling engine: SSR uses the same runtime `tasty()` pipeline you already use on the client, then adds server-side CSS collection and client-side cache hydration. Your existing `tasty()` components work unchanged, and SSR remains opt-in with no per-component modifications. For the broader docs map, see the [Docs Hub](README.md).
4
4
 
5
5
  ---
6
6
 
@@ -18,7 +18,7 @@ The Astro integration (`@tenphi/tasty/ssr/astro`) has no additional dependencies
18
18
 
19
19
  ## How It Works
20
20
 
21
- During server rendering, `useStyles()` detects a `ServerStyleCollector` and collects CSS into it instead of trying to access the DOM. 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 `useStyles()` skips the rendering pipeline entirely during hydration.
21
+ When the environment can execute runtime React code during server rendering, the same `tasty()` and `useStyles()` calls can run there too. In Next.js, generic React SSR, and Astro islands, Tasty simply changes where that runtime-generated CSS goes: `useStyles()` detects a `ServerStyleCollector` and collects CSS into it instead of trying to access the DOM. 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 `useStyles()` skips the rendering pipeline entirely during hydration.
22
22
 
23
23
  ```
24
24
  Server Client
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.124.0",
3
+ "version": "0.124.1",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {
@@ -45,7 +45,7 @@
45
45
  "@react-types/shared": "^3.32.1",
46
46
  "@tabler/icons-react": "^3.31.0",
47
47
  "@tanstack/react-virtual": "^3.13.12",
48
- "@tenphi/tasty": "0.14.0",
48
+ "@tenphi/tasty": "0.14.2",
49
49
  "clipboard-copy": "^4.0.1",
50
50
  "clsx": "^1.1.1",
51
51
  "diff": "^8.0.3",