@cube-dev/ui-kit 0.187.1 → 0.188.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 (637) hide show
  1. package/dist/CHANGELOG.md +39 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.d.ts +4 -0
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Action/Action.js.map +1 -1
  19. package/dist/components/actions/Banner/Banner.js +1 -1
  20. package/dist/components/actions/Button/Button.js +2 -2
  21. package/dist/components/actions/Button/Button.js.map +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  28. package/dist/components/actions/ItemActionContext.js +1 -1
  29. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  30. package/dist/components/actions/ItemButton/ItemButton.js +3 -3
  31. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  32. package/dist/components/actions/Link/Link.js +1 -1
  33. package/dist/components/actions/Menu/Menu.js +1 -1
  34. package/dist/components/actions/Menu/MenuItem.js +1 -1
  35. package/dist/components/actions/Menu/MenuSection.js +7 -5
  36. package/dist/components/actions/Menu/MenuSection.js.map +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/actions-run.js +1 -1
  43. package/dist/components/actions/index.js +1 -1
  44. package/dist/components/actions/use-action.d.ts +4 -0
  45. package/dist/components/actions/use-action.js +6 -1
  46. package/dist/components/actions/use-action.js.map +1 -1
  47. package/dist/components/actions/use-anchored-menu.js +1 -1
  48. package/dist/components/actions/use-context-menu.js +1 -1
  49. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  50. package/dist/components/content/Alert/Alert.js +1 -1
  51. package/dist/components/content/Alert/use-alert.js +1 -1
  52. package/dist/components/content/Avatar/Avatar.js +1 -1
  53. package/dist/components/content/Badge/Badge.js +1 -1
  54. package/dist/components/content/Card/Card.js +1 -1
  55. package/dist/components/content/Content.js +1 -1
  56. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  57. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  58. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  59. package/dist/components/content/Divider.js +1 -1
  60. package/dist/components/content/Footer.js +1 -1
  61. package/dist/components/content/Header.js +1 -1
  62. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  63. package/dist/components/content/InfoBadge/InfoBadge.d.ts +7 -1
  64. package/dist/components/content/InfoBadge/InfoBadge.js +6 -1
  65. package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
  66. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  67. package/dist/components/content/Item/Item.js +1 -1
  68. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  69. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  70. package/dist/components/content/Layout/GridLayout.js +1 -1
  71. package/dist/components/content/Layout/Layout.js +1 -1
  72. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  73. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  74. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  75. package/dist/components/content/Layout/LayoutContent.js +1 -1
  76. package/dist/components/content/Layout/LayoutContext.js +1 -1
  77. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  78. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  79. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  80. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  81. package/dist/components/content/Layout/LayoutPane.js +1 -1
  82. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  83. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  84. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  85. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  86. package/dist/components/content/Layout/index.js +1 -1
  87. package/dist/components/content/Layout/utils.js +1 -1
  88. package/dist/components/content/Paragraph.js +1 -1
  89. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  90. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  91. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  92. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  93. package/dist/components/content/Result/Result.js +1 -1
  94. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  95. package/dist/components/content/Tag/Tag.js +1 -1
  96. package/dist/components/content/Text.d.ts +14 -14
  97. package/dist/components/content/Text.js +1 -1
  98. package/dist/components/content/TextItem/TextItem.js +1 -1
  99. package/dist/components/content/Title.js +1 -1
  100. package/dist/components/content/Tree/Tree.js +1 -1
  101. package/dist/components/content/Tree/TreeNode.js +1 -1
  102. package/dist/components/content/Tree/styled.js +1 -1
  103. package/dist/components/content/Tree/tree-index.js +1 -1
  104. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  105. package/dist/components/content/Tree/use-load-data.js +1 -1
  106. package/dist/components/content/highlightText.js +1 -1
  107. package/dist/components/content/use-auto-tooltip.js +1 -1
  108. package/dist/components/data/DataTable/DataTable.js +31 -5
  109. package/dist/components/data/DataTable/DataTable.js.map +1 -1
  110. package/dist/components/data/DataTable/types.d.ts +3 -1
  111. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  112. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  113. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  114. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  115. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  116. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  117. package/dist/components/data/TableBase/RowCollection.js +1 -1
  118. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  119. package/dist/components/data/TableBase/TableRow.js +1 -1
  120. package/dist/components/data/TableBase/TableView.js +9 -7
  121. package/dist/components/data/TableBase/TableView.js.map +1 -1
  122. package/dist/components/data/TableBase/column-menu.js +1 -1
  123. package/dist/components/data/TableBase/column-styles.js +82 -0
  124. package/dist/components/data/TableBase/column-styles.js.map +1 -0
  125. package/dist/components/data/TableBase/column-tint.js +1 -1
  126. package/dist/components/data/TableBase/row-menu.js +1 -1
  127. package/dist/components/data/TableBase/styled.js +1 -1
  128. package/dist/components/data/TableBase/table-tree.js +1 -1
  129. package/dist/components/data/TableBase/types.d.ts +11 -0
  130. package/dist/components/data/TableBase/types.js +1 -1
  131. package/dist/components/data/TableBase/types.js.map +1 -1
  132. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  133. package/dist/components/data/TableBase/use-column-order.js +1 -1
  134. package/dist/components/data/TableBase/use-container-width.js +1 -1
  135. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  136. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  137. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  138. package/dist/components/data/TableBase/use-table-search.js +1 -1
  139. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  140. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  141. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  142. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  143. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  144. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  145. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  146. package/dist/components/fields/Checkbox/context.js +1 -1
  147. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  148. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  149. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  150. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  151. package/dist/components/fields/ComboBox/ComboBox.d.ts +9 -4
  152. package/dist/components/fields/ComboBox/ComboBox.js +2 -1
  153. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  154. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  155. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  156. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  157. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  158. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  159. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  160. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  161. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  162. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  163. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  164. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  165. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  166. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  167. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  168. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  169. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  170. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  171. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  172. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  173. package/dist/components/fields/DatePicker/period.js +1 -1
  174. package/dist/components/fields/DatePicker/props.js +1 -1
  175. package/dist/components/fields/DatePicker/utils.js +1 -1
  176. package/dist/components/fields/FileInput/FileInput.js +1 -1
  177. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  178. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  179. package/dist/components/fields/Input/Input.js +1 -1
  180. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  181. package/dist/components/fields/ListBox/ListBox.js +20 -23
  182. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  183. package/dist/components/fields/ListBox/optionId.js +1 -1
  184. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +46 -44
  185. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  186. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  187. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  188. package/dist/components/fields/NumberInput/NumberInput.d.ts +2 -2
  189. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  190. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  191. package/dist/components/fields/NumberInput/StepButton.js +3 -3
  192. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  193. package/dist/components/fields/PasswordInput/PasswordInput.d.ts +2 -1
  194. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  195. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  196. package/dist/components/fields/Picker/Picker.js +1 -1
  197. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  198. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  199. package/dist/components/fields/RadioGroup/context.js +1 -1
  200. package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +9 -4
  201. package/dist/components/fields/SearchComboBox/SearchComboBox.js +2 -1
  202. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  203. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  204. package/dist/components/fields/Select/Select.js +1 -1
  205. package/dist/components/fields/Slider/Gradation.js +1 -1
  206. package/dist/components/fields/Slider/HueSlider.js +1 -1
  207. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  208. package/dist/components/fields/Slider/Slider.js +1 -1
  209. package/dist/components/fields/Slider/SliderBase.js +1 -1
  210. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  211. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  212. package/dist/components/fields/Slider/elements.js +1 -1
  213. package/dist/components/fields/Slider/index.js +1 -1
  214. package/dist/components/fields/Switch/Switch.js +1 -1
  215. package/dist/components/fields/TagInput/TagInput.js +170 -158
  216. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  217. package/dist/components/fields/TagInput/TagList.js +1 -1
  218. package/dist/components/fields/TextArea/TextArea.js +1 -1
  219. package/dist/components/fields/TextInput/TextInput.d.ts +2 -2
  220. package/dist/components/fields/TextInput/TextInput.js +1 -1
  221. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  222. package/dist/components/fields/TextInput/TextInputBase.d.ts +2 -2
  223. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  224. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  225. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  226. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  227. package/dist/components/fields/TriggerActions.js +1 -1
  228. package/dist/components/fields/color/ColorPanel.js +1 -1
  229. package/dist/components/fields/color/channels.js +1 -1
  230. package/dist/components/fields/color/color.js +1 -1
  231. package/dist/components/fields/color/context.js +1 -1
  232. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  233. package/dist/components/form/Form/Field.js +1 -1
  234. package/dist/components/form/Form/Form.js +1 -1
  235. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  236. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  237. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  238. package/dist/components/form/Form/SubmitError.js +1 -1
  239. package/dist/components/form/Form/backend.js +1 -1
  240. package/dist/components/form/Form/index.js +1 -1
  241. package/dist/components/form/Form/modern/actions.js +1 -1
  242. package/dist/components/form/Form/modern/context.js +1 -1
  243. package/dist/components/form/Form/modern/controller.js +1 -1
  244. package/dist/components/form/Form/modern/field-binding.js +1 -1
  245. package/dist/components/form/Form/modern/field.js +1 -1
  246. package/dist/components/form/Form/modern/react.js +1 -1
  247. package/dist/components/form/Form/modern/store.js +1 -1
  248. package/dist/components/form/Form/modern/validation.js +1 -1
  249. package/dist/components/form/Form/modern/values.js +1 -1
  250. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  251. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  252. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  253. package/dist/components/form/Form/use-field/use-field.js +1 -1
  254. package/dist/components/form/Form/use-form.js +1 -1
  255. package/dist/components/form/Form/validation.js +1 -1
  256. package/dist/components/form/Label.js +1 -1
  257. package/dist/components/form/legacy-tooltip.js +1 -1
  258. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  259. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  260. package/dist/components/form/validation/use-validation-props.js +1 -1
  261. package/dist/components/form/wrapper.js +1 -1
  262. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  263. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  264. package/dist/components/layout/Board/Board.js +1 -1
  265. package/dist/components/layout/Board/BoardProvider.js +1 -1
  266. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  267. package/dist/components/layout/Board/Widget.js +1 -1
  268. package/dist/components/layout/Board/WidgetHost.js +1 -1
  269. package/dist/components/layout/Board/board-context.js +1 -1
  270. package/dist/components/layout/Board/board-store.js +1 -1
  271. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  272. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  273. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  274. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  275. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  276. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  277. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  278. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  279. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  280. package/dist/components/layout/Board/index.js +1 -1
  281. package/dist/components/layout/Board/responsive-utils.js +1 -1
  282. package/dist/components/layout/Board/use-board-layout.js +1 -1
  283. package/dist/components/layout/Board/use-board-registry.js +1 -1
  284. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  285. package/dist/components/layout/Board/use-board-selection.js +1 -1
  286. package/dist/components/layout/Flex.js +1 -1
  287. package/dist/components/layout/Flow.js +1 -1
  288. package/dist/components/layout/Grid.js +1 -1
  289. package/dist/components/layout/Panel.js +1 -1
  290. package/dist/components/layout/Prefix.js +1 -1
  291. package/dist/components/layout/ResizablePanel.js +1 -1
  292. package/dist/components/layout/Space.js +1 -1
  293. package/dist/components/layout/Suffix.js +1 -1
  294. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  295. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  296. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  297. package/dist/components/navigation/Tabs/TabButton.js +470 -407
  298. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  299. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  300. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  301. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  302. package/dist/components/navigation/Tabs/Tabs.js +22 -4
  303. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  304. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  305. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  306. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  307. package/dist/components/navigation/Tabs/styled.js +1 -1
  308. package/dist/components/navigation/Tabs/types.d.ts +1 -1
  309. package/dist/components/navigation/Tabs/types.js +1 -1
  310. package/dist/components/navigation/Tabs/types.js.map +1 -1
  311. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  312. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  313. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  314. package/dist/components/other/Calendar/Calendar.js +1 -1
  315. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  316. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  317. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  318. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  319. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  320. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  321. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  322. package/dist/components/other/Calendar/styled.js +1 -1
  323. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  324. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  325. package/dist/components/overlays/AlertDialog/AlertDialog.js +78 -116
  326. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  327. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  328. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  329. package/dist/components/overlays/Dialog/Dialog.js +2 -2
  330. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  331. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  332. package/dist/components/overlays/Dialog/DialogForm.d.ts +2 -2
  333. package/dist/components/overlays/Dialog/DialogForm.js +4 -5
  334. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  335. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  336. package/dist/components/overlays/Dialog/ModernDialogForm.js +5 -6
  337. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
  338. package/dist/components/overlays/Dialog/context.js +1 -1
  339. package/dist/components/overlays/Dialog/default-button-text.js +30 -0
  340. package/dist/components/overlays/Dialog/default-button-text.js.map +1 -0
  341. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  342. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  343. package/dist/components/overlays/Modal/Modal.js +1 -1
  344. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  345. package/dist/components/overlays/Modal/Overlay.js +1 -1
  346. package/dist/components/overlays/Modal/Popover.js +1 -1
  347. package/dist/components/overlays/Modal/Tray.js +1 -1
  348. package/dist/components/overlays/Modal/Underlay.js +1 -1
  349. package/dist/components/overlays/Notifications/Notification.js +1 -1
  350. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  351. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  352. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  353. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  354. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  355. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  356. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  357. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  358. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  359. package/dist/components/overlays/Notifications/index.js +1 -1
  360. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  361. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  362. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  363. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  364. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  365. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  366. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  367. package/dist/components/overlays/Toast/index.js +1 -1
  368. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  369. package/dist/components/overlays/Toast/useToast.js +1 -1
  370. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  371. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  372. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  373. package/dist/components/overlays/Tooltip/context.js +1 -1
  374. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  375. package/dist/components/portal/Portal.js +1 -1
  376. package/dist/components/portal/PortalProvider.js +1 -1
  377. package/dist/components/portal/usePortal.js +1 -1
  378. package/dist/components/shared/DraggableCollection.js +1 -1
  379. package/dist/components/shared/InvalidIcon.js +1 -1
  380. package/dist/components/shared/ValidIcon.js +1 -1
  381. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  382. package/dist/components/status/Spin/Cube.js +1 -1
  383. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  384. package/dist/components/status/Spin/Spin.js +1 -1
  385. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  386. package/dist/data/item-themes.js +1 -1
  387. package/dist/data/themes.js +1 -1
  388. package/dist/eslint-plugin/defaults.generated.js +2 -2
  389. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  390. package/dist/eslint-plugin/index.js +1 -1
  391. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  392. package/dist/i18n/I18nProvider.js +1 -1
  393. package/dist/i18n/createFormatter.js +1 -1
  394. package/dist/i18n/index.js +1 -1
  395. package/dist/i18n/instance.js +1 -1
  396. package/dist/i18n/locales/de-DE/uikit.js +4 -1
  397. package/dist/i18n/locales/en-US/uikit.js +4 -1
  398. package/dist/i18n/locales/en-US/uikit.json.d.ts +3 -0
  399. package/dist/i18n/locales/es-ES/uikit.js +4 -1
  400. package/dist/i18n/locales/es-MX/uikit.js +4 -1
  401. package/dist/i18n/locales/fr-FR/uikit.js +4 -1
  402. package/dist/i18n/locales/it-IT/uikit.js +4 -1
  403. package/dist/i18n/locales/ja-JP/uikit.js +4 -1
  404. package/dist/i18n/locales/nb-NO/uikit.js +4 -1
  405. package/dist/i18n/locales/pt-BR/uikit.js +4 -1
  406. package/dist/i18n/locales/pt-PT/uikit.js +4 -1
  407. package/dist/i18n/locales/sv-SE/uikit.js +4 -1
  408. package/dist/i18n/locales/vi-VN/uikit.js +4 -1
  409. package/dist/i18n/locales.js +1 -1
  410. package/dist/i18n/useFormatter.js +1 -1
  411. package/dist/i18n/useI18n.js +1 -1
  412. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  413. package/dist/icons/AdjustmentsIcon.js +1 -1
  414. package/dist/icons/AiIcon.js +1 -1
  415. package/dist/icons/AreaChartIcon.js +1 -1
  416. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  417. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  418. package/dist/icons/BackwardIcon.js +1 -1
  419. package/dist/icons/BarChartIcon.js +1 -1
  420. package/dist/icons/BellFilledIcon.js +1 -1
  421. package/dist/icons/BellIcon.js +1 -1
  422. package/dist/icons/BooleanIcon.js +1 -1
  423. package/dist/icons/CalendarEditIcon.js +1 -1
  424. package/dist/icons/CalendarIcon.js +1 -1
  425. package/dist/icons/CaretDownIcon.js +1 -1
  426. package/dist/icons/CaretUpIcon.js +1 -1
  427. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  428. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  429. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  430. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  431. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  432. package/dist/icons/ChartBarLineIcon.js +1 -1
  433. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  434. package/dist/icons/ChartBarStackedIcon.js +1 -1
  435. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  436. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  437. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  438. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  439. package/dist/icons/ChartBubbleIcon.js +1 -1
  440. package/dist/icons/ChartDonut2Icon.js +1 -1
  441. package/dist/icons/ChartFunnelIcon.js +1 -1
  442. package/dist/icons/ChartHeatmapIcon.js +1 -1
  443. package/dist/icons/ChartKPIIcon.js +1 -1
  444. package/dist/icons/ChartPie2Icon.js +1 -1
  445. package/dist/icons/ChartScatterIcon.js +1 -1
  446. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  447. package/dist/icons/CheckCircleIcon.js +1 -1
  448. package/dist/icons/CheckIcon.js +1 -1
  449. package/dist/icons/CircleFilledIcon.js +1 -1
  450. package/dist/icons/ClearIcon.js +1 -1
  451. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  452. package/dist/icons/CloseCircleIcon.js +1 -1
  453. package/dist/icons/CloseIcon.js +1 -1
  454. package/dist/icons/CodeIcon.js +1 -1
  455. package/dist/icons/ColumnTotalIcon.js +1 -1
  456. package/dist/icons/CopyIcon.js +1 -1
  457. package/dist/icons/CountIcon.js +1 -1
  458. package/dist/icons/CubeIcon.js +1 -1
  459. package/dist/icons/CubePauseIcon.js +1 -1
  460. package/dist/icons/CubePlayIcon.js +1 -1
  461. package/dist/icons/CurrencyDollarIcon.js +1 -1
  462. package/dist/icons/DangerIcon.js +1 -1
  463. package/dist/icons/DashboardIcon.js +1 -1
  464. package/dist/icons/DatabaseIcon.js +1 -1
  465. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  466. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  467. package/dist/icons/DirectionIcon.js +1 -1
  468. package/dist/icons/DonutIcon.js +1 -1
  469. package/dist/icons/DownIcon.js +1 -1
  470. package/dist/icons/EditIcon.js +1 -1
  471. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  472. package/dist/icons/ExclamationCircleIcon.js +1 -1
  473. package/dist/icons/ExclamationIcon.js +1 -1
  474. package/dist/icons/EyeIcon.js +1 -1
  475. package/dist/icons/EyeInvisibleIcon.js +1 -1
  476. package/dist/icons/FilterIcon.js +1 -1
  477. package/dist/icons/FolderFilledIcon.js +1 -1
  478. package/dist/icons/FolderIcon.js +1 -1
  479. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  480. package/dist/icons/FolderOpenIcon.js +1 -1
  481. package/dist/icons/ForwardIcon.js +1 -1
  482. package/dist/icons/GripVerticalIcon.js +1 -1
  483. package/dist/icons/HierarchyIcon.js +1 -1
  484. package/dist/icons/HierarchyOpenIcon.js +1 -1
  485. package/dist/icons/Icon.js +1 -1
  486. package/dist/icons/InfoCircleIcon.js +1 -1
  487. package/dist/icons/InfoIcon.js +1 -1
  488. package/dist/icons/KeyIcon.js +1 -1
  489. package/dist/icons/LeftIcon.js +1 -1
  490. package/dist/icons/LineChartIcon.js +1 -1
  491. package/dist/icons/LoadingIcon.js +1 -1
  492. package/dist/icons/LockFilledIcon.js +1 -1
  493. package/dist/icons/LockIcon.js +1 -1
  494. package/dist/icons/MoreIcon.js +1 -1
  495. package/dist/icons/NotAllowedIcon.js +1 -1
  496. package/dist/icons/Number123Icon.js +1 -1
  497. package/dist/icons/NumberIcon.js +1 -1
  498. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  499. package/dist/icons/PauseCircleIcon.js +1 -1
  500. package/dist/icons/PauseIcon.js +1 -1
  501. package/dist/icons/PercentageIcon.js +1 -1
  502. package/dist/icons/PieChartIcon.js +1 -1
  503. package/dist/icons/PipetteIcon.js +1 -1
  504. package/dist/icons/PlayCircleIcon.js +1 -1
  505. package/dist/icons/PlayIcon.js +1 -1
  506. package/dist/icons/PlusIcon.js +1 -1
  507. package/dist/icons/ProgressBarIcon.js +1 -1
  508. package/dist/icons/ReloadIcon.js +1 -1
  509. package/dist/icons/ReportIcon.js +1 -1
  510. package/dist/icons/ReturnIcon.js +1 -1
  511. package/dist/icons/RightIcon.js +1 -1
  512. package/dist/icons/RowTotalsIcon.js +1 -1
  513. package/dist/icons/SchemeIcon.js +1 -1
  514. package/dist/icons/SearchIcon.js +1 -1
  515. package/dist/icons/SemanticQueryIcon.js +1 -1
  516. package/dist/icons/SettingsIcon.js +1 -1
  517. package/dist/icons/ShieldFilledIcon.js +1 -1
  518. package/dist/icons/ShieldIcon.js +1 -1
  519. package/dist/icons/SlashIcon.js +1 -1
  520. package/dist/icons/SparklesIcon.js +1 -1
  521. package/dist/icons/SqlIcon.js +1 -1
  522. package/dist/icons/StatsIcon.js +1 -1
  523. package/dist/icons/StopIcon.js +1 -1
  524. package/dist/icons/StringIcon.js +1 -1
  525. package/dist/icons/SubtotalsIcon.js +1 -1
  526. package/dist/icons/SwitchIcon.js +1 -1
  527. package/dist/icons/TableIcon.js +1 -1
  528. package/dist/icons/ThumbsDownIcon.js +1 -1
  529. package/dist/icons/ThumbsUpIcon.js +1 -1
  530. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  531. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  532. package/dist/icons/ThunderboltIcon.js +1 -1
  533. package/dist/icons/TimeIcon.js +1 -1
  534. package/dist/icons/TrashIcon.js +1 -1
  535. package/dist/icons/UnlockIcon.js +1 -1
  536. package/dist/icons/UpIcon.js +1 -1
  537. package/dist/icons/UserGroupIcon.js +1 -1
  538. package/dist/icons/UserIcon.js +1 -1
  539. package/dist/icons/UserLockIcon.js +1 -1
  540. package/dist/icons/ViewIcon.js +1 -1
  541. package/dist/icons/WarningFilledIcon.js +1 -1
  542. package/dist/icons/WarningIcon.js +1 -1
  543. package/dist/icons/wrap-icon.js +1 -1
  544. package/dist/index.d.ts +2 -2
  545. package/dist/index.js +1 -1
  546. package/dist/probe/canonicalize.js +1 -1
  547. package/dist/probe/css.js +1 -1
  548. package/dist/probe/index.js +1 -1
  549. package/dist/provider.js +1 -1
  550. package/dist/providers/TrackingProvider.js +1 -1
  551. package/dist/providers/navigationAdapter.default.js +1 -1
  552. package/dist/shared/form.d.ts +29 -1
  553. package/dist/shared/index.d.ts +1 -1
  554. package/dist/tokens/all-tokens.js +1 -1
  555. package/dist/tokens/base.js +1 -1
  556. package/dist/tokens/color-seed.js +1 -1
  557. package/dist/tokens/color-theme.js +1 -1
  558. package/dist/tokens/colors.js +1 -1
  559. package/dist/tokens/layout.js +1 -1
  560. package/dist/tokens/lazy-styles.js +1 -1
  561. package/dist/tokens/legacy-color.js +1 -1
  562. package/dist/tokens/palette-config.js +1 -1
  563. package/dist/tokens/palette.js +1 -1
  564. package/dist/tokens/resolve.js +1 -1
  565. package/dist/tokens/shadows.js +1 -1
  566. package/dist/tokens/sizes.js +1 -1
  567. package/dist/tokens/spacing.js +1 -1
  568. package/dist/tokens/typography.js +1 -1
  569. package/dist/utils/ResizeSensor.js +1 -1
  570. package/dist/utils/colors.js +1 -1
  571. package/dist/utils/dotize.js +1 -1
  572. package/dist/utils/is-dev-env.js +1 -1
  573. package/dist/utils/modules.js +1 -1
  574. package/dist/utils/promise.js +1 -1
  575. package/dist/utils/raf.js +1 -1
  576. package/dist/utils/random.js +1 -1
  577. package/dist/utils/range.js +1 -1
  578. package/dist/utils/react/RenderCache.js +1 -1
  579. package/dist/utils/react/Slots.js +1 -1
  580. package/dist/utils/react/chain.js +1 -1
  581. package/dist/utils/react/disabledProps.js +1 -1
  582. package/dist/utils/react/escapePropagation.js +1 -1
  583. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  584. package/dist/utils/react/index.js +1 -1
  585. package/dist/utils/react/interactions.js +1 -1
  586. package/dist/utils/react/isTextOnly.js +1 -1
  587. package/dist/utils/react/mapProps.js +1 -1
  588. package/dist/utils/react/mergeProps.js +1 -1
  589. package/dist/utils/react/nullableValue.js +1 -1
  590. package/dist/utils/react/programmaticFocus.js +1 -1
  591. package/dist/utils/react/resolveIcon.js +1 -1
  592. package/dist/utils/react/sharedStore.js +1 -1
  593. package/dist/utils/react/useBufferedValue.js +1 -1
  594. package/dist/utils/react/useCombinedRefs.js +1 -1
  595. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  596. package/dist/utils/react/useEventBus.js +1 -1
  597. package/dist/utils/react/useId.js +1 -1
  598. package/dist/utils/react/useIsDarwin.js +1 -1
  599. package/dist/utils/react/useKeySymbols.js +1 -1
  600. package/dist/utils/react/useLayoutEffect.js +1 -1
  601. package/dist/utils/react/useLocalStorage.js +1 -1
  602. package/dist/utils/react/useMergeStyles.js +1 -1
  603. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  604. package/dist/utils/react/usePopoverSync.js +1 -1
  605. package/dist/utils/react/useQaProps.js +1 -1
  606. package/dist/utils/react/useScheme.js +1 -1
  607. package/dist/utils/react/useViewportSize.js +1 -1
  608. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  609. package/dist/utils/selection.js +1 -1
  610. package/dist/utils/styles.js +1 -1
  611. package/dist/utils/tree.js +1 -1
  612. package/dist/utils/warnings.js +1 -1
  613. package/dist/version.js +2 -2
  614. package/docs/CreateComponent.md +1 -1
  615. package/docs/components/actions/Action.md +1 -1
  616. package/docs/components/actions/Button.md +4 -2
  617. package/docs/components/actions/ItemButton.md +1 -0
  618. package/docs/components/actions/Link.md +1 -1
  619. package/docs/components/content/InfoBadge.md +1 -1
  620. package/docs/components/content/Item.md +1 -1
  621. package/docs/components/data/DataTable.md +18 -0
  622. package/docs/components/data/ItemTable.md +3 -1
  623. package/docs/components/fields/ComboBox.md +49 -1
  624. package/docs/components/fields/FilterPicker.md +3 -3
  625. package/docs/components/fields/NumberInput.md +27 -0
  626. package/docs/components/fields/PasswordInput.md +24 -0
  627. package/docs/components/fields/Picker.md +3 -3
  628. package/docs/components/fields/SearchComboBox.md +3 -1
  629. package/docs/components/fields/TagInput.md +4 -2
  630. package/docs/components/fields/TextArea.md +24 -0
  631. package/docs/components/fields/TextInput.md +24 -0
  632. package/docs/components/navigation/Tabs.md +8 -3
  633. package/docs/components/overlays/AlertDialog.md +3 -3
  634. package/docs/components/overlays/DialogForm.md +3 -3
  635. package/docs/components/overlays/UseDialogContainer.md +4 -7
  636. package/docs/modern-form-migration.md +1 -1
  637. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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";
@@ -0,0 +1,82 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
+ import { computeStyles, resolveRecipes } from "@tenphi/tasty";
3
+
4
+ //#region src/components/data/TableBase/column-styles.ts
5
+ /**
6
+ * The table paints every body cell from its root, through
7
+ * `> Scroller > Table > Body > Row > Cell`: the root's doubled class plus five
8
+ * `[data-element]` attributes, a specificity of (0,7,0). Tasty wraps every state
9
+ * in `:where()`, so that chain is the whole of it, tint branches and the
10
+ * consumer's table-level `cellStyles` included.
11
+ *
12
+ * A column's class is doubled as well, (0,2,0), and would lose every property
13
+ * the table also sets (`color`, `fill`, `padding`…). Six more attribute
14
+ * selectors take it to (0,8,0), so the column wins outright whichever of the
15
+ * two rules was injected first. If the `Cell` chain in `styled.ts` ever grows,
16
+ * this has to grow with it. `DataTable.browser.test.tsx` checks the cascade.
17
+ */
18
+ const SELF = `&${`[data-column-styles]`.repeat(6)}`;
19
+ /**
20
+ * The wrapper per consumer object, so an object-form `cellStyles` (or a
21
+ * function that returns a shared constant) is serialized once rather than on
22
+ * every cell of every render.
23
+ */
24
+ const WRAPPED = /* @__PURE__ */ new WeakMap();
25
+ /**
26
+ * Keys tasty reads only from the top level of the object handed to
27
+ * `computeStyles`: the at-rule definitions it registers next to the class.
28
+ * Left inside `ColumnCell`, a `@keyframes` block would never be registered and
29
+ * the cell's `animation` would name nothing, so these stay at the top.
30
+ */
31
+ const TOP_LEVEL_KEYS = [
32
+ "@keyframes",
33
+ "@property",
34
+ "@font-face",
35
+ "@counter-style",
36
+ "@function"
37
+ ];
38
+ function wrap(styles) {
39
+ let wrapped = WRAPPED.get(styles);
40
+ if (!wrapped) {
41
+ const cell = {
42
+ ...resolveRecipes(styles),
43
+ $: SELF
44
+ };
45
+ const top = {};
46
+ for (const key of TOP_LEVEL_KEYS) if (key in cell) {
47
+ top[key] = cell[key];
48
+ delete cell[key];
49
+ }
50
+ wrapped = {
51
+ ...top,
52
+ ColumnCell: cell
53
+ };
54
+ WRAPPED.set(styles, wrapped);
55
+ }
56
+ return wrapped;
57
+ }
58
+ /**
59
+ * A column's `cellStyles`, resolved through tasty into a class for the cell.
60
+ *
61
+ * Tasty keys a class on the CONTENT of the styles, not on the object, so every
62
+ * cell with equal styles shares one class and one set of rules, and a function
63
+ * that returns a handful of distinct objects produces a handful of classes —
64
+ * however many cells, and however many fresh objects, it returns them as. After
65
+ * the first cell, a lookup costs a small serialization and a map hit; the CSS
66
+ * is built once.
67
+ *
68
+ * The styles land on the cell itself, so a bare state key in them (`hovered`,
69
+ * `:hover`, a local `@state`) asks about the cell. That is NOT how `styles.Cell`
70
+ * reads one: a sub-element's bare keys resolve against the table root, so a map
71
+ * copied from the table-level `cellStyles` that keys on `shape=card` or
72
+ * `column-dividers` matches nothing here. `@own(...)` asks about the cell in
73
+ * both places.
74
+ */
75
+ function columnCellClassName(styles) {
76
+ if (!styles || Object.keys(styles).length === 0) return void 0;
77
+ return computeStyles(wrap(styles)).className || void 0;
78
+ }
79
+
80
+ //#endregion
81
+ export { columnCellClassName };
82
+ //# sourceMappingURL=column-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"column-styles.js","names":["computeStyles","resolveRecipes","Styles","COLUMN_STYLES_ATTR","SELF","repeat","WRAPPED","WeakMap","TOP_LEVEL_KEYS","const","wrap","styles","wrapped","get","cell","Record","$","top","key","ColumnCell","set","columnCellClassName","Object","keys","length","undefined","className"],"sources":["../../../../src/components/data/TableBase/column-styles.ts"],"sourcesContent":["import { computeStyles, resolveRecipes } from '@tenphi/tasty';\n\nimport type { Styles } from '@tenphi/tasty';\n\n/**\n * Stamped on a body cell that carries a column's own `cellStyles` class, by\n * `TableView`. The class's rule is anchored on it, see `SELF`.\n */\nconst COLUMN_STYLES_ATTR = 'data-column-styles';\n\n/**\n * The table paints every body cell from its root, through\n * `> Scroller > Table > Body > Row > Cell`: the root's doubled class plus five\n * `[data-element]` attributes, a specificity of (0,7,0). Tasty wraps every state\n * in `:where()`, so that chain is the whole of it, tint branches and the\n * consumer's table-level `cellStyles` included.\n *\n * A column's class is doubled as well, (0,2,0), and would lose every property\n * the table also sets (`color`, `fill`, `padding`…). Six more attribute\n * selectors take it to (0,8,0), so the column wins outright whichever of the\n * two rules was injected first. If the `Cell` chain in `styled.ts` ever grows,\n * this has to grow with it. `DataTable.browser.test.tsx` checks the cascade.\n */\nconst SELF = `&${`[${COLUMN_STYLES_ATTR}]`.repeat(6)}`;\n\n/**\n * The wrapper per consumer object, so an object-form `cellStyles` (or a\n * function that returns a shared constant) is serialized once rather than on\n * every cell of every render.\n */\nconst WRAPPED = new WeakMap<Styles, Styles>();\n\n/**\n * Keys tasty reads only from the top level of the object handed to\n * `computeStyles`: the at-rule definitions it registers next to the class.\n * Left inside `ColumnCell`, a `@keyframes` block would never be registered and\n * the cell's `animation` would name nothing, so these stay at the top.\n */\nconst TOP_LEVEL_KEYS = [\n '@keyframes',\n '@property',\n '@font-face',\n '@counter-style',\n '@function',\n] as const;\n\nfunction wrap(styles: Styles): Styles {\n let wrapped = WRAPPED.get(styles);\n\n if (!wrapped) {\n // Recipes resolve only at the top level of a style object, so they are\n // expanded before the styles move one level down.\n const cell: Record<string, unknown> = {\n ...resolveRecipes(styles),\n $: SELF,\n };\n const top: Record<string, unknown> = {};\n\n for (const key of TOP_LEVEL_KEYS) {\n if (key in cell) {\n top[key] = cell[key];\n delete cell[key];\n }\n }\n\n wrapped = { ...top, ColumnCell: cell } as Styles;\n WRAPPED.set(styles, wrapped);\n }\n\n return wrapped;\n}\n\n/**\n * A column's `cellStyles`, resolved through tasty into a class for the cell.\n *\n * Tasty keys a class on the CONTENT of the styles, not on the object, so every\n * cell with equal styles shares one class and one set of rules, and a function\n * that returns a handful of distinct objects produces a handful of classes —\n * however many cells, and however many fresh objects, it returns them as. After\n * the first cell, a lookup costs a small serialization and a map hit; the CSS\n * is built once.\n *\n * The styles land on the cell itself, so a bare state key in them (`hovered`,\n * `:hover`, a local `@state`) asks about the cell. That is NOT how `styles.Cell`\n * reads one: a sub-element's bare keys resolve against the table root, so a map\n * copied from the table-level `cellStyles` that keys on `shape=card` or\n * `column-dividers` matches nothing here. `@own(...)` asks about the cell in\n * both places.\n */\nexport function columnCellClassName(\n styles: Styles | null | undefined,\n): string | undefined {\n if (!styles || Object.keys(styles).length === 0) return undefined;\n\n return computeStyles(wrap(styles)).className || undefined;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAuBA,MAAMI,OAAO,IAAI,uBAA0BC,OAAO,EAAE;;;;;;AAOpD,MAAMC,0BAAU,IAAIC,SAAyB;;;;;;;AAQ7C,MAAMC,iBAAiB;CACrB;CACA;CACA;CACA;CACA;CACD;AAED,SAASE,KAAKC,QAAwB;CACpC,IAAIC,UAAUN,QAAQO,IAAIF,OAAO;AAEjC,KAAI,CAACC,SAAS;EAGZ,MAAME,OAAgC;GACpC,GAAGb,eAAeU,OAAO;GACzBK,GAAGZ;GACJ;EACD,MAAMa,MAA+B,EAAE;AAEvC,OAAK,MAAMC,OAAOV,eAChB,KAAIU,OAAOJ,MAAM;AACfG,OAAIC,OAAOJ,KAAKI;AAChB,UAAOJ,KAAKI;;AAIhBN,YAAU;GAAE,GAAGK;GAAKE,YAAYL;GAAM;AACtCR,UAAQc,IAAIT,QAAQC,QAAQ;;AAG9B,QAAOA;;;;;;;;;;;;;;;;;;;AAoBT,SAAgBS,oBACdV,QACoB;AACpB,KAAI,CAACA,UAAUW,OAAOC,KAAKZ,OAAO,CAACa,WAAW,EAAG,QAAOC;AAExD,QAAOzB,cAAcU,KAAKC,OAAO,CAAC,CAACe,aAAaD"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
2
  import { getPaletteConfig } from "../../../tokens/palette-config.js";
3
3
  import { hashString } from "../../../tokens/color-theme.js";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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) {
@@ -244,6 +244,17 @@ interface CubeTableColumn<T = any> {
244
244
  compare?: (a: any, b: any, rowA: T, rowB: T) => number;
245
245
  /** A returned string is wrapped in a truncating `TextItem`. */
246
246
  render?: (value: any, row: T, rowIndex: number, ctx: CubeTableCellContext<T>) => ReactNode;
247
+ /**
248
+ * Tasty styles for this column's body cells: tokens (`#surface-text-soft-2`),
249
+ * units, presets, recipes and state maps all work, and a state key asks about
250
+ * the cell itself (`@own(pinned=bottom)`). They win over the table's own cell
251
+ * paint, its column tint and the table-level `cellStyles`.
252
+ *
253
+ * The function form runs per cell, so it can vary with `ctx` (the row, its
254
+ * section, its selection). Cells whose styles are equal share one class, so a
255
+ * function returning a few distinct objects costs a few classes, not one per
256
+ * cell.
257
+ */
247
258
  cellStyles?: Styles | ((ctx: CubeTableCellContext<T>) => Styles | undefined);
248
259
  cellProps?: (ctx: CubeTableCellContext<T>) => Record<string, any> | undefined;
249
260
  /**
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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":["Key","Styles","ReactNode","CubeItemProps","CubeTableSortDirection","CubeTableRowSize","CubeTableAlign","CubeTableRowSection","selectionRowKey","section","rowKey","CubeTableCellRange","fromRowKey","toRowKey","fromColumnKey","toColumnKey","CubeTableTreeRowState","level","parentKey","hasChildren","isExpanded","CubeTableRowExpandInfo","row","T","expanded","CubeTableLayoutProps","isAutoHeight","CubeTableTreeProps","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","keys","info","CubeTableSort","columnKey","direction","CubeTableCellContext","rowIndex","columnIndex","isSelected","isRowFocused","isDropTarget","tree","CubeTableRowContext","isFocused","CubeTableHeaderContext","sort","isSortable","isResizing","width","CubeTableColumnGroupHeader","key","title","CubeTableColumnHeader","icon","rightIcon","prefix","suffix","description","descriptionPlacement","tooltip","actions","autoHideActions","menu","menuTriggerProps","Record","menuProps","onMenuAction","action","theme","render","ctx","align","styles","CubeTableColumnTheme","CubeTableColumnColor","hue","saturation","fill","fillBand","text","CubeTableColumnColorScope","CubeTableColumn","header","isRowHeader","flex","minWidth","maxWidth","isResizable","isReorderable","pin","isHidden","getValue","format","value","compare","a","b","rowA","rowB","cellStyles","cellProps","color","colorScope","disallowSortRemoval","isSearchable","isCopyable","autoHeight","meta","CubeResolvedColumn","Omit","index","ariaColIndex","pinOffset","isPinEdge","isStructural","CubeTableColumnLayout","columns","pinnedStartWidth","pinnedEndWidth","totalWidth","isOverflowing","CubeTableLoadingIndicator","CubeTableSelectionMode","CubeTableSelectAllMode"],"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,SAAgBQ,gBACdC,SACAC,QACK;AACL,QAAOD,YAAY,SAASC,SAAS,GAAGD,QAAO,GAAIC"}
1
+ {"version":3,"file":"types.js","names":["Key","Styles","ReactNode","CubeItemProps","CubeTableSortDirection","CubeTableRowSize","CubeTableAlign","CubeTableRowSection","selectionRowKey","section","rowKey","CubeTableCellRange","fromRowKey","toRowKey","fromColumnKey","toColumnKey","CubeTableTreeRowState","level","parentKey","hasChildren","isExpanded","CubeTableRowExpandInfo","row","T","expanded","CubeTableLayoutProps","isAutoHeight","CubeTableTreeProps","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","keys","info","CubeTableSort","columnKey","direction","CubeTableCellContext","rowIndex","columnIndex","isSelected","isRowFocused","isDropTarget","tree","CubeTableRowContext","isFocused","CubeTableHeaderContext","sort","isSortable","isResizing","width","CubeTableColumnGroupHeader","key","title","CubeTableColumnHeader","icon","rightIcon","prefix","suffix","description","descriptionPlacement","tooltip","actions","autoHideActions","menu","menuTriggerProps","Record","menuProps","onMenuAction","action","theme","render","ctx","align","styles","CubeTableColumnTheme","CubeTableColumnColor","hue","saturation","fill","fillBand","text","CubeTableColumnColorScope","CubeTableColumn","header","isRowHeader","flex","minWidth","maxWidth","isResizable","isReorderable","pin","isHidden","getValue","format","value","compare","a","b","rowA","rowB","cellStyles","cellProps","color","colorScope","disallowSortRemoval","isSearchable","isCopyable","autoHeight","meta","CubeResolvedColumn","Omit","index","ariaColIndex","pinOffset","isPinEdge","isStructural","CubeTableColumnLayout","columns","pinnedStartWidth","pinnedEndWidth","totalWidth","isOverflowing","CubeTableLoadingIndicator","CubeTableSelectionMode","CubeTableSelectAllMode"],"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 /**\n * Tasty styles for this column's body cells: tokens (`#surface-text-soft-2`),\n * units, presets, recipes and state maps all work, and a state key asks about\n * the cell itself (`@own(pinned=bottom)`). They win over the table's own cell\n * paint, its column tint and the table-level `cellStyles`.\n *\n * The function form runs per cell, so it can vary with `ctx` (the row, its\n * section, its selection). Cells whose styles are equal share one class, so a\n * function returning a few distinct objects costs a few classes, not one per\n * cell.\n */\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,SAAgBQ,gBACdC,SACAC,QACK;AACL,QAAOD,YAAY,SAASC,SAAS,GAAGD,QAAO,GAAIC"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { useLayoutEffect, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { useLayoutEffect, useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { useLayoutEffect, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
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.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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 { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { sortRows } from "./use-table-sort.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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 { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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 { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { parseColor, toHex } from "../color/color.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.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";
@@ -1,9 +1,9 @@
1
1
 
2
- import { FieldBaseProps } from "../../../shared/form.js";
2
+ import { FieldBaseProps, TextFieldKeyboardProps } from "../../../shared/form.js";
3
3
  import "../../../shared/index.js";
4
4
  import { _CollectionItem } from "../../CollectionItem.js";
5
5
  import { BasePropsWithoutChildren, BaseStyleProps, ColorStyleProps, OuterStyleProps, Styles } from "@tenphi/tasty";
6
- import React, { ForwardedRef, ReactElement, ReactNode, RefObject } from "react";
6
+ import { ForwardedRef, ReactElement, ReactNode, RefObject } from "react";
7
7
  import { Section } from "react-stately";
8
8
  import { FocusableRef, Key as Key$1 } from "@react-types/shared";
9
9
 
@@ -33,8 +33,13 @@ interface CubeComboBoxProps<T> extends BasePropsWithoutChildren, BaseStyleProps,
33
33
  onFocus?: () => void;
34
34
  /** Callback fired when focus leaves the component entirely. Does not receive event object. */
35
35
  onBlur?: () => void;
36
- /** Callback fired when a key is pressed on the input */
37
- onKeyDown?: (e: React.KeyboardEvent<HTMLInputElement>) => void;
36
+ /**
37
+ * Callback fired when a key is pressed on the input, before the built-in
38
+ * key handling. Receives React Aria's keyboard event: `e.preventDefault()`
39
+ * skips the built-in handling for the key, and propagation stops at the
40
+ * input unless the handler calls `e.continuePropagation()`.
41
+ */
42
+ onKeyDown?: TextFieldKeyboardProps['onKeyDown'];
38
43
  /** Popover trigger behavior: 'focus', 'input', or 'manual'. Defaults to 'input' */
39
44
  popoverTrigger?: PopoverTriggerAction;
40
45
  /** Items for the listbox (alternative to children) */
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.187.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.188.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
@@ -147,6 +147,7 @@ function useComboBoxKeyboard(t0) {
147
147
  if ($[0] !== allowsCustomValue || $[1] !== effectiveInputValue || $[2] !== hasResults || $[3] !== inputRef || $[4] !== isClearable || $[5] !== isPopoverOpen || $[6] !== listStateRef || $[7] !== onClearValue || $[8] !== onClosePopover || $[9] !== onKeyDown || $[10] !== onOpenPopover || $[11] !== onSelectionChange || $[12] !== onVirtualFocus || $[13] !== setIsFilterActive) {
148
148
  t1 = { onKeyDown: (e) => {
149
149
  onKeyDown?.(e);
150
+ if (e.isDefaultPrevented()) return;
150
151
  if (e.key === "ArrowDown" || e.key === "ArrowUp") {
151
152
  e.preventDefault();
152
153
  if (!isPopoverOpen) {