@cube-dev/ui-kit 0.202.0 → 0.204.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (645) hide show
  1. package/dist/CHANGELOG.md +24 -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/MenuCollectionItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuItem.js +1 -1
  32. package/dist/components/actions/Menu/MenuSection.js +1 -1
  33. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  36. package/dist/components/actions/Menu/context.js +1 -1
  37. package/dist/components/actions/Menu/styled.js +1 -1
  38. package/dist/components/actions/actions-run.js +1 -1
  39. package/dist/components/actions/index.js +1 -1
  40. package/dist/components/actions/use-action.js +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/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.js +1 -1
  57. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  58. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  59. package/dist/components/content/Item/Item.js +1 -1
  60. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  61. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  62. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  63. package/dist/components/content/Layout/GridLayout.js +1 -1
  64. package/dist/components/content/Layout/Layout.js +1 -1
  65. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  66. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  67. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  68. package/dist/components/content/Layout/LayoutContent.js +1 -1
  69. package/dist/components/content/Layout/LayoutContext.js +1 -1
  70. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  71. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  72. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  73. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutPane.js +1 -1
  75. package/dist/components/content/Layout/LayoutPanel.js +2 -2
  76. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  77. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  78. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  79. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  80. package/dist/components/content/Layout/index.js +1 -1
  81. package/dist/components/content/Layout/utils.js +1 -1
  82. package/dist/components/content/Paragraph.js +1 -1
  83. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  84. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  85. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  86. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  87. package/dist/components/content/Result/Result.js +1 -1
  88. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  89. package/dist/components/content/Tag/Tag.js +1 -1
  90. package/dist/components/content/Text.js +1 -1
  91. package/dist/components/content/TextItem/TextItem.js +1 -1
  92. package/dist/components/content/Title.js +1 -1
  93. package/dist/components/content/Tree/Tree.js +1 -1
  94. package/dist/components/content/Tree/TreeNode.js +1 -1
  95. package/dist/components/content/Tree/checked-keys.js +1 -1
  96. package/dist/components/content/Tree/rowId.js +1 -1
  97. package/dist/components/content/Tree/styled.js +1 -1
  98. package/dist/components/content/Tree/tree-index.js +1 -1
  99. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  100. package/dist/components/content/Tree/use-load-data.js +1 -1
  101. package/dist/components/content/highlightText.js +1 -1
  102. package/dist/components/content/use-auto-tooltip.js +1 -1
  103. package/dist/components/data/DataTable/DataTable.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTable.js +233 -178
  105. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  106. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  109. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  110. package/dist/components/data/ItemTable/index.d.ts +2 -2
  111. package/dist/components/data/ItemTable/item-table-sections.js +68 -0
  112. package/dist/components/data/ItemTable/item-table-sections.js.map +1 -0
  113. package/dist/components/data/ItemTable/types.d.ts +12 -0
  114. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  115. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  116. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  117. package/dist/components/data/ItemTable/use-item-table-selection.js +31 -27
  118. package/dist/components/data/ItemTable/use-item-table-selection.js.map +1 -1
  119. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  120. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  121. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  122. package/dist/components/data/TableBase/RowCollection.js +1 -1
  123. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  124. package/dist/components/data/TableBase/TableRow.js +1 -1
  125. package/dist/components/data/TableBase/TableRowLink.js +1 -1
  126. package/dist/components/data/TableBase/TableView.d.ts +1 -0
  127. package/dist/components/data/TableBase/TableView.js +86 -21
  128. package/dist/components/data/TableBase/TableView.js.map +1 -1
  129. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  130. package/dist/components/data/TableBase/column-header.js +1 -1
  131. package/dist/components/data/TableBase/column-menu.js +1 -1
  132. package/dist/components/data/TableBase/column-styles.js +1 -1
  133. package/dist/components/data/TableBase/column-tint.js +1 -1
  134. package/dist/components/data/TableBase/row-menu.js +1 -1
  135. package/dist/components/data/TableBase/styled.js +25 -1
  136. package/dist/components/data/TableBase/styled.js.map +1 -1
  137. package/dist/components/data/TableBase/table-body-sections.d.ts +3 -0
  138. package/dist/components/data/TableBase/table-body-sections.js +30 -0
  139. package/dist/components/data/TableBase/table-body-sections.js.map +1 -0
  140. package/dist/components/data/TableBase/table-tree.js +1 -1
  141. package/dist/components/data/TableBase/types.js +1 -1
  142. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  143. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  144. package/dist/components/data/TableBase/use-column-order.js +1 -1
  145. package/dist/components/data/TableBase/use-column-window.js +1 -1
  146. package/dist/components/data/TableBase/use-container-width.js +1 -1
  147. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  148. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  149. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  150. package/dist/components/data/TableBase/use-table-search.js +1 -1
  151. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  152. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  153. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  154. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  155. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  156. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  157. package/dist/components/data/index.d.ts +2 -2
  158. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  159. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  160. package/dist/components/fields/Checkbox/context.js +1 -1
  161. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  162. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  163. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  164. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  165. package/dist/components/fields/ComboBox/ComboBox.d.ts +1 -1
  166. package/dist/components/fields/ComboBox/ComboBox.js +382 -344
  167. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  168. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  169. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  170. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  171. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  172. package/dist/components/fields/DatePicker/DateInput.js +3 -4
  173. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  174. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  175. package/dist/components/fields/DatePicker/DatePicker.js +3 -4
  176. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  177. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  178. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  179. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  180. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  181. package/dist/components/fields/DatePicker/DateRangePicker.js +3 -4
  182. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  183. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +3 -4
  184. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  185. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  186. package/dist/components/fields/DatePicker/PeriodPicker.js +3 -3
  187. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  188. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  189. package/dist/components/fields/DatePicker/TimeInput.js +4 -5
  190. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  191. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  192. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  193. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  194. package/dist/components/fields/DatePicker/period.js +1 -1
  195. package/dist/components/fields/DatePicker/props.js +1 -1
  196. package/dist/components/fields/DatePicker/utils.js +1 -1
  197. package/dist/components/fields/FileInput/FileInput.js +77 -79
  198. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  199. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  200. package/dist/components/fields/FilterListBox/styled.js +1 -1
  201. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  202. package/dist/components/fields/FilterPicker/FilterTree.js +1 -1
  203. package/dist/components/fields/Input/Input.js +1 -1
  204. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  205. package/dist/components/fields/ListBox/ListBox.js +1 -1
  206. package/dist/components/fields/ListBox/optionId.js +1 -1
  207. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  208. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  209. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  210. package/dist/components/fields/NumberInput/NumberInput.js +36 -19
  211. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  212. package/dist/components/fields/NumberInput/StepButton.js +52 -37
  213. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  214. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  215. package/dist/components/fields/Picker/Picker.js +1 -1
  216. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  217. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  218. package/dist/components/fields/RadioGroup/context.js +1 -1
  219. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  220. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  221. package/dist/components/fields/Select/Select.js +1 -1
  222. package/dist/components/fields/Slider/Gradation.js +1 -1
  223. package/dist/components/fields/Slider/HueSlider.js +1 -1
  224. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  225. package/dist/components/fields/Slider/Slider.js +1 -1
  226. package/dist/components/fields/Slider/SliderBase.js +1 -1
  227. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  228. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  229. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  230. package/dist/components/fields/Slider/elements.js +1 -1
  231. package/dist/components/fields/Slider/index.js +1 -1
  232. package/dist/components/fields/Slider/types.d.ts +0 -1
  233. package/dist/components/fields/Switch/Switch.js +1 -1
  234. package/dist/components/fields/TagInput/TagInput.js +1 -1
  235. package/dist/components/fields/TagInput/TagList.js +1 -1
  236. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  237. package/dist/components/fields/TagInput/useTagError.js +1 -1
  238. package/dist/components/fields/TextArea/TextArea.js +1 -1
  239. package/dist/components/fields/TextInput/TextInput.js +1 -1
  240. package/dist/components/fields/TextInput/TextInputBase.d.ts +10 -0
  241. package/dist/components/fields/TextInput/TextInputBase.js +67 -55
  242. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  243. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  244. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  245. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  246. package/dist/components/fields/TriggerActions.js +1 -1
  247. package/dist/components/fields/color/ColorPanel.js +1 -1
  248. package/dist/components/fields/color/channels.js +1 -1
  249. package/dist/components/fields/color/color.js +1 -1
  250. package/dist/components/fields/color/context.js +1 -1
  251. package/dist/components/fields/option-origin-press.js +1 -1
  252. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  253. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  254. package/dist/components/form/Form/Field.js +1 -1
  255. package/dist/components/form/Form/Form.js +1 -1
  256. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  257. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  258. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  259. package/dist/components/form/Form/SubmitError.js +1 -1
  260. package/dist/components/form/Form/backend.js +1 -1
  261. package/dist/components/form/Form/index.js +1 -1
  262. package/dist/components/form/Form/modern/actions.js +1 -1
  263. package/dist/components/form/Form/modern/context.js +1 -1
  264. package/dist/components/form/Form/modern/controller.js +1 -1
  265. package/dist/components/form/Form/modern/field-binding.js +1 -1
  266. package/dist/components/form/Form/modern/field.js +1 -1
  267. package/dist/components/form/Form/modern/react.js +1 -1
  268. package/dist/components/form/Form/modern/store.js +18 -2
  269. package/dist/components/form/Form/modern/store.js.map +1 -1
  270. package/dist/components/form/Form/modern/types.d.ts +5 -0
  271. package/dist/components/form/Form/modern/validation.js +1 -1
  272. package/dist/components/form/Form/modern/values.js +1 -1
  273. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  274. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  275. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  276. package/dist/components/form/Form/use-field/use-field.js +1 -1
  277. package/dist/components/form/Form/use-form.js +1 -1
  278. package/dist/components/form/Form/validation.js +1 -1
  279. package/dist/components/form/Label.js +1 -1
  280. package/dist/components/form/field-chrome.js +1 -1
  281. package/dist/components/form/field-layout.d.ts +12 -2
  282. package/dist/components/form/field-layout.js +29 -11
  283. package/dist/components/form/field-layout.js.map +1 -1
  284. package/dist/components/form/legacy-tooltip.js +1 -1
  285. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  286. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  287. package/dist/components/form/validation/use-validation-props.js +1 -1
  288. package/dist/components/form/wrapper.js +1 -1
  289. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  290. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  291. package/dist/components/layout/Flex.js +1 -1
  292. package/dist/components/layout/Flow.js +1 -1
  293. package/dist/components/layout/Grid.js +1 -1
  294. package/dist/components/layout/Panel.js +1 -1
  295. package/dist/components/layout/Prefix.js +1 -1
  296. package/dist/components/layout/ResizablePanel.js +1 -1
  297. package/dist/components/layout/Space.js +1 -1
  298. package/dist/components/layout/Suffix.js +1 -1
  299. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  300. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  301. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  302. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  303. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  304. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  305. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  306. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  307. package/dist/components/navigation/Tabs/Tabs.js +7 -3
  308. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  309. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  310. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  311. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  312. package/dist/components/navigation/Tabs/styled.js +18 -18
  313. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  314. package/dist/components/navigation/Tabs/types.js +1 -1
  315. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  316. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  317. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  318. package/dist/components/other/Calendar/Calendar.js +1 -1
  319. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  320. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  321. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  322. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  323. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  324. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  325. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  326. package/dist/components/other/Calendar/styled.js +1 -1
  327. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  328. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  329. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  330. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  331. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +2 -2
  332. package/dist/components/overlays/AlertDialog/types.d.ts +1 -1
  333. package/dist/components/overlays/Dialog/Dialog.js +9 -4
  334. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  335. package/dist/components/overlays/Dialog/DialogContainer.d.ts +7 -0
  336. package/dist/components/overlays/Dialog/DialogContainer.js +61 -32
  337. package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
  338. package/dist/components/overlays/Dialog/DialogForm.d.ts +7 -0
  339. package/dist/components/overlays/Dialog/DialogForm.js +10 -3
  340. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  341. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +8 -0
  342. package/dist/components/overlays/Dialog/DialogTrigger.js +24 -11
  343. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  344. package/dist/components/overlays/Dialog/ModernDialogForm.js +213 -185
  345. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
  346. package/dist/components/overlays/Dialog/context.js +1 -1
  347. package/dist/components/overlays/Dialog/context.js.map +1 -1
  348. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  349. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  350. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  351. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  352. package/dist/components/overlays/Dialog/use-dismiss-confirmation.js +211 -0
  353. package/dist/components/overlays/Dialog/use-dismiss-confirmation.js.map +1 -0
  354. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  355. package/dist/components/overlays/Modal/Modal.js +1 -1
  356. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  357. package/dist/components/overlays/Modal/Overlay.js +1 -1
  358. package/dist/components/overlays/Modal/Popover.js +1 -1
  359. package/dist/components/overlays/Modal/Tray.js +1 -1
  360. package/dist/components/overlays/Modal/Underlay.js +1 -1
  361. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  362. package/dist/components/overlays/Notifications/Notification.js +1 -1
  363. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  364. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  365. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  366. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  367. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  368. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  369. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  370. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  371. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  372. package/dist/components/overlays/Notifications/index.js +1 -1
  373. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  374. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  375. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  376. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  377. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  378. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  379. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  380. package/dist/components/overlays/Toast/index.js +1 -1
  381. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  382. package/dist/components/overlays/Toast/useToast.js +1 -1
  383. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  384. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  385. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  386. package/dist/components/overlays/Tooltip/context.js +1 -1
  387. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  388. package/dist/components/portal/Portal.js +1 -1
  389. package/dist/components/portal/PortalProvider.js +1 -1
  390. package/dist/components/portal/usePortal.js +1 -1
  391. package/dist/components/shared/DraggableCollection.js +1 -1
  392. package/dist/components/shared/InvalidIcon.js +1 -1
  393. package/dist/components/shared/ValidIcon.js +1 -1
  394. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  395. package/dist/components/status/Spin/Cube.js +1 -1
  396. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  397. package/dist/components/status/Spin/Spin.js +1 -1
  398. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  399. package/dist/data/item-themes.js +1 -1
  400. package/dist/data/themes.js +1 -1
  401. package/dist/eslint-plugin/defaults.generated.js +25 -1
  402. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  403. package/dist/eslint-plugin/index.js +1 -1
  404. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  405. package/dist/i18n/I18nProvider.js +1 -1
  406. package/dist/i18n/createFormatter.js +1 -1
  407. package/dist/i18n/index.js +1 -1
  408. package/dist/i18n/instance.js +1 -1
  409. package/dist/i18n/locales/de-DE/uikit.js +10 -2
  410. package/dist/i18n/locales/en-US/uikit.js +10 -2
  411. package/dist/i18n/locales/en-US/uikit.json.d.ts +11 -4
  412. package/dist/i18n/locales/es-ES/uikit.js +10 -2
  413. package/dist/i18n/locales/es-MX/uikit.js +10 -2
  414. package/dist/i18n/locales/fr-FR/uikit.js +10 -2
  415. package/dist/i18n/locales/it-IT/uikit.js +10 -2
  416. package/dist/i18n/locales/ja-JP/uikit.js +10 -2
  417. package/dist/i18n/locales/nb-NO/uikit.js +10 -2
  418. package/dist/i18n/locales/pt-BR/uikit.js +10 -2
  419. package/dist/i18n/locales/pt-PT/uikit.js +10 -2
  420. package/dist/i18n/locales/sv-SE/uikit.js +10 -2
  421. package/dist/i18n/locales/vi-VN/uikit.js +10 -2
  422. package/dist/i18n/locales.js +1 -1
  423. package/dist/i18n/namespace.js +1 -1
  424. package/dist/i18n/useFormatter.js +1 -1
  425. package/dist/i18n/useI18n.js +1 -1
  426. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  427. package/dist/icons/AdjustmentsIcon.js +1 -1
  428. package/dist/icons/AiIcon.js +1 -1
  429. package/dist/icons/AreaChartIcon.js +1 -1
  430. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  431. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  432. package/dist/icons/BackwardIcon.js +1 -1
  433. package/dist/icons/BarChartIcon.js +1 -1
  434. package/dist/icons/BellFilledIcon.js +1 -1
  435. package/dist/icons/BellIcon.js +1 -1
  436. package/dist/icons/BooleanIcon.js +1 -1
  437. package/dist/icons/CalendarEditIcon.js +1 -1
  438. package/dist/icons/CalendarIcon.js +1 -1
  439. package/dist/icons/CaretDownIcon.js +1 -1
  440. package/dist/icons/CaretUpIcon.js +1 -1
  441. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  442. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  443. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  444. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  445. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  446. package/dist/icons/ChartBarLineIcon.js +1 -1
  447. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  448. package/dist/icons/ChartBarStackedIcon.js +1 -1
  449. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  450. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  451. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  452. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  453. package/dist/icons/ChartBubbleIcon.js +1 -1
  454. package/dist/icons/ChartDonut2Icon.js +1 -1
  455. package/dist/icons/ChartFunnelIcon.js +1 -1
  456. package/dist/icons/ChartHeatmapIcon.js +1 -1
  457. package/dist/icons/ChartKPIIcon.js +1 -1
  458. package/dist/icons/ChartPie2Icon.js +1 -1
  459. package/dist/icons/ChartScatterIcon.js +1 -1
  460. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  461. package/dist/icons/CheckCircleIcon.js +1 -1
  462. package/dist/icons/CheckIcon.js +1 -1
  463. package/dist/icons/CircleFilledIcon.js +1 -1
  464. package/dist/icons/ClearIcon.js +1 -1
  465. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  466. package/dist/icons/CloseCircleIcon.js +1 -1
  467. package/dist/icons/CloseIcon.js +1 -1
  468. package/dist/icons/CodeIcon.js +1 -1
  469. package/dist/icons/ColumnTotalIcon.js +1 -1
  470. package/dist/icons/CopyIcon.js +1 -1
  471. package/dist/icons/CountIcon.js +1 -1
  472. package/dist/icons/CubeIcon.js +1 -1
  473. package/dist/icons/CubePauseIcon.js +1 -1
  474. package/dist/icons/CubePlayIcon.js +1 -1
  475. package/dist/icons/CurrencyDollarIcon.js +1 -1
  476. package/dist/icons/DangerIcon.js +1 -1
  477. package/dist/icons/DashboardIcon.js +1 -1
  478. package/dist/icons/DatabaseIcon.js +1 -1
  479. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  480. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  481. package/dist/icons/DirectionIcon.js +1 -1
  482. package/dist/icons/DonutIcon.js +1 -1
  483. package/dist/icons/DownIcon.js +1 -1
  484. package/dist/icons/EditIcon.js +1 -1
  485. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  486. package/dist/icons/ExclamationCircleIcon.js +1 -1
  487. package/dist/icons/ExclamationIcon.js +1 -1
  488. package/dist/icons/EyeIcon.js +1 -1
  489. package/dist/icons/EyeInvisibleIcon.js +1 -1
  490. package/dist/icons/FilterIcon.js +1 -1
  491. package/dist/icons/FolderFilledIcon.js +1 -1
  492. package/dist/icons/FolderIcon.js +1 -1
  493. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  494. package/dist/icons/FolderOpenIcon.js +1 -1
  495. package/dist/icons/ForwardIcon.js +1 -1
  496. package/dist/icons/GripVerticalIcon.js +1 -1
  497. package/dist/icons/HierarchyIcon.js +1 -1
  498. package/dist/icons/HierarchyOpenIcon.js +1 -1
  499. package/dist/icons/Icon.js +1 -1
  500. package/dist/icons/InfoCircleIcon.js +1 -1
  501. package/dist/icons/InfoIcon.js +1 -1
  502. package/dist/icons/KeyIcon.js +1 -1
  503. package/dist/icons/LeftIcon.js +1 -1
  504. package/dist/icons/LineChartIcon.js +1 -1
  505. package/dist/icons/LoadingIcon.js +1 -1
  506. package/dist/icons/LockFilledIcon.js +1 -1
  507. package/dist/icons/LockIcon.js +1 -1
  508. package/dist/icons/MoreIcon.js +1 -1
  509. package/dist/icons/NotAllowedIcon.js +1 -1
  510. package/dist/icons/Number123Icon.js +1 -1
  511. package/dist/icons/NumberIcon.js +1 -1
  512. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  513. package/dist/icons/PauseCircleIcon.js +1 -1
  514. package/dist/icons/PauseIcon.js +1 -1
  515. package/dist/icons/PercentageIcon.js +1 -1
  516. package/dist/icons/PieChartIcon.js +1 -1
  517. package/dist/icons/PipetteIcon.js +1 -1
  518. package/dist/icons/PlayCircleIcon.js +1 -1
  519. package/dist/icons/PlayIcon.js +1 -1
  520. package/dist/icons/PlusIcon.js +1 -1
  521. package/dist/icons/ProgressBarIcon.js +1 -1
  522. package/dist/icons/ReloadIcon.js +1 -1
  523. package/dist/icons/ReportIcon.js +1 -1
  524. package/dist/icons/ReturnIcon.js +1 -1
  525. package/dist/icons/RightIcon.js +1 -1
  526. package/dist/icons/RowTotalsIcon.js +1 -1
  527. package/dist/icons/SchemeIcon.js +1 -1
  528. package/dist/icons/SearchIcon.js +1 -1
  529. package/dist/icons/SemanticQueryIcon.js +1 -1
  530. package/dist/icons/SettingsIcon.js +1 -1
  531. package/dist/icons/ShieldFilledIcon.js +1 -1
  532. package/dist/icons/ShieldIcon.js +1 -1
  533. package/dist/icons/SlashIcon.js +1 -1
  534. package/dist/icons/SparklesIcon.js +1 -1
  535. package/dist/icons/SqlIcon.js +1 -1
  536. package/dist/icons/StatsIcon.js +1 -1
  537. package/dist/icons/StopIcon.js +1 -1
  538. package/dist/icons/StringIcon.js +1 -1
  539. package/dist/icons/SubtotalsIcon.js +1 -1
  540. package/dist/icons/SwitchIcon.js +1 -1
  541. package/dist/icons/TableIcon.js +1 -1
  542. package/dist/icons/ThumbsDownIcon.js +1 -1
  543. package/dist/icons/ThumbsUpIcon.js +1 -1
  544. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  545. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  546. package/dist/icons/ThunderboltIcon.js +1 -1
  547. package/dist/icons/TimeIcon.js +1 -1
  548. package/dist/icons/TrashIcon.js +1 -1
  549. package/dist/icons/UnlockIcon.js +1 -1
  550. package/dist/icons/UpIcon.js +1 -1
  551. package/dist/icons/UserGroupIcon.js +1 -1
  552. package/dist/icons/UserIcon.js +1 -1
  553. package/dist/icons/UserLockIcon.js +1 -1
  554. package/dist/icons/ViewIcon.js +1 -1
  555. package/dist/icons/WarningFilledIcon.js +1 -1
  556. package/dist/icons/WarningIcon.js +1 -1
  557. package/dist/icons/wrap-icon.js +1 -1
  558. package/dist/index.d.ts +2 -2
  559. package/dist/index.js +2 -2
  560. package/dist/probe/canonicalize.js +1 -1
  561. package/dist/probe/css.js +1 -1
  562. package/dist/probe/index.js +1 -1
  563. package/dist/provider.js +1 -1
  564. package/dist/providers/TrackingProvider.js +1 -1
  565. package/dist/providers/navigation-url.js +1 -1
  566. package/dist/providers/navigationAdapter.default.js +1 -1
  567. package/dist/providers/use-navigation.js +1 -1
  568. package/dist/tokens/all-tokens.js +1 -1
  569. package/dist/tokens/base.js +1 -1
  570. package/dist/tokens/color-seed.js +1 -1
  571. package/dist/tokens/color-theme.js +1 -1
  572. package/dist/tokens/colors.js +1 -1
  573. package/dist/tokens/layout.js +1 -1
  574. package/dist/tokens/lazy-styles.js +1 -1
  575. package/dist/tokens/legacy-color.js +1 -1
  576. package/dist/tokens/palette-config.js +1 -1
  577. package/dist/tokens/palette.js +1 -1
  578. package/dist/tokens/resolve.js +1 -1
  579. package/dist/tokens/shadows.js +1 -1
  580. package/dist/tokens/sizes.js +1 -1
  581. package/dist/tokens/spacing.js +1 -1
  582. package/dist/tokens/typography.js +1 -1
  583. package/dist/utils/ResizeSensor.js +1 -1
  584. package/dist/utils/colors.js +1 -1
  585. package/dist/utils/dotize.js +1 -1
  586. package/dist/utils/is-dev-env.js +1 -1
  587. package/dist/utils/modules.js +1 -1
  588. package/dist/utils/promise.js +1 -1
  589. package/dist/utils/raf.js +1 -1
  590. package/dist/utils/random.js +1 -1
  591. package/dist/utils/range.js +1 -1
  592. package/dist/utils/react/RenderCache.js +1 -1
  593. package/dist/utils/react/Slots.js +1 -1
  594. package/dist/utils/react/chain.js +1 -1
  595. package/dist/utils/react/disabledProps.js +1 -1
  596. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  597. package/dist/utils/react/index.js +1 -1
  598. package/dist/utils/react/interactions.js +1 -1
  599. package/dist/utils/react/isTextOnly.js +1 -1
  600. package/dist/utils/react/mapProps.js +1 -1
  601. package/dist/utils/react/mergeProps.js +1 -1
  602. package/dist/utils/react/nullableValue.js +1 -1
  603. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  604. package/dist/utils/react/programmaticFocus.js +1 -1
  605. package/dist/utils/react/resolveIcon.js +1 -1
  606. package/dist/utils/react/sharedStore.js +1 -1
  607. package/dist/utils/react/useBufferedValue.js +1 -1
  608. package/dist/utils/react/useCombinedRefs.js +1 -1
  609. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  610. package/dist/utils/react/useEventBus.js +1 -1
  611. package/dist/utils/react/useId.js +1 -1
  612. package/dist/utils/react/useIsDarwin.js +1 -1
  613. package/dist/utils/react/useKeySymbols.js +1 -1
  614. package/dist/utils/react/useLayoutEffect.js +1 -1
  615. package/dist/utils/react/useLocalStorage.js +1 -1
  616. package/dist/utils/react/useMergeStyles.js +1 -1
  617. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  618. package/dist/utils/react/usePopoverSync.js +1 -1
  619. package/dist/utils/react/useQaProps.js +1 -1
  620. package/dist/utils/react/useScheme.js +1 -1
  621. package/dist/utils/react/useViewportSize.js +1 -1
  622. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  623. package/dist/utils/selection.js +1 -1
  624. package/dist/utils/styles.js +1 -1
  625. package/dist/utils/tree.js +1 -1
  626. package/dist/utils/warnings.js +1 -1
  627. package/dist/version.js +2 -2
  628. package/docs/FieldProperties.md +16 -4
  629. package/docs/Usage.md +1 -1
  630. package/docs/components/data/ItemTable.md +25 -0
  631. package/docs/components/fields/ComboBox.md +8 -4
  632. package/docs/components/fields/CommandTextArea.md +1 -0
  633. package/docs/components/fields/HueSlider.md +0 -1
  634. package/docs/components/fields/NumberInput.md +4 -0
  635. package/docs/components/fields/PasswordInput.md +2 -0
  636. package/docs/components/fields/SearchInput.md +13 -0
  637. package/docs/components/fields/Slider.md +0 -1
  638. package/docs/components/fields/TextArea.md +1 -0
  639. package/docs/components/fields/TextInput.md +14 -1
  640. package/docs/components/navigation/Tabs.md +47 -0
  641. package/docs/components/overlays/Dialog.md +2 -2
  642. package/docs/components/overlays/DialogContainer.md +1 -0
  643. package/docs/components/overlays/DialogForm.md +3 -1
  644. package/docs/components/overlays/DialogTrigger.md +31 -1
  645. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ItemTable.js","names":["CONTAINER_STYLES","forwardRef","useMemo","useRef","useState","useI18n","useCombinedRefs","extractStyles","mergeStyleLayers","DraggableCollection","ROW_MENU_COLUMN_KEY","ROW_MENU_COLUMN_WIDTH","filterTableTree","TableView","useContainerWidth","getColumnText","matchesTableSearch","useTableSearch","SELECTION_COLUMN_KEY","SELECTION_COLUMN_WIDTH","useTableStorage","useTableTreeState","ItemTableBulkBar","ItemTableFooter","ItemTableChromeProvider","ItemTableSearch","ItemTableToolbar","useItemTableColumnWidths","useItemTableDragDrop","useItemTablePagination","useItemTableSelection","useItemTableSort","useItemTableTreeModel","Key","ForwardedRef","ReactElement","ReactNode","CubeTableRowContext","CubeItemTableProps","defaultGetRowKey","rowKey","row","T","index","value","ItemTable","props","ref","$","_c","data","columns","t0","getRowKey","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","isLoading","t1","loadingIndicator","t2","selectionMode","bulkActions","rowLink","onRowAction","rowMenu","rowContextMenu","t3","onRowMenuAction","rowMenuTriggerProps","bulkBarPlacement","t4","bulkBarStyles","selectedKeys","selectedKeysProp","defaultSelectedKeys","onSelectionChange","selectAllMode","t5","isRowSelectable","selectionTooltip","disabledKeys","treeSelectionBehavior","t6","skeletonRowCount","t7","emptyLabel","noResultsLabel","error","isFiltered","toolbar","isSearchable","t8","searchMode","t9","searchPlaceholder","searchValue","searchValueProp","defaultSearchValue","onSearchChange","searchDelay","t10","searchFilter","filters","actions","onRefresh","paginationMode","t11","pageSize","pageSizeProp","defaultPageSize","t12","autoHidePagination","t13","onLoadMore","hasMore","isLoadingMore","loadMoreMargin","storageKey","persist","isReorderable","t14","onReorder","dropOnRow","getItemDragInfo","isResizable","t15","columnWidths","columnWidthsProp","defaultColumnWidths","onColumnResize","columnContextMenu","onColumnMenuAction","columnMenuTriggerProps","columnMenuProps","onPageSizeChange","pageSizeOptions","t16","page","pageProp","defaultPage","onPageChange","total","totalProp","totalPages","hasNextPage","summary","t17","footer","footerStart","footerCenter","footerEnd","sortMode","sort","sortProp","defaultSort","onSortChange","shape","t18","size","t19","rowHeight","headerHeight","isStriped","t20","isHeaderHidden","t21","isHeaderSticky","t22","isAutoHeight","t23","isVirtualized","t24","virtualizeThreshold","t25","overscan","t26","getRowProps","ariaLabel","qa","mods","styles","headerStyles","headerCellStyles","headerPreset","t27","toolbarStyles","searchStyles","footerStyles","bodyStyles","rowStyles","cellStyles","isRowMoveAnimated","undefined","t28","t","localRef","rootRef","scrollerEl","setScrollerEl","containerWidth","t29","rootStyles","t30","resolvedGetRowKey","t31","treeModel","resolvedTreeColumnKey","t32","t33","rows","mode","defaultValue","onChange","delay","filter","setSearchValue","searchedRows","query","isSearching","t34","bb0","t35","Symbol","for","Set","t36","roots","forcedExpandedKeys","node","sourceIndex","searchedTree","storage","tree","sortedRows","sortedTreeRoots","resolvedSortMode","toggleSort","setColumnSort","t37","treeRoots","isTree","autoHide","pagination","t38","byKey","Map","t39","t40","node_0","column","find","entry","key","String","t41","pageTreeRoots","allNodesByKey","getTextValue","treeState","visibleTreeEntries","visibleEntries","visibleRows","map","_temp","pageRows","visibleRowKeys","_temp2","selection","rowKeys","t42","ctx","resolveRowMenu","t43","width","medium","align","const","trailingColumns","t44","isEnabled","leadingColumns","t45","layout","handleColumnResize","handleColumnResizeEnd","t46","some","_temp3","_temp4","implicitRowHeader","t47","column_2","isRowHeader","tableLayout","hasBulkSelection","length","selectedCount","t48","bulkBar","isBulkBarInToolbar","hasToolbar","t49","toolbarNode","hasFooter","control","t50","footerNode","bodyRef","drag","renderTable","dragState","dropState","collectionProps","isPaginated","isInfinite","state","ariaProps","nodes","visibleNodes","entries","columnKey","table","collection","selectionManager","orderedKeys","onItemDrop","shouldAcceptItemDrop","renderPreview","dragState_0","dropState_0","collectionProps_0","t51","clearSelection","selectedRows","t52","column_0","isStructural","column_1","entry_1","entry_0","ItemTableRoot","HTMLDivElement","displayName","ItemTableComponent","Search","Toolbar","BulkBar","_ItemTable","Object","assign","_c"],"sources":["../../../../src/components/data/ItemTable/ItemTable.tsx"],"sourcesContent":["import { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\nimport { DraggableCollection } from '../../shared/DraggableCollection';\nimport {\n ROW_MENU_COLUMN_KEY,\n ROW_MENU_COLUMN_WIDTH,\n} from '../TableBase/row-menu';\nimport { filterTableTree } from '../TableBase/table-tree';\nimport { TableView } from '../TableBase/TableView';\nimport { useContainerWidth } from '../TableBase/use-container-width';\nimport { getColumnText } from '../TableBase/use-table-columns';\nimport {\n matchesTableSearch,\n useTableSearch,\n} from '../TableBase/use-table-search';\nimport {\n SELECTION_COLUMN_KEY,\n SELECTION_COLUMN_WIDTH,\n} from '../TableBase/use-table-selection';\nimport { useTableStorage } from '../TableBase/use-table-storage';\nimport { useTableTreeState } from '../TableBase/use-table-tree-state';\n\nimport { ItemTableBulkBar } from './ItemTableBulkBar';\nimport { ItemTableFooter } from './ItemTableFooter';\nimport {\n ItemTableChromeProvider,\n ItemTableSearch,\n ItemTableToolbar,\n} from './ItemTableToolbar';\nimport { useItemTableColumnWidths } from './use-item-table-column-widths';\nimport { useItemTableDragDrop } from './use-item-table-drag-drop';\nimport { useItemTablePagination } from './use-item-table-pagination';\nimport { useItemTableSelection } from './use-item-table-selection';\nimport { useItemTableSort } from './use-item-table-sort';\nimport { useItemTableTreeModel } from './use-item-table-tree-model';\n\nimport type { Key } from '@react-types/shared';\nimport type { ForwardedRef, ReactElement, ReactNode } from 'react';\nimport type { CubeTableRowContext } from '../TableBase/types';\nimport type { CubeItemTableProps } from './types';\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\nfunction ItemTable<T = any>(\n props: CubeItemTableProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {\n data,\n columns,\n rowKey = 'id',\n getRowKey,\n getRowChildren,\n treeColumnKey,\n expandedKeys,\n defaultExpandedKeys,\n onExpand,\n isLoading = false,\n loadingIndicator = 'overlay',\n selectionMode,\n bulkActions,\n rowLink,\n onRowAction,\n rowMenu,\n rowContextMenu = false,\n onRowMenuAction,\n rowMenuTriggerProps,\n bulkBarPlacement = 'floating',\n bulkBarStyles,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode = 'page',\n isRowSelectable,\n selectionTooltip,\n disabledKeys,\n treeSelectionBehavior = 'cascade',\n skeletonRowCount = 6,\n emptyLabel,\n noResultsLabel,\n error,\n isFiltered,\n toolbar,\n isSearchable = false,\n searchMode = 'client',\n searchPlaceholder,\n searchValue: searchValueProp,\n defaultSearchValue,\n onSearchChange,\n searchDelay = 500,\n searchFilter,\n filters,\n actions,\n onRefresh,\n paginationMode = 'client',\n pageSize: pageSizeProp,\n defaultPageSize = 50,\n autoHidePagination = true,\n onLoadMore,\n hasMore,\n isLoadingMore,\n loadMoreMargin,\n storageKey,\n persist,\n isReorderable = false,\n onReorder,\n dropOnRow,\n getItemDragInfo,\n isResizable = false,\n columnWidths: columnWidthsProp,\n defaultColumnWidths,\n onColumnResize,\n columnContextMenu,\n onColumnMenuAction,\n columnMenuTriggerProps,\n columnMenuProps,\n onPageSizeChange,\n pageSizeOptions = [10, 20, 50, 100, 500],\n page: pageProp,\n defaultPage,\n onPageChange,\n total: totalProp,\n totalPages,\n hasNextPage,\n summary = true,\n footer,\n footerStart,\n footerCenter,\n footerEnd,\n sortMode,\n sort: sortProp,\n defaultSort,\n onSortChange,\n shape = 'plain',\n size = 'medium',\n rowHeight,\n headerHeight,\n isStriped = false,\n isHeaderHidden = false,\n isHeaderSticky = true,\n isAutoHeight = false,\n isVirtualized = 'auto',\n virtualizeThreshold = 50,\n overscan = 20,\n getRowProps,\n ariaLabel,\n qa,\n mods,\n styles,\n headerStyles,\n headerCellStyles,\n headerPreset = 'c3',\n toolbarStyles,\n searchStyles,\n footerStyles,\n bodyStyles,\n rowStyles,\n cellStyles,\n isRowMoveAnimated,\n } = props;\n\n const { t } = useI18n();\n\n const localRef = useRef<HTMLDivElement>(null);\n const rootRef = useCombinedRefs(ref, localRef);\n\n // Held in state, not a ref: the virtualized path's scroller is created by\n // Virtuoso and arrives through a callback, and the column layout has to\n // re-derive once it does.\n const [scrollerEl, setScrollerEl] = useState<HTMLDivElement | null>(null);\n const containerWidth = useContainerWidth(scrollerEl);\n\n // Style props (`height`, `maxHeight`, `margin`, …) land on the root frame.\n // `height` matters most: there is no page-scroll mode, so bounding the table\n // is what turns the body into a scroller and pins the header.\n const rootStyles = mergeStyleLayers(\n extractStyles(props, CONTAINER_STYLES),\n styles,\n );\n\n const resolvedGetRowKey = useMemo(\n () => getRowKey ?? defaultGetRowKey<T>(rowKey),\n [getRowKey, rowKey],\n );\n\n const { treeModel, treeColumnKey: resolvedTreeColumnKey } =\n useItemTableTreeModel<T>({\n data,\n columns,\n getRowKey: resolvedGetRowKey,\n getRowChildren,\n treeColumnKey,\n isReorderable,\n });\n\n const {\n searchValue,\n setSearchValue,\n searchedRows,\n query,\n isFiltered: isSearching,\n } = useTableSearch<T>({\n columns,\n rows: data,\n // Tree filtering needs to preserve ancestors and descendants, so the flat\n // hook owns only the controlled/debounced value in this mode.\n mode: treeModel ? 'server' : searchMode,\n value: searchValueProp,\n defaultValue: defaultSearchValue,\n onChange: onSearchChange,\n delay: searchDelay,\n filter: searchFilter,\n });\n\n const searchedTree = useMemo(() => {\n if (!treeModel) return null;\n if (searchMode !== 'client' || !query) {\n return { roots: treeModel.roots, forcedExpandedKeys: new Set<Key>() };\n }\n\n return filterTableTree(treeModel.roots, (node) =>\n searchFilter\n ? searchFilter(node.row, query)\n : matchesTableSearch(columns, node.row, node.sourceIndex, query),\n );\n }, [treeModel, searchMode, query, searchFilter, columns]);\n\n const storage = useTableStorage(storageKey, persist);\n\n const {\n sort,\n sortedRows,\n sortedTreeRoots,\n mode: resolvedSortMode,\n toggleSort,\n setColumnSort,\n } = useItemTableSort<T>({\n columns,\n rows: searchedRows,\n tree: searchedTree,\n mode: sortMode,\n sort: sortProp,\n defaultSort,\n onSortChange,\n storage,\n });\n\n // Search → sort → paginate. Paging last, so a page always reflects the rows\n // the user is actually looking at.\n const pagination = useItemTablePagination<T>({\n mode: paginationMode,\n rows: sortedRows,\n treeRoots: sortedTreeRoots,\n isTree: treeModel != null,\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: autoHidePagination,\n storage,\n });\n\n const treeState = useTableTreeState<T>({\n roots: pagination.pageTreeRoots,\n allNodesByKey: treeModel?.byKey ?? new Map(),\n expandedKeys,\n defaultExpandedKeys,\n forcedExpandedKeys: searchedTree?.forcedExpandedKeys,\n disabledKeys,\n getTextValue: (node) => {\n const column = columns.find(\n (entry) => entry.key === resolvedTreeColumnKey,\n );\n return column\n ? (getColumnText(column, node.row, node.sourceIndex) ??\n String(node.key))\n : String(node.key);\n },\n onExpand,\n ariaLabel,\n });\n\n const visibleTreeEntries = treeModel ? treeState.visibleEntries : [];\n const visibleRows = treeModel\n ? visibleTreeEntries.map((entry) => entry.row)\n : pagination.pageRows;\n const visibleRowKeys = treeModel\n ? visibleTreeEntries.map((entry) => entry.key)\n : undefined;\n\n const selection = useItemTableSelection<T>({\n rows: visibleRows,\n rowKeys: visibleRowKeys,\n sortedRows,\n isTree: treeModel != null,\n sortedTreeRoots,\n pageTreeRoots: pagination.pageTreeRoots,\n paginationMode,\n getRowKey: resolvedGetRowKey,\n selectionMode,\n bulkActions,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode,\n isRowSelectable,\n disabledKeys,\n treeSelectionBehavior,\n });\n\n // A `ReactNode` menu applies to every row; a function decides per row. The\n // renderer only ever sees the function form.\n const resolveRowMenu = useMemo(\n () =>\n rowMenu == null\n ? undefined\n : typeof rowMenu === 'function'\n ? (rowMenu as (\n row: T,\n ctx: CubeTableRowContext<T>,\n ) => ReactNode | null)\n : () => rowMenu as ReactNode,\n [rowMenu],\n );\n\n const trailingColumns = useMemo(\n () =>\n resolveRowMenu && rowContextMenu === true\n ? [\n {\n key: ROW_MENU_COLUMN_KEY,\n width:\n ROW_MENU_COLUMN_WIDTH[size] ?? ROW_MENU_COLUMN_WIDTH.medium,\n align: 'center' as const,\n },\n ]\n : undefined,\n [resolveRowMenu, rowContextMenu, size],\n );\n\n const leadingColumns = useMemo(\n () =>\n selection.isEnabled\n ? [\n {\n key: SELECTION_COLUMN_KEY,\n width:\n SELECTION_COLUMN_WIDTH[size] ?? SELECTION_COLUMN_WIDTH.medium,\n align: 'center' as const,\n },\n ]\n : undefined,\n [selection.isEnabled, size],\n );\n\n const { layout, handleColumnResize, handleColumnResizeEnd } =\n useItemTableColumnWidths<T>({\n columns,\n containerWidth,\n leadingColumns,\n trailingColumns,\n columnWidths: columnWidthsProp,\n defaultColumnWidths,\n onColumnResize,\n storage,\n });\n\n // The layout has already removed hidden columns and identified structural\n // ones. Resolve the header here so body windowing also retains its anchor.\n const implicitRowHeader =\n rowLink && !layout.columns.some((column) => column.isRowHeader)\n ? layout.columns.find(\n (column) => !column.isStructural && column.isRowHeader !== false,\n )?.key\n : undefined;\n const tableLayout =\n implicitRowHeader === undefined\n ? layout\n : {\n ...layout,\n columns: layout.columns.map((column) =>\n column.key === implicitRowHeader\n ? { ...column, isRowHeader: true }\n : column,\n ),\n };\n\n const hasBulkSelection =\n bulkActions != null &&\n bulkActions.length > 0 &&\n selection.selectedCount > 0;\n\n const bulkBar = hasBulkSelection ? (\n <ItemTableBulkBar<T>\n actions={bulkActions!}\n placement={bulkBarPlacement}\n styles={bulkBarStyles}\n />\n ) : null;\n\n const isBulkBarInToolbar = bulkBar != null && bulkBarPlacement === 'toolbar';\n\n const hasToolbar =\n toolbar !== undefined ||\n isSearchable ||\n filters != null ||\n actions != null ||\n onRefresh != null ||\n isBulkBarInToolbar;\n\n const toolbarNode = hasToolbar\n ? (toolbar ?? (\n <ItemTableToolbar\n isSearchable={isSearchable}\n filters={filters}\n // The bar takes the actions group rather than sitting beside it: the\n // two compete for the same space, and while rows are selected the\n // bulk actions are what the user is reaching for.\n actions={isBulkBarInToolbar ? bulkBar : actions}\n isLoading={isLoading}\n styles={toolbarStyles}\n searchStyles={searchStyles}\n onRefresh={onRefresh}\n />\n ))\n : null;\n\n const hasFooter =\n footer !== undefined ||\n pagination.control != null ||\n footerStart != null ||\n footerCenter != null ||\n footerEnd != null;\n\n const footerNode = hasFooter\n ? (footer ?? (\n <ItemTableFooter\n start={footerStart}\n center={footerCenter}\n end={footerEnd}\n styles={footerStyles}\n pagination={pagination.control}\n />\n ))\n : null;\n\n const bodyRef = useRef<HTMLTableSectionElement>(null);\n\n const drag = useItemTableDragDrop<T>({\n rows: visibleRows,\n rowKeys: visibleRowKeys,\n getRowKey: resolvedGetRowKey,\n treeModel,\n isReorderable,\n onReorder,\n dropOnRow,\n getItemDragInfo,\n });\n\n /**\n * `DraggableCollection` owns the React Aria drag/drop hooks and hands the two\n * states down. It is only mounted when reordering is on, so a plain table\n * pays nothing for it.\n *\n * `RowCollection` and the `SelectionManager` from `useTableSelection` satisfy\n * its structural `state` contract unchanged — both exist even when selection\n * itself is off.\n */\n const renderTable = (\n dragState?: any,\n dropState?: any,\n collectionProps?: Record<string, any>,\n ) => (\n <TableView<T>\n rootRef={rootRef}\n dragState={dragState}\n dropState={dropState}\n collectionProps={collectionProps}\n bodyRef={bodyRef}\n qa={qa || 'ItemTable'}\n rows={visibleRows}\n rowKeys={visibleRowKeys}\n // `aria-rowindex` is document-absolute by contract: on page 3 a screen\n // reader should hear \"row 51 of 240\", not \"row 1 of 25\". Infinite scroll\n // never offsets — every loaded row is already in `visibleRows`.\n // `isPaginated` already excludes infinite scroll, where every loaded row\n // is in `visibleRows` and there is no page to offset by.\n rowIndexOffset={\n treeModel\n ? 0\n : pagination.isPaginated\n ? (pagination.page - 1) * pagination.pageSize\n : 0\n }\n totalRowCount={treeModel ? visibleRows.length : pagination.total}\n getRowKey={resolvedGetRowKey}\n layout={tableLayout}\n onScrollerRef={setScrollerEl}\n size={size}\n shape={shape}\n rowHeight={rowHeight}\n headerHeight={headerHeight}\n isHeaderHidden={isHeaderHidden}\n isHeaderSticky={isHeaderSticky}\n isAutoHeight={isAutoHeight}\n isVirtualized={isVirtualized}\n virtualizeThreshold={virtualizeThreshold}\n overscan={overscan}\n isStriped={isStriped}\n isRowMoveAnimated={isRowMoveAnimated}\n isLoading={isLoading}\n loadingIndicator={loadingIndicator}\n selection={selection}\n selectionTooltip={selectionTooltip}\n rowLink={rowLink}\n onRowAction={onRowAction}\n onLoadMore={pagination.isInfinite ? onLoadMore : undefined}\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n loadMoreMargin={loadMoreMargin}\n isReorderable={drag.isEnabled}\n isResizable={isResizable}\n onColumnResize={handleColumnResize}\n onColumnResizeEnd={handleColumnResizeEnd}\n rowMenu={resolveRowMenu}\n rowContextMenu={rowContextMenu}\n onRowMenuAction={onRowMenuAction}\n rowMenuTriggerProps={rowMenuTriggerProps}\n skeletonRowCount={skeletonRowCount}\n emptyLabel={emptyLabel ?? t('itemTable.noItems', 'No items')}\n noResultsLabel={\n noResultsLabel ?? t('itemTable.noResults', 'No results found')\n }\n error={error}\n toolbar={toolbarNode}\n footer={footerNode}\n isFiltered={isFiltered ?? isSearching}\n sortMode={resolvedSortMode}\n sort={sort}\n onColumnSort={toggleSort}\n onColumnSortChange={setColumnSort}\n columnContextMenu={columnContextMenu}\n onColumnMenuAction={onColumnMenuAction}\n columnMenuTriggerProps={columnMenuTriggerProps}\n columnMenuProps={columnMenuProps}\n getRowProps={getRowProps}\n ariaLabel={ariaLabel}\n styles={rootStyles}\n headerStyles={headerStyles}\n headerCellStyles={headerCellStyles}\n headerPreset={headerPreset}\n bodyStyles={bodyStyles}\n rowStyles={rowStyles}\n cellStyles={cellStyles}\n mods={mods}\n overlay={bulkBarPlacement === 'floating' ? bulkBar : null}\n tree={\n treeModel\n ? {\n state: treeState.state,\n ariaProps: treeState.ariaProps,\n nodes: treeState.visibleNodes,\n entries: visibleTreeEntries,\n columnKey: resolvedTreeColumnKey!,\n }\n : undefined\n }\n />\n );\n\n const table = drag.isEnabled ? (\n <DraggableCollection\n state={{\n collection: selection.collection,\n selectionManager: selection.selectionManager as any,\n disabledKeys: new Set(disabledKeys ?? []),\n }}\n // The element that directly contains the rows. React Aria's\n // `ListDropTargetDelegate` measures the drop position from this element's\n // children, so pointing it at the table root would leave every drop\n // unresolvable — the row lifts but never lands.\n listRef={bodyRef}\n orderedKeys={drag.orderedKeys}\n orientation=\"vertical\"\n onReorder={drag.onReorder}\n onItemDrop={drag.onItemDrop}\n shouldAcceptItemDrop={drag.shouldAcceptItemDrop}\n renderPreview={drag.renderPreview}\n >\n {(dragState, dropState, collectionProps) =>\n renderTable(dragState, dropState, collectionProps)\n }\n </DraggableCollection>\n ) : (\n renderTable()\n );\n\n // The provider always wraps, so `ItemTable.Search` works from a custom\n // `toolbar` as well as from the built-in one.\n return (\n <ItemTableChromeProvider\n value={{\n searchValue,\n setSearchValue,\n searchPlaceholder,\n isLoading,\n onRefresh,\n selectedKeys: selection.selectedKeys,\n selectedRows: selection.selectedRows,\n selectedCount: selection.selectedCount,\n clearSelection: selection.clearSelection,\n }}\n >\n {table}\n </ItemTableChromeProvider>\n );\n}\n\n/** `forwardRef` loses the row type, so the table is cast back to a generic. */\ninterface ItemTableRoot {\n <T = any>(\n props: CubeItemTableProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n ): ReactElement;\n displayName?: string;\n}\n\nexport interface ItemTableComponent extends ItemTableRoot {\n /** The table's search input, bound to the table's own state. */\n Search: typeof ItemTableSearch;\n /** The default toolbar row, for rebuilding it around extra content. */\n Toolbar: typeof ItemTableToolbar;\n /** The selection action bar, for placing it outside the default chrome. */\n BulkBar: typeof ItemTableBulkBar;\n}\n\nconst _ItemTable: ItemTableComponent = Object.assign(\n forwardRef(ItemTable) as unknown as ItemTableRoot,\n {\n Search: ItemTableSearch,\n Toolbar: ItemTableToolbar,\n BulkBar: ItemTableBulkBar,\n },\n);\n\n_ItemTable.displayName = 'ItemTable';\n\nexport { _ItemTable as ItemTable };\n"],"mappings":"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"}
1
+ {"version":3,"file":"ItemTable.js","names":["CONTAINER_STYLES","forwardRef","useMemo","useRef","useState","useWarn","useI18n","useCombinedRefs","extractStyles","mergeStyleLayers","DraggableCollection","ROW_MENU_COLUMN_KEY","ROW_MENU_COLUMN_WIDTH","filterTableTree","TableView","useContainerWidth","getColumnText","matchesTableSearch","useTableSearch","SELECTION_COLUMN_KEY","SELECTION_COLUMN_WIDTH","useTableStorage","useTableTreeState","buildItemTableSections","sectionPageLayout","ItemTableBulkBar","ItemTableFooter","ItemTableChromeProvider","ItemTableSearch","ItemTableToolbar","useItemTableColumnWidths","useItemTableDragDrop","useItemTablePagination","useItemTableSelection","useItemTableSort","useItemTableTreeModel","Key","ForwardedRef","ReactElement","ReactNode","CubeTableRowContext","CubeItemTableProps","defaultGetRowKey","rowKey","row","T","index","value","ItemTable","props","ref","$","_c","data","columns","t0","getRowKey","sections","getSectionKey","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","isLoading","t1","loadingIndicator","t2","selectionMode","bulkActions","rowLink","onRowAction","rowMenu","rowContextMenu","t3","onRowMenuAction","rowMenuTriggerProps","bulkBarPlacement","t4","bulkBarStyles","selectedKeys","selectedKeysProp","defaultSelectedKeys","onSelectionChange","selectAllMode","t5","isRowSelectable","selectionTooltip","disabledKeys","treeSelectionBehavior","t6","skeletonRowCount","t7","emptyLabel","noResultsLabel","error","isFiltered","toolbar","isSearchable","t8","searchMode","t9","searchPlaceholder","searchValue","searchValueProp","defaultSearchValue","onSearchChange","searchDelay","t10","searchFilter","filters","actions","onRefresh","paginationMode","t11","pageSize","pageSizeProp","defaultPageSize","t12","autoHidePagination","t13","onLoadMore","hasMore","isLoadingMore","loadMoreMargin","storageKey","persist","isReorderable","t14","onReorder","dropOnRow","getItemDragInfo","isResizable","t15","columnWidths","columnWidthsProp","defaultColumnWidths","onColumnResize","columnContextMenu","onColumnMenuAction","columnMenuTriggerProps","columnMenuProps","onPageSizeChange","pageSizeOptions","t16","page","pageProp","defaultPage","onPageChange","total","totalProp","totalPages","hasNextPage","summary","t17","footer","footerStart","footerCenter","footerEnd","sortMode","sort","sortProp","defaultSort","onSortChange","shape","t18","size","t19","rowHeight","headerHeight","isStriped","t20","isHeaderHidden","t21","isHeaderSticky","t22","isAutoHeight","t23","isVirtualized","t24","virtualizeThreshold","t25","overscan","t26","getRowProps","ariaLabel","qa","mods","styles","headerStyles","headerCellStyles","headerPreset","t27","toolbarStyles","searchStyles","footerStyles","bodyStyles","rowStyles","cellStyles","isRowMoveAnimated","undefined","t28","t","localRef","rootRef","scrollerEl","setScrollerEl","containerWidth","t29","rootStyles","t30","resolvedGetRowKey","t31","treeModel","resolvedTreeColumnKey","t32","t33","rows","mode","defaultValue","onChange","delay","filter","setSearchValue","searchedRows","query","isSearching","t34","bb0","t35","Symbol","for","Set","t36","roots","forcedExpandedKeys","node","sourceIndex","searchedTree","storage","tree","sortedRows","sortedTreeRoots","resolvedSortMode","toggleSort","setColumnSort","hasSectionProps","canSection","sectionModel","t37","key","args","t38","orderedRows","t39","t40","treeRoots","isTree","autoHide","pagination","t41","byKey","Map","t42","t43","node_0","column","find","entry","String","t44","pageTreeRoots","allNodesByKey","getTextValue","treeState","visibleTreeEntries","visibleEntries","pageStart","visibleRows","map","_temp","pageRows","visibleRowCount","length","t45","layout","viewportWidth","keys","slice","sectionPage","visibleRowKeys","_temp2","selection","rowKeys","sortedRowKeys","t46","ctx","resolveRowMenu","t47","width","medium","align","const","trailingColumns","t48","isEnabled","leadingColumns","t49","handleColumnResize","handleColumnResizeEnd","t50","some","_temp3","_temp4","implicitRowHeader","t51","column_2","isRowHeader","tableLayout","hasBulkSelection","selectedCount","t52","bulkBar","isBulkBarInToolbar","hasToolbar","t53","toolbarNode","hasFooter","control","t54","footerNode","bodyRef","drag","renderTable","dragState","dropState","collectionProps","isPaginated","isInfinite","state","ariaProps","nodes","visibleNodes","entries","columnKey","table","collection","selectionManager","orderedKeys","onItemDrop","shouldAcceptItemDrop","renderPreview","dragState_0","dropState_0","collectionProps_0","t55","clearSelection","selectedRows","t56","column_0","isStructural","column_1","entry_1","entry_0","ItemTableRoot","HTMLDivElement","displayName","ItemTableComponent","Search","Toolbar","BulkBar","_ItemTable","Object","assign","_c"],"sources":["../../../../src/components/data/ItemTable/ItemTable.tsx"],"sourcesContent":["import { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport { useI18n } from '../../../i18n';\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles, mergeStyleLayers } from '../../../utils/styles';\nimport { DraggableCollection } from '../../shared/DraggableCollection';\nimport {\n ROW_MENU_COLUMN_KEY,\n ROW_MENU_COLUMN_WIDTH,\n} from '../TableBase/row-menu';\nimport { filterTableTree } from '../TableBase/table-tree';\nimport { TableView } from '../TableBase/TableView';\nimport { useContainerWidth } from '../TableBase/use-container-width';\nimport { getColumnText } from '../TableBase/use-table-columns';\nimport {\n matchesTableSearch,\n useTableSearch,\n} from '../TableBase/use-table-search';\nimport {\n SELECTION_COLUMN_KEY,\n SELECTION_COLUMN_WIDTH,\n} from '../TableBase/use-table-selection';\nimport { useTableStorage } from '../TableBase/use-table-storage';\nimport { useTableTreeState } from '../TableBase/use-table-tree-state';\n\nimport {\n buildItemTableSections,\n sectionPageLayout,\n} from './item-table-sections';\nimport { ItemTableBulkBar } from './ItemTableBulkBar';\nimport { ItemTableFooter } from './ItemTableFooter';\nimport {\n ItemTableChromeProvider,\n ItemTableSearch,\n ItemTableToolbar,\n} from './ItemTableToolbar';\nimport { useItemTableColumnWidths } from './use-item-table-column-widths';\nimport { useItemTableDragDrop } from './use-item-table-drag-drop';\nimport { useItemTablePagination } from './use-item-table-pagination';\nimport { useItemTableSelection } from './use-item-table-selection';\nimport { useItemTableSort } from './use-item-table-sort';\nimport { useItemTableTreeModel } from './use-item-table-tree-model';\n\nimport type { Key } from '@react-types/shared';\nimport type { ForwardedRef, ReactElement, ReactNode } from 'react';\nimport type { CubeTableRowContext } from '../TableBase/types';\nimport type { CubeItemTableProps } from './types';\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\nfunction ItemTable<T = any>(\n props: CubeItemTableProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {\n data,\n columns,\n rowKey = 'id',\n getRowKey,\n sections,\n getSectionKey,\n getRowChildren,\n treeColumnKey,\n expandedKeys,\n defaultExpandedKeys,\n onExpand,\n isLoading = false,\n loadingIndicator = 'overlay',\n selectionMode,\n bulkActions,\n rowLink,\n onRowAction,\n rowMenu,\n rowContextMenu = false,\n onRowMenuAction,\n rowMenuTriggerProps,\n bulkBarPlacement = 'floating',\n bulkBarStyles,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode = 'page',\n isRowSelectable,\n selectionTooltip,\n disabledKeys,\n treeSelectionBehavior = 'cascade',\n skeletonRowCount = 6,\n emptyLabel,\n noResultsLabel,\n error,\n isFiltered,\n toolbar,\n isSearchable = false,\n searchMode = 'client',\n searchPlaceholder,\n searchValue: searchValueProp,\n defaultSearchValue,\n onSearchChange,\n searchDelay = 500,\n searchFilter,\n filters,\n actions,\n onRefresh,\n paginationMode = 'client',\n pageSize: pageSizeProp,\n defaultPageSize = 50,\n autoHidePagination = true,\n onLoadMore,\n hasMore,\n isLoadingMore,\n loadMoreMargin,\n storageKey,\n persist,\n isReorderable = false,\n onReorder,\n dropOnRow,\n getItemDragInfo,\n isResizable = false,\n columnWidths: columnWidthsProp,\n defaultColumnWidths,\n onColumnResize,\n columnContextMenu,\n onColumnMenuAction,\n columnMenuTriggerProps,\n columnMenuProps,\n onPageSizeChange,\n pageSizeOptions = [10, 20, 50, 100, 500],\n page: pageProp,\n defaultPage,\n onPageChange,\n total: totalProp,\n totalPages,\n hasNextPage,\n summary = true,\n footer,\n footerStart,\n footerCenter,\n footerEnd,\n sortMode,\n sort: sortProp,\n defaultSort,\n onSortChange,\n shape = 'plain',\n size = 'medium',\n rowHeight,\n headerHeight,\n isStriped = false,\n isHeaderHidden = false,\n isHeaderSticky = true,\n isAutoHeight = false,\n isVirtualized = 'auto',\n virtualizeThreshold = 50,\n overscan = 20,\n getRowProps,\n ariaLabel,\n qa,\n mods,\n styles,\n headerStyles,\n headerCellStyles,\n headerPreset = 'c3',\n toolbarStyles,\n searchStyles,\n footerStyles,\n bodyStyles,\n rowStyles,\n cellStyles,\n isRowMoveAnimated,\n } = props;\n\n const { t } = useI18n();\n\n const localRef = useRef<HTMLDivElement>(null);\n const rootRef = useCombinedRefs(ref, localRef);\n\n // Held in state, not a ref: the virtualized path's scroller is created by\n // Virtuoso and arrives through a callback, and the column layout has to\n // re-derive once it does.\n const [scrollerEl, setScrollerEl] = useState<HTMLDivElement | null>(null);\n const containerWidth = useContainerWidth(scrollerEl);\n\n // Style props (`height`, `maxHeight`, `margin`, …) land on the root frame.\n // `height` matters most: there is no page-scroll mode, so bounding the table\n // is what turns the body into a scroller and pins the header.\n const rootStyles = mergeStyleLayers(\n extractStyles(props, CONTAINER_STYLES),\n styles,\n );\n\n const resolvedGetRowKey = useMemo(\n () => getRowKey ?? defaultGetRowKey<T>(rowKey),\n [getRowKey, rowKey],\n );\n\n const { treeModel, treeColumnKey: resolvedTreeColumnKey } =\n useItemTableTreeModel<T>({\n data,\n columns,\n getRowKey: resolvedGetRowKey,\n getRowChildren,\n treeColumnKey,\n isReorderable,\n });\n\n const {\n searchValue,\n setSearchValue,\n searchedRows,\n query,\n isFiltered: isSearching,\n } = useTableSearch<T>({\n columns,\n rows: data,\n // Tree filtering needs to preserve ancestors and descendants, so the flat\n // hook owns only the controlled/debounced value in this mode.\n mode: treeModel ? 'server' : searchMode,\n value: searchValueProp,\n defaultValue: defaultSearchValue,\n onChange: onSearchChange,\n delay: searchDelay,\n filter: searchFilter,\n });\n\n const searchedTree = useMemo(() => {\n if (!treeModel) return null;\n if (searchMode !== 'client' || !query) {\n return { roots: treeModel.roots, forcedExpandedKeys: new Set<Key>() };\n }\n\n return filterTableTree(treeModel.roots, (node) =>\n searchFilter\n ? searchFilter(node.row, query)\n : matchesTableSearch(columns, node.row, node.sourceIndex, query),\n );\n }, [treeModel, searchMode, query, searchFilter, columns]);\n\n const storage = useTableStorage(storageKey, persist);\n\n const {\n sort,\n sortedRows,\n sortedTreeRoots,\n mode: resolvedSortMode,\n toggleSort,\n setColumnSort,\n } = useItemTableSort<T>({\n columns,\n rows: searchedRows,\n tree: searchedTree,\n mode: sortMode,\n sort: sortProp,\n defaultSort,\n onSortChange,\n storage,\n });\n\n const hasSectionProps = sections != null || getSectionKey != null;\n const canSection =\n !treeModel && !isReorderable && !dropOnRow && paginationMode !== 'server';\n // These keys and positions feed the virtualizer's retained getItemKey\n // callback. Keep that wiring stable in uncompiled consumers too.\n const sectionModel = useMemo(\n () =>\n sections && getSectionKey && canSection\n ? buildItemTableSections(\n data,\n sortedRows,\n sections,\n getSectionKey,\n resolvedGetRowKey,\n )\n : null,\n [data, sortedRows, sections, getSectionKey, canSection, resolvedGetRowKey],\n );\n useWarn(hasSectionProps && !canSection, {\n key: ['item-table-sections-unsupported'],\n args: [\n 'ItemTable:',\n 'Sections are ignored for tree rows, row drag/drop and server pagination.',\n ],\n });\n useWarn(hasSectionProps && canSection && sectionModel == null, {\n key: ['item-table-sections-invalid'],\n args: [\n 'ItemTable:',\n 'Sections require unique section keys and getSectionKey returning a declared key for every displayed record. Falling back to the ordinary flat list.',\n ],\n });\n const orderedRows = sectionModel?.rows ?? sortedRows;\n\n // Search → sort → section → paginate. Captions never consume record slots.\n const pagination = useItemTablePagination<T>({\n mode: paginationMode,\n rows: orderedRows,\n treeRoots: sortedTreeRoots,\n isTree: treeModel != null,\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: autoHidePagination,\n storage,\n });\n\n const treeState = useTableTreeState<T>({\n roots: pagination.pageTreeRoots,\n allNodesByKey: treeModel?.byKey ?? new Map(),\n expandedKeys,\n defaultExpandedKeys,\n forcedExpandedKeys: searchedTree?.forcedExpandedKeys,\n disabledKeys,\n getTextValue: (node) => {\n const column = columns.find(\n (entry) => entry.key === resolvedTreeColumnKey,\n );\n return column\n ? (getColumnText(column, node.row, node.sourceIndex) ??\n String(node.key))\n : String(node.key);\n },\n onExpand,\n ariaLabel,\n });\n\n const visibleTreeEntries = treeModel ? treeState.visibleEntries : [];\n const pageStart =\n paginationMode === 'client'\n ? (pagination.page - 1) * pagination.pageSize\n : 0;\n const visibleRows = treeModel\n ? visibleTreeEntries.map((entry) => entry.row)\n : pagination.pageRows;\n const visibleRowCount = visibleRows.length;\n const sectionPage = useMemo(\n () =>\n sectionModel\n ? {\n layout: {\n ...sectionPageLayout(sectionModel, pageStart, visibleRowCount),\n viewportWidth: containerWidth,\n },\n keys: sectionModel.keys.slice(\n pageStart,\n pageStart + visibleRowCount,\n ),\n }\n : undefined,\n [sectionModel, pageStart, visibleRowCount, containerWidth],\n );\n const visibleRowKeys = treeModel\n ? visibleTreeEntries.map((entry) => entry.key)\n : sectionPage?.keys;\n\n const selection = useItemTableSelection<T>({\n rows: visibleRows,\n rowKeys: visibleRowKeys,\n sortedRows: orderedRows,\n sortedRowKeys: sectionModel?.keys,\n isTree: treeModel != null,\n sortedTreeRoots,\n pageTreeRoots: pagination.pageTreeRoots,\n paginationMode,\n getRowKey: resolvedGetRowKey,\n selectionMode,\n bulkActions,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode,\n isRowSelectable,\n disabledKeys,\n treeSelectionBehavior,\n });\n\n // A `ReactNode` menu applies to every row; a function decides per row. The\n // renderer only ever sees the function form.\n const resolveRowMenu = useMemo(\n () =>\n rowMenu == null\n ? undefined\n : typeof rowMenu === 'function'\n ? (rowMenu as (\n row: T,\n ctx: CubeTableRowContext<T>,\n ) => ReactNode | null)\n : () => rowMenu as ReactNode,\n [rowMenu],\n );\n\n const trailingColumns = useMemo(\n () =>\n resolveRowMenu && rowContextMenu === true\n ? [\n {\n key: ROW_MENU_COLUMN_KEY,\n width:\n ROW_MENU_COLUMN_WIDTH[size] ?? ROW_MENU_COLUMN_WIDTH.medium,\n align: 'center' as const,\n },\n ]\n : undefined,\n [resolveRowMenu, rowContextMenu, size],\n );\n\n const leadingColumns = useMemo(\n () =>\n selection.isEnabled\n ? [\n {\n key: SELECTION_COLUMN_KEY,\n width:\n SELECTION_COLUMN_WIDTH[size] ?? SELECTION_COLUMN_WIDTH.medium,\n align: 'center' as const,\n },\n ]\n : undefined,\n [selection.isEnabled, size],\n );\n\n const { layout, handleColumnResize, handleColumnResizeEnd } =\n useItemTableColumnWidths<T>({\n columns,\n containerWidth,\n leadingColumns,\n trailingColumns,\n columnWidths: columnWidthsProp,\n defaultColumnWidths,\n onColumnResize,\n storage,\n });\n\n // The layout has already removed hidden columns and identified structural\n // ones. Resolve the header here so body windowing also retains its anchor.\n const implicitRowHeader =\n rowLink && !layout.columns.some((column) => column.isRowHeader)\n ? layout.columns.find(\n (column) => !column.isStructural && column.isRowHeader !== false,\n )?.key\n : undefined;\n const tableLayout =\n implicitRowHeader === undefined\n ? layout\n : {\n ...layout,\n columns: layout.columns.map((column) =>\n column.key === implicitRowHeader\n ? { ...column, isRowHeader: true }\n : column,\n ),\n };\n\n const hasBulkSelection =\n bulkActions != null &&\n bulkActions.length > 0 &&\n selection.selectedCount > 0;\n\n const bulkBar = hasBulkSelection ? (\n <ItemTableBulkBar<T>\n actions={bulkActions!}\n placement={bulkBarPlacement}\n styles={bulkBarStyles}\n />\n ) : null;\n\n const isBulkBarInToolbar = bulkBar != null && bulkBarPlacement === 'toolbar';\n\n const hasToolbar =\n toolbar !== undefined ||\n isSearchable ||\n filters != null ||\n actions != null ||\n onRefresh != null ||\n isBulkBarInToolbar;\n\n const toolbarNode = hasToolbar\n ? (toolbar ?? (\n <ItemTableToolbar\n isSearchable={isSearchable}\n filters={filters}\n // The bar takes the actions group rather than sitting beside it: the\n // two compete for the same space, and while rows are selected the\n // bulk actions are what the user is reaching for.\n actions={isBulkBarInToolbar ? bulkBar : actions}\n isLoading={isLoading}\n styles={toolbarStyles}\n searchStyles={searchStyles}\n onRefresh={onRefresh}\n />\n ))\n : null;\n\n const hasFooter =\n footer !== undefined ||\n pagination.control != null ||\n footerStart != null ||\n footerCenter != null ||\n footerEnd != null;\n\n const footerNode = hasFooter\n ? (footer ?? (\n <ItemTableFooter\n start={footerStart}\n center={footerCenter}\n end={footerEnd}\n styles={footerStyles}\n pagination={pagination.control}\n />\n ))\n : null;\n\n const bodyRef = useRef<HTMLTableSectionElement>(null);\n\n const drag = useItemTableDragDrop<T>({\n rows: visibleRows,\n rowKeys: visibleRowKeys,\n getRowKey: resolvedGetRowKey,\n treeModel,\n isReorderable,\n onReorder,\n dropOnRow,\n getItemDragInfo,\n });\n\n /**\n * `DraggableCollection` owns the React Aria drag/drop hooks and hands the two\n * states down. It is only mounted when reordering is on, so a plain table\n * pays nothing for it.\n *\n * `RowCollection` and the `SelectionManager` from `useTableSelection` satisfy\n * its structural `state` contract unchanged — both exist even when selection\n * itself is off.\n */\n const renderTable = (\n dragState?: any,\n dropState?: any,\n collectionProps?: Record<string, any>,\n ) => (\n <TableView<T>\n rootRef={rootRef}\n dragState={dragState}\n dropState={dropState}\n collectionProps={collectionProps}\n bodyRef={bodyRef}\n qa={qa || 'ItemTable'}\n rows={visibleRows}\n rowKeys={visibleRowKeys}\n sectionLayout={sectionPage?.layout}\n // `aria-rowindex` is document-absolute by contract: on page 3 a screen\n // reader should hear \"row 51 of 240\", not \"row 1 of 25\". Infinite scroll\n // never offsets — every loaded row is already in `visibleRows`.\n // `isPaginated` already excludes infinite scroll, where every loaded row\n // is in `visibleRows` and there is no page to offset by.\n rowIndexOffset={\n treeModel\n ? 0\n : pagination.isPaginated\n ? (pagination.page - 1) * pagination.pageSize\n : 0\n }\n totalRowCount={treeModel ? visibleRows.length : pagination.total}\n getRowKey={resolvedGetRowKey}\n layout={tableLayout}\n onScrollerRef={setScrollerEl}\n size={size}\n shape={shape}\n rowHeight={rowHeight}\n headerHeight={headerHeight}\n isHeaderHidden={isHeaderHidden}\n isHeaderSticky={isHeaderSticky}\n isAutoHeight={isAutoHeight}\n isVirtualized={isVirtualized}\n virtualizeThreshold={virtualizeThreshold}\n overscan={overscan}\n isStriped={isStriped}\n isRowMoveAnimated={isRowMoveAnimated}\n isLoading={isLoading}\n loadingIndicator={loadingIndicator}\n selection={selection}\n selectionTooltip={selectionTooltip}\n rowLink={rowLink}\n onRowAction={onRowAction}\n onLoadMore={pagination.isInfinite ? onLoadMore : undefined}\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n loadMoreMargin={loadMoreMargin}\n isReorderable={drag.isEnabled}\n isResizable={isResizable}\n onColumnResize={handleColumnResize}\n onColumnResizeEnd={handleColumnResizeEnd}\n rowMenu={resolveRowMenu}\n rowContextMenu={rowContextMenu}\n onRowMenuAction={onRowMenuAction}\n rowMenuTriggerProps={rowMenuTriggerProps}\n skeletonRowCount={skeletonRowCount}\n emptyLabel={emptyLabel ?? t('itemTable.noItems', 'No items')}\n noResultsLabel={\n noResultsLabel ?? t('itemTable.noResults', 'No results found')\n }\n error={error}\n toolbar={toolbarNode}\n footer={footerNode}\n isFiltered={isFiltered ?? isSearching}\n sortMode={resolvedSortMode}\n sort={sort}\n onColumnSort={toggleSort}\n onColumnSortChange={setColumnSort}\n columnContextMenu={columnContextMenu}\n onColumnMenuAction={onColumnMenuAction}\n columnMenuTriggerProps={columnMenuTriggerProps}\n columnMenuProps={columnMenuProps}\n getRowProps={getRowProps}\n ariaLabel={ariaLabel}\n styles={rootStyles}\n headerStyles={headerStyles}\n headerCellStyles={headerCellStyles}\n headerPreset={headerPreset}\n bodyStyles={bodyStyles}\n rowStyles={rowStyles}\n cellStyles={cellStyles}\n mods={mods}\n overlay={bulkBarPlacement === 'floating' ? bulkBar : null}\n tree={\n treeModel\n ? {\n state: treeState.state,\n ariaProps: treeState.ariaProps,\n nodes: treeState.visibleNodes,\n entries: visibleTreeEntries,\n columnKey: resolvedTreeColumnKey!,\n }\n : undefined\n }\n />\n );\n\n const table = drag.isEnabled ? (\n <DraggableCollection\n state={{\n collection: selection.collection,\n selectionManager: selection.selectionManager as any,\n disabledKeys: new Set(disabledKeys ?? []),\n }}\n // The element that directly contains the rows. React Aria's\n // `ListDropTargetDelegate` measures the drop position from this element's\n // children, so pointing it at the table root would leave every drop\n // unresolvable — the row lifts but never lands.\n listRef={bodyRef}\n orderedKeys={drag.orderedKeys}\n orientation=\"vertical\"\n onReorder={drag.onReorder}\n onItemDrop={drag.onItemDrop}\n shouldAcceptItemDrop={drag.shouldAcceptItemDrop}\n renderPreview={drag.renderPreview}\n >\n {(dragState, dropState, collectionProps) =>\n renderTable(dragState, dropState, collectionProps)\n }\n </DraggableCollection>\n ) : (\n renderTable()\n );\n\n // The provider always wraps, so `ItemTable.Search` works from a custom\n // `toolbar` as well as from the built-in one.\n return (\n <ItemTableChromeProvider\n value={{\n searchValue,\n setSearchValue,\n searchPlaceholder,\n isLoading,\n onRefresh,\n selectedKeys: selection.selectedKeys,\n selectedRows: selection.selectedRows,\n selectedCount: selection.selectedCount,\n clearSelection: selection.clearSelection,\n }}\n >\n {table}\n </ItemTableChromeProvider>\n );\n}\n\n/** `forwardRef` loses the row type, so the table is cast back to a generic. */\ninterface ItemTableRoot {\n <T = any>(\n props: CubeItemTableProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n ): ReactElement;\n displayName?: string;\n}\n\nexport interface ItemTableComponent extends ItemTableRoot {\n /** The table's search input, bound to the table's own state. */\n Search: typeof ItemTableSearch;\n /** The default toolbar row, for rebuilding it around extra content. */\n Toolbar: typeof ItemTableToolbar;\n /** The selection action bar, for placing it outside the default chrome. */\n BulkBar: typeof ItemTableBulkBar;\n}\n\nconst _ItemTable: ItemTableComponent = Object.assign(\n forwardRef(ItemTable) as unknown as ItemTableRoot,\n {\n Search: ItemTableSearch,\n Toolbar: ItemTableToolbar,\n BulkBar: ItemTableBulkBar,\n },\n);\n\n_ItemTable.displayName = 'ItemTable';\n\nexport { _ItemTable as ItemTable };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { Text as _Text } from "../../content/Text.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { Text as _Text } from "../../content/Text.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { Pagination as _Pagination } from "../../navigation/Pagination/Pagination.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { useI18n } from "../../../i18n/useI18n.js";
3
3
  import { Button } from "../../actions/index.js";
4
4
  import { ReloadIcon } from "../../../icons/ReloadIcon.js";
@@ -1,5 +1,5 @@
1
1
 
2
- import { CubeItemTableColumn, CubeItemTableProps } from "./types.js";
2
+ import { CubeItemTableColumn, CubeItemTableProps, CubeItemTableSection } from "./types.js";
3
3
  import "./ItemTableToolbar.js";
4
4
  import { ItemTable as _ItemTable, ItemTableComponent } from "./ItemTable.js";
5
- export { type CubeItemTableColumn, type CubeItemTableProps, _ItemTable as ItemTable, type ItemTableComponent };
5
+ export { type CubeItemTableColumn, type CubeItemTableProps, type CubeItemTableSection, _ItemTable as ItemTable, type ItemTableComponent };
@@ -0,0 +1,68 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
+ //#region src/components/data/ItemTable/item-table-sections.ts
3
+ /** Stable partition after sorting preserves each section's own sort order. */
4
+ function buildItemTableSections(data, sortedRows, sections, getSectionKey, getRowKey) {
5
+ const buckets = /* @__PURE__ */ new Map();
6
+ for (const section of sections) {
7
+ if (buckets.has(section.key)) return null;
8
+ buckets.set(section.key, []);
9
+ }
10
+ for (const row of sortedRows) {
11
+ const bucket = buckets.get(getSectionKey(row));
12
+ if (!bucket) return null;
13
+ bucket.push(row);
14
+ }
15
+ const sourceKeys = /* @__PURE__ */ new Map();
16
+ data.forEach((row, index) => {
17
+ const keys = sourceKeys.get(row) ?? [];
18
+ keys.push(getRowKey(row, index));
19
+ sourceKeys.set(row, keys);
20
+ });
21
+ const occurrences = /* @__PURE__ */ new Map();
22
+ const rows = [];
23
+ const keys = [];
24
+ const groups = [];
25
+ const rowIndices = [];
26
+ for (const section of sections) {
27
+ const bucket = buckets.get(section.key);
28
+ if (!bucket.length) continue;
29
+ const start = rows.length;
30
+ const index = start + groups.length;
31
+ groups.push({
32
+ ...section,
33
+ start,
34
+ end: start + bucket.length,
35
+ index
36
+ });
37
+ for (const row of bucket) {
38
+ const occurrence = occurrences.get(row) ?? 0;
39
+ occurrences.set(row, occurrence + 1);
40
+ keys.push(sourceKeys.get(row)[occurrence]);
41
+ rowIndices.push(rows.length + groups.length);
42
+ rows.push(row);
43
+ }
44
+ }
45
+ return {
46
+ rows,
47
+ keys,
48
+ groups,
49
+ rowIndices
50
+ };
51
+ }
52
+ function sectionPageLayout(model, start, length) {
53
+ const end = start + length;
54
+ return {
55
+ headers: model.groups.filter((group) => group.start < end && group.end > start).map((group) => ({
56
+ key: group.key,
57
+ title: group.title,
58
+ rowIndex: Math.max(group.start, start) - start,
59
+ index: group.index
60
+ })),
61
+ rowIndices: model.rowIndices.slice(start, end),
62
+ rowCount: model.rows.length + model.groups.length
63
+ };
64
+ }
65
+ //#endregion
66
+ export { buildItemTableSections, sectionPageLayout };
67
+
68
+ //# sourceMappingURL=item-table-sections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"item-table-sections.js","names":["Key","TableBodySections","CubeItemTableSection","ItemTableSectionGroup","start","end","index","ItemTableSections","rows","T","keys","groups","rowIndices","buildItemTableSections","data","sortedRows","sections","getSectionKey","row","getRowKey","buckets","Map","section","has","key","set","bucket","get","push","sourceKeys","forEach","occurrences","length","occurrence","sectionPageLayout","model","headers","filter","group","map","title","rowIndex","Math","max","slice","rowCount"],"sources":["../../../../src/components/data/ItemTable/item-table-sections.ts"],"sourcesContent":["import type { Key } from '@react-types/shared';\nimport type { TableBodySections } from '../TableBase/table-body-sections';\nimport type { CubeItemTableSection } from './types';\n\ninterface ItemTableSectionGroup extends CubeItemTableSection {\n start: number;\n end: number;\n index: number;\n}\n\nexport interface ItemTableSections<T> {\n rows: T[];\n keys: Key[];\n groups: ItemTableSectionGroup[];\n rowIndices: number[];\n}\n\n/** Stable partition after sorting preserves each section's own sort order. */\nexport function buildItemTableSections<T>(\n data: readonly T[],\n sortedRows: readonly T[],\n sections: readonly CubeItemTableSection[],\n getSectionKey: (row: T) => Key,\n getRowKey: (row: T, index: number) => Key,\n): ItemTableSections<T> | null {\n const buckets = new Map<Key, T[]>();\n for (const section of sections) {\n if (buckets.has(section.key)) return null;\n buckets.set(section.key, []);\n }\n for (const row of sortedRows) {\n const bucket = buckets.get(getSectionKey(row));\n if (!bucket) return null;\n bucket.push(row);\n }\n\n // Resolve identity against source positions, including index-based keys.\n // Repeated values retain source occurrence order through the stable sort.\n const sourceKeys = new Map<T, Key[]>();\n data.forEach((row, index) => {\n const keys = sourceKeys.get(row) ?? [];\n keys.push(getRowKey(row, index));\n sourceKeys.set(row, keys);\n });\n const occurrences = new Map<T, number>();\n const rows: T[] = [];\n const keys: Key[] = [];\n const groups: ItemTableSectionGroup[] = [];\n const rowIndices: number[] = [];\n for (const section of sections) {\n const bucket = buckets.get(section.key)!;\n if (!bucket.length) continue;\n const start = rows.length;\n const index = start + groups.length;\n groups.push({ ...section, start, end: start + bucket.length, index });\n for (const row of bucket) {\n const occurrence = occurrences.get(row) ?? 0;\n occurrences.set(row, occurrence + 1);\n keys.push(sourceKeys.get(row)![occurrence]);\n rowIndices.push(rows.length + groups.length);\n rows.push(row);\n }\n }\n return { rows, keys, groups, rowIndices };\n}\n\nexport function sectionPageLayout<T>(\n model: ItemTableSections<T>,\n start: number,\n length: number,\n): TableBodySections {\n const end = start + length;\n return {\n headers: model.groups\n .filter((group) => group.start < end && group.end > start)\n .map((group) => ({\n key: group.key,\n title: group.title,\n rowIndex: Math.max(group.start, start) - start,\n index: group.index,\n })),\n rowIndices: model.rowIndices.slice(start, end),\n rowCount: model.rows.length + model.groups.length,\n };\n}\n"],"mappings":";;;AAkBA,SAAgBa,uBACdC,MACAC,YACAC,UACAC,eACAE,WAC6B;CAC7B,MAAMC,0BAAU,IAAIC,IAAc;CAClC,KAAK,MAAMC,WAAWN,UAAU;EAC9B,IAAII,QAAQG,IAAID,QAAQE,GAAG,GAAG,OAAO;EACrCJ,QAAQK,IAAIH,QAAQE,KAAK,CAAA,CAAE;CAC7B;CACA,KAAK,MAAMN,OAAOH,YAAY;EAC5B,MAAMW,SAASN,QAAQO,IAAIV,cAAcC,GAAG,CAAC;EAC7C,IAAI,CAACQ,QAAQ,OAAO;EACpBA,OAAOE,KAAKV,GAAG;CACjB;CAIA,MAAMW,6BAAa,IAAIR,IAAc;CACrCP,KAAKgB,SAASZ,KAAKZ,UAAU;EAC3B,MAAMI,OAAOmB,WAAWF,IAAIT,GAAG,KAAK,CAAA;EACpCR,KAAKkB,KAAKT,UAAUD,KAAKZ,KAAK,CAAC;EAC/BuB,WAAWJ,IAAIP,KAAKR,IAAI;CAC1B,CAAC;CACD,MAAMqB,8BAAc,IAAIV,IAAe;CACvC,MAAMb,OAAY,CAAA;CAClB,MAAME,OAAc,CAAA;CACpB,MAAMC,SAAkC,CAAA;CACxC,MAAMC,aAAuB,CAAA;CAC7B,KAAK,MAAMU,WAAWN,UAAU;EAC9B,MAAMU,SAASN,QAAQO,IAAIL,QAAQE,GAAG;EACtC,IAAI,CAACE,OAAOM,QAAQ;EACpB,MAAM5B,QAAQI,KAAKwB;EACnB,MAAM1B,QAAQF,QAAQO,OAAOqB;EAC7BrB,OAAOiB,KAAK;GAAE,GAAGN;GAASlB;GAAOC,KAAKD,QAAQsB,OAAOM;GAAQ1B;EAAM,CAAC;EACpE,KAAK,MAAMY,OAAOQ,QAAQ;GACxB,MAAMO,aAAaF,YAAYJ,IAAIT,GAAG,KAAK;GAC3Ca,YAAYN,IAAIP,KAAKe,aAAa,CAAC;GACnCvB,KAAKkB,KAAKC,WAAWF,IAAIT,GAAG,CAAC,CAAEe,WAAW;GAC1CrB,WAAWgB,KAAKpB,KAAKwB,SAASrB,OAAOqB,MAAM;GAC3CxB,KAAKoB,KAAKV,GAAG;EACf;CACF;CACA,OAAO;EAAEV;EAAME;EAAMC;EAAQC;CAAW;AAC1C;AAEA,SAAgBsB,kBACdC,OACA/B,OACA4B,QACmB;CACnB,MAAM3B,MAAMD,QAAQ4B;CACpB,OAAO;EACLI,SAASD,MAAMxB,OACZ0B,QAAQC,UAAUA,MAAMlC,QAAQC,OAAOiC,MAAMjC,MAAMD,KAAK,CAAC,CACzDmC,KAAKD,WAAW;GACfd,KAAKc,MAAMd;GACXgB,OAAOF,MAAME;GACbC,UAAUC,KAAKC,IAAIL,MAAMlC,OAAOA,KAAK,IAAIA;GACzCE,OAAOgC,MAAMhC;EACf,EAAE;EACJM,YAAYuB,MAAMvB,WAAWgC,MAAMxC,OAAOC,GAAG;EAC7CwC,UAAUV,MAAM3B,KAAKwB,SAASG,MAAMxB,OAAOqB;CAC7C;AACF"}
@@ -13,6 +13,10 @@ import { ReactNode } from "react";
13
13
  import { Key as Key$1 } from "@react-types/shared";
14
14
  //#region src/components/data/ItemTable/types.d.ts
15
15
  export type CubeItemTableColumn<T = any> = CubeTableColumn<T>;
16
+ export interface CubeItemTableSection {
17
+ key: Key$1;
18
+ title: ReactNode;
19
+ }
16
20
  export interface CubeItemTableProps<T = any> extends BaseProps, ContainerStyleProps, CubeTableLayoutProps, CubeTableTreeProps<T> {
17
21
  data: readonly T[];
18
22
  columns: CubeItemTableColumn<T>[];
@@ -20,6 +24,14 @@ export interface CubeItemTableProps<T = any> extends BaseProps, ContainerStylePr
20
24
  rowKey?: string;
21
25
  /** Wins over `rowKey`. */
22
26
  getRowKey?: (row: T, index: number) => Key$1;
27
+ /**
28
+ * Ordered, full-width captions for flat records. Empty sections are omitted;
29
+ * records sort within each section and captions do not consume page slots.
30
+ * Requires `getSectionKey`. Ignored for trees, row drag/drop and server paging.
31
+ */
32
+ sections?: readonly CubeItemTableSection[];
33
+ /** Every displayed record must return a declared section key. */
34
+ getSectionKey?: (row: T) => Key$1;
23
35
  isLoading?: boolean;
24
36
  /**
25
37
  * How a refresh over an existing result is presented.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { freezeColumnWidths, useTableColumns } from "../TableBase/use-table-columns.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { isTableTreeDescendant } from "../TableBase/table-tree.js";
4
4
  import { ItemTableDragPreview } from "./ItemTableDragPreview.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { clampPage, getPageInfo } from "../../navigation/Pagination/use-pagination.js";
4
4
  import { reindexTableTree } from "../TableBase/table-tree.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { flattenTableTree } from "../TableBase/table-tree.js";
3
3
  import { useTableSelection } from "../TableBase/use-table-selection.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -8,13 +8,13 @@ import { c } from "react/compiler-runtime";
8
8
  * current page, which in tree mode includes collapsed descendants, and the
9
9
  * wider set it acts on under `selectAllMode="filtered"`.
10
10
  */
11
- function getSelectionScope({ rows, sortedRows, isTree, sortedTreeRoots, pageTreeRoots, paginationMode }) {
11
+ function getSelectionScope({ rows, sortedRows, rowKeys, sortedRowKeys, isTree, sortedTreeRoots, pageTreeRoots, paginationMode }) {
12
12
  const isClientPaginated = paginationMode === "client";
13
13
  if (!isTree) return {
14
14
  pageRows: rows,
15
- pageRowKeys: void 0,
15
+ pageRowKeys: rowKeys,
16
16
  filteredRows: isClientPaginated ? sortedRows : rows,
17
- filteredRowKeys: void 0
17
+ filteredRowKeys: isClientPaginated ? sortedRowKeys : rowKeys
18
18
  };
19
19
  const pageEntries = flattenTableTree(pageTreeRoots);
20
20
  const filteredEntries = isClientPaginated ? flattenTableTree(sortedTreeRoots) : pageEntries;
@@ -30,8 +30,8 @@ function getSelectionScope({ rows, sortedRows, isTree, sortedTreeRoots, pageTree
30
30
  * selection mode implied by bulk actions.
31
31
  */
32
32
  function useItemTableSelection(t0) {
33
- const $ = c(30);
34
- const { rows, rowKeys, sortedRows, isTree, sortedTreeRoots, pageTreeRoots, paginationMode, getRowKey, selectionMode, bulkActions, selectedKeys, defaultSelectedKeys, onSelectionChange, selectAllMode, isRowSelectable, disabledKeys, treeSelectionBehavior } = t0;
33
+ const $ = c(32);
34
+ const { rows, rowKeys, sortedRows, sortedRowKeys, isTree, sortedTreeRoots, pageTreeRoots, paginationMode, getRowKey, selectionMode, bulkActions, selectedKeys, defaultSelectedKeys, onSelectionChange, selectAllMode, isRowSelectable, disabledKeys, treeSelectionBehavior } = t0;
35
35
  let t1;
36
36
  bb0: {
37
37
  if (!isTree) {
@@ -79,10 +79,12 @@ function useItemTableSelection(t0) {
79
79
  const selectionTree = t1;
80
80
  const resolvedSelectionMode = selectionMode ?? (bulkActions?.length ? "multiple" : "none");
81
81
  let t2;
82
- if ($[10] !== isTree || $[11] !== pageTreeRoots || $[12] !== paginationMode || $[13] !== rows || $[14] !== sortedRows || $[15] !== sortedTreeRoots) {
82
+ if ($[10] !== isTree || $[11] !== pageTreeRoots || $[12] !== paginationMode || $[13] !== rowKeys || $[14] !== rows || $[15] !== sortedRowKeys || $[16] !== sortedRows || $[17] !== sortedTreeRoots) {
83
83
  t2 = getSelectionScope({
84
84
  rows,
85
85
  sortedRows,
86
+ rowKeys,
87
+ sortedRowKeys,
86
88
  isTree,
87
89
  sortedTreeRoots,
88
90
  pageTreeRoots,
@@ -91,13 +93,15 @@ function useItemTableSelection(t0) {
91
93
  $[10] = isTree;
92
94
  $[11] = pageTreeRoots;
93
95
  $[12] = paginationMode;
94
- $[13] = rows;
95
- $[14] = sortedRows;
96
- $[15] = sortedTreeRoots;
97
- $[16] = t2;
98
- } else t2 = $[16];
96
+ $[13] = rowKeys;
97
+ $[14] = rows;
98
+ $[15] = sortedRowKeys;
99
+ $[16] = sortedRows;
100
+ $[17] = sortedTreeRoots;
101
+ $[18] = t2;
102
+ } else t2 = $[18];
99
103
  let t3;
100
- 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) {
104
+ if ($[19] !== defaultSelectedKeys || $[20] !== disabledKeys || $[21] !== getRowKey || $[22] !== isRowSelectable || $[23] !== onSelectionChange || $[24] !== resolvedSelectionMode || $[25] !== rowKeys || $[26] !== rows || $[27] !== selectAllMode || $[28] !== selectedKeys || $[29] !== selectionTree || $[30] !== t2) {
101
105
  t3 = {
102
106
  rows,
103
107
  rowKeys,
@@ -112,20 +116,20 @@ function useItemTableSelection(t0) {
112
116
  disabledKeys,
113
117
  tree: selectionTree
114
118
  };
115
- $[17] = defaultSelectedKeys;
116
- $[18] = disabledKeys;
117
- $[19] = getRowKey;
118
- $[20] = isRowSelectable;
119
- $[21] = onSelectionChange;
120
- $[22] = resolvedSelectionMode;
121
- $[23] = rowKeys;
122
- $[24] = rows;
123
- $[25] = selectAllMode;
124
- $[26] = selectedKeys;
125
- $[27] = selectionTree;
126
- $[28] = t2;
127
- $[29] = t3;
128
- } else t3 = $[29];
119
+ $[19] = defaultSelectedKeys;
120
+ $[20] = disabledKeys;
121
+ $[21] = getRowKey;
122
+ $[22] = isRowSelectable;
123
+ $[23] = onSelectionChange;
124
+ $[24] = resolvedSelectionMode;
125
+ $[25] = rowKeys;
126
+ $[26] = rows;
127
+ $[27] = selectAllMode;
128
+ $[28] = selectedKeys;
129
+ $[29] = selectionTree;
130
+ $[30] = t2;
131
+ $[31] = t3;
132
+ } else t3 = $[31];
129
133
  return useTableSelection(t3);
130
134
  }
131
135
  function _temp2(node_0) {
@@ -1 +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","_c"],"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\n 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":"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"}
1
+ {"version":3,"file":"use-item-table-selection.js","names":["useMemo","flattenTableTree","useTableSelection","Key","TableTreeNode","CubeTableSelectionMode","UseTableSelectionOptions","CubeItemTableProps","PaginationMode","NonNullable","SelectionScopeOptions","rows","T","sortedRows","rowKeys","sortedRowKeys","isTree","sortedTreeRoots","pageTreeRoots","paginationMode","UseItemTableSelectionOptions","Pick","selectionMode","bulkActions","treeSelectionBehavior","getSelectionScope","isClientPaginated","pageRows","pageRowKeys","filteredRows","filteredRowKeys","pageEntries","filteredEntries","map","entry","row","key","useItemTableSelection","t0","$","_c","getRowKey","selectedKeys","defaultSelectedKeys","onSelectionChange","selectAllMode","isRowSelectable","disabledKeys","t1","bb0","undefined","childrenOf","parentOf","Map","forEach","node","set","children","_temp","parentKey","t2","_temp2","t3","rootKeys","behavior","selectionTree","resolvedSelectionMode","length","tree","node_0","child","_c"],"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 rowKeys?: readonly Key[];\n sortedRowKeys?: readonly Key[];\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\n 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 rowKeys,\n sortedRowKeys,\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: rowKeys,\n filteredRows: isClientPaginated ? sortedRows : rows,\n filteredRowKeys: isClientPaginated ? sortedRowKeys : rowKeys,\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 sortedRowKeys,\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 rowKeys,\n sortedRowKeys,\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":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { sortTableTree } from "../TableBase/table-tree.js";
4
4
  import { compareByColumn, useTableSort } from "../TableBase/use-table-sort.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { useWarn } from "../../../_internal/hooks/use-warn.js";
3
3
  import { buildTableTree } from "../TableBase/table-tree.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | 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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | 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.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | 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";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.202.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.204.0 | Cube Dev Team */
2
2
  import { useTracking } from "../../../providers/TrackingProvider.js";
3
3
  import { useNavigation } from "../../../providers/use-navigation.js";
4
4
  import { parseTo, performClickHandler } from "../../actions/use-action.js";
@@ -1,5 +1,6 @@
1
1
 
2
2
  import "./types.js";
3
+ import "./table-body-sections.js";
3
4
  import "./table-tree.js";
4
5
  import "./use-cell-selection.js";
5
6
  import "./use-table-selection.js";