@cube-dev/ui-kit 0.128.0 → 0.130.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 (445) hide show
  1. package/dist/CHANGELOG.md +51 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.js +1 -1
  13. package/dist/components/GlobalStyles.js +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.js +2 -2
  20. package/dist/components/actions/Button/Button.js.map +1 -1
  21. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  22. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  23. package/dist/components/actions/ButtonSplit/context.js +1 -1
  24. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  25. package/dist/components/actions/CommandMenu/styled.js +1 -1
  26. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  27. package/dist/components/actions/ItemActionContext.js +1 -1
  28. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  29. package/dist/components/actions/Link/Link.js +1 -1
  30. package/dist/components/actions/Menu/Menu.js +1 -1
  31. package/dist/components/actions/Menu/MenuItem.js +1 -1
  32. package/dist/components/actions/Menu/MenuSection.js +1 -1
  33. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  36. package/dist/components/actions/Menu/context.js +1 -1
  37. package/dist/components/actions/Menu/styled.js +1 -1
  38. package/dist/components/actions/index.js +1 -1
  39. package/dist/components/actions/use-action.js +1 -1
  40. package/dist/components/actions/use-anchored-menu.js +1 -1
  41. package/dist/components/actions/use-context-menu.js +1 -1
  42. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  43. package/dist/components/content/Alert/Alert.js +1 -1
  44. package/dist/components/content/Alert/use-alert.js +1 -1
  45. package/dist/components/content/Avatar/Avatar.js +1 -1
  46. package/dist/components/content/Badge/Badge.js +1 -1
  47. package/dist/components/content/Card/Card.js +1 -1
  48. package/dist/components/content/Content.js +1 -1
  49. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  50. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  51. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  52. package/dist/components/content/Divider.js +1 -1
  53. package/dist/components/content/Footer.js +1 -1
  54. package/dist/components/content/Header.js +1 -1
  55. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  56. package/dist/components/content/Item/Item.js +1 -1
  57. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  58. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  59. package/dist/components/content/Layout/GridLayout.js +1 -1
  60. package/dist/components/content/Layout/Layout.js +1 -1
  61. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  62. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  63. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  64. package/dist/components/content/Layout/LayoutContent.js +1 -1
  65. package/dist/components/content/Layout/LayoutContext.js +1 -1
  66. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  67. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  68. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  69. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  70. package/dist/components/content/Layout/LayoutPane.js +1 -1
  71. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  72. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  73. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  74. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  75. package/dist/components/content/Layout/index.js +1 -1
  76. package/dist/components/content/Layout/utils.js +1 -1
  77. package/dist/components/content/Paragraph.js +1 -1
  78. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  79. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  80. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  81. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  82. package/dist/components/content/Result/Result.js +1 -1
  83. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  84. package/dist/components/content/Tag/Tag.js +1 -1
  85. package/dist/components/content/Text.js +1 -1
  86. package/dist/components/content/TextItem/TextItem.js +1 -1
  87. package/dist/components/content/Title.js +1 -1
  88. package/dist/components/content/Tree/Tree.d.ts +27 -0
  89. package/dist/components/content/Tree/Tree.js +308 -0
  90. package/dist/components/content/Tree/Tree.js.map +1 -0
  91. package/dist/components/content/Tree/TreeNode.js +132 -0
  92. package/dist/components/content/Tree/TreeNode.js.map +1 -0
  93. package/dist/components/content/Tree/index.d.ts +3 -0
  94. package/dist/components/content/Tree/styled.js +145 -0
  95. package/dist/components/content/Tree/styled.js.map +1 -0
  96. package/dist/components/content/Tree/tree-index.js +26 -0
  97. package/dist/components/content/Tree/tree-index.js.map +1 -0
  98. package/dist/components/content/Tree/types.d.ts +174 -0
  99. package/dist/components/content/Tree/use-checkbox-tree.js +231 -0
  100. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -0
  101. package/dist/components/content/Tree/use-load-data.js +75 -0
  102. package/dist/components/content/Tree/use-load-data.js.map +1 -0
  103. package/dist/components/content/highlightText.js +1 -1
  104. package/dist/components/content/use-auto-tooltip.js +1 -1
  105. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  106. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  107. package/dist/components/fields/Checkbox/context.js +1 -1
  108. package/dist/components/fields/ComboBox/ComboBox.js +2 -8
  109. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  110. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  111. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  112. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  113. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  114. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  115. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  116. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  117. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  118. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  119. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  120. package/dist/components/fields/DatePicker/intl.js +1 -1
  121. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  122. package/dist/components/fields/DatePicker/props.js +1 -1
  123. package/dist/components/fields/DatePicker/utils.js +1 -1
  124. package/dist/components/fields/FileInput/FileInput.js +1 -1
  125. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  126. package/dist/components/fields/FilterPicker/FilterPicker.js +3 -11
  127. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  128. package/dist/components/fields/Input/Input.js +1 -1
  129. package/dist/components/fields/ListBox/ListBox.js +1 -1
  130. package/dist/components/fields/NumberInput/NumberInput.js +2 -2
  131. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  132. package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
  133. package/dist/components/fields/Picker/Picker.js +2 -11
  134. package/dist/components/fields/Picker/Picker.js.map +1 -1
  135. package/dist/components/fields/RadioGroup/Radio.js +2 -2
  136. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  137. package/dist/components/fields/RadioGroup/context.js +1 -1
  138. package/dist/components/fields/SearchInput/SearchInput.js +2 -2
  139. package/dist/components/fields/Select/Select.d.ts +0 -2
  140. package/dist/components/fields/Select/Select.js +3 -11
  141. package/dist/components/fields/Select/Select.js.map +1 -1
  142. package/dist/components/fields/Slider/Gradation.js +1 -1
  143. package/dist/components/fields/Slider/HueSlider.js +1 -1
  144. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  145. package/dist/components/fields/Slider/Slider.js +1 -1
  146. package/dist/components/fields/Slider/SliderBase.js +1 -1
  147. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  148. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  149. package/dist/components/fields/Slider/elements.js +1 -1
  150. package/dist/components/fields/Slider/index.js +1 -1
  151. package/dist/components/fields/Switch/Switch.js +1 -1
  152. package/dist/components/fields/TextArea/TextArea.js +2 -2
  153. package/dist/components/fields/TextInput/TextInput.js +2 -2
  154. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  155. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  156. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  157. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  158. package/dist/components/form/Form/Field.js +1 -1
  159. package/dist/components/form/Form/Form.js +1 -1
  160. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  161. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  162. package/dist/components/form/Form/SubmitError.js +1 -1
  163. package/dist/components/form/Form/index.js +1 -1
  164. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  165. package/dist/components/form/Form/use-field/use-field.js +1 -1
  166. package/dist/components/form/Form/use-form.js +1 -1
  167. package/dist/components/form/Form/validation.js +1 -1
  168. package/dist/components/form/Label.js +1 -1
  169. package/dist/components/form/wrapper.js +1 -1
  170. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +5 -4
  171. package/dist/components/helpers/DisplayTransition/DisplayTransition.js.map +1 -1
  172. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  173. package/dist/components/layout/Flex.js +1 -1
  174. package/dist/components/layout/Flow.js +1 -1
  175. package/dist/components/layout/Grid.js +1 -1
  176. package/dist/components/layout/Panel.js +1 -1
  177. package/dist/components/layout/Prefix.js +1 -1
  178. package/dist/components/layout/ResizablePanel.js +1 -1
  179. package/dist/components/layout/Space.js +1 -1
  180. package/dist/components/layout/Suffix.js +1 -1
  181. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  182. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  183. package/dist/components/navigation/Tabs/TabButton.js +28 -14
  184. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  185. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  186. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  187. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  188. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  189. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  190. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  191. package/dist/components/navigation/Tabs/styled.js +1 -1
  192. package/dist/components/navigation/Tabs/types.js +1 -1
  193. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  194. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  195. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  196. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  197. package/dist/components/other/Calendar/Calendar.js +1 -1
  198. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  199. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  200. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  201. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  202. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  203. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  204. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  205. package/dist/components/overlays/Dialog/Dialog.js +4 -18
  206. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  207. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  208. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  209. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -2
  210. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  211. package/dist/components/overlays/Dialog/context.js +1 -1
  212. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  213. package/dist/components/overlays/Modal/Modal.js +7 -7
  214. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  215. package/dist/components/overlays/Modal/OpenTransitionContext.js +12 -0
  216. package/dist/components/overlays/Modal/OpenTransitionContext.js.map +1 -0
  217. package/dist/components/overlays/Modal/Overlay.js +48 -21
  218. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  219. package/dist/components/overlays/Modal/Popover.js +10 -14
  220. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  221. package/dist/components/overlays/Modal/Tray.js +7 -7
  222. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  223. package/dist/components/overlays/Modal/Underlay.js +1 -1
  224. package/dist/components/overlays/Modal/types.d.ts +1 -1
  225. package/dist/components/overlays/Notifications/Notification.js +1 -1
  226. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  227. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  228. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  229. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  230. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  231. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  232. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  233. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  234. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  235. package/dist/components/overlays/Notifications/index.js +1 -1
  236. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  237. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  238. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  239. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  240. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  241. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  242. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  243. package/dist/components/overlays/Toast/index.js +1 -1
  244. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  245. package/dist/components/overlays/Toast/useToast.js +1 -1
  246. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  247. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  248. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  249. package/dist/components/overlays/Tooltip/context.js +1 -1
  250. package/dist/components/portal/Portal.js +1 -1
  251. package/dist/components/portal/PortalProvider.js +1 -1
  252. package/dist/components/portal/usePortal.js +1 -1
  253. package/dist/components/shared/InvalidIcon.js +1 -1
  254. package/dist/components/shared/ValidIcon.js +1 -1
  255. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  256. package/dist/components/status/Spin/Cube.js +1 -1
  257. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  258. package/dist/components/status/Spin/Spin.js +1 -1
  259. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  260. package/dist/data/item-themes.js +1 -1
  261. package/dist/data/themes.js +1 -1
  262. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  263. package/dist/icons/AdjustmentsIcon.js +1 -1
  264. package/dist/icons/AiIcon.js +1 -1
  265. package/dist/icons/AreaChartIcon.js +1 -1
  266. package/dist/icons/BackwardIcon.js +1 -1
  267. package/dist/icons/BarChartIcon.js +1 -1
  268. package/dist/icons/BellFilledIcon.js +1 -1
  269. package/dist/icons/BellIcon.js +1 -1
  270. package/dist/icons/BooleanIcon.js +1 -1
  271. package/dist/icons/CalendarEditIcon.js +1 -1
  272. package/dist/icons/CalendarIcon.js +1 -1
  273. package/dist/icons/CaretDownIcon.js +1 -1
  274. package/dist/icons/CaretUpIcon.js +1 -1
  275. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  276. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  277. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  278. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  279. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  280. package/dist/icons/ChartBarLineIcon.js +1 -1
  281. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  282. package/dist/icons/ChartBarStackedIcon.js +1 -1
  283. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  284. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  285. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  286. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  287. package/dist/icons/ChartBubbleIcon.js +1 -1
  288. package/dist/icons/ChartDonut2Icon.js +1 -1
  289. package/dist/icons/ChartFunnelIcon.js +1 -1
  290. package/dist/icons/ChartHeatmapIcon.js +1 -1
  291. package/dist/icons/ChartKPIIcon.js +1 -1
  292. package/dist/icons/ChartPie2Icon.js +1 -1
  293. package/dist/icons/ChartScatterIcon.js +1 -1
  294. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  295. package/dist/icons/CheckCircleIcon.js +1 -1
  296. package/dist/icons/CheckIcon.js +1 -1
  297. package/dist/icons/CircleFilledIcon.js +1 -1
  298. package/dist/icons/ClearIcon.js +1 -1
  299. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  300. package/dist/icons/CloseCircleIcon.js +1 -1
  301. package/dist/icons/CloseIcon.js +1 -1
  302. package/dist/icons/CodeIcon.js +1 -1
  303. package/dist/icons/ColumnTotalIcon.js +1 -1
  304. package/dist/icons/CopyIcon.js +1 -1
  305. package/dist/icons/CountIcon.js +1 -1
  306. package/dist/icons/CubeIcon.js +1 -1
  307. package/dist/icons/CubePauseIcon.js +1 -1
  308. package/dist/icons/CubePlayIcon.js +1 -1
  309. package/dist/icons/CurrencyDollarIcon.js +1 -1
  310. package/dist/icons/DangerIcon.js +1 -1
  311. package/dist/icons/DashboardIcon.js +1 -1
  312. package/dist/icons/DatabaseIcon.js +1 -1
  313. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  314. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  315. package/dist/icons/DirectionIcon.js +1 -1
  316. package/dist/icons/DonutIcon.js +1 -1
  317. package/dist/icons/DownIcon.js +1 -1
  318. package/dist/icons/EditIcon.js +1 -1
  319. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  320. package/dist/icons/ExclamationCircleIcon.js +1 -1
  321. package/dist/icons/ExclamationIcon.js +1 -1
  322. package/dist/icons/EyeIcon.js +1 -1
  323. package/dist/icons/EyeInvisibleIcon.js +1 -1
  324. package/dist/icons/FilterIcon.js +1 -1
  325. package/dist/icons/FolderFilledIcon.js +1 -1
  326. package/dist/icons/FolderIcon.js +1 -1
  327. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  328. package/dist/icons/FolderOpenIcon.js +1 -1
  329. package/dist/icons/ForwardIcon.js +1 -1
  330. package/dist/icons/HierarchyIcon.js +1 -1
  331. package/dist/icons/HierarchyOpenIcon.js +1 -1
  332. package/dist/icons/Icon.js +1 -1
  333. package/dist/icons/InfoCircleIcon.js +1 -1
  334. package/dist/icons/InfoIcon.js +1 -1
  335. package/dist/icons/KeyIcon.js +1 -1
  336. package/dist/icons/LeftIcon.js +1 -1
  337. package/dist/icons/LineChartIcon.js +1 -1
  338. package/dist/icons/LoadingIcon.js +1 -1
  339. package/dist/icons/LockFilledIcon.js +1 -1
  340. package/dist/icons/LockIcon.js +1 -1
  341. package/dist/icons/MoreIcon.js +1 -1
  342. package/dist/icons/NotAllowedIcon.js +1 -1
  343. package/dist/icons/Number123Icon.js +1 -1
  344. package/dist/icons/NumberIcon.js +1 -1
  345. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  346. package/dist/icons/PauseCircleIcon.js +1 -1
  347. package/dist/icons/PauseIcon.js +1 -1
  348. package/dist/icons/PercentageIcon.js +1 -1
  349. package/dist/icons/PieChartIcon.js +1 -1
  350. package/dist/icons/PlayCircleIcon.js +1 -1
  351. package/dist/icons/PlayIcon.js +1 -1
  352. package/dist/icons/PlusIcon.js +1 -1
  353. package/dist/icons/ProgressBarIcon.js +1 -1
  354. package/dist/icons/ReloadIcon.js +1 -1
  355. package/dist/icons/ReportIcon.js +1 -1
  356. package/dist/icons/ReturnIcon.js +1 -1
  357. package/dist/icons/RightIcon.js +1 -1
  358. package/dist/icons/RowTotalsIcon.js +1 -1
  359. package/dist/icons/SchemeIcon.js +1 -1
  360. package/dist/icons/SearchIcon.js +1 -1
  361. package/dist/icons/SemanticQueryIcon.js +1 -1
  362. package/dist/icons/SettingsIcon.js +1 -1
  363. package/dist/icons/ShieldFilledIcon.js +1 -1
  364. package/dist/icons/ShieldIcon.js +1 -1
  365. package/dist/icons/SlashIcon.js +1 -1
  366. package/dist/icons/SparklesIcon.js +1 -1
  367. package/dist/icons/SqlIcon.js +1 -1
  368. package/dist/icons/StatsIcon.js +1 -1
  369. package/dist/icons/StopIcon.js +1 -1
  370. package/dist/icons/StringIcon.js +1 -1
  371. package/dist/icons/SubtotalsIcon.js +1 -1
  372. package/dist/icons/SwitchIcon.js +1 -1
  373. package/dist/icons/TableIcon.js +1 -1
  374. package/dist/icons/ThumbsDownIcon.js +1 -1
  375. package/dist/icons/ThumbsUpIcon.js +1 -1
  376. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  377. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  378. package/dist/icons/ThunderboltIcon.js +1 -1
  379. package/dist/icons/TimeIcon.js +1 -1
  380. package/dist/icons/TrashIcon.js +1 -1
  381. package/dist/icons/UnlockIcon.js +1 -1
  382. package/dist/icons/UpIcon.js +1 -1
  383. package/dist/icons/UserGroupIcon.js +1 -1
  384. package/dist/icons/UserIcon.js +1 -1
  385. package/dist/icons/UserLockIcon.js +1 -1
  386. package/dist/icons/ViewIcon.js +1 -1
  387. package/dist/icons/WarningFilledIcon.js +1 -1
  388. package/dist/icons/WarningIcon.js +1 -1
  389. package/dist/icons/wrap-icon.js +1 -1
  390. package/dist/index.d.ts +5 -2
  391. package/dist/index.js +6 -5
  392. package/dist/index.js.map +1 -1
  393. package/dist/provider.js +1 -1
  394. package/dist/providers/TrackingProvider.js +1 -1
  395. package/dist/providers/navigationAdapter.default.js +1 -1
  396. package/dist/tokens/base.js +1 -1
  397. package/dist/tokens/colors.js +1 -1
  398. package/dist/tokens/index.d.ts +1 -1
  399. package/dist/tokens/index.js +1 -1
  400. package/dist/tokens/layout.js +1 -1
  401. package/dist/tokens/shadows.js +1 -1
  402. package/dist/tokens/sizes.js +1 -1
  403. package/dist/tokens/spacing.js +1 -1
  404. package/dist/tokens/typography.js +1 -1
  405. package/dist/utils/ResizeSensor.js +1 -1
  406. package/dist/utils/is-dev-env.js +1 -1
  407. package/dist/utils/modules.js +1 -1
  408. package/dist/utils/promise.js +1 -1
  409. package/dist/utils/raf.js +1 -1
  410. package/dist/utils/random.js +1 -1
  411. package/dist/utils/range.js +1 -1
  412. package/dist/utils/react/RenderCache.js +1 -1
  413. package/dist/utils/react/Slots.js +1 -1
  414. package/dist/utils/react/chain.js +1 -1
  415. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  416. package/dist/utils/react/index.js +1 -1
  417. package/dist/utils/react/interactions.js +1 -1
  418. package/dist/utils/react/isTextOnly.js +1 -1
  419. package/dist/utils/react/mapProps.js +1 -1
  420. package/dist/utils/react/mergeProps.js +1 -1
  421. package/dist/utils/react/nullableValue.js +1 -1
  422. package/dist/utils/react/resolveIcon.js +1 -1
  423. package/dist/utils/react/sharedStore.js +1 -1
  424. package/dist/utils/react/useCombinedRefs.js +1 -1
  425. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  426. package/dist/utils/react/useEventBus.js +1 -1
  427. package/dist/utils/react/useId.js +1 -1
  428. package/dist/utils/react/useIsDarwin.js +1 -1
  429. package/dist/utils/react/useKeySymbols.js +1 -1
  430. package/dist/utils/react/useLayoutEffect.js +1 -1
  431. package/dist/utils/react/useLocalStorage.js +1 -1
  432. package/dist/utils/react/useMergeStyles.js +1 -1
  433. package/dist/utils/react/useQaProps.js +1 -1
  434. package/dist/utils/react/useViewportSize.js +1 -1
  435. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  436. package/dist/utils/selection.js +1 -1
  437. package/dist/utils/styles.js +1 -1
  438. package/dist/utils/tree.js +1 -1
  439. package/dist/utils/warnings.js +1 -1
  440. package/dist/version.js +2 -2
  441. package/docs/components/content/Tree.md +299 -0
  442. package/docs/tasty/dsl.md +1 -0
  443. package/package.json +2 -4
  444. package/dist/components/overlays/Modal/OpenTransition.js +0 -39
  445. package/dist/components/overlays/Modal/OpenTransition.js.map +0 -1
@@ -0,0 +1,132 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.130.0 | Cube Dev Team */
2
+ import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
+ import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
+ import { useEvent } from "../../../_internal/hooks/use-event.js";
5
+ import { LoadingIcon } from "../../../icons/LoadingIcon.js";
6
+ import { DirectionIcon } from "../../../icons/DirectionIcon.js";
7
+ import { TreeNodeCheckboxWrapper, TreeNodeRow, TreeNodeToggle, TreeNodeTogglePlaceholder, TreeRowItem } from "./styled.js";
8
+ import { __Checkbox } from "../../fields/Checkbox/Checkbox.js";
9
+ import { memo, useMemo, useRef } from "react";
10
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
+ import { useHover, useTreeItem } from "react-aria";
12
+
13
+ //#region src/components/content/Tree/TreeNode.tsx
14
+ const stopPropagation = (e) => {
15
+ e.stopPropagation();
16
+ };
17
+ function TreeNodeInner(props) {
18
+ const { node, data, state, isCheckable, isExpanded, isIndeterminate, isChecked, isLoading, onToggleChecked, size, itemProps, rowStyles, virtualStyle, virtualRef, virtualIndex } = props;
19
+ const rowRef = useRef(null);
20
+ const combinedRef = useMemo(() => virtualRef ? mergeRefs(rowRef, virtualRef) : rowRef, [virtualRef]);
21
+ const { rowProps, gridCellProps, expandButtonProps, isPressed } = useTreeItem({ node }, state, rowRef);
22
+ const isDisabled = state.disabledKeys.has(node.key);
23
+ const isSelected = state.selectionManager.isSelected(node.key);
24
+ const { hoverProps, isHovered } = useHover({ isDisabled });
25
+ const isFocused = state.selectionManager.isFocused && state.selectionManager.focusedKey === node.key;
26
+ const isLeaf = data.isLeaf === true || data.isLeaf !== false && !node.hasChildNodes;
27
+ const isRowCheckable = isCheckable && data.isCheckable !== false;
28
+ const handleCheckboxChange = useEvent(() => {
29
+ onToggleChecked(String(node.key));
30
+ });
31
+ const handleKeyDown = useEvent((e) => {
32
+ if (e.key === " " && isRowCheckable && !isDisabled && !data.isCheckboxDisabled) {
33
+ e.preventDefault();
34
+ onToggleChecked(String(node.key));
35
+ }
36
+ });
37
+ const sharedMods = useMemo(() => ({
38
+ checked: isChecked,
39
+ indeterminate: isIndeterminate,
40
+ expanded: isExpanded,
41
+ loading: isLoading,
42
+ leaf: isLeaf,
43
+ "has-checkbox": isRowCheckable
44
+ }), [
45
+ isChecked,
46
+ isIndeterminate,
47
+ isExpanded,
48
+ isLoading,
49
+ isLeaf,
50
+ isRowCheckable
51
+ ]);
52
+ const rowMods = useMemo(() => ({
53
+ ...sharedMods,
54
+ disabled: isDisabled
55
+ }), [sharedMods, isDisabled]);
56
+ const itemMods = useMemo(() => ({
57
+ ...sharedMods,
58
+ focused: isFocused,
59
+ hovered: isHovered,
60
+ pressed: isPressed
61
+ }), [
62
+ sharedMods,
63
+ isFocused,
64
+ isHovered,
65
+ isPressed
66
+ ]);
67
+ const rowStyle = useMemo(() => ({
68
+ ["--tree-level"]: String(node.level ?? 0),
69
+ ...virtualStyle
70
+ }), [node.level, virtualStyle]);
71
+ const ariaChecked = isRowCheckable ? isIndeterminate ? "mixed" : isChecked ? "true" : "false" : void 0;
72
+ const finalRowProps = mergeProps$1(rowProps, hoverProps, {
73
+ "aria-checked": ariaChecked,
74
+ onKeyDown: handleKeyDown
75
+ });
76
+ const toggleNode = isLeaf ? /* @__PURE__ */ jsx(TreeNodeTogglePlaceholder, {
77
+ "aria-hidden": true,
78
+ "data-element": "Toggle"
79
+ }) : /* @__PURE__ */ jsx(TreeNodeToggle, {
80
+ ...expandButtonProps,
81
+ tabIndex: -1,
82
+ "data-element": "Toggle",
83
+ children: isLoading ? /* @__PURE__ */ jsx(LoadingIcon, {}) : /* @__PURE__ */ jsx(DirectionIcon, { to: isExpanded ? "bottom" : "right" })
84
+ });
85
+ const checkboxNode = isRowCheckable ? /* @__PURE__ */ jsx(TreeNodeCheckboxWrapper, {
86
+ "data-element": "Checkbox",
87
+ role: "presentation",
88
+ onClick: stopPropagation,
89
+ onKeyDown: stopPropagation,
90
+ children: /* @__PURE__ */ jsx(__Checkbox, {
91
+ isSelected: isChecked,
92
+ isIndeterminate,
93
+ isDisabled: isDisabled || data.isCheckboxDisabled,
94
+ "aria-label": typeof data.title === "string" ? data.title : String(node.key),
95
+ onChange: handleCheckboxChange
96
+ })
97
+ }) : null;
98
+ const { prefix: userPrefix, ...restUserProps } = (typeof itemProps === "function" ? itemProps(data, {
99
+ isExpanded,
100
+ isSelected,
101
+ isChecked,
102
+ isIndeterminate,
103
+ isLeaf
104
+ }) : itemProps) ?? {};
105
+ const composedPrefix = checkboxNode || userPrefix ? /* @__PURE__ */ jsxs(Fragment$1, { children: [checkboxNode, userPrefix] }) : null;
106
+ return /* @__PURE__ */ jsx(TreeNodeRow, {
107
+ ...finalRowProps,
108
+ ref: combinedRef,
109
+ mods: rowMods,
110
+ style: rowStyle,
111
+ "data-element": "Row",
112
+ "data-qa-key": String(node.key),
113
+ "data-index": virtualIndex,
114
+ children: /* @__PURE__ */ jsx(TreeRowItem, {
115
+ ...gridCellProps,
116
+ ...restUserProps,
117
+ size,
118
+ isSelected,
119
+ isDisabled,
120
+ mods: itemMods,
121
+ icon: toggleNode,
122
+ prefix: composedPrefix,
123
+ styles: rowStyles,
124
+ children: data.title
125
+ })
126
+ });
127
+ }
128
+ const TreeNode = memo(TreeNodeInner);
129
+
130
+ //#endregion
131
+ export { TreeNode };
132
+ //# sourceMappingURL=TreeNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TreeNode.js","names":["mergeProps","Checkbox"],"sources":["../../../../src/components/content/Tree/TreeNode.tsx"],"sourcesContent":["import { memo, useMemo, useRef } from 'react';\nimport { useHover, useTreeItem } from 'react-aria';\n\nimport { useEvent } from '../../../_internal/hooks';\nimport { DirectionIcon, LoadingIcon } from '../../../icons';\nimport { mergeProps, mergeRefs } from '../../../utils/react';\nimport { Checkbox } from '../../fields/Checkbox/Checkbox';\n\nimport {\n TreeNodeCheckboxWrapper,\n TreeNodeRow,\n TreeNodeToggle,\n TreeNodeTogglePlaceholder,\n TreeRowItem,\n} from './styled';\n\nimport type { Node } from '@react-types/shared';\nimport type { Styles } from '@tenphi/tasty';\nimport type { CSSProperties, KeyboardEvent, SyntheticEvent } from 'react';\nimport type { TreeState } from 'react-stately';\nimport type { CubeTreeNodeData, TreeItemProps, TreeNodeState } from './types';\n\nconst stopPropagation = (e: SyntheticEvent) => {\n e.stopPropagation();\n};\n\nexport interface TreeNodeProps {\n node: Node<CubeTreeNodeData>;\n /** The original `CubeTreeNodeData` for this row, looked up by key. */\n data: CubeTreeNodeData;\n state: TreeState<CubeTreeNodeData>;\n\n /** Whether the tree as a whole renders checkboxes. */\n isCheckable: boolean;\n /** Whether this row is currently expanded. */\n isExpanded: boolean;\n /** Whether the row is in an indeterminate (half-checked) state. */\n isIndeterminate: boolean;\n /** Whether the row is fully checked. */\n isChecked: boolean;\n /** Whether `loadData` is currently fetching this row's children. */\n isLoading: boolean;\n\n /** Toggle this row's checkbox (cascades). */\n onToggleChecked: (key: string) => void;\n\n /** Row size passed to the underlying Item. */\n size?: string;\n\n /** Per-node Item customization (static object or callback). */\n itemProps?:\n | TreeItemProps\n | ((data: CubeTreeNodeData, state: TreeNodeState) => TreeItemProps);\n\n /** Styles applied to the visible row (`TreeRowItem`). */\n rowStyles?: Styles;\n\n /** Inline style for virtualizer absolute positioning. */\n virtualStyle?: CSSProperties;\n /** Ref callback from `@tanstack/react-virtual` to measure row height. */\n virtualRef?: (element: HTMLElement | null) => void;\n /** Virtual index for `data-index` attribute. */\n virtualIndex?: number;\n}\n\nfunction TreeNodeInner(props: TreeNodeProps) {\n const {\n node,\n data,\n state,\n isCheckable,\n isExpanded,\n isIndeterminate,\n isChecked,\n isLoading,\n onToggleChecked,\n size,\n itemProps,\n rowStyles,\n virtualStyle,\n virtualRef,\n virtualIndex,\n } = props;\n\n const rowRef = useRef<HTMLDivElement>(null);\n const combinedRef = useMemo(\n () => (virtualRef ? mergeRefs(rowRef, virtualRef) : rowRef),\n [virtualRef],\n );\n\n const { rowProps, gridCellProps, expandButtonProps, isPressed } = useTreeItem(\n { node },\n state,\n rowRef,\n );\n\n const isDisabled = state.disabledKeys.has(node.key);\n const isSelected = state.selectionManager.isSelected(node.key);\n\n // `useTreeItem` doesn't track hover; we need it for the `hovered` mod.\n const { hoverProps, isHovered } = useHover({ isDisabled });\n // React Aria's treegrid uses roving tabindex, so no `data-focused`\n // attribute lands on the row — mirror it as a mod manually.\n const isFocused =\n state.selectionManager.isFocused &&\n state.selectionManager.focusedKey === node.key;\n // For lazy rows with no children yet, still render a toggle unless\n // explicitly marked as leaf.\n const isLeaf =\n data.isLeaf === true || (data.isLeaf !== false && !node.hasChildNodes);\n const isRowCheckable = isCheckable && data.isCheckable !== false;\n\n const handleCheckboxChange = useEvent(() => {\n onToggleChecked(String(node.key));\n });\n\n const handleKeyDown = useEvent((e: KeyboardEvent) => {\n if (\n e.key === ' ' &&\n isRowCheckable &&\n !isDisabled &&\n !data.isCheckboxDisabled\n ) {\n e.preventDefault();\n onToggleChecked(String(node.key));\n }\n });\n\n const sharedMods = useMemo(\n () => ({\n checked: isChecked,\n indeterminate: isIndeterminate,\n expanded: isExpanded,\n loading: isLoading,\n leaf: isLeaf,\n 'has-checkbox': isRowCheckable,\n }),\n [isChecked, isIndeterminate, isExpanded, isLoading, isLeaf, isRowCheckable],\n );\n\n const rowMods = useMemo(\n () => ({ ...sharedMods, disabled: isDisabled }),\n [sharedMods, isDisabled],\n );\n\n const itemMods = useMemo(\n () => ({\n ...sharedMods,\n focused: isFocused,\n hovered: isHovered,\n pressed: isPressed,\n }),\n [sharedMods, isFocused, isHovered, isPressed],\n );\n\n const rowStyle = useMemo<CSSProperties>(\n () => ({\n ['--tree-level' as keyof CSSProperties]: String(node.level ?? 0),\n ...virtualStyle,\n }),\n [node.level, virtualStyle],\n );\n\n // Only emit `aria-checked` when the tree is in checkable mode.\n const ariaChecked: 'mixed' | 'true' | 'false' | undefined = isRowCheckable\n ? isIndeterminate\n ? 'mixed'\n : isChecked\n ? 'true'\n : 'false'\n : undefined;\n\n const finalRowProps = mergeProps(rowProps, hoverProps, {\n 'aria-checked': ariaChecked,\n onKeyDown: handleKeyDown,\n });\n\n // Leaf rows get a placeholder so sibling indents align.\n const toggleNode = isLeaf ? (\n <TreeNodeTogglePlaceholder aria-hidden data-element=\"Toggle\" />\n ) : (\n <TreeNodeToggle {...expandButtonProps} tabIndex={-1} data-element=\"Toggle\">\n {isLoading ? (\n <LoadingIcon />\n ) : (\n <DirectionIcon to={isExpanded ? 'bottom' : 'right'} />\n )}\n </TreeNodeToggle>\n );\n\n const checkboxNode = isRowCheckable ? (\n <TreeNodeCheckboxWrapper\n data-element=\"Checkbox\"\n role=\"presentation\"\n onClick={stopPropagation}\n onKeyDown={stopPropagation}\n >\n <Checkbox\n isSelected={isChecked}\n isIndeterminate={isIndeterminate}\n isDisabled={isDisabled || data.isCheckboxDisabled}\n aria-label={\n typeof data.title === 'string' ? data.title : String(node.key)\n }\n // @ts-expect-error AriaCheckboxProps loses `onChange` where InputDOMProps overlaps (react-types).\n onChange={handleCheckboxChange}\n />\n </TreeNodeCheckboxWrapper>\n ) : null;\n\n const nodeState: TreeNodeState = {\n isExpanded,\n isSelected,\n isChecked,\n isIndeterminate,\n isLeaf,\n };\n const resolvedItemProps =\n typeof itemProps === 'function' ? itemProps(data, nodeState) : itemProps;\n const { prefix: userPrefix, ...restUserProps } = resolvedItemProps ?? {};\n\n const composedPrefix =\n checkboxNode || userPrefix ? (\n <>\n {checkboxNode}\n {userPrefix}\n </>\n ) : null;\n\n return (\n <TreeNodeRow\n {...finalRowProps}\n ref={combinedRef}\n mods={rowMods}\n style={rowStyle}\n data-element=\"Row\"\n data-qa-key={String(node.key)}\n data-index={virtualIndex}\n >\n <TreeRowItem\n {...gridCellProps}\n {...restUserProps}\n size={size}\n isSelected={isSelected}\n isDisabled={isDisabled}\n mods={itemMods}\n icon={toggleNode}\n prefix={composedPrefix}\n styles={rowStyles}\n >\n {data.title}\n </TreeRowItem>\n </TreeNodeRow>\n );\n}\n\nexport const TreeNode = memo(TreeNodeInner);\n"],"mappings":";;;;;;;;;;;;;AAsBA,MAAM,mBAAmB,MAAsB;AAC7C,GAAE,iBAAiB;;AA0CrB,SAAS,cAAc,OAAsB;CAC3C,MAAM,EACJ,MACA,MACA,OACA,aACA,YACA,iBACA,WACA,WACA,iBACA,MACA,WACA,WACA,cACA,YACA,iBACE;CAEJ,MAAM,SAAS,OAAuB,KAAK;CAC3C,MAAM,cAAc,cACX,aAAa,UAAU,QAAQ,WAAW,GAAG,QACpD,CAAC,WAAW,CACb;CAED,MAAM,EAAE,UAAU,eAAe,mBAAmB,cAAc,YAChE,EAAE,MAAM,EACR,OACA,OACD;CAED,MAAM,aAAa,MAAM,aAAa,IAAI,KAAK,IAAI;CACnD,MAAM,aAAa,MAAM,iBAAiB,WAAW,KAAK,IAAI;CAG9D,MAAM,EAAE,YAAY,cAAc,SAAS,EAAE,YAAY,CAAC;CAG1D,MAAM,YACJ,MAAM,iBAAiB,aACvB,MAAM,iBAAiB,eAAe,KAAK;CAG7C,MAAM,SACJ,KAAK,WAAW,QAAS,KAAK,WAAW,SAAS,CAAC,KAAK;CAC1D,MAAM,iBAAiB,eAAe,KAAK,gBAAgB;CAE3D,MAAM,uBAAuB,eAAe;AAC1C,kBAAgB,OAAO,KAAK,IAAI,CAAC;GACjC;CAEF,MAAM,gBAAgB,UAAU,MAAqB;AACnD,MACE,EAAE,QAAQ,OACV,kBACA,CAAC,cACD,CAAC,KAAK,oBACN;AACA,KAAE,gBAAgB;AAClB,mBAAgB,OAAO,KAAK,IAAI,CAAC;;GAEnC;CAEF,MAAM,aAAa,eACV;EACL,SAAS;EACT,eAAe;EACf,UAAU;EACV,SAAS;EACT,MAAM;EACN,gBAAgB;EACjB,GACD;EAAC;EAAW;EAAiB;EAAY;EAAW;EAAQ;EAAe,CAC5E;CAED,MAAM,UAAU,eACP;EAAE,GAAG;EAAY,UAAU;EAAY,GAC9C,CAAC,YAAY,WAAW,CACzB;CAED,MAAM,WAAW,eACR;EACL,GAAG;EACH,SAAS;EACT,SAAS;EACT,SAAS;EACV,GACD;EAAC;EAAY;EAAW;EAAW;EAAU,CAC9C;CAED,MAAM,WAAW,eACR;GACJ,iBAAwC,OAAO,KAAK,SAAS,EAAE;EAChE,GAAG;EACJ,GACD,CAAC,KAAK,OAAO,aAAa,CAC3B;CAGD,MAAM,cAAsD,iBACxD,kBACE,UACA,YACE,SACA,UACJ;CAEJ,MAAM,gBAAgBA,aAAW,UAAU,YAAY;EACrD,gBAAgB;EAChB,WAAW;EACZ,CAAC;CAGF,MAAM,aAAa,SACjB,oBAAC;EAA0B;EAAY,gBAAa;GAAW,GAE/D,oBAAC;EAAe,GAAI;EAAmB,UAAU;EAAI,gBAAa;YAC/D,YACC,oBAAC,gBAAc,GAEf,oBAAC,iBAAc,IAAI,aAAa,WAAW,UAAW;GAEzC;CAGnB,MAAM,eAAe,iBACnB,oBAAC;EACC,gBAAa;EACb,MAAK;EACL,SAAS;EACT,WAAW;YAEX,oBAACC;GACC,YAAY;GACK;GACjB,YAAY,cAAc,KAAK;GAC/B,cACE,OAAO,KAAK,UAAU,WAAW,KAAK,QAAQ,OAAO,KAAK,IAAI;GAGhE,UAAU;IACV;GACsB,GACxB;CAWJ,MAAM,EAAE,QAAQ,YAAY,GAAG,mBAD7B,OAAO,cAAc,aAAa,UAAU,MARb;EAC/B;EACA;EACA;EACA;EACA;EACD,CAE6D,GAAG,cACK,EAAE;CAExE,MAAM,iBACJ,gBAAgB,aACd,8CACG,cACA,cACA,GACD;AAEN,QACE,oBAAC;EACC,GAAI;EACJ,KAAK;EACL,MAAM;EACN,OAAO;EACP,gBAAa;EACb,eAAa,OAAO,KAAK,IAAI;EAC7B,cAAY;YAEZ,oBAAC;GACC,GAAI;GACJ,GAAI;GACE;GACM;GACA;GACZ,MAAM;GACN,MAAM;GACN,QAAQ;GACR,QAAQ;aAEP,KAAK;IACM;GACF;;AAIlB,MAAa,WAAW,KAAK,cAAc"}
@@ -0,0 +1,3 @@
1
+
2
+ import { CubeTreeNodeData, CubeTreeProps, TreeLoadDataNode, TreeOnCheckInfo, TreeOnExpandInfo, TreeOnSelectInfo, TreeSelectionMode } from "./types.js";
3
+ import { Tree } from "./Tree.js";
@@ -0,0 +1,145 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.130.0 | Cube Dev Team */
2
+ import { _Item } from "../Item/Item.js";
3
+ import { Action } from "../../actions/Action/Action.js";
4
+ import { tasty } from "@tenphi/tasty";
5
+
6
+ //#region src/components/content/Tree/styled.ts
7
+ /**
8
+ * Tree root.
9
+ *
10
+ * Renders as `role="treegrid"` (set on `gridProps` from `useTree`).
11
+ *
12
+ * Tree-wide modifiers (set on `TreeElement` itself):
13
+ * - `has-height` — paired with `--tree-height` on inline `style`
14
+ * when the consumer passes a numeric `height` prop.
15
+ */
16
+ const TreeElement = tasty({
17
+ qa: "Tree",
18
+ styles: {
19
+ display: "flex",
20
+ flow: "column",
21
+ width: "100%",
22
+ height: {
23
+ "": "auto",
24
+ "has-height": "fixed $tree-height"
25
+ },
26
+ flexGrow: {
27
+ "": 1,
28
+ "has-height": 0
29
+ },
30
+ flexShrink: {
31
+ "": 1,
32
+ "has-height": 0
33
+ },
34
+ flexBasis: {
35
+ "": 0,
36
+ "has-height": "auto"
37
+ },
38
+ minHeight: 0,
39
+ overflow: "auto",
40
+ scrollbar: "thin",
41
+ fill: "#clear",
42
+ color: "#dark",
43
+ transition: "theme",
44
+ outline: 0,
45
+ padding: 0
46
+ }
47
+ });
48
+ /**
49
+ * Per-row wrapper carrying `role="row"`, `rowProps` from
50
+ * `useTreeItem`, and the `--tree-level` CSS custom property used by
51
+ * `TreeRowItem` to compute its left padding.
52
+ *
53
+ * Has no visual styles of its own — the row's appearance lives on
54
+ * the inner `TreeRowItem` (which extends `Item`).
55
+ */
56
+ const TreeNodeRow = tasty({
57
+ qa: "TreeRow",
58
+ styles: {
59
+ display: "block",
60
+ width: "100%",
61
+ outline: 0
62
+ }
63
+ });
64
+ /**
65
+ * The visible row: an `Item` extension that owns layout (full-width,
66
+ * tree indent) only. Color treatment is delegated to the
67
+ * `default.item` variant (see `DEFAULT_ITEM_STYLES` in
68
+ * `data/item-themes.ts`) so the Tree row matches the canonical Item
69
+ * look out of the box. `hovered` / `focused` / `pressed` mods are
70
+ * propagated from `TreeNode` because react-aria's treegrid uses a
71
+ * roving-tabindex "virtual focus" model and never sets those data
72
+ * attributes itself.
73
+ */
74
+ const TreeRowItem = tasty(_Item, {
75
+ qa: "TreeItem",
76
+ type: "item",
77
+ size: "medium",
78
+ as: "div",
79
+ styles: {
80
+ display: "grid",
81
+ width: "100%",
82
+ padding: "left ($tree-indent * 1.5x)",
83
+ "$tree-indent": "($tree-level, 0)",
84
+ cursor: {
85
+ "": "pointer",
86
+ disabled: "not-allowed"
87
+ }
88
+ }
89
+ });
90
+ /**
91
+ * Wraps the checkbox sitting in `Item`'s `prefix` slot. `Item`'s
92
+ * built-in Prefix padding collapses to `0` whenever there's an icon
93
+ * (which is always true for tree rows because the toggle/placeholder
94
+ * occupies the icon slot). We re-introduce a small inline gap on
95
+ * both sides so the checkbox isn't flush against the chevron and the
96
+ * title.
97
+ */
98
+ const TreeNodeCheckboxWrapper = tasty({
99
+ qa: "TreeNodeCheckboxWrapper",
100
+ styles: {
101
+ display: "grid",
102
+ placeItems: "center",
103
+ placeContent: "center",
104
+ padding: "0 1x"
105
+ }
106
+ });
107
+ const TOGGLE_BASE_STYLES = {
108
+ display: "grid",
109
+ placeItems: "center",
110
+ placeContent: "center",
111
+ width: "3x",
112
+ height: "3x",
113
+ radius: true,
114
+ transition: "theme"
115
+ };
116
+ /**
117
+ * Chevron toggle button placed in `Item`'s `icon` slot. Spreads
118
+ * `expandButtonProps` from `useTreeItem` (an AriaButtonProps) and
119
+ * stops the press from bubbling to the row's selection handler via
120
+ * React Aria's PressResponder.
121
+ */
122
+ const TreeNodeToggle = tasty(Action, {
123
+ qa: "TreeNodeToggle",
124
+ styles: {
125
+ ...TOGGLE_BASE_STYLES,
126
+ color: {
127
+ "": "#dark-02",
128
+ ":hover": "#dark"
129
+ },
130
+ fill: {
131
+ "": "#clear",
132
+ ":hover": "#dark.04"
133
+ }
134
+ }
135
+ });
136
+ /**
137
+ * Non-interactive placeholder that occupies the same footprint as
138
+ * `TreeNodeToggle` so leaf rows visually align with siblings that
139
+ * have a chevron.
140
+ */
141
+ const TreeNodeTogglePlaceholder = tasty({ styles: TOGGLE_BASE_STYLES });
142
+
143
+ //#endregion
144
+ export { TreeElement, TreeNodeCheckboxWrapper, TreeNodeRow, TreeNodeToggle, TreeNodeTogglePlaceholder, TreeRowItem };
145
+ //# sourceMappingURL=styled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styled.js","names":["Item"],"sources":["../../../../src/components/content/Tree/styled.ts"],"sourcesContent":["import { Styles, tasty } from '@tenphi/tasty';\n\nimport { Action } from '../../actions/Action/Action';\nimport { Item } from '../Item';\n\n/**\n * Tree root.\n *\n * Renders as `role=\"treegrid\"` (set on `gridProps` from `useTree`).\n *\n * Tree-wide modifiers (set on `TreeElement` itself):\n * - `has-height` — paired with `--tree-height` on inline `style`\n * when the consumer passes a numeric `height` prop.\n */\nexport const TreeElement = tasty({\n qa: 'Tree',\n styles: {\n display: 'flex',\n flow: 'column',\n width: '100%',\n height: { '': 'auto', 'has-height': 'fixed $tree-height' },\n flexGrow: { '': 1, 'has-height': 0 },\n flexShrink: { '': 1, 'has-height': 0 },\n flexBasis: { '': 0, 'has-height': 'auto' },\n minHeight: 0,\n overflow: 'auto',\n scrollbar: 'thin',\n fill: '#clear',\n color: '#dark',\n transition: 'theme',\n outline: 0,\n padding: 0,\n },\n});\n\n/**\n * Per-row wrapper carrying `role=\"row\"`, `rowProps` from\n * `useTreeItem`, and the `--tree-level` CSS custom property used by\n * `TreeRowItem` to compute its left padding.\n *\n * Has no visual styles of its own — the row's appearance lives on\n * the inner `TreeRowItem` (which extends `Item`).\n */\nexport const TreeNodeRow = tasty({\n qa: 'TreeRow',\n styles: {\n display: 'block',\n width: '100%',\n outline: 0,\n },\n});\n\n/**\n * The visible row: an `Item` extension that owns layout (full-width,\n * tree indent) only. Color treatment is delegated to the\n * `default.item` variant (see `DEFAULT_ITEM_STYLES` in\n * `data/item-themes.ts`) so the Tree row matches the canonical Item\n * look out of the box. `hovered` / `focused` / `pressed` mods are\n * propagated from `TreeNode` because react-aria's treegrid uses a\n * roving-tabindex \"virtual focus\" model and never sets those data\n * attributes itself.\n */\nexport const TreeRowItem = tasty(Item, {\n qa: 'TreeItem',\n type: 'item',\n size: 'medium',\n as: 'div',\n styles: {\n /**\n * `Item` is `inline-grid` by default, which leaves baseline\n * descender space below the row inside the block-level\n * `TreeNodeRow` and visually inflates the gap between rows\n * past the intended `1bw`. Force block-level grid here.\n */\n display: 'grid',\n width: '100%',\n /**\n * Per-level indent. `$tree-indent` is a local token that reads\n * `--tree-level` (set inline on the parent `TreeNodeRow`) with a\n * `0` fallback. Using `padding` shorthand (instead of\n * `paddingInlineStart`) so it overrides `Item`'s default\n * `padding: 0` reliably — a longhand override on a shorthand\n * loses to it in the cascade when both are emitted from the same\n * declaration block.\n */\n padding: 'left ($tree-indent * 1.5x)',\n '$tree-indent': '($tree-level, 0)',\n cursor: {\n '': 'pointer',\n disabled: 'not-allowed',\n },\n },\n});\n\n/**\n * Wraps the checkbox sitting in `Item`'s `prefix` slot. `Item`'s\n * built-in Prefix padding collapses to `0` whenever there's an icon\n * (which is always true for tree rows because the toggle/placeholder\n * occupies the icon slot). We re-introduce a small inline gap on\n * both sides so the checkbox isn't flush against the chevron and the\n * title.\n */\nexport const TreeNodeCheckboxWrapper = tasty({\n qa: 'TreeNodeCheckboxWrapper',\n styles: {\n display: 'grid',\n placeItems: 'center',\n placeContent: 'center',\n padding: '0 1x',\n },\n});\n\nconst TOGGLE_BASE_STYLES: Styles = {\n display: 'grid',\n placeItems: 'center',\n placeContent: 'center',\n width: '3x',\n height: '3x',\n radius: true,\n transition: 'theme',\n};\n\n/**\n * Chevron toggle button placed in `Item`'s `icon` slot. Spreads\n * `expandButtonProps` from `useTreeItem` (an AriaButtonProps) and\n * stops the press from bubbling to the row's selection handler via\n * React Aria's PressResponder.\n */\nexport const TreeNodeToggle = tasty(Action, {\n qa: 'TreeNodeToggle',\n styles: {\n ...TOGGLE_BASE_STYLES,\n color: { '': '#dark-02', ':hover': '#dark' },\n fill: { '': '#clear', ':hover': '#dark.04' },\n },\n});\n\n/**\n * Non-interactive placeholder that occupies the same footprint as\n * `TreeNodeToggle` so leaf rows visually align with siblings that\n * have a chevron.\n */\nexport const TreeNodeTogglePlaceholder = tasty({\n styles: TOGGLE_BASE_STYLES,\n});\n"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAa,cAAc,MAAM;CAC/B,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,MAAM;EACN,OAAO;EACP,QAAQ;GAAE,IAAI;GAAQ,cAAc;GAAsB;EAC1D,UAAU;GAAE,IAAI;GAAG,cAAc;GAAG;EACpC,YAAY;GAAE,IAAI;GAAG,cAAc;GAAG;EACtC,WAAW;GAAE,IAAI;GAAG,cAAc;GAAQ;EAC1C,WAAW;EACX,UAAU;EACV,WAAW;EACX,MAAM;EACN,OAAO;EACP,YAAY;EACZ,SAAS;EACT,SAAS;EACV;CACF,CAAC;;;;;;;;;AAUF,MAAa,cAAc,MAAM;CAC/B,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,OAAO;EACP,SAAS;EACV;CACF,CAAC;;;;;;;;;;;AAYF,MAAa,cAAc,MAAMA,OAAM;CACrC,IAAI;CACJ,MAAM;CACN,MAAM;CACN,IAAI;CACJ,QAAQ;EAON,SAAS;EACT,OAAO;EAUP,SAAS;EACT,gBAAgB;EAChB,QAAQ;GACN,IAAI;GACJ,UAAU;GACX;EACF;CACF,CAAC;;;;;;;;;AAUF,MAAa,0BAA0B,MAAM;CAC3C,IAAI;CACJ,QAAQ;EACN,SAAS;EACT,YAAY;EACZ,cAAc;EACd,SAAS;EACV;CACF,CAAC;AAEF,MAAM,qBAA6B;CACjC,SAAS;CACT,YAAY;CACZ,cAAc;CACd,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,YAAY;CACb;;;;;;;AAQD,MAAa,iBAAiB,MAAM,QAAQ;CAC1C,IAAI;CACJ,QAAQ;EACN,GAAG;EACH,OAAO;GAAE,IAAI;GAAY,UAAU;GAAS;EAC5C,MAAM;GAAE,IAAI;GAAU,UAAU;GAAY;EAC7C;CACF,CAAC;;;;;;AAOF,MAAa,4BAA4B,MAAM,EAC7C,QAAQ,oBACT,CAAC"}
@@ -0,0 +1,26 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.130.0 | Cube Dev Team */
2
+ //#region src/components/content/Tree/tree-index.ts
3
+ function buildTreeIndex(treeData) {
4
+ const byKey = /* @__PURE__ */ new Map();
5
+ const parentOf = /* @__PURE__ */ new Map();
6
+ const childrenOf = /* @__PURE__ */ new Map();
7
+ const visit = (nodes, parent) => {
8
+ for (const node of nodes) {
9
+ byKey.set(node.key, node);
10
+ parentOf.set(node.key, parent);
11
+ const childKeys = (node.children ?? []).map((c) => c.key);
12
+ childrenOf.set(node.key, childKeys);
13
+ if (node.children) visit(node.children, node.key);
14
+ }
15
+ };
16
+ visit(treeData, null);
17
+ return {
18
+ byKey,
19
+ parentOf,
20
+ childrenOf
21
+ };
22
+ }
23
+
24
+ //#endregion
25
+ export { buildTreeIndex };
26
+ //# sourceMappingURL=tree-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tree-index.js","names":[],"sources":["../../../../src/components/content/Tree/tree-index.ts"],"sourcesContent":["import type { CubeTreeNodeData } from './types';\n\n/**\n * Map of `key -> { node, parentKey, childKeys }` for fast cascading lookups.\n *\n * Built from the public `treeData` rather than from React Stately's\n * collection, because we need the consumer's original (controlled)\n * shape to derive parent/child relationships and to call back with the\n * actual `node` objects.\n *\n * Shared between `Tree.tsx` (for `nodesByKey` / `parentOf`) and\n * `useCheckboxTree` (cascading checked state) so a single tree walk\n * powers all three maps.\n */\nexport interface TreeIndex {\n byKey: Map<string, CubeTreeNodeData>;\n parentOf: Map<string, string | null>;\n childrenOf: Map<string, string[]>;\n}\n\nexport function buildTreeIndex(treeData: CubeTreeNodeData[]): TreeIndex {\n const byKey = new Map<string, CubeTreeNodeData>();\n const parentOf = new Map<string, string | null>();\n const childrenOf = new Map<string, string[]>();\n\n const visit = (nodes: CubeTreeNodeData[], parent: string | null) => {\n for (const node of nodes) {\n byKey.set(node.key, node);\n parentOf.set(node.key, parent);\n const childKeys = (node.children ?? []).map((c) => c.key);\n childrenOf.set(node.key, childKeys);\n if (node.children) {\n visit(node.children, node.key);\n }\n }\n };\n\n visit(treeData, null);\n\n return { byKey, parentOf, childrenOf };\n}\n"],"mappings":";;AAoBA,SAAgB,eAAe,UAAyC;CACtE,MAAM,wBAAQ,IAAI,KAA+B;CACjD,MAAM,2BAAW,IAAI,KAA4B;CACjD,MAAM,6BAAa,IAAI,KAAuB;CAE9C,MAAM,SAAS,OAA2B,WAA0B;AAClE,OAAK,MAAM,QAAQ,OAAO;AACxB,SAAM,IAAI,KAAK,KAAK,KAAK;AACzB,YAAS,IAAI,KAAK,KAAK,OAAO;GAC9B,MAAM,aAAa,KAAK,YAAY,EAAE,EAAE,KAAK,MAAM,EAAE,IAAI;AACzD,cAAW,IAAI,KAAK,KAAK,UAAU;AACnC,OAAI,KAAK,SACP,OAAM,KAAK,UAAU,KAAK,IAAI;;;AAKpC,OAAM,UAAU,KAAK;AAErB,QAAO;EAAE;EAAO;EAAU;EAAY"}
@@ -0,0 +1,174 @@
1
+
2
+ import { CubeItemProps } from "../Item/Item.js";
3
+ import { SizeName } from "../../../tokens/sizes.js";
4
+ import { BaseProps, OuterStyleProps, Styles } from "@tenphi/tasty";
5
+ import { ReactNode } from "react";
6
+ import { Key as Key$1 } from "@react-types/shared";
7
+
8
+ //#region src/components/content/Tree/types.d.ts
9
+ /** Selection cardinality, mirroring React Aria/Stately's `selectionMode`. */
10
+ type TreeSelectionMode = 'none' | 'single' | 'multiple';
11
+ /**
12
+ * A single node in the `treeData` array.
13
+ *
14
+ * Mirrors AntD's `DataNode` shape but renames boolean flags to the
15
+ * `is*` convention used throughout `@cube-dev/ui-kit`.
16
+ */
17
+ interface CubeTreeNodeData {
18
+ /** Unique identifier of the node. */
19
+ key: string;
20
+ /** Visible label (any `ReactNode`). */
21
+ title: ReactNode;
22
+ /** Children. Pass `undefined` together with `isLeaf={false}` for lazy nodes. */
23
+ children?: CubeTreeNodeData[];
24
+ /** Force leaf rendering (no expand toggle, no `loadData` call). */
25
+ isLeaf?: boolean;
26
+ /** Disable interactions on this row (focus / select / expand / check). */
27
+ isDisabled?: boolean;
28
+ /** Disable only the checkbox of this row. */
29
+ isCheckboxDisabled?: boolean;
30
+ /**
31
+ * Per-node `isCheckable` override.
32
+ *
33
+ * - `undefined` (default): inherits the tree-level `isCheckable`.
34
+ * - `false`: hide the checkbox for this row even when the tree is `isCheckable`.
35
+ */
36
+ isCheckable?: boolean;
37
+ }
38
+ /** Info passed as the second argument to `onCheck`. */
39
+ interface TreeOnCheckInfo {
40
+ /** Whether the toggled node ended up checked. */
41
+ checked: boolean;
42
+ /** The toggled node. */
43
+ node: CubeTreeNodeData;
44
+ /** All currently checked nodes (flat). */
45
+ checkedNodes: CubeTreeNodeData[];
46
+ /** Keys of nodes in indeterminate state. */
47
+ halfCheckedKeys: Key$1[];
48
+ }
49
+ /** Info passed as the second argument to `onExpand`. */
50
+ interface TreeOnExpandInfo {
51
+ /** Whether the toggled node ended up expanded. */
52
+ expanded: boolean;
53
+ /** The toggled node. */
54
+ node: CubeTreeNodeData;
55
+ }
56
+ /** Info passed as the second argument to `onSelect`. */
57
+ interface TreeOnSelectInfo {
58
+ /** Whether the toggled node ended up selected. */
59
+ selected: boolean;
60
+ /** The toggled node. */
61
+ node: CubeTreeNodeData;
62
+ /** All currently selected nodes (flat). */
63
+ selectedNodes: CubeTreeNodeData[];
64
+ }
65
+ /** Current visual/interaction state of a tree node, passed as the second argument to `itemProps`. */
66
+ interface TreeNodeState {
67
+ isExpanded: boolean;
68
+ isSelected: boolean;
69
+ isChecked: boolean;
70
+ isIndeterminate: boolean;
71
+ isLeaf: boolean;
72
+ }
73
+ /** Props that can be customized per tree node via `itemProps`. */
74
+ type TreeItemProps = Partial<Pick<CubeItemProps, 'prefix' | 'suffix' | 'actions' | 'autoHideActions' | 'preserveActionsSpace' | 'description' | 'descriptionPlacement' | 'rightIcon' | 'tooltip' | 'highlight' | 'highlightCaseSensitive' | 'highlightStyles'>>;
75
+ /** Argument shape for the `loadData` callback. */
76
+ interface TreeLoadDataNode {
77
+ key: Key$1;
78
+ children?: CubeTreeNodeData[];
79
+ }
80
+ /**
81
+ * Public props for the `Tree` component.
82
+ *
83
+ * Designed to be a drop-in (modulo `is*` renames) for the AntD `Tree`
84
+ * `treeData` API, scoped to the v1 feature set.
85
+ */
86
+ interface CubeTreeProps extends BaseProps, OuterStyleProps {
87
+ /** Hierarchical data describing the tree. */
88
+ treeData: CubeTreeNodeData[];
89
+ /** Render a checkbox in front of every (eligible) row. */
90
+ isCheckable?: boolean;
91
+ /** Allow row selection. Sugar for `selectionMode="none"` when `false`. */
92
+ isSelectable?: boolean;
93
+ /** Selection cardinality. Defaults to `'single'`. */
94
+ selectionMode?: TreeSelectionMode;
95
+ /** Row size. Defaults to `'medium'`. */
96
+ size?: SizeName;
97
+ /** Disable the entire tree. */
98
+ isDisabled?: boolean;
99
+ /** Default expanded keys (uncontrolled). */
100
+ defaultExpandedKeys?: string[];
101
+ /** Controlled expanded keys. */
102
+ expandedKeys?: string[];
103
+ /**
104
+ * Auto-expand parents of currently expanded keys.
105
+ *
106
+ * Useful while filtering: passing matched leaf keys with this flag will
107
+ * keep their parents expanded as well.
108
+ */
109
+ autoExpandParent?: boolean;
110
+ /** Default checked keys (uncontrolled). */
111
+ defaultCheckedKeys?: string[];
112
+ /**
113
+ * Controlled checked keys.
114
+ *
115
+ * Accepts either an array of keys or AntD's `{ checked, halfChecked }` shape.
116
+ */
117
+ checkedKeys?: string[] | {
118
+ checked: string[];
119
+ halfChecked?: string[];
120
+ };
121
+ /** Default selected keys (uncontrolled). */
122
+ defaultSelectedKeys?: string[];
123
+ /** Controlled selected keys. */
124
+ selectedKeys?: string[];
125
+ /**
126
+ * Fixed height in pixels. When omitted, the tree fills the available
127
+ * vertical space and scrolls internally.
128
+ */
129
+ height?: number;
130
+ /**
131
+ * Async loader called the first time a non-leaf node with no `children`
132
+ * is expanded. The consumer is expected to merge new children into
133
+ * `treeData` (typical AntD pattern).
134
+ */
135
+ loadData?: (node: TreeLoadDataNode) => Promise<void>;
136
+ /** Called when a node is expanded or collapsed. */
137
+ onExpand?: (expandedKeys: Key$1[], info: TreeOnExpandInfo) => void;
138
+ /**
139
+ * Called when a node is checked or unchecked.
140
+ *
141
+ * The first argument is `Key[]` by default; pass `checkedKeys` as
142
+ * `{ checked, halfChecked }` to receive the same shape back.
143
+ */
144
+ onCheck?: (checked: Key$1[] | {
145
+ checked: Key$1[];
146
+ halfChecked: Key$1[];
147
+ }, info: TreeOnCheckInfo) => void;
148
+ /** Called when row selection changes. */
149
+ onSelect?: (selectedKeys: Key$1[], info: TreeOnSelectInfo) => void;
150
+ /**
151
+ * Customize Item props per tree node.
152
+ *
153
+ * Accepts a static object (applied to every row) or a callback that
154
+ * receives the node data and returns props for that row.
155
+ *
156
+ * Supported props: `prefix`, `suffix`, `actions`, `autoHideActions`,
157
+ * `preserveActionsSpace`, `description`, `descriptionPlacement`,
158
+ * `rightIcon`, `tooltip`, `highlight`, `highlightCaseSensitive`,
159
+ * `highlightStyles`.
160
+ *
161
+ * The `icon` slot is reserved for the expand/collapse toggle.
162
+ * Use `prefix` for custom node icons.
163
+ */
164
+ itemProps?: TreeItemProps | ((data: CubeTreeNodeData, state: TreeNodeState) => TreeItemProps);
165
+ /** Override styles for `[data-element="Row"]` (per-row root). */
166
+ rowStyles?: Styles;
167
+ /** Accessible label for the tree. Defaults to `"Tree"`. */
168
+ ariaLabel?: string;
169
+ /** QA selector. */
170
+ qa?: string;
171
+ }
172
+ //#endregion
173
+ export { CubeTreeNodeData, CubeTreeProps, TreeLoadDataNode, TreeOnCheckInfo, TreeOnExpandInfo, TreeOnSelectInfo, TreeSelectionMode };
174
+ //# sourceMappingURL=types.d.ts.map