@cube-dev/ui-kit 0.193.2 → 0.194.1

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 (675) hide show
  1. package/dist/CHANGELOG.md +34 -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.d.ts +25 -12
  12. package/dist/components/CollectionItem.js +59 -4
  13. package/dist/components/CollectionItem.js.map +1 -1
  14. package/dist/components/GlobalStyles.js +1 -1
  15. package/dist/components/GridProvider.js +1 -1
  16. package/dist/components/HiddenInput.js +1 -1
  17. package/dist/components/Root.js +2 -2
  18. package/dist/components/actions/Action/Action.js +1 -1
  19. package/dist/components/actions/Banner/Banner.d.ts +1 -1
  20. package/dist/components/actions/Banner/Banner.js +6 -6
  21. package/dist/components/actions/Banner/Banner.js.map +1 -1
  22. package/dist/components/actions/Button/Button.js +2 -2
  23. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  24. package/dist/components/actions/ButtonSplit/ButtonSplit.js +28 -25
  25. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  26. package/dist/components/actions/ButtonSplit/context.js +1 -1
  27. package/dist/components/actions/CommandMenu/CommandMenu.d.ts +7 -7
  28. package/dist/components/actions/CommandMenu/CommandMenu.js +232 -239
  29. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  30. package/dist/components/actions/CommandMenu/styled.js +1 -1
  31. package/dist/components/actions/ItemAction/ItemAction.js +27 -23
  32. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  33. package/dist/components/actions/ItemActionContext.d.ts +3 -0
  34. package/dist/components/actions/ItemActionContext.js +15 -13
  35. package/dist/components/actions/ItemActionContext.js.map +1 -1
  36. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  37. package/dist/components/actions/ItemButton/ItemButton.d.ts +2 -2
  38. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  39. package/dist/components/actions/Link/Link.js +1 -1
  40. package/dist/components/actions/Menu/Menu.d.ts +9 -9
  41. package/dist/components/actions/Menu/Menu.js +88 -64
  42. package/dist/components/actions/Menu/Menu.js.map +1 -1
  43. package/dist/components/actions/Menu/MenuCollectionItem.d.ts +18 -0
  44. package/dist/components/actions/Menu/MenuCollectionItem.js +36 -0
  45. package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -0
  46. package/dist/components/actions/Menu/MenuItem.d.ts +5 -0
  47. package/dist/components/actions/Menu/MenuItem.js +402 -116
  48. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  49. package/dist/components/actions/Menu/MenuSection.d.ts +3 -1
  50. package/dist/components/actions/Menu/MenuSection.js +31 -33
  51. package/dist/components/actions/Menu/MenuSection.js.map +1 -1
  52. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  53. package/dist/components/actions/Menu/SubMenuTrigger.d.ts +1 -1
  54. package/dist/components/actions/Menu/SubMenuTrigger.js +2 -2
  55. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  56. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  57. package/dist/components/actions/Menu/context.js +1 -1
  58. package/dist/components/actions/Menu/index.d.ts +1 -0
  59. package/dist/components/actions/Menu/styled.js +1 -1
  60. package/dist/components/actions/actions-run.js +1 -1
  61. package/dist/components/actions/index.d.ts +3 -2
  62. package/dist/components/actions/index.js +1 -1
  63. package/dist/components/actions/use-action.js +60 -36
  64. package/dist/components/actions/use-action.js.map +1 -1
  65. package/dist/components/actions/use-anchored-menu.js +1 -1
  66. package/dist/components/actions/use-context-menu.js +2 -2
  67. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  68. package/dist/components/content/Alert/Alert.js +1 -1
  69. package/dist/components/content/Alert/use-alert.js +1 -1
  70. package/dist/components/content/Avatar/Avatar.js +1 -1
  71. package/dist/components/content/Badge/Badge.js +1 -1
  72. package/dist/components/content/Card/Card.js +1 -1
  73. package/dist/components/content/Content.js +1 -1
  74. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  75. package/dist/components/content/CopySnippet/CopySnippet.d.ts +45 -45
  76. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  77. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  78. package/dist/components/content/Divider.js +1 -1
  79. package/dist/components/content/Footer.js +1 -1
  80. package/dist/components/content/Header.js +1 -1
  81. package/dist/components/content/HotKeys/HotKeys.js +44 -33
  82. package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
  83. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  84. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  85. package/dist/components/content/Item/Item.d.ts +7 -7
  86. package/dist/components/content/Item/Item.js +207 -69
  87. package/dist/components/content/Item/Item.js.map +1 -1
  88. package/dist/components/content/Item/ItemWithNativeLinks.js +314 -0
  89. package/dist/components/content/Item/ItemWithNativeLinks.js.map +1 -0
  90. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  91. package/dist/components/content/ItemCard/ItemCard.d.ts +1 -1
  92. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  93. package/dist/components/content/Layout/GridLayout.js +1 -1
  94. package/dist/components/content/Layout/Layout.js +1 -1
  95. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  96. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  97. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  98. package/dist/components/content/Layout/LayoutContent.js +1 -1
  99. package/dist/components/content/Layout/LayoutContext.js +1 -1
  100. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  101. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  102. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  103. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  104. package/dist/components/content/Layout/LayoutPane.js +113 -107
  105. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  106. package/dist/components/content/Layout/LayoutPanel.js +44 -48
  107. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  108. package/dist/components/content/Layout/LayoutPanelHeader.js +2 -2
  109. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  110. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  111. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  112. package/dist/components/content/Layout/index.js +1 -1
  113. package/dist/components/content/Layout/utils.js +1 -1
  114. package/dist/components/content/Paragraph.js +1 -1
  115. package/dist/components/content/Placeholder/Placeholder.js +77 -70
  116. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  117. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  118. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  119. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  120. package/dist/components/content/Result/Result.js +5 -5
  121. package/dist/components/content/Result/Result.js.map +1 -1
  122. package/dist/components/content/Skeleton/Skeleton.js +18 -19
  123. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  124. package/dist/components/content/Tag/Tag.js +2 -2
  125. package/dist/components/content/Text.d.ts +57 -57
  126. package/dist/components/content/Text.js +61 -77
  127. package/dist/components/content/Text.js.map +1 -1
  128. package/dist/components/content/TextItem/TextItem.js +158 -29
  129. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  130. package/dist/components/content/Title.js +66 -48
  131. package/dist/components/content/Title.js.map +1 -1
  132. package/dist/components/content/Tree/Tree.js +6 -3
  133. package/dist/components/content/Tree/Tree.js.map +1 -1
  134. package/dist/components/content/Tree/TreeNode.js +1 -1
  135. package/dist/components/content/Tree/styled.js +1 -1
  136. package/dist/components/content/Tree/tree-index.js +1 -1
  137. package/dist/components/content/Tree/types.d.ts +2 -2
  138. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  139. package/dist/components/content/Tree/use-load-data.js +1 -1
  140. package/dist/components/content/highlightText.js +1 -1
  141. package/dist/components/content/use-auto-tooltip.js +3 -2
  142. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  143. package/dist/components/data/DataTable/DataTable.js +1 -1
  144. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  145. package/dist/components/data/ItemTable/ItemTableBulkBar.js +2 -2
  146. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  147. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  148. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  149. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  150. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  151. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  152. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  153. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  154. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  155. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  156. package/dist/components/data/TableBase/RowCollection.js +1 -1
  157. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  158. package/dist/components/data/TableBase/TableRow.js +1 -1
  159. package/dist/components/data/TableBase/TableView.js +8 -5
  160. package/dist/components/data/TableBase/TableView.js.map +1 -1
  161. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  162. package/dist/components/data/TableBase/column-header.js +89 -25
  163. package/dist/components/data/TableBase/column-header.js.map +1 -1
  164. package/dist/components/data/TableBase/column-menu.js +1 -1
  165. package/dist/components/data/TableBase/column-styles.js +1 -1
  166. package/dist/components/data/TableBase/column-tint.js +1 -1
  167. package/dist/components/data/TableBase/row-menu.js +1 -1
  168. package/dist/components/data/TableBase/styled.d.ts +1 -1
  169. package/dist/components/data/TableBase/styled.js +1 -1
  170. package/dist/components/data/TableBase/table-tree.js +1 -1
  171. package/dist/components/data/TableBase/types.js +1 -1
  172. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  173. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  174. package/dist/components/data/TableBase/use-column-order.js +1 -1
  175. package/dist/components/data/TableBase/use-column-window.js +119 -57
  176. package/dist/components/data/TableBase/use-column-window.js.map +1 -1
  177. package/dist/components/data/TableBase/use-container-width.js +1 -1
  178. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  179. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  180. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  181. package/dist/components/data/TableBase/use-table-search.js +1 -1
  182. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  183. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  184. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  185. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  186. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +19 -17
  187. package/dist/components/data/TableBase/use-table-tooltip-refresh.js.map +1 -1
  188. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  189. package/dist/components/fields/Checkbox/Checkbox.js +3 -1
  190. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  191. package/dist/components/fields/Checkbox/CheckboxGroup.js +13 -13
  192. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  193. package/dist/components/fields/Checkbox/context.js +1 -1
  194. package/dist/components/fields/ColorInput/ColorInput.js +32 -29
  195. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  196. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +2 -0
  197. package/dist/components/fields/ColorPicker/ColorPicker.js +9 -6
  198. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  199. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  200. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +6 -3
  201. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  202. package/dist/components/fields/ComboBox/ComboBox.js +41 -30
  203. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  204. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  205. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  206. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  207. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  208. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  209. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  210. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  211. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  212. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  213. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  214. package/dist/components/fields/DatePicker/DateRangePicker.js +2 -2
  215. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +246 -238
  216. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  217. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  218. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  219. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  220. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  221. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  222. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  223. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  224. package/dist/components/fields/DatePicker/period.js +1 -1
  225. package/dist/components/fields/DatePicker/props.js +1 -1
  226. package/dist/components/fields/DatePicker/utils.js +1 -1
  227. package/dist/components/fields/FileInput/FileInput.js +22 -2
  228. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  229. package/dist/components/fields/FilterListBox/FilterListBox.js +5 -1
  230. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  231. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +4 -2
  232. package/dist/components/fields/FilterPicker/FilterPicker.js +4 -3
  233. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  234. package/dist/components/fields/Input/Input.js +1 -1
  235. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  236. package/dist/components/fields/ListBox/ListBox.js +8 -7
  237. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  238. package/dist/components/fields/ListBox/optionId.js +1 -1
  239. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +36 -32
  240. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  241. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  242. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  243. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  244. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  245. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  246. package/dist/components/fields/Picker/Picker.d.ts +4 -2
  247. package/dist/components/fields/Picker/Picker.js +4 -3
  248. package/dist/components/fields/Picker/Picker.js.map +1 -1
  249. package/dist/components/fields/RadioGroup/Radio.d.ts +40 -40
  250. package/dist/components/fields/RadioGroup/Radio.js +2 -2
  251. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  252. package/dist/components/fields/RadioGroup/context.js +1 -1
  253. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  254. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  255. package/dist/components/fields/Select/Select.d.ts +4 -4
  256. package/dist/components/fields/Select/Select.js +36 -33
  257. package/dist/components/fields/Select/Select.js.map +1 -1
  258. package/dist/components/fields/Slider/Gradation.js +1 -1
  259. package/dist/components/fields/Slider/HueSlider.js +1 -1
  260. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  261. package/dist/components/fields/Slider/Slider.js +1 -1
  262. package/dist/components/fields/Slider/SliderBase.js +1 -1
  263. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  264. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  265. package/dist/components/fields/Slider/elements.js +1 -1
  266. package/dist/components/fields/Slider/index.js +1 -1
  267. package/dist/components/fields/Switch/Switch.js +1 -1
  268. package/dist/components/fields/TagInput/TagInput.js +1 -1
  269. package/dist/components/fields/TagInput/TagList.js +1 -1
  270. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  271. package/dist/components/fields/TagInput/useTagError.js +1 -1
  272. package/dist/components/fields/TextArea/TextArea.js +1 -1
  273. package/dist/components/fields/TextInput/TextInput.js +1 -1
  274. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  275. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  276. package/dist/components/fields/TextInputMapper/TextInputMapper.js +13 -5
  277. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  278. package/dist/components/fields/TriggerActions.js +1 -1
  279. package/dist/components/fields/color/ColorPanel.js +62 -53
  280. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  281. package/dist/components/fields/color/channels.js +1 -1
  282. package/dist/components/fields/color/color.js +1 -1
  283. package/dist/components/fields/color/context.js +1 -1
  284. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +1 -0
  285. package/dist/components/form/FieldWrapper/FieldWrapper.js +134 -110
  286. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  287. package/dist/components/form/FieldWrapper/field-description.js +102 -0
  288. package/dist/components/form/FieldWrapper/field-description.js.map +1 -0
  289. package/dist/components/form/FieldWrapper/types.d.ts +6 -1
  290. package/dist/components/form/Form/Field.js +1 -1
  291. package/dist/components/form/Form/Form.js +1 -1
  292. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  293. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  294. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  295. package/dist/components/form/Form/SubmitError.js +1 -1
  296. package/dist/components/form/Form/backend.js +1 -1
  297. package/dist/components/form/Form/index.js +1 -1
  298. package/dist/components/form/Form/modern/actions.js +1 -1
  299. package/dist/components/form/Form/modern/context.js +1 -1
  300. package/dist/components/form/Form/modern/controller.js +1 -1
  301. package/dist/components/form/Form/modern/field-binding.js +1 -1
  302. package/dist/components/form/Form/modern/field.js +1 -1
  303. package/dist/components/form/Form/modern/react.js +1 -1
  304. package/dist/components/form/Form/modern/store.js +1 -1
  305. package/dist/components/form/Form/modern/validation.js +1 -1
  306. package/dist/components/form/Form/modern/values.js +1 -1
  307. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  308. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  309. package/dist/components/form/Form/use-field/use-field-props.js +17 -4
  310. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  311. package/dist/components/form/Form/use-field/use-field.js +1 -1
  312. package/dist/components/form/Form/use-form.js +1 -1
  313. package/dist/components/form/Form/validation.js +1 -1
  314. package/dist/components/form/Label.js +27 -24
  315. package/dist/components/form/Label.js.map +1 -1
  316. package/dist/components/form/legacy-tooltip.js +1 -1
  317. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  318. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  319. package/dist/components/form/validation/use-validation-props.js +1 -1
  320. package/dist/components/form/wrapper.js +2 -1
  321. package/dist/components/form/wrapper.js.map +1 -1
  322. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  323. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  324. package/dist/components/layout/Flex.js +1 -1
  325. package/dist/components/layout/Flow.js +1 -1
  326. package/dist/components/layout/Grid.js +1 -1
  327. package/dist/components/layout/Panel.js +1 -1
  328. package/dist/components/layout/Prefix.js +1 -1
  329. package/dist/components/layout/ResizablePanel.js +1 -1
  330. package/dist/components/layout/Space.js +1 -1
  331. package/dist/components/layout/Suffix.js +1 -1
  332. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  333. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  334. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  335. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  336. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  337. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  338. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  339. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  340. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  341. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  342. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  343. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  344. package/dist/components/navigation/Tabs/styled.js +1 -1
  345. package/dist/components/navigation/Tabs/types.d.ts +3 -3
  346. package/dist/components/navigation/Tabs/types.js +1 -1
  347. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  348. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  349. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  350. package/dist/components/other/Calendar/Calendar.js +1 -1
  351. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  352. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  353. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  354. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  355. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  356. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  357. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  358. package/dist/components/other/Calendar/styled.js +1 -1
  359. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  360. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  361. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  362. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  363. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  364. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  365. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  366. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  367. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  368. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  369. package/dist/components/overlays/Dialog/context.js +1 -1
  370. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  371. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  372. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  373. package/dist/components/overlays/Modal/Modal.js +44 -24
  374. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  375. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  376. package/dist/components/overlays/Modal/Overlay.js +1 -1
  377. package/dist/components/overlays/Modal/Popover.js +34 -24
  378. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  379. package/dist/components/overlays/Modal/Tray.js +45 -25
  380. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  381. package/dist/components/overlays/Modal/Underlay.js +1 -1
  382. package/dist/components/overlays/Modal/modal-containment.js +145 -0
  383. package/dist/components/overlays/Modal/modal-containment.js.map +1 -0
  384. package/dist/components/overlays/Notifications/Notification.js +1 -1
  385. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  386. package/dist/components/overlays/Notifications/NotificationCard.js +2 -2
  387. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  388. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  389. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  390. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  391. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +2 -2
  392. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  393. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  394. package/dist/components/overlays/Notifications/index.js +1 -1
  395. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  396. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  397. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  398. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  399. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  400. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  401. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  402. package/dist/components/overlays/Toast/index.js +1 -1
  403. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  404. package/dist/components/overlays/Toast/useToast.js +1 -1
  405. package/dist/components/overlays/Tooltip/Tooltip.js +50 -47
  406. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  407. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  408. package/dist/components/overlays/Tooltip/TooltipTrigger.js +95 -100
  409. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  410. package/dist/components/overlays/Tooltip/context.js +1 -1
  411. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  412. package/dist/components/portal/Portal.js +1 -1
  413. package/dist/components/portal/PortalProvider.js +1 -1
  414. package/dist/components/portal/usePortal.js +1 -1
  415. package/dist/components/shared/DraggableCollection.js +1 -1
  416. package/dist/components/shared/InvalidIcon.js +1 -1
  417. package/dist/components/shared/ValidIcon.js +1 -1
  418. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  419. package/dist/components/status/Spin/Cube.js +1 -1
  420. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  421. package/dist/components/status/Spin/Spin.js +1 -1
  422. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  423. package/dist/data/item-themes.js +1 -1
  424. package/dist/data/themes.js +1 -1
  425. package/dist/eslint-plugin/defaults.generated.js +2 -2
  426. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  427. package/dist/eslint-plugin/index.js +1 -1
  428. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  429. package/dist/i18n/I18nProvider.js +3 -2
  430. package/dist/i18n/I18nProvider.js.map +1 -1
  431. package/dist/i18n/createFormatter.js +1 -1
  432. package/dist/i18n/index.d.ts +2 -1
  433. package/dist/i18n/index.js +3 -2
  434. package/dist/i18n/index.js.map +1 -1
  435. package/dist/i18n/instance.d.ts +2 -3
  436. package/dist/i18n/instance.js +3 -4
  437. package/dist/i18n/instance.js.map +1 -1
  438. package/dist/i18n/locales/de-DE/uikit.js +36 -5
  439. package/dist/i18n/locales/en-US/uikit.js +36 -5
  440. package/dist/i18n/locales/en-US/uikit.json.d.ts +41 -4
  441. package/dist/i18n/locales/es-ES/uikit.js +36 -5
  442. package/dist/i18n/locales/es-MX/uikit.js +36 -5
  443. package/dist/i18n/locales/fr-FR/uikit.js +36 -5
  444. package/dist/i18n/locales/it-IT/uikit.js +36 -5
  445. package/dist/i18n/locales/ja-JP/uikit.js +36 -5
  446. package/dist/i18n/locales/nb-NO/uikit.js +36 -5
  447. package/dist/i18n/locales/pt-BR/uikit.js +36 -5
  448. package/dist/i18n/locales/pt-PT/uikit.js +36 -5
  449. package/dist/i18n/locales/sv-SE/uikit.js +36 -5
  450. package/dist/i18n/locales/vi-VN/uikit.js +36 -5
  451. package/dist/i18n/locales.js +1 -1
  452. package/dist/i18n/namespace.d.ts +11 -0
  453. package/dist/i18n/namespace.js +12 -0
  454. package/dist/i18n/namespace.js.map +1 -0
  455. package/dist/i18n/useFormatter.js +1 -1
  456. package/dist/i18n/useI18n.js +5 -3
  457. package/dist/i18n/useI18n.js.map +1 -1
  458. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  459. package/dist/icons/AdjustmentsIcon.js +1 -1
  460. package/dist/icons/AiIcon.js +1 -1
  461. package/dist/icons/AreaChartIcon.js +1 -1
  462. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  463. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  464. package/dist/icons/BackwardIcon.js +1 -1
  465. package/dist/icons/BarChartIcon.js +1 -1
  466. package/dist/icons/BellFilledIcon.js +1 -1
  467. package/dist/icons/BellIcon.js +1 -1
  468. package/dist/icons/BooleanIcon.js +1 -1
  469. package/dist/icons/CalendarEditIcon.js +1 -1
  470. package/dist/icons/CalendarIcon.js +1 -1
  471. package/dist/icons/CaretDownIcon.js +1 -1
  472. package/dist/icons/CaretUpIcon.js +1 -1
  473. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  474. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  475. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  476. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  477. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  478. package/dist/icons/ChartBarLineIcon.js +1 -1
  479. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  480. package/dist/icons/ChartBarStackedIcon.js +1 -1
  481. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  482. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  483. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  484. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  485. package/dist/icons/ChartBubbleIcon.js +1 -1
  486. package/dist/icons/ChartDonut2Icon.js +1 -1
  487. package/dist/icons/ChartFunnelIcon.js +1 -1
  488. package/dist/icons/ChartHeatmapIcon.js +1 -1
  489. package/dist/icons/ChartKPIIcon.js +1 -1
  490. package/dist/icons/ChartPie2Icon.js +1 -1
  491. package/dist/icons/ChartScatterIcon.js +1 -1
  492. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  493. package/dist/icons/CheckCircleIcon.js +1 -1
  494. package/dist/icons/CheckIcon.js +1 -1
  495. package/dist/icons/CircleFilledIcon.js +1 -1
  496. package/dist/icons/ClearIcon.js +1 -1
  497. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  498. package/dist/icons/CloseCircleIcon.js +1 -1
  499. package/dist/icons/CloseIcon.js +1 -1
  500. package/dist/icons/CodeIcon.js +1 -1
  501. package/dist/icons/ColumnTotalIcon.js +1 -1
  502. package/dist/icons/CopyIcon.js +1 -1
  503. package/dist/icons/CountIcon.js +1 -1
  504. package/dist/icons/CubeIcon.js +1 -1
  505. package/dist/icons/CubePauseIcon.js +1 -1
  506. package/dist/icons/CubePlayIcon.js +1 -1
  507. package/dist/icons/CurrencyDollarIcon.js +1 -1
  508. package/dist/icons/DangerIcon.js +1 -1
  509. package/dist/icons/DashboardIcon.js +1 -1
  510. package/dist/icons/DatabaseIcon.js +1 -1
  511. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  512. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  513. package/dist/icons/DirectionIcon.js +1 -1
  514. package/dist/icons/DonutIcon.js +1 -1
  515. package/dist/icons/DownIcon.js +1 -1
  516. package/dist/icons/EditIcon.js +1 -1
  517. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  518. package/dist/icons/ExclamationCircleIcon.js +1 -1
  519. package/dist/icons/ExclamationIcon.js +1 -1
  520. package/dist/icons/EyeIcon.js +1 -1
  521. package/dist/icons/EyeInvisibleIcon.js +1 -1
  522. package/dist/icons/FilterIcon.js +1 -1
  523. package/dist/icons/FolderFilledIcon.js +1 -1
  524. package/dist/icons/FolderIcon.js +1 -1
  525. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  526. package/dist/icons/FolderOpenIcon.js +1 -1
  527. package/dist/icons/ForwardIcon.js +1 -1
  528. package/dist/icons/GripVerticalIcon.js +1 -1
  529. package/dist/icons/HierarchyIcon.js +1 -1
  530. package/dist/icons/HierarchyOpenIcon.js +1 -1
  531. package/dist/icons/Icon.js +1 -1
  532. package/dist/icons/InfoCircleIcon.js +1 -1
  533. package/dist/icons/InfoIcon.js +1 -1
  534. package/dist/icons/KeyIcon.js +1 -1
  535. package/dist/icons/LeftIcon.js +1 -1
  536. package/dist/icons/LineChartIcon.js +1 -1
  537. package/dist/icons/LoadingIcon.js +1 -1
  538. package/dist/icons/LockFilledIcon.js +1 -1
  539. package/dist/icons/LockIcon.js +1 -1
  540. package/dist/icons/MoreIcon.js +1 -1
  541. package/dist/icons/NotAllowedIcon.js +1 -1
  542. package/dist/icons/Number123Icon.js +1 -1
  543. package/dist/icons/NumberIcon.js +1 -1
  544. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  545. package/dist/icons/PauseCircleIcon.js +1 -1
  546. package/dist/icons/PauseIcon.js +1 -1
  547. package/dist/icons/PercentageIcon.js +1 -1
  548. package/dist/icons/PieChartIcon.js +1 -1
  549. package/dist/icons/PipetteIcon.js +1 -1
  550. package/dist/icons/PlayCircleIcon.js +1 -1
  551. package/dist/icons/PlayIcon.js +1 -1
  552. package/dist/icons/PlusIcon.js +1 -1
  553. package/dist/icons/ProgressBarIcon.js +1 -1
  554. package/dist/icons/ReloadIcon.js +1 -1
  555. package/dist/icons/ReportIcon.js +1 -1
  556. package/dist/icons/ReturnIcon.js +1 -1
  557. package/dist/icons/RightIcon.js +1 -1
  558. package/dist/icons/RowTotalsIcon.js +1 -1
  559. package/dist/icons/SchemeIcon.js +1 -1
  560. package/dist/icons/SearchIcon.js +1 -1
  561. package/dist/icons/SemanticQueryIcon.js +1 -1
  562. package/dist/icons/SettingsIcon.js +1 -1
  563. package/dist/icons/ShieldFilledIcon.js +1 -1
  564. package/dist/icons/ShieldIcon.js +1 -1
  565. package/dist/icons/SlashIcon.js +1 -1
  566. package/dist/icons/SparklesIcon.js +1 -1
  567. package/dist/icons/SqlIcon.js +1 -1
  568. package/dist/icons/StatsIcon.js +1 -1
  569. package/dist/icons/StopIcon.js +1 -1
  570. package/dist/icons/StringIcon.js +1 -1
  571. package/dist/icons/SubtotalsIcon.js +1 -1
  572. package/dist/icons/SwitchIcon.js +1 -1
  573. package/dist/icons/TableIcon.js +1 -1
  574. package/dist/icons/ThumbsDownIcon.js +1 -1
  575. package/dist/icons/ThumbsUpIcon.js +1 -1
  576. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  577. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  578. package/dist/icons/ThunderboltIcon.js +1 -1
  579. package/dist/icons/TimeIcon.js +1 -1
  580. package/dist/icons/TrashIcon.js +1 -1
  581. package/dist/icons/UnlockIcon.js +1 -1
  582. package/dist/icons/UpIcon.js +1 -1
  583. package/dist/icons/UserGroupIcon.js +1 -1
  584. package/dist/icons/UserIcon.js +1 -1
  585. package/dist/icons/UserLockIcon.js +1 -1
  586. package/dist/icons/ViewIcon.js +1 -1
  587. package/dist/icons/WarningFilledIcon.js +1 -1
  588. package/dist/icons/WarningIcon.js +1 -1
  589. package/dist/icons/wrap-icon.js +1 -1
  590. package/dist/index.d.ts +9 -7
  591. package/dist/index.js +12 -11
  592. package/dist/index.js.map +1 -1
  593. package/dist/probe/canonicalize.js +1 -1
  594. package/dist/probe/css.js +1 -1
  595. package/dist/probe/index.js +1 -1
  596. package/dist/provider.js +2 -2
  597. package/dist/provider.js.map +1 -1
  598. package/dist/providers/TrackingProvider.js +1 -1
  599. package/dist/providers/navigation-url.js +11 -0
  600. package/dist/providers/navigation-url.js.map +1 -0
  601. package/dist/providers/navigationAdapter.default.js +1 -1
  602. package/dist/providers/use-navigation.js +19 -0
  603. package/dist/providers/use-navigation.js.map +1 -0
  604. package/dist/tokens/all-tokens.js +1 -1
  605. package/dist/tokens/base.js +1 -1
  606. package/dist/tokens/color-seed.js +1 -1
  607. package/dist/tokens/color-theme.js +1 -1
  608. package/dist/tokens/colors.js +1 -1
  609. package/dist/tokens/layout.js +1 -1
  610. package/dist/tokens/lazy-styles.js +1 -1
  611. package/dist/tokens/legacy-color.js +1 -1
  612. package/dist/tokens/palette-config.js +1 -1
  613. package/dist/tokens/palette.js +1 -1
  614. package/dist/tokens/resolve.js +1 -1
  615. package/dist/tokens/shadows.js +1 -1
  616. package/dist/tokens/sizes.js +1 -1
  617. package/dist/tokens/spacing.js +1 -1
  618. package/dist/tokens/typography.js +1 -1
  619. package/dist/utils/ResizeSensor.js +1 -1
  620. package/dist/utils/colors.js +1 -1
  621. package/dist/utils/dotize.js +1 -1
  622. package/dist/utils/is-dev-env.js +1 -1
  623. package/dist/utils/modules.js +1 -1
  624. package/dist/utils/promise.js +1 -1
  625. package/dist/utils/raf.js +1 -1
  626. package/dist/utils/random.js +1 -1
  627. package/dist/utils/range.js +1 -1
  628. package/dist/utils/react/RenderCache.js +1 -1
  629. package/dist/utils/react/Slots.js +1 -1
  630. package/dist/utils/react/chain.js +1 -1
  631. package/dist/utils/react/disabledProps.js +1 -1
  632. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  633. package/dist/utils/react/index.js +4 -4
  634. package/dist/utils/react/interactions.js +1 -1
  635. package/dist/utils/react/isTextOnly.js +1 -1
  636. package/dist/utils/react/mapProps.js +1 -1
  637. package/dist/utils/react/mergeProps.js +1 -1
  638. package/dist/utils/react/nullableValue.js +1 -1
  639. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  640. package/dist/utils/react/programmaticFocus.js +1 -1
  641. package/dist/utils/react/resolveIcon.js +1 -1
  642. package/dist/utils/react/sharedStore.js +1 -1
  643. package/dist/utils/react/useBufferedValue.js +1 -1
  644. package/dist/utils/react/useCombinedRefs.js +1 -1
  645. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  646. package/dist/utils/react/useEventBus.js +1 -1
  647. package/dist/utils/react/useId.js +1 -1
  648. package/dist/utils/react/useIsDarwin.js +1 -1
  649. package/dist/utils/react/useKeySymbols.js +1 -1
  650. package/dist/utils/react/useLayoutEffect.js +1 -1
  651. package/dist/utils/react/useLocalStorage.js +1 -1
  652. package/dist/utils/react/useMergeStyles.js +1 -1
  653. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  654. package/dist/utils/react/usePopoverSync.js +1 -1
  655. package/dist/utils/react/useQaProps.js +1 -1
  656. package/dist/utils/react/useScheme.js +1 -1
  657. package/dist/utils/react/useViewportSize.js +1 -1
  658. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  659. package/dist/utils/selection.js +1 -1
  660. package/dist/utils/styles.js +1 -1
  661. package/dist/utils/tree.js +1 -1
  662. package/dist/utils/warnings.js +1 -1
  663. package/dist/version.js +2 -2
  664. package/docs/Usage.md +4 -0
  665. package/docs/components/CollectionItem.md +5 -1
  666. package/docs/components/actions/CommandMenu.md +46 -18
  667. package/docs/components/actions/Menu.md +124 -19
  668. package/docs/components/content/Layout.md +1 -1
  669. package/docs/components/content/Placeholder.md +2 -0
  670. package/docs/components/content/Skeleton.md +2 -0
  671. package/docs/components/data/ItemTable.md +2 -0
  672. package/docs/components/overlays/Dialog.md +1 -1
  673. package/docs/components/overlays/DialogContainer.md +1 -2
  674. package/docs/components/overlays/DialogTrigger.md +1 -0
  675. package/package.json +2 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useEffect, useRef } from "react";
@@ -1,7 +1,8 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | Cube Dev Team */
2
2
  import { ArrowNarrowDownIcon } from "../../../icons/ArrowNarrowDownIcon.js";
3
3
  import { ArrowNarrowUpIcon } from "../../../icons/ArrowNarrowUpIcon.js";
4
4
  import { TableHeaderItem } from "./styled.js";
5
+ import { c } from "react/compiler-runtime";
5
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
7
 
7
8
  //#region src/components/data/TableBase/column-header.tsx
@@ -34,15 +35,15 @@ function resolveColumnSort(column, sortMode, sorts, sort) {
34
35
  * Unsorted shows the UP arrow, because that is what the first press gives:
35
36
  * the hint predicts the press rather than advertising that one is possible.
36
37
  */
37
- function renderSortIndicator(sort) {
38
- if (!sort.isSortable) return null;
38
+ function renderSortIndicator(isSortable, isSorted, direction, rank) {
39
+ if (!isSortable) return null;
39
40
  return /* @__PURE__ */ jsx("div", {
40
41
  "data-element": "SortIndicator",
41
- "data-rank": sort.rank ?? void 0,
42
- "data-sorted": sort.isSorted ? "" : void 0,
43
- "data-dir": sort.activeSort?.direction,
42
+ "data-rank": rank ?? void 0,
43
+ "data-sorted": isSorted ? "" : void 0,
44
+ "data-dir": direction,
44
45
  "aria-hidden": "true",
45
- children: sort.activeSort?.direction === "desc" ? /* @__PURE__ */ jsx(ArrowNarrowDownIcon, {}) : /* @__PURE__ */ jsx(ArrowNarrowUpIcon, {})
46
+ children: direction === "desc" ? /* @__PURE__ */ jsx(ArrowNarrowDownIcon, {}) : /* @__PURE__ */ jsx(ArrowNarrowUpIcon, {})
46
47
  });
47
48
  }
48
49
  /**
@@ -66,27 +67,90 @@ function renderColumnHeaderContent(column, sort, menuTrigger) {
66
67
  return header.render(ctx);
67
68
  }
68
69
  if (column.title == null && !header) return null;
69
- const sortIndicator = renderSortIndicator(sort);
70
+ return /* @__PURE__ */ jsx(DefaultColumnHeaderContent, {
71
+ column,
72
+ isSortable: sort.isSortable,
73
+ isSorted: sort.isSorted,
74
+ direction: sort.activeSort?.direction,
75
+ rank: sort.rank,
76
+ menuTrigger
77
+ });
78
+ }
79
+ function DefaultColumnHeaderContent(t0) {
80
+ const $ = c(25);
81
+ const { column, isSortable, isSorted, direction, rank, menuTrigger } = t0;
82
+ const header = column.header;
83
+ let t1;
84
+ if ($[0] !== direction || $[1] !== isSortable || $[2] !== isSorted || $[3] !== rank) {
85
+ t1 = renderSortIndicator(isSortable, isSorted, direction, rank);
86
+ $[0] = direction;
87
+ $[1] = isSortable;
88
+ $[2] = isSorted;
89
+ $[3] = rank;
90
+ $[4] = t1;
91
+ } else t1 = $[4];
92
+ const sortIndicator = t1;
70
93
  const hasCustomRightIcon = header?.rightIcon != null;
71
94
  const rightIcon = hasCustomRightIcon ? header.rightIcon : sortIndicator;
72
95
  const suffixContent = hasCustomRightIcon ? sortIndicator : null;
73
- const suffix = header?.suffix != null || suffixContent ? /* @__PURE__ */ jsxs(Fragment, { children: [header?.suffix, suffixContent] }) : void 0;
74
- const actions = header?.actions != null || menuTrigger ? /* @__PURE__ */ jsxs(Fragment, { children: [header?.actions, menuTrigger] }) : void 0;
75
- return /* @__PURE__ */ jsx(TableHeaderItem, {
76
- icon: header?.icon,
77
- rightIcon,
78
- prefix: header?.prefix,
79
- suffix,
80
- description: header?.description,
81
- descriptionPlacement: header?.descriptionPlacement,
82
- tooltip: header?.tooltip ?? true,
83
- theme: header?.theme,
84
- actions,
85
- autoHideActions: header?.autoHideActions ?? true,
86
- preserveActionsSpace: actions != null,
87
- styles: header?.styles,
88
- children: column.title
89
- });
96
+ let t2;
97
+ if ($[5] !== header?.suffix || $[6] !== suffixContent) {
98
+ t2 = header?.suffix != null || suffixContent ? /* @__PURE__ */ jsxs(Fragment, { children: [header?.suffix, suffixContent] }) : void 0;
99
+ $[5] = header?.suffix;
100
+ $[6] = suffixContent;
101
+ $[7] = t2;
102
+ } else t2 = $[7];
103
+ const suffix = t2;
104
+ let t3;
105
+ if ($[8] !== header?.actions || $[9] !== menuTrigger) {
106
+ t3 = header?.actions != null || menuTrigger ? /* @__PURE__ */ jsxs(Fragment, { children: [header?.actions, menuTrigger] }) : void 0;
107
+ $[8] = header?.actions;
108
+ $[9] = menuTrigger;
109
+ $[10] = t3;
110
+ } else t3 = $[10];
111
+ const actions = t3;
112
+ const t4 = header?.icon;
113
+ const t5 = header?.prefix;
114
+ const t6 = header?.description;
115
+ const t7 = header?.descriptionPlacement;
116
+ const t8 = header?.tooltip ?? true;
117
+ const t9 = header?.theme;
118
+ const t10 = header?.autoHideActions ?? true;
119
+ const t11 = actions != null;
120
+ const t12 = header?.styles;
121
+ let t13;
122
+ if ($[11] !== actions || $[12] !== column.title || $[13] !== rightIcon || $[14] !== suffix || $[15] !== t10 || $[16] !== t11 || $[17] !== t12 || $[18] !== t4 || $[19] !== t5 || $[20] !== t6 || $[21] !== t7 || $[22] !== t8 || $[23] !== t9) {
123
+ t13 = /* @__PURE__ */ jsx(TableHeaderItem, {
124
+ icon: t4,
125
+ rightIcon,
126
+ prefix: t5,
127
+ suffix,
128
+ description: t6,
129
+ descriptionPlacement: t7,
130
+ tooltip: t8,
131
+ theme: t9,
132
+ actions,
133
+ autoHideActions: t10,
134
+ preserveActionsSpace: t11,
135
+ styles: t12,
136
+ children: column.title
137
+ });
138
+ $[11] = actions;
139
+ $[12] = column.title;
140
+ $[13] = rightIcon;
141
+ $[14] = suffix;
142
+ $[15] = t10;
143
+ $[16] = t11;
144
+ $[17] = t12;
145
+ $[18] = t4;
146
+ $[19] = t5;
147
+ $[20] = t6;
148
+ $[21] = t7;
149
+ $[22] = t8;
150
+ $[23] = t9;
151
+ $[24] = t13;
152
+ } else t13 = $[24];
153
+ return t13;
90
154
  }
91
155
 
92
156
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"column-header.js","names":["ArrowNarrowDownIcon","ArrowNarrowUpIcon","TableHeaderItem","ReactNode","CubeResolvedColumn","CubeTableHeaderContext","CubeTableSort","ColumnSortState","isSortable","activeSort","isSorted","rank","resolveColumnSort","column","T","sortMode","sorts","sort","activeSorts","sortIndex","findIndex","entry","columnKey","key","isStructural","length","renderSortIndicator","undefined","direction","renderColumnHeaderContent","menuTrigger","header","render","ctx","columnIndex","index","isResizing","width","title","sortIndicator","hasCustomRightIcon","rightIcon","suffixContent","suffix","actions","icon","prefix","description","descriptionPlacement","tooltip","theme","autoHideActions","styles"],"sources":["../../../../src/components/data/TableBase/column-header.tsx"],"sourcesContent":["import { ArrowNarrowDownIcon } from '../../../icons/ArrowNarrowDownIcon';\nimport { ArrowNarrowUpIcon } from '../../../icons/ArrowNarrowUpIcon';\n\nimport { TableHeaderItem } from './styled';\n\nimport type { ReactNode } from 'react';\nimport type {\n CubeResolvedColumn,\n CubeTableHeaderContext,\n CubeTableSort,\n} from './types';\n\n/** Where a data column stands in the table's sort. */\nexport interface ColumnSortState {\n isSortable: boolean;\n /** This column's entry in the sort, or `null` when it is unsorted. */\n activeSort: CubeTableSort | null;\n isSorted: boolean;\n /**\n * 1-based precedence while more than one column is sorted (`0` for an\n * unsorted column then), or `null` when it is not worth showing.\n */\n rank: number | null;\n}\n\n/**\n * Resolves a column's sort state from `TableView`'s `sorts`, or from `sort`\n * when there is no `sorts`.\n */\nexport function resolveColumnSort<T>(\n column: CubeResolvedColumn<T>,\n sortMode: 'client' | 'server' | 'off',\n sorts: readonly CubeTableSort[] | undefined,\n sort: CubeTableSort | null | undefined,\n): ColumnSortState {\n // One resolution path for both shapes, so every consumer of `isSorted`\n // stays unaware of which one the caller supplied.\n const activeSorts = sorts ?? (sort ? [sort] : []);\n const sortIndex = activeSorts.findIndex(\n (entry) => entry.columnKey === column.key,\n );\n const activeSort = sortIndex === -1 ? null : activeSorts[sortIndex];\n\n return {\n isSortable:\n sortMode !== 'off' && !column.isStructural && column.isSortable === true,\n activeSort,\n isSorted: activeSort != null,\n // Only worth showing when more than one column is sorted — a lone \"1\"\n // beside an arrow is noise.\n rank: activeSorts.length > 1 ? sortIndex + 1 : null,\n };\n}\n\n/**\n * The sort arrow, or nothing for a column that cannot be sorted.\n *\n * The arrow keeps its slot even when unsorted, so turning a sort on and off\n * never shifts the label.\n *\n * Two glyphs rather than one flipped with `scale`. A narrow arrow flipped\n * vertically does land on its own opposite, but rendering the real icon is\n * what keeps that true — a glyph that is not perfectly symmetric would come\n * out subtly wrong, and nothing would say why.\n *\n * Unsorted shows the UP arrow, because that is what the first press gives:\n * the hint predicts the press rather than advertising that one is possible.\n */\nfunction renderSortIndicator(sort: ColumnSortState) {\n if (!sort.isSortable) return null;\n\n return (\n <div\n data-element=\"SortIndicator\"\n data-rank={sort.rank ?? undefined}\n data-sorted={sort.isSorted ? '' : undefined}\n data-dir={sort.activeSort?.direction}\n aria-hidden=\"true\"\n >\n {sort.activeSort?.direction === 'desc' ? (\n <ArrowNarrowDownIcon />\n ) : (\n <ArrowNarrowUpIcon />\n )}\n </div>\n );\n}\n\n/**\n * What a data column's header cell shows.\n *\n * `header.render` takes the whole cell over. Otherwise a `TableHeaderItem`\n * carries the title and the `header` slots, with the sort arrow and the\n * actions — the consumer's own, then `menuTrigger` — placed into them.\n */\nexport function renderColumnHeaderContent<T>(\n column: CubeResolvedColumn<T>,\n sort: ColumnSortState,\n menuTrigger: ReactNode,\n): ReactNode {\n const header = column.header;\n\n if (header?.render) {\n const ctx: CubeTableHeaderContext = {\n columnKey: column.key,\n columnIndex: column.index,\n sort: sort.activeSort?.direction ?? null,\n isSortable: sort.isSortable,\n isResizing: false,\n width: column.width,\n };\n\n return header.render(ctx);\n }\n\n if (column.title == null && !header) return null;\n\n const sortIndicator = renderSortIndicator(sort);\n\n // The arrow belongs in the `rightIcon` slot: that slot is sized and aligned\n // for an icon, while `suffix` is a text slot and puts the glyph on the\n // label's baseline.\n //\n // A `header.rightIcon` the consumer asked for keeps the slot, and the arrow\n // falls back to `suffix` — rare, and better than dropping either one.\n const hasCustomRightIcon = header?.rightIcon != null;\n const rightIcon = hasCustomRightIcon ? header!.rightIcon : sortIndicator;\n\n const suffixContent = hasCustomRightIcon ? sortIndicator : null;\n const suffix =\n header?.suffix != null || suffixContent ? (\n <>\n {header?.suffix}\n {suffixContent}\n </>\n ) : undefined;\n\n // The consumer's own actions first, the overflow menu last — matching Tabs.\n const actions =\n header?.actions != null || menuTrigger ? (\n <>\n {header?.actions}\n {menuTrigger}\n </>\n ) : undefined;\n\n return (\n <TableHeaderItem\n icon={header?.icon}\n rightIcon={rightIcon}\n prefix={header?.prefix}\n suffix={suffix}\n description={header?.description}\n descriptionPlacement={header?.descriptionPlacement}\n tooltip={header?.tooltip ?? true}\n theme={header?.theme}\n actions={actions}\n autoHideActions={header?.autoHideActions ?? true}\n // Without it the actions slot animates its width from 0 on hover, which\n // re-truncates the label — so the header text shifts under the cursor.\n // Only the opacity should move; `TabElement` reserves the space for the\n // same reason.\n preserveActionsSpace={actions != null}\n styles={header?.styles}\n >\n {column.title}\n </TableHeaderItem>\n );\n}\n"],"mappings":";;;;;;;;;;;AA6BA,SAAgBY,kBACdC,QACAE,UACAC,OACAC,MACiB;CAGjB,MAAMC,cAAcF,UAAUC,OAAO,CAACA,KAAK,GAAG,EAAE;CAChD,MAAME,YAAYD,YAAYE,WAC3BC,UAAUA,MAAMC,cAAcT,OAAOU,IACvC;CACD,MAAMd,aAAaU,cAAc,KAAK,OAAOD,YAAYC;AAEzD,QAAO;EACLX,YACEO,aAAa,SAAS,CAACF,OAAOW,gBAAgBX,OAAOL,eAAe;EACtEC;EACAC,UAAUD,cAAc;EAGxBE,MAAMO,YAAYO,SAAS,IAAIN,YAAY,IAAI;EAChD;;;;;;;;;;;;;;;;AAiBH,SAASO,oBAAoBT,MAAuB;AAClD,KAAI,CAACA,KAAKT,WAAY,QAAO;AAE7B,QACE,oBAAC;EACC,gBAAa;EACb,aAAWS,KAAKN,QAAQgB;EACxB,eAAaV,KAAKP,WAAW,KAAKiB;EAClC,YAAUV,KAAKR,YAAYmB;EAC3B,eAAY;YAEXX,KAAKR,YAAYmB,cAAc,SAC9B,oBAAC,wBAAsB,GAEvB,oBAAC,sBACF;GACG;;;;;;;;;AAWV,SAAgBC,0BACdhB,QACAI,MACAa,aACW;CACX,MAAMC,SAASlB,OAAOkB;AAEtB,KAAIA,QAAQC,QAAQ;EAClB,MAAMC,MAA8B;GAClCX,WAAWT,OAAOU;GAClBW,aAAarB,OAAOsB;GACpBlB,MAAMA,KAAKR,YAAYmB,aAAa;GACpCpB,YAAYS,KAAKT;GACjB4B,YAAY;GACZC,OAAOxB,OAAOwB;GACf;AAED,SAAON,OAAOC,OAAOC,IAAI;;AAG3B,KAAIpB,OAAOyB,SAAS,QAAQ,CAACP,OAAQ,QAAO;CAE5C,MAAMQ,gBAAgBb,oBAAoBT,KAAK;CAQ/C,MAAMuB,qBAAqBT,QAAQU,aAAa;CAChD,MAAMA,YAAYD,qBAAqBT,OAAQU,YAAYF;CAE3D,MAAMG,gBAAgBF,qBAAqBD,gBAAgB;CAC3D,MAAMI,SACJZ,QAAQY,UAAU,QAAQD,gBACxB,4CACGX,QAAQY,QACRD,iBACA,GACDf;CAGN,MAAMiB,UACJb,QAAQa,WAAW,QAAQd,cACzB,4CACGC,QAAQa,SACRd,eACA,GACDH;AAEN,QACE,oBAAC;EACC,MAAMI,QAAQc;EACHJ;EACX,QAAQV,QAAQe;EACRH;EACR,aAAaZ,QAAQgB;EACrB,sBAAsBhB,QAAQiB;EAC9B,SAASjB,QAAQkB,WAAW;EAC5B,OAAOlB,QAAQmB;EACNN;EACT,iBAAiBb,QAAQoB,mBAAmB;EAK5C,sBAAsBP,WAAW;EACjC,QAAQb,QAAQqB;YAEfvC,OAAOyB;GACQ"}
1
+ {"version":3,"file":"column-header.js","names":["ArrowNarrowDownIcon","ArrowNarrowUpIcon","TableHeaderItem","ReactNode","CubeResolvedColumn","CubeTableHeaderContext","CubeTableSort","ColumnSortState","isSortable","activeSort","isSorted","rank","resolveColumnSort","column","T","sortMode","sorts","sort","activeSorts","sortIndex","findIndex","entry","columnKey","key","isStructural","length","renderSortIndicator","direction","undefined","renderColumnHeaderContent","menuTrigger","header","render","ctx","columnIndex","index","isResizing","width","title","DefaultColumnHeaderContent","t0","$","_c","t1","sortIndicator","hasCustomRightIcon","rightIcon","suffixContent","t2","suffix","t3","actions","t4","icon","t5","prefix","t6","description","t7","descriptionPlacement","t8","tooltip","t9","theme","t10","autoHideActions","t11","t12","styles","t13"],"sources":["../../../../src/components/data/TableBase/column-header.tsx"],"sourcesContent":["import { ArrowNarrowDownIcon } from '../../../icons/ArrowNarrowDownIcon';\nimport { ArrowNarrowUpIcon } from '../../../icons/ArrowNarrowUpIcon';\n\nimport { TableHeaderItem } from './styled';\n\nimport type { ReactNode } from 'react';\nimport type {\n CubeResolvedColumn,\n CubeTableHeaderContext,\n CubeTableSort,\n} from './types';\n\n/** Where a data column stands in the table's sort. */\nexport interface ColumnSortState {\n isSortable: boolean;\n /** This column's entry in the sort, or `null` when it is unsorted. */\n activeSort: CubeTableSort | null;\n isSorted: boolean;\n /**\n * 1-based precedence while more than one column is sorted (`0` for an\n * unsorted column then), or `null` when it is not worth showing.\n */\n rank: number | null;\n}\n\n/**\n * Resolves a column's sort state from `TableView`'s `sorts`, or from `sort`\n * when there is no `sorts`.\n */\nexport function resolveColumnSort<T>(\n column: CubeResolvedColumn<T>,\n sortMode: 'client' | 'server' | 'off',\n sorts: readonly CubeTableSort[] | undefined,\n sort: CubeTableSort | null | undefined,\n): ColumnSortState {\n // One resolution path for both shapes, so every consumer of `isSorted`\n // stays unaware of which one the caller supplied.\n const activeSorts = sorts ?? (sort ? [sort] : []);\n const sortIndex = activeSorts.findIndex(\n (entry) => entry.columnKey === column.key,\n );\n const activeSort = sortIndex === -1 ? null : activeSorts[sortIndex];\n\n return {\n isSortable:\n sortMode !== 'off' && !column.isStructural && column.isSortable === true,\n activeSort,\n isSorted: activeSort != null,\n // Only worth showing when more than one column is sorted — a lone \"1\"\n // beside an arrow is noise.\n rank: activeSorts.length > 1 ? sortIndex + 1 : null,\n };\n}\n\n/**\n * The sort arrow, or nothing for a column that cannot be sorted.\n *\n * The arrow keeps its slot even when unsorted, so turning a sort on and off\n * never shifts the label.\n *\n * Two glyphs rather than one flipped with `scale`. A narrow arrow flipped\n * vertically does land on its own opposite, but rendering the real icon is\n * what keeps that true — a glyph that is not perfectly symmetric would come\n * out subtly wrong, and nothing would say why.\n *\n * Unsorted shows the UP arrow, because that is what the first press gives:\n * the hint predicts the press rather than advertising that one is possible.\n */\nfunction renderSortIndicator(\n isSortable: boolean,\n isSorted: boolean,\n direction: CubeTableSort['direction'] | undefined,\n rank: number | null,\n) {\n if (!isSortable) return null;\n\n return (\n <div\n data-element=\"SortIndicator\"\n data-rank={rank ?? undefined}\n data-sorted={isSorted ? '' : undefined}\n data-dir={direction}\n aria-hidden=\"true\"\n >\n {direction === 'desc' ? <ArrowNarrowDownIcon /> : <ArrowNarrowUpIcon />}\n </div>\n );\n}\n\n/**\n * What a data column's header cell shows.\n *\n * `header.render` takes the whole cell over. Otherwise a `TableHeaderItem`\n * carries the title and the `header` slots, with the sort arrow and the\n * actions — the consumer's own, then `menuTrigger` — placed into them.\n */\nexport function renderColumnHeaderContent<T>(\n column: CubeResolvedColumn<T>,\n sort: ColumnSortState,\n menuTrigger: ReactNode,\n): ReactNode {\n const header = column.header;\n\n if (header?.render) {\n const ctx: CubeTableHeaderContext = {\n columnKey: column.key,\n columnIndex: column.index,\n sort: sort.activeSort?.direction ?? null,\n isSortable: sort.isSortable,\n isResizing: false,\n width: column.width,\n };\n\n return header.render(ctx);\n }\n\n if (column.title == null && !header) return null;\n\n return (\n <DefaultColumnHeaderContent\n column={column}\n isSortable={sort.isSortable}\n isSorted={sort.isSorted}\n direction={sort.activeSort?.direction}\n rank={sort.rank}\n menuTrigger={menuTrigger}\n />\n );\n}\n\n// Like TableCellContent, this boundary lets Compiler retain unchanged Item\n// trees while TableView updates the visible row/column window.\nfunction DefaultColumnHeaderContent<T>({\n column,\n isSortable,\n isSorted,\n direction,\n rank,\n menuTrigger,\n}: {\n column: CubeResolvedColumn<T>;\n isSortable: boolean;\n isSorted: boolean;\n direction: CubeTableSort['direction'] | undefined;\n rank: number | null;\n menuTrigger: ReactNode;\n}) {\n const header = column.header;\n const sortIndicator = renderSortIndicator(\n isSortable,\n isSorted,\n direction,\n rank,\n );\n\n // The arrow belongs in the `rightIcon` slot: that slot is sized and aligned\n // for an icon, while `suffix` is a text slot and puts the glyph on the\n // label's baseline.\n //\n // A `header.rightIcon` the consumer asked for keeps the slot, and the arrow\n // falls back to `suffix` — rare, and better than dropping either one.\n const hasCustomRightIcon = header?.rightIcon != null;\n const rightIcon = hasCustomRightIcon ? header!.rightIcon : sortIndicator;\n\n const suffixContent = hasCustomRightIcon ? sortIndicator : null;\n const suffix =\n header?.suffix != null || suffixContent ? (\n <>\n {header?.suffix}\n {suffixContent}\n </>\n ) : undefined;\n\n // The consumer's own actions first, the overflow menu last — matching Tabs.\n const actions =\n header?.actions != null || menuTrigger ? (\n <>\n {header?.actions}\n {menuTrigger}\n </>\n ) : undefined;\n\n return (\n <TableHeaderItem\n icon={header?.icon}\n rightIcon={rightIcon}\n prefix={header?.prefix}\n suffix={suffix}\n description={header?.description}\n descriptionPlacement={header?.descriptionPlacement}\n tooltip={header?.tooltip ?? true}\n theme={header?.theme}\n actions={actions}\n autoHideActions={header?.autoHideActions ?? true}\n // Without it the actions slot animates its width from 0 on hover, which\n // re-truncates the label — so the header text shifts under the cursor.\n // Only the opacity should move; `TabElement` reserves the space for the\n // same reason.\n preserveActionsSpace={actions != null}\n styles={header?.styles}\n >\n {column.title}\n </TableHeaderItem>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | Cube Dev Team */
2
2
  import { __Menu } from "../../actions/Menu/Menu.js";
3
3
  import { normalizeMenuAction } from "./row-menu.js";
4
4
  import { Children, cloneElement, isValidElement } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | Cube Dev Team */
2
2
  import { computeStyles, resolveRecipes } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/components/data/TableBase/column-styles.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | 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.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | Cube Dev Team */
2
2
  import { Children, Fragment, isValidElement } from "react";
3
3
 
4
4
  //#region src/components/data/TableBase/row-menu.ts
@@ -1,8 +1,8 @@
1
1
 
2
2
  import "../../content/Item/index.js";
3
+ import "../../actions/index.js";
3
4
  import "../../../data/item-themes.js";
4
5
  import "../../overlays/Tooltip/split-trigger-props.js";
5
- import "../../actions/index.js";
6
6
  import "../../../index.js";
7
7
  import { Styles } from "@tenphi/tasty";
8
8
  import "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | 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.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | 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) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | 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,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | 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.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { CONTAINER_STYLES } from "@tenphi/tasty";
@@ -6,6 +6,7 @@ import { useLayoutEffect, useState } from "react";
6
6
 
7
7
  //#region src/components/data/TableBase/use-column-window.ts
8
8
  const COLUMN_OVERSCAN = 300;
9
+ const MAX_REFILL_COLUMNS = 1;
9
10
  const SAFE_FRAME_STYLES = new Set(CONTAINER_STYLES.filter((key) => ![
10
11
  "font",
11
12
  "preset",
@@ -19,9 +20,9 @@ function sameRange(left, right) {
19
20
  function canWindowColumns(columns, styles) {
20
21
  return columns.every((column) => column.width != null && column.width > 0 && Number.isFinite(column.width) && !column.cellProps) && Object.keys(styles ?? {}).every((key) => SAFE_FRAME_STYLES.has(key));
21
22
  }
22
- function getColumnWindowRange(layout, offset, viewportWidth) {
23
- const start = Math.max(0, offset + layout.pinnedStartWidth - COLUMN_OVERSCAN);
24
- const end = offset + viewportWidth - layout.pinnedEndWidth + COLUMN_OVERSCAN;
23
+ function getColumnWindowRange(layout, offset, viewportWidth, overscanStart = COLUMN_OVERSCAN, overscanEnd = COLUMN_OVERSCAN) {
24
+ const start = Math.max(0, offset + layout.pinnedStartWidth - overscanStart);
25
+ const end = offset + viewportWidth - layout.pinnedEndWidth + overscanEnd;
25
26
  let position = 0;
26
27
  let first = layout.columns.length;
27
28
  let last = -1;
@@ -38,6 +39,28 @@ function getColumnWindowRange(layout, offset, viewportWidth) {
38
39
  last
39
40
  };
40
41
  }
42
+ /** Refill the moving edge without rebuilding rows at every column boundary. */
43
+ function getBufferedColumnWindowRange(layout, previous, offset, viewportWidth) {
44
+ const required = getColumnWindowRange(layout, offset, viewportWidth);
45
+ if (!previous) return required;
46
+ if (offset <= 0 || offset >= layout.totalWidth - viewportWidth - 1) return required;
47
+ const extendsStart = required.first < previous.first;
48
+ const extendsEnd = required.last > previous.last;
49
+ if (!extendsStart && !extendsEnd) {
50
+ const first = Math.max(previous.first, required.first - MAX_REFILL_COLUMNS);
51
+ const last = Math.min(previous.last, required.last + MAX_REFILL_COLUMNS);
52
+ return first === previous.first && last === previous.last ? previous : {
53
+ first,
54
+ last
55
+ };
56
+ }
57
+ if (extendsStart && extendsEnd) return required;
58
+ const refilled = getColumnWindowRange(layout, offset, viewportWidth, extendsStart ? COLUMN_OVERSCAN * 2 : COLUMN_OVERSCAN, extendsEnd ? COLUMN_OVERSCAN * 2 : COLUMN_OVERSCAN);
59
+ return {
60
+ first: Math.max(refilled.first, required.first - MAX_REFILL_COLUMNS),
61
+ last: Math.min(refilled.last, required.last + MAX_REFILL_COLUMNS)
62
+ };
63
+ }
41
64
  /** Preserve height-bearing cells, native controls and row naming offscreen. */
42
65
  function retainColumn(column, treeColumnKey) {
43
66
  return column.pin != null || column.isStructural || column.isRowHeader || column.key === treeColumnKey || column.autoHeight || column.render != null || column.cellStyles != null;
@@ -69,13 +92,35 @@ function getColumnWindowSegments(columns, range, treeColumnKey) {
69
92
  return segments;
70
93
  }
71
94
  function useColumnWindow(layout, scroller, isEnabled, treeColumnKey) {
72
- const $ = c(17);
95
+ const $ = c(26);
96
+ let t0;
97
+ if ($[0] !== isEnabled || $[1] !== layout.columns || $[2] !== treeColumnKey) {
98
+ t0 = isEnabled && layout.columns.some((column) => !retainColumn(column, treeColumnKey));
99
+ $[0] = isEnabled;
100
+ $[1] = layout.columns;
101
+ $[2] = treeColumnKey;
102
+ $[3] = t0;
103
+ } else t0 = $[3];
104
+ const isWindowEnabled = t0;
73
105
  const [range, setRange] = useState(null);
74
106
  const [fitsRow, setFitsRow] = useState(false);
75
- let t0;
76
- if ($[0] !== isEnabled || $[1] !== layout.totalWidth || $[2] !== scroller) {
77
- t0 = () => {
78
- if (!isEnabled || !scroller || scroller.clientWidth <= 0 || layout.totalWidth <= scroller.clientWidth) return;
107
+ let t1;
108
+ if ($[4] !== isWindowEnabled || $[5] !== layout || $[6] !== scroller) {
109
+ t1 = () => {
110
+ const width = scroller?.clientWidth ?? 0;
111
+ const next = isWindowEnabled && scroller && width > 0 && layout.totalWidth > width ? getColumnWindowRange(layout, Math.abs(scroller.scrollLeft), width) : null;
112
+ setRange((previous) => sameRange(previous, next) ? previous : next);
113
+ };
114
+ $[4] = isWindowEnabled;
115
+ $[5] = layout;
116
+ $[6] = scroller;
117
+ $[7] = t1;
118
+ } else t1 = $[7];
119
+ const resetRange = t1;
120
+ let t2;
121
+ if ($[8] !== isWindowEnabled || $[9] !== layout.totalWidth || $[10] !== scroller) {
122
+ t2 = () => {
123
+ if (!isWindowEnabled || !scroller || scroller.clientWidth <= 0 || layout.totalWidth <= scroller.clientWidth) return;
79
124
  const table = scroller?.querySelector("table");
80
125
  if (!table) return;
81
126
  const computed = getComputedStyle(table);
@@ -84,72 +129,89 @@ function useColumnWindow(layout, scroller, isEnabled, treeColumnKey) {
84
129
  const lineHeight = parseFloat(computed.lineHeight);
85
130
  setFitsRow(rowHeight === `${height}px` && Number.isFinite(height) && height >= lineHeight);
86
131
  };
87
- $[0] = isEnabled;
88
- $[1] = layout.totalWidth;
89
- $[2] = scroller;
90
- $[3] = t0;
91
- } else t0 = $[3];
92
- const refreshAppearance = useEvent(t0);
93
- let t1;
94
- let t2;
95
- if ($[4] !== isEnabled || $[5] !== layout || $[6] !== refreshAppearance || $[7] !== scroller) {
96
- t1 = () => {
97
- if (!isEnabled || !scroller) return;
98
- const update = () => {
99
- const width = scroller.clientWidth;
100
- const next = width > 0 && layout.totalWidth > width ? getColumnWindowRange(layout, Math.abs(scroller.scrollLeft), width) : null;
101
- setRange((previous) => sameRange(previous, next) ? previous : next);
132
+ $[8] = isWindowEnabled;
133
+ $[9] = layout.totalWidth;
134
+ $[10] = scroller;
135
+ $[11] = t2;
136
+ } else t2 = $[11];
137
+ const refreshAppearance = useEvent(t2);
138
+ let t3;
139
+ let t4;
140
+ if ($[12] !== isWindowEnabled || $[13] !== layout || $[14] !== refreshAppearance || $[15] !== scroller) {
141
+ t3 = () => {
142
+ if (!isWindowEnabled || !scroller) return;
143
+ const update = (t5) => {
144
+ const reset = t5 === void 0 ? false : t5;
145
+ const width_0 = scroller.clientWidth;
146
+ const offset = Math.abs(scroller.scrollLeft);
147
+ setRange((previous_0) => {
148
+ const next_0 = width_0 > 0 && layout.totalWidth > width_0 ? getBufferedColumnWindowRange(layout, reset ? null : previous_0, offset, width_0) : null;
149
+ return sameRange(previous_0, next_0) ? previous_0 : next_0;
150
+ });
151
+ };
152
+ let lastOffset = Math.abs(scroller.scrollLeft);
153
+ let lastVerticalOffset = scroller.scrollTop;
154
+ const onScroll = () => {
155
+ const offset_0 = Math.abs(scroller.scrollLeft);
156
+ const verticalOffset = scroller.scrollTop;
157
+ const reset_0 = verticalOffset !== lastVerticalOffset;
158
+ lastVerticalOffset = verticalOffset;
159
+ if (offset_0 === lastOffset && !reset_0) return;
160
+ lastOffset = offset_0;
161
+ update(reset_0);
102
162
  };
103
163
  refreshAppearance();
104
- update();
164
+ update(true);
105
165
  const observer = new ResizeObserver(() => {
106
166
  refreshAppearance();
107
- update();
167
+ update(true);
108
168
  });
109
169
  observer.observe(scroller);
110
- scroller.addEventListener("scroll", update, { passive: true });
170
+ scroller.addEventListener("scroll", onScroll, { passive: true });
111
171
  return () => {
112
172
  observer.disconnect();
113
- scroller.removeEventListener("scroll", update);
173
+ scroller.removeEventListener("scroll", onScroll);
114
174
  };
115
175
  };
116
- t2 = [
117
- isEnabled,
176
+ t4 = [
177
+ isWindowEnabled,
118
178
  layout,
119
179
  refreshAppearance,
120
180
  scroller
121
181
  ];
122
- $[4] = isEnabled;
123
- $[5] = layout;
124
- $[6] = refreshAppearance;
125
- $[7] = scroller;
126
- $[8] = t1;
127
- $[9] = t2;
182
+ $[12] = isWindowEnabled;
183
+ $[13] = layout;
184
+ $[14] = refreshAppearance;
185
+ $[15] = scroller;
186
+ $[16] = t3;
187
+ $[17] = t4;
128
188
  } else {
129
- t1 = $[8];
130
- t2 = $[9];
189
+ t3 = $[16];
190
+ t4 = $[17];
131
191
  }
132
- useLayoutEffect(t1, t2);
133
- const t3 = isEnabled && fitsRow ? range : null;
134
- let t4;
135
- if ($[10] !== layout.columns || $[11] !== t3 || $[12] !== treeColumnKey) {
136
- t4 = getColumnWindowSegments(layout.columns, t3, treeColumnKey);
137
- $[10] = layout.columns;
138
- $[11] = t3;
139
- $[12] = treeColumnKey;
140
- $[13] = t4;
141
- } else t4 = $[13];
142
- let t5;
143
- if ($[14] !== refreshAppearance || $[15] !== t4) {
144
- t5 = {
145
- segments: t4,
192
+ useLayoutEffect(t3, t4);
193
+ const t5 = isWindowEnabled && fitsRow ? range : null;
194
+ let t6;
195
+ if ($[18] !== layout.columns || $[19] !== t5 || $[20] !== treeColumnKey) {
196
+ t6 = getColumnWindowSegments(layout.columns, t5, treeColumnKey);
197
+ $[18] = layout.columns;
198
+ $[19] = t5;
199
+ $[20] = treeColumnKey;
200
+ $[21] = t6;
201
+ } else t6 = $[21];
202
+ let t7;
203
+ if ($[22] !== refreshAppearance || $[23] !== resetRange || $[24] !== t6) {
204
+ t7 = {
205
+ resetRange,
206
+ segments: t6,
146
207
  refreshAppearance
147
208
  };
148
- $[14] = refreshAppearance;
149
- $[15] = t4;
150
- $[16] = t5;
151
- } else t5 = $[16];
152
- return t5;
209
+ $[22] = refreshAppearance;
210
+ $[23] = resetRange;
211
+ $[24] = t6;
212
+ $[25] = t7;
213
+ } else t7 = $[25];
214
+ return t7;
153
215
  }
154
216
 
155
217
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"use-column-window.js","names":["CONTAINER_STYLES","useLayoutEffect","useState","useEvent","Styles","CubeResolvedColumn","CubeTableColumnLayout","COLUMN_OVERSCAN","SAFE_FRAME_STYLES","Set","filter","key","includes","ColumnWindowRange","first","last","sameRange","left","right","ColumnWindowSegment","column","T","span","canWindowColumns","columns","styles","every","width","Number","isFinite","cellProps","Object","keys","has","getColumnWindowRange","layout","offset","viewportWidth","start","Math","max","pinnedStartWidth","end","pinnedEndWidth","position","length","next","min","index","retainColumn","treeColumnKey","pin","isStructural","isRowHeader","autoHeight","render","cellStyles","getColumnWindowSegments","range","segments","omitted","firstOmittedKey","flushGap","push","useColumnWindow","scroller","isEnabled","$","_c","setRange","fitsRow","setFitsRow","t0","totalWidth","clientWidth","table","querySelector","computed","getComputedStyle","rowHeight","getPropertyValue","trim","height","parseFloat","lineHeight","refreshAppearance","t1","t2","update","abs","scrollLeft","previous","observer","ResizeObserver","observe","addEventListener","passive","disconnect","removeEventListener","t3","t4","t5"],"sources":["../../../../src/components/data/TableBase/use-column-window.ts"],"sourcesContent":["import { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { useLayoutEffect, useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { CubeResolvedColumn, CubeTableColumnLayout } from './types';\n\n// Keep nearby cells ready for a horizontal flick without multiplying the\n// mounted row window by the entire column collection.\nconst COLUMN_OVERSCAN = 300;\nconst SAFE_FRAME_STYLES = new Set<string>(\n CONTAINER_STYLES.filter(\n (key) => !['font', 'preset', 'whiteSpace'].includes(key),\n ),\n);\n\nexport interface ColumnWindowRange {\n first: number;\n last: number;\n}\n\nfunction sameRange(\n left: ColumnWindowRange | null,\n right: ColumnWindowRange | null,\n) {\n if (left == null || right == null) return left === right;\n return left.first === right.first && left.last === right.last;\n}\n\nexport type ColumnWindowSegment<T> =\n | { column: CubeResolvedColumn<T>; key: string }\n | { column?: undefined; key: string; span: number };\n\n/** Arbitrary body styling and DOM spans need the complete intrinsic layout. */\nexport function canWindowColumns<T>(\n columns: readonly CubeResolvedColumn<T>[],\n styles?: Styles,\n) {\n return (\n columns.every(\n (column) =>\n column.width != null &&\n column.width > 0 &&\n Number.isFinite(column.width) &&\n !column.cellProps,\n ) && Object.keys(styles ?? {}).every((key) => SAFE_FRAME_STYLES.has(key))\n );\n}\n\nexport function getColumnWindowRange<T>(\n layout: CubeTableColumnLayout<T>,\n offset: number,\n viewportWidth: number,\n): ColumnWindowRange {\n const start = Math.max(0, offset + layout.pinnedStartWidth - COLUMN_OVERSCAN);\n const end = offset + viewportWidth - layout.pinnedEndWidth + COLUMN_OVERSCAN;\n let position = 0;\n let first = layout.columns.length;\n let last = -1;\n\n for (const column of layout.columns) {\n const next = position + column.width!;\n if (next > start && position < end) {\n first = Math.min(first, column.index);\n last = column.index;\n }\n position = next;\n }\n\n return { first, last };\n}\n\n/** Preserve height-bearing cells, native controls and row naming offscreen. */\nfunction retainColumn<T>(\n column: CubeResolvedColumn<T>,\n treeColumnKey?: string,\n) {\n return (\n column.pin != null ||\n column.isStructural ||\n column.isRowHeader ||\n column.key === treeColumnKey ||\n column.autoHeight ||\n column.render != null ||\n column.cellStyles != null\n );\n}\n\nexport function getColumnWindowSegments<T>(\n columns: readonly CubeResolvedColumn<T>[],\n range: ColumnWindowRange | null,\n treeColumnKey?: string,\n): ColumnWindowSegment<T>[] {\n const segments: ColumnWindowSegment<T>[] = [];\n let omitted = 0;\n let firstOmittedKey = '';\n\n function flushGap() {\n if (!omitted) return;\n segments.push({ key: `column-gap:${firstOmittedKey}`, span: omitted });\n omitted = 0;\n }\n\n for (const column of columns) {\n if (\n range == null ||\n (column.index >= range.first && column.index <= range.last) ||\n retainColumn(column, treeColumnKey)\n ) {\n flushGap();\n segments.push({ key: `column-cell:${column.key}`, column });\n } else {\n if (!omitted) firstOmittedKey = column.key;\n omitted++;\n // Native table cells clamp colSpan to 1000.\n if (omitted === 1000) flushGap();\n }\n }\n flushGap();\n return segments;\n}\n\nexport function useColumnWindow<T>(\n layout: CubeTableColumnLayout<T>,\n scroller: HTMLDivElement | null,\n isEnabled: boolean,\n treeColumnKey?: string,\n) {\n const [range, setRange] = useState<ColumnWindowRange | null>(null);\n const [fitsRow, setFitsRow] = useState(false);\n const refreshAppearance = useEvent(() => {\n if (\n !isEnabled ||\n !scroller ||\n scroller.clientWidth <= 0 ||\n layout.totalWidth! <= scroller.clientWidth\n ) {\n return;\n }\n const table = scroller?.querySelector('table');\n if (!table) return;\n const computed = getComputedStyle(table);\n const rowHeight = computed.getPropertyValue('--row-height').trim();\n const height = parseFloat(rowHeight);\n const lineHeight = parseFloat(computed.lineHeight);\n // Empty default cells can be shorter than text. Measure the inherited\n // tokens, since Root can override both typography and the size scale.\n setFitsRow(\n rowHeight === `${height}px` &&\n Number.isFinite(height) &&\n height >= lineHeight,\n );\n });\n\n useLayoutEffect(() => {\n if (!isEnabled || !scroller) {\n return;\n }\n\n const update = () => {\n const width = scroller.clientWidth;\n const next =\n width > 0 && layout.totalWidth! > width\n ? getColumnWindowRange(layout, Math.abs(scroller.scrollLeft), width)\n : null;\n // Vertical scroll and movement within the same column band add no render.\n setRange((previous) => (sameRange(previous, next) ? previous : next));\n };\n refreshAppearance();\n update();\n const observer = new ResizeObserver(() => {\n refreshAppearance();\n update();\n });\n observer.observe(scroller);\n scroller.addEventListener('scroll', update, { passive: true });\n return () => {\n observer.disconnect();\n scroller.removeEventListener('scroll', update);\n };\n }, [isEnabled, layout, refreshAppearance, scroller]);\n\n return {\n segments: getColumnWindowSegments(\n layout.columns,\n isEnabled && fitsRow ? range : null,\n treeColumnKey,\n ),\n refreshAppearance,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-column-window.js","names":["CONTAINER_STYLES","useLayoutEffect","useState","useEvent","Styles","CubeResolvedColumn","CubeTableColumnLayout","COLUMN_OVERSCAN","MAX_REFILL_COLUMNS","SAFE_FRAME_STYLES","Set","filter","key","includes","ColumnWindowRange","first","last","sameRange","left","right","ColumnWindowSegment","column","T","span","canWindowColumns","columns","styles","every","width","Number","isFinite","cellProps","Object","keys","has","getColumnWindowRange","layout","offset","viewportWidth","overscanStart","overscanEnd","start","Math","max","pinnedStartWidth","end","pinnedEndWidth","position","length","next","min","index","getBufferedColumnWindowRange","previous","required","totalWidth","extendsStart","extendsEnd","refilled","retainColumn","treeColumnKey","pin","isStructural","isRowHeader","autoHeight","render","cellStyles","getColumnWindowSegments","range","segments","omitted","firstOmittedKey","flushGap","push","useColumnWindow","scroller","isEnabled","$","_c","t0","some","isWindowEnabled","setRange","fitsRow","setFitsRow","t1","clientWidth","abs","scrollLeft","resetRange","t2","table","querySelector","computed","getComputedStyle","rowHeight","getPropertyValue","trim","height","parseFloat","lineHeight","refreshAppearance","t3","t4","update","t5","reset","undefined","width_0","previous_0","next_0","lastOffset","lastVerticalOffset","scrollTop","onScroll","offset_0","verticalOffset","reset_0","observer","ResizeObserver","observe","addEventListener","passive","disconnect","removeEventListener","t6","t7"],"sources":["../../../../src/components/data/TableBase/use-column-window.ts"],"sourcesContent":["import { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { useLayoutEffect, useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { CubeResolvedColumn, CubeTableColumnLayout } from './types';\n\n// Keep nearby cells ready for a horizontal flick without multiplying the\n// mounted row window by the entire column collection.\nconst COLUMN_OVERSCAN = 300;\nconst MAX_REFILL_COLUMNS = 1;\nconst SAFE_FRAME_STYLES = new Set<string>(\n CONTAINER_STYLES.filter(\n (key) => !['font', 'preset', 'whiteSpace'].includes(key),\n ),\n);\n\nexport interface ColumnWindowRange {\n first: number;\n last: number;\n}\n\nfunction sameRange(\n left: ColumnWindowRange | null,\n right: ColumnWindowRange | null,\n) {\n if (left == null || right == null) return left === right;\n return left.first === right.first && left.last === right.last;\n}\n\nexport type ColumnWindowSegment<T> =\n | { column: CubeResolvedColumn<T>; key: string }\n | { column?: undefined; key: string; span: number };\n\n/** Arbitrary body styling and DOM spans need the complete intrinsic layout. */\nexport function canWindowColumns<T>(\n columns: readonly CubeResolvedColumn<T>[],\n styles?: Styles,\n) {\n return (\n columns.every(\n (column) =>\n column.width != null &&\n column.width > 0 &&\n Number.isFinite(column.width) &&\n !column.cellProps,\n ) && Object.keys(styles ?? {}).every((key) => SAFE_FRAME_STYLES.has(key))\n );\n}\n\nexport function getColumnWindowRange<T>(\n layout: CubeTableColumnLayout<T>,\n offset: number,\n viewportWidth: number,\n overscanStart = COLUMN_OVERSCAN,\n overscanEnd = COLUMN_OVERSCAN,\n): ColumnWindowRange {\n const start = Math.max(0, offset + layout.pinnedStartWidth - overscanStart);\n const end = offset + viewportWidth - layout.pinnedEndWidth + overscanEnd;\n let position = 0;\n let first = layout.columns.length;\n let last = -1;\n\n for (const column of layout.columns) {\n const next = position + column.width!;\n if (next > start && position < end) {\n first = Math.min(first, column.index);\n last = column.index;\n }\n position = next;\n }\n\n return { first, last };\n}\n\n/** Refill the moving edge without rebuilding rows at every column boundary. */\nexport function getBufferedColumnWindowRange<T>(\n layout: CubeTableColumnLayout<T>,\n previous: ColumnWindowRange | null,\n offset: number,\n viewportWidth: number,\n): ColumnWindowRange {\n const required = getColumnWindowRange(layout, offset, viewportWidth);\n if (!previous) return required;\n // Native scroll extents round fractional widths; no ahead buffer is\n // needed within a pixel of either endpoint.\n if (offset <= 0 || offset >= layout.totalWidth! - viewportWidth - 1)\n return required;\n const extendsStart = required.first < previous.first;\n const extendsEnd = required.last > previous.last;\n if (!extendsStart && !extendsEnd) {\n const first = Math.max(previous.first, required.first - MAX_REFILL_COLUMNS);\n const last = Math.min(previous.last, required.last + MAX_REFILL_COLUMNS);\n return first === previous.first && last === previous.last\n ? previous\n : { first, last };\n }\n // Both edges moving means the viewport/layout changed, not one scroll edge.\n if (extendsStart && extendsEnd) return required;\n const refilled = getColumnWindowRange(\n layout,\n offset,\n viewportWidth,\n extendsStart ? COLUMN_OVERSCAN * 2 : COLUMN_OVERSCAN,\n extendsEnd ? COLUMN_OVERSCAN * 2 : COLUMN_OVERSCAN,\n );\n // A pixel-only refill retains too many narrow cells during diagonal scroll.\n return {\n first: Math.max(refilled.first, required.first - MAX_REFILL_COLUMNS),\n last: Math.min(refilled.last, required.last + MAX_REFILL_COLUMNS),\n };\n}\n\n/** Preserve height-bearing cells, native controls and row naming offscreen. */\nfunction retainColumn<T>(\n column: CubeResolvedColumn<T>,\n treeColumnKey?: string,\n) {\n return (\n column.pin != null ||\n column.isStructural ||\n column.isRowHeader ||\n column.key === treeColumnKey ||\n column.autoHeight ||\n column.render != null ||\n column.cellStyles != null\n );\n}\n\nexport function getColumnWindowSegments<T>(\n columns: readonly CubeResolvedColumn<T>[],\n range: ColumnWindowRange | null,\n treeColumnKey?: string,\n): ColumnWindowSegment<T>[] {\n const segments: ColumnWindowSegment<T>[] = [];\n let omitted = 0;\n let firstOmittedKey = '';\n\n function flushGap() {\n if (!omitted) return;\n segments.push({ key: `column-gap:${firstOmittedKey}`, span: omitted });\n omitted = 0;\n }\n\n for (const column of columns) {\n if (\n range == null ||\n (column.index >= range.first && column.index <= range.last) ||\n retainColumn(column, treeColumnKey)\n ) {\n flushGap();\n segments.push({ key: `column-cell:${column.key}`, column });\n } else {\n if (!omitted) firstOmittedKey = column.key;\n omitted++;\n // Native table cells clamp colSpan to 1000.\n if (omitted === 1000) flushGap();\n }\n }\n flushGap();\n return segments;\n}\n\nexport function useColumnWindow<T>(\n layout: CubeTableColumnLayout<T>,\n scroller: HTMLDivElement | null,\n isEnabled: boolean,\n treeColumnKey?: string,\n) {\n const isWindowEnabled =\n isEnabled &&\n layout.columns.some((column) => !retainColumn(column, treeColumnKey));\n const [range, setRange] = useState<ColumnWindowRange | null>(null);\n const [fitsRow, setFitsRow] = useState(false);\n const resetRange = () => {\n const width = scroller?.clientWidth ?? 0;\n const next =\n isWindowEnabled && scroller && width > 0 && layout.totalWidth! > width\n ? getColumnWindowRange(layout, Math.abs(scroller.scrollLeft), width)\n : null;\n setRange((previous) => (sameRange(previous, next) ? previous : next));\n };\n const refreshAppearance = useEvent(() => {\n if (\n !isWindowEnabled ||\n !scroller ||\n scroller.clientWidth <= 0 ||\n layout.totalWidth! <= scroller.clientWidth\n ) {\n return;\n }\n const table = scroller?.querySelector('table');\n if (!table) return;\n const computed = getComputedStyle(table);\n const rowHeight = computed.getPropertyValue('--row-height').trim();\n const height = parseFloat(rowHeight);\n const lineHeight = parseFloat(computed.lineHeight);\n // Empty default cells can be shorter than text. Measure the inherited\n // tokens, since Root can override both typography and the size scale.\n setFitsRow(\n rowHeight === `${height}px` &&\n Number.isFinite(height) &&\n height >= lineHeight,\n );\n });\n\n useLayoutEffect(() => {\n if (!isWindowEnabled || !scroller) {\n return;\n }\n\n const update = (reset = false) => {\n const width = scroller.clientWidth;\n const offset = Math.abs(scroller.scrollLeft);\n // Only changed bands add a render. New rows use the ordinary band,\n // so diagonal scrolling does not multiply the extra refill cells.\n setRange((previous) => {\n const next =\n width > 0 && layout.totalWidth! > width\n ? getBufferedColumnWindowRange(\n layout,\n reset ? null : previous,\n offset,\n width,\n )\n : null;\n return sameRange(previous, next) ? previous : next;\n });\n };\n let lastOffset = Math.abs(scroller.scrollLeft);\n let lastVerticalOffset = scroller.scrollTop;\n const onScroll = () => {\n const offset = Math.abs(scroller.scrollLeft);\n const verticalOffset = scroller.scrollTop;\n const reset = verticalOffset !== lastVerticalOffset;\n lastVerticalOffset = verticalOffset;\n if (offset === lastOffset && !reset) return;\n lastOffset = offset;\n update(reset);\n };\n refreshAppearance();\n update(true);\n const observer = new ResizeObserver(() => {\n refreshAppearance();\n update(true);\n });\n observer.observe(scroller);\n scroller.addEventListener('scroll', onScroll, { passive: true });\n return () => {\n observer.disconnect();\n scroller.removeEventListener('scroll', onScroll);\n };\n }, [isWindowEnabled, layout, refreshAppearance, scroller]);\n\n return {\n resetRange,\n segments: getColumnWindowSegments(\n layout.columns,\n isWindowEnabled && fitsRow ? range : null,\n treeColumnKey,\n ),\n refreshAppearance,\n };\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | 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.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | 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.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | 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.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | 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.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | Cube Dev Team */
2
2
  import { useDebouncedValue } from "../../../_internal/hooks/use-debounced-value.js";
3
3
  import { getColumnText } 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.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | 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.193.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.1 | 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";