@cube-dev/ui-kit 0.0.0-canary-0b79a39 → 0.0.0-canary-c02e70f

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 (620) hide show
  1. package/dist/CHANGELOG.md +6 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +23 -21
  13. package/dist/components/GlobalStyles.js.map +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Banner/Banner.js.map +1 -1
  20. package/dist/components/actions/Button/Button.js +1 -1
  21. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  22. package/dist/components/actions/ButtonSplit/ButtonSplit.js +128 -66
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +451 -280
  26. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  27. package/dist/components/actions/CommandMenu/styled.js +1 -1
  28. package/dist/components/actions/ItemAction/ItemAction.js +57 -93
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  30. package/dist/components/actions/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  32. package/dist/components/actions/ItemActionsWrapper.js.map +1 -1
  33. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +49 -69
  36. package/dist/components/actions/Menu/Menu.js.map +1 -1
  37. package/dist/components/actions/Menu/MenuItem.js +1 -1
  38. package/dist/components/actions/Menu/MenuSection.js +1 -1
  39. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  40. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  41. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  42. package/dist/components/actions/Menu/context.js +1 -1
  43. package/dist/components/actions/Menu/styled.js +1 -1
  44. package/dist/components/actions/actions-run.js +1 -1
  45. package/dist/components/actions/index.js +1 -1
  46. package/dist/components/actions/use-action.js +1 -1
  47. package/dist/components/actions/use-anchored-menu.js +1 -1
  48. package/dist/components/actions/use-context-menu.js +1 -1
  49. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  50. package/dist/components/content/Alert/Alert.js +1 -1
  51. package/dist/components/content/Alert/use-alert.js +1 -1
  52. package/dist/components/content/Avatar/Avatar.js +1 -1
  53. package/dist/components/content/Badge/Badge.js +1 -1
  54. package/dist/components/content/Card/Card.js +1 -1
  55. package/dist/components/content/Content.js +1 -1
  56. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  57. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  58. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  59. package/dist/components/content/Disclosure/Disclosure.js +44 -60
  60. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  61. package/dist/components/content/Divider.js +1 -1
  62. package/dist/components/content/Footer.js +1 -1
  63. package/dist/components/content/Header.js +1 -1
  64. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  65. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  66. package/dist/components/content/InlineInput/InlineInput.js +39 -65
  67. package/dist/components/content/InlineInput/InlineInput.js.map +1 -1
  68. package/dist/components/content/Item/Item.js +208 -263
  69. package/dist/components/content/Item/Item.js.map +1 -1
  70. package/dist/components/content/ItemBadge/ItemBadge.js +70 -145
  71. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  72. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  73. package/dist/components/content/Layout/GridLayout.js +1 -1
  74. package/dist/components/content/Layout/Layout.js +1 -1
  75. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  76. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  77. package/dist/components/content/Layout/LayoutContainer.js +39 -18
  78. package/dist/components/content/Layout/LayoutContainer.js.map +1 -1
  79. package/dist/components/content/Layout/LayoutContent.js +100 -48
  80. package/dist/components/content/Layout/LayoutContent.js.map +1 -1
  81. package/dist/components/content/Layout/LayoutContext.js +211 -95
  82. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  83. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  84. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  85. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  86. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  87. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  88. package/dist/components/content/Layout/LayoutPane.js +240 -123
  89. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  90. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  91. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  92. package/dist/components/content/Layout/LayoutPanelHeader.js.map +1 -1
  93. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  94. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  95. package/dist/components/content/Layout/hooks/useTinyScrollbar.js.map +1 -1
  96. package/dist/components/content/Layout/index.js +1 -1
  97. package/dist/components/content/Layout/utils.js +1 -1
  98. package/dist/components/content/Paragraph.js +1 -1
  99. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  100. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  101. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  102. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  103. package/dist/components/content/Result/Result.js +28 -48
  104. package/dist/components/content/Result/Result.js.map +1 -1
  105. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  106. package/dist/components/content/Tag/Tag.js +1 -1
  107. package/dist/components/content/Text.js +1 -1
  108. package/dist/components/content/TextItem/TextItem.js +9 -17
  109. package/dist/components/content/TextItem/TextItem.js.map +1 -1
  110. package/dist/components/content/Title.js +1 -1
  111. package/dist/components/content/Tree/Tree.js +1 -1
  112. package/dist/components/content/Tree/TreeNode.js +1 -1
  113. package/dist/components/content/Tree/styled.js +1 -1
  114. package/dist/components/content/Tree/tree-index.js +1 -1
  115. package/dist/components/content/Tree/use-checkbox-tree.js +68 -105
  116. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -1
  117. package/dist/components/content/Tree/use-load-data.js +1 -1
  118. package/dist/components/content/highlightText.js +1 -1
  119. package/dist/components/content/use-auto-tooltip.js +106 -138
  120. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  121. package/dist/components/data/DataTable/DataTable.js +1 -1
  122. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  123. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  124. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  125. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  126. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  127. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  128. package/dist/components/data/TableBase/RowCollection.js +1 -1
  129. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  130. package/dist/components/data/TableBase/TableRow.js +1 -1
  131. package/dist/components/data/TableBase/TableView.js +1 -1
  132. package/dist/components/data/TableBase/column-menu.js +1 -1
  133. package/dist/components/data/TableBase/column-tint.js +1 -1
  134. package/dist/components/data/TableBase/row-menu.js +1 -1
  135. package/dist/components/data/TableBase/styled.js +1 -1
  136. package/dist/components/data/TableBase/table-tree.js +1 -1
  137. package/dist/components/data/TableBase/types.js +1 -1
  138. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  139. package/dist/components/data/TableBase/use-column-order.js +30 -31
  140. package/dist/components/data/TableBase/use-column-order.js.map +1 -1
  141. package/dist/components/data/TableBase/use-container-width.js +1 -1
  142. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  143. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  144. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  145. package/dist/components/data/TableBase/use-table-search.js +1 -1
  146. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  147. package/dist/components/data/TableBase/use-table-sort.js +38 -42
  148. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  149. package/dist/components/data/TableBase/use-table-sorts.js +19 -57
  150. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  151. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  152. package/dist/components/data/TableBase/use-table-tree-state.js +55 -64
  153. package/dist/components/data/TableBase/use-table-tree-state.js.map +1 -1
  154. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  155. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  156. package/dist/components/fields/Checkbox/context.js +1 -1
  157. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  158. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  159. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  160. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  161. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  162. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  163. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  164. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  165. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  166. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  167. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  168. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  169. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  170. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  171. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  172. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  173. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  174. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  175. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  176. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  177. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  178. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  179. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  181. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  182. package/dist/components/fields/DatePicker/period.js +1 -1
  183. package/dist/components/fields/DatePicker/props.js +1 -1
  184. package/dist/components/fields/DatePicker/utils.js +1 -1
  185. package/dist/components/fields/FileInput/FileInput.js +1 -1
  186. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  187. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  188. package/dist/components/fields/Input/Input.js +1 -1
  189. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  190. package/dist/components/fields/ListBox/ListBox.js +1 -1
  191. package/dist/components/fields/ListBox/optionId.js +1 -1
  192. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  193. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  194. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +32 -38
  195. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js.map +1 -1
  196. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  197. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  198. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  199. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  200. package/dist/components/fields/Picker/Picker.js +1 -1
  201. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  202. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  203. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  204. package/dist/components/fields/RadioGroup/context.js +1 -1
  205. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  206. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  207. package/dist/components/fields/Select/Select.js +1 -1
  208. package/dist/components/fields/Slider/Gradation.js +1 -1
  209. package/dist/components/fields/Slider/HueSlider.js +1 -1
  210. package/dist/components/fields/Slider/HueSlider.js.map +1 -1
  211. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  212. package/dist/components/fields/Slider/Slider.js +1 -1
  213. package/dist/components/fields/Slider/SliderBase.js +1 -1
  214. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  215. package/dist/components/fields/Slider/SliderThumb.js.map +1 -1
  216. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  217. package/dist/components/fields/Slider/SliderTrack.js.map +1 -1
  218. package/dist/components/fields/Slider/elements.js +1 -1
  219. package/dist/components/fields/Slider/index.js +1 -1
  220. package/dist/components/fields/Switch/Switch.js +1 -1
  221. package/dist/components/fields/TagInput/TagInput.js +738 -1139
  222. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  223. package/dist/components/fields/TagInput/TagList.js +1 -1
  224. package/dist/components/fields/TextArea/TextArea.js +1 -1
  225. package/dist/components/fields/TextInput/TextInput.js +1 -1
  226. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  227. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  228. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  229. package/dist/components/fields/TriggerActions.js +1 -1
  230. package/dist/components/fields/color/ColorPanel.js +1 -1
  231. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  232. package/dist/components/fields/color/channels.js +1 -1
  233. package/dist/components/fields/color/color.js +1 -1
  234. package/dist/components/fields/color/context.js +1 -1
  235. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  236. package/dist/components/form/Form/Field.js +10 -15
  237. package/dist/components/form/Form/Field.js.map +1 -1
  238. package/dist/components/form/Form/Form.js +1 -1
  239. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  240. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  241. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  242. package/dist/components/form/Form/SubmitError.js +1 -1
  243. package/dist/components/form/Form/backend.js +1 -1
  244. package/dist/components/form/Form/index.js +1 -1
  245. package/dist/components/form/Form/modern/actions.js +1 -1
  246. package/dist/components/form/Form/modern/context.js +1 -1
  247. package/dist/components/form/Form/modern/controller.js +1 -1
  248. package/dist/components/form/Form/modern/field-binding.js +1 -1
  249. package/dist/components/form/Form/modern/field.js +1 -1
  250. package/dist/components/form/Form/modern/react.js +1 -1
  251. package/dist/components/form/Form/modern/react.js.map +1 -1
  252. package/dist/components/form/Form/modern/store.js +1 -1
  253. package/dist/components/form/Form/modern/validation.js +1 -1
  254. package/dist/components/form/Form/modern/values.js +1 -1
  255. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  256. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  257. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  258. package/dist/components/form/Form/use-field/use-field.js +1 -1
  259. package/dist/components/form/Form/use-form.js +1 -1
  260. package/dist/components/form/Form/validation.js +1 -1
  261. package/dist/components/form/Label.js +1 -1
  262. package/dist/components/form/legacy-tooltip.js +1 -1
  263. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  264. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  265. package/dist/components/form/validation/use-validation-props.js +1 -1
  266. package/dist/components/form/wrapper.js +1 -1
  267. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  268. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  269. package/dist/components/layout/Board/Board.js +1 -1
  270. package/dist/components/layout/Board/BoardProvider.js +1 -1
  271. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  272. package/dist/components/layout/Board/Widget.js +1 -1
  273. package/dist/components/layout/Board/WidgetHost.js +1 -1
  274. package/dist/components/layout/Board/board-context.js +1 -1
  275. package/dist/components/layout/Board/board-store.js +1 -1
  276. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  277. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  278. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  279. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  280. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  281. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  282. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  283. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  284. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  285. package/dist/components/layout/Board/index.js +1 -1
  286. package/dist/components/layout/Board/responsive-utils.js +1 -1
  287. package/dist/components/layout/Board/use-board-layout.js +1 -1
  288. package/dist/components/layout/Board/use-board-registry.js +1 -1
  289. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  290. package/dist/components/layout/Board/use-board-selection.js +1 -1
  291. package/dist/components/layout/Flex.js +1 -1
  292. package/dist/components/layout/Flow.js +1 -1
  293. package/dist/components/layout/Grid.js +1 -1
  294. package/dist/components/layout/Panel.js +129 -48
  295. package/dist/components/layout/Panel.js.map +1 -1
  296. package/dist/components/layout/Prefix.js +1 -1
  297. package/dist/components/layout/ResizablePanel.js +1 -1
  298. package/dist/components/layout/Space.js +1 -1
  299. package/dist/components/layout/Suffix.js +1 -1
  300. package/dist/components/navigation/Pagination/Pagination.js +227 -347
  301. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  302. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  303. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -1
  304. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  305. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  306. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  307. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  308. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  309. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  310. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  311. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  312. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  313. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  314. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  315. package/dist/components/navigation/Tabs/styled.js +1 -1
  316. package/dist/components/navigation/Tabs/types.js +1 -1
  317. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  318. package/dist/components/navigation/Tabs/use-tab-editing.js.map +1 -1
  319. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  320. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  321. package/dist/components/other/Calendar/Calendar.js +1 -1
  322. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  323. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  324. package/dist/components/other/Calendar/CalendarGrid.js.map +1 -1
  325. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  326. package/dist/components/other/Calendar/CalendarPanel.js +497 -515
  327. package/dist/components/other/Calendar/CalendarPanel.js.map +1 -1
  328. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  329. package/dist/components/other/Calendar/PeriodCalendar.js.map +1 -1
  330. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  331. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  332. package/dist/components/other/Calendar/styled.js +1 -1
  333. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  334. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  335. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  336. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  337. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  338. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  339. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  340. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  341. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  342. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  343. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  344. package/dist/components/overlays/Dialog/context.js +1 -1
  345. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  346. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  347. package/dist/components/overlays/Modal/Modal.js +1 -1
  348. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  349. package/dist/components/overlays/Modal/Overlay.js +1 -1
  350. package/dist/components/overlays/Modal/Popover.js +1 -1
  351. package/dist/components/overlays/Modal/Tray.js +1 -1
  352. package/dist/components/overlays/Modal/Underlay.js +1 -1
  353. package/dist/components/overlays/Notifications/Notification.js +1 -1
  354. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  355. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  356. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  357. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  358. package/dist/components/overlays/Notifications/OverlayContainer.js +266 -161
  359. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  360. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  361. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  362. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  363. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  364. package/dist/components/overlays/Notifications/index.js +1 -1
  365. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  366. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  367. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  368. package/dist/components/overlays/Notifications/use-persistent-notifications.js +18 -9
  369. package/dist/components/overlays/Notifications/use-persistent-notifications.js.map +1 -1
  370. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  371. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  372. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  373. package/dist/components/overlays/Toast/index.js +1 -1
  374. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  375. package/dist/components/overlays/Toast/useToast.js +1 -1
  376. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  377. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  378. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  379. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  380. package/dist/components/overlays/Tooltip/context.js +1 -1
  381. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  382. package/dist/components/portal/Portal.js +1 -1
  383. package/dist/components/portal/PortalProvider.js +1 -1
  384. package/dist/components/portal/usePortal.js +1 -1
  385. package/dist/components/shared/DraggableCollection.js +1 -1
  386. package/dist/components/shared/InvalidIcon.js +1 -1
  387. package/dist/components/shared/ValidIcon.js +1 -1
  388. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  389. package/dist/components/status/Spin/Cube.js +1 -1
  390. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  391. package/dist/components/status/Spin/Spin.js +1 -1
  392. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  393. package/dist/data/item-themes.js +1 -1
  394. package/dist/data/themes.js +1 -1
  395. package/dist/eslint-plugin/defaults.generated.js +1 -1
  396. package/dist/eslint-plugin/index.js +1 -1
  397. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  398. package/dist/i18n/I18nProvider.js +1 -1
  399. package/dist/i18n/createFormatter.js +1 -1
  400. package/dist/i18n/index.js +1 -1
  401. package/dist/i18n/instance.js +1 -1
  402. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  403. package/dist/i18n/locales/en-US/uikit.js +1 -1
  404. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  405. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  406. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  407. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  408. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  409. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  410. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  411. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  412. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  413. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  414. package/dist/i18n/locales.js +1 -1
  415. package/dist/i18n/useFormatter.js +1 -1
  416. package/dist/i18n/useFormatter.js.map +1 -1
  417. package/dist/i18n/useI18n.js +1 -1
  418. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  419. package/dist/icons/AdjustmentsIcon.js +1 -1
  420. package/dist/icons/AiIcon.js +1 -1
  421. package/dist/icons/AreaChartIcon.js +1 -1
  422. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  423. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  424. package/dist/icons/BackwardIcon.js +1 -1
  425. package/dist/icons/BarChartIcon.js +1 -1
  426. package/dist/icons/BellFilledIcon.js +1 -1
  427. package/dist/icons/BellIcon.js +1 -1
  428. package/dist/icons/BooleanIcon.js +1 -1
  429. package/dist/icons/CalendarEditIcon.js +1 -1
  430. package/dist/icons/CalendarIcon.js +1 -1
  431. package/dist/icons/CaretDownIcon.js +1 -1
  432. package/dist/icons/CaretUpIcon.js +1 -1
  433. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  434. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  435. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  436. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  437. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  438. package/dist/icons/ChartBarLineIcon.js +1 -1
  439. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  440. package/dist/icons/ChartBarStackedIcon.js +1 -1
  441. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  442. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  443. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  444. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  445. package/dist/icons/ChartBubbleIcon.js +1 -1
  446. package/dist/icons/ChartDonut2Icon.js +1 -1
  447. package/dist/icons/ChartFunnelIcon.js +1 -1
  448. package/dist/icons/ChartHeatmapIcon.js +1 -1
  449. package/dist/icons/ChartKPIIcon.js +1 -1
  450. package/dist/icons/ChartPie2Icon.js +1 -1
  451. package/dist/icons/ChartScatterIcon.js +1 -1
  452. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  453. package/dist/icons/CheckCircleIcon.js +1 -1
  454. package/dist/icons/CheckIcon.js +1 -1
  455. package/dist/icons/CircleFilledIcon.js +1 -1
  456. package/dist/icons/ClearIcon.js +1 -1
  457. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  458. package/dist/icons/CloseCircleIcon.js +1 -1
  459. package/dist/icons/CloseIcon.js +1 -1
  460. package/dist/icons/CodeIcon.js +1 -1
  461. package/dist/icons/ColumnTotalIcon.js +1 -1
  462. package/dist/icons/CopyIcon.js +1 -1
  463. package/dist/icons/CountIcon.js +1 -1
  464. package/dist/icons/CubeIcon.js +1 -1
  465. package/dist/icons/CubePauseIcon.js +1 -1
  466. package/dist/icons/CubePlayIcon.js +1 -1
  467. package/dist/icons/CurrencyDollarIcon.js +1 -1
  468. package/dist/icons/DangerIcon.js +1 -1
  469. package/dist/icons/DashboardIcon.js +1 -1
  470. package/dist/icons/DatabaseIcon.js +1 -1
  471. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  472. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  473. package/dist/icons/DirectionIcon.js +1 -1
  474. package/dist/icons/DonutIcon.js +1 -1
  475. package/dist/icons/DownIcon.js +1 -1
  476. package/dist/icons/EditIcon.js +1 -1
  477. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  478. package/dist/icons/ExclamationCircleIcon.js +1 -1
  479. package/dist/icons/ExclamationIcon.js +1 -1
  480. package/dist/icons/EyeIcon.js +1 -1
  481. package/dist/icons/EyeInvisibleIcon.js +1 -1
  482. package/dist/icons/FilterIcon.js +1 -1
  483. package/dist/icons/FolderFilledIcon.js +1 -1
  484. package/dist/icons/FolderIcon.js +1 -1
  485. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  486. package/dist/icons/FolderOpenIcon.js +1 -1
  487. package/dist/icons/ForwardIcon.js +1 -1
  488. package/dist/icons/GripVerticalIcon.js +1 -1
  489. package/dist/icons/HierarchyIcon.js +1 -1
  490. package/dist/icons/HierarchyOpenIcon.js +1 -1
  491. package/dist/icons/Icon.js +1 -1
  492. package/dist/icons/InfoCircleIcon.js +1 -1
  493. package/dist/icons/InfoIcon.js +1 -1
  494. package/dist/icons/KeyIcon.js +1 -1
  495. package/dist/icons/LeftIcon.js +1 -1
  496. package/dist/icons/LineChartIcon.js +1 -1
  497. package/dist/icons/LoadingIcon.js +1 -1
  498. package/dist/icons/LockFilledIcon.js +1 -1
  499. package/dist/icons/LockIcon.js +1 -1
  500. package/dist/icons/MoreIcon.js +1 -1
  501. package/dist/icons/NotAllowedIcon.js +1 -1
  502. package/dist/icons/Number123Icon.js +1 -1
  503. package/dist/icons/NumberIcon.js +1 -1
  504. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  505. package/dist/icons/PauseCircleIcon.js +1 -1
  506. package/dist/icons/PauseIcon.js +1 -1
  507. package/dist/icons/PercentageIcon.js +1 -1
  508. package/dist/icons/PieChartIcon.js +1 -1
  509. package/dist/icons/PipetteIcon.js +1 -1
  510. package/dist/icons/PlayCircleIcon.js +1 -1
  511. package/dist/icons/PlayIcon.js +1 -1
  512. package/dist/icons/PlusIcon.js +1 -1
  513. package/dist/icons/ProgressBarIcon.js +1 -1
  514. package/dist/icons/ReloadIcon.js +1 -1
  515. package/dist/icons/ReportIcon.js +1 -1
  516. package/dist/icons/ReturnIcon.js +1 -1
  517. package/dist/icons/RightIcon.js +1 -1
  518. package/dist/icons/RowTotalsIcon.js +1 -1
  519. package/dist/icons/SchemeIcon.js +1 -1
  520. package/dist/icons/SearchIcon.js +1 -1
  521. package/dist/icons/SemanticQueryIcon.js +1 -1
  522. package/dist/icons/SettingsIcon.js +1 -1
  523. package/dist/icons/ShieldFilledIcon.js +1 -1
  524. package/dist/icons/ShieldIcon.js +1 -1
  525. package/dist/icons/SlashIcon.js +1 -1
  526. package/dist/icons/SparklesIcon.js +1 -1
  527. package/dist/icons/SqlIcon.js +1 -1
  528. package/dist/icons/StatsIcon.js +1 -1
  529. package/dist/icons/StopIcon.js +1 -1
  530. package/dist/icons/StringIcon.js +1 -1
  531. package/dist/icons/SubtotalsIcon.js +1 -1
  532. package/dist/icons/SwitchIcon.js +1 -1
  533. package/dist/icons/TableIcon.js +1 -1
  534. package/dist/icons/ThumbsDownIcon.js +1 -1
  535. package/dist/icons/ThumbsUpIcon.js +1 -1
  536. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  537. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  538. package/dist/icons/ThunderboltIcon.js +1 -1
  539. package/dist/icons/TimeIcon.js +1 -1
  540. package/dist/icons/TrashIcon.js +1 -1
  541. package/dist/icons/UnlockIcon.js +1 -1
  542. package/dist/icons/UpIcon.js +1 -1
  543. package/dist/icons/UserGroupIcon.js +1 -1
  544. package/dist/icons/UserIcon.js +1 -1
  545. package/dist/icons/UserLockIcon.js +1 -1
  546. package/dist/icons/ViewIcon.js +1 -1
  547. package/dist/icons/WarningFilledIcon.js +1 -1
  548. package/dist/icons/WarningIcon.js +1 -1
  549. package/dist/icons/wrap-icon.js +1 -1
  550. package/dist/index.js +1 -1
  551. package/dist/probe/canonicalize.js +1 -1
  552. package/dist/probe/css.js +1 -1
  553. package/dist/probe/index.js +1 -1
  554. package/dist/provider.js +1 -1
  555. package/dist/providers/TrackingProvider.js +1 -1
  556. package/dist/providers/navigationAdapter.default.js +1 -1
  557. package/dist/tokens/all-tokens.js +1 -1
  558. package/dist/tokens/base.js +1 -1
  559. package/dist/tokens/color-seed.js +1 -1
  560. package/dist/tokens/color-theme.js +1 -1
  561. package/dist/tokens/colors.js +1 -1
  562. package/dist/tokens/layout.js +1 -1
  563. package/dist/tokens/lazy-styles.js +1 -1
  564. package/dist/tokens/legacy-color.js +1 -1
  565. package/dist/tokens/palette-config.js +1 -1
  566. package/dist/tokens/palette.js +1 -1
  567. package/dist/tokens/resolve.js +1 -1
  568. package/dist/tokens/shadows.js +1 -1
  569. package/dist/tokens/sizes.js +1 -1
  570. package/dist/tokens/spacing.js +1 -1
  571. package/dist/tokens/typography.js +1 -1
  572. package/dist/utils/ResizeSensor.js +1 -1
  573. package/dist/utils/colors.js +1 -1
  574. package/dist/utils/dotize.js +1 -1
  575. package/dist/utils/is-dev-env.js +1 -1
  576. package/dist/utils/modules.js +1 -1
  577. package/dist/utils/promise.js +1 -1
  578. package/dist/utils/raf.js +1 -1
  579. package/dist/utils/random.js +1 -1
  580. package/dist/utils/range.js +1 -1
  581. package/dist/utils/react/RenderCache.js +1 -1
  582. package/dist/utils/react/Slots.js +1 -1
  583. package/dist/utils/react/chain.js +1 -1
  584. package/dist/utils/react/disabledProps.js +1 -1
  585. package/dist/utils/react/escapePropagation.js +1 -1
  586. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  587. package/dist/utils/react/index.js +1 -1
  588. package/dist/utils/react/interactions.js +1 -1
  589. package/dist/utils/react/isTextOnly.js +1 -1
  590. package/dist/utils/react/mapProps.js +1 -1
  591. package/dist/utils/react/mergeProps.js +1 -1
  592. package/dist/utils/react/nullableValue.js +1 -1
  593. package/dist/utils/react/programmaticFocus.js +1 -1
  594. package/dist/utils/react/resolveIcon.js +1 -1
  595. package/dist/utils/react/sharedStore.js +1 -1
  596. package/dist/utils/react/useBufferedValue.js +1 -1
  597. package/dist/utils/react/useCombinedRefs.js +1 -1
  598. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  599. package/dist/utils/react/useEventBus.js +1 -1
  600. package/dist/utils/react/useId.js +1 -1
  601. package/dist/utils/react/useIsDarwin.js +1 -1
  602. package/dist/utils/react/useKeySymbols.js +1 -1
  603. package/dist/utils/react/useKeySymbols.js.map +1 -1
  604. package/dist/utils/react/useLayoutEffect.js +1 -1
  605. package/dist/utils/react/useLocalStorage.js +1 -1
  606. package/dist/utils/react/useMergeStyles.js +1 -1
  607. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  608. package/dist/utils/react/usePopoverSync.js +1 -1
  609. package/dist/utils/react/usePopoverSync.js.map +1 -1
  610. package/dist/utils/react/useQaProps.js +1 -1
  611. package/dist/utils/react/useScheme.js +1 -1
  612. package/dist/utils/react/useViewportSize.js +1 -1
  613. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  614. package/dist/utils/selection.js +1 -1
  615. package/dist/utils/styles.js +1 -1
  616. package/dist/utils/tree.js +1 -1
  617. package/dist/utils/warnings.js +1 -1
  618. package/dist/version.js +2 -2
  619. package/docs/CreateComponent.md +3 -1
  620. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
- import { compareByColumn } from "./use-table-sort.js";
3
+ import { sortRows } from "./use-table-sort.js";
4
4
  import { c } from "react-compiler-runtime";
5
5
  import { useControlledState } from "@react-stately/utils";
6
6
  import { useCollator } from "@react-aria/i18n";
@@ -20,7 +20,7 @@ const EMPTY = [];
20
20
  * replacing the whole sort, so the other columns keep their precedence.
21
21
  */
22
22
  function useTableSorts(t0) {
23
- const $ = c(31);
23
+ const $ = c(29);
24
24
  const { columns, rows, mode, sorts: sortsProp, defaultSorts, onSortsChange } = t0;
25
25
  let t1;
26
26
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
@@ -118,33 +118,7 @@ function useTableSorts(t0) {
118
118
  const setColumnSort = useEvent(t4);
119
119
  let t5;
120
120
  if ($[13] !== collator || $[14] !== columns || $[15] !== resolvedMode || $[16] !== rows || $[17] !== sorts) {
121
- bb0: {
122
- if (resolvedMode !== "client" || !sorts.length) {
123
- t5 = rows;
124
- break bb0;
125
- }
126
- let t6;
127
- if ($[19] !== columns) {
128
- t6 = (sort) => ({
129
- sort,
130
- column: columns.find((entry_3) => entry_3.key === sort.columnKey)
131
- });
132
- $[19] = columns;
133
- $[20] = t6;
134
- } else t6 = $[20];
135
- const active = sorts.map(t6).filter(_temp2);
136
- if (!active.length) {
137
- t5 = rows;
138
- break bb0;
139
- }
140
- t5 = rows.map(_temp3).sort((a, b) => {
141
- for (const { sort: sort_0, column: column_3 } of active) {
142
- const result = compareByColumn(column_3, collator, a.row, a.index, b.row, b.index);
143
- if (result !== 0) return result * (sort_0.direction === "asc" ? 1 : -1);
144
- }
145
- return a.index - b.index;
146
- }).map(_temp4);
147
- }
121
+ t5 = resolvedMode === "client" ? sortRows(rows, sorts, columns, collator) : rows;
148
122
  $[13] = collator;
149
123
  $[14] = columns;
150
124
  $[15] = resolvedMode;
@@ -154,14 +128,14 @@ function useTableSorts(t0) {
154
128
  } else t5 = $[18];
155
129
  const sortedRows = t5;
156
130
  let t6;
157
- if ($[21] !== sorts) {
158
- t6 = (columnKey_1) => sorts.findIndex((entry_6) => entry_6.columnKey === columnKey_1) + 1;
159
- $[21] = sorts;
160
- $[22] = t6;
161
- } else t6 = $[22];
131
+ if ($[19] !== sorts) {
132
+ t6 = (columnKey_1) => sorts.findIndex((entry_3) => entry_3.columnKey === columnKey_1) + 1;
133
+ $[19] = sorts;
134
+ $[20] = t6;
135
+ } else t6 = $[20];
162
136
  const sortRank = useEvent(t6);
163
137
  let t7;
164
- if ($[23] !== isSortable || $[24] !== resolvedMode || $[25] !== setColumnSort || $[26] !== sortRank || $[27] !== sortedRows || $[28] !== sorts || $[29] !== toggleSort) {
138
+ if ($[21] !== isSortable || $[22] !== resolvedMode || $[23] !== setColumnSort || $[24] !== sortRank || $[25] !== sortedRows || $[26] !== sorts || $[27] !== toggleSort) {
165
139
  t7 = {
166
140
  sorts,
167
141
  sortedRows,
@@ -171,29 +145,17 @@ function useTableSorts(t0) {
171
145
  sortRank,
172
146
  mode: resolvedMode
173
147
  };
174
- $[23] = isSortable;
175
- $[24] = resolvedMode;
176
- $[25] = setColumnSort;
177
- $[26] = sortRank;
178
- $[27] = sortedRows;
179
- $[28] = sorts;
180
- $[29] = toggleSort;
181
- $[30] = t7;
182
- } else t7 = $[30];
148
+ $[21] = isSortable;
149
+ $[22] = resolvedMode;
150
+ $[23] = setColumnSort;
151
+ $[24] = sortRank;
152
+ $[25] = sortedRows;
153
+ $[26] = sorts;
154
+ $[27] = toggleSort;
155
+ $[28] = t7;
156
+ } else t7 = $[28];
183
157
  return t7;
184
158
  }
185
- function _temp4(entry_5) {
186
- return entry_5.row;
187
- }
188
- function _temp3(row, index_1) {
189
- return {
190
- row,
191
- index: index_1
192
- };
193
- }
194
- function _temp2(entry_4) {
195
- return entry_4.column != null;
196
- }
197
159
  function _temp(column) {
198
160
  return column.isSortable;
199
161
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-sorts.js","names":["useCollator","useControlledState","useMemo","useEvent","compareByColumn","CubeTableColumn","CubeTableSort","CubeTableSortDirection","UseTableSortsOptions","columns","T","rows","mode","sorts","defaultSorts","onSortsChange","EMPTY","useTableSorts","t0","$","_c","sortsProp","t1","Symbol","for","numeric","sensitivity","collator","setSorts","value","hasSortableColumn","some","_temp","resolvedMode","t2","column_0","column","isSortable","t3","columnKey","column_1","find","entry","key","index","findIndex","entry_0","direction","next","disallowSortRemoval","splice","toggleSort","t4","columnKey_0","column_2","entry_1","index_0","entry_2","next_0","next_1","setColumnSort","t5","bb0","length","t6","sort","entry_3","active","map","filter","_temp2","_temp3","a","b","sort_0","column_3","result","row","_temp4","sortedRows","columnKey_1","entry_6","sortRank","t7","entry_5","index_1","entry_4"],"sources":["../../../../src/components/data/TableBase/use-table-sorts.ts"],"sourcesContent":["import { useCollator } from '@react-aria/i18n';\nimport { useControlledState } from '@react-stately/utils';\nimport { useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks';\n\nimport { compareByColumn } from './use-table-sort';\n\nimport type {\n CubeTableColumn,\n CubeTableSort,\n CubeTableSortDirection,\n} from './types';\n\nexport interface UseTableSortsOptions<T> {\n columns: CubeTableColumn<T>[];\n rows: readonly T[];\n mode?: 'client' | 'server' | 'off';\n sorts?: CubeTableSort[];\n defaultSorts?: CubeTableSort[];\n onSortsChange?: (sorts: CubeTableSort[]) => void;\n}\n\nconst EMPTY: CubeTableSort[] = [];\n\n/**\n * Multi-column sorting.\n *\n * `ItemTable` sorts by one column, which is right for a list. An analytical\n * grid is routinely ordered by one dimension and then another, and Cloud's\n * reports send an array of sorts to the query — so the order of the array is\n * the sort precedence, and it has to survive round-tripping.\n *\n * Clicking a header cycles that column `asc → desc → off` exactly as the single\n * version does; the difference is that it edits its entry in place rather than\n * replacing the whole sort, so the other columns keep their precedence.\n */\nexport function useTableSorts<T>({\n columns,\n rows,\n mode,\n sorts: sortsProp,\n defaultSorts,\n onSortsChange,\n}: UseTableSortsOptions<T>) {\n const collator = useCollator({ numeric: true, sensitivity: 'base' });\n\n const [sorts, setSorts] = useControlledState<CubeTableSort[]>(\n sortsProp as CubeTableSort[],\n defaultSorts ?? EMPTY,\n onSortsChange as (value: CubeTableSort[]) => void,\n );\n\n const hasSortableColumn = columns.some((column) => column.isSortable);\n const resolvedMode = mode ?? (hasSortableColumn ? 'client' : 'off');\n\n const isSortable = useEvent(\n (column: CubeTableColumn<T>) =>\n resolvedMode !== 'off' && column.isSortable === true,\n );\n\n const toggleSort = useEvent((columnKey: string) => {\n const column = columns.find((entry) => entry.key === columnKey);\n\n if (!column || !isSortable(column)) return;\n\n const index = sorts.findIndex((entry) => entry.columnKey === columnKey);\n\n if (index === -1) {\n // Appended, not prepended: a newly sorted column is the least\n // significant, so the ordering the user already established still leads.\n setSorts([...sorts, { columnKey, direction: 'asc' }]);\n\n return;\n }\n\n const next = [...sorts];\n\n if (next[index].direction === 'asc') {\n next[index] = { columnKey, direction: 'desc' };\n setSorts(next);\n\n return;\n }\n\n if (column.disallowSortRemoval) {\n next[index] = { columnKey, direction: 'asc' };\n setSorts(next);\n\n return;\n }\n\n next.splice(index, 1);\n setSorts(next);\n });\n\n /**\n * Set one column's direction outright instead of advancing the cycle.\n *\n * The column menu's `sort-desc` has to reach `desc` in one step. Reaching it\n * by calling `toggleSort` twice cannot work here: under `disallowSortRemoval`\n * the cycle never leaves `asc`/`desc`, and a column that was unsorted would\n * be appended and then re-read, so every intermediate state is observable.\n *\n * Precedence is preserved — an already-sorted column keeps its slot, and a\n * newly sorted one is appended as the least significant, the same rule\n * `toggleSort` follows.\n */\n const setColumnSort = useEvent(\n (columnKey: string, direction: CubeTableSortDirection | null) => {\n const column = columns.find((entry) => entry.key === columnKey);\n\n if (!column || !isSortable(column)) return;\n\n const index = sorts.findIndex((entry) => entry.columnKey === columnKey);\n\n if (direction == null) {\n // `disallowSortRemoval` means the column is never *left* unsorted, so an\n // explicit clear is refused too rather than quietly re-sorting.\n if (index === -1 || column.disallowSortRemoval) return;\n\n const next = [...sorts];\n\n next.splice(index, 1);\n setSorts(next);\n\n return;\n }\n\n if (index === -1) {\n setSorts([...sorts, { columnKey, direction }]);\n\n return;\n }\n\n if (sorts[index].direction === direction) return;\n\n const next = [...sorts];\n\n next[index] = { columnKey, direction };\n setSorts(next);\n },\n );\n\n const sortedRows = useMemo(() => {\n if (resolvedMode !== 'client' || !sorts.length) return rows;\n\n const active = sorts\n .map((sort) => ({\n sort,\n column: columns.find((entry) => entry.key === sort.columnKey),\n }))\n .filter(\n (entry): entry is { sort: CubeTableSort; column: CubeTableColumn<T> } =>\n entry.column != null,\n );\n\n if (!active.length) return rows;\n\n // Not sorted in place: `rows` belongs to the caller and `sort` mutates.\n // The original index is carried so the result is stable when every sort\n // ties.\n return rows\n .map((row, index) => ({ row, index }))\n .sort((a, b) => {\n for (const { sort, column } of active) {\n const result = compareByColumn(\n column,\n collator,\n a.row,\n a.index,\n b.row,\n b.index,\n );\n\n if (result !== 0) {\n return result * (sort.direction === 'asc' ? 1 : -1);\n }\n }\n\n return a.index - b.index;\n })\n .map((entry) => entry.row);\n }, [resolvedMode, sorts, rows, columns, collator]);\n\n /** Where a column sits in the precedence, 1-based. `0` when unsorted. */\n const sortRank = useEvent(\n (columnKey: string) =>\n sorts.findIndex((entry) => entry.columnKey === columnKey) + 1,\n );\n\n // Returned for the same reason as the single-column hook: the renderer needs\n // this exact answer to decide whether a header is clickable.\n return {\n sorts,\n sortedRows,\n toggleSort,\n setColumnSort,\n isSortable,\n sortRank,\n mode: resolvedMode,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-table-sorts.js","names":["useCollator","useControlledState","useEvent","sortRows","CubeTableColumn","CubeTableSort","CubeTableSortDirection","UseTableSortsOptions","columns","T","rows","mode","sorts","defaultSorts","onSortsChange","EMPTY","useTableSorts","t0","$","_c","sortsProp","t1","Symbol","for","numeric","sensitivity","collator","setSorts","value","hasSortableColumn","some","_temp","resolvedMode","t2","column_0","column","isSortable","t3","columnKey","column_1","find","entry","key","index","findIndex","entry_0","direction","next","disallowSortRemoval","splice","toggleSort","t4","columnKey_0","column_2","entry_1","index_0","entry_2","next_0","next_1","setColumnSort","t5","sortedRows","t6","columnKey_1","entry_3","sortRank","t7"],"sources":["../../../../src/components/data/TableBase/use-table-sorts.ts"],"sourcesContent":["import { useCollator } from '@react-aria/i18n';\nimport { useControlledState } from '@react-stately/utils';\n\nimport { useEvent } from '../../../_internal/hooks';\n\nimport { sortRows } from './use-table-sort';\n\nimport type {\n CubeTableColumn,\n CubeTableSort,\n CubeTableSortDirection,\n} from './types';\n\nexport interface UseTableSortsOptions<T> {\n columns: CubeTableColumn<T>[];\n rows: readonly T[];\n mode?: 'client' | 'server' | 'off';\n sorts?: CubeTableSort[];\n defaultSorts?: CubeTableSort[];\n onSortsChange?: (sorts: CubeTableSort[]) => void;\n}\n\nconst EMPTY: CubeTableSort[] = [];\n\n/**\n * Multi-column sorting.\n *\n * `ItemTable` sorts by one column, which is right for a list. An analytical\n * grid is routinely ordered by one dimension and then another, and Cloud's\n * reports send an array of sorts to the query — so the order of the array is\n * the sort precedence, and it has to survive round-tripping.\n *\n * Clicking a header cycles that column `asc → desc → off` exactly as the single\n * version does; the difference is that it edits its entry in place rather than\n * replacing the whole sort, so the other columns keep their precedence.\n */\nexport function useTableSorts<T>({\n columns,\n rows,\n mode,\n sorts: sortsProp,\n defaultSorts,\n onSortsChange,\n}: UseTableSortsOptions<T>) {\n const collator = useCollator({ numeric: true, sensitivity: 'base' });\n\n const [sorts, setSorts] = useControlledState<CubeTableSort[]>(\n sortsProp as CubeTableSort[],\n defaultSorts ?? EMPTY,\n onSortsChange as (value: CubeTableSort[]) => void,\n );\n\n const hasSortableColumn = columns.some((column) => column.isSortable);\n const resolvedMode = mode ?? (hasSortableColumn ? 'client' : 'off');\n\n const isSortable = useEvent(\n (column: CubeTableColumn<T>) =>\n resolvedMode !== 'off' && column.isSortable === true,\n );\n\n const toggleSort = useEvent((columnKey: string) => {\n const column = columns.find((entry) => entry.key === columnKey);\n\n if (!column || !isSortable(column)) return;\n\n const index = sorts.findIndex((entry) => entry.columnKey === columnKey);\n\n if (index === -1) {\n // Appended, not prepended: a newly sorted column is the least\n // significant, so the ordering the user already established still leads.\n setSorts([...sorts, { columnKey, direction: 'asc' }]);\n\n return;\n }\n\n const next = [...sorts];\n\n if (next[index].direction === 'asc') {\n next[index] = { columnKey, direction: 'desc' };\n setSorts(next);\n\n return;\n }\n\n if (column.disallowSortRemoval) {\n next[index] = { columnKey, direction: 'asc' };\n setSorts(next);\n\n return;\n }\n\n next.splice(index, 1);\n setSorts(next);\n });\n\n /**\n * Set one column's direction outright instead of advancing the cycle.\n *\n * The column menu's `sort-desc` has to reach `desc` in one step. Reaching it\n * by calling `toggleSort` twice cannot work here: under `disallowSortRemoval`\n * the cycle never leaves `asc`/`desc`, and a column that was unsorted would\n * be appended and then re-read, so every intermediate state is observable.\n *\n * Precedence is preserved — an already-sorted column keeps its slot, and a\n * newly sorted one is appended as the least significant, the same rule\n * `toggleSort` follows.\n */\n const setColumnSort = useEvent(\n (columnKey: string, direction: CubeTableSortDirection | null) => {\n const column = columns.find((entry) => entry.key === columnKey);\n\n if (!column || !isSortable(column)) return;\n\n const index = sorts.findIndex((entry) => entry.columnKey === columnKey);\n\n if (direction == null) {\n // `disallowSortRemoval` means the column is never *left* unsorted, so an\n // explicit clear is refused too rather than quietly re-sorting.\n if (index === -1 || column.disallowSortRemoval) return;\n\n const next = [...sorts];\n\n next.splice(index, 1);\n setSorts(next);\n\n return;\n }\n\n if (index === -1) {\n setSorts([...sorts, { columnKey, direction }]);\n\n return;\n }\n\n if (sorts[index].direction === direction) return;\n\n const next = [...sorts];\n\n next[index] = { columnKey, direction };\n setSorts(next);\n },\n );\n\n const sortedRows =\n resolvedMode === 'client' ? sortRows(rows, sorts, columns, collator) : rows;\n\n /** Where a column sits in the precedence, 1-based. `0` when unsorted. */\n const sortRank = useEvent(\n (columnKey: string) =>\n sorts.findIndex((entry) => entry.columnKey === columnKey) + 1,\n );\n\n // Returned for the same reason as the single-column hook: the renderer needs\n // this exact answer to decide whether a header is clickable.\n return {\n sorts,\n sortedRows,\n toggleSort,\n setColumnSort,\n isSortable,\n sortRank,\n mode: resolvedMode,\n };\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useCallback, useRef, useState } from "react";
3
3
 
4
4
  //#region src/components/data/TableBase/use-table-storage.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -7,8 +7,25 @@ import { Item, useTreeState } from "react-stately";
7
7
  import { useControlledState } from "@react-stately/utils";
8
8
 
9
9
  //#region src/components/data/TableBase/use-table-tree-state.tsx
10
+ /**
11
+ * Current React Stately's legacy TreeCollection omits `getChildren`, while
12
+ * `useTreeItem` needs it for level/set-size/expanded metadata.
13
+ */
14
+ function withGetChildren(state) {
15
+ const collection = state.collection;
16
+ if (typeof collection.getChildren === "function") return state;
17
+ const patched = Object.create(collection);
18
+ patched.getChildren = (key) => {
19
+ const node = collection.getItem(key);
20
+ return node ? Array.from(node.childNodes) : [];
21
+ };
22
+ return {
23
+ ...state,
24
+ collection: patched
25
+ };
26
+ }
10
27
  function useTableTreeState(options) {
11
- const $ = c(43);
28
+ const $ = c(39);
12
29
  const { roots, allNodesByKey, expandedKeys: controlledExpandedKeys, defaultExpandedKeys, forcedExpandedKeys, disabledKeys, getTextValue, onExpand, ariaLabel } = options;
13
30
  const { t } = useI18n();
14
31
  let t0;
@@ -31,15 +48,14 @@ function useTableTreeState(options) {
31
48
  $[5] = t2;
32
49
  } else t2 = $[5];
33
50
  const [baseExpandedKeys, setBaseExpandedKeys] = useControlledState(controlledSet, t2);
34
- let keys;
51
+ let effectiveExpandedKeys;
35
52
  if ($[6] !== baseExpandedKeys || $[7] !== forcedExpandedKeys) {
36
- keys = new Set(baseExpandedKeys);
37
- forcedExpandedKeys?.forEach((key) => keys.add(key));
53
+ effectiveExpandedKeys = new Set(baseExpandedKeys);
54
+ forcedExpandedKeys?.forEach((key) => effectiveExpandedKeys.add(key));
38
55
  $[6] = baseExpandedKeys;
39
56
  $[7] = forcedExpandedKeys;
40
- $[8] = keys;
41
- } else keys = $[8];
42
- const effectiveExpandedKeys = keys;
57
+ $[8] = effectiveExpandedKeys;
58
+ } else effectiveExpandedKeys = $[8];
43
59
  let t3;
44
60
  if ($[9] !== allNodesByKey || $[10] !== baseExpandedKeys || $[11] !== effectiveExpandedKeys || $[12] !== forcedExpandedKeys || $[13] !== onExpand || $[14] !== setBaseExpandedKeys) {
45
61
  t3 = (next) => {
@@ -123,56 +139,28 @@ function useTableTreeState(options) {
123
139
  } else t7 = $[27];
124
140
  const ariaProps = t7;
125
141
  const baseState = useTreeState(ariaProps);
142
+ let state;
126
143
  let t8;
127
- bb0: {
128
- const collection = baseState.collection;
129
- if (typeof collection.getChildren === "function") {
130
- t8 = baseState;
131
- break bb0;
132
- }
133
- let patched;
134
- if ($[28] !== collection) {
135
- patched = Object.create(collection);
136
- patched.getChildren = (key_2) => {
137
- const node_1 = collection.getItem(key_2);
138
- return node_1 ? Array.from(node_1.childNodes) : [];
139
- };
140
- $[28] = collection;
141
- $[29] = patched;
142
- } else patched = $[29];
143
- let t9;
144
- if ($[30] !== baseState || $[31] !== patched) {
145
- t9 = {
146
- ...baseState,
147
- collection: patched
148
- };
149
- $[30] = baseState;
150
- $[31] = patched;
151
- $[32] = t9;
152
- } else t9 = $[32];
153
- t8 = t9;
144
+ if ($[28] !== baseState) {
145
+ state = withGetChildren(baseState);
146
+ t8 = Array.from(state.collection.getKeys(), (key_2) => state.collection.getItem(key_2)).filter(_temp2);
147
+ $[28] = baseState;
148
+ $[29] = state;
149
+ $[30] = t8;
150
+ } else {
151
+ state = $[29];
152
+ t8 = $[30];
154
153
  }
155
- const state = t8;
156
- let output;
157
- if ($[33] !== state.collection) {
158
- output = [];
159
- for (const key_3 of state.collection.getKeys()) {
160
- const node_2 = state.collection.getItem(key_3);
161
- if (node_2?.type === "item") output.push(node_2);
162
- }
163
- $[33] = state.collection;
164
- $[34] = output;
165
- } else output = $[34];
166
- const visibleNodes = output;
154
+ const visibleNodes = t8;
167
155
  let t9;
168
- if ($[35] !== visibleNodes) {
169
- t9 = visibleNodes.map(_temp2).filter(_temp3);
170
- $[35] = visibleNodes;
171
- $[36] = t9;
172
- } else t9 = $[36];
156
+ if ($[31] !== visibleNodes) {
157
+ t9 = visibleNodes.map(_temp3).filter(_temp4);
158
+ $[31] = visibleNodes;
159
+ $[32] = t9;
160
+ } else t9 = $[32];
173
161
  const visibleEntries = t9;
174
162
  let t10;
175
- if ($[37] !== ariaProps || $[38] !== effectiveExpandedKeys || $[39] !== state || $[40] !== visibleEntries || $[41] !== visibleNodes) {
163
+ if ($[33] !== ariaProps || $[34] !== effectiveExpandedKeys || $[35] !== state || $[36] !== visibleEntries || $[37] !== visibleNodes) {
176
164
  t10 = {
177
165
  state,
178
166
  ariaProps,
@@ -180,20 +168,23 @@ function useTableTreeState(options) {
180
168
  visibleEntries,
181
169
  expandedKeys: effectiveExpandedKeys
182
170
  };
183
- $[37] = ariaProps;
184
- $[38] = effectiveExpandedKeys;
185
- $[39] = state;
186
- $[40] = visibleEntries;
187
- $[41] = visibleNodes;
188
- $[42] = t10;
189
- } else t10 = $[42];
171
+ $[33] = ariaProps;
172
+ $[34] = effectiveExpandedKeys;
173
+ $[35] = state;
174
+ $[36] = visibleEntries;
175
+ $[37] = visibleNodes;
176
+ $[38] = t10;
177
+ } else t10 = $[38];
190
178
  return t10;
191
179
  }
192
- function _temp3(node_4) {
193
- return node_4 != null;
180
+ function _temp4(node_3) {
181
+ return node_3 != null;
182
+ }
183
+ function _temp3(node_2) {
184
+ return node_2.value;
194
185
  }
195
- function _temp2(node_3) {
196
- return node_3.value;
186
+ function _temp2(node_1) {
187
+ return node_1?.type === "item";
197
188
  }
198
189
  function _temp() {}
199
190
 
@@ -1 +1 @@
1
- {"version":3,"file":"use-table-tree-state.js","names":["useControlledState","useMemo","Item","useTreeState","useEvent","useI18n","Key","Node","ReactElement","TreeState","TableTreeNode","CubeTableRowExpandInfo","UseTableTreeStateOptions","roots","T","allNodesByKey","Map","expandedKeys","defaultExpandedKeys","forcedExpandedKeys","ReadonlySet","disabledKeys","getTextValue","node","onExpand","keys","info","ariaLabel","TableTreeStateResult","state","ariaProps","Record","visibleNodes","visibleEntries","Set","useTableTreeState","options","$","_c","controlledExpandedKeys","t","t0","undefined","controlledSet","t1","t2","defaultSet","baseExpandedKeys","setBaseExpandedKeys","forEach","key","add","effectiveExpandedKeys","t3","next","toggledKey","expanded","key_0","has","key_1","nextBase","delete","get","row","rowKey","level","parentKey","handleExpandedChange","t4","node_0","children","renderItem","t5","t6","t7","items","selectionMode","const","onExpandedChange","disabledBehavior","onAction","_temp","baseState","t8","bb0","collection","getChildren","patched","Object","create","key_2","node_1","getItem","Array","from","childNodes","t9","output","key_3","getKeys","node_2","type","push","map","_temp2","filter","_temp3","t10","node_4","node_3","value"],"sources":["../../../../src/components/data/TableBase/use-table-tree-state.tsx"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { useMemo } from 'react';\nimport { Item, useTreeState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\n\nimport type { Key, Node } from '@react-types/shared';\nimport type { ReactElement } from 'react';\nimport type { TreeState } from 'react-stately';\nimport type { TableTreeNode } from './table-tree';\nimport type { CubeTableRowExpandInfo } from './types';\n\nexport interface UseTableTreeStateOptions<T> {\n roots: TableTreeNode<T>[];\n allNodesByKey: Map<Key, TableTreeNode<T>>;\n expandedKeys?: Key[];\n defaultExpandedKeys?: Key[];\n forcedExpandedKeys?: ReadonlySet<Key>;\n disabledKeys?: Key[];\n getTextValue: (node: TableTreeNode<T>) => string;\n onExpand?: (keys: Key[], info: CubeTableRowExpandInfo<T>) => void;\n ariaLabel?: string;\n}\n\nexport interface TableTreeStateResult<T> {\n state: TreeState<TableTreeNode<T>>;\n /** Props consumed by `useTree` on the actual `<table>`. */\n ariaProps: Record<string, any>;\n visibleNodes: Node<TableTreeNode<T>>[];\n visibleEntries: TableTreeNode<T>[];\n expandedKeys: Set<Key>;\n}\n\nexport function useTableTreeState<T>(\n options: UseTableTreeStateOptions<T>,\n): TableTreeStateResult<T> {\n const {\n roots,\n allNodesByKey,\n expandedKeys: controlledExpandedKeys,\n defaultExpandedKeys,\n forcedExpandedKeys,\n disabledKeys,\n getTextValue,\n onExpand,\n ariaLabel,\n } = options;\n const { t } = useI18n();\n\n const controlledSet = useMemo(\n () =>\n controlledExpandedKeys === undefined\n ? undefined\n : new Set<Key>(controlledExpandedKeys),\n [controlledExpandedKeys],\n );\n const defaultSet = useMemo(\n () => new Set<Key>(defaultExpandedKeys ?? []),\n [defaultExpandedKeys],\n );\n const [baseExpandedKeys, setBaseExpandedKeys] = useControlledState<Set<Key>>(\n controlledSet as Set<Key>,\n defaultSet,\n );\n\n const effectiveExpandedKeys = useMemo(() => {\n const keys = new Set(baseExpandedKeys);\n forcedExpandedKeys?.forEach((key) => keys.add(key));\n return keys;\n }, [baseExpandedKeys, forcedExpandedKeys]);\n\n const handleExpandedChange = useEvent((next: Set<Key>) => {\n let toggledKey: Key | null = null;\n let expanded = false;\n\n for (const key of next) {\n if (!effectiveExpandedKeys.has(key)) {\n toggledKey = key;\n expanded = true;\n break;\n }\n }\n\n if (toggledKey == null) {\n for (const key of effectiveExpandedKeys) {\n if (!next.has(key)) {\n toggledKey = key;\n expanded = false;\n break;\n }\n }\n }\n\n if (toggledKey == null) return;\n\n // Search-owned expansions are derived and cannot be collapsed until the\n // search clears. Crucially, they never leak into the consumer's state.\n if (!expanded && forcedExpandedKeys?.has(toggledKey)) return;\n\n const nextBase = new Set(baseExpandedKeys);\n if (expanded) nextBase.add(toggledKey);\n else nextBase.delete(toggledKey);\n setBaseExpandedKeys(nextBase);\n\n const node = allNodesByKey.get(toggledKey);\n if (!node) return;\n\n onExpand?.([...nextBase], {\n row: node.row,\n rowKey: node.key,\n level: node.level,\n parentKey: node.parentKey,\n expanded,\n });\n });\n\n const renderItem = useEvent(\n (node: TableTreeNode<T>): ReactElement => (\n <Item\n key={node.key}\n textValue={getTextValue(node)}\n childItems={node.children}\n >\n {getTextValue(node)}\n </Item>\n ),\n );\n\n const ariaProps = useMemo(\n () => ({\n items: roots,\n children: renderItem as any,\n selectionMode: 'none' as const,\n expandedKeys: effectiveExpandedKeys,\n onExpandedChange: handleExpandedChange,\n disabledKeys,\n disabledBehavior: 'all' as const,\n // Prevent `useTreeItem` from treating a row press as an implicit toggle.\n // Tables keep row activation and expansion as separate interactions.\n onAction: () => {},\n 'aria-label': ariaLabel ?? t('itemTable.table', 'Table'),\n }),\n [\n roots,\n renderItem,\n effectiveExpandedKeys,\n handleExpandedChange,\n disabledKeys,\n ariaLabel,\n t,\n ],\n );\n\n const baseState = useTreeState<TableTreeNode<T>>(ariaProps);\n\n // Current React Stately's legacy TreeCollection omits `getChildren`, while\n // `useTreeItem` needs it for level/set-size/expanded metadata.\n const state = useMemo(() => {\n const collection = baseState.collection;\n if (typeof (collection as any).getChildren === 'function') return baseState;\n\n const patched = Object.create(collection);\n patched.getChildren = (key: Key) => {\n const node = collection.getItem(key);\n return node ? Array.from(node.childNodes) : [];\n };\n\n return { ...baseState, collection: patched } as typeof baseState;\n }, [baseState]);\n\n const visibleNodes = useMemo(() => {\n const output: Node<TableTreeNode<T>>[] = [];\n for (const key of state.collection.getKeys()) {\n const node = state.collection.getItem(key);\n if (node?.type === 'item') output.push(node);\n }\n return output;\n }, [state.collection]);\n\n const visibleEntries = useMemo(\n () =>\n visibleNodes\n .map((node) => node.value)\n .filter((node): node is TableTreeNode<T> => node != null),\n [visibleNodes],\n );\n\n return {\n state,\n ariaProps,\n visibleNodes,\n visibleEntries,\n expandedKeys: effectiveExpandedKeys,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-table-tree-state.js","names":["useControlledState","Item","useTreeState","useEvent","useI18n","Key","Node","ReactElement","TreeState","TableTreeNode","CubeTableRowExpandInfo","UseTableTreeStateOptions","roots","T","allNodesByKey","Map","expandedKeys","defaultExpandedKeys","forcedExpandedKeys","ReadonlySet","disabledKeys","getTextValue","node","onExpand","keys","info","ariaLabel","TableTreeStateResult","state","ariaProps","Record","visibleNodes","visibleEntries","Set","withGetChildren","collection","getChildren","patched","Object","create","key","getItem","Array","from","childNodes","useTableTreeState","options","$","_c","controlledExpandedKeys","t","t0","undefined","controlledSet","t1","t2","defaultSet","baseExpandedKeys","setBaseExpandedKeys","effectiveExpandedKeys","forEach","add","t3","next","toggledKey","expanded","key_0","has","key_1","nextBase","delete","get","row","rowKey","level","parentKey","handleExpandedChange","t4","node_0","children","renderItem","t5","t6","t7","items","selectionMode","const","onExpandedChange","disabledBehavior","onAction","_temp","baseState","t8","getKeys","key_2","filter","_temp2","t9","map","_temp3","_temp4","t10","node_3","node_2","value","node_1","type"],"sources":["../../../../src/components/data/TableBase/use-table-tree-state.tsx"],"sourcesContent":["import { useControlledState } from '@react-stately/utils';\nimport { Item, useTreeState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\n\nimport type { Key, Node } from '@react-types/shared';\nimport type { ReactElement } from 'react';\nimport type { TreeState } from 'react-stately';\nimport type { TableTreeNode } from './table-tree';\nimport type { CubeTableRowExpandInfo } from './types';\n\nexport interface UseTableTreeStateOptions<T> {\n roots: TableTreeNode<T>[];\n allNodesByKey: Map<Key, TableTreeNode<T>>;\n expandedKeys?: Key[];\n defaultExpandedKeys?: Key[];\n forcedExpandedKeys?: ReadonlySet<Key>;\n disabledKeys?: Key[];\n getTextValue: (node: TableTreeNode<T>) => string;\n onExpand?: (keys: Key[], info: CubeTableRowExpandInfo<T>) => void;\n ariaLabel?: string;\n}\n\nexport interface TableTreeStateResult<T> {\n state: TreeState<TableTreeNode<T>>;\n /** Props consumed by `useTree` on the actual `<table>`. */\n ariaProps: Record<string, any>;\n visibleNodes: Node<TableTreeNode<T>>[];\n visibleEntries: TableTreeNode<T>[];\n expandedKeys: Set<Key>;\n}\n\n/**\n * Current React Stately's legacy TreeCollection omits `getChildren`, while\n * `useTreeItem` needs it for level/set-size/expanded metadata.\n */\nfunction withGetChildren<T>(state: TreeState<T>): TreeState<T> {\n const collection = state.collection;\n if (typeof (collection as any).getChildren === 'function') return state;\n\n const patched = Object.create(collection);\n patched.getChildren = (key: Key) => {\n const node = collection.getItem(key);\n return node ? Array.from(node.childNodes) : [];\n };\n\n return { ...state, collection: patched };\n}\n\nexport function useTableTreeState<T>(\n options: UseTableTreeStateOptions<T>,\n): TableTreeStateResult<T> {\n const {\n roots,\n allNodesByKey,\n expandedKeys: controlledExpandedKeys,\n defaultExpandedKeys,\n forcedExpandedKeys,\n disabledKeys,\n getTextValue,\n onExpand,\n ariaLabel,\n } = options;\n const { t } = useI18n();\n\n const controlledSet =\n controlledExpandedKeys === undefined\n ? undefined\n : new Set<Key>(controlledExpandedKeys);\n const defaultSet = new Set<Key>(defaultExpandedKeys ?? []);\n const [baseExpandedKeys, setBaseExpandedKeys] = useControlledState<Set<Key>>(\n controlledSet as Set<Key>,\n defaultSet,\n );\n\n const effectiveExpandedKeys = new Set(baseExpandedKeys);\n forcedExpandedKeys?.forEach((key) => effectiveExpandedKeys.add(key));\n\n const handleExpandedChange = useEvent((next: Set<Key>) => {\n let toggledKey: Key | null = null;\n let expanded = false;\n\n for (const key of next) {\n if (!effectiveExpandedKeys.has(key)) {\n toggledKey = key;\n expanded = true;\n break;\n }\n }\n\n if (toggledKey == null) {\n for (const key of effectiveExpandedKeys) {\n if (!next.has(key)) {\n toggledKey = key;\n expanded = false;\n break;\n }\n }\n }\n\n if (toggledKey == null) return;\n\n // Search-owned expansions are derived and cannot be collapsed until the\n // search clears. Crucially, they never leak into the consumer's state.\n if (!expanded && forcedExpandedKeys?.has(toggledKey)) return;\n\n const nextBase = new Set(baseExpandedKeys);\n if (expanded) nextBase.add(toggledKey);\n else nextBase.delete(toggledKey);\n setBaseExpandedKeys(nextBase);\n\n const node = allNodesByKey.get(toggledKey);\n if (!node) return;\n\n onExpand?.([...nextBase], {\n row: node.row,\n rowKey: node.key,\n level: node.level,\n parentKey: node.parentKey,\n expanded,\n });\n });\n\n const renderItem = useEvent(\n (node: TableTreeNode<T>): ReactElement => (\n <Item\n key={node.key}\n textValue={getTextValue(node)}\n childItems={node.children}\n >\n {getTextValue(node)}\n </Item>\n ),\n );\n\n const ariaProps = {\n items: roots,\n children: renderItem as any,\n selectionMode: 'none' as const,\n expandedKeys: effectiveExpandedKeys,\n onExpandedChange: handleExpandedChange,\n disabledKeys,\n disabledBehavior: 'all' as const,\n // Prevent `useTreeItem` from treating a row press as an implicit toggle.\n // Tables keep row activation and expansion as separate interactions.\n onAction: () => {},\n 'aria-label': ariaLabel ?? t('itemTable.table', 'Table'),\n };\n\n const baseState = useTreeState<TableTreeNode<T>>(ariaProps);\n const state = withGetChildren(baseState);\n\n const visibleNodes = Array.from(state.collection.getKeys(), (key) =>\n state.collection.getItem(key),\n ).filter((node): node is Node<TableTreeNode<T>> => node?.type === 'item');\n\n const visibleEntries = visibleNodes\n .map((node) => node.value)\n .filter((node): node is TableTreeNode<T> => node != null);\n\n return {\n state,\n ariaProps,\n visibleNodes,\n visibleEntries,\n expandedKeys: effectiveExpandedKeys,\n };\n}\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { castNullableArrayValue } from "../../../utils/react/nullableValue.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { createContext } from "react";
3
3
 
4
4
  //#region src/components/fields/Checkbox/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { ItemActionProvider } from "../../actions/ItemActionContext.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { _Text } from "../../content/Text.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { parseColor, toHex } from "../color/color.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-0b79a39 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-c02e70f | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useLayoutEffect as useLayoutEffect$1 } from "../../../utils/react/useLayoutEffect.js";
4
4
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";