@cube-dev/ui-kit 0.182.0 → 0.183.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 (1124) hide show
  1. package/dist/CHANGELOG.md +10 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +48 -31
  3. package/dist/_internal/hooks/use-debounced-value.js.map +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +22 -7
  5. package/dist/_internal/hooks/use-deprecation-warning.js.map +1 -1
  6. package/dist/_internal/hooks/use-event.js +1 -1
  7. package/dist/_internal/hooks/use-event.js.map +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  9. package/dist/_internal/hooks/use-is-first-render.js.map +1 -1
  10. package/dist/_internal/hooks/use-sync-ref.js +12 -4
  11. package/dist/_internal/hooks/use-sync-ref.js.map +1 -1
  12. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  13. package/dist/_internal/hooks/use-timer/timer.js.map +1 -1
  14. package/dist/_internal/hooks/use-timer/use-timer.js +90 -20
  15. package/dist/_internal/hooks/use-timer/use-timer.js.map +1 -1
  16. package/dist/_internal/hooks/use-warn.js +4 -4
  17. package/dist/_internal/hooks/use-warn.js.map +1 -1
  18. package/dist/components/Block.js +29 -7
  19. package/dist/components/Block.js.map +1 -1
  20. package/dist/components/CollectionItem.js +1 -1
  21. package/dist/components/CollectionItem.js.map +1 -1
  22. package/dist/components/GlobalStyles.js +33 -9
  23. package/dist/components/GlobalStyles.js.map +1 -1
  24. package/dist/components/GridProvider.js +4 -4
  25. package/dist/components/GridProvider.js.map +1 -1
  26. package/dist/components/HiddenInput.js +1 -1
  27. package/dist/components/HiddenInput.js.map +1 -1
  28. package/dist/components/Root.js +137 -42
  29. package/dist/components/Root.js.map +1 -1
  30. package/dist/components/actions/Action/Action.js +20 -8
  31. package/dist/components/actions/Action/Action.js.map +1 -1
  32. package/dist/components/actions/Banner/Banner.js +91 -22
  33. package/dist/components/actions/Banner/Banner.js.map +1 -1
  34. package/dist/components/actions/Button/Button.js +5 -5
  35. package/dist/components/actions/Button/Button.js.map +1 -1
  36. package/dist/components/actions/ButtonGroup/ButtonGroup.js +15 -5
  37. package/dist/components/actions/ButtonGroup/ButtonGroup.js.map +1 -1
  38. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  39. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  40. package/dist/components/actions/ButtonSplit/context.js +1 -1
  41. package/dist/components/actions/ButtonSplit/context.js.map +1 -1
  42. package/dist/components/actions/CommandMenu/CommandMenu.js +76 -76
  43. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  44. package/dist/components/actions/CommandMenu/styled.js +1 -1
  45. package/dist/components/actions/CommandMenu/styled.js.map +1 -1
  46. package/dist/components/actions/ItemAction/ItemAction.js +205 -68
  47. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  48. package/dist/components/actions/ItemActionContext.js +26 -7
  49. package/dist/components/actions/ItemActionContext.js.map +1 -1
  50. package/dist/components/actions/ItemActionsWrapper.js +215 -84
  51. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  52. package/dist/components/actions/ItemButton/ItemButton.js +2 -2
  53. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  54. package/dist/components/actions/Link/Link.js +16 -7
  55. package/dist/components/actions/Link/Link.js.map +1 -1
  56. package/dist/components/actions/Menu/Menu.js +127 -72
  57. package/dist/components/actions/Menu/Menu.js.map +1 -1
  58. package/dist/components/actions/Menu/MenuItem.js +116 -43
  59. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  60. package/dist/components/actions/Menu/MenuSection.js +85 -30
  61. package/dist/components/actions/Menu/MenuSection.js.map +1 -1
  62. package/dist/components/actions/Menu/MenuTrigger.js +316 -112
  63. package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
  64. package/dist/components/actions/Menu/SubMenuTrigger.js +6 -6
  65. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  66. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  67. package/dist/components/actions/Menu/SubmenuTriggerContext.js.map +1 -1
  68. package/dist/components/actions/Menu/context.js +1 -1
  69. package/dist/components/actions/Menu/context.js.map +1 -1
  70. package/dist/components/actions/Menu/styled.js +1 -1
  71. package/dist/components/actions/Menu/styled.js.map +1 -1
  72. package/dist/components/actions/actions-run.js +1 -1
  73. package/dist/components/actions/actions-run.js.map +1 -1
  74. package/dist/components/actions/index.js +1 -1
  75. package/dist/components/actions/index.js.map +1 -1
  76. package/dist/components/actions/use-action.js +3 -3
  77. package/dist/components/actions/use-action.js.map +1 -1
  78. package/dist/components/actions/use-anchored-menu.js +6 -6
  79. package/dist/components/actions/use-anchored-menu.js.map +1 -1
  80. package/dist/components/actions/use-context-menu.js +12 -12
  81. package/dist/components/actions/use-context-menu.js.map +1 -1
  82. package/dist/components/content/ActiveZone/ActiveZone.js +84 -18
  83. package/dist/components/content/ActiveZone/ActiveZone.js.map +1 -1
  84. package/dist/components/content/Alert/Alert.js +18 -7
  85. package/dist/components/content/Alert/Alert.js.map +1 -1
  86. package/dist/components/content/Alert/use-alert.js +53 -15
  87. package/dist/components/content/Alert/use-alert.js.map +1 -1
  88. package/dist/components/content/Avatar/Avatar.js +51 -13
  89. package/dist/components/content/Avatar/Avatar.js.map +1 -1
  90. package/dist/components/content/Badge/Badge.js +43 -10
  91. package/dist/components/content/Badge/Badge.js.map +1 -1
  92. package/dist/components/content/Card/Card.js +29 -7
  93. package/dist/components/content/Card/Card.js.map +1 -1
  94. package/dist/components/content/Content.js +29 -7
  95. package/dist/components/content/Content.js.map +1 -1
  96. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +2 -2
  97. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  98. package/dist/components/content/CopySnippet/CopySnippet.js +220 -60
  99. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  100. package/dist/components/content/Disclosure/Disclosure.js +453 -194
  101. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  102. package/dist/components/content/Divider.js +52 -14
  103. package/dist/components/content/Divider.js.map +1 -1
  104. package/dist/components/content/Footer.js +29 -7
  105. package/dist/components/content/Footer.js.map +1 -1
  106. package/dist/components/content/Header.js +29 -7
  107. package/dist/components/content/Header.js.map +1 -1
  108. package/dist/components/content/HotKeys/HotKeys.js +55 -27
  109. package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
  110. package/dist/components/content/InfoBadge/InfoBadge.js +8 -8
  111. package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
  112. package/dist/components/content/InlineInput/InlineInput.js +429 -188
  113. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  114. package/dist/components/content/Item/Item.js +408 -151
  115. package/dist/components/content/Item/Item.js.map +1 -1
  116. package/dist/components/content/ItemBadge/ItemBadge.js +173 -59
  117. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  118. package/dist/components/content/ItemCard/ItemCard.js +34 -9
  119. package/dist/components/content/ItemCard/ItemCard.js.map +1 -1
  120. package/dist/components/content/Layout/GridLayout.js +38 -10
  121. package/dist/components/content/Layout/GridLayout.js.map +1 -1
  122. package/dist/components/content/Layout/Layout.js +30 -13
  123. package/dist/components/content/Layout/Layout.js.map +1 -1
  124. package/dist/components/content/Layout/LayoutBlock.js +33 -8
  125. package/dist/components/content/Layout/LayoutBlock.js.map +1 -1
  126. package/dist/components/content/Layout/LayoutCenter.js +48 -11
  127. package/dist/components/content/Layout/LayoutCenter.js.map +1 -1
  128. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  129. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  130. package/dist/components/content/Layout/LayoutContent.js +1 -1
  131. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  132. package/dist/components/content/Layout/LayoutContext.js +30 -21
  133. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  134. package/dist/components/content/Layout/LayoutFlex.js +33 -8
  135. package/dist/components/content/Layout/LayoutFlex.js.map +1 -1
  136. package/dist/components/content/Layout/LayoutFooter.js +53 -14
  137. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  138. package/dist/components/content/Layout/LayoutGrid.js +48 -11
  139. package/dist/components/content/Layout/LayoutGrid.js.map +1 -1
  140. package/dist/components/content/Layout/LayoutHeader.js +211 -57
  141. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  142. package/dist/components/content/Layout/LayoutPane.js +60 -14
  143. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  144. package/dist/components/content/Layout/LayoutPanel.js +59 -17
  145. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  146. package/dist/components/content/Layout/LayoutPanelHeader.js +89 -27
  147. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  148. package/dist/components/content/Layout/LayoutToolbar.js +33 -8
  149. package/dist/components/content/Layout/LayoutToolbar.js.map +1 -1
  150. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +206 -119
  151. package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
  152. package/dist/components/content/Layout/index.js +1 -1
  153. package/dist/components/content/Layout/index.js.map +1 -1
  154. package/dist/components/content/Layout/utils.js +1 -1
  155. package/dist/components/content/Layout/utils.js.map +1 -1
  156. package/dist/components/content/Paragraph.js +25 -9
  157. package/dist/components/content/Paragraph.js.map +1 -1
  158. package/dist/components/content/Placeholder/Placeholder.js +52 -14
  159. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  160. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  161. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  162. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  163. package/dist/components/content/PrismCode/prismSetup.js.map +1 -1
  164. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +52 -17
  165. package/dist/components/content/PrismDiffCode/PrismDiffCode.js.map +1 -1
  166. package/dist/components/content/Result/Result.js +117 -38
  167. package/dist/components/content/Result/Result.js.map +1 -1
  168. package/dist/components/content/Skeleton/Skeleton.js +26 -17
  169. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  170. package/dist/components/content/Tag/Tag.js +68 -13
  171. package/dist/components/content/Tag/Tag.js.map +1 -1
  172. package/dist/components/content/Text.d.ts +14 -14
  173. package/dist/components/content/Text.js +61 -14
  174. package/dist/components/content/Text.js.map +1 -1
  175. package/dist/components/content/TextItem/TextItem.js +37 -16
  176. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  177. package/dist/components/content/Title.js +98 -23
  178. package/dist/components/content/Title.js.map +1 -1
  179. package/dist/components/content/Tree/Tree.js +32 -32
  180. package/dist/components/content/Tree/Tree.js.map +1 -1
  181. package/dist/components/content/Tree/TreeNode.js +10 -10
  182. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  183. package/dist/components/content/Tree/styled.js +1 -1
  184. package/dist/components/content/Tree/styled.js.map +1 -1
  185. package/dist/components/content/Tree/tree-index.js +1 -1
  186. package/dist/components/content/Tree/tree-index.js.map +1 -1
  187. package/dist/components/content/Tree/use-checkbox-tree.js +123 -89
  188. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
  189. package/dist/components/content/Tree/use-load-data.js +52 -21
  190. package/dist/components/content/Tree/use-load-data.js.map +1 -1
  191. package/dist/components/content/highlightText.js +1 -1
  192. package/dist/components/content/highlightText.js.map +1 -1
  193. package/dist/components/content/use-auto-tooltip.js +1 -1
  194. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  195. package/dist/components/data/DataTable/DataTable.js +31 -31
  196. package/dist/components/data/DataTable/DataTable.js.map +1 -1
  197. package/dist/components/data/ItemTable/ItemTable.js +41 -41
  198. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  199. package/dist/components/data/ItemTable/ItemTableBulkBar.js +11 -11
  200. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
  201. package/dist/components/data/ItemTable/ItemTableDragPreview.js +41 -4
  202. package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -1
  203. package/dist/components/data/ItemTable/ItemTableFooter.js +67 -30
  204. package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -1
  205. package/dist/components/data/ItemTable/ItemTableToolbar.js +95 -28
  206. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  207. package/dist/components/data/TableBase/ColumnResizer.js +90 -41
  208. package/dist/components/data/TableBase/ColumnResizer.js.map +1 -1
  209. package/dist/components/data/TableBase/RowCollection.js +1 -1
  210. package/dist/components/data/TableBase/RowCollection.js.map +1 -1
  211. package/dist/components/data/TableBase/TableHeaderCell.js +154 -64
  212. package/dist/components/data/TableBase/TableHeaderCell.js.map +1 -1
  213. package/dist/components/data/TableBase/TableRow.js +211 -69
  214. package/dist/components/data/TableBase/TableRow.js.map +1 -1
  215. package/dist/components/data/TableBase/TableView.js +119 -80
  216. package/dist/components/data/TableBase/TableView.js.map +1 -1
  217. package/dist/components/data/TableBase/column-menu.js +1 -1
  218. package/dist/components/data/TableBase/column-menu.js.map +1 -1
  219. package/dist/components/data/TableBase/column-tint.js +1 -1
  220. package/dist/components/data/TableBase/column-tint.js.map +1 -1
  221. package/dist/components/data/TableBase/row-menu.js +1 -1
  222. package/dist/components/data/TableBase/row-menu.js.map +1 -1
  223. package/dist/components/data/TableBase/styled.js +1 -1
  224. package/dist/components/data/TableBase/styled.js.map +1 -1
  225. package/dist/components/data/TableBase/table-tree.js +1 -1
  226. package/dist/components/data/TableBase/table-tree.js.map +1 -1
  227. package/dist/components/data/TableBase/types.js +1 -1
  228. package/dist/components/data/TableBase/types.js.map +1 -1
  229. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  230. package/dist/components/data/TableBase/use-cell-selection.js.map +1 -1
  231. package/dist/components/data/TableBase/use-column-order.js +56 -12
  232. package/dist/components/data/TableBase/use-column-order.js.map +1 -1
  233. package/dist/components/data/TableBase/use-container-width.js +24 -10
  234. package/dist/components/data/TableBase/use-container-width.js.map +1 -1
  235. package/dist/components/data/TableBase/use-row-move-animation.js +68 -49
  236. package/dist/components/data/TableBase/use-row-move-animation.js.map +1 -1
  237. package/dist/components/data/TableBase/use-scrollability.js +32 -18
  238. package/dist/components/data/TableBase/use-scrollability.js.map +1 -1
  239. package/dist/components/data/TableBase/use-table-columns.js +130 -60
  240. package/dist/components/data/TableBase/use-table-columns.js.map +1 -1
  241. package/dist/components/data/TableBase/use-table-search.js +1 -1
  242. package/dist/components/data/TableBase/use-table-search.js.map +1 -1
  243. package/dist/components/data/TableBase/use-table-selection.js +39 -39
  244. package/dist/components/data/TableBase/use-table-selection.js.map +1 -1
  245. package/dist/components/data/TableBase/use-table-sort.js +132 -68
  246. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  247. package/dist/components/data/TableBase/use-table-sorts.js +168 -101
  248. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  249. package/dist/components/data/TableBase/use-table-storage.js +2 -2
  250. package/dist/components/data/TableBase/use-table-storage.js.map +1 -1
  251. package/dist/components/data/TableBase/use-table-tree-state.js +181 -86
  252. package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
  253. package/dist/components/fields/Checkbox/Checkbox.js +2 -2
  254. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  255. package/dist/components/fields/Checkbox/CheckboxGroup.js +101 -33
  256. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  257. package/dist/components/fields/Checkbox/context.js +1 -1
  258. package/dist/components/fields/Checkbox/context.js.map +1 -1
  259. package/dist/components/fields/ColorInput/ColorInput.js +329 -150
  260. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  261. package/dist/components/fields/ColorPicker/ColorPicker.js +16 -16
  262. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  263. package/dist/components/fields/ColorSwatch/ColorSwatch.js +52 -13
  264. package/dist/components/fields/ColorSwatch/ColorSwatch.js.map +1 -1
  265. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +90 -28
  266. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  267. package/dist/components/fields/ComboBox/ComboBox.js +216 -134
  268. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  269. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  270. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  271. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  272. package/dist/components/fields/CommandTextArea/caretPosition.js.map +1 -1
  273. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +88 -49
  274. package/dist/components/fields/CommandTextArea/useCaretAnchor.js.map +1 -1
  275. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  276. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  277. package/dist/components/fields/DatePicker/DateInputBase.js +129 -34
  278. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  279. package/dist/components/fields/DatePicker/DatePicker.js +194 -69
  280. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  281. package/dist/components/fields/DatePicker/DatePickerButton.js +39 -8
  282. package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
  283. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  284. package/dist/components/fields/DatePicker/DatePickerElement.js.map +1 -1
  285. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  286. package/dist/components/fields/DatePicker/DatePickerInput.js.map +1 -1
  287. package/dist/components/fields/DatePicker/DatePickerSegment.js +109 -29
  288. package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
  289. package/dist/components/fields/DatePicker/DateRangePicker.js +224 -88
  290. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  291. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +473 -180
  292. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  293. package/dist/components/fields/DatePicker/MonthPicker.js +15 -6
  294. package/dist/components/fields/DatePicker/MonthPicker.js.map +1 -1
  295. package/dist/components/fields/DatePicker/PeriodPicker.js +288 -91
  296. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  297. package/dist/components/fields/DatePicker/QuarterPicker.js +15 -6
  298. package/dist/components/fields/DatePicker/QuarterPicker.js.map +1 -1
  299. package/dist/components/fields/DatePicker/TimeInput.js +15 -7
  300. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  301. package/dist/components/fields/DatePicker/WeekPicker.js +15 -6
  302. package/dist/components/fields/DatePicker/WeekPicker.js.map +1 -1
  303. package/dist/components/fields/DatePicker/YearPicker.js +15 -6
  304. package/dist/components/fields/DatePicker/YearPicker.js.map +1 -1
  305. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  306. package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
  307. package/dist/components/fields/DatePicker/period.js +1 -1
  308. package/dist/components/fields/DatePicker/period.js.map +1 -1
  309. package/dist/components/fields/DatePicker/props.js +1 -1
  310. package/dist/components/fields/DatePicker/props.js.map +1 -1
  311. package/dist/components/fields/DatePicker/utils.js +15 -8
  312. package/dist/components/fields/DatePicker/utils.js.map +1 -1
  313. package/dist/components/fields/FileInput/FileInput.js +3 -3
  314. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  315. package/dist/components/fields/FilterListBox/FilterListBox.js +87 -87
  316. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  317. package/dist/components/fields/FilterPicker/FilterPicker.js +22 -22
  318. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  319. package/dist/components/fields/Input/Input.js +1 -1
  320. package/dist/components/fields/Input/Input.js.map +1 -1
  321. package/dist/components/fields/ListBox/DraggableListBox.js +23 -10
  322. package/dist/components/fields/ListBox/DraggableListBox.js.map +1 -1
  323. package/dist/components/fields/ListBox/ListBox.js +138 -53
  324. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  325. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +156 -37
  326. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  327. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  328. package/dist/components/fields/ListBoxPopover/listNavigation.js.map +1 -1
  329. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +61 -33
  330. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  331. package/dist/components/fields/NumberInput/NumberInput.js +123 -33
  332. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  333. package/dist/components/fields/NumberInput/StepButton.js +53 -15
  334. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  335. package/dist/components/fields/PasswordInput/PasswordInput.js +149 -45
  336. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  337. package/dist/components/fields/Picker/Picker.js +8 -8
  338. package/dist/components/fields/Picker/Picker.js.map +1 -1
  339. package/dist/components/fields/RadioGroup/Radio.js +273 -104
  340. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  341. package/dist/components/fields/RadioGroup/RadioGroup.js +149 -48
  342. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  343. package/dist/components/fields/RadioGroup/context.js +1 -1
  344. package/dist/components/fields/RadioGroup/context.js.map +1 -1
  345. package/dist/components/fields/SearchComboBox/SearchComboBox.js +80 -65
  346. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  347. package/dist/components/fields/SearchInput/SearchInput.js +91 -28
  348. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  349. package/dist/components/fields/Select/Select.js +369 -117
  350. package/dist/components/fields/Select/Select.js.map +1 -1
  351. package/dist/components/fields/Slider/Gradation.js +45 -10
  352. package/dist/components/fields/Slider/Gradation.js.map +1 -1
  353. package/dist/components/fields/Slider/HueSlider.js +121 -32
  354. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  355. package/dist/components/fields/Slider/RangeSlider.js +46 -10
  356. package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
  357. package/dist/components/fields/Slider/Slider.js +108 -23
  358. package/dist/components/fields/Slider/Slider.js.map +1 -1
  359. package/dist/components/fields/Slider/SliderBase.js +2 -2
  360. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  361. package/dist/components/fields/Slider/SliderThumb.js +96 -37
  362. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  363. package/dist/components/fields/Slider/SliderTrack.js +64 -23
  364. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  365. package/dist/components/fields/Slider/elements.js +1 -1
  366. package/dist/components/fields/Slider/elements.js.map +1 -1
  367. package/dist/components/fields/Slider/index.js +1 -1
  368. package/dist/components/fields/Switch/Switch.js +190 -66
  369. package/dist/components/fields/Switch/Switch.js.map +1 -1
  370. package/dist/components/fields/TextArea/TextArea.js +137 -47
  371. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  372. package/dist/components/fields/TextInput/TextInput.js +80 -27
  373. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  374. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  375. package/dist/components/fields/TextInput/TextInputBase.js.map +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.js +156 -83
  379. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  380. package/dist/components/fields/TriggerActions.js +11 -2
  381. package/dist/components/fields/TriggerActions.js.map +1 -1
  382. package/dist/components/fields/color/ColorPanel.js +237 -59
  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/channels.js.map +1 -1
  386. package/dist/components/fields/color/color.js +1 -1
  387. package/dist/components/fields/color/color.js.map +1 -1
  388. package/dist/components/fields/color/context.js +1 -1
  389. package/dist/components/fields/color/context.js.map +1 -1
  390. package/dist/components/form/FieldWrapper/FieldWrapper.js +195 -72
  391. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  392. package/dist/components/form/Form/Field.js +23 -9
  393. package/dist/components/form/Form/Field.js.map +1 -1
  394. package/dist/components/form/Form/Form.js +76 -30
  395. package/dist/components/form/Form/Form.js.map +1 -1
  396. package/dist/components/form/Form/ModernFormRoot.js +294 -81
  397. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  398. package/dist/components/form/Form/ResetButton/ResetButton.js +32 -10
  399. package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
  400. package/dist/components/form/Form/SubmitButton/SubmitButton.js +32 -10
  401. package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
  402. package/dist/components/form/Form/SubmitError.js +130 -32
  403. package/dist/components/form/Form/SubmitError.js.map +1 -1
  404. package/dist/components/form/Form/backend.js +1 -1
  405. package/dist/components/form/Form/backend.js.map +1 -1
  406. package/dist/components/form/Form/index.js +1 -1
  407. package/dist/components/form/Form/index.js.map +1 -1
  408. package/dist/components/form/Form/modern/actions.js +140 -45
  409. package/dist/components/form/Form/modern/actions.js.map +1 -1
  410. package/dist/components/form/Form/modern/context.js +1 -1
  411. package/dist/components/form/Form/modern/context.js.map +1 -1
  412. package/dist/components/form/Form/modern/controller.js +1 -1
  413. package/dist/components/form/Form/modern/controller.js.map +1 -1
  414. package/dist/components/form/Form/modern/field-binding.js +1 -1
  415. package/dist/components/form/Form/modern/field-binding.js.map +1 -1
  416. package/dist/components/form/Form/modern/field.js +1 -1
  417. package/dist/components/form/Form/modern/field.js.map +1 -1
  418. package/dist/components/form/Form/modern/react.js +102 -19
  419. package/dist/components/form/Form/modern/react.js.map +1 -1
  420. package/dist/components/form/Form/modern/store.js +13 -3
  421. package/dist/components/form/Form/modern/store.js.map +1 -1
  422. package/dist/components/form/Form/modern/types.d.ts +3 -1
  423. package/dist/components/form/Form/modern/validation.js +1 -1
  424. package/dist/components/form/Form/modern/validation.js.map +1 -1
  425. package/dist/components/form/Form/modern/values.js +1 -1
  426. package/dist/components/form/Form/modern/values.js.map +1 -1
  427. package/dist/components/form/Form/use-field/use-field-binding.js +236 -63
  428. package/dist/components/form/Form/use-field/use-field-binding.js.map +1 -1
  429. package/dist/components/form/Form/use-field/use-field-props.js +106 -61
  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.js +5 -4
  432. package/dist/components/form/Form/use-field/use-field.js.map +1 -1
  433. package/dist/components/form/Form/use-form.js +2 -1
  434. package/dist/components/form/Form/use-form.js.map +1 -1
  435. package/dist/components/form/Form/validation.js +1 -1
  436. package/dist/components/form/Form/validation.js.map +1 -1
  437. package/dist/components/form/Label.js +127 -37
  438. package/dist/components/form/Label.js.map +1 -1
  439. package/dist/components/form/validation/ValidationIndicator.js +20 -5
  440. package/dist/components/form/validation/ValidationIndicator.js.map +1 -1
  441. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  442. package/dist/components/form/validation/resolve-validation-props.js.map +1 -1
  443. package/dist/components/form/validation/use-validation-props.js +36 -10
  444. package/dist/components/form/validation/use-validation-props.js.map +1 -1
  445. package/dist/components/form/wrapper.js +1 -1
  446. package/dist/components/form/wrapper.js.map +1 -1
  447. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +49 -29
  448. package/dist/components/helpers/DisplayTransition/DisplayTransition.js.map +1 -1
  449. package/dist/components/helpers/IconSwitch/IconSwitch.js +8 -8
  450. package/dist/components/helpers/IconSwitch/IconSwitch.js.map +1 -1
  451. package/dist/components/layout/Board/Board.js +27 -9
  452. package/dist/components/layout/Board/Board.js.map +1 -1
  453. package/dist/components/layout/Board/BoardProvider.js +1 -1
  454. package/dist/components/layout/Board/BoardProvider.js.map +1 -1
  455. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  456. package/dist/components/layout/Board/BoardResponsive.js.map +1 -1
  457. package/dist/components/layout/Board/Widget.js +1 -1
  458. package/dist/components/layout/Board/Widget.js.map +1 -1
  459. package/dist/components/layout/Board/WidgetHost.js +159 -121
  460. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  461. package/dist/components/layout/Board/board-context.js +14 -5
  462. package/dist/components/layout/Board/board-context.js.map +1 -1
  463. package/dist/components/layout/Board/board-store.js +1 -1
  464. package/dist/components/layout/Board/board-store.js.map +1 -1
  465. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  466. package/dist/components/layout/Board/grid-core/calculate.js.map +1 -1
  467. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  468. package/dist/components/layout/Board/grid-core/collision-modes.js.map +1 -1
  469. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  470. package/dist/components/layout/Board/grid-core/collision.js.map +1 -1
  471. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  472. package/dist/components/layout/Board/grid-core/compactors.js.map +1 -1
  473. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  474. package/dist/components/layout/Board/grid-core/constraints.js.map +1 -1
  475. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  476. package/dist/components/layout/Board/grid-core/group-move.js.map +1 -1
  477. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  478. package/dist/components/layout/Board/grid-core/layout.js.map +1 -1
  479. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  480. package/dist/components/layout/Board/grid-core/placement.js.map +1 -1
  481. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  482. package/dist/components/layout/Board/grid-core/sort.js.map +1 -1
  483. package/dist/components/layout/Board/index.js +1 -1
  484. package/dist/components/layout/Board/index.js.map +1 -1
  485. package/dist/components/layout/Board/responsive-utils.js +1 -1
  486. package/dist/components/layout/Board/responsive-utils.js.map +1 -1
  487. package/dist/components/layout/Board/use-board-layout.js +8 -8
  488. package/dist/components/layout/Board/use-board-layout.js.map +1 -1
  489. package/dist/components/layout/Board/use-board-registry.js +257 -257
  490. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  491. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  492. package/dist/components/layout/Board/use-board-select-modifier-key.js.map +1 -1
  493. package/dist/components/layout/Board/use-board-selection.js +16 -16
  494. package/dist/components/layout/Board/use-board-selection.js.map +1 -1
  495. package/dist/components/layout/Flex.js +29 -7
  496. package/dist/components/layout/Flex.js.map +1 -1
  497. package/dist/components/layout/Flow.js +29 -7
  498. package/dist/components/layout/Flow.js.map +1 -1
  499. package/dist/components/layout/Grid.js +30 -7
  500. package/dist/components/layout/Grid.js.map +1 -1
  501. package/dist/components/layout/Panel.js +9 -9
  502. package/dist/components/layout/Panel.js.map +1 -1
  503. package/dist/components/layout/Prefix.js +59 -16
  504. package/dist/components/layout/Prefix.js.map +1 -1
  505. package/dist/components/layout/ResizablePanel.js +62 -32
  506. package/dist/components/layout/ResizablePanel.js.map +1 -1
  507. package/dist/components/layout/Space.js +55 -11
  508. package/dist/components/layout/Space.js.map +1 -1
  509. package/dist/components/layout/Suffix.js +59 -16
  510. package/dist/components/layout/Suffix.js.map +1 -1
  511. package/dist/components/navigation/Pagination/Pagination.js +394 -164
  512. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  513. package/dist/components/navigation/Pagination/use-pagination.js +69 -26
  514. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
  515. package/dist/components/navigation/Tabs/DraggableTabList.js +25 -10
  516. package/dist/components/navigation/Tabs/DraggableTabList.js.map +1 -1
  517. package/dist/components/navigation/Tabs/TabButton.js +604 -235
  518. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  519. package/dist/components/navigation/Tabs/TabDropIndicator.js +65 -23
  520. package/dist/components/navigation/Tabs/TabDropIndicator.js.map +1 -1
  521. package/dist/components/navigation/Tabs/TabPanel.js +47 -19
  522. package/dist/components/navigation/Tabs/TabPanel.js.map +1 -1
  523. package/dist/components/navigation/Tabs/TabPicker.js +105 -33
  524. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  525. package/dist/components/navigation/Tabs/Tabs.js +45 -45
  526. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  527. package/dist/components/navigation/Tabs/TabsAction.js +53 -19
  528. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  529. package/dist/components/navigation/Tabs/TabsContext.js +16 -6
  530. package/dist/components/navigation/Tabs/TabsContext.js.map +1 -1
  531. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  532. package/dist/components/navigation/Tabs/popover-placement.js.map +1 -1
  533. package/dist/components/navigation/Tabs/styled.js +1 -1
  534. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  535. package/dist/components/navigation/Tabs/types.js +1 -1
  536. package/dist/components/navigation/Tabs/types.js.map +1 -1
  537. package/dist/components/navigation/Tabs/use-tab-editing.js +50 -13
  538. package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
  539. package/dist/components/navigation/Tabs/use-tab-indicator.js +111 -63
  540. package/dist/components/navigation/Tabs/use-tab-indicator.js.map +1 -1
  541. package/dist/components/organisms/StatsCard/StatsCard.js +54 -14
  542. package/dist/components/organisms/StatsCard/StatsCard.js.map +1 -1
  543. package/dist/components/other/Calendar/Calendar.js +79 -31
  544. package/dist/components/other/Calendar/Calendar.js.map +1 -1
  545. package/dist/components/other/Calendar/CalendarCell.js +66 -20
  546. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  547. package/dist/components/other/Calendar/CalendarGrid.js +90 -40
  548. package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
  549. package/dist/components/other/Calendar/CalendarHeader.js +80 -17
  550. package/dist/components/other/Calendar/CalendarHeader.js.map +1 -1
  551. package/dist/components/other/Calendar/CalendarPanel.js +568 -144
  552. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  553. package/dist/components/other/Calendar/PeriodCalendar.js +425 -134
  554. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
  555. package/dist/components/other/Calendar/PeriodGrid.js +6 -6
  556. package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
  557. package/dist/components/other/Calendar/RangeCalendar.js +50 -24
  558. package/dist/components/other/Calendar/RangeCalendar.js.map +1 -1
  559. package/dist/components/other/Calendar/styled.js +1 -1
  560. package/dist/components/other/Calendar/styled.js.map +1 -1
  561. package/dist/components/other/CubeLogo/CubeLogo.js +95 -34
  562. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  563. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  564. package/dist/components/other/NoDataIcon/NoDataIcon.js.map +1 -1
  565. package/dist/components/overlays/AlertDialog/AlertDialog.js +153 -42
  566. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  567. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +76 -54
  568. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  569. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +146 -39
  570. package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
  571. package/dist/components/overlays/Dialog/Dialog.js +26 -10
  572. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  573. package/dist/components/overlays/Dialog/DialogContainer.js +13 -13
  574. package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
  575. package/dist/components/overlays/Dialog/DialogForm.d.ts +12 -7
  576. package/dist/components/overlays/Dialog/DialogForm.js +18 -7
  577. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  578. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +1 -1
  579. package/dist/components/overlays/Dialog/DialogTrigger.js +214 -59
  580. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  581. package/dist/components/overlays/Dialog/ModernDialogForm.js +350 -0
  582. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -0
  583. package/dist/components/overlays/Dialog/context.js +1 -1
  584. package/dist/components/overlays/Dialog/context.js.map +1 -1
  585. package/dist/components/overlays/Dialog/index.d.ts +1 -1
  586. package/dist/components/overlays/Dialog/use-dialog-container.js +6 -6
  587. package/dist/components/overlays/Dialog/use-dialog-container.js.map +1 -1
  588. package/dist/components/overlays/Modal/Modal.js +140 -27
  589. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  590. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  591. package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -1
  592. package/dist/components/overlays/Modal/Overlay.js +4 -4
  593. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  594. package/dist/components/overlays/Modal/Popover.js +131 -29
  595. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  596. package/dist/components/overlays/Modal/Tray.js +142 -30
  597. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  598. package/dist/components/overlays/Modal/Underlay.js +36 -7
  599. package/dist/components/overlays/Modal/Underlay.js.map +1 -1
  600. package/dist/components/overlays/Notifications/Notification.js +69 -32
  601. package/dist/components/overlays/Notifications/Notification.js.map +1 -1
  602. package/dist/components/overlays/Notifications/NotificationAction.js +79 -26
  603. package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
  604. package/dist/components/overlays/Notifications/NotificationCard.js +138 -33
  605. package/dist/components/overlays/Notifications/NotificationCard.js.map +1 -1
  606. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  607. package/dist/components/overlays/Notifications/NotificationContext.js.map +1 -1
  608. package/dist/components/overlays/Notifications/NotificationItem.js +63 -16
  609. package/dist/components/overlays/Notifications/NotificationItem.js.map +1 -1
  610. package/dist/components/overlays/Notifications/OverlayContainer.js +312 -151
  611. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  612. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  613. package/dist/components/overlays/Notifications/OverlayProvider.js.map +1 -1
  614. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +210 -58
  615. package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
  616. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  617. package/dist/components/overlays/Notifications/dismissed-storage.js.map +1 -1
  618. package/dist/components/overlays/Notifications/format-relative-time.d.ts +1 -1
  619. package/dist/components/overlays/Notifications/format-relative-time.js +3 -3
  620. package/dist/components/overlays/Notifications/format-relative-time.js.map +1 -1
  621. package/dist/components/overlays/Notifications/index.js +1 -1
  622. package/dist/components/overlays/Notifications/index.js.map +1 -1
  623. package/dist/components/overlays/Notifications/use-notification-state.js +51 -51
  624. package/dist/components/overlays/Notifications/use-notification-state.js.map +1 -1
  625. package/dist/components/overlays/Notifications/use-notifications.js +12 -12
  626. package/dist/components/overlays/Notifications/use-notifications.js.map +1 -1
  627. package/dist/components/overlays/Notifications/use-overlay-timers.js +10 -10
  628. package/dist/components/overlays/Notifications/use-overlay-timers.js.map +1 -1
  629. package/dist/components/overlays/Notifications/use-persistent-notifications.js +24 -5
  630. package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +1 -1
  631. package/dist/components/overlays/Notifications/use-persistent-state.js +145 -43
  632. package/dist/components/overlays/Notifications/use-persistent-state.js.map +1 -1
  633. package/dist/components/overlays/Notifications/use-toast-state.js +25 -25
  634. package/dist/components/overlays/Notifications/use-toast-state.js.map +1 -1
  635. package/dist/components/overlays/Toast/ToastItem.js +68 -15
  636. package/dist/components/overlays/Toast/ToastItem.js.map +1 -1
  637. package/dist/components/overlays/Toast/index.js +100 -34
  638. package/dist/components/overlays/Toast/index.js.map +1 -1
  639. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  640. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  641. package/dist/components/overlays/Toast/useToast.js +9 -9
  642. package/dist/components/overlays/Toast/useToast.js.map +1 -1
  643. package/dist/components/overlays/Tooltip/Tooltip.js +88 -31
  644. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  645. package/dist/components/overlays/Tooltip/TooltipProvider.js +75 -10
  646. package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
  647. package/dist/components/overlays/Tooltip/TooltipTrigger.js +186 -77
  648. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  649. package/dist/components/overlays/Tooltip/context.js +1 -1
  650. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  651. package/dist/components/portal/Portal.js +18 -3
  652. package/dist/components/portal/Portal.js.map +1 -1
  653. package/dist/components/portal/PortalProvider.js +11 -2
  654. package/dist/components/portal/PortalProvider.js.map +1 -1
  655. package/dist/components/portal/usePortal.js +1 -1
  656. package/dist/components/portal/usePortal.js.map +1 -1
  657. package/dist/components/shared/DraggableCollection.js +23 -23
  658. package/dist/components/shared/DraggableCollection.js.map +1 -1
  659. package/dist/components/shared/InvalidIcon.js +1 -1
  660. package/dist/components/shared/InvalidIcon.js.map +1 -1
  661. package/dist/components/shared/ValidIcon.js +1 -1
  662. package/dist/components/shared/ValidIcon.js.map +1 -1
  663. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +156 -48
  664. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  665. package/dist/components/status/Spin/Cube.js +12 -3
  666. package/dist/components/status/Spin/Cube.js.map +1 -1
  667. package/dist/components/status/Spin/InternalSpinner.js +21 -6
  668. package/dist/components/status/Spin/InternalSpinner.js.map +1 -1
  669. package/dist/components/status/Spin/Spin.js +31 -7
  670. package/dist/components/status/Spin/Spin.js.map +1 -1
  671. package/dist/components/status/Spin/SpinsContainer.js +23 -6
  672. package/dist/components/status/Spin/SpinsContainer.js.map +1 -1
  673. package/dist/data/item-themes.js +1 -1
  674. package/dist/data/item-themes.js.map +1 -1
  675. package/dist/data/themes.js +1 -1
  676. package/dist/data/themes.js.map +1 -1
  677. package/dist/eslint-plugin/defaults.generated.js +15 -5
  678. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  679. package/dist/eslint-plugin/index.js +1 -1
  680. package/dist/eslint-plugin/index.js.map +1 -1
  681. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  682. package/dist/eslint-plugin/rules/no-redundant-default-prop.js.map +1 -1
  683. package/dist/i18n/I18nProvider.js +54 -13
  684. package/dist/i18n/I18nProvider.js.map +1 -1
  685. package/dist/i18n/createFormatter.js +1 -1
  686. package/dist/i18n/createFormatter.js.map +1 -1
  687. package/dist/i18n/index.js +1 -1
  688. package/dist/i18n/index.js.map +1 -1
  689. package/dist/i18n/instance.js +1 -1
  690. package/dist/i18n/instance.js.map +1 -1
  691. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  692. package/dist/i18n/locales/en-US/uikit.js +1 -1
  693. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  694. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  695. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  696. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  697. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  698. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  699. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  700. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  701. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  702. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  703. package/dist/i18n/locales.js +1 -1
  704. package/dist/i18n/locales.js.map +1 -1
  705. package/dist/i18n/useFormatter.js +10 -3
  706. package/dist/i18n/useFormatter.js.map +1 -1
  707. package/dist/i18n/useI18n.js +1 -1
  708. package/dist/i18n/useI18n.js.map +1 -1
  709. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  710. package/dist/icons/AdjustmentsHorizontalIcon.js.map +1 -1
  711. package/dist/icons/AdjustmentsIcon.js +1 -1
  712. package/dist/icons/AdjustmentsIcon.js.map +1 -1
  713. package/dist/icons/AiIcon.js +1 -1
  714. package/dist/icons/AiIcon.js.map +1 -1
  715. package/dist/icons/AreaChartIcon.js +1 -1
  716. package/dist/icons/AreaChartIcon.js.map +1 -1
  717. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  718. package/dist/icons/ArrowNarrowDownIcon.js.map +1 -1
  719. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  720. package/dist/icons/ArrowNarrowUpIcon.js.map +1 -1
  721. package/dist/icons/BackwardIcon.js +1 -1
  722. package/dist/icons/BackwardIcon.js.map +1 -1
  723. package/dist/icons/BarChartIcon.js +1 -1
  724. package/dist/icons/BarChartIcon.js.map +1 -1
  725. package/dist/icons/BellFilledIcon.js +1 -1
  726. package/dist/icons/BellFilledIcon.js.map +1 -1
  727. package/dist/icons/BellIcon.js +1 -1
  728. package/dist/icons/BellIcon.js.map +1 -1
  729. package/dist/icons/BooleanIcon.js +1 -1
  730. package/dist/icons/BooleanIcon.js.map +1 -1
  731. package/dist/icons/CalendarEditIcon.js +1 -1
  732. package/dist/icons/CalendarEditIcon.js.map +1 -1
  733. package/dist/icons/CalendarIcon.js +1 -1
  734. package/dist/icons/CalendarIcon.js.map +1 -1
  735. package/dist/icons/CaretDownIcon.js +1 -1
  736. package/dist/icons/CaretDownIcon.js.map +1 -1
  737. package/dist/icons/CaretUpIcon.js +1 -1
  738. package/dist/icons/CaretUpIcon.js.map +1 -1
  739. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  740. package/dist/icons/ChartAreaStackedIcon.js.map +1 -1
  741. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  742. package/dist/icons/ChartAreaStackedPercentageIcon.js.map +1 -1
  743. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  744. package/dist/icons/ChartBarGroupedHorizontalIcon.js.map +1 -1
  745. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  746. package/dist/icons/ChartBarGroupedIcon.js.map +1 -1
  747. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  748. package/dist/icons/ChartBarHorizontalIcon.js.map +1 -1
  749. package/dist/icons/ChartBarLineIcon.js +1 -1
  750. package/dist/icons/ChartBarLineIcon.js.map +1 -1
  751. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  752. package/dist/icons/ChartBarStackedHorizontalIcon.js.map +1 -1
  753. package/dist/icons/ChartBarStackedIcon.js +1 -1
  754. package/dist/icons/ChartBarStackedIcon.js.map +1 -1
  755. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  756. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js.map +1 -1
  757. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  758. package/dist/icons/ChartBarStackedPercentageIcon.js.map +1 -1
  759. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  760. package/dist/icons/ChartBoxPlot2Icon.js.map +1 -1
  761. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  762. package/dist/icons/ChartBoxPlotIcon.js.map +1 -1
  763. package/dist/icons/ChartBubbleIcon.js +1 -1
  764. package/dist/icons/ChartBubbleIcon.js.map +1 -1
  765. package/dist/icons/ChartDonut2Icon.js +1 -1
  766. package/dist/icons/ChartDonut2Icon.js.map +1 -1
  767. package/dist/icons/ChartFunnelIcon.js +1 -1
  768. package/dist/icons/ChartFunnelIcon.js.map +1 -1
  769. package/dist/icons/ChartHeatmapIcon.js +1 -1
  770. package/dist/icons/ChartHeatmapIcon.js.map +1 -1
  771. package/dist/icons/ChartKPIIcon.js +1 -1
  772. package/dist/icons/ChartKPIIcon.js.map +1 -1
  773. package/dist/icons/ChartPie2Icon.js +1 -1
  774. package/dist/icons/ChartPie2Icon.js.map +1 -1
  775. package/dist/icons/ChartScatterIcon.js +1 -1
  776. package/dist/icons/ChartScatterIcon.js.map +1 -1
  777. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  778. package/dist/icons/CheckCircleFilledIcon.js.map +1 -1
  779. package/dist/icons/CheckCircleIcon.js +1 -1
  780. package/dist/icons/CheckCircleIcon.js.map +1 -1
  781. package/dist/icons/CheckIcon.js +1 -1
  782. package/dist/icons/CheckIcon.js.map +1 -1
  783. package/dist/icons/CircleFilledIcon.js +1 -1
  784. package/dist/icons/CircleFilledIcon.js.map +1 -1
  785. package/dist/icons/ClearIcon.js +1 -1
  786. package/dist/icons/ClearIcon.js.map +1 -1
  787. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  788. package/dist/icons/CloseCircleFilledIcon.js.map +1 -1
  789. package/dist/icons/CloseCircleIcon.js +1 -1
  790. package/dist/icons/CloseCircleIcon.js.map +1 -1
  791. package/dist/icons/CloseIcon.js +1 -1
  792. package/dist/icons/CloseIcon.js.map +1 -1
  793. package/dist/icons/CodeIcon.js +1 -1
  794. package/dist/icons/CodeIcon.js.map +1 -1
  795. package/dist/icons/ColumnTotalIcon.js +1 -1
  796. package/dist/icons/ColumnTotalIcon.js.map +1 -1
  797. package/dist/icons/CopyIcon.js +1 -1
  798. package/dist/icons/CopyIcon.js.map +1 -1
  799. package/dist/icons/CountIcon.js +1 -1
  800. package/dist/icons/CountIcon.js.map +1 -1
  801. package/dist/icons/CubeIcon.js +1 -1
  802. package/dist/icons/CubeIcon.js.map +1 -1
  803. package/dist/icons/CubePauseIcon.js +1 -1
  804. package/dist/icons/CubePauseIcon.js.map +1 -1
  805. package/dist/icons/CubePlayIcon.js +1 -1
  806. package/dist/icons/CubePlayIcon.js.map +1 -1
  807. package/dist/icons/CurrencyDollarIcon.js +1 -1
  808. package/dist/icons/CurrencyDollarIcon.js.map +1 -1
  809. package/dist/icons/DangerIcon.js +1 -1
  810. package/dist/icons/DangerIcon.js.map +1 -1
  811. package/dist/icons/DashboardIcon.js +1 -1
  812. package/dist/icons/DashboardIcon.js.map +1 -1
  813. package/dist/icons/DatabaseIcon.js +1 -1
  814. package/dist/icons/DatabaseIcon.js.map +1 -1
  815. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  816. package/dist/icons/DecimalDecreaseIcon.js.map +1 -1
  817. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  818. package/dist/icons/DecimalIncreaseIcon.js.map +1 -1
  819. package/dist/icons/DirectionIcon.js +67 -22
  820. package/dist/icons/DirectionIcon.js.map +1 -1
  821. package/dist/icons/DonutIcon.js +1 -1
  822. package/dist/icons/DonutIcon.js.map +1 -1
  823. package/dist/icons/DownIcon.js +1 -1
  824. package/dist/icons/DownIcon.js.map +1 -1
  825. package/dist/icons/EditIcon.js +1 -1
  826. package/dist/icons/EditIcon.js.map +1 -1
  827. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  828. package/dist/icons/ExclamationCircleFilledIcon.js.map +1 -1
  829. package/dist/icons/ExclamationCircleIcon.js +1 -1
  830. package/dist/icons/ExclamationCircleIcon.js.map +1 -1
  831. package/dist/icons/ExclamationIcon.js +1 -1
  832. package/dist/icons/ExclamationIcon.js.map +1 -1
  833. package/dist/icons/EyeIcon.js +1 -1
  834. package/dist/icons/EyeIcon.js.map +1 -1
  835. package/dist/icons/EyeInvisibleIcon.js +1 -1
  836. package/dist/icons/EyeInvisibleIcon.js.map +1 -1
  837. package/dist/icons/FilterIcon.js +1 -1
  838. package/dist/icons/FilterIcon.js.map +1 -1
  839. package/dist/icons/FolderFilledIcon.js +1 -1
  840. package/dist/icons/FolderFilledIcon.js.map +1 -1
  841. package/dist/icons/FolderIcon.js +1 -1
  842. package/dist/icons/FolderIcon.js.map +1 -1
  843. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  844. package/dist/icons/FolderOpenFilledIcon.js.map +1 -1
  845. package/dist/icons/FolderOpenIcon.js +1 -1
  846. package/dist/icons/FolderOpenIcon.js.map +1 -1
  847. package/dist/icons/ForwardIcon.js +1 -1
  848. package/dist/icons/ForwardIcon.js.map +1 -1
  849. package/dist/icons/GripVerticalIcon.js +1 -1
  850. package/dist/icons/GripVerticalIcon.js.map +1 -1
  851. package/dist/icons/HierarchyIcon.js +1 -1
  852. package/dist/icons/HierarchyIcon.js.map +1 -1
  853. package/dist/icons/HierarchyOpenIcon.js +1 -1
  854. package/dist/icons/HierarchyOpenIcon.js.map +1 -1
  855. package/dist/icons/Icon.js +60 -16
  856. package/dist/icons/Icon.js.map +1 -1
  857. package/dist/icons/InfoCircleIcon.js +1 -1
  858. package/dist/icons/InfoCircleIcon.js.map +1 -1
  859. package/dist/icons/InfoIcon.js +1 -1
  860. package/dist/icons/InfoIcon.js.map +1 -1
  861. package/dist/icons/KeyIcon.js +1 -1
  862. package/dist/icons/KeyIcon.js.map +1 -1
  863. package/dist/icons/LeftIcon.js +1 -1
  864. package/dist/icons/LeftIcon.js.map +1 -1
  865. package/dist/icons/LineChartIcon.js +1 -1
  866. package/dist/icons/LineChartIcon.js.map +1 -1
  867. package/dist/icons/LoadingIcon.js +1 -1
  868. package/dist/icons/LoadingIcon.js.map +1 -1
  869. package/dist/icons/LockFilledIcon.js +1 -1
  870. package/dist/icons/LockFilledIcon.js.map +1 -1
  871. package/dist/icons/LockIcon.js +1 -1
  872. package/dist/icons/LockIcon.js.map +1 -1
  873. package/dist/icons/MoreIcon.js +1 -1
  874. package/dist/icons/MoreIcon.js.map +1 -1
  875. package/dist/icons/NotAllowedIcon.js +1 -1
  876. package/dist/icons/NotAllowedIcon.js.map +1 -1
  877. package/dist/icons/Number123Icon.js +1 -1
  878. package/dist/icons/Number123Icon.js.map +1 -1
  879. package/dist/icons/NumberIcon.js +1 -1
  880. package/dist/icons/NumberIcon.js.map +1 -1
  881. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  882. package/dist/icons/PauseCircleFilledIcon.js.map +1 -1
  883. package/dist/icons/PauseCircleIcon.js +1 -1
  884. package/dist/icons/PauseCircleIcon.js.map +1 -1
  885. package/dist/icons/PauseIcon.js +1 -1
  886. package/dist/icons/PauseIcon.js.map +1 -1
  887. package/dist/icons/PercentageIcon.js +1 -1
  888. package/dist/icons/PercentageIcon.js.map +1 -1
  889. package/dist/icons/PieChartIcon.js +1 -1
  890. package/dist/icons/PieChartIcon.js.map +1 -1
  891. package/dist/icons/PipetteIcon.js +1 -1
  892. package/dist/icons/PipetteIcon.js.map +1 -1
  893. package/dist/icons/PlayCircleIcon.js +1 -1
  894. package/dist/icons/PlayCircleIcon.js.map +1 -1
  895. package/dist/icons/PlayIcon.js +1 -1
  896. package/dist/icons/PlayIcon.js.map +1 -1
  897. package/dist/icons/PlusIcon.js +1 -1
  898. package/dist/icons/PlusIcon.js.map +1 -1
  899. package/dist/icons/ProgressBarIcon.js +1 -1
  900. package/dist/icons/ProgressBarIcon.js.map +1 -1
  901. package/dist/icons/ReloadIcon.js +1 -1
  902. package/dist/icons/ReloadIcon.js.map +1 -1
  903. package/dist/icons/ReportIcon.js +1 -1
  904. package/dist/icons/ReportIcon.js.map +1 -1
  905. package/dist/icons/ReturnIcon.js +1 -1
  906. package/dist/icons/ReturnIcon.js.map +1 -1
  907. package/dist/icons/RightIcon.js +1 -1
  908. package/dist/icons/RightIcon.js.map +1 -1
  909. package/dist/icons/RowTotalsIcon.js +1 -1
  910. package/dist/icons/RowTotalsIcon.js.map +1 -1
  911. package/dist/icons/SchemeIcon.js +1 -1
  912. package/dist/icons/SchemeIcon.js.map +1 -1
  913. package/dist/icons/SearchIcon.js +1 -1
  914. package/dist/icons/SearchIcon.js.map +1 -1
  915. package/dist/icons/SemanticQueryIcon.js +1 -1
  916. package/dist/icons/SemanticQueryIcon.js.map +1 -1
  917. package/dist/icons/SettingsIcon.js +1 -1
  918. package/dist/icons/SettingsIcon.js.map +1 -1
  919. package/dist/icons/ShieldFilledIcon.js +1 -1
  920. package/dist/icons/ShieldFilledIcon.js.map +1 -1
  921. package/dist/icons/ShieldIcon.js +1 -1
  922. package/dist/icons/ShieldIcon.js.map +1 -1
  923. package/dist/icons/SlashIcon.js +1 -1
  924. package/dist/icons/SlashIcon.js.map +1 -1
  925. package/dist/icons/SparklesIcon.js +1 -1
  926. package/dist/icons/SparklesIcon.js.map +1 -1
  927. package/dist/icons/SqlIcon.js +1 -1
  928. package/dist/icons/SqlIcon.js.map +1 -1
  929. package/dist/icons/StatsIcon.js +1 -1
  930. package/dist/icons/StatsIcon.js.map +1 -1
  931. package/dist/icons/StopIcon.js +1 -1
  932. package/dist/icons/StopIcon.js.map +1 -1
  933. package/dist/icons/StringIcon.js +1 -1
  934. package/dist/icons/StringIcon.js.map +1 -1
  935. package/dist/icons/SubtotalsIcon.js +1 -1
  936. package/dist/icons/SubtotalsIcon.js.map +1 -1
  937. package/dist/icons/SwitchIcon.js +1 -1
  938. package/dist/icons/SwitchIcon.js.map +1 -1
  939. package/dist/icons/TableIcon.js +1 -1
  940. package/dist/icons/TableIcon.js.map +1 -1
  941. package/dist/icons/ThumbsDownIcon.js +1 -1
  942. package/dist/icons/ThumbsDownIcon.js.map +1 -1
  943. package/dist/icons/ThumbsUpIcon.js +1 -1
  944. package/dist/icons/ThumbsUpIcon.js.map +1 -1
  945. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  946. package/dist/icons/ThunderboltCrossedIcon.js.map +1 -1
  947. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  948. package/dist/icons/ThunderboltFilledIcon.js.map +1 -1
  949. package/dist/icons/ThunderboltIcon.js +1 -1
  950. package/dist/icons/ThunderboltIcon.js.map +1 -1
  951. package/dist/icons/TimeIcon.js +1 -1
  952. package/dist/icons/TimeIcon.js.map +1 -1
  953. package/dist/icons/TrashIcon.js +1 -1
  954. package/dist/icons/TrashIcon.js.map +1 -1
  955. package/dist/icons/UnlockIcon.js +1 -1
  956. package/dist/icons/UnlockIcon.js.map +1 -1
  957. package/dist/icons/UpIcon.js +1 -1
  958. package/dist/icons/UpIcon.js.map +1 -1
  959. package/dist/icons/UserGroupIcon.js +1 -1
  960. package/dist/icons/UserGroupIcon.js.map +1 -1
  961. package/dist/icons/UserIcon.js +1 -1
  962. package/dist/icons/UserIcon.js.map +1 -1
  963. package/dist/icons/UserLockIcon.js +1 -1
  964. package/dist/icons/UserLockIcon.js.map +1 -1
  965. package/dist/icons/ViewIcon.js +1 -1
  966. package/dist/icons/ViewIcon.js.map +1 -1
  967. package/dist/icons/WarningFilledIcon.js +1 -1
  968. package/dist/icons/WarningFilledIcon.js.map +1 -1
  969. package/dist/icons/WarningIcon.js +1 -1
  970. package/dist/icons/WarningIcon.js.map +1 -1
  971. package/dist/icons/wrap-icon.js +15 -7
  972. package/dist/icons/wrap-icon.js.map +1 -1
  973. package/dist/index.d.ts +22 -22
  974. package/dist/index.js +1 -1
  975. package/dist/index.js.map +1 -1
  976. package/dist/probe/canonicalize.js +2 -2
  977. package/dist/probe/canonicalize.js.map +1 -1
  978. package/dist/probe/css.js +1 -1
  979. package/dist/probe/css.js.map +1 -1
  980. package/dist/probe/index.js +1 -1
  981. package/dist/provider.js +17 -7
  982. package/dist/provider.js.map +1 -1
  983. package/dist/providers/TrackingProvider.js +33 -9
  984. package/dist/providers/TrackingProvider.js.map +1 -1
  985. package/dist/providers/navigationAdapter.default.js +1 -1
  986. package/dist/providers/navigationAdapter.default.js.map +1 -1
  987. package/dist/tokens/all-tokens.js +1 -1
  988. package/dist/tokens/all-tokens.js.map +1 -1
  989. package/dist/tokens/base.js +1 -1
  990. package/dist/tokens/base.js.map +1 -1
  991. package/dist/tokens/color-seed.js +1 -1
  992. package/dist/tokens/color-seed.js.map +1 -1
  993. package/dist/tokens/color-theme.js +18 -3
  994. package/dist/tokens/color-theme.js.map +1 -1
  995. package/dist/tokens/colors.js +1 -1
  996. package/dist/tokens/colors.js.map +1 -1
  997. package/dist/tokens/layout.js +1 -1
  998. package/dist/tokens/layout.js.map +1 -1
  999. package/dist/tokens/lazy-styles.js +1 -1
  1000. package/dist/tokens/lazy-styles.js.map +1 -1
  1001. package/dist/tokens/legacy-color.js +1 -1
  1002. package/dist/tokens/legacy-color.js.map +1 -1
  1003. package/dist/tokens/palette-config.js +9 -2
  1004. package/dist/tokens/palette-config.js.map +1 -1
  1005. package/dist/tokens/palette.js +1 -1
  1006. package/dist/tokens/palette.js.map +1 -1
  1007. package/dist/tokens/resolve.js +85 -21
  1008. package/dist/tokens/resolve.js.map +1 -1
  1009. package/dist/tokens/shadows.js +1 -1
  1010. package/dist/tokens/shadows.js.map +1 -1
  1011. package/dist/tokens/sizes.js +1 -1
  1012. package/dist/tokens/sizes.js.map +1 -1
  1013. package/dist/tokens/spacing.js +1 -1
  1014. package/dist/tokens/spacing.js.map +1 -1
  1015. package/dist/tokens/typography.js +1 -1
  1016. package/dist/tokens/typography.js.map +1 -1
  1017. package/dist/utils/ResizeSensor.js +1 -1
  1018. package/dist/utils/ResizeSensor.js.map +1 -1
  1019. package/dist/utils/colors.js +1 -1
  1020. package/dist/utils/colors.js.map +1 -1
  1021. package/dist/utils/dotize.js +1 -1
  1022. package/dist/utils/dotize.js.map +1 -1
  1023. package/dist/utils/is-dev-env.js +1 -1
  1024. package/dist/utils/is-dev-env.js.map +1 -1
  1025. package/dist/utils/modules.js +1 -1
  1026. package/dist/utils/modules.js.map +1 -1
  1027. package/dist/utils/promise.js +1 -1
  1028. package/dist/utils/promise.js.map +1 -1
  1029. package/dist/utils/raf.js +1 -1
  1030. package/dist/utils/raf.js.map +1 -1
  1031. package/dist/utils/random.js +1 -1
  1032. package/dist/utils/random.js.map +1 -1
  1033. package/dist/utils/range.js +1 -1
  1034. package/dist/utils/range.js.map +1 -1
  1035. package/dist/utils/react/RenderCache.js +2 -2
  1036. package/dist/utils/react/RenderCache.js.map +1 -1
  1037. package/dist/utils/react/Slots.js +67 -24
  1038. package/dist/utils/react/Slots.js.map +1 -1
  1039. package/dist/utils/react/chain.js +1 -1
  1040. package/dist/utils/react/chain.js.map +1 -1
  1041. package/dist/utils/react/disabledProps.js +1 -1
  1042. package/dist/utils/react/disabledProps.js.map +1 -1
  1043. package/dist/utils/react/escapePropagation.js +1 -1
  1044. package/dist/utils/react/escapePropagation.js.map +1 -1
  1045. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  1046. package/dist/utils/react/forwardRefWithGenerics.js.map +1 -1
  1047. package/dist/utils/react/index.js +1 -1
  1048. package/dist/utils/react/interactions.js +35 -12
  1049. package/dist/utils/react/interactions.js.map +1 -1
  1050. package/dist/utils/react/isTextOnly.js +1 -1
  1051. package/dist/utils/react/isTextOnly.js.map +1 -1
  1052. package/dist/utils/react/mapProps.js +1 -1
  1053. package/dist/utils/react/mapProps.js.map +1 -1
  1054. package/dist/utils/react/mergeProps.js +1 -1
  1055. package/dist/utils/react/mergeProps.js.map +1 -1
  1056. package/dist/utils/react/nullableValue.js +1 -1
  1057. package/dist/utils/react/nullableValue.js.map +1 -1
  1058. package/dist/utils/react/programmaticFocus.js +1 -1
  1059. package/dist/utils/react/programmaticFocus.js.map +1 -1
  1060. package/dist/utils/react/resolveIcon.js +1 -1
  1061. package/dist/utils/react/resolveIcon.js.map +1 -1
  1062. package/dist/utils/react/sharedStore.js +13 -2
  1063. package/dist/utils/react/sharedStore.js.map +1 -1
  1064. package/dist/utils/react/useBufferedValue.js +5 -5
  1065. package/dist/utils/react/useBufferedValue.js.map +1 -1
  1066. package/dist/utils/react/useCombinedRefs.js +20 -5
  1067. package/dist/utils/react/useCombinedRefs.js.map +1 -1
  1068. package/dist/utils/react/useControlledFocusVisible.js +53 -17
  1069. package/dist/utils/react/useControlledFocusVisible.js.map +1 -1
  1070. package/dist/utils/react/useEventBus.js +43 -18
  1071. package/dist/utils/react/useEventBus.js.map +1 -1
  1072. package/dist/utils/react/useId.js +2 -1
  1073. package/dist/utils/react/useId.js.map +1 -1
  1074. package/dist/utils/react/useIsDarwin.js +29 -16
  1075. package/dist/utils/react/useIsDarwin.js.map +1 -1
  1076. package/dist/utils/react/useKeySymbols.js +23 -9
  1077. package/dist/utils/react/useKeySymbols.js.map +1 -1
  1078. package/dist/utils/react/useLayoutEffect.js +1 -1
  1079. package/dist/utils/react/useLayoutEffect.js.map +1 -1
  1080. package/dist/utils/react/useLocalStorage.js +75 -30
  1081. package/dist/utils/react/useLocalStorage.js.map +1 -1
  1082. package/dist/utils/react/useMergeStyles.js +1 -1
  1083. package/dist/utils/react/useMergeStyles.js.map +1 -1
  1084. package/dist/utils/react/useOverlayEscapeGuard.js +25 -9
  1085. package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
  1086. package/dist/utils/react/usePopoverSync.js +175 -73
  1087. package/dist/utils/react/usePopoverSync.js.map +1 -1
  1088. package/dist/utils/react/useQaProps.js +1 -1
  1089. package/dist/utils/react/useQaProps.js.map +1 -1
  1090. package/dist/utils/react/useScheme.js +1 -1
  1091. package/dist/utils/react/useScheme.js.map +1 -1
  1092. package/dist/utils/react/useViewportSize.js +43 -19
  1093. package/dist/utils/react/useViewportSize.js.map +1 -1
  1094. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  1095. package/dist/utils/react/wrapNodeIfPlain.js.map +1 -1
  1096. package/dist/utils/selection.js +1 -1
  1097. package/dist/utils/selection.js.map +1 -1
  1098. package/dist/utils/styles.js +1 -1
  1099. package/dist/utils/styles.js.map +1 -1
  1100. package/dist/utils/tree.js +1 -1
  1101. package/dist/utils/tree.js.map +1 -1
  1102. package/dist/utils/warnings.js +1 -1
  1103. package/dist/utils/warnings.js.map +1 -1
  1104. package/dist/version.js +2 -2
  1105. package/dist/version.js.map +1 -1
  1106. package/docs/Usage.md +9 -1
  1107. package/docs/components/content/InlineInput.md +1 -1
  1108. package/docs/components/fields/ColorInput.md +13 -8
  1109. package/docs/components/fields/ColorPicker.md +13 -8
  1110. package/docs/components/fields/ComboBox.md +16 -12
  1111. package/docs/components/fields/FilterListBox.md +24 -19
  1112. package/docs/components/fields/FilterPicker.md +24 -19
  1113. package/docs/components/fields/ListBox.md +36 -26
  1114. package/docs/components/fields/Picker.md +27 -21
  1115. package/docs/components/fields/Select.md +16 -12
  1116. package/docs/components/form/Field.md +2 -2
  1117. package/docs/components/form/Form.md +60 -579
  1118. package/docs/components/form/ModernForm.md +22 -1
  1119. package/docs/components/overlays/DialogForm.md +121 -263
  1120. package/docs/components/overlays/DialogTrigger.md +1 -1
  1121. package/docs/components/overlays/UseDialogContainer.md +11 -13
  1122. package/docs/modern-form-guide.md +22 -1
  1123. package/docs/modern-form-migration.md +1 -1
  1124. package/package.json +7 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ItemTable.js","names":[],"sources":["../../../../src/components/data/ItemTable/ItemTable.tsx"],"sourcesContent":["import { useCollator } from '@react-aria/i18n';\nimport { useControlledState } from '@react-stately/utils';\nimport { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useEvent, useWarn } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { clampPage, getPageInfo } from '../../navigation/Pagination';\nimport { DraggableCollection } from '../../shared/DraggableCollection';\nimport {\n ROW_MENU_COLUMN_KEY,\n ROW_MENU_COLUMN_WIDTH,\n} from '../TableBase/row-menu';\nimport {\n buildTableTree,\n filterTableTree,\n flattenTableTree,\n isTableTreeDescendant,\n reindexTableTree,\n sortTableTree,\n} from '../TableBase/table-tree';\nimport { TableView } from '../TableBase/TableView';\nimport { useContainerWidth } from '../TableBase/use-container-width';\nimport {\n freezeColumnWidths,\n getColumnText,\n useTableColumns,\n} 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 useTableSelection,\n} from '../TableBase/use-table-selection';\nimport { compareByColumn, useTableSort } from '../TableBase/use-table-sort';\nimport { useTableStorage } from '../TableBase/use-table-storage';\nimport { useTableTreeState } from '../TableBase/use-table-tree-state';\n\nimport { ItemTableBulkBar } from './ItemTableBulkBar';\nimport { ItemTableDragPreview } from './ItemTableDragPreview';\nimport { ItemTableFooter } from './ItemTableFooter';\nimport {\n ItemTableChromeProvider,\n ItemTableSearch,\n ItemTableToolbar,\n} from './ItemTableToolbar';\n\nimport type { Key } from '@react-types/shared';\nimport type { ForwardedRef, ReactElement, ReactNode } from 'react';\nimport type {\n CubeTableColumnLayout,\n CubeTableRowContext,\n CubeTableSort,\n} from '../TableBase/types';\nimport type { CubeItemTableProps } from './types';\n\n/** Stable identity, so the uncontrolled default does not change every render. */\nconst EMPTY_WIDTHS: Record<string, number> = {};\n\nfunction defaultGetRowKey<T>(rowKey: string) {\n return (row: T, index: number): Key => {\n const value = (row as any)?.[rowKey];\n\n return value == null ? index : (value as Key);\n };\n}\n\nfunction ItemTable<T = any>(\n props: CubeItemTableProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {\n data,\n columns,\n rowKey = 'id',\n getRowKey,\n getRowChildren,\n treeColumnKey,\n expandedKeys,\n defaultExpandedKeys,\n onExpand,\n isLoading = false,\n loadingIndicator = 'overlay',\n selectionMode,\n bulkActions,\n rowLink,\n onRowAction,\n rowMenu,\n rowContextMenu = false,\n onRowMenuAction,\n rowMenuTriggerProps,\n bulkBarPlacement = 'floating',\n bulkBarStyles,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode = 'page',\n isRowSelectable,\n selectionTooltip,\n disabledKeys,\n treeSelectionBehavior = 'cascade',\n skeletonRowCount = 6,\n emptyLabel,\n noResultsLabel,\n error,\n isFiltered,\n toolbar,\n isSearchable = false,\n searchMode = 'client',\n searchPlaceholder,\n searchValue: searchValueProp,\n defaultSearchValue,\n onSearchChange,\n searchDelay = 500,\n searchFilter,\n filters,\n actions,\n onRefresh,\n paginationMode = 'client',\n pageSize: pageSizeProp,\n defaultPageSize = 50,\n autoHidePagination = true,\n onLoadMore,\n hasMore,\n isLoadingMore,\n loadMoreMargin,\n storageKey,\n persist,\n isReorderable = false,\n onReorder,\n dropOnRow,\n getItemDragInfo,\n isResizable = false,\n columnWidths: columnWidthsProp,\n defaultColumnWidths,\n onColumnResize,\n columnContextMenu,\n onColumnMenuAction,\n columnMenuTriggerProps,\n columnMenuProps,\n onPageSizeChange,\n pageSizeOptions = [10, 20, 50, 100, 500],\n page: pageProp,\n defaultPage,\n onPageChange,\n total: totalProp,\n totalPages,\n hasNextPage,\n summary = true,\n footer,\n footerStart,\n footerCenter,\n footerEnd,\n sortMode,\n sort: sortProp,\n defaultSort,\n onSortChange,\n shape = 'plain',\n size = 'medium',\n rowHeight,\n headerHeight,\n isStriped = false,\n isHeaderHidden = false,\n isHeaderSticky = true,\n isAutoHeight = false,\n isVirtualized = 'auto',\n virtualizeThreshold = 50,\n overscan = 20,\n getRowProps,\n ariaLabel,\n qa,\n mods,\n styles,\n headerStyles,\n headerCellStyles,\n headerPreset = 'c3',\n toolbarStyles,\n searchStyles,\n footerStyles,\n bodyStyles,\n rowStyles,\n cellStyles,\n isRowMoveAnimated,\n } = props;\n\n const { t } = useI18n();\n\n const localRef = useRef<HTMLDivElement>(null);\n const rootRef = useCombinedRefs(ref, localRef);\n\n // Held in state, not a ref: the virtualized path's scroller is created by\n // Virtuoso and arrives through a callback, and the column layout has to\n // re-derive once it does.\n const [scrollerEl, setScrollerEl] = useState<HTMLDivElement | null>(null);\n const containerWidth = useContainerWidth(scrollerEl);\n\n // Style props (`height`, `maxHeight`, `margin`, …) land on the root frame.\n // `height` matters most: there is no page-scroll mode, so bounding the table\n // is what turns the body into a scroller and pins the header.\n const rootStyles = { ...extractStyles(props, CONTAINER_STYLES), ...styles };\n\n const resolvedGetRowKey = useMemo(\n () => getRowKey ?? defaultGetRowKey<T>(rowKey),\n [getRowKey, rowKey],\n );\n\n const treeModel = useMemo(\n () =>\n getRowChildren\n ? buildTableTree(data, getRowChildren, resolvedGetRowKey)\n : null,\n [data, getRowChildren, resolvedGetRowKey],\n );\n\n useWarn(treeModel != null && treeModel.duplicateKeys.length > 0, {\n key: ['item-table-tree-duplicate-keys'],\n args: [\n 'ItemTable:',\n 'Tree row keys must be unique across the complete hierarchy. Duplicate rows were ignored.',\n ],\n });\n useWarn(treeModel != null && treeModel.cyclicKeys.length > 0, {\n key: ['item-table-tree-cyclic-keys'],\n args: [\n 'ItemTable:',\n 'Tree data contains a cycle. Cyclic descendants were ignored.',\n ],\n });\n useWarn(treeModel != null && isReorderable, {\n key: ['item-table-tree-reorder-unsupported'],\n args: [\n 'ItemTable:',\n '`isReorderable` is ignored in tree mode. Use `dropOnRow` for folder-style moves.',\n ],\n });\n\n const resolvedTreeColumnKey = useMemo(() => {\n if (!treeModel) return undefined;\n const visibleColumns = columns.filter((column) => !column.isHidden);\n return visibleColumns.some((column) => column.key === treeColumnKey)\n ? treeColumnKey\n : visibleColumns[0]?.key;\n }, [treeModel, columns, treeColumnKey]);\n\n useWarn(\n treeModel != null &&\n treeColumnKey != null &&\n resolvedTreeColumnKey !== treeColumnKey,\n {\n key: ['item-table-tree-column-invalid', treeColumnKey],\n args: [\n 'ItemTable:',\n '`treeColumnKey` must identify a visible data column. Falling back to the first visible column.',\n ],\n },\n );\n\n 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 toggleSort,\n setColumnSort,\n mode: resolvedSortMode,\n } = useTableSort<T>({\n columns,\n rows: treeModel\n ? searchedTree?.roots.map((node) => node.row) ?? []\n : searchedRows,\n mode: treeModel ? 'server' : sortMode,\n sort: sortProp,\n // Only restore what the table owns: a controlled `sort` belongs to the page,\n // and overriding it here would fight the page's own source of truth.\n defaultSort:\n sortProp === undefined && storage.has('sort')\n ? storage.initial.sort ?? defaultSort\n : defaultSort,\n onSortChange: useEvent((next: CubeTableSort | null) => {\n if (sortProp === undefined) storage.write({ sort: next });\n onSortChange?.(next);\n }),\n });\n\n const collator = useCollator({ numeric: true, sensitivity: 'base' });\n const treeSortMode = treeModel\n ? sortMode ??\n (columns.some((column) => column.isSortable) ? 'client' : 'off')\n : resolvedSortMode;\n const processedTreeRoots = useMemo(() => {\n const roots = searchedTree?.roots ?? [];\n if (treeSortMode !== 'client' || !sort) return roots;\n const column = columns.find((entry) => entry.key === sort.columnKey);\n if (!column) return roots;\n\n return sortTableTree(roots, (a, b) => {\n const result = compareByColumn(\n column,\n collator,\n a.row,\n a.sourceIndex,\n b.row,\n b.sourceIndex,\n );\n return result * (sort.direction === 'asc' ? 1 : -1);\n });\n }, [searchedTree, treeSortMode, sort, columns, collator]);\n\n // Search → sort → paginate. Paging last, so a page always reflects the rows\n // the user is actually looking at.\n //\n // Deliberately not `usePagination`: that hook owns an in-memory array, and in\n // server mode `data` is a single page. Deriving the bounds from it would clamp\n // the page to 1 and swallow every page change.\n const [pageSize, setPageSizeState] = useControlledState<number>(\n pageSizeProp as number,\n pageSizeProp === undefined && storage.has('pageSize')\n ? storage.initial.pageSize ?? defaultPageSize\n : defaultPageSize,\n onPageSizeChange as (value: number) => void,\n );\n const [page, setPageState] = useControlledState<number>(\n pageProp as number,\n defaultPage ?? 1,\n onPageChange as (value: number) => void,\n );\n\n const isInfinite = paginationMode === 'infinite';\n // Infinite scroll replaces the page control rather than adding to it.\n const isPaginated = paginationMode !== 'off' && !isInfinite;\n const isServerPaginated = paginationMode === 'server';\n const total = isServerPaginated\n ? totalProp ?? 0\n : treeModel\n ? processedTreeRoots.length\n : sortedRows.length;\n\n const pageInfo = getPageInfo({\n page,\n pageSize,\n total,\n totalPages: isServerPaginated ? totalPages : undefined,\n });\n\n const setPage = useEvent((next: number) =>\n setPageState(clampPage(next, pageInfo.totalPages)),\n );\n const setPageSize = useEvent((next: number) => {\n setPageSizeState(next);\n\n if (pageSizeProp === undefined) storage.write({ pageSize: next });\n\n // The old page index points at different rows under a new page size, so\n // staying on it would silently move the user.\n setPageState(1);\n });\n\n const flatVisibleRows =\n paginationMode === 'client'\n ? sortedRows.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : sortedRows;\n\n const pageTreeRoots = useMemo(\n () =>\n reindexTableTree(\n paginationMode === 'client'\n ? processedTreeRoots.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : processedTreeRoots,\n ),\n [processedTreeRoots, paginationMode, pageInfo.page, pageSize],\n );\n\n const treeState = useTableTreeState<T>({\n roots: 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) ?? String(node.key)\n : String(node.key);\n },\n onExpand,\n ariaLabel,\n });\n\n const visibleTreeEntries = treeModel ? treeState.visibleEntries : [];\n const visibleRows = treeModel\n ? visibleTreeEntries.map((entry) => entry.row)\n : flatVisibleRows;\n const visibleRowKeys = treeModel\n ? visibleTreeEntries.map((entry) => entry.key)\n : undefined;\n const pageTreeEntries = treeModel ? flattenTableTree(pageTreeRoots) : [];\n const filteredTreeEntries = treeModel\n ? flattenTableTree(processedTreeRoots)\n : [];\n const selectionTree = useMemo(() => {\n if (!treeModel) return undefined;\n\n // Selection follows the tree the user can currently act on. In\n // particular, a search that retains only an ancestor path must not let a\n // checked ancestor reach siblings that the search removed.\n const childrenOf = new Map<Key, Key[]>();\n const parentOf = new Map<Key, Key | null>();\n\n flattenTableTree(processedTreeRoots).forEach((node) => {\n childrenOf.set(\n node.key,\n node.children.map((child) => child.key),\n );\n parentOf.set(node.key, node.parentKey);\n });\n\n return {\n rootKeys: processedTreeRoots.map((node) => node.key),\n childrenOf,\n parentOf,\n behavior: treeSelectionBehavior,\n };\n }, [treeModel, processedTreeRoots, treeSelectionBehavior]);\n\n // A bulk action with no way to select rows is a contradiction, so supplying\n // any implies multiple selection unless the consumer says otherwise.\n const resolvedSelectionMode =\n selectionMode ?? (bulkActions?.length ? 'multiple' : 'none');\n\n const selection = useTableSelection<T>({\n rows: visibleRows,\n rowKeys: visibleRowKeys,\n pageRows: treeModel\n ? pageTreeEntries.map((entry) => entry.row)\n : visibleRows,\n pageRowKeys: treeModel\n ? pageTreeEntries.map((entry) => entry.key)\n : undefined,\n // The wider set the header checkbox can reach under\n // `selectAllMode=\"filtered\"`. In server mode the client only ever holds one\n // page, so the two coincide.\n filteredRows: treeModel\n ? (paginationMode === 'client'\n ? filteredTreeEntries\n : pageTreeEntries\n ).map((entry) => entry.row)\n : paginationMode === 'client'\n ? sortedRows\n : visibleRows,\n filteredRowKeys: treeModel\n ? (paginationMode === 'client'\n ? filteredTreeEntries\n : pageTreeEntries\n ).map((entry) => entry.key)\n : undefined,\n getRowKey: resolvedGetRowKey,\n selectionMode: resolvedSelectionMode,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode,\n isRowSelectable,\n disabledKeys,\n tree: selectionTree,\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 /**\n * Column widths, in three layers.\n *\n * The draft exists because a resize has to be visible *while* it happens, and\n * a controlled `columnWidths` cannot be: the consumer only learns the new\n * width from `onColumnResize`, which fires when the gesture ends. Without a\n * draft a controlled table simply would not move under the pointer.\n */\n const [ownColumnWidths, setOwnColumnWidths] = useState<\n Record<string, number>\n >(\n () =>\n (columnWidthsProp === undefined && storage.has('columnWidths')\n ? storage.initial.columnWidths ?? defaultColumnWidths\n : defaultColumnWidths) ?? EMPTY_WIDTHS,\n );\n const [draftColumnWidths, setDraftColumnWidths] = useState<Record<\n string,\n number\n > | null>(null);\n\n /**\n * The same draft, in a ref.\n *\n * A keyboard resize runs `useMove`'s whole start → move → end cycle inside\n * one key press, so the end handler would read the state from before the\n * move. The ref is what it actually settles on; the state exists only to\n * trigger the render.\n */\n const draftColumnWidthsRef = useRef<Record<string, number> | null>(null);\n\n const baseColumnWidths = columnWidthsProp ?? ownColumnWidths;\n const columnWidths = draftColumnWidths ?? baseColumnWidths;\n\n /** `layout` is computed below; `useEvent` only reads this when a drag runs. */\n const layoutRef = useRef<CubeTableColumnLayout<T> | null>(null);\n\n const handleColumnResize = useEvent((key: string, width: number) => {\n // First move of a drag freezes every column, so this changes exactly one\n // width instead of re-splitting the flex pool. See `freezeColumnWidths`.\n const base =\n draftColumnWidthsRef.current ??\n freezeColumnWidths(layoutRef.current, baseColumnWidths);\n\n draftColumnWidthsRef.current = { ...base, [key]: Math.round(width) };\n setDraftColumnWidths(draftColumnWidthsRef.current);\n });\n\n // Once at the end: a callback per pixel would be unusable, and persisting\n // every frame would hammer `localStorage`.\n const handleColumnResizeEnd = useEvent((key: string) => {\n const next = draftColumnWidthsRef.current ?? baseColumnWidths;\n\n if (columnWidthsProp === undefined) {\n setOwnColumnWidths(next);\n storage.write({ columnWidths: next });\n }\n\n onColumnResize?.(key, next[key], next);\n\n // The prop (or `ownColumnWidths`) is the source of truth again. A\n // controlled consumer that ignores the callback reverts, which is what\n // being controlled means.\n draftColumnWidthsRef.current = null;\n setDraftColumnWidths(null);\n });\n\n const layout = useTableColumns<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n });\n\n layoutRef.current = layout;\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 /**\n * Pagination that cannot do anything is noise: one page of five rows still\n * renders \"1–5 of 5\", a page-size selector whose every option shows the same\n * five rows, and a solitary \"1\" button.\n *\n * \"Cannot do anything\" is both conditions together — a single page *and* a\n * total that even the smallest page size would not split. A 15-row single\n * page stays, because choosing \"10 / page\" would genuinely paginate it.\n */\n const smallestPageSize = pageSizeOptions?.length\n ? Math.min(...pageSizeOptions)\n : pageSize;\n\n const isPaginationUseless =\n autoHidePagination &&\n !hasNextPage &&\n pageInfo.totalPages <= 1 &&\n total <= smallestPageSize;\n\n const showPagination = isPaginated && !isPaginationUseless;\n\n const hasFooter =\n footer !== undefined ||\n showPagination ||\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={\n showPagination\n ? {\n page: pageInfo.page,\n pageSize,\n total,\n totalPages: pageInfo.totalPages,\n pageSizeOptions,\n summary,\n hasNextPage,\n onPageChange: setPage,\n onPageSizeChange: setPageSize,\n }\n : undefined\n }\n />\n )\n : null;\n\n const bodyRef = useRef<HTMLTableSectionElement>(null);\n\n const rowKeys = useMemo(\n () =>\n visibleRows.map((row, index) =>\n String(visibleRowKeys?.[index] ?? resolvedGetRowKey(row, index)),\n ),\n [visibleRows, visibleRowKeys, resolvedGetRowKey],\n );\n\n const handleReorder = useEvent((nextKeys: string[]) => {\n const byKey = new Map(\n visibleRows.map((row, index) => [\n String(resolvedGetRowKey(row, index)),\n row,\n ]),\n );\n\n onReorder?.(\n nextKeys,\n nextKeys\n .map((key) => byKey.get(key))\n .filter((row): row is T => row !== undefined),\n );\n });\n\n /**\n * `DraggableCollection` owns the React Aria drag/drop hooks and hands the two\n * states down. It is only mounted when reordering is on, so a plain table\n * pays nothing for it.\n *\n * `RowCollection` and the `SelectionManager` from `useTableSelection` satisfy\n * its structural `state` contract unchanged — both exist even when selection\n * itself is off.\n */\n const renderTable = (\n dragState?: any,\n dropState?: any,\n collectionProps?: Record<string, any>,\n ) => (\n <TableView<T>\n rootRef={rootRef}\n dragState={dragState}\n dropState={dropState}\n collectionProps={collectionProps}\n bodyRef={bodyRef}\n qa={qa || 'ItemTable'}\n rows={visibleRows}\n rowKeys={visibleRowKeys}\n // `aria-rowindex` is document-absolute by contract: on page 3 a screen\n // reader should hear \"row 51 of 240\", not \"row 1 of 25\". Infinite scroll\n // never offsets — every loaded row is already in `visibleRows`.\n // `isPaginated` already excludes infinite scroll, where every loaded row\n // is in `visibleRows` and there is no page to offset by.\n rowIndexOffset={\n treeModel ? 0 : isPaginated ? (pageInfo.page - 1) * pageSize : 0\n }\n totalRowCount={treeModel ? visibleRows.length : total}\n getRowKey={resolvedGetRowKey}\n layout={layout}\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={isInfinite ? onLoadMore : undefined}\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n loadMoreMargin={loadMoreMargin}\n isReorderable={isDragEnabled}\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={treeSortMode}\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 rowByKeyForDrop = useMemo(() => {\n const map = new Map<string, T>();\n\n visibleRows.forEach((row, index) =>\n map.set(\n String(visibleRowKeys?.[index] ?? resolvedGetRowKey(row, index)),\n row,\n ),\n );\n\n return map;\n }, [visibleRows, visibleRowKeys, resolvedGetRowKey]);\n\n const handleItemDrop = useEvent((targetKey: Key, draggedKeys: Key[]) => {\n if (!dropOnRow) return;\n\n const target = rowByKeyForDrop.get(String(targetKey));\n\n if (!target) return;\n\n const draggedKeySet = new Set(draggedKeys);\n const topmostDraggedKeys = treeModel\n ? draggedKeys.filter((key) => {\n let parent = treeModel.parentOf.get(key);\n while (parent != null) {\n if (draggedKeySet.has(parent)) return false;\n parent = treeModel.parentOf.get(parent);\n }\n return true;\n })\n : draggedKeys;\n\n if (\n treeModel &&\n topmostDraggedKeys.some((key) =>\n isTableTreeDescendant(treeModel, targetKey, key),\n )\n ) {\n return;\n }\n\n const dragged = topmostDraggedKeys\n .map((key) => rowByKeyForDrop.get(String(key)))\n // A row cannot be dropped on itself.\n .filter((row): row is T => row !== undefined && row !== target);\n\n if (!dragged.length) return;\n if (dropOnRow.isAllowed && !dropOnRow.isAllowed(dragged, target)) return;\n\n void dropOnRow.onDrop(dragged, target);\n });\n\n const renderDragPreview = useEvent((keys: Key[]) => (\n <ItemTableDragPreview<T>\n rows={keys\n .map((key) => rowByKeyForDrop.get(String(key)))\n .filter((row): row is T => row !== undefined)}\n getItemDragInfo={getItemDragInfo!}\n />\n ));\n\n const shouldAcceptItemDrop = useEvent((targetKey: Key) => {\n const target = rowByKeyForDrop.get(String(targetKey));\n\n return target != null && (dropOnRow?.isTarget(target) ?? false);\n });\n\n // Dropping onto a row and reordering both need the drag machinery.\n const isDragEnabled = (!treeModel && isReorderable) || dropOnRow != null;\n\n const table = isDragEnabled ? (\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={rowKeys}\n orientation=\"vertical\"\n onReorder={!treeModel && isReorderable ? handleReorder : undefined}\n onItemDrop={dropOnRow ? handleItemDrop : undefined}\n shouldAcceptItemDrop={dropOnRow ? shouldAcceptItemDrop : undefined}\n renderPreview={getItemDragInfo ? renderDragPreview : undefined}\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\nconst _ItemTable = Object.assign(\n forwardRef(ItemTable) as unknown as (<T = any>(\n props: CubeItemTableProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n ) => ReactElement) & { displayName?: string },\n {\n /** The table's search input, bound to the table's own state. */\n Search: ItemTableSearch,\n /** The default toolbar row, for rebuilding it around extra content. */\n Toolbar: ItemTableToolbar,\n /** The selection action bar, for placing it outside the default chrome. */\n BulkBar: ItemTableBulkBar,\n },\n);\n\n_ItemTable.displayName = 'ItemTable';\n\nexport { _ItemTable as ItemTable };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,MAAM,eAAuC,EAAE;AAE/C,SAAS,iBAAoB,QAAgB;AAC3C,SAAQ,KAAQ,UAAuB;EACrC,MAAM,QAAS,MAAc;AAE7B,SAAO,SAAS,OAAO,QAAS;;;AAIpC,SAAS,UACP,OACA,KACc;CACd,MAAM,EACJ,MACA,SACA,SAAS,MACT,WACA,gBACA,eACA,cACA,qBACA,UACA,YAAY,OACZ,mBAAmB,WACnB,eACA,aACA,SACA,aACA,SACA,iBAAiB,OACjB,iBACA,qBACA,mBAAmB,YACnB,eACA,cAAc,kBACd,qBACA,mBACA,gBAAgB,QAChB,iBACA,kBACA,cACA,wBAAwB,WACxB,mBAAmB,GACnB,YACA,gBACA,OACA,YACA,SACA,eAAe,OACf,aAAa,UACb,mBACA,aAAa,iBACb,oBACA,gBACA,cAAc,KACd,cACA,SACA,SACA,WACA,iBAAiB,UACjB,UAAU,cACV,kBAAkB,IAClB,qBAAqB,MACrB,YACA,SACA,eACA,gBACA,YACA,SACA,gBAAgB,OAChB,WACA,WACA,iBACA,cAAc,OACd,cAAc,kBACd,qBACA,gBACA,mBACA,oBACA,wBACA,iBACA,kBACA,kBAAkB;EAAC;EAAI;EAAI;EAAI;EAAK;EAAI,EACxC,MAAM,UACN,aACA,cACA,OAAO,WACP,YACA,aACA,UAAU,MACV,QACA,aACA,cACA,WACA,UACA,MAAM,UACN,aACA,cACA,QAAQ,SACR,OAAO,UACP,WACA,cACA,YAAY,OACZ,iBAAiB,OACjB,iBAAiB,MACjB,eAAe,OACf,gBAAgB,QAChB,sBAAsB,IACtB,WAAW,IACX,aACA,WACA,IACA,MACA,QACA,cACA,kBACA,eAAe,MACf,eACA,cACA,cACA,YACA,WACA,YACA,sBACE;CAEJ,MAAM,EAAE,MAAM,SAAS;CAGvB,MAAM,UAAU,gBAAgB,KADf,OAAuB,KAAK,CACC;CAK9C,MAAM,CAAC,YAAY,iBAAiB,SAAgC,KAAK;CACzE,MAAM,iBAAiB,kBAAkB,WAAW;CAKpD,MAAM,aAAa;EAAE,GAAG,cAAc,OAAO,iBAAiB;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"}
1
+ {"version":3,"file":"ItemTable.js","names":["useCollator","useControlledState","CONTAINER_STYLES","forwardRef","useMemo","useRef","useState","useEvent","useWarn","useI18n","useCombinedRefs","extractStyles","clampPage","getPageInfo","DraggableCollection","ROW_MENU_COLUMN_KEY","ROW_MENU_COLUMN_WIDTH","buildTableTree","filterTableTree","flattenTableTree","isTableTreeDescendant","reindexTableTree","sortTableTree","TableView","useContainerWidth","freezeColumnWidths","getColumnText","useTableColumns","matchesTableSearch","useTableSearch","SELECTION_COLUMN_KEY","SELECTION_COLUMN_WIDTH","useTableSelection","compareByColumn","useTableSort","useTableStorage","useTableTreeState","ItemTableBulkBar","ItemTableDragPreview","ItemTableFooter","ItemTableChromeProvider","ItemTableSearch","ItemTableToolbar","Key","ForwardedRef","ReactElement","ReactNode","CubeTableColumnLayout","CubeTableRowContext","CubeTableSort","CubeItemTableProps","EMPTY_WIDTHS","Record","defaultGetRowKey","rowKey","row","T","index","value","ItemTable","props","ref","HTMLDivElement","data","columns","getRowKey","getRowChildren","treeColumnKey","expandedKeys","defaultExpandedKeys","onExpand","isLoading","loadingIndicator","selectionMode","bulkActions","rowLink","onRowAction","rowMenu","rowContextMenu","onRowMenuAction","rowMenuTriggerProps","bulkBarPlacement","bulkBarStyles","selectedKeys","selectedKeysProp","defaultSelectedKeys","onSelectionChange","selectAllMode","isRowSelectable","selectionTooltip","disabledKeys","treeSelectionBehavior","skeletonRowCount","emptyLabel","noResultsLabel","error","isFiltered","toolbar","isSearchable","searchMode","searchPlaceholder","searchValue","searchValueProp","defaultSearchValue","onSearchChange","searchDelay","searchFilter","filters","actions","onRefresh","paginationMode","pageSize","pageSizeProp","defaultPageSize","autoHidePagination","onLoadMore","hasMore","isLoadingMore","loadMoreMargin","storageKey","persist","isReorderable","onReorder","dropOnRow","getItemDragInfo","isResizable","columnWidths","columnWidthsProp","defaultColumnWidths","onColumnResize","columnContextMenu","onColumnMenuAction","columnMenuTriggerProps","columnMenuProps","onPageSizeChange","pageSizeOptions","page","pageProp","defaultPage","onPageChange","total","totalProp","totalPages","hasNextPage","summary","footer","footerStart","footerCenter","footerEnd","sortMode","sort","sortProp","defaultSort","onSortChange","shape","size","rowHeight","headerHeight","isStriped","isHeaderHidden","isHeaderSticky","isAutoHeight","isVirtualized","virtualizeThreshold","overscan","getRowProps","ariaLabel","qa","mods","styles","headerStyles","headerCellStyles","headerPreset","toolbarStyles","searchStyles","footerStyles","bodyStyles","rowStyles","cellStyles","isRowMoveAnimated","t","localRef","rootRef","scrollerEl","setScrollerEl","containerWidth","rootStyles","resolvedGetRowKey","treeModel","duplicateKeys","length","key","args","cyclicKeys","resolvedTreeColumnKey","undefined","visibleColumns","filter","column","isHidden","some","setSearchValue","searchedRows","query","isSearching","rows","mode","defaultValue","onChange","delay","searchedTree","roots","forcedExpandedKeys","Set","node","sourceIndex","storage","sortedRows","toggleSort","setColumnSort","resolvedSortMode","map","has","initial","next","write","collator","numeric","sensitivity","treeSortMode","isSortable","processedTreeRoots","find","entry","columnKey","a","b","result","direction","setPageSizeState","setPageState","isInfinite","isPaginated","isServerPaginated","pageInfo","setPage","setPageSize","flatVisibleRows","slice","pageTreeRoots","treeState","allNodesByKey","byKey","Map","getTextValue","String","visibleTreeEntries","visibleEntries","visibleRows","visibleRowKeys","pageTreeEntries","filteredTreeEntries","selectionTree","childrenOf","parentOf","forEach","set","children","child","parentKey","rootKeys","behavior","resolvedSelectionMode","selection","rowKeys","pageRows","pageRowKeys","filteredRows","filteredRowKeys","tree","resolveRowMenu","ctx","trailingColumns","width","medium","align","const","leadingColumns","isEnabled","ownColumnWidths","setOwnColumnWidths","draftColumnWidths","setDraftColumnWidths","draftColumnWidthsRef","baseColumnWidths","layoutRef","handleColumnResize","base","current","Math","round","handleColumnResizeEnd","layout","hasBulkSelection","selectedCount","bulkBar","isBulkBarInToolbar","hasToolbar","toolbarNode","smallestPageSize","min","isPaginationUseless","showPagination","hasFooter","footerNode","bodyRef","HTMLTableSectionElement","handleReorder","nextKeys","get","renderTable","dragState","dropState","collectionProps","isDragEnabled","state","ariaProps","nodes","visibleNodes","entries","rowByKeyForDrop","handleItemDrop","targetKey","draggedKeys","target","draggedKeySet","topmostDraggedKeys","parent","dragged","isAllowed","onDrop","renderDragPreview","keys","shouldAcceptItemDrop","isTarget","table","collection","selectionManager","selectedRows","clearSelection","_ItemTable","Object","assign","displayName","Search","Toolbar","BulkBar"],"sources":["../../../../src/components/data/ItemTable/ItemTable.tsx"],"sourcesContent":["import { useCollator } from '@react-aria/i18n';\nimport { useControlledState } from '@react-stately/utils';\nimport { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useMemo, useRef, useState } from 'react';\n\nimport { useEvent, useWarn } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { useCombinedRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { clampPage, getPageInfo } from '../../navigation/Pagination';\nimport { DraggableCollection } from '../../shared/DraggableCollection';\nimport {\n ROW_MENU_COLUMN_KEY,\n ROW_MENU_COLUMN_WIDTH,\n} from '../TableBase/row-menu';\nimport {\n buildTableTree,\n filterTableTree,\n flattenTableTree,\n isTableTreeDescendant,\n reindexTableTree,\n sortTableTree,\n} from '../TableBase/table-tree';\nimport { TableView } from '../TableBase/TableView';\nimport { useContainerWidth } from '../TableBase/use-container-width';\nimport {\n freezeColumnWidths,\n getColumnText,\n useTableColumns,\n} 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 useTableSelection,\n} from '../TableBase/use-table-selection';\nimport { compareByColumn, useTableSort } from '../TableBase/use-table-sort';\nimport { useTableStorage } from '../TableBase/use-table-storage';\nimport { useTableTreeState } from '../TableBase/use-table-tree-state';\n\nimport { ItemTableBulkBar } from './ItemTableBulkBar';\nimport { ItemTableDragPreview } from './ItemTableDragPreview';\nimport { ItemTableFooter } from './ItemTableFooter';\nimport {\n ItemTableChromeProvider,\n ItemTableSearch,\n ItemTableToolbar,\n} from './ItemTableToolbar';\n\nimport type { Key } from '@react-types/shared';\nimport type { ForwardedRef, ReactElement, ReactNode } from 'react';\nimport type {\n CubeTableColumnLayout,\n CubeTableRowContext,\n CubeTableSort,\n} from '../TableBase/types';\nimport type { CubeItemTableProps } from './types';\n\n/** Stable identity, so the uncontrolled default does not change every render. */\nconst EMPTY_WIDTHS: Record<string, number> = {};\n\nfunction defaultGetRowKey<T>(rowKey: string) {\n return (row: T, index: number): Key => {\n const value = (row as any)?.[rowKey];\n\n return value == null ? index : (value as Key);\n };\n}\n\nfunction ItemTable<T = any>(\n props: CubeItemTableProps<T>,\n ref: ForwardedRef<HTMLDivElement>,\n): ReactElement {\n const {\n data,\n columns,\n rowKey = 'id',\n getRowKey,\n getRowChildren,\n treeColumnKey,\n expandedKeys,\n defaultExpandedKeys,\n onExpand,\n isLoading = false,\n loadingIndicator = 'overlay',\n selectionMode,\n bulkActions,\n rowLink,\n onRowAction,\n rowMenu,\n rowContextMenu = false,\n onRowMenuAction,\n rowMenuTriggerProps,\n bulkBarPlacement = 'floating',\n bulkBarStyles,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode = 'page',\n isRowSelectable,\n selectionTooltip,\n disabledKeys,\n treeSelectionBehavior = 'cascade',\n skeletonRowCount = 6,\n emptyLabel,\n noResultsLabel,\n error,\n isFiltered,\n toolbar,\n isSearchable = false,\n searchMode = 'client',\n searchPlaceholder,\n searchValue: searchValueProp,\n defaultSearchValue,\n onSearchChange,\n searchDelay = 500,\n searchFilter,\n filters,\n actions,\n onRefresh,\n paginationMode = 'client',\n pageSize: pageSizeProp,\n defaultPageSize = 50,\n autoHidePagination = true,\n onLoadMore,\n hasMore,\n isLoadingMore,\n loadMoreMargin,\n storageKey,\n persist,\n isReorderable = false,\n onReorder,\n dropOnRow,\n getItemDragInfo,\n isResizable = false,\n columnWidths: columnWidthsProp,\n defaultColumnWidths,\n onColumnResize,\n columnContextMenu,\n onColumnMenuAction,\n columnMenuTriggerProps,\n columnMenuProps,\n onPageSizeChange,\n pageSizeOptions = [10, 20, 50, 100, 500],\n page: pageProp,\n defaultPage,\n onPageChange,\n total: totalProp,\n totalPages,\n hasNextPage,\n summary = true,\n footer,\n footerStart,\n footerCenter,\n footerEnd,\n sortMode,\n sort: sortProp,\n defaultSort,\n onSortChange,\n shape = 'plain',\n size = 'medium',\n rowHeight,\n headerHeight,\n isStriped = false,\n isHeaderHidden = false,\n isHeaderSticky = true,\n isAutoHeight = false,\n isVirtualized = 'auto',\n virtualizeThreshold = 50,\n overscan = 20,\n getRowProps,\n ariaLabel,\n qa,\n mods,\n styles,\n headerStyles,\n headerCellStyles,\n headerPreset = 'c3',\n toolbarStyles,\n searchStyles,\n footerStyles,\n bodyStyles,\n rowStyles,\n cellStyles,\n isRowMoveAnimated,\n } = props;\n\n const { t } = useI18n();\n\n const localRef = useRef<HTMLDivElement>(null);\n const rootRef = useCombinedRefs(ref, localRef);\n\n // Held in state, not a ref: the virtualized path's scroller is created by\n // Virtuoso and arrives through a callback, and the column layout has to\n // re-derive once it does.\n const [scrollerEl, setScrollerEl] = useState<HTMLDivElement | null>(null);\n const containerWidth = useContainerWidth(scrollerEl);\n\n // Style props (`height`, `maxHeight`, `margin`, …) land on the root frame.\n // `height` matters most: there is no page-scroll mode, so bounding the table\n // is what turns the body into a scroller and pins the header.\n const rootStyles = { ...extractStyles(props, CONTAINER_STYLES), ...styles };\n\n const resolvedGetRowKey = useMemo(\n () => getRowKey ?? defaultGetRowKey<T>(rowKey),\n [getRowKey, rowKey],\n );\n\n const treeModel = useMemo(\n () =>\n getRowChildren\n ? buildTableTree(data, getRowChildren, resolvedGetRowKey)\n : null,\n [data, getRowChildren, resolvedGetRowKey],\n );\n\n useWarn(treeModel != null && treeModel.duplicateKeys.length > 0, {\n key: ['item-table-tree-duplicate-keys'],\n args: [\n 'ItemTable:',\n 'Tree row keys must be unique across the complete hierarchy. Duplicate rows were ignored.',\n ],\n });\n useWarn(treeModel != null && treeModel.cyclicKeys.length > 0, {\n key: ['item-table-tree-cyclic-keys'],\n args: [\n 'ItemTable:',\n 'Tree data contains a cycle. Cyclic descendants were ignored.',\n ],\n });\n useWarn(treeModel != null && isReorderable, {\n key: ['item-table-tree-reorder-unsupported'],\n args: [\n 'ItemTable:',\n '`isReorderable` is ignored in tree mode. Use `dropOnRow` for folder-style moves.',\n ],\n });\n\n const resolvedTreeColumnKey = useMemo(() => {\n if (!treeModel) return undefined;\n const visibleColumns = columns.filter((column) => !column.isHidden);\n return visibleColumns.some((column) => column.key === treeColumnKey)\n ? treeColumnKey\n : visibleColumns[0]?.key;\n }, [treeModel, columns, treeColumnKey]);\n\n useWarn(\n treeModel != null &&\n treeColumnKey != null &&\n resolvedTreeColumnKey !== treeColumnKey,\n {\n key: ['item-table-tree-column-invalid', treeColumnKey],\n args: [\n 'ItemTable:',\n '`treeColumnKey` must identify a visible data column. Falling back to the first visible column.',\n ],\n },\n );\n\n 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 toggleSort,\n setColumnSort,\n mode: resolvedSortMode,\n } = useTableSort<T>({\n columns,\n rows: treeModel\n ? searchedTree?.roots.map((node) => node.row) ?? []\n : searchedRows,\n mode: treeModel ? 'server' : sortMode,\n sort: sortProp,\n // Only restore what the table owns: a controlled `sort` belongs to the page,\n // and overriding it here would fight the page's own source of truth.\n defaultSort:\n sortProp === undefined && storage.has('sort')\n ? storage.initial.sort ?? defaultSort\n : defaultSort,\n onSortChange: useEvent((next: CubeTableSort | null) => {\n if (sortProp === undefined) storage.write({ sort: next });\n onSortChange?.(next);\n }),\n });\n\n const collator = useCollator({ numeric: true, sensitivity: 'base' });\n const treeSortMode = treeModel\n ? sortMode ??\n (columns.some((column) => column.isSortable) ? 'client' : 'off')\n : resolvedSortMode;\n const processedTreeRoots = useMemo(() => {\n const roots = searchedTree?.roots ?? [];\n if (treeSortMode !== 'client' || !sort) return roots;\n const column = columns.find((entry) => entry.key === sort.columnKey);\n if (!column) return roots;\n\n return sortTableTree(roots, (a, b) => {\n const result = compareByColumn(\n column,\n collator,\n a.row,\n a.sourceIndex,\n b.row,\n b.sourceIndex,\n );\n return result * (sort.direction === 'asc' ? 1 : -1);\n });\n }, [searchedTree, treeSortMode, sort, columns, collator]);\n\n // Search → sort → paginate. Paging last, so a page always reflects the rows\n // the user is actually looking at.\n //\n // Deliberately not `usePagination`: that hook owns an in-memory array, and in\n // server mode `data` is a single page. Deriving the bounds from it would clamp\n // the page to 1 and swallow every page change.\n const [pageSize, setPageSizeState] = useControlledState<number>(\n pageSizeProp as number,\n pageSizeProp === undefined && storage.has('pageSize')\n ? storage.initial.pageSize ?? defaultPageSize\n : defaultPageSize,\n onPageSizeChange as (value: number) => void,\n );\n const [page, setPageState] = useControlledState<number>(\n pageProp as number,\n defaultPage ?? 1,\n onPageChange as (value: number) => void,\n );\n\n const isInfinite = paginationMode === 'infinite';\n // Infinite scroll replaces the page control rather than adding to it.\n const isPaginated = paginationMode !== 'off' && !isInfinite;\n const isServerPaginated = paginationMode === 'server';\n const total = isServerPaginated\n ? totalProp ?? 0\n : treeModel\n ? processedTreeRoots.length\n : sortedRows.length;\n\n const pageInfo = getPageInfo({\n page,\n pageSize,\n total,\n totalPages: isServerPaginated ? totalPages : undefined,\n });\n\n const setPage = useEvent((next: number) =>\n setPageState(clampPage(next, pageInfo.totalPages)),\n );\n const setPageSize = useEvent((next: number) => {\n setPageSizeState(next);\n\n if (pageSizeProp === undefined) storage.write({ pageSize: next });\n\n // The old page index points at different rows under a new page size, so\n // staying on it would silently move the user.\n setPageState(1);\n });\n\n const flatVisibleRows =\n paginationMode === 'client'\n ? sortedRows.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : sortedRows;\n\n const pageTreeRoots = useMemo(\n () =>\n reindexTableTree(\n paginationMode === 'client'\n ? processedTreeRoots.slice(\n (pageInfo.page - 1) * pageSize,\n pageInfo.page * pageSize,\n )\n : processedTreeRoots,\n ),\n [processedTreeRoots, paginationMode, pageInfo.page, pageSize],\n );\n\n const treeState = useTableTreeState<T>({\n roots: 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) ?? String(node.key)\n : String(node.key);\n },\n onExpand,\n ariaLabel,\n });\n\n const visibleTreeEntries = treeModel ? treeState.visibleEntries : [];\n const visibleRows = treeModel\n ? visibleTreeEntries.map((entry) => entry.row)\n : flatVisibleRows;\n const visibleRowKeys = treeModel\n ? visibleTreeEntries.map((entry) => entry.key)\n : undefined;\n const pageTreeEntries = treeModel ? flattenTableTree(pageTreeRoots) : [];\n const filteredTreeEntries = treeModel\n ? flattenTableTree(processedTreeRoots)\n : [];\n const selectionTree = useMemo(() => {\n if (!treeModel) return undefined;\n\n // Selection follows the tree the user can currently act on. In\n // particular, a search that retains only an ancestor path must not let a\n // checked ancestor reach siblings that the search removed.\n const childrenOf = new Map<Key, Key[]>();\n const parentOf = new Map<Key, Key | null>();\n\n flattenTableTree(processedTreeRoots).forEach((node) => {\n childrenOf.set(\n node.key,\n node.children.map((child) => child.key),\n );\n parentOf.set(node.key, node.parentKey);\n });\n\n return {\n rootKeys: processedTreeRoots.map((node) => node.key),\n childrenOf,\n parentOf,\n behavior: treeSelectionBehavior,\n };\n }, [treeModel, processedTreeRoots, treeSelectionBehavior]);\n\n // A bulk action with no way to select rows is a contradiction, so supplying\n // any implies multiple selection unless the consumer says otherwise.\n const resolvedSelectionMode =\n selectionMode ?? (bulkActions?.length ? 'multiple' : 'none');\n\n const selection = useTableSelection<T>({\n rows: visibleRows,\n rowKeys: visibleRowKeys,\n pageRows: treeModel\n ? pageTreeEntries.map((entry) => entry.row)\n : visibleRows,\n pageRowKeys: treeModel\n ? pageTreeEntries.map((entry) => entry.key)\n : undefined,\n // The wider set the header checkbox can reach under\n // `selectAllMode=\"filtered\"`. In server mode the client only ever holds one\n // page, so the two coincide.\n filteredRows: treeModel\n ? (paginationMode === 'client'\n ? filteredTreeEntries\n : pageTreeEntries\n ).map((entry) => entry.row)\n : paginationMode === 'client'\n ? sortedRows\n : visibleRows,\n filteredRowKeys: treeModel\n ? (paginationMode === 'client'\n ? filteredTreeEntries\n : pageTreeEntries\n ).map((entry) => entry.key)\n : undefined,\n getRowKey: resolvedGetRowKey,\n selectionMode: resolvedSelectionMode,\n selectedKeys: selectedKeysProp,\n defaultSelectedKeys,\n onSelectionChange,\n selectAllMode,\n isRowSelectable,\n disabledKeys,\n tree: selectionTree,\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 /**\n * Column widths, in three layers.\n *\n * The draft exists because a resize has to be visible *while* it happens, and\n * a controlled `columnWidths` cannot be: the consumer only learns the new\n * width from `onColumnResize`, which fires when the gesture ends. Without a\n * draft a controlled table simply would not move under the pointer.\n */\n const [ownColumnWidths, setOwnColumnWidths] = useState<\n Record<string, number>\n >(\n () =>\n (columnWidthsProp === undefined && storage.has('columnWidths')\n ? storage.initial.columnWidths ?? defaultColumnWidths\n : defaultColumnWidths) ?? EMPTY_WIDTHS,\n );\n const [draftColumnWidths, setDraftColumnWidths] = useState<Record<\n string,\n number\n > | null>(null);\n\n /**\n * The same draft, in a ref.\n *\n * A keyboard resize runs `useMove`'s whole start → move → end cycle inside\n * one key press, so the end handler would read the state from before the\n * move. The ref is what it actually settles on; the state exists only to\n * trigger the render.\n */\n const draftColumnWidthsRef = useRef<Record<string, number> | null>(null);\n\n const baseColumnWidths = columnWidthsProp ?? ownColumnWidths;\n const columnWidths = draftColumnWidths ?? baseColumnWidths;\n\n /** `layout` is computed below; `useEvent` only reads this when a drag runs. */\n const layoutRef = useRef<CubeTableColumnLayout<T> | null>(null);\n\n const handleColumnResize = useEvent((key: string, width: number) => {\n // First move of a drag freezes every column, so this changes exactly one\n // width instead of re-splitting the flex pool. See `freezeColumnWidths`.\n const base =\n draftColumnWidthsRef.current ??\n freezeColumnWidths(layoutRef.current, baseColumnWidths);\n\n draftColumnWidthsRef.current = { ...base, [key]: Math.round(width) };\n setDraftColumnWidths(draftColumnWidthsRef.current);\n });\n\n // Once at the end: a callback per pixel would be unusable, and persisting\n // every frame would hammer `localStorage`.\n const handleColumnResizeEnd = useEvent((key: string) => {\n const next = draftColumnWidthsRef.current ?? baseColumnWidths;\n\n if (columnWidthsProp === undefined) {\n setOwnColumnWidths(next);\n storage.write({ columnWidths: next });\n }\n\n onColumnResize?.(key, next[key], next);\n\n // The prop (or `ownColumnWidths`) is the source of truth again. A\n // controlled consumer that ignores the callback reverts, which is what\n // being controlled means.\n draftColumnWidthsRef.current = null;\n setDraftColumnWidths(null);\n });\n\n const layout = useTableColumns<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n });\n\n layoutRef.current = layout;\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 /**\n * Pagination that cannot do anything is noise: one page of five rows still\n * renders \"1–5 of 5\", a page-size selector whose every option shows the same\n * five rows, and a solitary \"1\" button.\n *\n * \"Cannot do anything\" is both conditions together — a single page *and* a\n * total that even the smallest page size would not split. A 15-row single\n * page stays, because choosing \"10 / page\" would genuinely paginate it.\n */\n const smallestPageSize = pageSizeOptions?.length\n ? Math.min(...pageSizeOptions)\n : pageSize;\n\n const isPaginationUseless =\n autoHidePagination &&\n !hasNextPage &&\n pageInfo.totalPages <= 1 &&\n total <= smallestPageSize;\n\n const showPagination = isPaginated && !isPaginationUseless;\n\n const hasFooter =\n footer !== undefined ||\n showPagination ||\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={\n showPagination\n ? {\n page: pageInfo.page,\n pageSize,\n total,\n totalPages: pageInfo.totalPages,\n pageSizeOptions,\n summary,\n hasNextPage,\n onPageChange: setPage,\n onPageSizeChange: setPageSize,\n }\n : undefined\n }\n />\n )\n : null;\n\n const bodyRef = useRef<HTMLTableSectionElement>(null);\n\n const rowKeys = useMemo(\n () =>\n visibleRows.map((row, index) =>\n String(visibleRowKeys?.[index] ?? resolvedGetRowKey(row, index)),\n ),\n [visibleRows, visibleRowKeys, resolvedGetRowKey],\n );\n\n const handleReorder = useEvent((nextKeys: string[]) => {\n const byKey = new Map(\n visibleRows.map((row, index) => [\n String(resolvedGetRowKey(row, index)),\n row,\n ]),\n );\n\n onReorder?.(\n nextKeys,\n nextKeys\n .map((key) => byKey.get(key))\n .filter((row): row is T => row !== undefined),\n );\n });\n\n /**\n * `DraggableCollection` owns the React Aria drag/drop hooks and hands the two\n * states down. It is only mounted when reordering is on, so a plain table\n * pays nothing for it.\n *\n * `RowCollection` and the `SelectionManager` from `useTableSelection` satisfy\n * its structural `state` contract unchanged — both exist even when selection\n * itself is off.\n */\n const renderTable = (\n dragState?: any,\n dropState?: any,\n collectionProps?: Record<string, any>,\n ) => (\n <TableView<T>\n rootRef={rootRef}\n dragState={dragState}\n dropState={dropState}\n collectionProps={collectionProps}\n bodyRef={bodyRef}\n qa={qa || 'ItemTable'}\n rows={visibleRows}\n rowKeys={visibleRowKeys}\n // `aria-rowindex` is document-absolute by contract: on page 3 a screen\n // reader should hear \"row 51 of 240\", not \"row 1 of 25\". Infinite scroll\n // never offsets — every loaded row is already in `visibleRows`.\n // `isPaginated` already excludes infinite scroll, where every loaded row\n // is in `visibleRows` and there is no page to offset by.\n rowIndexOffset={\n treeModel ? 0 : isPaginated ? (pageInfo.page - 1) * pageSize : 0\n }\n totalRowCount={treeModel ? visibleRows.length : total}\n getRowKey={resolvedGetRowKey}\n layout={layout}\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={isInfinite ? onLoadMore : undefined}\n hasMore={hasMore}\n isLoadingMore={isLoadingMore}\n loadMoreMargin={loadMoreMargin}\n isReorderable={isDragEnabled}\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={treeSortMode}\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 rowByKeyForDrop = useMemo(() => {\n const map = new Map<string, T>();\n\n visibleRows.forEach((row, index) =>\n map.set(\n String(visibleRowKeys?.[index] ?? resolvedGetRowKey(row, index)),\n row,\n ),\n );\n\n return map;\n }, [visibleRows, visibleRowKeys, resolvedGetRowKey]);\n\n const handleItemDrop = useEvent((targetKey: Key, draggedKeys: Key[]) => {\n if (!dropOnRow) return;\n\n const target = rowByKeyForDrop.get(String(targetKey));\n\n if (!target) return;\n\n const draggedKeySet = new Set(draggedKeys);\n const topmostDraggedKeys = treeModel\n ? draggedKeys.filter((key) => {\n let parent = treeModel.parentOf.get(key);\n while (parent != null) {\n if (draggedKeySet.has(parent)) return false;\n parent = treeModel.parentOf.get(parent);\n }\n return true;\n })\n : draggedKeys;\n\n if (\n treeModel &&\n topmostDraggedKeys.some((key) =>\n isTableTreeDescendant(treeModel, targetKey, key),\n )\n ) {\n return;\n }\n\n const dragged = topmostDraggedKeys\n .map((key) => rowByKeyForDrop.get(String(key)))\n // A row cannot be dropped on itself.\n .filter((row): row is T => row !== undefined && row !== target);\n\n if (!dragged.length) return;\n if (dropOnRow.isAllowed && !dropOnRow.isAllowed(dragged, target)) return;\n\n void dropOnRow.onDrop(dragged, target);\n });\n\n const renderDragPreview = useEvent((keys: Key[]) => (\n <ItemTableDragPreview<T>\n rows={keys\n .map((key) => rowByKeyForDrop.get(String(key)))\n .filter((row): row is T => row !== undefined)}\n getItemDragInfo={getItemDragInfo!}\n />\n ));\n\n const shouldAcceptItemDrop = useEvent((targetKey: Key) => {\n const target = rowByKeyForDrop.get(String(targetKey));\n\n return target != null && (dropOnRow?.isTarget(target) ?? false);\n });\n\n // Dropping onto a row and reordering both need the drag machinery.\n const isDragEnabled = (!treeModel && isReorderable) || dropOnRow != null;\n\n const table = isDragEnabled ? (\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={rowKeys}\n orientation=\"vertical\"\n onReorder={!treeModel && isReorderable ? handleReorder : undefined}\n onItemDrop={dropOnRow ? handleItemDrop : undefined}\n shouldAcceptItemDrop={dropOnRow ? shouldAcceptItemDrop : undefined}\n renderPreview={getItemDragInfo ? renderDragPreview : undefined}\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\nconst _ItemTable = Object.assign(\n forwardRef(ItemTable) as unknown as (<T = any>(\n props: CubeItemTableProps<T> & { ref?: ForwardedRef<HTMLDivElement> },\n ) => ReactElement) & { displayName?: string },\n {\n /** The table's search input, bound to the table's own state. */\n Search: ItemTableSearch,\n /** The default toolbar row, for rebuilding it around extra content. */\n Toolbar: ItemTableToolbar,\n /** The selection action bar, for placing it outside the default chrome. */\n BulkBar: ItemTableBulkBar,\n },\n);\n\n_ItemTable.displayName = 'ItemTable';\n\nexport { _ItemTable as ItemTable };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8DA,MAAMmD,eAAuC,EAAE;AAE/C,SAASE,iBAAoBC,QAAgB;AAC3C,SAAQC,KAAQE,UAAuB;EACrC,MAAMC,QAASH,MAAcD;AAE7B,SAAOI,SAAS,OAAOD,QAASC;;;AAIpC,SAASC,UACPC,OACAC,KACc;CACd,MAAM,EACJE,MACAC,SACAV,SAAS,MACTW,WACAC,gBACAC,eACAC,cACAC,qBACAC,UACAC,YAAY,OACZC,mBAAmB,WACnBC,eACAC,aACAC,SACAC,aACAC,SACAC,iBAAiB,OACjBC,iBACAC,qBACAC,mBAAmB,YACnBC,eACAC,cAAcC,kBACdC,qBACAC,mBACAC,gBAAgB,QAChBC,iBACAC,kBACAC,cACAC,wBAAwB,WACxBC,mBAAmB,GACnBC,YACAC,gBACAC,OACAC,YACAC,SACAC,eAAe,OACfC,aAAa,UACbC,mBACAC,aAAaC,iBACbC,oBACAC,gBACAC,cAAc,KACdC,cACAC,SACAC,SACAC,WACAC,iBAAiB,UACjBC,UAAUC,cACVC,kBAAkB,IAClBC,qBAAqB,MACrBC,YACAC,SACAC,eACAC,gBACAC,YACAC,SACAC,gBAAgB,OAChBC,WACAC,WACAC,iBACAC,cAAc,OACdC,cAAcC,kBACdC,qBACAC,gBACAC,mBACAC,oBACAC,wBACAC,iBACAC,kBACAC,kBAAkB;EAAC;EAAI;EAAI;EAAI;EAAK;EAAI,EACxCC,MAAMC,UACNC,aACAC,cACAC,OAAOC,WACPC,YACAC,aACAC,UAAU,MACVC,QACAC,aACAC,cACAC,WACAC,UACAC,MAAMC,UACNC,aACAC,cACAC,QAAQ,SACRC,OAAO,UACPC,WACAC,cACAC,YAAY,OACZC,iBAAiB,OACjBC,iBAAiB,MACjBC,eAAe,OACfC,gBAAgB,QAChBC,sBAAsB,IACtBC,WAAW,IACXC,aACAC,WACAC,IACAC,MACAC,QACAC,cACAC,kBACAC,eAAe,MACfC,eACAC,cACAC,cACAC,YACAC,WACAC,YACAC,sBACEvH;CAEJ,MAAM,EAAEwH,MAAM3K,SAAS;CAGvB,MAAM6K,UAAU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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { _Text } from "../../content/Text.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -97,19 +97,19 @@ function ItemTableBulkBar(props) {
97
97
  nowrap: true,
98
98
  children: t("itemTable.selectedCount", "{{count}} selected", { count: selectedCount })
99
99
  }),
100
- actions.map((action) => {
101
- const isDisabled = action.isDisabled?.(selectedRows) ?? false;
100
+ actions.map((action_0) => {
101
+ const isDisabled = action_0.isDisabled?.(selectedRows) ?? false;
102
102
  return /* @__PURE__ */ jsx(Button, {
103
103
  size: "small",
104
- type: action.type ?? "outline",
105
- theme: action.theme,
106
- icon: action.icon,
104
+ type: action_0.type ?? "outline",
105
+ theme: action_0.theme,
106
+ icon: action_0.icon,
107
107
  isDisabled,
108
- isLoading: loadingKeys[action.key],
109
- tooltip: isDisabled && action.disabledTooltip ? action.disabledTooltip : void 0,
110
- onPress: () => run(action),
111
- children: action.label
112
- }, action.key);
108
+ isLoading: loadingKeys[action_0.key],
109
+ tooltip: isDisabled && action_0.disabledTooltip ? action_0.disabledTooltip : void 0,
110
+ onPress: () => run(action_0),
111
+ children: action_0.label
112
+ }, action_0.key);
113
113
  }),
114
114
  /* @__PURE__ */ jsx(Button, {
115
115
  size: "small",
@@ -1 +1 @@
1
- {"version":3,"file":"ItemTableBulkBar.js","names":["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,MAAM,aAAa,MAAM;CACvB,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,MAAM;EACN,KAAK;EACL,YAAY;EACZ,WAAW;EAOX,UAAU;GAAE,IAAI;GAAU,UAAU;GAAY;EAChD,OAAO;GAAE,IAAI;GAAQ,UAAU;GAAoB;EACnD,WAAW;GAAE,IAAI;GAAO,UAAU;GAAU;EAC5C,QAAQ;GAAE,IAAI;GAAQ,UAAU;GAAI;EAGpC,MAAM;GAAE,IAAI;GAAU,UAAU;GAAY;EAC5C,OAAO;EACP,QAAQ;GAAE,IAAI;GAAO,UAAU;GAAM;EACrC,QAAQ;GAAE,IAAI;GAAG,UAAU;GAAO;EAClC,QAAQ;GAAE,IAAI;GAAO,UAAU;GAAmB;EAClD,SAAS;GAAE,IAAI;GAAG,UAAU;GAAW;EACvC,OAAO;GAAE,IAAI;GAAQ,UAAU;GAAmB;EACnD;CACF,CAAC;;;;;;;;AAgBF,SAAgB,iBAA0B,OAAiC;CACzE,MAAM,EAAE,SAAS,YAAY,YAAY,WAAW;CACpD,MAAM,EAAE,MAAM,SAAS;CAEvB,MAAM,EAAE,cAAc,eAAe,mBADtB,mBAAmB,oBAAoB;CAItD,MAAM,CAAC,aAAa,kBAAkB,SAAkC,EAAE,CAAC;CAE3E,MAAM,MAAM,SAAS,OAAO,WAAmC;EAC7D,MAAM,cAAc,UAClB,gBAAgB,aAAa;GAAE,GAAG;IAAU,OAAO,MAAM;GAAO,EAAE;AAEpE,MAAI;AACF,SAAM,OAAO,SAAS,cAAqB,EAAE,YAAY,CAAC;AAK1D,OAAI,OAAO,kBAAkB,MAAO,iBAAgB;YAC5C;AACR,cAAW,MAAM;;GAEnB;AAEF,KAAI,kBAAkB,EAAG,QAAO;AAEhC,QACE,qBAAC;EACC,MAAK;EACL,cAAY,EAAE,yBAAyB,eAAe;EAC9C;EACR,MAAM,EAAE,UAAU,cAAc,YAAY;;GAE5C,oBAACA;IAAK;cACH,EAAE,2BAA2B,sBAAsB,EAClD,OAAO,eACR,CAAC;KACG;GAEN,QAAQ,KAAK,WAAW;IACvB,MAAM,aAAa,OAAO,aAAa,aAAoB,IAAI;AAE/D,WACE,oBAAC;KAEC,MAAK;KACL,MAAM,OAAO,QAAQ;KACrB,OAAO,OAAO;KACd,MAAM,OAAO;KACD;KACZ,WAAW,YAAY,OAAO;KAI9B,SACE,cAAc,OAAO,kBACjB,OAAO,kBACP;KAEN,eAAe,IAAI,OAAO;eAEzB,OAAO;OAjBH,OAAO,IAkBL;KAEX;GAEF,oBAAC;IACC,MAAK;IACL,MAAK;IACL,MAAM,oBAAC,cAAY;IACnB,cAAY,EAAE,4BAA4B,kBAAkB;IAC5D,SAAS;KACT;;GACS"}
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"],"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;GAAY;EAChDC,OAAO;GAAE,IAAI;GAAQD,UAAU;GAAoB;EACnDE,WAAW;GAAE,IAAI;GAAOF,UAAU;GAAU;EAC5CG,QAAQ;GAAE,IAAI;GAAQH,UAAU;GAAI;EAGpCI,MAAM;GAAE,IAAI;GAAUJ,UAAU;GAAY;EAC5CK,OAAO;EACPC,QAAQ;GAAE,IAAI;GAAON,UAAU;GAAM;EACrCO,QAAQ;GAAE,IAAI;GAAGP,UAAU;GAAO;EAClCQ,QAAQ;GAAE,IAAI;GAAOR,UAAU;GAAmB;EAClDS,SAAS;GAAE,IAAI;GAAGT,UAAU;GAAW;EACvCU,OAAO;GAAE,IAAI;GAAQV,UAAU;GAAkB;EACnD;CACD,CAAC;;;;;;;;AAgBF,SAAgBe,iBAA0BC,OAAiC;CACzE,MAAM,EAAEJ,SAASE,YAAY,YAAYrB,WAAWuB;CACpD,MAAM,EAAEC,MAAMlC,SAAS;CAEvB,MAAM,EAAEoC,cAAcC,eAAeC,mBADtBlC,mBAAmB,oBAAoB;CAItD,MAAM,CAACmC,aAAaC,kBAAkB1C,SAAkC,EAAE,CAAC;CAE3E,MAAM4C,MAAM3C,SAAS,OAAO4C,WAAmC;EAC7D,MAAMC,cAAcC,UAClBL,gBAAgBM,aAAa;GAAE,GAAGA;IAAUH,OAAOI,MAAMF;GAAO,EAAE;AAEpE,MAAI;AACF,SAAMF,OAAOK,SAASZ,cAAqB,EAAEQ,YAAY,CAAC;AAK1D,OAAID,OAAOM,kBAAkB,MAAOX,iBAAgB;YAC5C;AACRM,cAAW,MAAM;;GAEnB;AAEF,KAAIP,kBAAkB,EAAG,QAAO;AAEhC,QACE,qBAAC;EACC,MAAK;EACL,cAAYH,EAAE,yBAAyB,eAAe;EAC9CxB;EACR,MAAM,EAAEO,UAAUc,cAAc,YAAY;;GAE5C,oBAAC;IAAK;cACHG,EAAE,2BAA2B,sBAAsB,EAClDgB,OAAOb,eACR,CAAC;KACE;GAELR,QAAQsB,KAAKR,aAAW;IACvB,MAAMS,aAAaT,SAAOS,aAAahB,aAAoB,IAAI;AAE/D,WACE,oBAAC;KAEC,MAAK;KACL,MAAMO,SAAOU,QAAQ;KACrB,OAAOV,SAAOW;KACd,MAAMX,SAAOY;KACDH;KACZ,WAAWb,YAAYI,SAAOI;KAI9B,SACEK,cAAcT,SAAOa,kBACjBb,SAAOa,kBACPC;KAEN,eAAef,IAAIC,SAAO;eAEzBA,SAAOe;OAjBHf,SAAOI,IAkBL;KAEX;GAEF,oBAAC;IACC,MAAK;IACL,MAAK;IACL,MAAM,oBAAC,cAAY;IACnB,cAAYb,EAAE,4BAA4B,kBAAkB;IAC5D,SAASI;KAAe;;GAEf"}
@@ -1,6 +1,7 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { _Text } from "../../content/Text.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
+ import { c } from "react-compiler-runtime";
4
5
  import { tasty } from "@tenphi/tasty";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
6
7
 
@@ -33,12 +34,48 @@ const PreviewElement = tasty({
33
34
  * honestly represent five different rows, and Cloud settled on the same answer.
34
35
  */
35
36
  function ItemTableDragPreview(props) {
37
+ const $ = c(13);
36
38
  const { rows, getItemDragInfo } = props;
37
39
  const { t } = useI18n();
38
40
  if (!rows.length) return null;
39
- if (rows.length > 1) return /* @__PURE__ */ jsx(PreviewElement, { children: /* @__PURE__ */ jsx(_Text, { children: t("itemTable.dragCount", "{{count}} items", { count: rows.length }) }) });
40
- const info = getItemDragInfo(rows[0]);
41
- return /* @__PURE__ */ jsxs(PreviewElement, { children: [info.icon, /* @__PURE__ */ jsx(_Text, { children: info.label })] });
41
+ if (rows.length > 1) {
42
+ let t0;
43
+ if ($[0] !== rows.length || $[1] !== t) {
44
+ t0 = t("itemTable.dragCount", "{{count}} items", { count: rows.length });
45
+ $[0] = rows.length;
46
+ $[1] = t;
47
+ $[2] = t0;
48
+ } else t0 = $[2];
49
+ let t1;
50
+ if ($[3] !== t0) {
51
+ t1 = /* @__PURE__ */ jsx(PreviewElement, { children: /* @__PURE__ */ jsx(_Text, { children: t0 }) });
52
+ $[3] = t0;
53
+ $[4] = t1;
54
+ } else t1 = $[4];
55
+ return t1;
56
+ }
57
+ let t0;
58
+ if ($[5] !== getItemDragInfo || $[6] !== rows[0]) {
59
+ t0 = getItemDragInfo(rows[0]);
60
+ $[5] = getItemDragInfo;
61
+ $[6] = rows[0];
62
+ $[7] = t0;
63
+ } else t0 = $[7];
64
+ const info = t0;
65
+ let t1;
66
+ if ($[8] !== info.label) {
67
+ t1 = /* @__PURE__ */ jsx(_Text, { children: info.label });
68
+ $[8] = info.label;
69
+ $[9] = t1;
70
+ } else t1 = $[9];
71
+ let t2;
72
+ if ($[10] !== info.icon || $[11] !== t1) {
73
+ t2 = /* @__PURE__ */ jsxs(PreviewElement, { children: [info.icon, t1] });
74
+ $[10] = info.icon;
75
+ $[11] = t1;
76
+ $[12] = t2;
77
+ } else t2 = $[12];
78
+ return t2;
42
79
  }
43
80
 
44
81
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ItemTableDragPreview.js","names":["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,MAAM,iBAAiB,MAAM;CAC3B,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,MAAM;EACN,KAAK;EACL,YAAY;EACZ,SAAS;EACT,QAAQ;EACR,MAAM;EACN,OAAO;EACP,QAAQ;EACR,QAAQ;EACR,QAAQ;EAIR,OAAO;EACP,YAAY;EACZ,UAAU;EACV,cAAc;EACf;CACF,CAAC;;;;;;;AAaF,SAAgB,qBAAwB,OAAqC;CAC3E,MAAM,EAAE,MAAM,oBAAoB;CAClC,MAAM,EAAE,MAAM,SAAS;AAEvB,KAAI,CAAC,KAAK,OAAQ,QAAO;AAEzB,KAAI,KAAK,SAAS,EAChB,QACE,oBAAC,4BACC,oBAACA,mBACE,EAAE,uBAAuB,mBAAmB,EAAE,OAAO,KAAK,QAAQ,CAAC,GAC/D,GACQ;CAIrB,MAAM,OAAO,gBAAgB,KAAK,GAAG;AAErC,QACE,qBAAC,6BACE,KAAK,MACN,oBAACA,mBAAM,KAAK,QAAa,IACV"}
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"],"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;EAChB;CACD,CAAC;;;;;;;AAaF,SAAOQ,qBAAAC,OAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACL,MAAA,EAAAT,MAAAE,oBAAkCK;CAClC,MAAA,EAAAG,MAAcjC,SAAS;AAEvB,KAAI,CAACuB,KAAIW,OAAO,QAAS;AAEzB,KAAIX,KAAIW,SAAU,GAAC;EAAA,IAAAC;AAAA,MAAAJ,EAAA,OAAAR,KAAAW,UAAAH,EAAA,OAAAE,GAAA;AAIVE,QAAAF,EAAE,uBAAuB,mBAAmB,EAAAG,OAASb,KAAIW,QAAS,CAAC;AAAAH,KAAA,KAAAR,KAAAW;AAAAH,KAAA,KAAAE;AAAAF,KAAA,KAAAI;QAAAA,MAAAJ,EAAA;EAAA,IAAAM;AAAA,MAAAN,EAAA,OAAAI,IAAA;AAFxEE,QAAA,oBAAC,4BACC,oBAAC,mBACEF,KAEL,GAAiB;AAAAJ,KAAA,KAAAI;AAAAJ,KAAA,KAAAM;QAAAA,MAAAN,EAAA;AAAA,SAJjBM;;CAMH,IAAAF;AAAA,KAAAJ,EAAA,OAAAN,mBAAAM,EAAA,OAAAR,KAAA,IAAA;AAEYY,OAAAV,gBAAgBF,KAAI,GAAI;AAAAQ,IAAA,KAAAN;AAAAM,IAAA,KAAAR,KAAA;AAAAQ,IAAA,KAAAI;OAAAA,MAAAJ,EAAA;CAArC,MAAAO,OAAaH;CAAyB,IAAAE;AAAA,KAAAN,EAAA,OAAAO,KAAAX,OAAA;AAKlCU,OAAA,oBAAC,mBAAMC,KAAIX,QAAc;AAAAI,IAAA,KAAAO,KAAAX;AAAAI,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAAA,IAAAQ;AAAA,KAAAR,EAAA,QAAAO,KAAAV,QAAAG,EAAA,QAAAM,IAAA;AAF3BE,OAAA,qBAAC,6BACED,KAAIV,MACLS,MACe;AAAAN,IAAA,MAAAO,KAAAV;AAAAG,IAAA,MAAAM;AAAAN,IAAA,MAAAQ;OAAAA,MAAAR,EAAA;AAAA,QAHjBQ"}
@@ -1,5 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.182.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.183.0 | Cube Dev Team */
2
2
  import { _Pagination } from "../../navigation/Pagination/Pagination.js";
3
+ import { c } from "react-compiler-runtime";
3
4
  import { tasty } from "@tenphi/tasty";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
6
 
@@ -43,35 +44,71 @@ const FooterElement = tasty({
43
44
  }
44
45
  }
45
46
  });
46
- function ItemTableFooter({ start, center, end, pagination, styles }) {
47
- return /* @__PURE__ */ jsxs(FooterElement, {
48
- styles,
49
- children: [
50
- /* @__PURE__ */ jsx("div", {
51
- "data-element": "Start",
52
- children: start
53
- }),
54
- /* @__PURE__ */ jsx("div", {
55
- "data-element": "Center",
56
- children: center
57
- }),
58
- /* @__PURE__ */ jsxs("div", {
59
- "data-element": "End",
60
- children: [end, pagination ? /* @__PURE__ */ jsx(_Pagination, {
61
- size: "xsmall",
62
- page: pagination.page,
63
- pageSize: pagination.pageSize,
64
- total: pagination.total,
65
- totalPages: pagination.totalPages,
66
- pageSizeOptions: pagination.pageSizeOptions,
67
- summary: pagination.summary,
68
- hasNextPage: pagination.hasNextPage,
69
- onPageChange: pagination.onPageChange,
70
- onPageSizeChange: pagination.onPageSizeChange
71
- }) : null]
72
- })
73
- ]
74
- });
47
+ function ItemTableFooter(t0) {
48
+ const $ = c(14);
49
+ const { start, center, end, pagination, styles } = t0;
50
+ let t1;
51
+ if ($[0] !== start) {
52
+ t1 = /* @__PURE__ */ jsx("div", {
53
+ "data-element": "Start",
54
+ children: start
55
+ });
56
+ $[0] = start;
57
+ $[1] = t1;
58
+ } else t1 = $[1];
59
+ let t2;
60
+ if ($[2] !== center) {
61
+ t2 = /* @__PURE__ */ jsx("div", {
62
+ "data-element": "Center",
63
+ children: center
64
+ });
65
+ $[2] = center;
66
+ $[3] = t2;
67
+ } else t2 = $[3];
68
+ let t3;
69
+ if ($[4] !== pagination) {
70
+ t3 = pagination ? /* @__PURE__ */ jsx(_Pagination, {
71
+ size: "xsmall",
72
+ page: pagination.page,
73
+ pageSize: pagination.pageSize,
74
+ total: pagination.total,
75
+ totalPages: pagination.totalPages,
76
+ pageSizeOptions: pagination.pageSizeOptions,
77
+ summary: pagination.summary,
78
+ hasNextPage: pagination.hasNextPage,
79
+ onPageChange: pagination.onPageChange,
80
+ onPageSizeChange: pagination.onPageSizeChange
81
+ }) : null;
82
+ $[4] = pagination;
83
+ $[5] = t3;
84
+ } else t3 = $[5];
85
+ let t4;
86
+ if ($[6] !== end || $[7] !== t3) {
87
+ t4 = /* @__PURE__ */ jsxs("div", {
88
+ "data-element": "End",
89
+ children: [end, t3]
90
+ });
91
+ $[6] = end;
92
+ $[7] = t3;
93
+ $[8] = t4;
94
+ } else t4 = $[8];
95
+ let t5;
96
+ if ($[9] !== styles || $[10] !== t1 || $[11] !== t2 || $[12] !== t4) {
97
+ t5 = /* @__PURE__ */ jsxs(FooterElement, {
98
+ styles,
99
+ children: [
100
+ t1,
101
+ t2,
102
+ t4
103
+ ]
104
+ });
105
+ $[9] = styles;
106
+ $[10] = t1;
107
+ $[11] = t2;
108
+ $[12] = t4;
109
+ $[13] = t5;
110
+ } else t5 = $[13];
111
+ return t5;
75
112
  }
76
113
 
77
114
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"ItemTableFooter.js","names":["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,MAAM,gBAAgB,MAAM;CAC1B,IAAI;CACJ,IAAI;CACJ,QAAQ;EACN,SAAS;EAIT,QAAQ;EACR,SAAS;EACT,MAAM;EACN,KAAK;EACL,YAAY;EACZ,SAAS;EACT,QAAQ;EAOR,OAAO;GACL,GAAG;GACH,SAAS;GACT,MAAM;GACN,KAAK;GACL,YAAY;GACZ,OAAO;GACR;EACD,QAAQ;GACN,GAAG;GACH,SAAS;GACT,MAAM;GACN,KAAK;GACL,YAAY;GACZ,cAAc;GAGd,UAAU;GACX;EACD,KAAK;GACH,GAAG;GACH,SAAS;GACT,MAAM;GACN,KAAK;GACL,YAAY;GACZ,cAAc;GACf;EACF;CACF,CAAC;AAqBF,SAAgB,gBAAgB,EAC9B,OACA,QACA,KACA,YACA,UACuB;AACvB,QACE,qBAAC;EAAsB;;GACrB,oBAAC;IAAI,gBAAa;cAAS;KAAY;GACvC,oBAAC;IAAI,gBAAa;cAAU;KAAa;GACzC,qBAAC;IAAI,gBAAa;eACf,KACA,aACC,oBAACA;KAGC,MAAK;KACL,MAAM,WAAW;KACjB,UAAU,WAAW;KACrB,OAAO,WAAW;KAClB,YAAY,WAAW;KACvB,iBAAiB,WAAW;KAC5B,SAAS,WAAW;KACpB,aAAa,WAAW;KACxB,cAAc,WAAW;KACzB,kBAAkB,WAAW;MAC7B,GACA;KACA;;GACQ"}
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"],"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;GACR;EACDC,QAAQ;GACNF,GAAG;GACHP,SAAS;GACTC,MAAM;GACNC,KAAK;GACLC,YAAY;GACZO,cAAc;GAGdC,UAAU;GACX;EACDC,KAAK;GACHL,GAAG;GACHP,SAAS;GACTC,MAAM;GACNC,KAAK;GACLC,YAAY;GACZO,cAAc;GAChB;EACF;CACD,CAAC;AAqBF,SAAOkB,gBAAAC,IAAA;CAAA,MAAAtB,IAAAuB,EAAA,GAAA;CAAyB,MAAA,EAAAhB,OAAAC,QAAAC,KAAAC,YAAApB,WAAAgC;CAMT,IAAAE;AAAA,KAAAxB,EAAA,OAAAO,OAAA;AAGjBiB,OAAA,oBAAA;GAAkB,gBAAA;aAASjB;IAAY;AAAAP,IAAA,KAAAO;AAAAP,IAAA,KAAAwB;OAAAA,MAAAxB,EAAA;CAAA,IAAAyB;AAAA,KAAAzB,EAAA,OAAAQ,QAAA;AACvCiB,OAAA,oBAAA;GAAkB,gBAAA;aAAUjB;IAAa;AAAAR,IAAA,KAAAQ;AAAAR,IAAA,KAAAyB;OAAAA,MAAAzB,EAAA;CAAA,IAAA0B;AAAA,KAAA1B,EAAA,OAAAU,YAAA;AAGtCgB,OAAAhB,aACC,oBAAC;GAGM,MAAA;GACC,MAAAA,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;IAExB,GAfP;AAeOpB,IAAA,KAAAU;AAAAV,IAAA,KAAA0B;OAAAA,MAAA1B,EAAA;CAAA,IAAA2B;AAAA,KAAA3B,EAAA,OAAAS,OAAAT,EAAA,OAAA0B,IAAA;AAjBVC,OAAA,qBAAA;GAAkB,gBAAA;cACflB,KACAiB;IAgBG;AAAA1B,IAAA,KAAAS;AAAAT,IAAA,KAAA0B;AAAA1B,IAAA,KAAA2B;OAAAA,MAAA3B,EAAA;CAAA,IAAA4B;AAAA,KAAA5B,EAAA,OAAAV,UAAAU,EAAA,QAAAwB,MAAAxB,EAAA,QAAAyB,MAAAzB,EAAA,QAAA2B,IAAA;AArBRC,OAAA,qBAAC;GAAsBtC;;IACrBkC;IACAC;IACAE;;IAmBc;AAAA3B,IAAA,KAAAV;AAAAU,IAAA,MAAAwB;AAAAxB,IAAA,MAAAyB;AAAAzB,IAAA,MAAA2B;AAAA3B,IAAA,MAAA4B;OAAAA,MAAA5B,EAAA;AAAA,QAtBhB4B"}