@cube-dev/ui-kit 0.163.0 → 0.165.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (676) hide show
  1. package/README.md +1 -1
  2. package/dist/CHANGELOG.md +394 -0
  3. package/dist/README.md +1 -1
  4. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  5. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  6. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  7. package/dist/_internal/hooks/use-event.js +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  9. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  10. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  11. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/dist/_internal/hooks/use-warn.js +1 -1
  13. package/dist/components/Block.js +1 -1
  14. package/dist/components/CollectionItem.js +1 -1
  15. package/dist/components/GlobalStyles.js +1 -1
  16. package/dist/components/GridProvider.js +1 -1
  17. package/dist/components/HiddenInput.js +1 -1
  18. package/dist/components/Root.d.ts +3 -2
  19. package/dist/components/Root.js +1 -1
  20. package/dist/components/Root.js.map +1 -1
  21. package/dist/components/actions/Action/Action.js +1 -1
  22. package/dist/components/actions/Banner/Banner.js +2 -5
  23. package/dist/components/actions/Banner/Banner.js.map +1 -1
  24. package/dist/components/actions/Button/Button.d.ts +3 -3
  25. package/dist/components/actions/Button/Button.js +8 -5
  26. package/dist/components/actions/Button/Button.js.map +1 -1
  27. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  28. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  29. package/dist/components/actions/ButtonSplit/context.js +1 -1
  30. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  31. package/dist/components/actions/CommandMenu/styled.js +1 -1
  32. package/dist/components/actions/ItemAction/ItemAction.d.ts +2 -2
  33. package/dist/components/actions/ItemAction/ItemAction.js +15 -6
  34. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  35. package/dist/components/actions/ItemActionContext.d.ts +14 -0
  36. package/dist/components/actions/ItemActionContext.js +2 -2
  37. package/dist/components/actions/ItemActionContext.js.map +1 -1
  38. package/dist/components/actions/ItemButton/ItemButton.js +56 -46
  39. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  40. package/dist/components/actions/Link/Link.js +1 -1
  41. package/dist/components/actions/Menu/Menu.js +1 -1
  42. package/dist/components/actions/Menu/MenuItem.js +1 -1
  43. package/dist/components/actions/Menu/MenuSection.js +1 -1
  44. package/dist/components/actions/Menu/MenuTrigger.d.ts +13 -0
  45. package/dist/components/actions/Menu/MenuTrigger.js +27 -15
  46. package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
  47. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  48. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  49. package/dist/components/actions/Menu/context.js +1 -1
  50. package/dist/components/actions/Menu/styled.js +1 -1
  51. package/dist/components/actions/index.js +1 -1
  52. package/dist/components/actions/use-action.js +1 -1
  53. package/dist/components/actions/use-anchored-menu.js +1 -1
  54. package/dist/components/actions/use-context-menu.js +1 -1
  55. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  56. package/dist/components/content/Alert/Alert.js +1 -1
  57. package/dist/components/content/Alert/use-alert.js +1 -1
  58. package/dist/components/content/Avatar/Avatar.js +1 -1
  59. package/dist/components/content/Badge/Badge.js +1 -1
  60. package/dist/components/content/Card/Card.js +1 -1
  61. package/dist/components/content/Content.js +1 -1
  62. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  63. package/dist/components/content/CopySnippet/CopySnippet.d.ts +10 -0
  64. package/dist/components/content/CopySnippet/CopySnippet.js +7 -4
  65. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  66. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  67. package/dist/components/content/Divider.js +1 -1
  68. package/dist/components/content/Footer.js +1 -1
  69. package/dist/components/content/Header.js +1 -1
  70. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  71. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  72. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  73. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  74. package/dist/components/content/Item/Item.d.ts +2 -2
  75. package/dist/components/content/Item/Item.js +13 -58
  76. package/dist/components/content/Item/Item.js.map +1 -1
  77. package/dist/components/content/ItemBadge/ItemBadge.d.ts +1 -1
  78. package/dist/components/content/ItemBadge/ItemBadge.js +7 -4
  79. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  80. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  81. package/dist/components/content/Layout/GridLayout.js +1 -1
  82. package/dist/components/content/Layout/Layout.js +1 -1
  83. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  84. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  85. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  86. package/dist/components/content/Layout/LayoutContent.js +1 -1
  87. package/dist/components/content/Layout/LayoutContext.js +1 -1
  88. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  89. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  90. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  91. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  92. package/dist/components/content/Layout/LayoutPane.js +1 -1
  93. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  94. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  95. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  96. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  97. package/dist/components/content/Layout/index.js +1 -1
  98. package/dist/components/content/Layout/utils.js +1 -1
  99. package/dist/components/content/Paragraph.js +1 -1
  100. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  101. package/dist/components/content/PrismCode/PrismCode.d.ts +6 -0
  102. package/dist/components/content/PrismCode/PrismCode.js +12 -3
  103. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  104. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  105. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  106. package/dist/components/content/Result/Result.js +1 -1
  107. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  108. package/dist/components/content/Tag/Tag.js +1 -1
  109. package/dist/components/content/Text.d.ts +14 -14
  110. package/dist/components/content/Text.js +1 -1
  111. package/dist/components/content/TextItem/TextItem.js +1 -1
  112. package/dist/components/content/Title.js +1 -1
  113. package/dist/components/content/Tree/Tree.js +1 -1
  114. package/dist/components/content/Tree/TreeNode.js +1 -1
  115. package/dist/components/content/Tree/styled.js +1 -1
  116. package/dist/components/content/Tree/tree-index.js +1 -1
  117. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  118. package/dist/components/content/Tree/use-load-data.js +1 -1
  119. package/dist/components/content/highlightText.js +1 -1
  120. package/dist/components/content/use-auto-tooltip.js +1 -1
  121. package/dist/components/data/DataTable/DataTable.js +140 -21
  122. package/dist/components/data/DataTable/DataTable.js.map +1 -1
  123. package/dist/components/data/DataTable/index.d.ts +1 -1
  124. package/dist/components/data/DataTable/types.d.ts +19 -4
  125. package/dist/components/data/ItemTable/ItemTable.js +169 -25
  126. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  127. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  128. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  129. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  130. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  131. package/dist/components/data/ItemTable/types.d.ts +7 -2
  132. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  133. package/dist/components/data/TableBase/RowCollection.js +1 -1
  134. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  135. package/dist/components/data/TableBase/TableRow.js +30 -5
  136. package/dist/components/data/TableBase/TableRow.js.map +1 -1
  137. package/dist/components/data/TableBase/TableView.d.ts +2 -1
  138. package/dist/components/data/TableBase/TableView.js +299 -75
  139. package/dist/components/data/TableBase/TableView.js.map +1 -1
  140. package/dist/components/data/TableBase/column-menu.js +1 -1
  141. package/dist/components/data/TableBase/column-tint.js +12 -2
  142. package/dist/components/data/TableBase/column-tint.js.map +1 -1
  143. package/dist/components/data/TableBase/index.d.ts +1 -1
  144. package/dist/components/data/TableBase/row-menu.js +1 -1
  145. package/dist/components/data/TableBase/styled.d.ts +1 -2
  146. package/dist/components/data/TableBase/styled.js +75 -2
  147. package/dist/components/data/TableBase/styled.js.map +1 -1
  148. package/dist/components/data/TableBase/table-tree.js +129 -0
  149. package/dist/components/data/TableBase/table-tree.js.map +1 -0
  150. package/dist/components/data/TableBase/types.d.ts +46 -1
  151. package/dist/components/data/TableBase/types.js +1 -1
  152. package/dist/components/data/TableBase/types.js.map +1 -1
  153. package/dist/components/data/TableBase/use-cell-selection.d.ts +0 -1
  154. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  155. package/dist/components/data/TableBase/use-column-order.js +1 -1
  156. package/dist/components/data/TableBase/use-container-width.js +1 -1
  157. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  158. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  159. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  160. package/dist/components/data/TableBase/use-table-search.js +4 -4
  161. package/dist/components/data/TableBase/use-table-search.js.map +1 -1
  162. package/dist/components/data/TableBase/use-table-selection.js +124 -24
  163. package/dist/components/data/TableBase/use-table-selection.js.map +1 -1
  164. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  165. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  166. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  167. package/dist/components/data/TableBase/use-table-tree-state.js +107 -0
  168. package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -0
  169. package/dist/components/data/index.d.ts +2 -2
  170. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  171. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  172. package/dist/components/fields/Checkbox/context.js +1 -1
  173. package/dist/components/fields/ColorInput/ColorInput.js +12 -7
  174. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  175. package/dist/components/fields/ColorPicker/ColorPicker.js +3 -2
  176. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  177. package/dist/components/fields/{color → ColorSwatch}/ColorSwatch.d.ts +8 -2
  178. package/dist/components/fields/{color → ColorSwatch}/ColorSwatch.js +14 -6
  179. package/dist/components/fields/ColorSwatch/ColorSwatch.js.map +1 -0
  180. package/dist/components/fields/ColorSwatch/index.d.ts +2 -0
  181. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  182. package/dist/components/fields/ComboBox/ComboBox.js +2 -6
  183. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  184. package/dist/components/fields/CommandTextArea/CommandTextArea.js +8 -25
  185. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  186. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  187. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  188. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  189. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  190. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  191. package/dist/components/fields/DatePicker/DatePickerButton.js +32 -2
  192. package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
  193. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  194. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  195. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  196. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  197. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  198. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  199. package/dist/components/fields/DatePicker/PeriodPicker.js +3 -2
  200. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  201. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  202. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  203. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  204. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  205. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  206. package/dist/components/fields/DatePicker/period.js +1 -1
  207. package/dist/components/fields/DatePicker/props.js +1 -1
  208. package/dist/components/fields/DatePicker/utils.js +1 -1
  209. package/dist/components/fields/FileInput/FileInput.js +1 -1
  210. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  211. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  212. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  213. package/dist/components/fields/Input/Input.js +1 -1
  214. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  215. package/dist/components/fields/ListBox/ListBox.js +1 -1
  216. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  217. package/dist/components/fields/ListBoxPopover/index.d.ts +0 -1
  218. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  219. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  220. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  221. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  222. package/dist/components/fields/PasswordInput/PasswordInput.js +9 -6
  223. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  224. package/dist/components/fields/Picker/Picker.js +1 -1
  225. package/dist/components/fields/Picker/Picker.js.map +1 -1
  226. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  227. package/dist/components/fields/RadioGroup/RadioGroup.js +2 -1
  228. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  229. package/dist/components/fields/RadioGroup/context.js +1 -1
  230. package/dist/components/fields/SearchComboBox/SearchComboBox.js +2 -6
  231. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  232. package/dist/components/fields/SearchInput/SearchInput.js +18 -16
  233. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  234. package/dist/components/fields/Select/Select.js +3 -6
  235. package/dist/components/fields/Select/Select.js.map +1 -1
  236. package/dist/components/fields/Slider/Gradation.js +1 -1
  237. package/dist/components/fields/Slider/HueSlider.js +15 -2
  238. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  239. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  240. package/dist/components/fields/Slider/Slider.js +1 -1
  241. package/dist/components/fields/Slider/SliderBase.js +1 -1
  242. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  243. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  244. package/dist/components/fields/Slider/elements.js +1 -1
  245. package/dist/components/fields/Slider/index.js +1 -1
  246. package/dist/components/fields/Switch/Switch.js +1 -1
  247. package/dist/components/fields/TextArea/TextArea.js +10 -29
  248. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  249. package/dist/components/fields/TextInput/TextInput.js +1 -1
  250. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  251. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +146 -0
  252. package/dist/components/fields/TextInput/useAutoSizeTextArea.js.map +1 -0
  253. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  254. package/dist/components/fields/color/ColorPanel.js +1 -1
  255. package/dist/components/fields/color/channels.js +1 -1
  256. package/dist/components/fields/color/color.js +4 -4
  257. package/dist/components/fields/color/color.js.map +1 -1
  258. package/dist/components/fields/color/context.js +1 -1
  259. package/dist/components/fields/color/index.d.ts +0 -1
  260. package/dist/components/fields/index.d.ts +2 -1
  261. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  262. package/dist/components/form/Form/Field.js +1 -1
  263. package/dist/components/form/Form/Form.js +1 -1
  264. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  265. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  266. package/dist/components/form/Form/SubmitError.js +1 -1
  267. package/dist/components/form/Form/index.js +1 -1
  268. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  269. package/dist/components/form/Form/use-field/use-field.js +1 -1
  270. package/dist/components/form/Form/use-form.js +1 -1
  271. package/dist/components/form/Form/validation.js +1 -1
  272. package/dist/components/form/Label.js +1 -1
  273. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  274. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  275. package/dist/components/form/validation/use-validation-props.js +1 -1
  276. package/dist/components/form/wrapper.js +1 -1
  277. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  278. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  279. package/dist/components/layout/Board/Board.d.ts +38 -5
  280. package/dist/components/layout/Board/Board.js +11 -5
  281. package/dist/components/layout/Board/Board.js.map +1 -1
  282. package/dist/components/layout/Board/BoardProvider.js +1 -1
  283. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  284. package/dist/components/layout/Board/Widget.d.ts +16 -1
  285. package/dist/components/layout/Board/Widget.js +3 -2
  286. package/dist/components/layout/Board/Widget.js.map +1 -1
  287. package/dist/components/layout/Board/WidgetHost.js +92 -17
  288. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  289. package/dist/components/layout/Board/board-context.js +5 -5
  290. package/dist/components/layout/Board/board-context.js.map +1 -1
  291. package/dist/components/layout/Board/board-store.d.ts +1 -0
  292. package/dist/components/layout/Board/board-store.js +2 -2
  293. package/dist/components/layout/Board/board-store.js.map +1 -1
  294. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  295. package/dist/components/layout/Board/grid-core/collision-modes.js +186 -0
  296. package/dist/components/layout/Board/grid-core/collision-modes.js.map +1 -0
  297. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  298. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  299. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  300. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  301. package/dist/components/layout/Board/grid-core/layout.js +12 -2
  302. package/dist/components/layout/Board/grid-core/layout.js.map +1 -1
  303. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  304. package/dist/components/layout/Board/grid-core/types.d.ts +19 -1
  305. package/dist/components/layout/Board/index.d.ts +2 -2
  306. package/dist/components/layout/Board/index.js +1 -1
  307. package/dist/components/layout/Board/index.js.map +1 -1
  308. package/dist/components/layout/Board/responsive-utils.js +1 -1
  309. package/dist/components/layout/Board/use-board-layout.js +1 -1
  310. package/dist/components/layout/Board/use-board-registry.js +137 -47
  311. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  312. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  313. package/dist/components/layout/Board/use-board-selection.js +1 -1
  314. package/dist/components/layout/Flex.js +1 -1
  315. package/dist/components/layout/Flow.js +1 -1
  316. package/dist/components/layout/Grid.js +1 -1
  317. package/dist/components/layout/Panel.js +1 -1
  318. package/dist/components/layout/Prefix.js +1 -1
  319. package/dist/components/layout/ResizablePanel.js +1 -1
  320. package/dist/components/layout/Space.js +1 -1
  321. package/dist/components/layout/Suffix.js +1 -1
  322. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  323. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  324. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  325. package/dist/components/navigation/Tabs/TabButton.js +2 -29
  326. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  327. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  328. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  329. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  330. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  331. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  332. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  333. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  334. package/dist/components/navigation/Tabs/styled.js +1 -1
  335. package/dist/components/navigation/Tabs/types.js +1 -1
  336. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  337. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  338. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  339. package/dist/components/other/Calendar/Calendar.js +1 -1
  340. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  341. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  342. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  343. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  344. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  345. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  346. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  347. package/dist/components/other/Calendar/styled.js +1 -1
  348. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  349. package/dist/components/other/NoDataIcon/NoDataIcon.d.ts +37 -0
  350. package/dist/components/other/NoDataIcon/NoDataIcon.js +56 -0
  351. package/dist/components/other/NoDataIcon/NoDataIcon.js.map +1 -0
  352. package/dist/components/other/NoDataIcon/index.d.ts +2 -0
  353. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  354. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  355. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  356. package/dist/components/overlays/Dialog/Dialog.js +4 -3
  357. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  358. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  359. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  360. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +13 -0
  361. package/dist/components/overlays/Dialog/DialogTrigger.js +24 -5
  362. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  363. package/dist/components/overlays/Dialog/context.js +1 -1
  364. package/dist/components/overlays/Dialog/context.js.map +1 -1
  365. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  366. package/dist/components/overlays/Modal/Modal.d.ts +1 -2
  367. package/dist/components/overlays/Modal/Modal.js +1 -1
  368. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  369. package/dist/components/overlays/Modal/Overlay.d.ts +0 -1
  370. package/dist/components/overlays/Modal/Overlay.js +1 -1
  371. package/dist/components/overlays/Modal/Popover.js +1 -1
  372. package/dist/components/overlays/Modal/Tray.js +1 -1
  373. package/dist/components/overlays/Modal/Underlay.js +1 -1
  374. package/dist/components/overlays/Modal/types.d.ts +0 -1
  375. package/dist/components/overlays/Notifications/Notification.js +1 -1
  376. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  377. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  378. package/dist/components/overlays/Notifications/NotificationContext.d.ts +0 -2
  379. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  380. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  381. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  382. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  383. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  384. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  385. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  386. package/dist/components/overlays/Notifications/index.js +1 -1
  387. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  388. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  389. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  390. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  391. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  392. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  393. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  394. package/dist/components/overlays/Toast/index.js +1 -1
  395. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  396. package/dist/components/overlays/Toast/useToast.js +1 -1
  397. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  398. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  399. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  400. package/dist/components/overlays/Tooltip/context.js +1 -1
  401. package/dist/components/portal/Portal.js +1 -1
  402. package/dist/components/portal/PortalProvider.js +1 -1
  403. package/dist/components/portal/index.d.ts +0 -1
  404. package/dist/components/portal/usePortal.js +1 -1
  405. package/dist/components/shared/DraggableCollection.js +1 -1
  406. package/dist/components/shared/InvalidIcon.js +1 -1
  407. package/dist/components/shared/ValidIcon.js +1 -1
  408. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  409. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  410. package/dist/components/status/Spin/Cube.js +1 -1
  411. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  412. package/dist/components/status/Spin/Spin.js +1 -1
  413. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  414. package/dist/data/item-themes.d.ts +1 -1
  415. package/dist/data/item-themes.js +217 -46
  416. package/dist/data/item-themes.js.map +1 -1
  417. package/dist/data/themes.js +1 -1
  418. package/dist/eslint-plugin/defaults.generated.js +41 -13
  419. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  420. package/dist/eslint-plugin/index.js +1 -1
  421. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  422. package/dist/i18n/I18nProvider.js +1 -1
  423. package/dist/i18n/createFormatter.js +1 -1
  424. package/dist/i18n/index.js +1 -1
  425. package/dist/i18n/instance.js +1 -1
  426. package/dist/i18n/locales/de-DE/uikit.js +2 -1
  427. package/dist/i18n/locales/en-US/uikit.js +2 -1
  428. package/dist/i18n/locales/en-US/uikit.json.d.ts +1 -0
  429. package/dist/i18n/locales/es-ES/uikit.js +2 -1
  430. package/dist/i18n/locales/es-MX/uikit.js +2 -1
  431. package/dist/i18n/locales/fr-FR/uikit.js +2 -1
  432. package/dist/i18n/locales/it-IT/uikit.js +2 -1
  433. package/dist/i18n/locales/ja-JP/uikit.js +2 -1
  434. package/dist/i18n/locales/nb-NO/uikit.js +2 -1
  435. package/dist/i18n/locales/pt-BR/uikit.js +2 -1
  436. package/dist/i18n/locales/pt-PT/uikit.js +2 -1
  437. package/dist/i18n/locales/sv-SE/uikit.js +2 -1
  438. package/dist/i18n/locales/vi-VN/uikit.js +2 -1
  439. package/dist/i18n/locales.js +1 -1
  440. package/dist/i18n/useFormatter.js +1 -1
  441. package/dist/i18n/useI18n.js +1 -1
  442. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  443. package/dist/icons/AdjustmentsIcon.js +1 -1
  444. package/dist/icons/AiIcon.js +1 -1
  445. package/dist/icons/AreaChartIcon.js +1 -1
  446. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  447. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  448. package/dist/icons/BackwardIcon.js +1 -1
  449. package/dist/icons/BarChartIcon.js +1 -1
  450. package/dist/icons/BellFilledIcon.js +1 -1
  451. package/dist/icons/BellIcon.js +1 -1
  452. package/dist/icons/BooleanIcon.js +1 -1
  453. package/dist/icons/CalendarEditIcon.js +1 -1
  454. package/dist/icons/CalendarIcon.js +1 -1
  455. package/dist/icons/CaretDownIcon.js +1 -1
  456. package/dist/icons/CaretUpIcon.js +1 -1
  457. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  458. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  459. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  460. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  461. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  462. package/dist/icons/ChartBarLineIcon.js +1 -1
  463. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  464. package/dist/icons/ChartBarStackedIcon.js +1 -1
  465. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  466. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  467. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  468. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  469. package/dist/icons/ChartBubbleIcon.js +1 -1
  470. package/dist/icons/ChartDonut2Icon.js +1 -1
  471. package/dist/icons/ChartFunnelIcon.js +1 -1
  472. package/dist/icons/ChartHeatmapIcon.js +1 -1
  473. package/dist/icons/ChartKPIIcon.js +1 -1
  474. package/dist/icons/ChartPie2Icon.js +1 -1
  475. package/dist/icons/ChartScatterIcon.js +1 -1
  476. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  477. package/dist/icons/CheckCircleIcon.js +1 -1
  478. package/dist/icons/CheckIcon.js +1 -1
  479. package/dist/icons/CircleFilledIcon.js +1 -1
  480. package/dist/icons/ClearIcon.js +1 -1
  481. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  482. package/dist/icons/CloseCircleIcon.js +1 -1
  483. package/dist/icons/CloseIcon.js +1 -1
  484. package/dist/icons/CodeIcon.js +1 -1
  485. package/dist/icons/ColumnTotalIcon.js +1 -1
  486. package/dist/icons/CopyIcon.js +1 -1
  487. package/dist/icons/CountIcon.js +1 -1
  488. package/dist/icons/CubeIcon.js +1 -1
  489. package/dist/icons/CubePauseIcon.js +1 -1
  490. package/dist/icons/CubePlayIcon.js +1 -1
  491. package/dist/icons/CurrencyDollarIcon.js +1 -1
  492. package/dist/icons/DangerIcon.js +1 -1
  493. package/dist/icons/DashboardIcon.js +1 -1
  494. package/dist/icons/DatabaseIcon.js +1 -1
  495. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  496. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  497. package/dist/icons/DirectionIcon.js +1 -1
  498. package/dist/icons/DonutIcon.js +1 -1
  499. package/dist/icons/DownIcon.js +1 -1
  500. package/dist/icons/EditIcon.js +1 -1
  501. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  502. package/dist/icons/ExclamationCircleIcon.js +1 -1
  503. package/dist/icons/ExclamationIcon.js +1 -1
  504. package/dist/icons/EyeIcon.js +1 -1
  505. package/dist/icons/EyeInvisibleIcon.js +1 -1
  506. package/dist/icons/FilterIcon.js +1 -1
  507. package/dist/icons/FolderFilledIcon.js +1 -1
  508. package/dist/icons/FolderIcon.js +1 -1
  509. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  510. package/dist/icons/FolderOpenIcon.js +1 -1
  511. package/dist/icons/ForwardIcon.js +1 -1
  512. package/dist/icons/GripVerticalIcon.js +1 -1
  513. package/dist/icons/HierarchyIcon.js +1 -1
  514. package/dist/icons/HierarchyOpenIcon.js +1 -1
  515. package/dist/icons/Icon.js +1 -1
  516. package/dist/icons/InfoCircleIcon.js +1 -1
  517. package/dist/icons/InfoIcon.js +1 -1
  518. package/dist/icons/KeyIcon.js +1 -1
  519. package/dist/icons/LeftIcon.js +1 -1
  520. package/dist/icons/LineChartIcon.js +1 -1
  521. package/dist/icons/LoadingIcon.js +1 -1
  522. package/dist/icons/LockFilledIcon.js +1 -1
  523. package/dist/icons/LockIcon.js +1 -1
  524. package/dist/icons/MoreIcon.js +1 -1
  525. package/dist/icons/NotAllowedIcon.js +1 -1
  526. package/dist/icons/Number123Icon.js +1 -1
  527. package/dist/icons/NumberIcon.js +1 -1
  528. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  529. package/dist/icons/PauseCircleIcon.js +1 -1
  530. package/dist/icons/PauseIcon.js +1 -1
  531. package/dist/icons/PercentageIcon.js +1 -1
  532. package/dist/icons/PieChartIcon.js +1 -1
  533. package/dist/icons/PipetteIcon.js +1 -1
  534. package/dist/icons/PlayCircleIcon.js +1 -1
  535. package/dist/icons/PlayIcon.js +1 -1
  536. package/dist/icons/PlusIcon.js +1 -1
  537. package/dist/icons/ProgressBarIcon.js +1 -1
  538. package/dist/icons/ReloadIcon.js +1 -1
  539. package/dist/icons/ReportIcon.js +1 -1
  540. package/dist/icons/ReturnIcon.js +1 -1
  541. package/dist/icons/RightIcon.js +1 -1
  542. package/dist/icons/RowTotalsIcon.js +1 -1
  543. package/dist/icons/SchemeIcon.js +1 -1
  544. package/dist/icons/SearchIcon.js +1 -1
  545. package/dist/icons/SemanticQueryIcon.js +1 -1
  546. package/dist/icons/SettingsIcon.js +1 -1
  547. package/dist/icons/ShieldFilledIcon.js +1 -1
  548. package/dist/icons/ShieldIcon.js +1 -1
  549. package/dist/icons/SlashIcon.js +1 -1
  550. package/dist/icons/SparklesIcon.js +1 -1
  551. package/dist/icons/SqlIcon.js +1 -1
  552. package/dist/icons/StatsIcon.js +1 -1
  553. package/dist/icons/StopIcon.js +1 -1
  554. package/dist/icons/StringIcon.js +1 -1
  555. package/dist/icons/SubtotalsIcon.js +1 -1
  556. package/dist/icons/SwitchIcon.js +1 -1
  557. package/dist/icons/TableIcon.js +1 -1
  558. package/dist/icons/ThumbsDownIcon.js +1 -1
  559. package/dist/icons/ThumbsUpIcon.js +1 -1
  560. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  561. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  562. package/dist/icons/ThunderboltIcon.js +1 -1
  563. package/dist/icons/TimeIcon.js +1 -1
  564. package/dist/icons/TrashIcon.js +1 -1
  565. package/dist/icons/UnlockIcon.js +1 -1
  566. package/dist/icons/UpIcon.js +1 -1
  567. package/dist/icons/UserGroupIcon.js +1 -1
  568. package/dist/icons/UserIcon.js +1 -1
  569. package/dist/icons/UserLockIcon.js +1 -1
  570. package/dist/icons/ViewIcon.js +1 -1
  571. package/dist/icons/WarningFilledIcon.js +1 -1
  572. package/dist/icons/WarningIcon.js +1 -1
  573. package/dist/icons/wrap-icon.js +1 -1
  574. package/dist/index.d.ts +10 -7
  575. package/dist/index.js +6 -4
  576. package/dist/index.js.map +1 -1
  577. package/dist/probe/canonicalize.js +1 -1
  578. package/dist/probe/css.js +1 -1
  579. package/dist/probe/index.js +1 -1
  580. package/dist/provider.js +1 -1
  581. package/dist/providers/TrackingProvider.js +1 -1
  582. package/dist/providers/navigationAdapter.default.js +1 -1
  583. package/dist/tokens/base.js +1 -1
  584. package/dist/tokens/color-seed.d.ts +44 -0
  585. package/dist/tokens/color-seed.js +48 -0
  586. package/dist/tokens/color-seed.js.map +1 -0
  587. package/dist/tokens/color-theme.d.ts +9 -1
  588. package/dist/tokens/color-theme.js +20 -7
  589. package/dist/tokens/color-theme.js.map +1 -1
  590. package/dist/tokens/colors.js +20 -3
  591. package/dist/tokens/colors.js.map +1 -1
  592. package/dist/tokens/index.d.ts +2 -1
  593. package/dist/tokens/index.js +3 -2
  594. package/dist/tokens/index.js.map +1 -1
  595. package/dist/tokens/layout.js +1 -1
  596. package/dist/tokens/lazy-styles.js +1 -1
  597. package/dist/tokens/palette-config.d.ts +304 -77
  598. package/dist/tokens/palette-config.js +188 -49
  599. package/dist/tokens/palette-config.js.map +1 -1
  600. package/dist/tokens/palette.js +617 -163
  601. package/dist/tokens/palette.js.map +1 -1
  602. package/dist/tokens/shadows.js +1 -1
  603. package/dist/tokens/sizes.js +1 -1
  604. package/dist/tokens/spacing.js +1 -1
  605. package/dist/tokens/typography.js +1 -1
  606. package/dist/utils/ResizeSensor.js +1 -1
  607. package/dist/utils/is-dev-env.js +1 -1
  608. package/dist/utils/modules.js +1 -1
  609. package/dist/utils/promise.js +1 -1
  610. package/dist/utils/raf.js +1 -1
  611. package/dist/utils/random.js +1 -1
  612. package/dist/utils/range.js +1 -1
  613. package/dist/utils/react/RenderCache.js +1 -1
  614. package/dist/utils/react/Slots.js +1 -1
  615. package/dist/utils/react/chain.js +1 -1
  616. package/dist/utils/react/disabledProps.js +1 -1
  617. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  618. package/dist/utils/react/index.js +1 -1
  619. package/dist/utils/react/interactions.js +1 -1
  620. package/dist/utils/react/isTextOnly.js +1 -1
  621. package/dist/utils/react/mapProps.js +1 -1
  622. package/dist/utils/react/mergeProps.js +1 -1
  623. package/dist/utils/react/nullableValue.js +1 -1
  624. package/dist/utils/react/resolveIcon.js +1 -1
  625. package/dist/utils/react/sharedStore.js +1 -1
  626. package/dist/utils/react/useBufferedValue.js +1 -1
  627. package/dist/utils/react/useCombinedRefs.js +1 -1
  628. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  629. package/dist/utils/react/useEventBus.js +1 -1
  630. package/dist/utils/react/useId.js +1 -1
  631. package/dist/utils/react/useIsDarwin.js +1 -1
  632. package/dist/utils/react/useKeySymbols.js +1 -1
  633. package/dist/utils/react/useLayoutEffect.js +1 -1
  634. package/dist/utils/react/useLocalStorage.js +1 -1
  635. package/dist/utils/react/useMergeStyles.js +1 -1
  636. package/dist/utils/react/usePopoverSync.js +1 -1
  637. package/dist/utils/react/useQaProps.js +1 -1
  638. package/dist/utils/react/useViewportSize.js +1 -1
  639. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  640. package/dist/utils/selection.js +1 -1
  641. package/dist/utils/styles.js +1 -1
  642. package/dist/utils/tree.js +1 -1
  643. package/dist/utils/warnings.js +1 -1
  644. package/dist/version.js +3 -3
  645. package/docs/Introduction.md +85 -97
  646. package/docs/Theming.md +471 -83
  647. package/docs/Usage.md +63 -2
  648. package/docs/components/Root.md +1 -1
  649. package/docs/components/actions/Button.md +9 -3
  650. package/docs/components/actions/ItemAction.md +3 -3
  651. package/docs/components/actions/MenuTrigger.md +54 -2
  652. package/docs/components/actions/SubMenuTrigger.md +2 -2
  653. package/docs/components/content/CopySnippet.md +5 -5
  654. package/docs/components/content/InlineInput.md +1 -1
  655. package/docs/components/content/Item.md +10 -10
  656. package/docs/components/content/ItemBadge.md +2 -2
  657. package/docs/components/content/PrismCode.md +1 -0
  658. package/docs/components/data/DataTable.md +110 -11
  659. package/docs/components/data/ItemTable.md +63 -1
  660. package/docs/components/fields/ColorSwatch.md +155 -0
  661. package/docs/components/layout/Board.md +21 -2
  662. package/docs/components/other/NoDataIcon.md +48 -0
  663. package/docs/components/overlays/DialogTrigger.md +3 -2
  664. package/docs/components/status/LoadingAnimation.md +12 -0
  665. package/docs/glaze/api.md +155 -47
  666. package/docs/glaze/methodology.md +15 -13
  667. package/docs/glaze/migration.md +36 -0
  668. package/docs/glaze/okhst.md +4 -0
  669. package/docs/tasty/ai-agents.md +3 -0
  670. package/docs/tasty/configuration.md +11 -6
  671. package/docs/tasty/dsl.md +99 -2
  672. package/docs/tasty/styles.md +3 -1
  673. package/package.json +3 -3
  674. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +0 -2
  675. package/dist/components/fields/color/ColorSwatch.js.map +0 -1
  676. package/dist/components/portal/PortalProvider.d.ts +0 -2
package/docs/Usage.md CHANGED
@@ -142,6 +142,33 @@ The neutral palette uses a `surface` / `surface-text` model. Each surface depth
142
142
  | `#overlay` | Dim backdrop (50% transparent) |
143
143
  | `#clear` | `transparent` |
144
144
 
145
+ ### Context Hooks
146
+
147
+ Tokens a **container** sets to steer a component that cannot resolve the color on
148
+ its own. They ship with a default, so nothing has to be set unless the default is
149
+ wrong.
150
+
151
+ | Token | Default | Role |
152
+ |-------|---------|------|
153
+ | `#current-fill` | `#surface` | The label color `current.primary` punches out of its `currentcolor` chip — read by that one flavour and nothing else |
154
+
155
+ `theme="current" type="primary"` fills with the color it **inherits**, so its
156
+ label cannot come from that color too and reads `#current-fill` instead. The page
157
+ (`#surface`) is the right answer almost everywhere, and wrong in exactly one
158
+ place: a container whose own text color is the page paints `#white`, which *is*
159
+ `#surface` in light mode, so the label would vanish into its own chip. Such a container sets
160
+ the token to its own fill, which contrasts with its own text by construction:
161
+
162
+ ```jsx
163
+ <Block fill="#fixed-dark" color="#white" styles={{ '#current-fill': '#fixed-dark' }}>
164
+ <Button theme="current" type="primary">Legible in both schemes</Button>
165
+ </Block>
166
+ ```
167
+
168
+ Setting it moves the label, the icon slots and the chip's rim together. It also
169
+ takes the alpha suffix like any other token (`#current-fill.5` is the disabled
170
+ label), because it is a declared token rather than a bare custom property.
171
+
145
172
  ### Accent System
146
173
 
147
174
  Each themed color (default, primary, success, danger, warning, note) provides an `accent-*` family anchored to a fixed white "accent surface text". These tokens stay recognizable across schemes (used for branded buttons, CTAs, etc.):
@@ -179,7 +206,7 @@ For example, a success banner uses `fill: '#success-surface'` + `color: '#succes
179
206
  ```ts
180
207
  import { resetPaletteConfig, setPaletteConfig } from '@cube-dev/ui-kit';
181
208
 
182
- setPaletteConfig({ hue: 210, themes: { danger: { hue: 12 } } });
209
+ setPaletteConfig({ accent: { hue: 210 }, themes: { danger: '#b91c1c' } });
183
210
  resetPaletteConfig();
184
211
  ```
185
212
 
@@ -188,7 +215,7 @@ Also available: `getPaletteConfig()`, `subscribePaletteConfig()`, the `usePalett
188
215
  To theme a *region* instead of the document — a theme preview, or a dark panel inside a light page — use `renderColorTokens()`. It resolves one config and one scheme to flat values you apply via a `tokens` prop, without touching the live palette:
189
216
 
190
217
  ```tsx
191
- <Block tokens={renderColorTokens({ hue: 210, scheme: 'dark' })} fill="#surface">
218
+ <Block tokens={renderColorTokens({ accent: { hue: 210 }, scheme: 'dark' })} fill="#surface">
192
219
 
193
220
  </Block>
194
221
  ```
@@ -306,6 +333,7 @@ Component themes are set via the `theme` prop or `theme=name` modifier:
306
333
  | `success` | Success / positive states |
307
334
  | `warning` | Warning / caution states |
308
335
  | `note` | Informational / note states |
336
+ | `current` | No palette of its own — every color is mixed from the inherited text color (`#current`), so the component adopts whatever its container paints with. Supported by `Button`, `Item` (and `ItemButton`, `Item.Action`, `ItemBadge`) |
309
337
 
310
338
  ## Recipes
311
339
 
@@ -367,6 +395,39 @@ Icons live in `src/icons/`. Use existing icons when possible; otherwise use `@ta
367
395
  - Always wrap tabler icons with `<Icon>` for custom size/color. Never add props directly to tabler icons.
368
396
  - To add new icons run: `pnpm add-icons`
369
397
 
398
+ Illustrations are not icons and do not live in `src/icons/`: `CubeLogo` and
399
+ `NoDataIcon` are `Icon`-based components under `src/components/other/`. They size
400
+ like an icon, but `NoDataIcon` is a three-tone drawing on the shared cube-face
401
+ tokens (`#loading-face-1` … `#loading-face-3`) rather than a `currentColor`
402
+ glyph, so it ignores `color` and belongs at illustration sizes (`size="8x"` and
403
+ up).
404
+
405
+ ## Hierarchical Table Rows
406
+
407
+ `ItemTable` and `DataTable` opt into native treegrid behavior with
408
+ `getRowChildren`. Pass roots in `data`; the callback returns already-loaded
409
+ children, and row keys must be globally unique. Expansion is uncontrolled with
410
+ `defaultExpandedKeys` or controlled with `expandedKeys` / `onExpand`.
411
+
412
+ The shared table engine recursively sorts siblings, paginates roots with their
413
+ complete subtrees, and flattens only expanded rows for rendering and
414
+ virtualization. ItemTable client search preserves ancestor paths and temporarily
415
+ opens branches containing matches. Server modes do not transform nested data.
416
+
417
+ Use `treeColumnKey` to choose the disclosure/indent column. Its hierarchy chrome
418
+ is customizable through the `TreeContent`, `TreeToggle`, and `TreeValue`
419
+ sub-elements. ItemTable multiple selection cascades by default; DataTable cell
420
+ ranges contain visible rows only. See each component's docs for pagination,
421
+ numbering, selection, and drag/drop limits.
422
+
423
+ DataTable also accepts nested column definitions for already-shaped pivot
424
+ results. Group nodes create accessible multi-row headers with native column
425
+ spans, while sorting, resizing, ranges and copying continue to operate on their
426
+ leaf columns. Both tables fill an available flex pane by default; use
427
+ `isAutoHeight` for a compact result whose frame should end at its last rendered
428
+ row. Auto-height renders every row, so bounded tables remain the right choice
429
+ for large results.
430
+
370
431
  ## Form System
371
432
 
372
433
  ### Form Component
@@ -13,7 +13,7 @@ The root application wrapper. Provides theme context, global styles, portal cont
13
13
  - **`navigation`** `NavigationAdapter` — Custom navigation adapter for routing
14
14
  - **`tracking`** `TrackingProps` — Analytics/tracking event configuration
15
15
  - **`tokens`** `Record<string, string>` — Custom design tokens (CSS custom properties)
16
- - **`palette`** `PaletteConfig` — Tune the generated color palette: brand `hue` / `saturation`, per-status theme seeds, `pastel`, `contrastLevel`. Applied during render, so the first paint is already correct. Describes the whole palette, so dropping a field drops that customization. A convenience wrapper over `setPaletteConfig()` — the palette is process-global, not per tree. See [Theming](../Theming.md)
16
+ - **`palette`** `PaletteConfig` — Tune the generated color palette. Every zone `accent`, `base` and each status theme — takes the same seed: a color, or `{ hue, saturation }`. Plus the global `surfaceMode`, `pastel` and `contrastLevel`. Applied during render, so the first paint is already correct. Describes the whole palette, so dropping a field drops that customization. A convenience wrapper over `setPaletteConfig()` — the palette is process-global, not per tree. See [Theming](../Theming.md)
17
17
  - **`fonts`** `boolean` — Whether to load default fonts
18
18
  - **`font`** `string` — Custom font family name
19
19
  - **`monospaceFont`** `string` — Custom monospace font family name
@@ -15,8 +15,8 @@ A versatile action component that triggers commands and navigates users.
15
15
 
16
16
  ## Properties
17
17
 
18
- - **`type`** `'primary' | 'outline' | 'outline-2' | 'clear' | 'link' | 'current'` (default: `outline`) — Visual style variant of the button (`outline-2` is identical to `outline` but uses `#surface-3` as the base fill; not available for the `special` theme. `current` derives its colors from the inherited text color and ignores `theme`)
19
- - **`theme`** `'default' | 'danger' | 'success' | 'warning' | 'note' | 'special'` (default: `default`) — Semantic colour palette theme
18
+ - **`type`** `'primary' | 'outline' | 'outline-2' | 'clear' | 'link'` (default: `outline`) — Visual style variant of the button (`outline-2` is identical to `outline` but uses `#surface-3` as the base fill; not available for the `special` theme)
19
+ - **`theme`** `'default' | 'danger' | 'success' | 'warning' | 'note' | 'special' | 'current'` (default: `default`) — Semantic colour palette theme. `current` is not a brand palette: it mixes every color from the inherited text color, so the button adopts the color of whatever container it sits in
20
20
  - **`size`** `'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'inline' | number` (default: `medium`) — Button size. Use `'inline'` for link-type buttons or a number/string for custom sizes (e.g. `64` or `'8x'`)
21
21
  - **`icon`** — Icon rendered before the content. Can be: ReactNode, `true` (empty slot), or function `({ loading, selected, ...mods }) => ReactNode | true`
22
22
  - **`rightIcon`** — Icon rendered after the content. Can be: ReactNode, `true` (empty slot), or function `({ loading, selected, ...mods }) => ReactNode | true`
@@ -82,7 +82,6 @@ The `mods` prop accepts the following modifiers you can override:
82
82
  - `outline` – Border with transparent background; `isSelected` adds brand-tinted fill.
83
83
  - `clear` – No border, transparent background; `isSelected` adds brand-tinted fill.
84
84
  - `link` – Styled as a textual link.
85
- - `current` – Fill, border and label are mixed from the inherited text color (`#current`), so the button adopts the color of whatever container it sits in. The resting chip is a `#current.03` fill inside a `#current.08` border, and hover, pressed and selected step the same alpha ramp up from there; the label stays fully opaque. The focus ring stays `#primary-accent-text`, like every other type. Theme-agnostic — there is a single variant, and `theme` has no effect. Use it inside colored containers (alerts, banners, dark overlays, tooltips). `Item` has a `current` type too, shaped like its neutral `item` type instead: borderless and invisible at rest.
86
85
 
87
86
  ### Themes. `theme` prop
88
87
 
@@ -92,6 +91,13 @@ The `mods` prop accepts the following modifiers you can override:
92
91
  - `warning` – Yellow/amber palette for caution or attention.
93
92
  - `note` – Violet palette for informational context.
94
93
  - `special` – White palette for dark backgrounds.
94
+ - `current` – Not a palette at all: fill, border and label are mixed from the inherited text color (`#current`), so the button adopts the color of whatever container it sits in and keeps adopting it if that color changes. Every `type` has a `current` flavour, so the shape is still yours to pick — `outline` is the resting `#current.03` chip inside a `#current.08` border, `primary` escalates the same construction to a filled chip, `clear` paints nothing at rest, `link` is the label alone. `primary` is the one flavour that needs a second color: the fill is the inherited color at full strength, so the label is punched out of it with `#current-fill`, which defaults to `#surface`. A container whose own text color collides with the page (a `Banner` labels itself `#white`, and `#surface` is white in light mode) should override `#current-fill` with its own fill, which contrasts with its own text by construction; ordinary containers need nothing. The label stays fully opaque and the focus ring stays `#primary-accent-text`, like every other theme. Use it inside colored containers (alerts, banners, dark overlays, tooltips), where a brand theme would either clash with the container or have to be picked to match it.
95
+
96
+ ```jsx
97
+ <Alert theme="note">
98
+ <Button theme="current" type="outline">Adopts the note color</Button>
99
+ </Alert>
100
+ ```
95
101
 
96
102
  ### Sizes. `size` prop
97
103
 
@@ -1,6 +1,6 @@
1
1
  # ItemAction
2
2
 
3
- A compact action button designed for use inside `Item`, `ItemButton`, and `ItemCard`. Automatically inherits `type` and `theme` from its parent context.
3
+ A compact action button designed for use inside `Item`, `ItemButton`, and `ItemCard`. Defaults to the `current` theme, so it takes its colors from whatever row hosts it.
4
4
 
5
5
  ## When to Use
6
6
 
@@ -15,8 +15,8 @@ A compact action button designed for use inside `Item`, `ItemButton`, and `ItemC
15
15
  ## Properties
16
16
 
17
17
  - **`icon`** `ReactNode | 'checkmark'` — Icon element or `'checkmark'` for a selection indicator
18
- - **`type`** `'primary' | 'outline' | 'clear'` (default: `'clear'`) — Visual type. Inherits from parent context.
19
- - **`theme`** `'default' | 'danger' | 'success' | 'warning' | 'note' | 'special'` (default: `'default'`) — Color theme. Inherits from parent context.
18
+ - **`type`** `'primary' | 'outline' | 'clear'` (default: `'clear'`) — Visual type. `clear` is borderless and paints nothing at rest, so a row full of actions does not read as busy.
19
+ - **`theme`** `'current' | 'default' | 'danger' | 'success' | 'warning' | 'note' | 'special'` (default: `'current'`) — Color theme. `current` derives every color from the inherited `currentcolor`, so the action tracks whatever row hosts it without being told the row's type or theme. Name any other theme to have the action paint itself instead.
20
20
  - **`isLoading`** `boolean` (default: `false`) — Shows loading spinner
21
21
  - **`isSelected`** `boolean` (default: `false`) — Selected state (works with `icon="checkmark"`)
22
22
  - **`isDisabled`** `boolean` (default: `false`) — Disables the action. Inherits from parent; use `isDisabled={false}` to override.
@@ -19,6 +19,8 @@ Wraps a trigger element and a `Menu` to create a dropdown menu. Positions the me
19
19
  - **`offset`** `number` (default: `8`) — Distance from trigger in pixels
20
20
  - **`crossOffset`** `number` (default: `0`) — Cross-axis offset in pixels
21
21
  - **`containerPadding`** `number` — Minimum padding from viewport edges in pixels
22
+ - **`mobileType`** `'popover' | 'tray'` (default: `'popover'`) — Overlay variant on mobile screens. `'tray'` opts into the bottom-sheet overlay
23
+ - **`shouldRestoreFocus`** `boolean` (default: `true`) — Whether focus returns to the trigger when the menu closes. See [Focus restoration](#focus-restoration)
22
24
 
23
25
  Extends React Aria `AriaMenuTriggerProps` and `PositionProps`.
24
26
 
@@ -31,11 +33,61 @@ Supports [Base properties](../../BaseProperties.md).
31
33
  These properties allow direct style application without using the `styles` prop:
32
34
 
33
35
  - **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
34
- - **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`
36
+ - **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
35
37
  - **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
36
38
  - **Block:** `border`, `radius`, `shadow`, `outline`, `padding`, `paddingInline`, `paddingBlock`, `overflow`, `scrollbar`, `textAlign`
37
39
  - **Color:** `color`, `fill`, `fade`, `image`
38
- - **Flow:** `flow`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
40
+ - **Flow:** `flow`, `place`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
41
+
42
+ ## Focus restoration
43
+
44
+ When the menu closes, focus returns to the trigger — **unless the action that
45
+ closed it moved focus somewhere else**. An item whose action opens a panel, a
46
+ dialog or an inline editor just focuses that surface; a single `focus()` call
47
+ from a mount effect is enough, and the menu leaves it alone:
48
+
49
+ ```jsx
50
+ function Panel() {
51
+ const ref = useRef(null);
52
+
53
+ // One call. No retry loop, no racing the closing menu.
54
+ useEffect(() => {
55
+ ref.current?.focus({ preventScroll: true });
56
+ }, []);
57
+
58
+ return (
59
+ <div ref={ref} tabIndex={-1}>
60
+
61
+ </div>
62
+ );
63
+ }
64
+
65
+ <MenuTrigger>
66
+ <Button icon={<MoreIcon />} aria-label="Actions" />
67
+ <Menu onAction={(key) => key === 'configure' && setPanelOpen(true)}>
68
+ <Menu.Item key="configure">Configure…</Menu.Item>
69
+ </Menu>
70
+ </MenuTrigger>;
71
+ ```
72
+
73
+ Focusing the surface's own container rather than its first tabbable child
74
+ matters when a header carries a close button — `<FocusScope autoFocus>` would
75
+ land the user on ✕, with <kbd>Enter</kbd> already meaning "close the thing that
76
+ just opened".
77
+
78
+ `shouldRestoreFocus={false}` covers the remaining case: a surface that claims
79
+ focus *later* than the menu's restore — after an async load, an entry
80
+ animation, or a `requestAnimationFrame`. Without it the trigger takes focus
81
+ first and the user sees a flash.
82
+
83
+ ```jsx
84
+ <MenuTrigger shouldRestoreFocus={false}>
85
+ <Button icon={<MoreIcon />} aria-label="Actions" />
86
+ <Menu onAction={openPanelThatFocusesAfterItsData}>
87
+ <Menu.Item key="configure">Configure…</Menu.Item>
88
+ </Menu>
89
+ </MenuTrigger>
90
+ ```
39
91
 
40
92
  ## Examples
41
93
 
@@ -31,11 +31,11 @@ Supports [Base properties](../../BaseProperties.md).
31
31
  These properties allow direct style application without using the `styles` prop:
32
32
 
33
33
  - **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
34
- - **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`
34
+ - **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
35
35
  - **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
36
36
  - **Block:** `border`, `radius`, `shadow`, `outline`, `padding`, `paddingInline`, `paddingBlock`, `overflow`, `scrollbar`, `textAlign`
37
37
  - **Color:** `color`, `fill`, `fade`, `image`
38
- - **Flow:** `flow`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
38
+ - **Flow:** `flow`, `place`, `placeItems`, `placeContent`, `alignItems`, `alignContent`, `justifyItems`, `justifyContent`, `align`, `justify`, `gap`, `columnGap`, `rowGap`, `gridColumns`, `gridRows`, `gridTemplate`, `gridAreas`
39
39
 
40
40
  ## Examples
41
41
 
@@ -15,6 +15,7 @@ A code block with copy-to-clipboard functionality and syntax highlighting. Exten
15
15
  - **`title`** `string` (default: `'Code example'`) — Accessible title used in the copy toast message
16
16
  - **`prefix`** `string` (default: `''`) — Prefix for each line of code (e.g. `'$ '` for bash snippets)
17
17
  - **`nowrap`** `boolean` — Force single-line display even for multi-line code
18
+ - **`isWrapped`** `boolean` — Soft-wrap long content onto multiple lines instead of scrolling it horizontally. The block grows to fit, so even a single long line stays fully readable, and unbreakable runs (URLs, tokens, identifiers) wrap too. Useful for error messages and logs. Ignored when `nowrap` is set (a different axis: `nowrap` collapses newlines into one scrolling line, `isWrapped` breaks long lines).
18
19
  - **`serif`** `boolean` — Use serif (non-monospace) font for the code
19
20
  - **`hideText`** `string | string[] | boolean` — Hide sensitive text with bullet characters. `true` hides all text, a string hides that substring, an array hides multiple substrings. A toggle button appears to reveal hidden content.
20
21
  - **`actions`** `ReactNode` — Additional action buttons displayed alongside the copy button. Use `CopySnippet.Button` for consistent styling.
@@ -49,14 +50,13 @@ These properties allow direct style application without using the `styles` prop:
49
50
  ```jsx
50
51
  <CopySnippet code="const x = 1;" language="javascript" />
51
52
 
52
- <CopySnippet
53
- code={'{\n "key": "value"\n}'}
54
- language="json"
55
- multiline
56
- />
53
+ <CopySnippet code={'{\n "key": "value"\n}'} language="json" />
57
54
 
58
55
  <CopySnippet
59
56
  code={'<button type="button" class="primary">Save</button>'}
60
57
  language="html"
61
58
  />
59
+
60
+ // Wrap a long single-line error instead of scrolling it sideways
61
+ <CopySnippet code={longErrorMessage} language="bash" isWrapped />
62
62
  ```
@@ -261,7 +261,7 @@ When `InlineInput` is embedded in a host that already owns keyboard activation (
261
261
 
262
262
  ### Focus Management
263
263
 
264
- When entering edit mode, focus is taken explicitly by a `FocusScope` with `autoFocus`. This makes the transition deterministic even when triggered from a closing menu (which would otherwise restore focus to the menu trigger). The text content is selected automatically.
264
+ When entering edit mode, focus is taken explicitly by a `FocusScope` with `autoFocus`, and the text content is selected automatically. On top of that, a blur arriving in the same tick as a programmatic `startEditing()` re-focuses the input instead of committing, so hosts that drive editing through the imperative ref stay in edit mode even if something else grabs focus as the input mounts. The guard clears on the user's first keystroke, so later click-aways commit normally.
265
265
 
266
266
  When leaving edit mode, focus is not restored automatically — the host is responsible for moving focus back to a meaningful element (e.g. the parent button or row).
267
267
 
@@ -22,8 +22,8 @@ A foundational component that provides a standardized layout and styling for ite
22
22
  - **`suffix`** `ReactNode` — Element rendered after the content (before rightIcon)
23
23
  - **`description`** `ReactNode` — Description text displayed with the item
24
24
  - **`descriptionPlacement`** `'inline' | 'block'` (default: `inline`) — How the description is positioned relative to the main content. Defaults to `'block'` for `type="card"` and `type="header"`
25
- - **`type`** `'item' | 'header' | 'primary' | 'outline' | 'outline-2' | 'clear' | 'link' | 'card' | 'current'` (default: `item`) — Visual style variant
26
- - **`theme`** `'default' | 'danger' | 'success' | 'warning' | 'note' | 'special'` (default: `default`) — Semantic colour palette theme
25
+ - **`type`** `'item' | 'header' | 'primary' | 'outline' | 'outline-2' | 'clear' | 'link' | 'card'` (default: `item`) — Visual style variant
26
+ - **`theme`** `'default' | 'danger' | 'success' | 'warning' | 'note' | 'special' | 'current'` (default: `default`) — Semantic colour palette theme. `current` is not a brand palette: it mixes every color from the inherited text color, so the item adopts the color of whatever container it sits in
27
27
  - **`size`** `'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'inline' | number` (default: `medium`) — Item size. Accepts custom number or string values
28
28
  - **`shape`** `'card' | 'button' | 'sharp' | 'pill'` (default: `button`) — Shape of the item border radius. Defaults to `'card'` for `type="card"`
29
29
  - **`isSelected`** `boolean` (default: `false`) — Marks the item as selected
@@ -84,8 +84,8 @@ The `mods` property accepts the following modifiers:
84
84
  - **`disabled`** `boolean` — Applied when isDisabled is true or when loading
85
85
  - **`loading`** `boolean` — Applied when isLoading is true
86
86
  - **`size`** `string` — Applied based on size prop value (xsmall, small, medium, large, xlarge, inline)
87
- - **`type`** `string` — Applied based on type prop value (item, header, primary, outline, outline-2, clear, link, card, current)
88
- - **`theme`** `string` — Applied based on theme prop value (default, danger, success, special, warning, note)
87
+ - **`type`** `string` — Applied based on type prop value (item, header, primary, outline, outline-2, clear, link, card)
88
+ - **`theme`** `string` — Applied based on theme prop value (default, danger, success, special, warning, note, current)
89
89
  - **`shape`** `string` — Applied based on shape prop value (card, button, sharp, pill)
90
90
 
91
91
  ## Variants
@@ -99,8 +99,7 @@ The `mods` property accepts the following modifiers:
99
99
  - `outline-2` - Same as `outline` but uses `#surface-3` as the base fill, designed to sit on `#surface-2` containers without blending in (not available for the `special` theme)
100
100
  - `clear` - Transparent item with minimal styling; `isSelected` adds brand-tinted fill
101
101
  - `link` - Link-styled item appearance (does not support icons or loading state)
102
- - `card` - Card appearance for notifications (supports `default`, `success`, `danger`, `warning`, `note` themes; defaults to `shape="card"`, `descriptionPlacement="block"`, uses semantic heading tags via `level` prop, and has `.5x` padding)
103
- - `current` - Same shape as `item` — no border, nothing painted at rest — but every color is derived from the inherited text color (`#current`) instead of the fixed `#surface-text`, so the item adopts the color of whatever container it sits in. The fill steps in on hover (`.04`), pressed (`.06`) and selected (`.09` → `.15`); the label stays fully opaque. Theme-agnostic: only supports the `default` theme (any other theme warns, since there is nothing for it to change). Use it inside colored containers — alerts, banners, dark overlays, tooltips. `Button` has a `current` type too, shaped like a standalone control instead: a resting `#current.03` chip inside a `#current.08` border
102
+ - `card` - Card appearance for notifications (supports `default`, `success`, `danger`, `warning`, `note`, `current` themes; defaults to `shape="card"`, `descriptionPlacement="block"`, uses semantic heading tags via `level` prop, and has `.5x` padding)
104
103
 
105
104
  ### Themes
106
105
 
@@ -110,6 +109,7 @@ The `mods` property accepts the following modifiers:
110
109
  - `warning` - Yellow/amber theme for caution or attention
111
110
  - `note` - Violet theme for informational context
112
111
  - `special` - Special theme with unique styling (not available for `card` or `header` types)
112
+ - `current` - Not a palette at all: every color is derived from the inherited text color (`#current`) instead of a brand ramp, so the item adopts the color of whatever container it sits in. Every type except `header` has a `current` flavour, so the shape is still yours to pick — `item` keeps its borderless shape (nothing painted at rest, the fill stepping in on hover, pressed and selected), `outline` adds the chip and border, `primary` escalates it further. `primary` is the one flavour that needs a second color: its fill is the inherited color at full strength, so the label is punched out of it with `#current-fill` (default `#surface`) — a container whose own text color collides with the page, such as a `Banner` labelling itself `#white`, should override `#current-fill` with its own fill. The label stays fully opaque. Use it inside colored containers — alerts, banners, dark overlays, tooltips
113
113
 
114
114
  ### Sizes
115
115
 
@@ -257,17 +257,17 @@ Like headers, card labels use semantic heading tags (h1-h6) controlled by the `l
257
257
  </Item>
258
258
  ```
259
259
 
260
- ### Current Type
260
+ ### Current Theme
261
261
 
262
- Use `type="current"` inside a container that paints its own text color. The fill and label are mixed from that inherited color, so the item matches the container without picking a theme — and keeps matching it if the container's color changes:
262
+ Use `theme="current"` inside a container that paints its own text color. The fill and label are mixed from that inherited color, so the item matches the container without picking a brand theme — and keeps matching it if the container's color changes. Every type composes with it:
263
263
 
264
264
  ```jsx
265
265
  <Block fill="#note-surface" color="#note-accent-text" padding="1.5x" radius="1cr">
266
- <Item type="current" icon={<IconInfo />}>Adopts the note color</Item>
266
+ <Item theme="current" icon={<IconInfo />}>Adopts the note color</Item>
267
267
  </Block>
268
268
 
269
269
  <Block fill="#fixed-dark" color="#white" padding="1.5x" radius="1cr">
270
- <Item type="current" icon={<IconInfo />}>Adopts white on a dark banner</Item>
270
+ <Item theme="current" type="outline" icon={<IconInfo />}>An outlined chip on a dark banner</Item>
271
271
  </Block>
272
272
  ```
273
273
 
@@ -11,8 +11,8 @@ A non-interactive badge indicator for list items. Similar to `ItemAction` but wi
11
11
  ## Properties
12
12
 
13
13
  - **`icon`** `ReactNode | 'checkmark'` — Icon or checkmark display
14
- - **`type`** `'primary' | 'outline' | 'clear'` (default: `'clear'`) — Visual type. `isSelected` applies brand-tinted fill to `outline` and `clear`. Inherits from parent context.
15
- - **`theme`** `'default' | 'danger' | 'success' | 'special'` (default: `'default'`) — Color theme. Inherits from parent context.
14
+ - **`type`** `'primary' | 'outline' | 'clear'` (default: `'clear'`) — Visual type. `isSelected` applies brand-tinted fill to `outline` and `clear`.
15
+ - **`theme`** `'current' | 'default' | 'danger' | 'success' | 'special'` (default: `'current'`) — Color theme. `current` derives every color from the inherited `currentcolor`, so the badge tracks whatever row hosts it. Name any other theme to have the badge paint itself instead.
16
16
  - **`isLoading`** `boolean` (default: `false`) — Show loading spinner
17
17
  - **`isSelected`** `boolean` (default: `false`) — Selected state (for checkmark)
18
18
  - **`tooltip`** `string | object` — Tooltip content shown on hover for icon-only badges. A string shows tooltip text; an object supports `{ title, ...tooltipProps }` for advanced configuration.
@@ -12,6 +12,7 @@ Syntax-highlighted code block using Prism. Supports multiple languages.
12
12
 
13
13
  - **`code`** `string` (default: `''`) — The code snippet to highlight
14
14
  - **`language`** `string` (default: `'javascript'`) — Language for syntax highlighting (`javascript`, `typescript`, `json`, `yaml`, `bash`, `sql`, `css`, `html`, etc.)
15
+ - **`isWrapped`** `boolean` — Soft-wrap long lines onto multiple lines instead of scrolling them horizontally. Unbreakable runs (URLs, tokens, identifiers) wrap too. Useful for error messages and logs.
15
16
 
16
17
  ### Style Defaults
17
18
 
@@ -30,9 +30,9 @@ API keys. That is the one with selection, bulk actions, row menus and row links.
30
30
  ## It knows nothing about Cube
31
31
 
32
32
  Measures, dimensions, pivots, drill-downs and calculated fields never reach this
33
- component as concepts. They arrive as ordinary columns, `render` output and
34
- `column.header.menu` content — which is what keeps Cloud's column-header menu,
35
- and everything it knows about the query, in Cloud.
33
+ component as query concepts. They arrive as leaf columns, presentational column
34
+ groups, `render` output and `column.header.menu` content — which is what keeps
35
+ Cloud's column-header menu, and everything it knows about the query, in Cloud.
36
36
 
37
37
  ## Component
38
38
 
@@ -41,9 +41,19 @@ and everything it knows about the query, in Cloud.
41
41
  #### Data
42
42
 
43
43
  - **`data`** `readonly T[]` — The rows.
44
- - **`columns`** `CubeDataTableColumn<T>[]` — Same shape as `ItemTable`'s, plus `dataType`.
44
+ - **`columns`** `CubeDataTableColumnDefinition<T>[]` — Leaf columns use the same
45
+ shape as `ItemTable`'s, plus `dataType`; group nodes contain nested `children`.
45
46
  - **`rowKey`** `string` (default: `'id'`) — Property to read the row identity from.
46
47
  - **`getRowKey`** `(row: T, index: number) => Key` — Wins over `rowKey`.
48
+ - **`getRowChildren`** `(row: T) => readonly T[] | undefined` — Enables nested
49
+ treegrid rows; `data` contains roots.
50
+ - **`treeColumnKey`** `string` — Indented disclosure column. Defaults to the
51
+ first visible data column.
52
+ - **`expandedKeys`** `Key[]` — Controlled expansion.
53
+ - **`defaultExpandedKeys`** `Key[]` — Initial expansion. Nothing is expanded by
54
+ default.
55
+ - **`onExpand`** `(keys, info) => void` — Reports the resulting keys and toggled
56
+ row metadata.
47
57
  - **`pinnedTopRows`** `readonly T[]` — Rows stuck to the top of the scroller. Ordinary rows as far as the columns are concerned.
48
58
  - **`pinnedBottomRows`** `readonly T[]` — The same, at the bottom. This is where totals go.
49
59
 
@@ -63,10 +73,13 @@ and everything it knows about the query, in Cloud.
63
73
  - **`size`** `SizeName` (default: `'small'`) — An analytical grid packs more rows than a list.
64
74
  - **`rowSize`** `'small' | 'medium' | 'large'` — Row height as a named step: 28px / 32px / 40px. Rows only; the header keeps answering to `size`. Unset, the height comes from `size`.
65
75
  - **`rowHeight`** `number` — An exact height, when none of the named steps is the answer. Wins over both `rowSize` and `size`.
66
- - **`headerHeight`** `number`
76
+ - **`headerHeight`** `number` — Exact height of each header row in px.
67
77
  - **`isStriped`** `boolean` (default: `true`) — Banding is what makes a wide row readable across.
68
78
  - **`isHeaderHidden`** `boolean`
69
79
  - **`isHeaderSticky`** `boolean` (default: `true`)
80
+ - **`isAutoHeight`** `boolean` (default: `false`) — Shrink-wraps the frame to
81
+ the rendered rows instead of filling its flex pane. It takes precedence over
82
+ root height/flex sizing and disables virtualization.
70
83
  - **`isRowMoveAnimated`** `boolean` (default: `true`) — Slide rows to their new positions when the order changes, instead of teleporting them. Respects `prefers-reduced-motion`.
71
84
  - **`showRowNumbers`** `boolean` (default: `false`) — A continuous count down the side, which stays continuous across pages.
72
85
 
@@ -127,7 +140,7 @@ see [Column Colors](#column-colors) for the last two.
127
140
 
128
141
  #### Virtualization
129
142
 
130
- - **`isVirtualized`** `boolean | 'auto'` (default: `'auto'`) — On when the grid is height-bounded and has more rows than the threshold.
143
+ - **`isVirtualized`** `boolean | 'auto'` (default: `'auto'`) — On when the grid is height-bounded and has more rows than the threshold. Ignored when `isAutoHeight` is enabled.
131
144
  - **`virtualizeThreshold`** `number`
132
145
  - **`overscan`** `number`
133
146
 
@@ -136,6 +149,9 @@ see [Column Colors](#column-colors) for the last two.
136
149
  - **`getRowProps`** `(ctx: CubeTableRowContext<T>) => Record<string, any>` — Per-row mods, styles and height.
137
150
  - **`storageKey`** `string` — Persists page size, column widths and column order.
138
151
  - **`ariaLabel`** `string`
152
+ - **`isChecked`** `boolean` — Base checked-state modifier.
153
+ - **`place`** `string` — Tasty placement shorthand on the root frame.
154
+ - **`scrollMargin`** `string | number` — Scroll margin on the root frame.
139
155
 
140
156
  #### `dataType`
141
157
 
@@ -159,9 +175,10 @@ Customizes the root frame. Every internal part of the grid is a **sub-element**
159
175
  reachable from this one prop — the same contract, and the same sub-element
160
176
  names, as ItemTable.
161
177
 
162
- `DataTable` adds one: `StateCell`, the full-span cell that carries the empty,
163
- no-results and error content. It is deliberately not a `Cell`, so it takes none
164
- of the row's banding or hover paint.
178
+ `DataTable` adds `StateCell`, the full-span cell that carries the empty,
179
+ no-results and error content, and `HeaderGroupCell`, a spanning cell in a
180
+ multi-row header. `StateCell` is deliberately not a `Cell`, so it takes none of
181
+ the row's banding or hover paint.
165
182
 
166
183
  #### Targeted slots
167
184
 
@@ -204,6 +221,72 @@ body into a scroller, pins the header, and lets virtualization engage at all.
204
221
  Cell-level, in addition to `ItemTable`'s: `cell-selected`, `last-column`,
205
222
  `pinned`.
206
223
 
224
+ ## Pivoted Results and Column Groups
225
+
226
+ Pass group nodes in `columns` to render real multi-row headers. Groups may nest
227
+ to any depth; their `children` eventually resolve to ordinary leaf columns, and
228
+ only those leaves participate in sorting, resizing, ranges and copying.
229
+
230
+ ```jsx
231
+ const columns = [
232
+ { key: 'region', title: 'Region', pin: 'start' },
233
+ {
234
+ key: 'organic',
235
+ title: 'Organic',
236
+ children: [
237
+ { key: 'organic_orders', title: 'Orders', dataType: 'number' },
238
+ { key: 'organic_revenue', title: 'Revenue', dataType: 'number' },
239
+ ],
240
+ },
241
+ {
242
+ key: 'paid',
243
+ title: 'Paid',
244
+ children: [
245
+ { key: 'paid_orders', title: 'Orders', dataType: 'number' },
246
+ { key: 'paid_revenue', title: 'Revenue', dataType: 'number' },
247
+ ],
248
+ },
249
+ ];
250
+
251
+ <DataTable data={pivotRows} columns={columns} isAutoHeight />;
252
+ ```
253
+
254
+ The data/query layer still owns the pivot calculation. DataTable only renders
255
+ the already-shaped rows and generated column hierarchy. Leaf resizing and
256
+ sorting remain available; drag column reordering is ignored while groups are
257
+ present because moving one leaf cannot preserve an arbitrary hierarchy.
258
+
259
+ ## Tree Rows
260
+
261
+ Tree mode uses the same nested-data contract as `ItemTable`:
262
+
263
+ ```jsx
264
+ <DataTable
265
+ data={regions}
266
+ columns={columns}
267
+ getRowChildren={(row) => row.children}
268
+ treeColumnKey="region"
269
+ defaultExpandedKeys={['americas']}
270
+ />
271
+ ```
272
+
273
+ Multi-sort is recursive: every sibling collection is sorted by the same
274
+ precedence. Client pagination slices roots and keeps complete subtrees together;
275
+ server pages are rendered exactly as supplied and `total` counts roots. Pinned
276
+ rows remain ordinary non-hierarchical totals.
277
+
278
+ Only visible descendants participate in cell ranges and virtualization.
279
+ Collapsing a range endpoint makes the effective range inactive; a controlled or
280
+ uncontrolled range is restored when that endpoint becomes visible again. Client
281
+ row numbers remain continuous across root pages, while server tree pages restart
282
+ at 1 because preceding descendant counts are unknown.
283
+
284
+ The native table exposes `role="treegrid"`, `aria-level`, `aria-expanded`,
285
+ `aria-posinset` and `aria-setsize`. Right/Left expand, collapse or move to the
286
+ parent; Up/Down traverse visible rows, and typeahead reads `treeColumnKey`.
287
+ Customize the hierarchy chrome with `styles.TreeContent`, `styles.TreeToggle`
288
+ and `styles.TreeValue`.
289
+
207
290
  ## Examples
208
291
 
209
292
  ### Multi-Column Sorting
@@ -241,6 +324,20 @@ competing for a position.
241
324
  Above `virtualizeThreshold` a bounded grid virtualizes on its own, so
242
325
  `paginationMode="off"` is a reasonable default for a result the user scrolls.
243
326
 
327
+ For a compact result that should participate in normal page flow, set
328
+ `isAutoHeight`. The frame then ends at the last rendered row rather than filling
329
+ its flex pane. This renders the complete result and disables virtualization, so
330
+ keep larger results bounded instead.
331
+
332
+ ```jsx
333
+ <DataTable
334
+ data={summaryRows}
335
+ columns={columns}
336
+ paginationMode="off"
337
+ isAutoHeight
338
+ />
339
+ ```
340
+
244
341
  ### Sorting Moves Rows
245
342
 
246
343
  When a sort reorders rows, they slide to their new positions over 120ms rather
@@ -401,8 +498,10 @@ elsewhere.
401
498
  ## Accessibility
402
499
 
403
500
  The table is a `role="grid"` with document-absolute `aria-rowindex` /
404
- `aria-colindex`, and `aria-rowcount` counts pinned rows. Every sorted column
405
- carries `aria-sort`, not just the first.
501
+ `aria-colindex`, and `aria-rowcount` counts pinned rows and every visible header
502
+ row. Group cells use native `scope="colgroup"` / `colSpan`; ungrouped leaf
503
+ headers span the remaining rows. Every sorted leaf column carries `aria-sort`,
504
+ not just the first.
406
505
 
407
506
  A header cell takes a tab stop when it is interactive — sortable, carrying a
408
507
  menu, or reorderable. `Shift`+`F10` opens the column menu from the keyboard, and