@cube-dev/ui-kit 0.158.0 → 0.160.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 (581) hide show
  1. package/dist/CHANGELOG.md +159 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.js +1 -1
  13. package/dist/components/GlobalStyles.js +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.d.ts +2 -2
  20. package/dist/components/actions/Button/Button.js +14 -6
  21. package/dist/components/actions/Button/Button.js.map +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.d.ts +1 -1
  28. package/dist/components/actions/ItemAction/ItemAction.js +4 -3
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  30. package/dist/components/actions/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  32. package/dist/components/actions/Link/Link.js +1 -1
  33. package/dist/components/actions/Menu/Menu.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/index.js +1 -1
  42. package/dist/components/actions/use-action.js +1 -1
  43. package/dist/components/actions/use-anchored-menu.js +1 -1
  44. package/dist/components/actions/use-context-menu.js +1 -1
  45. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  46. package/dist/components/content/Alert/Alert.js +1 -1
  47. package/dist/components/content/Alert/use-alert.js +1 -1
  48. package/dist/components/content/Avatar/Avatar.js +1 -1
  49. package/dist/components/content/Badge/Badge.js +1 -1
  50. package/dist/components/content/Card/Card.js +1 -1
  51. package/dist/components/content/Content.js +1 -1
  52. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  53. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  54. package/dist/components/content/Disclosure/Disclosure.js +8 -4
  55. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  56. package/dist/components/content/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 +8 -1
  63. package/dist/components/content/Item/Item.js +24 -11
  64. package/dist/components/content/Item/Item.js.map +1 -1
  65. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  66. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  67. package/dist/components/content/Layout/GridLayout.js +1 -1
  68. package/dist/components/content/Layout/Layout.js +1 -1
  69. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  70. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  71. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  72. package/dist/components/content/Layout/LayoutContent.js +1 -1
  73. package/dist/components/content/Layout/LayoutContext.js +1 -1
  74. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  75. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  76. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  77. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  78. package/dist/components/content/Layout/LayoutPane.js +1 -1
  79. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  80. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  81. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  82. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  83. package/dist/components/content/Layout/index.js +1 -1
  84. package/dist/components/content/Layout/utils.js +1 -1
  85. package/dist/components/content/Paragraph.js +1 -1
  86. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  87. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  88. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  89. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  90. package/dist/components/content/Result/Result.js +1 -1
  91. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  92. package/dist/components/content/Tag/Tag.js +1 -1
  93. package/dist/components/content/Text.js +1 -1
  94. package/dist/components/content/TextItem/TextItem.js +1 -1
  95. package/dist/components/content/Title.js +1 -1
  96. package/dist/components/content/Tree/Tree.js +1 -1
  97. package/dist/components/content/Tree/TreeNode.js +1 -1
  98. package/dist/components/content/Tree/styled.js +1 -1
  99. package/dist/components/content/Tree/tree-index.js +1 -1
  100. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  101. package/dist/components/content/Tree/use-load-data.js +1 -1
  102. package/dist/components/content/highlightText.js +1 -1
  103. package/dist/components/content/use-auto-tooltip.js +41 -32
  104. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  105. package/dist/components/data/DataTable/DataTable.js +82 -24
  106. package/dist/components/data/DataTable/DataTable.js.map +1 -1
  107. package/dist/components/data/DataTable/types.d.ts +56 -1
  108. package/dist/components/data/ItemTable/ItemTable.js +13 -5
  109. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  110. package/dist/components/data/ItemTable/ItemTableBulkBar.js +3 -7
  111. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
  112. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  113. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  114. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  115. package/dist/components/data/ItemTable/types.d.ts +19 -0
  116. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  117. package/dist/components/data/TableBase/RowCollection.js +5 -3
  118. package/dist/components/data/TableBase/RowCollection.js.map +1 -1
  119. package/dist/components/data/TableBase/TableHeaderCell.js +115 -0
  120. package/dist/components/data/TableBase/TableHeaderCell.js.map +1 -0
  121. package/dist/components/data/TableBase/TableRow.js +1 -1
  122. package/dist/components/data/TableBase/TableView.js +195 -33
  123. package/dist/components/data/TableBase/TableView.js.map +1 -1
  124. package/dist/components/data/TableBase/column-menu.d.ts +36 -0
  125. package/dist/components/data/TableBase/column-menu.js +104 -0
  126. package/dist/components/data/TableBase/column-menu.js.map +1 -0
  127. package/dist/components/data/TableBase/column-tint.js +168 -0
  128. package/dist/components/data/TableBase/column-tint.js.map +1 -0
  129. package/dist/components/data/TableBase/index.d.ts +3 -2
  130. package/dist/components/data/TableBase/row-menu.js +11 -6
  131. package/dist/components/data/TableBase/row-menu.js.map +1 -1
  132. package/dist/components/data/TableBase/styled.js +45 -16
  133. package/dist/components/data/TableBase/styled.js.map +1 -1
  134. package/dist/components/data/TableBase/types.d.ts +104 -6
  135. package/dist/components/data/TableBase/types.js +1 -1
  136. package/dist/components/data/TableBase/types.js.map +1 -1
  137. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  138. package/dist/components/data/TableBase/use-column-order.js +100 -0
  139. package/dist/components/data/TableBase/use-column-order.js.map +1 -0
  140. package/dist/components/data/TableBase/use-container-width.js +1 -1
  141. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  142. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  143. package/dist/components/data/TableBase/use-table-columns.js +24 -2
  144. package/dist/components/data/TableBase/use-table-columns.js.map +1 -1
  145. package/dist/components/data/TableBase/use-table-search.js +1 -1
  146. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  147. package/dist/components/data/TableBase/use-table-sort.js +20 -1
  148. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  149. package/dist/components/data/TableBase/use-table-sorts.js +40 -1
  150. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  151. package/dist/components/data/TableBase/use-table-storage.d.ts +1 -1
  152. package/dist/components/data/TableBase/use-table-storage.js +6 -2
  153. package/dist/components/data/TableBase/use-table-storage.js.map +1 -1
  154. package/dist/components/data/index.d.ts +2 -1
  155. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  156. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  157. package/dist/components/fields/Checkbox/context.js +1 -1
  158. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  159. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  160. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  161. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  162. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  163. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  164. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  165. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  166. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  167. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  168. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  169. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  170. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  171. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  172. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  173. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  174. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  175. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  176. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  177. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  178. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  179. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  181. package/dist/components/fields/DatePicker/period.js +1 -1
  182. package/dist/components/fields/DatePicker/props.js +1 -1
  183. package/dist/components/fields/DatePicker/utils.js +1 -1
  184. package/dist/components/fields/FileInput/FileInput.js +1 -1
  185. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  186. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  187. package/dist/components/fields/Input/Input.js +1 -1
  188. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  189. package/dist/components/fields/ListBox/ListBox.js +1 -1
  190. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  191. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  192. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  193. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  194. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  195. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  196. package/dist/components/fields/Picker/Picker.js +1 -1
  197. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  198. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  199. package/dist/components/fields/RadioGroup/context.js +1 -1
  200. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  201. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  202. package/dist/components/fields/Select/Select.js +1 -1
  203. package/dist/components/fields/Slider/Gradation.js +1 -1
  204. package/dist/components/fields/Slider/HueSlider.js +1 -1
  205. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  206. package/dist/components/fields/Slider/Slider.js +1 -1
  207. package/dist/components/fields/Slider/SliderBase.js +1 -1
  208. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  209. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  210. package/dist/components/fields/Slider/elements.js +1 -1
  211. package/dist/components/fields/Slider/index.js +1 -1
  212. package/dist/components/fields/Switch/Switch.js +1 -1
  213. package/dist/components/fields/TextArea/TextArea.js +1 -1
  214. package/dist/components/fields/TextInput/TextInput.js +1 -1
  215. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  216. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  217. package/dist/components/fields/color/ColorPanel.js +1 -1
  218. package/dist/components/fields/color/ColorSwatch.js +1 -1
  219. package/dist/components/fields/color/channels.js +1 -1
  220. package/dist/components/fields/color/color.js +1 -1
  221. package/dist/components/fields/color/context.js +1 -1
  222. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  223. package/dist/components/form/Form/Field.js +1 -1
  224. package/dist/components/form/Form/Form.js +1 -1
  225. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  226. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  227. package/dist/components/form/Form/SubmitError.js +1 -1
  228. package/dist/components/form/Form/index.js +1 -1
  229. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  230. package/dist/components/form/Form/use-field/use-field.js +1 -1
  231. package/dist/components/form/Form/use-form.js +1 -1
  232. package/dist/components/form/Form/validation.js +1 -1
  233. package/dist/components/form/Label.js +1 -1
  234. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  235. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  236. package/dist/components/form/validation/use-validation-props.js +1 -1
  237. package/dist/components/form/wrapper.js +1 -1
  238. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  239. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  240. package/dist/components/layout/Board/Board.js +28 -4
  241. package/dist/components/layout/Board/Board.js.map +1 -1
  242. package/dist/components/layout/Board/BoardProvider.js +1 -1
  243. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  244. package/dist/components/layout/Board/Widget.js +1 -1
  245. package/dist/components/layout/Board/WidgetHost.js +6 -3
  246. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  247. package/dist/components/layout/Board/board-context.js +1 -1
  248. package/dist/components/layout/Board/board-store.js +1 -1
  249. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  250. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  251. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  252. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  253. package/dist/components/layout/Board/grid-core/group-move.js +138 -33
  254. package/dist/components/layout/Board/grid-core/group-move.js.map +1 -1
  255. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  256. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  257. package/dist/components/layout/Board/index.js +1 -1
  258. package/dist/components/layout/Board/responsive-utils.js +1 -1
  259. package/dist/components/layout/Board/use-board-layout.js +1 -1
  260. package/dist/components/layout/Board/use-board-registry.js +1 -1
  261. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  262. package/dist/components/layout/Board/use-board-selection.js +1 -1
  263. package/dist/components/layout/Flex.js +1 -1
  264. package/dist/components/layout/Flow.js +1 -1
  265. package/dist/components/layout/Grid.js +1 -1
  266. package/dist/components/layout/Panel.js +1 -1
  267. package/dist/components/layout/Prefix.js +1 -1
  268. package/dist/components/layout/ResizablePanel.js +1 -1
  269. package/dist/components/layout/Space.js +1 -1
  270. package/dist/components/layout/Suffix.js +1 -1
  271. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  272. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  273. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  274. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  275. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  276. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  277. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  278. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  279. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  280. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  281. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  282. package/dist/components/navigation/Tabs/styled.js +1 -1
  283. package/dist/components/navigation/Tabs/types.js +1 -1
  284. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  285. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  286. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  287. package/dist/components/other/Calendar/Calendar.js +1 -1
  288. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  289. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  290. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  291. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  292. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  293. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  294. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  295. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  296. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  297. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  298. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  299. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  300. package/dist/components/overlays/Dialog/context.js +1 -1
  301. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  302. package/dist/components/overlays/Modal/Modal.js +1 -1
  303. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  304. package/dist/components/overlays/Modal/Overlay.js +1 -1
  305. package/dist/components/overlays/Modal/Popover.js +1 -1
  306. package/dist/components/overlays/Modal/Tray.js +1 -1
  307. package/dist/components/overlays/Modal/Underlay.js +1 -1
  308. package/dist/components/overlays/Notifications/Notification.js +1 -1
  309. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  310. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  311. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  312. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  313. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  314. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  315. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  316. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  317. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  318. package/dist/components/overlays/Notifications/index.js +1 -1
  319. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  320. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  321. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  322. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  323. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  324. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  325. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  326. package/dist/components/overlays/Toast/index.js +1 -1
  327. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  328. package/dist/components/overlays/Toast/useToast.js +1 -1
  329. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  330. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  331. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  332. package/dist/components/overlays/Tooltip/context.js +1 -1
  333. package/dist/components/portal/Portal.js +1 -1
  334. package/dist/components/portal/PortalProvider.js +1 -1
  335. package/dist/components/portal/usePortal.js +1 -1
  336. package/dist/components/shared/DraggableCollection.js +1 -1
  337. package/dist/components/shared/InvalidIcon.js +1 -1
  338. package/dist/components/shared/ValidIcon.js +1 -1
  339. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  340. package/dist/components/status/Spin/Cube.js +1 -1
  341. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  342. package/dist/components/status/Spin/Spin.js +1 -1
  343. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  344. package/dist/data/item-themes.d.ts +1 -1
  345. package/dist/data/item-themes.js +45 -2
  346. package/dist/data/item-themes.js.map +1 -1
  347. package/dist/data/themes.js +1 -1
  348. package/dist/eslint-plugin/defaults.generated.js +13 -1
  349. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  350. package/dist/eslint-plugin/index.js +1 -1
  351. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  352. package/dist/i18n/I18nProvider.js +1 -1
  353. package/dist/i18n/createFormatter.js +1 -1
  354. package/dist/i18n/index.js +1 -1
  355. package/dist/i18n/instance.js +1 -1
  356. package/dist/i18n/locales/de-DE/uikit.js +5 -1
  357. package/dist/i18n/locales/en-US/uikit.js +5 -1
  358. package/dist/i18n/locales/en-US/uikit.json.d.ts +4 -0
  359. package/dist/i18n/locales/es-ES/uikit.js +5 -1
  360. package/dist/i18n/locales/es-MX/uikit.js +5 -1
  361. package/dist/i18n/locales/fr-FR/uikit.js +5 -1
  362. package/dist/i18n/locales/it-IT/uikit.js +5 -1
  363. package/dist/i18n/locales/ja-JP/uikit.js +5 -1
  364. package/dist/i18n/locales/nb-NO/uikit.js +5 -1
  365. package/dist/i18n/locales/pt-BR/uikit.js +5 -1
  366. package/dist/i18n/locales/pt-PT/uikit.js +5 -1
  367. package/dist/i18n/locales/sv-SE/uikit.js +5 -1
  368. package/dist/i18n/locales/vi-VN/uikit.js +5 -1
  369. package/dist/i18n/locales.js +1 -1
  370. package/dist/i18n/useFormatter.js +1 -1
  371. package/dist/i18n/useI18n.js +1 -1
  372. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  373. package/dist/icons/AdjustmentsIcon.js +1 -1
  374. package/dist/icons/AiIcon.js +1 -1
  375. package/dist/icons/AreaChartIcon.js +1 -1
  376. package/dist/icons/ArrowNarrowDownIcon.d.ts +12 -0
  377. package/dist/icons/ArrowNarrowDownIcon.js +11 -0
  378. package/dist/icons/ArrowNarrowDownIcon.js.map +1 -0
  379. package/dist/icons/ArrowNarrowUpIcon.d.ts +12 -0
  380. package/dist/icons/ArrowNarrowUpIcon.js +11 -0
  381. package/dist/icons/ArrowNarrowUpIcon.js.map +1 -0
  382. package/dist/icons/BackwardIcon.js +1 -1
  383. package/dist/icons/BarChartIcon.js +1 -1
  384. package/dist/icons/BellFilledIcon.js +1 -1
  385. package/dist/icons/BellIcon.js +1 -1
  386. package/dist/icons/BooleanIcon.js +1 -1
  387. package/dist/icons/CalendarEditIcon.js +1 -1
  388. package/dist/icons/CalendarIcon.js +1 -1
  389. package/dist/icons/CaretDownIcon.js +1 -1
  390. package/dist/icons/CaretUpIcon.js +1 -1
  391. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  392. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  393. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  394. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  395. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  396. package/dist/icons/ChartBarLineIcon.js +1 -1
  397. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  398. package/dist/icons/ChartBarStackedIcon.js +1 -1
  399. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  400. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  401. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  402. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  403. package/dist/icons/ChartBubbleIcon.js +1 -1
  404. package/dist/icons/ChartDonut2Icon.js +1 -1
  405. package/dist/icons/ChartFunnelIcon.js +1 -1
  406. package/dist/icons/ChartHeatmapIcon.js +1 -1
  407. package/dist/icons/ChartKPIIcon.js +1 -1
  408. package/dist/icons/ChartPie2Icon.js +1 -1
  409. package/dist/icons/ChartScatterIcon.js +1 -1
  410. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  411. package/dist/icons/CheckCircleIcon.js +1 -1
  412. package/dist/icons/CheckIcon.js +1 -1
  413. package/dist/icons/CircleFilledIcon.js +1 -1
  414. package/dist/icons/ClearIcon.js +1 -1
  415. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  416. package/dist/icons/CloseCircleIcon.js +1 -1
  417. package/dist/icons/CloseIcon.js +1 -1
  418. package/dist/icons/CodeIcon.js +1 -1
  419. package/dist/icons/ColumnTotalIcon.js +1 -1
  420. package/dist/icons/CopyIcon.js +1 -1
  421. package/dist/icons/CountIcon.js +1 -1
  422. package/dist/icons/CubeIcon.js +1 -1
  423. package/dist/icons/CubePauseIcon.js +1 -1
  424. package/dist/icons/CubePlayIcon.js +1 -1
  425. package/dist/icons/CurrencyDollarIcon.js +1 -1
  426. package/dist/icons/DangerIcon.js +1 -1
  427. package/dist/icons/DashboardIcon.js +1 -1
  428. package/dist/icons/DatabaseIcon.js +1 -1
  429. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  430. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  431. package/dist/icons/DirectionIcon.js +1 -1
  432. package/dist/icons/DonutIcon.js +1 -1
  433. package/dist/icons/DownIcon.js +1 -1
  434. package/dist/icons/EditIcon.js +1 -1
  435. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  436. package/dist/icons/ExclamationCircleIcon.js +1 -1
  437. package/dist/icons/ExclamationIcon.js +1 -1
  438. package/dist/icons/EyeIcon.js +1 -1
  439. package/dist/icons/EyeInvisibleIcon.js +1 -1
  440. package/dist/icons/FilterIcon.js +1 -1
  441. package/dist/icons/FolderFilledIcon.js +1 -1
  442. package/dist/icons/FolderIcon.js +1 -1
  443. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  444. package/dist/icons/FolderOpenIcon.js +1 -1
  445. package/dist/icons/ForwardIcon.js +1 -1
  446. package/dist/icons/GripVerticalIcon.js +1 -1
  447. package/dist/icons/HierarchyIcon.js +1 -1
  448. package/dist/icons/HierarchyOpenIcon.js +1 -1
  449. package/dist/icons/Icon.js +1 -1
  450. package/dist/icons/InfoCircleIcon.js +1 -1
  451. package/dist/icons/InfoIcon.js +1 -1
  452. package/dist/icons/KeyIcon.js +1 -1
  453. package/dist/icons/LeftIcon.js +1 -1
  454. package/dist/icons/LineChartIcon.js +1 -1
  455. package/dist/icons/LoadingIcon.js +1 -1
  456. package/dist/icons/LockFilledIcon.js +1 -1
  457. package/dist/icons/LockIcon.js +1 -1
  458. package/dist/icons/MoreIcon.js +1 -1
  459. package/dist/icons/NotAllowedIcon.js +1 -1
  460. package/dist/icons/Number123Icon.js +1 -1
  461. package/dist/icons/NumberIcon.js +1 -1
  462. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  463. package/dist/icons/PauseCircleIcon.js +1 -1
  464. package/dist/icons/PauseIcon.js +1 -1
  465. package/dist/icons/PercentageIcon.js +1 -1
  466. package/dist/icons/PieChartIcon.js +1 -1
  467. package/dist/icons/PipetteIcon.js +1 -1
  468. package/dist/icons/PlayCircleIcon.js +1 -1
  469. package/dist/icons/PlayIcon.js +1 -1
  470. package/dist/icons/PlusIcon.js +1 -1
  471. package/dist/icons/ProgressBarIcon.js +1 -1
  472. package/dist/icons/ReloadIcon.js +1 -1
  473. package/dist/icons/ReportIcon.js +1 -1
  474. package/dist/icons/ReturnIcon.js +1 -1
  475. package/dist/icons/RightIcon.js +1 -1
  476. package/dist/icons/RowTotalsIcon.js +1 -1
  477. package/dist/icons/SchemeIcon.js +1 -1
  478. package/dist/icons/SearchIcon.js +1 -1
  479. package/dist/icons/SemanticQueryIcon.js +1 -1
  480. package/dist/icons/SettingsIcon.js +1 -1
  481. package/dist/icons/ShieldFilledIcon.js +1 -1
  482. package/dist/icons/ShieldIcon.js +1 -1
  483. package/dist/icons/SlashIcon.js +1 -1
  484. package/dist/icons/SparklesIcon.js +1 -1
  485. package/dist/icons/SqlIcon.js +1 -1
  486. package/dist/icons/StatsIcon.js +1 -1
  487. package/dist/icons/StopIcon.js +1 -1
  488. package/dist/icons/StringIcon.js +1 -1
  489. package/dist/icons/SubtotalsIcon.js +1 -1
  490. package/dist/icons/SwitchIcon.js +1 -1
  491. package/dist/icons/TableIcon.js +1 -1
  492. package/dist/icons/ThumbsDownIcon.js +1 -1
  493. package/dist/icons/ThumbsUpIcon.js +1 -1
  494. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  495. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  496. package/dist/icons/ThunderboltIcon.js +1 -1
  497. package/dist/icons/TimeIcon.js +1 -1
  498. package/dist/icons/TrashIcon.js +1 -1
  499. package/dist/icons/UnlockIcon.js +1 -1
  500. package/dist/icons/UpIcon.js +1 -1
  501. package/dist/icons/UserGroupIcon.js +1 -1
  502. package/dist/icons/UserIcon.js +1 -1
  503. package/dist/icons/UserLockIcon.js +1 -1
  504. package/dist/icons/ViewIcon.js +1 -1
  505. package/dist/icons/WarningFilledIcon.js +1 -1
  506. package/dist/icons/WarningIcon.js +1 -1
  507. package/dist/icons/index.d.ts +2 -0
  508. package/dist/icons/wrap-icon.js +1 -1
  509. package/dist/index.d.ts +7 -2
  510. package/dist/index.js +7 -2
  511. package/dist/index.js.map +1 -1
  512. package/dist/provider.js +1 -1
  513. package/dist/providers/TrackingProvider.js +1 -1
  514. package/dist/providers/navigationAdapter.default.js +1 -1
  515. package/dist/tokens/base.js +1 -1
  516. package/dist/tokens/color-theme.d.ts +86 -0
  517. package/dist/tokens/color-theme.js +156 -0
  518. package/dist/tokens/color-theme.js.map +1 -0
  519. package/dist/tokens/colors.js +1 -1
  520. package/dist/tokens/index.d.ts +1 -0
  521. package/dist/tokens/index.js +2 -1
  522. package/dist/tokens/index.js.map +1 -1
  523. package/dist/tokens/layout.js +1 -1
  524. package/dist/tokens/lazy-styles.js +1 -1
  525. package/dist/tokens/palette-config.js +2 -2
  526. package/dist/tokens/palette.d.ts +1 -1
  527. package/dist/tokens/palette.js +44 -2
  528. package/dist/tokens/palette.js.map +1 -1
  529. package/dist/tokens/shadows.js +1 -1
  530. package/dist/tokens/sizes.js +1 -1
  531. package/dist/tokens/spacing.js +1 -1
  532. package/dist/tokens/typography.js +1 -1
  533. package/dist/utils/ResizeSensor.js +1 -1
  534. package/dist/utils/index.d.ts +1 -0
  535. package/dist/utils/is-dev-env.js +1 -1
  536. package/dist/utils/modules.js +1 -1
  537. package/dist/utils/promise.js +1 -1
  538. package/dist/utils/raf.js +1 -1
  539. package/dist/utils/random.js +1 -1
  540. package/dist/utils/range.js +1 -1
  541. package/dist/utils/react/RenderCache.js +1 -1
  542. package/dist/utils/react/Slots.js +1 -1
  543. package/dist/utils/react/chain.js +1 -1
  544. package/dist/utils/react/disabledProps.d.ts +49 -0
  545. package/dist/utils/react/disabledProps.js +82 -0
  546. package/dist/utils/react/disabledProps.js.map +1 -0
  547. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  548. package/dist/utils/react/index.d.ts +1 -0
  549. package/dist/utils/react/index.js +2 -1
  550. package/dist/utils/react/interactions.js +1 -1
  551. package/dist/utils/react/isTextOnly.js +1 -1
  552. package/dist/utils/react/mapProps.js +1 -1
  553. package/dist/utils/react/mergeProps.js +1 -1
  554. package/dist/utils/react/nullableValue.js +1 -1
  555. package/dist/utils/react/resolveIcon.js +1 -1
  556. package/dist/utils/react/sharedStore.js +1 -1
  557. package/dist/utils/react/useBufferedValue.js +1 -1
  558. package/dist/utils/react/useCombinedRefs.js +1 -1
  559. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  560. package/dist/utils/react/useEventBus.js +1 -1
  561. package/dist/utils/react/useId.js +1 -1
  562. package/dist/utils/react/useIsDarwin.js +1 -1
  563. package/dist/utils/react/useKeySymbols.js +1 -1
  564. package/dist/utils/react/useLayoutEffect.js +1 -1
  565. package/dist/utils/react/useLocalStorage.js +1 -1
  566. package/dist/utils/react/useMergeStyles.js +1 -1
  567. package/dist/utils/react/usePopoverSync.js +1 -1
  568. package/dist/utils/react/useQaProps.js +1 -1
  569. package/dist/utils/react/useViewportSize.js +1 -1
  570. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  571. package/dist/utils/selection.js +1 -1
  572. package/dist/utils/styles.js +1 -1
  573. package/dist/utils/tree.js +1 -1
  574. package/dist/utils/warnings.js +1 -1
  575. package/dist/version.js +2 -2
  576. package/docs/components/actions/Button.md +19 -1
  577. package/docs/components/content/Item.md +25 -3
  578. package/docs/components/data/DataTable.md +118 -2
  579. package/docs/components/data/ItemTable.md +37 -5
  580. package/docs/components/layout/Board.md +23 -12
  581. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useIsDarwin.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { useIsDarwin } from "./useIsDarwin.js";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import * as React$1 from "react";
3
3
 
4
4
  //#region src/utils/react/useLayoutEffect.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useCallback, useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { mergeStyles } from "@tenphi/tasty";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { EventBusContext, useEventBus } from "./useEventBus.js";
3
3
  import { useCallback, useContext, useEffect, useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  //#region src/utils/react/useQaProps.ts
3
3
  /**
4
4
  * Processes QA props.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useViewportSize.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { isValidElement } from "react";
3
3
  import { isFragment } from "react-is";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  //#region src/utils/selection.ts
3
3
  /**
4
4
  * Deduplicate/toggle keys in a selection: if a key appears twice it is
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  //#region src/utils/styles.ts
3
3
  /**
4
4
  * Split properties into style and non-style properties.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  //#region src/utils/tree.ts
3
3
  function toFlatTree(tree, includingFolders) {
4
4
  return tree.reduce((result, node) => {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  //#region src/utils/warnings.ts
3
3
  const SUGGESTED_PROP_MAP = {
4
4
  disabled: "isDisabled",
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  //#region src/version.ts
3
- const VERSION = "0.158.0";
3
+ const VERSION = "0.160.0";
4
4
  const TASTY_VERSION = "3.0.1";
5
5
  if (typeof window !== "undefined") {
6
6
  const version = VERSION;
@@ -15,7 +15,7 @@ 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'` (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)
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
19
  - **`theme`** `'default' | 'danger' | 'success' | 'warning' | 'note' | 'special'` (default: `default`) — Semantic colour palette theme
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`
@@ -82,6 +82,7 @@ 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.
85
86
 
86
87
  ### Themes. `theme` prop
87
88
 
@@ -179,8 +180,23 @@ import { IconPlus } from '@tabler/icons-react';
179
180
  <Button tooltip={true} width="100px">
180
181
  This text will be truncated
181
182
  </Button>;
183
+
184
+ {
185
+ /* Explain why the button is unavailable */
186
+ }
187
+ <Button isDisabled tooltip="Not enough permissions">
188
+ Delete
189
+ </Button>;
182
190
  ```
183
191
 
192
+ A disabled button keeps showing its tooltip. Browsers stop dispatching mouse
193
+ events on elements carrying the native `disabled` attribute, so a button that
194
+ has a tooltip is marked with `aria-disabled` instead and kept inert: `onPress`
195
+ never fires and clicks (including the ones Enter and Space produce) do nothing.
196
+ Such a button also stays in the tab order, so keyboard users can focus it and
197
+ read the tooltip. Buttons rendered as links (`to`) are always marked this way,
198
+ since `disabled` is not a valid attribute on an anchor.
199
+
184
200
  ### Custom Size
185
201
 
186
202
  ```jsx
@@ -212,6 +228,8 @@ import { IconPlus } from '@tabler/icons-react';
212
228
 
213
229
  - `aria-label`, `aria-labelledby` – Accessible name.
214
230
  - `aria-pressed` – Managed automatically when `isSelected` is used.
231
+ - `aria-disabled` – Announces the disabled state whenever the native `disabled`
232
+ attribute cannot be used: on links, and on buttons that carry a tooltip.
215
233
  - Additional ARIA attributes supported by React Aria's `useButton`.
216
234
 
217
235
  ## Behaviour Inside Popovers
@@ -22,7 +22,7 @@ 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'` (default: `item`) — Visual style variant
25
+ - **`type`** `'item' | 'header' | 'primary' | 'outline' | 'outline-2' | 'clear' | 'link' | 'card' | 'current'` (default: `item`) — Visual style variant
26
26
  - **`theme`** `'default' | 'danger' | 'success' | 'warning' | 'note' | 'special'` (default: `default`) — Semantic colour palette theme
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"`
@@ -84,7 +84,7 @@ 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)
87
+ - **`type`** `string` — Applied based on type prop value (item, header, primary, outline, outline-2, clear, link, card, current)
88
88
  - **`theme`** `string` — Applied based on theme prop value (default, danger, success, special, warning, note)
89
89
  - **`shape`** `string` — Applied based on shape prop value (card, button, sharp, pill)
90
90
 
@@ -100,6 +100,7 @@ The `mods` property accepts the following modifiers:
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
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
103
104
 
104
105
  ### Themes
105
106
 
@@ -256,6 +257,20 @@ Like headers, card labels use semantic heading tags (h1-h6) controlled by the `l
256
257
  </Item>
257
258
  ```
258
259
 
260
+ ### Current Type
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:
263
+
264
+ ```jsx
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>
267
+ </Block>
268
+
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>
271
+ </Block>
272
+ ```
273
+
259
274
  ### With Loading State
260
275
 
261
276
  The `isLoading` prop displays a loading indicator and disables the item. The `loadingSlot` prop controls which slot the loading icon replaces:
@@ -388,8 +403,15 @@ By default, Item shows an auto tooltip when content overflows.
388
403
  >
389
404
  This shows custom tooltip only when text overflows
390
405
  </Item>
406
+
407
+ {/* Explain why the item is unavailable */}
408
+ <Item isDisabled tooltip="Available on the Enterprise plan">
409
+ Row-level security
410
+ </Item>
391
411
  ```
392
412
 
413
+ A disabled item keeps showing its tooltip — that is usually where the reason for being unavailable is written. Browsers stop dispatching mouse events on elements carrying the native `disabled` attribute, so an item that has a tooltip is marked with `aria-disabled` instead and kept inert: activation handlers are dropped and clicks (including the ones Enter and Space produce) do nothing.
414
+
393
415
  ## Accessibility
394
416
 
395
417
  ### Keyboard Navigation
@@ -408,7 +430,7 @@ By default, Item shows an auto tooltip when content overflows.
408
430
  ### ARIA Properties
409
431
 
410
432
  - `aria-label` - Provides accessible label when no visible label exists
411
- - `aria-disabled` - Indicates disabled state
433
+ - `aria-disabled` - Indicates disabled state. The native `disabled` attribute is only added on top of it when the item renders as a form control (`as="button"`, for instance) and has no tooltip to keep hoverable
412
434
  - `aria-selected` - Indicates selection state when applicable
413
435
  - `tabIndex` - Controls focus behavior
414
436
 
@@ -61,7 +61,8 @@ and everything it knows about the query, in Cloud.
61
61
 
62
62
  - **`shape`** `'plain' | 'card'` (default: `'plain'`)
63
63
  - **`size`** `SizeName` (default: `'small'`) — An analytical grid packs more rows than a list.
64
- - **`rowHeight`** `number` — Overrides the height implied by `size`.
64
+ - **`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
+ - **`rowHeight`** `number` — An exact height, when none of the named steps is the answer. Wins over both `rowSize` and `size`.
65
66
  - **`headerHeight`** `number`
66
67
  - **`isStriped`** `boolean` (default: `true`) — Banding is what makes a wide row readable across.
67
68
  - **`isHeaderHidden`** `boolean`
@@ -109,6 +110,20 @@ and everything it knows about the query, in Cloud.
109
110
  - **`columnWidths`** `Record<string, number>`
110
111
  - **`defaultColumnWidths`** `Record<string, number>`
111
112
  - **`onColumnResize`** `(columnKey: string, width: number, all: Record<string, number>) => void`
113
+ - **`isColumnReorderable`** `boolean` (default: `false`) — Drag column headers sideways to reorder them.
114
+ - **`columnOrder`** `string[]` — Controlled order, as column keys. Works with or without dragging.
115
+ - **`defaultColumnOrder`** `string[]`
116
+ - **`onColumnOrderChange`** `(order: string[]) => void` — The full key list, including hidden and pinned columns.
117
+
118
+ Per column, on `CubeDataTableColumn`: `isReorderable`, `color` and `colorScope` —
119
+ see [Column Colors](#column-colors) for the last two.
120
+
121
+ #### Column menu
122
+
123
+ - **`columnContextMenu`** `boolean | 'context-only'` (default: `true`) — Where a column's `header.menu` is exposed.
124
+ - **`onColumnMenuAction`** `(action: string, columnKey: string) => void` — The pressed key, as written.
125
+ - **`columnMenuTriggerProps`** `Record<string, any>`
126
+ - **`columnMenuProps`** `Record<string, any>`
112
127
 
113
128
  #### Virtualization
114
129
 
@@ -119,7 +134,7 @@ and everything it knows about the query, in Cloud.
119
134
  #### Other
120
135
 
121
136
  - **`getRowProps`** `(ctx: CubeTableRowContext<T>) => Record<string, any>` — Per-row mods, styles and height.
122
- - **`storageKey`** `string` — Persists page size and column widths.
137
+ - **`storageKey`** `string` — Persists page size, column widths and column order.
123
138
  - **`ariaLabel`** `string`
124
139
 
125
140
  #### `dataType`
@@ -286,12 +301,113 @@ succeeds.
286
301
 
287
302
  ### States
288
303
 
304
+ ### Sorting Affordance
305
+
306
+ A sortable header shows nothing at rest. Hover it — or focus it from the keyboard
307
+ — and the sort arrow fades in at 40%, pointing the way a press would sort it
308
+ (ascending, for a column that is currently unsorted). Press it and the arrow goes
309
+ solid and stays that way with the pointer gone, which is what separates a hint
310
+ from a state.
311
+
312
+ The arrow keeps its slot throughout, so none of this shifts the label. A
313
+ non-sortable column has no arrow at all — the hint is not a reason to render one.
314
+
315
+ ### Column Menu
316
+
317
+ A column exposes a menu through `header.menu`, opened from a `⋮` trigger in the
318
+ header, by right-click, or with `Shift`+`F10`. The contents are opaque — the grid
319
+ mounts the node and reports the pressed key back through `onColumnMenuAction`,
320
+ which is what keeps Cube vocabulary out of the kit.
321
+
322
+ Sorting is the exception, because it is the one thing the table itself can do.
323
+ `columnSortMenu()` returns `sort-asc` / `sort-desc` / `clear-sort` items that the
324
+ table labels from the current locale, disables when they would do nothing, and
325
+ applies before telling the consumer. Everything else is yours:
326
+
327
+ ```tsx
328
+ import { columnSortMenu, Menu } from '@cube-dev/ui-kit';
329
+
330
+ const columns = [
331
+ {
332
+ key: 'revenue',
333
+ title: 'Revenue',
334
+ isSortable: true,
335
+ header: {
336
+ menu: (
337
+ <>
338
+ {columnSortMenu()}
339
+ <Menu.Item key="pin">Pin column</Menu.Item>
340
+ </>
341
+ ),
342
+ },
343
+ },
344
+ ];
345
+
346
+ <DataTable
347
+ columns={columns}
348
+ onColumnMenuAction={(action, columnKey) => {
349
+ if (action === 'pin') pinColumn(columnKey);
350
+ }}
351
+ />;
352
+ ```
353
+
354
+ Pressing the trigger never sorts the column: the header's `Item` swallows the
355
+ click, which is why it sits *inside* the `<th>` rather than being it.
356
+
357
+ ### Column Reordering
358
+
359
+ `isColumnReorderable` lets a user drag a header sideways, or move the focused
360
+ column with `Alt`+`←` / `→`. Clicking still sorts and the resize handle still
361
+ resizes.
362
+
363
+ Structural and pinned columns stay put — `pin` is already the ordering authority
364
+ for a pinned column — and a single column opts out with `isReorderable: false`.
365
+ `columnOrder` works on its own too, so a column manager elsewhere in the page can
366
+ drive the order without any dragging.
367
+
368
+ A stale order is safe: keys for columns that no longer exist are ignored, and a
369
+ column missing from the list lands after the neighbour it had in `columns`
370
+ rather than being swept to the end.
371
+
372
+ ### Column Colors
373
+
374
+ `column.color` tints a whole column — header, cells and pinned totals. It takes a
375
+ palette theme name, any CSS color, a `{ hue, saturation }` seed, or a
376
+ `{ fill, text }` pair for full manual control.
377
+
378
+ Every form but the last is *derived*: only the hue and saturation are kept, and
379
+ the tone ramp plus an AA/AAA text floor are re-solved for light, dark and
380
+ high-contrast. A column cannot end up unreadable in a scheme nobody checked.
381
+
382
+ ```tsx
383
+ const columns = [
384
+ { key: 'orders', title: 'Orders', color: 'note' },
385
+ { key: 'revenue', title: 'Revenue', color: 'success' },
386
+ { key: 'conversion', title: 'Conversion', color: '#0ea5e9' },
387
+ // Header only, cells left neutral.
388
+ { key: 'region', title: 'Region', color: 'danger', colorScope: ['header'] },
389
+ ];
390
+ ```
391
+
392
+ Row banding survives inside a tinted column: the tint carries its own band one
393
+ tone step away, so the stripe still reads down the column instead of being
394
+ painted over.
395
+
396
+ Under the hood each distinct color becomes a small adaptive theme named by a hash
397
+ of its config, registered once per document — so ten columns sharing a color cost
398
+ one set of tokens. That machinery is public as `useColorTheme` if you want it
399
+ elsewhere.
400
+
289
401
  ## Accessibility
290
402
 
291
403
  The table is a `role="grid"` with document-absolute `aria-rowindex` /
292
404
  `aria-colindex`, and `aria-rowcount` counts pinned rows. Every sorted column
293
405
  carries `aria-sort`, not just the first.
294
406
 
407
+ A header cell takes a tab stop when it is interactive — sortable, carrying a
408
+ menu, or reorderable. `Shift`+`F10` opens the column menu from the keyboard, and
409
+ `Alt`+`←` / `→` moves a reorderable column, so neither needs a pointer.
410
+
295
411
  ## Related Components
296
412
 
297
413
  - ItemTable — a list of things to act on.
@@ -189,6 +189,14 @@ pivots, totals. Use `ListBox` when there is only one column.
189
189
  - **`defaultColumnWidths`** `Record<string, number>` — Initial widths.
190
190
  - **`onColumnResize`** `(columnKey, width, all) => void` — Fires once the
191
191
  gesture ends, not on every pixel.
192
+ - **`columnContextMenu`** `boolean | 'context-only'` (default: `true`) — Where a
193
+ column's `header.menu` is exposed: a `⋮` trigger plus right-click and
194
+ Shift+F10, right-click only, or nowhere.
195
+ - **`onColumnMenuAction`** `(action, columnKey) => void` — The pressed
196
+ `Menu.Item` key, as written. Fires for the reserved sort keys too, after the
197
+ table has applied them.
198
+ - **`columnMenuTriggerProps`** `Record<string, any>` — Props for the `⋮` trigger.
199
+ - **`columnMenuProps`** `Record<string, any>` — Props for the `Menu`.
192
200
  - **`storageKey`** `string` — Persists the table's own state under
193
201
  `cube-ui-kit:table:${storageKey}`. Controlled state is never stored — a
194
202
  controlled `pageSize` or `sort` belongs to the page, and restoring it would
@@ -225,7 +233,7 @@ interface CubeItemTableColumn<T> {
225
233
  cellProps?: (ctx) => Record<string, any> | undefined;
226
234
 
227
235
  align?: 'start' | 'center' | 'end';
228
- isSortable?: boolean;
236
+ isSortable?: boolean; // opt in per column (default false)
229
237
  isSearchable?: boolean; // include in the built-in search (default true)
230
238
  isCopyable?: boolean; // include in TSV copy (default true)
231
239
  autoHeight?: boolean; // wrap text and let the row grow
@@ -405,10 +413,11 @@ search sets it for you.
405
413
 
406
414
  ### Sorting
407
415
 
408
- Mark columns `isSortable` and clicking a header cycles
409
- `ascending descending → unsorted`. The third state matters whenever the source
410
- order is meaningful, which is why it is the default cycle; set
411
- `disallowSortRemoval` on a column to reduce it to `asc ↔ desc`.
416
+ Sorting is **opt in, per column**: a table with no `isSortable` column has inert
417
+ headers and `sortMode` resolves to `'off'`. Mark columns `isSortable` and
418
+ clicking a header cycles `ascending descending unsorted`. The third state
419
+ matters whenever the source order is meaningful, which is why it is the default
420
+ cycle; set `disallowSortRemoval` on a column to reduce it to `asc ↔ desc`.
412
421
 
413
422
  ```jsx
414
423
  <ItemTable
@@ -422,6 +431,29 @@ order is meaningful, which is why it is the default cycle; set
422
431
  />
423
432
  ```
424
433
 
434
+ #### A fixed order the user cannot change
435
+
436
+ For a list that arrives in a meaningful order — most of them — leave every column
437
+ alone and pass the order you want. `sortMode="client"` keeps the engine sorting
438
+ while the headers stay inert, so nothing is clickable and no header takes a tab
439
+ stop:
440
+
441
+ ```jsx
442
+ <ItemTable
443
+ data={rows}
444
+ columns={[{ key: 'name', title: 'Name' }]}
445
+ sortMode="client"
446
+ sort={{ columnKey: 'name', direction: 'asc' }}
447
+ />
448
+ ```
449
+
450
+ The sorted column still carries `aria-sort`, so a screen reader announces the
451
+ order even though the header cannot be operated. It is **not** drawn — the sort
452
+ arrow belongs to the clickable affordance — so add your own marker through
453
+ `header.suffix` if sighted users need to see which column the order follows.
454
+
455
+ Data already in the right order needs none of this: pass it and set nothing.
456
+
425
457
  Client-side sorting compares raw `getValue` results — numerically for numbers,
426
458
  chronologically for dates — and falls back to a locale-aware collator over the
427
459
  column's display text, so a formatted column sorts the way it reads. `compare`
@@ -153,6 +153,8 @@ Every widget host exposes these as `data-*` attributes, and any style map passed
153
153
  through `widgetProps.styles` or a per-widget `styles` resolves against them.
154
154
 
155
155
  - **`selected`** — the widget is in the board's selection.
156
+ - **`pre-selected`** — a live marquee covers the widget, so releasing the pointer
157
+ will select it. Never set at the same time as `selected`.
156
158
  - **`card`** — the widget draws a card border (`isCard`).
157
159
  - **`draggable`** — the widget can be dragged and no drag is in flight.
158
160
  - **`drag`** — the widget is being dragged.
@@ -166,15 +168,17 @@ Selection is an *edge* treatment — a `#primary-border` border plus a `#primary
166
168
  ring — because it reads as a focus-like state rather than a fill. `outline` stays
167
169
  reserved for the real focus ring, which is what keeps the two legible together:
168
170
  they use different tokens and the focus outline sits one border-width further
169
- out. To restyle it, override the same keys:
171
+ out. `pre-selected` draws the same edge with the ring dimmed, so committing a
172
+ lasso only changes the strength of something already on screen. To restyle
173
+ either, override the same keys:
170
174
 
171
175
  ```jsx
172
176
  <Board
173
177
  selectionMode="multiple"
174
178
  widgetProps={{
175
179
  styles: {
176
- border: { '': true, selected: '#note-border' },
177
- shadow: { '': false, selected: '0 0 0 1bw #note' },
180
+ border: { '': true, 'pre-selected': '#note-border', selected: '#note-border' },
181
+ shadow: { '': false, 'pre-selected': '0 0 0 1bw #note.40', selected: '0 0 0 1bw #note' },
178
182
  },
179
183
  }}
180
184
  />
@@ -188,6 +192,8 @@ Supported hooks for tests, E2E, and building your own selection overlay:
188
192
  - **`data-board-widget-host`** on every widget host — presence only, "this is a widget host".
189
193
  - **`data-board-widget-id`** on every widget host — which widget.
190
194
  - **`data-selected`** on a selected host.
195
+ - **`data-pre-selected`** on a host a live marquee currently covers.
196
+ - **`data-marquee`** on the board element while a marquee gesture is in progress.
191
197
 
192
198
  ### Base Properties
193
199
 
@@ -293,19 +299,24 @@ touch drags capture the pointer, so they do not trigger it.
293
299
 
294
300
  ### Selection
295
301
 
296
- Click to select, Shift/Cmd/Ctrl-click to add or remove, and drag from empty board
297
302
  Press a widget to select it, <kbd>Shift</kbd>-press to add or remove one, and
298
303
  drag from empty board space to lasso. Because the press both selects and arms the
299
304
  drag, grabbing a widget you have not selected simply makes it the selection and
300
305
  moves it; grabbing one that *is* selected moves the whole block rigidly — keeping
301
- its shape horizontally, clamping against the grid edge as a unit rather than
302
- collapsing, and committing once.
303
-
304
- A group reflows exactly like a single widget: it is compacted by the same rules,
305
- so on a `vertical` board it can no more be parked in empty space than one widget
306
- can, and the widgets around it close the gap in the same frame. Under
307
- `compact="free"` (or `null`) nothing compacts, so the block stays precisely where
308
- it was dropped.
306
+ its shape, clamping against the grid edge as a unit rather than collapsing, and
307
+ committing once. While the band is out, the widgets it covers show a dimmed
308
+ version of the selected edge (`pre-selected`), and no text can be selected under
309
+ it.
310
+
311
+ A group reflows like a single widget — it is compacted by the same rules, so on a
312
+ `vertical` board it can no more be parked in empty space than one widget can, and
313
+ the widgets around it close the gap in the same frame — but it does so as one
314
+ block. Its members keep their exact offsets for the whole drag, and the widgets
315
+ standing where it lands move out of its way rather than being packed between its
316
+ members — whether it is dragged against the compaction axis or across it. When
317
+ the drag ends the board compacts normally, so a group whose members could each
318
+ float further settles on release. Under `compact="free"` (or `null`) nothing compacts,
319
+ so the block stays precisely where it was dropped.
309
320
 
310
321
  ### Interactive content keeps its clicks
311
322
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.158.0",
3
+ "version": "0.160.0",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {