@cube-dev/ui-kit 0.190.2 → 0.190.3

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 (594) hide show
  1. package/dist/CHANGELOG.md +6 -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.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -1
  37. package/dist/components/actions/actions-run.js +1 -1
  38. package/dist/components/actions/index.js +1 -1
  39. package/dist/components/actions/use-action.js +1 -1
  40. package/dist/components/actions/use-anchored-menu.js +1 -1
  41. package/dist/components/actions/use-context-menu.js +1 -1
  42. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  43. package/dist/components/content/Alert/Alert.js +1 -1
  44. package/dist/components/content/Alert/use-alert.js +1 -1
  45. package/dist/components/content/Avatar/Avatar.js +1 -1
  46. package/dist/components/content/Badge/Badge.js +1 -1
  47. package/dist/components/content/Card/Card.js +1 -1
  48. package/dist/components/content/Content.js +1 -1
  49. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  50. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  51. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  52. package/dist/components/content/Divider.js +1 -1
  53. package/dist/components/content/Footer.js +1 -1
  54. package/dist/components/content/Header.js +1 -1
  55. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  56. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  57. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  58. package/dist/components/content/Item/Item.js +391 -338
  59. package/dist/components/content/Item/Item.js.map +1 -1
  60. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  61. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  62. package/dist/components/content/Layout/GridLayout.js +1 -1
  63. package/dist/components/content/Layout/Layout.js +1 -1
  64. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  65. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  66. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  67. package/dist/components/content/Layout/LayoutContent.js +1 -1
  68. package/dist/components/content/Layout/LayoutContext.js +1 -1
  69. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  70. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  71. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  72. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  73. package/dist/components/content/Layout/LayoutPane.js +1 -1
  74. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  75. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  76. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  77. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  78. package/dist/components/content/Layout/index.js +1 -1
  79. package/dist/components/content/Layout/utils.js +1 -1
  80. package/dist/components/content/Paragraph.js +1 -1
  81. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  82. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  83. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  84. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  85. package/dist/components/content/Result/Result.js +1 -1
  86. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  87. package/dist/components/content/Tag/Tag.js +1 -1
  88. package/dist/components/content/Text.js +1 -1
  89. package/dist/components/content/TextItem/TextItem.js +1 -1
  90. package/dist/components/content/Title.js +1 -1
  91. package/dist/components/content/Tree/Tree.js +1 -1
  92. package/dist/components/content/Tree/TreeNode.js +1 -1
  93. package/dist/components/content/Tree/styled.js +1 -1
  94. package/dist/components/content/Tree/tree-index.js +1 -1
  95. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  96. package/dist/components/content/Tree/use-load-data.js +1 -1
  97. package/dist/components/content/highlightText.js +1 -1
  98. package/dist/components/content/use-auto-tooltip.js +1 -1
  99. package/dist/components/data/DataTable/DataTable.js +1 -1
  100. package/dist/components/data/ItemTable/ItemTable.js +439 -352
  101. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  102. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  103. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  105. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  106. package/dist/components/data/ItemTable/use-item-table-column-widths.js +97 -0
  107. package/dist/components/data/ItemTable/use-item-table-column-widths.js.map +1 -0
  108. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +144 -0
  109. package/dist/components/data/ItemTable/use-item-table-drag-drop.js.map +1 -0
  110. package/dist/components/data/ItemTable/use-item-table-pagination.js +143 -0
  111. package/dist/components/data/ItemTable/use-item-table-pagination.js.map +1 -0
  112. package/dist/components/data/ItemTable/use-item-table-selection.js +141 -0
  113. package/dist/components/data/ItemTable/use-item-table-selection.js.map +1 -0
  114. package/dist/components/data/ItemTable/use-item-table-sort.js +135 -0
  115. package/dist/components/data/ItemTable/use-item-table-sort.js.map +1 -0
  116. package/dist/components/data/ItemTable/use-item-table-tree-model.js +107 -0
  117. package/dist/components/data/ItemTable/use-item-table-tree-model.js.map +1 -0
  118. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  119. package/dist/components/data/TableBase/RowCollection.js +1 -1
  120. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  121. package/dist/components/data/TableBase/TableRow.js +1 -1
  122. package/dist/components/data/TableBase/TableView.js +96 -297
  123. package/dist/components/data/TableBase/TableView.js.map +1 -1
  124. package/dist/components/data/TableBase/TreeGridTable.js +142 -0
  125. package/dist/components/data/TableBase/TreeGridTable.js.map +1 -0
  126. package/dist/components/data/TableBase/column-header.js +94 -0
  127. package/dist/components/data/TableBase/column-header.js.map +1 -0
  128. package/dist/components/data/TableBase/column-menu.js +1 -1
  129. package/dist/components/data/TableBase/column-styles.js +1 -1
  130. package/dist/components/data/TableBase/column-tint.js +1 -1
  131. package/dist/components/data/TableBase/row-menu.js +1 -1
  132. package/dist/components/data/TableBase/styled.js +3 -2
  133. package/dist/components/data/TableBase/styled.js.map +1 -1
  134. package/dist/components/data/TableBase/table-tree.js +1 -1
  135. package/dist/components/data/TableBase/types.js +1 -1
  136. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  137. package/dist/components/data/TableBase/use-column-menu.js +166 -0
  138. package/dist/components/data/TableBase/use-column-menu.js.map +1 -0
  139. package/dist/components/data/TableBase/use-column-order.js +1 -1
  140. package/dist/components/data/TableBase/use-container-width.js +1 -1
  141. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  142. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  143. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  144. package/dist/components/data/TableBase/use-table-search.js +1 -1
  145. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  146. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  147. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  148. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  149. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  150. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  151. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  152. package/dist/components/fields/Checkbox/context.js +1 -1
  153. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  154. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  155. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  156. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  157. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  158. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  159. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  160. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  161. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  162. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  163. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  164. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  165. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  166. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  167. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  168. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  169. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  170. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  171. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  172. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  173. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  174. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  175. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  176. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  177. package/dist/components/fields/DatePicker/period.js +1 -1
  178. package/dist/components/fields/DatePicker/props.js +1 -1
  179. package/dist/components/fields/DatePicker/utils.js +1 -1
  180. package/dist/components/fields/FileInput/FileInput.js +1 -1
  181. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  182. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  183. package/dist/components/fields/Input/Input.js +1 -1
  184. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  185. package/dist/components/fields/ListBox/ListBox.js +1 -1
  186. package/dist/components/fields/ListBox/optionId.js +1 -1
  187. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  188. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  189. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  190. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  191. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  192. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  193. package/dist/components/fields/Picker/Picker.js +1 -1
  194. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  195. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  196. package/dist/components/fields/RadioGroup/context.js +1 -1
  197. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  198. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  199. package/dist/components/fields/Select/Select.js +1 -1
  200. package/dist/components/fields/Slider/Gradation.js +1 -1
  201. package/dist/components/fields/Slider/HueSlider.js +1 -1
  202. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  203. package/dist/components/fields/Slider/Slider.js +1 -1
  204. package/dist/components/fields/Slider/SliderBase.js +1 -1
  205. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  206. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  207. package/dist/components/fields/Slider/elements.js +1 -1
  208. package/dist/components/fields/Slider/index.js +1 -1
  209. package/dist/components/fields/Switch/Switch.js +1 -1
  210. package/dist/components/fields/TagInput/TagInput.js +768 -723
  211. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  212. package/dist/components/fields/TagInput/TagList.js +1 -1
  213. package/dist/components/fields/TagInput/useActiveOption.js +122 -0
  214. package/dist/components/fields/TagInput/useActiveOption.js.map +1 -0
  215. package/dist/components/fields/TagInput/useTagError.js +95 -0
  216. package/dist/components/fields/TagInput/useTagError.js.map +1 -0
  217. package/dist/components/fields/TextArea/TextArea.js +1 -1
  218. package/dist/components/fields/TextInput/TextInput.js +1 -1
  219. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  220. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  221. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  222. package/dist/components/fields/TriggerActions.js +1 -1
  223. package/dist/components/fields/color/ColorPanel.js +1 -1
  224. package/dist/components/fields/color/channels.js +1 -1
  225. package/dist/components/fields/color/color.js +1 -1
  226. package/dist/components/fields/color/context.js +1 -1
  227. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  228. package/dist/components/form/Form/Field.js +1 -1
  229. package/dist/components/form/Form/Form.js +1 -1
  230. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  231. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  232. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  233. package/dist/components/form/Form/SubmitError.js +1 -1
  234. package/dist/components/form/Form/backend.js +1 -1
  235. package/dist/components/form/Form/index.js +1 -1
  236. package/dist/components/form/Form/modern/actions.js +1 -1
  237. package/dist/components/form/Form/modern/context.js +1 -1
  238. package/dist/components/form/Form/modern/controller.js +1 -1
  239. package/dist/components/form/Form/modern/field-binding.js +1 -1
  240. package/dist/components/form/Form/modern/field.js +1 -1
  241. package/dist/components/form/Form/modern/react.js +1 -1
  242. package/dist/components/form/Form/modern/store.js +1 -1
  243. package/dist/components/form/Form/modern/validation.js +1 -1
  244. package/dist/components/form/Form/modern/values.js +1 -1
  245. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  246. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  247. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  248. package/dist/components/form/Form/use-field/use-field.js +1 -1
  249. package/dist/components/form/Form/use-form.js +1 -1
  250. package/dist/components/form/Form/validation.js +1 -1
  251. package/dist/components/form/Label.js +1 -1
  252. package/dist/components/form/legacy-tooltip.js +1 -1
  253. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  254. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  255. package/dist/components/form/validation/use-validation-props.js +1 -1
  256. package/dist/components/form/wrapper.js +1 -1
  257. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  258. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  259. package/dist/components/layout/Board/Board.js +1 -1
  260. package/dist/components/layout/Board/BoardProvider.js +1 -1
  261. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  262. package/dist/components/layout/Board/Widget.js +1 -1
  263. package/dist/components/layout/Board/WidgetHost.js +1 -1
  264. package/dist/components/layout/Board/board-context.js +1 -1
  265. package/dist/components/layout/Board/board-store.js +1 -1
  266. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  267. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  268. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  269. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  270. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  271. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  272. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  273. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  274. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  275. package/dist/components/layout/Board/index.js +1 -1
  276. package/dist/components/layout/Board/responsive-utils.js +1 -1
  277. package/dist/components/layout/Board/use-board-layout.js +1 -1
  278. package/dist/components/layout/Board/use-board-registry.js +1 -1
  279. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  280. package/dist/components/layout/Board/use-board-selection.js +1 -1
  281. package/dist/components/layout/Flex.js +1 -1
  282. package/dist/components/layout/Flow.js +1 -1
  283. package/dist/components/layout/Grid.js +1 -1
  284. package/dist/components/layout/Panel.js +1 -1
  285. package/dist/components/layout/Prefix.js +1 -1
  286. package/dist/components/layout/ResizablePanel.js +1 -1
  287. package/dist/components/layout/Space.js +1 -1
  288. package/dist/components/layout/Suffix.js +1 -1
  289. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  290. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  291. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  292. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  293. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  294. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  295. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  296. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  297. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  298. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  299. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  300. package/dist/components/navigation/Tabs/styled.js +1 -1
  301. package/dist/components/navigation/Tabs/types.js +1 -1
  302. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  303. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  304. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  305. package/dist/components/other/Calendar/Calendar.js +1 -1
  306. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  307. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  308. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  309. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  310. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  311. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  312. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  313. package/dist/components/other/Calendar/styled.js +1 -1
  314. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  315. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  316. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  317. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  318. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  319. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  320. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  321. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  322. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  323. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  324. package/dist/components/overlays/Dialog/context.js +1 -1
  325. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  326. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  327. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  328. package/dist/components/overlays/Modal/Modal.js +1 -1
  329. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  330. package/dist/components/overlays/Modal/Overlay.js +1 -1
  331. package/dist/components/overlays/Modal/Popover.js +1 -1
  332. package/dist/components/overlays/Modal/Tray.js +1 -1
  333. package/dist/components/overlays/Modal/Underlay.js +1 -1
  334. package/dist/components/overlays/Notifications/Notification.js +1 -1
  335. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  336. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  337. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  338. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  339. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  340. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  341. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  342. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  343. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  344. package/dist/components/overlays/Notifications/index.js +1 -1
  345. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  346. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  347. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  348. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  349. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  350. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  351. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  352. package/dist/components/overlays/Toast/index.js +1 -1
  353. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  354. package/dist/components/overlays/Toast/useToast.js +1 -1
  355. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  356. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  357. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  358. package/dist/components/overlays/Tooltip/context.js +1 -1
  359. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  360. package/dist/components/portal/Portal.js +1 -1
  361. package/dist/components/portal/PortalProvider.js +1 -1
  362. package/dist/components/portal/usePortal.js +1 -1
  363. package/dist/components/shared/DraggableCollection.js +1 -1
  364. package/dist/components/shared/InvalidIcon.js +1 -1
  365. package/dist/components/shared/ValidIcon.js +1 -1
  366. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  367. package/dist/components/status/Spin/Cube.js +1 -1
  368. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  369. package/dist/components/status/Spin/Spin.js +1 -1
  370. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  371. package/dist/data/item-themes.js +1 -1
  372. package/dist/data/themes.js +1 -1
  373. package/dist/eslint-plugin/defaults.generated.js +1 -1
  374. package/dist/eslint-plugin/index.js +1 -1
  375. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  376. package/dist/i18n/I18nProvider.js +1 -1
  377. package/dist/i18n/createFormatter.js +1 -1
  378. package/dist/i18n/index.js +1 -1
  379. package/dist/i18n/instance.js +1 -1
  380. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  381. package/dist/i18n/locales/en-US/uikit.js +1 -1
  382. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  383. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  384. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  385. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  386. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  387. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  388. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  389. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  390. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  391. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  392. package/dist/i18n/locales.js +1 -1
  393. package/dist/i18n/useFormatter.js +1 -1
  394. package/dist/i18n/useI18n.js +1 -1
  395. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  396. package/dist/icons/AdjustmentsIcon.js +1 -1
  397. package/dist/icons/AiIcon.js +1 -1
  398. package/dist/icons/AreaChartIcon.js +1 -1
  399. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  400. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  401. package/dist/icons/BackwardIcon.js +1 -1
  402. package/dist/icons/BarChartIcon.js +1 -1
  403. package/dist/icons/BellFilledIcon.js +1 -1
  404. package/dist/icons/BellIcon.js +1 -1
  405. package/dist/icons/BooleanIcon.js +1 -1
  406. package/dist/icons/CalendarEditIcon.js +1 -1
  407. package/dist/icons/CalendarIcon.js +1 -1
  408. package/dist/icons/CaretDownIcon.js +1 -1
  409. package/dist/icons/CaretUpIcon.js +1 -1
  410. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  411. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  412. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  413. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  414. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  415. package/dist/icons/ChartBarLineIcon.js +1 -1
  416. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  417. package/dist/icons/ChartBarStackedIcon.js +1 -1
  418. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  419. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  420. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  421. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  422. package/dist/icons/ChartBubbleIcon.js +1 -1
  423. package/dist/icons/ChartDonut2Icon.js +1 -1
  424. package/dist/icons/ChartFunnelIcon.js +1 -1
  425. package/dist/icons/ChartHeatmapIcon.js +1 -1
  426. package/dist/icons/ChartKPIIcon.js +1 -1
  427. package/dist/icons/ChartPie2Icon.js +1 -1
  428. package/dist/icons/ChartScatterIcon.js +1 -1
  429. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  430. package/dist/icons/CheckCircleIcon.js +1 -1
  431. package/dist/icons/CheckIcon.js +1 -1
  432. package/dist/icons/CircleFilledIcon.js +1 -1
  433. package/dist/icons/ClearIcon.js +1 -1
  434. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  435. package/dist/icons/CloseCircleIcon.js +1 -1
  436. package/dist/icons/CloseIcon.js +1 -1
  437. package/dist/icons/CodeIcon.js +1 -1
  438. package/dist/icons/ColumnTotalIcon.js +1 -1
  439. package/dist/icons/CopyIcon.js +1 -1
  440. package/dist/icons/CountIcon.js +1 -1
  441. package/dist/icons/CubeIcon.js +1 -1
  442. package/dist/icons/CubePauseIcon.js +1 -1
  443. package/dist/icons/CubePlayIcon.js +1 -1
  444. package/dist/icons/CurrencyDollarIcon.js +1 -1
  445. package/dist/icons/DangerIcon.js +1 -1
  446. package/dist/icons/DashboardIcon.js +1 -1
  447. package/dist/icons/DatabaseIcon.js +1 -1
  448. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  449. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  450. package/dist/icons/DirectionIcon.js +1 -1
  451. package/dist/icons/DonutIcon.js +1 -1
  452. package/dist/icons/DownIcon.js +1 -1
  453. package/dist/icons/EditIcon.js +1 -1
  454. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  455. package/dist/icons/ExclamationCircleIcon.js +1 -1
  456. package/dist/icons/ExclamationIcon.js +1 -1
  457. package/dist/icons/EyeIcon.js +1 -1
  458. package/dist/icons/EyeInvisibleIcon.js +1 -1
  459. package/dist/icons/FilterIcon.js +1 -1
  460. package/dist/icons/FolderFilledIcon.js +1 -1
  461. package/dist/icons/FolderIcon.js +1 -1
  462. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  463. package/dist/icons/FolderOpenIcon.js +1 -1
  464. package/dist/icons/ForwardIcon.js +1 -1
  465. package/dist/icons/GripVerticalIcon.js +1 -1
  466. package/dist/icons/HierarchyIcon.js +1 -1
  467. package/dist/icons/HierarchyOpenIcon.js +1 -1
  468. package/dist/icons/Icon.js +1 -1
  469. package/dist/icons/InfoCircleIcon.js +1 -1
  470. package/dist/icons/InfoIcon.js +1 -1
  471. package/dist/icons/KeyIcon.js +1 -1
  472. package/dist/icons/LeftIcon.js +1 -1
  473. package/dist/icons/LineChartIcon.js +1 -1
  474. package/dist/icons/LoadingIcon.js +1 -1
  475. package/dist/icons/LockFilledIcon.js +1 -1
  476. package/dist/icons/LockIcon.js +1 -1
  477. package/dist/icons/MoreIcon.js +1 -1
  478. package/dist/icons/NotAllowedIcon.js +1 -1
  479. package/dist/icons/Number123Icon.js +1 -1
  480. package/dist/icons/NumberIcon.js +1 -1
  481. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  482. package/dist/icons/PauseCircleIcon.js +1 -1
  483. package/dist/icons/PauseIcon.js +1 -1
  484. package/dist/icons/PercentageIcon.js +1 -1
  485. package/dist/icons/PieChartIcon.js +1 -1
  486. package/dist/icons/PipetteIcon.js +1 -1
  487. package/dist/icons/PlayCircleIcon.js +1 -1
  488. package/dist/icons/PlayIcon.js +1 -1
  489. package/dist/icons/PlusIcon.js +1 -1
  490. package/dist/icons/ProgressBarIcon.js +1 -1
  491. package/dist/icons/ReloadIcon.js +1 -1
  492. package/dist/icons/ReportIcon.js +1 -1
  493. package/dist/icons/ReturnIcon.js +1 -1
  494. package/dist/icons/RightIcon.js +1 -1
  495. package/dist/icons/RowTotalsIcon.js +1 -1
  496. package/dist/icons/SchemeIcon.js +1 -1
  497. package/dist/icons/SearchIcon.js +1 -1
  498. package/dist/icons/SemanticQueryIcon.js +1 -1
  499. package/dist/icons/SettingsIcon.js +1 -1
  500. package/dist/icons/ShieldFilledIcon.js +1 -1
  501. package/dist/icons/ShieldIcon.js +1 -1
  502. package/dist/icons/SlashIcon.js +1 -1
  503. package/dist/icons/SparklesIcon.js +1 -1
  504. package/dist/icons/SqlIcon.js +1 -1
  505. package/dist/icons/StatsIcon.js +1 -1
  506. package/dist/icons/StopIcon.js +1 -1
  507. package/dist/icons/StringIcon.js +1 -1
  508. package/dist/icons/SubtotalsIcon.js +1 -1
  509. package/dist/icons/SwitchIcon.js +1 -1
  510. package/dist/icons/TableIcon.js +1 -1
  511. package/dist/icons/ThumbsDownIcon.js +1 -1
  512. package/dist/icons/ThumbsUpIcon.js +1 -1
  513. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  514. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  515. package/dist/icons/ThunderboltIcon.js +1 -1
  516. package/dist/icons/TimeIcon.js +1 -1
  517. package/dist/icons/TrashIcon.js +1 -1
  518. package/dist/icons/UnlockIcon.js +1 -1
  519. package/dist/icons/UpIcon.js +1 -1
  520. package/dist/icons/UserGroupIcon.js +1 -1
  521. package/dist/icons/UserIcon.js +1 -1
  522. package/dist/icons/UserLockIcon.js +1 -1
  523. package/dist/icons/ViewIcon.js +1 -1
  524. package/dist/icons/WarningFilledIcon.js +1 -1
  525. package/dist/icons/WarningIcon.js +1 -1
  526. package/dist/icons/wrap-icon.js +1 -1
  527. package/dist/index.js +1 -1
  528. package/dist/probe/canonicalize.js +1 -1
  529. package/dist/probe/css.js +1 -1
  530. package/dist/probe/index.js +1 -1
  531. package/dist/provider.js +1 -1
  532. package/dist/providers/TrackingProvider.js +1 -1
  533. package/dist/providers/navigationAdapter.default.js +1 -1
  534. package/dist/tokens/all-tokens.js +1 -1
  535. package/dist/tokens/base.js +1 -1
  536. package/dist/tokens/color-seed.js +1 -1
  537. package/dist/tokens/color-theme.js +1 -1
  538. package/dist/tokens/colors.js +1 -1
  539. package/dist/tokens/layout.js +1 -1
  540. package/dist/tokens/lazy-styles.js +1 -1
  541. package/dist/tokens/legacy-color.js +1 -1
  542. package/dist/tokens/palette-config.js +1 -1
  543. package/dist/tokens/palette.js +1 -1
  544. package/dist/tokens/resolve.js +1 -1
  545. package/dist/tokens/shadows.js +1 -1
  546. package/dist/tokens/sizes.js +1 -1
  547. package/dist/tokens/spacing.js +1 -1
  548. package/dist/tokens/typography.js +1 -1
  549. package/dist/utils/ResizeSensor.js +1 -1
  550. package/dist/utils/colors.js +1 -1
  551. package/dist/utils/dotize.js +1 -1
  552. package/dist/utils/is-dev-env.js +1 -1
  553. package/dist/utils/modules.js +1 -1
  554. package/dist/utils/promise.js +1 -1
  555. package/dist/utils/raf.js +1 -1
  556. package/dist/utils/random.js +1 -1
  557. package/dist/utils/range.js +1 -1
  558. package/dist/utils/react/RenderCache.js +1 -1
  559. package/dist/utils/react/Slots.js +1 -1
  560. package/dist/utils/react/chain.js +1 -1
  561. package/dist/utils/react/disabledProps.js +1 -1
  562. package/dist/utils/react/escapePropagation.js +1 -1
  563. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  564. package/dist/utils/react/index.js +1 -1
  565. package/dist/utils/react/interactions.js +1 -1
  566. package/dist/utils/react/isTextOnly.js +1 -1
  567. package/dist/utils/react/mapProps.js +1 -1
  568. package/dist/utils/react/mergeProps.js +1 -1
  569. package/dist/utils/react/nullableValue.js +1 -1
  570. package/dist/utils/react/programmaticFocus.js +1 -1
  571. package/dist/utils/react/resolveIcon.js +1 -1
  572. package/dist/utils/react/sharedStore.js +1 -1
  573. package/dist/utils/react/useBufferedValue.js +1 -1
  574. package/dist/utils/react/useCombinedRefs.js +1 -1
  575. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  576. package/dist/utils/react/useEventBus.js +1 -1
  577. package/dist/utils/react/useId.js +1 -1
  578. package/dist/utils/react/useIsDarwin.js +1 -1
  579. package/dist/utils/react/useKeySymbols.js +1 -1
  580. package/dist/utils/react/useLayoutEffect.js +1 -1
  581. package/dist/utils/react/useLocalStorage.js +1 -1
  582. package/dist/utils/react/useMergeStyles.js +1 -1
  583. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  584. package/dist/utils/react/usePopoverSync.js +1 -1
  585. package/dist/utils/react/useQaProps.js +1 -1
  586. package/dist/utils/react/useScheme.js +1 -1
  587. package/dist/utils/react/useViewportSize.js +1 -1
  588. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  589. package/dist/utils/selection.js +1 -1
  590. package/dist/utils/styles.js +1 -1
  591. package/dist/utils/tree.js +1 -1
  592. package/dist/utils/warnings.js +1 -1
  593. package/dist/version.js +2 -2
  594. package/package.json +3 -1
@@ -1,5 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.190.2 | Cube Dev Team */
2
- import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.3 | Cube Dev Team */
3
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
3
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
5
4
  import { TextItem } from "../../content/TextItem/TextItem.js";
@@ -18,28 +17,27 @@ import { MoreIcon } from "../../../icons/MoreIcon.js";
18
17
  import { __Checkbox } from "../../fields/Checkbox/Checkbox.js";
19
18
  import { Placeholder } from "../../content/Placeholder/Placeholder.js";
20
19
  import { Skeleton } from "../../content/Skeleton/Skeleton.js";
21
- import { ArrowNarrowDownIcon } from "../../../icons/ArrowNarrowDownIcon.js";
22
- import { ArrowNarrowUpIcon } from "../../../icons/ArrowNarrowUpIcon.js";
23
- import { ROW_MENU_COLUMN_KEY, isMenuEmpty, normalizeMenuAction } from "./row-menu.js";
24
- import { COLUMN_MENU_SORT_DIRECTION, isColumnMenuSortKey, processColumnMenuItems } from "./column-menu.js";
20
+ import { TableElement, TableHeaderItem, TableTreeToggle, TableTreeTogglePlaceholder } from "./styled.js";
21
+ import { renderColumnHeaderContent, resolveColumnSort } from "./column-header.js";
25
22
  import { columnCellClassName } from "./column-styles.js";
26
23
  import { buildColumnTints, tintSlot } from "./column-tint.js";
27
24
  import { ColumnResizer } from "./ColumnResizer.js";
28
- import { TableElement, TableHeaderItem, TableTreeToggle, TableTreeTogglePlaceholder } from "./styled.js";
25
+ import { ROW_MENU_COLUMN_KEY, isMenuEmpty, normalizeMenuAction } from "./row-menu.js";
29
26
  import { TableHeaderCell } from "./TableHeaderCell.js";
30
27
  import { TableRow, TableRowDropIndicator } from "./TableRow.js";
28
+ import { TreeGridTable } from "./TreeGridTable.js";
31
29
  import { selectionRowKey } from "./types.js";
32
30
  import { toTsv } from "./use-cell-selection.js";
31
+ import { useColumnMenu } from "./use-column-menu.js";
33
32
  import { getDraggableColumnKeys, isColumnDraggable } from "./use-column-order.js";
34
33
  import { useRowMoveAnimation } from "./use-row-move-animation.js";
35
34
  import { useScrollability } from "./use-scrollability.js";
36
35
  import { getColumnText, getColumnValue } from "./use-table-columns.js";
37
36
  import { ROW_NUMBER_COLUMN_KEY, SELECTION_COLUMN_KEY } from "./use-table-selection.js";
38
- import { c } from "react-compiler-runtime";
39
37
  import { Fragment, useCallback, useEffect, useMemo, useRef, useState } from "react";
40
38
  import clsx from "clsx";
41
39
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
42
- import { VisuallyHidden, useTree } from "react-aria";
40
+ import { VisuallyHidden } from "react-aria";
43
41
  import { useVirtualizer } from "@tanstack/react-virtual";
44
42
 
45
43
  //#region src/components/data/TableBase/TableView.tsx
@@ -108,135 +106,34 @@ function pinStyle(column) {
108
106
  if (column.pinOffset == null) return void 0;
109
107
  return { ["--pin-offset"]: `${column.pinOffset}px` };
110
108
  }
109
+ /** What a data cell shows: `column.render`'s output, or the display text. */
110
+ function renderCellContent(column, row, rowIndex, ctx) {
111
+ const value = column.isStructural ? void 0 : getColumnValue(column, row, rowIndex);
112
+ const rendered = column.render ? column.render(value, row, rowIndex, ctx) : column.isStructural ? null : getColumnText(column, row, rowIndex);
113
+ const isText = typeof rendered === "string" || typeof rendered === "number" || typeof rendered === "bigint";
114
+ return isText && !column.autoHeight ? /* @__PURE__ */ jsx(TextItem, { children: String(rendered) }) : isText ? String(rendered) : rendered;
115
+ }
111
116
  /**
112
- * Hook boundary for the native table. Flat tables deliberately avoid this
113
- * component so their DOM and keyboard behaviour remain exactly as before.
117
+ * A tree column's cell content: indented to the row's level, with the expand
118
+ * toggle — or a placeholder holding its place on a leaf — before the value.
114
119
  */
115
- function TreeGridTable(props) {
116
- const $ = c(16);
117
- const { tree, tableProps, style, children } = props;
118
- const ref = useRef(null);
119
- const pendingFocusKey = useRef(null);
120
- const { gridProps } = useTree(tree.ariaProps, tree.state, ref);
121
- let t0;
122
- if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
123
- t0 = () => {
124
- const key = pendingFocusKey.current;
125
- if (key == null) return;
126
- const activeElement = document.activeElement;
127
- if (activeElement && activeElement !== document.body && !ref.current?.contains(activeElement)) {
128
- pendingFocusKey.current = null;
129
- return;
130
- }
131
- const target = Array.from(ref.current?.querySelectorAll("tbody tr[data-element=\"Row\"][data-key]") ?? []).find((element) => element.dataset.key === String(key));
132
- if (target) {
133
- pendingFocusKey.current = null;
134
- target.focus();
135
- }
136
- };
137
- $[0] = t0;
138
- } else t0 = $[0];
139
- useEffect(t0);
140
- let t1;
141
- if ($[1] !== gridProps) {
142
- t1 = (event) => {
143
- const pendingKey = pendingFocusKey.current;
144
- const nextTarget = event.relatedTarget;
145
- if (pendingKey != null && nextTarget instanceof Element) {
146
- if (nextTarget.closest("tbody tr[data-element=\"Row\"][data-key]")?.dataset.key !== String(pendingKey)) pendingFocusKey.current = null;
147
- }
148
- gridProps.onBlurCapture?.(event);
149
- };
150
- $[1] = gridProps;
151
- $[2] = t1;
152
- } else t1 = $[2];
153
- const handleBlurCapture = t1;
154
- let t2;
155
- if ($[3] !== gridProps || $[4] !== tree.entries || $[5] !== tree.state) {
156
- t2 = (event_0) => {
157
- const row = event_0.target.closest("tbody tr[data-element=\"Row\"][data-key]");
158
- if (!row || event_0.target !== row) {
159
- gridProps.onKeyDownCapture?.(event_0);
160
- return;
161
- }
162
- const currentKey = pendingFocusKey.current ?? row.dataset.key;
163
- const index = tree.entries.findIndex((entry) => String(entry.key) === String(currentKey));
164
- const entry_0 = tree.entries[index];
165
- if (!entry_0) return;
166
- const focusEntry = (next) => {
167
- if (!next) return false;
168
- tree.state.selectionManager.setFocusedKey(next.key);
169
- const target_0 = Array.from(ref.current?.querySelectorAll("tbody tr[data-element=\"Row\"][data-key]") ?? []).find((element_0) => element_0.dataset.key === String(next.key));
170
- if (target_0) {
171
- pendingFocusKey.current = null;
172
- target_0.focus();
173
- } else pendingFocusKey.current = next.key;
174
- return true;
175
- };
176
- const hasChildren = entry_0.children.length > 0;
177
- const isExpanded = tree.state.expandedKeys.has(entry_0.key);
178
- let handled = false;
179
- if (event_0.key === "ArrowRight" && hasChildren) if (isExpanded) handled = focusEntry(entry_0.children[0]);
180
- else {
181
- tree.state.toggleKey(entry_0.key);
182
- handled = true;
183
- }
184
- else if (event_0.key === "ArrowLeft") {
185
- if (hasChildren && isExpanded) {
186
- tree.state.toggleKey(entry_0.key);
187
- handled = true;
188
- } else if (entry_0.parentKey != null) handled = focusEntry(tree.entries.find((candidate) => candidate.key === entry_0.parentKey));
189
- } else if (event_0.key === "ArrowDown") handled = focusEntry(tree.entries[index + 1]);
190
- else if (event_0.key === "ArrowUp") handled = focusEntry(tree.entries[index - 1]);
191
- if (handled) {
192
- event_0.preventDefault();
193
- event_0.stopPropagation();
194
- return;
195
- }
196
- if (pendingFocusKey.current != null && [
197
- "ArrowDown",
198
- "ArrowUp",
199
- "ArrowRight",
200
- "ArrowLeft"
201
- ].includes(event_0.key)) {
202
- event_0.preventDefault();
203
- event_0.stopPropagation();
204
- return;
205
- }
206
- gridProps.onKeyDownCapture?.(event_0);
207
- };
208
- $[3] = gridProps;
209
- $[4] = tree.entries;
210
- $[5] = tree.state;
211
- $[6] = t2;
212
- } else t2 = $[6];
213
- const handleKeyDownCapture = t2;
214
- let t3;
215
- if ($[7] !== gridProps || $[8] !== tableProps) {
216
- t3 = mergeProps$1(gridProps, tableProps);
217
- $[7] = gridProps;
218
- $[8] = tableProps;
219
- $[9] = t3;
220
- } else t3 = $[9];
221
- let t4;
222
- if ($[10] !== children || $[11] !== handleBlurCapture || $[12] !== handleKeyDownCapture || $[13] !== style || $[14] !== t3) {
223
- t4 = /* @__PURE__ */ jsx("table", {
224
- ...t3,
225
- ref,
226
- role: "treegrid",
227
- style,
228
- onBlurCapture: handleBlurCapture,
229
- onKeyDownCapture: handleKeyDownCapture,
230
- children
231
- });
232
- $[10] = children;
233
- $[11] = handleBlurCapture;
234
- $[12] = handleKeyDownCapture;
235
- $[13] = style;
236
- $[14] = t3;
237
- $[15] = t4;
238
- } else t4 = $[15];
239
- return t4;
120
+ function renderTreeCellContent(entry, isExpanded, expandButtonProps, content) {
121
+ return /* @__PURE__ */ jsxs("div", {
122
+ "data-element": "TreeContent",
123
+ style: { "--tree-level": String(entry.level) },
124
+ children: [entry.children.length > 0 ? /* @__PURE__ */ jsx(TableTreeToggle, {
125
+ ...expandButtonProps,
126
+ "data-element": "TreeToggle",
127
+ tabIndex: -1,
128
+ children: /* @__PURE__ */ jsx(DirectionIcon, { to: isExpanded ? "bottom" : "right" })
129
+ }) : /* @__PURE__ */ jsx(TableTreeTogglePlaceholder, {
130
+ "data-element": "TreeToggle",
131
+ "aria-hidden": "true"
132
+ }), /* @__PURE__ */ jsx("div", {
133
+ "data-element": "TreeValue",
134
+ children: content
135
+ })]
136
+ });
240
137
  }
241
138
  /**
242
139
  * The one place table DOM exists. Both `ItemTable` and `DataTable` resolve their
@@ -261,16 +158,6 @@ function TableView(props) {
261
158
  const toast = useToast();
262
159
  const [scrollerEl, setScrollerEl] = useState(null);
263
160
  const scrollerRef = useRef(null);
264
- /**
265
- * The column whose menu is open, held for the whole table rather than per
266
- * header cell.
267
- *
268
- * `renderHeaderCell` is a closure inside this component, not a component of
269
- * its own, so it cannot hold state — and only one column menu can be open at a
270
- * time anyway. Controlled rather than letting `MenuTrigger` own it: Shift+F10
271
- * has to be able to open it from the `<th>`, and the trigger is not a tab stop.
272
- */
273
- const [openMenuColumnKey, setOpenMenuColumnKey] = useState(null);
274
161
  const localBodyRef = useRef(null);
275
162
  const handleBodyRef = useCallback((element) => {
276
163
  localBodyRef.current = element;
@@ -593,70 +480,17 @@ function TableView(props) {
593
480
  "aria-colindex": column.ariaColIndex,
594
481
  style: pinStyle(column)
595
482
  }, column.key);
483
+ return renderColumnHeaderCell(column, rowSpan);
484
+ }
485
+ /** A data column's header cell: its sort, menu, resize handle and drag. */
486
+ function renderColumnHeaderCell(column, rowSpan) {
596
487
  const header = column.header;
597
- const activeSorts = sorts ?? (sort ? [sort] : []);
598
- const sortIndex = activeSorts.findIndex((entry) => entry.columnKey === column.key);
599
- const activeSort = sortIndex === -1 ? null : activeSorts[sortIndex];
600
- const isSorted = activeSort != null;
601
- const sortRank = activeSorts.length > 1 ? sortIndex + 1 : null;
602
- const isSortable = sortMode !== "off" && !column.isStructural && column.isSortable === true;
488
+ const sortState = resolveColumnSort(column, sortMode, sorts, sort);
489
+ const { activeSort, isSorted, isSortable } = sortState;
603
490
  const canResize = !column.isStructural && (column.isResizable ?? isResizable) && onColumnResize != null && onColumnResizeEnd != null;
604
- const ctx = {
605
- columnKey: column.key,
606
- columnIndex: column.index,
607
- sort: activeSort?.direction ?? null,
608
- isSortable,
609
- isResizing: false,
610
- width: column.width
611
- };
612
- const sortIndicator = isSortable ? /* @__PURE__ */ jsx("div", {
613
- "data-element": "SortIndicator",
614
- "data-rank": sortRank ?? void 0,
615
- "data-sorted": isSorted ? "" : void 0,
616
- "data-dir": activeSort?.direction,
617
- "aria-hidden": "true",
618
- children: activeSort?.direction === "desc" ? /* @__PURE__ */ jsx(ArrowNarrowDownIcon, {}) : /* @__PURE__ */ jsx(ArrowNarrowUpIcon, {})
619
- }) : null;
620
- const hasCustomRightIcon = header?.rightIcon != null;
621
- const rightIcon = hasCustomRightIcon ? header.rightIcon : sortIndicator;
622
- const suffixContent = hasCustomRightIcon ? sortIndicator : null;
623
- const suffix = header?.suffix != null || suffixContent ? /* @__PURE__ */ jsxs(Fragment$1, { children: [header?.suffix, suffixContent] }) : void 0;
624
- const menuItems = resolveColumnMenu(column);
491
+ const menuItems = columnMenu.resolveColumnMenu(column);
625
492
  const hasMenu = menuItems != null;
626
- const isContextOnly = columnContextMenu === "context-only";
627
- const menuAction = hasMenu && !isContextOnly ? /* @__PURE__ */ jsxs(_MenuTrigger, {
628
- isOpen: openMenuColumnKey === column.key,
629
- placement: "bottom end",
630
- onOpenChange: (open) => setOpenMenuColumnKey(open ? column.key : null),
631
- children: [/* @__PURE__ */ jsx(ItemAction, {
632
- tabIndex: -1,
633
- icon: /* @__PURE__ */ jsx(MoreIcon, {}),
634
- "aria-label": t("itemTable.columnMenu", "Column menu"),
635
- ...columnMenuTriggerProps,
636
- ...header?.menuTriggerProps
637
- }), /* @__PURE__ */ jsx(__Menu, {
638
- ...columnMenuProps,
639
- ...header?.menuProps,
640
- onAction: columnMenuActionHandler(column, false),
641
- children: processColumnMenuItems(menuItems, columnMenuContext(column, isSortable, activeSort))
642
- })]
643
- }) : null;
644
- const actions = header?.actions != null || menuAction ? /* @__PURE__ */ jsxs(Fragment$1, { children: [header?.actions, menuAction] }) : void 0;
645
- const content = header?.render ? header.render(ctx) : column.title == null && !header ? null : /* @__PURE__ */ jsx(TableHeaderItem, {
646
- icon: header?.icon,
647
- rightIcon,
648
- prefix: header?.prefix,
649
- suffix,
650
- description: header?.description,
651
- descriptionPlacement: header?.descriptionPlacement,
652
- tooltip: header?.tooltip ?? true,
653
- theme: header?.theme,
654
- actions,
655
- autoHideActions: header?.autoHideActions ?? true,
656
- preserveActionsSpace: actions != null,
657
- styles: header?.styles,
658
- children: column.title
659
- });
493
+ const content = renderColumnHeaderContent(column, sortState, columnMenu.renderColumnMenuTrigger(column, menuItems, sortState));
660
494
  const isDraggable = isColumnDraggable(column, isColumnReorderable);
661
495
  return /* @__PURE__ */ jsxs(TableHeaderCell, {
662
496
  columnKey: column.key,
@@ -674,7 +508,7 @@ function TableView(props) {
674
508
  "data-resizable": canResize ? "" : void 0,
675
509
  "data-last-column": lastColumnFlag(column),
676
510
  "data-sorted": isSorted ? "" : void 0,
677
- "data-menu-open": openMenuColumnKey === column.key ? "" : void 0,
511
+ "data-menu-open": columnMenu.openMenuColumnKey === column.key ? "" : void 0,
678
512
  "data-tint": tintSlot(tints, column.key, "header"),
679
513
  role: "columnheader",
680
514
  scope: "col",
@@ -684,24 +518,7 @@ function TableView(props) {
684
518
  "aria-sort": activeSort ? ARIA_SORT[activeSort.direction] : void 0,
685
519
  "aria-haspopup": hasMenu ? "menu" : void 0,
686
520
  style: pinStyle(column),
687
- onFocus: isColumnReorderable ? () => onColumnFocus?.(isDraggable ? column.key : null) : void 0,
688
- onClick: isSortable ? () => onColumnSort?.(column.key) : void 0,
689
- onContextMenu: hasMenu ? (event) => openColumnContextMenu(column, isSortable, activeSort, event) : void 0,
690
- onKeyDown: isSortable || hasMenu ? (event) => {
691
- if (event.key === "F10" && event.shiftKey && hasMenu) {
692
- if (isContextOnly) openColumnContextMenu(column, isSortable, activeSort, event);
693
- else {
694
- event.preventDefault();
695
- event.stopPropagation();
696
- setOpenMenuColumnKey(column.key);
697
- }
698
- return;
699
- }
700
- if (!isSortable) return;
701
- if (event.key !== "Enter" && event.key !== " ") return;
702
- event.preventDefault();
703
- onColumnSort?.(column.key);
704
- } : void 0
521
+ ...columnHeaderHandlers(column, sortState, hasMenu, isDraggable)
705
522
  },
706
523
  children: [content, canResize ? /* @__PURE__ */ jsx(ColumnResizer, {
707
524
  column,
@@ -711,6 +528,29 @@ function TableView(props) {
711
528
  }) : null]
712
529
  }, column.key);
713
530
  }
531
+ /**
532
+ * A data column's header as a control: a press or Enter/Space sorts it, a
533
+ * right-click or Shift+F10 opens its menu, and focus feeds Alt+Arrow
534
+ * reordering.
535
+ */
536
+ function columnHeaderHandlers(column, sortState, hasMenu, isDraggable) {
537
+ const { isSortable } = sortState;
538
+ return {
539
+ onFocus: isColumnReorderable ? () => onColumnFocus?.(isDraggable ? column.key : null) : void 0,
540
+ onClick: isSortable ? () => onColumnSort?.(column.key) : void 0,
541
+ onContextMenu: hasMenu ? (event) => columnMenu.openColumnContextMenu(column, sortState, event) : void 0,
542
+ onKeyDown: isSortable || hasMenu ? (event) => {
543
+ if (event.key === "F10" && event.shiftKey && hasMenu) {
544
+ columnMenu.openColumnMenuFromKeyboard(column, sortState, event);
545
+ return;
546
+ }
547
+ if (!isSortable) return;
548
+ if (event.key !== "Enter" && event.key !== " ") return;
549
+ event.preventDefault();
550
+ onColumnSort?.(column.key);
551
+ } : void 0
552
+ };
553
+ }
714
554
  function renderCell(column, row, rowIndex, rowKey, isLastRow, pinnedEdge, treeItemAria) {
715
555
  const rangeKey = selectionRowKey(sectionOf(pinnedEdge), rowKey);
716
556
  if (column.key === SELECTION_COLUMN_KEY) return renderSelectionCell(column, row, rowIndex, rowKey, isLastRow, pinnedEdge);
@@ -739,27 +579,9 @@ function TableView(props) {
739
579
  isSelected: selection?.isSelected(rowKey) ?? false,
740
580
  tree: pinnedEdge == null ? treeRowState(rowIndex) : void 0
741
581
  };
742
- const value = column.isStructural ? void 0 : getColumnValue(column, row, rowIndex);
743
- const rendered = column.render ? column.render(value, row, rowIndex, ctx) : column.isStructural ? null : getColumnText(column, row, rowIndex);
744
- const isText = typeof rendered === "string" || typeof rendered === "number" || typeof rendered === "bigint";
745
- const content = isText && !column.autoHeight ? /* @__PURE__ */ jsx(TextItem, { children: String(rendered) }) : isText ? String(rendered) : rendered;
582
+ const content = renderCellContent(column, row, rowIndex, ctx);
746
583
  const treeEntry = pinnedEdge == null ? tree?.entries[rowIndex] : void 0;
747
- const displayContent = treeEntry && column.key === tree?.columnKey ? /* @__PURE__ */ jsxs("div", {
748
- "data-element": "TreeContent",
749
- style: { "--tree-level": String(treeEntry.level) },
750
- children: [treeEntry.children.length > 0 ? /* @__PURE__ */ jsx(TableTreeToggle, {
751
- ...treeItemAria?.expandButtonProps,
752
- "data-element": "TreeToggle",
753
- tabIndex: -1,
754
- children: /* @__PURE__ */ jsx(DirectionIcon, { to: tree.state.expandedKeys.has(treeEntry.key) ? "bottom" : "right" })
755
- }) : /* @__PURE__ */ jsx(TableTreeTogglePlaceholder, {
756
- "data-element": "TreeToggle",
757
- "aria-hidden": "true"
758
- }), /* @__PURE__ */ jsx("div", {
759
- "data-element": "TreeValue",
760
- children: content
761
- })]
762
- }) : content;
584
+ const displayContent = treeEntry && column.key === tree?.columnKey ? renderTreeCellContent(treeEntry, tree.state.expandedKeys.has(treeEntry.key), treeItemAria?.expandButtonProps, content) : content;
763
585
  const columnClassName = columnCellClassName(typeof column.cellStyles === "function" ? column.cellStyles(ctx) : column.cellStyles);
764
586
  const extraCellProps = column.cellProps?.(ctx);
765
587
  const CellTag = column.isRowHeader ? "th" : "td";
@@ -1065,44 +887,13 @@ function TableView(props) {
1065
887
  onAction: menuActionHandler(row, rowKey, true)
1066
888
  }, void 0, "clientX" in event.nativeEvent ? event.nativeEvent : void 0);
1067
889
  });
1068
- function resolveColumnMenu(column) {
1069
- if (columnContextMenu === false || column.isStructural) return null;
1070
- const items = column.header?.menu;
1071
- return isMenuEmpty(items) ? null : items;
1072
- }
1073
- /** The reserved sort keys, labelled here so `column-menu.ts` stays pure. */
1074
- function columnMenuContext(column, isSortable, activeSort) {
1075
- return {
1076
- isSortable,
1077
- sort: activeSort?.direction ?? null,
1078
- disallowSortRemoval: column.disallowSortRemoval === true,
1079
- labels: {
1080
- "sort-asc": t("itemTable.sortAscending", "Sort ascending"),
1081
- "sort-desc": t("itemTable.sortDescending", "Sort descending"),
1082
- "clear-sort": t("itemTable.clearSort", "Clear sort")
1083
- }
1084
- };
1085
- }
1086
- function columnMenuActionHandler(column, closeAfter) {
1087
- return (action) => {
1088
- const normalized = normalizeMenuAction(action);
1089
- if (isColumnMenuSortKey(normalized)) onColumnSortChange?.(column.key, COLUMN_MENU_SORT_DIRECTION[normalized]);
1090
- column.header?.onMenuAction?.(normalized);
1091
- onColumnMenuAction?.(normalized, column.key);
1092
- if (closeAfter) contextMenu.close();
1093
- };
1094
- }
1095
- const openColumnContextMenu = useEvent((column, isSortable, activeSort, event) => {
1096
- const items = resolveColumnMenu(column);
1097
- if (items == null) return;
1098
- event.preventDefault();
1099
- event.stopPropagation();
1100
- contextMenu.open({
1101
- ...columnMenuProps,
1102
- ...column.header?.menuProps,
1103
- children: processColumnMenuItems(items, columnMenuContext(column, isSortable, activeSort)),
1104
- onAction: columnMenuActionHandler(column, true)
1105
- }, void 0, "clientX" in event.nativeEvent ? event.nativeEvent : void 0);
890
+ const columnMenu = useColumnMenu({
891
+ contextMenu,
892
+ columnContextMenu,
893
+ columnMenuProps,
894
+ columnMenuTriggerProps,
895
+ onColumnSortChange,
896
+ onColumnMenuAction
1106
897
  });
1107
898
  /** Resolves the row a pointer or keyboard event landed in. */
1108
899
  function rowFromEvent(target) {
@@ -1195,17 +986,25 @@ function TableView(props) {
1195
986
  "aria-colcount": columnCount,
1196
987
  "aria-multiselectable": selection?.selectionMode === "multiple" ? true : void 0
1197
988
  };
1198
- let bodyContent;
1199
- if (error != null) bodyContent = renderStateRow(error);
1200
- else if (showSkeleton) bodyContent = renderSkeletonRows();
1201
- else if (showBlank) bodyContent = null;
1202
- else if (!hasRows) bodyContent = renderStateRow(isFiltered ? noResultsLabel : emptyLabel);
1203
- else if (shouldVirtualize) bodyContent = /* @__PURE__ */ jsxs(Fragment$1, { children: [
1204
- renderSpacerRow(paddingTop, "top"),
1205
- virtualItems.map((v) => withDropIndicators(rows[v.index], v.index, true)),
1206
- renderSpacerRow(paddingBottom, "bottom")
1207
- ] });
1208
- else bodyContent = rows.map((row, index) => withDropIndicators(row, index));
989
+ const tableStyle = layout.totalWidth != null ? { width: layout.totalWidth } : void 0;
990
+ /**
991
+ * What `<tbody>` holds between the pinned rows: the error, the loading
992
+ * skeleton, nothing at all, the empty state, or the rows — in that order of
993
+ * precedence.
994
+ */
995
+ function renderBodyContent() {
996
+ if (error != null) return renderStateRow(error);
997
+ if (showSkeleton) return renderSkeletonRows();
998
+ if (showBlank) return null;
999
+ if (!hasRows) return renderStateRow(isFiltered ? noResultsLabel : emptyLabel);
1000
+ if (shouldVirtualize) return /* @__PURE__ */ jsxs(Fragment$1, { children: [
1001
+ renderSpacerRow(paddingTop, "top"),
1002
+ virtualItems.map((v) => withDropIndicators(rows[v.index], v.index, true)),
1003
+ renderSpacerRow(paddingBottom, "bottom")
1004
+ ] });
1005
+ return rows.map((row, index) => withDropIndicators(row, index));
1006
+ }
1007
+ const bodyContent = renderBodyContent();
1209
1008
  const tableContent = /* @__PURE__ */ jsxs(Fragment$1, { children: [
1210
1009
  colGroup,
1211
1010
  isHeaderHidden ? null : /* @__PURE__ */ jsx("thead", {
@@ -1323,11 +1122,11 @@ function TableView(props) {
1323
1122
  children: tree ? /* @__PURE__ */ jsx(TreeGridTable, {
1324
1123
  tree,
1325
1124
  tableProps,
1326
- style: layout.totalWidth != null ? { width: layout.totalWidth } : void 0,
1125
+ style: tableStyle,
1327
1126
  children: tableContent
1328
1127
  }) : /* @__PURE__ */ jsx("table", {
1329
1128
  ...tableProps,
1330
- style: layout.totalWidth != null ? { width: layout.totalWidth } : void 0,
1129
+ style: tableStyle,
1331
1130
  children: tableContent
1332
1131
  })
1333
1132
  }),