@cube-dev/ui-kit 0.169.0 → 0.170.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 (600) hide show
  1. package/README.md +1 -1
  2. package/dist/CHANGELOG.md +24 -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 +5 -5
  16. package/dist/components/GlobalStyles.js.map +1 -1
  17. package/dist/components/GridProvider.js +1 -1
  18. package/dist/components/HiddenInput.js +1 -1
  19. package/dist/components/Root.js +3 -5
  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 +1 -1
  23. package/dist/components/actions/Banner/Banner.js.map +1 -1
  24. package/dist/components/actions/Button/Button.js +1 -1
  25. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  26. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  27. package/dist/components/actions/ButtonSplit/context.js +1 -1
  28. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  29. package/dist/components/actions/CommandMenu/styled.js +1 -1
  30. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  31. package/dist/components/actions/ItemActionContext.js +1 -1
  32. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  33. package/dist/components/actions/Link/Link.js +1 -1
  34. package/dist/components/actions/Menu/Menu.js +1 -1
  35. package/dist/components/actions/Menu/MenuItem.js +1 -1
  36. package/dist/components/actions/Menu/MenuSection.js +1 -1
  37. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  39. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  40. package/dist/components/actions/Menu/context.js +1 -1
  41. package/dist/components/actions/Menu/styled.js +1 -1
  42. package/dist/components/actions/Menu/styled.js.map +1 -1
  43. package/dist/components/actions/index.js +1 -1
  44. package/dist/components/actions/use-action.js +1 -1
  45. package/dist/components/actions/use-anchored-menu.js +1 -1
  46. package/dist/components/actions/use-context-menu.js +1 -1
  47. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  48. package/dist/components/content/Alert/Alert.js +1 -1
  49. package/dist/components/content/Alert/use-alert.js +1 -1
  50. package/dist/components/content/Avatar/Avatar.js +1 -1
  51. package/dist/components/content/Badge/Badge.js +1 -1
  52. package/dist/components/content/Card/Card.js +1 -1
  53. package/dist/components/content/Content.js +1 -1
  54. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  55. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  56. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  57. package/dist/components/content/Divider.js +1 -1
  58. package/dist/components/content/Footer.js +1 -1
  59. package/dist/components/content/Header.js +1 -1
  60. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  61. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  62. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  63. package/dist/components/content/Item/Item.js +1 -1
  64. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  65. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  66. package/dist/components/content/Layout/GridLayout.js +1 -1
  67. package/dist/components/content/Layout/Layout.js +1 -1
  68. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  69. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  70. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  71. package/dist/components/content/Layout/LayoutContent.js +1 -1
  72. package/dist/components/content/Layout/LayoutContext.js +1 -1
  73. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  74. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  75. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  76. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  77. package/dist/components/content/Layout/LayoutPane.js +1 -1
  78. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  79. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  80. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  81. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  82. package/dist/components/content/Layout/index.js +1 -1
  83. package/dist/components/content/Layout/utils.js +1 -1
  84. package/dist/components/content/Paragraph.js +1 -1
  85. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  86. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  87. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  88. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  89. package/dist/components/content/Result/Result.js +1 -1
  90. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  91. package/dist/components/content/Tag/Tag.js +1 -1
  92. package/dist/components/content/Text.d.ts +1351 -1351
  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 +1 -1
  104. package/dist/components/data/DataTable/DataTable.js +1 -1
  105. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  106. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  109. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  110. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  111. package/dist/components/data/TableBase/RowCollection.js +1 -1
  112. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  113. package/dist/components/data/TableBase/TableRow.js +1 -1
  114. package/dist/components/data/TableBase/TableView.js +1 -1
  115. package/dist/components/data/TableBase/column-menu.js +1 -1
  116. package/dist/components/data/TableBase/column-tint.js +2 -2
  117. package/dist/components/data/TableBase/column-tint.js.map +1 -1
  118. package/dist/components/data/TableBase/row-menu.js +1 -1
  119. package/dist/components/data/TableBase/styled.js +1 -1
  120. package/dist/components/data/TableBase/table-tree.js +1 -1
  121. package/dist/components/data/TableBase/types.d.ts +3 -3
  122. package/dist/components/data/TableBase/types.js +1 -1
  123. package/dist/components/data/TableBase/types.js.map +1 -1
  124. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  125. package/dist/components/data/TableBase/use-column-order.js +1 -1
  126. package/dist/components/data/TableBase/use-container-width.js +1 -1
  127. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  128. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  129. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  130. package/dist/components/data/TableBase/use-table-search.js +1 -1
  131. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  132. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  133. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  134. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  135. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  136. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  137. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  138. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  139. package/dist/components/fields/Checkbox/context.js +1 -1
  140. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  141. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  142. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  143. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +2 -2
  144. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  145. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  146. package/dist/components/fields/CommandTextArea/CommandTextArea.js +3 -3
  147. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  148. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  149. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  150. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  151. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  152. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  153. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  154. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  155. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  156. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  157. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  158. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  159. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  160. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  161. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  162. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  163. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  164. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  165. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  166. package/dist/components/fields/DatePicker/period.js +1 -1
  167. package/dist/components/fields/DatePicker/props.js +1 -1
  168. package/dist/components/fields/DatePicker/utils.js +1 -1
  169. package/dist/components/fields/FileInput/FileInput.js +1 -1
  170. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  171. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  172. package/dist/components/fields/Input/Input.js +1 -1
  173. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  174. package/dist/components/fields/ListBox/ListBox.js +1 -1
  175. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  176. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  177. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  178. package/dist/components/fields/NumberInput/NumberInput.js +3 -6
  179. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  180. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  181. package/dist/components/fields/PasswordInput/PasswordInput.js +3 -6
  182. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  183. package/dist/components/fields/Picker/Picker.js +1 -1
  184. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  185. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  186. package/dist/components/fields/RadioGroup/context.js +1 -1
  187. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  188. package/dist/components/fields/SearchInput/SearchInput.js +3 -6
  189. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  190. package/dist/components/fields/Select/Select.js +1 -1
  191. package/dist/components/fields/Select/Select.js.map +1 -1
  192. package/dist/components/fields/Slider/Gradation.js +1 -1
  193. package/dist/components/fields/Slider/HueSlider.js +1 -1
  194. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  195. package/dist/components/fields/Slider/Slider.js +1 -1
  196. package/dist/components/fields/Slider/SliderBase.js +1 -1
  197. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  198. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  199. package/dist/components/fields/Slider/elements.js +1 -1
  200. package/dist/components/fields/Slider/index.js +1 -1
  201. package/dist/components/fields/Switch/Switch.js +1 -1
  202. package/dist/components/fields/TextArea/TextArea.js +3 -6
  203. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  204. package/dist/components/fields/TextInput/TextInput.js +3 -3
  205. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  206. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  207. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  208. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  209. package/dist/components/fields/color/ColorPanel.js +1 -1
  210. package/dist/components/fields/color/channels.js +1 -1
  211. package/dist/components/fields/color/color.js +2 -2
  212. package/dist/components/fields/color/color.js.map +1 -1
  213. package/dist/components/fields/color/context.js +1 -1
  214. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  215. package/dist/components/form/Form/Field.js +1 -1
  216. package/dist/components/form/Form/Form.js +1 -1
  217. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  218. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  219. package/dist/components/form/Form/SubmitError.js +1 -1
  220. package/dist/components/form/Form/index.js +1 -1
  221. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  222. package/dist/components/form/Form/use-field/use-field.js +1 -1
  223. package/dist/components/form/Form/use-form.js +1 -1
  224. package/dist/components/form/Form/validation.js +1 -1
  225. package/dist/components/form/Label.js +1 -1
  226. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  227. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  228. package/dist/components/form/validation/use-validation-props.js +1 -1
  229. package/dist/components/form/wrapper.js +1 -1
  230. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  231. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  232. package/dist/components/layout/Board/Board.js +2 -1
  233. package/dist/components/layout/Board/Board.js.map +1 -1
  234. package/dist/components/layout/Board/BoardProvider.js +1 -1
  235. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  236. package/dist/components/layout/Board/Widget.js +1 -1
  237. package/dist/components/layout/Board/WidgetHost.js +42 -7
  238. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  239. package/dist/components/layout/Board/board-context.js +1 -1
  240. package/dist/components/layout/Board/board-store.js +1 -1
  241. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  242. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  243. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  244. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  245. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  246. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  247. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  248. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  249. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  250. package/dist/components/layout/Board/index.js +1 -1
  251. package/dist/components/layout/Board/responsive-utils.js +1 -1
  252. package/dist/components/layout/Board/use-board-layout.js +1 -1
  253. package/dist/components/layout/Board/use-board-registry.js +1 -1
  254. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  255. package/dist/components/layout/Board/use-board-selection.js +1 -1
  256. package/dist/components/layout/Flex.js +1 -1
  257. package/dist/components/layout/Flow.js +1 -1
  258. package/dist/components/layout/Grid.js +1 -1
  259. package/dist/components/layout/Panel.js +1 -1
  260. package/dist/components/layout/Prefix.js +1 -1
  261. package/dist/components/layout/ResizablePanel.js +1 -1
  262. package/dist/components/layout/Space.js +1 -1
  263. package/dist/components/layout/Suffix.js +1 -1
  264. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  265. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  266. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  267. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  268. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  269. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  270. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  271. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  272. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  273. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  274. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  275. package/dist/components/navigation/Tabs/styled.js +1 -1
  276. package/dist/components/navigation/Tabs/types.js +1 -1
  277. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  278. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  279. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  280. package/dist/components/other/Calendar/Calendar.js +1 -1
  281. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  282. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  283. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  284. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  285. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  286. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  287. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  288. package/dist/components/other/Calendar/styled.js +1 -1
  289. package/dist/components/other/CubeLogo/CubeLogo.d.ts +2 -2
  290. package/dist/components/other/CubeLogo/CubeLogo.js +12 -12
  291. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  292. package/dist/components/other/NoDataIcon/NoDataIcon.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/Tooltip.js.map +1 -1
  331. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  332. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  333. package/dist/components/overlays/Tooltip/context.js +1 -1
  334. package/dist/components/portal/Portal.js +1 -1
  335. package/dist/components/portal/PortalProvider.js +1 -1
  336. package/dist/components/portal/usePortal.js +1 -1
  337. package/dist/components/shared/DraggableCollection.js +1 -1
  338. package/dist/components/shared/InvalidIcon.js +1 -1
  339. package/dist/components/shared/ValidIcon.js +1 -1
  340. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  341. package/dist/components/status/Spin/Cube.js +1 -1
  342. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  343. package/dist/components/status/Spin/Spin.js +1 -1
  344. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  345. package/dist/data/item-themes.js +1 -1
  346. package/dist/data/item-themes.js.map +1 -1
  347. package/dist/data/themes.js +1 -1
  348. package/dist/data/themes.js.map +1 -1
  349. package/dist/eslint-plugin/defaults.generated.js +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 +1 -1
  357. package/dist/i18n/locales/en-US/uikit.js +1 -1
  358. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  359. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  360. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  361. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  362. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  363. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  364. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  365. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  366. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  367. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  368. package/dist/i18n/locales.js +1 -1
  369. package/dist/i18n/useFormatter.js +1 -1
  370. package/dist/i18n/useI18n.js +1 -1
  371. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  372. package/dist/icons/AdjustmentsIcon.js +1 -1
  373. package/dist/icons/AiIcon.js +1 -1
  374. package/dist/icons/AreaChartIcon.js +1 -1
  375. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  376. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  377. package/dist/icons/BackwardIcon.js +1 -1
  378. package/dist/icons/BarChartIcon.js +1 -1
  379. package/dist/icons/BellFilledIcon.js +1 -1
  380. package/dist/icons/BellIcon.js +1 -1
  381. package/dist/icons/BooleanIcon.js +1 -1
  382. package/dist/icons/CalendarEditIcon.js +1 -1
  383. package/dist/icons/CalendarIcon.js +1 -1
  384. package/dist/icons/CaretDownIcon.js +1 -1
  385. package/dist/icons/CaretUpIcon.js +1 -1
  386. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  387. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  388. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  389. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  390. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  391. package/dist/icons/ChartBarLineIcon.js +1 -1
  392. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  393. package/dist/icons/ChartBarStackedIcon.js +1 -1
  394. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  395. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  396. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  397. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  398. package/dist/icons/ChartBubbleIcon.js +1 -1
  399. package/dist/icons/ChartDonut2Icon.js +1 -1
  400. package/dist/icons/ChartFunnelIcon.js +1 -1
  401. package/dist/icons/ChartHeatmapIcon.js +1 -1
  402. package/dist/icons/ChartKPIIcon.js +1 -1
  403. package/dist/icons/ChartPie2Icon.js +1 -1
  404. package/dist/icons/ChartScatterIcon.js +1 -1
  405. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  406. package/dist/icons/CheckCircleIcon.js +1 -1
  407. package/dist/icons/CheckIcon.js +1 -1
  408. package/dist/icons/CircleFilledIcon.js +1 -1
  409. package/dist/icons/ClearIcon.js +1 -1
  410. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  411. package/dist/icons/CloseCircleIcon.js +1 -1
  412. package/dist/icons/CloseIcon.js +1 -1
  413. package/dist/icons/CodeIcon.js +1 -1
  414. package/dist/icons/ColumnTotalIcon.js +1 -1
  415. package/dist/icons/CopyIcon.js +1 -1
  416. package/dist/icons/CountIcon.js +1 -1
  417. package/dist/icons/CubeIcon.js +1 -1
  418. package/dist/icons/CubePauseIcon.js +1 -1
  419. package/dist/icons/CubePlayIcon.js +1 -1
  420. package/dist/icons/CurrencyDollarIcon.js +1 -1
  421. package/dist/icons/DangerIcon.js +1 -1
  422. package/dist/icons/DashboardIcon.js +1 -1
  423. package/dist/icons/DatabaseIcon.js +1 -1
  424. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  425. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  426. package/dist/icons/DirectionIcon.js +1 -1
  427. package/dist/icons/DonutIcon.js +1 -1
  428. package/dist/icons/DownIcon.js +1 -1
  429. package/dist/icons/EditIcon.js +1 -1
  430. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  431. package/dist/icons/ExclamationCircleIcon.js +1 -1
  432. package/dist/icons/ExclamationIcon.js +1 -1
  433. package/dist/icons/EyeIcon.js +1 -1
  434. package/dist/icons/EyeInvisibleIcon.js +1 -1
  435. package/dist/icons/FilterIcon.js +1 -1
  436. package/dist/icons/FolderFilledIcon.js +1 -1
  437. package/dist/icons/FolderIcon.js +1 -1
  438. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  439. package/dist/icons/FolderOpenIcon.js +1 -1
  440. package/dist/icons/ForwardIcon.js +1 -1
  441. package/dist/icons/GripVerticalIcon.js +1 -1
  442. package/dist/icons/HierarchyIcon.js +1 -1
  443. package/dist/icons/HierarchyOpenIcon.js +1 -1
  444. package/dist/icons/Icon.js +1 -1
  445. package/dist/icons/InfoCircleIcon.js +1 -1
  446. package/dist/icons/InfoIcon.js +1 -1
  447. package/dist/icons/KeyIcon.js +1 -1
  448. package/dist/icons/LeftIcon.js +1 -1
  449. package/dist/icons/LineChartIcon.js +1 -1
  450. package/dist/icons/LoadingIcon.js +1 -1
  451. package/dist/icons/LockFilledIcon.js +1 -1
  452. package/dist/icons/LockIcon.js +1 -1
  453. package/dist/icons/MoreIcon.js +1 -1
  454. package/dist/icons/NotAllowedIcon.js +1 -1
  455. package/dist/icons/Number123Icon.js +1 -1
  456. package/dist/icons/NumberIcon.js +1 -1
  457. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  458. package/dist/icons/PauseCircleIcon.js +1 -1
  459. package/dist/icons/PauseIcon.js +1 -1
  460. package/dist/icons/PercentageIcon.js +1 -1
  461. package/dist/icons/PieChartIcon.js +1 -1
  462. package/dist/icons/PipetteIcon.js +1 -1
  463. package/dist/icons/PlayCircleIcon.js +1 -1
  464. package/dist/icons/PlayIcon.js +1 -1
  465. package/dist/icons/PlusIcon.js +1 -1
  466. package/dist/icons/ProgressBarIcon.js +1 -1
  467. package/dist/icons/ReloadIcon.js +1 -1
  468. package/dist/icons/ReportIcon.js +1 -1
  469. package/dist/icons/ReturnIcon.js +1 -1
  470. package/dist/icons/RightIcon.js +1 -1
  471. package/dist/icons/RowTotalsIcon.js +1 -1
  472. package/dist/icons/SchemeIcon.js +1 -1
  473. package/dist/icons/SearchIcon.js +1 -1
  474. package/dist/icons/SemanticQueryIcon.js +1 -1
  475. package/dist/icons/SettingsIcon.js +1 -1
  476. package/dist/icons/ShieldFilledIcon.js +1 -1
  477. package/dist/icons/ShieldIcon.js +1 -1
  478. package/dist/icons/SlashIcon.js +1 -1
  479. package/dist/icons/SparklesIcon.js +1 -1
  480. package/dist/icons/SqlIcon.js +1 -1
  481. package/dist/icons/StatsIcon.js +1 -1
  482. package/dist/icons/StopIcon.js +1 -1
  483. package/dist/icons/StringIcon.js +1 -1
  484. package/dist/icons/SubtotalsIcon.js +1 -1
  485. package/dist/icons/SwitchIcon.js +1 -1
  486. package/dist/icons/TableIcon.js +1 -1
  487. package/dist/icons/ThumbsDownIcon.js +1 -1
  488. package/dist/icons/ThumbsUpIcon.js +1 -1
  489. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  490. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  491. package/dist/icons/ThunderboltIcon.js +1 -1
  492. package/dist/icons/TimeIcon.js +1 -1
  493. package/dist/icons/TrashIcon.js +1 -1
  494. package/dist/icons/UnlockIcon.js +1 -1
  495. package/dist/icons/UpIcon.js +1 -1
  496. package/dist/icons/UserGroupIcon.js +1 -1
  497. package/dist/icons/UserIcon.js +1 -1
  498. package/dist/icons/UserLockIcon.js +1 -1
  499. package/dist/icons/ViewIcon.js +1 -1
  500. package/dist/icons/WarningFilledIcon.js +1 -1
  501. package/dist/icons/WarningIcon.js +1 -1
  502. package/dist/icons/wrap-icon.js +1 -1
  503. package/dist/index.d.ts +2 -1
  504. package/dist/index.js +3 -2
  505. package/dist/index.js.map +1 -1
  506. package/dist/probe/canonicalize.js +1 -1
  507. package/dist/probe/css.js +1 -1
  508. package/dist/probe/index.js +1 -1
  509. package/dist/provider.js +1 -1
  510. package/dist/providers/TrackingProvider.js +1 -1
  511. package/dist/providers/navigationAdapter.default.js +1 -1
  512. package/dist/tokens/all-tokens.js +1 -1
  513. package/dist/tokens/base.js +1 -1
  514. package/dist/tokens/color-seed.js +1 -1
  515. package/dist/tokens/color-theme.d.ts +2 -2
  516. package/dist/tokens/color-theme.js +2 -2
  517. package/dist/tokens/color-theme.js.map +1 -1
  518. package/dist/tokens/colors.d.ts +3 -3
  519. package/dist/tokens/colors.js +4 -4
  520. package/dist/tokens/colors.js.map +1 -1
  521. package/dist/tokens/layout.js +1 -1
  522. package/dist/tokens/lazy-styles.js +1 -1
  523. package/dist/tokens/palette-config.d.ts +1 -1
  524. package/dist/tokens/palette-config.js +1 -1
  525. package/dist/tokens/palette-config.js.map +1 -1
  526. package/dist/tokens/palette.d.ts +5 -5
  527. package/dist/tokens/palette.js +11 -11
  528. package/dist/tokens/palette.js.map +1 -1
  529. package/dist/tokens/resolve.d.ts +1 -1
  530. package/dist/tokens/resolve.js +12 -31
  531. package/dist/tokens/resolve.js.map +1 -1
  532. package/dist/tokens/shadows.d.ts +1 -1
  533. package/dist/tokens/shadows.js +2 -2
  534. package/dist/tokens/shadows.js.map +1 -1
  535. package/dist/tokens/sizes.js +1 -1
  536. package/dist/tokens/spacing.js +1 -1
  537. package/dist/tokens/typography.js +1 -1
  538. package/dist/utils/ResizeSensor.js +1 -1
  539. package/dist/utils/index.d.ts +1 -0
  540. package/dist/utils/is-dev-env.js +1 -1
  541. package/dist/utils/modules.js +1 -1
  542. package/dist/utils/promise.js +1 -1
  543. package/dist/utils/raf.js +1 -1
  544. package/dist/utils/random.js +1 -1
  545. package/dist/utils/range.js +1 -1
  546. package/dist/utils/react/RenderCache.js +1 -1
  547. package/dist/utils/react/Slots.js +1 -1
  548. package/dist/utils/react/chain.js +1 -1
  549. package/dist/utils/react/disabledProps.js +1 -1
  550. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  551. package/dist/utils/react/index.d.ts +1 -0
  552. package/dist/utils/react/index.js +2 -1
  553. package/dist/utils/react/interactions.js +1 -1
  554. package/dist/utils/react/isTextOnly.js +1 -1
  555. package/dist/utils/react/mapProps.js +1 -1
  556. package/dist/utils/react/mergeProps.js +1 -1
  557. package/dist/utils/react/nullableValue.js +1 -1
  558. package/dist/utils/react/resolveIcon.js +1 -1
  559. package/dist/utils/react/sharedStore.js +1 -1
  560. package/dist/utils/react/useBufferedValue.js +1 -1
  561. package/dist/utils/react/useCombinedRefs.js +1 -1
  562. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  563. package/dist/utils/react/useEventBus.js +1 -1
  564. package/dist/utils/react/useId.js +1 -1
  565. package/dist/utils/react/useIsDarwin.js +1 -1
  566. package/dist/utils/react/useKeySymbols.js +1 -1
  567. package/dist/utils/react/useLayoutEffect.js +1 -1
  568. package/dist/utils/react/useLocalStorage.js +1 -1
  569. package/dist/utils/react/useMergeStyles.js +1 -1
  570. package/dist/utils/react/usePopoverSync.js +1 -1
  571. package/dist/utils/react/useQaProps.js +1 -1
  572. package/dist/utils/react/useSchema.d.ts +58 -0
  573. package/dist/utils/react/useSchema.js +182 -0
  574. package/dist/utils/react/useSchema.js.map +1 -0
  575. package/dist/utils/react/useViewportSize.js +1 -1
  576. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  577. package/dist/utils/selection.js +1 -1
  578. package/dist/utils/styles.js +1 -1
  579. package/dist/utils/tree.js +1 -1
  580. package/dist/utils/warnings.js +1 -1
  581. package/dist/version.js +2 -2
  582. package/docs/Colors.md +2 -2
  583. package/docs/Introduction.md +1 -1
  584. package/docs/Theming.md +29 -12
  585. package/docs/Usage.md +28 -11
  586. package/docs/components/content/ItemCard.md +1 -1
  587. package/docs/components/content/PrismCode.md +2 -2
  588. package/docs/components/data/DataTable.md +1 -1
  589. package/docs/components/fields/NumberInput.md +1 -1
  590. package/docs/components/fields/PasswordInput.md +1 -1
  591. package/docs/components/fields/Picker.md +1 -1
  592. package/docs/components/fields/SearchInput.md +1 -1
  593. package/docs/components/fields/TextArea.md +1 -1
  594. package/docs/components/fields/TextInput.md +1 -1
  595. package/docs/components/layout/Board.md +147 -36
  596. package/docs/components/organisms/StatsCard.md +1 -1
  597. package/docs/components/other/CubeLogo.md +9 -9
  598. package/docs/components/overlays/Tooltip.md +2 -2
  599. package/docs/components/overlays/TooltipProvider.md +1 -1
  600. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { BASE_STYLES, COLOR_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { TEXT_PROP_MAP, _Text } from "../Text.js";
4
4
  import { highlightText } from "../highlightText.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { TEXT_PROP_MAP } from "./Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { _Item } from "../Item/Item.js";
3
3
  import { Action } from "../../actions/Action/Action.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  //#region src/components/content/Tree/tree-index.ts
3
3
  function buildTreeIndex(treeData) {
4
4
  const byKey = /* @__PURE__ */ new Map();
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useMemo, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { _Text } from "./Text.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { TooltipProvider } from "../overlays/Tooltip/TooltipProvider.js";
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { _Text } from "../../content/Text.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { _Text } from "../../content/Text.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { _Pagination } from "../../navigation/Pagination/Pagination.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useI18n } from "../../../i18n/useI18n.js";
3
3
  import { Button } from "../../actions/index.js";
4
4
  import { ReloadIcon } from "../../../icons/ReloadIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  //#region src/components/data/TableBase/RowCollection.ts
3
3
  /**
4
4
  * A `Collection<Node<T>>` over a plain row array.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { __Menu } from "../../actions/Menu/Menu.js";
3
3
  import { normalizeMenuAction } from "./row-menu.js";
4
4
  import { Children, cloneElement, isValidElement } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { getPaletteConfig } from "../../../tokens/palette-config.js";
3
3
  import { hashString } from "../../../tokens/color-theme.js";
4
4
 
@@ -39,7 +39,7 @@ function isThemeName(value) {
39
39
  *
40
40
  * A status theme seeded by a COLOR needs nothing special here: its resolved seed already
41
41
  * carries that color's hue and chroma, so a tinted column follows it for free. Only the
42
- * two numbers are passed on — a runtime tint re-derives its own lightness per scheme, so
42
+ * two numbers are passed on — a runtime tint re-derives its own lightness per schema, so
43
43
  * the seed's `color` and `colorTone` have nothing to say to it and are not part of
44
44
  * `ColorThemeConfig`.
45
45
  */
@@ -1 +1 @@
1
- {"version":3,"file":"column-tint.js","names":[],"sources":["../../../../src/components/data/TableBase/column-tint.ts"],"sourcesContent":["import { hashString } from '../../../tokens/color-theme';\nimport { getPaletteConfig } from '../../../tokens/palette-config';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { ColorThemeConfig } from '../../../tokens/color-theme';\nimport type {\n CubeResolvedColumn,\n CubeTableColumnColor,\n CubeTableColumnColorScope,\n CubeTableColumnTheme,\n} from './types';\n\nconst THEMES = new Set<string>([\n 'primary',\n 'purple',\n 'success',\n 'danger',\n 'warning',\n 'note',\n]);\n\nconst DEFAULT_SCOPE: readonly CubeTableColumnColorScope[] = [\n 'header',\n 'body',\n 'totals',\n];\n\n/** The three paint values a tinted cell needs, as tasty colour strings. */\ninterface TintPaint {\n fill: string;\n fillBand: string;\n text: string;\n /** The header's text — muted, to match an untinted header. */\n headerText: string;\n}\n\nexport interface ColumnTints {\n /** `columnKey` → `data-tint` value. Absent means the column is not tinted. */\n slots: Map<string, string>;\n /** Which scopes each column's tint applies to. */\n scopes: Map<string, readonly CubeTableColumnColorScope[]>;\n /**\n * Theme configs to register with `useColorTheme`, one per distinct derived\n * spec. Empty when every column used the `{ fill, text }` escape hatch.\n */\n configs: ColorThemeConfig[];\n /** Merge into `styles.Cell`. */\n cellStyles: Styles | null;\n /** Merge into `styles.HeaderCell`. */\n headerCellStyles: Styles | null;\n}\n\nconst EMPTY: ColumnTints = {\n slots: new Map(),\n scopes: new Map(),\n configs: [],\n cellStyles: null,\n headerCellStyles: null,\n};\n\n/**\n * A theme name is only a theme name when the palette has one — otherwise the\n * string is a colour. `'note'` is a theme; `'#0ea5e9'` and `'red'` are colours.\n */\nfunction isThemeName(value: string): value is CubeTableColumnTheme {\n return THEMES.has(value);\n}\n\n/**\n * The seed for a palette theme, read from the live palette config so a re-seeded\n * `success` hue moves the columns tinted with it.\n *\n * `primary` and `purple` are the brand itself, which is why they read `hue`\n * rather than a `themes` entry — the palette derives them from the brand hue too.\n *\n * A status theme seeded by a COLOR needs nothing special here: its resolved seed already\n * carries that color's hue and chroma, so a tinted column follows it for free. Only the\n * two numbers are passed on — a runtime tint re-derives its own lightness per scheme, so\n * the seed's `color` and `colorTone` have nothing to say to it and are not part of\n * `ColorThemeConfig`.\n */\nfunction themeSeed(theme: CubeTableColumnTheme): {\n hue: number;\n saturation: number;\n} {\n const config = getPaletteConfig();\n\n if (theme === 'primary' || theme === 'purple') {\n return { hue: config.hue, saturation: config.saturation };\n }\n\n const { hue, saturation } = config.themes[theme];\n\n return { hue, saturation };\n}\n\n/** Normalizes any spec into a theme config, or `null` for the manual form. */\nexport function tintConfig(\n color: CubeTableColumnColor,\n): ColorThemeConfig | null {\n if (typeof color === 'string') {\n return isThemeName(color) ? themeSeed(color) : { hue: color };\n }\n\n if ('fill' in color) return null;\n\n return { hue: color.hue, saturation: color.saturation };\n}\n\n/**\n * A stable identity for a spec, so two columns asking for the same colour share\n * one slot — and therefore one set of generated rules.\n *\n * For a derived spec that identity is the theme's own content hash, which makes it\n * shared across TABLES as well: the tokens are registered globally under the same\n * name. The manual form has no theme, so it is keyed on its literal values.\n */\nfunction manualKey(paint: TintPaint): string {\n // Hashed, not literal: the values contain `#`, `.` and `|`, none of which\n // survive being interpolated into a tasty `@own(tint=…)` state key.\n return `raw-${hashString(\n `${paint.fill}|${paint.fillBand}|${paint.text}|${paint.headerText}`,\n )}`;\n}\n\nexport interface BuildColumnTintsOptions {\n /**\n * Resolves a derived spec to its theme. Injected rather than imported so the\n * caller — which is a component and can run hooks — owns registration, and so\n * this stays a pure function.\n */\n resolveTheme: (config: ColorThemeConfig) => {\n name: string;\n colors: Record<string, string>;\n };\n}\n\n/**\n * Maps a table's columns onto tint slots and the style maps that paint them.\n *\n * Pure. The colour maths lives in `src/tokens/color-theme.ts`; this is only the\n * mapping from columns to `data-tint` values and tasty state maps.\n */\nexport function buildColumnTints<T>(\n columns: readonly CubeResolvedColumn<T>[],\n { resolveTheme }: BuildColumnTintsOptions,\n): ColumnTints {\n const tinted = columns.filter(\n (column) => !column.isStructural && column.color != null,\n );\n\n if (!tinted.length) return EMPTY;\n\n const slots = new Map<string, string>();\n const scopes = new Map<string, readonly CubeTableColumnColorScope[]>();\n const configs: ColorThemeConfig[] = [];\n const paints = new Map<string, TintPaint>();\n\n for (const column of tinted) {\n const color = column.color as CubeTableColumnColor;\n const config = tintConfig(color);\n let slot: string;\n let paint: TintPaint;\n\n if (config) {\n const theme = resolveTheme(config);\n\n slot = theme.name;\n paint = {\n fill: theme.colors.surface,\n fillBand: theme.colors['surface-2'],\n text: theme.colors['surface-2-text'],\n headerText: theme.colors['surface-2-text-soft'],\n };\n\n if (!paints.has(slot)) configs.push(config);\n } else {\n const manual = color as {\n fill: string;\n fillBand?: string;\n text?: string;\n };\n\n paint = {\n fill: manual.fill,\n // Without a band the column simply does not band — the caller asked for\n // exactly these values, so inventing a second one would be a surprise.\n fillBand: manual.fillBand ?? manual.fill,\n text: manual.text ?? '#row-text',\n // The manual form derives nothing, so the header takes the same text.\n headerText: manual.text ?? '#row-text',\n };\n slot = manualKey(paint);\n }\n\n slots.set(column.key, slot);\n scopes.set(column.key, column.colorScope ?? DEFAULT_SCOPE);\n paints.set(slot, paint);\n }\n\n return {\n slots,\n scopes,\n configs,\n cellStyles: cellTintStyles(paints),\n headerCellStyles: headerTintStyles(paints),\n };\n}\n\n/**\n * `#cell-base` / `#cell-text` for the body.\n *\n * The band and the pinned-total fill share ONE grouped key rather than two\n * entries with the same value: tasty coalesces entries in a state map that\n * serialize identically, promotes them to the group's maximum priority and\n * negates them against everything below — which would silently turn the plain\n * tint branch into `false`. See `src/components/data/AGENTS.md`.\n */\nfunction cellTintStyles(paints: Map<string, TintPaint>): Styles {\n const base: Record<string, string> = { '': '#row-base' };\n const text: Record<string, string> = { '': '#row-text' };\n\n for (const [slot, paint] of paints) {\n base[`@own(tint=${slot})`] = paint.fill;\n // Only worth a rule when it differs; an identical value here is exactly what\n // the coalescing trap eats.\n if (paint.fillBand !== paint.fill) {\n base[`@own(tint=${slot}) & (@own(odd) | @own(pinned))`] = paint.fillBand;\n }\n text[`@own(tint=${slot})`] = paint.text;\n }\n\n return { '#cell-base': base, '#cell-text': text };\n}\n\n/**\n * The header takes the deeper band unconditionally, mirroring how the neutral\n * header sits on `#surface-2` rather than `#surface`.\n */\nfunction headerTintStyles(paints: Map<string, TintPaint>): Styles {\n const base: Record<string, string> = { '': '#row-base' };\n const text: Record<string, string> = { '': '#row-text' };\n\n for (const [slot, paint] of paints) {\n base[`@own(tint=${slot})`] = paint.fillBand;\n text[`@own(tint=${slot})`] = paint.headerText;\n }\n\n return { '#cell-base': base, '#cell-text': text };\n}\n\n/**\n * The `data-tint` value for one part of a column, or `undefined` when the column\n * is untinted or its scope excludes that part.\n */\nexport function tintSlot(\n tints: ColumnTints,\n columnKey: string,\n scope: CubeTableColumnColorScope,\n): string | undefined {\n const slot = tints.slots.get(columnKey);\n\n if (slot == null) return undefined;\n\n return tints.scopes.get(columnKey)?.includes(scope) ? slot : undefined;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"column-tint.js","names":[],"sources":["../../../../src/components/data/TableBase/column-tint.ts"],"sourcesContent":["import { hashString } from '../../../tokens/color-theme';\nimport { getPaletteConfig } from '../../../tokens/palette-config';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { ColorThemeConfig } from '../../../tokens/color-theme';\nimport type {\n CubeResolvedColumn,\n CubeTableColumnColor,\n CubeTableColumnColorScope,\n CubeTableColumnTheme,\n} from './types';\n\nconst THEMES = new Set<string>([\n 'primary',\n 'purple',\n 'success',\n 'danger',\n 'warning',\n 'note',\n]);\n\nconst DEFAULT_SCOPE: readonly CubeTableColumnColorScope[] = [\n 'header',\n 'body',\n 'totals',\n];\n\n/** The three paint values a tinted cell needs, as tasty colour strings. */\ninterface TintPaint {\n fill: string;\n fillBand: string;\n text: string;\n /** The header's text — muted, to match an untinted header. */\n headerText: string;\n}\n\nexport interface ColumnTints {\n /** `columnKey` → `data-tint` value. Absent means the column is not tinted. */\n slots: Map<string, string>;\n /** Which scopes each column's tint applies to. */\n scopes: Map<string, readonly CubeTableColumnColorScope[]>;\n /**\n * Theme configs to register with `useColorTheme`, one per distinct derived\n * spec. Empty when every column used the `{ fill, text }` escape hatch.\n */\n configs: ColorThemeConfig[];\n /** Merge into `styles.Cell`. */\n cellStyles: Styles | null;\n /** Merge into `styles.HeaderCell`. */\n headerCellStyles: Styles | null;\n}\n\nconst EMPTY: ColumnTints = {\n slots: new Map(),\n scopes: new Map(),\n configs: [],\n cellStyles: null,\n headerCellStyles: null,\n};\n\n/**\n * A theme name is only a theme name when the palette has one — otherwise the\n * string is a colour. `'note'` is a theme; `'#0ea5e9'` and `'red'` are colours.\n */\nfunction isThemeName(value: string): value is CubeTableColumnTheme {\n return THEMES.has(value);\n}\n\n/**\n * The seed for a palette theme, read from the live palette config so a re-seeded\n * `success` hue moves the columns tinted with it.\n *\n * `primary` and `purple` are the brand itself, which is why they read `hue`\n * rather than a `themes` entry — the palette derives them from the brand hue too.\n *\n * A status theme seeded by a COLOR needs nothing special here: its resolved seed already\n * carries that color's hue and chroma, so a tinted column follows it for free. Only the\n * two numbers are passed on — a runtime tint re-derives its own lightness per schema, so\n * the seed's `color` and `colorTone` have nothing to say to it and are not part of\n * `ColorThemeConfig`.\n */\nfunction themeSeed(theme: CubeTableColumnTheme): {\n hue: number;\n saturation: number;\n} {\n const config = getPaletteConfig();\n\n if (theme === 'primary' || theme === 'purple') {\n return { hue: config.hue, saturation: config.saturation };\n }\n\n const { hue, saturation } = config.themes[theme];\n\n return { hue, saturation };\n}\n\n/** Normalizes any spec into a theme config, or `null` for the manual form. */\nexport function tintConfig(\n color: CubeTableColumnColor,\n): ColorThemeConfig | null {\n if (typeof color === 'string') {\n return isThemeName(color) ? themeSeed(color) : { hue: color };\n }\n\n if ('fill' in color) return null;\n\n return { hue: color.hue, saturation: color.saturation };\n}\n\n/**\n * A stable identity for a spec, so two columns asking for the same colour share\n * one slot — and therefore one set of generated rules.\n *\n * For a derived spec that identity is the theme's own content hash, which makes it\n * shared across TABLES as well: the tokens are registered globally under the same\n * name. The manual form has no theme, so it is keyed on its literal values.\n */\nfunction manualKey(paint: TintPaint): string {\n // Hashed, not literal: the values contain `#`, `.` and `|`, none of which\n // survive being interpolated into a tasty `@own(tint=…)` state key.\n return `raw-${hashString(\n `${paint.fill}|${paint.fillBand}|${paint.text}|${paint.headerText}`,\n )}`;\n}\n\nexport interface BuildColumnTintsOptions {\n /**\n * Resolves a derived spec to its theme. Injected rather than imported so the\n * caller — which is a component and can run hooks — owns registration, and so\n * this stays a pure function.\n */\n resolveTheme: (config: ColorThemeConfig) => {\n name: string;\n colors: Record<string, string>;\n };\n}\n\n/**\n * Maps a table's columns onto tint slots and the style maps that paint them.\n *\n * Pure. The colour maths lives in `src/tokens/color-theme.ts`; this is only the\n * mapping from columns to `data-tint` values and tasty state maps.\n */\nexport function buildColumnTints<T>(\n columns: readonly CubeResolvedColumn<T>[],\n { resolveTheme }: BuildColumnTintsOptions,\n): ColumnTints {\n const tinted = columns.filter(\n (column) => !column.isStructural && column.color != null,\n );\n\n if (!tinted.length) return EMPTY;\n\n const slots = new Map<string, string>();\n const scopes = new Map<string, readonly CubeTableColumnColorScope[]>();\n const configs: ColorThemeConfig[] = [];\n const paints = new Map<string, TintPaint>();\n\n for (const column of tinted) {\n const color = column.color as CubeTableColumnColor;\n const config = tintConfig(color);\n let slot: string;\n let paint: TintPaint;\n\n if (config) {\n const theme = resolveTheme(config);\n\n slot = theme.name;\n paint = {\n fill: theme.colors.surface,\n fillBand: theme.colors['surface-2'],\n text: theme.colors['surface-2-text'],\n headerText: theme.colors['surface-2-text-soft'],\n };\n\n if (!paints.has(slot)) configs.push(config);\n } else {\n const manual = color as {\n fill: string;\n fillBand?: string;\n text?: string;\n };\n\n paint = {\n fill: manual.fill,\n // Without a band the column simply does not band — the caller asked for\n // exactly these values, so inventing a second one would be a surprise.\n fillBand: manual.fillBand ?? manual.fill,\n text: manual.text ?? '#row-text',\n // The manual form derives nothing, so the header takes the same text.\n headerText: manual.text ?? '#row-text',\n };\n slot = manualKey(paint);\n }\n\n slots.set(column.key, slot);\n scopes.set(column.key, column.colorScope ?? DEFAULT_SCOPE);\n paints.set(slot, paint);\n }\n\n return {\n slots,\n scopes,\n configs,\n cellStyles: cellTintStyles(paints),\n headerCellStyles: headerTintStyles(paints),\n };\n}\n\n/**\n * `#cell-base` / `#cell-text` for the body.\n *\n * The band and the pinned-total fill share ONE grouped key rather than two\n * entries with the same value: tasty coalesces entries in a state map that\n * serialize identically, promotes them to the group's maximum priority and\n * negates them against everything below — which would silently turn the plain\n * tint branch into `false`. See `src/components/data/AGENTS.md`.\n */\nfunction cellTintStyles(paints: Map<string, TintPaint>): Styles {\n const base: Record<string, string> = { '': '#row-base' };\n const text: Record<string, string> = { '': '#row-text' };\n\n for (const [slot, paint] of paints) {\n base[`@own(tint=${slot})`] = paint.fill;\n // Only worth a rule when it differs; an identical value here is exactly what\n // the coalescing trap eats.\n if (paint.fillBand !== paint.fill) {\n base[`@own(tint=${slot}) & (@own(odd) | @own(pinned))`] = paint.fillBand;\n }\n text[`@own(tint=${slot})`] = paint.text;\n }\n\n return { '#cell-base': base, '#cell-text': text };\n}\n\n/**\n * The header takes the deeper band unconditionally, mirroring how the neutral\n * header sits on `#surface-2` rather than `#surface`.\n */\nfunction headerTintStyles(paints: Map<string, TintPaint>): Styles {\n const base: Record<string, string> = { '': '#row-base' };\n const text: Record<string, string> = { '': '#row-text' };\n\n for (const [slot, paint] of paints) {\n base[`@own(tint=${slot})`] = paint.fillBand;\n text[`@own(tint=${slot})`] = paint.headerText;\n }\n\n return { '#cell-base': base, '#cell-text': text };\n}\n\n/**\n * The `data-tint` value for one part of a column, or `undefined` when the column\n * is untinted or its scope excludes that part.\n */\nexport function tintSlot(\n tints: ColumnTints,\n columnKey: string,\n scope: CubeTableColumnColorScope,\n): string | undefined {\n const slot = tints.slots.get(columnKey);\n\n if (slot == null) return undefined;\n\n return tints.scopes.get(columnKey)?.includes(scope) ? slot : undefined;\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { Children, Fragment, isValidElement } from "react";
3
3
 
4
4
  //#region src/components/data/TableBase/row-menu.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { _Item } from "../../content/Item/Item.js";
3
3
  import { Action } from "../../actions/Action/Action.js";
4
4
  import { keyframes, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  //#region src/components/data/TableBase/table-tree.ts
3
3
  /** Build identity and parent/child indexes without modifying consumer rows. */
4
4
  function buildTableTree(rows, getChildren, getKey) {
@@ -177,7 +177,7 @@ type CubeTableColumnTheme = 'primary' | 'purple' | 'success' | 'danger' | 'warni
177
177
  * How a column is tinted.
178
178
  *
179
179
  * Every form but the last is *derived*: only a hue and a saturation are kept, and
180
- * the tone ramp plus an `AA`/`AAA` text floor are re-solved per colour scheme. So
180
+ * the tone ramp plus an `AA`/`AAA` text floor are re-solved per colour schema. So
181
181
  * a column stays readable in light, dark and high contrast without the caller
182
182
  * checking — which is the part hand-picked hex pairs get wrong.
183
183
  */
@@ -189,7 +189,7 @@ type CubeTableColumnColor = /** A palette theme name. */CubeTableColumnTheme /**
189
189
  * Full manual control, as tasty colour strings (`'#note-surface'`, `'#purple.10'`).
190
190
  *
191
191
  * Nothing is derived and nothing is contrast-checked — this is the escape
192
- * hatch, and readability in every scheme becomes the caller's problem.
192
+ * hatch, and readability in every schema becomes the caller's problem.
193
193
  * `fillBand` defaults to `fill`, which turns banding off for the column.
194
194
  */
195
195
  | {
@@ -248,7 +248,7 @@ interface CubeTableColumn<T = any> {
248
248
  cellProps?: (ctx: CubeTableCellContext<T>) => Record<string, any> | undefined;
249
249
  /**
250
250
  * Tints the column — header, cells and pinned totals — with an adaptive fill
251
- * and a text colour solved to stay readable on it in every scheme.
251
+ * and a text colour solved to stay readable on it in every schema.
252
252
  *
253
253
  * Row banding survives: the tint carries its own band one tone step away, so
254
254
  * the stripe still reads down the column instead of being painted over.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  //#region src/components/data/TableBase/types.ts
3
3
  /**
4
4
  * `asc | desc` rather than React Aria's `ascending | descending`: we do not use
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/data/TableBase/types.ts"],"sourcesContent":["import type { Key } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\nimport type { CubeItemProps } from '../../content/Item';\n\nexport type CubeTableSortDirection = 'asc' | 'desc';\n/**\n * Named row heights: 28px, 32px and 40px.\n *\n * A subset of the kit's size scale, and the same three steps `size` would give —\n * but `rowSize` moves only the ROWS. `size` also drives the header, so reaching\n * for a denser body through it drags the header down too.\n */\nexport type CubeTableRowSize = 'small' | 'medium' | 'large';\nexport type CubeTableAlign = 'start' | 'center' | 'end';\nexport type CubeTableRowSection = 'body' | 'pinnedTop' | 'pinnedBottom';\n\n/**\n * `asc | desc` rather than React Aria's `ascending | descending`: we do not use\n * `useTableState`, so there is no `SortDescriptor` interop to preserve, and\n * every consumer and server query parameter already speaks `asc|desc`.\n * `aria-sort` is a one-line map in the header cell.\n */\n/**\n * A rectangular block of cells, stored as two opposite corners.\n *\n * Corners rather than a set of keys so the selection survives a re-sort or a\n * page change the way a keyed row selection does: \"the block between these two\n * cells\" is re-resolved against the current order every render.\n */\n/**\n * The key a cell range identifies a row by.\n *\n * Not the consumer's row key: a pinned total is commonly the SAME record at the\n * top and the bottom (`id: 'total'`), and one flat key space collapsed the two\n * into whichever `indexOf` found first — so a range aimed at the footer total\n * resolved against the header one. The section is part of the identity here,\n * and only here; `ctx.rowKey` stays the consumer's own.\n */\nexport function selectionRowKey(\n section: CubeTableRowSection,\n rowKey: Key,\n): Key {\n return section === 'body' ? rowKey : `${section}:${rowKey}`;\n}\n\nexport interface CubeTableCellRange {\n fromRowKey: Key;\n toRowKey: Key;\n fromColumnKey: string;\n toColumnKey: string;\n}\n\nexport interface CubeTableTreeRowState {\n /** Zero-based depth in the hierarchy. */\n level: number;\n parentKey: Key | null;\n hasChildren: boolean;\n isExpanded: boolean;\n}\n\nexport interface CubeTableRowExpandInfo<T = any> {\n row: T;\n rowKey: Key;\n level: number;\n parentKey: Key | null;\n expanded: boolean;\n}\n\n/** Shared root sizing contract used by both table adapters. */\nexport interface CubeTableLayoutProps {\n /**\n * Shrink-wraps the frame to its rendered rows instead of filling the\n * available flex pane. This mode disables virtualization because there is no\n * bounded vertical viewport to virtualize against.\n *\n * @default false\n */\n isAutoHeight?: boolean;\n}\n\n/** Shared opt-in hierarchy contract used by both table adapters. */\nexport interface CubeTableTreeProps<T = any> {\n /**\n * Returns a row's already-loaded children. Supplying this enables tree mode\n * and makes `data` the top-level row collection.\n */\n getRowChildren?: (row: T) => readonly T[] | undefined;\n /** Column that owns the indentation and disclosure control. */\n treeColumnKey?: string;\n /** Controlled expanded row keys. */\n expandedKeys?: Key[];\n /** Initially expanded row keys. */\n defaultExpandedKeys?: Key[];\n /** Called after a user expands or collapses a row. */\n onExpand?: (keys: Key[], info: CubeTableRowExpandInfo<T>) => void;\n}\n\nexport interface CubeTableSort {\n /** `key` of the sorted column. */\n columnKey: string;\n direction: CubeTableSortDirection;\n}\n\n/* ── render contexts ─────────────────────────────────────────────────────── */\n\nexport interface CubeTableCellContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n columnKey: string;\n columnIndex: number;\n section: CubeTableRowSection;\n /** Whether the ROW is selected, matching `isRowFocused` below. */\n isSelected: boolean;\n /**\n * Not yet wired — always absent.\n *\n * Optional rather than `boolean`, because there is nowhere honest to compute\n * them from where this context is built. Focus lives in the DOM, and drop\n * state comes out of `useDropIndicator`, a hook that can only run inside the\n * row component — so populating either means moving the `render` / `cellStyles`\n * call sites into `TableRow`. Declaring them required and passing `false`\n * would just be a documented lie.\n */\n isRowFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableRowContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n section: CubeTableRowSection;\n isSelected: boolean;\n /** Not yet wired — always absent. See `CubeTableCellContext` for why. */\n isFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableHeaderContext {\n columnKey: string;\n columnIndex: number;\n sort: CubeTableSortDirection | null;\n isSortable: boolean;\n isResizing: boolean;\n width: number | null;\n}\n\n/** Presentational path entry used to build multi-row column headers. */\nexport interface CubeTableColumnGroupHeader {\n key: string;\n title?: ReactNode;\n}\n\n/* ── column ──────────────────────────────────────────────────────────────── */\n\n/**\n * Rich header content. Every slot except `menu` maps 1:1 onto the `Item`\n * rendered inside the header `<th>`, so a header gets icon / description /\n * tooltip / suffix / actions for free; `menu` is mounted into that `Item`'s\n * `actions` slot behind a `⋮` trigger.\n */\nexport interface CubeTableColumnHeader {\n icon?: CubeItemProps['icon'];\n rightIcon?: CubeItemProps['rightIcon'];\n prefix?: ReactNode;\n suffix?: ReactNode;\n description?: ReactNode;\n descriptionPlacement?: CubeItemProps['descriptionPlacement'];\n /** `true` = auto tooltip when the label is truncated. */\n tooltip?: CubeItemProps['tooltip'];\n actions?: ReactNode;\n /** Hide `actions` until hover/focus. @default true */\n autoHideActions?: boolean;\n /**\n * A column menu, opened from a `⋮` trigger in the header's actions slot and —\n * unless the table says otherwise — by right-click or Shift+F10.\n *\n * `Menu.Item` children. Opaque: the table mounts the node and reports the\n * pressed key back through `onColumnMenuAction`, so what a \"pin\" or a \"drill\n * down\" means stays in the consuming app. The exception is the reserved sort\n * keys (`sort-asc`, `sort-desc`, `clear-sort`), which the table labels,\n * disables when redundant, and applies itself before telling the consumer.\n *\n * An empty menu renders no trigger at all, rather than one that opens nothing.\n * Ignored when `header.render` takes the cell over.\n */\n menu?: ReactNode;\n /** Props for the `⋮` trigger. Merged over the table's `columnMenuTriggerProps`. */\n menuTriggerProps?: Record<string, any>;\n /** Props for the `Menu`. Merged over the table's `columnMenuProps`. */\n menuProps?: Record<string, any>;\n /** Called before the table-level `onColumnMenuAction`. */\n onMenuAction?: (action: string) => void;\n theme?: CubeItemProps['theme'];\n /**\n * Full takeover of the header cell's content. Overrides `title` and every\n * slot — including `actions` and `menu`, which are simply not rendered. A\n * takeover that wants a menu owns the trigger too.\n */\n render?: (ctx: CubeTableHeaderContext) => ReactNode;\n /** Overrides `column.align` for the header only. */\n align?: CubeTableAlign;\n styles?: Styles;\n}\n\n/* ── column colour ───────────────────────────────────────────────────────── */\n\n/**\n * A palette theme a column can borrow its tint from.\n *\n * Resolved through the same runtime generator as a custom colour, seeded from the\n * theme's own hue and saturation in `palette-config` — so it tracks a re-seeded\n * palette, and it gets the banding step the palette itself does not define.\n *\n * `special` is absent deliberately: it is a standalone `mode: 'fixed'` theme with\n * no tinted-surface ramp to borrow.\n */\nexport type CubeTableColumnTheme =\n | 'primary'\n | 'purple'\n | 'success'\n | 'danger'\n | 'warning'\n | 'note';\n\n/**\n * How a column is tinted.\n *\n * Every form but the last is *derived*: only a hue and a saturation are kept, and\n * the tone ramp plus an `AA`/`AAA` text floor are re-solved per colour scheme. So\n * a column stays readable in light, dark and high contrast without the caller\n * checking — which is the part hand-picked hex pairs get wrong.\n */\nexport type CubeTableColumnColor =\n /** A palette theme name. */\n | CubeTableColumnTheme\n /** Any colour Glaze parses — hex, `rgb()`, `hsl()`, `okhsl()`, `oklch()`. */\n | (string & {})\n /** The seed said directly. `saturation` is 0–100. */\n | { hue: number; saturation?: number }\n /**\n * Full manual control, as tasty colour strings (`'#note-surface'`, `'#purple.10'`).\n *\n * Nothing is derived and nothing is contrast-checked — this is the escape\n * hatch, and readability in every scheme becomes the caller's problem.\n * `fillBand` defaults to `fill`, which turns banding off for the column.\n */\n | { fill: string; fillBand?: string; text?: string };\n\n/**\n * Which parts of a column `color` reaches.\n *\n * @default ['header','body','totals']\n */\nexport type CubeTableColumnColorScope = 'header' | 'body' | 'totals';\n\nexport interface CubeTableColumn<T = any> {\n /**\n * Column id. Also the default data path — dot notation is supported\n * (`'owner.name'`). Anything beyond a path needs `getValue`.\n */\n key: string;\n /** Header label. Shorthand for `header` with no extra slots. */\n title?: ReactNode;\n header?: CubeTableColumnHeader;\n /**\n * Renders `<th scope=\"row\">` instead of `<td>`, names the row for screen\n * readers, and hosts the `rowLink` anchor. Defaults to the first\n * non-structural column when a row link is present.\n */\n isRowHeader?: boolean;\n\n /* sizing */\n /** Fixed width in px. Mutually exclusive with `flex`. */\n width?: number;\n /** Weight for the leftover space. @default 1 when `width` is unset */\n flex?: number;\n /** @default 150 */\n minWidth?: number;\n maxWidth?: number;\n /** Inherits the table's `isResizable`. */\n isResizable?: boolean;\n /**\n * Inherits the table's `isColumnReorderable`; `false` pins this column in\n * place while the others still move around it.\n */\n isReorderable?: boolean;\n /** Stick to the start/end edge during horizontal scroll. */\n pin?: 'start' | 'end';\n /** Hide without losing width or order state. */\n isHidden?: boolean;\n\n /* value pipeline */\n /** @default (row) => get(row, key) */\n getValue?: (row: T, rowIndex: number) => unknown;\n /** Raw value → display text. Feeds client sort, client search and TSV copy. */\n format?: (value: any, row: T, rowIndex: number) => string;\n /** Client-side comparator over raw `getValue` results. */\n compare?: (a: any, b: any, rowA: T, rowB: T) => number;\n\n /* rendering */\n /** A returned string is wrapped in a truncating `TextItem`. */\n render?: (\n value: any,\n row: T,\n rowIndex: number,\n ctx: CubeTableCellContext<T>,\n ) => ReactNode;\n cellStyles?: Styles | ((ctx: CubeTableCellContext<T>) => Styles | undefined);\n cellProps?: (ctx: CubeTableCellContext<T>) => Record<string, any> | undefined;\n\n /**\n * Tints the column — header, cells and pinned totals — with an adaptive fill\n * and a text colour solved to stay readable on it in every scheme.\n *\n * Row banding survives: the tint carries its own band one tone step away, so\n * the stripe still reads down the column instead of being painted over.\n */\n color?: CubeTableColumnColor;\n /** Narrows what `color` reaches. @default ['header','body','totals'] */\n colorScope?: readonly CubeTableColumnColorScope[];\n\n /* behaviour */\n align?: CubeTableAlign;\n /**\n * Opt IN, per column — a table is not sortable until at least one column says\n * so, and `sortMode` then defaults to `'client'`.\n *\n * (This read `@default true` for a long time, which was never what the code\n * did: `TableView` requires `isSortable === true` before a header becomes a\n * control at all.)\n *\n * @default false\n */\n isSortable?: boolean;\n /** Two-state cycling (asc ↔ desc), never back to unsorted. @default false */\n disallowSortRemoval?: boolean;\n /** Include in the built-in client search. @default true */\n isSearchable?: boolean;\n /** Include in TSV copy. @default true */\n isCopyable?: boolean;\n /** Wrap text and let the row grow to fit. */\n autoHeight?: boolean;\n\n /** Consumer-owned bag. Never reaches the DOM. */\n meta?: Record<string, unknown>;\n}\n\n/* ── resolved layout (internal, but exported for adapters) ───────────────── */\n\nexport interface CubeResolvedColumn<T = any>\n // `width`, `minWidth`, `maxWidth`, `flex` and `align` are all resolved here,\n // so they narrow from optional to definite and must be replaced, not extended.\n extends Omit<\n CubeTableColumn<T>,\n 'width' | 'minWidth' | 'maxWidth' | 'flex' | 'align'\n > {\n /** Position among the visible leaf columns, 0-based. */\n index: number;\n /** `aria-colindex`, 1-based and document-absolute. */\n ariaColIndex: number;\n /** Resolved pixel width, or `null` while the container is unmeasured. */\n width: number | null;\n minWidth: number;\n maxWidth: number | null;\n flex: number | null;\n align: CubeTableAlign;\n /** Cumulative sticky offset in px for a pinned column. */\n pinOffset: number | null;\n /** `true` for the last pinned-start / first pinned-end column. */\n isPinEdge: boolean;\n /** Structural columns (selection, drag handle, row menu) never enter sorting,\n * search, copy, or the value pipeline. */\n isStructural: boolean;\n}\n\nexport interface CubeTableColumnLayout<T = any> {\n columns: CubeResolvedColumn<T>[];\n pinnedStartWidth: number;\n pinnedEndWidth: number;\n /** Sum of resolved widths, or `null` while unmeasured. */\n totalWidth: number | null;\n /** `true` when the columns cannot fit and the table scrolls horizontally. */\n isOverflowing: boolean;\n}\n\n/**\n * How a refresh over an existing result is presented.\n *\n * - `overlay` — keep the previous rows visible, dimmed, behind a spinner. A\n * server page or a re-sort never blanks the table.\n * - `skeleton` — discard the previous rows and show placeholders.\n * - `none` — no visuals beyond `aria-busy`; the page owns the indicator.\n */\nexport type CubeTableLoadingIndicator = 'overlay' | 'skeleton' | 'none';\n\nexport type CubeTableSelectionMode = 'none' | 'single' | 'multiple';\n\n/**\n * What the header checkbox acts on.\n *\n * - `page` — the rows on the current page.\n * - `filtered` — every row passing the current search/filter, across pages.\n * - `all` — emits the `'all'` sentinel, meaning \"everything, including rows the\n * client has not loaded\". The consumer decides what that means for its query.\n */\nexport type CubeTableSelectAllMode = 'page' | 'filtered' | 'all';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuCA,SAAgB,gBACd,SACA,QACK;AACL,QAAO,YAAY,SAAS,SAAS,GAAG,QAAQ,GAAG"}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../../src/components/data/TableBase/types.ts"],"sourcesContent":["import type { Key } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\nimport type { CubeItemProps } from '../../content/Item';\n\nexport type CubeTableSortDirection = 'asc' | 'desc';\n/**\n * Named row heights: 28px, 32px and 40px.\n *\n * A subset of the kit's size scale, and the same three steps `size` would give —\n * but `rowSize` moves only the ROWS. `size` also drives the header, so reaching\n * for a denser body through it drags the header down too.\n */\nexport type CubeTableRowSize = 'small' | 'medium' | 'large';\nexport type CubeTableAlign = 'start' | 'center' | 'end';\nexport type CubeTableRowSection = 'body' | 'pinnedTop' | 'pinnedBottom';\n\n/**\n * `asc | desc` rather than React Aria's `ascending | descending`: we do not use\n * `useTableState`, so there is no `SortDescriptor` interop to preserve, and\n * every consumer and server query parameter already speaks `asc|desc`.\n * `aria-sort` is a one-line map in the header cell.\n */\n/**\n * A rectangular block of cells, stored as two opposite corners.\n *\n * Corners rather than a set of keys so the selection survives a re-sort or a\n * page change the way a keyed row selection does: \"the block between these two\n * cells\" is re-resolved against the current order every render.\n */\n/**\n * The key a cell range identifies a row by.\n *\n * Not the consumer's row key: a pinned total is commonly the SAME record at the\n * top and the bottom (`id: 'total'`), and one flat key space collapsed the two\n * into whichever `indexOf` found first — so a range aimed at the footer total\n * resolved against the header one. The section is part of the identity here,\n * and only here; `ctx.rowKey` stays the consumer's own.\n */\nexport function selectionRowKey(\n section: CubeTableRowSection,\n rowKey: Key,\n): Key {\n return section === 'body' ? rowKey : `${section}:${rowKey}`;\n}\n\nexport interface CubeTableCellRange {\n fromRowKey: Key;\n toRowKey: Key;\n fromColumnKey: string;\n toColumnKey: string;\n}\n\nexport interface CubeTableTreeRowState {\n /** Zero-based depth in the hierarchy. */\n level: number;\n parentKey: Key | null;\n hasChildren: boolean;\n isExpanded: boolean;\n}\n\nexport interface CubeTableRowExpandInfo<T = any> {\n row: T;\n rowKey: Key;\n level: number;\n parentKey: Key | null;\n expanded: boolean;\n}\n\n/** Shared root sizing contract used by both table adapters. */\nexport interface CubeTableLayoutProps {\n /**\n * Shrink-wraps the frame to its rendered rows instead of filling the\n * available flex pane. This mode disables virtualization because there is no\n * bounded vertical viewport to virtualize against.\n *\n * @default false\n */\n isAutoHeight?: boolean;\n}\n\n/** Shared opt-in hierarchy contract used by both table adapters. */\nexport interface CubeTableTreeProps<T = any> {\n /**\n * Returns a row's already-loaded children. Supplying this enables tree mode\n * and makes `data` the top-level row collection.\n */\n getRowChildren?: (row: T) => readonly T[] | undefined;\n /** Column that owns the indentation and disclosure control. */\n treeColumnKey?: string;\n /** Controlled expanded row keys. */\n expandedKeys?: Key[];\n /** Initially expanded row keys. */\n defaultExpandedKeys?: Key[];\n /** Called after a user expands or collapses a row. */\n onExpand?: (keys: Key[], info: CubeTableRowExpandInfo<T>) => void;\n}\n\nexport interface CubeTableSort {\n /** `key` of the sorted column. */\n columnKey: string;\n direction: CubeTableSortDirection;\n}\n\n/* ── render contexts ─────────────────────────────────────────────────────── */\n\nexport interface CubeTableCellContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n columnKey: string;\n columnIndex: number;\n section: CubeTableRowSection;\n /** Whether the ROW is selected, matching `isRowFocused` below. */\n isSelected: boolean;\n /**\n * Not yet wired — always absent.\n *\n * Optional rather than `boolean`, because there is nowhere honest to compute\n * them from where this context is built. Focus lives in the DOM, and drop\n * state comes out of `useDropIndicator`, a hook that can only run inside the\n * row component — so populating either means moving the `render` / `cellStyles`\n * call sites into `TableRow`. Declaring them required and passing `false`\n * would just be a documented lie.\n */\n isRowFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableRowContext<T = any> {\n row: T;\n rowKey: Key;\n rowIndex: number;\n section: CubeTableRowSection;\n isSelected: boolean;\n /** Not yet wired — always absent. See `CubeTableCellContext` for why. */\n isFocused?: boolean;\n isDropTarget?: boolean;\n /** Present only when `getRowChildren` enables tree mode. */\n tree?: CubeTableTreeRowState;\n}\n\nexport interface CubeTableHeaderContext {\n columnKey: string;\n columnIndex: number;\n sort: CubeTableSortDirection | null;\n isSortable: boolean;\n isResizing: boolean;\n width: number | null;\n}\n\n/** Presentational path entry used to build multi-row column headers. */\nexport interface CubeTableColumnGroupHeader {\n key: string;\n title?: ReactNode;\n}\n\n/* ── column ──────────────────────────────────────────────────────────────── */\n\n/**\n * Rich header content. Every slot except `menu` maps 1:1 onto the `Item`\n * rendered inside the header `<th>`, so a header gets icon / description /\n * tooltip / suffix / actions for free; `menu` is mounted into that `Item`'s\n * `actions` slot behind a `⋮` trigger.\n */\nexport interface CubeTableColumnHeader {\n icon?: CubeItemProps['icon'];\n rightIcon?: CubeItemProps['rightIcon'];\n prefix?: ReactNode;\n suffix?: ReactNode;\n description?: ReactNode;\n descriptionPlacement?: CubeItemProps['descriptionPlacement'];\n /** `true` = auto tooltip when the label is truncated. */\n tooltip?: CubeItemProps['tooltip'];\n actions?: ReactNode;\n /** Hide `actions` until hover/focus. @default true */\n autoHideActions?: boolean;\n /**\n * A column menu, opened from a `⋮` trigger in the header's actions slot and —\n * unless the table says otherwise — by right-click or Shift+F10.\n *\n * `Menu.Item` children. Opaque: the table mounts the node and reports the\n * pressed key back through `onColumnMenuAction`, so what a \"pin\" or a \"drill\n * down\" means stays in the consuming app. The exception is the reserved sort\n * keys (`sort-asc`, `sort-desc`, `clear-sort`), which the table labels,\n * disables when redundant, and applies itself before telling the consumer.\n *\n * An empty menu renders no trigger at all, rather than one that opens nothing.\n * Ignored when `header.render` takes the cell over.\n */\n menu?: ReactNode;\n /** Props for the `⋮` trigger. Merged over the table's `columnMenuTriggerProps`. */\n menuTriggerProps?: Record<string, any>;\n /** Props for the `Menu`. Merged over the table's `columnMenuProps`. */\n menuProps?: Record<string, any>;\n /** Called before the table-level `onColumnMenuAction`. */\n onMenuAction?: (action: string) => void;\n theme?: CubeItemProps['theme'];\n /**\n * Full takeover of the header cell's content. Overrides `title` and every\n * slot — including `actions` and `menu`, which are simply not rendered. A\n * takeover that wants a menu owns the trigger too.\n */\n render?: (ctx: CubeTableHeaderContext) => ReactNode;\n /** Overrides `column.align` for the header only. */\n align?: CubeTableAlign;\n styles?: Styles;\n}\n\n/* ── column colour ───────────────────────────────────────────────────────── */\n\n/**\n * A palette theme a column can borrow its tint from.\n *\n * Resolved through the same runtime generator as a custom colour, seeded from the\n * theme's own hue and saturation in `palette-config` — so it tracks a re-seeded\n * palette, and it gets the banding step the palette itself does not define.\n *\n * `special` is absent deliberately: it is a standalone `mode: 'fixed'` theme with\n * no tinted-surface ramp to borrow.\n */\nexport type CubeTableColumnTheme =\n | 'primary'\n | 'purple'\n | 'success'\n | 'danger'\n | 'warning'\n | 'note';\n\n/**\n * How a column is tinted.\n *\n * Every form but the last is *derived*: only a hue and a saturation are kept, and\n * the tone ramp plus an `AA`/`AAA` text floor are re-solved per colour schema. So\n * a column stays readable in light, dark and high contrast without the caller\n * checking — which is the part hand-picked hex pairs get wrong.\n */\nexport type CubeTableColumnColor =\n /** A palette theme name. */\n | CubeTableColumnTheme\n /** Any colour Glaze parses — hex, `rgb()`, `hsl()`, `okhsl()`, `oklch()`. */\n | (string & {})\n /** The seed said directly. `saturation` is 0–100. */\n | { hue: number; saturation?: number }\n /**\n * Full manual control, as tasty colour strings (`'#note-surface'`, `'#purple.10'`).\n *\n * Nothing is derived and nothing is contrast-checked — this is the escape\n * hatch, and readability in every schema becomes the caller's problem.\n * `fillBand` defaults to `fill`, which turns banding off for the column.\n */\n | { fill: string; fillBand?: string; text?: string };\n\n/**\n * Which parts of a column `color` reaches.\n *\n * @default ['header','body','totals']\n */\nexport type CubeTableColumnColorScope = 'header' | 'body' | 'totals';\n\nexport interface CubeTableColumn<T = any> {\n /**\n * Column id. Also the default data path — dot notation is supported\n * (`'owner.name'`). Anything beyond a path needs `getValue`.\n */\n key: string;\n /** Header label. Shorthand for `header` with no extra slots. */\n title?: ReactNode;\n header?: CubeTableColumnHeader;\n /**\n * Renders `<th scope=\"row\">` instead of `<td>`, names the row for screen\n * readers, and hosts the `rowLink` anchor. Defaults to the first\n * non-structural column when a row link is present.\n */\n isRowHeader?: boolean;\n\n /* sizing */\n /** Fixed width in px. Mutually exclusive with `flex`. */\n width?: number;\n /** Weight for the leftover space. @default 1 when `width` is unset */\n flex?: number;\n /** @default 150 */\n minWidth?: number;\n maxWidth?: number;\n /** Inherits the table's `isResizable`. */\n isResizable?: boolean;\n /**\n * Inherits the table's `isColumnReorderable`; `false` pins this column in\n * place while the others still move around it.\n */\n isReorderable?: boolean;\n /** Stick to the start/end edge during horizontal scroll. */\n pin?: 'start' | 'end';\n /** Hide without losing width or order state. */\n isHidden?: boolean;\n\n /* value pipeline */\n /** @default (row) => get(row, key) */\n getValue?: (row: T, rowIndex: number) => unknown;\n /** Raw value → display text. Feeds client sort, client search and TSV copy. */\n format?: (value: any, row: T, rowIndex: number) => string;\n /** Client-side comparator over raw `getValue` results. */\n compare?: (a: any, b: any, rowA: T, rowB: T) => number;\n\n /* rendering */\n /** A returned string is wrapped in a truncating `TextItem`. */\n render?: (\n value: any,\n row: T,\n rowIndex: number,\n ctx: CubeTableCellContext<T>,\n ) => ReactNode;\n cellStyles?: Styles | ((ctx: CubeTableCellContext<T>) => Styles | undefined);\n cellProps?: (ctx: CubeTableCellContext<T>) => Record<string, any> | undefined;\n\n /**\n * Tints the column — header, cells and pinned totals — with an adaptive fill\n * and a text colour solved to stay readable on it in every schema.\n *\n * Row banding survives: the tint carries its own band one tone step away, so\n * the stripe still reads down the column instead of being painted over.\n */\n color?: CubeTableColumnColor;\n /** Narrows what `color` reaches. @default ['header','body','totals'] */\n colorScope?: readonly CubeTableColumnColorScope[];\n\n /* behaviour */\n align?: CubeTableAlign;\n /**\n * Opt IN, per column — a table is not sortable until at least one column says\n * so, and `sortMode` then defaults to `'client'`.\n *\n * (This read `@default true` for a long time, which was never what the code\n * did: `TableView` requires `isSortable === true` before a header becomes a\n * control at all.)\n *\n * @default false\n */\n isSortable?: boolean;\n /** Two-state cycling (asc ↔ desc), never back to unsorted. @default false */\n disallowSortRemoval?: boolean;\n /** Include in the built-in client search. @default true */\n isSearchable?: boolean;\n /** Include in TSV copy. @default true */\n isCopyable?: boolean;\n /** Wrap text and let the row grow to fit. */\n autoHeight?: boolean;\n\n /** Consumer-owned bag. Never reaches the DOM. */\n meta?: Record<string, unknown>;\n}\n\n/* ── resolved layout (internal, but exported for adapters) ───────────────── */\n\nexport interface CubeResolvedColumn<T = any>\n // `width`, `minWidth`, `maxWidth`, `flex` and `align` are all resolved here,\n // so they narrow from optional to definite and must be replaced, not extended.\n extends Omit<\n CubeTableColumn<T>,\n 'width' | 'minWidth' | 'maxWidth' | 'flex' | 'align'\n > {\n /** Position among the visible leaf columns, 0-based. */\n index: number;\n /** `aria-colindex`, 1-based and document-absolute. */\n ariaColIndex: number;\n /** Resolved pixel width, or `null` while the container is unmeasured. */\n width: number | null;\n minWidth: number;\n maxWidth: number | null;\n flex: number | null;\n align: CubeTableAlign;\n /** Cumulative sticky offset in px for a pinned column. */\n pinOffset: number | null;\n /** `true` for the last pinned-start / first pinned-end column. */\n isPinEdge: boolean;\n /** Structural columns (selection, drag handle, row menu) never enter sorting,\n * search, copy, or the value pipeline. */\n isStructural: boolean;\n}\n\nexport interface CubeTableColumnLayout<T = any> {\n columns: CubeResolvedColumn<T>[];\n pinnedStartWidth: number;\n pinnedEndWidth: number;\n /** Sum of resolved widths, or `null` while unmeasured. */\n totalWidth: number | null;\n /** `true` when the columns cannot fit and the table scrolls horizontally. */\n isOverflowing: boolean;\n}\n\n/**\n * How a refresh over an existing result is presented.\n *\n * - `overlay` — keep the previous rows visible, dimmed, behind a spinner. A\n * server page or a re-sort never blanks the table.\n * - `skeleton` — discard the previous rows and show placeholders.\n * - `none` — no visuals beyond `aria-busy`; the page owns the indicator.\n */\nexport type CubeTableLoadingIndicator = 'overlay' | 'skeleton' | 'none';\n\nexport type CubeTableSelectionMode = 'none' | 'single' | 'multiple';\n\n/**\n * What the header checkbox acts on.\n *\n * - `page` — the rows on the current page.\n * - `filtered` — every row passing the current search/filter, across pages.\n * - `all` — emits the `'all'` sentinel, meaning \"everything, including rows the\n * client has not loaded\". The consumer decides what that means for its query.\n */\nexport type CubeTableSelectAllMode = 'page' | 'filtered' | 'all';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAuCA,SAAgB,gBACd,SACA,QACK;AACL,QAAO,YAAY,SAAS,SAAS,GAAG,QAAQ,GAAG"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useMemo, useState } from "react";
4
4
  import { useControlledState } from "@react-stately/utils";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useLayoutEffect, useState } from "react";
3
3
 
4
4
  //#region src/components/data/TableBase/use-container-width.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useLayoutEffect, useRef } from "react";
3
3
 
4
4
  //#region src/components/data/TableBase/use-row-move-animation.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useLayoutEffect, useState } from "react";
3
3
 
4
4
  //#region src/components/data/TableBase/use-scrollability.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useMemo } from "react";
3
3
 
4
4
  //#region src/components/data/TableBase/use-table-columns.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useDebouncedValue } from "../../../_internal/hooks/use-debounced-value.js";
4
4
  import { getColumnText } from "./use-table-columns.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { RowCollection } from "./RowCollection.js";
4
4
  import { useCallback, useMemo, useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { getColumnText, getColumnValue } from "./use-table-columns.js";
4
4
  import { useMemo } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { compareByColumn } from "./use-table-sort.js";
4
4
  import { useMemo } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useCallback, useRef, useState } from "react";
3
3
 
4
4
  //#region src/components/data/TableBase/use-table-storage.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { useMemo } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { _Text } from "../../content/Text.js";
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.js","names":["useFocus","mergeProps","Text","CheckboxGroup"],"sources":["../../../../src/components/fields/Checkbox/Checkbox.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport { IconCheck, IconMinus } from '@tabler/icons-react';\nimport {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n Element,\n filterBaseProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef, useContext, useMemo, useRef } from 'react';\nimport {\n AriaCheckboxProps,\n useCheckbox,\n useCheckboxGroupItem,\n useHover,\n} from 'react-aria';\nimport { useToggleState } from 'react-stately';\n\nimport { Icon } from '../../../icons/Icon';\nimport { FieldBaseProps, ToggleSelectionProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport {\n castNullableIsSelected,\n WithNullableSelected,\n} from '../../../utils/react/nullableValue';\nimport { extractStyles } from '../../../utils/styles';\nimport { Text } from '../../content/Text';\nimport {\n getValidationMods,\n INLINE_LABEL_STYLES,\n LABEL_STYLES,\n resolveValidationProps,\n useFieldProps,\n wrapWithField,\n} from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\n\nimport { CheckboxGroup } from './CheckboxGroup';\nimport { CheckboxGroupContext } from './context';\n\nimport type { FocusableRef } from '@react-types/shared';\n\nexport interface CubeCheckboxProps\n extends BaseProps,\n ContainerStyleProps,\n AriaCheckboxProps,\n ToggleSelectionProps,\n FieldBaseProps {\n inputStyles?: Styles;\n isIndeterminate?: boolean;\n value?: string;\n}\n\nconst CheckboxWrapperElement = tasty({\n as: 'label',\n qa: 'CheckboxWrapper',\n styles: {\n position: 'relative',\n display: 'flex',\n placeItems: 'center start',\n placeContent: 'baseline',\n gap: '1x',\n flow: 'row',\n preset: 'default',\n cursor: '$pointer',\n width: 'max max-content',\n color: '#dark-02',\n },\n});\n\nconst CheckboxElement = tasty({\n qa: 'Checkbox',\n styles: {\n display: 'grid',\n placeItems: 'center',\n radius: '.5r',\n fill: {\n '': '#surface',\n 'checked | indeterminate': '#primary',\n 'invalid & !checked': '#surface',\n 'invalid & checked': '#danger',\n 'valid & !checked': '#surface',\n 'valid & checked': '#success',\n disabled: '#dark.12',\n },\n // The check / minus icon is always rendered inside the box, so the\n // default color must be transparent when the checkbox is neither\n // checked nor indeterminate — otherwise the white stroke shows through\n // the dark `#surface` fill in dark schemes (it used to be hidden\n // accidentally by the legacy white-on-white `fill: '#white'`).\n color: {\n '': '#clear',\n 'checked | indeterminate': '#white',\n },\n border: {\n '': '#dark.30',\n invalid: '#danger',\n valid: '#success',\n 'disabled | ((indeterminate | checked) & !invalid & !valid)': '#clear',\n },\n width: '(2x - 2bw)',\n height: '(2x - 2bw)',\n outline: {\n '': '#primary-text.0',\n focused: '1bw #primary-text',\n },\n outlineOffset: 1,\n transition: 'theme',\n },\n});\n\nfunction Checkbox(\n props: WithNullableSelected<CubeCheckboxProps>,\n ref: FocusableRef,\n) {\n // Swap hooks depending on whether this checkbox is inside a CheckboxGroup.\n // This is a bit unorthodox. Typically, hooks cannot be called in a conditional,\n // but since the checkbox won't move in and out of a group, it should be safe.\n let groupState = useContext(CheckboxGroupContext);\n\n props = castNullableIsSelected(props);\n\n let originalProps = props;\n\n props = useFieldProps(props, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n isSelected: value ?? false,\n isIndeterminate: false,\n onChange: onChange,\n }),\n unsafe__isDisabled: !!groupState,\n });\n\n let {\n qa,\n isIndeterminate = false,\n isDisabled = false,\n insideForm,\n isRequired,\n children,\n label,\n isInvalid,\n isValid,\n labelProps,\n labelStyles,\n labelPosition,\n inputStyles,\n isHidden,\n form,\n // Pulled out so it stays off the `<label>` spread below. The Aria hooks read\n // it from `props` directly; `filterBaseProps` already dropped it at runtime,\n // but it typed as a DOM `FormEventHandler` there, which it is not.\n onChange,\n ...otherProps\n } = props;\n\n let styles: Styles = extractStyles(props, CONTAINER_STYLES);\n\n labelStyles = useMemo(\n () => ({\n ...(!groupState ? LABEL_STYLES : INLINE_LABEL_STYLES),\n ...labelStyles,\n }),\n [groupState, labelStyles],\n );\n\n let { isFocused, focusProps } = useFocus({ isDisabled }, true);\n let { hoverProps, isHovered } = useHover({ isDisabled });\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n const toggleState = useToggleState(props);\n\n let { inputProps } = groupState\n ? useCheckboxGroupItem(\n {\n ...props,\n // Value is optional for standalone checkboxes, but required for CheckboxGroup items;\n // it's passed explicitly here to avoid typescript error (requires strictNullChecks disabled).\n value: props.value || '',\n // Only pass isRequired and the validation state to react-aria if they came from\n // the props for this individual checkbox, and not from the group via context.\n isRequired: originalProps.isRequired,\n isInvalid: resolveValidationProps(originalProps).isInvalid,\n },\n groupState,\n inputRef,\n )\n : useCheckbox(\n {\n ...props,\n ...(typeof label === 'string' && label.trim()\n ? { 'aria-label': label }\n : {}),\n },\n toggleState,\n inputRef,\n );\n\n let markIcon = isIndeterminate ? (\n <Icon size={12} stroke={3}>\n <IconMinus />\n </Icon>\n ) : (\n <Icon size={12} stroke={3}>\n <IconCheck />\n </Icon>\n );\n\n if (groupState) {\n for (let key of ['isSelected', 'defaultSelected', 'isEmphasized']) {\n if (originalProps[key] != null) {\n console.warn(\n `CubeUIKit: ${key} is unsupported on individual <Checkbox> elements within a <CheckboxGroup>. Please apply these props to the group instead.`,\n );\n }\n }\n if (props.value == null) {\n console.warn(\n 'CubeUIKit: A <Checkbox> element within a <CheckboxGroup> requires a `value` property.',\n );\n }\n }\n\n const mods = {\n checked: inputProps.checked,\n indeterminate: isIndeterminate,\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n hovered: isHovered,\n focused: isFocused,\n 'side-label': labelPosition === 'side',\n 'inside-form': insideForm,\n };\n\n const checkbox = (\n <>\n <HiddenInput\n qa={qa || 'Checkbox'}\n data-input-type=\"checkbox\"\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n />\n <CheckboxElement mods={mods} styles={inputStyles}>\n {markIcon}\n </CheckboxElement>\n </>\n );\n\n const checkboxField = (\n <CheckboxWrapperElement isHidden={isHidden} mods={mods}>\n {checkbox}\n {children && <Text nowrap>{children}</Text>}\n </CheckboxWrapperElement>\n );\n\n if (!groupState) {\n return wrapWithField(checkboxField, domRef, props);\n }\n\n return (\n <CheckboxWrapperElement\n styles={styles}\n isHidden={isHidden}\n {...hoverProps}\n {...filterBaseProps(otherProps)}\n ref={domRef}\n >\n {checkbox}\n {label ?? children ? (\n <Element\n styles={labelStyles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n }}\n {...(labelProps ? filterBaseProps(labelProps) : undefined)}\n >\n {label ?? children}\n </Element>\n ) : null}\n </CheckboxWrapperElement>\n );\n}\n\n/**\n * Checkboxes allow users to select multiple items from a list of individual items,\n * or to mark one individual item as selected.\n */\nlet _Checkbox = forwardRef(Checkbox);\n\n(_Checkbox as any).cubeInputType = 'Checkbox';\nlet __Checkbox = Object.assign(\n _Checkbox as typeof _Checkbox & { Group: typeof CheckboxGroup },\n { Group: CheckboxGroup },\n);\n\n__Checkbox.displayName = 'Checkbox';\n\nexport { __Checkbox as Checkbox };\nexport type { AriaCheckboxProps };\nexport { useCheckbox };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Checkbox.js","names":["useFocus","mergeProps","Text","CheckboxGroup"],"sources":["../../../../src/components/fields/Checkbox/Checkbox.tsx"],"sourcesContent":["import { useFocusableRef } from '@react-spectrum/utils';\nimport { IconCheck, IconMinus } from '@tabler/icons-react';\nimport {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n Element,\n filterBaseProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport { forwardRef, useContext, useMemo, useRef } from 'react';\nimport {\n AriaCheckboxProps,\n useCheckbox,\n useCheckboxGroupItem,\n useHover,\n} from 'react-aria';\nimport { useToggleState } from 'react-stately';\n\nimport { Icon } from '../../../icons/Icon';\nimport { FieldBaseProps, ToggleSelectionProps } from '../../../shared';\nimport { mergeProps } from '../../../utils/react';\nimport { useFocus } from '../../../utils/react/interactions';\nimport {\n castNullableIsSelected,\n WithNullableSelected,\n} from '../../../utils/react/nullableValue';\nimport { extractStyles } from '../../../utils/styles';\nimport { Text } from '../../content/Text';\nimport {\n getValidationMods,\n INLINE_LABEL_STYLES,\n LABEL_STYLES,\n resolveValidationProps,\n useFieldProps,\n wrapWithField,\n} from '../../form';\nimport { HiddenInput } from '../../HiddenInput';\n\nimport { CheckboxGroup } from './CheckboxGroup';\nimport { CheckboxGroupContext } from './context';\n\nimport type { FocusableRef } from '@react-types/shared';\n\nexport interface CubeCheckboxProps\n extends BaseProps,\n ContainerStyleProps,\n AriaCheckboxProps,\n ToggleSelectionProps,\n FieldBaseProps {\n inputStyles?: Styles;\n isIndeterminate?: boolean;\n value?: string;\n}\n\nconst CheckboxWrapperElement = tasty({\n as: 'label',\n qa: 'CheckboxWrapper',\n styles: {\n position: 'relative',\n display: 'flex',\n placeItems: 'center start',\n placeContent: 'baseline',\n gap: '1x',\n flow: 'row',\n preset: 'default',\n cursor: '$pointer',\n width: 'max max-content',\n color: '#dark-02',\n },\n});\n\nconst CheckboxElement = tasty({\n qa: 'Checkbox',\n styles: {\n display: 'grid',\n placeItems: 'center',\n radius: '.5r',\n fill: {\n '': '#surface',\n 'checked | indeterminate': '#primary',\n 'invalid & !checked': '#surface',\n 'invalid & checked': '#danger',\n 'valid & !checked': '#surface',\n 'valid & checked': '#success',\n disabled: '#dark.12',\n },\n // The check / minus icon is always rendered inside the box, so the\n // default color must be transparent when the checkbox is neither\n // checked nor indeterminate — otherwise the white stroke shows through\n // the dark `#surface` fill in dark schemas (it used to be hidden\n // accidentally by the legacy white-on-white `fill: '#white'`).\n color: {\n '': '#clear',\n 'checked | indeterminate': '#white',\n },\n border: {\n '': '#dark.30',\n invalid: '#danger',\n valid: '#success',\n 'disabled | ((indeterminate | checked) & !invalid & !valid)': '#clear',\n },\n width: '(2x - 2bw)',\n height: '(2x - 2bw)',\n outline: {\n '': '#primary-text.0',\n focused: '1bw #primary-text',\n },\n outlineOffset: 1,\n transition: 'theme',\n },\n});\n\nfunction Checkbox(\n props: WithNullableSelected<CubeCheckboxProps>,\n ref: FocusableRef,\n) {\n // Swap hooks depending on whether this checkbox is inside a CheckboxGroup.\n // This is a bit unorthodox. Typically, hooks cannot be called in a conditional,\n // but since the checkbox won't move in and out of a group, it should be safe.\n let groupState = useContext(CheckboxGroupContext);\n\n props = castNullableIsSelected(props);\n\n let originalProps = props;\n\n props = useFieldProps(props, {\n defaultValidationTrigger: 'onChange',\n valuePropsMapper: ({ value, onChange }) => ({\n isSelected: value ?? false,\n isIndeterminate: false,\n onChange: onChange,\n }),\n unsafe__isDisabled: !!groupState,\n });\n\n let {\n qa,\n isIndeterminate = false,\n isDisabled = false,\n insideForm,\n isRequired,\n children,\n label,\n isInvalid,\n isValid,\n labelProps,\n labelStyles,\n labelPosition,\n inputStyles,\n isHidden,\n form,\n // Pulled out so it stays off the `<label>` spread below. The Aria hooks read\n // it from `props` directly; `filterBaseProps` already dropped it at runtime,\n // but it typed as a DOM `FormEventHandler` there, which it is not.\n onChange,\n ...otherProps\n } = props;\n\n let styles: Styles = extractStyles(props, CONTAINER_STYLES);\n\n labelStyles = useMemo(\n () => ({\n ...(!groupState ? LABEL_STYLES : INLINE_LABEL_STYLES),\n ...labelStyles,\n }),\n [groupState, labelStyles],\n );\n\n let { isFocused, focusProps } = useFocus({ isDisabled }, true);\n let { hoverProps, isHovered } = useHover({ isDisabled });\n\n let inputRef = useRef(null);\n let domRef = useFocusableRef(ref, inputRef);\n\n const toggleState = useToggleState(props);\n\n let { inputProps } = groupState\n ? useCheckboxGroupItem(\n {\n ...props,\n // Value is optional for standalone checkboxes, but required for CheckboxGroup items;\n // it's passed explicitly here to avoid typescript error (requires strictNullChecks disabled).\n value: props.value || '',\n // Only pass isRequired and the validation state to react-aria if they came from\n // the props for this individual checkbox, and not from the group via context.\n isRequired: originalProps.isRequired,\n isInvalid: resolveValidationProps(originalProps).isInvalid,\n },\n groupState,\n inputRef,\n )\n : useCheckbox(\n {\n ...props,\n ...(typeof label === 'string' && label.trim()\n ? { 'aria-label': label }\n : {}),\n },\n toggleState,\n inputRef,\n );\n\n let markIcon = isIndeterminate ? (\n <Icon size={12} stroke={3}>\n <IconMinus />\n </Icon>\n ) : (\n <Icon size={12} stroke={3}>\n <IconCheck />\n </Icon>\n );\n\n if (groupState) {\n for (let key of ['isSelected', 'defaultSelected', 'isEmphasized']) {\n if (originalProps[key] != null) {\n console.warn(\n `CubeUIKit: ${key} is unsupported on individual <Checkbox> elements within a <CheckboxGroup>. Please apply these props to the group instead.`,\n );\n }\n }\n if (props.value == null) {\n console.warn(\n 'CubeUIKit: A <Checkbox> element within a <CheckboxGroup> requires a `value` property.',\n );\n }\n }\n\n const mods = {\n checked: inputProps.checked,\n indeterminate: isIndeterminate,\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n hovered: isHovered,\n focused: isFocused,\n 'side-label': labelPosition === 'side',\n 'inside-form': insideForm,\n };\n\n const checkbox = (\n <>\n <HiddenInput\n qa={qa || 'Checkbox'}\n data-input-type=\"checkbox\"\n {...mergeProps(inputProps, focusProps)}\n ref={inputRef}\n />\n <CheckboxElement mods={mods} styles={inputStyles}>\n {markIcon}\n </CheckboxElement>\n </>\n );\n\n const checkboxField = (\n <CheckboxWrapperElement isHidden={isHidden} mods={mods}>\n {checkbox}\n {children && <Text nowrap>{children}</Text>}\n </CheckboxWrapperElement>\n );\n\n if (!groupState) {\n return wrapWithField(checkboxField, domRef, props);\n }\n\n return (\n <CheckboxWrapperElement\n styles={styles}\n isHidden={isHidden}\n {...hoverProps}\n {...filterBaseProps(otherProps)}\n ref={domRef}\n >\n {checkbox}\n {label ?? children ? (\n <Element\n styles={labelStyles}\n mods={{\n ...getValidationMods({ isInvalid, isValid }),\n disabled: isDisabled,\n }}\n {...(labelProps ? filterBaseProps(labelProps) : undefined)}\n >\n {label ?? children}\n </Element>\n ) : null}\n </CheckboxWrapperElement>\n );\n}\n\n/**\n * Checkboxes allow users to select multiple items from a list of individual items,\n * or to mark one individual item as selected.\n */\nlet _Checkbox = forwardRef(Checkbox);\n\n(_Checkbox as any).cubeInputType = 'Checkbox';\nlet __Checkbox = Object.assign(\n _Checkbox as typeof _Checkbox & { Group: typeof CheckboxGroup },\n { Group: CheckboxGroup },\n);\n\n__Checkbox.displayName = 'Checkbox';\n\nexport { __Checkbox as Checkbox };\nexport type { AriaCheckboxProps };\nexport { useCheckbox };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAwDA,MAAM,yBAAyB,MAAM;CACnC,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,UAAU;EACV,SAAS;EACT,YAAY;EACZ,cAAc;EACd,KAAK;EACL,MAAM;EACN,QAAQ;EACR,QAAQ;EACR,OAAO;EACP,OAAO;EACR;CACF,CAAC;AAEF,MAAM,kBAAkB,MAAM;CAC5B,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,YAAY;EACZ,QAAQ;EACR,MAAM;GACJ,IAAI;GACJ,2BAA2B;GAC3B,sBAAsB;GACtB,qBAAqB;GACrB,oBAAoB;GACpB,mBAAmB;GACnB,UAAU;GACX;EAMD,OAAO;GACL,IAAI;GACJ,2BAA2B;GAC5B;EACD,QAAQ;GACN,IAAI;GACJ,SAAS;GACT,OAAO;GACP,8DAA8D;GAC/D;EACD,OAAO;EACP,QAAQ;EACR,SAAS;GACP,IAAI;GACJ,SAAS;GACV;EACD,eAAe;EACf,YAAY;EACb;CACF,CAAC;AAEF,SAAS,SACP,OACA,KACA;CAIA,IAAI,aAAa,WAAW,qBAAqB;AAEjD,SAAQ,uBAAuB,MAAM;CAErC,IAAI,gBAAgB;AAEpB,SAAQ,cAAc,OAAO;EAC3B,0BAA0B;EAC1B,mBAAmB,EAAE,OAAO,gBAAgB;GAC1C,YAAY,SAAS;GACrB,iBAAiB;GACP;GACX;EACD,oBAAoB,CAAC,CAAC;EACvB,CAAC;CAEF,IAAI,EACF,IACA,kBAAkB,OAClB,aAAa,OACb,YACA,YACA,UACA,OACA,WACA,SACA,YACA,aACA,eACA,aACA,UACA,MAIA,UACA,GAAG,eACD;CAEJ,IAAI,SAAiB,cAAc,OAAO,iBAAiB;AAE3D,eAAc,eACL;EACL,GAAI,CAAC,aAAa,eAAe;EACjC,GAAG;EACJ,GACD,CAAC,YAAY,YAAY,CAC1B;CAED,IAAI,EAAE,WAAW,eAAeA,WAAS,EAAE,YAAY,EAAE,KAAK;CAC9D,IAAI,EAAE,YAAY,cAAc,SAAS,EAAE,YAAY,CAAC;CAExD,IAAI,WAAW,OAAO,KAAK;CAC3B,IAAI,SAAS,gBAAgB,KAAK,SAAS;CAE3C,MAAM,cAAc,eAAe,MAAM;CAEzC,IAAI,EAAE,eAAe,aACjB,qBACE;EACE,GAAG;EAGH,OAAO,MAAM,SAAS;EAGtB,YAAY,cAAc;EAC1B,WAAW,uBAAuB,cAAc,CAAC;EAClD,EACD,YACA,SACD,GACD,YACE;EACE,GAAG;EACH,GAAI,OAAO,UAAU,YAAY,MAAM,MAAM,GACzC,EAAE,cAAc,OAAO,GACvB,EAAE;EACP,EACD,aACA,SACD;CAEL,IAAI,WAAW,kBACb,oBAAC;EAAK,MAAM;EAAI,QAAQ;YACtB,oBAAC,cAAY;GACR,GAEP,oBAAC;EAAK,MAAM;EAAI,QAAQ;YACtB,oBAAC,cAAY;GACR;AAGT,KAAI,YAAY;AACd,OAAK,IAAI,OAAO;GAAC;GAAc;GAAmB;GAAe,CAC/D,KAAI,cAAc,QAAQ,KACxB,SAAQ,KACN,cAAc,IAAI,4HACnB;AAGL,MAAI,MAAM,SAAS,KACjB,SAAQ,KACN,wFACD;;CAIL,MAAM,OAAO;EACX,SAAS,WAAW;EACpB,eAAe;EACf,GAAG,kBAAkB;GAAE;GAAW;GAAS,CAAC;EAC5C,UAAU;EACV,SAAS;EACT,SAAS;EACT,cAAc,kBAAkB;EAChC,eAAe;EAChB;CAED,MAAM,WACJ,8CACE,oBAAC;EACC,IAAI,MAAM;EACV,mBAAgB;EAChB,GAAIC,aAAW,YAAY,WAAW;EACtC,KAAK;GACL,EACF,oBAAC;EAAsB;EAAM,QAAQ;YAClC;GACe,IACjB;CAGL,MAAM,gBACJ,qBAAC;EAAiC;EAAgB;aAC/C,UACA,YAAY,oBAACC;GAAK;GAAQ;IAAgB;GACpB;AAG3B,KAAI,CAAC,WACH,QAAO,cAAc,eAAe,QAAQ,MAAM;AAGpD,QACE,qBAAC;EACS;EACE;EACV,GAAI;EACJ,GAAI,gBAAgB,WAAW;EAC/B,KAAK;aAEJ,UACA,SAAS,WACR,oBAAC;GACC,QAAQ;GACR,MAAM;IACJ,GAAG,kBAAkB;KAAE;KAAW;KAAS,CAAC;IAC5C,UAAU;IACX;GACD,GAAK,aAAa,gBAAgB,WAAW,GAAG;aAE/C,SAAS;IACF,GACR;GACmB;;;;;;AAQ7B,IAAI,YAAY,WAAW,SAAS;AAEpC,AAAC,UAAkB,gBAAgB;AACnC,IAAI,aAAa,OAAO,OACtB,WACA,EAAE,OAAOC,gBAAe,CACzB;AAED,WAAW,cAAc"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { castNullableArrayValue } from "../../../utils/react/nullableValue.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { createContext } from "react";
3
3
 
4
4
  //#region src/components/fields/Checkbox/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { ItemActionProvider } from "../../actions/ItemActionContext.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { _Text } from "../../content/Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { parseColor, toHex } from "../color/color.js";
4
4
  import { BASE_STYLES, BLOCK_STYLES, DIMENSION_STYLES, OUTER_STYLES, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.169.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.170.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -22,7 +22,7 @@ import { useObjectRef } from "@react-aria/utils";
22
22
  * Two rings drawn inside the swatch, as React Aria marks selection. Outer ring
23
23
  * first: earlier shadows paint over later ones, so this reads as 2bw of
24
24
  * `#surface-text` at the edge and 2bw of `#surface` within it. Two tones that
25
- * flip with the scheme stay visible against any color the swatch holds.
25
+ * flip with the schema stay visible against any color the swatch holds.
26
26
  */
27
27
  const SELECTED_RING = "inset 0 0 0 2bw #surface-text, inset 0 0 0 4bw #surface";
28
28
  /** The swatch edge in px, per size. `Item` takes an exact number. */