@cube-dev/ui-kit 0.207.0 → 0.209.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 (869) hide show
  1. package/dist/CHANGELOG.md +26 -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-sync-ref.js.map +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.d.ts +0 -2
  13. package/dist/components/CollectionItem.js +1 -1
  14. package/dist/components/CollectionItem.js.map +1 -1
  15. package/dist/components/GlobalStyles.js +1 -1
  16. package/dist/components/GlobalStyles.js.map +1 -1
  17. package/dist/components/GridProvider.js +1 -1
  18. package/dist/components/GridProvider.js.map +1 -1
  19. package/dist/components/HiddenInput.js +1 -1
  20. package/dist/components/Root.js +7 -4
  21. package/dist/components/Root.js.map +1 -1
  22. package/dist/components/actions/Action/Action.js +1 -1
  23. package/dist/components/actions/Banner/Banner.js +1 -1
  24. package/dist/components/actions/Banner/Banner.js.map +1 -1
  25. package/dist/components/actions/Button/AutoCollapseObserver.js +215 -0
  26. package/dist/components/actions/Button/AutoCollapseObserver.js.map +1 -0
  27. package/dist/components/actions/Button/Button.d.ts +38 -1
  28. package/dist/components/actions/Button/Button.js +80 -19
  29. package/dist/components/actions/Button/Button.js.map +1 -1
  30. package/dist/components/actions/Button/index.d.ts +16 -1
  31. package/dist/components/actions/Button/index.js +13 -0
  32. package/dist/components/actions/Button/index.js.map +1 -0
  33. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  34. package/dist/components/actions/ButtonGroup/ButtonGroup.js.map +1 -1
  35. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  36. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  37. package/dist/components/actions/ButtonSplit/context.js +1 -1
  38. package/dist/components/actions/CommandMenu/CommandMenu.d.ts +1 -1
  39. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  40. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  41. package/dist/components/actions/CommandMenu/styled.js +1 -1
  42. package/dist/components/actions/ItemAction/ItemAction.js +2 -2
  43. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  44. package/dist/components/actions/ItemActionContext.js +1 -1
  45. package/dist/components/actions/ItemActionsWrapper.js +2 -2
  46. package/dist/components/actions/ItemButton/ItemButton.d.ts +0 -2
  47. package/dist/components/actions/ItemButton/ItemButton.js +2 -2
  48. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  49. package/dist/components/actions/Link/Link.js +1 -1
  50. package/dist/components/actions/Menu/Menu.d.ts +1 -1
  51. package/dist/components/actions/Menu/Menu.js +1 -1
  52. package/dist/components/actions/Menu/Menu.js.map +1 -1
  53. package/dist/components/actions/Menu/MenuCollectionItem.js +1 -1
  54. package/dist/components/actions/Menu/MenuItem.js +2 -2
  55. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  56. package/dist/components/actions/Menu/MenuSection.js +1 -1
  57. package/dist/components/actions/Menu/MenuTrigger.js +3 -3
  58. package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
  59. package/dist/components/actions/Menu/SubMenuTrigger.js +2 -2
  60. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  61. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  62. package/dist/components/actions/Menu/context.js +1 -1
  63. package/dist/components/actions/Menu/index.d.ts +1 -1
  64. package/dist/components/actions/Menu/styled.js +1 -1
  65. package/dist/components/actions/actions-run.js +1 -1
  66. package/dist/components/actions/index.d.ts +6 -18
  67. package/dist/components/actions/use-action.js +2 -2
  68. package/dist/components/actions/use-action.js.map +1 -1
  69. package/dist/components/actions/use-anchored-menu.d.ts +0 -1
  70. package/dist/components/actions/use-anchored-menu.js +2 -2
  71. package/dist/components/actions/use-anchored-menu.js.map +1 -1
  72. package/dist/components/actions/use-context-menu.d.ts +0 -1
  73. package/dist/components/actions/use-context-menu.js +3 -3
  74. package/dist/components/actions/use-context-menu.js.map +1 -1
  75. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  76. package/dist/components/content/ActiveZone/ActiveZone.js.map +1 -1
  77. package/dist/components/content/Alert/Alert.js +1 -1
  78. package/dist/components/content/Alert/use-alert.js +1 -1
  79. package/dist/components/content/Alert/use-alert.js.map +1 -1
  80. package/dist/components/content/Avatar/Avatar.js +1 -1
  81. package/dist/components/content/Badge/Badge.d.ts +0 -1
  82. package/dist/components/content/Badge/Badge.js +1 -1
  83. package/dist/components/content/Badge/Badge.js.map +1 -1
  84. package/dist/components/content/Card/Card.js +1 -1
  85. package/dist/components/content/Content.js +1 -1
  86. package/dist/components/content/Content.js.map +1 -1
  87. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +3 -3
  88. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  89. package/dist/components/content/CopySnippet/CopySnippet.d.ts +2 -18
  90. package/dist/components/content/CopySnippet/CopySnippet.js +2 -2
  91. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  92. package/dist/components/content/Disclosure/Disclosure.d.ts +0 -1
  93. package/dist/components/content/Disclosure/Disclosure.js +2 -2
  94. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  95. package/dist/components/content/Divider/Divider.js +1 -1
  96. package/dist/components/content/Divider/Divider.js.map +1 -1
  97. package/dist/components/content/Footer.js +1 -1
  98. package/dist/components/content/Footer.js.map +1 -1
  99. package/dist/components/content/Header.js +1 -1
  100. package/dist/components/content/Header.js.map +1 -1
  101. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  102. package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
  103. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  104. package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
  105. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  106. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  107. package/dist/components/content/Item/Item.d.ts +1 -11
  108. package/dist/components/content/Item/Item.js +111 -115
  109. package/dist/components/content/Item/Item.js.map +1 -1
  110. package/dist/components/content/Item/ItemWithNativeLinks.js +2 -2
  111. package/dist/components/content/Item/index.d.ts +1 -1
  112. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  113. package/dist/components/content/ItemBadge/index.d.ts +1 -2
  114. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  115. package/dist/components/content/Layout/GridLayout.js +1 -1
  116. package/dist/components/content/Layout/Layout.js +1 -1
  117. package/dist/components/content/Layout/Layout.js.map +1 -1
  118. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  119. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  120. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  121. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  122. package/dist/components/content/Layout/LayoutContent.js +1 -1
  123. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  124. package/dist/components/content/Layout/LayoutContext.js +1 -1
  125. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  126. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  127. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  128. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  129. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  130. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  131. package/dist/components/content/Layout/LayoutPane.js +2 -2
  132. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  133. package/dist/components/content/Layout/LayoutPanel.js +4 -4
  134. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  135. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  136. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  137. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  138. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  139. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  140. package/dist/components/content/Layout/index.js +1 -1
  141. package/dist/components/content/Layout/utils.js +1 -1
  142. package/dist/components/content/Paragraph.js +1 -1
  143. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  144. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  145. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  146. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  147. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  148. package/dist/components/content/Result/Result.js +2 -2
  149. package/dist/components/content/Result/Result.js.map +1 -1
  150. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  151. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  152. package/dist/components/content/Tag/Tag.d.ts +0 -1
  153. package/dist/components/content/Tag/Tag.js +1 -1
  154. package/dist/components/content/Tag/Tag.js.map +1 -1
  155. package/dist/components/content/Text.js +1 -1
  156. package/dist/components/content/TextItem/TextItem.js +1 -1
  157. package/dist/components/content/Title.js +1 -1
  158. package/dist/components/content/Title.js.map +1 -1
  159. package/dist/components/content/Tree/Tree.js +1 -1
  160. package/dist/components/content/Tree/Tree.js.map +1 -1
  161. package/dist/components/content/Tree/TreeNode.js +5 -5
  162. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  163. package/dist/components/content/Tree/checked-keys.js +1 -1
  164. package/dist/components/content/Tree/rowId.js +1 -1
  165. package/dist/components/content/Tree/styled.js +1 -1
  166. package/dist/components/content/Tree/styled.js.map +1 -1
  167. package/dist/components/content/Tree/tree-index.js +1 -1
  168. package/dist/components/content/Tree/types.d.ts +1 -1
  169. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  170. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
  171. package/dist/components/content/Tree/use-load-data.js +1 -1
  172. package/dist/components/content/Tree/use-load-data.js.map +1 -1
  173. package/dist/components/content/highlightText.js +1 -1
  174. package/dist/components/content/use-auto-tooltip.js +233 -111
  175. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  176. package/dist/components/data/DataTable/DataTable.js +1 -1
  177. package/dist/components/data/DataTable/DataTable.js.map +1 -1
  178. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  179. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  180. package/dist/components/data/ItemTable/ItemTableBulkBar.js +2 -2
  181. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
  182. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  183. package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -1
  184. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  185. package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -1
  186. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -2
  187. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  188. package/dist/components/data/ItemTable/item-table-sections.js +1 -1
  189. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  190. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  191. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  192. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  193. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  194. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  195. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  196. package/dist/components/data/TableBase/ColumnResizer.js.map +1 -1
  197. package/dist/components/data/TableBase/RowCollection.js +1 -1
  198. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  199. package/dist/components/data/TableBase/TableHeaderCell.js.map +1 -1
  200. package/dist/components/data/TableBase/TableRow.js +1 -1
  201. package/dist/components/data/TableBase/TableRow.js.map +1 -1
  202. package/dist/components/data/TableBase/TableRowLink.js +1 -1
  203. package/dist/components/data/TableBase/TableView.js +6 -6
  204. package/dist/components/data/TableBase/TableView.js.map +1 -1
  205. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  206. package/dist/components/data/TableBase/column-header.js +1 -1
  207. package/dist/components/data/TableBase/column-menu.js +1 -1
  208. package/dist/components/data/TableBase/column-menu.js.map +1 -1
  209. package/dist/components/data/TableBase/column-styles.js +1 -1
  210. package/dist/components/data/TableBase/column-tint.js +1 -1
  211. package/dist/components/data/TableBase/row-menu.js +1 -1
  212. package/dist/components/data/TableBase/styled.js +1 -1
  213. package/dist/components/data/TableBase/styled.js.map +1 -1
  214. package/dist/components/data/TableBase/table-body-sections.js +1 -1
  215. package/dist/components/data/TableBase/table-tree.js +1 -1
  216. package/dist/components/data/TableBase/types.js +1 -1
  217. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  218. package/dist/components/data/TableBase/use-cell-selection.js.map +1 -1
  219. package/dist/components/data/TableBase/use-column-menu.js +2 -2
  220. package/dist/components/data/TableBase/use-column-order.js +1 -1
  221. package/dist/components/data/TableBase/use-column-order.js.map +1 -1
  222. package/dist/components/data/TableBase/use-column-window.js +1 -1
  223. package/dist/components/data/TableBase/use-container-width.js +1 -1
  224. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  225. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  226. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  227. package/dist/components/data/TableBase/use-table-search.js +1 -1
  228. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  229. package/dist/components/data/TableBase/use-table-selection.js.map +1 -1
  230. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  231. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  232. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  233. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  234. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  235. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  236. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  237. package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
  238. package/dist/components/fields/Checkbox/Checkbox.d.ts +0 -1
  239. package/dist/components/fields/Checkbox/Checkbox.js +3 -3
  240. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  241. package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +0 -1
  242. package/dist/components/fields/Checkbox/CheckboxGroup.js +3 -3
  243. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  244. package/dist/components/fields/Checkbox/context.js +1 -1
  245. package/dist/components/fields/ColorInput/ColorInput.d.ts +0 -1
  246. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  247. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  248. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +0 -3
  249. package/dist/components/fields/ColorPicker/ColorPicker.js +3 -3
  250. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  251. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  252. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +0 -1
  253. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +2 -2
  254. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  255. package/dist/components/fields/ComboBox/ComboBox.d.ts +0 -1
  256. package/dist/components/fields/ComboBox/ComboBox.js +6 -6
  257. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  258. package/dist/components/fields/ComboBox/comboBoxOptions.js +1 -1
  259. package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +1 -2
  260. package/dist/components/fields/CommandTextArea/CommandTextArea.js +2 -2
  261. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  262. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  263. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  264. package/dist/components/fields/DatePicker/CalendarPopover.js +1 -1
  265. package/dist/components/fields/DatePicker/DateInput.d.ts +0 -1
  266. package/dist/components/fields/DatePicker/DateInput.js +2 -2
  267. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  268. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  269. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  270. package/dist/components/fields/DatePicker/DatePicker.d.ts +0 -1
  271. package/dist/components/fields/DatePicker/DatePicker.js +2 -2
  272. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  273. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  274. package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
  275. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  276. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  277. package/dist/components/fields/DatePicker/DatePickerInput.js.map +1 -1
  278. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  279. package/dist/components/fields/DatePicker/DateRangePicker.d.ts +0 -1
  280. package/dist/components/fields/DatePicker/DateRangePicker.js +2 -2
  281. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  282. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +0 -1
  283. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +2 -2
  284. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  285. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  286. package/dist/components/fields/DatePicker/PeriodPicker.d.ts +0 -1
  287. package/dist/components/fields/DatePicker/PeriodPicker.js +2 -2
  288. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  289. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  290. package/dist/components/fields/DatePicker/TimeInput.d.ts +0 -1
  291. package/dist/components/fields/DatePicker/TimeInput.js +2 -2
  292. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  293. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  294. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  295. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  296. package/dist/components/fields/DatePicker/period.js +1 -1
  297. package/dist/components/fields/DatePicker/props.js +1 -1
  298. package/dist/components/fields/DatePicker/utils.js +1 -1
  299. package/dist/components/fields/FileInput/FileInput.d.ts +0 -1
  300. package/dist/components/fields/FileInput/FileInput.js +207 -185
  301. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  302. package/dist/components/fields/FilterListBox/FilterListBox.js +3 -3
  303. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  304. package/dist/components/fields/FilterListBox/styled.js +1 -1
  305. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +0 -3
  306. package/dist/components/fields/FilterPicker/FilterPicker.js +8 -8
  307. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  308. package/dist/components/fields/FilterPicker/FilterTree.js +2 -2
  309. package/dist/components/fields/FilterPicker/FilterTree.js.map +1 -1
  310. package/dist/components/fields/Input/Input.d.ts +0 -1
  311. package/dist/components/fields/Input/Input.js +1 -1
  312. package/dist/components/fields/Input/Input.js.map +1 -1
  313. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  314. package/dist/components/fields/ListBox/ListBox.js +4 -4
  315. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  316. package/dist/components/fields/ListBox/optionId.js +1 -1
  317. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +2 -2
  318. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  319. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  320. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  321. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  322. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  323. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  324. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  325. package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
  326. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  327. package/dist/components/fields/Picker/Picker.d.ts +0 -2
  328. package/dist/components/fields/Picker/Picker.js +8 -8
  329. package/dist/components/fields/Picker/Picker.js.map +1 -1
  330. package/dist/components/fields/RadioGroup/Radio.d.ts +0 -1
  331. package/dist/components/fields/RadioGroup/Radio.js +3 -5
  332. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  333. package/dist/components/fields/RadioGroup/RadioGroup.d.ts +0 -1
  334. package/dist/components/fields/RadioGroup/RadioGroup.js +3 -3
  335. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  336. package/dist/components/fields/RadioGroup/context.js +1 -1
  337. package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +0 -1
  338. package/dist/components/fields/SearchComboBox/SearchComboBox.js +6 -6
  339. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  340. package/dist/components/fields/SearchInput/SearchInput.js +2 -2
  341. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  342. package/dist/components/fields/Select/Select.d.ts +1 -2
  343. package/dist/components/fields/Select/Select.js +7 -7
  344. package/dist/components/fields/Select/Select.js.map +1 -1
  345. package/dist/components/fields/Slider/Gradation.js +1 -1
  346. package/dist/components/fields/Slider/HueSlider.js +1 -1
  347. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  348. package/dist/components/fields/Slider/Slider.js +1 -1
  349. package/dist/components/fields/Slider/Slider.js.map +1 -1
  350. package/dist/components/fields/Slider/SliderBase.js +2 -2
  351. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  352. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  353. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  354. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  355. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  356. package/dist/components/fields/Slider/elements.js +1 -1
  357. package/dist/components/fields/Slider/index.js +2 -2
  358. package/dist/components/fields/Slider/types.d.ts +0 -1
  359. package/dist/components/fields/Switch/Switch.d.ts +0 -1
  360. package/dist/components/fields/Switch/Switch.js +3 -3
  361. package/dist/components/fields/Switch/Switch.js.map +1 -1
  362. package/dist/components/fields/TagInput/TagInput.js +5 -5
  363. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  364. package/dist/components/fields/TagInput/TagList.js +1 -1
  365. package/dist/components/fields/TagInput/TagList.js.map +1 -1
  366. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  367. package/dist/components/fields/TagInput/useTagError.js +1 -1
  368. package/dist/components/fields/TextArea/TextArea.js +2 -2
  369. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  370. package/dist/components/fields/TextInput/TextInput.js +2 -2
  371. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  372. package/dist/components/fields/TextInput/TextInputBase.d.ts +0 -1
  373. package/dist/components/fields/TextInput/TextInputBase.js +3 -3
  374. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  375. package/dist/components/fields/TextInput/displayed-validation.js +1 -1
  376. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  377. package/dist/components/fields/TextInput/useAutoSizeTextArea.js.map +1 -1
  378. package/dist/components/fields/TextInputMapper/TextInputMapper.d.ts +0 -1
  379. package/dist/components/fields/TextInputMapper/TextInputMapper.js +3 -3
  380. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  381. package/dist/components/fields/TriggerActions.js +1 -1
  382. package/dist/components/fields/color/ColorPanel.js +1 -1
  383. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  384. package/dist/components/fields/color/channels.js +1 -1
  385. package/dist/components/fields/color/color.js +1 -1
  386. package/dist/components/fields/color/context.js +1 -1
  387. package/dist/components/fields/index.d.ts +2 -2
  388. package/dist/components/fields/option-origin-press.js +1 -1
  389. package/dist/components/form/FieldWrapper/FieldWrapper.js +2 -2
  390. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  391. package/dist/components/form/FieldWrapper/field-description.js +1 -1
  392. package/dist/components/form/FieldWrapper/types.d.ts +0 -1
  393. package/dist/components/form/Form/Field.d.ts +0 -1
  394. package/dist/components/form/Form/Field.js +3 -3
  395. package/dist/components/form/Form/Field.js.map +1 -1
  396. package/dist/components/form/Form/Form.d.ts +1 -26
  397. package/dist/components/form/Form/Form.js +7 -116
  398. package/dist/components/form/Form/Form.js.map +1 -1
  399. package/dist/components/form/Form/FormContext.d.ts +30 -0
  400. package/dist/components/form/Form/FormContext.js +79 -0
  401. package/dist/components/form/Form/FormContext.js.map +1 -0
  402. package/dist/components/form/Form/FormElement.js +49 -0
  403. package/dist/components/form/Form/FormElement.js.map +1 -0
  404. package/dist/components/form/Form/ModernFormRoot.js +3 -2
  405. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  406. package/dist/components/form/Form/ResetButton/ResetButton.js +2 -2
  407. package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
  408. package/dist/components/form/Form/SubmitButton/SubmitButton.js +2 -2
  409. package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
  410. package/dist/components/form/Form/SubmitError.d.ts +0 -1
  411. package/dist/components/form/Form/SubmitError.js +3 -3
  412. package/dist/components/form/Form/SubmitError.js.map +1 -1
  413. package/dist/components/form/Form/backend.js +1 -1
  414. package/dist/components/form/Form/index.d.ts +2 -1
  415. package/dist/components/form/Form/index.js +6 -5
  416. package/dist/components/form/Form/index.js.map +1 -1
  417. package/dist/components/form/Form/modern/actions.js +1 -1
  418. package/dist/components/form/Form/modern/context.js +1 -1
  419. package/dist/components/form/Form/modern/controller.js +1 -1
  420. package/dist/components/form/Form/modern/field-binding.js +1 -1
  421. package/dist/components/form/Form/modern/field.js +1 -1
  422. package/dist/components/form/Form/modern/react.js +1 -1
  423. package/dist/components/form/Form/modern/store.js +1 -1
  424. package/dist/components/form/Form/modern/validation.js +1 -1
  425. package/dist/components/form/Form/modern/values.js +1 -1
  426. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  427. package/dist/components/form/Form/use-field/types.d.ts +0 -1
  428. package/dist/components/form/Form/use-field/use-field-binding.js +2 -2
  429. package/dist/components/form/Form/use-field/use-field-props.js +4 -4
  430. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  431. package/dist/components/form/Form/use-field/use-field.d.ts +0 -1
  432. package/dist/components/form/Form/use-field/use-field.js +2 -2
  433. package/dist/components/form/Form/use-field/use-field.js.map +1 -1
  434. package/dist/components/form/Form/use-form.js +1 -1
  435. package/dist/components/form/Form/validation.js +1 -1
  436. package/dist/components/form/Label.d.ts +0 -1
  437. package/dist/components/form/Label.js +1 -1
  438. package/dist/components/form/Label.js.map +1 -1
  439. package/dist/components/form/field-chrome.js +1 -1
  440. package/dist/components/form/field-layout.js +1 -1
  441. package/dist/components/form/field-layout.js.map +1 -1
  442. package/dist/components/form/index.d.ts +2 -1
  443. package/dist/components/form/legacy-tooltip.js +1 -1
  444. package/dist/components/form/validation/ValidationIndicator.d.ts +0 -1
  445. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  446. package/dist/components/form/validation/ValidationIndicator.js.map +1 -1
  447. package/dist/components/form/validation/resolve-validation-props.d.ts +0 -1
  448. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  449. package/dist/components/form/validation/resolve-validation-props.js.map +1 -1
  450. package/dist/components/form/validation/use-validation-props.js +1 -1
  451. package/dist/components/form/validation/use-validation-props.js.map +1 -1
  452. package/dist/components/form/wrapper.d.ts +0 -1
  453. package/dist/components/form/wrapper.js +1 -1
  454. package/dist/components/form/wrapper.js.map +1 -1
  455. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  456. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  457. package/dist/components/layout/Flex.js +1 -1
  458. package/dist/components/layout/Flow.js +1 -1
  459. package/dist/components/layout/Grid.js +1 -1
  460. package/dist/components/layout/Panel.js +1 -1
  461. package/dist/components/layout/Prefix.js +1 -1
  462. package/dist/components/layout/Prefix.js.map +1 -1
  463. package/dist/components/layout/ResizablePanel.js +2 -2
  464. package/dist/components/layout/Space.js +1 -1
  465. package/dist/components/layout/Suffix.js +1 -1
  466. package/dist/components/layout/Suffix.js.map +1 -1
  467. package/dist/components/navigation/Pagination/Pagination.js +3 -3
  468. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  469. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  470. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
  471. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  472. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  473. package/dist/components/navigation/Tabs/TabButton.js +4 -4
  474. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  475. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  476. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  477. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  478. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  479. package/dist/components/navigation/Tabs/Tabs.js +2 -2
  480. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  481. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  482. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  483. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  484. package/dist/components/navigation/Tabs/segmented-styles.js +1 -1
  485. package/dist/components/navigation/Tabs/styled.js +1 -1
  486. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  487. package/dist/components/navigation/Tabs/types.d.ts +2 -2
  488. package/dist/components/navigation/Tabs/types.js +1 -1
  489. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  490. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  491. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  492. package/dist/components/other/Calendar/Calendar.js +1 -1
  493. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  494. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  495. package/dist/components/other/Calendar/CalendarHeader.js +2 -2
  496. package/dist/components/other/Calendar/CalendarHeader.js.map +1 -1
  497. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  498. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  499. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  500. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
  501. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  502. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  503. package/dist/components/other/Calendar/styled.js +1 -1
  504. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  505. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  506. package/dist/components/overlays/AlertDialog/AlertDialog.js +2 -2
  507. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  508. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  509. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  510. package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
  511. package/dist/components/overlays/AlertDialog/types.d.ts +0 -1
  512. package/dist/components/overlays/Dialog/Dialog.js +2 -2
  513. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  514. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  515. package/dist/components/overlays/Dialog/DialogForm.js +2 -2
  516. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  517. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +0 -1
  518. package/dist/components/overlays/Dialog/DialogTrigger.js +5 -5
  519. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  520. package/dist/components/overlays/Dialog/ModernDialogForm.js +2 -2
  521. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
  522. package/dist/components/overlays/Dialog/context.js +1 -1
  523. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  524. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  525. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  526. package/dist/components/overlays/Dialog/use-dialog-container.js.map +1 -1
  527. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +1 -1
  528. package/dist/components/overlays/Dialog/use-dismiss-confirmation.js +1 -1
  529. package/dist/components/overlays/Dialog/use-dismiss-confirmation.js.map +1 -1
  530. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +1 -1
  531. package/dist/components/overlays/Modal/Modal.js +2 -2
  532. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  533. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  534. package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -1
  535. package/dist/components/overlays/Modal/Overlay.js +1 -1
  536. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  537. package/dist/components/overlays/Modal/Popover.js +2 -2
  538. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  539. package/dist/components/overlays/Modal/Tray.js +2 -2
  540. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  541. package/dist/components/overlays/Modal/Underlay.js +1 -1
  542. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  543. package/dist/components/overlays/Notifications/Notification.js +1 -1
  544. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  545. package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
  546. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  547. package/dist/components/overlays/Notifications/NotificationCard.js.map +1 -1
  548. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  549. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  550. package/dist/components/overlays/Notifications/NotificationItem.js.map +1 -1
  551. package/dist/components/overlays/Notifications/OverlayContainer.js +2 -2
  552. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  553. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  554. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  555. package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
  556. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  557. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  558. package/dist/components/overlays/Notifications/index.js +1 -1
  559. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  560. package/dist/components/overlays/Notifications/use-notification-state.js.map +1 -1
  561. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  562. package/dist/components/overlays/Notifications/use-notifications.js.map +1 -1
  563. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  564. package/dist/components/overlays/Notifications/use-overlay-timers.js.map +1 -1
  565. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  566. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  567. package/dist/components/overlays/Notifications/use-persistent-state.js.map +1 -1
  568. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  569. package/dist/components/overlays/Notifications/use-toast-state.js.map +1 -1
  570. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  571. package/dist/components/overlays/Toast/index.js +2 -2
  572. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  573. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  574. package/dist/components/overlays/Toast/useToast.js +2 -2
  575. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  576. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  577. package/dist/components/overlays/Tooltip/TooltipProvider.js +20 -7
  578. package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
  579. package/dist/components/overlays/Tooltip/TooltipTrigger.d.ts +1 -0
  580. package/dist/components/overlays/Tooltip/TooltipTrigger.js +225 -103
  581. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  582. package/dist/components/overlays/Tooltip/context.js +1 -1
  583. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  584. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  585. package/dist/components/portal/Portal.js +1 -1
  586. package/dist/components/portal/PortalProvider.js +1 -1
  587. package/dist/components/portal/usePortal.js +1 -1
  588. package/dist/components/shared/DraggableCollection.js +1 -1
  589. package/dist/components/shared/InvalidIcon.js +1 -1
  590. package/dist/components/shared/ValidIcon.js +1 -1
  591. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  592. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  593. package/dist/components/status/Spin/Cube.js +1 -1
  594. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  595. package/dist/components/status/Spin/Spin.js +1 -1
  596. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  597. package/dist/data/item-themes.js +8 -32
  598. package/dist/data/item-themes.js.map +1 -1
  599. package/dist/data/themes.js +1 -1
  600. package/dist/eslint-plugin/defaults.generated.js +1 -1
  601. package/dist/eslint-plugin/index.js +1 -1
  602. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  603. package/dist/i18n/I18nProvider.js +1 -1
  604. package/dist/i18n/createFormatter.js +1 -1
  605. package/dist/i18n/index.js +4 -4
  606. package/dist/i18n/instance.js +3 -3
  607. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  608. package/dist/i18n/locales/en-US/uikit.js +1 -1
  609. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  610. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  611. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  612. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  613. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  614. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  615. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  616. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  617. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  618. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  619. package/dist/i18n/locales.js +1 -1
  620. package/dist/i18n/namespace.js +1 -1
  621. package/dist/i18n/useFormatter.js +1 -1
  622. package/dist/i18n/useI18n.js +1 -1
  623. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  624. package/dist/icons/AdjustmentsIcon.js +1 -1
  625. package/dist/icons/AiIcon.js +1 -1
  626. package/dist/icons/AreaChartIcon.js +1 -1
  627. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  628. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  629. package/dist/icons/BackwardIcon.js +1 -1
  630. package/dist/icons/BarChartIcon.js +1 -1
  631. package/dist/icons/BellFilledIcon.js +1 -1
  632. package/dist/icons/BellIcon.js +1 -1
  633. package/dist/icons/BooleanIcon.js +1 -1
  634. package/dist/icons/CalendarEditIcon.js +1 -1
  635. package/dist/icons/CalendarIcon.js +1 -1
  636. package/dist/icons/CaretDownIcon.js +1 -1
  637. package/dist/icons/CaretUpIcon.js +1 -1
  638. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  639. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  640. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  641. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  642. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  643. package/dist/icons/ChartBarLineIcon.js +1 -1
  644. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  645. package/dist/icons/ChartBarStackedIcon.js +1 -1
  646. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  647. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  648. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  649. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  650. package/dist/icons/ChartBubbleIcon.js +1 -1
  651. package/dist/icons/ChartDonut2Icon.js +1 -1
  652. package/dist/icons/ChartFunnelIcon.js +1 -1
  653. package/dist/icons/ChartHeatmapIcon.js +1 -1
  654. package/dist/icons/ChartKPIIcon.js +1 -1
  655. package/dist/icons/ChartPie2Icon.js +1 -1
  656. package/dist/icons/ChartScatterIcon.js +1 -1
  657. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  658. package/dist/icons/CheckCircleIcon.js +1 -1
  659. package/dist/icons/CheckIcon.js +1 -1
  660. package/dist/icons/CircleFilledIcon.js +1 -1
  661. package/dist/icons/ClearIcon.js +1 -1
  662. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  663. package/dist/icons/CloseCircleIcon.js +1 -1
  664. package/dist/icons/CloseIcon.js +1 -1
  665. package/dist/icons/CodeIcon.js +1 -1
  666. package/dist/icons/ColumnTotalIcon.js +1 -1
  667. package/dist/icons/CopyIcon.js +1 -1
  668. package/dist/icons/CountIcon.js +1 -1
  669. package/dist/icons/CubeIcon.js +1 -1
  670. package/dist/icons/CubePauseIcon.js +1 -1
  671. package/dist/icons/CubePlayIcon.js +1 -1
  672. package/dist/icons/CurrencyDollarIcon.js +1 -1
  673. package/dist/icons/DangerIcon.js +1 -1
  674. package/dist/icons/DashboardIcon.js +1 -1
  675. package/dist/icons/DatabaseIcon.js +1 -1
  676. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  677. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  678. package/dist/icons/DirectionIcon.js +1 -1
  679. package/dist/icons/DonutIcon.js +1 -1
  680. package/dist/icons/DownIcon.js +1 -1
  681. package/dist/icons/EditIcon.js +1 -1
  682. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  683. package/dist/icons/ExclamationCircleIcon.js +1 -1
  684. package/dist/icons/ExclamationIcon.js +1 -1
  685. package/dist/icons/EyeIcon.js +1 -1
  686. package/dist/icons/EyeInvisibleIcon.js +1 -1
  687. package/dist/icons/FilterIcon.js +1 -1
  688. package/dist/icons/FolderFilledIcon.js +1 -1
  689. package/dist/icons/FolderIcon.js +1 -1
  690. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  691. package/dist/icons/FolderOpenIcon.js +1 -1
  692. package/dist/icons/ForwardIcon.js +1 -1
  693. package/dist/icons/GripVerticalIcon.js +1 -1
  694. package/dist/icons/HierarchyIcon.js +1 -1
  695. package/dist/icons/HierarchyOpenIcon.js +1 -1
  696. package/dist/icons/Icon.js +1 -1
  697. package/dist/icons/InfoCircleIcon.js +1 -1
  698. package/dist/icons/InfoIcon.js +1 -1
  699. package/dist/icons/KeyIcon.js +1 -1
  700. package/dist/icons/LeftIcon.js +1 -1
  701. package/dist/icons/LineChartIcon.js +1 -1
  702. package/dist/icons/LoadingIcon.js +1 -1
  703. package/dist/icons/LockFilledIcon.js +1 -1
  704. package/dist/icons/LockIcon.js +1 -1
  705. package/dist/icons/MoreIcon.js +1 -1
  706. package/dist/icons/NotAllowedIcon.js +1 -1
  707. package/dist/icons/Number123Icon.js +1 -1
  708. package/dist/icons/NumberIcon.js +1 -1
  709. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  710. package/dist/icons/PauseCircleIcon.js +1 -1
  711. package/dist/icons/PauseIcon.js +1 -1
  712. package/dist/icons/PercentageIcon.js +1 -1
  713. package/dist/icons/PieChartIcon.js +1 -1
  714. package/dist/icons/PipetteIcon.js +1 -1
  715. package/dist/icons/PlayCircleIcon.js +1 -1
  716. package/dist/icons/PlayIcon.js +1 -1
  717. package/dist/icons/PlusIcon.js +1 -1
  718. package/dist/icons/ProgressBarIcon.js +1 -1
  719. package/dist/icons/ReloadIcon.js +1 -1
  720. package/dist/icons/ReportIcon.js +1 -1
  721. package/dist/icons/ReturnIcon.js +1 -1
  722. package/dist/icons/RightIcon.js +1 -1
  723. package/dist/icons/RowTotalsIcon.js +1 -1
  724. package/dist/icons/SchemeIcon.js +1 -1
  725. package/dist/icons/SearchIcon.js +1 -1
  726. package/dist/icons/SemanticQueryIcon.js +1 -1
  727. package/dist/icons/SettingsIcon.js +1 -1
  728. package/dist/icons/ShieldFilledIcon.js +1 -1
  729. package/dist/icons/ShieldIcon.js +1 -1
  730. package/dist/icons/SlashIcon.js +1 -1
  731. package/dist/icons/SparklesIcon.js +1 -1
  732. package/dist/icons/SqlIcon.js +1 -1
  733. package/dist/icons/StatsIcon.js +1 -1
  734. package/dist/icons/StopIcon.js +1 -1
  735. package/dist/icons/StringIcon.js +1 -1
  736. package/dist/icons/SubtotalsIcon.js +1 -1
  737. package/dist/icons/SwitchIcon.js +1 -1
  738. package/dist/icons/TableIcon.js +1 -1
  739. package/dist/icons/ThumbsDownIcon.js +1 -1
  740. package/dist/icons/ThumbsUpIcon.js +1 -1
  741. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  742. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  743. package/dist/icons/ThunderboltIcon.js +1 -1
  744. package/dist/icons/TimeIcon.js +1 -1
  745. package/dist/icons/TrashIcon.js +1 -1
  746. package/dist/icons/UnlockIcon.js +1 -1
  747. package/dist/icons/UpIcon.js +1 -1
  748. package/dist/icons/UserGroupIcon.js +1 -1
  749. package/dist/icons/UserIcon.js +1 -1
  750. package/dist/icons/UserLockIcon.js +1 -1
  751. package/dist/icons/ViewIcon.js +1 -1
  752. package/dist/icons/WarningFilledIcon.js +1 -1
  753. package/dist/icons/WarningIcon.js +1 -1
  754. package/dist/icons/wrap-icon.js +1 -1
  755. package/dist/index.d.ts +29 -27
  756. package/dist/index.js +69 -69
  757. package/dist/probe/canonicalize.js +1 -1
  758. package/dist/probe/css.js +1 -1
  759. package/dist/probe/index.js +1 -1
  760. package/dist/provider.js +2 -2
  761. package/dist/providers/TrackingProvider.js +1 -1
  762. package/dist/providers/navigation-url.js +1 -1
  763. package/dist/providers/navigationAdapter.default.js +1 -1
  764. package/dist/providers/use-navigation.js +1 -1
  765. package/dist/tokens/all-tokens.js +1 -1
  766. package/dist/tokens/base.js +1 -1
  767. package/dist/tokens/color-seed.js +1 -1
  768. package/dist/tokens/color-theme.js +1 -1
  769. package/dist/tokens/colors.js +1 -1
  770. package/dist/tokens/layout.js +1 -1
  771. package/dist/tokens/lazy-styles.js +1 -1
  772. package/dist/tokens/legacy-color.js +1 -1
  773. package/dist/tokens/palette-config.js +1 -1
  774. package/dist/tokens/palette.js +23 -11
  775. package/dist/tokens/palette.js.map +1 -1
  776. package/dist/tokens/resolve.js +2 -2
  777. package/dist/tokens/shadows.js +1 -1
  778. package/dist/tokens/sizes.js +1 -1
  779. package/dist/tokens/spacing.js +1 -1
  780. package/dist/tokens/typography.js +1 -1
  781. package/dist/utils/ResizeSensor.js +1 -1
  782. package/dist/utils/colors.js +1 -1
  783. package/dist/utils/dotize.js +1 -1
  784. package/dist/utils/index.d.ts +1 -1
  785. package/dist/utils/is-dev-env.js +1 -1
  786. package/dist/utils/modules.js +1 -1
  787. package/dist/utils/promise.js +1 -1
  788. package/dist/utils/raf.js +1 -1
  789. package/dist/utils/random.js +1 -1
  790. package/dist/utils/range.js +1 -1
  791. package/dist/utils/react/RenderCache.js +1 -1
  792. package/dist/utils/react/Slots.js +1 -1
  793. package/dist/utils/react/chain.js +1 -1
  794. package/dist/utils/react/disabledProps.js +1 -1
  795. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  796. package/dist/utils/react/index.d.ts +3 -3
  797. package/dist/utils/react/index.js +13 -13
  798. package/dist/utils/react/interactions.js +1 -1
  799. package/dist/utils/react/isTextOnly.js +1 -1
  800. package/dist/utils/react/mapProps.js +1 -1
  801. package/dist/utils/react/mergeProps.js +1 -1
  802. package/dist/utils/react/nullableValue.js +1 -1
  803. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  804. package/dist/utils/react/programmaticFocus.js +1 -1
  805. package/dist/utils/react/resolveIcon.js +1 -1
  806. package/dist/utils/react/sharedStore.js +1 -1
  807. package/dist/utils/react/useBufferedValue.js +1 -1
  808. package/dist/utils/react/useCombinedRefs.js +1 -1
  809. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  810. package/dist/utils/react/useEventBus.js +1 -1
  811. package/dist/utils/react/useId.js +1 -1
  812. package/dist/utils/react/useIsDarwin.js +1 -1
  813. package/dist/utils/react/useKeySymbols.js +1 -1
  814. package/dist/utils/react/useLayoutEffect.js +1 -1
  815. package/dist/utils/react/useLocalStorage.js +1 -1
  816. package/dist/utils/react/useMergeStyles.js +1 -1
  817. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  818. package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
  819. package/dist/utils/react/usePopoverSync.js +1 -1
  820. package/dist/utils/react/useQaProps.js +1 -1
  821. package/dist/utils/react/useScheme.js +1 -1
  822. package/dist/utils/react/useViewportSize.js +1 -1
  823. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  824. package/dist/utils/selection.js +1 -1
  825. package/dist/utils/styles.js +1 -1
  826. package/dist/utils/tree.js +1 -1
  827. package/dist/utils/warnings.js +1 -1
  828. package/dist/version.js +3 -3
  829. package/docs/Usage.md +15 -1
  830. package/docs/components/actions/Button.md +45 -0
  831. package/docs/components/actions/ButtonSplit.md +1 -1
  832. package/docs/components/fields/FileInput.md +18 -5
  833. package/docs/glaze/contrast.mdx +751 -0
  834. package/docs/glaze/exporting.mdx +635 -0
  835. package/docs/glaze/getting-started.mdx +487 -0
  836. package/docs/glaze/hdr.mdx +523 -0
  837. package/docs/glaze/methodology.mdx +979 -0
  838. package/docs/glaze/migration.md +476 -285
  839. package/docs/glaze/mixes.mdx +348 -0
  840. package/docs/glaze/okhst.mdx +692 -0
  841. package/docs/glaze/reference/color-definitions.md +552 -0
  842. package/docs/glaze/reference/color-tokens.md +421 -0
  843. package/docs/glaze/reference/configuration.md +532 -0
  844. package/docs/glaze/reference/contrast.md +279 -0
  845. package/docs/glaze/reference/index.md +225 -0
  846. package/docs/glaze/reference/output.md +714 -0
  847. package/docs/glaze/reference/palette.md +435 -0
  848. package/docs/glaze/reference/theme.md +332 -0
  849. package/docs/glaze/reference/utilities.md +646 -0
  850. package/docs/glaze/schemes.mdx +644 -0
  851. package/docs/glaze/shadows-and-glows.mdx +550 -0
  852. package/docs/tasty/ai-agents.md +1 -1
  853. package/docs/tasty/design-system.md +12 -0
  854. package/docs/tasty/dsl.md +20 -0
  855. package/docs/tasty/pipeline.md +1 -1
  856. package/package.json +5 -5
  857. package/tasty.config.generated.ts +1 -1
  858. package/dist/components/actions/index.js +0 -29
  859. package/dist/components/actions/index.js.map +0 -1
  860. package/dist/components/fields/ListBoxPopover/ListBoxPopover.d.ts +0 -4
  861. package/dist/components/fields/ListBoxPopover/index.d.ts +0 -5
  862. package/dist/components/overlays/Modal/Modal.d.ts +0 -3
  863. package/dist/components/overlays/Modal/Popover.d.ts +0 -7
  864. package/dist/components/overlays/Modal/Tray.d.ts +0 -5
  865. package/dist/components/overlays/Modal/Underlay.d.ts +0 -3
  866. package/dist/components/overlays/Modal/index.d.ts +0 -8
  867. package/docs/glaze/api.md +0 -2021
  868. package/docs/glaze/methodology.md +0 -686
  869. package/docs/glaze/okhst.md +0 -207
@@ -1 +1 @@
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
+ {"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/useI18n';\nimport { useCombinedRefs } from '../../../utils/react/useCombinedRefs';\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,8 +1,8 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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";
5
- import { Button } from "../../actions/index.js";
5
+ import { Button } from "../../actions/Button/Button.js";
6
6
  import { CloseIcon } from "../../../icons/CloseIcon.js";
7
7
  import { useItemTableChrome } from "./ItemTableToolbar.js";
8
8
  import { tasty } from "@tenphi/tasty";
@@ -1 +1 @@
1
- {"version":3,"file":"ItemTableBulkBar.js","names":["tasty","useState","useEvent","useI18n","CloseIcon","Button","Text","useItemTableChrome","Styles","CubeTableBulkAction","BarElement","qa","as","styles","display","flow","gap","placeItems","boxSizing","position","floating","inset","translate","zIndex","fill","color","border","radius","shadow","padding","width","ItemTableBulkBarProps","actions","T","placement","ItemTableBulkBar","props","t","chrome","selectedRows","selectedCount","clearSelection","loadingKeys","setLoadingKeys","Record","run","action","setLoading","value","current","key","onAction","deselectAfter","count","map","isDisabled","type","theme","icon","disabledTooltip","undefined","label","Text"],"sources":["../../../../src/components/data/ItemTable/ItemTableBulkBar.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { Button } from '../../actions';\nimport { Text } from '../../content/Text';\n\nimport { useItemTableChrome } from './ItemTableToolbar';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { CubeTableBulkAction } from './types';\n\nconst BarElement = tasty({\n qa: 'ItemTableBulkBar',\n as: 'div',\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n boxSizing: 'border-box',\n\n /**\n * `floating` lifts the bar out of the grid and centres it over the body, so\n * it never changes the table's height — a bar that pushed the rows down\n * would move the very row the user is about to click.\n */\n position: { '': 'static', floating: 'absolute' },\n inset: { '': 'auto', floating: 'auto auto 2x 50%' },\n translate: { '': false, floating: '-50% 0' },\n zIndex: { '': 'auto', floating: 10 },\n // A raised surface rather than an inverted \"toast\": `#dark` flips to a light\n // colour under the dark theme, which would put white text on a light bar.\n fill: { '': '#clear', floating: '#surface' },\n color: '#surface-text',\n border: { '': false, floating: true },\n radius: { '': 0, floating: '1cr' },\n shadow: { '': false, floating: '0 1x 3x #shadow' },\n padding: { '': 0, floating: '1x 1.5x' },\n width: { '': 'auto', floating: 'max (100% - 4x)' },\n },\n});\n\nexport interface ItemTableBulkBarProps<T = any> {\n actions: CubeTableBulkAction<T>[];\n /** @default 'floating' */\n placement?: 'floating' | 'toolbar';\n styles?: Styles;\n}\n\n/**\n * The action bar shown while rows are selected.\n *\n * Reads the selection from context rather than props, so a consumer rebuilding\n * the toolbar can drop `<ItemTable.BulkBar>` wherever it likes and still have\n * one owner of the selection.\n */\nexport function ItemTableBulkBar<T = any>(props: ItemTableBulkBarProps<T>) {\n const { actions, placement = 'floating', styles } = props;\n const { t } = useI18n();\n const chrome = useItemTableChrome('ItemTable.BulkBar');\n const { selectedRows, selectedCount, clearSelection } = chrome;\n\n // Per-action, so one slow request cannot disable the others.\n const [loadingKeys, setLoadingKeys] = useState<Record<string, boolean>>({});\n\n const run = useEvent(async (action: CubeTableBulkAction<T>) => {\n const setLoading = (value: boolean) =>\n setLoadingKeys((current) => ({ ...current, [action.key]: value }));\n\n try {\n await action.onAction(selectedRows as T[], { setLoading });\n\n // Deselecting is the default because the rows an action just deleted or\n // moved are usually gone; an action that only reads keeps the selection\n // by opting out.\n if (action.deselectAfter !== false) clearSelection();\n } finally {\n setLoading(false);\n }\n });\n\n if (selectedCount === 0) return null;\n\n return (\n <BarElement\n role=\"toolbar\"\n aria-label={t('itemTable.bulkActions', 'Bulk actions')}\n styles={styles}\n mods={{ floating: placement === 'floating' }}\n >\n <Text nowrap>\n {t('itemTable.selectedCount', '{{count}} selected', {\n count: selectedCount,\n })}\n </Text>\n\n {actions.map((action) => {\n const isDisabled = action.isDisabled?.(selectedRows as T[]) ?? false;\n\n return (\n <Button\n key={action.key}\n size=\"small\"\n type={action.type ?? 'outline'}\n theme={action.theme}\n icon={action.icon}\n isDisabled={isDisabled}\n isLoading={loadingKeys[action.key]}\n // The button's own prop rather than a wrapping `TooltipProvider`:\n // that is what lets it stay hoverable while disabled, which is the\n // only state this tooltip is shown in.\n tooltip={\n isDisabled && action.disabledTooltip\n ? action.disabledTooltip\n : undefined\n }\n onPress={() => run(action)}\n >\n {action.label}\n </Button>\n );\n })}\n\n <Button\n size=\"small\"\n type=\"clear\"\n icon={<CloseIcon />}\n aria-label={t('itemTable.clearSelection', 'Clear selection')}\n onPress={clearSelection}\n />\n </BarElement>\n );\n}\n"],"mappings":";;;;;;;;;;;AAcA,MAAMU,aAAaV,MAAM;CACvBW,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTC,MAAM;EACNC,KAAK;EACLC,YAAY;EACZC,WAAW;;;;;;EAOXC,UAAU;GAAE,IAAI;GAAUC,UAAU;EAAW;EAC/CC,OAAO;GAAE,IAAI;GAAQD,UAAU;EAAmB;EAClDE,WAAW;GAAE,IAAI;GAAOF,UAAU;EAAS;EAC3CG,QAAQ;GAAE,IAAI;GAAQH,UAAU;EAAG;EAGnCI,MAAM;GAAE,IAAI;GAAUJ,UAAU;EAAW;EAC3CK,OAAO;EACPC,QAAQ;GAAE,IAAI;GAAON,UAAU;EAAK;EACpCO,QAAQ;GAAE,IAAI;GAAGP,UAAU;EAAM;EACjCQ,QAAQ;GAAE,IAAI;GAAOR,UAAU;EAAkB;EACjDS,SAAS;GAAE,IAAI;GAAGT,UAAU;EAAU;EACtCU,OAAO;GAAE,IAAI;GAAQV,UAAU;EAAkB;CACnD;AACF,CAAC;;;;;;;;AAgBD,SAAgBe,iBAA0BC,OAAiC;CACzE,MAAM,EAAEJ,SAASE,YAAY,YAAYrB,WAAWuB;CACpD,MAAM,EAAEC,MAAMlC,QAAQ;CAEtB,MAAM,EAAEoC,cAAcC,eAAeC,mBADtBlC,mBAAmB,mBACsB+B;CAGxD,MAAM,CAACI,aAAaC,kBAAkB1C,SAAkC,CAAC,CAAC;CAE1E,MAAM4C,MAAM3C,SAAS,OAAO4C,WAAmC;EAC7D,MAAMC,cAAcC,UAClBL,gBAAgBM,aAAa;GAAE,GAAGA;IAAUH,OAAOI,MAAMF;EAAM,EAAE;EAEnE,IAAI;GACF,MAAMF,OAAOK,SAASZ,cAAqB,EAAEQ,WAAW,CAAC;GAKzD,IAAID,OAAOM,kBAAkB,OAAOX,eAAe;EACrD,UAAU;GACRM,WAAW,KAAK;EAClB;CACF,CAAC;CAED,IAAIP,kBAAkB,GAAG,OAAO;CAEhC,OACE,qBAAC,YAAD;EACE,MAAK;EACL,cAAYH,EAAE,yBAAyB,cAAc;EAC7CxB;EACR,MAAM,EAAEO,UAAUc,cAAc,WAAW;EAJ7C,UAAA;GAME,oBAAC4B,OAAD;IAAM,QAAA;IACHzB,UAAAA,EAAE,2BAA2B,sBAAsB,EAClDgB,OAAOb,cACT,CAAC;GACG,CAAA;GAELR,QAAQsB,KAAKR,aAAW;IACvB,MAAMS,aAAaT,SAAOS,aAAahB,YAAmB,KAAK;IAE/D,OACE,oBAAC,QAAD;KAEE,MAAK;KACL,MAAMO,SAAOU,QAAQ;KACrB,OAAOV,SAAOW;KACd,MAAMX,SAAOY;KACDH;KACZ,WAAWb,YAAYI,SAAOI;KAI9B,SACEK,cAAcT,SAAOa,kBACjBb,SAAOa,kBACPC,KAAAA;KAEN,eAAef,IAAIC,QAAM;KAExBA,UAAAA,SAAOe;IACF,GAlBDf,SAAOI,GAkBN;GAEZ,CAAC;GAED,oBAAC,QAAD;IACE,MAAK;IACL,MAAK;IACL,MAAM,oBAAC,WAAD,CAAU,CAAA;IAChB,cAAYb,EAAE,4BAA4B,iBAAiB;IAC3D,SAASI;GAAe,CAAA;EAEhB;;AAEhB"}
1
+ {"version":3,"file":"ItemTableBulkBar.js","names":["tasty","useState","useEvent","useI18n","CloseIcon","Button","Text","useItemTableChrome","Styles","CubeTableBulkAction","BarElement","qa","as","styles","display","flow","gap","placeItems","boxSizing","position","floating","inset","translate","zIndex","fill","color","border","radius","shadow","padding","width","ItemTableBulkBarProps","actions","T","placement","ItemTableBulkBar","props","t","chrome","selectedRows","selectedCount","clearSelection","loadingKeys","setLoadingKeys","Record","run","action","setLoading","value","current","key","onAction","deselectAfter","count","map","isDisabled","type","theme","icon","disabledTooltip","undefined","label","Text"],"sources":["../../../../src/components/data/ItemTable/ItemTableBulkBar.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n/useI18n';\nimport { CloseIcon } from '../../../icons/CloseIcon';\nimport { Button } from '../../actions/Button/Button';\nimport { Text } from '../../content/Text';\n\nimport { useItemTableChrome } from './ItemTableToolbar';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { CubeTableBulkAction } from './types';\n\nconst BarElement = tasty({\n qa: 'ItemTableBulkBar',\n as: 'div',\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n boxSizing: 'border-box',\n\n /**\n * `floating` lifts the bar out of the grid and centres it over the body, so\n * it never changes the table's height — a bar that pushed the rows down\n * would move the very row the user is about to click.\n */\n position: { '': 'static', floating: 'absolute' },\n inset: { '': 'auto', floating: 'auto auto 2x 50%' },\n translate: { '': false, floating: '-50% 0' },\n zIndex: { '': 'auto', floating: 10 },\n // A raised surface rather than an inverted \"toast\": `#dark` flips to a light\n // colour under the dark theme, which would put white text on a light bar.\n fill: { '': '#clear', floating: '#surface' },\n color: '#surface-text',\n border: { '': false, floating: true },\n radius: { '': 0, floating: '1cr' },\n shadow: { '': false, floating: '0 1x 3x #shadow' },\n padding: { '': 0, floating: '1x 1.5x' },\n width: { '': 'auto', floating: 'max (100% - 4x)' },\n },\n});\n\nexport interface ItemTableBulkBarProps<T = any> {\n actions: CubeTableBulkAction<T>[];\n /** @default 'floating' */\n placement?: 'floating' | 'toolbar';\n styles?: Styles;\n}\n\n/**\n * The action bar shown while rows are selected.\n *\n * Reads the selection from context rather than props, so a consumer rebuilding\n * the toolbar can drop `<ItemTable.BulkBar>` wherever it likes and still have\n * one owner of the selection.\n */\nexport function ItemTableBulkBar<T = any>(props: ItemTableBulkBarProps<T>) {\n const { actions, placement = 'floating', styles } = props;\n const { t } = useI18n();\n const chrome = useItemTableChrome('ItemTable.BulkBar');\n const { selectedRows, selectedCount, clearSelection } = chrome;\n\n // Per-action, so one slow request cannot disable the others.\n const [loadingKeys, setLoadingKeys] = useState<Record<string, boolean>>({});\n\n const run = useEvent(async (action: CubeTableBulkAction<T>) => {\n const setLoading = (value: boolean) =>\n setLoadingKeys((current) => ({ ...current, [action.key]: value }));\n\n try {\n await action.onAction(selectedRows as T[], { setLoading });\n\n // Deselecting is the default because the rows an action just deleted or\n // moved are usually gone; an action that only reads keeps the selection\n // by opting out.\n if (action.deselectAfter !== false) clearSelection();\n } finally {\n setLoading(false);\n }\n });\n\n if (selectedCount === 0) return null;\n\n return (\n <BarElement\n role=\"toolbar\"\n aria-label={t('itemTable.bulkActions', 'Bulk actions')}\n styles={styles}\n mods={{ floating: placement === 'floating' }}\n >\n <Text nowrap>\n {t('itemTable.selectedCount', '{{count}} selected', {\n count: selectedCount,\n })}\n </Text>\n\n {actions.map((action) => {\n const isDisabled = action.isDisabled?.(selectedRows as T[]) ?? false;\n\n return (\n <Button\n key={action.key}\n size=\"small\"\n type={action.type ?? 'outline'}\n theme={action.theme}\n icon={action.icon}\n isDisabled={isDisabled}\n isLoading={loadingKeys[action.key]}\n // The button's own prop rather than a wrapping `TooltipProvider`:\n // that is what lets it stay hoverable while disabled, which is the\n // only state this tooltip is shown in.\n tooltip={\n isDisabled && action.disabledTooltip\n ? action.disabledTooltip\n : undefined\n }\n onPress={() => run(action)}\n >\n {action.label}\n </Button>\n );\n })}\n\n <Button\n size=\"small\"\n type=\"clear\"\n icon={<CloseIcon />}\n aria-label={t('itemTable.clearSelection', 'Clear selection')}\n onPress={clearSelection}\n />\n </BarElement>\n );\n}\n"],"mappings":";;;;;;;;;;;AAcA,MAAMU,aAAaV,MAAM;CACvBW,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTC,MAAM;EACNC,KAAK;EACLC,YAAY;EACZC,WAAW;;;;;;EAOXC,UAAU;GAAE,IAAI;GAAUC,UAAU;EAAW;EAC/CC,OAAO;GAAE,IAAI;GAAQD,UAAU;EAAmB;EAClDE,WAAW;GAAE,IAAI;GAAOF,UAAU;EAAS;EAC3CG,QAAQ;GAAE,IAAI;GAAQH,UAAU;EAAG;EAGnCI,MAAM;GAAE,IAAI;GAAUJ,UAAU;EAAW;EAC3CK,OAAO;EACPC,QAAQ;GAAE,IAAI;GAAON,UAAU;EAAK;EACpCO,QAAQ;GAAE,IAAI;GAAGP,UAAU;EAAM;EACjCQ,QAAQ;GAAE,IAAI;GAAOR,UAAU;EAAkB;EACjDS,SAAS;GAAE,IAAI;GAAGT,UAAU;EAAU;EACtCU,OAAO;GAAE,IAAI;GAAQV,UAAU;EAAkB;CACnD;AACF,CAAC;;;;;;;;AAgBD,SAAgBe,iBAA0BC,OAAiC;CACzE,MAAM,EAAEJ,SAASE,YAAY,YAAYrB,WAAWuB;CACpD,MAAM,EAAEC,MAAMlC,QAAQ;CAEtB,MAAM,EAAEoC,cAAcC,eAAeC,mBADtBlC,mBAAmB,mBACsB+B;CAGxD,MAAM,CAACI,aAAaC,kBAAkB1C,SAAkC,CAAC,CAAC;CAE1E,MAAM4C,MAAM3C,SAAS,OAAO4C,WAAmC;EAC7D,MAAMC,cAAcC,UAClBL,gBAAgBM,aAAa;GAAE,GAAGA;IAAUH,OAAOI,MAAMF;EAAM,EAAE;EAEnE,IAAI;GACF,MAAMF,OAAOK,SAASZ,cAAqB,EAAEQ,WAAW,CAAC;GAKzD,IAAID,OAAOM,kBAAkB,OAAOX,eAAe;EACrD,UAAU;GACRM,WAAW,KAAK;EAClB;CACF,CAAC;CAED,IAAIP,kBAAkB,GAAG,OAAO;CAEhC,OACE,qBAAC,YAAD;EACE,MAAK;EACL,cAAYH,EAAE,yBAAyB,cAAc;EAC7CxB;EACR,MAAM,EAAEO,UAAUc,cAAc,WAAW;EAJ7C,UAAA;GAME,oBAAC4B,OAAD;IAAM,QAAA;IACHzB,UAAAA,EAAE,2BAA2B,sBAAsB,EAClDgB,OAAOb,cACT,CAAC;GACG,CAAA;GAELR,QAAQsB,KAAKR,aAAW;IACvB,MAAMS,aAAaT,SAAOS,aAAahB,YAAmB,KAAK;IAE/D,OACE,oBAAC,QAAD;KAEE,MAAK;KACL,MAAMO,SAAOU,QAAQ;KACrB,OAAOV,SAAOW;KACd,MAAMX,SAAOY;KACDH;KACZ,WAAWb,YAAYI,SAAOI;KAI9B,SACEK,cAAcT,SAAOa,kBACjBb,SAAOa,kBACPC,KAAAA;KAEN,eAAef,IAAIC,QAAM;KAExBA,UAAAA,SAAOe;IACF,GAlBDf,SAAOI,GAkBN;GAEZ,CAAC;GAED,oBAAC,QAAD;IACE,MAAK;IACL,MAAK;IACL,MAAM,oBAAC,WAAD,CAAU,CAAA;IAChB,cAAYb,EAAE,4BAA4B,iBAAiB;IAC3D,SAASI;GAAe,CAAA;EAEhB;;AAEhB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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 +1 @@
1
- {"version":3,"file":"ItemTableDragPreview.js","names":["tasty","useI18n","Text","ReactNode","PreviewElement","qa","as","styles","display","flow","gap","placeItems","padding","radius","fill","color","border","shadow","preset","width","whiteSpace","overflow","textOverflow","ItemTableDragPreviewProps","rows","T","getItemDragInfo","row","label","icon","ItemTableDragPreview","props","$","_c","t","length","t0","count","t1","info","t2","_c","Text"],"sources":["../../../../src/components/data/ItemTable/ItemTableDragPreview.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\n\nimport { useI18n } from '../../../i18n';\nimport { Text } from '../../content/Text';\n\nimport type { ReactNode } from 'react';\n\nconst PreviewElement = tasty({\n qa: 'ItemTableDragPreview',\n as: 'div',\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n padding: '.5x 1x',\n radius: '1cr',\n fill: '#surface',\n color: '#surface-text',\n border: true,\n shadow: '0 1x 3x #shadow',\n preset: 't3',\n // A chip, not a copy of the row: the default browser preview is a snapshot\n // of the source element, which for a full-width table row is a page-wide\n // slab that hides whatever it is being dragged over.\n width: 'max 40x',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n});\n\nexport interface ItemTableDragPreviewProps<T = any> {\n rows: T[];\n getItemDragInfo: (row: T) => { label: ReactNode; icon?: ReactNode };\n}\n\n/**\n * What the cursor drags.\n *\n * One row shows its icon and label. Several show a count — a single chip cannot\n * honestly represent five different rows, and Cloud settled on the same answer.\n */\nexport function ItemTableDragPreview<T>(props: ItemTableDragPreviewProps<T>) {\n const { rows, getItemDragInfo } = props;\n const { t } = useI18n();\n\n if (!rows.length) return null;\n\n if (rows.length > 1) {\n return (\n <PreviewElement>\n <Text>\n {t('itemTable.dragCount', '{{count}} items', { count: rows.length })}\n </Text>\n </PreviewElement>\n );\n }\n\n const info = getItemDragInfo(rows[0]);\n\n return (\n <PreviewElement>\n {info.icon}\n <Text>{info.label}</Text>\n </PreviewElement>\n );\n}\n"],"mappings":";;;;;;;AAOA,MAAMI,iBAAiBJ,MAAM;CAC3BK,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTC,MAAM;EACNC,KAAK;EACLC,YAAY;EACZC,SAAS;EACTC,QAAQ;EACRC,MAAM;EACNC,OAAO;EACPC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EAIRC,OAAO;EACPC,YAAY;EACZC,UAAU;EACVC,cAAc;CAChB;AACF,CAAC;;;;;;;AAaD,SAAOQ,qBAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAAT,MAAAE,oBAAkCK;CAClC,MAAA,EAAAG,MAAcjC,QAAQ;CAEtB,IAAI,CAACuB,KAAIW,QAAO,OAAS;CAEzB,IAAIX,KAAIW,SAAU,GAAC;EAAA,IAAAC;EAAA,IAAAJ,EAAA,OAAAR,KAAAW,UAAAH,EAAA,OAAAE,GAAA;GAIVE,KAAAF,EAAE,uBAAuB,mBAAmB,EAAAG,OAASb,KAAIW,OAAQ,CAAC;GAACH,EAAA,KAAAR,KAAAW;GAAAH,EAAA,KAAAE;GAAAF,EAAA,KAAAI;EAAA,OAAAA,KAAAJ,EAAA;EAAA,IAAAM;EAAA,IAAAN,EAAA,OAAAI,IAAA;GAFxEE,KAAA,oBAAC,gBAAD,EAAA,UACE,oBAACI,OAAD,EAAA,UACGN,GADE,CAAA,EADQ,CAAA;GAIEJ,EAAA,KAAAI;GAAAJ,EAAA,KAAAM;EAAA,OAAAA,KAAAN,EAAA;EAAA,OAJjBM;CAIiB;CAEpB,IAAAF;CAAA,IAAAJ,EAAA,OAAAN,mBAAAM,EAAA,OAAAR,KAAA,IAAA;EAEYY,KAAAV,gBAAgBF,KAAI,EAAG;EAACQ,EAAA,KAAAN;EAAAM,EAAA,KAAAR,KAAA;EAAAQ,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAArC,MAAAO,OAAaH;CAAyB,IAAAE;CAAA,IAAAN,EAAA,OAAAO,KAAAX,OAAA;EAKlCU,KAAA,oBAACI,OAAD,EAAA,UAAOH,KAAIX,MAAN,CAAA;EAAoBI,EAAA,KAAAO,KAAAX;EAAAI,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,QAAAO,KAAAV,QAAAG,EAAA,QAAAM,IAAA;EAF3BE,KAAA,qBAAC,gBAAD,EAAA,UAAA,CACGD,KAAIV,MACLS,EAFa,EAAA,CAAA;EAGEN,EAAA,MAAAO,KAAAV;EAAAG,EAAA,MAAAM;EAAAN,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAHjBQ;AAGiB"}
1
+ {"version":3,"file":"ItemTableDragPreview.js","names":["tasty","useI18n","Text","ReactNode","PreviewElement","qa","as","styles","display","flow","gap","placeItems","padding","radius","fill","color","border","shadow","preset","width","whiteSpace","overflow","textOverflow","ItemTableDragPreviewProps","rows","T","getItemDragInfo","row","label","icon","ItemTableDragPreview","props","$","_c","t","length","t0","count","t1","info","t2","_c","Text"],"sources":["../../../../src/components/data/ItemTable/ItemTableDragPreview.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\n\nimport { useI18n } from '../../../i18n/useI18n';\nimport { Text } from '../../content/Text';\n\nimport type { ReactNode } from 'react';\n\nconst PreviewElement = tasty({\n qa: 'ItemTableDragPreview',\n as: 'div',\n styles: {\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n padding: '.5x 1x',\n radius: '1cr',\n fill: '#surface',\n color: '#surface-text',\n border: true,\n shadow: '0 1x 3x #shadow',\n preset: 't3',\n // A chip, not a copy of the row: the default browser preview is a snapshot\n // of the source element, which for a full-width table row is a page-wide\n // slab that hides whatever it is being dragged over.\n width: 'max 40x',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n});\n\nexport interface ItemTableDragPreviewProps<T = any> {\n rows: T[];\n getItemDragInfo: (row: T) => { label: ReactNode; icon?: ReactNode };\n}\n\n/**\n * What the cursor drags.\n *\n * One row shows its icon and label. Several show a count — a single chip cannot\n * honestly represent five different rows, and Cloud settled on the same answer.\n */\nexport function ItemTableDragPreview<T>(props: ItemTableDragPreviewProps<T>) {\n const { rows, getItemDragInfo } = props;\n const { t } = useI18n();\n\n if (!rows.length) return null;\n\n if (rows.length > 1) {\n return (\n <PreviewElement>\n <Text>\n {t('itemTable.dragCount', '{{count}} items', { count: rows.length })}\n </Text>\n </PreviewElement>\n );\n }\n\n const info = getItemDragInfo(rows[0]);\n\n return (\n <PreviewElement>\n {info.icon}\n <Text>{info.label}</Text>\n </PreviewElement>\n );\n}\n"],"mappings":";;;;;;;AAOA,MAAMI,iBAAiBJ,MAAM;CAC3BK,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,SAAS;EACTC,MAAM;EACNC,KAAK;EACLC,YAAY;EACZC,SAAS;EACTC,QAAQ;EACRC,MAAM;EACNC,OAAO;EACPC,QAAQ;EACRC,QAAQ;EACRC,QAAQ;EAIRC,OAAO;EACPC,YAAY;EACZC,UAAU;EACVC,cAAc;CAChB;AACF,CAAC;;;;;;;AAaD,SAAOQ,qBAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,EAAAT,MAAAE,oBAAkCK;CAClC,MAAA,EAAAG,MAAcjC,QAAQ;CAEtB,IAAI,CAACuB,KAAIW,QAAO,OAAS;CAEzB,IAAIX,KAAIW,SAAU,GAAC;EAAA,IAAAC;EAAA,IAAAJ,EAAA,OAAAR,KAAAW,UAAAH,EAAA,OAAAE,GAAA;GAIVE,KAAAF,EAAE,uBAAuB,mBAAmB,EAAAG,OAASb,KAAIW,OAAQ,CAAC;GAACH,EAAA,KAAAR,KAAAW;GAAAH,EAAA,KAAAE;GAAAF,EAAA,KAAAI;EAAA,OAAAA,KAAAJ,EAAA;EAAA,IAAAM;EAAA,IAAAN,EAAA,OAAAI,IAAA;GAFxEE,KAAA,oBAAC,gBAAD,EAAA,UACE,oBAACI,OAAD,EAAA,UACGN,GADE,CAAA,EADQ,CAAA;GAIEJ,EAAA,KAAAI;GAAAJ,EAAA,KAAAM;EAAA,OAAAA,KAAAN,EAAA;EAAA,OAJjBM;CAIiB;CAEpB,IAAAF;CAAA,IAAAJ,EAAA,OAAAN,mBAAAM,EAAA,OAAAR,KAAA,IAAA;EAEYY,KAAAV,gBAAgBF,KAAI,EAAG;EAACQ,EAAA,KAAAN;EAAAM,EAAA,KAAAR,KAAA;EAAAQ,EAAA,KAAAI;CAAA,OAAAA,KAAAJ,EAAA;CAArC,MAAAO,OAAaH;CAAyB,IAAAE;CAAA,IAAAN,EAAA,OAAAO,KAAAX,OAAA;EAKlCU,KAAA,oBAACI,OAAD,EAAA,UAAOH,KAAIX,MAAN,CAAA;EAAoBI,EAAA,KAAAO,KAAAX;EAAAI,EAAA,KAAAM;CAAA,OAAAA,KAAAN,EAAA;CAAA,IAAAQ;CAAA,IAAAR,EAAA,QAAAO,KAAAV,QAAAG,EAAA,QAAAM,IAAA;EAF3BE,KAAA,qBAAC,gBAAD,EAAA,UAAA,CACGD,KAAIV,MACLS,EAFa,EAAA,CAAA;EAGEN,EAAA,MAAAO,KAAAV;EAAAG,EAAA,MAAAM;EAAAN,EAAA,MAAAQ;CAAA,OAAAA,KAAAR,EAAA;CAAA,OAHjBQ;AAGiB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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 +1 @@
1
- {"version":3,"file":"ItemTableFooter.js","names":["tasty","Pagination","Styles","ReactNode","CubeTablePageInfo","FooterElement","qa","as","styles","gridRow","preset","display","flow","gap","placeItems","padding","border","Start","$","width","Center","placeContent","flexGrow","End","ItemTableFooterProps","start","center","end","pagination","page","pageSize","total","totalPages","pageSizeOptions","summary","info","hasNextPage","onPageChange","onPageSizeChange","ItemTableFooter","t0","_c","t1","t2","t3","t4","t5","_c","Pagination"],"sources":["../../../../src/components/data/ItemTable/ItemTableFooter.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\n\nimport { Pagination } from '../../navigation/Pagination';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\nimport type { CubeTablePageInfo } from '../../navigation/Pagination';\n\nconst FooterElement = tasty({\n qa: 'ItemTableFooter',\n as: 'div',\n styles: {\n gridRow: 3,\n // The footer is chrome around the data, so its text sits a step below the\n // body's. Slot content inherits this, which is what keeps a consumer's own\n // label matched to the pagination summary beside it.\n preset: 't4',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n padding: '1x',\n border: '1bw #border top',\n\n /**\n * Three named slots. This is what replaces the `MutationObserver` that Cloud\n * uses to inject a \"Load all results\" button into ag-grid's paging panel —\n * ag-grid Community has no status bar, so there was nowhere to put it.\n */\n Start: {\n $: '>',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n width: 'min 0',\n },\n Center: {\n $: '>',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n placeContent: 'center',\n // `flexGrow`, not a width: this is a flex item, and only grow makes it\n // take the leftover space so its content actually lands in the middle.\n flexGrow: 1,\n },\n End: {\n $: '>',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n placeContent: 'end',\n },\n },\n});\n\nexport interface ItemTableFooterProps {\n start?: ReactNode;\n center?: ReactNode;\n end?: ReactNode;\n /** Rendered in the end slot unless `end` overrides it. */\n pagination?: {\n page: number;\n pageSize: number;\n total: number;\n totalPages?: number;\n pageSizeOptions?: number[];\n summary?: boolean | ((info: CubeTablePageInfo) => ReactNode);\n hasNextPage?: boolean;\n onPageChange: (page: number) => void;\n onPageSizeChange?: (pageSize: number) => void;\n };\n styles?: Styles;\n}\n\nexport function ItemTableFooter({\n start,\n center,\n end,\n pagination,\n styles,\n}: ItemTableFooterProps) {\n return (\n <FooterElement styles={styles}>\n <div data-element=\"Start\">{start}</div>\n <div data-element=\"Center\">{center}</div>\n <div data-element=\"End\">\n {end}\n {pagination ? (\n <Pagination\n // The footer is chrome around the data, not part of it — its\n // controls sit a step below the toolbar's.\n size=\"xsmall\"\n page={pagination.page}\n pageSize={pagination.pageSize}\n total={pagination.total}\n totalPages={pagination.totalPages}\n pageSizeOptions={pagination.pageSizeOptions}\n summary={pagination.summary}\n hasNextPage={pagination.hasNextPage}\n onPageChange={pagination.onPageChange}\n onPageSizeChange={pagination.onPageSizeChange}\n />\n ) : null}\n </div>\n </FooterElement>\n );\n}\n"],"mappings":";;;;;;AAQA,MAAMK,gBAAgBL,MAAM;CAC1BM,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,SAAS;EAITC,QAAQ;EACRC,SAAS;EACTC,MAAM;EACNC,KAAK;EACLC,YAAY;EACZC,SAAS;EACTC,QAAQ;;;;;;EAORC,OAAO;GACLC,GAAG;GACHP,SAAS;GACTC,MAAM;GACNC,KAAK;GACLC,YAAY;GACZK,OAAO;EACT;EACAC,QAAQ;GACNF,GAAG;GACHP,SAAS;GACTC,MAAM;GACNC,KAAK;GACLC,YAAY;GACZO,cAAc;GAGdC,UAAU;EACZ;EACAC,KAAK;GACHL,GAAG;GACHP,SAAS;GACTC,MAAM;GACNC,KAAK;GACLC,YAAY;GACZO,cAAc;EAChB;CACF;AACF,CAAC;AAqBD,SAAOkB,gBAAAC,IAAA;CAAA,MAAAtB,IAAAuB,EAAA,EAAA;CAAyB,MAAA,EAAAhB,OAAAC,QAAAC,KAAAC,YAAApB,WAAAgC;CAMT,IAAAE;CAAA,IAAAxB,EAAA,OAAAO,OAAA;EAGjBiB,KAAA,oBAAA,OAAA;GAAkB,gBAAA;GAASjB,UAAAA;EAAY,CAAA;EAAAP,EAAA,KAAAO;EAAAP,EAAA,KAAAwB;CAAA,OAAAA,KAAAxB,EAAA;CAAA,IAAAyB;CAAA,IAAAzB,EAAA,OAAAQ,QAAA;EACvCiB,KAAA,oBAAA,OAAA;GAAkB,gBAAA;GAAUjB,UAAAA;EAAa,CAAA;EAAAR,EAAA,KAAAQ;EAAAR,EAAA,KAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAAA,IAAA0B;CAAA,IAAA1B,EAAA,OAAAU,YAAA;EAGtCgB,KAAAhB,aACC,oBAACoB,aAAD;GAGO,MAAA;GACC,MAAApB,WAAUC;GACN,UAAAD,WAAUE;GACb,OAAAF,WAAUG;GACL,YAAAH,WAAUI;GACL,iBAAAJ,WAAUK;GAClB,SAAAL,WAAUM;GACN,aAAAN,WAAUQ;GACT,cAAAR,WAAUS;GACN,kBAAAT,WAAUU;EAAiB,CAAA,IAbhD;EAeOpB,EAAA,KAAAU;EAAAV,EAAA,KAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAA,IAAA2B;CAAA,IAAA3B,EAAA,OAAAS,OAAAT,EAAA,OAAA0B,IAAA;EAjBVC,KAAA,qBAAA,OAAA;GAAkB,gBAAA;GAAlB,UAAA,CACGlB,KACAiB,EAgBG;;EAAA1B,EAAA,KAAAS;EAAAT,EAAA,KAAA0B;EAAA1B,EAAA,KAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,IAAA4B;CAAA,IAAA5B,EAAA,OAAAV,UAAAU,EAAA,QAAAwB,MAAAxB,EAAA,QAAAyB,MAAAzB,EAAA,QAAA2B,IAAA;EArBRC,KAAA,qBAAC,eAAD;GAAuBtC;GAAvB,UAAA;IACEkC;IACAC;IACAE;GAHY;;EAsBE3B,EAAA,KAAAV;EAAAU,EAAA,MAAAwB;EAAAxB,EAAA,MAAAyB;EAAAzB,EAAA,MAAA2B;EAAA3B,EAAA,MAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAAA,OAtBhB4B;AAsBgB"}
1
+ {"version":3,"file":"ItemTableFooter.js","names":["tasty","Pagination","Styles","ReactNode","CubeTablePageInfo","FooterElement","qa","as","styles","gridRow","preset","display","flow","gap","placeItems","padding","border","Start","$","width","Center","placeContent","flexGrow","End","ItemTableFooterProps","start","center","end","pagination","page","pageSize","total","totalPages","pageSizeOptions","summary","info","hasNextPage","onPageChange","onPageSizeChange","ItemTableFooter","t0","_c","t1","t2","t3","t4","t5","_c","Pagination"],"sources":["../../../../src/components/data/ItemTable/ItemTableFooter.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\n\nimport { Pagination } from '../../navigation/Pagination/Pagination';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\nimport type { CubeTablePageInfo } from '../../navigation/Pagination';\n\nconst FooterElement = tasty({\n qa: 'ItemTableFooter',\n as: 'div',\n styles: {\n gridRow: 3,\n // The footer is chrome around the data, so its text sits a step below the\n // body's. Slot content inherits this, which is what keeps a consumer's own\n // label matched to the pagination summary beside it.\n preset: 't4',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n padding: '1x',\n border: '1bw #border top',\n\n /**\n * Three named slots. This is what replaces the `MutationObserver` that Cloud\n * uses to inject a \"Load all results\" button into ag-grid's paging panel —\n * ag-grid Community has no status bar, so there was nowhere to put it.\n */\n Start: {\n $: '>',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n width: 'min 0',\n },\n Center: {\n $: '>',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n placeContent: 'center',\n // `flexGrow`, not a width: this is a flex item, and only grow makes it\n // take the leftover space so its content actually lands in the middle.\n flexGrow: 1,\n },\n End: {\n $: '>',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n placeContent: 'end',\n },\n },\n});\n\nexport interface ItemTableFooterProps {\n start?: ReactNode;\n center?: ReactNode;\n end?: ReactNode;\n /** Rendered in the end slot unless `end` overrides it. */\n pagination?: {\n page: number;\n pageSize: number;\n total: number;\n totalPages?: number;\n pageSizeOptions?: number[];\n summary?: boolean | ((info: CubeTablePageInfo) => ReactNode);\n hasNextPage?: boolean;\n onPageChange: (page: number) => void;\n onPageSizeChange?: (pageSize: number) => void;\n };\n styles?: Styles;\n}\n\nexport function ItemTableFooter({\n start,\n center,\n end,\n pagination,\n styles,\n}: ItemTableFooterProps) {\n return (\n <FooterElement styles={styles}>\n <div data-element=\"Start\">{start}</div>\n <div data-element=\"Center\">{center}</div>\n <div data-element=\"End\">\n {end}\n {pagination ? (\n <Pagination\n // The footer is chrome around the data, not part of it — its\n // controls sit a step below the toolbar's.\n size=\"xsmall\"\n page={pagination.page}\n pageSize={pagination.pageSize}\n total={pagination.total}\n totalPages={pagination.totalPages}\n pageSizeOptions={pagination.pageSizeOptions}\n summary={pagination.summary}\n hasNextPage={pagination.hasNextPage}\n onPageChange={pagination.onPageChange}\n onPageSizeChange={pagination.onPageSizeChange}\n />\n ) : null}\n </div>\n </FooterElement>\n );\n}\n"],"mappings":";;;;;;AAQA,MAAMK,gBAAgBL,MAAM;CAC1BM,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,SAAS;EAITC,QAAQ;EACRC,SAAS;EACTC,MAAM;EACNC,KAAK;EACLC,YAAY;EACZC,SAAS;EACTC,QAAQ;;;;;;EAORC,OAAO;GACLC,GAAG;GACHP,SAAS;GACTC,MAAM;GACNC,KAAK;GACLC,YAAY;GACZK,OAAO;EACT;EACAC,QAAQ;GACNF,GAAG;GACHP,SAAS;GACTC,MAAM;GACNC,KAAK;GACLC,YAAY;GACZO,cAAc;GAGdC,UAAU;EACZ;EACAC,KAAK;GACHL,GAAG;GACHP,SAAS;GACTC,MAAM;GACNC,KAAK;GACLC,YAAY;GACZO,cAAc;EAChB;CACF;AACF,CAAC;AAqBD,SAAOkB,gBAAAC,IAAA;CAAA,MAAAtB,IAAAuB,EAAA,EAAA;CAAyB,MAAA,EAAAhB,OAAAC,QAAAC,KAAAC,YAAApB,WAAAgC;CAMT,IAAAE;CAAA,IAAAxB,EAAA,OAAAO,OAAA;EAGjBiB,KAAA,oBAAA,OAAA;GAAkB,gBAAA;GAASjB,UAAAA;EAAY,CAAA;EAAAP,EAAA,KAAAO;EAAAP,EAAA,KAAAwB;CAAA,OAAAA,KAAAxB,EAAA;CAAA,IAAAyB;CAAA,IAAAzB,EAAA,OAAAQ,QAAA;EACvCiB,KAAA,oBAAA,OAAA;GAAkB,gBAAA;GAAUjB,UAAAA;EAAa,CAAA;EAAAR,EAAA,KAAAQ;EAAAR,EAAA,KAAAyB;CAAA,OAAAA,KAAAzB,EAAA;CAAA,IAAA0B;CAAA,IAAA1B,EAAA,OAAAU,YAAA;EAGtCgB,KAAAhB,aACC,oBAACoB,aAAD;GAGO,MAAA;GACC,MAAApB,WAAUC;GACN,UAAAD,WAAUE;GACb,OAAAF,WAAUG;GACL,YAAAH,WAAUI;GACL,iBAAAJ,WAAUK;GAClB,SAAAL,WAAUM;GACN,aAAAN,WAAUQ;GACT,cAAAR,WAAUS;GACN,kBAAAT,WAAUU;EAAiB,CAAA,IAbhD;EAeOpB,EAAA,KAAAU;EAAAV,EAAA,KAAA0B;CAAA,OAAAA,KAAA1B,EAAA;CAAA,IAAA2B;CAAA,IAAA3B,EAAA,OAAAS,OAAAT,EAAA,OAAA0B,IAAA;EAjBVC,KAAA,qBAAA,OAAA;GAAkB,gBAAA;GAAlB,UAAA,CACGlB,KACAiB,EAgBG;;EAAA1B,EAAA,KAAAS;EAAAT,EAAA,KAAA0B;EAAA1B,EAAA,KAAA2B;CAAA,OAAAA,KAAA3B,EAAA;CAAA,IAAA4B;CAAA,IAAA5B,EAAA,OAAAV,UAAAU,EAAA,QAAAwB,MAAAxB,EAAA,QAAAyB,MAAAzB,EAAA,QAAA2B,IAAA;EArBRC,KAAA,qBAAC,eAAD;GAAuBtC;GAAvB,UAAA;IACEkC;IACAC;IACAE;GAHY;;EAsBE3B,EAAA,KAAAV;EAAAU,EAAA,MAAAwB;EAAAxB,EAAA,MAAAyB;EAAAzB,EAAA,MAAA2B;EAAA3B,EAAA,MAAA4B;CAAA,OAAAA,KAAA5B,EAAA;CAAA,OAtBhB4B;AAsBgB"}
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.0 | Cube Dev Team */
2
2
  import { useI18n } from "../../../i18n/useI18n.js";
3
- import { Button } from "../../actions/index.js";
3
+ import { Button } from "../../actions/Button/Button.js";
4
4
  import { ReloadIcon } from "../../../icons/ReloadIcon.js";
5
5
  import { SearchInput } from "../../fields/SearchInput/SearchInput.js";
6
6
  import { c } from "react/compiler-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"ItemTableToolbar.js","names":["tasty","createContext","useContext","useI18n","ReloadIcon","Button","SearchInput","Key","Styles","ReactNode","CubeItemTableChromeState","searchValue","setSearchValue","value","searchPlaceholder","isLoading","onRefresh","selectedKeys","selectedRows","T","selectedCount","clearSelection","ChromeContext","ItemTableChromeProvider","Provider","useItemTableChrome","component","context","Error","ToolbarElement","qa","as","styles","gridRow","display","flow","gap","placeItems","placeContent","padding","border","Start","$","width","End","SearchElement","ItemTableSearch","props","_c","t","t0","t1","t2","placeholder","t3","ItemTableToolbarProps","isSearchable","filters","actions","searchStyles","ItemTableToolbar","t4","t5","_c"],"sources":["../../../../src/components/data/ItemTable/ItemTableToolbar.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { createContext, useContext } from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { ReloadIcon } from '../../../icons/ReloadIcon';\nimport { Button } from '../../actions';\nimport { SearchInput } from '../../fields/SearchInput';\n\nimport type { Key } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\n\n/**\n * Lets `ItemTable.Search` (and future chrome pieces) read the table's state\n * without prop drilling, so a consumer can rebuild the toolbar from parts and\n * still have exactly one owner of the search term.\n */\nexport interface CubeItemTableChromeState<T = any> {\n searchValue: string;\n setSearchValue: (value: string) => void;\n searchPlaceholder?: string;\n isLoading: boolean;\n onRefresh?: () => void;\n /** `'all'` is the sentinel, so `selectedCount` is what the UI should show. */\n selectedKeys: Key[] | 'all';\n selectedRows: T[];\n selectedCount: number;\n clearSelection: () => void;\n}\n\nconst ChromeContext = createContext<CubeItemTableChromeState | null>(null);\n\nexport const ItemTableChromeProvider = ChromeContext.Provider;\n\nexport function useItemTableChrome(component: string) {\n const context = useContext(ChromeContext);\n\n if (!context) {\n throw new Error(\n `${component} must be rendered inside an ItemTable — it reads the table's search state from context.`,\n );\n }\n\n return context;\n}\n\nconst ToolbarElement = tasty({\n qa: 'ItemTableToolbar',\n as: 'div',\n styles: {\n gridRow: 1,\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n placeContent: 'space-between',\n padding: '1x',\n border: '1bw #border bottom',\n\n // Left group: search, then filters.\n Start: {\n $: '>',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n width: 'min 0',\n },\n // Right group: arbitrary consumer actions, then refresh.\n End: {\n $: '>',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n },\n },\n});\n\nconst SearchElement = tasty(SearchInput, {\n qa: 'ItemTableSearchInput',\n styles: { width: 'max 37.5x' },\n});\n\n/** The table's search input, bound to the table's own state. */\nexport function ItemTableSearch(props: {\n placeholder?: string;\n styles?: Styles;\n qa?: string;\n}) {\n const { searchValue, setSearchValue, searchPlaceholder } =\n useItemTableChrome('ItemTable.Search');\n const { t } = useI18n();\n\n return (\n <SearchElement\n isBare\n qa={props.qa}\n size=\"small\"\n isClearable\n aria-label={t('itemTable.search', 'Search')}\n placeholder={\n props.placeholder ??\n searchPlaceholder ??\n t('itemTable.searchPlaceholder', 'Search...')\n }\n value={searchValue}\n styles={props.styles}\n onChange={setSearchValue}\n />\n );\n}\n\nexport interface ItemTableToolbarProps {\n isSearchable?: boolean;\n filters?: ReactNode;\n actions?: ReactNode;\n onRefresh?: () => void;\n isLoading?: boolean;\n styles?: Styles;\n searchStyles?: Styles;\n}\n\nexport function ItemTableToolbar({\n isSearchable,\n filters,\n actions,\n onRefresh,\n isLoading,\n styles,\n searchStyles,\n}: ItemTableToolbarProps) {\n const { t } = useI18n();\n\n return (\n <ToolbarElement styles={styles} role=\"toolbar\">\n <div data-element=\"Start\">\n {isSearchable ? <ItemTableSearch styles={searchStyles} /> : null}\n {filters}\n </div>\n <div data-element=\"End\">\n {actions}\n {onRefresh ? (\n <Button\n qa=\"ItemTableRefreshButton\"\n size=\"small\"\n icon={<ReloadIcon />}\n isLoading={isLoading}\n aria-label={t('itemTable.refresh', 'Refresh')}\n onPress={onRefresh}\n />\n ) : null}\n </div>\n </ToolbarElement>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ItemTableToolbar.js","names":["tasty","createContext","useContext","useI18n","ReloadIcon","Button","SearchInput","Key","Styles","ReactNode","CubeItemTableChromeState","searchValue","setSearchValue","value","searchPlaceholder","isLoading","onRefresh","selectedKeys","selectedRows","T","selectedCount","clearSelection","ChromeContext","ItemTableChromeProvider","Provider","useItemTableChrome","component","context","Error","ToolbarElement","qa","as","styles","gridRow","display","flow","gap","placeItems","placeContent","padding","border","Start","$","width","End","SearchElement","ItemTableSearch","props","_c","t","t0","t1","t2","placeholder","t3","ItemTableToolbarProps","isSearchable","filters","actions","searchStyles","ItemTableToolbar","t4","t5","_c"],"sources":["../../../../src/components/data/ItemTable/ItemTableToolbar.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport { createContext, useContext } from 'react';\n\nimport { useI18n } from '../../../i18n/useI18n';\nimport { ReloadIcon } from '../../../icons/ReloadIcon';\nimport { Button } from '../../actions/Button/Button';\nimport { SearchInput } from '../../fields/SearchInput/SearchInput';\n\nimport type { Key } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type { ReactNode } from 'react';\n\n/**\n * Lets `ItemTable.Search` (and future chrome pieces) read the table's state\n * without prop drilling, so a consumer can rebuild the toolbar from parts and\n * still have exactly one owner of the search term.\n */\nexport interface CubeItemTableChromeState<T = any> {\n searchValue: string;\n setSearchValue: (value: string) => void;\n searchPlaceholder?: string;\n isLoading: boolean;\n onRefresh?: () => void;\n /** `'all'` is the sentinel, so `selectedCount` is what the UI should show. */\n selectedKeys: Key[] | 'all';\n selectedRows: T[];\n selectedCount: number;\n clearSelection: () => void;\n}\n\nconst ChromeContext = createContext<CubeItemTableChromeState | null>(null);\n\nexport const ItemTableChromeProvider = ChromeContext.Provider;\n\nexport function useItemTableChrome(component: string) {\n const context = useContext(ChromeContext);\n\n if (!context) {\n throw new Error(\n `${component} must be rendered inside an ItemTable — it reads the table's search state from context.`,\n );\n }\n\n return context;\n}\n\nconst ToolbarElement = tasty({\n qa: 'ItemTableToolbar',\n as: 'div',\n styles: {\n gridRow: 1,\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n placeContent: 'space-between',\n padding: '1x',\n border: '1bw #border bottom',\n\n // Left group: search, then filters.\n Start: {\n $: '>',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n width: 'min 0',\n },\n // Right group: arbitrary consumer actions, then refresh.\n End: {\n $: '>',\n display: 'flex',\n flow: 'row',\n gap: '1x',\n placeItems: 'center',\n },\n },\n});\n\nconst SearchElement = tasty(SearchInput, {\n qa: 'ItemTableSearchInput',\n styles: { width: 'max 37.5x' },\n});\n\n/** The table's search input, bound to the table's own state. */\nexport function ItemTableSearch(props: {\n placeholder?: string;\n styles?: Styles;\n qa?: string;\n}) {\n const { searchValue, setSearchValue, searchPlaceholder } =\n useItemTableChrome('ItemTable.Search');\n const { t } = useI18n();\n\n return (\n <SearchElement\n isBare\n qa={props.qa}\n size=\"small\"\n isClearable\n aria-label={t('itemTable.search', 'Search')}\n placeholder={\n props.placeholder ??\n searchPlaceholder ??\n t('itemTable.searchPlaceholder', 'Search...')\n }\n value={searchValue}\n styles={props.styles}\n onChange={setSearchValue}\n />\n );\n}\n\nexport interface ItemTableToolbarProps {\n isSearchable?: boolean;\n filters?: ReactNode;\n actions?: ReactNode;\n onRefresh?: () => void;\n isLoading?: boolean;\n styles?: Styles;\n searchStyles?: Styles;\n}\n\nexport function ItemTableToolbar({\n isSearchable,\n filters,\n actions,\n onRefresh,\n isLoading,\n styles,\n searchStyles,\n}: ItemTableToolbarProps) {\n const { t } = useI18n();\n\n return (\n <ToolbarElement styles={styles} role=\"toolbar\">\n <div data-element=\"Start\">\n {isSearchable ? <ItemTableSearch styles={searchStyles} /> : null}\n {filters}\n </div>\n <div data-element=\"End\">\n {actions}\n {onRefresh ? (\n <Button\n qa=\"ItemTableRefreshButton\"\n size=\"small\"\n icon={<ReloadIcon />}\n isLoading={isLoading}\n aria-label={t('itemTable.refresh', 'Refresh')}\n onPress={onRefresh}\n />\n ) : null}\n </div>\n </ToolbarElement>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.0 | Cube Dev Team */
2
2
  //#region src/components/data/ItemTable/item-table-sections.ts
3
3
  /** Stable partition after sorting preserves each section's own sort order. */
4
4
  function buildItemTableSections(data, sortedRows, sections, getSectionKey, getRowKey) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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 +1 @@
1
- {"version":3,"file":"ColumnResizer.js","names":["useRef","useMove","useEvent","mergeProps","CubeResolvedColumn","ColumnResizerProps","column","T","label","onResize","columnKey","width","onResizeEnd","ColumnResizer","props","$","_c","startWidthRef","widthRef","t0","maxWidth","minWidth","min","max","Math","clamp","t1","key","onMoveStart","current","onMove","event","step","pointerType","deltaX","onMoveEnd","moveProps","t2","onClick","event_0","stopPropagation","onKeyDown","event_1","preventDefault","handlerProps","t3","undefined","t4","t5","Symbol","for","t6","_c","mergeProps"],"sources":["../../../../src/components/data/TableBase/ColumnResizer.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport { useMove } from 'react-aria';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { mergeProps } from '../../../utils/react';\n\nimport type { CubeResolvedColumn } from './types';\n\nexport interface ColumnResizerProps<T> {\n column: CubeResolvedColumn<T>;\n label: string;\n /** Live during the drag, so the column follows the pointer. */\n onResize: (columnKey: string, width: number) => void;\n /** Once, when the drag or key press finishes. For persistence and callbacks. */\n onResizeEnd: (columnKey: string) => void;\n}\n\n/**\n * The grab handle on a column's trailing edge.\n *\n * `useMove` rather than raw pointer events: it normalises pointer, touch and\n * **keyboard** into one stream, so arrow keys resize without any extra work —\n * an affordance ag-grid never gave Cloud. The same hook drives `ResizablePanel`,\n * so the interaction model matches.\n */\nexport function ColumnResizer<T>(props: ColumnResizerProps<T>) {\n const { column, label, onResize, onResizeEnd } = props;\n\n // The width the drag started from. Deltas are relative to it, so a slow drag\n // does not accumulate rounding the way summing per-move widths would.\n const startWidthRef = useRef(0);\n const widthRef = useRef(0);\n\n const clamp = useEvent((width: number) => {\n const min = column.minWidth;\n const max = column.maxWidth;\n\n return Math.max(min, max == null ? width : Math.min(width, max));\n });\n\n const { moveProps } = useMove({\n onMoveStart() {\n startWidthRef.current = column.width ?? column.minWidth;\n widthRef.current = startWidthRef.current;\n },\n onMove(event) {\n // `pointer` moves carry deltas in px; keyboard moves carry ±1 per press,\n // which would be an imperceptible step, so they are scaled to a grid unit.\n const step = event.pointerType === 'keyboard' ? 8 : 1;\n\n widthRef.current = clamp(widthRef.current + event.deltaX * step);\n onResize(column.key, widthRef.current);\n },\n onMoveEnd() {\n onResizeEnd(column.key);\n },\n });\n\n // `mergeProps`, not spread-then-override: `useMove` implements the keyboard\n // half of the interaction through its own `onKeyDown`, and a plain `onKeyDown`\n // prop after the spread would silently replace it — leaving the handle\n // draggable but not operable from the keyboard.\n const handlerProps = mergeProps(moveProps, {\n // The header cell sorts on click; a press on the handle is not a sort.\n onClick(event: { stopPropagation: () => void }) {\n event.stopPropagation();\n },\n onKeyDown(event: {\n key: string;\n preventDefault: () => void;\n stopPropagation: () => void;\n }) {\n // `useMove` claims the arrows. Home/End are ours, and they are the\n // fastest way to reach the extremes.\n if (event.key !== 'Home' && event.key !== 'End') {\n event.stopPropagation();\n\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n onResize(\n column.key,\n event.key === 'Home' ? column.minWidth : (column.maxWidth ?? 1000),\n );\n onResizeEnd(column.key);\n },\n });\n\n return (\n <div\n {...handlerProps}\n data-element=\"Resizer\"\n // A separator is the role a resize handle takes when it splits two\n // regions, and it is what makes the value readable to a screen reader.\n role=\"separator\"\n tabIndex={0}\n aria-label={label}\n aria-orientation=\"vertical\"\n aria-valuenow={column.width ?? undefined}\n aria-valuemin={column.minWidth}\n aria-valuemax={column.maxWidth ?? undefined}\n >\n <div data-element=\"ResizerLine\" />\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnResizer.js","names":["useRef","useMove","useEvent","mergeProps","CubeResolvedColumn","ColumnResizerProps","column","T","label","onResize","columnKey","width","onResizeEnd","ColumnResizer","props","$","_c","startWidthRef","widthRef","t0","maxWidth","minWidth","min","max","Math","clamp","t1","key","onMoveStart","current","onMove","event","step","pointerType","deltaX","onMoveEnd","moveProps","t2","onClick","event_0","stopPropagation","onKeyDown","event_1","preventDefault","handlerProps","t3","undefined","t4","t5","Symbol","for","t6","_c","mergeProps"],"sources":["../../../../src/components/data/TableBase/ColumnResizer.tsx"],"sourcesContent":["import { useRef } from 'react';\nimport { useMove } from 'react-aria';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { mergeProps } from '../../../utils/react/mergeProps';\n\nimport type { CubeResolvedColumn } from './types';\n\nexport interface ColumnResizerProps<T> {\n column: CubeResolvedColumn<T>;\n label: string;\n /** Live during the drag, so the column follows the pointer. */\n onResize: (columnKey: string, width: number) => void;\n /** Once, when the drag or key press finishes. For persistence and callbacks. */\n onResizeEnd: (columnKey: string) => void;\n}\n\n/**\n * The grab handle on a column's trailing edge.\n *\n * `useMove` rather than raw pointer events: it normalises pointer, touch and\n * **keyboard** into one stream, so arrow keys resize without any extra work —\n * an affordance ag-grid never gave Cloud. The same hook drives `ResizablePanel`,\n * so the interaction model matches.\n */\nexport function ColumnResizer<T>(props: ColumnResizerProps<T>) {\n const { column, label, onResize, onResizeEnd } = props;\n\n // The width the drag started from. Deltas are relative to it, so a slow drag\n // does not accumulate rounding the way summing per-move widths would.\n const startWidthRef = useRef(0);\n const widthRef = useRef(0);\n\n const clamp = useEvent((width: number) => {\n const min = column.minWidth;\n const max = column.maxWidth;\n\n return Math.max(min, max == null ? width : Math.min(width, max));\n });\n\n const { moveProps } = useMove({\n onMoveStart() {\n startWidthRef.current = column.width ?? column.minWidth;\n widthRef.current = startWidthRef.current;\n },\n onMove(event) {\n // `pointer` moves carry deltas in px; keyboard moves carry ±1 per press,\n // which would be an imperceptible step, so they are scaled to a grid unit.\n const step = event.pointerType === 'keyboard' ? 8 : 1;\n\n widthRef.current = clamp(widthRef.current + event.deltaX * step);\n onResize(column.key, widthRef.current);\n },\n onMoveEnd() {\n onResizeEnd(column.key);\n },\n });\n\n // `mergeProps`, not spread-then-override: `useMove` implements the keyboard\n // half of the interaction through its own `onKeyDown`, and a plain `onKeyDown`\n // prop after the spread would silently replace it — leaving the handle\n // draggable but not operable from the keyboard.\n const handlerProps = mergeProps(moveProps, {\n // The header cell sorts on click; a press on the handle is not a sort.\n onClick(event: { stopPropagation: () => void }) {\n event.stopPropagation();\n },\n onKeyDown(event: {\n key: string;\n preventDefault: () => void;\n stopPropagation: () => void;\n }) {\n // `useMove` claims the arrows. Home/End are ours, and they are the\n // fastest way to reach the extremes.\n if (event.key !== 'Home' && event.key !== 'End') {\n event.stopPropagation();\n\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n onResize(\n column.key,\n event.key === 'Home' ? column.minWidth : (column.maxWidth ?? 1000),\n );\n onResizeEnd(column.key);\n },\n });\n\n return (\n <div\n {...handlerProps}\n data-element=\"Resizer\"\n // A separator is the role a resize handle takes when it splits two\n // regions, and it is what makes the value readable to a screen reader.\n role=\"separator\"\n tabIndex={0}\n aria-label={label}\n aria-orientation=\"vertical\"\n aria-valuenow={column.width ?? undefined}\n aria-valuemin={column.minWidth}\n aria-valuemax={column.maxWidth ?? undefined}\n >\n <div data-element=\"ResizerLine\" />\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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 +1 @@
1
- {"version":3,"file":"TableHeaderCell.js","names":["useEffect","useRef","useState","useDraggableItem","useDropIndicator","mergeProps","ReactNode","DraggableCollectionState","DroppableCollectionState","NO_DRAG_SELECTOR","TableHeaderCellProps","columnKey","cellProps","Record","hasAction","isLastDraggable","dragState","dropState","children","HeaderCell","props","$","_c","extra","t0","DraggableHeaderCell","key","dragProps","isDragging","t1","onDragStartCapture","_temp","t2","undefined","t3","t4","t5","t6","t7","event","target","HTMLElement","closest","preventDefault","stopPropagation","TableHeaderCell","ColumnDropIndicatorProps","dropPosition","ColumnDropIndicator","ref","type","dropIndicatorProps","isHidden","isDropTarget","forceUpdate","row","current","ResizeObserver","observer","_temp2","observe","disconnect","Symbol","for","n","_c","mergeProps"],"sources":["../../../../src/components/data/TableBase/TableHeaderCell.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useDraggableItem, useDropIndicator } from 'react-aria';\n\nimport { mergeProps } from '../../../utils/react';\n\nimport type { ReactNode } from 'react';\nimport type {\n DraggableCollectionState,\n DroppableCollectionState,\n} from 'react-stately';\n\n/**\n * Controls inside the header that own their own press, and must never start a\n * column drag.\n *\n * Drag-source resolution walks the DOM tree, not the React event path, so\n * `Item`'s `Actions` slot calling `stopPropagation` does nothing here — the\n * `<th>` is still the drag source as far as the browser is concerned. Only\n * `preventDefault` on `dragstart` stops it, which is what the capture handler\n * below does.\n */\nconst NO_DRAG_SELECTOR =\n '[data-element=\"Resizer\"], [data-element=\"Actions\"], a, button, input, select, textarea, [role=\"button\"], [role=\"menuitem\"]';\n\nexport interface TableHeaderCellProps {\n columnKey: string;\n /** Everything the renderer already computed: mods, ARIA, handlers, styles. */\n cellProps: Record<string, any>;\n /** Whether the header itself responds to Enter — i.e. it sorts. */\n hasAction: boolean;\n isLastDraggable: boolean;\n dragState?: DraggableCollectionState;\n dropState?: DroppableCollectionState;\n children: ReactNode;\n}\n\nfunction HeaderCell(\n props: TableHeaderCellProps & { extra?: Record<string, any> },\n) {\n const { cellProps, extra, children } = props;\n\n return (\n <th {...cellProps} {...extra}>\n {children}\n </th>\n );\n}\n\n/**\n * A header cell inside a collection that accepts drags.\n *\n * Split from the plain one so the drag hooks can be called unconditionally —\n * they are hooks, and whether a table reorders its columns is a prop.\n */\nfunction DraggableHeaderCell(props: TableHeaderCellProps) {\n const { columnKey, hasAction, isLastDraggable, dragState, dropState } = props;\n\n const { dragProps } = useDraggableItem(\n // `hasAction` re-gates React Aria's Enter/Space capture behind Alt, so plain\n // Enter still reaches the header's own sort handler instead of starting a\n // keyboard drag session.\n { key: columnKey, hasAction },\n dragState as DraggableCollectionState,\n );\n const isDragging = dragState!.isDragging(columnKey);\n\n return (\n <HeaderCell\n {...props}\n extra={{\n // `dragProps` last for `draggable`, which is a value rather than a\n // handler — `mergeProps` chains handlers but takes the later value. The\n // sort `onClick` survives: `useDraggableItem` only deletes its own.\n ...mergeProps(props.cellProps, dragProps, {\n // Capture, so this runs before React Aria's own `onDragStart` on the\n // same node and can cancel it.\n onDragStartCapture: (event: any) => {\n if ((event.target as HTMLElement)?.closest?.(NO_DRAG_SELECTOR)) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n }),\n 'data-draggable': '',\n 'data-dragging': isDragging ? '' : undefined,\n }}\n >\n <ColumnDropIndicator\n columnKey={columnKey}\n dropPosition=\"before\"\n dropState={dropState as DroppableCollectionState}\n />\n {props.children}\n {isLastDraggable ? (\n <ColumnDropIndicator\n columnKey={columnKey}\n dropPosition=\"after\"\n dropState={dropState as DroppableCollectionState}\n />\n ) : null}\n </HeaderCell>\n );\n}\n\nexport function TableHeaderCell(props: TableHeaderCellProps) {\n return props.dragState && props.dropState ? (\n <DraggableHeaderCell {...props} />\n ) : (\n <HeaderCell {...props} />\n );\n}\n\ninterface ColumnDropIndicatorProps {\n columnKey: string;\n dropPosition: 'before' | 'after';\n dropState: DroppableCollectionState;\n}\n\n/**\n * The line showing where a dragged column would land.\n *\n * Lives INSIDE the `<th>`, absolutely positioned on one of its edges — a `<tr>`\n * may only contain `<th>`/`<td>`, so there is nowhere between two header cells\n * to put it. Being absolute also means mounting one cannot shift the layout,\n * which is the bug class the row indicator had to be careful about.\n *\n * `useDropIndicator` reports `isHidden` unless this is the active target, so a\n * table merely capable of reordering keeps its exact DOM until a drag starts.\n */\nfunction ColumnDropIndicator({\n columnKey,\n dropPosition,\n dropState,\n}: ColumnDropIndicatorProps) {\n const ref = useRef<HTMLDivElement>(null);\n const { dropIndicatorProps, isHidden, isDropTarget } = useDropIndicator(\n { target: { type: 'item', key: columnKey, dropPosition } },\n dropState,\n ref,\n );\n\n /**\n * Re-register the drop targets when the header's geometry changes.\n *\n * React Aria's `ListDropTargetDelegate` measures every `[data-key]` at the\n * moment a drag starts. A column resized mid-drag — or a scrollbar appearing —\n * leaves those rects stale, and the drop lands in the wrong place. Same trick\n * `TabDropIndicator` uses.\n */\n const [, forceUpdate] = useState(0);\n\n useEffect(() => {\n const row = ref.current?.closest('[data-element=\"HeadRow\"]');\n\n if (!row || typeof ResizeObserver === 'undefined') return;\n\n const observer = new ResizeObserver(() => forceUpdate((n) => n + 1));\n\n observer.observe(row);\n\n return () => observer.disconnect();\n }, []);\n\n if (isHidden) return null;\n\n return (\n <div\n {...dropIndicatorProps}\n ref={ref}\n data-element=\"ColumnDropIndicator\"\n data-position={dropPosition}\n data-drop-target={isDropTarget ? '' : undefined}\n />\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"TableHeaderCell.js","names":["useEffect","useRef","useState","useDraggableItem","useDropIndicator","mergeProps","ReactNode","DraggableCollectionState","DroppableCollectionState","NO_DRAG_SELECTOR","TableHeaderCellProps","columnKey","cellProps","Record","hasAction","isLastDraggable","dragState","dropState","children","HeaderCell","props","$","_c","extra","t0","DraggableHeaderCell","key","dragProps","isDragging","t1","onDragStartCapture","_temp","t2","undefined","t3","t4","t5","t6","t7","event","target","HTMLElement","closest","preventDefault","stopPropagation","TableHeaderCell","ColumnDropIndicatorProps","dropPosition","ColumnDropIndicator","ref","type","dropIndicatorProps","isHidden","isDropTarget","forceUpdate","row","current","ResizeObserver","observer","_temp2","observe","disconnect","Symbol","for","n","_c","mergeProps"],"sources":["../../../../src/components/data/TableBase/TableHeaderCell.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useDraggableItem, useDropIndicator } from 'react-aria';\n\nimport { mergeProps } from '../../../utils/react/mergeProps';\n\nimport type { ReactNode } from 'react';\nimport type {\n DraggableCollectionState,\n DroppableCollectionState,\n} from 'react-stately';\n\n/**\n * Controls inside the header that own their own press, and must never start a\n * column drag.\n *\n * Drag-source resolution walks the DOM tree, not the React event path, so\n * `Item`'s `Actions` slot calling `stopPropagation` does nothing here — the\n * `<th>` is still the drag source as far as the browser is concerned. Only\n * `preventDefault` on `dragstart` stops it, which is what the capture handler\n * below does.\n */\nconst NO_DRAG_SELECTOR =\n '[data-element=\"Resizer\"], [data-element=\"Actions\"], a, button, input, select, textarea, [role=\"button\"], [role=\"menuitem\"]';\n\nexport interface TableHeaderCellProps {\n columnKey: string;\n /** Everything the renderer already computed: mods, ARIA, handlers, styles. */\n cellProps: Record<string, any>;\n /** Whether the header itself responds to Enter — i.e. it sorts. */\n hasAction: boolean;\n isLastDraggable: boolean;\n dragState?: DraggableCollectionState;\n dropState?: DroppableCollectionState;\n children: ReactNode;\n}\n\nfunction HeaderCell(\n props: TableHeaderCellProps & { extra?: Record<string, any> },\n) {\n const { cellProps, extra, children } = props;\n\n return (\n <th {...cellProps} {...extra}>\n {children}\n </th>\n );\n}\n\n/**\n * A header cell inside a collection that accepts drags.\n *\n * Split from the plain one so the drag hooks can be called unconditionally —\n * they are hooks, and whether a table reorders its columns is a prop.\n */\nfunction DraggableHeaderCell(props: TableHeaderCellProps) {\n const { columnKey, hasAction, isLastDraggable, dragState, dropState } = props;\n\n const { dragProps } = useDraggableItem(\n // `hasAction` re-gates React Aria's Enter/Space capture behind Alt, so plain\n // Enter still reaches the header's own sort handler instead of starting a\n // keyboard drag session.\n { key: columnKey, hasAction },\n dragState as DraggableCollectionState,\n );\n const isDragging = dragState!.isDragging(columnKey);\n\n return (\n <HeaderCell\n {...props}\n extra={{\n // `dragProps` last for `draggable`, which is a value rather than a\n // handler — `mergeProps` chains handlers but takes the later value. The\n // sort `onClick` survives: `useDraggableItem` only deletes its own.\n ...mergeProps(props.cellProps, dragProps, {\n // Capture, so this runs before React Aria's own `onDragStart` on the\n // same node and can cancel it.\n onDragStartCapture: (event: any) => {\n if ((event.target as HTMLElement)?.closest?.(NO_DRAG_SELECTOR)) {\n event.preventDefault();\n event.stopPropagation();\n }\n },\n }),\n 'data-draggable': '',\n 'data-dragging': isDragging ? '' : undefined,\n }}\n >\n <ColumnDropIndicator\n columnKey={columnKey}\n dropPosition=\"before\"\n dropState={dropState as DroppableCollectionState}\n />\n {props.children}\n {isLastDraggable ? (\n <ColumnDropIndicator\n columnKey={columnKey}\n dropPosition=\"after\"\n dropState={dropState as DroppableCollectionState}\n />\n ) : null}\n </HeaderCell>\n );\n}\n\nexport function TableHeaderCell(props: TableHeaderCellProps) {\n return props.dragState && props.dropState ? (\n <DraggableHeaderCell {...props} />\n ) : (\n <HeaderCell {...props} />\n );\n}\n\ninterface ColumnDropIndicatorProps {\n columnKey: string;\n dropPosition: 'before' | 'after';\n dropState: DroppableCollectionState;\n}\n\n/**\n * The line showing where a dragged column would land.\n *\n * Lives INSIDE the `<th>`, absolutely positioned on one of its edges — a `<tr>`\n * may only contain `<th>`/`<td>`, so there is nowhere between two header cells\n * to put it. Being absolute also means mounting one cannot shift the layout,\n * which is the bug class the row indicator had to be careful about.\n *\n * `useDropIndicator` reports `isHidden` unless this is the active target, so a\n * table merely capable of reordering keeps its exact DOM until a drag starts.\n */\nfunction ColumnDropIndicator({\n columnKey,\n dropPosition,\n dropState,\n}: ColumnDropIndicatorProps) {\n const ref = useRef<HTMLDivElement>(null);\n const { dropIndicatorProps, isHidden, isDropTarget } = useDropIndicator(\n { target: { type: 'item', key: columnKey, dropPosition } },\n dropState,\n ref,\n );\n\n /**\n * Re-register the drop targets when the header's geometry changes.\n *\n * React Aria's `ListDropTargetDelegate` measures every `[data-key]` at the\n * moment a drag starts. A column resized mid-drag — or a scrollbar appearing —\n * leaves those rects stale, and the drop lands in the wrong place. Same trick\n * `TabDropIndicator` uses.\n */\n const [, forceUpdate] = useState(0);\n\n useEffect(() => {\n const row = ref.current?.closest('[data-element=\"HeadRow\"]');\n\n if (!row || typeof ResizeObserver === 'undefined') return;\n\n const observer = new ResizeObserver(() => forceUpdate((n) => n + 1));\n\n observer.observe(row);\n\n return () => observer.disconnect();\n }, []);\n\n if (isHidden) return null;\n\n return (\n <div\n {...dropIndicatorProps}\n ref={ref}\n data-element=\"ColumnDropIndicator\"\n data-position={dropPosition}\n data-drop-target={isDropTarget ? '' : undefined}\n />\n );\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.207.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.209.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";