@cube-dev/ui-kit 0.205.0 → 0.206.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 (619) hide show
  1. package/dist/CHANGELOG.md +26 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/Root.js.map +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/ItemActionsWrapper.js +221 -132
  28. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  29. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  30. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  31. package/dist/components/actions/Link/Link.js +1 -1
  32. package/dist/components/actions/Menu/Menu.js +1 -1
  33. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  34. package/dist/components/actions/Menu/MenuItem.js +1 -1
  35. package/dist/components/actions/Menu/MenuSection.js +1 -1
  36. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  37. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  39. package/dist/components/actions/Menu/context.js +1 -1
  40. package/dist/components/actions/Menu/styled.js +1 -1
  41. package/dist/components/actions/actions-run.js +1 -1
  42. package/dist/components/actions/index.js +1 -1
  43. package/dist/components/actions/use-action.js +1 -1
  44. package/dist/components/actions/use-anchored-menu.js +1 -1
  45. package/dist/components/actions/use-context-menu.js +1 -1
  46. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  47. package/dist/components/content/Alert/Alert.js +1 -1
  48. package/dist/components/content/Alert/use-alert.js +1 -1
  49. package/dist/components/content/Avatar/Avatar.js +1 -1
  50. package/dist/components/content/Badge/Badge.js +1 -1
  51. package/dist/components/content/Card/Card.js +1 -1
  52. package/dist/components/content/Content.js +1 -1
  53. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  54. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  55. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  56. package/dist/components/content/Divider/Divider.js +1 -1
  57. package/dist/components/content/Footer.js +1 -1
  58. package/dist/components/content/Header.js +1 -1
  59. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  60. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  61. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  62. package/dist/components/content/Item/Item.d.ts +2 -1
  63. package/dist/components/content/Item/Item.js +1 -1
  64. package/dist/components/content/Item/Item.js.map +1 -1
  65. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  66. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  67. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  68. package/dist/components/content/Layout/GridLayout.js +1 -1
  69. package/dist/components/content/Layout/Layout.js +1 -1
  70. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  71. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  72. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  73. package/dist/components/content/Layout/LayoutContent.js +1 -1
  74. package/dist/components/content/Layout/LayoutContext.js +1 -1
  75. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  76. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  77. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  78. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  79. package/dist/components/content/Layout/LayoutPane.js +1 -1
  80. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  81. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  82. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  83. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  84. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  85. package/dist/components/content/Layout/index.js +1 -1
  86. package/dist/components/content/Layout/utils.js +1 -1
  87. package/dist/components/content/Paragraph.js +1 -1
  88. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  89. package/dist/components/content/PrismCode/PrismCode.js +3 -2
  90. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  91. package/dist/components/content/PrismCode/prismSetup.js +8 -2
  92. package/dist/components/content/PrismCode/prismSetup.js.map +1 -1
  93. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  94. package/dist/components/content/Result/Result.js +1 -1
  95. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  96. package/dist/components/content/Tag/Tag.js +1 -1
  97. package/dist/components/content/Text.js +1 -1
  98. package/dist/components/content/TextItem/TextItem.d.ts +5 -2
  99. package/dist/components/content/TextItem/TextItem.js +1 -1
  100. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  101. package/dist/components/content/Title.js +1 -1
  102. package/dist/components/content/Tree/Tree.js +1 -1
  103. package/dist/components/content/Tree/TreeNode.js +1 -1
  104. package/dist/components/content/Tree/checked-keys.js +1 -1
  105. package/dist/components/content/Tree/rowId.js +1 -1
  106. package/dist/components/content/Tree/styled.js +1 -1
  107. package/dist/components/content/Tree/tree-index.js +1 -1
  108. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  109. package/dist/components/content/Tree/use-load-data.js +1 -1
  110. package/dist/components/content/highlightText.js +1 -1
  111. package/dist/components/content/use-auto-tooltip.js +114 -72
  112. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  113. package/dist/components/data/DataTable/DataTable.js +1 -1
  114. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  115. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  116. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  117. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  118. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  119. package/dist/components/data/ItemTable/item-table-sections.js +1 -1
  120. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  121. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  122. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  123. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  124. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  125. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  126. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  127. package/dist/components/data/TableBase/RowCollection.js +1 -1
  128. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  129. package/dist/components/data/TableBase/TableRow.js +1 -1
  130. package/dist/components/data/TableBase/TableRowLink.js +1 -1
  131. package/dist/components/data/TableBase/TableView.js +1 -1
  132. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  133. package/dist/components/data/TableBase/column-header.js +1 -1
  134. package/dist/components/data/TableBase/column-menu.js +1 -1
  135. package/dist/components/data/TableBase/column-styles.js +1 -1
  136. package/dist/components/data/TableBase/column-tint.js +1 -1
  137. package/dist/components/data/TableBase/row-menu.js +1 -1
  138. package/dist/components/data/TableBase/styled.js +21 -20
  139. package/dist/components/data/TableBase/styled.js.map +1 -1
  140. package/dist/components/data/TableBase/table-body-sections.js +1 -1
  141. package/dist/components/data/TableBase/table-tree.js +1 -1
  142. package/dist/components/data/TableBase/types.js +1 -1
  143. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  144. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  145. package/dist/components/data/TableBase/use-column-order.js +1 -1
  146. package/dist/components/data/TableBase/use-column-window.js +1 -1
  147. package/dist/components/data/TableBase/use-container-width.js +1 -1
  148. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  149. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  150. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  151. package/dist/components/data/TableBase/use-table-search.js +1 -1
  152. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  153. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  154. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  155. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  156. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  157. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  158. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  159. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  160. package/dist/components/fields/Checkbox/context.js +1 -1
  161. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  162. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  163. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  164. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  165. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  166. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  167. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  168. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  169. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  170. package/dist/components/fields/DatePicker/CalendarPopover.js +1 -1
  171. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  172. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  173. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  174. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  175. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  176. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  177. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  178. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  179. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  181. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  182. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  183. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  184. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  185. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  186. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  187. package/dist/components/fields/DatePicker/period.js +1 -1
  188. package/dist/components/fields/DatePicker/props.js +1 -1
  189. package/dist/components/fields/DatePicker/utils.js +1 -1
  190. package/dist/components/fields/FileInput/FileInput.js +1 -2
  191. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  192. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  193. package/dist/components/fields/FilterListBox/styled.js +1 -1
  194. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  195. package/dist/components/fields/FilterPicker/FilterTree.js +1 -1
  196. package/dist/components/fields/Input/Input.js +1 -1
  197. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  198. package/dist/components/fields/ListBox/ListBox.js +1 -1
  199. package/dist/components/fields/ListBox/optionId.js +1 -1
  200. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  201. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  202. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  203. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  204. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  205. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  206. package/dist/components/fields/Picker/Picker.js +1 -1
  207. package/dist/components/fields/RadioGroup/Radio.js +108 -118
  208. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  209. package/dist/components/fields/RadioGroup/RadioGroup.js +10 -12
  210. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  211. package/dist/components/fields/RadioGroup/context.js +1 -1
  212. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  213. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  214. package/dist/components/fields/Select/Select.js +1 -1
  215. package/dist/components/fields/Slider/Gradation.js +1 -1
  216. package/dist/components/fields/Slider/HueSlider.js +1 -1
  217. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  218. package/dist/components/fields/Slider/Slider.js +1 -1
  219. package/dist/components/fields/Slider/SliderBase.js +1 -1
  220. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  221. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  222. package/dist/components/fields/Slider/elements.js +1 -1
  223. package/dist/components/fields/Slider/index.js +1 -1
  224. package/dist/components/fields/Switch/Switch.js +1 -1
  225. package/dist/components/fields/TagInput/TagInput.js +1 -1
  226. package/dist/components/fields/TagInput/TagList.js +1 -1
  227. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  228. package/dist/components/fields/TagInput/useTagError.js +1 -1
  229. package/dist/components/fields/TextArea/TextArea.js +1 -1
  230. package/dist/components/fields/TextInput/TextInput.js +1 -1
  231. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  232. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  233. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  234. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  235. package/dist/components/fields/TriggerActions.js +1 -1
  236. package/dist/components/fields/color/ColorPanel.js +1 -1
  237. package/dist/components/fields/color/channels.js +1 -1
  238. package/dist/components/fields/color/color.js +1 -1
  239. package/dist/components/fields/color/context.js +1 -1
  240. package/dist/components/fields/option-origin-press.js +1 -1
  241. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  242. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  243. package/dist/components/form/Form/Field.js +1 -1
  244. package/dist/components/form/Form/Form.js +1 -1
  245. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  246. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  247. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  248. package/dist/components/form/Form/SubmitError.js +1 -1
  249. package/dist/components/form/Form/backend.js +1 -1
  250. package/dist/components/form/Form/index.js +1 -1
  251. package/dist/components/form/Form/modern/actions.js +1 -1
  252. package/dist/components/form/Form/modern/context.js +1 -1
  253. package/dist/components/form/Form/modern/controller.js +1 -1
  254. package/dist/components/form/Form/modern/field-binding.js +1 -1
  255. package/dist/components/form/Form/modern/field.js +1 -1
  256. package/dist/components/form/Form/modern/react.js +1 -1
  257. package/dist/components/form/Form/modern/store.js +1 -1
  258. package/dist/components/form/Form/modern/validation.js +1 -1
  259. package/dist/components/form/Form/modern/values.js +1 -1
  260. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  261. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  262. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  263. package/dist/components/form/Form/use-field/use-field.js +1 -1
  264. package/dist/components/form/Form/use-form.js +1 -1
  265. package/dist/components/form/Form/validation.js +1 -1
  266. package/dist/components/form/Label.js +1 -1
  267. package/dist/components/form/field-chrome.js +1 -1
  268. package/dist/components/form/field-layout.js +1 -1
  269. package/dist/components/form/legacy-tooltip.js +1 -1
  270. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  271. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  272. package/dist/components/form/validation/use-validation-props.js +1 -1
  273. package/dist/components/form/wrapper.js +1 -1
  274. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  275. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  276. package/dist/components/layout/Flex.js +1 -1
  277. package/dist/components/layout/Flow.js +1 -1
  278. package/dist/components/layout/Grid.js +1 -1
  279. package/dist/components/layout/Panel.js +1 -1
  280. package/dist/components/layout/Prefix.js +1 -1
  281. package/dist/components/layout/ResizablePanel.js +1 -1
  282. package/dist/components/layout/Space.js +1 -1
  283. package/dist/components/layout/Suffix.js +1 -1
  284. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  285. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  286. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  287. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  288. package/dist/components/navigation/Tabs/TabButton.js +190 -187
  289. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  290. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  291. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  292. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  293. package/dist/components/navigation/Tabs/Tabs.js +2 -1
  294. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  295. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  296. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  297. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  298. package/dist/components/navigation/Tabs/segmented-styles.js +53 -0
  299. package/dist/components/navigation/Tabs/segmented-styles.js.map +1 -0
  300. package/dist/components/navigation/Tabs/styled.js +15 -28
  301. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  302. package/dist/components/navigation/Tabs/types.d.ts +4 -4
  303. package/dist/components/navigation/Tabs/types.js +1 -1
  304. package/dist/components/navigation/Tabs/types.js.map +1 -1
  305. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  306. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  307. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  308. package/dist/components/other/Calendar/Calendar.js +1 -1
  309. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  310. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  311. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  312. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  313. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  314. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  315. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  316. package/dist/components/other/Calendar/styled.js +1 -1
  317. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  318. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  319. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  320. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  321. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  322. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  323. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  324. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  325. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  326. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  327. package/dist/components/overlays/Dialog/context.js +1 -1
  328. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  329. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  330. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  331. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  332. package/dist/components/overlays/Dialog/use-dismiss-confirmation.js +1 -1
  333. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  334. package/dist/components/overlays/Modal/Modal.js +1 -1
  335. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  336. package/dist/components/overlays/Modal/Overlay.js +1 -1
  337. package/dist/components/overlays/Modal/Popover.js +1 -1
  338. package/dist/components/overlays/Modal/Tray.js +1 -1
  339. package/dist/components/overlays/Modal/Underlay.js +1 -1
  340. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  341. package/dist/components/overlays/Notifications/Notification.js +1 -1
  342. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  343. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  344. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  345. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  346. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  347. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  348. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  349. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  350. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  351. package/dist/components/overlays/Notifications/index.js +1 -1
  352. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  353. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  354. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  355. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  356. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  357. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  358. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  359. package/dist/components/overlays/Toast/index.js +1 -1
  360. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  361. package/dist/components/overlays/Toast/useToast.js +1 -1
  362. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  363. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  364. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  365. package/dist/components/overlays/Tooltip/context.js +1 -1
  366. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  367. package/dist/components/portal/Portal.js +1 -1
  368. package/dist/components/portal/PortalProvider.js +1 -1
  369. package/dist/components/portal/usePortal.js +1 -1
  370. package/dist/components/shared/DraggableCollection.js +1 -1
  371. package/dist/components/shared/InvalidIcon.js +1 -1
  372. package/dist/components/shared/ValidIcon.js +1 -1
  373. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  374. package/dist/components/status/Spin/Cube.js +2 -2
  375. package/dist/components/status/Spin/Cube.js.map +1 -1
  376. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  377. package/dist/components/status/Spin/Spin.js +1 -1
  378. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  379. package/dist/data/item-themes.js +70 -70
  380. package/dist/data/item-themes.js.map +1 -1
  381. package/dist/data/themes.js +1 -1
  382. package/dist/eslint-plugin/defaults.generated.js +1 -1
  383. package/dist/eslint-plugin/index.js +1 -1
  384. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  385. package/dist/i18n/I18nProvider.js +1 -1
  386. package/dist/i18n/createFormatter.js +1 -1
  387. package/dist/i18n/index.js +1 -1
  388. package/dist/i18n/instance.js +1 -1
  389. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  390. package/dist/i18n/locales/en-US/uikit.js +1 -1
  391. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  392. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  393. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  394. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  395. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  396. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  397. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  398. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  399. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  400. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  401. package/dist/i18n/locales.js +1 -1
  402. package/dist/i18n/namespace.js +1 -1
  403. package/dist/i18n/useFormatter.js +1 -1
  404. package/dist/i18n/useI18n.js +1 -1
  405. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  406. package/dist/icons/AdjustmentsIcon.js +1 -1
  407. package/dist/icons/AiIcon.js +1 -1
  408. package/dist/icons/AreaChartIcon.js +1 -1
  409. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  410. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  411. package/dist/icons/BackwardIcon.js +1 -1
  412. package/dist/icons/BarChartIcon.js +1 -1
  413. package/dist/icons/BellFilledIcon.js +1 -1
  414. package/dist/icons/BellIcon.js +1 -1
  415. package/dist/icons/BooleanIcon.js +1 -1
  416. package/dist/icons/CalendarEditIcon.js +1 -1
  417. package/dist/icons/CalendarIcon.js +1 -1
  418. package/dist/icons/CaretDownIcon.js +1 -1
  419. package/dist/icons/CaretUpIcon.js +1 -1
  420. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  421. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  422. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  423. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  424. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  425. package/dist/icons/ChartBarLineIcon.js +1 -1
  426. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  427. package/dist/icons/ChartBarStackedIcon.js +1 -1
  428. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  429. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  430. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  431. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  432. package/dist/icons/ChartBubbleIcon.js +1 -1
  433. package/dist/icons/ChartDonut2Icon.js +1 -1
  434. package/dist/icons/ChartFunnelIcon.js +1 -1
  435. package/dist/icons/ChartHeatmapIcon.js +1 -1
  436. package/dist/icons/ChartKPIIcon.js +1 -1
  437. package/dist/icons/ChartPie2Icon.js +1 -1
  438. package/dist/icons/ChartScatterIcon.js +1 -1
  439. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  440. package/dist/icons/CheckCircleIcon.js +1 -1
  441. package/dist/icons/CheckIcon.js +1 -1
  442. package/dist/icons/CircleFilledIcon.js +1 -1
  443. package/dist/icons/ClearIcon.js +1 -1
  444. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  445. package/dist/icons/CloseCircleIcon.js +1 -1
  446. package/dist/icons/CloseIcon.js +1 -1
  447. package/dist/icons/CodeIcon.js +1 -1
  448. package/dist/icons/ColumnTotalIcon.js +1 -1
  449. package/dist/icons/CopyIcon.js +1 -1
  450. package/dist/icons/CountIcon.js +1 -1
  451. package/dist/icons/CubeIcon.js +1 -1
  452. package/dist/icons/CubePauseIcon.js +1 -1
  453. package/dist/icons/CubePlayIcon.js +1 -1
  454. package/dist/icons/CurrencyDollarIcon.js +1 -1
  455. package/dist/icons/DangerIcon.js +1 -1
  456. package/dist/icons/DashboardIcon.js +1 -1
  457. package/dist/icons/DatabaseIcon.js +1 -1
  458. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  459. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  460. package/dist/icons/DirectionIcon.js +1 -1
  461. package/dist/icons/DonutIcon.js +1 -1
  462. package/dist/icons/DownIcon.js +1 -1
  463. package/dist/icons/EditIcon.js +1 -1
  464. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  465. package/dist/icons/ExclamationCircleIcon.js +1 -1
  466. package/dist/icons/ExclamationIcon.js +1 -1
  467. package/dist/icons/EyeIcon.js +1 -1
  468. package/dist/icons/EyeInvisibleIcon.js +1 -1
  469. package/dist/icons/FilterIcon.js +1 -1
  470. package/dist/icons/FolderFilledIcon.js +1 -1
  471. package/dist/icons/FolderIcon.js +1 -1
  472. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  473. package/dist/icons/FolderOpenIcon.js +1 -1
  474. package/dist/icons/ForwardIcon.js +1 -1
  475. package/dist/icons/GripVerticalIcon.js +1 -1
  476. package/dist/icons/HierarchyIcon.js +1 -1
  477. package/dist/icons/HierarchyOpenIcon.js +1 -1
  478. package/dist/icons/Icon.js +1 -1
  479. package/dist/icons/InfoCircleIcon.js +1 -1
  480. package/dist/icons/InfoIcon.js +1 -1
  481. package/dist/icons/KeyIcon.js +1 -1
  482. package/dist/icons/LeftIcon.js +1 -1
  483. package/dist/icons/LineChartIcon.js +1 -1
  484. package/dist/icons/LoadingIcon.js +1 -1
  485. package/dist/icons/LockFilledIcon.js +1 -1
  486. package/dist/icons/LockIcon.js +1 -1
  487. package/dist/icons/MoreIcon.js +1 -1
  488. package/dist/icons/NotAllowedIcon.js +1 -1
  489. package/dist/icons/Number123Icon.js +1 -1
  490. package/dist/icons/NumberIcon.js +1 -1
  491. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  492. package/dist/icons/PauseCircleIcon.js +1 -1
  493. package/dist/icons/PauseIcon.js +1 -1
  494. package/dist/icons/PercentageIcon.js +1 -1
  495. package/dist/icons/PieChartIcon.js +1 -1
  496. package/dist/icons/PipetteIcon.js +1 -1
  497. package/dist/icons/PlayCircleIcon.js +1 -1
  498. package/dist/icons/PlayIcon.js +1 -1
  499. package/dist/icons/PlusIcon.js +1 -1
  500. package/dist/icons/ProgressBarIcon.js +1 -1
  501. package/dist/icons/ReloadIcon.js +1 -1
  502. package/dist/icons/ReportIcon.js +1 -1
  503. package/dist/icons/ReturnIcon.js +1 -1
  504. package/dist/icons/RightIcon.js +1 -1
  505. package/dist/icons/RowTotalsIcon.js +1 -1
  506. package/dist/icons/SchemeIcon.js +1 -1
  507. package/dist/icons/SearchIcon.js +1 -1
  508. package/dist/icons/SemanticQueryIcon.js +1 -1
  509. package/dist/icons/SettingsIcon.js +1 -1
  510. package/dist/icons/ShieldFilledIcon.js +1 -1
  511. package/dist/icons/ShieldIcon.js +1 -1
  512. package/dist/icons/SlashIcon.js +1 -1
  513. package/dist/icons/SparklesIcon.js +1 -1
  514. package/dist/icons/SqlIcon.js +1 -1
  515. package/dist/icons/StatsIcon.js +1 -1
  516. package/dist/icons/StopIcon.js +1 -1
  517. package/dist/icons/StringIcon.js +1 -1
  518. package/dist/icons/SubtotalsIcon.js +1 -1
  519. package/dist/icons/SwitchIcon.js +1 -1
  520. package/dist/icons/TableIcon.js +1 -1
  521. package/dist/icons/ThumbsDownIcon.js +1 -1
  522. package/dist/icons/ThumbsUpIcon.js +1 -1
  523. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  524. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  525. package/dist/icons/ThunderboltIcon.js +1 -1
  526. package/dist/icons/TimeIcon.js +1 -1
  527. package/dist/icons/TrashIcon.js +1 -1
  528. package/dist/icons/UnlockIcon.js +1 -1
  529. package/dist/icons/UpIcon.js +1 -1
  530. package/dist/icons/UserGroupIcon.js +1 -1
  531. package/dist/icons/UserIcon.js +1 -1
  532. package/dist/icons/UserLockIcon.js +1 -1
  533. package/dist/icons/ViewIcon.js +1 -1
  534. package/dist/icons/WarningFilledIcon.js +1 -1
  535. package/dist/icons/WarningIcon.js +1 -1
  536. package/dist/icons/wrap-icon.js +1 -1
  537. package/dist/index.js +1 -1
  538. package/dist/probe/canonicalize.js +1 -1
  539. package/dist/probe/css.js +1 -1
  540. package/dist/probe/index.js +1 -1
  541. package/dist/provider.js +1 -1
  542. package/dist/providers/TrackingProvider.js +1 -1
  543. package/dist/providers/navigation-url.js +1 -1
  544. package/dist/providers/navigationAdapter.default.js +1 -1
  545. package/dist/providers/use-navigation.js +1 -1
  546. package/dist/tokens/all-tokens.js +1 -1
  547. package/dist/tokens/base.js +1 -1
  548. package/dist/tokens/color-seed.js +1 -1
  549. package/dist/tokens/color-theme.js +1 -1
  550. package/dist/tokens/colors.js +1 -1
  551. package/dist/tokens/layout.js +1 -1
  552. package/dist/tokens/lazy-styles.js +1 -1
  553. package/dist/tokens/legacy-color.js +1 -1
  554. package/dist/tokens/palette-config.js +1 -1
  555. package/dist/tokens/palette.js +1 -1
  556. package/dist/tokens/resolve.js +1 -1
  557. package/dist/tokens/shadows.js +1 -1
  558. package/dist/tokens/sizes.js +1 -1
  559. package/dist/tokens/spacing.js +1 -1
  560. package/dist/tokens/typography.js +1 -1
  561. package/dist/utils/ResizeSensor.js +1 -1
  562. package/dist/utils/colors.js +1 -1
  563. package/dist/utils/dotize.js +1 -1
  564. package/dist/utils/is-dev-env.js +1 -1
  565. package/dist/utils/modules.js +1 -1
  566. package/dist/utils/promise.js +1 -1
  567. package/dist/utils/raf.js +1 -1
  568. package/dist/utils/random.js +1 -1
  569. package/dist/utils/range.js +1 -1
  570. package/dist/utils/react/RenderCache.js +1 -1
  571. package/dist/utils/react/Slots.js +1 -1
  572. package/dist/utils/react/chain.js +1 -1
  573. package/dist/utils/react/disabledProps.js +1 -1
  574. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  575. package/dist/utils/react/index.js +1 -1
  576. package/dist/utils/react/interactions.js +1 -1
  577. package/dist/utils/react/isTextOnly.js +1 -1
  578. package/dist/utils/react/mapProps.js +1 -1
  579. package/dist/utils/react/mergeProps.js +1 -1
  580. package/dist/utils/react/nullableValue.js +1 -1
  581. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  582. package/dist/utils/react/programmaticFocus.js +1 -1
  583. package/dist/utils/react/resolveIcon.js +1 -1
  584. package/dist/utils/react/sharedStore.js +1 -1
  585. package/dist/utils/react/useBufferedValue.js +1 -1
  586. package/dist/utils/react/useCombinedRefs.js +1 -1
  587. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  588. package/dist/utils/react/useEventBus.js +1 -1
  589. package/dist/utils/react/useId.js +1 -1
  590. package/dist/utils/react/useIsDarwin.js +1 -1
  591. package/dist/utils/react/useKeySymbols.js +1 -1
  592. package/dist/utils/react/useLayoutEffect.js +1 -1
  593. package/dist/utils/react/useLocalStorage.js +1 -1
  594. package/dist/utils/react/useMergeStyles.js +1 -1
  595. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  596. package/dist/utils/react/usePopoverSync.js +1 -1
  597. package/dist/utils/react/useQaProps.js +1 -1
  598. package/dist/utils/react/useScheme.js +7 -5
  599. package/dist/utils/react/useScheme.js.map +1 -1
  600. package/dist/utils/react/useViewportSize.js +1 -1
  601. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  602. package/dist/utils/selection.js +1 -1
  603. package/dist/utils/styles.js +1 -1
  604. package/dist/utils/tree.js +1 -1
  605. package/dist/utils/warnings.js +1 -1
  606. package/dist/version.js +3 -3
  607. package/docs/Theming.md +1 -1
  608. package/docs/Usage.md +26 -0
  609. package/docs/components/content/Item.md +1 -1
  610. package/docs/components/content/TextItem.md +13 -1
  611. package/docs/components/data/ItemTable.md +1 -1
  612. package/docs/components/fields/RadioGroup.md +5 -4
  613. package/docs/components/navigation/Tabs.md +5 -3
  614. package/docs/tasty/ai-agents.md +3 -2
  615. package/docs/tasty/dsl.md +52 -0
  616. package/docs/tasty/styles.md +27 -15
  617. package/package.json +6 -3
  618. package/tasty.config.generated.ts +526 -0
  619. package/tasty.config.ts +73 -427
@@ -10,7 +10,7 @@ Notation: ❌ wrong → ✅ correct.
10
10
 
11
11
  Color tokens (`#name`), custom properties (`$name`), `preset` names, `recipe` names, state aliases (`@mobile`) and extra units are **project-defined** in `tasty.config.ts` or a `configure({ … })` call. Look them up before writing styles. Never invent a name — reuse an existing one, or add it to the config.
12
12
 
13
- Only Tasty's built-ins exist without config: `#white`, `#black`, `#border`, `#outline`, `#current`, `#clear`, and `$gap`, `$radius`, `$border-width`, `$outline-width`, `$transition`, `$sharp-radius`, `$bold-font-weight`, `$font-sans-fallback`, `$font-mono-fallback`.
13
+ Only Tasty's built-ins exist without config: `#white`, `#black`, `#border`, `#outline`, `#current`, `#clear`, and `$gap`, `$radius`, `$border-width`, `$outline-width`, `$transition`, `$sharp-radius`, `$bold-font-weight`, `$icon-size` (only where a `preset` applies), `$font-sans-fallback`, `$font-mono-fallback`.
14
14
 
15
15
  ## 1. Where styles go
16
16
 
@@ -72,6 +72,7 @@ The last row goes the other way — longhands over the shorthand — because `fl
72
72
  | `#name.50` | token at 50% opacity — digits are a decimal fraction: `.5` = `.50` = 50%, `.05` = 5%, `.100` = 10% |
73
73
  | `#name.$opacity` | opacity from a custom property |
74
74
  | `#clear` / `#current` | `transparent` / `currentcolor` |
75
+ | `#a+#b.04` | `#b` at 4% opacity over `#a`, as one color; layers stack left to right (`#a+#b.1+#c.04`) |
75
76
  | `$name` | custom property → `var(--name)` |
76
77
  | `(#a, #b)` | fallback chain |
77
78
  | `$$name` / `##name` | the custom property _name_ (not its value) — inside `transition` |
@@ -134,7 +135,7 @@ Directional modifiers beat placeholder zeros:
134
135
  - ❌ `padding: '2x 4x top right'` — a directional group takes one value, so `4x` is dropped → ✅ `padding: '2x top, 4x right'`
135
136
  - ❌ `fade: '3x 1x top bottom'` → ✅ `fade: '3x top, 1x bottom'`
136
137
 
137
- Value-only properties reject both colors and modifiers: `gap`, `columnGap`, `rowGap`, `opacity`, `zIndex`, `order`, `flexGrow`, `flexShrink`, `flexBasis`, `aspectRatio`, `lineClamp`, and `tabSize`. Logical axis category styles accept one or two values in start/end order and the `start`, `end`, and `longhand` modifiers. `fill`, `color`, `caretColor`, and `accentColor` take a color only (use `#clear` for transparent). `fill` also mixes two colors with a comma, the weight as a percentage: ❌ `fill: '#surface #dark.04'` (deprecated overlay layer) · ❌ `fill: '#dark.04, #surface'` (half-transparent mix) → ✅ `fill: '#dark 4%, #surface'`.
138
+ Value-only properties reject both colors and modifiers: `gap`, `columnGap`, `rowGap`, `opacity`, `zIndex`, `order`, `flexGrow`, `flexShrink`, `flexBasis`, `aspectRatio`, `lineClamp`, and `tabSize`. Logical axis category styles accept one or two values in start/end order and the `start`, `end`, and `longhand` modifiers. `fill`, `color`, `caretColor`, and `accentColor` take a color only (use `#clear` for transparent). An overlay is a compound color, in any color slot: ❌ `fill: '#surface #dark.04'` (deprecated overlay layer) · ❌ `fill: '#dark.04, #surface'` (half-transparent mix) → ✅ `fill: '#surface+#dark.04'`. Write it as one word, with no spaces around `+`. Every layer after the first needs an opacity suffix, and its token must be opaque: a translucent layer token, or one that is `#clear` in some state, leaves the result see-through, so vary the suffix (`#surface+#dark.$hover`) or the whole compound per state instead. A comma mix in `fill` is deprecated too: ❌ `fill: '#dark 4%, #surface'` → ✅ `fill: '#surface+#dark.04'`. For any other mix, write `color-mix()` itself: ✅ `fill: 'color-mix(in srgb, #dark $weight, #surface)'`.
138
139
 
139
140
  ### `transition`
140
141
 
package/docs/tasty/dsl.md CHANGED
@@ -168,6 +168,7 @@ color: '#purple.5', // 50% opacity
168
168
  color: '#purple.05', // 5% opacity
169
169
  color: '#purple.$fade', // Opacity from a custom property
170
170
  fill: '#current', // → currentcolor
171
+ fill: '#surface+#dark.04', // #dark at 4% opacity over #surface, as one color
171
172
  color: '(#primary, #secondary)', // Fallback syntax
172
173
  ```
173
174
 
@@ -255,6 +256,57 @@ clamped, and rectangular, so there is no hue to interpolate against
255
256
  `transparent`. Nothing configures it — see
256
257
  [Color space](configuration.md#color-space).
257
258
 
259
+ ### Compound colors
260
+
261
+ Join color tokens with `+` to paint each one, at its own opacity, over the
262
+ colors before it. The result is one color, so it works anywhere a token does:
263
+
264
+ ```jsx
265
+ fill: '#surface+#dark.04',
266
+ // → color-mix(in srgb, var(--dark-color) 4%, var(--surface-color))
267
+
268
+ border: '1bw #border+#dark.1',
269
+ color: 'light-dark(#primary+#black.2, #primary+#white.2)',
270
+ '#hover-surface': '#surface-2+#surface-text.03',
271
+ ```
272
+
273
+ Read it left to right, bottom layer first: `#surface+#accent.1+#dark.04` paints
274
+ `#accent` at 10% over `#surface`, then `#dark` at 4% over that. Every operand is
275
+ an ordinary token — `#current`, `#clear`, a hex color, a replace token — and
276
+ takes its opacity suffix as it does anywhere: `#surface+#dark.$hover` reads the
277
+ opacity from `$hover`, and a faded base such as `#surface.5+#dark.04` is layered
278
+ as it is.
279
+
280
+ The layers mix in sRGB, the space browsers composite in, so the color is exactly
281
+ what stacking them as layers would show — but it is one color, which contrast
282
+ checkers can read and transitions interpolate. A faded base is exact too:
283
+ `#surface.5+#dark.04` is as translucent as the two layers would be.
284
+
285
+ Every layer's token has to be opaque. The mix counts a layer's own alpha as well
286
+ as its opacity suffix, and lowers the alpha of the whole color, so a layer token
287
+ that holds a translucent color, or turns transparent in some state, leaves the
288
+ result see-through: with `'#overlay': { '': '#clear', hovered: '#dark' }`,
289
+ `'#surface+#overlay.04'` is 96% opaque at rest. Vary the opacity instead
290
+ (`'#surface+#dark.$hover'`), or give each state its own color
291
+ (`fill: { '': '#surface', hovered: '#surface+#dark.04' }`).
292
+
293
+ - Write it as one word: `#surface + #dark.04` is three separate values, and
294
+ Tasty warns in development.
295
+ - A layer without an opacity covers everything before it: `#surface+#dark` is
296
+ `#dark`, with a development warning.
297
+ - A layer Tasty can see is transparent — `#clear`, a fade to `.0`, a color with
298
+ a zero alpha — is left out: `#surface+#clear` is `#surface`.
299
+ - Over a transparent base, a layer is just its fade: `#clear+#dark.04` compiles
300
+ to `#dark.04`.
301
+ - A `+` joining anything but color tokens (`#surface+1x`) is not a compound: the
302
+ token is dropped, with a development warning, and the style renders as if
303
+ that color were not there.
304
+
305
+ A `+` joins tokens only. To fade a whole compound, give it a token
306
+ (`'#hover-surface': '#surface+#dark.04'`) and fade that (`#hover-surface.5`). For
307
+ a mix that is not a layer over another color, such as an even blend in OKLCH,
308
+ write `color-mix()` itself.
309
+
258
310
  ---
259
311
 
260
312
  ## CSS Color Functions
@@ -303,52 +303,64 @@ Avoid setting physical and logical declarations that resolve to the same edge in
303
303
 
304
304
  Background color with design token support. Preferred over `backgroundColor` and `background`.
305
305
 
306
- **Syntax:** `[color]`, or two colors mixed with a comma: `[color] [weight%], [color]`
306
+ **Syntax:** `[color]`
307
307
 
308
308
  | Value | Effect |
309
309
  |-------|--------|
310
310
  | `"#purple"` | Token-based background color |
311
311
  | `"#purple.10"` | Token color at 10% opacity |
312
- | `"#dark 4%, #surface"` | `#dark` mixed into `#surface` at 4% — the color `#dark` at 4% opacity over `#surface` would show |
312
+ | `"#surface+#dark.04"` | `#dark` at 4% opacity over `#surface`, as one color — see [Compound colors](dsl.md#compound-colors) |
313
313
  | `"rgb(255 128 0)"` | CSS color value |
314
314
  | `"color-mix(in oklab, #primary 50%, #surface)"` | CSS color function — see [CSS Color Functions](dsl.md#css-color-functions) |
315
315
 
316
- #### Mixing two colors
316
+ #### Overlays
317
317
 
318
- A comma between two colors mixes them into one:
318
+ An overlay over a base color is a [compound color](dsl.md#compound-colors):
319
319
 
320
320
  ```jsx
321
- fill: '#dark 4%, #surface'
322
- // → background-color: color-mix(in srgb, var(--dark-color) 4%, var(--surface-color));
321
+ fill: { '': '#surface', hovered: '#surface+#dark.04', pressed: '#surface+#dark.08' }
322
+ // hovered → background-color: color-mix(in srgb, var(--dark-color) 4%, var(--surface-color));
323
323
  ```
324
324
 
325
- The comma-separated parts are the arguments of `color-mix()`, as written, mixed in sRGB: the space browsers composite layers in. When the weighted color is opaque, the mix is exactly what drawing it at that opacity over the other color shows. And because it is one `background-color`:
325
+ The overlay token has to be opaque, with its opacity in the suffix: a translucent
326
+ token, or one that turns `#clear` in some state, leaves the background
327
+ see-through. Because the result is one `background-color`:
326
328
 
327
329
  - contrast checkers such as axe-core and Lighthouse can read it;
328
330
  - it transitions and animates between states like any other color;
329
331
  - an `image` on the same element stays the only `background-image` layer.
330
332
 
331
- The weight can come from a token or an expression: `'#dark $hover-weight, #surface'`, `'#dark ($hover * 100%), #surface'`.
332
-
333
- Give the weight as a percentage, not as an opacity. A color without a percentage takes half the weight, and its own alpha weighs it down again, so the mix comes out see-through: `'#dark.04, #surface'` is 52% opaque, not `#dark` at 4% over `#surface`. In development Tasty warns about a `#name.N` or `#clear` part without a percentage. It can't see into a token, though, so a token holding a translucent color mixes the same way with no warning: keep the token opaque and put its weight in the percentage.
334
-
335
- A mix takes two colors. Any more are ignored, with a development warning.
336
-
337
333
  #### Two colors separated by a space (deprecated)
338
334
 
339
335
  `fill: '#surface #dark.04'` paints the first color as `background-color` and the second as a `linear-gradient()` layer over it, through the `--tasty-second-fill-color` custom property. It still works, with a development warning, and is going away in the next major version: contrast checkers can't see through a `background-image`, so axe-core reports every text node over the layer as *incomplete*.
340
336
 
337
+ Put a `+` where the space is:
338
+
341
339
  | Before | After |
342
340
  |--------|-------|
343
- | `'#surface #dark.04'` | `'#dark 4%, #surface'` |
341
+ | `'#surface #dark.04'` | `'#surface+#dark.04'` |
344
342
  | `'#surface #clear'` | `'#surface'` |
345
343
  | `'#surface #accent'` (an opaque overlay) | `'#accent'` |
346
- | `'#base #overlay'` (a token holding a translucent color) | `'#overlay $overlay-weight, #base'`, with `#overlay` opaque and `$overlay-weight` a percentage |
344
+ | `'#base #overlay'` (a token holding a translucent color) | `'#base+#overlay.$overlay-alpha'`, with `#overlay` opaque and `$overlay-alpha` its opacity as a number |
347
345
 
348
346
  The rewrites are exact when the overlay token is opaque. A state map no longer needs the same two-color shape in every state to transition smoothly: every state is now a plain background color.
349
347
 
350
348
  If an overlay has to stay a translucent token, draw the layer yourself with `fill: '#base', image: 'linear-gradient(#overlay, #overlay)'`. Contrast checkers can't read that either.
351
349
 
350
+ #### Two colors mixed with a comma (deprecated)
351
+
352
+ `fill: '#dark 4%, #surface'` mixes the two colors in sRGB, as the arguments of `color-mix()`: `color-mix(in srgb, var(--dark-color) 4%, var(--surface-color))`. It still works, with a development warning, and is going away in the next major version. A compound color is the same mix, in every color slot, and `color-mix()` itself covers what a compound can't write. `tasty/prefer-fill-mix` in [`@tenphi/eslint-plugin-tasty`](https://github.com/tenphi/eslint-plugin-tasty) rewrites each mix to the same color.
353
+
354
+ | Before | After |
355
+ |--------|-------|
356
+ | `'#dark 4%, #surface'`, `'#surface, #dark 4%'` | `'#surface+#dark.04'` |
357
+ | `'#accent 10%, #surface+#dark.04'` | `'#surface+#dark.04+#accent.1'` |
358
+ | `'#dark $hover-weight, #surface'` (a percentage) | `'#surface+#dark.$hover-alpha'`, with `$hover-alpha` the opacity as a number — or `'color-mix(in srgb, #dark $hover-weight, #surface)'` |
359
+ | `'#dark, #surface'`, `'rgb(0 0 0) 4%, #surface'`, and any other mix | `'color-mix(in srgb, #dark, #surface)'` — the same parts, in `color-mix()` |
360
+ | `'#dark.04, #surface'` (a translucent part without a percentage) | `'#surface+#dark.04'` |
361
+
362
+ Every rewrite but the last row's is the same color. `'#dark.04, #surface'` mixed a translucent color in by half and came out 52% opaque, so its rewrite paints what it was most likely meant to: `#dark` at 4% over `#surface`.
363
+
352
364
  There is no default fill color, so `fill: true` is ignored with a development warning. Use `false` for no fill.
353
365
 
354
366
  **Related deprecated props:** `backgroundColor` (use `fill`), `background` (overrides all background props when set — avoid).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.205.0",
3
+ "version": "0.206.1",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {
@@ -34,7 +34,8 @@
34
34
  "docs/tasty",
35
35
  "docs/glaze",
36
36
  "docs/*.md",
37
- "tasty.config.ts"
37
+ "tasty.config.ts",
38
+ "tasty.config.generated.ts"
38
39
  ],
39
40
  "keywords": [
40
41
  "uikit"
@@ -59,7 +60,7 @@
59
60
  "@tabler/icons-react": "^3.31.0",
60
61
  "@tanstack/react-virtual": "^3.13.12",
61
62
  "@tenphi/glaze": "2.0.0",
62
- "@tenphi/tasty": "3.15.0",
63
+ "@tenphi/tasty": "3.17.1",
63
64
  "clipboard-copy": "^4.0.1",
64
65
  "clsx": "^1.1.1",
65
66
  "diff": "^8.0.3",
@@ -198,6 +199,7 @@
198
199
  "add-icons": "cd src/icons && node add-new-icon.js && pnpm fix",
199
200
  "audit-docs": "node scripts/audit-docs.mjs",
200
201
  "audit-defaults": "UPDATE_DEFAULTS=1 vitest run src/eslint-plugin/defaults.test.ts && prettier --write src/eslint-plugin/defaults.generated.ts",
202
+ "generate:tasty-config": "UPDATE_TASTY_CONFIG=1 vitest run src/tokens/tasty-config.test.ts && prettier --write tasty.config.generated.ts",
201
203
  "diagnostics:compiler": "node scripts/compiler/report.mjs",
202
204
  "diagnostics:form": "node scripts/form-diagnostics.mjs",
203
205
  "diagnostics:complexity": "node scripts/complexity-report.mjs",
@@ -207,6 +209,7 @@
207
209
  "test:form-compiled": "vitest run --config vitest.form-compiled.config.ts",
208
210
  "diagnostics:hooks": "node scripts/hooks-diagnostics.mjs",
209
211
  "check:react-package": "node scripts/compiler/check-package.mjs",
212
+ "check:component-tokens": "node scripts/check-component-tokens.mjs",
210
213
  "check:consumer-declarations": "node scripts/check-consumer-declarations.mjs"
211
214
  }
212
215
  }