@cube-dev/ui-kit 0.193.1 → 0.194.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 (671) hide show
  1. package/dist/CHANGELOG.md +28 -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.d.ts +25 -12
  12. package/dist/components/CollectionItem.js +59 -4
  13. package/dist/components/CollectionItem.js.map +1 -1
  14. package/dist/components/GlobalStyles.js +1 -1
  15. package/dist/components/GridProvider.js +1 -1
  16. package/dist/components/HiddenInput.js +1 -1
  17. package/dist/components/Root.js +2 -2
  18. package/dist/components/actions/Action/Action.js +1 -1
  19. package/dist/components/actions/Banner/Banner.d.ts +1 -1
  20. package/dist/components/actions/Banner/Banner.js +6 -6
  21. package/dist/components/actions/Banner/Banner.js.map +1 -1
  22. package/dist/components/actions/Button/Button.js +1 -1
  23. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  24. package/dist/components/actions/ButtonSplit/ButtonSplit.js +28 -25
  25. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  26. package/dist/components/actions/ButtonSplit/context.js +1 -1
  27. package/dist/components/actions/CommandMenu/CommandMenu.d.ts +7 -7
  28. package/dist/components/actions/CommandMenu/CommandMenu.js +232 -239
  29. package/dist/components/actions/CommandMenu/CommandMenu.js.map +1 -1
  30. package/dist/components/actions/CommandMenu/styled.js +1 -1
  31. package/dist/components/actions/ItemAction/ItemAction.js +26 -22
  32. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  33. package/dist/components/actions/ItemActionContext.d.ts +3 -0
  34. package/dist/components/actions/ItemActionContext.js +15 -13
  35. package/dist/components/actions/ItemActionContext.js.map +1 -1
  36. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  37. package/dist/components/actions/ItemButton/ItemButton.d.ts +2 -2
  38. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  39. package/dist/components/actions/Link/Link.js +1 -1
  40. package/dist/components/actions/Menu/Menu.d.ts +9 -9
  41. package/dist/components/actions/Menu/Menu.js +88 -64
  42. package/dist/components/actions/Menu/Menu.js.map +1 -1
  43. package/dist/components/actions/Menu/MenuCollectionItem.d.ts +18 -0
  44. package/dist/components/actions/Menu/MenuCollectionItem.js +36 -0
  45. package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -0
  46. package/dist/components/actions/Menu/MenuItem.d.ts +5 -0
  47. package/dist/components/actions/Menu/MenuItem.js +402 -116
  48. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  49. package/dist/components/actions/Menu/MenuSection.d.ts +3 -1
  50. package/dist/components/actions/Menu/MenuSection.js +31 -33
  51. package/dist/components/actions/Menu/MenuSection.js.map +1 -1
  52. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  53. package/dist/components/actions/Menu/SubMenuTrigger.d.ts +1 -1
  54. package/dist/components/actions/Menu/SubMenuTrigger.js +2 -2
  55. package/dist/components/actions/Menu/SubMenuTrigger.js.map +1 -1
  56. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  57. package/dist/components/actions/Menu/context.js +1 -1
  58. package/dist/components/actions/Menu/index.d.ts +1 -0
  59. package/dist/components/actions/Menu/styled.js +1 -1
  60. package/dist/components/actions/actions-run.js +1 -1
  61. package/dist/components/actions/index.d.ts +3 -2
  62. package/dist/components/actions/index.js +1 -1
  63. package/dist/components/actions/use-action.js +60 -36
  64. package/dist/components/actions/use-action.js.map +1 -1
  65. package/dist/components/actions/use-anchored-menu.js +1 -1
  66. package/dist/components/actions/use-context-menu.js +1 -1
  67. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  68. package/dist/components/content/Alert/Alert.js +1 -1
  69. package/dist/components/content/Alert/use-alert.js +1 -1
  70. package/dist/components/content/Avatar/Avatar.js +1 -1
  71. package/dist/components/content/Badge/Badge.js +1 -1
  72. package/dist/components/content/Card/Card.js +1 -1
  73. package/dist/components/content/Content.js +1 -1
  74. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  75. package/dist/components/content/CopySnippet/CopySnippet.d.ts +19 -19
  76. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  77. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  78. package/dist/components/content/Divider.js +1 -1
  79. package/dist/components/content/Footer.js +1 -1
  80. package/dist/components/content/Header.js +1 -1
  81. package/dist/components/content/HotKeys/HotKeys.js +44 -33
  82. package/dist/components/content/HotKeys/HotKeys.js.map +1 -1
  83. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  84. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  85. package/dist/components/content/Item/Item.d.ts +7 -7
  86. package/dist/components/content/Item/Item.js +205 -67
  87. package/dist/components/content/Item/Item.js.map +1 -1
  88. package/dist/components/content/Item/ItemWithNativeLinks.js +314 -0
  89. package/dist/components/content/Item/ItemWithNativeLinks.js.map +1 -0
  90. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  91. package/dist/components/content/ItemCard/ItemCard.d.ts +1 -1
  92. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  93. package/dist/components/content/Layout/GridLayout.js +1 -1
  94. package/dist/components/content/Layout/Layout.js +1 -1
  95. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  96. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  97. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  98. package/dist/components/content/Layout/LayoutContent.js +1 -1
  99. package/dist/components/content/Layout/LayoutContext.js +1 -1
  100. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  101. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  102. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  103. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  104. package/dist/components/content/Layout/LayoutPane.js +18 -15
  105. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  106. package/dist/components/content/Layout/LayoutPanel.js +41 -46
  107. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  108. package/dist/components/content/Layout/LayoutPanelHeader.js +2 -2
  109. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  110. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  111. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  112. package/dist/components/content/Layout/index.js +1 -1
  113. package/dist/components/content/Layout/utils.js +1 -1
  114. package/dist/components/content/Paragraph.js +1 -1
  115. package/dist/components/content/Placeholder/Placeholder.js +77 -70
  116. package/dist/components/content/Placeholder/Placeholder.js.map +1 -1
  117. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  118. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  119. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  120. package/dist/components/content/Result/Result.js +5 -5
  121. package/dist/components/content/Result/Result.js.map +1 -1
  122. package/dist/components/content/Skeleton/Skeleton.js +18 -19
  123. package/dist/components/content/Skeleton/Skeleton.js.map +1 -1
  124. package/dist/components/content/Tag/Tag.js +2 -2
  125. package/dist/components/content/Text.d.ts +14 -14
  126. package/dist/components/content/Text.js +1 -1
  127. package/dist/components/content/TextItem/TextItem.js +1 -1
  128. package/dist/components/content/Title.js +66 -48
  129. package/dist/components/content/Title.js.map +1 -1
  130. package/dist/components/content/Tree/Tree.js +6 -3
  131. package/dist/components/content/Tree/Tree.js.map +1 -1
  132. package/dist/components/content/Tree/TreeNode.js +1 -1
  133. package/dist/components/content/Tree/styled.js +1 -1
  134. package/dist/components/content/Tree/tree-index.js +1 -1
  135. package/dist/components/content/Tree/types.d.ts +2 -2
  136. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  137. package/dist/components/content/Tree/use-load-data.js +1 -1
  138. package/dist/components/content/highlightText.js +1 -1
  139. package/dist/components/content/use-auto-tooltip.js +1 -1
  140. package/dist/components/data/DataTable/DataTable.js +1 -1
  141. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  142. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  143. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  144. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  145. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  146. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  147. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  148. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  149. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  150. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  151. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  152. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  153. package/dist/components/data/TableBase/RowCollection.js +1 -1
  154. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  155. package/dist/components/data/TableBase/TableRow.js +1 -1
  156. package/dist/components/data/TableBase/TableView.js +39 -19
  157. package/dist/components/data/TableBase/TableView.js.map +1 -1
  158. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  159. package/dist/components/data/TableBase/column-header.js +1 -1
  160. package/dist/components/data/TableBase/column-menu.js +1 -1
  161. package/dist/components/data/TableBase/column-styles.js +1 -1
  162. package/dist/components/data/TableBase/column-tint.js +1 -1
  163. package/dist/components/data/TableBase/row-menu.js +1 -1
  164. package/dist/components/data/TableBase/styled.d.ts +1 -1
  165. package/dist/components/data/TableBase/styled.js +14 -1
  166. package/dist/components/data/TableBase/styled.js.map +1 -1
  167. package/dist/components/data/TableBase/table-tree.js +1 -1
  168. package/dist/components/data/TableBase/types.js +1 -1
  169. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  170. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  171. package/dist/components/data/TableBase/use-column-order.js +1 -1
  172. package/dist/components/data/TableBase/use-column-window.js +219 -0
  173. package/dist/components/data/TableBase/use-column-window.js.map +1 -0
  174. package/dist/components/data/TableBase/use-container-width.js +1 -1
  175. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  176. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  177. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  178. package/dist/components/data/TableBase/use-table-search.js +1 -1
  179. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  180. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  181. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  182. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  183. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +32 -19
  184. package/dist/components/data/TableBase/use-table-tooltip-refresh.js.map +1 -1
  185. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  186. package/dist/components/fields/Checkbox/Checkbox.js +3 -1
  187. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  188. package/dist/components/fields/Checkbox/CheckboxGroup.js +13 -13
  189. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  190. package/dist/components/fields/Checkbox/context.js +1 -1
  191. package/dist/components/fields/ColorInput/ColorInput.js +32 -29
  192. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -1
  193. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +2 -0
  194. package/dist/components/fields/ColorPicker/ColorPicker.js +8 -5
  195. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  196. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  197. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +6 -3
  198. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  199. package/dist/components/fields/ComboBox/ComboBox.js +41 -30
  200. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  201. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  202. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  203. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  204. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  205. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  206. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  207. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  208. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  209. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  210. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  211. package/dist/components/fields/DatePicker/DateRangePicker.js +2 -2
  212. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +246 -238
  213. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  214. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  215. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  216. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  217. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  218. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  219. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  220. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  221. package/dist/components/fields/DatePicker/period.js +1 -1
  222. package/dist/components/fields/DatePicker/props.js +1 -1
  223. package/dist/components/fields/DatePicker/utils.js +1 -1
  224. package/dist/components/fields/FileInput/FileInput.js +22 -2
  225. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  226. package/dist/components/fields/FilterListBox/FilterListBox.js +5 -1
  227. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  228. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +4 -2
  229. package/dist/components/fields/FilterPicker/FilterPicker.js +3 -2
  230. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  231. package/dist/components/fields/Input/Input.js +1 -1
  232. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  233. package/dist/components/fields/ListBox/ListBox.js +8 -7
  234. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  235. package/dist/components/fields/ListBox/optionId.js +1 -1
  236. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +36 -32
  237. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  238. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  239. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  240. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  241. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  242. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  243. package/dist/components/fields/Picker/Picker.d.ts +4 -2
  244. package/dist/components/fields/Picker/Picker.js +3 -2
  245. package/dist/components/fields/Picker/Picker.js.map +1 -1
  246. package/dist/components/fields/RadioGroup/Radio.d.ts +24 -24
  247. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  248. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  249. package/dist/components/fields/RadioGroup/context.js +1 -1
  250. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  251. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  252. package/dist/components/fields/Select/Select.d.ts +4 -4
  253. package/dist/components/fields/Select/Select.js +35 -32
  254. package/dist/components/fields/Select/Select.js.map +1 -1
  255. package/dist/components/fields/Slider/Gradation.js +1 -1
  256. package/dist/components/fields/Slider/HueSlider.js +1 -1
  257. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  258. package/dist/components/fields/Slider/Slider.js +1 -1
  259. package/dist/components/fields/Slider/SliderBase.js +1 -1
  260. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  261. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  262. package/dist/components/fields/Slider/elements.js +1 -1
  263. package/dist/components/fields/Slider/index.js +1 -1
  264. package/dist/components/fields/Switch/Switch.js +1 -1
  265. package/dist/components/fields/TagInput/TagInput.js +1 -1
  266. package/dist/components/fields/TagInput/TagList.js +1 -1
  267. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  268. package/dist/components/fields/TagInput/useTagError.js +1 -1
  269. package/dist/components/fields/TextArea/TextArea.js +1 -1
  270. package/dist/components/fields/TextInput/TextInput.js +1 -1
  271. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  272. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  273. package/dist/components/fields/TextInputMapper/TextInputMapper.js +13 -5
  274. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  275. package/dist/components/fields/TriggerActions.js +1 -1
  276. package/dist/components/fields/color/ColorPanel.js +62 -53
  277. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  278. package/dist/components/fields/color/channels.js +1 -1
  279. package/dist/components/fields/color/color.js +1 -1
  280. package/dist/components/fields/color/context.js +1 -1
  281. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +1 -0
  282. package/dist/components/form/FieldWrapper/FieldWrapper.js +133 -109
  283. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  284. package/dist/components/form/FieldWrapper/field-description.js +102 -0
  285. package/dist/components/form/FieldWrapper/field-description.js.map +1 -0
  286. package/dist/components/form/FieldWrapper/types.d.ts +6 -1
  287. package/dist/components/form/Form/Field.js +1 -1
  288. package/dist/components/form/Form/Form.js +1 -1
  289. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  290. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  291. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  292. package/dist/components/form/Form/SubmitError.js +1 -1
  293. package/dist/components/form/Form/backend.js +1 -1
  294. package/dist/components/form/Form/index.js +1 -1
  295. package/dist/components/form/Form/modern/actions.js +1 -1
  296. package/dist/components/form/Form/modern/context.js +1 -1
  297. package/dist/components/form/Form/modern/controller.js +1 -1
  298. package/dist/components/form/Form/modern/field-binding.js +1 -1
  299. package/dist/components/form/Form/modern/field.js +1 -1
  300. package/dist/components/form/Form/modern/react.js +1 -1
  301. package/dist/components/form/Form/modern/store.js +1 -1
  302. package/dist/components/form/Form/modern/validation.js +1 -1
  303. package/dist/components/form/Form/modern/values.js +1 -1
  304. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  305. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  306. package/dist/components/form/Form/use-field/use-field-props.js +17 -4
  307. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  308. package/dist/components/form/Form/use-field/use-field.js +1 -1
  309. package/dist/components/form/Form/use-form.js +1 -1
  310. package/dist/components/form/Form/validation.js +1 -1
  311. package/dist/components/form/Label.js +27 -24
  312. package/dist/components/form/Label.js.map +1 -1
  313. package/dist/components/form/legacy-tooltip.js +1 -1
  314. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  315. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  316. package/dist/components/form/validation/use-validation-props.js +1 -1
  317. package/dist/components/form/wrapper.js +2 -1
  318. package/dist/components/form/wrapper.js.map +1 -1
  319. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  320. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  321. package/dist/components/layout/Flex.js +1 -1
  322. package/dist/components/layout/Flow.js +1 -1
  323. package/dist/components/layout/Grid.js +1 -1
  324. package/dist/components/layout/Panel.js +1 -1
  325. package/dist/components/layout/Prefix.js +1 -1
  326. package/dist/components/layout/ResizablePanel.js +1 -1
  327. package/dist/components/layout/Space.js +1 -1
  328. package/dist/components/layout/Suffix.js +1 -1
  329. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  330. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  331. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  332. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  333. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  334. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  335. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  336. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  337. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  338. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  339. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  340. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  341. package/dist/components/navigation/Tabs/styled.js +1 -1
  342. package/dist/components/navigation/Tabs/types.d.ts +3 -3
  343. package/dist/components/navigation/Tabs/types.js +1 -1
  344. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  345. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  346. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  347. package/dist/components/other/Calendar/Calendar.js +1 -1
  348. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  349. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  350. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  351. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  352. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  353. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  354. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  355. package/dist/components/other/Calendar/styled.js +1 -1
  356. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  357. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  358. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  359. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  360. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  361. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  362. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  363. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  364. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  365. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  366. package/dist/components/overlays/Dialog/context.js +1 -1
  367. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  368. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  369. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  370. package/dist/components/overlays/Modal/Modal.js +44 -24
  371. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  372. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  373. package/dist/components/overlays/Modal/Overlay.js +1 -1
  374. package/dist/components/overlays/Modal/Popover.js +34 -24
  375. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  376. package/dist/components/overlays/Modal/Tray.js +45 -25
  377. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  378. package/dist/components/overlays/Modal/Underlay.js +1 -1
  379. package/dist/components/overlays/Modal/modal-containment.js +145 -0
  380. package/dist/components/overlays/Modal/modal-containment.js.map +1 -0
  381. package/dist/components/overlays/Notifications/Notification.js +1 -1
  382. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  383. package/dist/components/overlays/Notifications/NotificationCard.js +2 -2
  384. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  385. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  386. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  387. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  388. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  389. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  390. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  391. package/dist/components/overlays/Notifications/index.js +1 -1
  392. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  393. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  394. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  395. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  396. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  397. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  398. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  399. package/dist/components/overlays/Toast/index.js +1 -1
  400. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  401. package/dist/components/overlays/Toast/useToast.js +1 -1
  402. package/dist/components/overlays/Tooltip/Tooltip.js +50 -47
  403. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  404. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  405. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  406. package/dist/components/overlays/Tooltip/context.js +1 -1
  407. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  408. package/dist/components/portal/Portal.js +1 -1
  409. package/dist/components/portal/PortalProvider.js +1 -1
  410. package/dist/components/portal/usePortal.js +1 -1
  411. package/dist/components/shared/DraggableCollection.js +1 -1
  412. package/dist/components/shared/InvalidIcon.js +1 -1
  413. package/dist/components/shared/ValidIcon.js +1 -1
  414. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  415. package/dist/components/status/Spin/Cube.js +1 -1
  416. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  417. package/dist/components/status/Spin/Spin.js +1 -1
  418. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  419. package/dist/data/item-themes.js +1 -1
  420. package/dist/data/themes.js +1 -1
  421. package/dist/eslint-plugin/defaults.generated.js +2 -2
  422. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  423. package/dist/eslint-plugin/index.js +1 -1
  424. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  425. package/dist/i18n/I18nProvider.js +3 -2
  426. package/dist/i18n/I18nProvider.js.map +1 -1
  427. package/dist/i18n/createFormatter.js +1 -1
  428. package/dist/i18n/index.d.ts +2 -1
  429. package/dist/i18n/index.js +3 -2
  430. package/dist/i18n/index.js.map +1 -1
  431. package/dist/i18n/instance.d.ts +2 -3
  432. package/dist/i18n/instance.js +3 -4
  433. package/dist/i18n/instance.js.map +1 -1
  434. package/dist/i18n/locales/de-DE/uikit.js +36 -5
  435. package/dist/i18n/locales/en-US/uikit.js +36 -5
  436. package/dist/i18n/locales/en-US/uikit.json.d.ts +41 -4
  437. package/dist/i18n/locales/es-ES/uikit.js +36 -5
  438. package/dist/i18n/locales/es-MX/uikit.js +36 -5
  439. package/dist/i18n/locales/fr-FR/uikit.js +36 -5
  440. package/dist/i18n/locales/it-IT/uikit.js +36 -5
  441. package/dist/i18n/locales/ja-JP/uikit.js +36 -5
  442. package/dist/i18n/locales/nb-NO/uikit.js +36 -5
  443. package/dist/i18n/locales/pt-BR/uikit.js +36 -5
  444. package/dist/i18n/locales/pt-PT/uikit.js +36 -5
  445. package/dist/i18n/locales/sv-SE/uikit.js +36 -5
  446. package/dist/i18n/locales/vi-VN/uikit.js +36 -5
  447. package/dist/i18n/locales.js +1 -1
  448. package/dist/i18n/namespace.d.ts +11 -0
  449. package/dist/i18n/namespace.js +12 -0
  450. package/dist/i18n/namespace.js.map +1 -0
  451. package/dist/i18n/useFormatter.js +1 -1
  452. package/dist/i18n/useI18n.js +5 -3
  453. package/dist/i18n/useI18n.js.map +1 -1
  454. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  455. package/dist/icons/AdjustmentsIcon.js +1 -1
  456. package/dist/icons/AiIcon.js +1 -1
  457. package/dist/icons/AreaChartIcon.js +1 -1
  458. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  459. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  460. package/dist/icons/BackwardIcon.js +1 -1
  461. package/dist/icons/BarChartIcon.js +1 -1
  462. package/dist/icons/BellFilledIcon.js +1 -1
  463. package/dist/icons/BellIcon.js +1 -1
  464. package/dist/icons/BooleanIcon.js +1 -1
  465. package/dist/icons/CalendarEditIcon.js +1 -1
  466. package/dist/icons/CalendarIcon.js +1 -1
  467. package/dist/icons/CaretDownIcon.js +1 -1
  468. package/dist/icons/CaretUpIcon.js +1 -1
  469. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  470. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  471. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  472. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  473. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  474. package/dist/icons/ChartBarLineIcon.js +1 -1
  475. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  476. package/dist/icons/ChartBarStackedIcon.js +1 -1
  477. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  478. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  479. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  480. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  481. package/dist/icons/ChartBubbleIcon.js +1 -1
  482. package/dist/icons/ChartDonut2Icon.js +1 -1
  483. package/dist/icons/ChartFunnelIcon.js +1 -1
  484. package/dist/icons/ChartHeatmapIcon.js +1 -1
  485. package/dist/icons/ChartKPIIcon.js +1 -1
  486. package/dist/icons/ChartPie2Icon.js +1 -1
  487. package/dist/icons/ChartScatterIcon.js +1 -1
  488. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  489. package/dist/icons/CheckCircleIcon.js +1 -1
  490. package/dist/icons/CheckIcon.js +1 -1
  491. package/dist/icons/CircleFilledIcon.js +1 -1
  492. package/dist/icons/ClearIcon.js +1 -1
  493. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  494. package/dist/icons/CloseCircleIcon.js +1 -1
  495. package/dist/icons/CloseIcon.js +1 -1
  496. package/dist/icons/CodeIcon.js +1 -1
  497. package/dist/icons/ColumnTotalIcon.js +1 -1
  498. package/dist/icons/CopyIcon.js +1 -1
  499. package/dist/icons/CountIcon.js +1 -1
  500. package/dist/icons/CubeIcon.js +1 -1
  501. package/dist/icons/CubePauseIcon.js +1 -1
  502. package/dist/icons/CubePlayIcon.js +1 -1
  503. package/dist/icons/CurrencyDollarIcon.js +1 -1
  504. package/dist/icons/DangerIcon.js +1 -1
  505. package/dist/icons/DashboardIcon.js +1 -1
  506. package/dist/icons/DatabaseIcon.js +1 -1
  507. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  508. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  509. package/dist/icons/DirectionIcon.js +1 -1
  510. package/dist/icons/DonutIcon.js +1 -1
  511. package/dist/icons/DownIcon.js +1 -1
  512. package/dist/icons/EditIcon.js +1 -1
  513. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  514. package/dist/icons/ExclamationCircleIcon.js +1 -1
  515. package/dist/icons/ExclamationIcon.js +1 -1
  516. package/dist/icons/EyeIcon.js +1 -1
  517. package/dist/icons/EyeInvisibleIcon.js +1 -1
  518. package/dist/icons/FilterIcon.js +1 -1
  519. package/dist/icons/FolderFilledIcon.js +1 -1
  520. package/dist/icons/FolderIcon.js +1 -1
  521. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  522. package/dist/icons/FolderOpenIcon.js +1 -1
  523. package/dist/icons/ForwardIcon.js +1 -1
  524. package/dist/icons/GripVerticalIcon.js +1 -1
  525. package/dist/icons/HierarchyIcon.js +1 -1
  526. package/dist/icons/HierarchyOpenIcon.js +1 -1
  527. package/dist/icons/Icon.js +1 -1
  528. package/dist/icons/InfoCircleIcon.js +1 -1
  529. package/dist/icons/InfoIcon.js +1 -1
  530. package/dist/icons/KeyIcon.js +1 -1
  531. package/dist/icons/LeftIcon.js +1 -1
  532. package/dist/icons/LineChartIcon.js +1 -1
  533. package/dist/icons/LoadingIcon.js +1 -1
  534. package/dist/icons/LockFilledIcon.js +1 -1
  535. package/dist/icons/LockIcon.js +1 -1
  536. package/dist/icons/MoreIcon.js +1 -1
  537. package/dist/icons/NotAllowedIcon.js +1 -1
  538. package/dist/icons/Number123Icon.js +1 -1
  539. package/dist/icons/NumberIcon.js +1 -1
  540. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  541. package/dist/icons/PauseCircleIcon.js +1 -1
  542. package/dist/icons/PauseIcon.js +1 -1
  543. package/dist/icons/PercentageIcon.js +1 -1
  544. package/dist/icons/PieChartIcon.js +1 -1
  545. package/dist/icons/PipetteIcon.js +1 -1
  546. package/dist/icons/PlayCircleIcon.js +1 -1
  547. package/dist/icons/PlayIcon.js +1 -1
  548. package/dist/icons/PlusIcon.js +1 -1
  549. package/dist/icons/ProgressBarIcon.js +1 -1
  550. package/dist/icons/ReloadIcon.js +1 -1
  551. package/dist/icons/ReportIcon.js +1 -1
  552. package/dist/icons/ReturnIcon.js +1 -1
  553. package/dist/icons/RightIcon.js +1 -1
  554. package/dist/icons/RowTotalsIcon.js +1 -1
  555. package/dist/icons/SchemeIcon.js +1 -1
  556. package/dist/icons/SearchIcon.js +1 -1
  557. package/dist/icons/SemanticQueryIcon.js +1 -1
  558. package/dist/icons/SettingsIcon.js +1 -1
  559. package/dist/icons/ShieldFilledIcon.js +1 -1
  560. package/dist/icons/ShieldIcon.js +1 -1
  561. package/dist/icons/SlashIcon.js +1 -1
  562. package/dist/icons/SparklesIcon.js +1 -1
  563. package/dist/icons/SqlIcon.js +1 -1
  564. package/dist/icons/StatsIcon.js +1 -1
  565. package/dist/icons/StopIcon.js +1 -1
  566. package/dist/icons/StringIcon.js +1 -1
  567. package/dist/icons/SubtotalsIcon.js +1 -1
  568. package/dist/icons/SwitchIcon.js +1 -1
  569. package/dist/icons/TableIcon.js +1 -1
  570. package/dist/icons/ThumbsDownIcon.js +1 -1
  571. package/dist/icons/ThumbsUpIcon.js +1 -1
  572. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  573. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  574. package/dist/icons/ThunderboltIcon.js +1 -1
  575. package/dist/icons/TimeIcon.js +1 -1
  576. package/dist/icons/TrashIcon.js +1 -1
  577. package/dist/icons/UnlockIcon.js +1 -1
  578. package/dist/icons/UpIcon.js +1 -1
  579. package/dist/icons/UserGroupIcon.js +1 -1
  580. package/dist/icons/UserIcon.js +1 -1
  581. package/dist/icons/UserLockIcon.js +1 -1
  582. package/dist/icons/ViewIcon.js +1 -1
  583. package/dist/icons/WarningFilledIcon.js +1 -1
  584. package/dist/icons/WarningIcon.js +1 -1
  585. package/dist/icons/wrap-icon.js +1 -1
  586. package/dist/index.d.ts +9 -7
  587. package/dist/index.js +7 -6
  588. package/dist/index.js.map +1 -1
  589. package/dist/probe/canonicalize.js +1 -1
  590. package/dist/probe/css.js +1 -1
  591. package/dist/probe/index.js +1 -1
  592. package/dist/provider.js +2 -2
  593. package/dist/provider.js.map +1 -1
  594. package/dist/providers/TrackingProvider.js +1 -1
  595. package/dist/providers/navigation-url.js +11 -0
  596. package/dist/providers/navigation-url.js.map +1 -0
  597. package/dist/providers/navigationAdapter.default.js +1 -1
  598. package/dist/providers/use-navigation.js +19 -0
  599. package/dist/providers/use-navigation.js.map +1 -0
  600. package/dist/tokens/all-tokens.js +1 -1
  601. package/dist/tokens/base.js +1 -1
  602. package/dist/tokens/color-seed.js +1 -1
  603. package/dist/tokens/color-theme.js +1 -1
  604. package/dist/tokens/colors.js +1 -1
  605. package/dist/tokens/layout.js +1 -1
  606. package/dist/tokens/lazy-styles.js +1 -1
  607. package/dist/tokens/legacy-color.js +1 -1
  608. package/dist/tokens/palette-config.js +1 -1
  609. package/dist/tokens/palette.js +1 -1
  610. package/dist/tokens/resolve.js +1 -1
  611. package/dist/tokens/shadows.js +1 -1
  612. package/dist/tokens/sizes.js +1 -1
  613. package/dist/tokens/spacing.js +1 -1
  614. package/dist/tokens/typography.js +1 -1
  615. package/dist/utils/ResizeSensor.js +1 -1
  616. package/dist/utils/colors.js +1 -1
  617. package/dist/utils/dotize.js +1 -1
  618. package/dist/utils/is-dev-env.js +1 -1
  619. package/dist/utils/modules.js +1 -1
  620. package/dist/utils/promise.js +1 -1
  621. package/dist/utils/raf.js +1 -1
  622. package/dist/utils/random.js +1 -1
  623. package/dist/utils/range.js +1 -1
  624. package/dist/utils/react/RenderCache.js +1 -1
  625. package/dist/utils/react/Slots.js +1 -1
  626. package/dist/utils/react/chain.js +1 -1
  627. package/dist/utils/react/disabledProps.js +1 -1
  628. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  629. package/dist/utils/react/index.js +1 -1
  630. package/dist/utils/react/interactions.js +1 -1
  631. package/dist/utils/react/isTextOnly.js +1 -1
  632. package/dist/utils/react/mapProps.js +1 -1
  633. package/dist/utils/react/mergeProps.js +1 -1
  634. package/dist/utils/react/nullableValue.js +1 -1
  635. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  636. package/dist/utils/react/programmaticFocus.js +1 -1
  637. package/dist/utils/react/resolveIcon.js +1 -1
  638. package/dist/utils/react/sharedStore.js +1 -1
  639. package/dist/utils/react/useBufferedValue.js +1 -1
  640. package/dist/utils/react/useCombinedRefs.js +1 -1
  641. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  642. package/dist/utils/react/useEventBus.js +1 -1
  643. package/dist/utils/react/useId.js +1 -1
  644. package/dist/utils/react/useIsDarwin.js +1 -1
  645. package/dist/utils/react/useKeySymbols.js +1 -1
  646. package/dist/utils/react/useLayoutEffect.js +1 -1
  647. package/dist/utils/react/useLocalStorage.js +1 -1
  648. package/dist/utils/react/useMergeStyles.js +1 -1
  649. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  650. package/dist/utils/react/usePopoverSync.js +1 -1
  651. package/dist/utils/react/useQaProps.js +1 -1
  652. package/dist/utils/react/useScheme.js +1 -1
  653. package/dist/utils/react/useViewportSize.js +1 -1
  654. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  655. package/dist/utils/selection.js +1 -1
  656. package/dist/utils/styles.js +1 -1
  657. package/dist/utils/tree.js +1 -1
  658. package/dist/utils/warnings.js +1 -1
  659. package/dist/version.js +2 -2
  660. package/docs/Usage.md +4 -0
  661. package/docs/components/CollectionItem.md +5 -1
  662. package/docs/components/actions/CommandMenu.md +46 -18
  663. package/docs/components/actions/Menu.md +124 -19
  664. package/docs/components/content/Placeholder.md +2 -0
  665. package/docs/components/content/Skeleton.md +2 -0
  666. package/docs/components/data/DataTable.md +3 -0
  667. package/docs/components/data/ItemTable.md +11 -1
  668. package/docs/components/overlays/Dialog.md +1 -1
  669. package/docs/components/overlays/DialogContainer.md +1 -2
  670. package/docs/components/overlays/DialogTrigger.md +1 -0
  671. package/package.json +3 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { TEXT_PROP_MAP } from "./Text.js";
@@ -45,61 +45,78 @@ const TitleElement = tasty({
45
45
  }
46
46
  });
47
47
  const Title = forwardRef(function CubeTitle(t0, ref) {
48
- const $ = c(22);
48
+ const $ = c(30);
49
49
  let as;
50
50
  let ellipsis;
51
- let level;
52
51
  let nowrap;
53
52
  let props;
54
53
  let qa;
55
54
  if ($[0] !== t0) {
56
- ({qa, as, nowrap, ellipsis, level, ...props} = t0);
55
+ ({qa, as, nowrap, ellipsis, ...props} = t0);
57
56
  $[0] = t0;
58
57
  $[1] = as;
59
58
  $[2] = ellipsis;
60
- $[3] = level;
61
- $[4] = nowrap;
62
- $[5] = props;
63
- $[6] = qa;
59
+ $[3] = nowrap;
60
+ $[4] = props;
61
+ $[5] = qa;
64
62
  } else {
65
63
  as = $[1];
66
64
  ellipsis = $[2];
67
- level = $[3];
68
- nowrap = $[4];
69
- props = $[5];
70
- qa = $[6];
65
+ nowrap = $[3];
66
+ props = $[4];
67
+ qa = $[5];
71
68
  }
72
- const propsWithSlots = useSlotProps(props, "title");
73
- const tag = `h${level || 1}`;
74
- let t1;
75
- if ($[7] !== propsWithSlots) {
76
- t1 = extractStyles(propsWithSlots, STYLE_LIST, {}, TEXT_PROP_MAP);
77
- $[7] = propsWithSlots;
78
- $[8] = t1;
79
- } else t1 = $[8];
80
- const styles = t1;
81
- const t2 = qa || "Title";
82
- const t3 = as || tag;
83
- const t4 = level || 1;
69
+ const t1 = useSlotProps(props, "title");
70
+ let T0;
71
+ let styles;
72
+ let t2;
73
+ let t3;
74
+ let t4;
84
75
  let t5;
85
- if ($[9] !== ellipsis || $[10] !== nowrap) {
86
- t5 = {
87
- nowrap,
88
- ellipsis
89
- };
90
- $[9] = ellipsis;
91
- $[10] = nowrap;
92
- $[11] = t5;
93
- } else t5 = $[11];
94
76
  let t6;
95
- if ($[12] !== propsWithSlots) {
77
+ if ($[6] !== as || $[7] !== ellipsis || $[8] !== nowrap || $[9] !== qa || $[10] !== t1) {
78
+ const { level, ...propsWithSlots } = t1;
79
+ const headingLevel = level || 1;
80
+ const tag = `h${headingLevel}`;
81
+ styles = extractStyles(propsWithSlots, STYLE_LIST, {}, TEXT_PROP_MAP);
82
+ T0 = TitleElement;
83
+ t2 = qa || "Title";
84
+ t3 = as || tag;
85
+ t4 = headingLevel;
86
+ if ($[18] !== ellipsis || $[19] !== nowrap) {
87
+ t5 = {
88
+ nowrap,
89
+ ellipsis
90
+ };
91
+ $[18] = ellipsis;
92
+ $[19] = nowrap;
93
+ $[20] = t5;
94
+ } else t5 = $[20];
96
95
  t6 = filterBaseProps(propsWithSlots, { eventProps: true });
97
- $[12] = propsWithSlots;
98
- $[13] = t6;
99
- } else t6 = $[13];
96
+ $[6] = as;
97
+ $[7] = ellipsis;
98
+ $[8] = nowrap;
99
+ $[9] = qa;
100
+ $[10] = t1;
101
+ $[11] = T0;
102
+ $[12] = styles;
103
+ $[13] = t2;
104
+ $[14] = t3;
105
+ $[15] = t4;
106
+ $[16] = t5;
107
+ $[17] = t6;
108
+ } else {
109
+ T0 = $[11];
110
+ styles = $[12];
111
+ t2 = $[13];
112
+ t3 = $[14];
113
+ t4 = $[15];
114
+ t5 = $[16];
115
+ t6 = $[17];
116
+ }
100
117
  let t7;
101
- if ($[14] !== ref || $[15] !== styles || $[16] !== t2 || $[17] !== t3 || $[18] !== t4 || $[19] !== t5 || $[20] !== t6) {
102
- t7 = /* @__PURE__ */ jsx(TitleElement, {
118
+ if ($[21] !== T0 || $[22] !== ref || $[23] !== styles || $[24] !== t2 || $[25] !== t3 || $[26] !== t4 || $[27] !== t5 || $[28] !== t6) {
119
+ t7 = /* @__PURE__ */ jsx(T0, {
103
120
  qa: t2,
104
121
  as: t3,
105
122
  "data-level": t4,
@@ -108,15 +125,16 @@ const Title = forwardRef(function CubeTitle(t0, ref) {
108
125
  ref,
109
126
  styles
110
127
  });
111
- $[14] = ref;
112
- $[15] = styles;
113
- $[16] = t2;
114
- $[17] = t3;
115
- $[18] = t4;
116
- $[19] = t5;
117
- $[20] = t6;
118
- $[21] = t7;
119
- } else t7 = $[21];
128
+ $[21] = T0;
129
+ $[22] = ref;
130
+ $[23] = styles;
131
+ $[24] = t2;
132
+ $[25] = t3;
133
+ $[26] = t4;
134
+ $[27] = t5;
135
+ $[28] = t6;
136
+ $[29] = t7;
137
+ } else t7 = $[29];
120
138
  return t7;
121
139
  });
122
140
  const _Title = Object.assign(Title, {
@@ -1 +1 @@
1
- {"version":3,"file":"Title.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","PositionStyleProps","tasty","TEXT_STYLES","forwardRef","useSlotProps","extractStyles","CubeTextProps","TEXT_PROP_MAP","STYLE_LIST","CubeTitleProps","level","slot","TitleElement","qa","as","styles","gridArea","display","color","preset","margin","whiteSpace","textOverflow","ellipsis","overflow","width","Title","CubeTitle","t0","ref","$","_c","nowrap","props","propsWithSlots","tag","t1","t2","t3","t4","t5","t6","eventProps","t7","_Title","Object","assign","Danger","DangerTitle","Success","SuccessTitle","displayName"],"sources":["../../../src/components/content/Title.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n PositionStyleProps,\n tasty,\n TEXT_STYLES,\n} from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useSlotProps } from '../../utils/react';\nimport { extractStyles } from '../../utils/styles';\n\nimport { CubeTextProps, TEXT_PROP_MAP } from './Text';\n\nconst STYLE_LIST = [...TEXT_STYLES, ...CONTAINER_STYLES];\n\nexport interface CubeTitleProps\n extends BaseProps,\n CubeTextProps,\n ContainerStyleProps,\n PositionStyleProps {\n /** The level of the heading **/\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** The slot to read provided props from. Defaults to `title` */\n slot?: string;\n}\n\nconst TitleElement = tasty({\n qa: 'Title',\n as: 'h1', // it should be dynamic\n styles: {\n gridArea: 'title',\n display: 'block',\n color: '#dark',\n preset: {\n '': 'h6',\n 'level=1': 'h1',\n 'level=2': 'h2',\n 'level=3': 'h3',\n 'level=4': 'h4',\n 'level=5': 'h5',\n 'level=6': 'h6',\n },\n margin: '0',\n whiteSpace: {\n '': 'inherit',\n 'nowrap | ellipsis': 'nowrap',\n },\n textOverflow: {\n '': false,\n ellipsis: 'ellipsis',\n },\n overflow: {\n '': false,\n ellipsis: 'hidden',\n },\n width: {\n '': false,\n ellipsis: 'max 100%',\n },\n },\n});\n\nconst Title = forwardRef(function CubeTitle(\n { qa, as, nowrap, ellipsis, level, ...props }: CubeTitleProps,\n ref,\n) {\n const propsWithSlots = useSlotProps(props, 'title');\n\n const tag: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' = `h${level || 1}`;\n const styles = extractStyles(propsWithSlots, STYLE_LIST, {}, TEXT_PROP_MAP);\n\n return (\n <TitleElement\n qa={qa || 'Title'}\n as={as || tag}\n data-level={level || 1}\n mods={{\n nowrap,\n ellipsis,\n }}\n {...filterBaseProps(propsWithSlots, { eventProps: true })}\n ref={ref}\n styles={styles}\n />\n );\n});\n\nconst _Title = Object.assign(Title, {\n Danger: forwardRef(function DangerTitle(props: CubeTitleProps, ref) {\n return <Title ref={ref} color=\"#danger-text\" {...props} />;\n }),\n Success: forwardRef(function SuccessTitle(props: CubeTitleProps, ref) {\n return <Title ref={ref} color=\"#success-text\" {...props} />;\n }),\n});\n\n_Title.displayName = 'Title';\n\nexport { _Title as Title };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Title.js","names":["BaseProps","CONTAINER_STYLES","ContainerStyleProps","filterBaseProps","PositionStyleProps","tasty","TEXT_STYLES","forwardRef","useSlotProps","extractStyles","CubeTextProps","TEXT_PROP_MAP","STYLE_LIST","CubeTitleProps","level","slot","TitleElement","qa","as","styles","gridArea","display","color","preset","margin","whiteSpace","textOverflow","ellipsis","overflow","width","Title","CubeTitle","t0","ref","$","_c","nowrap","props","t1","T0","t2","t3","t4","t5","t6","propsWithSlots","headingLevel","tag","const","eventProps","t7","_Title","Object","assign","Danger","DangerTitle","Success","SuccessTitle","displayName"],"sources":["../../../src/components/content/Title.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n filterBaseProps,\n PositionStyleProps,\n tasty,\n TEXT_STYLES,\n} from '@tenphi/tasty';\nimport { forwardRef } from 'react';\n\nimport { useSlotProps } from '../../utils/react';\nimport { extractStyles } from '../../utils/styles';\n\nimport { CubeTextProps, TEXT_PROP_MAP } from './Text';\n\nconst STYLE_LIST = [...TEXT_STYLES, ...CONTAINER_STYLES];\n\nexport interface CubeTitleProps\n extends BaseProps,\n CubeTextProps,\n ContainerStyleProps,\n PositionStyleProps {\n /** The level of the heading **/\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /** The slot to read provided props from. Defaults to `title` */\n slot?: string;\n}\n\nconst TitleElement = tasty({\n qa: 'Title',\n as: 'h1', // it should be dynamic\n styles: {\n gridArea: 'title',\n display: 'block',\n color: '#dark',\n preset: {\n '': 'h6',\n 'level=1': 'h1',\n 'level=2': 'h2',\n 'level=3': 'h3',\n 'level=4': 'h4',\n 'level=5': 'h5',\n 'level=6': 'h6',\n },\n margin: '0',\n whiteSpace: {\n '': 'inherit',\n 'nowrap | ellipsis': 'nowrap',\n },\n textOverflow: {\n '': false,\n ellipsis: 'ellipsis',\n },\n overflow: {\n '': false,\n ellipsis: 'hidden',\n },\n width: {\n '': false,\n ellipsis: 'max 100%',\n },\n },\n});\n\nconst Title = forwardRef(function CubeTitle(\n { qa, as, nowrap, ellipsis, ...props }: CubeTitleProps,\n ref,\n) {\n // `level` is read after the slot merge: `Dialog` makes its title an `h2`\n // through the slot, and a level taken from the bare props never sees that.\n const { level, ...propsWithSlots } = useSlotProps(props, 'title');\n\n const headingLevel: NonNullable<CubeTitleProps['level']> = level || 1;\n const tag = `h${headingLevel}` as const;\n const styles = extractStyles(propsWithSlots, STYLE_LIST, {}, TEXT_PROP_MAP);\n\n return (\n <TitleElement\n qa={qa || 'Title'}\n as={as || tag}\n data-level={headingLevel}\n mods={{\n nowrap,\n ellipsis,\n }}\n {...filterBaseProps(propsWithSlots, { eventProps: true })}\n ref={ref}\n styles={styles}\n />\n );\n});\n\nconst _Title = Object.assign(Title, {\n Danger: forwardRef(function DangerTitle(props: CubeTitleProps, ref) {\n return <Title ref={ref} color=\"#danger-text\" {...props} />;\n }),\n Success: forwardRef(function SuccessTitle(props: CubeTitleProps, ref) {\n return <Title ref={ref} color=\"#success-text\" {...props} />;\n }),\n});\n\n_Title.displayName = 'Title';\n\nexport { _Title as Title };\n"],"mappings":";;;;;;;;;;AAgBA,MAAMY,aAAa,CAAC,GAAGN,aAAa,GAAGL,iBAAiB;AAaxD,MAAMe,eAAeX,MAAM;CACzBY,IAAI;CACJC,IAAI;CACJC,QAAQ;EACNC,UAAU;EACVC,SAAS;EACTC,OAAO;EACPC,QAAQ;GACN,IAAI;GACJ,WAAW;GACX,WAAW;GACX,WAAW;GACX,WAAW;GACX,WAAW;GACX,WAAW;GACZ;EACDC,QAAQ;EACRC,YAAY;GACV,IAAI;GACJ,qBAAqB;GACtB;EACDC,cAAc;GACZ,IAAI;GACJC,UAAU;GACX;EACDC,UAAU;GACR,IAAI;GACJD,UAAU;GACX;EACDE,OAAO;GACL,IAAI;GACJF,UAAU;GACZ;EACF;CACD,CAAC;AAEF,MAAMG,QAAQvB,WAAW,SAAAwB,UAAAC,IAAAC,KAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAA,IAAAjB;CAAA,IAAAS;CAAA,IAAAS;CAAA,IAAAC;CAAA,IAAApB;AAAA,KAAAiB,EAAA,OAAAF,IAAA;AACvB,GAAA,CAAAf,IAAAC,IAAAkB,QAAAT,aAAAU,SAAAL;AAAsDE,IAAA,KAAAF;AAAAE,IAAA,KAAAhB;AAAAgB,IAAA,KAAAP;AAAAO,IAAA,KAAAE;AAAAF,IAAA,KAAAG;AAAAH,IAAA,KAAAjB;QAAA;AAAAC,OAAAgB,EAAA;AAAAP,aAAAO,EAAA;AAAAE,WAAAF,EAAA;AAAAG,UAAAH,EAAA;AAAAjB,OAAAiB,EAAA;;CAKjB,MAAAI,KAAA9B,aAAa6B,OAAO,QAAQ;CAAA,IAAAE;CAAA,IAAApB;CAAA,IAAAqB;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;CAAA,IAAAC;AAAA,KAAAV,EAAA,OAAAhB,MAAAgB,EAAA,OAAAP,YAAAO,EAAA,OAAAE,UAAAF,EAAA,OAAAjB,MAAAiB,EAAA,QAAAI,IAAA;EAAjE,MAAA,EAAAxB,OAAA,GAAA+B,mBAAqCP;EAErC,MAAAQ,eAA2DhC,SAAA;EAC3D,MAAAiC,MAAY,IAAID;AAChB3B,WAAeV,cAAcoC,gBAAgBjC,YAAY,EAAE,EAAED,cAAc;AAGxE4B,OAAAvB;AACKwB,OAAAvB,MAAA;AACAwB,OAAAvB,MAAA6B;AACQD,OAAAA;AAAY,MAAAZ,EAAA,QAAAP,YAAAO,EAAA,QAAAE,QAAA;AAClBO,QAAA;IAAAP;IAAAT;IAGL;AAAAO,KAAA,MAAAP;AAAAO,KAAA,MAAAE;AAAAF,KAAA,MAAAS;QAAAA,MAAAT,EAAA;AACGU,OAAAzC,gBAAgB0C,gBAAgB,EAAAI,YAAc,MAAM,CAAC;AAAAf,IAAA,KAAAhB;AAAAgB,IAAA,KAAAP;AAAAO,IAAA,KAAAE;AAAAF,IAAA,KAAAjB;AAAAiB,IAAA,MAAAI;AAAAJ,IAAA,MAAAK;AAAAL,IAAA,MAAAf;AAAAe,IAAA,MAAAM;AAAAN,IAAA,MAAAO;AAAAP,IAAA,MAAAQ;AAAAR,IAAA,MAAAS;AAAAT,IAAA,MAAAU;QAAA;AAAAL,OAAAL,EAAA;AAAAf,WAAAe,EAAA;AAAAM,OAAAN,EAAA;AAAAO,OAAAP,EAAA;AAAAQ,OAAAR,EAAA;AAAAS,OAAAT,EAAA;AAAAU,OAAAV,EAAA;;CAAA,IAAAgB;AAAA,KAAAhB,EAAA,QAAAK,MAAAL,EAAA,QAAAD,OAAAC,EAAA,QAAAf,UAAAe,EAAA,QAAAM,MAAAN,EAAA,QAAAO,MAAAP,EAAA,QAAAQ,MAAAR,EAAA,QAAAS,MAAAT,EAAA,QAAAU,IAAA;AAR3DM,OAAA,oBAAC;GACK,IAAAV;GACA,IAAAC;GACQK,cAAAA;GACN,MAAAH;GAGL,GACGC;GACCX;GACGd;IACR;AAAAe,IAAA,MAAAK;AAAAL,IAAA,MAAAD;AAAAC,IAAA,MAAAf;AAAAe,IAAA,MAAAM;AAAAN,IAAA,MAAAO;AAAAP,IAAA,MAAAQ;AAAAR,IAAA,MAAAS;AAAAT,IAAA,MAAAU;AAAAV,IAAA,MAAAgB;OAAAA,MAAAhB,EAAA;AAAA,QAXFgB;EAaF;AAEF,MAAMC,SAASC,OAAOC,OAAOvB,OAAO;CAClCwB,QAAQ/C,WAAW,SAAAgD,YAAAlB,OAAAJ,KAAA;EAAA,MAAAC,IAAAC,EAAA,EAAA;EAAA,IAAAH;AAAA,MAAAE,EAAA,OAAAG,SAAAH,EAAA,OAAAD,KAAA;AACVD,QAAA,oBAAC;IAAWC;IAAW,OAAA;IAAc,GAAKI;KAAS;AAAAH,KAAA,KAAAG;AAAAH,KAAA,KAAAD;AAAAC,KAAA,KAAAF;QAAAA,MAAAE,EAAA;AAAA,SAAnDF;GACP;CACFwB,SAASjD,WAAW,SAAAkD,aAAApB,OAAAJ,KAAA;EAAA,MAAAC,IAAAC,EAAA,EAAA;EAAA,IAAAH;AAAA,MAAAE,EAAA,OAAAG,SAAAH,EAAA,OAAAD,KAAA;AACXD,QAAA,oBAAC;IAAWC;IAAW,OAAA;IAAe,GAAKI;KAAS;AAAAH,KAAA,KAAAG;AAAAH,KAAA,KAAAD;AAAAC,KAAA,KAAAF;QAAAA,MAAAE,EAAA;AAAA,SAApDF;GACR;CACF,CAAC;AAEFmB,OAAOO,cAAc"}
@@ -1,7 +1,8 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
5
+ import { useI18n } from "../../../i18n/useI18n.js";
5
6
  import { SIZES, SIZE_NAME_TO_KEY } from "../../../tokens/sizes.js";
6
7
  import { TreeElement, TreeScrollContainer } from "./styled.js";
7
8
  import { buildTreeIndex } from "./tree-index.js";
@@ -164,6 +165,8 @@ function TreeBase(props, ref) {
164
165
  onSelect(arr, info_0);
165
166
  });
166
167
  const hasOnSelect = onSelect != null;
168
+ const { t } = useI18n();
169
+ const treeLabel = ariaLabel ?? t("tree.ariaLabel", "Tree");
167
170
  const ariaProps = useMemo(() => ({
168
171
  selectionMode,
169
172
  selectedKeys,
@@ -176,7 +179,7 @@ function TreeBase(props, ref) {
176
179
  disabledBehavior: "all",
177
180
  items: treeData,
178
181
  children: renderItem,
179
- "aria-label": ariaLabel ?? "Tree"
182
+ "aria-label": treeLabel
180
183
  }), [
181
184
  selectionMode,
182
185
  selectedKeys,
@@ -188,7 +191,7 @@ function TreeBase(props, ref) {
188
191
  handleExpandedChange,
189
192
  disabledKeys,
190
193
  treeData,
191
- ariaLabel
194
+ treeLabel
192
195
  ]);
193
196
  const baseState = useTreeState(ariaProps);
194
197
  const state = useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.js","names":["useVirtualizer","OUTER_STYLES","forwardRef","useLayoutEffect","useMemo","useRef","useTree","Item","useTreeState","useEvent","SIZE_NAME_TO_KEY","SIZES","mergeRefs","extractStyles","TreeElement","TreeScrollContainer","buildTreeIndex","TreeNode","useCheckboxTree","useLoadData","Key","Node","Selection","CSSProperties","ForwardedRef","ReactElement","ReactNode","CubeTreeNodeData","CubeTreeProps","TreeOnExpandInfo","TreeOnSelectInfo","TreeSelectionMode","renderItem","node","textValue","title","String","key","children","collectDisabledKeys","treeData","treeIsDisabled","keys","visit","nodes","isDisabled","push","expandWithParents","parentOf","Map","length","set","Set","parent","get","add","Array","from","findToggledKey","previous","next","added","k","has","resolveSelectionMode","selectionMode","isSelectable","TreeBase","props","ref","HTMLDivElement","isCheckable","selectionModeProp","size","shape","containerPadding","defaultExpandedKeys","expandedKeys","autoExpandParent","defaultCheckedKeys","checkedKeys","defaultSelectedKeys","selectedKeys","height","loadData","onExpand","onCheck","onSelect","itemProps","rowStyles","ariaLabel","qa","menu","treeMenu","contextMenu","treeContextMenu","onAction","treeOnAction","menuTriggerProps","menuProps","otherProps","baseStyles","treeRef","scrollRef","treeIndex","nodesByKey","byKey","disabledKeys","effectiveExpandedKeys","effectiveDefaultExpandedKeys","checkbox","index","loadDataController","initialExpandedKeys","previousExpandedRef","handleExpandedChange","nextSet","onExpandedChanged","undefined","current","toggled","info","expanded","previousSelectionRef","handleSelectionChange","selection","arr","state","collection","getKeys","getItem","type","selectedNodes","map","filter","n","selected","hasOnSelect","ariaProps","onSelectionChange","onExpandedChange","disabledBehavior","const","items","baseState","getChildren","patched","Object","create","Iterable","childNodes","gridProps","visibleNodes","out","visibleNodesRef","rowVirtualizer","count","getScrollElement","getItemKey","estimateSize","gap","overscan","paddingStart","paddingEnd","treeStyle","sizerStyle","position","width","getTotalSize","lastFocusedScrollRef","lastSelectedScrollRef","focusedKey","selectionManager","findIndex","scrollToIndex","align","target","mods","mergedScrollRef","getVirtualItems","virtualItem","keyStr","data","checkedSet","halfCheckedSet","loadingKeys","top","left","right","transform","start","measureElement","toggle","_Tree","displayName","Tree"],"sources":["../../../../src/components/content/Tree/Tree.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { OUTER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useLayoutEffect, useMemo, useRef } from 'react';\nimport { useTree } from 'react-aria';\nimport { Item, useTreeState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { SIZE_NAME_TO_KEY, SIZES } from '../../../tokens/sizes';\nimport { mergeRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { TreeElement, TreeScrollContainer } from './styled';\nimport { buildTreeIndex } from './tree-index';\nimport { TreeNode } from './TreeNode';\nimport { useCheckboxTree } from './use-checkbox-tree';\nimport { useLoadData } from './use-load-data';\n\nimport type { Key, Node, Selection } from '@react-types/shared';\nimport type {\n CSSProperties,\n ForwardedRef,\n ReactElement,\n ReactNode,\n} from 'react';\nimport type {\n CubeTreeNodeData,\n CubeTreeProps,\n TreeOnExpandInfo,\n TreeOnSelectInfo,\n TreeSelectionMode,\n} from './types';\n\n/**\n * Render an `<Item>` for React Stately's collection builder.\n *\n * The visible content is rendered by `TreeNode` via `nodesByKey`,\n * so `<Item>`'s body is only used by Stately for the collection\n * (`textValue` for keyboard nav, `childItems` for nested traversal).\n */\nfunction renderItem(node: CubeTreeNodeData): ReactElement {\n const textValue =\n typeof node.title === 'string' ? node.title : String(node.key);\n return (\n <Item\n key={node.key}\n textValue={textValue}\n childItems={node.children as CubeTreeNodeData[] | undefined}\n >\n {node.title as ReactNode}\n </Item>\n );\n}\n\nfunction collectDisabledKeys(\n treeData: CubeTreeNodeData[],\n treeIsDisabled: boolean,\n): string[] {\n const keys: string[] = [];\n const visit = (nodes: CubeTreeNodeData[]) => {\n for (const node of nodes) {\n if (treeIsDisabled || node.isDisabled) keys.push(node.key);\n if (node.children) visit(node.children);\n }\n };\n visit(treeData);\n return keys;\n}\n\n/** Expand the supplied keys with all of their ancestor keys. */\nfunction expandWithParents(\n keys: string[] | undefined,\n parentOf: Map<string, string | null>,\n): string[] | undefined {\n if (!keys || keys.length === 0) return keys;\n const set = new Set<string>(keys);\n for (const key of keys) {\n let parent = parentOf.get(key);\n while (parent) {\n set.add(parent);\n parent = parentOf.get(parent);\n }\n }\n return Array.from(set);\n}\n\n/**\n * Diff two key sets to find the single key that was added or removed.\n * Returns `null` when both sets are equal.\n */\nfunction findToggledKey(\n previous: Set<Key>,\n next: Set<Key>,\n): { key: Key; added: boolean } | null {\n for (const k of next) {\n if (!previous.has(k)) return { key: k, added: true };\n }\n for (const k of previous) {\n if (!next.has(k)) return { key: k, added: false };\n }\n return null;\n}\n\nfunction resolveSelectionMode(\n selectionMode: TreeSelectionMode | undefined,\n isSelectable: boolean | undefined,\n): TreeSelectionMode {\n if (selectionMode != null) return selectionMode;\n if (isSelectable === false) return 'none';\n return 'single';\n}\n\nfunction TreeBase(props: CubeTreeProps, ref: ForwardedRef<HTMLDivElement>) {\n const {\n treeData,\n isCheckable = false,\n isSelectable,\n selectionMode: selectionModeProp,\n size = 'medium',\n shape = 'default',\n containerPadding = 4,\n isDisabled = false,\n defaultExpandedKeys,\n expandedKeys,\n autoExpandParent = false,\n defaultCheckedKeys,\n checkedKeys,\n defaultSelectedKeys,\n selectedKeys,\n height,\n loadData,\n onExpand,\n onCheck,\n onSelect,\n itemProps,\n rowStyles,\n ariaLabel,\n qa,\n menu: treeMenu,\n contextMenu: treeContextMenu,\n onAction: treeOnAction,\n menuTriggerProps,\n menuProps,\n ...otherProps\n } = props;\n\n const baseStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const treeRef = useRef<HTMLDivElement>(null);\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const treeIndex = useMemo(() => buildTreeIndex(treeData), [treeData]);\n const nodesByKey = treeIndex.byKey;\n const parentOf = treeIndex.parentOf;\n\n const disabledKeys = useMemo(\n () => collectDisabledKeys(treeData, isDisabled),\n [treeData, isDisabled],\n );\n\n const selectionMode = resolveSelectionMode(selectionModeProp, isSelectable);\n\n const effectiveExpandedKeys = useMemo(\n () =>\n autoExpandParent\n ? expandWithParents(expandedKeys, parentOf)\n : expandedKeys,\n [autoExpandParent, expandedKeys, parentOf],\n );\n\n const effectiveDefaultExpandedKeys = useMemo(\n () =>\n autoExpandParent\n ? expandWithParents(defaultExpandedKeys, parentOf)\n : defaultExpandedKeys,\n [autoExpandParent, defaultExpandedKeys, parentOf],\n );\n\n const checkbox = useCheckboxTree({\n treeData,\n index: treeIndex,\n isCheckable,\n defaultCheckedKeys,\n checkedKeys,\n onCheck,\n });\n\n const loadDataController = useLoadData({\n nodesByKey,\n loadData,\n initialExpandedKeys: effectiveExpandedKeys ?? effectiveDefaultExpandedKeys,\n });\n\n /**\n * In controlled mode, `previous` is read from `effectiveExpandedKeys`;\n * in uncontrolled mode this ref is the only source. Initialized from\n * the *effective* (ancestor-expanded) keys so the first toggle diffs\n * correctly.\n */\n const previousExpandedRef = useRef<Set<Key>>(\n new Set<Key>(effectiveExpandedKeys ?? effectiveDefaultExpandedKeys ?? []),\n );\n\n const handleExpandedChange = useEvent((nextSet: Set<Key>) => {\n loadDataController.onExpandedChanged(nextSet);\n\n const previous =\n expandedKeys !== undefined\n ? new Set<Key>(effectiveExpandedKeys ?? [])\n : previousExpandedRef.current;\n previousExpandedRef.current = new Set<Key>(nextSet);\n\n if (!onExpand) return;\n\n const toggled = findToggledKey(previous, nextSet);\n if (!toggled) return;\n\n const node = nodesByKey.get(String(toggled.key));\n if (!node) return;\n\n const info: TreeOnExpandInfo = {\n expanded: toggled.added,\n node,\n };\n onExpand(Array.from(nextSet), info);\n });\n\n /**\n * Same pattern as `previousExpandedRef`: in controlled mode we read\n * from `selectedKeys`; in uncontrolled mode this ref tracks state.\n */\n const previousSelectionRef = useRef<Set<Key>>(\n new Set<Key>(selectedKeys ?? defaultSelectedKeys ?? []),\n );\n\n /**\n * `useEvent` captures the closure lazily, so `state` (declared below\n * `ariaProps` / `useTreeState`) is safely accessible at call time.\n */\n const handleSelectionChange = useEvent((selection: Selection) => {\n if (!onSelect) return;\n let arr: Key[];\n if (selection === 'all') {\n // `nodesByKey` contains the full tree; use the collection's visible\n // keys so we don't leak keys under collapsed parents.\n arr = [];\n for (const key of state.collection.getKeys()) {\n const node = state.collection.getItem(key);\n if (node && node.type === 'item') arr.push(key);\n }\n } else {\n arr = Array.from(selection);\n }\n\n const nextSet = new Set<Key>(arr);\n const previous =\n selectedKeys !== undefined\n ? new Set<Key>(selectedKeys ?? [])\n : previousSelectionRef.current;\n previousSelectionRef.current = nextSet;\n\n const toggled = findToggledKey(previous, nextSet);\n if (!toggled) return;\n\n const node = nodesByKey.get(String(toggled.key));\n if (!node) return;\n\n const selectedNodes = arr\n .map((k) => nodesByKey.get(String(k)))\n .filter((n): n is CubeTreeNodeData => !!n);\n\n const info: TreeOnSelectInfo = {\n selected: toggled.added,\n node,\n selectedNodes,\n };\n\n onSelect(arr, info);\n });\n\n const hasOnSelect = onSelect != null;\n\n const ariaProps = useMemo(\n () => ({\n selectionMode,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange:\n hasOnSelect && selectionMode !== 'none'\n ? handleSelectionChange\n : undefined,\n expandedKeys: effectiveExpandedKeys,\n defaultExpandedKeys: effectiveDefaultExpandedKeys,\n onExpandedChange: handleExpandedChange,\n disabledKeys,\n disabledBehavior: 'all' as const,\n items: treeData,\n children: renderItem as any,\n 'aria-label': ariaLabel ?? 'Tree',\n }),\n [\n selectionMode,\n selectedKeys,\n defaultSelectedKeys,\n hasOnSelect,\n handleSelectionChange,\n effectiveExpandedKeys,\n effectiveDefaultExpandedKeys,\n handleExpandedChange,\n disabledKeys,\n treeData,\n ariaLabel,\n ],\n );\n\n const baseState = useTreeState<CubeTreeNodeData>(ariaProps);\n\n // The legacy `TreeCollection` from `useTreeState` lacks `getChildren`,\n // but `useTree` calls it for nested rows. Derive a patched state.\n // TODO: Remove this patch when upgrading to a react-stately version\n // that ships `getChildren` on TreeCollection natively.\n const state = useMemo(() => {\n const collection = baseState.collection;\n if (typeof (collection as any).getChildren === 'function') {\n return baseState;\n }\n const patched = Object.create(collection);\n patched.getChildren = (key: Key): Iterable<Node<CubeTreeNodeData>> => {\n const node = collection.getItem(key);\n return node ? Array.from(node.childNodes) : [];\n };\n return { ...baseState, collection: patched };\n }, [baseState]);\n\n const { gridProps } = useTree(ariaProps, state, treeRef);\n\n const visibleNodes: Node<CubeTreeNodeData>[] = useMemo(() => {\n const out: Node<CubeTreeNodeData>[] = [];\n for (const key of state.collection.getKeys()) {\n const node = state.collection.getItem(key);\n if (node && node.type === 'item') out.push(node);\n }\n return out;\n }, [state.collection]);\n\n const visibleNodesRef = useRef(visibleNodes);\n visibleNodesRef.current = visibleNodes;\n\n // ----- Virtualization -----\n const rowVirtualizer = useVirtualizer({\n count: visibleNodes.length,\n getScrollElement: () => scrollRef.current,\n getItemKey: (index: number) => {\n const node = visibleNodesRef.current[index];\n return node?.key ?? index;\n },\n estimateSize: () => SIZES[SIZE_NAME_TO_KEY[size]],\n gap: 1,\n overscan: 10,\n paddingStart: containerPadding,\n paddingEnd: containerPadding,\n });\n\n const treeStyle = useMemo<CSSProperties | undefined>(() => {\n if (height == null) return undefined;\n return { ['--tree-height' as keyof CSSProperties]: `${height}px` };\n }, [height]);\n\n const sizerStyle = useMemo<CSSProperties>(\n () => ({\n position: 'relative',\n width: '100%',\n height: `${rowVirtualizer.getTotalSize()}px`,\n }),\n [rowVirtualizer.getTotalSize()],\n );\n\n /**\n * Each scroll effect tracks its own \"last scrolled\" target instead\n * of sharing one ref. A shared ref creates a feedback loop: keyboard\n * nav updates the focused-key ref to the new row, and any subsequent\n * `visibleNodes` change OR `selectedKeys` array-identity change\n * (very common — `selectedKeys={[value]}` allocates a fresh array\n * every parent render) re-runs the selectedKeys effect, which sees\n * the ref no longer matches `selectedKeys[0]` and yanks the viewport\n * back to the selected row. Two refs let each effect dedupe against\n * its own intent only; the cost is at most one duplicate\n * `scrollToIndex` call when click updates focus and selection in the\n * same render (idempotent — both target the same index).\n */\n const lastFocusedScrollRef = useRef<Key | null>(null);\n const lastSelectedScrollRef = useRef<string | null>(null);\n\n /**\n * Keep the focused row visible during keyboard navigation.\n *\n * Uses `rowVirtualizer.scrollToIndex` (instead of\n * `querySelector + scrollIntoView`) so the scroll lands even when the\n * target row is outside the virtualizer's currently rendered window.\n * `align: 'auto'` only scrolls when needed, matching the prior\n * `scrollIntoView({ block: 'nearest' })` behavior.\n */\n useLayoutEffect(() => {\n const focusedKey = state.selectionManager.focusedKey;\n if (focusedKey == null) return;\n if (lastFocusedScrollRef.current === focusedKey) return;\n\n const index = visibleNodesRef.current.findIndex(\n (n) => n.key === focusedKey,\n );\n if (index < 0) return;\n\n rowVirtualizer.scrollToIndex(index, { align: 'auto' });\n lastFocusedScrollRef.current = focusedKey;\n }, [state.selectionManager.focusedKey, rowVirtualizer]);\n\n /**\n * Scroll into view when controlled `selectedKeys` changes externally.\n *\n * Selection-manager `focusedKey` only updates on explicit user\n * interaction (click / keyboard) — it does NOT track controlled\n * `selectedKeys` prop changes. So when a parent updates the prop\n * (e.g. opening a file from elsewhere), we need a separate effect\n * to bring the row into view.\n *\n * Re-runs on `visibleNodes` so we retry once parents are expanded\n * (the row is invisible to the virtualizer until then).\n */\n useLayoutEffect(() => {\n if (selectedKeys == null) return;\n const target = selectedKeys[0];\n if (target == null) return;\n if (lastSelectedScrollRef.current === target) return;\n\n const index = visibleNodes.findIndex((n) => String(n.key) === target);\n if (index < 0) return;\n\n rowVirtualizer.scrollToIndex(index, { align: 'auto' });\n lastSelectedScrollRef.current = target;\n }, [selectedKeys, visibleNodes, rowVirtualizer]);\n\n const mods = useMemo(\n () => ({\n 'has-height': height != null,\n shape,\n }),\n [height, shape],\n );\n\n // The forwarded ref points at the inner scroll container so\n // consumers can drive `scrollTop` directly. `treeRef` (used by\n // `useTree` for keyboard handling and as the role=\"treegrid\"\n // anchor) stays internal on `TreeElement`.\n const mergedScrollRef = useMemo(\n () => mergeRefs(ref, scrollRef),\n [ref, scrollRef],\n );\n\n return (\n <TreeElement\n {...gridProps}\n ref={treeRef}\n qa={qa ?? 'Tree'}\n mods={mods}\n styles={baseStyles}\n style={treeStyle}\n >\n <TreeScrollContainer ref={mergedScrollRef}>\n <div role=\"presentation\" style={sizerStyle}>\n {rowVirtualizer.getVirtualItems().map((virtualItem) => {\n const node = visibleNodes[virtualItem.index];\n if (!node) return null;\n const keyStr = String(node.key);\n const data = nodesByKey.get(keyStr);\n if (!data) return null;\n return (\n <TreeNode\n key={node.key}\n node={node}\n data={data}\n state={state}\n isCheckable={isCheckable}\n isExpanded={state.expandedKeys.has(node.key)}\n isChecked={checkbox.checkedSet.has(keyStr)}\n isIndeterminate={checkbox.halfCheckedSet.has(keyStr)}\n isLoading={loadDataController.loadingKeys.has(keyStr)}\n size={size}\n itemProps={itemProps}\n rowStyles={rowStyles}\n virtualStyle={{\n position: 'absolute',\n top: 0,\n left: containerPadding,\n right: containerPadding,\n transform: `translateY(${virtualItem.start}px)`,\n }}\n virtualRef={rowVirtualizer.measureElement}\n virtualIndex={virtualItem.index}\n menu={treeMenu}\n contextMenu={treeContextMenu}\n menuTriggerProps={menuTriggerProps}\n menuProps={menuProps}\n onToggleChecked={checkbox.toggle}\n onAction={treeOnAction}\n />\n );\n })}\n </div>\n </TreeScrollContainer>\n </TreeElement>\n );\n}\n\nconst _Tree = forwardRef(TreeBase);\n_Tree.displayName = 'Tree';\n\n/**\n * Hierarchical data display with optional checkboxes, single/multi\n * selection, async lazy loading, and keyboard navigation.\n *\n * Built on `useTree` / `useTreeState` (React Aria + React Stately) and\n * styled with Tasty.\n *\n * @example\n * ```tsx\n * <Tree\n * treeData={data}\n * isCheckable\n * selectionMode=\"none\"\n * defaultExpandedKeys={['root']}\n * onCheck={(keys) => console.log(keys)}\n * />\n * ```\n */\nexport const Tree = _Tree;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Tree.js","names":["useVirtualizer","OUTER_STYLES","forwardRef","useLayoutEffect","useMemo","useRef","useTree","Item","useTreeState","useEvent","useI18n","SIZE_NAME_TO_KEY","SIZES","mergeRefs","extractStyles","TreeElement","TreeScrollContainer","buildTreeIndex","TreeNode","useCheckboxTree","useLoadData","Key","Node","Selection","CSSProperties","ForwardedRef","ReactElement","ReactNode","CubeTreeNodeData","CubeTreeProps","TreeOnExpandInfo","TreeOnSelectInfo","TreeSelectionMode","renderItem","node","textValue","title","String","key","children","collectDisabledKeys","treeData","treeIsDisabled","keys","visit","nodes","isDisabled","push","expandWithParents","parentOf","Map","length","set","Set","parent","get","add","Array","from","findToggledKey","previous","next","added","k","has","resolveSelectionMode","selectionMode","isSelectable","TreeBase","props","ref","HTMLDivElement","isCheckable","selectionModeProp","size","shape","containerPadding","defaultExpandedKeys","expandedKeys","autoExpandParent","defaultCheckedKeys","checkedKeys","defaultSelectedKeys","selectedKeys","height","loadData","onExpand","onCheck","onSelect","itemProps","rowStyles","ariaLabel","qa","menu","treeMenu","contextMenu","treeContextMenu","onAction","treeOnAction","menuTriggerProps","menuProps","otherProps","baseStyles","treeRef","scrollRef","treeIndex","nodesByKey","byKey","disabledKeys","effectiveExpandedKeys","effectiveDefaultExpandedKeys","checkbox","index","loadDataController","initialExpandedKeys","previousExpandedRef","handleExpandedChange","nextSet","onExpandedChanged","undefined","current","toggled","info","expanded","previousSelectionRef","handleSelectionChange","selection","arr","state","collection","getKeys","getItem","type","selectedNodes","map","filter","n","selected","hasOnSelect","t","treeLabel","ariaProps","onSelectionChange","onExpandedChange","disabledBehavior","const","items","baseState","getChildren","patched","Object","create","Iterable","childNodes","gridProps","visibleNodes","out","visibleNodesRef","rowVirtualizer","count","getScrollElement","getItemKey","estimateSize","gap","overscan","paddingStart","paddingEnd","treeStyle","sizerStyle","position","width","getTotalSize","lastFocusedScrollRef","lastSelectedScrollRef","focusedKey","selectionManager","findIndex","scrollToIndex","align","target","mods","mergedScrollRef","getVirtualItems","virtualItem","keyStr","data","checkedSet","halfCheckedSet","loadingKeys","top","left","right","transform","start","measureElement","toggle","_Tree","displayName","Tree"],"sources":["../../../../src/components/content/Tree/Tree.tsx"],"sourcesContent":["import { useVirtualizer } from '@tanstack/react-virtual';\nimport { OUTER_STYLES } from '@tenphi/tasty';\nimport { forwardRef, useLayoutEffect, useMemo, useRef } from 'react';\nimport { useTree } from 'react-aria';\nimport { Item, useTreeState } from 'react-stately';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { useI18n } from '../../../i18n';\nimport { SIZE_NAME_TO_KEY, SIZES } from '../../../tokens/sizes';\nimport { mergeRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\n\nimport { TreeElement, TreeScrollContainer } from './styled';\nimport { buildTreeIndex } from './tree-index';\nimport { TreeNode } from './TreeNode';\nimport { useCheckboxTree } from './use-checkbox-tree';\nimport { useLoadData } from './use-load-data';\n\nimport type { Key, Node, Selection } from '@react-types/shared';\nimport type {\n CSSProperties,\n ForwardedRef,\n ReactElement,\n ReactNode,\n} from 'react';\nimport type {\n CubeTreeNodeData,\n CubeTreeProps,\n TreeOnExpandInfo,\n TreeOnSelectInfo,\n TreeSelectionMode,\n} from './types';\n\n/**\n * Render an `<Item>` for React Stately's collection builder.\n *\n * The visible content is rendered by `TreeNode` via `nodesByKey`,\n * so `<Item>`'s body is only used by Stately for the collection\n * (`textValue` for keyboard nav, `childItems` for nested traversal).\n */\nfunction renderItem(node: CubeTreeNodeData): ReactElement {\n const textValue =\n typeof node.title === 'string' ? node.title : String(node.key);\n return (\n <Item\n key={node.key}\n textValue={textValue}\n childItems={node.children as CubeTreeNodeData[] | undefined}\n >\n {node.title as ReactNode}\n </Item>\n );\n}\n\nfunction collectDisabledKeys(\n treeData: CubeTreeNodeData[],\n treeIsDisabled: boolean,\n): string[] {\n const keys: string[] = [];\n const visit = (nodes: CubeTreeNodeData[]) => {\n for (const node of nodes) {\n if (treeIsDisabled || node.isDisabled) keys.push(node.key);\n if (node.children) visit(node.children);\n }\n };\n visit(treeData);\n return keys;\n}\n\n/** Expand the supplied keys with all of their ancestor keys. */\nfunction expandWithParents(\n keys: string[] | undefined,\n parentOf: Map<string, string | null>,\n): string[] | undefined {\n if (!keys || keys.length === 0) return keys;\n const set = new Set<string>(keys);\n for (const key of keys) {\n let parent = parentOf.get(key);\n while (parent) {\n set.add(parent);\n parent = parentOf.get(parent);\n }\n }\n return Array.from(set);\n}\n\n/**\n * Diff two key sets to find the single key that was added or removed.\n * Returns `null` when both sets are equal.\n */\nfunction findToggledKey(\n previous: Set<Key>,\n next: Set<Key>,\n): { key: Key; added: boolean } | null {\n for (const k of next) {\n if (!previous.has(k)) return { key: k, added: true };\n }\n for (const k of previous) {\n if (!next.has(k)) return { key: k, added: false };\n }\n return null;\n}\n\nfunction resolveSelectionMode(\n selectionMode: TreeSelectionMode | undefined,\n isSelectable: boolean | undefined,\n): TreeSelectionMode {\n if (selectionMode != null) return selectionMode;\n if (isSelectable === false) return 'none';\n return 'single';\n}\n\nfunction TreeBase(props: CubeTreeProps, ref: ForwardedRef<HTMLDivElement>) {\n const {\n treeData,\n isCheckable = false,\n isSelectable,\n selectionMode: selectionModeProp,\n size = 'medium',\n shape = 'default',\n containerPadding = 4,\n isDisabled = false,\n defaultExpandedKeys,\n expandedKeys,\n autoExpandParent = false,\n defaultCheckedKeys,\n checkedKeys,\n defaultSelectedKeys,\n selectedKeys,\n height,\n loadData,\n onExpand,\n onCheck,\n onSelect,\n itemProps,\n rowStyles,\n ariaLabel,\n qa,\n menu: treeMenu,\n contextMenu: treeContextMenu,\n onAction: treeOnAction,\n menuTriggerProps,\n menuProps,\n ...otherProps\n } = props;\n\n const baseStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const treeRef = useRef<HTMLDivElement>(null);\n const scrollRef = useRef<HTMLDivElement>(null);\n\n const treeIndex = useMemo(() => buildTreeIndex(treeData), [treeData]);\n const nodesByKey = treeIndex.byKey;\n const parentOf = treeIndex.parentOf;\n\n const disabledKeys = useMemo(\n () => collectDisabledKeys(treeData, isDisabled),\n [treeData, isDisabled],\n );\n\n const selectionMode = resolveSelectionMode(selectionModeProp, isSelectable);\n\n const effectiveExpandedKeys = useMemo(\n () =>\n autoExpandParent\n ? expandWithParents(expandedKeys, parentOf)\n : expandedKeys,\n [autoExpandParent, expandedKeys, parentOf],\n );\n\n const effectiveDefaultExpandedKeys = useMemo(\n () =>\n autoExpandParent\n ? expandWithParents(defaultExpandedKeys, parentOf)\n : defaultExpandedKeys,\n [autoExpandParent, defaultExpandedKeys, parentOf],\n );\n\n const checkbox = useCheckboxTree({\n treeData,\n index: treeIndex,\n isCheckable,\n defaultCheckedKeys,\n checkedKeys,\n onCheck,\n });\n\n const loadDataController = useLoadData({\n nodesByKey,\n loadData,\n initialExpandedKeys: effectiveExpandedKeys ?? effectiveDefaultExpandedKeys,\n });\n\n /**\n * In controlled mode, `previous` is read from `effectiveExpandedKeys`;\n * in uncontrolled mode this ref is the only source. Initialized from\n * the *effective* (ancestor-expanded) keys so the first toggle diffs\n * correctly.\n */\n const previousExpandedRef = useRef<Set<Key>>(\n new Set<Key>(effectiveExpandedKeys ?? effectiveDefaultExpandedKeys ?? []),\n );\n\n const handleExpandedChange = useEvent((nextSet: Set<Key>) => {\n loadDataController.onExpandedChanged(nextSet);\n\n const previous =\n expandedKeys !== undefined\n ? new Set<Key>(effectiveExpandedKeys ?? [])\n : previousExpandedRef.current;\n previousExpandedRef.current = new Set<Key>(nextSet);\n\n if (!onExpand) return;\n\n const toggled = findToggledKey(previous, nextSet);\n if (!toggled) return;\n\n const node = nodesByKey.get(String(toggled.key));\n if (!node) return;\n\n const info: TreeOnExpandInfo = {\n expanded: toggled.added,\n node,\n };\n onExpand(Array.from(nextSet), info);\n });\n\n /**\n * Same pattern as `previousExpandedRef`: in controlled mode we read\n * from `selectedKeys`; in uncontrolled mode this ref tracks state.\n */\n const previousSelectionRef = useRef<Set<Key>>(\n new Set<Key>(selectedKeys ?? defaultSelectedKeys ?? []),\n );\n\n /**\n * `useEvent` captures the closure lazily, so `state` (declared below\n * `ariaProps` / `useTreeState`) is safely accessible at call time.\n */\n const handleSelectionChange = useEvent((selection: Selection) => {\n if (!onSelect) return;\n let arr: Key[];\n if (selection === 'all') {\n // `nodesByKey` contains the full tree; use the collection's visible\n // keys so we don't leak keys under collapsed parents.\n arr = [];\n for (const key of state.collection.getKeys()) {\n const node = state.collection.getItem(key);\n if (node && node.type === 'item') arr.push(key);\n }\n } else {\n arr = Array.from(selection);\n }\n\n const nextSet = new Set<Key>(arr);\n const previous =\n selectedKeys !== undefined\n ? new Set<Key>(selectedKeys ?? [])\n : previousSelectionRef.current;\n previousSelectionRef.current = nextSet;\n\n const toggled = findToggledKey(previous, nextSet);\n if (!toggled) return;\n\n const node = nodesByKey.get(String(toggled.key));\n if (!node) return;\n\n const selectedNodes = arr\n .map((k) => nodesByKey.get(String(k)))\n .filter((n): n is CubeTreeNodeData => !!n);\n\n const info: TreeOnSelectInfo = {\n selected: toggled.added,\n node,\n selectedNodes,\n };\n\n onSelect(arr, info);\n });\n\n const hasOnSelect = onSelect != null;\n const { t } = useI18n();\n const treeLabel = ariaLabel ?? t('tree.ariaLabel', 'Tree');\n\n const ariaProps = useMemo(\n () => ({\n selectionMode,\n selectedKeys,\n defaultSelectedKeys,\n onSelectionChange:\n hasOnSelect && selectionMode !== 'none'\n ? handleSelectionChange\n : undefined,\n expandedKeys: effectiveExpandedKeys,\n defaultExpandedKeys: effectiveDefaultExpandedKeys,\n onExpandedChange: handleExpandedChange,\n disabledKeys,\n disabledBehavior: 'all' as const,\n items: treeData,\n children: renderItem as any,\n 'aria-label': treeLabel,\n }),\n [\n selectionMode,\n selectedKeys,\n defaultSelectedKeys,\n hasOnSelect,\n handleSelectionChange,\n effectiveExpandedKeys,\n effectiveDefaultExpandedKeys,\n handleExpandedChange,\n disabledKeys,\n treeData,\n treeLabel,\n ],\n );\n\n const baseState = useTreeState<CubeTreeNodeData>(ariaProps);\n\n // The legacy `TreeCollection` from `useTreeState` lacks `getChildren`,\n // but `useTree` calls it for nested rows. Derive a patched state.\n // TODO: Remove this patch when upgrading to a react-stately version\n // that ships `getChildren` on TreeCollection natively.\n const state = useMemo(() => {\n const collection = baseState.collection;\n if (typeof (collection as any).getChildren === 'function') {\n return baseState;\n }\n const patched = Object.create(collection);\n patched.getChildren = (key: Key): Iterable<Node<CubeTreeNodeData>> => {\n const node = collection.getItem(key);\n return node ? Array.from(node.childNodes) : [];\n };\n return { ...baseState, collection: patched };\n }, [baseState]);\n\n const { gridProps } = useTree(ariaProps, state, treeRef);\n\n const visibleNodes: Node<CubeTreeNodeData>[] = useMemo(() => {\n const out: Node<CubeTreeNodeData>[] = [];\n for (const key of state.collection.getKeys()) {\n const node = state.collection.getItem(key);\n if (node && node.type === 'item') out.push(node);\n }\n return out;\n }, [state.collection]);\n\n const visibleNodesRef = useRef(visibleNodes);\n visibleNodesRef.current = visibleNodes;\n\n // ----- Virtualization -----\n const rowVirtualizer = useVirtualizer({\n count: visibleNodes.length,\n getScrollElement: () => scrollRef.current,\n getItemKey: (index: number) => {\n const node = visibleNodesRef.current[index];\n return node?.key ?? index;\n },\n estimateSize: () => SIZES[SIZE_NAME_TO_KEY[size]],\n gap: 1,\n overscan: 10,\n paddingStart: containerPadding,\n paddingEnd: containerPadding,\n });\n\n const treeStyle = useMemo<CSSProperties | undefined>(() => {\n if (height == null) return undefined;\n return { ['--tree-height' as keyof CSSProperties]: `${height}px` };\n }, [height]);\n\n const sizerStyle = useMemo<CSSProperties>(\n () => ({\n position: 'relative',\n width: '100%',\n height: `${rowVirtualizer.getTotalSize()}px`,\n }),\n [rowVirtualizer.getTotalSize()],\n );\n\n /**\n * Each scroll effect tracks its own \"last scrolled\" target instead\n * of sharing one ref. A shared ref creates a feedback loop: keyboard\n * nav updates the focused-key ref to the new row, and any subsequent\n * `visibleNodes` change OR `selectedKeys` array-identity change\n * (very common — `selectedKeys={[value]}` allocates a fresh array\n * every parent render) re-runs the selectedKeys effect, which sees\n * the ref no longer matches `selectedKeys[0]` and yanks the viewport\n * back to the selected row. Two refs let each effect dedupe against\n * its own intent only; the cost is at most one duplicate\n * `scrollToIndex` call when click updates focus and selection in the\n * same render (idempotent — both target the same index).\n */\n const lastFocusedScrollRef = useRef<Key | null>(null);\n const lastSelectedScrollRef = useRef<string | null>(null);\n\n /**\n * Keep the focused row visible during keyboard navigation.\n *\n * Uses `rowVirtualizer.scrollToIndex` (instead of\n * `querySelector + scrollIntoView`) so the scroll lands even when the\n * target row is outside the virtualizer's currently rendered window.\n * `align: 'auto'` only scrolls when needed, matching the prior\n * `scrollIntoView({ block: 'nearest' })` behavior.\n */\n useLayoutEffect(() => {\n const focusedKey = state.selectionManager.focusedKey;\n if (focusedKey == null) return;\n if (lastFocusedScrollRef.current === focusedKey) return;\n\n const index = visibleNodesRef.current.findIndex(\n (n) => n.key === focusedKey,\n );\n if (index < 0) return;\n\n rowVirtualizer.scrollToIndex(index, { align: 'auto' });\n lastFocusedScrollRef.current = focusedKey;\n }, [state.selectionManager.focusedKey, rowVirtualizer]);\n\n /**\n * Scroll into view when controlled `selectedKeys` changes externally.\n *\n * Selection-manager `focusedKey` only updates on explicit user\n * interaction (click / keyboard) — it does NOT track controlled\n * `selectedKeys` prop changes. So when a parent updates the prop\n * (e.g. opening a file from elsewhere), we need a separate effect\n * to bring the row into view.\n *\n * Re-runs on `visibleNodes` so we retry once parents are expanded\n * (the row is invisible to the virtualizer until then).\n */\n useLayoutEffect(() => {\n if (selectedKeys == null) return;\n const target = selectedKeys[0];\n if (target == null) return;\n if (lastSelectedScrollRef.current === target) return;\n\n const index = visibleNodes.findIndex((n) => String(n.key) === target);\n if (index < 0) return;\n\n rowVirtualizer.scrollToIndex(index, { align: 'auto' });\n lastSelectedScrollRef.current = target;\n }, [selectedKeys, visibleNodes, rowVirtualizer]);\n\n const mods = useMemo(\n () => ({\n 'has-height': height != null,\n shape,\n }),\n [height, shape],\n );\n\n // The forwarded ref points at the inner scroll container so\n // consumers can drive `scrollTop` directly. `treeRef` (used by\n // `useTree` for keyboard handling and as the role=\"treegrid\"\n // anchor) stays internal on `TreeElement`.\n const mergedScrollRef = useMemo(\n () => mergeRefs(ref, scrollRef),\n [ref, scrollRef],\n );\n\n return (\n <TreeElement\n {...gridProps}\n ref={treeRef}\n qa={qa ?? 'Tree'}\n mods={mods}\n styles={baseStyles}\n style={treeStyle}\n >\n <TreeScrollContainer ref={mergedScrollRef}>\n <div role=\"presentation\" style={sizerStyle}>\n {rowVirtualizer.getVirtualItems().map((virtualItem) => {\n const node = visibleNodes[virtualItem.index];\n if (!node) return null;\n const keyStr = String(node.key);\n const data = nodesByKey.get(keyStr);\n if (!data) return null;\n return (\n <TreeNode\n key={node.key}\n node={node}\n data={data}\n state={state}\n isCheckable={isCheckable}\n isExpanded={state.expandedKeys.has(node.key)}\n isChecked={checkbox.checkedSet.has(keyStr)}\n isIndeterminate={checkbox.halfCheckedSet.has(keyStr)}\n isLoading={loadDataController.loadingKeys.has(keyStr)}\n size={size}\n itemProps={itemProps}\n rowStyles={rowStyles}\n virtualStyle={{\n position: 'absolute',\n top: 0,\n left: containerPadding,\n right: containerPadding,\n transform: `translateY(${virtualItem.start}px)`,\n }}\n virtualRef={rowVirtualizer.measureElement}\n virtualIndex={virtualItem.index}\n menu={treeMenu}\n contextMenu={treeContextMenu}\n menuTriggerProps={menuTriggerProps}\n menuProps={menuProps}\n onToggleChecked={checkbox.toggle}\n onAction={treeOnAction}\n />\n );\n })}\n </div>\n </TreeScrollContainer>\n </TreeElement>\n );\n}\n\nconst _Tree = forwardRef(TreeBase);\n_Tree.displayName = 'Tree';\n\n/**\n * Hierarchical data display with optional checkboxes, single/multi\n * selection, async lazy loading, and keyboard navigation.\n *\n * Built on `useTree` / `useTreeState` (React Aria + React Stately) and\n * styled with Tasty.\n *\n * @example\n * ```tsx\n * <Tree\n * treeData={data}\n * isCheckable\n * selectionMode=\"none\"\n * defaultExpandedKeys={['root']}\n * onCheck={(keys) => console.log(keys)}\n * />\n * ```\n */\nexport const Tree = _Tree;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAwCA,SAASiC,WAAWC,MAAsC;AAGxD,QACE,oBAAC;EAEC,WAJF,OAAOA,KAAKE,UAAU,WAAWF,KAAKE,QAAQC,OAAOH,KAAKI,IAAI;EAK5D,YAAYJ,KAAKK;YAEhBL,KAAKE;IAJDF,KAAKI,IAKL;;AAIX,SAASE,oBACPC,UACAC,gBACU;CACV,MAAMC,OAAiB,EAAE;CACzB,MAAMC,SAASC,UAA8B;AAC3C,OAAK,MAAMX,QAAQW,OAAO;AACxB,OAAIH,kBAAkBR,KAAKY,WAAYH,MAAKI,KAAKb,KAAKI,IAAI;AAC1D,OAAIJ,KAAKK,SAAUK,OAAMV,KAAKK,SAAS;;;AAG3CK,OAAMH,SAAS;AACf,QAAOE;;;AAIT,SAASK,kBACPL,MACAM,UACsB;AACtB,KAAI,CAACN,QAAQA,KAAKQ,WAAW,EAAG,QAAOR;CACvC,MAAMS,MAAM,IAAIC,IAAYV,KAAK;AACjC,MAAK,MAAML,OAAOK,MAAM;EACtB,IAAIW,SAASL,SAASM,IAAIjB,IAAI;AAC9B,SAAOgB,QAAQ;AACbF,OAAII,IAAIF,OAAO;AACfA,YAASL,SAASM,IAAID,OAAO;;;AAGjC,QAAOG,MAAMC,KAAKN,IAAI;;;;;;AAOxB,SAASO,eACPC,UACAC,MACqC;AACrC,MAAK,MAAME,KAAKF,KACd,KAAI,CAACD,SAASI,IAAID,EAAE,CAAE,QAAO;EAAEzB,KAAKyB;EAAGD,OAAO;EAAM;AAEtD,MAAK,MAAMC,KAAKH,SACd,KAAI,CAACC,KAAKG,IAAID,EAAE,CAAE,QAAO;EAAEzB,KAAKyB;EAAGD,OAAO;EAAO;AAEnD,QAAO;;AAGT,SAASG,qBACPC,eACAC,cACmB;AACnB,KAAID,iBAAiB,KAAM,QAAOA;AAClC,KAAIC,iBAAiB,MAAO,QAAO;AACnC,QAAO;;AAGT,SAASC,SAASC,OAAsBC,KAAmC;CACzE,MAAM,EACJ7B,UACA+B,cAAc,OACdL,cACAD,eAAeO,mBACfC,OAAO,UACPC,QAAQ,WACRC,mBAAmB,GACnB9B,aAAa,OACb+B,qBACAC,cACAC,mBAAmB,OACnBC,oBACAC,aACAC,qBACAC,cACAC,QACAC,UACAC,UACAC,SACAC,UACAC,WACAC,WACAC,WACAC,IACAC,MAAMC,UACNC,aAAaC,iBACbC,UAAUC,cACVC,kBACAC,WACA,GAAGC,eACDhC;CAEJ,MAAMiC,aAAaxF,cAAcuF,YAAYpG,aAAa;CAE1D,MAAMsG,UAAUlG,OAAuB,KAAK;CAC5C,MAAMmG,YAAYnG,OAAuB,KAAK;CAE9C,MAAMoG,YAAYrG,cAAca,eAAewB,SAAS,EAAE,CAACA,SAAS,CAAC;CACrE,MAAMiE,aAAaD,UAAUE;CAC7B,MAAM1D,WAAWwD,UAAUxD;CAE3B,MAAM2D,eAAexG,cACboC,oBAAoBC,UAAUK,WAAW,EAC/C,CAACL,UAAUK,WACb,CAAC;CAED,MAAMoB,gBAAgBD,qBAAqBQ,mBAAmBN,aAAa;CAE3E,MAAM0C,wBAAwBzG,cAE1B2E,mBACI/B,kBAAkB8B,cAAc7B,SAAS,GACzC6B,cACN;EAACC;EAAkBD;EAAc7B;EACnC,CAAC;CAED,MAAM6D,+BAA+B1G,cAEjC2E,mBACI/B,kBAAkB6B,qBAAqB5B,SAAS,GAChD4B,qBACN;EAACE;EAAkBF;EAAqB5B;EAC1C,CAAC;CAED,MAAM8D,WAAW5F,gBAAgB;EAC/BsB;EACAuE,OAAOP;EACPjC;EACAQ;EACAC;EACAM;EACD,CAAC;CAEF,MAAM0B,qBAAqB7F,YAAY;EACrCsF;EACArB;EACA6B,qBAAqBL,yBAAyBC;EAC/C,CAAC;;;;;;;CAQF,MAAMK,sBAAsB9G,OAC1B,IAAIgD,IAASwD,yBAAyBC,gCAAgC,EAAE,CAC1E,CAAC;CAED,MAAMM,uBAAuB3G,UAAU4G,YAAsB;AAC3DJ,qBAAmBK,kBAAkBD,QAAQ;EAE7C,MAAMzD,WACJkB,iBAAiByC,SACb,IAAIlE,IAASwD,yBAAyB,EAAE,CAAC,GACzCM,oBAAoBK;AAC1BL,sBAAoBK,UAAU,IAAInE,IAASgE,QAAQ;AAEnD,MAAI,CAAC/B,SAAU;EAEf,MAAMmC,UAAU9D,eAAeC,UAAUyD,QAAQ;AACjD,MAAI,CAACI,QAAS;EAEd,MAAMvF,OAAOwE,WAAWnD,IAAIlB,OAAOoF,QAAQnF,IAAI,CAAC;AAChD,MAAI,CAACJ,KAAM;EAEX,MAAMwF,OAAyB;GAC7BC,UAAUF,QAAQ3D;GAClB5B;GACD;AACDoD,WAAS7B,MAAMC,KAAK2D,QAAQ,EAAEK,KAAK;GACnC;;;;;CAMF,MAAME,uBAAuBvH,OAC3B,IAAIgD,IAAS8B,gBAAgBD,uBAAuB,EAAE,CACxD,CAAC;;;;;CAMD,MAAM2C,wBAAwBpH,UAAUqH,cAAyB;AAC/D,MAAI,CAACtC,SAAU;EACf,IAAIuC;AACJ,MAAID,cAAc,OAAO;AAGvBC,SAAM,EAAE;AACR,QAAK,MAAMzF,OAAO0F,MAAMC,WAAWC,SAAS,EAAE;IAC5C,MAAMhG,SAAO8F,MAAMC,WAAWE,QAAQ7F,IAAI;AAC1C,QAAIJ,UAAQA,OAAKkG,SAAS,OAAQL,KAAIhF,KAAKT,IAAI;;QAGjDyF,OAAMtE,MAAMC,KAAKoE,UAAU;EAG7B,MAAMT,YAAU,IAAIhE,IAAS0E,IAAI;EACjC,MAAMnE,aACJuB,iBAAiBoC,SACb,IAAIlE,IAAS8B,gBAAgB,EAAE,CAAC,GAChCyC,qBAAqBJ;AAC3BI,uBAAqBJ,UAAUH;EAE/B,MAAMI,YAAU9D,eAAeC,YAAUyD,UAAQ;AACjD,MAAI,CAACI,UAAS;EAEd,MAAMvF,SAAOwE,WAAWnD,IAAIlB,OAAOoF,UAAQnF,IAAI,CAAC;AAChD,MAAI,CAACJ,OAAM;EAEX,MAAMmG,gBAAgBN,IACnBO,KAAKvE,MAAM2C,WAAWnD,IAAIlB,OAAO0B,EAAE,CAAC,CAAC,CACrCwE,QAAQC,MAA6B,CAAC,CAACA,EAAE;EAE5C,MAAMd,SAAyB;GAC7Be,UAAUhB,UAAQ3D;GAClB5B,MAAAA;GACAmG;GACD;AAED7C,WAASuC,KAAKL,OAAK;GACnB;CAEF,MAAMgB,cAAclD,YAAY;CAChC,MAAM,EAAEmD,MAAMjI,SAAS;CACvB,MAAMkI,YAAYjD,aAAagD,EAAE,kBAAkB,OAAO;CAE1D,MAAME,YAAYzI,eACT;EACL8D;EACAiB;EACAD;EACA4D,mBACEJ,eAAexE,kBAAkB,SAC7B2D,wBACAN;EACNzC,cAAc+B;EACdhC,qBAAqBiC;EACrBiC,kBAAkB3B;EAClBR;EACAoC,kBAAkB;EAClBE,OAAOzG;EACPF,UAAUN;EACV,cAAc2G;EACf,GACD;EACE1E;EACAiB;EACAD;EACAwD;EACAb;EACAhB;EACAC;EACAM;EACAR;EACAnE;EACAmG;EAEJ,CAAC;CAED,MAAMO,YAAY3I,aAA+BqI,UAAU;CAM3D,MAAMb,QAAQ5H,cAAc;EAC1B,MAAM6H,aAAakB,UAAUlB;AAC7B,MAAI,OAAQA,WAAmBmB,gBAAgB,WAC7C,QAAOD;EAET,MAAME,UAAUC,OAAOC,OAAOtB,WAAW;AACzCoB,UAAQD,eAAe9G,UAA+C;GACpE,MAAMJ,SAAO+F,WAAWE,QAAQ7F,MAAI;AACpC,UAAOJ,SAAOuB,MAAMC,KAAKxB,OAAKuH,WAAW,GAAG,EAAE;;AAEhD,SAAO;GAAE,GAAGN;GAAWlB,YAAYoB;GAAS;IAC3C,CAACF,UAAU,CAAC;CAEf,MAAM,EAAEO,cAAcpJ,QAAQuI,WAAWb,OAAOzB,QAAQ;CAExD,MAAMoD,eAAyCvJ,cAAc;EAC3D,MAAMwJ,MAAgC,EAAE;AACxC,OAAK,MAAMtH,SAAO0F,MAAMC,WAAWC,SAAS,EAAE;GAC5C,MAAMhG,SAAO8F,MAAMC,WAAWE,QAAQ7F,MAAI;AAC1C,OAAIJ,UAAQA,OAAKkG,SAAS,OAAQwB,KAAI7G,KAAKb,OAAK;;AAElD,SAAO0H;IACN,CAAC5B,MAAMC,WAAW,CAAC;CAEtB,MAAM4B,kBAAkBxJ,OAAOsJ,aAAa;AAC5CE,iBAAgBrC,UAAUmC;CAG1B,MAAMG,iBAAiB9J,eAAe;EACpC+J,OAAOJ,aAAaxG;EACpB6G,wBAAwBxD,UAAUgB;EAClCyC,aAAajD,UAAkB;AAE7B,UADa6C,gBAAgBrC,QAAQR,QACxB1E,OAAO0E;;EAEtBkD,oBAAoBtJ,MAAMD,iBAAiB+D;EAC3CyF,KAAK;EACLC,UAAU;EACVC,cAAczF;EACd0F,YAAY1F;EACb,CAAC;CAEF,MAAM2F,YAAYnK,cAAyC;AACzD,MAAIgF,UAAU,KAAM,QAAOmC;AAC3B,SAAO,GAAG,kBAAyC,GAAGnC,OAAM,KAAM;IACjE,CAACA,OAAO,CAAC;CAEZ,MAAMoF,aAAapK,eACV;EACLqK,UAAU;EACVC,OAAO;EACPtF,QAAQ,GAAG0E,eAAea,cAAc,CAAA;EACzC,GACD,CAACb,eAAea,cAAc,CAChC,CAAC;;;;;;;;;;;;;;CAeD,MAAMC,uBAAuBvK,OAAmB,KAAK;CACrD,MAAMwK,wBAAwBxK,OAAsB,KAAK;;;;;;;;;;AAWzDF,uBAAsB;EACpB,MAAM2K,aAAa9C,MAAM+C,iBAAiBD;AAC1C,MAAIA,cAAc,KAAM;AACxB,MAAIF,qBAAqBpD,YAAYsD,WAAY;EAEjD,MAAM9D,UAAQ6C,gBAAgBrC,QAAQwD,WACnCxC,QAAMA,IAAElG,QAAQwI,WAClB;AACD,MAAI9D,UAAQ,EAAG;AAEf8C,iBAAemB,cAAcjE,SAAO,EAAEkE,OAAO,QAAQ,CAAC;AACtDN,uBAAqBpD,UAAUsD;IAC9B,CAAC9C,MAAM+C,iBAAiBD,YAAYhB,eAAe,CAAC;;;;;;;;;;;;;AAcvD3J,uBAAsB;AACpB,MAAIgF,gBAAgB,KAAM;EAC1B,MAAMgG,SAAShG,aAAa;AAC5B,MAAIgG,UAAU,KAAM;AACpB,MAAIN,sBAAsBrD,YAAY2D,OAAQ;EAE9C,MAAMnE,UAAQ2C,aAAaqB,WAAWxC,QAAMnG,OAAOmG,IAAElG,IAAI,KAAK6I,OAAO;AACrE,MAAInE,UAAQ,EAAG;AAEf8C,iBAAemB,cAAcjE,SAAO,EAAEkE,OAAO,QAAQ,CAAC;AACtDL,wBAAsBrD,UAAU2D;IAC/B;EAAChG;EAAcwE;EAAcG;EAAe,CAAC;CAEhD,MAAMsB,OAAOhL,eACJ;EACL,cAAcgF,UAAU;EACxBT;EACD,GACD,CAACS,QAAQT,MACX,CAAC;CAMD,MAAM0G,kBAAkBjL,cAChBS,UAAUyD,KAAKkC,UAAU,EAC/B,CAAClC,KAAKkC,UACR,CAAC;AAED,QACE,oBAAC;EACC,GAAIkD;EACJ,KAAKnD;EACL,IAAIX,MAAM;EACJwF;EACN,QAAQ9E;EACR,OAAOiE;YAEP,oBAAC;GAAoB,KAAKc;aACxB,oBAAC;IAAI,MAAK;IAAe,OAAOb;cAC7BV,eAAewB,iBAAiB,CAAChD,KAAKiD,gBAAgB;KACrD,MAAMrJ,SAAOyH,aAAa4B,YAAYvE;AACtC,SAAI,CAAC9E,OAAM,QAAO;KAClB,MAAMsJ,SAASnJ,OAAOH,OAAKI,IAAI;KAC/B,MAAMmJ,OAAO/E,WAAWnD,IAAIiI,OAAO;AACnC,SAAI,CAACC,KAAM,QAAO;AAClB,YACE,oBAAC;MAEC,MAAMvJ;MACAuJ;MACCzD;MACMxD;MACb,YAAYwD,MAAMlD,aAAad,IAAI9B,OAAKI,IAAI;MAC5C,WAAWyE,SAAS2E,WAAW1H,IAAIwH,OAAO;MAC1C,iBAAiBzE,SAAS4E,eAAe3H,IAAIwH,OAAO;MACpD,WAAWvE,mBAAmB2E,YAAY5H,IAAIwH,OAAO;MAC/C9G;MACKe;MACAC;MACX,cAAc;OACZ+E,UAAU;OACVoB,KAAK;OACLC,MAAMlH;OACNmH,OAAOnH;OACPoH,WAAW,cAAcT,YAAYU,MAAK;OAC3C;MACD,YAAYnC,eAAeoC;MAC3B,cAAcX,YAAYvE;MAC1B,MAAMlB;MACN,aAAaE;MACKG;MACPC;MACX,iBAAiBW,SAASoF;MAC1B,UAAUjG;QA1BLhE,OAAKI,IA2BV;MAEJ;KACC;IACc;GACT;;AAIlB,MAAM8J,QAAQlM,WAAWkE,SAAS;AAClCgI,MAAMC,cAAc;;;;;;;;;;;;;;;;;;;AAoBpB,MAAaC,OAAOF"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { _Item } from "../Item/Item.js";
3
3
  import { Action } from "../../actions/Action/Action.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  //#region src/components/content/Tree/tree-index.ts
3
3
  function buildTreeIndex(treeData) {
4
4
  const byKey = /* @__PURE__ */ new Map();
@@ -1,9 +1,9 @@
1
1
 
2
- import { CubeMenuProps } from "../../actions/Menu/Menu.js";
3
- import { CubeItemProps } from "../Item/Item.js";
4
2
  import { CubeItemActionProps } from "../../actions/ItemAction/ItemAction.js";
5
3
  import "../../actions/ItemAction/index.js";
4
+ import { CubeMenuProps } from "../../actions/Menu/Menu.js";
6
5
  import "../../actions/Menu/index.js";
6
+ import { CubeItemProps } from "../Item/Item.js";
7
7
  import { SizeName } from "../../../tokens/sizes.js";
8
8
  import { BaseProps, OuterStyleProps, Styles } from "@tenphi/tasty";
9
9
  import { ReactNode } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.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 { useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { isDevEnvOrTest } from "../../../utils/is-dev-env.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { _Text } from "./Text.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { TooltipProvider } from "../overlays/Tooltip/TooltipProvider.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { _Text } from "../../content/Text.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { _Text } from "../../content/Text.js";
3
3
  import { useI18n } from "../../../i18n/useI18n.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { _Pagination } from "../../navigation/Pagination/Pagination.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { useI18n } from "../../../i18n/useI18n.js";
3
3
  import { Button } from "../../actions/index.js";
4
4
  import { ReloadIcon } from "../../../icons/ReloadIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { freezeColumnWidths, useTableColumns } from "../TableBase/use-table-columns.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { isTableTreeDescendant } from "../TableBase/table-tree.js";
4
4
  import { ItemTableDragPreview } from "./ItemTableDragPreview.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { clampPage, getPageInfo } from "../../navigation/Pagination/use-pagination.js";
4
4
  import { reindexTableTree } from "../TableBase/table-tree.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { flattenTableTree } from "../TableBase/table-tree.js";
3
3
  import { useTableSelection } from "../TableBase/use-table-selection.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { sortTableTree } from "../TableBase/table-tree.js";
4
4
  import { compareByColumn, useTableSort } from "../TableBase/use-table-sort.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { useWarn } from "../../../_internal/hooks/use-warn.js";
3
3
  import { buildTableTree } from "../TableBase/table-tree.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { c } from "react/compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  //#region src/components/data/TableBase/RowCollection.ts
3
3
  /**
4
4
  * A `Collection<Node<T>>` over a plain row array.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { c } from "react/compiler-runtime";
4
4
  import { useEffect, useRef, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.193.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.194.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { c } from "react/compiler-runtime";