@cube-dev/ui-kit 0.0.0-canary-b2b6df9 → 0.0.0-canary-d5c48f8

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 (577) hide show
  1. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  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/ItemButton/ItemButton.js +1 -1
  27. package/dist/components/actions/Link/Link.js +1 -1
  28. package/dist/components/actions/Menu/Menu.js +1 -1
  29. package/dist/components/actions/Menu/MenuItem.js +1 -1
  30. package/dist/components/actions/Menu/MenuSection.js +1 -1
  31. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  32. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  34. package/dist/components/actions/Menu/context.js +1 -1
  35. package/dist/components/actions/Menu/styled.js +1 -1
  36. package/dist/components/actions/index.js +1 -1
  37. package/dist/components/actions/use-action.js +1 -1
  38. package/dist/components/actions/use-anchored-menu.js +1 -1
  39. package/dist/components/actions/use-context-menu.js +42 -44
  40. package/dist/components/actions/use-context-menu.js.map +1 -1
  41. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  42. package/dist/components/content/Alert/Alert.js +1 -1
  43. package/dist/components/content/Alert/use-alert.js +1 -1
  44. package/dist/components/content/Avatar/Avatar.js +1 -1
  45. package/dist/components/content/Badge/Badge.js +1 -1
  46. package/dist/components/content/Card/Card.js +1 -1
  47. package/dist/components/content/Content.js +1 -1
  48. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  49. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  50. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  51. package/dist/components/content/Divider.js +1 -1
  52. package/dist/components/content/Footer.js +1 -1
  53. package/dist/components/content/Header.js +1 -1
  54. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  55. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  56. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  57. package/dist/components/content/Item/Item.js +1 -1
  58. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  59. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  60. package/dist/components/content/Layout/GridLayout.js +1 -1
  61. package/dist/components/content/Layout/Layout.js +1 -1
  62. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  63. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  64. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  65. package/dist/components/content/Layout/LayoutContent.js +1 -1
  66. package/dist/components/content/Layout/LayoutContext.js +1 -1
  67. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  68. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  69. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  70. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  71. package/dist/components/content/Layout/LayoutPane.js +1 -1
  72. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  75. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  76. package/dist/components/content/Layout/index.js +1 -1
  77. package/dist/components/content/Layout/utils.js +1 -1
  78. package/dist/components/content/Paragraph.js +1 -1
  79. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  80. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  81. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  82. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  83. package/dist/components/content/Result/Result.js +1 -1
  84. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  85. package/dist/components/content/Tag/Tag.js +2 -2
  86. package/dist/components/content/Tag/Tag.js.map +1 -1
  87. package/dist/components/content/Text.d.ts +28 -28
  88. package/dist/components/content/Text.js +1 -1
  89. package/dist/components/content/TextItem/TextItem.js +1 -1
  90. package/dist/components/content/Title.js +1 -1
  91. package/dist/components/content/Tree/Tree.js +1 -1
  92. package/dist/components/content/Tree/TreeNode.js +1 -1
  93. package/dist/components/content/Tree/styled.js +1 -1
  94. package/dist/components/content/Tree/tree-index.js +1 -1
  95. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  96. package/dist/components/content/Tree/use-load-data.js +1 -1
  97. package/dist/components/content/highlightText.js +1 -1
  98. package/dist/components/content/use-auto-tooltip.js +1 -1
  99. package/dist/components/data/DataTable/DataTable.d.ts +13 -0
  100. package/dist/components/data/DataTable/DataTable.js +245 -0
  101. package/dist/components/data/DataTable/DataTable.js.map +1 -0
  102. package/dist/components/data/DataTable/index.d.ts +3 -0
  103. package/dist/components/data/DataTable/types.d.ts +145 -0
  104. package/dist/components/data/ItemTable/ItemTable.d.ts +19 -0
  105. package/dist/components/data/ItemTable/ItemTable.js +350 -0
  106. package/dist/components/data/ItemTable/ItemTable.js.map +1 -0
  107. package/dist/components/data/ItemTable/ItemTableBulkBar.d.ts +23 -0
  108. package/dist/components/data/ItemTable/ItemTableBulkBar.js +131 -0
  109. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -0
  110. package/dist/components/data/ItemTable/ItemTableDragPreview.js +46 -0
  111. package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -0
  112. package/dist/components/data/ItemTable/ItemTableFooter.js +79 -0
  113. package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -0
  114. package/dist/components/data/ItemTable/ItemTableToolbar.d.ts +34 -0
  115. package/dist/components/data/ItemTable/ItemTableToolbar.js +91 -0
  116. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -0
  117. package/dist/components/data/ItemTable/index.d.ts +4 -0
  118. package/dist/components/data/ItemTable/types.d.ts +327 -0
  119. package/dist/components/data/TableBase/ColumnResizer.js +70 -0
  120. package/dist/components/data/TableBase/ColumnResizer.js.map +1 -0
  121. package/dist/components/data/TableBase/RowCollection.js +99 -0
  122. package/dist/components/data/TableBase/RowCollection.js.map +1 -0
  123. package/dist/components/data/TableBase/TableRow.js +89 -0
  124. package/dist/components/data/TableBase/TableRow.js.map +1 -0
  125. package/dist/components/data/TableBase/TableView.d.ts +22 -0
  126. package/dist/components/data/TableBase/TableView.js +877 -0
  127. package/dist/components/data/TableBase/TableView.js.map +1 -0
  128. package/dist/components/data/TableBase/index.d.ts +5 -0
  129. package/dist/components/data/TableBase/row-menu.js +40 -0
  130. package/dist/components/data/TableBase/row-menu.js.map +1 -0
  131. package/dist/components/data/TableBase/styled.d.ts +5 -0
  132. package/dist/components/data/TableBase/styled.js +504 -0
  133. package/dist/components/data/TableBase/styled.js.map +1 -0
  134. package/dist/components/data/TableBase/types.d.ts +173 -0
  135. package/dist/components/data/TableBase/use-cell-selection.d.ts +3 -0
  136. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  137. package/dist/components/data/TableBase/use-cell-selection.js.map +1 -0
  138. package/dist/components/data/TableBase/use-container-width.js +35 -0
  139. package/dist/components/data/TableBase/use-container-width.js.map +1 -0
  140. package/dist/components/data/TableBase/use-row-move-animation.js +80 -0
  141. package/dist/components/data/TableBase/use-row-move-animation.js.map +1 -0
  142. package/dist/components/data/TableBase/use-scrollability.js +49 -0
  143. package/dist/components/data/TableBase/use-scrollability.js.map +1 -0
  144. package/dist/components/data/TableBase/use-table-columns.d.ts +2 -0
  145. package/dist/components/data/TableBase/use-table-columns.js +166 -0
  146. package/dist/components/data/TableBase/use-table-columns.js.map +1 -0
  147. package/dist/components/data/TableBase/use-table-search.js +64 -0
  148. package/dist/components/data/TableBase/use-table-search.js.map +1 -0
  149. package/dist/components/data/TableBase/use-table-selection.d.ts +4 -0
  150. package/dist/components/data/TableBase/use-table-selection.js +233 -0
  151. package/dist/components/data/TableBase/use-table-selection.js.map +1 -0
  152. package/dist/components/data/TableBase/use-table-sort.js +91 -0
  153. package/dist/components/data/TableBase/use-table-sort.js.map +1 -0
  154. package/dist/components/data/TableBase/use-table-sorts.js +97 -0
  155. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -0
  156. package/dist/components/data/TableBase/use-table-storage.d.ts +8 -0
  157. package/dist/components/data/TableBase/use-table-storage.js +58 -0
  158. package/dist/components/data/TableBase/use-table-storage.js.map +1 -0
  159. package/dist/components/data/index.d.ts +10 -0
  160. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  161. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  162. package/dist/components/fields/Checkbox/context.js +1 -1
  163. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  164. package/dist/components/fields/ColorPicker/ColorPickerPanel.js +1 -1
  165. package/dist/components/fields/ColorPicker/channels.js +1 -1
  166. package/dist/components/fields/ColorPicker/color.js +1 -1
  167. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  168. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  169. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  170. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  171. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  172. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  173. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  174. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  175. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  176. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  177. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  178. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  179. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  181. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  182. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  183. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  184. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  185. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  186. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  187. package/dist/components/fields/DatePicker/period.js +1 -1
  188. package/dist/components/fields/DatePicker/props.js +1 -1
  189. package/dist/components/fields/DatePicker/utils.js +1 -1
  190. package/dist/components/fields/FileInput/FileInput.js +1 -1
  191. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  192. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  193. package/dist/components/fields/Input/Input.js +2 -2
  194. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  195. package/dist/components/fields/ListBox/ListBox.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 +2 -12
  202. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  203. package/dist/components/fields/Picker/Picker.js +1 -1
  204. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  205. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  206. package/dist/components/fields/RadioGroup/context.js +1 -1
  207. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  208. package/dist/components/fields/SearchInput/SearchInput.js +4 -17
  209. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  210. package/dist/components/fields/Select/Select.js +1 -1
  211. package/dist/components/fields/Slider/Gradation.js +1 -1
  212. package/dist/components/fields/Slider/HueSlider.js +1 -1
  213. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  214. package/dist/components/fields/Slider/Slider.js +1 -1
  215. package/dist/components/fields/Slider/SliderBase.js +1 -1
  216. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  217. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  218. package/dist/components/fields/Slider/elements.js +1 -1
  219. package/dist/components/fields/Slider/index.js +1 -1
  220. package/dist/components/fields/Switch/Switch.js +1 -1
  221. package/dist/components/fields/TextArea/TextArea.js +5 -12
  222. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  223. package/dist/components/fields/TextInput/TextInput.js +3 -15
  224. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  225. package/dist/components/fields/TextInput/TextInputBase.d.ts +0 -7
  226. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  227. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  228. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  229. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  230. package/dist/components/form/Form/Field.js +1 -1
  231. package/dist/components/form/Form/Form.js +1 -1
  232. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  233. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  234. package/dist/components/form/Form/SubmitError.js +1 -1
  235. package/dist/components/form/Form/index.js +1 -1
  236. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  237. package/dist/components/form/Form/use-field/use-field.js +1 -1
  238. package/dist/components/form/Form/use-form.js +1 -1
  239. package/dist/components/form/Form/validation.js +1 -1
  240. package/dist/components/form/Label.js +1 -1
  241. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  242. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  243. package/dist/components/form/validation/use-validation-props.js +1 -1
  244. package/dist/components/form/wrapper.js +1 -1
  245. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  246. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  247. package/dist/components/layout/Board/Board.js +1 -1
  248. package/dist/components/layout/Board/BoardProvider.js +1 -1
  249. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  250. package/dist/components/layout/Board/Widget.js +1 -1
  251. package/dist/components/layout/Board/WidgetHost.js +1 -1
  252. package/dist/components/layout/Board/board-context.js +1 -1
  253. package/dist/components/layout/Board/board-store.js +1 -1
  254. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  255. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  256. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  257. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  258. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  259. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  260. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  261. package/dist/components/layout/Board/index.js +1 -1
  262. package/dist/components/layout/Board/responsive-utils.js +1 -1
  263. package/dist/components/layout/Board/use-board-layout.js +1 -1
  264. package/dist/components/layout/Board/use-board-registry.js +1 -1
  265. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  266. package/dist/components/layout/Board/use-board-selection.js +1 -1
  267. package/dist/components/layout/Flex.js +1 -1
  268. package/dist/components/layout/Flow.js +1 -1
  269. package/dist/components/layout/Grid.js +1 -1
  270. package/dist/components/layout/Panel.js +1 -1
  271. package/dist/components/layout/Prefix.js +1 -1
  272. package/dist/components/layout/ResizablePanel.js +1 -1
  273. package/dist/components/layout/Space.js +1 -1
  274. package/dist/components/layout/Suffix.js +1 -1
  275. package/dist/components/navigation/Pagination/Pagination.d.ts +9 -0
  276. package/dist/components/navigation/Pagination/Pagination.js +258 -0
  277. package/dist/components/navigation/Pagination/Pagination.js.map +1 -0
  278. package/dist/components/navigation/Pagination/index.d.ts +4 -0
  279. package/dist/components/navigation/Pagination/types.d.ts +81 -0
  280. package/dist/components/navigation/Pagination/use-pagination.d.ts +52 -0
  281. package/dist/components/navigation/Pagination/use-pagination.js +83 -0
  282. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -0
  283. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  284. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  285. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  286. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  287. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  288. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  289. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  290. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  291. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  292. package/dist/components/navigation/Tabs/styled.js +1 -1
  293. package/dist/components/navigation/Tabs/types.js +1 -1
  294. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  295. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  296. package/dist/components/navigation/index.d.ts +5 -1
  297. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  298. package/dist/components/other/Calendar/Calendar.js +1 -1
  299. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  300. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  301. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  302. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  303. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  304. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  305. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  306. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  307. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  308. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  309. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  310. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  311. package/dist/components/overlays/Dialog/context.js +1 -1
  312. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  313. package/dist/components/overlays/Modal/Modal.js +1 -1
  314. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  315. package/dist/components/overlays/Modal/Overlay.js +1 -1
  316. package/dist/components/overlays/Modal/Popover.js +1 -1
  317. package/dist/components/overlays/Modal/Tray.js +1 -1
  318. package/dist/components/overlays/Modal/Underlay.js +1 -1
  319. package/dist/components/overlays/Notifications/Notification.js +1 -1
  320. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  321. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  322. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  323. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  324. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  325. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  326. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  327. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  328. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  329. package/dist/components/overlays/Notifications/index.js +1 -1
  330. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  331. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  332. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  333. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  334. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  335. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  336. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  337. package/dist/components/overlays/Toast/index.js +1 -1
  338. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  339. package/dist/components/overlays/Toast/useToast.js +1 -1
  340. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  341. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  342. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  343. package/dist/components/overlays/Tooltip/context.js +1 -1
  344. package/dist/components/portal/Portal.js +1 -1
  345. package/dist/components/portal/PortalProvider.js +1 -1
  346. package/dist/components/portal/usePortal.js +1 -1
  347. package/dist/components/shared/DraggableCollection.js +24 -8
  348. package/dist/components/shared/DraggableCollection.js.map +1 -1
  349. package/dist/components/shared/InvalidIcon.js +1 -1
  350. package/dist/components/shared/ValidIcon.js +1 -1
  351. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  352. package/dist/components/status/Spin/Cube.js +1 -1
  353. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  354. package/dist/components/status/Spin/Spin.js +1 -1
  355. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  356. package/dist/data/item-themes.js +1 -1
  357. package/dist/data/themes.js +1 -1
  358. package/dist/eslint-plugin/defaults.generated.js +207 -1
  359. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  360. package/dist/eslint-plugin/index.js +1 -1
  361. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  362. package/dist/i18n/I18nProvider.js +1 -1
  363. package/dist/i18n/createFormatter.js +1 -1
  364. package/dist/i18n/index.js +1 -1
  365. package/dist/i18n/instance.js +1 -1
  366. package/dist/i18n/locales/de-DE/uikit.js +35 -1
  367. package/dist/i18n/locales/en-US/uikit.js +35 -1
  368. package/dist/i18n/locales/en-US/uikit.json.d.ts +40 -1
  369. package/dist/i18n/locales/es-ES/uikit.js +35 -1
  370. package/dist/i18n/locales/es-MX/uikit.js +35 -1
  371. package/dist/i18n/locales/fr-FR/uikit.js +35 -1
  372. package/dist/i18n/locales/it-IT/uikit.js +35 -1
  373. package/dist/i18n/locales/ja-JP/uikit.js +35 -1
  374. package/dist/i18n/locales/nb-NO/uikit.js +35 -1
  375. package/dist/i18n/locales/pt-BR/uikit.js +35 -1
  376. package/dist/i18n/locales/pt-PT/uikit.js +35 -1
  377. package/dist/i18n/locales/sv-SE/uikit.js +35 -1
  378. package/dist/i18n/locales/vi-VN/uikit.js +35 -1
  379. package/dist/i18n/locales.js +1 -1
  380. package/dist/i18n/useFormatter.js +1 -1
  381. package/dist/i18n/useI18n.js +1 -1
  382. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  383. package/dist/icons/AdjustmentsIcon.js +1 -1
  384. package/dist/icons/AiIcon.js +1 -1
  385. package/dist/icons/AreaChartIcon.js +1 -1
  386. package/dist/icons/BackwardIcon.js +1 -1
  387. package/dist/icons/BarChartIcon.js +1 -1
  388. package/dist/icons/BellFilledIcon.js +1 -1
  389. package/dist/icons/BellIcon.js +1 -1
  390. package/dist/icons/BooleanIcon.js +1 -1
  391. package/dist/icons/CalendarEditIcon.js +1 -1
  392. package/dist/icons/CalendarIcon.js +1 -1
  393. package/dist/icons/CaretDownIcon.js +1 -1
  394. package/dist/icons/CaretUpIcon.js +1 -1
  395. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  396. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  397. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  398. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  399. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  400. package/dist/icons/ChartBarLineIcon.js +1 -1
  401. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  402. package/dist/icons/ChartBarStackedIcon.js +1 -1
  403. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  404. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  405. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  406. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  407. package/dist/icons/ChartBubbleIcon.js +1 -1
  408. package/dist/icons/ChartDonut2Icon.js +1 -1
  409. package/dist/icons/ChartFunnelIcon.js +1 -1
  410. package/dist/icons/ChartHeatmapIcon.js +1 -1
  411. package/dist/icons/ChartKPIIcon.js +1 -1
  412. package/dist/icons/ChartPie2Icon.js +1 -1
  413. package/dist/icons/ChartScatterIcon.js +1 -1
  414. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  415. package/dist/icons/CheckCircleIcon.js +1 -1
  416. package/dist/icons/CheckIcon.js +1 -1
  417. package/dist/icons/CircleFilledIcon.js +1 -1
  418. package/dist/icons/ClearIcon.js +1 -1
  419. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  420. package/dist/icons/CloseCircleIcon.js +1 -1
  421. package/dist/icons/CloseIcon.js +1 -1
  422. package/dist/icons/CodeIcon.js +1 -1
  423. package/dist/icons/ColumnTotalIcon.js +1 -1
  424. package/dist/icons/CopyIcon.js +1 -1
  425. package/dist/icons/CountIcon.js +1 -1
  426. package/dist/icons/CubeIcon.js +1 -1
  427. package/dist/icons/CubePauseIcon.js +1 -1
  428. package/dist/icons/CubePlayIcon.js +1 -1
  429. package/dist/icons/CurrencyDollarIcon.js +1 -1
  430. package/dist/icons/DangerIcon.js +1 -1
  431. package/dist/icons/DashboardIcon.js +1 -1
  432. package/dist/icons/DatabaseIcon.js +1 -1
  433. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  434. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  435. package/dist/icons/DirectionIcon.js +1 -1
  436. package/dist/icons/DonutIcon.js +1 -1
  437. package/dist/icons/DownIcon.js +1 -1
  438. package/dist/icons/EditIcon.js +1 -1
  439. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  440. package/dist/icons/ExclamationCircleIcon.js +1 -1
  441. package/dist/icons/ExclamationIcon.js +1 -1
  442. package/dist/icons/EyeIcon.js +1 -1
  443. package/dist/icons/EyeInvisibleIcon.js +1 -1
  444. package/dist/icons/FilterIcon.js +1 -1
  445. package/dist/icons/FolderFilledIcon.js +1 -1
  446. package/dist/icons/FolderIcon.js +1 -1
  447. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  448. package/dist/icons/FolderOpenIcon.js +1 -1
  449. package/dist/icons/ForwardIcon.js +1 -1
  450. package/dist/icons/GripVerticalIcon.js +1 -1
  451. package/dist/icons/HierarchyIcon.js +1 -1
  452. package/dist/icons/HierarchyOpenIcon.js +1 -1
  453. package/dist/icons/Icon.js +1 -1
  454. package/dist/icons/InfoCircleIcon.js +1 -1
  455. package/dist/icons/InfoIcon.js +1 -1
  456. package/dist/icons/KeyIcon.js +1 -1
  457. package/dist/icons/LeftIcon.js +1 -1
  458. package/dist/icons/LineChartIcon.js +1 -1
  459. package/dist/icons/LoadingIcon.js +1 -1
  460. package/dist/icons/LockFilledIcon.js +1 -1
  461. package/dist/icons/LockIcon.js +1 -1
  462. package/dist/icons/MoreIcon.js +1 -1
  463. package/dist/icons/NotAllowedIcon.js +1 -1
  464. package/dist/icons/Number123Icon.js +1 -1
  465. package/dist/icons/NumberIcon.js +1 -1
  466. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  467. package/dist/icons/PauseCircleIcon.js +1 -1
  468. package/dist/icons/PauseIcon.js +1 -1
  469. package/dist/icons/PercentageIcon.js +1 -1
  470. package/dist/icons/PieChartIcon.js +1 -1
  471. package/dist/icons/PipetteIcon.js +1 -1
  472. package/dist/icons/PlayCircleIcon.js +1 -1
  473. package/dist/icons/PlayIcon.js +1 -1
  474. package/dist/icons/PlusIcon.js +1 -1
  475. package/dist/icons/ProgressBarIcon.js +1 -1
  476. package/dist/icons/ReloadIcon.js +1 -1
  477. package/dist/icons/ReportIcon.js +1 -1
  478. package/dist/icons/ReturnIcon.js +1 -1
  479. package/dist/icons/RightIcon.js +1 -1
  480. package/dist/icons/RowTotalsIcon.js +1 -1
  481. package/dist/icons/SchemeIcon.js +1 -1
  482. package/dist/icons/SearchIcon.js +1 -1
  483. package/dist/icons/SemanticQueryIcon.js +1 -1
  484. package/dist/icons/SettingsIcon.js +1 -1
  485. package/dist/icons/ShieldFilledIcon.js +1 -1
  486. package/dist/icons/ShieldIcon.js +1 -1
  487. package/dist/icons/SlashIcon.js +1 -1
  488. package/dist/icons/SparklesIcon.js +1 -1
  489. package/dist/icons/SqlIcon.js +1 -1
  490. package/dist/icons/StatsIcon.js +1 -1
  491. package/dist/icons/StopIcon.js +1 -1
  492. package/dist/icons/StringIcon.js +1 -1
  493. package/dist/icons/SubtotalsIcon.js +1 -1
  494. package/dist/icons/SwitchIcon.js +1 -1
  495. package/dist/icons/TableIcon.js +1 -1
  496. package/dist/icons/ThumbsDownIcon.js +1 -1
  497. package/dist/icons/ThumbsUpIcon.js +1 -1
  498. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  499. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  500. package/dist/icons/ThunderboltIcon.js +1 -1
  501. package/dist/icons/TimeIcon.js +1 -1
  502. package/dist/icons/TrashIcon.js +1 -1
  503. package/dist/icons/UnlockIcon.js +1 -1
  504. package/dist/icons/UpIcon.js +1 -1
  505. package/dist/icons/UserGroupIcon.js +1 -1
  506. package/dist/icons/UserIcon.js +1 -1
  507. package/dist/icons/UserLockIcon.js +1 -1
  508. package/dist/icons/ViewIcon.js +1 -1
  509. package/dist/icons/WarningFilledIcon.js +1 -1
  510. package/dist/icons/WarningIcon.js +1 -1
  511. package/dist/icons/wrap-icon.js +1 -1
  512. package/dist/index.d.ts +19 -10
  513. package/dist/index.js +8 -5
  514. package/dist/index.js.map +1 -1
  515. package/dist/provider.js +1 -1
  516. package/dist/providers/TrackingProvider.js +1 -1
  517. package/dist/providers/navigationAdapter.default.js +1 -1
  518. package/dist/tokens/base.js +1 -1
  519. package/dist/tokens/colors.js +1 -1
  520. package/dist/tokens/index.js +1 -1
  521. package/dist/tokens/layout.js +1 -1
  522. package/dist/tokens/lazy-styles.js +1 -1
  523. package/dist/tokens/palette-config.js +1 -1
  524. package/dist/tokens/palette.js +1 -1
  525. package/dist/tokens/shadows.js +1 -1
  526. package/dist/tokens/sizes.js +1 -1
  527. package/dist/tokens/spacing.js +1 -1
  528. package/dist/tokens/typography.d.ts +1 -1
  529. package/dist/tokens/typography.js +11 -2
  530. package/dist/tokens/typography.js.map +1 -1
  531. package/dist/utils/ResizeSensor.js +1 -1
  532. package/dist/utils/index.d.ts +0 -1
  533. package/dist/utils/is-dev-env.js +1 -1
  534. package/dist/utils/modules.js +1 -1
  535. package/dist/utils/promise.js +1 -1
  536. package/dist/utils/raf.js +1 -1
  537. package/dist/utils/random.js +1 -1
  538. package/dist/utils/range.js +1 -1
  539. package/dist/utils/react/RenderCache.js +1 -1
  540. package/dist/utils/react/Slots.js +1 -1
  541. package/dist/utils/react/chain.js +1 -1
  542. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  543. package/dist/utils/react/index.d.ts +0 -1
  544. package/dist/utils/react/index.js +1 -2
  545. package/dist/utils/react/interactions.js +1 -1
  546. package/dist/utils/react/isTextOnly.js +1 -1
  547. package/dist/utils/react/mapProps.js +1 -1
  548. package/dist/utils/react/mergeProps.js +1 -1
  549. package/dist/utils/react/nullableValue.js +1 -1
  550. package/dist/utils/react/resolveIcon.js +1 -1
  551. package/dist/utils/react/sharedStore.js +1 -1
  552. package/dist/utils/react/useCombinedRefs.js +1 -1
  553. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  554. package/dist/utils/react/useEventBus.js +1 -1
  555. package/dist/utils/react/useId.js +1 -1
  556. package/dist/utils/react/useIsDarwin.js +1 -1
  557. package/dist/utils/react/useKeySymbols.js +1 -1
  558. package/dist/utils/react/useLayoutEffect.d.ts +1 -1
  559. package/dist/utils/react/useLayoutEffect.js +1 -1
  560. package/dist/utils/react/useLocalStorage.js +1 -1
  561. package/dist/utils/react/useMergeStyles.js +1 -1
  562. package/dist/utils/react/usePopoverSync.js +1 -1
  563. package/dist/utils/react/useQaProps.js +1 -1
  564. package/dist/utils/react/useViewportSize.js +1 -1
  565. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  566. package/dist/utils/selection.js +1 -1
  567. package/dist/utils/styles.js +1 -1
  568. package/dist/utils/tree.js +1 -1
  569. package/dist/utils/warnings.js +1 -1
  570. package/dist/version.js +2 -2
  571. package/docs/components/data/DataTable.md +298 -0
  572. package/docs/components/data/ItemTable.md +971 -0
  573. package/docs/components/navigation/Pagination.md +245 -0
  574. package/package.json +8 -3
  575. package/dist/utils/react/useBufferedValue.d.ts +0 -56
  576. package/dist/utils/react/useBufferedValue.js +0 -90
  577. package/dist/utils/react/useBufferedValue.js.map +0 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b2b6df9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { BASE_STYLES, COLOR_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b2b6df9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { TEXT_PROP_MAP, _Text } from "../Text.js";
4
4
  import { highlightText } from "../highlightText.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b2b6df9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { TEXT_PROP_MAP } from "./Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b2b6df9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b2b6df9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b2b6df9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
2
  import { _Item } from "../Item/Item.js";
3
3
  import { Action } from "../../actions/Action/Action.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b2b6df9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
2
  //#region src/components/content/Tree/tree-index.ts
3
3
  function buildTreeIndex(treeData) {
4
4
  const byKey = /* @__PURE__ */ new Map();
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b2b6df9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useMemo, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b2b6df9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b2b6df9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
2
  import { _Text } from "./Text.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b2b6df9 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
2
  import { TooltipProvider } from "../overlays/Tooltip/TooltipProvider.js";
3
3
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -0,0 +1,13 @@
1
+
2
+ import { CubeDataTableProps } from "./types.js";
3
+ import { ForwardedRef, ReactElement } from "react";
4
+
5
+ //#region src/components/data/DataTable/DataTable.d.ts
6
+ declare const _DataTable: (<T = any>(props: CubeDataTableProps<T> & {
7
+ ref?: ForwardedRef<HTMLDivElement>;
8
+ }) => ReactElement) & {
9
+ displayName?: string;
10
+ };
11
+ //#endregion
12
+ export { _DataTable };
13
+ //# sourceMappingURL=DataTable.d.ts.map
@@ -0,0 +1,245 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-d5c48f8 | Cube Dev Team */
2
+ import { extractStyles } from "../../../utils/styles.js";
3
+ import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
+ import { useEvent } from "../../../_internal/hooks/use-event.js";
5
+ import { useI18n } from "../../../i18n/useI18n.js";
6
+ import { clampPage, getPageInfo } from "../../navigation/Pagination/use-pagination.js";
7
+ import { ItemTableFooter } from "../ItemTable/ItemTableFooter.js";
8
+ import { useTableColumns } from "../TableBase/use-table-columns.js";
9
+ import { ROW_NUMBER_COLUMN_KEY } from "../TableBase/use-table-selection.js";
10
+ import { TableView } from "../TableBase/TableView.js";
11
+ import { useCellSelection } from "../TableBase/use-cell-selection.js";
12
+ import { useContainerWidth } from "../TableBase/use-container-width.js";
13
+ import { useTableSorts } from "../TableBase/use-table-sorts.js";
14
+ import { useTableStorage } from "../TableBase/use-table-storage.js";
15
+ import { CONTAINER_STYLES } from "@tenphi/tasty";
16
+ import { forwardRef, useMemo, useRef, useState } from "react";
17
+ import { jsx } from "react/jsx-runtime";
18
+ import { useControlledState } from "@react-stately/utils";
19
+
20
+ //#region src/components/data/DataTable/DataTable.tsx
21
+ /** Wide enough for five digits at the dense default. */
22
+ const ROW_NUMBER_WIDTH = 56;
23
+ const EMPTY_WIDTHS = {};
24
+ function defaultGetRowKey(rowKey) {
25
+ return (row, index) => {
26
+ const value = row?.[rowKey];
27
+ return value == null ? index : value;
28
+ };
29
+ }
30
+ /**
31
+ * A grid for query results.
32
+ *
33
+ * The same engine as `ItemTable` — one `TableView`, one column layout, one
34
+ * value pipeline — with the defaults an analytical grid wants rather than a
35
+ * list's: denser type, banded rows, resizable columns, multi-column sort, and
36
+ * rows pinned for totals.
37
+ *
38
+ * It knows nothing about Cube. Measures, dimensions, pivots and drill-downs
39
+ * reach it as ordinary columns, `render` output and `column.header.menu`
40
+ * content, which is what keeps the ~34 kB of Cloud's column-header menu in
41
+ * Cloud.
42
+ */
43
+ function DataTable(props, ref) {
44
+ const { data, columns, rowKey = "id", getRowKey, pinnedTopRows, pinnedBottomRows, isLoading = false, loadingIndicator = "overlay", skeletonRowCount, error, emptyLabel, noResultsLabel, isFiltered, shape = "plain", size = "small", rowHeight, headerHeight, isStriped = true, isHeaderHidden, isHeaderSticky, showRowNumbers = false, sortMode, sorts: sortsProp, defaultSorts, onSortsChange, paginationMode = "client", page: pageProp, defaultPage, onPageChange, pageSize: pageSizeProp, defaultPageSize = 100, onPageSizeChange, pageSizeOptions, total: totalProp, totalPages, hasNextPage, summary = true, autoHidePagination = true, footerStart, footerCenter, footerEnd, cellSelectionMode = "range", isCellSelectable, selectedCellRange, defaultSelectedCellRange, onCellRangeChange, isRowMoveAnimated, isResizable = true, columnWidths: columnWidthsProp, defaultColumnWidths, onColumnResize, isVirtualized, virtualizeThreshold, overscan, getRowProps, storageKey, styles, headerStyles, headerCellStyles, bodyStyles, rowStyles, cellStyles, footerStyles, ariaLabel, qa, mods, ...rest } = props;
45
+ const rootRef = useCombinedRefs(ref, useRef(null));
46
+ const [scrollerEl, setScrollerEl] = useState(null);
47
+ const containerWidth = useContainerWidth(scrollerEl);
48
+ const storage = useTableStorage(storageKey);
49
+ /**
50
+ * `dataType` is presentational, so it is folded into the column here rather
51
+ * than reaching the renderer: `number` right-aligns and takes tabular figures
52
+ * so digits line up down the column.
53
+ */
54
+ const resolvedColumns = useMemo(() => columns.map((column) => {
55
+ const isNumeric = column.dataType === "number";
56
+ return {
57
+ ...column,
58
+ align: column.align ?? (isNumeric ? "end" : "start"),
59
+ cellStyles: isNumeric ? {
60
+ fontVariantNumeric: "tabular-nums",
61
+ ...typeof column.cellStyles === "object" ? column.cellStyles : null
62
+ } : column.cellStyles
63
+ };
64
+ }), [columns]);
65
+ const { sorts, sortedRows, toggleSort, mode: resolvedSortMode } = useTableSorts({
66
+ columns: resolvedColumns,
67
+ rows: data,
68
+ mode: sortMode,
69
+ sorts: sortsProp,
70
+ defaultSorts,
71
+ onSortsChange
72
+ });
73
+ const [pageSize, setPageSizeState] = useControlledState(pageSizeProp, pageSizeProp === void 0 && storage.has("pageSize") ? storage.initial.pageSize ?? defaultPageSize : defaultPageSize, onPageSizeChange);
74
+ const [page, setPageState] = useControlledState(pageProp, defaultPage ?? 1, onPageChange);
75
+ const isPaginated = paginationMode !== "off";
76
+ const isServerPaginated = paginationMode === "server";
77
+ const total = isServerPaginated ? totalProp ?? 0 : sortedRows.length;
78
+ const pageInfo = getPageInfo({
79
+ page,
80
+ pageSize,
81
+ total,
82
+ totalPages: isServerPaginated ? totalPages : void 0
83
+ });
84
+ const setPage = useEvent((next) => setPageState(clampPage(next, pageInfo.totalPages)));
85
+ const setPageSize = useEvent((next) => {
86
+ setPageSizeState(next);
87
+ setPageState(1);
88
+ if (pageSizeProp === void 0) storage.write({ pageSize: next });
89
+ });
90
+ const visibleRows = paginationMode === "client" ? sortedRows.slice((pageInfo.page - 1) * pageSize, pageInfo.page * pageSize) : sortedRows;
91
+ const [ownColumnWidths, setOwnColumnWidths] = useState(() => (columnWidthsProp === void 0 && storage.has("columnWidths") ? storage.initial.columnWidths ?? defaultColumnWidths : defaultColumnWidths) ?? EMPTY_WIDTHS);
92
+ const [draftColumnWidths, setDraftColumnWidths] = useState(null);
93
+ const draftRef = useRef(null);
94
+ const baseColumnWidths = columnWidthsProp ?? ownColumnWidths;
95
+ const columnWidths = draftColumnWidths ?? baseColumnWidths;
96
+ const handleColumnResize = useEvent((key, width) => {
97
+ draftRef.current = {
98
+ ...draftRef.current ?? baseColumnWidths,
99
+ [key]: Math.round(width)
100
+ };
101
+ setDraftColumnWidths(draftRef.current);
102
+ });
103
+ const handleColumnResizeEnd = useEvent((key) => {
104
+ const next = draftRef.current ?? baseColumnWidths;
105
+ if (columnWidthsProp === void 0) {
106
+ setOwnColumnWidths(next);
107
+ storage.write({ columnWidths: next });
108
+ }
109
+ onColumnResize?.(key, next[key], next);
110
+ draftRef.current = null;
111
+ setDraftColumnWidths(null);
112
+ });
113
+ const layout = useTableColumns({
114
+ columns: resolvedColumns,
115
+ containerWidth,
116
+ columnWidths,
117
+ leadingColumns: useMemo(() => showRowNumbers ? [{
118
+ key: ROW_NUMBER_COLUMN_KEY,
119
+ width: ROW_NUMBER_WIDTH
120
+ }] : void 0, [showRowNumbers])
121
+ });
122
+ const { t } = useI18n();
123
+ const resolvedGetRowKey = useMemo(() => getRowKey ?? defaultGetRowKey(rowKey), [getRowKey, rowKey]);
124
+ const selectionRows = useMemo(() => [
125
+ ...pinnedTopRows ?? [],
126
+ ...visibleRows,
127
+ ...pinnedBottomRows ?? []
128
+ ], [
129
+ pinnedTopRows,
130
+ visibleRows,
131
+ pinnedBottomRows
132
+ ]);
133
+ const selectionRowKeys = useMemo(() => [
134
+ ...(pinnedTopRows ?? []).map(resolvedGetRowKey),
135
+ ...visibleRows.map(resolvedGetRowKey),
136
+ ...(pinnedBottomRows ?? []).map(resolvedGetRowKey)
137
+ ], [
138
+ pinnedTopRows,
139
+ visibleRows,
140
+ pinnedBottomRows,
141
+ resolvedGetRowKey
142
+ ]);
143
+ const resolveCellSelectable = useEvent((row, rowKey, columnKey) => {
144
+ if (!isCellSelectable) return true;
145
+ const index = selectionRowKeys.indexOf(rowKey);
146
+ const topCount = pinnedTopRows?.length ?? 0;
147
+ return isCellSelectable({
148
+ row,
149
+ rowKey,
150
+ columnKey,
151
+ section: index < topCount ? "pinnedTop" : index < topCount + visibleRows.length ? "body" : "pinnedBottom"
152
+ });
153
+ });
154
+ const cellSelection = useCellSelection({
155
+ mode: cellSelectionMode,
156
+ columns: layout.columns,
157
+ rows: selectionRows,
158
+ rowKeys: selectionRowKeys,
159
+ isCellSelectable: isCellSelectable ? resolveCellSelectable : void 0,
160
+ range: selectedCellRange,
161
+ defaultRange: defaultSelectedCellRange,
162
+ onRangeChange: onCellRangeChange
163
+ });
164
+ const rootStyles = {
165
+ ...extractStyles(props, CONTAINER_STYLES),
166
+ ...styles
167
+ };
168
+ const smallestPageSize = pageSizeOptions?.length ? Math.min(...pageSizeOptions) : pageSize;
169
+ const showPagination = isPaginated && !(autoHidePagination && !hasNextPage && pageInfo.totalPages <= 1 && total <= smallestPageSize);
170
+ const hasFooter = showPagination || footerStart != null || footerCenter != null || footerEnd != null;
171
+ return /* @__PURE__ */ jsx(TableView, {
172
+ ...rest,
173
+ rootRef,
174
+ qa: qa || "DataTable",
175
+ rows: visibleRows,
176
+ pinnedTopRows,
177
+ pinnedBottomRows,
178
+ rowNumberOffset: paginationMode === "off" ? 0 : (pageInfo.page - 1) * pageSize,
179
+ rowIndexOffset: paginationMode === "off" ? 0 : (pageInfo.page - 1) * pageSize,
180
+ totalRowCount: total,
181
+ layout,
182
+ hasColumnDividers: true,
183
+ cellSelection,
184
+ getRowKey: resolvedGetRowKey,
185
+ onScrollerRef: setScrollerEl,
186
+ isLoading,
187
+ loadingIndicator,
188
+ skeletonRowCount,
189
+ error,
190
+ emptyLabel: emptyLabel ?? t("itemTable.noItems", "No items"),
191
+ noResultsLabel: noResultsLabel ?? t("itemTable.noResults", "No results found"),
192
+ isFiltered,
193
+ shape,
194
+ size,
195
+ rowHeight,
196
+ headerHeight,
197
+ isStriped,
198
+ isRowMoveAnimated,
199
+ isHeaderHidden,
200
+ isHeaderSticky,
201
+ contentPreset: "t4",
202
+ headerPreset: "t4m",
203
+ sortMode: resolvedSortMode,
204
+ sorts,
205
+ onColumnSort: toggleSort,
206
+ isVirtualized,
207
+ virtualizeThreshold,
208
+ overscan,
209
+ isResizable,
210
+ onColumnResize: handleColumnResize,
211
+ onColumnResizeEnd: handleColumnResizeEnd,
212
+ getRowProps,
213
+ ariaLabel,
214
+ styles: rootStyles,
215
+ headerStyles,
216
+ headerCellStyles,
217
+ bodyStyles,
218
+ rowStyles,
219
+ cellStyles,
220
+ mods,
221
+ footer: hasFooter ? /* @__PURE__ */ jsx(ItemTableFooter, {
222
+ start: footerStart,
223
+ center: footerCenter,
224
+ end: footerEnd,
225
+ styles: footerStyles,
226
+ pagination: showPagination ? {
227
+ page: pageInfo.page,
228
+ pageSize,
229
+ total,
230
+ totalPages: pageInfo.totalPages,
231
+ pageSizeOptions,
232
+ summary,
233
+ hasNextPage,
234
+ onPageChange: setPage,
235
+ onPageSizeChange: setPageSize
236
+ } : void 0
237
+ }) : null
238
+ });
239
+ }
240
+ const _DataTable = forwardRef(DataTable);
241
+ _DataTable.displayName = "DataTable";
242
+
243
+ //#endregion
244
+ export { _DataTable };
245
+ //# sourceMappingURL=DataTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTable.js","names":[],"sources":["../../../../src/components/data/DataTable/DataTable.tsx"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { clampPage, getPageInfo } from '../../navigation/Pagination';\nimport { ItemTableFooter } from '../ItemTable/ItemTableFooter';\nimport { TableView } from '../TableBase/TableView';\nimport { useCellSelection } from '../TableBase/use-cell-selection';\nimport { useContainerWidth } from '../TableBase/use-container-width';\nimport { useTableColumns } from '../TableBase/use-table-columns';\nimport { ROW_NUMBER_COLUMN_KEY } from '../TableBase/use-table-selection';\nimport { useTableSorts } from '../TableBase/use-table-sorts';\nimport { useTableStorage } from '../TableBase/use-table-storage';\n\nimport type { Key } from '@react-types/shared';\nimport type { ForwardedRef, ReactElement } from 'react';\nimport type { CubeTableRowSection } from '../TableBase/types';\nimport type { CubeDataTableColumn, CubeDataTableProps } from './types';\n\n/** Wide enough for five digits at the dense default. */\nconst ROW_NUMBER_WIDTH = 56;\n\nconst EMPTY_WIDTHS: Record<string, number> = {};\n\nfunction defaultGetRowKey<T>(rowKey: string) {\n return (row: T, index: number): Key => {\n const value = (row as any)?.[rowKey];\n\n return value == null ? index : (value as Key);\n };\n}\n\n/**\n * A grid for query results.\n *\n * The same engine as `ItemTable` — one `TableView`, one column layout, one\n * value pipeline — with the defaults an analytical grid wants rather than a\n * list's: denser type, banded rows, resizable columns, multi-column sort, and\n * rows pinned for totals.\n *\n * It knows nothing about Cube. Measures, dimensions, pivots and drill-downs\n * reach it as ordinary columns, `render` output and `column.header.menu`\n * content, which is what keeps the ~34 kB of Cloud's column-header menu in\n * Cloud.\n */\nfunction DataTable<T = any>(\n props: CubeDataTableProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const {\n data,\n columns,\n rowKey = 'id',\n getRowKey,\n pinnedTopRows,\n pinnedBottomRows,\n isLoading = false,\n loadingIndicator = 'overlay',\n skeletonRowCount,\n error,\n emptyLabel,\n noResultsLabel,\n isFiltered,\n shape = 'plain',\n // Denser than `ItemTable`'s `medium`: a result grid is read as a block, and\n // more rows on screen is the point of it.\n size = 'small',\n rowHeight,\n headerHeight,\n isStriped = true,\n isHeaderHidden,\n isHeaderSticky,\n showRowNumbers = false,\n sortMode,\n sorts: sortsProp,\n defaultSorts,\n onSortsChange,\n paginationMode = 'client',\n page: pageProp,\n defaultPage,\n onPageChange,\n pageSize: pageSizeProp,\n defaultPageSize = 100,\n onPageSizeChange,\n pageSizeOptions,\n total: totalProp,\n totalPages,\n hasNextPage,\n summary = true,\n autoHidePagination = true,\n footerStart,\n footerCenter,\n footerEnd,\n cellSelectionMode = 'range',\n isCellSelectable,\n selectedCellRange,\n defaultSelectedCellRange,\n onCellRangeChange,\n isRowMoveAnimated,\n isResizable = true,\n columnWidths: columnWidthsProp,\n defaultColumnWidths,\n onColumnResize,\n isVirtualized,\n virtualizeThreshold,\n overscan,\n getRowProps,\n storageKey,\n styles,\n headerStyles,\n headerCellStyles,\n bodyStyles,\n rowStyles,\n cellStyles,\n footerStyles,\n ariaLabel,\n qa,\n mods,\n ...rest\n } = props;\n\n const localRef = useRef<HTMLDivElement>(null);\n const rootRef = useCombinedRefs(ref, localRef);\n const [scrollerEl, setScrollerEl] = useState<HTMLElement | null>(null);\n const containerWidth = useContainerWidth(scrollerEl);\n\n const storage = useTableStorage(storageKey);\n\n /**\n * `dataType` is presentational, so it is folded into the column here rather\n * than reaching the renderer: `number` right-aligns and takes tabular figures\n * so digits line up down the column.\n */\n const resolvedColumns = useMemo(\n () =>\n columns.map((column) => {\n const isNumeric = column.dataType === 'number';\n\n return {\n ...column,\n align: column.align ?? (isNumeric ? 'end' : 'start'),\n cellStyles: isNumeric\n ? {\n fontVariantNumeric: 'tabular-nums',\n ...(typeof column.cellStyles === 'object'\n ? column.cellStyles\n : null),\n }\n : column.cellStyles,\n } as CubeDataTableColumn<T>;\n }),\n [columns],\n );\n\n const {\n sorts,\n sortedRows,\n toggleSort,\n mode: resolvedSortMode,\n } = useTableSorts<T>({\n columns: resolvedColumns,\n rows: data,\n mode: sortMode,\n sorts: sortsProp,\n defaultSorts,\n onSortsChange,\n });\n\n const [pageSize, setPageSizeState] = useControlledState<number>(\n pageSizeProp as number,\n (pageSizeProp === undefined && storage.has('pageSize')\n ? storage.initial.pageSize ?? defaultPageSize\n : defaultPageSize) as number,\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 isPaginated = paginationMode !== 'off';\n const isServerPaginated = paginationMode === 'server';\n const total = isServerPaginated ? totalProp ?? 0 : sortedRows.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 setPageState(1);\n\n if (pageSizeProp === undefined) storage.write({ pageSize: next });\n });\n\n const visibleRows =\n paginationMode === 'client'\n ? sortedRows.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : sortedRows;\n\n const [ownColumnWidths, setOwnColumnWidths] = useState<\n Record<string, number>\n >(\n () =>\n (columnWidthsProp === undefined && storage.has('columnWidths')\n ? storage.initial.columnWidths ?? defaultColumnWidths\n : defaultColumnWidths) ?? EMPTY_WIDTHS,\n );\n const [draftColumnWidths, setDraftColumnWidths] = useState<Record<\n string,\n number\n > | null>(null);\n const draftRef = useRef<Record<string, number> | null>(null);\n\n const baseColumnWidths = columnWidthsProp ?? ownColumnWidths;\n const columnWidths = draftColumnWidths ?? baseColumnWidths;\n\n const handleColumnResize = useEvent((key: string, width: number) => {\n draftRef.current = {\n ...(draftRef.current ?? baseColumnWidths),\n [key]: Math.round(width),\n };\n setDraftColumnWidths(draftRef.current);\n });\n\n const handleColumnResizeEnd = useEvent((key: string) => {\n const next = draftRef.current ?? baseColumnWidths;\n\n if (columnWidthsProp === undefined) {\n setOwnColumnWidths(next);\n storage.write({ columnWidths: next });\n }\n\n onColumnResize?.(key, next[key], next);\n draftRef.current = null;\n setDraftColumnWidths(null);\n });\n\n const leadingColumns = useMemo(\n () =>\n showRowNumbers\n ? [{ key: ROW_NUMBER_COLUMN_KEY, width: ROW_NUMBER_WIDTH }]\n : undefined,\n [showRowNumbers],\n );\n\n const layout = useTableColumns<T>({\n columns: resolvedColumns,\n containerWidth,\n columnWidths,\n leadingColumns,\n });\n\n const { t } = useI18n();\n\n const resolvedGetRowKey = useMemo(\n () => getRowKey ?? defaultGetRowKey<T>(rowKey),\n [getRowKey, rowKey],\n );\n\n // Every row a range can reach, in the order they appear on screen. Pinned rows\n // are in it: a total is a figure like any other, and having to copy it\n // separately from the column it sums is the wrong trade.\n //\n // The keys are built here rather than inside the hook so they cannot disagree\n // with the ones the renderer stamps — a pinned row is keyed by its own index\n // within its group, exactly as `renderPinnedRow` keys it.\n const selectionRows = useMemo(\n () => [\n ...(pinnedTopRows ?? []),\n ...visibleRows,\n ...(pinnedBottomRows ?? []),\n ],\n [pinnedTopRows, visibleRows, pinnedBottomRows],\n );\n const selectionRowKeys = useMemo(\n () => [\n ...(pinnedTopRows ?? []).map(resolvedGetRowKey),\n ...visibleRows.map(resolvedGetRowKey),\n ...(pinnedBottomRows ?? []).map(resolvedGetRowKey),\n ],\n [pinnedTopRows, visibleRows, pinnedBottomRows, resolvedGetRowKey],\n );\n\n // The hook works in one flat row order; the section a row belongs to is a\n // property of where it sits in that order, so it is resolved here rather than\n // asking the consumer to track it.\n const resolveCellSelectable = useEvent(\n (row: T, rowKey: Key, columnKey: string) => {\n if (!isCellSelectable) return true;\n\n const index = selectionRowKeys.indexOf(rowKey);\n const topCount = pinnedTopRows?.length ?? 0;\n const section: CubeTableRowSection =\n index < topCount\n ? 'pinnedTop'\n : index < topCount + visibleRows.length\n ? 'body'\n : 'pinnedBottom';\n\n return isCellSelectable({ row, rowKey, columnKey, section });\n },\n );\n\n const cellSelection = useCellSelection<T>({\n mode: cellSelectionMode,\n columns: layout.columns,\n rows: selectionRows,\n rowKeys: selectionRowKeys,\n isCellSelectable: isCellSelectable ? resolveCellSelectable : undefined,\n range: selectedCellRange,\n defaultRange: defaultSelectedCellRange,\n onRangeChange: onCellRangeChange,\n });\n\n // Same as `ItemTable`: style props (`height`, `maxHeight`, `margin`, …) land\n // on the root frame. `height` is the one that matters — there is no\n // page-scroll mode, so bounding the grid is what turns the body into a\n // scroller, pins the header, and lets virtualization engage at all.\n const rootStyles = { ...extractStyles(props, CONTAINER_STYLES), ...styles };\n\n const smallestPageSize = pageSizeOptions?.length\n ? Math.min(...pageSizeOptions)\n : pageSize;\n\n const showPagination =\n isPaginated &&\n !(\n autoHidePagination &&\n !hasNextPage &&\n pageInfo.totalPages <= 1 &&\n total <= smallestPageSize\n );\n\n const hasFooter =\n showPagination ||\n footerStart != null ||\n footerCenter != null ||\n footerEnd != null;\n\n return (\n <TableView<T>\n {...rest}\n rootRef={rootRef}\n qa={qa || 'DataTable'}\n rows={visibleRows}\n pinnedTopRows={pinnedTopRows}\n pinnedBottomRows={pinnedBottomRows}\n // Continuous across pages: row 101 is row 101, not row 1 of page two.\n //\n // Server mode counts too — the page and its size are known there just the\n // same, and `rows` is that page. Only `'off'` starts at 1, because then\n // there is no page to be on.\n rowNumberOffset={\n paginationMode === 'off' ? 0 : (pageInfo.page - 1) * pageSize\n }\n // The same offset drives `aria-rowindex`, which is document-absolute by\n // contract — a screen reader on page 3 should hear \"row 51 of 240\", not\n // \"row 1 of 25\".\n rowIndexOffset={\n paginationMode === 'off' ? 0 : (pageInfo.page - 1) * pageSize\n }\n totalRowCount={total}\n layout={layout}\n // Always on, unlike `ItemTable`. A result grid is read down a column, and\n // once the values are wide and right-aligned the rule is what keeps a\n // figure attached to its column — which is why Cloud's ag-grid theme sets\n // `columnBorder` for `DataTable` and not for the list grids.\n hasColumnDividers\n cellSelection={cellSelection}\n getRowKey={resolvedGetRowKey}\n onScrollerRef={setScrollerEl}\n isLoading={isLoading}\n loadingIndicator={loadingIndicator}\n skeletonRowCount={skeletonRowCount}\n error={error}\n // Same localized fallbacks as `ItemTable`: a grid that has finished\n // loading and shows an unexplained blank rectangle reads as broken.\n emptyLabel={emptyLabel ?? t('itemTable.noItems', 'No items')}\n noResultsLabel={\n noResultsLabel ?? t('itemTable.noResults', 'No results found')\n }\n isFiltered={isFiltered}\n shape={shape}\n size={size}\n rowHeight={rowHeight}\n headerHeight={headerHeight}\n isStriped={isStriped}\n isRowMoveAnimated={isRowMoveAnimated}\n isHeaderHidden={isHeaderHidden}\n isHeaderSticky={isHeaderSticky}\n // The header shows the column name at body size — a result grid has no\n // room for the uppercase caption a list header uses.\n // `t4` throughout: a result grid is read as a block, and one step down\n // from the list preset fits noticeably more on screen without losing\n // legibility. The header takes the medium weight of the same step.\n contentPreset=\"t4\"\n headerPreset=\"t4m\"\n sortMode={resolvedSortMode}\n sorts={sorts}\n onColumnSort={toggleSort}\n isVirtualized={isVirtualized}\n virtualizeThreshold={virtualizeThreshold}\n overscan={overscan}\n isResizable={isResizable}\n onColumnResize={handleColumnResize}\n onColumnResizeEnd={handleColumnResizeEnd}\n getRowProps={getRowProps}\n ariaLabel={ariaLabel}\n styles={rootStyles}\n headerStyles={headerStyles}\n headerCellStyles={headerCellStyles}\n bodyStyles={bodyStyles}\n rowStyles={rowStyles}\n cellStyles={cellStyles}\n mods={mods}\n footer={\n hasFooter ? (\n <ItemTableFooter\n start={footerStart}\n center={footerCenter}\n end={footerEnd}\n styles={footerStyles}\n pagination={\n 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 />\n ) : null\n }\n />\n );\n}\n\nconst _DataTable = forwardRef(DataTable) as unknown as (<T = any>(\n props: CubeDataTableProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n) => ReactElement) & { displayName?: string };\n\n_DataTable.displayName = 'DataTable';\n\nexport { _DataTable as DataTable };\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+
2
+ import { CubeDataTableColumn, CubeDataTableProps } from "./types.js";
3
+ import { _DataTable } from "./DataTable.js";
@@ -0,0 +1,145 @@
1
+
2
+ import { SizeName } from "../../../tokens/sizes.js";
3
+ import { CubeTablePageInfo } from "../../navigation/Pagination/types.js";
4
+ import "../../navigation/Pagination/index.js";
5
+ import "../../../tokens/index.js";
6
+ import { CubeTableCellRange, CubeTableColumn, CubeTableLoadingIndicator, CubeTableRowContext, CubeTableRowSection, CubeTableSort } from "../TableBase/types.js";
7
+ import { BaseProps, ContainerStyleProps, Styles } from "@tenphi/tasty";
8
+ import { ReactNode } from "react";
9
+ import { Key as Key$1 } from "@react-types/shared";
10
+
11
+ //#region src/components/data/DataTable/types.d.ts
12
+ /**
13
+ * A `DataTable` column.
14
+ *
15
+ * The same shape `ItemTable` uses. `dataType` is the one addition, and it is
16
+ * deliberately presentational — alignment and numeric formatting — rather than
17
+ * a Cube type: nothing under `src/components/data/` knows what a measure is.
18
+ */
19
+ interface CubeDataTableColumn<T = any> extends CubeTableColumn<T> {
20
+ /**
21
+ * Drives the default alignment and numeric font. `number` right-aligns and
22
+ * switches to tabular figures so digits line up down the column.
23
+ */
24
+ dataType?: 'string' | 'number' | 'boolean' | 'date' | 'unknown';
25
+ }
26
+ interface CubeDataTableProps<T = any> extends BaseProps, ContainerStyleProps {
27
+ data: readonly T[];
28
+ columns: CubeDataTableColumn<T>[];
29
+ rowKey?: string;
30
+ getRowKey?: (row: T, index: number) => Key$1;
31
+ /**
32
+ * Totals and subtotals, pinned above and below the scrolling rows. Ordinary
33
+ * rows as far as the columns are concerned — the consumer decides what a
34
+ * total means.
35
+ */
36
+ pinnedTopRows?: readonly T[];
37
+ pinnedBottomRows?: readonly T[];
38
+ isLoading?: boolean;
39
+ /** @default 'overlay' */
40
+ loadingIndicator?: CubeTableLoadingIndicator;
41
+ skeletonRowCount?: number;
42
+ error?: ReactNode;
43
+ emptyLabel?: ReactNode;
44
+ noResultsLabel?: ReactNode;
45
+ isFiltered?: boolean;
46
+ shape?: 'plain' | 'card';
47
+ /** @default 'small' — an analytical grid packs more rows than a list. */
48
+ size?: SizeName;
49
+ rowHeight?: number;
50
+ headerHeight?: number;
51
+ /** @default true — banding is what makes a wide row readable across. */
52
+ isStriped?: boolean;
53
+ isHeaderHidden?: boolean;
54
+ isHeaderSticky?: boolean;
55
+ /**
56
+ * Slide rows to their new positions when the sort changes, instead of
57
+ * teleporting them. @default true
58
+ */
59
+ isRowMoveAnimated?: boolean;
60
+ /** Numbers each row down the side. @default false */
61
+ showRowNumbers?: boolean;
62
+ /** @default 'client' */
63
+ sortMode?: 'client' | 'server' | 'off';
64
+ /**
65
+ * Multi-column, unlike `ItemTable`'s single `sort`: an analytical grid is
66
+ * routinely sorted by one dimension then another, and Cloud's reports send
67
+ * an array of sorts to the query.
68
+ */
69
+ sorts?: CubeTableSort[];
70
+ defaultSorts?: CubeTableSort[];
71
+ onSortsChange?: (sorts: CubeTableSort[]) => void;
72
+ /** @default 'client' */
73
+ paginationMode?: 'client' | 'server' | 'off';
74
+ page?: number;
75
+ defaultPage?: number;
76
+ onPageChange?: (page: number) => void;
77
+ pageSize?: number;
78
+ defaultPageSize?: number;
79
+ onPageSizeChange?: (pageSize: number) => void;
80
+ pageSizeOptions?: number[];
81
+ total?: number;
82
+ totalPages?: number;
83
+ hasNextPage?: boolean;
84
+ summary?: boolean | ((info: CubeTablePageInfo) => ReactNode);
85
+ /** @default true */
86
+ autoHidePagination?: boolean;
87
+ footerStart?: ReactNode;
88
+ footerCenter?: ReactNode;
89
+ footerEnd?: ReactNode;
90
+ /**
91
+ * A list is acted on by row; a result grid is read by cell. Click selects a
92
+ * cell, shift-click and drag grow a rectangle, and ⌘/Ctrl+C copies it.
93
+ *
94
+ * `'cell'` allows one cell at a time; `'none'` turns the whole thing off.
95
+ * @default 'range'
96
+ */
97
+ cellSelectionMode?: 'none' | 'cell' | 'range';
98
+ /**
99
+ * Vetoes individual cells. A pinned total's label cell is the motivating case:
100
+ * `"Total"` is a caption for the row, not a figure, and there is nothing
101
+ * useful to do with it selected.
102
+ *
103
+ * ```tsx
104
+ * isCellSelectable={({ section, columnKey }) =>
105
+ * !(section === 'pinnedBottom' && columnKey === 'region')
106
+ * }
107
+ * ```
108
+ *
109
+ * A vetoed cell is inert — it cannot anchor or receive a range, never
110
+ * highlights, and copies as an empty field so a block spanning it keeps its
111
+ * shape.
112
+ */
113
+ isCellSelectable?: (ctx: {
114
+ row: T;
115
+ rowKey: Key$1;
116
+ columnKey: string;
117
+ section: CubeTableRowSection;
118
+ }) => boolean;
119
+ selectedCellRange?: CubeTableCellRange | null;
120
+ defaultSelectedCellRange?: CubeTableCellRange | null;
121
+ onCellRangeChange?: (range: CubeTableCellRange | null) => void;
122
+ /** @default true — a result grid is the case resizing exists for. */
123
+ isResizable?: boolean;
124
+ columnWidths?: Record<string, number>;
125
+ defaultColumnWidths?: Record<string, number>;
126
+ onColumnResize?: (columnKey: string, width: number, all: Record<string, number>) => void;
127
+ isVirtualized?: boolean | 'auto';
128
+ virtualizeThreshold?: number;
129
+ overscan?: number;
130
+ getRowProps?: (ctx: CubeTableRowContext<T>) => Record<string, any> | undefined;
131
+ storageKey?: string;
132
+ styles?: Styles;
133
+ headerStyles?: Styles;
134
+ headerCellStyles?: Styles;
135
+ bodyStyles?: Styles;
136
+ rowStyles?: Styles;
137
+ cellStyles?: Styles;
138
+ footerStyles?: Styles;
139
+ ariaLabel?: string;
140
+ qa?: string;
141
+ mods?: Record<string, boolean>;
142
+ }
143
+ //#endregion
144
+ export { CubeDataTableColumn, CubeDataTableProps };
145
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,19 @@
1
+
2
+ import { CubeItemTableProps } from "./types.js";
3
+ import { ItemTableBulkBar } from "./ItemTableBulkBar.js";
4
+ import { ItemTableSearch, ItemTableToolbar } from "./ItemTableToolbar.js";
5
+ import { ForwardedRef, ReactElement } from "react";
6
+
7
+ //#region src/components/data/ItemTable/ItemTable.d.ts
8
+ declare const _ItemTable: (<T = any>(props: CubeItemTableProps<T> & {
9
+ ref?: ForwardedRef<HTMLDivElement>;
10
+ }) => ReactElement) & {
11
+ displayName?: string;
12
+ } & {
13
+ /** The table's search input, bound to the table's own state. */Search: typeof ItemTableSearch; /** The default toolbar row, for rebuilding it around extra content. */
14
+ Toolbar: typeof ItemTableToolbar; /** The selection action bar, for placing it outside the default chrome. */
15
+ BulkBar: typeof ItemTableBulkBar;
16
+ };
17
+ //#endregion
18
+ export { _ItemTable };
19
+ //# sourceMappingURL=ItemTable.d.ts.map