@cube-dev/ui-kit 0.196.0 → 0.198.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 (1663) hide show
  1. package/dist/CHANGELOG.md +54 -9
  2. package/dist/_internal/hooks/use-debounced-value.js +2 -3
  3. package/dist/_internal/hooks/use-debounced-value.js.map +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +2 -3
  5. package/dist/_internal/hooks/use-deprecation-warning.js.map +1 -1
  6. package/dist/_internal/hooks/use-event.js +2 -3
  7. package/dist/_internal/hooks/use-event.js.map +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +2 -3
  9. package/dist/_internal/hooks/use-is-first-render.js.map +1 -1
  10. package/dist/_internal/hooks/use-sync-ref.js +2 -3
  11. package/dist/_internal/hooks/use-sync-ref.js.map +1 -1
  12. package/dist/_internal/hooks/use-timer/timer.js +2 -2
  13. package/dist/_internal/hooks/use-timer/timer.js.map +1 -1
  14. package/dist/_internal/hooks/use-timer/use-timer.js +2 -3
  15. package/dist/_internal/hooks/use-timer/use-timer.js.map +1 -1
  16. package/dist/_internal/hooks/use-warn.js +2 -3
  17. package/dist/_internal/hooks/use-warn.js.map +1 -1
  18. package/dist/components/Block.d.ts +2 -5
  19. package/dist/components/Block.js +2 -3
  20. package/dist/components/Block.js.map +1 -1
  21. package/dist/components/CollectionItem.d.ts +4 -5
  22. package/dist/components/CollectionItem.js +4 -5
  23. package/dist/components/CollectionItem.js.map +1 -1
  24. package/dist/components/GlobalStyles.js +4 -5
  25. package/dist/components/GlobalStyles.js.map +1 -1
  26. package/dist/components/GridProvider.d.ts +2 -5
  27. package/dist/components/GridProvider.js +4 -4
  28. package/dist/components/GridProvider.js.map +1 -1
  29. package/dist/components/HiddenInput.js +2 -3
  30. package/dist/components/HiddenInput.js.map +1 -1
  31. package/dist/components/Root.d.ts +2 -5
  32. package/dist/components/Root.js +2 -3
  33. package/dist/components/Root.js.map +1 -1
  34. package/dist/components/actions/Action/Action.d.ts +2 -6
  35. package/dist/components/actions/Action/Action.js +2 -3
  36. package/dist/components/actions/Action/Action.js.map +1 -1
  37. package/dist/components/actions/Banner/Banner.d.ts +9 -12
  38. package/dist/components/actions/Banner/Banner.js +3 -4
  39. package/dist/components/actions/Banner/Banner.js.map +1 -1
  40. package/dist/components/actions/Banner/index.d.ts +2 -1
  41. package/dist/components/actions/Button/Button.d.ts +4 -7
  42. package/dist/components/actions/Button/Button.js +2 -3
  43. package/dist/components/actions/Button/Button.js.map +1 -1
  44. package/dist/components/actions/Button/index.d.ts +2 -1
  45. package/dist/components/actions/ButtonGroup/ButtonGroup.d.ts +1 -4
  46. package/dist/components/actions/ButtonGroup/ButtonGroup.js +2 -3
  47. package/dist/components/actions/ButtonGroup/ButtonGroup.js.map +1 -1
  48. package/dist/components/actions/ButtonSplit/ButtonSplit.d.ts +3 -6
  49. package/dist/components/actions/ButtonSplit/ButtonSplit.js +5 -5
  50. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  51. package/dist/components/actions/ButtonSplit/context.d.ts +3 -6
  52. package/dist/components/actions/ButtonSplit/context.js +2 -3
  53. package/dist/components/actions/ButtonSplit/context.js.map +1 -1
  54. package/dist/components/actions/ButtonSplit/index.d.ts +2 -1
  55. package/dist/components/actions/CommandMenu/CommandMenu.d.ts +6 -9
  56. package/dist/components/actions/CommandMenu/CommandMenu.js +89 -76
  57. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  58. package/dist/components/actions/CommandMenu/index.d.ts +2 -1
  59. package/dist/components/actions/CommandMenu/styled.js +3 -4
  60. package/dist/components/actions/CommandMenu/styled.js.map +1 -1
  61. package/dist/components/actions/ItemAction/ItemAction.d.ts +3 -6
  62. package/dist/components/actions/ItemAction/ItemAction.js +11 -9
  63. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  64. package/dist/components/actions/ItemAction/index.d.ts +2 -1
  65. package/dist/components/actions/ItemActionContext.d.ts +5 -14
  66. package/dist/components/actions/ItemActionContext.js +2 -3
  67. package/dist/components/actions/ItemActionContext.js.map +1 -1
  68. package/dist/components/actions/ItemActionsWrapper.js +2 -3
  69. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  70. package/dist/components/actions/ItemButton/ItemButton.d.ts +6 -9
  71. package/dist/components/actions/ItemButton/ItemButton.js +4 -5
  72. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  73. package/dist/components/actions/ItemButton/index.d.ts +2 -1
  74. package/dist/components/actions/Link/Link.d.ts +1 -5
  75. package/dist/components/actions/Link/Link.js +2 -3
  76. package/dist/components/actions/Link/Link.js.map +1 -1
  77. package/dist/components/actions/Menu/Menu.d.ts +7 -10
  78. package/dist/components/actions/Menu/Menu.js +9 -8
  79. package/dist/components/actions/Menu/Menu.js.map +1 -1
  80. package/dist/components/actions/Menu/MenuCollectionItem.d.ts +3 -4
  81. package/dist/components/actions/Menu/MenuCollectionItem.js +4 -5
  82. package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -1
  83. package/dist/components/actions/Menu/MenuItem.d.ts +5 -8
  84. package/dist/components/actions/Menu/MenuItem.js +4 -4
  85. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  86. package/dist/components/actions/Menu/MenuSection.d.ts +4 -7
  87. package/dist/components/actions/Menu/MenuSection.js +2 -3
  88. package/dist/components/actions/Menu/MenuSection.js.map +1 -1
  89. package/dist/components/actions/Menu/MenuTrigger.d.ts +4 -6
  90. package/dist/components/actions/Menu/MenuTrigger.js +5 -6
  91. package/dist/components/actions/Menu/MenuTrigger.js.map +1 -1
  92. package/dist/components/actions/Menu/SubMenuTrigger.d.ts +3 -5
  93. package/dist/components/actions/Menu/SubMenuTrigger.js +3 -4
  94. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  95. package/dist/components/actions/Menu/SubmenuTriggerContext.js +2 -3
  96. package/dist/components/actions/Menu/SubmenuTriggerContext.js.map +1 -1
  97. package/dist/components/actions/Menu/context.d.ts +3 -5
  98. package/dist/components/actions/Menu/context.js +2 -3
  99. package/dist/components/actions/Menu/context.js.map +1 -1
  100. package/dist/components/actions/Menu/index.d.ts +4 -3
  101. package/dist/components/actions/Menu/styled.js +3 -4
  102. package/dist/components/actions/Menu/styled.js.map +1 -1
  103. package/dist/components/actions/actions-run.js +2 -2
  104. package/dist/components/actions/actions-run.js.map +1 -1
  105. package/dist/components/actions/index.d.ts +8 -11
  106. package/dist/components/actions/index.js +8 -9
  107. package/dist/components/actions/index.js.map +1 -1
  108. package/dist/components/actions/use-action.d.ts +10 -27
  109. package/dist/components/actions/use-action.js +15 -7
  110. package/dist/components/actions/use-action.js.map +1 -1
  111. package/dist/components/actions/use-anchored-menu.d.ts +3 -5
  112. package/dist/components/actions/use-anchored-menu.js +5 -5
  113. package/dist/components/actions/use-anchored-menu.js.map +1 -1
  114. package/dist/components/actions/use-context-menu.d.ts +4 -5
  115. package/dist/components/actions/use-context-menu.js +9 -7
  116. package/dist/components/actions/use-context-menu.js.map +1 -1
  117. package/dist/components/content/ActiveZone/ActiveZone.d.ts +3 -5
  118. package/dist/components/content/ActiveZone/ActiveZone.js +3 -4
  119. package/dist/components/content/ActiveZone/ActiveZone.js.map +1 -1
  120. package/dist/components/content/Alert/Alert.d.ts +1 -4
  121. package/dist/components/content/Alert/Alert.js +3 -3
  122. package/dist/components/content/Alert/Alert.js.map +1 -1
  123. package/dist/components/content/Alert/index.d.ts +2 -1
  124. package/dist/components/content/Alert/types.d.ts +2 -4
  125. package/dist/components/content/Alert/use-alert.js +2 -3
  126. package/dist/components/content/Alert/use-alert.js.map +1 -1
  127. package/dist/components/content/Avatar/Avatar.d.ts +2 -5
  128. package/dist/components/content/Avatar/Avatar.js +2 -3
  129. package/dist/components/content/Avatar/Avatar.js.map +1 -1
  130. package/dist/components/content/Badge/Badge.d.ts +5 -7
  131. package/dist/components/content/Badge/Badge.js +4 -5
  132. package/dist/components/content/Badge/Badge.js.map +1 -1
  133. package/dist/components/content/Card/Card.d.ts +2 -5
  134. package/dist/components/content/Card/Card.js +2 -3
  135. package/dist/components/content/Card/Card.js.map +1 -1
  136. package/dist/components/content/Content.d.ts +2 -5
  137. package/dist/components/content/Content.js +2 -3
  138. package/dist/components/content/Content.js.map +1 -1
  139. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.d.ts +3 -5
  140. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +3 -4
  141. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js.map +1 -1
  142. package/dist/components/content/CopyPasteBlock/index.d.ts +2 -1
  143. package/dist/components/content/CopySnippet/CopySnippet.d.ts +523 -520
  144. package/dist/components/content/CopySnippet/CopySnippet.js +5 -6
  145. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  146. package/dist/components/content/CopySnippet/index.d.ts +2 -1
  147. package/dist/components/content/Disclosure/Disclosure.d.ts +12 -14
  148. package/dist/components/content/Disclosure/Disclosure.js +8 -7
  149. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  150. package/dist/components/content/Disclosure/index.d.ts +2 -1
  151. package/dist/components/content/Divider.d.ts +2 -5
  152. package/dist/components/content/Divider.js +4 -4
  153. package/dist/components/content/Divider.js.map +1 -1
  154. package/dist/components/content/Footer.d.ts +2 -5
  155. package/dist/components/content/Footer.js +2 -3
  156. package/dist/components/content/Footer.js.map +1 -1
  157. package/dist/components/content/Header.d.ts +2 -5
  158. package/dist/components/content/Header.js +2 -3
  159. package/dist/components/content/Header.js.map +1 -1
  160. package/dist/components/content/HotKeys/HotKeys.d.ts +3 -5
  161. package/dist/components/content/HotKeys/HotKeys.js +4 -5
  162. package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
  163. package/dist/components/content/HotKeys/index.d.ts +2 -1
  164. package/dist/components/content/InfoBadge/InfoBadge.d.ts +4 -6
  165. package/dist/components/content/InfoBadge/InfoBadge.js +2 -3
  166. package/dist/components/content/InfoBadge/InfoBadge.js.map +1 -1
  167. package/dist/components/content/InlineInput/InlineInput.d.ts +4 -7
  168. package/dist/components/content/InlineInput/InlineInput.js +5 -5
  169. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  170. package/dist/components/content/InlineInput/index.d.ts +2 -1
  171. package/dist/components/content/Item/Item.d.ts +4 -7
  172. package/dist/components/content/Item/Item.js +4 -5
  173. package/dist/components/content/Item/Item.js.map +1 -1
  174. package/dist/components/content/Item/ItemWithNativeLinks.js +2 -3
  175. package/dist/components/content/Item/ItemWithNativeLinks.js.map +1 -1
  176. package/dist/components/content/Item/index.d.ts +2 -1
  177. package/dist/components/content/ItemBadge/ItemBadge.d.ts +3 -5
  178. package/dist/components/content/ItemBadge/ItemBadge.js +2 -3
  179. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  180. package/dist/components/content/ItemBadge/index.d.ts +2 -1
  181. package/dist/components/content/ItemCard/ItemCard.d.ts +5 -8
  182. package/dist/components/content/ItemCard/ItemCard.js +3 -4
  183. package/dist/components/content/ItemCard/ItemCard.js.map +1 -1
  184. package/dist/components/content/Layout/GridLayout.d.ts +12 -13
  185. package/dist/components/content/Layout/GridLayout.js +13 -14
  186. package/dist/components/content/Layout/GridLayout.js.map +1 -1
  187. package/dist/components/content/Layout/Layout.d.ts +1 -3
  188. package/dist/components/content/Layout/Layout.js +28 -17
  189. package/dist/components/content/Layout/Layout.js.map +1 -1
  190. package/dist/components/content/Layout/LayoutBlock.d.ts +3 -5
  191. package/dist/components/content/Layout/LayoutBlock.js +4 -5
  192. package/dist/components/content/Layout/LayoutBlock.js.map +1 -1
  193. package/dist/components/content/Layout/LayoutCenter.d.ts +3 -5
  194. package/dist/components/content/Layout/LayoutCenter.js +4 -5
  195. package/dist/components/content/Layout/LayoutCenter.js.map +1 -1
  196. package/dist/components/content/Layout/LayoutContainer.d.ts +3 -5
  197. package/dist/components/content/Layout/LayoutContainer.js +5 -5
  198. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  199. package/dist/components/content/Layout/LayoutContent.d.ts +4 -6
  200. package/dist/components/content/Layout/LayoutContent.js +3 -4
  201. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  202. package/dist/components/content/Layout/LayoutContext.d.ts +1 -3
  203. package/dist/components/content/Layout/LayoutContext.js +2 -3
  204. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  205. package/dist/components/content/Layout/LayoutFlex.d.ts +3 -5
  206. package/dist/components/content/Layout/LayoutFlex.js +4 -5
  207. package/dist/components/content/Layout/LayoutFlex.js.map +1 -1
  208. package/dist/components/content/Layout/LayoutFooter.d.ts +3 -5
  209. package/dist/components/content/Layout/LayoutFooter.js +4 -5
  210. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  211. package/dist/components/content/Layout/LayoutGrid.d.ts +3 -5
  212. package/dist/components/content/Layout/LayoutGrid.js +4 -5
  213. package/dist/components/content/Layout/LayoutGrid.js.map +1 -1
  214. package/dist/components/content/Layout/LayoutHeader.d.ts +3 -5
  215. package/dist/components/content/Layout/LayoutHeader.js +6 -6
  216. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  217. package/dist/components/content/Layout/LayoutPane.d.ts +4 -6
  218. package/dist/components/content/Layout/LayoutPane.js +7 -8
  219. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  220. package/dist/components/content/Layout/LayoutPanel.d.ts +23 -7
  221. package/dist/components/content/Layout/LayoutPanel.js +33 -21
  222. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  223. package/dist/components/content/Layout/LayoutPanelHeader.d.ts +4 -6
  224. package/dist/components/content/Layout/LayoutPanelHeader.js +4 -5
  225. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  226. package/dist/components/content/Layout/LayoutPanelTransition.js +54 -51
  227. package/dist/components/content/Layout/LayoutPanelTransition.js.map +1 -1
  228. package/dist/components/content/Layout/LayoutToolbar.d.ts +3 -5
  229. package/dist/components/content/Layout/LayoutToolbar.js +4 -5
  230. package/dist/components/content/Layout/LayoutToolbar.js.map +1 -1
  231. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +2 -3
  232. package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
  233. package/dist/components/content/Layout/index.d.ts +13 -14
  234. package/dist/components/content/Layout/index.js +17 -18
  235. package/dist/components/content/Layout/index.js.map +1 -1
  236. package/dist/components/content/Layout/utils.js +2 -2
  237. package/dist/components/content/Layout/utils.js.map +1 -1
  238. package/dist/components/content/Paragraph.d.ts +2 -5
  239. package/dist/components/content/Paragraph.js +3 -4
  240. package/dist/components/content/Paragraph.js.map +1 -1
  241. package/dist/components/content/Placeholder/Placeholder.d.ts +2 -5
  242. package/dist/components/content/Placeholder/Placeholder.js +2 -3
  243. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  244. package/dist/components/content/PrismCode/PrismCode.d.ts +3 -5
  245. package/dist/components/content/PrismCode/PrismCode.js +4 -5
  246. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  247. package/dist/components/content/PrismCode/prismSetup.js +3 -4
  248. package/dist/components/content/PrismCode/prismSetup.js.map +1 -1
  249. package/dist/components/content/PrismDiffCode/PrismDiffCode.d.ts +2 -9
  250. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +3 -4
  251. package/dist/components/content/PrismDiffCode/PrismDiffCode.js.map +1 -1
  252. package/dist/components/content/Result/Result.d.ts +9 -12
  253. package/dist/components/content/Result/Result.js +4 -5
  254. package/dist/components/content/Result/Result.js.map +1 -1
  255. package/dist/components/content/Skeleton/Skeleton.d.ts +13 -61
  256. package/dist/components/content/Skeleton/Skeleton.js +2 -3
  257. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  258. package/dist/components/content/Tag/Tag.d.ts +4 -6
  259. package/dist/components/content/Tag/Tag.js +4 -5
  260. package/dist/components/content/Tag/Tag.js.map +1 -1
  261. package/dist/components/content/Text.d.ts +1347 -1350
  262. package/dist/components/content/Text.js +3 -4
  263. package/dist/components/content/Text.js.map +1 -1
  264. package/dist/components/content/TextItem/TextItem.d.ts +6 -5
  265. package/dist/components/content/TextItem/TextItem.js +2 -3
  266. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  267. package/dist/components/content/TextItem/index.d.ts +2 -1
  268. package/dist/components/content/Title.d.ts +5 -7
  269. package/dist/components/content/Title.js +3 -4
  270. package/dist/components/content/Title.js.map +1 -1
  271. package/dist/components/content/Tree/Tree.d.ts +1 -4
  272. package/dist/components/content/Tree/Tree.js +4 -4
  273. package/dist/components/content/Tree/Tree.js.map +1 -1
  274. package/dist/components/content/Tree/TreeNode.js +5 -6
  275. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  276. package/dist/components/content/Tree/index.d.ts +2 -1
  277. package/dist/components/content/Tree/styled.js +18 -4
  278. package/dist/components/content/Tree/styled.js.map +1 -1
  279. package/dist/components/content/Tree/tree-index.js +2 -2
  280. package/dist/components/content/Tree/tree-index.js.map +1 -1
  281. package/dist/components/content/Tree/types.d.ts +11 -13
  282. package/dist/components/content/Tree/use-checkbox-tree.js +2 -3
  283. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
  284. package/dist/components/content/Tree/use-load-data.js +2 -3
  285. package/dist/components/content/Tree/use-load-data.js.map +1 -1
  286. package/dist/components/content/highlightText.js +3 -4
  287. package/dist/components/content/highlightText.js.map +1 -1
  288. package/dist/components/content/use-auto-tooltip.d.ts +1 -3
  289. package/dist/components/content/use-auto-tooltip.js +2 -3
  290. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  291. package/dist/components/data/DataTable/DataTable.d.ts +1 -2
  292. package/dist/components/data/DataTable/DataTable.js +35 -25
  293. package/dist/components/data/DataTable/DataTable.js.map +1 -1
  294. package/dist/components/data/DataTable/index.d.ts +2 -1
  295. package/dist/components/data/DataTable/types.d.ts +4 -6
  296. package/dist/components/data/ItemTable/ItemTable.d.ts +6 -4
  297. package/dist/components/data/ItemTable/ItemTable.js +8 -5
  298. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  299. package/dist/components/data/ItemTable/ItemTableBulkBar.d.ts +2 -5
  300. package/dist/components/data/ItemTable/ItemTableBulkBar.js +8 -4
  301. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
  302. package/dist/components/data/ItemTable/ItemTableDragPreview.js +3 -4
  303. package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -1
  304. package/dist/components/data/ItemTable/ItemTableFooter.js +8 -4
  305. package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -1
  306. package/dist/components/data/ItemTable/ItemTableToolbar.d.ts +4 -15
  307. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -3
  308. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  309. package/dist/components/data/ItemTable/index.d.ts +2 -1
  310. package/dist/components/data/ItemTable/types.d.ts +6 -6
  311. package/dist/components/data/ItemTable/use-item-table-column-widths.js +4 -4
  312. package/dist/components/data/ItemTable/use-item-table-column-widths.js.map +1 -1
  313. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +2 -3
  314. package/dist/components/data/ItemTable/use-item-table-drag-drop.js.map +1 -1
  315. package/dist/components/data/ItemTable/use-item-table-pagination.js +2 -3
  316. package/dist/components/data/ItemTable/use-item-table-pagination.js.map +1 -1
  317. package/dist/components/data/ItemTable/use-item-table-selection.js +2 -3
  318. package/dist/components/data/ItemTable/use-item-table-selection.js.map +1 -1
  319. package/dist/components/data/ItemTable/use-item-table-sort.js +2 -3
  320. package/dist/components/data/ItemTable/use-item-table-sort.js.map +1 -1
  321. package/dist/components/data/ItemTable/use-item-table-tree-model.js +2 -3
  322. package/dist/components/data/ItemTable/use-item-table-tree-model.js.map +1 -1
  323. package/dist/components/data/TableBase/ColumnResizer.js +2 -3
  324. package/dist/components/data/TableBase/ColumnResizer.js.map +1 -1
  325. package/dist/components/data/TableBase/RowCollection.d.ts +2 -0
  326. package/dist/components/data/TableBase/RowCollection.js +2 -2
  327. package/dist/components/data/TableBase/RowCollection.js.map +1 -1
  328. package/dist/components/data/TableBase/TableHeaderCell.js +2 -3
  329. package/dist/components/data/TableBase/TableHeaderCell.js.map +1 -1
  330. package/dist/components/data/TableBase/TableRow.js +2 -3
  331. package/dist/components/data/TableBase/TableRow.js.map +1 -1
  332. package/dist/components/data/TableBase/TableView.d.ts +2 -3
  333. package/dist/components/data/TableBase/TableView.js +25 -15
  334. package/dist/components/data/TableBase/TableView.js.map +1 -1
  335. package/dist/components/data/TableBase/TreeGridTable.js +9 -9
  336. package/dist/components/data/TableBase/TreeGridTable.js.map +1 -1
  337. package/dist/components/data/TableBase/column-header.js +2 -3
  338. package/dist/components/data/TableBase/column-header.js.map +1 -1
  339. package/dist/components/data/TableBase/column-menu.d.ts +3 -6
  340. package/dist/components/data/TableBase/column-menu.js +3 -4
  341. package/dist/components/data/TableBase/column-menu.js.map +1 -1
  342. package/dist/components/data/TableBase/column-styles.js +2 -3
  343. package/dist/components/data/TableBase/column-styles.js.map +1 -1
  344. package/dist/components/data/TableBase/column-tint.js +4 -5
  345. package/dist/components/data/TableBase/column-tint.js.map +1 -1
  346. package/dist/components/data/TableBase/index.d.ts +2 -1
  347. package/dist/components/data/TableBase/row-menu.js +2 -3
  348. package/dist/components/data/TableBase/row-menu.js.map +1 -1
  349. package/dist/components/data/TableBase/styled.d.ts +1 -3
  350. package/dist/components/data/TableBase/styled.js +168 -4
  351. package/dist/components/data/TableBase/styled.js.map +1 -1
  352. package/dist/components/data/TableBase/table-tree.d.ts +2 -0
  353. package/dist/components/data/TableBase/table-tree.js +2 -2
  354. package/dist/components/data/TableBase/table-tree.js.map +1 -1
  355. package/dist/components/data/TableBase/types.d.ts +30 -26
  356. package/dist/components/data/TableBase/types.js +2 -2
  357. package/dist/components/data/TableBase/types.js.map +1 -1
  358. package/dist/components/data/TableBase/use-cell-selection.d.ts +1 -2
  359. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  360. package/dist/components/data/TableBase/use-cell-selection.js.map +1 -1
  361. package/dist/components/data/TableBase/use-column-menu.js +4 -5
  362. package/dist/components/data/TableBase/use-column-menu.js.map +1 -1
  363. package/dist/components/data/TableBase/use-column-order.js +3 -4
  364. package/dist/components/data/TableBase/use-column-order.js.map +1 -1
  365. package/dist/components/data/TableBase/use-column-window.js +3 -4
  366. package/dist/components/data/TableBase/use-column-window.js.map +1 -1
  367. package/dist/components/data/TableBase/use-container-width.js +2 -3
  368. package/dist/components/data/TableBase/use-container-width.js.map +1 -1
  369. package/dist/components/data/TableBase/use-row-move-animation.js +3 -7
  370. package/dist/components/data/TableBase/use-row-move-animation.js.map +1 -1
  371. package/dist/components/data/TableBase/use-scrollability.js +2 -3
  372. package/dist/components/data/TableBase/use-scrollability.js.map +1 -1
  373. package/dist/components/data/TableBase/use-table-columns.js +4 -8
  374. package/dist/components/data/TableBase/use-table-columns.js.map +1 -1
  375. package/dist/components/data/TableBase/use-table-search.js +2 -3
  376. package/dist/components/data/TableBase/use-table-search.js.map +1 -1
  377. package/dist/components/data/TableBase/use-table-selection.d.ts +1 -0
  378. package/dist/components/data/TableBase/use-table-selection.js +7 -6
  379. package/dist/components/data/TableBase/use-table-selection.js.map +1 -1
  380. package/dist/components/data/TableBase/use-table-sort.js +2 -3
  381. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  382. package/dist/components/data/TableBase/use-table-sorts.js +2 -3
  383. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  384. package/dist/components/data/TableBase/use-table-storage.d.ts +1 -3
  385. package/dist/components/data/TableBase/use-table-storage.js +4 -4
  386. package/dist/components/data/TableBase/use-table-storage.js.map +1 -1
  387. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +3 -4
  388. package/dist/components/data/TableBase/use-table-tooltip-refresh.js.map +1 -1
  389. package/dist/components/data/TableBase/use-table-tree-state.js +2 -3
  390. package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
  391. package/dist/components/data/index.d.ts +4 -3
  392. package/dist/components/fields/Checkbox/Checkbox.d.ts +7 -10
  393. package/dist/components/fields/Checkbox/Checkbox.js +39 -36
  394. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  395. package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +4 -6
  396. package/dist/components/fields/Checkbox/CheckboxGroup.js +16 -16
  397. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  398. package/dist/components/fields/Checkbox/context.js +2 -3
  399. package/dist/components/fields/Checkbox/context.js.map +1 -1
  400. package/dist/components/fields/Checkbox/index.d.ts +3 -2
  401. package/dist/components/fields/ColorInput/ColorInput.d.ts +3 -6
  402. package/dist/components/fields/ColorInput/ColorInput.js +2 -3
  403. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  404. package/dist/components/fields/ColorInput/index.d.ts +2 -1
  405. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +3 -6
  406. package/dist/components/fields/ColorPicker/ColorPicker.js +321 -118
  407. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  408. package/dist/components/fields/ColorPicker/index.d.ts +2 -1
  409. package/dist/components/fields/ColorSwatch/ColorSwatch.d.ts +2 -5
  410. package/dist/components/fields/ColorSwatch/ColorSwatch.js +14 -3
  411. package/dist/components/fields/ColorSwatch/ColorSwatch.js.map +1 -1
  412. package/dist/components/fields/ColorSwatch/index.d.ts +2 -1
  413. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +3 -6
  414. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +235 -72
  415. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  416. package/dist/components/fields/ColorSwatchGroup/index.d.ts +2 -1
  417. package/dist/components/fields/ComboBox/ComboBox.d.ts +5 -6
  418. package/dist/components/fields/ComboBox/ComboBox.js +48 -45
  419. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  420. package/dist/components/fields/ComboBox/comboBoxOptions.js +2 -3
  421. package/dist/components/fields/ComboBox/comboBoxOptions.js.map +1 -1
  422. package/dist/components/fields/ComboBox/index.d.ts +2 -1
  423. package/dist/components/fields/CommandTextArea/CommandTextArea.d.ts +10 -9
  424. package/dist/components/fields/CommandTextArea/CommandTextArea.js +7 -7
  425. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  426. package/dist/components/fields/CommandTextArea/caretPosition.js +2 -2
  427. package/dist/components/fields/CommandTextArea/caretPosition.js.map +1 -1
  428. package/dist/components/fields/CommandTextArea/index.d.ts +2 -1
  429. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +2 -3
  430. package/dist/components/fields/CommandTextArea/useCaretAnchor.js.map +1 -1
  431. package/dist/components/fields/DatePicker/DateInput.d.ts +2 -3
  432. package/dist/components/fields/DatePicker/DateInput.js +10 -8
  433. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  434. package/dist/components/fields/DatePicker/DateInputBase.js +53 -44
  435. package/dist/components/fields/DatePicker/DateInputBase.js.map +1 -1
  436. package/dist/components/fields/DatePicker/DatePicker.d.ts +3 -6
  437. package/dist/components/fields/DatePicker/DatePicker.js +28 -26
  438. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  439. package/dist/components/fields/DatePicker/DatePickerButton.js +2 -3
  440. package/dist/components/fields/DatePicker/DatePickerButton.js.map +1 -1
  441. package/dist/components/fields/DatePicker/DatePickerElement.js +2 -3
  442. package/dist/components/fields/DatePicker/DatePickerElement.js.map +1 -1
  443. package/dist/components/fields/DatePicker/DatePickerInput.js +2 -3
  444. package/dist/components/fields/DatePicker/DatePickerInput.js.map +1 -1
  445. package/dist/components/fields/DatePicker/DatePickerSegment.js +2 -3
  446. package/dist/components/fields/DatePicker/DatePickerSegment.js.map +1 -1
  447. package/dist/components/fields/DatePicker/DateRangePicker.d.ts +2 -3
  448. package/dist/components/fields/DatePicker/DateRangePicker.js +29 -27
  449. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  450. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +2 -3
  451. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +110 -110
  452. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  453. package/dist/components/fields/DatePicker/MonthPicker.d.ts +3 -6
  454. package/dist/components/fields/DatePicker/MonthPicker.js +3 -4
  455. package/dist/components/fields/DatePicker/MonthPicker.js.map +1 -1
  456. package/dist/components/fields/DatePicker/PeriodPicker.d.ts +2 -4
  457. package/dist/components/fields/DatePicker/PeriodPicker.js +14 -14
  458. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  459. package/dist/components/fields/DatePicker/QuarterPicker.d.ts +3 -6
  460. package/dist/components/fields/DatePicker/QuarterPicker.js +3 -4
  461. package/dist/components/fields/DatePicker/QuarterPicker.js.map +1 -1
  462. package/dist/components/fields/DatePicker/TimeInput.d.ts +3 -6
  463. package/dist/components/fields/DatePicker/TimeInput.js +10 -8
  464. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  465. package/dist/components/fields/DatePicker/WeekPicker.d.ts +3 -6
  466. package/dist/components/fields/DatePicker/WeekPicker.js +3 -4
  467. package/dist/components/fields/DatePicker/WeekPicker.js.map +1 -1
  468. package/dist/components/fields/DatePicker/YearPicker.d.ts +3 -6
  469. package/dist/components/fields/DatePicker/YearPicker.js +3 -4
  470. package/dist/components/fields/DatePicker/YearPicker.js.map +1 -1
  471. package/dist/components/fields/DatePicker/index.d.ts +10 -9
  472. package/dist/components/fields/DatePicker/parseDate.d.ts +1 -4
  473. package/dist/components/fields/DatePicker/parseDate.js +2 -3
  474. package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
  475. package/dist/components/fields/DatePicker/period.d.ts +5 -7
  476. package/dist/components/fields/DatePicker/period.js +3 -4
  477. package/dist/components/fields/DatePicker/period.js.map +1 -1
  478. package/dist/components/fields/DatePicker/props.js +2 -2
  479. package/dist/components/fields/DatePicker/props.js.map +1 -1
  480. package/dist/components/fields/DatePicker/types.d.ts +2 -4
  481. package/dist/components/fields/DatePicker/utils.js +14 -11
  482. package/dist/components/fields/DatePicker/utils.js.map +1 -1
  483. package/dist/components/fields/FileInput/FileInput.d.ts +3 -5
  484. package/dist/components/fields/FileInput/FileInput.js +290 -107
  485. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  486. package/dist/components/fields/FilterListBox/FilterListBox.d.ts +4 -5
  487. package/dist/components/fields/FilterListBox/FilterListBox.js +24 -19
  488. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  489. package/dist/components/fields/FilterListBox/index.d.ts +2 -1
  490. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +3 -5
  491. package/dist/components/fields/FilterPicker/FilterPicker.js +12 -10
  492. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  493. package/dist/components/fields/FilterPicker/index.d.ts +2 -1
  494. package/dist/components/fields/Input/Input.d.ts +6 -7
  495. package/dist/components/fields/Input/Input.js +6 -7
  496. package/dist/components/fields/Input/Input.js.map +1 -1
  497. package/dist/components/fields/Input/index.d.ts +2 -1
  498. package/dist/components/fields/ListBox/DraggableListBox.js +2 -3
  499. package/dist/components/fields/ListBox/DraggableListBox.js.map +1 -1
  500. package/dist/components/fields/ListBox/ListBox.d.ts +5 -7
  501. package/dist/components/fields/ListBox/ListBox.js +30 -26
  502. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  503. package/dist/components/fields/ListBox/index.d.ts +2 -1
  504. package/dist/components/fields/ListBox/optionId.js +2 -2
  505. package/dist/components/fields/ListBox/optionId.js.map +1 -1
  506. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +3 -4
  507. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  508. package/dist/components/fields/ListBoxPopover/index.d.ts +2 -1
  509. package/dist/components/fields/ListBoxPopover/listNavigation.d.ts +2 -4
  510. package/dist/components/fields/ListBoxPopover/listNavigation.js +2 -2
  511. package/dist/components/fields/ListBoxPopover/listNavigation.js.map +1 -1
  512. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +4 -12
  513. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +2 -3
  514. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  515. package/dist/components/fields/NumberInput/NumberInput.d.ts +4 -6
  516. package/dist/components/fields/NumberInput/NumberInput.js +114 -110
  517. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  518. package/dist/components/fields/NumberInput/StepButton.js +2 -3
  519. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  520. package/dist/components/fields/PasswordInput/PasswordInput.d.ts +3 -5
  521. package/dist/components/fields/PasswordInput/PasswordInput.js +4 -4
  522. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  523. package/dist/components/fields/Picker/Picker.d.ts +3 -5
  524. package/dist/components/fields/Picker/Picker.js +12 -10
  525. package/dist/components/fields/Picker/Picker.js.map +1 -1
  526. package/dist/components/fields/Picker/index.d.ts +2 -1
  527. package/dist/components/fields/RadioGroup/Radio.d.ts +393 -394
  528. package/dist/components/fields/RadioGroup/Radio.js +60 -65
  529. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  530. package/dist/components/fields/RadioGroup/RadioGroup.d.ts +5 -7
  531. package/dist/components/fields/RadioGroup/RadioGroup.js +19 -19
  532. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  533. package/dist/components/fields/RadioGroup/context.js +2 -3
  534. package/dist/components/fields/RadioGroup/context.js.map +1 -1
  535. package/dist/components/fields/RadioGroup/index.d.ts +3 -2
  536. package/dist/components/fields/SearchComboBox/SearchComboBox.d.ts +5 -6
  537. package/dist/components/fields/SearchComboBox/SearchComboBox.js +16 -16
  538. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  539. package/dist/components/fields/SearchComboBox/index.d.ts +2 -1
  540. package/dist/components/fields/SearchInput/SearchInput.d.ts +4 -6
  541. package/dist/components/fields/SearchInput/SearchInput.js +48 -49
  542. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  543. package/dist/components/fields/SearchInput/index.d.ts +2 -1
  544. package/dist/components/fields/Select/Select.d.ts +9 -29
  545. package/dist/components/fields/Select/Select.js +12 -10
  546. package/dist/components/fields/Select/Select.js.map +1 -1
  547. package/dist/components/fields/Select/index.d.ts +2 -1
  548. package/dist/components/fields/Slider/Gradation.js +2 -3
  549. package/dist/components/fields/Slider/Gradation.js.map +1 -1
  550. package/dist/components/fields/Slider/HueSlider.d.ts +3 -6
  551. package/dist/components/fields/Slider/HueSlider.js +5 -6
  552. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  553. package/dist/components/fields/Slider/RangeSlider.d.ts +3 -6
  554. package/dist/components/fields/Slider/RangeSlider.js +4 -5
  555. package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
  556. package/dist/components/fields/Slider/Slider.d.ts +3 -6
  557. package/dist/components/fields/Slider/Slider.js +4 -5
  558. package/dist/components/fields/Slider/Slider.js.map +1 -1
  559. package/dist/components/fields/Slider/SliderBase.js +296 -88
  560. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  561. package/dist/components/fields/Slider/SliderThumb.js +2 -3
  562. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  563. package/dist/components/fields/Slider/SliderTrack.js +2 -3
  564. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  565. package/dist/components/fields/Slider/elements.js +2 -3
  566. package/dist/components/fields/Slider/elements.js.map +1 -1
  567. package/dist/components/fields/Slider/index.d.ts +4 -4
  568. package/dist/components/fields/Slider/index.js +5 -6
  569. package/dist/components/fields/Slider/types.d.ts +2 -3
  570. package/dist/components/fields/Switch/Switch.d.ts +4 -6
  571. package/dist/components/fields/Switch/Switch.js +78 -70
  572. package/dist/components/fields/Switch/Switch.js.map +1 -1
  573. package/dist/components/fields/TagInput/TagInput.d.ts +5 -6
  574. package/dist/components/fields/TagInput/TagInput.js +411 -998
  575. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  576. package/dist/components/fields/TagInput/TagList.js +3 -4
  577. package/dist/components/fields/TagInput/TagList.js.map +1 -1
  578. package/dist/components/fields/TagInput/index.d.ts +2 -1
  579. package/dist/components/fields/TagInput/useActiveOption.js +2 -3
  580. package/dist/components/fields/TagInput/useActiveOption.js.map +1 -1
  581. package/dist/components/fields/TagInput/useTagError.js +2 -3
  582. package/dist/components/fields/TagInput/useTagError.js.map +1 -1
  583. package/dist/components/fields/TextArea/TextArea.d.ts +4 -6
  584. package/dist/components/fields/TextArea/TextArea.js +4 -4
  585. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  586. package/dist/components/fields/TextArea/index.d.ts +2 -1
  587. package/dist/components/fields/TextInput/TextInput.d.ts +4 -6
  588. package/dist/components/fields/TextInput/TextInput.js +3 -3
  589. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  590. package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -8
  591. package/dist/components/fields/TextInput/TextInputBase.js +10 -9
  592. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  593. package/dist/components/fields/TextInput/displayed-validation.js +2 -3
  594. package/dist/components/fields/TextInput/displayed-validation.js.map +1 -1
  595. package/dist/components/fields/TextInput/index.d.ts +2 -1
  596. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +2 -3
  597. package/dist/components/fields/TextInput/useAutoSizeTextArea.js.map +1 -1
  598. package/dist/components/fields/TextInputMapper/TextInputMapper.d.ts +4 -6
  599. package/dist/components/fields/TextInputMapper/TextInputMapper.js +8 -10
  600. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  601. package/dist/components/fields/TextInputMapper/index.d.ts +2 -1
  602. package/dist/components/fields/TriggerActions.js +3 -4
  603. package/dist/components/fields/TriggerActions.js.map +1 -1
  604. package/dist/components/fields/color/ColorPanel.js +4 -5
  605. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  606. package/dist/components/fields/color/channels.d.ts +2 -4
  607. package/dist/components/fields/color/channels.js +2 -3
  608. package/dist/components/fields/color/channels.js.map +1 -1
  609. package/dist/components/fields/color/color.d.ts +4 -5
  610. package/dist/components/fields/color/color.js +3 -4
  611. package/dist/components/fields/color/color.js.map +1 -1
  612. package/dist/components/fields/color/context.js +2 -3
  613. package/dist/components/fields/color/context.js.map +1 -1
  614. package/dist/components/fields/color/index.d.ts +2 -1
  615. package/dist/components/fields/index.d.ts +27 -26
  616. package/dist/components/fields/option-origin-press.js +2 -2
  617. package/dist/components/fields/option-origin-press.js.map +1 -1
  618. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +15 -19
  619. package/dist/components/form/FieldWrapper/FieldWrapper.js +123 -123
  620. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  621. package/dist/components/form/FieldWrapper/field-description.js +2 -3
  622. package/dist/components/form/FieldWrapper/field-description.js.map +1 -1
  623. package/dist/components/form/FieldWrapper/index.d.ts +2 -1
  624. package/dist/components/form/FieldWrapper/types.d.ts +20 -12
  625. package/dist/components/form/Form/Field.d.ts +2 -5
  626. package/dist/components/form/Form/Field.js +2 -3
  627. package/dist/components/form/Form/Field.js.map +1 -1
  628. package/dist/components/form/Form/Form.d.ts +6 -12
  629. package/dist/components/form/Form/Form.js +5 -6
  630. package/dist/components/form/Form/Form.js.map +1 -1
  631. package/dist/components/form/Form/ModernFormRoot.d.ts +1 -3
  632. package/dist/components/form/Form/ModernFormRoot.js +3 -4
  633. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  634. package/dist/components/form/Form/ResetButton/ResetButton.d.ts +3 -6
  635. package/dist/components/form/Form/ResetButton/ResetButton.js +3 -4
  636. package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
  637. package/dist/components/form/Form/ResetButton/index.d.ts +2 -1
  638. package/dist/components/form/Form/SubmitButton/SubmitButton.d.ts +3 -6
  639. package/dist/components/form/Form/SubmitButton/SubmitButton.js +3 -4
  640. package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
  641. package/dist/components/form/Form/SubmitButton/index.d.ts +2 -1
  642. package/dist/components/form/Form/SubmitError.d.ts +3 -5
  643. package/dist/components/form/Form/SubmitError.js +3 -4
  644. package/dist/components/form/Form/SubmitError.js.map +1 -1
  645. package/dist/components/form/Form/backend.d.ts +3 -5
  646. package/dist/components/form/Form/backend.js +2 -2
  647. package/dist/components/form/Form/backend.js.map +1 -1
  648. package/dist/components/form/Form/index.d.ts +7 -10
  649. package/dist/components/form/Form/index.js +7 -8
  650. package/dist/components/form/Form/index.js.map +1 -1
  651. package/dist/components/form/Form/modern/actions.js +2 -3
  652. package/dist/components/form/Form/modern/actions.js.map +1 -1
  653. package/dist/components/form/Form/modern/context.d.ts +2 -4
  654. package/dist/components/form/Form/modern/context.js +2 -3
  655. package/dist/components/form/Form/modern/context.js.map +1 -1
  656. package/dist/components/form/Form/modern/controller.d.ts +9 -11
  657. package/dist/components/form/Form/modern/controller.js +2 -3
  658. package/dist/components/form/Form/modern/controller.js.map +1 -1
  659. package/dist/components/form/Form/modern/field-binding.js +2 -3
  660. package/dist/components/form/Form/modern/field-binding.js.map +1 -1
  661. package/dist/components/form/Form/modern/field.d.ts +4 -5
  662. package/dist/components/form/Form/modern/field.js +2 -3
  663. package/dist/components/form/Form/modern/field.js.map +1 -1
  664. package/dist/components/form/Form/modern/path-types.d.ts +4 -5
  665. package/dist/components/form/Form/modern/react.d.ts +7 -10
  666. package/dist/components/form/Form/modern/react.js +2 -3
  667. package/dist/components/form/Form/modern/react.js.map +1 -1
  668. package/dist/components/form/Form/modern/read-types.d.ts +3 -4
  669. package/dist/components/form/Form/modern/store.js +2 -3
  670. package/dist/components/form/Form/modern/store.js.map +1 -1
  671. package/dist/components/form/Form/modern/types.d.ts +18 -20
  672. package/dist/components/form/Form/modern/validation.d.ts +2 -4
  673. package/dist/components/form/Form/modern/validation.js +2 -3
  674. package/dist/components/form/Form/modern/validation.js.map +1 -1
  675. package/dist/components/form/Form/modern/values.d.ts +1 -2
  676. package/dist/components/form/Form/modern/values.js +2 -2
  677. package/dist/components/form/Form/modern/values.js.map +1 -1
  678. package/dist/components/form/Form/reset-unbound-controls.js +3 -5
  679. package/dist/components/form/Form/reset-unbound-controls.js.map +1 -1
  680. package/dist/components/form/Form/types.d.ts +4 -6
  681. package/dist/components/form/Form/use-field/index.d.ts +2 -1
  682. package/dist/components/form/Form/use-field/types.d.ts +6 -6
  683. package/dist/components/form/Form/use-field/use-field-binding.js +2 -3
  684. package/dist/components/form/Form/use-field/use-field-binding.js.map +1 -1
  685. package/dist/components/form/Form/use-field/use-field-props.d.ts +11 -9
  686. package/dist/components/form/Form/use-field/use-field-props.js +48 -42
  687. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  688. package/dist/components/form/Form/use-field/use-field.d.ts +2 -4
  689. package/dist/components/form/Form/use-field/use-field.js +2 -3
  690. package/dist/components/form/Form/use-field/use-field.js.map +1 -1
  691. package/dist/components/form/Form/use-form.d.ts +5 -6
  692. package/dist/components/form/Form/use-form.js +3 -4
  693. package/dist/components/form/Form/use-form.js.map +1 -1
  694. package/dist/components/form/Form/validation.js +2 -3
  695. package/dist/components/form/Form/validation.js.map +1 -1
  696. package/dist/components/form/Label.d.ts +7 -9
  697. package/dist/components/form/Label.js +3 -4
  698. package/dist/components/form/Label.js.map +1 -1
  699. package/dist/components/form/field-chrome.js +46 -6
  700. package/dist/components/form/field-chrome.js.map +1 -1
  701. package/dist/components/form/index.d.ts +6 -5
  702. package/dist/components/form/legacy-tooltip.js +2 -3
  703. package/dist/components/form/legacy-tooltip.js.map +1 -1
  704. package/dist/components/form/validation/ValidationIndicator.d.ts +4 -10
  705. package/dist/components/form/validation/ValidationIndicator.js +2 -3
  706. package/dist/components/form/validation/ValidationIndicator.js.map +1 -1
  707. package/dist/components/form/validation/index.d.ts +2 -1
  708. package/dist/components/form/validation/resolve-validation-props.d.ts +6 -17
  709. package/dist/components/form/validation/resolve-validation-props.js +2 -2
  710. package/dist/components/form/validation/resolve-validation-props.js.map +1 -1
  711. package/dist/components/form/validation/use-validation-props.d.ts +1 -3
  712. package/dist/components/form/validation/use-validation-props.js +2 -3
  713. package/dist/components/form/validation/use-validation-props.js.map +1 -1
  714. package/dist/components/form/wrapper.d.ts +23 -9
  715. package/dist/components/form/wrapper.js +20 -11
  716. package/dist/components/form/wrapper.js.map +1 -1
  717. package/dist/components/helpers/DisplayTransition/DisplayTransition.d.ts +22 -25
  718. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +16 -16
  719. package/dist/components/helpers/DisplayTransition/DisplayTransition.js.map +1 -1
  720. package/dist/components/helpers/IconSwitch/IconSwitch.d.ts +3 -5
  721. package/dist/components/helpers/IconSwitch/IconSwitch.js +2 -3
  722. package/dist/components/helpers/IconSwitch/IconSwitch.js.map +1 -1
  723. package/dist/components/layout/Flex.d.ts +2 -5
  724. package/dist/components/layout/Flex.js +2 -3
  725. package/dist/components/layout/Flex.js.map +1 -1
  726. package/dist/components/layout/Flow.d.ts +2 -5
  727. package/dist/components/layout/Flow.js +2 -3
  728. package/dist/components/layout/Flow.js.map +1 -1
  729. package/dist/components/layout/Grid.d.ts +2 -5
  730. package/dist/components/layout/Grid.js +2 -3
  731. package/dist/components/layout/Grid.js.map +1 -1
  732. package/dist/components/layout/Panel.d.ts +3 -5
  733. package/dist/components/layout/Panel.js +22 -22
  734. package/dist/components/layout/Panel.js.map +1 -1
  735. package/dist/components/layout/Prefix.d.ts +2 -5
  736. package/dist/components/layout/Prefix.js +2 -3
  737. package/dist/components/layout/Prefix.js.map +1 -1
  738. package/dist/components/layout/ResizablePanel.d.ts +3 -5
  739. package/dist/components/layout/ResizablePanel.js +4 -5
  740. package/dist/components/layout/ResizablePanel.js.map +1 -1
  741. package/dist/components/layout/Space.d.ts +2 -5
  742. package/dist/components/layout/Space.js +2 -3
  743. package/dist/components/layout/Space.js.map +1 -1
  744. package/dist/components/layout/Suffix.d.ts +2 -5
  745. package/dist/components/layout/Suffix.js +2 -3
  746. package/dist/components/layout/Suffix.js.map +1 -1
  747. package/dist/components/navigation/Pagination/Pagination.d.ts +2 -4
  748. package/dist/components/navigation/Pagination/Pagination.js +9 -5
  749. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  750. package/dist/components/navigation/Pagination/index.d.ts +3 -2
  751. package/dist/components/navigation/Pagination/types.d.ts +4 -6
  752. package/dist/components/navigation/Pagination/use-pagination.d.ts +11 -16
  753. package/dist/components/navigation/Pagination/use-pagination.js +2 -3
  754. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
  755. package/dist/components/navigation/Tabs/BoardDragActiveProvider.d.ts +2 -5
  756. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +2 -3
  757. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js.map +1 -1
  758. package/dist/components/navigation/Tabs/DraggableTabList.js +2 -3
  759. package/dist/components/navigation/Tabs/DraggableTabList.js.map +1 -1
  760. package/dist/components/navigation/Tabs/TabButton.js +4 -5
  761. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  762. package/dist/components/navigation/Tabs/TabDropIndicator.js +2 -3
  763. package/dist/components/navigation/Tabs/TabDropIndicator.js.map +1 -1
  764. package/dist/components/navigation/Tabs/TabPanel.js +3 -4
  765. package/dist/components/navigation/Tabs/TabPanel.js.map +1 -1
  766. package/dist/components/navigation/Tabs/TabPicker.js +2 -3
  767. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  768. package/dist/components/navigation/Tabs/Tabs.d.ts +4 -7
  769. package/dist/components/navigation/Tabs/Tabs.js +5 -5
  770. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  771. package/dist/components/navigation/Tabs/TabsAction.d.ts +2 -6
  772. package/dist/components/navigation/Tabs/TabsAction.js +3 -4
  773. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  774. package/dist/components/navigation/Tabs/TabsContext.js +2 -3
  775. package/dist/components/navigation/Tabs/TabsContext.js.map +1 -1
  776. package/dist/components/navigation/Tabs/index.d.ts +2 -1
  777. package/dist/components/navigation/Tabs/popover-placement.js +2 -2
  778. package/dist/components/navigation/Tabs/popover-placement.js.map +1 -1
  779. package/dist/components/navigation/Tabs/styled.js +3 -4
  780. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  781. package/dist/components/navigation/Tabs/types.d.ts +15 -16
  782. package/dist/components/navigation/Tabs/types.js +2 -2
  783. package/dist/components/navigation/Tabs/types.js.map +1 -1
  784. package/dist/components/navigation/Tabs/use-tab-editing.js +2 -3
  785. package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
  786. package/dist/components/navigation/Tabs/use-tab-indicator.js +2 -3
  787. package/dist/components/navigation/Tabs/use-tab-indicator.js.map +1 -1
  788. package/dist/components/navigation/index.d.ts +3 -2
  789. package/dist/components/organisms/StatsCard/StatsCard.d.ts +2 -10
  790. package/dist/components/organisms/StatsCard/StatsCard.js +4 -5
  791. package/dist/components/organisms/StatsCard/StatsCard.js.map +1 -1
  792. package/dist/components/other/Calendar/Calendar.js +3 -4
  793. package/dist/components/other/Calendar/Calendar.js.map +1 -1
  794. package/dist/components/other/Calendar/CalendarCell.js +2 -3
  795. package/dist/components/other/Calendar/CalendarCell.js.map +1 -1
  796. package/dist/components/other/Calendar/CalendarGrid.js +2 -3
  797. package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
  798. package/dist/components/other/Calendar/CalendarHeader.js +3 -4
  799. package/dist/components/other/Calendar/CalendarHeader.js.map +1 -1
  800. package/dist/components/other/Calendar/CalendarPanel.js +2 -3
  801. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  802. package/dist/components/other/Calendar/PeriodCalendar.js +2 -3
  803. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
  804. package/dist/components/other/Calendar/PeriodGrid.js +2 -3
  805. package/dist/components/other/Calendar/PeriodGrid.js.map +1 -1
  806. package/dist/components/other/Calendar/RangeCalendar.js +3 -4
  807. package/dist/components/other/Calendar/RangeCalendar.js.map +1 -1
  808. package/dist/components/other/Calendar/styled.js +2 -3
  809. package/dist/components/other/Calendar/styled.js.map +1 -1
  810. package/dist/components/other/CubeLogo/CubeLogo.d.ts +3 -6
  811. package/dist/components/other/CubeLogo/CubeLogo.js +2 -3
  812. package/dist/components/other/CubeLogo/CubeLogo.js.map +1 -1
  813. package/dist/components/other/NoDataIcon/NoDataIcon.d.ts +2 -5
  814. package/dist/components/other/NoDataIcon/NoDataIcon.js +2 -3
  815. package/dist/components/other/NoDataIcon/NoDataIcon.js.map +1 -1
  816. package/dist/components/other/NoDataIcon/index.d.ts +2 -1
  817. package/dist/components/overlays/AlertDialog/AlertDialog.d.ts +4 -6
  818. package/dist/components/overlays/AlertDialog/AlertDialog.js +4 -5
  819. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  820. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.d.ts +3 -6
  821. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +3 -5
  822. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  823. package/dist/components/overlays/AlertDialog/AlertDialogZone.d.ts +1 -2
  824. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +3 -4
  825. package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
  826. package/dist/components/overlays/AlertDialog/index.d.ts +3 -2
  827. package/dist/components/overlays/AlertDialog/types.d.ts +5 -10
  828. package/dist/components/overlays/Dialog/Dialog.d.ts +6 -6
  829. package/dist/components/overlays/Dialog/Dialog.js +95 -33
  830. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  831. package/dist/components/overlays/Dialog/DialogContainer.d.ts +6 -7
  832. package/dist/components/overlays/Dialog/DialogContainer.js +42 -37
  833. package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
  834. package/dist/components/overlays/Dialog/DialogForm.d.ts +5 -7
  835. package/dist/components/overlays/Dialog/DialogForm.js +5 -6
  836. package/dist/components/overlays/Dialog/DialogForm.js.map +1 -1
  837. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +3 -6
  838. package/dist/components/overlays/Dialog/DialogTrigger.js +5 -6
  839. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  840. package/dist/components/overlays/Dialog/ModernDialogForm.js +5 -6
  841. package/dist/components/overlays/Dialog/ModernDialogForm.js.map +1 -1
  842. package/dist/components/overlays/Dialog/context.js +12 -4
  843. package/dist/components/overlays/Dialog/context.js.map +1 -1
  844. package/dist/components/overlays/Dialog/default-button-text.js +2 -2
  845. package/dist/components/overlays/Dialog/default-button-text.js.map +1 -1
  846. package/dist/components/overlays/Dialog/index.d.ts +2 -1
  847. package/dist/components/overlays/Dialog/use-content-overflow.js +2 -3
  848. package/dist/components/overlays/Dialog/use-content-overflow.js.map +1 -1
  849. package/dist/components/overlays/Dialog/use-dialog-container.d.ts +2 -5
  850. package/dist/components/overlays/Dialog/use-dialog-container.js +2 -3
  851. package/dist/components/overlays/Dialog/use-dialog-container.js.map +1 -1
  852. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +2 -3
  853. package/dist/components/overlays/Dialog/use-dialog-open-sync.js.map +1 -1
  854. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js +386 -0
  855. package/dist/components/overlays/Dialog/use-retained-dialog-focus.js.map +1 -0
  856. package/dist/components/overlays/Modal/Modal.d.ts +1 -2
  857. package/dist/components/overlays/Modal/Modal.js +5 -6
  858. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  859. package/dist/components/overlays/Modal/OpenTransitionContext.js +2 -3
  860. package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -1
  861. package/dist/components/overlays/Modal/Overlay.js +35 -14
  862. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  863. package/dist/components/overlays/Modal/Popover.d.ts +1 -1
  864. package/dist/components/overlays/Modal/Popover.js +4 -5
  865. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  866. package/dist/components/overlays/Modal/Tray.js +72 -65
  867. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  868. package/dist/components/overlays/Modal/Underlay.js +3 -4
  869. package/dist/components/overlays/Modal/Underlay.js.map +1 -1
  870. package/dist/components/overlays/Modal/index.d.ts +3 -2
  871. package/dist/components/overlays/Modal/modal-containment.js +2 -3
  872. package/dist/components/overlays/Modal/modal-containment.js.map +1 -1
  873. package/dist/components/overlays/Modal/types.d.ts +1 -3
  874. package/dist/components/overlays/Notifications/Notification.d.ts +1 -3
  875. package/dist/components/overlays/Notifications/Notification.js +4 -4
  876. package/dist/components/overlays/Notifications/Notification.js.map +1 -1
  877. package/dist/components/overlays/Notifications/NotificationAction.d.ts +1 -10
  878. package/dist/components/overlays/Notifications/NotificationAction.js +2 -3
  879. package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
  880. package/dist/components/overlays/Notifications/NotificationCard.d.ts +2 -18
  881. package/dist/components/overlays/Notifications/NotificationCard.js +3 -4
  882. package/dist/components/overlays/Notifications/NotificationCard.js.map +1 -1
  883. package/dist/components/overlays/Notifications/NotificationContext.d.ts +1 -4
  884. package/dist/components/overlays/Notifications/NotificationContext.js +2 -3
  885. package/dist/components/overlays/Notifications/NotificationContext.js.map +1 -1
  886. package/dist/components/overlays/Notifications/NotificationItem.d.ts +2 -9
  887. package/dist/components/overlays/Notifications/NotificationItem.js +2 -3
  888. package/dist/components/overlays/Notifications/NotificationItem.js.map +1 -1
  889. package/dist/components/overlays/Notifications/OverlayContainer.js +6 -8
  890. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  891. package/dist/components/overlays/Notifications/OverlayProvider.d.ts +1 -7
  892. package/dist/components/overlays/Notifications/OverlayProvider.js +3 -4
  893. package/dist/components/overlays/Notifications/OverlayProvider.js.map +1 -1
  894. package/dist/components/overlays/Notifications/PersistentNotificationsList.d.ts +1 -8
  895. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +3 -4
  896. package/dist/components/overlays/Notifications/PersistentNotificationsList.js.map +1 -1
  897. package/dist/components/overlays/Notifications/dismissed-storage.js +2 -2
  898. package/dist/components/overlays/Notifications/dismissed-storage.js.map +1 -1
  899. package/dist/components/overlays/Notifications/format-relative-time.d.ts +1 -3
  900. package/dist/components/overlays/Notifications/format-relative-time.js +2 -2
  901. package/dist/components/overlays/Notifications/format-relative-time.js.map +1 -1
  902. package/dist/components/overlays/Notifications/index.d.ts +3 -4
  903. package/dist/components/overlays/Notifications/index.js +4 -5
  904. package/dist/components/overlays/Notifications/index.js.map +1 -1
  905. package/dist/components/overlays/Notifications/types.d.ts +14 -16
  906. package/dist/components/overlays/Notifications/use-notification-state.js +3 -4
  907. package/dist/components/overlays/Notifications/use-notification-state.js.map +1 -1
  908. package/dist/components/overlays/Notifications/use-notifications.d.ts +1 -3
  909. package/dist/components/overlays/Notifications/use-notifications.js +8 -7
  910. package/dist/components/overlays/Notifications/use-notifications.js.map +1 -1
  911. package/dist/components/overlays/Notifications/use-overlay-timers.js +2 -3
  912. package/dist/components/overlays/Notifications/use-overlay-timers.js.map +1 -1
  913. package/dist/components/overlays/Notifications/use-persistent-notifications.d.ts +2 -4
  914. package/dist/components/overlays/Notifications/use-persistent-notifications.js +2 -3
  915. package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +1 -1
  916. package/dist/components/overlays/Notifications/use-persistent-state.js +2 -3
  917. package/dist/components/overlays/Notifications/use-persistent-state.js.map +1 -1
  918. package/dist/components/overlays/Notifications/use-toast-state.js +2 -3
  919. package/dist/components/overlays/Notifications/use-toast-state.js.map +1 -1
  920. package/dist/components/overlays/Toast/ToastItem.d.ts +3 -6
  921. package/dist/components/overlays/Toast/ToastItem.js +3 -4
  922. package/dist/components/overlays/Toast/ToastItem.js.map +1 -1
  923. package/dist/components/overlays/Toast/ToastProvider.d.ts +2 -1
  924. package/dist/components/overlays/Toast/index.d.ts +6 -7
  925. package/dist/components/overlays/Toast/index.js +3 -4
  926. package/dist/components/overlays/Toast/index.js.map +1 -1
  927. package/dist/components/overlays/Toast/types.d.ts +8 -10
  928. package/dist/components/overlays/Toast/useProgressToast.d.ts +1 -3
  929. package/dist/components/overlays/Toast/useProgressToast.js +11 -10
  930. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  931. package/dist/components/overlays/Toast/useToast.d.ts +2 -4
  932. package/dist/components/overlays/Toast/useToast.js +2 -3
  933. package/dist/components/overlays/Toast/useToast.js.map +1 -1
  934. package/dist/components/overlays/Tooltip/Tooltip.d.ts +3 -5
  935. package/dist/components/overlays/Tooltip/Tooltip.js +3 -4
  936. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  937. package/dist/components/overlays/Tooltip/TooltipProvider.d.ts +2 -4
  938. package/dist/components/overlays/Tooltip/TooltipProvider.js +3 -4
  939. package/dist/components/overlays/Tooltip/TooltipProvider.js.map +1 -1
  940. package/dist/components/overlays/Tooltip/TooltipTrigger.d.ts +3 -6
  941. package/dist/components/overlays/Tooltip/TooltipTrigger.js +4 -5
  942. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  943. package/dist/components/overlays/Tooltip/context.js +2 -3
  944. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  945. package/dist/components/overlays/Tooltip/split-trigger-props.d.ts +2 -3
  946. package/dist/components/overlays/Tooltip/split-trigger-props.js +2 -3
  947. package/dist/components/overlays/Tooltip/split-trigger-props.js.map +1 -1
  948. package/dist/components/portal/Portal.d.ts +1 -4
  949. package/dist/components/portal/Portal.js +2 -3
  950. package/dist/components/portal/Portal.js.map +1 -1
  951. package/dist/components/portal/PortalProvider.js +2 -3
  952. package/dist/components/portal/PortalProvider.js.map +1 -1
  953. package/dist/components/portal/index.d.ts +2 -1
  954. package/dist/components/portal/types.d.ts +1 -3
  955. package/dist/components/portal/usePortal.js +2 -3
  956. package/dist/components/portal/usePortal.js.map +1 -1
  957. package/dist/components/shared/DraggableCollection.js +15 -15
  958. package/dist/components/shared/DraggableCollection.js.map +1 -1
  959. package/dist/components/shared/InvalidIcon.js +2 -3
  960. package/dist/components/shared/InvalidIcon.js.map +1 -1
  961. package/dist/components/shared/ValidIcon.js +2 -3
  962. package/dist/components/shared/ValidIcon.js.map +1 -1
  963. package/dist/components/status/LoadingAnimation/LoadingAnimation.d.ts +2 -8
  964. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +2 -3
  965. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  966. package/dist/components/status/LoadingAnimation/index.d.ts +2 -1
  967. package/dist/components/status/Spin/Cube.js +2 -3
  968. package/dist/components/status/Spin/Cube.js.map +1 -1
  969. package/dist/components/status/Spin/InternalSpinner.js +2 -3
  970. package/dist/components/status/Spin/InternalSpinner.js.map +1 -1
  971. package/dist/components/status/Spin/Spin.d.ts +1 -4
  972. package/dist/components/status/Spin/Spin.js +2 -3
  973. package/dist/components/status/Spin/Spin.js.map +1 -1
  974. package/dist/components/status/Spin/SpinsContainer.js +2 -3
  975. package/dist/components/status/Spin/SpinsContainer.js.map +1 -1
  976. package/dist/components/status/Spin/index.d.ts +2 -1
  977. package/dist/components/status/Spin/types.d.ts +2 -4
  978. package/dist/components/status/index.d.ts +2 -1
  979. package/dist/data/item-themes.d.ts +1 -3
  980. package/dist/data/item-themes.js +3 -3
  981. package/dist/data/item-themes.js.map +1 -1
  982. package/dist/data/themes.d.ts +9 -9
  983. package/dist/data/themes.js +10 -10
  984. package/dist/data/themes.js.map +1 -1
  985. package/dist/eslint-plugin/defaults.generated.d.ts +1 -3
  986. package/dist/eslint-plugin/defaults.generated.js +3 -8
  987. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  988. package/dist/eslint-plugin/index.d.ts +0 -1
  989. package/dist/eslint-plugin/index.js +2 -3
  990. package/dist/eslint-plugin/index.js.map +1 -1
  991. package/dist/eslint-plugin/rules/no-redundant-default-prop.d.ts +2 -4
  992. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +2 -3
  993. package/dist/eslint-plugin/rules/no-redundant-default-prop.js.map +1 -1
  994. package/dist/eslint-plugin/types.d.ts +17 -10
  995. package/dist/i18n/I18nProvider.d.ts +2 -9
  996. package/dist/i18n/I18nProvider.js +2 -3
  997. package/dist/i18n/I18nProvider.js.map +1 -1
  998. package/dist/i18n/createFormatter.d.ts +6 -7
  999. package/dist/i18n/createFormatter.js +2 -2
  1000. package/dist/i18n/createFormatter.js.map +1 -1
  1001. package/dist/i18n/index.d.ts +2 -4
  1002. package/dist/i18n/index.js +3 -4
  1003. package/dist/i18n/index.js.map +1 -1
  1004. package/dist/i18n/instance.d.ts +5 -6
  1005. package/dist/i18n/instance.js +3 -4
  1006. package/dist/i18n/instance.js.map +1 -1
  1007. package/dist/i18n/locales/de-DE/uikit.js +2 -2
  1008. package/dist/i18n/locales/en-US/uikit.js +2 -2
  1009. package/dist/i18n/locales/en-US/uikit.json.d.ts +41 -41
  1010. package/dist/i18n/locales/es-ES/uikit.js +2 -2
  1011. package/dist/i18n/locales/es-MX/uikit.js +2 -2
  1012. package/dist/i18n/locales/fr-FR/uikit.js +2 -2
  1013. package/dist/i18n/locales/it-IT/uikit.js +2 -2
  1014. package/dist/i18n/locales/ja-JP/uikit.js +2 -2
  1015. package/dist/i18n/locales/nb-NO/uikit.js +2 -2
  1016. package/dist/i18n/locales/pt-BR/uikit.js +2 -2
  1017. package/dist/i18n/locales/pt-PT/uikit.js +2 -2
  1018. package/dist/i18n/locales/sv-SE/uikit.js +2 -2
  1019. package/dist/i18n/locales/vi-VN/uikit.js +2 -2
  1020. package/dist/i18n/locales.d.ts +4 -5
  1021. package/dist/i18n/locales.js +2 -2
  1022. package/dist/i18n/locales.js.map +1 -1
  1023. package/dist/i18n/namespace.d.ts +1 -2
  1024. package/dist/i18n/namespace.js +2 -2
  1025. package/dist/i18n/useFormatter.d.ts +1 -3
  1026. package/dist/i18n/useFormatter.js +2 -3
  1027. package/dist/i18n/useFormatter.js.map +1 -1
  1028. package/dist/i18n/useI18n.js +2 -3
  1029. package/dist/i18n/useI18n.js.map +1 -1
  1030. package/dist/icons/AdjustmentsHorizontalIcon.d.ts +2 -5
  1031. package/dist/icons/AdjustmentsHorizontalIcon.js +2 -3
  1032. package/dist/icons/AdjustmentsHorizontalIcon.js.map +1 -1
  1033. package/dist/icons/AdjustmentsIcon.d.ts +2 -5
  1034. package/dist/icons/AdjustmentsIcon.js +2 -3
  1035. package/dist/icons/AdjustmentsIcon.js.map +1 -1
  1036. package/dist/icons/AiIcon.d.ts +2 -5
  1037. package/dist/icons/AiIcon.js +2 -3
  1038. package/dist/icons/AiIcon.js.map +1 -1
  1039. package/dist/icons/AreaChartIcon.d.ts +2 -5
  1040. package/dist/icons/AreaChartIcon.js +2 -3
  1041. package/dist/icons/AreaChartIcon.js.map +1 -1
  1042. package/dist/icons/ArrowNarrowDownIcon.d.ts +2 -5
  1043. package/dist/icons/ArrowNarrowDownIcon.js +2 -3
  1044. package/dist/icons/ArrowNarrowDownIcon.js.map +1 -1
  1045. package/dist/icons/ArrowNarrowUpIcon.d.ts +2 -5
  1046. package/dist/icons/ArrowNarrowUpIcon.js +2 -3
  1047. package/dist/icons/ArrowNarrowUpIcon.js.map +1 -1
  1048. package/dist/icons/BackwardIcon.d.ts +2 -5
  1049. package/dist/icons/BackwardIcon.js +2 -3
  1050. package/dist/icons/BackwardIcon.js.map +1 -1
  1051. package/dist/icons/BarChartIcon.d.ts +2 -5
  1052. package/dist/icons/BarChartIcon.js +2 -3
  1053. package/dist/icons/BarChartIcon.js.map +1 -1
  1054. package/dist/icons/BellFilledIcon.d.ts +2 -5
  1055. package/dist/icons/BellFilledIcon.js +2 -3
  1056. package/dist/icons/BellFilledIcon.js.map +1 -1
  1057. package/dist/icons/BellIcon.d.ts +2 -5
  1058. package/dist/icons/BellIcon.js +2 -3
  1059. package/dist/icons/BellIcon.js.map +1 -1
  1060. package/dist/icons/BooleanIcon.d.ts +2 -5
  1061. package/dist/icons/BooleanIcon.js +2 -3
  1062. package/dist/icons/BooleanIcon.js.map +1 -1
  1063. package/dist/icons/CalendarEditIcon.d.ts +2 -5
  1064. package/dist/icons/CalendarEditIcon.js +2 -3
  1065. package/dist/icons/CalendarEditIcon.js.map +1 -1
  1066. package/dist/icons/CalendarIcon.d.ts +2 -5
  1067. package/dist/icons/CalendarIcon.js +2 -3
  1068. package/dist/icons/CalendarIcon.js.map +1 -1
  1069. package/dist/icons/CaretDownIcon.d.ts +2 -5
  1070. package/dist/icons/CaretDownIcon.js +2 -3
  1071. package/dist/icons/CaretDownIcon.js.map +1 -1
  1072. package/dist/icons/CaretUpIcon.d.ts +2 -5
  1073. package/dist/icons/CaretUpIcon.js +2 -3
  1074. package/dist/icons/CaretUpIcon.js.map +1 -1
  1075. package/dist/icons/ChartAreaStackedIcon.d.ts +2 -5
  1076. package/dist/icons/ChartAreaStackedIcon.js +2 -3
  1077. package/dist/icons/ChartAreaStackedIcon.js.map +1 -1
  1078. package/dist/icons/ChartAreaStackedPercentageIcon.d.ts +2 -5
  1079. package/dist/icons/ChartAreaStackedPercentageIcon.js +2 -3
  1080. package/dist/icons/ChartAreaStackedPercentageIcon.js.map +1 -1
  1081. package/dist/icons/ChartBarGroupedHorizontalIcon.d.ts +2 -5
  1082. package/dist/icons/ChartBarGroupedHorizontalIcon.js +2 -3
  1083. package/dist/icons/ChartBarGroupedHorizontalIcon.js.map +1 -1
  1084. package/dist/icons/ChartBarGroupedIcon.d.ts +2 -5
  1085. package/dist/icons/ChartBarGroupedIcon.js +2 -3
  1086. package/dist/icons/ChartBarGroupedIcon.js.map +1 -1
  1087. package/dist/icons/ChartBarHorizontalIcon.d.ts +2 -5
  1088. package/dist/icons/ChartBarHorizontalIcon.js +2 -3
  1089. package/dist/icons/ChartBarHorizontalIcon.js.map +1 -1
  1090. package/dist/icons/ChartBarLineIcon.d.ts +2 -5
  1091. package/dist/icons/ChartBarLineIcon.js +2 -3
  1092. package/dist/icons/ChartBarLineIcon.js.map +1 -1
  1093. package/dist/icons/ChartBarStackedHorizontalIcon.d.ts +2 -5
  1094. package/dist/icons/ChartBarStackedHorizontalIcon.js +2 -3
  1095. package/dist/icons/ChartBarStackedHorizontalIcon.js.map +1 -1
  1096. package/dist/icons/ChartBarStackedIcon.d.ts +2 -5
  1097. package/dist/icons/ChartBarStackedIcon.js +2 -3
  1098. package/dist/icons/ChartBarStackedIcon.js.map +1 -1
  1099. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.d.ts +2 -5
  1100. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +2 -3
  1101. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js.map +1 -1
  1102. package/dist/icons/ChartBarStackedPercentageIcon.d.ts +2 -5
  1103. package/dist/icons/ChartBarStackedPercentageIcon.js +2 -3
  1104. package/dist/icons/ChartBarStackedPercentageIcon.js.map +1 -1
  1105. package/dist/icons/ChartBoxPlot2Icon.d.ts +2 -5
  1106. package/dist/icons/ChartBoxPlot2Icon.js +2 -3
  1107. package/dist/icons/ChartBoxPlot2Icon.js.map +1 -1
  1108. package/dist/icons/ChartBoxPlotIcon.d.ts +2 -5
  1109. package/dist/icons/ChartBoxPlotIcon.js +2 -3
  1110. package/dist/icons/ChartBoxPlotIcon.js.map +1 -1
  1111. package/dist/icons/ChartBubbleIcon.d.ts +2 -5
  1112. package/dist/icons/ChartBubbleIcon.js +2 -3
  1113. package/dist/icons/ChartBubbleIcon.js.map +1 -1
  1114. package/dist/icons/ChartDonut2Icon.d.ts +2 -5
  1115. package/dist/icons/ChartDonut2Icon.js +2 -3
  1116. package/dist/icons/ChartDonut2Icon.js.map +1 -1
  1117. package/dist/icons/ChartFunnelIcon.d.ts +2 -5
  1118. package/dist/icons/ChartFunnelIcon.js +2 -3
  1119. package/dist/icons/ChartFunnelIcon.js.map +1 -1
  1120. package/dist/icons/ChartHeatmapIcon.d.ts +2 -5
  1121. package/dist/icons/ChartHeatmapIcon.js +2 -3
  1122. package/dist/icons/ChartHeatmapIcon.js.map +1 -1
  1123. package/dist/icons/ChartKPIIcon.d.ts +2 -5
  1124. package/dist/icons/ChartKPIIcon.js +2 -3
  1125. package/dist/icons/ChartKPIIcon.js.map +1 -1
  1126. package/dist/icons/ChartPie2Icon.d.ts +2 -5
  1127. package/dist/icons/ChartPie2Icon.js +2 -3
  1128. package/dist/icons/ChartPie2Icon.js.map +1 -1
  1129. package/dist/icons/ChartScatterIcon.d.ts +2 -5
  1130. package/dist/icons/ChartScatterIcon.js +2 -3
  1131. package/dist/icons/ChartScatterIcon.js.map +1 -1
  1132. package/dist/icons/CheckCircleFilledIcon.d.ts +2 -5
  1133. package/dist/icons/CheckCircleFilledIcon.js +2 -3
  1134. package/dist/icons/CheckCircleFilledIcon.js.map +1 -1
  1135. package/dist/icons/CheckCircleIcon.d.ts +2 -5
  1136. package/dist/icons/CheckCircleIcon.js +2 -3
  1137. package/dist/icons/CheckCircleIcon.js.map +1 -1
  1138. package/dist/icons/CheckIcon.d.ts +2 -5
  1139. package/dist/icons/CheckIcon.js +2 -3
  1140. package/dist/icons/CheckIcon.js.map +1 -1
  1141. package/dist/icons/CircleFilledIcon.d.ts +2 -5
  1142. package/dist/icons/CircleFilledIcon.js +2 -3
  1143. package/dist/icons/CircleFilledIcon.js.map +1 -1
  1144. package/dist/icons/ClearIcon.d.ts +2 -5
  1145. package/dist/icons/ClearIcon.js +2 -3
  1146. package/dist/icons/ClearIcon.js.map +1 -1
  1147. package/dist/icons/CloseCircleFilledIcon.d.ts +2 -5
  1148. package/dist/icons/CloseCircleFilledIcon.js +2 -3
  1149. package/dist/icons/CloseCircleFilledIcon.js.map +1 -1
  1150. package/dist/icons/CloseCircleIcon.d.ts +2 -5
  1151. package/dist/icons/CloseCircleIcon.js +2 -3
  1152. package/dist/icons/CloseCircleIcon.js.map +1 -1
  1153. package/dist/icons/CloseIcon.d.ts +2 -5
  1154. package/dist/icons/CloseIcon.js +2 -3
  1155. package/dist/icons/CloseIcon.js.map +1 -1
  1156. package/dist/icons/CodeIcon.d.ts +2 -5
  1157. package/dist/icons/CodeIcon.js +2 -3
  1158. package/dist/icons/CodeIcon.js.map +1 -1
  1159. package/dist/icons/ColumnTotalIcon.d.ts +2 -5
  1160. package/dist/icons/ColumnTotalIcon.js +2 -3
  1161. package/dist/icons/ColumnTotalIcon.js.map +1 -1
  1162. package/dist/icons/CopyIcon.d.ts +2 -5
  1163. package/dist/icons/CopyIcon.js +2 -3
  1164. package/dist/icons/CopyIcon.js.map +1 -1
  1165. package/dist/icons/CountIcon.d.ts +2 -5
  1166. package/dist/icons/CountIcon.js +2 -3
  1167. package/dist/icons/CountIcon.js.map +1 -1
  1168. package/dist/icons/CubeIcon.d.ts +2 -5
  1169. package/dist/icons/CubeIcon.js +2 -3
  1170. package/dist/icons/CubeIcon.js.map +1 -1
  1171. package/dist/icons/CubePauseIcon.d.ts +2 -5
  1172. package/dist/icons/CubePauseIcon.js +2 -3
  1173. package/dist/icons/CubePauseIcon.js.map +1 -1
  1174. package/dist/icons/CubePlayIcon.d.ts +2 -5
  1175. package/dist/icons/CubePlayIcon.js +2 -3
  1176. package/dist/icons/CubePlayIcon.js.map +1 -1
  1177. package/dist/icons/CurrencyDollarIcon.d.ts +2 -5
  1178. package/dist/icons/CurrencyDollarIcon.js +2 -3
  1179. package/dist/icons/CurrencyDollarIcon.js.map +1 -1
  1180. package/dist/icons/DangerIcon.d.ts +2 -5
  1181. package/dist/icons/DangerIcon.js +2 -3
  1182. package/dist/icons/DangerIcon.js.map +1 -1
  1183. package/dist/icons/DashboardIcon.d.ts +2 -5
  1184. package/dist/icons/DashboardIcon.js +2 -3
  1185. package/dist/icons/DashboardIcon.js.map +1 -1
  1186. package/dist/icons/DatabaseIcon.d.ts +2 -5
  1187. package/dist/icons/DatabaseIcon.js +2 -3
  1188. package/dist/icons/DatabaseIcon.js.map +1 -1
  1189. package/dist/icons/DecimalDecreaseIcon.d.ts +2 -5
  1190. package/dist/icons/DecimalDecreaseIcon.js +2 -3
  1191. package/dist/icons/DecimalDecreaseIcon.js.map +1 -1
  1192. package/dist/icons/DecimalIncreaseIcon.d.ts +2 -5
  1193. package/dist/icons/DecimalIncreaseIcon.js +2 -3
  1194. package/dist/icons/DecimalIncreaseIcon.js.map +1 -1
  1195. package/dist/icons/DirectionIcon.d.ts +3 -5
  1196. package/dist/icons/DirectionIcon.js +2 -3
  1197. package/dist/icons/DirectionIcon.js.map +1 -1
  1198. package/dist/icons/DonutIcon.d.ts +2 -5
  1199. package/dist/icons/DonutIcon.js +2 -3
  1200. package/dist/icons/DonutIcon.js.map +1 -1
  1201. package/dist/icons/DownIcon.d.ts +2 -5
  1202. package/dist/icons/DownIcon.js +2 -3
  1203. package/dist/icons/DownIcon.js.map +1 -1
  1204. package/dist/icons/EditIcon.d.ts +2 -5
  1205. package/dist/icons/EditIcon.js +2 -3
  1206. package/dist/icons/EditIcon.js.map +1 -1
  1207. package/dist/icons/ExclamationCircleFilledIcon.d.ts +2 -5
  1208. package/dist/icons/ExclamationCircleFilledIcon.js +2 -3
  1209. package/dist/icons/ExclamationCircleFilledIcon.js.map +1 -1
  1210. package/dist/icons/ExclamationCircleIcon.d.ts +2 -5
  1211. package/dist/icons/ExclamationCircleIcon.js +2 -3
  1212. package/dist/icons/ExclamationCircleIcon.js.map +1 -1
  1213. package/dist/icons/ExclamationIcon.d.ts +2 -5
  1214. package/dist/icons/ExclamationIcon.js +2 -3
  1215. package/dist/icons/ExclamationIcon.js.map +1 -1
  1216. package/dist/icons/EyeIcon.d.ts +2 -5
  1217. package/dist/icons/EyeIcon.js +2 -3
  1218. package/dist/icons/EyeIcon.js.map +1 -1
  1219. package/dist/icons/EyeInvisibleIcon.d.ts +2 -5
  1220. package/dist/icons/EyeInvisibleIcon.js +2 -3
  1221. package/dist/icons/EyeInvisibleIcon.js.map +1 -1
  1222. package/dist/icons/FilterIcon.d.ts +2 -5
  1223. package/dist/icons/FilterIcon.js +2 -3
  1224. package/dist/icons/FilterIcon.js.map +1 -1
  1225. package/dist/icons/FolderFilledIcon.d.ts +2 -5
  1226. package/dist/icons/FolderFilledIcon.js +2 -3
  1227. package/dist/icons/FolderFilledIcon.js.map +1 -1
  1228. package/dist/icons/FolderIcon.d.ts +2 -5
  1229. package/dist/icons/FolderIcon.js +2 -3
  1230. package/dist/icons/FolderIcon.js.map +1 -1
  1231. package/dist/icons/FolderOpenFilledIcon.d.ts +2 -5
  1232. package/dist/icons/FolderOpenFilledIcon.js +2 -3
  1233. package/dist/icons/FolderOpenFilledIcon.js.map +1 -1
  1234. package/dist/icons/FolderOpenIcon.d.ts +2 -5
  1235. package/dist/icons/FolderOpenIcon.js +2 -3
  1236. package/dist/icons/FolderOpenIcon.js.map +1 -1
  1237. package/dist/icons/ForwardIcon.d.ts +2 -5
  1238. package/dist/icons/ForwardIcon.js +2 -3
  1239. package/dist/icons/ForwardIcon.js.map +1 -1
  1240. package/dist/icons/GripVerticalIcon.d.ts +2 -5
  1241. package/dist/icons/GripVerticalIcon.js +2 -3
  1242. package/dist/icons/GripVerticalIcon.js.map +1 -1
  1243. package/dist/icons/HierarchyIcon.d.ts +2 -5
  1244. package/dist/icons/HierarchyIcon.js +2 -3
  1245. package/dist/icons/HierarchyIcon.js.map +1 -1
  1246. package/dist/icons/HierarchyOpenIcon.d.ts +2 -5
  1247. package/dist/icons/HierarchyOpenIcon.js +2 -3
  1248. package/dist/icons/HierarchyOpenIcon.js.map +1 -1
  1249. package/dist/icons/Icon.d.ts +2 -5
  1250. package/dist/icons/Icon.js +2 -3
  1251. package/dist/icons/Icon.js.map +1 -1
  1252. package/dist/icons/InfoCircleIcon.d.ts +2 -5
  1253. package/dist/icons/InfoCircleIcon.js +2 -3
  1254. package/dist/icons/InfoCircleIcon.js.map +1 -1
  1255. package/dist/icons/InfoIcon.d.ts +2 -5
  1256. package/dist/icons/InfoIcon.js +2 -3
  1257. package/dist/icons/InfoIcon.js.map +1 -1
  1258. package/dist/icons/KeyIcon.d.ts +2 -5
  1259. package/dist/icons/KeyIcon.js +2 -3
  1260. package/dist/icons/KeyIcon.js.map +1 -1
  1261. package/dist/icons/LeftIcon.d.ts +2 -5
  1262. package/dist/icons/LeftIcon.js +2 -3
  1263. package/dist/icons/LeftIcon.js.map +1 -1
  1264. package/dist/icons/LineChartIcon.d.ts +2 -5
  1265. package/dist/icons/LineChartIcon.js +2 -3
  1266. package/dist/icons/LineChartIcon.js.map +1 -1
  1267. package/dist/icons/LoadingIcon.d.ts +2 -5
  1268. package/dist/icons/LoadingIcon.js +2 -3
  1269. package/dist/icons/LoadingIcon.js.map +1 -1
  1270. package/dist/icons/LockFilledIcon.d.ts +2 -5
  1271. package/dist/icons/LockFilledIcon.js +2 -3
  1272. package/dist/icons/LockFilledIcon.js.map +1 -1
  1273. package/dist/icons/LockIcon.d.ts +2 -5
  1274. package/dist/icons/LockIcon.js +2 -3
  1275. package/dist/icons/LockIcon.js.map +1 -1
  1276. package/dist/icons/MoreIcon.d.ts +2 -5
  1277. package/dist/icons/MoreIcon.js +2 -3
  1278. package/dist/icons/MoreIcon.js.map +1 -1
  1279. package/dist/icons/NotAllowedIcon.d.ts +2 -5
  1280. package/dist/icons/NotAllowedIcon.js +2 -3
  1281. package/dist/icons/NotAllowedIcon.js.map +1 -1
  1282. package/dist/icons/Number123Icon.d.ts +2 -5
  1283. package/dist/icons/Number123Icon.js +2 -3
  1284. package/dist/icons/Number123Icon.js.map +1 -1
  1285. package/dist/icons/NumberIcon.d.ts +2 -5
  1286. package/dist/icons/NumberIcon.js +2 -3
  1287. package/dist/icons/NumberIcon.js.map +1 -1
  1288. package/dist/icons/PauseCircleFilledIcon.d.ts +2 -5
  1289. package/dist/icons/PauseCircleFilledIcon.js +2 -3
  1290. package/dist/icons/PauseCircleFilledIcon.js.map +1 -1
  1291. package/dist/icons/PauseCircleIcon.d.ts +2 -5
  1292. package/dist/icons/PauseCircleIcon.js +2 -3
  1293. package/dist/icons/PauseCircleIcon.js.map +1 -1
  1294. package/dist/icons/PauseIcon.d.ts +2 -5
  1295. package/dist/icons/PauseIcon.js +2 -3
  1296. package/dist/icons/PauseIcon.js.map +1 -1
  1297. package/dist/icons/PercentageIcon.d.ts +2 -5
  1298. package/dist/icons/PercentageIcon.js +2 -3
  1299. package/dist/icons/PercentageIcon.js.map +1 -1
  1300. package/dist/icons/PieChartIcon.d.ts +2 -5
  1301. package/dist/icons/PieChartIcon.js +2 -3
  1302. package/dist/icons/PieChartIcon.js.map +1 -1
  1303. package/dist/icons/PipetteIcon.d.ts +2 -5
  1304. package/dist/icons/PipetteIcon.js +2 -3
  1305. package/dist/icons/PipetteIcon.js.map +1 -1
  1306. package/dist/icons/PlayCircleIcon.d.ts +2 -5
  1307. package/dist/icons/PlayCircleIcon.js +2 -3
  1308. package/dist/icons/PlayCircleIcon.js.map +1 -1
  1309. package/dist/icons/PlayIcon.d.ts +2 -5
  1310. package/dist/icons/PlayIcon.js +2 -3
  1311. package/dist/icons/PlayIcon.js.map +1 -1
  1312. package/dist/icons/PlusIcon.d.ts +2 -5
  1313. package/dist/icons/PlusIcon.js +2 -3
  1314. package/dist/icons/PlusIcon.js.map +1 -1
  1315. package/dist/icons/ProgressBarIcon.d.ts +2 -5
  1316. package/dist/icons/ProgressBarIcon.js +2 -3
  1317. package/dist/icons/ProgressBarIcon.js.map +1 -1
  1318. package/dist/icons/ReloadIcon.d.ts +2 -5
  1319. package/dist/icons/ReloadIcon.js +2 -3
  1320. package/dist/icons/ReloadIcon.js.map +1 -1
  1321. package/dist/icons/ReportIcon.d.ts +2 -5
  1322. package/dist/icons/ReportIcon.js +2 -3
  1323. package/dist/icons/ReportIcon.js.map +1 -1
  1324. package/dist/icons/ReturnIcon.d.ts +2 -5
  1325. package/dist/icons/ReturnIcon.js +2 -3
  1326. package/dist/icons/ReturnIcon.js.map +1 -1
  1327. package/dist/icons/RightIcon.d.ts +2 -5
  1328. package/dist/icons/RightIcon.js +2 -3
  1329. package/dist/icons/RightIcon.js.map +1 -1
  1330. package/dist/icons/RowTotalsIcon.d.ts +2 -5
  1331. package/dist/icons/RowTotalsIcon.js +2 -3
  1332. package/dist/icons/RowTotalsIcon.js.map +1 -1
  1333. package/dist/icons/SchemeIcon.d.ts +2 -5
  1334. package/dist/icons/SchemeIcon.js +2 -3
  1335. package/dist/icons/SchemeIcon.js.map +1 -1
  1336. package/dist/icons/SearchIcon.d.ts +2 -5
  1337. package/dist/icons/SearchIcon.js +2 -3
  1338. package/dist/icons/SearchIcon.js.map +1 -1
  1339. package/dist/icons/SemanticQueryIcon.d.ts +2 -5
  1340. package/dist/icons/SemanticQueryIcon.js +2 -3
  1341. package/dist/icons/SemanticQueryIcon.js.map +1 -1
  1342. package/dist/icons/SettingsIcon.d.ts +2 -5
  1343. package/dist/icons/SettingsIcon.js +2 -3
  1344. package/dist/icons/SettingsIcon.js.map +1 -1
  1345. package/dist/icons/ShieldFilledIcon.d.ts +2 -5
  1346. package/dist/icons/ShieldFilledIcon.js +2 -3
  1347. package/dist/icons/ShieldFilledIcon.js.map +1 -1
  1348. package/dist/icons/ShieldIcon.d.ts +2 -5
  1349. package/dist/icons/ShieldIcon.js +2 -3
  1350. package/dist/icons/ShieldIcon.js.map +1 -1
  1351. package/dist/icons/SlashIcon.d.ts +2 -5
  1352. package/dist/icons/SlashIcon.js +2 -3
  1353. package/dist/icons/SlashIcon.js.map +1 -1
  1354. package/dist/icons/SparklesIcon.d.ts +2 -5
  1355. package/dist/icons/SparklesIcon.js +2 -3
  1356. package/dist/icons/SparklesIcon.js.map +1 -1
  1357. package/dist/icons/SqlIcon.d.ts +2 -5
  1358. package/dist/icons/SqlIcon.js +2 -3
  1359. package/dist/icons/SqlIcon.js.map +1 -1
  1360. package/dist/icons/StatsIcon.d.ts +2 -5
  1361. package/dist/icons/StatsIcon.js +2 -3
  1362. package/dist/icons/StatsIcon.js.map +1 -1
  1363. package/dist/icons/StopIcon.d.ts +2 -5
  1364. package/dist/icons/StopIcon.js +2 -3
  1365. package/dist/icons/StopIcon.js.map +1 -1
  1366. package/dist/icons/StringIcon.d.ts +2 -5
  1367. package/dist/icons/StringIcon.js +2 -3
  1368. package/dist/icons/StringIcon.js.map +1 -1
  1369. package/dist/icons/SubtotalsIcon.d.ts +2 -5
  1370. package/dist/icons/SubtotalsIcon.js +2 -3
  1371. package/dist/icons/SubtotalsIcon.js.map +1 -1
  1372. package/dist/icons/SwitchIcon.d.ts +2 -5
  1373. package/dist/icons/SwitchIcon.js +2 -3
  1374. package/dist/icons/SwitchIcon.js.map +1 -1
  1375. package/dist/icons/TableIcon.d.ts +2 -5
  1376. package/dist/icons/TableIcon.js +2 -3
  1377. package/dist/icons/TableIcon.js.map +1 -1
  1378. package/dist/icons/ThumbsDownIcon.d.ts +2 -5
  1379. package/dist/icons/ThumbsDownIcon.js +2 -3
  1380. package/dist/icons/ThumbsDownIcon.js.map +1 -1
  1381. package/dist/icons/ThumbsUpIcon.d.ts +2 -5
  1382. package/dist/icons/ThumbsUpIcon.js +2 -3
  1383. package/dist/icons/ThumbsUpIcon.js.map +1 -1
  1384. package/dist/icons/ThunderboltCrossedIcon.d.ts +2 -5
  1385. package/dist/icons/ThunderboltCrossedIcon.js +2 -3
  1386. package/dist/icons/ThunderboltCrossedIcon.js.map +1 -1
  1387. package/dist/icons/ThunderboltFilledIcon.d.ts +2 -5
  1388. package/dist/icons/ThunderboltFilledIcon.js +2 -3
  1389. package/dist/icons/ThunderboltFilledIcon.js.map +1 -1
  1390. package/dist/icons/ThunderboltIcon.d.ts +2 -5
  1391. package/dist/icons/ThunderboltIcon.js +2 -3
  1392. package/dist/icons/ThunderboltIcon.js.map +1 -1
  1393. package/dist/icons/TimeIcon.d.ts +2 -5
  1394. package/dist/icons/TimeIcon.js +2 -3
  1395. package/dist/icons/TimeIcon.js.map +1 -1
  1396. package/dist/icons/TrashIcon.d.ts +2 -5
  1397. package/dist/icons/TrashIcon.js +2 -3
  1398. package/dist/icons/TrashIcon.js.map +1 -1
  1399. package/dist/icons/UnlockIcon.d.ts +2 -5
  1400. package/dist/icons/UnlockIcon.js +2 -3
  1401. package/dist/icons/UnlockIcon.js.map +1 -1
  1402. package/dist/icons/UpIcon.d.ts +2 -5
  1403. package/dist/icons/UpIcon.js +2 -3
  1404. package/dist/icons/UpIcon.js.map +1 -1
  1405. package/dist/icons/UserGroupIcon.d.ts +2 -5
  1406. package/dist/icons/UserGroupIcon.js +2 -3
  1407. package/dist/icons/UserGroupIcon.js.map +1 -1
  1408. package/dist/icons/UserIcon.d.ts +2 -5
  1409. package/dist/icons/UserIcon.js +2 -3
  1410. package/dist/icons/UserIcon.js.map +1 -1
  1411. package/dist/icons/UserLockIcon.d.ts +2 -5
  1412. package/dist/icons/UserLockIcon.js +2 -3
  1413. package/dist/icons/UserLockIcon.js.map +1 -1
  1414. package/dist/icons/ViewIcon.d.ts +2 -5
  1415. package/dist/icons/ViewIcon.js +2 -3
  1416. package/dist/icons/ViewIcon.js.map +1 -1
  1417. package/dist/icons/WarningFilledIcon.d.ts +2 -5
  1418. package/dist/icons/WarningFilledIcon.js +2 -3
  1419. package/dist/icons/WarningFilledIcon.js.map +1 -1
  1420. package/dist/icons/WarningIcon.d.ts +2 -5
  1421. package/dist/icons/WarningIcon.js +2 -3
  1422. package/dist/icons/WarningIcon.js.map +1 -1
  1423. package/dist/icons/index.d.ts +2 -1
  1424. package/dist/icons/wrap-icon.d.ts +2 -5
  1425. package/dist/icons/wrap-icon.js +2 -3
  1426. package/dist/icons/wrap-icon.js.map +1 -1
  1427. package/dist/index.d.ts +59 -61
  1428. package/dist/index.js +59 -64
  1429. package/dist/index.js.map +1 -1
  1430. package/dist/node_modules/.pnpm/csstype@3.1.2/node_modules/csstype/index.d.ts +3 -4
  1431. package/dist/probe/canonicalize.d.ts +3 -4
  1432. package/dist/probe/canonicalize.js +2 -2
  1433. package/dist/probe/canonicalize.js.map +1 -1
  1434. package/dist/probe/css.d.ts +4 -5
  1435. package/dist/probe/css.js +2 -3
  1436. package/dist/probe/css.js.map +1 -1
  1437. package/dist/probe/index.js +2 -3
  1438. package/dist/props.d.ts +1 -2
  1439. package/dist/provider.d.ts +3 -6
  1440. package/dist/provider.js +2 -3
  1441. package/dist/provider.js.map +1 -1
  1442. package/dist/providers/TrackingProvider.d.ts +1 -3
  1443. package/dist/providers/TrackingProvider.js +3 -4
  1444. package/dist/providers/TrackingProvider.js.map +1 -1
  1445. package/dist/providers/navigation-url.js +2 -2
  1446. package/dist/providers/navigation-url.js.map +1 -1
  1447. package/dist/providers/navigation.types.d.ts +7 -8
  1448. package/dist/providers/navigationAdapter.default.d.ts +1 -3
  1449. package/dist/providers/navigationAdapter.default.js +6 -4
  1450. package/dist/providers/navigationAdapter.default.js.map +1 -1
  1451. package/dist/providers/use-navigation.js +2 -3
  1452. package/dist/providers/use-navigation.js.map +1 -1
  1453. package/dist/shared/form.d.ts +33 -23
  1454. package/dist/shared/index.d.ts +4 -5
  1455. package/dist/tokens/all-tokens.d.ts +2 -4
  1456. package/dist/tokens/all-tokens.js +2 -3
  1457. package/dist/tokens/all-tokens.js.map +1 -1
  1458. package/dist/tokens/base.d.ts +1 -3
  1459. package/dist/tokens/base.js +38 -2
  1460. package/dist/tokens/base.js.map +1 -1
  1461. package/dist/tokens/color-seed.d.ts +2 -3
  1462. package/dist/tokens/color-seed.js +2 -3
  1463. package/dist/tokens/color-seed.js.map +1 -1
  1464. package/dist/tokens/color-theme.d.ts +5 -7
  1465. package/dist/tokens/color-theme.js +5 -6
  1466. package/dist/tokens/color-theme.js.map +1 -1
  1467. package/dist/tokens/colors.d.ts +3 -5
  1468. package/dist/tokens/colors.js +2 -3
  1469. package/dist/tokens/colors.js.map +1 -1
  1470. package/dist/tokens/index.d.ts +2 -1
  1471. package/dist/tokens/layout.d.ts +1 -3
  1472. package/dist/tokens/layout.js +7 -2
  1473. package/dist/tokens/layout.js.map +1 -1
  1474. package/dist/tokens/lazy-styles.js +2 -2
  1475. package/dist/tokens/lazy-styles.js.map +1 -1
  1476. package/dist/tokens/legacy-color.d.ts +3 -4
  1477. package/dist/tokens/legacy-color.js +2 -3
  1478. package/dist/tokens/legacy-color.js.map +1 -1
  1479. package/dist/tokens/palette-config.d.ts +19 -20
  1480. package/dist/tokens/palette-config.js +9 -24
  1481. package/dist/tokens/palette-config.js.map +1 -1
  1482. package/dist/tokens/palette.d.ts +6 -8
  1483. package/dist/tokens/palette.js +73 -89
  1484. package/dist/tokens/palette.js.map +1 -1
  1485. package/dist/tokens/resolve.d.ts +8 -9
  1486. package/dist/tokens/resolve.js +5 -6
  1487. package/dist/tokens/resolve.js.map +1 -1
  1488. package/dist/tokens/shadows.d.ts +1 -3
  1489. package/dist/tokens/shadows.js +6 -2
  1490. package/dist/tokens/shadows.js.map +1 -1
  1491. package/dist/tokens/sizes.d.ts +5 -7
  1492. package/dist/tokens/sizes.js +2 -2
  1493. package/dist/tokens/sizes.js.map +1 -1
  1494. package/dist/tokens/spacing.d.ts +1 -3
  1495. package/dist/tokens/spacing.js +2 -2
  1496. package/dist/tokens/spacing.js.map +1 -1
  1497. package/dist/tokens/typography.d.ts +2 -3
  1498. package/dist/tokens/typography.js +2 -2
  1499. package/dist/tokens/typography.js.map +1 -1
  1500. package/dist/utils/ResizeSensor.d.ts +1 -2
  1501. package/dist/utils/ResizeSensor.js +11 -9
  1502. package/dist/utils/ResizeSensor.js.map +1 -1
  1503. package/dist/utils/colors.js +3 -4
  1504. package/dist/utils/colors.js.map +1 -1
  1505. package/dist/utils/dotize.js +2 -2
  1506. package/dist/utils/dotize.js.map +1 -1
  1507. package/dist/utils/index.d.ts +2 -1
  1508. package/dist/utils/is-dev-env.js +2 -2
  1509. package/dist/utils/is-dev-env.js.map +1 -1
  1510. package/dist/utils/modules.d.ts +1 -2
  1511. package/dist/utils/modules.js +2 -2
  1512. package/dist/utils/modules.js.map +1 -1
  1513. package/dist/utils/promise.d.ts +1 -2
  1514. package/dist/utils/promise.js +2 -2
  1515. package/dist/utils/promise.js.map +1 -1
  1516. package/dist/utils/raf.d.ts +1 -2
  1517. package/dist/utils/raf.js +2 -2
  1518. package/dist/utils/raf.js.map +1 -1
  1519. package/dist/utils/random.d.ts +2 -3
  1520. package/dist/utils/random.js +3 -4
  1521. package/dist/utils/random.js.map +1 -1
  1522. package/dist/utils/range.d.ts +1 -2
  1523. package/dist/utils/range.js +2 -2
  1524. package/dist/utils/range.js.map +1 -1
  1525. package/dist/utils/react/RenderCache.d.ts +2 -9
  1526. package/dist/utils/react/RenderCache.js +2 -3
  1527. package/dist/utils/react/RenderCache.js.map +1 -1
  1528. package/dist/utils/react/Slots.d.ts +3 -6
  1529. package/dist/utils/react/Slots.js +2 -3
  1530. package/dist/utils/react/Slots.js.map +1 -1
  1531. package/dist/utils/react/chain.d.ts +1 -2
  1532. package/dist/utils/react/chain.js +2 -2
  1533. package/dist/utils/react/chain.js.map +1 -1
  1534. package/dist/utils/react/disabledProps.d.ts +4 -10
  1535. package/dist/utils/react/disabledProps.js +3 -3
  1536. package/dist/utils/react/disabledProps.js.map +1 -1
  1537. package/dist/utils/react/forwardRefWithGenerics.d.ts +2 -5
  1538. package/dist/utils/react/forwardRefWithGenerics.js +2 -2
  1539. package/dist/utils/react/forwardRefWithGenerics.js.map +1 -1
  1540. package/dist/utils/react/index.d.ts +1 -1
  1541. package/dist/utils/react/index.js +2 -3
  1542. package/dist/utils/react/interactions.js +2 -3
  1543. package/dist/utils/react/interactions.js.map +1 -1
  1544. package/dist/utils/react/isTextOnly.d.ts +1 -2
  1545. package/dist/utils/react/isTextOnly.js +2 -3
  1546. package/dist/utils/react/isTextOnly.js.map +1 -1
  1547. package/dist/utils/react/mapProps.js +2 -2
  1548. package/dist/utils/react/mapProps.js.map +1 -1
  1549. package/dist/utils/react/mergeProps.d.ts +2 -3
  1550. package/dist/utils/react/mergeProps.js +2 -3
  1551. package/dist/utils/react/mergeProps.js.map +1 -1
  1552. package/dist/utils/react/nullableValue.d.ts +1 -3
  1553. package/dist/utils/react/nullableValue.js +3 -3
  1554. package/dist/utils/react/nullableValue.js.map +1 -1
  1555. package/dist/utils/react/overlayKeyPropagation.js +3 -3
  1556. package/dist/utils/react/overlayKeyPropagation.js.map +1 -1
  1557. package/dist/utils/react/programmaticFocus.js +2 -2
  1558. package/dist/utils/react/programmaticFocus.js.map +1 -1
  1559. package/dist/utils/react/resolveIcon.d.ts +4 -6
  1560. package/dist/utils/react/resolveIcon.js +2 -2
  1561. package/dist/utils/react/resolveIcon.js.map +1 -1
  1562. package/dist/utils/react/sharedStore.js +2 -3
  1563. package/dist/utils/react/sharedStore.js.map +1 -1
  1564. package/dist/utils/react/useBufferedValue.d.ts +3 -4
  1565. package/dist/utils/react/useBufferedValue.js +2 -3
  1566. package/dist/utils/react/useBufferedValue.js.map +1 -1
  1567. package/dist/utils/react/useCombinedRefs.d.ts +2 -4
  1568. package/dist/utils/react/useCombinedRefs.js +2 -3
  1569. package/dist/utils/react/useCombinedRefs.js.map +1 -1
  1570. package/dist/utils/react/useControlledFocusVisible.d.ts +2 -3
  1571. package/dist/utils/react/useControlledFocusVisible.js +2 -3
  1572. package/dist/utils/react/useControlledFocusVisible.js.map +1 -1
  1573. package/dist/utils/react/useEventBus.d.ts +6 -10
  1574. package/dist/utils/react/useEventBus.js +2 -3
  1575. package/dist/utils/react/useEventBus.js.map +1 -1
  1576. package/dist/utils/react/useId.js +3 -4
  1577. package/dist/utils/react/useId.js.map +1 -1
  1578. package/dist/utils/react/useIsDarwin.js +2 -3
  1579. package/dist/utils/react/useIsDarwin.js.map +1 -1
  1580. package/dist/utils/react/useKeySymbols.js +2 -3
  1581. package/dist/utils/react/useKeySymbols.js.map +1 -1
  1582. package/dist/utils/react/useLayoutEffect.d.ts +0 -1
  1583. package/dist/utils/react/useLayoutEffect.js +2 -3
  1584. package/dist/utils/react/useLayoutEffect.js.map +1 -1
  1585. package/dist/utils/react/useLocalStorage.d.ts +2 -2
  1586. package/dist/utils/react/useLocalStorage.js +2 -3
  1587. package/dist/utils/react/useLocalStorage.js.map +1 -1
  1588. package/dist/utils/react/useMergeStyles.d.ts +1 -3
  1589. package/dist/utils/react/useMergeStyles.js +4 -4
  1590. package/dist/utils/react/useMergeStyles.js.map +1 -1
  1591. package/dist/utils/react/useOverlayEscapeGuard.js +2 -3
  1592. package/dist/utils/react/useOverlayEscapeGuard.js.map +1 -1
  1593. package/dist/utils/react/usePopoverSync.d.ts +3 -14
  1594. package/dist/utils/react/usePopoverSync.js +2 -3
  1595. package/dist/utils/react/usePopoverSync.js.map +1 -1
  1596. package/dist/utils/react/useQaProps.d.ts +2 -2
  1597. package/dist/utils/react/useQaProps.js +6 -4
  1598. package/dist/utils/react/useQaProps.js.map +1 -1
  1599. package/dist/utils/react/useScheme.d.ts +6 -7
  1600. package/dist/utils/react/useScheme.js +2 -3
  1601. package/dist/utils/react/useScheme.js.map +1 -1
  1602. package/dist/utils/react/useViewportSize.d.ts +3 -3
  1603. package/dist/utils/react/useViewportSize.js +2 -3
  1604. package/dist/utils/react/useViewportSize.js.map +1 -1
  1605. package/dist/utils/react/wrapNodeIfPlain.d.ts +1 -3
  1606. package/dist/utils/react/wrapNodeIfPlain.js +2 -3
  1607. package/dist/utils/react/wrapNodeIfPlain.js.map +1 -1
  1608. package/dist/utils/selection.d.ts +1 -3
  1609. package/dist/utils/selection.js +2 -2
  1610. package/dist/utils/selection.js.map +1 -1
  1611. package/dist/utils/styles.d.ts +1 -3
  1612. package/dist/utils/styles.js +2 -3
  1613. package/dist/utils/styles.js.map +1 -1
  1614. package/dist/utils/tree.d.ts +1 -2
  1615. package/dist/utils/tree.js +2 -2
  1616. package/dist/utils/tree.js.map +1 -1
  1617. package/dist/utils/warnings.d.ts +1 -2
  1618. package/dist/utils/warnings.js +2 -3
  1619. package/dist/utils/warnings.js.map +1 -1
  1620. package/dist/version.d.ts +1 -0
  1621. package/dist/version.js +4 -4
  1622. package/dist/version.js.map +1 -1
  1623. package/docs/CreateComponent.md +5 -1
  1624. package/docs/FieldProperties.md +11 -7
  1625. package/docs/Theming.md +1 -1
  1626. package/docs/Usage.md +8 -2
  1627. package/docs/components/content/Alert.md +3 -2
  1628. package/docs/components/content/Layout.md +78 -1
  1629. package/docs/components/content/TextItem.md +2 -2
  1630. package/docs/components/fields/ComboBox.md +1 -2
  1631. package/docs/components/fields/FilterListBox.md +3 -3
  1632. package/docs/components/fields/FilterPicker.md +8 -12
  1633. package/docs/components/fields/ListBox.md +11 -10
  1634. package/docs/components/fields/NumberInput.md +1 -2
  1635. package/docs/components/fields/Picker.md +10 -14
  1636. package/docs/components/fields/Select.md +11 -9
  1637. package/docs/components/fields/Switch.md +4 -5
  1638. package/docs/components/overlays/AlertDialog.md +1 -1
  1639. package/docs/components/overlays/Dialog.md +6 -6
  1640. package/docs/components/overlays/DialogContainer.md +46 -11
  1641. package/docs/components/overlays/DialogTrigger.md +5 -3
  1642. package/docs/tasty/README.md +4 -1
  1643. package/docs/tasty/adoption.md +25 -17
  1644. package/docs/tasty/ai-agents.md +42 -34
  1645. package/docs/tasty/comparison.md +9 -8
  1646. package/docs/tasty/configuration.md +187 -69
  1647. package/docs/tasty/debug.md +3 -2
  1648. package/docs/tasty/design-system.md +117 -15
  1649. package/docs/tasty/dsl.md +211 -117
  1650. package/docs/tasty/getting-started.md +81 -24
  1651. package/docs/tasty/injector.md +41 -40
  1652. package/docs/tasty/methodology.md +46 -21
  1653. package/docs/tasty/migration-v3.md +3 -3
  1654. package/docs/tasty/pipeline.md +22 -19
  1655. package/docs/tasty/plugins.md +21 -41
  1656. package/docs/tasty/react-api.md +72 -9
  1657. package/docs/tasty/runtime-benchmarks.md +11 -11
  1658. package/docs/tasty/ssr.md +92 -66
  1659. package/docs/tasty/styles.md +37 -17
  1660. package/docs/tasty/tasty-static.md +175 -57
  1661. package/package.json +18 -16
  1662. package/tasty.config.ts +8 -0
  1663. package/dist/i18n/useI18n.d.ts +0 -2
@@ -1,9 +1,8 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.196.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { CONTAINER_STYLES } from "@tenphi/tasty";
5
5
  import { useLayoutEffect, useState } from "react";
6
-
7
6
  //#region src/components/data/TableBase/use-column-window.ts
8
7
  const COLUMN_OVERSCAN = 300;
9
8
  const MAX_REFILL_COLUMNS = 1;
@@ -213,7 +212,7 @@ function useColumnWindow(layout, scroller, isEnabled, treeColumnKey) {
213
212
  } else t7 = $[25];
214
213
  return t7;
215
214
  }
216
-
217
215
  //#endregion
218
- export { canWindowColumns, useColumnWindow };
216
+ export { canWindowColumns, getBufferedColumnWindowRange, getColumnWindowRange, getColumnWindowSegments, useColumnWindow };
217
+
219
218
  //# sourceMappingURL=use-column-window.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-column-window.js","names":["CONTAINER_STYLES","useLayoutEffect","useState","useEvent","Styles","CubeResolvedColumn","CubeTableColumnLayout","COLUMN_OVERSCAN","MAX_REFILL_COLUMNS","SAFE_FRAME_STYLES","Set","filter","key","includes","ColumnWindowRange","first","last","sameRange","left","right","ColumnWindowSegment","column","T","span","canWindowColumns","columns","styles","every","width","Number","isFinite","cellProps","Object","keys","has","getColumnWindowRange","layout","offset","viewportWidth","overscanStart","overscanEnd","start","Math","max","pinnedStartWidth","end","pinnedEndWidth","position","length","next","min","index","getBufferedColumnWindowRange","previous","required","totalWidth","extendsStart","extendsEnd","refilled","retainColumn","treeColumnKey","pin","isStructural","isRowHeader","autoHeight","render","cellStyles","getColumnWindowSegments","range","segments","omitted","firstOmittedKey","flushGap","push","useColumnWindow","scroller","isEnabled","$","_c","t0","some","isWindowEnabled","setRange","fitsRow","setFitsRow","t1","clientWidth","abs","scrollLeft","resetRange","t2","table","querySelector","computed","getComputedStyle","rowHeight","getPropertyValue","trim","height","parseFloat","lineHeight","refreshAppearance","t3","t4","update","t5","reset","undefined","width_0","previous_0","next_0","lastOffset","lastVerticalOffset","scrollTop","onScroll","offset_0","verticalOffset","reset_0","observer","ResizeObserver","observe","addEventListener","passive","disconnect","removeEventListener","t6","t7"],"sources":["../../../../src/components/data/TableBase/use-column-window.ts"],"sourcesContent":["import { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { useLayoutEffect, useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { CubeResolvedColumn, CubeTableColumnLayout } from './types';\n\n// Keep nearby cells ready for a horizontal flick without multiplying the\n// mounted row window by the entire column collection.\nconst COLUMN_OVERSCAN = 300;\nconst MAX_REFILL_COLUMNS = 1;\nconst SAFE_FRAME_STYLES = new Set<string>(\n CONTAINER_STYLES.filter(\n (key) => !['font', 'preset', 'whiteSpace'].includes(key),\n ),\n);\n\nexport interface ColumnWindowRange {\n first: number;\n last: number;\n}\n\nfunction sameRange(\n left: ColumnWindowRange | null,\n right: ColumnWindowRange | null,\n) {\n if (left == null || right == null) return left === right;\n return left.first === right.first && left.last === right.last;\n}\n\nexport type ColumnWindowSegment<T> =\n | { column: CubeResolvedColumn<T>; key: string }\n | { column?: undefined; key: string; span: number };\n\n/** Arbitrary body styling and DOM spans need the complete intrinsic layout. */\nexport function canWindowColumns<T>(\n columns: readonly CubeResolvedColumn<T>[],\n styles?: Styles,\n) {\n return (\n columns.every(\n (column) =>\n column.width != null &&\n column.width > 0 &&\n Number.isFinite(column.width) &&\n !column.cellProps,\n ) && Object.keys(styles ?? {}).every((key) => SAFE_FRAME_STYLES.has(key))\n );\n}\n\nexport function getColumnWindowRange<T>(\n layout: CubeTableColumnLayout<T>,\n offset: number,\n viewportWidth: number,\n overscanStart = COLUMN_OVERSCAN,\n overscanEnd = COLUMN_OVERSCAN,\n): ColumnWindowRange {\n const start = Math.max(0, offset + layout.pinnedStartWidth - overscanStart);\n const end = offset + viewportWidth - layout.pinnedEndWidth + overscanEnd;\n let position = 0;\n let first = layout.columns.length;\n let last = -1;\n\n for (const column of layout.columns) {\n const next = position + column.width!;\n if (next > start && position < end) {\n first = Math.min(first, column.index);\n last = column.index;\n }\n position = next;\n }\n\n return { first, last };\n}\n\n/** Refill the moving edge without rebuilding rows at every column boundary. */\nexport function getBufferedColumnWindowRange<T>(\n layout: CubeTableColumnLayout<T>,\n previous: ColumnWindowRange | null,\n offset: number,\n viewportWidth: number,\n): ColumnWindowRange {\n const required = getColumnWindowRange(layout, offset, viewportWidth);\n if (!previous) return required;\n // Native scroll extents round fractional widths; no ahead buffer is\n // needed within a pixel of either endpoint.\n if (offset <= 0 || offset >= layout.totalWidth! - viewportWidth - 1)\n return required;\n const extendsStart = required.first < previous.first;\n const extendsEnd = required.last > previous.last;\n if (!extendsStart && !extendsEnd) {\n const first = Math.max(previous.first, required.first - MAX_REFILL_COLUMNS);\n const last = Math.min(previous.last, required.last + MAX_REFILL_COLUMNS);\n return first === previous.first && last === previous.last\n ? previous\n : { first, last };\n }\n // Both edges moving means the viewport/layout changed, not one scroll edge.\n if (extendsStart && extendsEnd) return required;\n const refilled = getColumnWindowRange(\n layout,\n offset,\n viewportWidth,\n extendsStart ? COLUMN_OVERSCAN * 2 : COLUMN_OVERSCAN,\n extendsEnd ? COLUMN_OVERSCAN * 2 : COLUMN_OVERSCAN,\n );\n // A pixel-only refill retains too many narrow cells during diagonal scroll.\n return {\n first: Math.max(refilled.first, required.first - MAX_REFILL_COLUMNS),\n last: Math.min(refilled.last, required.last + MAX_REFILL_COLUMNS),\n };\n}\n\n/** Preserve height-bearing cells, native controls and row naming offscreen. */\nfunction retainColumn<T>(\n column: CubeResolvedColumn<T>,\n treeColumnKey?: string,\n) {\n return (\n column.pin != null ||\n column.isStructural ||\n column.isRowHeader ||\n column.key === treeColumnKey ||\n column.autoHeight ||\n column.render != null ||\n column.cellStyles != null\n );\n}\n\nexport function getColumnWindowSegments<T>(\n columns: readonly CubeResolvedColumn<T>[],\n range: ColumnWindowRange | null,\n treeColumnKey?: string,\n): ColumnWindowSegment<T>[] {\n const segments: ColumnWindowSegment<T>[] = [];\n let omitted = 0;\n let firstOmittedKey = '';\n\n function flushGap() {\n if (!omitted) return;\n segments.push({ key: `column-gap:${firstOmittedKey}`, span: omitted });\n omitted = 0;\n }\n\n for (const column of columns) {\n if (\n range == null ||\n (column.index >= range.first && column.index <= range.last) ||\n retainColumn(column, treeColumnKey)\n ) {\n flushGap();\n segments.push({ key: `column-cell:${column.key}`, column });\n } else {\n if (!omitted) firstOmittedKey = column.key;\n omitted++;\n // Native table cells clamp colSpan to 1000.\n if (omitted === 1000) flushGap();\n }\n }\n flushGap();\n return segments;\n}\n\nexport function useColumnWindow<T>(\n layout: CubeTableColumnLayout<T>,\n scroller: HTMLDivElement | null,\n isEnabled: boolean,\n treeColumnKey?: string,\n) {\n const isWindowEnabled =\n isEnabled &&\n layout.columns.some((column) => !retainColumn(column, treeColumnKey));\n const [range, setRange] = useState<ColumnWindowRange | null>(null);\n const [fitsRow, setFitsRow] = useState(false);\n const resetRange = () => {\n const width = scroller?.clientWidth ?? 0;\n const next =\n isWindowEnabled && scroller && width > 0 && layout.totalWidth! > width\n ? getColumnWindowRange(layout, Math.abs(scroller.scrollLeft), width)\n : null;\n setRange((previous) => (sameRange(previous, next) ? previous : next));\n };\n const refreshAppearance = useEvent(() => {\n if (\n !isWindowEnabled ||\n !scroller ||\n scroller.clientWidth <= 0 ||\n layout.totalWidth! <= scroller.clientWidth\n ) {\n return;\n }\n const table = scroller?.querySelector('table');\n if (!table) return;\n const computed = getComputedStyle(table);\n const rowHeight = computed.getPropertyValue('--row-height').trim();\n const height = parseFloat(rowHeight);\n const lineHeight = parseFloat(computed.lineHeight);\n // Empty default cells can be shorter than text. Measure the inherited\n // tokens, since Root can override both typography and the size scale.\n setFitsRow(\n rowHeight === `${height}px` &&\n Number.isFinite(height) &&\n height >= lineHeight,\n );\n });\n\n useLayoutEffect(() => {\n if (!isWindowEnabled || !scroller) {\n return;\n }\n\n const update = (reset = false) => {\n const width = scroller.clientWidth;\n const offset = Math.abs(scroller.scrollLeft);\n // Only changed bands add a render. New rows use the ordinary band,\n // so diagonal scrolling does not multiply the extra refill cells.\n setRange((previous) => {\n const next =\n width > 0 && layout.totalWidth! > width\n ? getBufferedColumnWindowRange(\n layout,\n reset ? null : previous,\n offset,\n width,\n )\n : null;\n return sameRange(previous, next) ? previous : next;\n });\n };\n let lastOffset = Math.abs(scroller.scrollLeft);\n let lastVerticalOffset = scroller.scrollTop;\n const onScroll = () => {\n const offset = Math.abs(scroller.scrollLeft);\n const verticalOffset = scroller.scrollTop;\n const reset = verticalOffset !== lastVerticalOffset;\n lastVerticalOffset = verticalOffset;\n if (offset === lastOffset && !reset) return;\n lastOffset = offset;\n update(reset);\n };\n refreshAppearance();\n update(true);\n const observer = new ResizeObserver(() => {\n refreshAppearance();\n update(true);\n });\n observer.observe(scroller);\n scroller.addEventListener('scroll', onScroll, { passive: true });\n return () => {\n observer.disconnect();\n scroller.removeEventListener('scroll', onScroll);\n };\n }, [isWindowEnabled, layout, refreshAppearance, scroller]);\n\n return {\n resetRange,\n segments: getColumnWindowSegments(\n layout.columns,\n isWindowEnabled && fitsRow ? range : null,\n treeColumnKey,\n ),\n refreshAppearance,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-column-window.js","names":["CONTAINER_STYLES","useLayoutEffect","useState","useEvent","Styles","CubeResolvedColumn","CubeTableColumnLayout","COLUMN_OVERSCAN","MAX_REFILL_COLUMNS","SAFE_FRAME_STYLES","Set","filter","key","includes","ColumnWindowRange","first","last","sameRange","left","right","ColumnWindowSegment","column","T","span","canWindowColumns","columns","styles","every","width","Number","isFinite","cellProps","Object","keys","has","getColumnWindowRange","layout","offset","viewportWidth","overscanStart","overscanEnd","start","Math","max","pinnedStartWidth","end","pinnedEndWidth","position","length","next","min","index","getBufferedColumnWindowRange","previous","required","totalWidth","extendsStart","extendsEnd","refilled","retainColumn","treeColumnKey","pin","isStructural","isRowHeader","autoHeight","render","cellStyles","getColumnWindowSegments","range","segments","omitted","firstOmittedKey","flushGap","push","useColumnWindow","scroller","isEnabled","$","_c","t0","some","isWindowEnabled","setRange","fitsRow","setFitsRow","t1","clientWidth","abs","scrollLeft","resetRange","t2","table","querySelector","computed","getComputedStyle","rowHeight","getPropertyValue","trim","height","parseFloat","lineHeight","refreshAppearance","t3","t4","update","t5","reset","undefined","width_0","previous_0","next_0","lastOffset","lastVerticalOffset","scrollTop","onScroll","offset_0","verticalOffset","reset_0","observer","ResizeObserver","observe","addEventListener","passive","disconnect","removeEventListener","t6","t7","_c"],"sources":["../../../../src/components/data/TableBase/use-column-window.ts"],"sourcesContent":["import { CONTAINER_STYLES } from '@tenphi/tasty';\nimport { useLayoutEffect, useState } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\n\nimport type { Styles } from '@tenphi/tasty';\nimport type { CubeResolvedColumn, CubeTableColumnLayout } from './types';\n\n// Keep nearby cells ready for a horizontal flick without multiplying the\n// mounted row window by the entire column collection.\nconst COLUMN_OVERSCAN = 300;\nconst MAX_REFILL_COLUMNS = 1;\nconst SAFE_FRAME_STYLES = new Set<string>(\n CONTAINER_STYLES.filter(\n (key) => !['font', 'preset', 'whiteSpace'].includes(key),\n ),\n);\n\nexport interface ColumnWindowRange {\n first: number;\n last: number;\n}\n\nfunction sameRange(\n left: ColumnWindowRange | null,\n right: ColumnWindowRange | null,\n) {\n if (left == null || right == null) return left === right;\n return left.first === right.first && left.last === right.last;\n}\n\nexport type ColumnWindowSegment<T> =\n | { column: CubeResolvedColumn<T>; key: string }\n | { column?: undefined; key: string; span: number };\n\n/** Arbitrary body styling and DOM spans need the complete intrinsic layout. */\nexport function canWindowColumns<T>(\n columns: readonly CubeResolvedColumn<T>[],\n styles?: Styles,\n) {\n return (\n columns.every(\n (column) =>\n column.width != null &&\n column.width > 0 &&\n Number.isFinite(column.width) &&\n !column.cellProps,\n ) && Object.keys(styles ?? {}).every((key) => SAFE_FRAME_STYLES.has(key))\n );\n}\n\nexport function getColumnWindowRange<T>(\n layout: CubeTableColumnLayout<T>,\n offset: number,\n viewportWidth: number,\n overscanStart = COLUMN_OVERSCAN,\n overscanEnd = COLUMN_OVERSCAN,\n): ColumnWindowRange {\n const start = Math.max(0, offset + layout.pinnedStartWidth - overscanStart);\n const end = offset + viewportWidth - layout.pinnedEndWidth + overscanEnd;\n let position = 0;\n let first = layout.columns.length;\n let last = -1;\n\n for (const column of layout.columns) {\n const next = position + column.width!;\n if (next > start && position < end) {\n first = Math.min(first, column.index);\n last = column.index;\n }\n position = next;\n }\n\n return { first, last };\n}\n\n/** Refill the moving edge without rebuilding rows at every column boundary. */\nexport function getBufferedColumnWindowRange<T>(\n layout: CubeTableColumnLayout<T>,\n previous: ColumnWindowRange | null,\n offset: number,\n viewportWidth: number,\n): ColumnWindowRange {\n const required = getColumnWindowRange(layout, offset, viewportWidth);\n if (!previous) return required;\n // Native scroll extents round fractional widths; no ahead buffer is\n // needed within a pixel of either endpoint.\n if (offset <= 0 || offset >= layout.totalWidth! - viewportWidth - 1)\n return required;\n const extendsStart = required.first < previous.first;\n const extendsEnd = required.last > previous.last;\n if (!extendsStart && !extendsEnd) {\n const first = Math.max(previous.first, required.first - MAX_REFILL_COLUMNS);\n const last = Math.min(previous.last, required.last + MAX_REFILL_COLUMNS);\n return first === previous.first && last === previous.last\n ? previous\n : { first, last };\n }\n // Both edges moving means the viewport/layout changed, not one scroll edge.\n if (extendsStart && extendsEnd) return required;\n const refilled = getColumnWindowRange(\n layout,\n offset,\n viewportWidth,\n extendsStart ? COLUMN_OVERSCAN * 2 : COLUMN_OVERSCAN,\n extendsEnd ? COLUMN_OVERSCAN * 2 : COLUMN_OVERSCAN,\n );\n // A pixel-only refill retains too many narrow cells during diagonal scroll.\n return {\n first: Math.max(refilled.first, required.first - MAX_REFILL_COLUMNS),\n last: Math.min(refilled.last, required.last + MAX_REFILL_COLUMNS),\n };\n}\n\n/** Preserve height-bearing cells, native controls and row naming offscreen. */\nfunction retainColumn<T>(\n column: CubeResolvedColumn<T>,\n treeColumnKey?: string,\n) {\n return (\n column.pin != null ||\n column.isStructural ||\n column.isRowHeader ||\n column.key === treeColumnKey ||\n column.autoHeight ||\n column.render != null ||\n column.cellStyles != null\n );\n}\n\nexport function getColumnWindowSegments<T>(\n columns: readonly CubeResolvedColumn<T>[],\n range: ColumnWindowRange | null,\n treeColumnKey?: string,\n): ColumnWindowSegment<T>[] {\n const segments: ColumnWindowSegment<T>[] = [];\n let omitted = 0;\n let firstOmittedKey = '';\n\n function flushGap() {\n if (!omitted) return;\n segments.push({ key: `column-gap:${firstOmittedKey}`, span: omitted });\n omitted = 0;\n }\n\n for (const column of columns) {\n if (\n range == null ||\n (column.index >= range.first && column.index <= range.last) ||\n retainColumn(column, treeColumnKey)\n ) {\n flushGap();\n segments.push({ key: `column-cell:${column.key}`, column });\n } else {\n if (!omitted) firstOmittedKey = column.key;\n omitted++;\n // Native table cells clamp colSpan to 1000.\n if (omitted === 1000) flushGap();\n }\n }\n flushGap();\n return segments;\n}\n\nexport function useColumnWindow<T>(\n layout: CubeTableColumnLayout<T>,\n scroller: HTMLDivElement | null,\n isEnabled: boolean,\n treeColumnKey?: string,\n) {\n const isWindowEnabled =\n isEnabled &&\n layout.columns.some((column) => !retainColumn(column, treeColumnKey));\n const [range, setRange] = useState<ColumnWindowRange | null>(null);\n const [fitsRow, setFitsRow] = useState(false);\n const resetRange = () => {\n const width = scroller?.clientWidth ?? 0;\n const next =\n isWindowEnabled && scroller && width > 0 && layout.totalWidth! > width\n ? getColumnWindowRange(layout, Math.abs(scroller.scrollLeft), width)\n : null;\n setRange((previous) => (sameRange(previous, next) ? previous : next));\n };\n const refreshAppearance = useEvent(() => {\n if (\n !isWindowEnabled ||\n !scroller ||\n scroller.clientWidth <= 0 ||\n layout.totalWidth! <= scroller.clientWidth\n ) {\n return;\n }\n const table = scroller?.querySelector('table');\n if (!table) return;\n const computed = getComputedStyle(table);\n const rowHeight = computed.getPropertyValue('--row-height').trim();\n const height = parseFloat(rowHeight);\n const lineHeight = parseFloat(computed.lineHeight);\n // Empty default cells can be shorter than text. Measure the inherited\n // tokens, since Root can override both typography and the size scale.\n setFitsRow(\n rowHeight === `${height}px` &&\n Number.isFinite(height) &&\n height >= lineHeight,\n );\n });\n\n useLayoutEffect(() => {\n if (!isWindowEnabled || !scroller) {\n return;\n }\n\n const update = (reset = false) => {\n const width = scroller.clientWidth;\n const offset = Math.abs(scroller.scrollLeft);\n // Only changed bands add a render. New rows use the ordinary band,\n // so diagonal scrolling does not multiply the extra refill cells.\n setRange((previous) => {\n const next =\n width > 0 && layout.totalWidth! > width\n ? getBufferedColumnWindowRange(\n layout,\n reset ? null : previous,\n offset,\n width,\n )\n : null;\n return sameRange(previous, next) ? previous : next;\n });\n };\n let lastOffset = Math.abs(scroller.scrollLeft);\n let lastVerticalOffset = scroller.scrollTop;\n const onScroll = () => {\n const offset = Math.abs(scroller.scrollLeft);\n const verticalOffset = scroller.scrollTop;\n const reset = verticalOffset !== lastVerticalOffset;\n lastVerticalOffset = verticalOffset;\n if (offset === lastOffset && !reset) return;\n lastOffset = offset;\n update(reset);\n };\n refreshAppearance();\n update(true);\n const observer = new ResizeObserver(() => {\n refreshAppearance();\n update(true);\n });\n observer.observe(scroller);\n scroller.addEventListener('scroll', onScroll, { passive: true });\n return () => {\n observer.disconnect();\n scroller.removeEventListener('scroll', onScroll);\n };\n }, [isWindowEnabled, layout, refreshAppearance, scroller]);\n\n return {\n resetRange,\n segments: getColumnWindowSegments(\n layout.columns,\n isWindowEnabled && fitsRow ? range : null,\n treeColumnKey,\n ),\n refreshAppearance,\n };\n}\n"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.196.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useLayoutEffect, useState } from "react";
4
-
5
4
  //#region src/components/data/TableBase/use-container-width.ts
6
5
  /**
7
6
  * Content-box width of the scroller, measured before paint and kept current
@@ -43,7 +42,7 @@ function useContainerWidth(element) {
43
42
  useLayoutEffect(t0, t1);
44
43
  return width;
45
44
  }
46
-
47
45
  //#endregion
48
46
  export { useContainerWidth };
47
+
49
48
  //# sourceMappingURL=use-container-width.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-container-width.js","names":["useLayoutEffect","useState","useContainerWidth","element","$","_c","width","setWidth","t0","t1","Element","measure","current","clientWidth","observer","ResizeObserver","observe","disconnect"],"sources":["../../../../src/components/data/TableBase/use-container-width.ts"],"sourcesContent":["import { useLayoutEffect, useState } from 'react';\n\n/**\n * Content-box width of the scroller, measured before paint and kept current\n * with a `ResizeObserver`.\n *\n * Takes the **element**, not a ref: in the virtualized path the scroller is\n * created by Virtuoso and handed over through a callback after mount, so a hook\n * that peeked at `ref.current` once would see `null` and never measure\n * anything — leaving every column unsized.\n *\n * `useLayoutEffect` rather than `useEffect` on purpose: column widths are\n * derived from this value, so measuring after paint would show one frame of\n * min-width columns before they snap to their real size.\n */\nexport function useContainerWidth(element: HTMLElement | null): number | null {\n const [width, setWidth] = useState<number | null>(null);\n\n useLayoutEffect(() => {\n // Virtuoso's `scrollerRef` reports `HTMLElement | Window | null`, and\n // `ResizeObserver.observe` throws on anything that is not an Element.\n if (!element || !(element instanceof Element)) return;\n\n const measure = () => {\n // `clientWidth` excludes the vertical scrollbar, which is what we want:\n // the columns must fit the content box, not the border box, or a\n // scrollbar appearing would push the last column out and bring a\n // horizontal scrollbar with it.\n setWidth((current) =>\n current === element.clientWidth ? current : element.clientWidth,\n );\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n\n observer.observe(element);\n\n return () => observer.disconnect();\n }, [element]);\n\n return width;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAeA,SAAOE,kBAAAC,SAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CACL,MAAA,CAAAC,OAAAC,YAA0BN,SAAwB,KAAK;CAAC,IAAAO;CAAA,IAAAC;AAAA,KAAAL,EAAA,OAAAD,SAAA;AAExCK,aAAA;AAGd,OAAI,CAACL,WAAD,EAAcA,mBAAmBO,SAAQ;GAE7C,MAAAC,gBAAgB;AAKdJ,cAASK,YACPA,YAAYT,QAAOU,cAAnBD,UAA4CT,QAAOU,YACpD;;AAGHF,YAAS;GAET,MAAAG,WAAiB,IAAIC,eAAeJ,QAAQ;AAE5CG,YAAQE,QAASb,QAAQ;AAAA,gBAEZW,SAAQG,YAAa;;AACjCR,OAAA,CAACN,QAAQ;AAAAC,IAAA,KAAAD;AAAAC,IAAA,KAAAI;AAAAJ,IAAA,KAAAK;QAAA;AAAAD,OAAAJ,EAAA;AAAAK,OAAAL,EAAA;;AAtBZJ,iBAAgBQ,IAsBbC,GAAU;AAAA,QAENH"}
1
+ {"version":3,"file":"use-container-width.js","names":["useLayoutEffect","useState","useContainerWidth","element","$","_c","width","setWidth","t0","t1","Element","measure","current","clientWidth","observer","ResizeObserver","observe","disconnect","_c"],"sources":["../../../../src/components/data/TableBase/use-container-width.ts"],"sourcesContent":["import { useLayoutEffect, useState } from 'react';\n\n/**\n * Content-box width of the scroller, measured before paint and kept current\n * with a `ResizeObserver`.\n *\n * Takes the **element**, not a ref: in the virtualized path the scroller is\n * created by Virtuoso and handed over through a callback after mount, so a hook\n * that peeked at `ref.current` once would see `null` and never measure\n * anything — leaving every column unsized.\n *\n * `useLayoutEffect` rather than `useEffect` on purpose: column widths are\n * derived from this value, so measuring after paint would show one frame of\n * min-width columns before they snap to their real size.\n */\nexport function useContainerWidth(element: HTMLElement | null): number | null {\n const [width, setWidth] = useState<number | null>(null);\n\n useLayoutEffect(() => {\n // Virtuoso's `scrollerRef` reports `HTMLElement | Window | null`, and\n // `ResizeObserver.observe` throws on anything that is not an Element.\n if (!element || !(element instanceof Element)) return;\n\n const measure = () => {\n // `clientWidth` excludes the vertical scrollbar, which is what we want:\n // the columns must fit the content box, not the border box, or a\n // scrollbar appearing would push the last column out and bring a\n // horizontal scrollbar with it.\n setWidth((current) =>\n current === element.clientWidth ? current : element.clientWidth,\n );\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n\n observer.observe(element);\n\n return () => observer.disconnect();\n }, [element]);\n\n return width;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAeA,SAAOE,kBAAAC,SAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CACL,MAAA,CAAAC,OAAAC,YAA0BN,SAAwB,IAAI;CAAE,IAAAO;CAAA,IAAAC;CAAA,IAAAL,EAAA,OAAAD,SAAA;EAExCK,WAAA;GAGd,IAAI,CAACL,WAAD,EAAcA,mBAAmBO,UAAQ;GAE7C,MAAAC,gBAAgB;IAKdJ,UAASK,YACPA,YAAYT,QAAOU,cAAnBD,UAA4CT,QAAOU,WACrD;GAAC;GAGHF,QAAQ;GAER,MAAAG,WAAiB,IAAIC,eAAeJ,OAAO;GAE3CG,SAAQE,QAASb,OAAO;GAAC,aAEZW,SAAQG,WAAY;EAAC;EACjCR,KAAA,CAACN,OAAO;EAACC,EAAA,KAAAD;EAAAC,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;CAAA,OAAA;EAAAD,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;CAAA;CAtBZJ,gBAAgBQ,IAsBbC,EAAS;CAAC,OAENH;AAAK"}
@@ -1,10 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.196.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useLayoutEffect, useRef } from "react";
4
-
5
- //#region src/components/data/TableBase/use-row-move-animation.ts
6
- /** Matches ag-grid's row animation closely enough to feel familiar. */
7
- const ROW_MOVE_DURATION = 120;
8
4
  /** Matches `DisplayTransition`'s check, which is the kit's existing precedent. */
9
5
  function prefersReducedMotion() {
10
6
  return typeof window !== "undefined" && Boolean(window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches);
@@ -36,7 +32,7 @@ function prefersReducedMotion() {
36
32
  function useRowMoveAnimation(t0) {
37
33
  const $ = c(5);
38
34
  const { isEnabled, bodyRef, duration: t1 } = t0;
39
- const duration = t1 === void 0 ? ROW_MOVE_DURATION : t1;
35
+ const duration = t1 === void 0 ? 120 : t1;
40
36
  const previousRef = useRef(null);
41
37
  let t2;
42
38
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
@@ -107,7 +103,7 @@ function useRowMoveAnimation(t0) {
107
103
  function _temp(row_0) {
108
104
  return row_0.dataset.key;
109
105
  }
110
-
111
106
  //#endregion
112
107
  export { useRowMoveAnimation };
108
+
113
109
  //# sourceMappingURL=use-row-move-animation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-row-move-animation.js","names":["useLayoutEffect","useRef","RefObject","ROW_MOVE_DURATION","UseRowMoveAnimationOptions","isEnabled","bodyRef","HTMLTableSectionElement","duration","prefersReducedMotion","window","Boolean","matchMedia","matches","useRowMoveAnimation","t0","$","_c","t1","undefined","previousRef","t2","Symbol","for","previousOrderRef","t3","body","current","rows","Array","from","querySelectorAll","next","Map","row","set","dataset","key","offsetTop","previous","previousOrder","nextOrder","map","_temp","stillHere","Set","before","filter","has","after","key_0","isReorder","length","some","key_1","index","moved","row_1","get","delta","push","row_2","delta_0","style","transition","transform","row_3","clear","row_4","timer","setTimeout","clearTimeout","row_0"],"sources":["../../../../src/components/data/TableBase/use-row-move-animation.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\n\nimport type { RefObject } from 'react';\n\n/** Matches ag-grid's row animation closely enough to feel familiar. */\nexport const ROW_MOVE_DURATION = 120;\n\nexport interface UseRowMoveAnimationOptions {\n isEnabled: boolean;\n /** The `<tbody>` the rows live in. */\n bodyRef: RefObject<HTMLTableSectionElement | null>;\n /** @default 120 */\n duration?: number;\n}\n\n/** Matches `DisplayTransition`'s check, which is the kit's existing precedent. */\nfunction prefersReducedMotion() {\n return (\n typeof window !== 'undefined' &&\n Boolean(window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches)\n );\n}\n\n/**\n * Slides rows to their new positions when the order changes.\n *\n * FLIP: the previous commit's positions are the First, this commit's are the\n * Last, and each row is Inverted with a `translateY` back to where it was and\n * then Played to zero. The DOM is already correct the whole time — only the\n * paint is behind — so a test or a screen reader sees the new order\n * immediately, and nothing has to be delayed or double-rendered.\n *\n * Sorting a table otherwise teleports every row at once, and the eye has no way\n * to follow a particular one to where it went. The whole value is in tracking\n * one row, which is why this animates positions rather than cross-fading.\n *\n * **Only a reorder**, and only rows that were already on screen. If the rows\n * common to both commits are in the same relative order, nothing animates,\n * however much their positions moved — that is a relayout, not a reorder, and\n * it covers the initial mount (widths resolving, the virtualizer measuring, a\n * scrollbar appearing), a container resize, and a filter that only removes\n * rows.\n *\n * Scrolling is not movement either, and that falls out of measuring `offsetTop`\n * rather than viewport coordinates: it is relative to the scroller's content,\n * so it does not change as the content scrolls past.\n */\nexport function useRowMoveAnimation({\n isEnabled,\n bodyRef,\n duration = ROW_MOVE_DURATION,\n}: UseRowMoveAnimationOptions) {\n const previousRef = useRef<Map<string, number> | null>(null);\n const previousOrderRef = useRef<string[]>([]);\n\n // No dependency array: positions are captured after every enabled commit,\n // because any of them may be the one a reorder starts from.\n useLayoutEffect(() => {\n const body = bodyRef.current;\n\n if (!body || !isEnabled || prefersReducedMotion()) {\n // Enabling starts a fresh snapshot; disabled frames need no geometry.\n previousRef.current = null;\n previousOrderRef.current = [];\n return;\n }\n\n const rows = Array.from(\n body.querySelectorAll<HTMLTableRowElement>(\n // Pinned rows are excluded by the selector rather than filtered later:\n // they do not take part in the order, so they never move.\n 'tr[data-element=\"Row\"][data-key]:not([data-pinned])',\n ),\n );\n\n // `offsetTop`, not `getBoundingClientRect()`: it is relative to the\n // scroller, so scrolling does not read as movement. Otherwise every scroll\n // tick would look like a reorder of the whole page.\n const next = new Map<string, number>();\n\n for (const row of rows) next.set(row.dataset.key!, row.offsetTop);\n\n const previous = previousRef.current;\n const previousOrder = previousOrderRef.current;\n const nextOrder = rows.map((row) => row.dataset.key!);\n\n previousRef.current = next;\n previousOrderRef.current = nextOrder;\n\n if (!previous) return;\n\n // Animate a REORDER, never a relayout.\n //\n // Positions shift for all sorts of reasons that are not a row moving: the\n // column widths resolving after the first measure, the virtualizer taking\n // its measurements, a scrollbar appearing, a font landing, the container\n // being resized. Every one of those happens on the second commit of a\n // normal mount — so keying off \"an offset changed\" animated the table into\n // existence on load, which is exactly what a load should not do.\n //\n // Comparing the order of the rows common to both commits answers the real\n // question. A relayout leaves it identical; a sort does not.\n const stillHere = new Set(nextOrder);\n const before = previousOrder.filter((key) => stillHere.has(key));\n const after = nextOrder.filter((key) => previous.has(key));\n const isReorder =\n before.length !== after.length ||\n before.some((key, index) => key !== after[index]);\n\n if (!isReorder) return;\n\n const moved: { row: HTMLTableRowElement; delta: number }[] = [];\n\n for (const row of rows) {\n const from = previous.get(row.dataset.key!);\n\n // A row that was not here before has nowhere to come from. Skipped rather\n // than bailing on the whole batch: a virtualized window swaps some of its\n // rows on every re-sort, and refusing to animate unless ALL of them are\n // familiar means a virtualized grid — most result grids — never animates\n // at all.\n if (from === undefined) continue;\n\n const delta = from - next.get(row.dataset.key!)!;\n\n if (delta !== 0) moved.push({ row, delta });\n }\n\n if (!moved.length) return;\n\n // Invert: put every moved row back where it was, with transitions off so\n // this jump is not itself animated.\n for (const { row, delta } of moved) {\n row.style.transition = 'none';\n row.style.transform = `translateY(${delta}px)`;\n }\n\n // Flush the inverted state into layout, so the browser has something to\n // animate FROM. A forced reflow rather than `requestAnimationFrame`,\n // deliberately: rAF does not fire in a hidden tab, and a sort that lands\n // while the tab is in the background would leave every row frozen at its\n // old position until the next reorder. One reflow, once per animation.\n void body.offsetHeight;\n\n // Play.\n for (const { row } of moved) {\n row.style.transition = `transform ${duration}ms ease-out`;\n row.style.transform = '';\n }\n\n // Clear on arrival. A `transition` left inline would go on to animate\n // transforms this hook never set — a dragged row, for one.\n //\n // A timer rather than `transitionend`, for the same reason the invert does\n // not use `requestAnimationFrame`: in a hidden tab the transition never\n // runs, so the event never fires and every animated row keeps its inline\n // `transition` for the rest of the session. The duration is known exactly,\n // so there is nothing to wait to be told.\n const clear = () => {\n for (const { row } of moved) {\n row.style.transition = '';\n row.style.transform = '';\n }\n };\n const timer = setTimeout(clear, duration);\n\n return () => {\n // A reorder landing mid-animation starts over from wherever the rows are,\n // so nothing may be left behind.\n clearTimeout(timer);\n clear();\n };\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-row-move-animation.js","names":["useLayoutEffect","useRef","RefObject","ROW_MOVE_DURATION","UseRowMoveAnimationOptions","isEnabled","bodyRef","HTMLTableSectionElement","duration","prefersReducedMotion","window","Boolean","matchMedia","matches","useRowMoveAnimation","t0","$","_c","t1","undefined","previousRef","t2","Symbol","for","previousOrderRef","t3","body","current","rows","Array","from","querySelectorAll","next","Map","row","set","dataset","key","offsetTop","previous","previousOrder","nextOrder","map","_temp","stillHere","Set","before","filter","has","after","key_0","isReorder","length","some","key_1","index","moved","row_1","get","delta","push","row_2","delta_0","style","transition","transform","row_3","clear","row_4","timer","setTimeout","clearTimeout","row_0","_c"],"sources":["../../../../src/components/data/TableBase/use-row-move-animation.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\n\nimport type { RefObject } from 'react';\n\n/** Matches ag-grid's row animation closely enough to feel familiar. */\nexport const ROW_MOVE_DURATION = 120;\n\nexport interface UseRowMoveAnimationOptions {\n isEnabled: boolean;\n /** The `<tbody>` the rows live in. */\n bodyRef: RefObject<HTMLTableSectionElement | null>;\n /** @default 120 */\n duration?: number;\n}\n\n/** Matches `DisplayTransition`'s check, which is the kit's existing precedent. */\nfunction prefersReducedMotion() {\n return (\n typeof window !== 'undefined' &&\n Boolean(window.matchMedia?.('(prefers-reduced-motion: reduce)')?.matches)\n );\n}\n\n/**\n * Slides rows to their new positions when the order changes.\n *\n * FLIP: the previous commit's positions are the First, this commit's are the\n * Last, and each row is Inverted with a `translateY` back to where it was and\n * then Played to zero. The DOM is already correct the whole time — only the\n * paint is behind — so a test or a screen reader sees the new order\n * immediately, and nothing has to be delayed or double-rendered.\n *\n * Sorting a table otherwise teleports every row at once, and the eye has no way\n * to follow a particular one to where it went. The whole value is in tracking\n * one row, which is why this animates positions rather than cross-fading.\n *\n * **Only a reorder**, and only rows that were already on screen. If the rows\n * common to both commits are in the same relative order, nothing animates,\n * however much their positions moved — that is a relayout, not a reorder, and\n * it covers the initial mount (widths resolving, the virtualizer measuring, a\n * scrollbar appearing), a container resize, and a filter that only removes\n * rows.\n *\n * Scrolling is not movement either, and that falls out of measuring `offsetTop`\n * rather than viewport coordinates: it is relative to the scroller's content,\n * so it does not change as the content scrolls past.\n */\nexport function useRowMoveAnimation({\n isEnabled,\n bodyRef,\n duration = ROW_MOVE_DURATION,\n}: UseRowMoveAnimationOptions) {\n const previousRef = useRef<Map<string, number> | null>(null);\n const previousOrderRef = useRef<string[]>([]);\n\n // No dependency array: positions are captured after every enabled commit,\n // because any of them may be the one a reorder starts from.\n useLayoutEffect(() => {\n const body = bodyRef.current;\n\n if (!body || !isEnabled || prefersReducedMotion()) {\n // Enabling starts a fresh snapshot; disabled frames need no geometry.\n previousRef.current = null;\n previousOrderRef.current = [];\n return;\n }\n\n const rows = Array.from(\n body.querySelectorAll<HTMLTableRowElement>(\n // Pinned rows are excluded by the selector rather than filtered later:\n // they do not take part in the order, so they never move.\n 'tr[data-element=\"Row\"][data-key]:not([data-pinned])',\n ),\n );\n\n // `offsetTop`, not `getBoundingClientRect()`: it is relative to the\n // scroller, so scrolling does not read as movement. Otherwise every scroll\n // tick would look like a reorder of the whole page.\n const next = new Map<string, number>();\n\n for (const row of rows) next.set(row.dataset.key!, row.offsetTop);\n\n const previous = previousRef.current;\n const previousOrder = previousOrderRef.current;\n const nextOrder = rows.map((row) => row.dataset.key!);\n\n previousRef.current = next;\n previousOrderRef.current = nextOrder;\n\n if (!previous) return;\n\n // Animate a REORDER, never a relayout.\n //\n // Positions shift for all sorts of reasons that are not a row moving: the\n // column widths resolving after the first measure, the virtualizer taking\n // its measurements, a scrollbar appearing, a font landing, the container\n // being resized. Every one of those happens on the second commit of a\n // normal mount — so keying off \"an offset changed\" animated the table into\n // existence on load, which is exactly what a load should not do.\n //\n // Comparing the order of the rows common to both commits answers the real\n // question. A relayout leaves it identical; a sort does not.\n const stillHere = new Set(nextOrder);\n const before = previousOrder.filter((key) => stillHere.has(key));\n const after = nextOrder.filter((key) => previous.has(key));\n const isReorder =\n before.length !== after.length ||\n before.some((key, index) => key !== after[index]);\n\n if (!isReorder) return;\n\n const moved: { row: HTMLTableRowElement; delta: number }[] = [];\n\n for (const row of rows) {\n const from = previous.get(row.dataset.key!);\n\n // A row that was not here before has nowhere to come from. Skipped rather\n // than bailing on the whole batch: a virtualized window swaps some of its\n // rows on every re-sort, and refusing to animate unless ALL of them are\n // familiar means a virtualized grid — most result grids — never animates\n // at all.\n if (from === undefined) continue;\n\n const delta = from - next.get(row.dataset.key!)!;\n\n if (delta !== 0) moved.push({ row, delta });\n }\n\n if (!moved.length) return;\n\n // Invert: put every moved row back where it was, with transitions off so\n // this jump is not itself animated.\n for (const { row, delta } of moved) {\n row.style.transition = 'none';\n row.style.transform = `translateY(${delta}px)`;\n }\n\n // Flush the inverted state into layout, so the browser has something to\n // animate FROM. A forced reflow rather than `requestAnimationFrame`,\n // deliberately: rAF does not fire in a hidden tab, and a sort that lands\n // while the tab is in the background would leave every row frozen at its\n // old position until the next reorder. One reflow, once per animation.\n void body.offsetHeight;\n\n // Play.\n for (const { row } of moved) {\n row.style.transition = `transform ${duration}ms ease-out`;\n row.style.transform = '';\n }\n\n // Clear on arrival. A `transition` left inline would go on to animate\n // transforms this hook never set — a dragged row, for one.\n //\n // A timer rather than `transitionend`, for the same reason the invert does\n // not use `requestAnimationFrame`: in a hidden tab the transition never\n // runs, so the event never fires and every animated row keeps its inline\n // `transition` for the rest of the session. The duration is known exactly,\n // so there is nothing to wait to be told.\n const clear = () => {\n for (const { row } of moved) {\n row.style.transition = '';\n row.style.transform = '';\n }\n };\n const timer = setTimeout(clear, duration);\n\n return () => {\n // A reorder landing mid-animation starts over from wherever the rows are,\n // so nothing may be left behind.\n clearTimeout(timer);\n clear();\n };\n });\n}\n"],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.196.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
3
  import { useLayoutEffect, useState } from "react";
4
-
5
4
  //#region src/components/data/TableBase/use-scrollability.ts
6
5
  const NONE = {
7
6
  x: false,
@@ -57,7 +56,7 @@ function useScrollability(element) {
57
56
  useLayoutEffect(t0, t1);
58
57
  return state;
59
58
  }
60
-
61
59
  //#endregion
62
60
  export { useScrollability };
61
+
63
62
  //# sourceMappingURL=use-scrollability.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-scrollability.js","names":["useLayoutEffect","useState","CubeScrollability","x","y","NONE","useScrollability","element","$","_c","state","setState","t0","t1","Element","measure","next","scrollWidth","clientWidth","scrollHeight","clientHeight","current","observer","ResizeObserver","observe","content","firstElementChild","disconnect"],"sources":["../../../../src/components/data/TableBase/use-scrollability.ts"],"sourcesContent":["import { useLayoutEffect, useState } from 'react';\n\nexport interface CubeScrollability {\n x: boolean;\n y: boolean;\n}\n\nconst NONE: CubeScrollability = { x: false, y: false };\n\n/**\n * Whether the scroller can actually scroll, per axis.\n *\n * This exists for `overscroll-behavior`. `contain` is what stops a horizontal\n * swipe at the scroll edge from triggering browser back-navigation, but Chrome\n * applies it to any element with `overflow: auto` — including one whose content\n * fits. The wheel event is then swallowed by a scroller with nothing to scroll,\n * and the page behind it will not move. So the containment has to be scoped to\n * the axis that is genuinely scrollable, which means measuring.\n *\n * Both the scroller and its content are observed: the scroller's own box does\n * not change when rows are added, so observing it alone would miss a table that\n * grew past its container.\n */\nexport function useScrollability(\n element: HTMLElement | null,\n): CubeScrollability {\n const [state, setState] = useState<CubeScrollability>(NONE);\n\n useLayoutEffect(() => {\n // Matches `useContainerWidth`: a scroller handed over by a callback ref can\n // be null, and `observe` throws on anything that is not an Element.\n if (!element || !(element instanceof Element)) {\n setState(NONE);\n\n return;\n }\n\n const measure = () => {\n // A 1px tolerance: sub-pixel layout regularly leaves `scrollHeight` a\n // fraction above `clientHeight` on a table that visibly does not scroll,\n // and trapping the wheel over that fraction is the exact bug this avoids.\n const next = {\n x: element.scrollWidth - element.clientWidth > 1,\n y: element.scrollHeight - element.clientHeight > 1,\n };\n\n setState((current) =>\n current.x === next.x && current.y === next.y ? current : next,\n );\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n\n observer.observe(element);\n\n const content = element.firstElementChild;\n\n if (content) observer.observe(content);\n\n return () => observer.disconnect();\n }, [element]);\n\n return state;\n}\n"],"mappings":";;;;;AAOA,MAAMK,OAA0B;CAAEF,GAAG;CAAOC,GAAG;CAAO;;;;;;;;;;;;;;;AAgBtD,SAAOE,iBAAAC,SAAA;CAAA,MAAAC,IAAAC,EAAA,EAAA;CAGL,MAAA,CAAAC,OAAAC,YAA0BV,SAA4BI,KAAK;CAAC,IAAAO;CAAA,IAAAC;AAAA,KAAAL,EAAA,OAAAD,SAAA;AAE5CK,aAAA;AAGd,OAAI,CAACL,WAAD,EAAcA,mBAAmBO,UAAQ;AAC3CH,aAASN,KAAK;AAAA;;GAKhB,MAAAU,gBAAgB;IAId,MAAAC,OAAa;KAAAb,GACRI,QAAOU,cAAeV,QAAOW,cAAe;KAACd,GAC7CG,QAAOY,eAAgBZ,QAAOa,eAAgB;KAClD;AAEDT,cAASU,YACPA,QAAOlB,MAAOa,KAAIb,KAAMkB,QAAOjB,MAAOY,KAAIZ,IAA1CiB,UAAAL,KACD;;AAGHD,YAAS;GAET,MAAAO,WAAiB,IAAIC,eAAeR,QAAQ;AAE5CO,YAAQE,QAASjB,QAAQ;GAEzB,MAAAkB,UAAgBlB,QAAOmB;AAEvB,OAAID,QAASH,UAAQE,QAASC,QAAQ;AAAC,gBAE1BH,SAAQK,YAAa;;AACjCd,OAAA,CAACN,QAAQ;AAAAC,IAAA,KAAAD;AAAAC,IAAA,KAAAI;AAAAJ,IAAA,KAAAK;QAAA;AAAAD,OAAAJ,EAAA;AAAAK,OAAAL,EAAA;;AAlCZR,iBAAgBY,IAkCbC,GAAU;AAAA,QAENH"}
1
+ {"version":3,"file":"use-scrollability.js","names":["useLayoutEffect","useState","CubeScrollability","x","y","NONE","useScrollability","element","$","_c","state","setState","t0","t1","Element","measure","next","scrollWidth","clientWidth","scrollHeight","clientHeight","current","observer","ResizeObserver","observe","content","firstElementChild","disconnect","_c"],"sources":["../../../../src/components/data/TableBase/use-scrollability.ts"],"sourcesContent":["import { useLayoutEffect, useState } from 'react';\n\nexport interface CubeScrollability {\n x: boolean;\n y: boolean;\n}\n\nconst NONE: CubeScrollability = { x: false, y: false };\n\n/**\n * Whether the scroller can actually scroll, per axis.\n *\n * This exists for `overscroll-behavior`. `contain` is what stops a horizontal\n * swipe at the scroll edge from triggering browser back-navigation, but Chrome\n * applies it to any element with `overflow: auto` — including one whose content\n * fits. The wheel event is then swallowed by a scroller with nothing to scroll,\n * and the page behind it will not move. So the containment has to be scoped to\n * the axis that is genuinely scrollable, which means measuring.\n *\n * Both the scroller and its content are observed: the scroller's own box does\n * not change when rows are added, so observing it alone would miss a table that\n * grew past its container.\n */\nexport function useScrollability(\n element: HTMLElement | null,\n): CubeScrollability {\n const [state, setState] = useState<CubeScrollability>(NONE);\n\n useLayoutEffect(() => {\n // Matches `useContainerWidth`: a scroller handed over by a callback ref can\n // be null, and `observe` throws on anything that is not an Element.\n if (!element || !(element instanceof Element)) {\n setState(NONE);\n\n return;\n }\n\n const measure = () => {\n // A 1px tolerance: sub-pixel layout regularly leaves `scrollHeight` a\n // fraction above `clientHeight` on a table that visibly does not scroll,\n // and trapping the wheel over that fraction is the exact bug this avoids.\n const next = {\n x: element.scrollWidth - element.clientWidth > 1,\n y: element.scrollHeight - element.clientHeight > 1,\n };\n\n setState((current) =>\n current.x === next.x && current.y === next.y ? current : next,\n );\n };\n\n measure();\n\n const observer = new ResizeObserver(measure);\n\n observer.observe(element);\n\n const content = element.firstElementChild;\n\n if (content) observer.observe(content);\n\n return () => observer.disconnect();\n }, [element]);\n\n return state;\n}\n"],"mappings":";;;;AAOA,MAAMK,OAA0B;CAAEF,GAAG;CAAOC,GAAG;AAAM;;;;;;;;;;;;;;;AAgBrD,SAAOE,iBAAAC,SAAA;CAAA,MAAAC,IAAAC,EAAA,CAAA;CAGL,MAAA,CAAAC,OAAAC,YAA0BV,SAA4BI,IAAI;CAAE,IAAAO;CAAA,IAAAC;CAAA,IAAAL,EAAA,OAAAD,SAAA;EAE5CK,WAAA;GAGd,IAAI,CAACL,WAAD,EAAcA,mBAAmBO,UAAQ;IAC3CH,SAASN,IAAI;IAAC;GAAA;GAKhB,MAAAU,gBAAgB;IAId,MAAAC,OAAa;KAAAb,GACRI,QAAOU,cAAeV,QAAOW,cAAe;KAACd,GAC7CG,QAAOY,eAAgBZ,QAAOa,eAAgB;IACnD;IAEAT,UAASU,YACPA,QAAOlB,MAAOa,KAAIb,KAAMkB,QAAOjB,MAAOY,KAAIZ,IAA1CiB,UAAAL,IACF;GAAC;GAGHD,QAAQ;GAER,MAAAO,WAAiB,IAAIC,eAAeR,OAAO;GAE3CO,SAAQE,QAASjB,OAAO;GAExB,MAAAkB,UAAgBlB,QAAOmB;GAEvB,IAAID,SAASH,SAAQE,QAASC,OAAO;GAAE,aAE1BH,SAAQK,WAAY;EAAC;EACjCd,KAAA,CAACN,OAAO;EAACC,EAAA,KAAAD;EAAAC,EAAA,KAAAI;EAAAJ,EAAA,KAAAK;CAAA,OAAA;EAAAD,KAAAJ,EAAA;EAAAK,KAAAL,EAAA;CAAA;CAlCZR,gBAAgBY,IAkCbC,EAAS;CAAC,OAENH;AAAK"}
@@ -1,9 +1,5 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.196.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
2
2
  import { c } from "react/compiler-runtime";
3
-
4
- //#region src/components/data/TableBase/use-table-columns.ts
5
- /** @default when a column declares neither `width` nor `minWidth`. */
6
- const DEFAULT_MIN_WIDTH = 150;
7
3
  /**
8
4
  * Every column's current width, so a resize can change exactly one of them.
9
5
  *
@@ -80,7 +76,7 @@ function orderColumns(columns) {
80
76
  }
81
77
  function toColumnSpec(column, isStructural, columnWidths) {
82
78
  const explicit = columnWidths?.[column.key] ?? column.width;
83
- const minWidth = column.minWidth ?? (explicit != null ? explicit : isStructural ? 0 : DEFAULT_MIN_WIDTH);
79
+ const minWidth = column.minWidth ?? (explicit != null ? explicit : isStructural ? 0 : 150);
84
80
  return {
85
81
  column,
86
82
  isStructural,
@@ -240,7 +236,7 @@ function useTableColumns(t0) {
240
236
  } else t1 = $[5];
241
237
  return t1;
242
238
  }
243
-
244
239
  //#endregion
245
- export { freezeColumnWidths, getColumnText, getColumnValue, useTableColumns };
240
+ export { freezeColumnWidths, getColumnText, getColumnValue, readPath, useTableColumns };
241
+
246
242
  //# sourceMappingURL=use-table-columns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-columns.js","names":["useMemo","CubeResolvedColumn","CubeTableColumn","CubeTableColumnLayout","DEFAULT_MIN_WIDTH","freezeColumnWidths","layout","T","base","Record","columns","reduce","widths","column","isStructural","width","key","Math","round","readPath","row","path","undefined","includes","current","part","split","ValueColumn","Pick","getColumnValue","rowIndex","getValue","getColumnText","value","format","type","String","Date","toISOString","clamp","min","max","Number","POSITIVE_INFINITY","UseTableColumnsOptions","containerWidth","columnWidths","leadingColumns","trailingColumns","ColumnSpec","fixed","minWidth","maxWidth","flex","orderColumns","visible","filter","isHidden","c","pin","toColumnSpec","explicit","sumFlex","specs","sum","s","distributeFlexWidths","flexSpecs","available","resolved","Map","remaining","pool","length","totalFlex","nextPool","consumed","spec","ideal","clamped","set","push","totalLeft","resolveWidths","isOverflowing","isMeasured","minTotal","fixedTotal","applyPinOffsets","pinnedStartWidth","pinnedEndWidth","pinOffset","i","lastPinnedStart","at","firstPinnedEnd","find","isPinEdge","resolveColumnLayout","leading","trailing","structuralKeys","Set","map","has","out","index","ariaColIndex","get","align","totalWidth","every","useTableColumns","t0","$","_c","t1"],"sources":["../../../../src/components/data/TableBase/use-table-columns.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type {\n CubeResolvedColumn,\n CubeTableColumn,\n CubeTableColumnLayout,\n} from './types';\n\n/** @default when a column declares neither `width` nor `minWidth`. */\nexport const DEFAULT_MIN_WIDTH = 150;\n\n/**\n * Every column's current width, so a resize can change exactly one of them.\n *\n * A column with no explicit width is `flex: 1` and shares the leftover (see the\n * spec builder below). Making only the DRAGGED column fixed leaves every other\n * one in the flex pool, re-splitting a leftover that just changed — so one\n * divider moved all of them, including columns to the LEFT of the handle, which\n * cannot be what dragging a right edge means. Measured before this existed:\n * dragging column B by +8px took 3px off A, C and D each.\n *\n * Freezing first means a drag changes one width. Columns after it are pushed\n * along, which is what being after it means, and the table grows or shrinks\n * rather than the neighbours absorbing the difference.\n *\n * Structural columns are skipped — they are sized by the table, not the user.\n */\nexport function freezeColumnWidths<T>(\n layout: CubeTableColumnLayout<T> | null,\n base: Record<string, number>,\n): Record<string, number> {\n return (layout?.columns ?? []).reduce<Record<string, number>>(\n (widths, column) => {\n if (!column.isStructural && column.width != null) {\n widths[column.key] = Math.round(column.width);\n }\n\n return widths;\n },\n { ...base },\n );\n}\n\n/**\n * Reads `key` as a data path. A plain key is a single property lookup; dots\n * walk nested objects (`'owner.name'`). Anything richer belongs in `getValue`.\n */\nexport function readPath(row: any, path: string): unknown {\n if (row == null) return undefined;\n if (!path.includes('.')) return row[path];\n\n let current: any = row;\n\n for (const part of path.split('.')) {\n if (current == null) return undefined;\n current = current[part];\n }\n\n return current;\n}\n\n/** Only the value-pipeline members, so both raw and resolved columns fit. */\ntype ValueColumn<T> = Pick<CubeTableColumn<T>, 'key' | 'getValue' | 'format'>;\n\nexport function getColumnValue<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): unknown {\n return column.getValue\n ? column.getValue(row, rowIndex)\n : readPath(row, column.key);\n}\n\n/**\n * Display text for a cell — what client sort, client search and TSV copy all\n * operate on. Deliberately NOT the rendered output: `render` may return\n * arbitrary React, and stringifying that is how cloud's filter ended up\n * matching `\"[object Object]\"` against the query `\"object\"`.\n *\n * Returns `null` when the column cannot produce text, so callers can skip it\n * rather than coerce a non-primitive.\n */\nexport function getColumnText<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): string | null {\n const value = getColumnValue(column, row, rowIndex);\n\n if (column.format) return column.format(value, row, rowIndex);\n if (value == null) return '';\n\n const type = typeof value;\n\n if (type === 'string') return value as string;\n if (type === 'number' || type === 'boolean' || type === 'bigint') {\n return String(value);\n }\n if (value instanceof Date) return value.toISOString();\n\n return null;\n}\n\nfunction clamp(value: number, min: number, max: number | null): number {\n return Math.min(Math.max(value, min), max ?? Number.POSITIVE_INFINITY);\n}\n\nexport interface UseTableColumnsOptions<T> {\n columns: CubeTableColumn<T>[];\n /** Content-box width of the scroller, or `null` before the first measure. */\n containerWidth: number | null;\n /** User-resized widths, keyed by column key. Wins over `column.width`. */\n columnWidths?: Record<string, number>;\n /** Extra leading columns owned by the table (selection, drag handle). */\n leadingColumns?: CubeTableColumn<T>[];\n /** Extra trailing columns owned by the table (row menu). */\n trailingColumns?: CubeTableColumn<T>[];\n}\n\n/** A column's sizing inputs, before the container is split between columns. */\ninterface ColumnSpec<T> {\n column: CubeTableColumn<T>;\n isStructural: boolean;\n fixed: number | null;\n minWidth: number;\n maxWidth: number | null;\n flex: number | null;\n}\n\n/**\n * The visible columns in visual order. Pinned columns lead and trail\n * regardless of their position in the source array, so `aria-colindex` and DOM\n * order agree and nothing needs CSS `order:` to be reshuffled.\n */\nfunction orderColumns<T>(columns: CubeTableColumn<T>[]): CubeTableColumn<T>[] {\n const visible = columns.filter((column) => !column.isHidden);\n\n return [\n ...visible.filter((c) => c.pin === 'start'),\n ...visible.filter((c) => !c.pin),\n ...visible.filter((c) => c.pin === 'end'),\n ];\n}\n\nfunction toColumnSpec<T>(\n column: CubeTableColumn<T>,\n isStructural: boolean,\n columnWidths: Record<string, number> | undefined,\n): ColumnSpec<T> {\n const explicit = columnWidths?.[column.key] ?? column.width;\n const minWidth =\n column.minWidth ??\n (explicit != null ? explicit : isStructural ? 0 : DEFAULT_MIN_WIDTH);\n\n return {\n column,\n isStructural,\n fixed: explicit ?? null,\n minWidth,\n maxWidth: column.maxWidth ?? null,\n flex: explicit != null ? null : column.flex ?? 1,\n };\n}\n\nfunction sumFlex<T>(specs: ColumnSpec<T>[]): number {\n return specs.reduce((sum, s) => sum + (s.flex ?? 1), 0);\n}\n\n/**\n * Splits `available` pixels across the flex columns by weight. Each pass\n * assigns proportional widths, freezes whatever hit a bound, and re-splits the\n * leftover among the rest.\n */\nfunction distributeFlexWidths<T>(\n flexSpecs: ColumnSpec<T>[],\n available: number,\n resolved: Map<string, number>,\n): void {\n let remaining = available;\n let pool = flexSpecs;\n\n while (pool.length > 0) {\n const totalFlex = sumFlex(pool);\n const nextPool: typeof pool = [];\n let consumed = 0;\n\n for (const spec of pool) {\n const ideal = (remaining * (spec.flex ?? 1)) / (totalFlex || 1);\n const clamped = clamp(ideal, spec.minWidth, spec.maxWidth);\n\n if (clamped !== ideal) {\n resolved.set(spec.column.key, clamped);\n consumed += clamped;\n } else {\n nextPool.push(spec);\n }\n }\n\n if (nextPool.length === pool.length) {\n // Nothing was clamped this pass — the proportional split stands.\n const totalLeft = sumFlex(nextPool);\n for (const spec of nextPool) {\n resolved.set(\n spec.column.key,\n (remaining * (spec.flex ?? 1)) / (totalLeft || 1),\n );\n }\n break;\n }\n\n remaining -= consumed;\n pool = nextPool;\n }\n}\n\n/**\n * Each column's pixel width, keyed by column key; none before the container is\n * measured. When even the minimums do not fit, every column takes its minimum\n * and the table overflows.\n */\nfunction resolveWidths<T>(\n specs: ColumnSpec<T>[],\n containerWidth: number | null,\n): { resolved: Map<string, number>; isOverflowing: boolean } {\n const resolved = new Map<string, number>();\n const isMeasured = containerWidth != null && containerWidth > 0;\n\n if (!isMeasured) return { resolved, isOverflowing: false };\n\n const minTotal = specs.reduce((sum, s) => sum + (s.fixed ?? s.minWidth), 0);\n\n if (minTotal > containerWidth) {\n for (const spec of specs) {\n resolved.set(spec.column.key, spec.fixed ?? spec.minWidth);\n }\n\n return { resolved, isOverflowing: true };\n }\n\n const fixedTotal = specs.reduce((sum, s) => sum + (s.fixed ?? 0), 0);\n\n distributeFlexWidths(\n specs.filter((s) => s.fixed == null),\n containerWidth - fixedTotal,\n resolved,\n );\n\n for (const spec of specs) {\n if (spec.fixed != null) resolved.set(spec.column.key, spec.fixed);\n }\n\n return { resolved, isOverflowing: false };\n}\n\n/**\n * Sets each pinned column's sticky offset, which accumulates inwards from its\n * edge, and marks the innermost pinned column on each side. Returns the width\n * pinned to each side.\n */\nfunction applyPinOffsets<T>(columns: CubeResolvedColumn<T>[]): {\n pinnedStartWidth: number;\n pinnedEndWidth: number;\n} {\n let pinnedStartWidth = 0;\n let pinnedEndWidth = 0;\n\n for (const column of columns) {\n if (column.pin !== 'start') continue;\n column.pinOffset = pinnedStartWidth;\n pinnedStartWidth += column.width ?? column.minWidth;\n }\n\n for (let i = columns.length - 1; i >= 0; i--) {\n const column = columns[i];\n if (column.pin !== 'end') continue;\n column.pinOffset = pinnedEndWidth;\n pinnedEndWidth += column.width ?? column.minWidth;\n }\n\n const lastPinnedStart = columns.filter((c) => c.pin === 'start').at(-1);\n const firstPinnedEnd = columns.find((c) => c.pin === 'end');\n\n if (lastPinnedStart) lastPinnedStart.isPinEdge = true;\n if (firstPinnedEnd) firstPinnedEnd.isPinEdge = true;\n\n return { pinnedStartWidth, pinnedEndWidth };\n}\n\nfunction resolveColumnLayout<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n}: UseTableColumnsOptions<T>): CubeTableColumnLayout<T> {\n const leading = leadingColumns ?? [];\n const trailing = trailingColumns ?? [];\n const structuralKeys = new Set([...leading, ...trailing].map((c) => c.key));\n const specs = orderColumns([...leading, ...columns, ...trailing]).map(\n (column) =>\n toColumnSpec(column, structuralKeys.has(column.key), columnWidths),\n );\n const { resolved, isOverflowing } = resolveWidths(specs, containerWidth);\n\n const out: CubeResolvedColumn<T>[] = specs.map((spec, index) => ({\n ...spec.column,\n index,\n ariaColIndex: index + 1,\n width: resolved.get(spec.column.key) ?? null,\n minWidth: spec.minWidth,\n maxWidth: spec.maxWidth,\n flex: spec.flex,\n align: spec.column.align ?? 'start',\n pinOffset: null,\n isPinEdge: false,\n isStructural: spec.isStructural,\n }));\n\n const { pinnedStartWidth, pinnedEndWidth } = applyPinOffsets(out);\n\n const totalWidth = out.every((c) => c.width != null)\n ? out.reduce((sum, c) => sum + (c.width ?? 0), 0)\n : null;\n\n return {\n columns: out,\n pinnedStartWidth,\n pinnedEndWidth,\n totalWidth,\n isOverflowing,\n };\n}\n\n/**\n * Normalizes the public column list into resolved leaves: visual order, ARIA\n * indices, pixel widths, and sticky offsets for pinned columns.\n *\n * Width resolution mirrors ag-grid's `fitGridWidth`: fixed columns take their\n * width, the remainder is split across flex columns by weight, and each result\n * is clamped to `[minWidth, maxWidth]`. Clamping perturbs the sum, so the\n * residual is redistributed across the still-unclamped columns until it\n * settles. When even the minimums do not fit, every column takes its minimum\n * and the table scrolls horizontally.\n */\nexport function useTableColumns<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n}: UseTableColumnsOptions<T>): CubeTableColumnLayout<T> {\n return useMemo(\n () =>\n resolveColumnLayout({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n }),\n [columns, containerWidth, columnWidths, leadingColumns, trailingColumns],\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-table-columns.js","names":["useMemo","CubeResolvedColumn","CubeTableColumn","CubeTableColumnLayout","DEFAULT_MIN_WIDTH","freezeColumnWidths","layout","T","base","Record","columns","reduce","widths","column","isStructural","width","key","Math","round","readPath","row","path","undefined","includes","current","part","split","ValueColumn","Pick","getColumnValue","rowIndex","getValue","getColumnText","value","format","type","String","Date","toISOString","clamp","min","max","Number","POSITIVE_INFINITY","UseTableColumnsOptions","containerWidth","columnWidths","leadingColumns","trailingColumns","ColumnSpec","fixed","minWidth","maxWidth","flex","orderColumns","visible","filter","isHidden","c","pin","toColumnSpec","explicit","sumFlex","specs","sum","s","distributeFlexWidths","flexSpecs","available","resolved","Map","remaining","pool","length","totalFlex","nextPool","consumed","spec","ideal","clamped","set","push","totalLeft","resolveWidths","isOverflowing","isMeasured","minTotal","fixedTotal","applyPinOffsets","pinnedStartWidth","pinnedEndWidth","pinOffset","i","lastPinnedStart","at","firstPinnedEnd","find","isPinEdge","resolveColumnLayout","leading","trailing","structuralKeys","Set","map","has","out","index","ariaColIndex","get","align","totalWidth","every","useTableColumns","t0","$","_c","t1","_c"],"sources":["../../../../src/components/data/TableBase/use-table-columns.ts"],"sourcesContent":["import { useMemo } from 'react';\n\nimport type {\n CubeResolvedColumn,\n CubeTableColumn,\n CubeTableColumnLayout,\n} from './types';\n\n/** @default when a column declares neither `width` nor `minWidth`. */\nexport const DEFAULT_MIN_WIDTH = 150;\n\n/**\n * Every column's current width, so a resize can change exactly one of them.\n *\n * A column with no explicit width is `flex: 1` and shares the leftover (see the\n * spec builder below). Making only the DRAGGED column fixed leaves every other\n * one in the flex pool, re-splitting a leftover that just changed — so one\n * divider moved all of them, including columns to the LEFT of the handle, which\n * cannot be what dragging a right edge means. Measured before this existed:\n * dragging column B by +8px took 3px off A, C and D each.\n *\n * Freezing first means a drag changes one width. Columns after it are pushed\n * along, which is what being after it means, and the table grows or shrinks\n * rather than the neighbours absorbing the difference.\n *\n * Structural columns are skipped — they are sized by the table, not the user.\n */\nexport function freezeColumnWidths<T>(\n layout: CubeTableColumnLayout<T> | null,\n base: Record<string, number>,\n): Record<string, number> {\n return (layout?.columns ?? []).reduce<Record<string, number>>(\n (widths, column) => {\n if (!column.isStructural && column.width != null) {\n widths[column.key] = Math.round(column.width);\n }\n\n return widths;\n },\n { ...base },\n );\n}\n\n/**\n * Reads `key` as a data path. A plain key is a single property lookup; dots\n * walk nested objects (`'owner.name'`). Anything richer belongs in `getValue`.\n */\nexport function readPath(row: any, path: string): unknown {\n if (row == null) return undefined;\n if (!path.includes('.')) return row[path];\n\n let current: any = row;\n\n for (const part of path.split('.')) {\n if (current == null) return undefined;\n current = current[part];\n }\n\n return current;\n}\n\n/** Only the value-pipeline members, so both raw and resolved columns fit. */\ntype ValueColumn<T> = Pick<CubeTableColumn<T>, 'key' | 'getValue' | 'format'>;\n\nexport function getColumnValue<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): unknown {\n return column.getValue\n ? column.getValue(row, rowIndex)\n : readPath(row, column.key);\n}\n\n/**\n * Display text for a cell — what client sort, client search and TSV copy all\n * operate on. Deliberately NOT the rendered output: `render` may return\n * arbitrary React, and stringifying that is how cloud's filter ended up\n * matching `\"[object Object]\"` against the query `\"object\"`.\n *\n * Returns `null` when the column cannot produce text, so callers can skip it\n * rather than coerce a non-primitive.\n */\nexport function getColumnText<T>(\n column: ValueColumn<T>,\n row: T,\n rowIndex: number,\n): string | null {\n const value = getColumnValue(column, row, rowIndex);\n\n if (column.format) return column.format(value, row, rowIndex);\n if (value == null) return '';\n\n const type = typeof value;\n\n if (type === 'string') return value as string;\n if (type === 'number' || type === 'boolean' || type === 'bigint') {\n return String(value);\n }\n if (value instanceof Date) return value.toISOString();\n\n return null;\n}\n\nfunction clamp(value: number, min: number, max: number | null): number {\n return Math.min(Math.max(value, min), max ?? Number.POSITIVE_INFINITY);\n}\n\nexport interface UseTableColumnsOptions<T> {\n columns: CubeTableColumn<T>[];\n /** Content-box width of the scroller, or `null` before the first measure. */\n containerWidth: number | null;\n /** User-resized widths, keyed by column key. Wins over `column.width`. */\n columnWidths?: Record<string, number>;\n /** Extra leading columns owned by the table (selection, drag handle). */\n leadingColumns?: CubeTableColumn<T>[];\n /** Extra trailing columns owned by the table (row menu). */\n trailingColumns?: CubeTableColumn<T>[];\n}\n\n/** A column's sizing inputs, before the container is split between columns. */\ninterface ColumnSpec<T> {\n column: CubeTableColumn<T>;\n isStructural: boolean;\n fixed: number | null;\n minWidth: number;\n maxWidth: number | null;\n flex: number | null;\n}\n\n/**\n * The visible columns in visual order. Pinned columns lead and trail\n * regardless of their position in the source array, so `aria-colindex` and DOM\n * order agree and nothing needs CSS `order:` to be reshuffled.\n */\nfunction orderColumns<T>(columns: CubeTableColumn<T>[]): CubeTableColumn<T>[] {\n const visible = columns.filter((column) => !column.isHidden);\n\n return [\n ...visible.filter((c) => c.pin === 'start'),\n ...visible.filter((c) => !c.pin),\n ...visible.filter((c) => c.pin === 'end'),\n ];\n}\n\nfunction toColumnSpec<T>(\n column: CubeTableColumn<T>,\n isStructural: boolean,\n columnWidths: Record<string, number> | undefined,\n): ColumnSpec<T> {\n const explicit = columnWidths?.[column.key] ?? column.width;\n const minWidth =\n column.minWidth ??\n (explicit != null ? explicit : isStructural ? 0 : DEFAULT_MIN_WIDTH);\n\n return {\n column,\n isStructural,\n fixed: explicit ?? null,\n minWidth,\n maxWidth: column.maxWidth ?? null,\n flex: explicit != null ? null : (column.flex ?? 1),\n };\n}\n\nfunction sumFlex<T>(specs: ColumnSpec<T>[]): number {\n return specs.reduce((sum, s) => sum + (s.flex ?? 1), 0);\n}\n\n/**\n * Splits `available` pixels across the flex columns by weight. Each pass\n * assigns proportional widths, freezes whatever hit a bound, and re-splits the\n * leftover among the rest.\n */\nfunction distributeFlexWidths<T>(\n flexSpecs: ColumnSpec<T>[],\n available: number,\n resolved: Map<string, number>,\n): void {\n let remaining = available;\n let pool = flexSpecs;\n\n while (pool.length > 0) {\n const totalFlex = sumFlex(pool);\n const nextPool: typeof pool = [];\n let consumed = 0;\n\n for (const spec of pool) {\n const ideal = (remaining * (spec.flex ?? 1)) / (totalFlex || 1);\n const clamped = clamp(ideal, spec.minWidth, spec.maxWidth);\n\n if (clamped !== ideal) {\n resolved.set(spec.column.key, clamped);\n consumed += clamped;\n } else {\n nextPool.push(spec);\n }\n }\n\n if (nextPool.length === pool.length) {\n // Nothing was clamped this pass — the proportional split stands.\n const totalLeft = sumFlex(nextPool);\n for (const spec of nextPool) {\n resolved.set(\n spec.column.key,\n (remaining * (spec.flex ?? 1)) / (totalLeft || 1),\n );\n }\n break;\n }\n\n remaining -= consumed;\n pool = nextPool;\n }\n}\n\n/**\n * Each column's pixel width, keyed by column key; none before the container is\n * measured. When even the minimums do not fit, every column takes its minimum\n * and the table overflows.\n */\nfunction resolveWidths<T>(\n specs: ColumnSpec<T>[],\n containerWidth: number | null,\n): { resolved: Map<string, number>; isOverflowing: boolean } {\n const resolved = new Map<string, number>();\n const isMeasured = containerWidth != null && containerWidth > 0;\n\n if (!isMeasured) return { resolved, isOverflowing: false };\n\n const minTotal = specs.reduce((sum, s) => sum + (s.fixed ?? s.minWidth), 0);\n\n if (minTotal > containerWidth) {\n for (const spec of specs) {\n resolved.set(spec.column.key, spec.fixed ?? spec.minWidth);\n }\n\n return { resolved, isOverflowing: true };\n }\n\n const fixedTotal = specs.reduce((sum, s) => sum + (s.fixed ?? 0), 0);\n\n distributeFlexWidths(\n specs.filter((s) => s.fixed == null),\n containerWidth - fixedTotal,\n resolved,\n );\n\n for (const spec of specs) {\n if (spec.fixed != null) resolved.set(spec.column.key, spec.fixed);\n }\n\n return { resolved, isOverflowing: false };\n}\n\n/**\n * Sets each pinned column's sticky offset, which accumulates inwards from its\n * edge, and marks the innermost pinned column on each side. Returns the width\n * pinned to each side.\n */\nfunction applyPinOffsets<T>(columns: CubeResolvedColumn<T>[]): {\n pinnedStartWidth: number;\n pinnedEndWidth: number;\n} {\n let pinnedStartWidth = 0;\n let pinnedEndWidth = 0;\n\n for (const column of columns) {\n if (column.pin !== 'start') continue;\n column.pinOffset = pinnedStartWidth;\n pinnedStartWidth += column.width ?? column.minWidth;\n }\n\n for (let i = columns.length - 1; i >= 0; i--) {\n const column = columns[i];\n if (column.pin !== 'end') continue;\n column.pinOffset = pinnedEndWidth;\n pinnedEndWidth += column.width ?? column.minWidth;\n }\n\n const lastPinnedStart = columns.filter((c) => c.pin === 'start').at(-1);\n const firstPinnedEnd = columns.find((c) => c.pin === 'end');\n\n if (lastPinnedStart) lastPinnedStart.isPinEdge = true;\n if (firstPinnedEnd) firstPinnedEnd.isPinEdge = true;\n\n return { pinnedStartWidth, pinnedEndWidth };\n}\n\nfunction resolveColumnLayout<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n}: UseTableColumnsOptions<T>): CubeTableColumnLayout<T> {\n const leading = leadingColumns ?? [];\n const trailing = trailingColumns ?? [];\n const structuralKeys = new Set([...leading, ...trailing].map((c) => c.key));\n const specs = orderColumns([...leading, ...columns, ...trailing]).map(\n (column) =>\n toColumnSpec(column, structuralKeys.has(column.key), columnWidths),\n );\n const { resolved, isOverflowing } = resolveWidths(specs, containerWidth);\n\n const out: CubeResolvedColumn<T>[] = specs.map((spec, index) => ({\n ...spec.column,\n index,\n ariaColIndex: index + 1,\n width: resolved.get(spec.column.key) ?? null,\n minWidth: spec.minWidth,\n maxWidth: spec.maxWidth,\n flex: spec.flex,\n align: spec.column.align ?? 'start',\n pinOffset: null,\n isPinEdge: false,\n isStructural: spec.isStructural,\n }));\n\n const { pinnedStartWidth, pinnedEndWidth } = applyPinOffsets(out);\n\n const totalWidth = out.every((c) => c.width != null)\n ? out.reduce((sum, c) => sum + (c.width ?? 0), 0)\n : null;\n\n return {\n columns: out,\n pinnedStartWidth,\n pinnedEndWidth,\n totalWidth,\n isOverflowing,\n };\n}\n\n/**\n * Normalizes the public column list into resolved leaves: visual order, ARIA\n * indices, pixel widths, and sticky offsets for pinned columns.\n *\n * Width resolution mirrors ag-grid's `fitGridWidth`: fixed columns take their\n * width, the remainder is split across flex columns by weight, and each result\n * is clamped to `[minWidth, maxWidth]`. Clamping perturbs the sum, so the\n * residual is redistributed across the still-unclamped columns until it\n * settles. When even the minimums do not fit, every column takes its minimum\n * and the table scrolls horizontally.\n */\nexport function useTableColumns<T>({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n}: UseTableColumnsOptions<T>): CubeTableColumnLayout<T> {\n return useMemo(\n () =>\n resolveColumnLayout({\n columns,\n containerWidth,\n columnWidths,\n leadingColumns,\n trailingColumns,\n }),\n [columns, containerWidth, columnWidths, leadingColumns, trailingColumns],\n );\n}\n"],"mappings":"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"}
@@ -1,10 +1,9 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.196.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
2
2
  import { useDebouncedValue } from "../../../_internal/hooks/use-debounced-value.js";
3
3
  import { getColumnText } from "./use-table-columns.js";
4
4
  import { c } from "react/compiler-runtime";
5
5
  import { useEffect, useEffectEvent, useRef, useState } from "react";
6
6
  import { useControlledState } from "@react-stately/utils";
7
-
8
7
  //#region src/components/data/TableBase/use-table-search.ts
9
8
  /**
10
9
  * Default matcher: a case-insensitive substring test against each searchable
@@ -128,7 +127,7 @@ function useTableSearch(t0) {
128
127
  } else t11 = $[25];
129
128
  return t11;
130
129
  }
131
-
132
130
  //#endregion
133
131
  export { matchesTableSearch, useTableSearch };
132
+
134
133
  //# sourceMappingURL=use-table-search.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-search.js","names":["useControlledState","useEffect","useEffectEvent","useMemo","useRef","useState","useDebouncedValue","getColumnText","CubeTableColumn","CubeTableSearchMode","UseTableSearchOptions","columns","T","rows","mode","value","defaultValue","onChange","delay","filter","row","query","UseTableSearchResult","searchValue","setSearchValue","searchedRows","isFiltered","matchesTableSearch","rowIndex","some","column","isSearchable","text","toLowerCase","includes","useTableSearch","t0","$","_c","t1","t2","undefined","committed","setCommitted","v","draft","setDraft","debounced","pushedRef","t3","t4","current","t5","next","commitSearch","t6","t7","t8","trim","t9","bb0","t10","t11","index","length"],"sources":["../../../../src/components/data/TableBase/use-table-search.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useEffect, useEffectEvent, useMemo, useRef, useState } from 'react';\n\nimport { useDebouncedValue } from '../../../_internal/hooks/use-debounced-value';\n\nimport { getColumnText } from './use-table-columns';\n\nimport type { CubeTableColumn } from './types';\n\nexport type CubeTableSearchMode = 'client' | 'server';\n\nexport interface UseTableSearchOptions<T> {\n columns: CubeTableColumn<T>[];\n rows: readonly T[];\n /** @default 'client' */\n mode?: CubeTableSearchMode;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n /** Debounces the filter AND the callback, in both modes. @default 500 */\n delay?: number;\n /** Replaces the default matcher in client mode. */\n filter?: (row: T, query: string) => boolean;\n}\n\nexport interface UseTableSearchResult<T> {\n /** The immediate term — what the input shows. */\n searchValue: string;\n setSearchValue: (value: string) => void;\n /** The debounced term — what the filter and the callback act on. */\n query: string;\n /** Filtered in client mode; the original array otherwise. */\n searchedRows: readonly T[];\n /** `true` when a non-empty term is narrowing the data. */\n isFiltered: boolean;\n}\n\n/**\n * Default matcher: a case-insensitive substring test against each searchable\n * column's **display text**.\n *\n * Deliberately not the raw value. Cloud's filter tested\n * `String(row[column.key])`, which meant a column rendering `owner.profile.name`\n * was unsearchable, and an object-valued column stringified to\n * `\"[object Object]\"` — so the query \"object\" matched every row with a nested\n * value. `getColumnText` returns `null` for anything it cannot honestly turn\n * into text, and those columns are skipped rather than coerced.\n */\nexport function matchesTableSearch<T>(\n columns: CubeTableColumn<T>[],\n row: T,\n rowIndex: number,\n query: string,\n): boolean {\n return columns.some((column) => {\n if (column.isSearchable === false) return false;\n\n const text = getColumnText(column, row, rowIndex);\n\n return text != null && text.toLowerCase().includes(query);\n });\n}\n\nexport function useTableSearch<T>({\n columns,\n rows,\n mode = 'client',\n value,\n defaultValue,\n onChange,\n delay = 500,\n filter,\n}: UseTableSearchOptions<T>): UseTableSearchResult<T> {\n const [committed, setCommitted] = useControlledState<string>(\n value as string,\n defaultValue ?? '',\n onChange as (v: string) => void,\n );\n\n // What the input shows, updated on every keystroke. The committed value —\n // the one `onChange` reports and the filter runs on — trails it by `delay`.\n //\n // Two separate values rather than one, because `useControlledState` calls\n // `onChange` the moment it is set: routing keystrokes straight into it fired\n // a request per character in `searchMode=\"server\"`, which is the thing the\n // debounce exists to prevent. Debouncing the input itself instead would make\n // typing lag, so the split is the point.\n const [draft, setDraft] = useState(committed);\n const debounced = useDebouncedValue(draft, delay);\n\n // What we last pushed outward, so the sync below can tell a genuine external\n // change from the echo of our own debounce.\n const pushedRef = useRef(committed);\n\n // A controlled `searchValue` changing from OUTSIDE — a cleared filter, a\n // restored URL — wins over whatever is half-typed.\n //\n // The echo has to be filtered out or this reverts the input mid-word: with a\n // short delay the debounce commits letter 1 while letter 2 is already typed,\n // and syncing unconditionally puts letter 1 back. At `searchDelay={0}` that\n // happens on every keystroke and nothing longer than one character can ever\n // be typed.\n useEffect(() => {\n if (committed === pushedRef.current) return;\n\n pushedRef.current = committed;\n setDraft(committed);\n }, [committed]);\n\n const commitSearch = useEffectEvent((next: string) => setCommitted(next));\n\n useEffect(() => {\n if (debounced === pushedRef.current) return;\n\n pushedRef.current = debounced;\n commitSearch(debounced);\n }, [debounced]);\n\n const searchValue = draft;\n const query = debounced.trim().toLowerCase();\n\n const setSearchValue = setDraft;\n\n const searchedRows = useMemo(() => {\n if (mode !== 'client' || !query) return rows;\n\n return rows.filter((row, index) =>\n filter\n ? filter(row, query)\n : matchesTableSearch(columns, row, index, query),\n );\n }, [mode, query, rows, columns, filter]);\n\n return {\n searchValue,\n setSearchValue,\n query,\n searchedRows,\n isFiltered: query.length > 0,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgDA,SAAgB2B,mBACdhB,SACAS,KACAQ,UACAP,OACS;AACT,QAAOV,QAAQkB,MAAMC,WAAW;AAC9B,MAAIA,OAAOC,iBAAiB,MAAO,QAAO;EAE1C,MAAMC,OAAOzB,cAAcuB,QAAQV,KAAKQ,SAAS;AAEjD,SAAOI,QAAQ,QAAQA,KAAKC,aAAa,CAACC,SAASb,MAAM;GACzD;;AAGJ,SAAOc,eAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAA2B,MAAA,EAAA3B,SAAAE,MAAAC,MAAAyB,IAAAxB,OAAAC,cAAAC,UAAAC,OAAAsB,IAAArB,WAAAiB;CAGhC,MAAAtB,OAAAyB,OAAAE,SAAA,WAAAF;CAIA,MAAArB,QAAAsB,OAAAC,SAAA,MAAAD;CAGA,MAAA,CAAAE,WAAAC,gBAAkC3C,mBAChCe,OACAC,gBAAA,IACAC,SACD;CAUD,MAAA,CAAA4B,OAAAC,YAA0BzC,SAASqC,UAAU;CAC7C,MAAAK,YAAkBzC,kBAAkBuC,OAAO3B,MAAM;CAIjD,MAAA8B,YAAkB5C,OAAOsC,UAAU;CAAC,IAAAO;CAAA,IAAAC;AAAA,KAAAb,EAAA,OAAAK,WAAA;AAU1BO,aAAA;AACR,OAAIP,cAAcM,UAASG,QAAQ;AAEnCH,aAASG,UAAWT;AACpBI,YAASJ,UAAU;;AAClBQ,OAAA,CAACR,UAAU;AAAAL,IAAA,KAAAK;AAAAL,IAAA,KAAAY;AAAAZ,IAAA,KAAAa;QAAA;AAAAD,OAAAZ,EAAA;AAAAa,OAAAb,EAAA;;AALdpC,WAAUgD,IAKPC,GAAY;CAAA,IAAAE;AAAA,KAAAf,EAAA,OAAAM,cAAA;AAEqBS,QAAAC,SAAkBV,aAAaU,KAAK;AAAAhB,IAAA,KAAAM;AAAAN,IAAA,KAAAe;OAAAA,MAAAf,EAAA;CAAxE,MAAAiB,eAAqBpD,eAAekD,GAAqC;CAAC,IAAAG;AAAA,KAAAlB,EAAA,OAAAiB,gBAAAjB,EAAA,OAAAU,WAAA;AAEhEQ,aAAA;AACR,OAAIR,cAAcC,UAASG,QAAQ;AAEnCH,aAASG,UAAWJ;AACpBO,gBAAaP,UAAU;;AACxBV,IAAA,KAAAiB;AAAAjB,IAAA,KAAAU;AAAAV,IAAA,KAAAkB;OAAAA,MAAAlB,EAAA;CAAA,IAAAmB;AAAA,KAAAnB,EAAA,OAAAU,WAAA;AAAES,OAAA,CAACT,UAAU;AAAAV,IAAA,KAAAU;AAAAV,IAAA,KAAAmB;OAAAA,MAAAnB,EAAA;AALdpC,WAAUsD,IAKPC,GAAY;CAEf,MAAAjC,cAAoBsB;CAAM,IAAAY;AAAA,KAAApB,EAAA,QAAAU,WAAA;AACZU,OAAAV,UAASW,MAAO,CAAAzB,aAAc;AAAAI,IAAA,MAAAU;AAAAV,IAAA,MAAAoB;OAAAA,MAAApB,EAAA;CAA5C,MAAAhB,QAAcoC;CAEd,MAAAjC,iBAAuBsB;CAAS,IAAAa;AAAAC,MAAA;AAG9B,MAAI9C,SAAS,YAAT,CAAsBO,OAAK;AAAEsC,QAAO9C;AAAP,SAAA+C;;EAAY,IAAAC;AAAA,MAAAxB,EAAA,QAAA1B,WAAA0B,EAAA,QAAAlB,UAAAkB,EAAA,QAAAhB,SAAAgB,EAAA,QAAAxB,MAAA;GAAA,IAAAiD;AAAA,OAAAzB,EAAA,QAAA1B,WAAA0B,EAAA,QAAAlB,UAAAkB,EAAA,QAAAhB,OAAA;AAE1ByC,WAAA1C,KAAA2C,UACjB5C,SACIA,OAAOC,KAAKC,MACkC,GAA9CM,mBAAmBhB,SAASS,KAAK2C,OAAO1C,MAAM;AAAAgB,MAAA,MAAA1B;AAAA0B,MAAA,MAAAlB;AAAAkB,MAAA,MAAAhB;AAAAgB,MAAA,MAAAyB;SAAAA,OAAAzB,EAAA;AAH7CwB,SAAAhD,KAAIM,OAAQ2C,IAIlB;AAAAzB,KAAA,MAAA1B;AAAA0B,KAAA,MAAAlB;AAAAkB,KAAA,MAAAhB;AAAAgB,KAAA,MAAAxB;AAAAwB,KAAA,MAAAwB;QAAAA,OAAAxB,EAAA;AAJDsB,OAAOE;;CAHT,MAAApC,eAAqBkC;CAeP,MAAAE,MAAAxC,MAAK2C,SAAU;CAAC,IAAAF;AAAA,KAAAzB,EAAA,QAAAhB,SAAAgB,EAAA,QAAAd,eAAAc,EAAA,QAAAZ,gBAAAY,EAAA,QAAAwB,KAAA;AALvBC,QAAA;GAAAvC;GAAAC;GAAAH;GAAAI;GAAAC,YAKOmC;GACb;AAAAxB,IAAA,MAAAhB;AAAAgB,IAAA,MAAAd;AAAAc,IAAA,MAAAZ;AAAAY,IAAA,MAAAwB;AAAAxB,IAAA,MAAAyB;OAAAA,OAAAzB,EAAA;AAAA,QANMyB"}
1
+ {"version":3,"file":"use-table-search.js","names":["useControlledState","useEffect","useEffectEvent","useMemo","useRef","useState","useDebouncedValue","getColumnText","CubeTableColumn","CubeTableSearchMode","UseTableSearchOptions","columns","T","rows","mode","value","defaultValue","onChange","delay","filter","row","query","UseTableSearchResult","searchValue","setSearchValue","searchedRows","isFiltered","matchesTableSearch","rowIndex","some","column","isSearchable","text","toLowerCase","includes","useTableSearch","t0","$","_c","t1","t2","undefined","committed","setCommitted","v","draft","setDraft","debounced","pushedRef","t3","t4","current","t5","next","commitSearch","t6","t7","t8","trim","t9","bb0","t10","t11","index","length","_c"],"sources":["../../../../src/components/data/TableBase/use-table-search.ts"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useEffect, useEffectEvent, useMemo, useRef, useState } from 'react';\n\nimport { useDebouncedValue } from '../../../_internal/hooks/use-debounced-value';\n\nimport { getColumnText } from './use-table-columns';\n\nimport type { CubeTableColumn } from './types';\n\nexport type CubeTableSearchMode = 'client' | 'server';\n\nexport interface UseTableSearchOptions<T> {\n columns: CubeTableColumn<T>[];\n rows: readonly T[];\n /** @default 'client' */\n mode?: CubeTableSearchMode;\n value?: string;\n defaultValue?: string;\n onChange?: (value: string) => void;\n /** Debounces the filter AND the callback, in both modes. @default 500 */\n delay?: number;\n /** Replaces the default matcher in client mode. */\n filter?: (row: T, query: string) => boolean;\n}\n\nexport interface UseTableSearchResult<T> {\n /** The immediate term — what the input shows. */\n searchValue: string;\n setSearchValue: (value: string) => void;\n /** The debounced term — what the filter and the callback act on. */\n query: string;\n /** Filtered in client mode; the original array otherwise. */\n searchedRows: readonly T[];\n /** `true` when a non-empty term is narrowing the data. */\n isFiltered: boolean;\n}\n\n/**\n * Default matcher: a case-insensitive substring test against each searchable\n * column's **display text**.\n *\n * Deliberately not the raw value. Cloud's filter tested\n * `String(row[column.key])`, which meant a column rendering `owner.profile.name`\n * was unsearchable, and an object-valued column stringified to\n * `\"[object Object]\"` — so the query \"object\" matched every row with a nested\n * value. `getColumnText` returns `null` for anything it cannot honestly turn\n * into text, and those columns are skipped rather than coerced.\n */\nexport function matchesTableSearch<T>(\n columns: CubeTableColumn<T>[],\n row: T,\n rowIndex: number,\n query: string,\n): boolean {\n return columns.some((column) => {\n if (column.isSearchable === false) return false;\n\n const text = getColumnText(column, row, rowIndex);\n\n return text != null && text.toLowerCase().includes(query);\n });\n}\n\nexport function useTableSearch<T>({\n columns,\n rows,\n mode = 'client',\n value,\n defaultValue,\n onChange,\n delay = 500,\n filter,\n}: UseTableSearchOptions<T>): UseTableSearchResult<T> {\n const [committed, setCommitted] = useControlledState<string>(\n value as string,\n defaultValue ?? '',\n onChange as (v: string) => void,\n );\n\n // What the input shows, updated on every keystroke. The committed value —\n // the one `onChange` reports and the filter runs on — trails it by `delay`.\n //\n // Two separate values rather than one, because `useControlledState` calls\n // `onChange` the moment it is set: routing keystrokes straight into it fired\n // a request per character in `searchMode=\"server\"`, which is the thing the\n // debounce exists to prevent. Debouncing the input itself instead would make\n // typing lag, so the split is the point.\n const [draft, setDraft] = useState(committed);\n const debounced = useDebouncedValue(draft, delay);\n\n // What we last pushed outward, so the sync below can tell a genuine external\n // change from the echo of our own debounce.\n const pushedRef = useRef(committed);\n\n // A controlled `searchValue` changing from OUTSIDE — a cleared filter, a\n // restored URL — wins over whatever is half-typed.\n //\n // The echo has to be filtered out or this reverts the input mid-word: with a\n // short delay the debounce commits letter 1 while letter 2 is already typed,\n // and syncing unconditionally puts letter 1 back. At `searchDelay={0}` that\n // happens on every keystroke and nothing longer than one character can ever\n // be typed.\n useEffect(() => {\n if (committed === pushedRef.current) return;\n\n pushedRef.current = committed;\n setDraft(committed);\n }, [committed]);\n\n const commitSearch = useEffectEvent((next: string) => setCommitted(next));\n\n useEffect(() => {\n if (debounced === pushedRef.current) return;\n\n pushedRef.current = debounced;\n commitSearch(debounced);\n }, [debounced]);\n\n const searchValue = draft;\n const query = debounced.trim().toLowerCase();\n\n const setSearchValue = setDraft;\n\n const searchedRows = useMemo(() => {\n if (mode !== 'client' || !query) return rows;\n\n return rows.filter((row, index) =>\n filter\n ? filter(row, query)\n : matchesTableSearch(columns, row, index, query),\n );\n }, [mode, query, rows, columns, filter]);\n\n return {\n searchValue,\n setSearchValue,\n query,\n searchedRows,\n isFiltered: query.length > 0,\n };\n}\n"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
 
2
2
  import "./types.js";
3
+ import "./RowCollection.js";
3
4
  import { SelectionManager } from "@react-stately/selection";
4
5
  import { Key } from "@react-types/shared";
@@ -1,10 +1,9 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.196.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.198.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { RowCollection } from "./RowCollection.js";
4
4
  import { useCallback, useMemo, useRef } from "react";
5
5
  import { useMultipleSelectionState } from "react-stately";
6
6
  import { SelectionManager } from "@react-stately/selection";
7
-
8
7
  //#region src/components/data/TableBase/use-table-selection.ts
9
8
  /**
10
9
  * Reserved key for the checkbox column. Prefixed so it cannot collide with a
@@ -152,10 +151,12 @@ function useTableSelection(options) {
152
151
  const list = [...keys_0];
153
152
  onSelectionChange(list, list.map((key) => rowByKeyRef.current.get(key)).filter((row_3) => row_3 !== void 0));
154
153
  });
154
+ const controlledSelection = useMemo(() => toSelection(selectedKeysProp), [selectedKeysProp]);
155
+ const defaultSelection = useMemo(() => toSelection(defaultSelectedKeys), [defaultSelectedKeys]);
155
156
  const state = useMultipleSelectionState({
156
157
  selectionMode,
157
- selectedKeys: useMemo(() => toSelection(selectedKeysProp), [selectedKeysProp]),
158
- defaultSelectedKeys: useMemo(() => toSelection(defaultSelectedKeys), [defaultSelectedKeys]),
158
+ selectedKeys: controlledSelection,
159
+ defaultSelectedKeys: defaultSelection,
159
160
  disabledKeys: unselectableKeys,
160
161
  disabledBehavior: "selection",
161
162
  onSelectionChange: handleSelectionChange
@@ -261,7 +262,7 @@ function useTableSelection(options) {
261
262
  const toggleRow = useEvent((key_9) => {
262
263
  if (!canSelect(key_9)) return;
263
264
  if (selectionMode === "single") {
264
- state.setSelectedKeys(isSelected(key_9) ? /* @__PURE__ */ new Set() : new Set([key_9]));
265
+ state.setSelectedKeys(isSelected(key_9) ? /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set([key_9]));
265
266
  return;
266
267
  }
267
268
  const applyCascade = (set_0, target, value) => {
@@ -327,7 +328,7 @@ function useTableSelection(options) {
327
328
  selectedKeys: isAll ? "all" : [...derivedSelection.checked]
328
329
  };
329
330
  }
330
-
331
331
  //#endregion
332
332
  export { ROW_NUMBER_COLUMN_KEY, SELECTION_COLUMN_KEY, SELECTION_COLUMN_WIDTH, useTableSelection };
333
+
333
334
  //# sourceMappingURL=use-table-selection.js.map