@cube-dev/ui-kit 0.190.2 → 0.190.4

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 (609) hide show
  1. package/dist/CHANGELOG.md +22 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -1
  37. package/dist/components/actions/actions-run.js +1 -1
  38. package/dist/components/actions/index.js +1 -1
  39. package/dist/components/actions/use-action.js +6 -3
  40. package/dist/components/actions/use-action.js.map +1 -1
  41. package/dist/components/actions/use-anchored-menu.js +1 -1
  42. package/dist/components/actions/use-context-menu.js +1 -1
  43. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  44. package/dist/components/content/Alert/Alert.js +1 -1
  45. package/dist/components/content/Alert/use-alert.js +1 -1
  46. package/dist/components/content/Avatar/Avatar.js +1 -1
  47. package/dist/components/content/Badge/Badge.js +1 -1
  48. package/dist/components/content/Card/Card.js +1 -1
  49. package/dist/components/content/Content.js +1 -1
  50. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  51. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  53. package/dist/components/content/Divider.js +1 -1
  54. package/dist/components/content/Footer.js +1 -1
  55. package/dist/components/content/Header.js +1 -1
  56. package/dist/components/content/HotKeys/HotKeys.d.ts +5 -1
  57. package/dist/components/content/HotKeys/HotKeys.js +40 -34
  58. package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
  59. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  60. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  61. package/dist/components/content/Item/Item.js +391 -338
  62. package/dist/components/content/Item/Item.js.map +1 -1
  63. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  64. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  65. package/dist/components/content/Layout/GridLayout.js +1 -1
  66. package/dist/components/content/Layout/Layout.js +1 -1
  67. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  68. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  69. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  70. package/dist/components/content/Layout/LayoutContent.js +1 -1
  71. package/dist/components/content/Layout/LayoutContext.js +1 -1
  72. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  73. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  74. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  75. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  76. package/dist/components/content/Layout/LayoutPane.js +1 -1
  77. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  78. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  79. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  80. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  81. package/dist/components/content/Layout/index.js +1 -1
  82. package/dist/components/content/Layout/utils.js +1 -1
  83. package/dist/components/content/Paragraph.js +1 -1
  84. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  85. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  86. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  87. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  88. package/dist/components/content/Result/Result.js +1 -1
  89. package/dist/components/content/Skeleton/Skeleton.d.ts +1 -0
  90. package/dist/components/content/Skeleton/Skeleton.js +5 -3
  91. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  92. package/dist/components/content/Tag/Tag.js +1 -1
  93. package/dist/components/content/Text.d.ts +14 -14
  94. package/dist/components/content/Text.js +1 -1
  95. package/dist/components/content/TextItem/TextItem.js +1 -1
  96. package/dist/components/content/Title.js +1 -1
  97. package/dist/components/content/Tree/Tree.js +1 -1
  98. package/dist/components/content/Tree/TreeNode.js +8 -7
  99. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  100. package/dist/components/content/Tree/index.d.ts +1 -1
  101. package/dist/components/content/Tree/styled.js +1 -1
  102. package/dist/components/content/Tree/tree-index.js +1 -1
  103. package/dist/components/content/Tree/types.d.ts +1 -1
  104. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  105. package/dist/components/content/Tree/use-load-data.js +1 -1
  106. package/dist/components/content/highlightText.js +1 -1
  107. package/dist/components/content/use-auto-tooltip.js +1 -1
  108. package/dist/components/data/DataTable/DataTable.js +1 -1
  109. package/dist/components/data/ItemTable/ItemTable.js +439 -352
  110. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  111. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  112. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  113. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  114. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  115. package/dist/components/data/ItemTable/use-item-table-column-widths.js +97 -0
  116. package/dist/components/data/ItemTable/use-item-table-column-widths.js.map +1 -0
  117. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +144 -0
  118. package/dist/components/data/ItemTable/use-item-table-drag-drop.js.map +1 -0
  119. package/dist/components/data/ItemTable/use-item-table-pagination.js +143 -0
  120. package/dist/components/data/ItemTable/use-item-table-pagination.js.map +1 -0
  121. package/dist/components/data/ItemTable/use-item-table-selection.js +141 -0
  122. package/dist/components/data/ItemTable/use-item-table-selection.js.map +1 -0
  123. package/dist/components/data/ItemTable/use-item-table-sort.js +135 -0
  124. package/dist/components/data/ItemTable/use-item-table-sort.js.map +1 -0
  125. package/dist/components/data/ItemTable/use-item-table-tree-model.js +107 -0
  126. package/dist/components/data/ItemTable/use-item-table-tree-model.js.map +1 -0
  127. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  128. package/dist/components/data/TableBase/RowCollection.js +1 -1
  129. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  130. package/dist/components/data/TableBase/TableRow.js +1 -1
  131. package/dist/components/data/TableBase/TableView.js +96 -297
  132. package/dist/components/data/TableBase/TableView.js.map +1 -1
  133. package/dist/components/data/TableBase/TreeGridTable.js +142 -0
  134. package/dist/components/data/TableBase/TreeGridTable.js.map +1 -0
  135. package/dist/components/data/TableBase/column-header.js +94 -0
  136. package/dist/components/data/TableBase/column-header.js.map +1 -0
  137. package/dist/components/data/TableBase/column-menu.js +1 -1
  138. package/dist/components/data/TableBase/column-styles.js +1 -1
  139. package/dist/components/data/TableBase/column-tint.js +1 -1
  140. package/dist/components/data/TableBase/row-menu.js +1 -1
  141. package/dist/components/data/TableBase/styled.js +3 -2
  142. package/dist/components/data/TableBase/styled.js.map +1 -1
  143. package/dist/components/data/TableBase/table-tree.js +1 -1
  144. package/dist/components/data/TableBase/types.js +1 -1
  145. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  146. package/dist/components/data/TableBase/use-column-menu.js +166 -0
  147. package/dist/components/data/TableBase/use-column-menu.js.map +1 -0
  148. package/dist/components/data/TableBase/use-column-order.js +1 -1
  149. package/dist/components/data/TableBase/use-container-width.js +1 -1
  150. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  151. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  152. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  153. package/dist/components/data/TableBase/use-table-search.js +1 -1
  154. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  155. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  156. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  157. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  158. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  159. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  160. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  161. package/dist/components/fields/Checkbox/context.js +1 -1
  162. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  163. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  164. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  165. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  166. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  167. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  168. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  169. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  170. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  171. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  172. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  173. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  174. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  175. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  176. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  177. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  178. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  179. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  181. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  182. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  183. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  184. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  185. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  186. package/dist/components/fields/DatePicker/period.js +1 -1
  187. package/dist/components/fields/DatePicker/props.js +1 -1
  188. package/dist/components/fields/DatePicker/utils.js +1 -1
  189. package/dist/components/fields/FileInput/FileInput.js +1 -1
  190. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  191. package/dist/components/fields/FilterPicker/FilterPicker.js +2 -2
  192. package/dist/components/fields/Input/Input.js +1 -1
  193. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  194. package/dist/components/fields/ListBox/ListBox.js +2 -2
  195. package/dist/components/fields/ListBox/optionId.js +1 -1
  196. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  197. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  198. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  199. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  200. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  201. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  202. package/dist/components/fields/Picker/Picker.js +2 -2
  203. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  204. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  205. package/dist/components/fields/RadioGroup/context.js +1 -1
  206. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  207. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  208. package/dist/components/fields/Select/Select.js +1 -1
  209. package/dist/components/fields/Slider/Gradation.js +1 -1
  210. package/dist/components/fields/Slider/HueSlider.js +1 -1
  211. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  212. package/dist/components/fields/Slider/Slider.js +1 -1
  213. package/dist/components/fields/Slider/SliderBase.js +1 -1
  214. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  215. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  216. package/dist/components/fields/Slider/elements.js +1 -1
  217. package/dist/components/fields/Slider/index.js +1 -1
  218. package/dist/components/fields/Switch/Switch.js +1 -1
  219. package/dist/components/fields/TagInput/TagInput.js +768 -723
  220. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  221. package/dist/components/fields/TagInput/TagList.js +1 -1
  222. package/dist/components/fields/TagInput/useActiveOption.js +122 -0
  223. package/dist/components/fields/TagInput/useActiveOption.js.map +1 -0
  224. package/dist/components/fields/TagInput/useTagError.js +95 -0
  225. package/dist/components/fields/TagInput/useTagError.js.map +1 -0
  226. package/dist/components/fields/TextArea/TextArea.js +1 -1
  227. package/dist/components/fields/TextInput/TextInput.js +1 -1
  228. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  229. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  230. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  231. package/dist/components/fields/TriggerActions.js +1 -1
  232. package/dist/components/fields/color/ColorPanel.js +1 -1
  233. package/dist/components/fields/color/channels.js +1 -1
  234. package/dist/components/fields/color/color.js +1 -1
  235. package/dist/components/fields/color/context.js +1 -1
  236. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  237. package/dist/components/form/Form/Field.js +1 -1
  238. package/dist/components/form/Form/Form.js +1 -1
  239. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  240. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  241. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  242. package/dist/components/form/Form/SubmitError.js +1 -1
  243. package/dist/components/form/Form/backend.js +1 -1
  244. package/dist/components/form/Form/index.js +1 -1
  245. package/dist/components/form/Form/modern/actions.js +1 -1
  246. package/dist/components/form/Form/modern/context.js +1 -1
  247. package/dist/components/form/Form/modern/controller.js +1 -1
  248. package/dist/components/form/Form/modern/field-binding.js +1 -1
  249. package/dist/components/form/Form/modern/field.js +1 -1
  250. package/dist/components/form/Form/modern/react.js +1 -1
  251. package/dist/components/form/Form/modern/store.js +1 -1
  252. package/dist/components/form/Form/modern/validation.js +1 -1
  253. package/dist/components/form/Form/modern/values.js +1 -1
  254. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  255. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  256. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  257. package/dist/components/form/Form/use-field/use-field.js +1 -1
  258. package/dist/components/form/Form/use-form.js +1 -1
  259. package/dist/components/form/Form/validation.js +1 -1
  260. package/dist/components/form/Label.js +1 -1
  261. package/dist/components/form/legacy-tooltip.js +1 -1
  262. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  263. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  264. package/dist/components/form/validation/use-validation-props.js +1 -1
  265. package/dist/components/form/wrapper.js +1 -1
  266. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  267. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  268. package/dist/components/layout/Board/Board.js +1 -1
  269. package/dist/components/layout/Board/BoardProvider.js +1 -1
  270. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  271. package/dist/components/layout/Board/Widget.js +1 -1
  272. package/dist/components/layout/Board/WidgetHost.js +1 -1
  273. package/dist/components/layout/Board/board-context.js +1 -1
  274. package/dist/components/layout/Board/board-store.js +1 -1
  275. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  276. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  277. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  278. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  279. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  280. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  281. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  282. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  283. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  284. package/dist/components/layout/Board/index.js +1 -1
  285. package/dist/components/layout/Board/responsive-utils.js +1 -1
  286. package/dist/components/layout/Board/use-board-layout.js +1 -1
  287. package/dist/components/layout/Board/use-board-registry.js +1 -1
  288. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  289. package/dist/components/layout/Board/use-board-selection.js +1 -1
  290. package/dist/components/layout/Flex.js +1 -1
  291. package/dist/components/layout/Flow.js +1 -1
  292. package/dist/components/layout/Grid.js +1 -1
  293. package/dist/components/layout/Panel.js +1 -1
  294. package/dist/components/layout/Prefix.js +1 -1
  295. package/dist/components/layout/ResizablePanel.js +1 -1
  296. package/dist/components/layout/Space.js +1 -1
  297. package/dist/components/layout/Suffix.js +1 -1
  298. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  299. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  300. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  301. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  302. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  303. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  304. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  305. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  306. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  307. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  308. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  309. package/dist/components/navigation/Tabs/styled.js +1 -1
  310. package/dist/components/navigation/Tabs/types.js +1 -1
  311. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  312. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  313. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  314. package/dist/components/other/Calendar/Calendar.js +1 -1
  315. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  316. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  317. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  318. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  319. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  320. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  321. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  322. package/dist/components/other/Calendar/styled.js +1 -1
  323. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  324. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  325. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  326. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  327. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  328. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  329. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  330. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  331. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  332. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  333. package/dist/components/overlays/Dialog/context.js +1 -1
  334. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  335. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  336. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  337. package/dist/components/overlays/Modal/Modal.js +1 -1
  338. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  339. package/dist/components/overlays/Modal/Overlay.js +1 -1
  340. package/dist/components/overlays/Modal/Popover.js +1 -1
  341. package/dist/components/overlays/Modal/Tray.js +1 -1
  342. package/dist/components/overlays/Modal/Underlay.js +1 -1
  343. package/dist/components/overlays/Notifications/Notification.js +1 -1
  344. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  345. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  346. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  347. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  348. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  349. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  350. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  351. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  352. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  353. package/dist/components/overlays/Notifications/index.js +1 -1
  354. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  355. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  356. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  357. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  358. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  359. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  360. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  361. package/dist/components/overlays/Toast/index.js +1 -1
  362. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  363. package/dist/components/overlays/Toast/useToast.js +1 -1
  364. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  365. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  366. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  367. package/dist/components/overlays/Tooltip/context.js +1 -1
  368. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  369. package/dist/components/portal/Portal.js +1 -1
  370. package/dist/components/portal/PortalProvider.js +1 -1
  371. package/dist/components/portal/usePortal.js +1 -1
  372. package/dist/components/shared/DraggableCollection.js +1 -1
  373. package/dist/components/shared/InvalidIcon.js +1 -1
  374. package/dist/components/shared/ValidIcon.js +1 -1
  375. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  376. package/dist/components/status/Spin/Cube.js +1 -1
  377. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  378. package/dist/components/status/Spin/Spin.js +1 -1
  379. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  380. package/dist/data/item-themes.js +1 -1
  381. package/dist/data/themes.js +1 -1
  382. package/dist/eslint-plugin/defaults.generated.js +1 -1
  383. package/dist/eslint-plugin/index.js +1 -1
  384. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  385. package/dist/i18n/I18nProvider.js +1 -1
  386. package/dist/i18n/createFormatter.js +1 -1
  387. package/dist/i18n/index.js +1 -1
  388. package/dist/i18n/instance.js +1 -1
  389. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  390. package/dist/i18n/locales/en-US/uikit.js +1 -1
  391. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  392. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  393. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  394. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  395. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  396. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  397. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  398. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  399. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  400. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  401. package/dist/i18n/locales.js +1 -1
  402. package/dist/i18n/useFormatter.js +1 -1
  403. package/dist/i18n/useI18n.js +1 -1
  404. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  405. package/dist/icons/AdjustmentsIcon.js +1 -1
  406. package/dist/icons/AiIcon.js +1 -1
  407. package/dist/icons/AreaChartIcon.js +1 -1
  408. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  409. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  410. package/dist/icons/BackwardIcon.js +1 -1
  411. package/dist/icons/BarChartIcon.js +1 -1
  412. package/dist/icons/BellFilledIcon.js +1 -1
  413. package/dist/icons/BellIcon.js +1 -1
  414. package/dist/icons/BooleanIcon.js +1 -1
  415. package/dist/icons/CalendarEditIcon.js +1 -1
  416. package/dist/icons/CalendarIcon.js +1 -1
  417. package/dist/icons/CaretDownIcon.js +1 -1
  418. package/dist/icons/CaretUpIcon.js +1 -1
  419. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  420. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  421. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  422. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  423. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  424. package/dist/icons/ChartBarLineIcon.js +1 -1
  425. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  426. package/dist/icons/ChartBarStackedIcon.js +1 -1
  427. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  428. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  429. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  430. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  431. package/dist/icons/ChartBubbleIcon.js +1 -1
  432. package/dist/icons/ChartDonut2Icon.js +1 -1
  433. package/dist/icons/ChartFunnelIcon.js +1 -1
  434. package/dist/icons/ChartHeatmapIcon.js +1 -1
  435. package/dist/icons/ChartKPIIcon.js +1 -1
  436. package/dist/icons/ChartPie2Icon.js +1 -1
  437. package/dist/icons/ChartScatterIcon.js +1 -1
  438. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  439. package/dist/icons/CheckCircleIcon.js +1 -1
  440. package/dist/icons/CheckIcon.js +1 -1
  441. package/dist/icons/CircleFilledIcon.js +1 -1
  442. package/dist/icons/ClearIcon.js +1 -1
  443. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  444. package/dist/icons/CloseCircleIcon.js +1 -1
  445. package/dist/icons/CloseIcon.js +1 -1
  446. package/dist/icons/CodeIcon.js +1 -1
  447. package/dist/icons/ColumnTotalIcon.js +1 -1
  448. package/dist/icons/CopyIcon.js +1 -1
  449. package/dist/icons/CountIcon.js +1 -1
  450. package/dist/icons/CubeIcon.js +1 -1
  451. package/dist/icons/CubePauseIcon.js +1 -1
  452. package/dist/icons/CubePlayIcon.js +1 -1
  453. package/dist/icons/CurrencyDollarIcon.js +1 -1
  454. package/dist/icons/DangerIcon.js +1 -1
  455. package/dist/icons/DashboardIcon.js +1 -1
  456. package/dist/icons/DatabaseIcon.js +1 -1
  457. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  458. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  459. package/dist/icons/DirectionIcon.js +1 -1
  460. package/dist/icons/DonutIcon.js +1 -1
  461. package/dist/icons/DownIcon.js +1 -1
  462. package/dist/icons/EditIcon.js +1 -1
  463. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  464. package/dist/icons/ExclamationCircleIcon.js +1 -1
  465. package/dist/icons/ExclamationIcon.js +1 -1
  466. package/dist/icons/EyeIcon.js +1 -1
  467. package/dist/icons/EyeInvisibleIcon.js +1 -1
  468. package/dist/icons/FilterIcon.js +1 -1
  469. package/dist/icons/FolderFilledIcon.js +1 -1
  470. package/dist/icons/FolderIcon.js +1 -1
  471. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  472. package/dist/icons/FolderOpenIcon.js +1 -1
  473. package/dist/icons/ForwardIcon.js +1 -1
  474. package/dist/icons/GripVerticalIcon.js +1 -1
  475. package/dist/icons/HierarchyIcon.js +1 -1
  476. package/dist/icons/HierarchyOpenIcon.js +1 -1
  477. package/dist/icons/Icon.js +1 -1
  478. package/dist/icons/InfoCircleIcon.js +1 -1
  479. package/dist/icons/InfoIcon.js +1 -1
  480. package/dist/icons/KeyIcon.js +1 -1
  481. package/dist/icons/LeftIcon.js +1 -1
  482. package/dist/icons/LineChartIcon.js +1 -1
  483. package/dist/icons/LoadingIcon.js +1 -1
  484. package/dist/icons/LockFilledIcon.js +1 -1
  485. package/dist/icons/LockIcon.js +1 -1
  486. package/dist/icons/MoreIcon.js +1 -1
  487. package/dist/icons/NotAllowedIcon.js +1 -1
  488. package/dist/icons/Number123Icon.js +1 -1
  489. package/dist/icons/NumberIcon.js +1 -1
  490. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  491. package/dist/icons/PauseCircleIcon.js +1 -1
  492. package/dist/icons/PauseIcon.js +1 -1
  493. package/dist/icons/PercentageIcon.js +1 -1
  494. package/dist/icons/PieChartIcon.js +1 -1
  495. package/dist/icons/PipetteIcon.js +1 -1
  496. package/dist/icons/PlayCircleIcon.js +1 -1
  497. package/dist/icons/PlayIcon.js +1 -1
  498. package/dist/icons/PlusIcon.js +1 -1
  499. package/dist/icons/ProgressBarIcon.js +1 -1
  500. package/dist/icons/ReloadIcon.js +1 -1
  501. package/dist/icons/ReportIcon.js +1 -1
  502. package/dist/icons/ReturnIcon.js +1 -1
  503. package/dist/icons/RightIcon.js +1 -1
  504. package/dist/icons/RowTotalsIcon.js +1 -1
  505. package/dist/icons/SchemeIcon.js +1 -1
  506. package/dist/icons/SearchIcon.js +1 -1
  507. package/dist/icons/SemanticQueryIcon.js +1 -1
  508. package/dist/icons/SettingsIcon.js +1 -1
  509. package/dist/icons/ShieldFilledIcon.js +1 -1
  510. package/dist/icons/ShieldIcon.js +1 -1
  511. package/dist/icons/SlashIcon.js +1 -1
  512. package/dist/icons/SparklesIcon.js +1 -1
  513. package/dist/icons/SqlIcon.js +1 -1
  514. package/dist/icons/StatsIcon.js +1 -1
  515. package/dist/icons/StopIcon.js +1 -1
  516. package/dist/icons/StringIcon.js +1 -1
  517. package/dist/icons/SubtotalsIcon.js +1 -1
  518. package/dist/icons/SwitchIcon.js +1 -1
  519. package/dist/icons/TableIcon.js +1 -1
  520. package/dist/icons/ThumbsDownIcon.js +1 -1
  521. package/dist/icons/ThumbsUpIcon.js +1 -1
  522. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  523. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  524. package/dist/icons/ThunderboltIcon.js +1 -1
  525. package/dist/icons/TimeIcon.js +1 -1
  526. package/dist/icons/TrashIcon.js +1 -1
  527. package/dist/icons/UnlockIcon.js +1 -1
  528. package/dist/icons/UpIcon.js +1 -1
  529. package/dist/icons/UserGroupIcon.js +1 -1
  530. package/dist/icons/UserIcon.js +1 -1
  531. package/dist/icons/UserLockIcon.js +1 -1
  532. package/dist/icons/ViewIcon.js +1 -1
  533. package/dist/icons/WarningFilledIcon.js +1 -1
  534. package/dist/icons/WarningIcon.js +1 -1
  535. package/dist/icons/wrap-icon.js +1 -1
  536. package/dist/index.d.ts +2 -2
  537. package/dist/index.js +1 -1
  538. package/dist/index.js.map +1 -1
  539. package/dist/probe/canonicalize.js +1 -1
  540. package/dist/probe/css.js +1 -1
  541. package/dist/probe/index.js +1 -1
  542. package/dist/provider.js +1 -1
  543. package/dist/providers/TrackingProvider.js +1 -1
  544. package/dist/providers/navigationAdapter.default.js +1 -1
  545. package/dist/tokens/all-tokens.js +1 -1
  546. package/dist/tokens/base.js +1 -1
  547. package/dist/tokens/color-seed.js +1 -1
  548. package/dist/tokens/color-theme.js +1 -1
  549. package/dist/tokens/colors.js +1 -1
  550. package/dist/tokens/layout.js +1 -1
  551. package/dist/tokens/lazy-styles.js +1 -1
  552. package/dist/tokens/legacy-color.js +1 -1
  553. package/dist/tokens/palette-config.js +1 -1
  554. package/dist/tokens/palette.js +1 -1
  555. package/dist/tokens/resolve.js +1 -1
  556. package/dist/tokens/shadows.js +1 -1
  557. package/dist/tokens/sizes.js +1 -1
  558. package/dist/tokens/spacing.js +1 -1
  559. package/dist/tokens/typography.js +1 -1
  560. package/dist/utils/ResizeSensor.js +1 -1
  561. package/dist/utils/colors.js +1 -1
  562. package/dist/utils/dotize.js +1 -1
  563. package/dist/utils/is-dev-env.js +1 -1
  564. package/dist/utils/modules.js +1 -1
  565. package/dist/utils/promise.js +1 -1
  566. package/dist/utils/raf.js +1 -1
  567. package/dist/utils/random.js +1 -1
  568. package/dist/utils/range.js +1 -1
  569. package/dist/utils/react/RenderCache.js +1 -1
  570. package/dist/utils/react/Slots.js +1 -1
  571. package/dist/utils/react/chain.js +1 -1
  572. package/dist/utils/react/disabledProps.js +1 -1
  573. package/dist/utils/react/escapePropagation.js +1 -1
  574. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  575. package/dist/utils/react/index.js +1 -1
  576. package/dist/utils/react/interactions.js +1 -1
  577. package/dist/utils/react/isTextOnly.js +1 -1
  578. package/dist/utils/react/mapProps.js +1 -1
  579. package/dist/utils/react/mergeProps.js +1 -1
  580. package/dist/utils/react/nullableValue.js +1 -1
  581. package/dist/utils/react/programmaticFocus.js +1 -1
  582. package/dist/utils/react/resolveIcon.js +1 -1
  583. package/dist/utils/react/sharedStore.js +1 -1
  584. package/dist/utils/react/useBufferedValue.js +1 -1
  585. package/dist/utils/react/useCombinedRefs.js +1 -1
  586. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  587. package/dist/utils/react/useEventBus.js +1 -1
  588. package/dist/utils/react/useId.js +1 -1
  589. package/dist/utils/react/useIsDarwin.js +1 -1
  590. package/dist/utils/react/useKeySymbols.js +1 -1
  591. package/dist/utils/react/useLayoutEffect.js +1 -1
  592. package/dist/utils/react/useLocalStorage.js +1 -1
  593. package/dist/utils/react/useMergeStyles.js +1 -1
  594. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  595. package/dist/utils/react/usePopoverSync.js +1 -1
  596. package/dist/utils/react/useQaProps.js +1 -1
  597. package/dist/utils/react/useScheme.js +1 -1
  598. package/dist/utils/react/useViewportSize.js +1 -1
  599. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  600. package/dist/utils/selection.js +1 -1
  601. package/dist/utils/styles.js +1 -1
  602. package/dist/utils/tree.js +1 -1
  603. package/dist/utils/warnings.js +1 -1
  604. package/dist/version.js +2 -2
  605. package/docs/components/actions/Link.md +2 -0
  606. package/docs/components/content/HotKeys.md +14 -2
  607. package/docs/components/content/Skeleton.md +9 -0
  608. package/docs/components/content/Tree.md +4 -2
  609. package/package.json +3 -1
@@ -0,0 +1,143 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
2
+ import { useEvent } from "../../../_internal/hooks/use-event.js";
3
+ import { clampPage, getPageInfo } from "../../navigation/Pagination/use-pagination.js";
4
+ import { reindexTableTree } from "../TableBase/table-tree.js";
5
+ import { c } from "react-compiler-runtime";
6
+ import { useControlledState } from "@react-stately/utils";
7
+
8
+ //#region src/components/data/ItemTable/use-item-table-pagination.ts
9
+ /**
10
+ * The table's pagination: page and page size, the latter persisted when the
11
+ * table owns it, the current page's rows (flat) or roots (tree), and the props
12
+ * of the footer's page control while it has anything to do.
13
+ */
14
+ function useItemTablePagination(t0) {
15
+ const $ = c(45);
16
+ const { mode, rows, treeRoots, isTree, pageSize: pageSizeProp, defaultPageSize, onPageSizeChange, pageSizeOptions, page: pageProp, defaultPage, onPageChange, total: totalProp, totalPages, hasNextPage, summary, autoHide, storage } = t0;
17
+ const [pageSize, setPageSizeState] = useControlledState(pageSizeProp, pageSizeProp === void 0 && storage.has("pageSize") ? storage.initial.pageSize ?? defaultPageSize : defaultPageSize, onPageSizeChange);
18
+ const [page, setPageState] = useControlledState(pageProp, defaultPage ?? 1, onPageChange);
19
+ const isInfinite = mode === "infinite";
20
+ const isPaginated = mode !== "off" && !isInfinite;
21
+ const isServerPaginated = mode === "server";
22
+ const total = isServerPaginated ? totalProp ?? 0 : isTree ? treeRoots.length : rows.length;
23
+ const t1 = isServerPaginated ? totalPages : void 0;
24
+ let t2;
25
+ if ($[0] !== page || $[1] !== pageSize || $[2] !== t1 || $[3] !== total) {
26
+ t2 = getPageInfo({
27
+ page,
28
+ pageSize,
29
+ total,
30
+ totalPages: t1
31
+ });
32
+ $[0] = page;
33
+ $[1] = pageSize;
34
+ $[2] = t1;
35
+ $[3] = total;
36
+ $[4] = t2;
37
+ } else t2 = $[4];
38
+ const pageInfo = t2;
39
+ let t3;
40
+ if ($[5] !== pageInfo.totalPages || $[6] !== setPageState) {
41
+ t3 = (next) => setPageState(clampPage(next, pageInfo.totalPages));
42
+ $[5] = pageInfo.totalPages;
43
+ $[6] = setPageState;
44
+ $[7] = t3;
45
+ } else t3 = $[7];
46
+ const setPage = useEvent(t3);
47
+ let t4;
48
+ if ($[8] !== pageSizeProp || $[9] !== setPageSizeState || $[10] !== setPageState || $[11] !== storage) {
49
+ t4 = (next_0) => {
50
+ setPageSizeState(next_0);
51
+ if (pageSizeProp === void 0) storage.write({ pageSize: next_0 });
52
+ setPageState(1);
53
+ };
54
+ $[8] = pageSizeProp;
55
+ $[9] = setPageSizeState;
56
+ $[10] = setPageState;
57
+ $[11] = storage;
58
+ $[12] = t4;
59
+ } else t4 = $[12];
60
+ const setPageSize = useEvent(t4);
61
+ let t5;
62
+ if ($[13] !== mode || $[14] !== pageInfo.page || $[15] !== pageSize || $[16] !== rows) {
63
+ t5 = mode === "client" ? rows.slice((pageInfo.page - 1) * pageSize, pageInfo.page * pageSize) : rows;
64
+ $[13] = mode;
65
+ $[14] = pageInfo.page;
66
+ $[15] = pageSize;
67
+ $[16] = rows;
68
+ $[17] = t5;
69
+ } else t5 = $[17];
70
+ const pageRows = t5;
71
+ let t6;
72
+ if ($[18] !== mode || $[19] !== pageInfo.page || $[20] !== pageSize || $[21] !== treeRoots) {
73
+ t6 = mode === "client" ? treeRoots.slice((pageInfo.page - 1) * pageSize, pageInfo.page * pageSize) : treeRoots;
74
+ $[18] = mode;
75
+ $[19] = pageInfo.page;
76
+ $[20] = pageSize;
77
+ $[21] = treeRoots;
78
+ $[22] = t6;
79
+ } else t6 = $[22];
80
+ let t7;
81
+ if ($[23] !== t6) {
82
+ t7 = reindexTableTree(t6);
83
+ $[23] = t6;
84
+ $[24] = t7;
85
+ } else t7 = $[24];
86
+ const pageTreeRoots = t7;
87
+ const smallestPageSize = pageSizeOptions?.length ? Math.min(...pageSizeOptions) : pageSize;
88
+ const isPaginationUseless = autoHide && !hasNextPage && pageInfo.totalPages <= 1 && total <= smallestPageSize;
89
+ const showPagination = isPaginated && !isPaginationUseless;
90
+ let t8;
91
+ if ($[25] !== hasNextPage || $[26] !== pageInfo.page || $[27] !== pageInfo.totalPages || $[28] !== pageSize || $[29] !== pageSizeOptions || $[30] !== setPage || $[31] !== setPageSize || $[32] !== showPagination || $[33] !== summary || $[34] !== total) {
92
+ t8 = showPagination ? {
93
+ page: pageInfo.page,
94
+ pageSize,
95
+ total,
96
+ totalPages: pageInfo.totalPages,
97
+ pageSizeOptions,
98
+ summary,
99
+ hasNextPage,
100
+ onPageChange: setPage,
101
+ onPageSizeChange: setPageSize
102
+ } : void 0;
103
+ $[25] = hasNextPage;
104
+ $[26] = pageInfo.page;
105
+ $[27] = pageInfo.totalPages;
106
+ $[28] = pageSize;
107
+ $[29] = pageSizeOptions;
108
+ $[30] = setPage;
109
+ $[31] = setPageSize;
110
+ $[32] = showPagination;
111
+ $[33] = summary;
112
+ $[34] = total;
113
+ $[35] = t8;
114
+ } else t8 = $[35];
115
+ const control = t8;
116
+ let t9;
117
+ if ($[36] !== control || $[37] !== isInfinite || $[38] !== isPaginated || $[39] !== pageInfo.page || $[40] !== pageRows || $[41] !== pageSize || $[42] !== pageTreeRoots || $[43] !== total) {
118
+ t9 = {
119
+ page: pageInfo.page,
120
+ pageSize,
121
+ total,
122
+ isInfinite,
123
+ isPaginated,
124
+ pageRows,
125
+ pageTreeRoots,
126
+ control
127
+ };
128
+ $[36] = control;
129
+ $[37] = isInfinite;
130
+ $[38] = isPaginated;
131
+ $[39] = pageInfo.page;
132
+ $[40] = pageRows;
133
+ $[41] = pageSize;
134
+ $[42] = pageTreeRoots;
135
+ $[43] = total;
136
+ $[44] = t9;
137
+ } else t9 = $[44];
138
+ return t9;
139
+ }
140
+
141
+ //#endregion
142
+ export { useItemTablePagination };
143
+ //# sourceMappingURL=use-item-table-pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-item-table-pagination.js","names":["useControlledState","useMemo","useEvent","clampPage","getPageInfo","reindexTableTree","TableTreeNode","useTableStorage","ItemTableFooterProps","CubeItemTableProps","UseItemTablePaginationOptions","Pick","T","mode","NonNullable","defaultPageSize","autoHide","rows","treeRoots","isTree","storage","ReturnType","useItemTablePagination","t0","$","_c","pageSize","pageSizeProp","onPageSizeChange","pageSizeOptions","page","pageProp","defaultPage","onPageChange","total","totalProp","totalPages","hasNextPage","summary","setPageSizeState","undefined","has","initial","value","setPageState","isInfinite","isPaginated","isServerPaginated","length","t1","t2","pageInfo","t3","next","setPage","t4","next_0","write","setPageSize","t5","slice","pageRows","t6","t7","pageTreeRoots","smallestPageSize","Math","min","isPaginationUseless","showPagination","t8","control","t9"],"sources":["../../../../src/components/data/ItemTable/use-item-table-pagination.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport {\n clampPage,\n getPageInfo,\n} from '../../navigation/Pagination/use-pagination';\nimport { reindexTableTree } from '../TableBase/table-tree';\n\nimport type { TableTreeNode } from '../TableBase/table-tree';\nimport type { useTableStorage } from '../TableBase/use-table-storage';\nimport type { ItemTableFooterProps } from './ItemTableFooter';\nimport type { CubeItemTableProps } from './types';\n\nexport interface UseItemTablePaginationOptions<T>\n extends Pick<\n CubeItemTableProps<T>,\n | 'pageSize'\n | 'onPageSizeChange'\n | 'pageSizeOptions'\n | 'page'\n | 'defaultPage'\n | 'onPageChange'\n | 'total'\n | 'totalPages'\n | 'hasNextPage'\n | 'summary'\n > {\n mode: NonNullable<CubeItemTableProps<T>['paginationMode']>;\n defaultPageSize: number;\n /** See `autoHidePagination`. */\n autoHide: boolean;\n /** The searched, sorted flat rows. */\n rows: readonly T[];\n /** The searched, sorted tree roots; empty outside tree mode. */\n treeRoots: TableTreeNode<T>[];\n isTree: boolean;\n storage: ReturnType<typeof useTableStorage>;\n}\n\n/**\n * The table's pagination: page and page size, the latter persisted when the\n * table owns it, the current page's rows (flat) or roots (tree), and the props\n * of the footer's page control while it has anything to do.\n */\nexport function useItemTablePagination<T>({\n mode,\n rows,\n treeRoots,\n isTree,\n pageSize: pageSizeProp,\n defaultPageSize,\n onPageSizeChange,\n pageSizeOptions,\n page: pageProp,\n defaultPage,\n onPageChange,\n total: totalProp,\n totalPages,\n hasNextPage,\n summary,\n autoHide,\n storage,\n}: UseItemTablePaginationOptions<T>) {\n // Deliberately not `usePagination`: that hook owns an in-memory array, and in\n // server mode `data` is a single page. Deriving the bounds from it would clamp\n // the page to 1 and swallow every page change.\n const [pageSize, setPageSizeState] = useControlledState<number>(\n pageSizeProp as number,\n pageSizeProp === undefined && storage.has('pageSize')\n ? storage.initial.pageSize ?? defaultPageSize\n : defaultPageSize,\n onPageSizeChange as (value: number) => void,\n );\n const [page, setPageState] = useControlledState<number>(\n pageProp as number,\n defaultPage ?? 1,\n onPageChange as (value: number) => void,\n );\n\n const isInfinite = mode === 'infinite';\n // Infinite scroll replaces the page control rather than adding to it.\n const isPaginated = mode !== 'off' && !isInfinite;\n const isServerPaginated = mode === 'server';\n const total = isServerPaginated\n ? totalProp ?? 0\n : isTree\n ? treeRoots.length\n : rows.length;\n\n const pageInfo = getPageInfo({\n page,\n pageSize,\n total,\n totalPages: isServerPaginated ? totalPages : undefined,\n });\n\n const setPage = useEvent((next: number) =>\n setPageState(clampPage(next, pageInfo.totalPages)),\n );\n const setPageSize = useEvent((next: number) => {\n setPageSizeState(next);\n\n if (pageSizeProp === undefined) storage.write({ pageSize: next });\n\n // The old page index points at different rows under a new page size, so\n // staying on it would silently move the user.\n setPageState(1);\n });\n\n const pageRows =\n mode === 'client'\n ? rows.slice((pageInfo.page - 1) * pageSize, pageInfo.page * pageSize)\n : rows;\n\n const pageTreeRoots = useMemo(\n () =>\n reindexTableTree(\n mode === 'client'\n ? treeRoots.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : treeRoots,\n ),\n [treeRoots, mode, pageInfo.page, pageSize],\n );\n\n /**\n * Pagination that cannot do anything is noise: one page of five rows still\n * renders \"1–5 of 5\", a page-size selector whose every option shows the same\n * five rows, and a solitary \"1\" button.\n *\n * \"Cannot do anything\" is both conditions together — a single page *and* a\n * total that even the smallest page size would not split. A 15-row single\n * page stays, because choosing \"10 / page\" would genuinely paginate it.\n */\n const smallestPageSize = pageSizeOptions?.length\n ? Math.min(...pageSizeOptions)\n : pageSize;\n\n const isPaginationUseless =\n autoHide &&\n !hasNextPage &&\n pageInfo.totalPages <= 1 &&\n total <= smallestPageSize;\n\n const showPagination = isPaginated && !isPaginationUseless;\n\n const control: ItemTableFooterProps['pagination'] = showPagination\n ? {\n page: pageInfo.page,\n pageSize,\n total,\n totalPages: pageInfo.totalPages,\n pageSizeOptions,\n summary,\n hasNextPage,\n onPageChange: setPage,\n onPageSizeChange: setPageSize,\n }\n : undefined;\n\n return {\n /** Clamped to the page count. */\n page: pageInfo.page,\n pageSize,\n total,\n isInfinite,\n isPaginated,\n /** The current page's flat rows; every row unless paging client-side. */\n pageRows,\n /** The current page's tree roots, re-indexed for the treegrid. */\n pageTreeRoots,\n /** The footer's page control; `undefined` while it is hidden. */\n control,\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,141 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
2
+ import { flattenTableTree } from "../TableBase/table-tree.js";
3
+ import { useTableSelection } from "../TableBase/use-table-selection.js";
4
+ import { c } from "react-compiler-runtime";
5
+
6
+ //#region src/components/data/ItemTable/use-item-table-selection.ts
7
+ /**
8
+ * The rows the header checkbox can reach beyond the ones on screen: the whole
9
+ * current page, which in tree mode includes collapsed descendants, and the
10
+ * wider set it acts on under `selectAllMode="filtered"`.
11
+ */
12
+ function getSelectionScope({ rows, sortedRows, isTree, sortedTreeRoots, pageTreeRoots, paginationMode }) {
13
+ const isClientPaginated = paginationMode === "client";
14
+ if (!isTree) return {
15
+ pageRows: rows,
16
+ pageRowKeys: void 0,
17
+ filteredRows: isClientPaginated ? sortedRows : rows,
18
+ filteredRowKeys: void 0
19
+ };
20
+ const pageEntries = flattenTableTree(pageTreeRoots);
21
+ const filteredEntries = isClientPaginated ? flattenTableTree(sortedTreeRoots) : pageEntries;
22
+ return {
23
+ pageRows: pageEntries.map((entry) => entry.row),
24
+ pageRowKeys: pageEntries.map((entry) => entry.key),
25
+ filteredRows: filteredEntries.map((entry) => entry.row),
26
+ filteredRowKeys: filteredEntries.map((entry) => entry.key)
27
+ };
28
+ }
29
+ /**
30
+ * `useTableSelection` over the rows the table resolved, flat or tree, with the
31
+ * selection mode implied by bulk actions.
32
+ */
33
+ function useItemTableSelection(t0) {
34
+ const $ = c(30);
35
+ const { rows, rowKeys, sortedRows, isTree, sortedTreeRoots, pageTreeRoots, paginationMode, getRowKey, selectionMode, bulkActions, selectedKeys, defaultSelectedKeys, onSelectionChange, selectAllMode, isRowSelectable, disabledKeys, treeSelectionBehavior } = t0;
36
+ let t1;
37
+ bb0: {
38
+ if (!isTree) {
39
+ t1 = void 0;
40
+ break bb0;
41
+ }
42
+ let childrenOf;
43
+ let parentOf;
44
+ if ($[0] !== sortedTreeRoots) {
45
+ childrenOf = /* @__PURE__ */ new Map();
46
+ parentOf = /* @__PURE__ */ new Map();
47
+ flattenTableTree(sortedTreeRoots).forEach((node) => {
48
+ childrenOf.set(node.key, node.children.map(_temp));
49
+ parentOf.set(node.key, node.parentKey);
50
+ });
51
+ $[0] = sortedTreeRoots;
52
+ $[1] = childrenOf;
53
+ $[2] = parentOf;
54
+ } else {
55
+ childrenOf = $[1];
56
+ parentOf = $[2];
57
+ }
58
+ let t2;
59
+ if ($[3] !== sortedTreeRoots) {
60
+ t2 = sortedTreeRoots.map(_temp2);
61
+ $[3] = sortedTreeRoots;
62
+ $[4] = t2;
63
+ } else t2 = $[4];
64
+ let t3;
65
+ if ($[5] !== childrenOf || $[6] !== parentOf || $[7] !== t2 || $[8] !== treeSelectionBehavior) {
66
+ t3 = {
67
+ rootKeys: t2,
68
+ childrenOf,
69
+ parentOf,
70
+ behavior: treeSelectionBehavior
71
+ };
72
+ $[5] = childrenOf;
73
+ $[6] = parentOf;
74
+ $[7] = t2;
75
+ $[8] = treeSelectionBehavior;
76
+ $[9] = t3;
77
+ } else t3 = $[9];
78
+ t1 = t3;
79
+ }
80
+ const selectionTree = t1;
81
+ const resolvedSelectionMode = selectionMode ?? (bulkActions?.length ? "multiple" : "none");
82
+ let t2;
83
+ if ($[10] !== isTree || $[11] !== pageTreeRoots || $[12] !== paginationMode || $[13] !== rows || $[14] !== sortedRows || $[15] !== sortedTreeRoots) {
84
+ t2 = getSelectionScope({
85
+ rows,
86
+ sortedRows,
87
+ isTree,
88
+ sortedTreeRoots,
89
+ pageTreeRoots,
90
+ paginationMode
91
+ });
92
+ $[10] = isTree;
93
+ $[11] = pageTreeRoots;
94
+ $[12] = paginationMode;
95
+ $[13] = rows;
96
+ $[14] = sortedRows;
97
+ $[15] = sortedTreeRoots;
98
+ $[16] = t2;
99
+ } else t2 = $[16];
100
+ let t3;
101
+ if ($[17] !== defaultSelectedKeys || $[18] !== disabledKeys || $[19] !== getRowKey || $[20] !== isRowSelectable || $[21] !== onSelectionChange || $[22] !== resolvedSelectionMode || $[23] !== rowKeys || $[24] !== rows || $[25] !== selectAllMode || $[26] !== selectedKeys || $[27] !== selectionTree || $[28] !== t2) {
102
+ t3 = {
103
+ rows,
104
+ rowKeys,
105
+ ...t2,
106
+ getRowKey,
107
+ selectionMode: resolvedSelectionMode,
108
+ selectedKeys,
109
+ defaultSelectedKeys,
110
+ onSelectionChange,
111
+ selectAllMode,
112
+ isRowSelectable,
113
+ disabledKeys,
114
+ tree: selectionTree
115
+ };
116
+ $[17] = defaultSelectedKeys;
117
+ $[18] = disabledKeys;
118
+ $[19] = getRowKey;
119
+ $[20] = isRowSelectable;
120
+ $[21] = onSelectionChange;
121
+ $[22] = resolvedSelectionMode;
122
+ $[23] = rowKeys;
123
+ $[24] = rows;
124
+ $[25] = selectAllMode;
125
+ $[26] = selectedKeys;
126
+ $[27] = selectionTree;
127
+ $[28] = t2;
128
+ $[29] = t3;
129
+ } else t3 = $[29];
130
+ return useTableSelection(t3);
131
+ }
132
+ function _temp2(node_0) {
133
+ return node_0.key;
134
+ }
135
+ function _temp(child) {
136
+ return child.key;
137
+ }
138
+
139
+ //#endregion
140
+ export { useItemTableSelection };
141
+ //# sourceMappingURL=use-item-table-selection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-item-table-selection.js","names":["useMemo","flattenTableTree","useTableSelection","Key","TableTreeNode","CubeTableSelectionMode","UseTableSelectionOptions","CubeItemTableProps","PaginationMode","NonNullable","SelectionScopeOptions","rows","T","sortedRows","isTree","sortedTreeRoots","pageTreeRoots","paginationMode","UseItemTableSelectionOptions","Pick","selectionMode","bulkActions","treeSelectionBehavior","getSelectionScope","isClientPaginated","pageRows","pageRowKeys","undefined","filteredRows","filteredRowKeys","pageEntries","filteredEntries","map","entry","row","key","useItemTableSelection","t0","$","_c","rowKeys","getRowKey","selectedKeys","defaultSelectedKeys","onSelectionChange","selectAllMode","isRowSelectable","disabledKeys","t1","bb0","childrenOf","parentOf","Map","forEach","node","set","children","_temp","parentKey","t2","_temp2","t3","rootKeys","behavior","selectionTree","resolvedSelectionMode","length","tree","node_0","child"],"sources":["../../../../src/components/data/ItemTable/use-item-table-selection.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { flattenTableTree } from '../TableBase/table-tree';\nimport { useTableSelection } from '../TableBase/use-table-selection';\n\nimport type { Key } from '@react-types/shared';\nimport type { TableTreeNode } from '../TableBase/table-tree';\nimport type { CubeTableSelectionMode } from '../TableBase/types';\nimport type { UseTableSelectionOptions } from '../TableBase/use-table-selection';\nimport type { CubeItemTableProps } from './types';\n\ntype PaginationMode = NonNullable<CubeItemTableProps['paginationMode']>;\n\ninterface SelectionScopeOptions<T> {\n /** The rows on screen. */\n rows: readonly T[];\n /** Every searched, sorted flat row, across pages. */\n sortedRows: readonly T[];\n isTree: boolean;\n /** Every searched, sorted tree root, across pages. */\n sortedTreeRoots: TableTreeNode<T>[];\n /** The current page's tree roots. */\n pageTreeRoots: TableTreeNode<T>[];\n paginationMode: PaginationMode;\n}\n\nexport interface UseItemTableSelectionOptions<T>\n extends SelectionScopeOptions<T>,\n Pick<\n UseTableSelectionOptions<T>,\n | 'rowKeys'\n | 'getRowKey'\n | 'selectedKeys'\n | 'defaultSelectedKeys'\n | 'onSelectionChange'\n | 'selectAllMode'\n | 'isRowSelectable'\n | 'disabledKeys'\n > {\n /** Inferred from `bulkActions` when absent. */\n selectionMode?: CubeTableSelectionMode;\n bulkActions?: CubeItemTableProps<T>['bulkActions'];\n treeSelectionBehavior: 'cascade' | 'independent';\n}\n\n/**\n * The rows the header checkbox can reach beyond the ones on screen: the whole\n * current page, which in tree mode includes collapsed descendants, and the\n * wider set it acts on under `selectAllMode=\"filtered\"`.\n */\nfunction getSelectionScope<T>({\n rows,\n sortedRows,\n isTree,\n sortedTreeRoots,\n pageTreeRoots,\n paginationMode,\n}: SelectionScopeOptions<T>): Pick<\n UseTableSelectionOptions<T>,\n 'pageRows' | 'pageRowKeys' | 'filteredRows' | 'filteredRowKeys'\n> {\n // In server mode the client only ever holds one page, so the filtered set and\n // the page coincide.\n const isClientPaginated = paginationMode === 'client';\n\n if (!isTree) {\n return {\n pageRows: rows,\n pageRowKeys: undefined,\n filteredRows: isClientPaginated ? sortedRows : rows,\n filteredRowKeys: undefined,\n };\n }\n\n const pageEntries = flattenTableTree(pageTreeRoots);\n const filteredEntries = isClientPaginated\n ? flattenTableTree(sortedTreeRoots)\n : pageEntries;\n\n return {\n pageRows: pageEntries.map((entry) => entry.row),\n pageRowKeys: pageEntries.map((entry) => entry.key),\n filteredRows: filteredEntries.map((entry) => entry.row),\n filteredRowKeys: filteredEntries.map((entry) => entry.key),\n };\n}\n\n/**\n * `useTableSelection` over the rows the table resolved, flat or tree, with the\n * selection mode implied by bulk actions.\n */\nexport function useItemTableSelection<T>({\n rows,\n rowKeys,\n sortedRows,\n isTree,\n sortedTreeRoots,\n pageTreeRoots,\n paginationMode,\n getRowKey,\n selectionMode,\n bulkActions,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode,\n isRowSelectable,\n disabledKeys,\n treeSelectionBehavior,\n}: UseItemTableSelectionOptions<T>) {\n const selectionTree = useMemo(() => {\n if (!isTree) return undefined;\n\n // Selection follows the tree the user can currently act on. In\n // particular, a search that retains only an ancestor path must not let a\n // checked ancestor reach siblings that the search removed.\n const childrenOf = new Map<Key, Key[]>();\n const parentOf = new Map<Key, Key | null>();\n\n flattenTableTree(sortedTreeRoots).forEach((node) => {\n childrenOf.set(\n node.key,\n node.children.map((child) => child.key),\n );\n parentOf.set(node.key, node.parentKey);\n });\n\n return {\n rootKeys: sortedTreeRoots.map((node) => node.key),\n childrenOf,\n parentOf,\n behavior: treeSelectionBehavior,\n };\n }, [isTree, sortedTreeRoots, treeSelectionBehavior]);\n\n // A bulk action with no way to select rows is a contradiction, so supplying\n // any implies multiple selection unless the consumer says otherwise.\n const resolvedSelectionMode =\n selectionMode ?? (bulkActions?.length ? 'multiple' : 'none');\n\n return useTableSelection<T>({\n rows,\n rowKeys,\n ...getSelectionScope({\n rows,\n sortedRows,\n isTree,\n sortedTreeRoots,\n pageTreeRoots,\n paginationMode,\n }),\n getRowKey,\n selectionMode: resolvedSelectionMode,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode,\n isRowSelectable,\n disabledKeys,\n tree: selectionTree,\n });\n}\n"],"mappings":";;;;;;;;;;;AAkDA,SAASuB,kBAAqB,EAC5BZ,MACAE,YACAC,QACAC,iBACAC,eACAC,kBAIA;CAGA,MAAMO,oBAAoBP,mBAAmB;AAE7C,KAAI,CAACH,OACH,QAAO;EACLW,UAAUd;EACVe,aAAaC;EACbC,cAAcJ,oBAAoBX,aAAaF;EAC/CkB,iBAAiBF;EAClB;CAGH,MAAMG,cAAc7B,iBAAiBe,cAAc;CACnD,MAAMe,kBAAkBP,oBACpBvB,iBAAiBc,gBAAgB,GACjCe;AAEJ,QAAO;EACLL,UAAUK,YAAYE,KAAKC,UAAUA,MAAMC,IAAI;EAC/CR,aAAaI,YAAYE,KAAKC,UAAUA,MAAME,IAAI;EAClDP,cAAcG,gBAAgBC,KAAKC,UAAUA,MAAMC,IAAI;EACvDL,iBAAiBE,gBAAgBC,KAAKC,UAAUA,MAAME,IAAG;EAC1D;;;;;;AAOH,SAAOC,sBAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAkC,MAAA,EAAA5B,MAAA6B,SAAA3B,YAAAC,QAAAC,iBAAAC,eAAAC,gBAAAwB,WAAArB,eAAAC,aAAAqB,cAAAC,qBAAAC,mBAAAC,eAAAC,iBAAAC,cAAAzB,0BAAAe;CAkBP,IAAAW;AAAAC,MAAA;AAE9B,MAAI,CAACnC,QAAM;AAAEkC,QAAOrB;AAAP,SAAAsB;;EAAiB,IAAAC;EAAA,IAAAC;AAAA,MAAAb,EAAA,OAAAvB,iBAAA;AAK9BmC,gCAAmB,IAAIE,KAAiB;AACxCD,8BAAiB,IAAIC,KAAsB;AAE3CnD,oBAAiBc,gBAAgB,CAAAsC,SAASC,SAAA;AACxCJ,eAAUK,IACRD,KAAInB,KACJmB,KAAIE,SAASxB,IAAKyB,MACpB,CAAC;AACDN,aAAQI,IAAKD,KAAInB,KAAMmB,KAAII,UAAW;KACtC;AAAApB,KAAA,KAAAvB;AAAAuB,KAAA,KAAAY;AAAAZ,KAAA,KAAAa;SAAA;AAAAD,gBAAAZ,EAAA;AAAAa,cAAAb,EAAA;;EAAA,IAAAqB;AAAA,MAAArB,EAAA,OAAAvB,iBAAA;AAGU4C,QAAA5C,gBAAeiB,IAAK4B,OAAmB;AAAAtB,KAAA,KAAAvB;AAAAuB,KAAA,KAAAqB;QAAAA,MAAArB,EAAA;EAAA,IAAAuB;AAAA,MAAAvB,EAAA,OAAAY,cAAAZ,EAAA,OAAAa,YAAAb,EAAA,OAAAqB,MAAArB,EAAA,OAAAhB,uBAAA;AAD5CuC,QAAA;IAAAC,UACKH;IAAuCT;IAAAC;IAAAY,UAGvCzC;IACX;AAAAgB,KAAA,KAAAY;AAAAZ,KAAA,KAAAa;AAAAb,KAAA,KAAAqB;AAAArB,KAAA,KAAAhB;AAAAgB,KAAA,KAAAuB;QAAAA,MAAAvB,EAAA;AALDU,OAAOa;;CAjBT,MAAAG,gBAAsBhB;CA2BtB,MAAAiB,wBACE7C,kBAAkBC,aAAW6C,SAAX,aAAA;CAA2C,IAAAP;AAAA,KAAArB,EAAA,QAAAxB,UAAAwB,EAAA,QAAAtB,iBAAAsB,EAAA,QAAArB,kBAAAqB,EAAA,QAAA3B,QAAA2B,EAAA,QAAAzB,cAAAyB,EAAA,QAAAvB,iBAAA;AAK1D4C,OAAApC,kBAAkB;GAAAZ;GAAAE;GAAAC;GAAAC;GAAAC;GAAAC;GAOpB,CAAC;AAAAqB,IAAA,MAAAxB;AAAAwB,IAAA,MAAAtB;AAAAsB,IAAA,MAAArB;AAAAqB,IAAA,MAAA3B;AAAA2B,IAAA,MAAAzB;AAAAyB,IAAA,MAAAvB;AAAAuB,IAAA,MAAAqB;OAAAA,MAAArB,EAAA;CAAA,IAAAuB;AAAA,KAAAvB,EAAA,QAAAK,uBAAAL,EAAA,QAAAS,gBAAAT,EAAA,QAAAG,aAAAH,EAAA,QAAAQ,mBAAAR,EAAA,QAAAM,qBAAAN,EAAA,QAAA2B,yBAAA3B,EAAA,QAAAE,WAAAF,EAAA,QAAA3B,QAAA2B,EAAA,QAAAO,iBAAAP,EAAA,QAAAI,gBAAAJ,EAAA,QAAA0B,iBAAA1B,EAAA,QAAAqB,IAAA;AAVwBE,OAAA;GAAAlD;GAAA6B;GAAA,GAGvBmB;GAODlB;GAAArB,eAEa6C;GAAqBvB;GAAAC;GAAAC;GAAAC;GAAAC;GAAAC;GAAAoB,MAO9BH;GACP;AAAA1B,IAAA,MAAAK;AAAAL,IAAA,MAAAS;AAAAT,IAAA,MAAAG;AAAAH,IAAA,MAAAQ;AAAAR,IAAA,MAAAM;AAAAN,IAAA,MAAA2B;AAAA3B,IAAA,MAAAE;AAAAF,IAAA,MAAA3B;AAAA2B,IAAA,MAAAO;AAAAP,IAAA,MAAAI;AAAAJ,IAAA,MAAA0B;AAAA1B,IAAA,MAAAqB;AAAArB,IAAA,MAAAuB;OAAAA,MAAAvB,EAAA;AAAA,QApBMpC,kBAAqB2D,GAoB1B;;AArEG,SAAAD,OAAAQ,QAAA;AAAA,QAqCuCd,OAAInB;;AArC3C,SAAAsB,MAAAY,OAAA;AAAA,QA+B8BA,MAAKlC"}
@@ -0,0 +1,135 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
2
+ import { useEvent } from "../../../_internal/hooks/use-event.js";
3
+ import { sortTableTree } from "../TableBase/table-tree.js";
4
+ import { compareByColumn, useTableSort } from "../TableBase/use-table-sort.js";
5
+ import { c } from "react-compiler-runtime";
6
+ import { useCollator } from "@react-aria/i18n";
7
+
8
+ //#region src/components/data/ItemTable/use-item-table-sort.ts
9
+ /**
10
+ * The table's sort: its state, persisted when the table owns it, applied to
11
+ * flat rows by `useTableSort` and to every level of a tree here.
12
+ */
13
+ function useItemTableSort(t0) {
14
+ const $ = c(35);
15
+ const { columns, rows, tree, mode, sort: sortProp, defaultSort, onSortChange, storage } = t0;
16
+ let t1;
17
+ if ($[0] !== rows || $[1] !== tree) {
18
+ t1 = tree ? tree.roots.map(_temp) : rows;
19
+ $[0] = rows;
20
+ $[1] = tree;
21
+ $[2] = t1;
22
+ } else t1 = $[2];
23
+ const t2 = tree ? "server" : mode;
24
+ const t3 = sortProp === void 0 && storage.has("sort") ? storage.initial.sort ?? defaultSort : defaultSort;
25
+ let t4;
26
+ if ($[3] !== onSortChange || $[4] !== sortProp || $[5] !== storage) {
27
+ t4 = (next) => {
28
+ if (sortProp === void 0) storage.write({ sort: next });
29
+ onSortChange?.(next);
30
+ };
31
+ $[3] = onSortChange;
32
+ $[4] = sortProp;
33
+ $[5] = storage;
34
+ $[6] = t4;
35
+ } else t4 = $[6];
36
+ const t5 = useEvent(t4);
37
+ let t6;
38
+ if ($[7] !== columns || $[8] !== sortProp || $[9] !== t1 || $[10] !== t2 || $[11] !== t3 || $[12] !== t5) {
39
+ t6 = {
40
+ columns,
41
+ rows: t1,
42
+ mode: t2,
43
+ sort: sortProp,
44
+ defaultSort: t3,
45
+ onSortChange: t5
46
+ };
47
+ $[7] = columns;
48
+ $[8] = sortProp;
49
+ $[9] = t1;
50
+ $[10] = t2;
51
+ $[11] = t3;
52
+ $[12] = t5;
53
+ $[13] = t6;
54
+ } else t6 = $[13];
55
+ const { sort, sortedRows, toggleSort, setColumnSort, mode: resolvedSortMode } = useTableSort(t6);
56
+ let t7;
57
+ if ($[14] === Symbol.for("react.memo_cache_sentinel")) {
58
+ t7 = {
59
+ numeric: true,
60
+ sensitivity: "base"
61
+ };
62
+ $[14] = t7;
63
+ } else t7 = $[14];
64
+ const collator = useCollator(t7);
65
+ let t8;
66
+ if ($[15] !== columns || $[16] !== mode || $[17] !== resolvedSortMode || $[18] !== tree) {
67
+ t8 = tree ? mode ?? (columns.some(_temp2) ? "client" : "off") : resolvedSortMode;
68
+ $[15] = columns;
69
+ $[16] = mode;
70
+ $[17] = resolvedSortMode;
71
+ $[18] = tree;
72
+ $[19] = t8;
73
+ } else t8 = $[19];
74
+ const treeSortMode = t8;
75
+ let t9;
76
+ if ($[20] !== collator || $[21] !== columns || $[22] !== sort || $[23] !== tree?.roots || $[24] !== treeSortMode) {
77
+ bb0: {
78
+ const roots = tree?.roots ?? [];
79
+ if (treeSortMode !== "client" || !sort) {
80
+ t9 = roots;
81
+ break bb0;
82
+ }
83
+ let t10;
84
+ if ($[26] !== sort) {
85
+ t10 = (entry) => entry.key === sort.columnKey;
86
+ $[26] = sort;
87
+ $[27] = t10;
88
+ } else t10 = $[27];
89
+ const column_0 = columns.find(t10);
90
+ if (!column_0) {
91
+ t9 = roots;
92
+ break bb0;
93
+ }
94
+ t9 = sortTableTree(roots, (a, b) => {
95
+ return compareByColumn(column_0, collator, a.row, a.sourceIndex, b.row, b.sourceIndex) * (sort.direction === "asc" ? 1 : -1);
96
+ });
97
+ }
98
+ $[20] = collator;
99
+ $[21] = columns;
100
+ $[22] = sort;
101
+ $[23] = tree?.roots;
102
+ $[24] = treeSortMode;
103
+ $[25] = t9;
104
+ } else t9 = $[25];
105
+ const sortedTreeRoots = t9;
106
+ let t10;
107
+ if ($[28] !== setColumnSort || $[29] !== sort || $[30] !== sortedRows || $[31] !== sortedTreeRoots || $[32] !== toggleSort || $[33] !== treeSortMode) {
108
+ t10 = {
109
+ sort,
110
+ sortedRows,
111
+ sortedTreeRoots,
112
+ mode: treeSortMode,
113
+ toggleSort,
114
+ setColumnSort
115
+ };
116
+ $[28] = setColumnSort;
117
+ $[29] = sort;
118
+ $[30] = sortedRows;
119
+ $[31] = sortedTreeRoots;
120
+ $[32] = toggleSort;
121
+ $[33] = treeSortMode;
122
+ $[34] = t10;
123
+ } else t10 = $[34];
124
+ return t10;
125
+ }
126
+ function _temp2(column) {
127
+ return column.isSortable;
128
+ }
129
+ function _temp(node) {
130
+ return node.row;
131
+ }
132
+
133
+ //#endregion
134
+ export { useItemTableSort };
135
+ //# sourceMappingURL=use-item-table-sort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-item-table-sort.js","names":["useCollator","useMemo","useEvent","sortTableTree","compareByColumn","useTableSort","FilteredTableTree","CubeTableSort","CubeTableSortMode","useTableStorage","CubeItemTableColumn","UseItemTableSortOptions","columns","T","rows","tree","mode","sort","defaultSort","onSortChange","storage","ReturnType","useItemTableSort","t0","$","_c","sortProp","t1","roots","map","_temp","t2","t3","undefined","has","initial","t4","next","write","t5","t6","sortedRows","toggleSort","setColumnSort","resolvedSortMode","t7","Symbol","for","numeric","sensitivity","collator","t8","some","_temp2","treeSortMode","t9","bb0","t10","entry","key","columnKey","column_0","find","column","a","b","result","row","sourceIndex","direction","sortedTreeRoots","isSortable","node"],"sources":["../../../../src/components/data/ItemTable/use-item-table-sort.ts"],"sourcesContent":["import { useCollator } from '@react-aria/i18n';\nimport { useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { sortTableTree } from '../TableBase/table-tree';\nimport { compareByColumn, useTableSort } from '../TableBase/use-table-sort';\n\nimport type { FilteredTableTree } from '../TableBase/table-tree';\nimport type { CubeTableSort } from '../TableBase/types';\nimport type { CubeTableSortMode } from '../TableBase/use-table-sort';\nimport type { useTableStorage } from '../TableBase/use-table-storage';\nimport type { CubeItemTableColumn } from './types';\n\nexport interface UseItemTableSortOptions<T> {\n columns: CubeItemTableColumn<T>[];\n /** The searched flat rows. */\n rows: readonly T[];\n /** The searched tree; `null` outside tree mode. */\n tree: FilteredTableTree<T> | null;\n mode?: CubeTableSortMode;\n sort?: CubeTableSort | null;\n defaultSort?: CubeTableSort | null;\n onSortChange?: (sort: CubeTableSort | null) => void;\n storage: ReturnType<typeof useTableStorage>;\n}\n\n/**\n * The table's sort: its state, persisted when the table owns it, applied to\n * flat rows by `useTableSort` and to every level of a tree here.\n */\nexport function useItemTableSort<T>({\n columns,\n rows,\n tree,\n mode,\n sort: sortProp,\n defaultSort,\n onSortChange,\n storage,\n}: UseItemTableSortOptions<T>) {\n const {\n sort,\n sortedRows,\n toggleSort,\n setColumnSort,\n mode: resolvedSortMode,\n } = useTableSort<T>({\n columns,\n rows: tree ? tree.roots.map((node) => node.row) : rows,\n mode: tree ? 'server' : mode,\n sort: sortProp,\n // Only restore what the table owns: a controlled `sort` belongs to the page,\n // and overriding it here would fight the page's own source of truth.\n defaultSort:\n sortProp === undefined && storage.has('sort')\n ? storage.initial.sort ?? defaultSort\n : defaultSort,\n onSortChange: useEvent((next: CubeTableSort | null) => {\n if (sortProp === undefined) storage.write({ sort: next });\n onSortChange?.(next);\n }),\n });\n\n const collator = useCollator({ numeric: true, sensitivity: 'base' });\n const treeSortMode = tree\n ? mode ?? (columns.some((column) => column.isSortable) ? 'client' : 'off')\n : resolvedSortMode;\n const sortedTreeRoots = useMemo(() => {\n const roots = tree?.roots ?? [];\n if (treeSortMode !== 'client' || !sort) return roots;\n const column = columns.find((entry) => entry.key === sort.columnKey);\n if (!column) return roots;\n\n return sortTableTree(roots, (a, b) => {\n const result = compareByColumn(\n column,\n collator,\n a.row,\n a.sourceIndex,\n b.row,\n b.sourceIndex,\n );\n return result * (sort.direction === 'asc' ? 1 : -1);\n });\n }, [tree, treeSortMode, sort, columns, collator]);\n\n return {\n sort,\n sortedRows,\n /** Empty outside tree mode. */\n sortedTreeRoots,\n mode: treeSortMode,\n toggleSort,\n setColumnSort,\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,107 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
2
+ import { useWarn } from "../../../_internal/hooks/use-warn.js";
3
+ import { buildTableTree } from "../TableBase/table-tree.js";
4
+ import { c } from "react-compiler-runtime";
5
+
6
+ //#region src/components/data/ItemTable/use-item-table-tree-model.ts
7
+ /**
8
+ * Tree mode's model: the hierarchy `getRowChildren` describes, the column that
9
+ * carries its indentation, and a warning for each part of the data or props
10
+ * that tree mode ignores. `treeModel` is `null` for flat data.
11
+ */
12
+ function useItemTableTreeModel(t0) {
13
+ const $ = c(18);
14
+ const { data, columns, getRowKey, getRowChildren, treeColumnKey, isReorderable } = t0;
15
+ let t1;
16
+ if ($[0] !== data || $[1] !== getRowChildren || $[2] !== getRowKey) {
17
+ t1 = getRowChildren ? buildTableTree(data, getRowChildren, getRowKey) : null;
18
+ $[0] = data;
19
+ $[1] = getRowChildren;
20
+ $[2] = getRowKey;
21
+ $[3] = t1;
22
+ } else t1 = $[3];
23
+ const treeModel = t1;
24
+ let t2;
25
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
26
+ t2 = {
27
+ key: ["item-table-tree-duplicate-keys"],
28
+ args: ["ItemTable:", "Tree row keys must be unique across the complete hierarchy. Duplicate rows were ignored."]
29
+ };
30
+ $[4] = t2;
31
+ } else t2 = $[4];
32
+ useWarn(treeModel != null && treeModel.duplicateKeys.length > 0, t2);
33
+ let t3;
34
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
35
+ t3 = {
36
+ key: ["item-table-tree-cyclic-keys"],
37
+ args: ["ItemTable:", "Tree data contains a cycle. Cyclic descendants were ignored."]
38
+ };
39
+ $[5] = t3;
40
+ } else t3 = $[5];
41
+ useWarn(treeModel != null && treeModel.cyclicKeys.length > 0, t3);
42
+ let t4;
43
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
44
+ t4 = {
45
+ key: ["item-table-tree-reorder-unsupported"],
46
+ args: ["ItemTable:", "`isReorderable` is ignored in tree mode. Use `dropOnRow` for folder-style moves."]
47
+ };
48
+ $[6] = t4;
49
+ } else t4 = $[6];
50
+ useWarn(treeModel != null && isReorderable, t4);
51
+ let t5;
52
+ bb0: {
53
+ if (!treeModel) {
54
+ t5 = void 0;
55
+ break bb0;
56
+ }
57
+ let t6;
58
+ if ($[7] !== columns || $[8] !== treeColumnKey) {
59
+ const visibleColumns = columns.filter(_temp);
60
+ t6 = visibleColumns.some((column_0) => column_0.key === treeColumnKey) ? treeColumnKey : visibleColumns[0]?.key;
61
+ $[7] = columns;
62
+ $[8] = treeColumnKey;
63
+ $[9] = t6;
64
+ } else t6 = $[9];
65
+ t5 = t6;
66
+ }
67
+ const resolvedTreeColumnKey = t5;
68
+ let t6;
69
+ if ($[10] !== treeColumnKey) {
70
+ t6 = ["item-table-tree-column-invalid", treeColumnKey];
71
+ $[10] = treeColumnKey;
72
+ $[11] = t6;
73
+ } else t6 = $[11];
74
+ let t7;
75
+ if ($[12] === Symbol.for("react.memo_cache_sentinel")) {
76
+ t7 = ["ItemTable:", "`treeColumnKey` must identify a visible data column. Falling back to the first visible column."];
77
+ $[12] = t7;
78
+ } else t7 = $[12];
79
+ let t8;
80
+ if ($[13] !== t6) {
81
+ t8 = {
82
+ key: t6,
83
+ args: t7
84
+ };
85
+ $[13] = t6;
86
+ $[14] = t8;
87
+ } else t8 = $[14];
88
+ useWarn(treeModel != null && treeColumnKey != null && resolvedTreeColumnKey !== treeColumnKey, t8);
89
+ let t9;
90
+ if ($[15] !== resolvedTreeColumnKey || $[16] !== treeModel) {
91
+ t9 = {
92
+ treeModel,
93
+ treeColumnKey: resolvedTreeColumnKey
94
+ };
95
+ $[15] = resolvedTreeColumnKey;
96
+ $[16] = treeModel;
97
+ $[17] = t9;
98
+ } else t9 = $[17];
99
+ return t9;
100
+ }
101
+ function _temp(column) {
102
+ return !column.isHidden;
103
+ }
104
+
105
+ //#endregion
106
+ export { useItemTableTreeModel };
107
+ //# sourceMappingURL=use-item-table-tree-model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-item-table-tree-model.js","names":["useMemo","useWarn","buildTableTree","Key","CubeTableTreeProps","CubeItemTableColumn","UseItemTableTreeModelOptions","Pick","T","data","columns","getRowKey","row","index","isReorderable","useItemTableTreeModel","t0","$","_c","getRowChildren","treeColumnKey","t1","treeModel","t2","Symbol","for","key","args","duplicateKeys","length","t3","cyclicKeys","t4","t5","bb0","undefined","t6","visibleColumns","filter","_temp","some","column_0","column","resolvedTreeColumnKey","t7","t8","t9","isHidden"],"sources":["../../../../src/components/data/ItemTable/use-item-table-tree-model.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport { buildTableTree } from '../TableBase/table-tree';\n\nimport type { Key } from '@react-types/shared';\nimport type { CubeTableTreeProps } from '../TableBase/types';\nimport type { CubeItemTableColumn } from './types';\n\nexport interface UseItemTableTreeModelOptions<T>\n extends Pick<CubeTableTreeProps<T>, 'getRowChildren' | 'treeColumnKey'> {\n data: readonly T[];\n columns: CubeItemTableColumn<T>[];\n getRowKey: (row: T, index: number) => Key;\n isReorderable: boolean;\n}\n\n/**\n * Tree mode's model: the hierarchy `getRowChildren` describes, the column that\n * carries its indentation, and a warning for each part of the data or props\n * that tree mode ignores. `treeModel` is `null` for flat data.\n */\nexport function useItemTableTreeModel<T>({\n data,\n columns,\n getRowKey,\n getRowChildren,\n treeColumnKey,\n isReorderable,\n}: UseItemTableTreeModelOptions<T>) {\n const treeModel = useMemo(\n () =>\n getRowChildren ? buildTableTree(data, getRowChildren, getRowKey) : null,\n [data, getRowChildren, getRowKey],\n );\n\n useWarn(treeModel != null && treeModel.duplicateKeys.length > 0, {\n key: ['item-table-tree-duplicate-keys'],\n args: [\n 'ItemTable:',\n 'Tree row keys must be unique across the complete hierarchy. Duplicate rows were ignored.',\n ],\n });\n useWarn(treeModel != null && treeModel.cyclicKeys.length > 0, {\n key: ['item-table-tree-cyclic-keys'],\n args: [\n 'ItemTable:',\n 'Tree data contains a cycle. Cyclic descendants were ignored.',\n ],\n });\n useWarn(treeModel != null && isReorderable, {\n key: ['item-table-tree-reorder-unsupported'],\n args: [\n 'ItemTable:',\n '`isReorderable` is ignored in tree mode. Use `dropOnRow` for folder-style moves.',\n ],\n });\n\n const resolvedTreeColumnKey = useMemo(() => {\n if (!treeModel) return undefined;\n const visibleColumns = columns.filter((column) => !column.isHidden);\n return visibleColumns.some((column) => column.key === treeColumnKey)\n ? treeColumnKey\n : visibleColumns[0]?.key;\n }, [treeModel, columns, treeColumnKey]);\n\n useWarn(\n treeModel != null &&\n treeColumnKey != null &&\n resolvedTreeColumnKey !== treeColumnKey,\n {\n key: ['item-table-tree-column-invalid', treeColumnKey],\n args: [\n 'ItemTable:',\n '`treeColumnKey` must identify a visible data column. Falling back to the first visible column.',\n ],\n },\n );\n\n return { treeModel, treeColumnKey: resolvedTreeColumnKey };\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.190.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.190.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
2
2
  //#region src/components/data/TableBase/RowCollection.ts
3
3
  /**
4
4
  * A `Collection<Node<T>>` over a plain row array.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.190.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.4 | 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, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.190.2 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.4 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { c } from "react-compiler-runtime";