@cube-dev/ui-kit 0.0.0-canary-7298754 → 0.0.0-canary-cb3e2bd

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 (430) hide show
  1. package/dist/CHANGELOG.md +17 -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.d.ts +0 -1
  20. package/dist/components/actions/Button/Button.js +1 -1
  21. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  22. package/dist/components/actions/ButtonSplit/ButtonSplit.js +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 +317 -0
  90. package/dist/components/content/Tree/Tree.js.map +1 -0
  91. package/dist/components/content/Tree/TreeNode.js +131 -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 +163 -0
  95. package/dist/components/content/Tree/styled.js.map +1 -0
  96. package/dist/components/content/Tree/types.d.ts +145 -0
  97. package/dist/components/content/Tree/use-checkbox-tree.js +251 -0
  98. package/dist/components/content/Tree/use-checkbox-tree.js.map +1 -0
  99. package/dist/components/content/Tree/use-load-data.js +68 -0
  100. package/dist/components/content/Tree/use-load-data.js.map +1 -0
  101. package/dist/components/content/highlightText.js +1 -1
  102. package/dist/components/content/use-auto-tooltip.js +1 -1
  103. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  104. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  105. package/dist/components/fields/Checkbox/context.js +1 -1
  106. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  107. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  108. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  109. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  110. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  111. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  112. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  113. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  114. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  115. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  116. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  117. package/dist/components/fields/DatePicker/intl.js +1 -1
  118. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  119. package/dist/components/fields/DatePicker/props.js +1 -1
  120. package/dist/components/fields/DatePicker/utils.js +1 -1
  121. package/dist/components/fields/FileInput/FileInput.js +1 -1
  122. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  123. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  124. package/dist/components/fields/Input/Input.js +1 -1
  125. package/dist/components/fields/ListBox/ListBox.js +1 -1
  126. package/dist/components/fields/NumberInput/NumberInput.js +2 -2
  127. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  128. package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
  129. package/dist/components/fields/Picker/Picker.js +1 -1
  130. package/dist/components/fields/RadioGroup/Radio.js +2 -2
  131. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  132. package/dist/components/fields/RadioGroup/context.js +1 -1
  133. package/dist/components/fields/SearchInput/SearchInput.js +2 -2
  134. package/dist/components/fields/Select/Select.js +1 -1
  135. package/dist/components/fields/Slider/Gradation.js +1 -1
  136. package/dist/components/fields/Slider/HueSlider.js +1 -1
  137. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  138. package/dist/components/fields/Slider/Slider.js +1 -1
  139. package/dist/components/fields/Slider/SliderBase.js +1 -1
  140. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  141. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  142. package/dist/components/fields/Slider/elements.js +1 -1
  143. package/dist/components/fields/Slider/index.js +1 -1
  144. package/dist/components/fields/Switch/Switch.js +1 -1
  145. package/dist/components/fields/TextArea/TextArea.js +2 -2
  146. package/dist/components/fields/TextInput/TextInput.js +2 -2
  147. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  148. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  149. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  150. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  151. package/dist/components/form/Form/Field.js +1 -1
  152. package/dist/components/form/Form/Form.js +1 -1
  153. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  154. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  155. package/dist/components/form/Form/SubmitError.js +1 -1
  156. package/dist/components/form/Form/index.js +1 -1
  157. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  158. package/dist/components/form/Form/use-field/use-field.js +1 -1
  159. package/dist/components/form/Form/use-form.js +1 -1
  160. package/dist/components/form/Form/validation.js +1 -1
  161. package/dist/components/form/Label.js +1 -1
  162. package/dist/components/form/wrapper.js +1 -1
  163. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  164. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  165. package/dist/components/layout/Flex.js +1 -1
  166. package/dist/components/layout/Flow.js +1 -1
  167. package/dist/components/layout/Grid.js +1 -1
  168. package/dist/components/layout/Panel.js +1 -1
  169. package/dist/components/layout/Prefix.js +1 -1
  170. package/dist/components/layout/ResizablePanel.js +1 -1
  171. package/dist/components/layout/Space.js +1 -1
  172. package/dist/components/layout/Suffix.js +1 -1
  173. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  174. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  175. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  176. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  177. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  178. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  179. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  180. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  181. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  182. package/dist/components/navigation/Tabs/styled.js +1 -1
  183. package/dist/components/navigation/Tabs/types.js +1 -1
  184. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  185. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  186. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  187. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  188. package/dist/components/other/Calendar/Calendar.js +1 -1
  189. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  190. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  191. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  192. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  193. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  194. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  195. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  196. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  197. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  198. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  199. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  200. package/dist/components/overlays/Dialog/context.js +1 -1
  201. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  202. package/dist/components/overlays/Modal/Modal.d.ts +1 -2
  203. package/dist/components/overlays/Modal/Modal.js +1 -1
  204. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  205. package/dist/components/overlays/Modal/Overlay.d.ts +0 -1
  206. package/dist/components/overlays/Modal/Overlay.js +1 -1
  207. package/dist/components/overlays/Modal/Popover.js +1 -1
  208. package/dist/components/overlays/Modal/Tray.js +1 -1
  209. package/dist/components/overlays/Modal/Underlay.js +1 -1
  210. package/dist/components/overlays/Notifications/Notification.js +1 -1
  211. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  212. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  213. package/dist/components/overlays/Notifications/NotificationContext.d.ts +0 -2
  214. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  215. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  216. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  217. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  218. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  219. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  220. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  221. package/dist/components/overlays/Notifications/index.js +1 -1
  222. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  223. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  224. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  225. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  226. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  227. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  228. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  229. package/dist/components/overlays/Toast/index.js +1 -1
  230. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  231. package/dist/components/overlays/Toast/useToast.js +1 -1
  232. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  233. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  234. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  235. package/dist/components/overlays/Tooltip/context.js +1 -1
  236. package/dist/components/portal/Portal.js +1 -1
  237. package/dist/components/portal/PortalProvider.js +1 -1
  238. package/dist/components/portal/index.d.ts +0 -1
  239. package/dist/components/portal/usePortal.js +1 -1
  240. package/dist/components/shared/InvalidIcon.js +1 -1
  241. package/dist/components/shared/ValidIcon.js +1 -1
  242. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  243. package/dist/components/status/Spin/Cube.js +1 -1
  244. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  245. package/dist/components/status/Spin/Spin.js +1 -1
  246. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  247. package/dist/data/item-themes.js +1 -1
  248. package/dist/data/themes.js +1 -1
  249. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  250. package/dist/icons/AdjustmentsIcon.js +1 -1
  251. package/dist/icons/AiIcon.js +1 -1
  252. package/dist/icons/AreaChartIcon.js +1 -1
  253. package/dist/icons/BackwardIcon.js +1 -1
  254. package/dist/icons/BarChartIcon.js +1 -1
  255. package/dist/icons/BellFilledIcon.js +1 -1
  256. package/dist/icons/BellIcon.js +1 -1
  257. package/dist/icons/BooleanIcon.js +1 -1
  258. package/dist/icons/CalendarEditIcon.js +1 -1
  259. package/dist/icons/CalendarIcon.js +1 -1
  260. package/dist/icons/CaretDownIcon.js +1 -1
  261. package/dist/icons/CaretUpIcon.js +1 -1
  262. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  263. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  264. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  265. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  266. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  267. package/dist/icons/ChartBarLineIcon.js +1 -1
  268. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  269. package/dist/icons/ChartBarStackedIcon.js +1 -1
  270. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  271. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  272. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  273. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  274. package/dist/icons/ChartBubbleIcon.js +1 -1
  275. package/dist/icons/ChartDonut2Icon.js +1 -1
  276. package/dist/icons/ChartFunnelIcon.js +1 -1
  277. package/dist/icons/ChartHeatmapIcon.js +1 -1
  278. package/dist/icons/ChartKPIIcon.js +1 -1
  279. package/dist/icons/ChartPie2Icon.js +1 -1
  280. package/dist/icons/ChartScatterIcon.js +1 -1
  281. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  282. package/dist/icons/CheckCircleIcon.js +1 -1
  283. package/dist/icons/CheckIcon.js +1 -1
  284. package/dist/icons/CircleFilledIcon.js +1 -1
  285. package/dist/icons/ClearIcon.js +1 -1
  286. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  287. package/dist/icons/CloseCircleIcon.js +1 -1
  288. package/dist/icons/CloseIcon.js +1 -1
  289. package/dist/icons/CodeIcon.js +1 -1
  290. package/dist/icons/ColumnTotalIcon.js +1 -1
  291. package/dist/icons/CopyIcon.js +1 -1
  292. package/dist/icons/CountIcon.js +1 -1
  293. package/dist/icons/CubeIcon.js +1 -1
  294. package/dist/icons/CubePauseIcon.js +1 -1
  295. package/dist/icons/CubePlayIcon.js +1 -1
  296. package/dist/icons/CurrencyDollarIcon.js +1 -1
  297. package/dist/icons/DangerIcon.js +1 -1
  298. package/dist/icons/DashboardIcon.js +1 -1
  299. package/dist/icons/DatabaseIcon.js +1 -1
  300. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  301. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  302. package/dist/icons/DirectionIcon.js +1 -1
  303. package/dist/icons/DonutIcon.js +1 -1
  304. package/dist/icons/DownIcon.js +1 -1
  305. package/dist/icons/EditIcon.js +1 -1
  306. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  307. package/dist/icons/ExclamationCircleIcon.js +1 -1
  308. package/dist/icons/ExclamationIcon.js +1 -1
  309. package/dist/icons/EyeIcon.js +1 -1
  310. package/dist/icons/EyeInvisibleIcon.js +1 -1
  311. package/dist/icons/FilterIcon.js +1 -1
  312. package/dist/icons/FolderFilledIcon.js +1 -1
  313. package/dist/icons/FolderIcon.js +1 -1
  314. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  315. package/dist/icons/FolderOpenIcon.js +1 -1
  316. package/dist/icons/ForwardIcon.js +1 -1
  317. package/dist/icons/HierarchyIcon.js +1 -1
  318. package/dist/icons/HierarchyOpenIcon.js +1 -1
  319. package/dist/icons/Icon.js +1 -1
  320. package/dist/icons/InfoCircleIcon.js +1 -1
  321. package/dist/icons/InfoIcon.js +1 -1
  322. package/dist/icons/KeyIcon.js +1 -1
  323. package/dist/icons/LeftIcon.js +1 -1
  324. package/dist/icons/LineChartIcon.js +1 -1
  325. package/dist/icons/LoadingIcon.js +1 -1
  326. package/dist/icons/LockFilledIcon.js +1 -1
  327. package/dist/icons/LockIcon.js +1 -1
  328. package/dist/icons/MoreIcon.js +1 -1
  329. package/dist/icons/NotAllowedIcon.js +1 -1
  330. package/dist/icons/Number123Icon.js +1 -1
  331. package/dist/icons/NumberIcon.js +1 -1
  332. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  333. package/dist/icons/PauseCircleIcon.js +1 -1
  334. package/dist/icons/PauseIcon.js +1 -1
  335. package/dist/icons/PercentageIcon.js +1 -1
  336. package/dist/icons/PieChartIcon.js +1 -1
  337. package/dist/icons/PlayCircleIcon.js +1 -1
  338. package/dist/icons/PlayIcon.js +1 -1
  339. package/dist/icons/PlusIcon.js +1 -1
  340. package/dist/icons/ProgressBarIcon.js +1 -1
  341. package/dist/icons/ReloadIcon.js +1 -1
  342. package/dist/icons/ReportIcon.js +1 -1
  343. package/dist/icons/ReturnIcon.js +1 -1
  344. package/dist/icons/RightIcon.js +1 -1
  345. package/dist/icons/RowTotalsIcon.js +1 -1
  346. package/dist/icons/SchemeIcon.js +1 -1
  347. package/dist/icons/SearchIcon.js +1 -1
  348. package/dist/icons/SemanticQueryIcon.js +1 -1
  349. package/dist/icons/SettingsIcon.js +1 -1
  350. package/dist/icons/ShieldFilledIcon.js +1 -1
  351. package/dist/icons/ShieldIcon.js +1 -1
  352. package/dist/icons/SlashIcon.js +1 -1
  353. package/dist/icons/SparklesIcon.js +1 -1
  354. package/dist/icons/SqlIcon.js +1 -1
  355. package/dist/icons/StatsIcon.js +1 -1
  356. package/dist/icons/StopIcon.js +1 -1
  357. package/dist/icons/StringIcon.js +1 -1
  358. package/dist/icons/SubtotalsIcon.js +1 -1
  359. package/dist/icons/SwitchIcon.js +1 -1
  360. package/dist/icons/TableIcon.js +1 -1
  361. package/dist/icons/ThumbsDownIcon.js +1 -1
  362. package/dist/icons/ThumbsUpIcon.js +1 -1
  363. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  364. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  365. package/dist/icons/ThunderboltIcon.js +1 -1
  366. package/dist/icons/TimeIcon.js +1 -1
  367. package/dist/icons/TrashIcon.js +1 -1
  368. package/dist/icons/UnlockIcon.js +1 -1
  369. package/dist/icons/UpIcon.js +1 -1
  370. package/dist/icons/UserGroupIcon.js +1 -1
  371. package/dist/icons/UserIcon.js +1 -1
  372. package/dist/icons/UserLockIcon.js +1 -1
  373. package/dist/icons/ViewIcon.js +1 -1
  374. package/dist/icons/WarningFilledIcon.js +1 -1
  375. package/dist/icons/WarningIcon.js +1 -1
  376. package/dist/icons/wrap-icon.js +1 -1
  377. package/dist/index.d.ts +4 -1
  378. package/dist/index.js +5 -4
  379. package/dist/index.js.map +1 -1
  380. package/dist/provider.js +1 -1
  381. package/dist/providers/TrackingProvider.js +1 -1
  382. package/dist/providers/navigationAdapter.default.js +1 -1
  383. package/dist/tokens/base.js +1 -1
  384. package/dist/tokens/colors.js +1 -1
  385. package/dist/tokens/index.js +1 -1
  386. package/dist/tokens/layout.js +1 -1
  387. package/dist/tokens/shadows.js +1 -1
  388. package/dist/tokens/sizes.js +1 -1
  389. package/dist/tokens/spacing.js +1 -1
  390. package/dist/tokens/typography.js +1 -1
  391. package/dist/utils/ResizeSensor.js +1 -1
  392. package/dist/utils/is-dev-env.js +1 -1
  393. package/dist/utils/modules.js +1 -1
  394. package/dist/utils/promise.js +1 -1
  395. package/dist/utils/raf.js +1 -1
  396. package/dist/utils/random.js +1 -1
  397. package/dist/utils/range.js +1 -1
  398. package/dist/utils/react/RenderCache.js +1 -1
  399. package/dist/utils/react/Slots.js +1 -1
  400. package/dist/utils/react/chain.js +1 -1
  401. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  402. package/dist/utils/react/index.js +1 -1
  403. package/dist/utils/react/interactions.js +1 -1
  404. package/dist/utils/react/isTextOnly.js +1 -1
  405. package/dist/utils/react/mapProps.js +1 -1
  406. package/dist/utils/react/mergeProps.js +1 -1
  407. package/dist/utils/react/nullableValue.js +1 -1
  408. package/dist/utils/react/resolveIcon.js +1 -1
  409. package/dist/utils/react/sharedStore.js +1 -1
  410. package/dist/utils/react/useCombinedRefs.js +1 -1
  411. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  412. package/dist/utils/react/useEventBus.js +1 -1
  413. package/dist/utils/react/useId.js +1 -1
  414. package/dist/utils/react/useIsDarwin.js +1 -1
  415. package/dist/utils/react/useKeySymbols.js +1 -1
  416. package/dist/utils/react/useLayoutEffect.js +1 -1
  417. package/dist/utils/react/useLocalStorage.js +1 -1
  418. package/dist/utils/react/useMergeStyles.js +1 -1
  419. package/dist/utils/react/useQaProps.js +1 -1
  420. package/dist/utils/react/useViewportSize.js +1 -1
  421. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  422. package/dist/utils/selection.js +1 -1
  423. package/dist/utils/styles.js +1 -1
  424. package/dist/utils/tree.js +1 -1
  425. package/dist/utils/warnings.js +1 -1
  426. package/dist/version.js +2 -2
  427. package/docs/components/content/Tree.md +308 -0
  428. package/docs/tasty/dsl.md +1 -0
  429. package/package.json +2 -2
  430. package/dist/components/portal/PortalProvider.d.ts +0 -2
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/is-dev-env.ts
3
3
  function isDevEnv() {
4
4
  if (typeof window !== "undefined" && window.localStorage) try {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/modules.ts
3
3
  function extractModule(promise) {
4
4
  return promise.then((module) => module.default || module);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/promise.ts
3
3
  function timeout(ms = 30) {
4
4
  return new Promise((resolve) => {
package/dist/utils/raf.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/raf.ts
3
3
  /**
4
4
  * Chains N requestAnimationFrame calls and returns a cancel function.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/random.ts
3
3
  function random(min, max) {
4
4
  const realMin = min < max ? min : max;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/range.ts
3
3
  function range(count) {
4
4
  return Array.from({ length: count }, (_, i) => i);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { useRef } from "react";
3
3
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { mergeProps } from "./mergeProps.js";
3
3
  import { Children, cloneElement, createContext, useContext, useMemo } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/react/chain.ts
3
3
  /**
4
4
  * Calls all functions in the order they were chained with the same arguments.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/react/forwardRefWithGenerics.tsx
3
3
  /**
4
4
  * A helper for creating forwardRef components with generic types.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { chain } from "./chain.js";
3
3
  import { forwardRefWithGenerics } from "./forwardRefWithGenerics.js";
4
4
  import { isTextOnly } from "./isTextOnly.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { useState } from "react";
3
3
  import { useFocus, useFocusVisible } from "react-aria";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { Children, isValidElement } from "react";
3
3
 
4
4
  //#region src/utils/react/isTextOnly.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/react/mapProps.ts
3
3
  /** Converts AriaButtonProps to CubeButtonProps */
4
4
  function ariaToCubeButtonProps(props) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { chain } from "./chain.js";
3
3
  import { mergeIds } from "./useId.js";
4
4
  import { mergeStyles } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/react/nullableValue.ts
3
3
  function castNullableStringValue(props) {
4
4
  return castNullableField(props, ["value", "defaultValue"], "string", (v) => String(v));
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/react/resolveIcon.ts
3
3
  /**
4
4
  * Resolves a dynamic icon prop to its content and slot state.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { useEffect, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useCombinedRefs.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { createSharedStore } from "./sharedStore.js";
3
3
  import { useEffect } from "react";
4
4
  import { useFocusVisible } from "react-aria";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import React, { createContext, useCallback, useContext, useEffect, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useEventBus.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { useSSRSafeId } from "@react-aria/ssr";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useIsDarwin.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { useIsDarwin } from "./useIsDarwin.js";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import * as React$1 from "react";
3
3
 
4
4
  //#region src/utils/react/useLayoutEffect.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useCallback, useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { mergeStyles } from "@tenphi/tasty";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/react/useQaProps.ts
3
3
  /**
4
4
  * Processes QA props.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useViewportSize.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  import { isValidElement } from "react";
3
3
  import { isFragment } from "react-is";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/selection.ts
3
3
  /**
4
4
  * Deduplicate/toggle keys in a selection: if a key appears twice it is
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/styles.ts
3
3
  /**
4
4
  * Split properties into style and non-style properties.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/tree.ts
3
3
  function toFlatTree(tree, includingFolders) {
4
4
  return tree.reduce((result, node) => {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/utils/warnings.ts
3
3
  const SUGGESTED_PROP_MAP = {
4
4
  disabled: "isDisabled",
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-7298754 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-cb3e2bd | Cube Dev Team */
2
2
  //#region src/version.ts
3
- const VERSION = "0.0.0-canary-7298754";
3
+ const VERSION = "0.0.0-canary-cb3e2bd";
4
4
  if (typeof window !== "undefined") {
5
5
  const version = VERSION;
6
6
  window.CubeUIKit = window.CubeUIKit || { version };
@@ -0,0 +1,308 @@
1
+ # Tree
2
+
3
+ Tree displays hierarchical data as a list of nodes you can expand, collapse,
4
+ select, and (optionally) check. Built on `useTree` and `useTreeState`
5
+ (React Aria + React Stately) and styled with Tasty.
6
+
7
+ The component's data shape (`treeData`) and the public callback shape are
8
+ designed to be a near drop-in for AntD's `Tree` (modulo the `is*` boolean
9
+ prop convention used across `@cube-dev/ui-kit`), so existing AntD `Tree`
10
+ consumers can be migrated with minimal churn.
11
+
12
+ ## When to Use
13
+
14
+ - Rendering hierarchical structures such as file systems, organizational
15
+ charts, navigation, or schema browsers.
16
+ - Letting users select one or many nodes from a tree, with cascading
17
+ parent/child checkbox semantics.
18
+ - Lazily loading children when a node is expanded the first time
19
+ (`loadData`).
20
+ - Filtering with auto-expanded ancestors (`autoExpandParent`).
21
+
22
+ ## Component
23
+
24
+ ---
25
+
26
+ ### Properties
27
+
28
+ - **`treeData`** `CubeTreeNodeData[]` — Hierarchical data describing the
29
+ tree.
30
+ - **`isCheckable`** `boolean` (default: `false`) — Render a checkbox in
31
+ front of every eligible row.
32
+ - **`isSelectable`** `boolean` — Sugar for `selectionMode="none"` when
33
+ `false`. `selectionMode` wins when both are passed.
34
+ - **`selectionMode`** `'none' | 'single' | 'multiple'` (default: `'single'`)
35
+ — Selection cardinality.
36
+ - **`blockNode`** `boolean` (default: `false`) — Stretch each row to fill
37
+ the container width.
38
+ - **`isDisabled`** `boolean` (default: `false`) — Disable the entire tree.
39
+ - **`defaultExpandedKeys`** `string[]` — Default expanded keys
40
+ (uncontrolled).
41
+ - **`expandedKeys`** `string[]` — Controlled expanded keys.
42
+ - **`autoExpandParent`** `boolean` (default: `false`) — Auto-expand parents
43
+ of currently expanded keys. Useful for filtering.
44
+ - **`defaultCheckedKeys`** `string[]` — Default checked keys (uncontrolled).
45
+ - **`checkedKeys`** `string[] | { checked: string[]; halfChecked?: string[] }`
46
+ — Controlled checked keys. Pass the object form to receive the same
47
+ shape back from `onCheck`.
48
+ - **`defaultSelectedKeys`** `string[]` — Default selected keys
49
+ (uncontrolled).
50
+ - **`selectedKeys`** `string[]` — Controlled selected keys.
51
+ - **`height`** `number` — Fixed height in pixels. When omitted, the tree
52
+ fills the available vertical space and scrolls internally.
53
+ - **`loadData`** `(node: TreeLoadDataNode) => Promise<void>` — Async
54
+ loader called the first time a non-leaf node with no `children` is
55
+ expanded. The consumer is expected to merge new children into
56
+ `treeData` (typical AntD pattern).
57
+ - **`onExpand`** `(expandedKeys: Key[], info: TreeOnExpandInfo) => void` —
58
+ Called when a node is expanded or collapsed.
59
+ - **`onCheck`** `(checked: Key[] | { checked, halfChecked }, info: TreeOnCheckInfo) => void`
60
+ — Called when a node is checked or unchecked.
61
+ - **`onSelect`** `(selectedKeys: Key[], info: TreeOnSelectInfo) => void` —
62
+ Called when row selection changes.
63
+ - **`rowStyles`** `Styles` — Override styles for `[data-element="Row"]`.
64
+
65
+ #### `CubeTreeNodeData`
66
+
67
+ - **`key`** `string` — Unique identifier of the node.
68
+ - **`title`** `ReactNode` — Visible label.
69
+ - **`children`** `CubeTreeNodeData[]` — Children. Pass `undefined`
70
+ together with `isLeaf={false}` for lazy nodes.
71
+ - **`isLeaf`** `boolean` — Force leaf rendering (no expand toggle, no
72
+ `loadData` call).
73
+ - **`isDisabled`** `boolean` — Disable interactions on this row (focus /
74
+ select / expand / check).
75
+ - **`isCheckboxDisabled`** `boolean` — Disable only the checkbox of this
76
+ row.
77
+ - **`isCheckable`** `boolean` — Per-node override; `false` hides the
78
+ checkbox for this row even when the tree is `isCheckable`.
79
+
80
+ ### Base Properties
81
+
82
+ Supports [Base properties](../../BaseProperties.md)
83
+
84
+ ### Styling Properties
85
+
86
+ #### styles
87
+
88
+ Customizes the root `treegrid` element of the Tree.
89
+
90
+ **Sub-elements:**
91
+
92
+ - `Row` — A single tree row (also targetable via the dedicated
93
+ `rowStyles` prop).
94
+
95
+ #### rowStyles
96
+
97
+ Customizes `[data-element="Row"]`. Useful when you need to override row
98
+ spacing, hover/selected colors, or cell layout without re-targeting via
99
+ `styles`.
100
+
101
+ **Sub-elements:**
102
+
103
+ - `Toggle` — The expand/collapse button.
104
+ - `Checkbox` — The checkbox slot (visible only when `isCheckable`).
105
+ - `Title` — The title label.
106
+
107
+ ### Modifiers
108
+
109
+ The following row-level modifiers are emitted automatically. They are
110
+ useful when overriding `rowStyles`:
111
+
112
+ | Modifier | Type | Description |
113
+ | --------------- | --------- | ------------------------------------------------------ |
114
+ | `selected` | `boolean` | Row is selected. |
115
+ | `checked` | `boolean` | Row is fully checked. |
116
+ | `indeterminate` | `boolean` | Row is in the half-checked state. |
117
+ | `expanded` | `boolean` | Row is expanded. |
118
+ | `disabled` | `boolean` | Row is disabled. |
119
+ | `loading` | `boolean` | The row's children are being fetched via `loadData`. |
120
+ | `leaf` | `boolean` | Row has no children. |
121
+ | `block-node` | `boolean` | Tree is in `blockNode` mode. |
122
+ | `has-checkbox` | `boolean` | Row renders a checkbox. |
123
+
124
+ ## Variants
125
+
126
+ ### Selection Modes
127
+
128
+ - `none` — Row click does not select. Useful in pure-display or pure-
129
+ checkable trees.
130
+ - `single` (default) — One row selected at a time.
131
+ - `multiple` — Multi-select with keyboard modifiers and shift-range.
132
+
133
+ ## Examples
134
+
135
+ ### Basic Usage
136
+
137
+ ```jsx
138
+ const data = [
139
+ { key: 'fruits', title: 'Fruits', children: [
140
+ { key: 'apple', title: 'Apple' },
141
+ { key: 'banana', title: 'Banana' },
142
+ ]},
143
+ { key: 'vegetables', title: 'Vegetables', children: [
144
+ { key: 'carrot', title: 'Carrot' },
145
+ ]},
146
+ ];
147
+
148
+ <Tree treeData={data} defaultExpandedKeys={['fruits']} />;
149
+ ```
150
+
151
+ ### Checkable
152
+
153
+ `isCheckable` enables AntD-style cascading parent ↔ child checkbox
154
+ behavior: checking a parent checks all eligible descendants, and a
155
+ parent flips into the indeterminate (half-checked) state when only some
156
+ of its descendants are checked.
157
+
158
+ ```jsx
159
+ <Tree
160
+ treeData={data}
161
+ isCheckable
162
+ selectionMode="none"
163
+ defaultCheckedKeys={['apple']}
164
+ onCheck={(keys, info) => {
165
+ console.log('checked', keys);
166
+ console.log('half-checked', info.halfCheckedKeys);
167
+ }}
168
+ />
169
+ ```
170
+
171
+ ### Controlled Checked
172
+
173
+ To match AntD's object-shape API, pass `checkedKeys` as
174
+ `{ checked, halfChecked }`. `onCheck` returns the same shape.
175
+
176
+ ```jsx
177
+ const [checkedKeys, setCheckedKeys] = useState({ checked: [], halfChecked: [] });
178
+
179
+ <Tree
180
+ treeData={data}
181
+ isCheckable
182
+ checkedKeys={checkedKeys}
183
+ onCheck={(next) => setCheckedKeys(next)}
184
+ />
185
+ ```
186
+
187
+ ### Lazy Loading
188
+
189
+ Set `isLeaf: false` and omit `children` on a node, then provide a
190
+ `loadData` callback. The callback should merge new children into
191
+ `treeData`. The row shows a spinner while in flight; subsequent expands
192
+ of the same key won't refire `loadData`.
193
+
194
+ ```jsx
195
+ const handleLoadData = (node) =>
196
+ fetch(`/api/children?key=${node.key}`)
197
+ .then((r) => r.json())
198
+ .then((children) => mergeIntoTreeData(node.key, children));
199
+
200
+ <Tree treeData={data} loadData={handleLoadData} />
201
+ ```
202
+
203
+ ### Auto-expand Parent (Filtering)
204
+
205
+ Pass the matching keys via `expandedKeys` and set `autoExpandParent` to
206
+ keep their ancestors expanded.
207
+
208
+ ```jsx
209
+ <Tree
210
+ treeData={data}
211
+ expandedKeys={matchedKeys}
212
+ autoExpandParent
213
+ />
214
+ ```
215
+
216
+ ### Block Node
217
+
218
+ ```jsx
219
+ <Tree treeData={data} blockNode isCheckable />
220
+ ```
221
+
222
+ ### Per-node Disabling
223
+
224
+ Disable the entire row, just the checkbox, or hide the checkbox via
225
+ node-level flags.
226
+
227
+ ```jsx
228
+ const data = [
229
+ { key: 'a', title: 'A', children: [
230
+ { key: 'a-1', title: 'A-1', isDisabled: true },
231
+ { key: 'a-2', title: 'A-2', isCheckboxDisabled: true },
232
+ { key: 'a-3', title: 'A-3', isCheckable: false },
233
+ ]},
234
+ ];
235
+
236
+ <Tree treeData={data} isCheckable defaultExpandedKeys={['a']} />
237
+ ```
238
+
239
+ ### Fixed Height
240
+
241
+ ```jsx
242
+ <Tree treeData={data} height={300} />
243
+ ```
244
+
245
+ ## Accessibility
246
+
247
+ Tree implements the
248
+ [`treegrid` ARIA pattern](https://www.w3.org/WAI/ARIA/apg/patterns/treegrid/)
249
+ via `useTree` from React Aria.
250
+
251
+ ### Keyboard Navigation
252
+
253
+ - `Tab` — Moves focus into / out of the tree (focus stays on the
254
+ currently active row inside).
255
+ - `ArrowUp` / `ArrowDown` — Move focus to the previous / next visible row.
256
+ - `ArrowRight` — Expand the focused row (or move to its first child if
257
+ already expanded).
258
+ - `ArrowLeft` — Collapse the focused row (or move to its parent if
259
+ already collapsed).
260
+ - `Home` / `End` — Move focus to the first / last visible row.
261
+ - `Space` / `Enter` — Toggle selection on the focused row (in `single`
262
+ or `multiple` mode).
263
+
264
+ ### Screen Reader Support
265
+
266
+ - Each row reports `aria-level`, `aria-posinset`, `aria-setsize`, and
267
+ `aria-expanded` so screen readers can announce the position and
268
+ expansion state.
269
+ - When `isCheckable` is enabled, the row carries `aria-checked` (`true`,
270
+ `false`, or `mixed` for the indeterminate state).
271
+ - Disabled rows expose `aria-disabled="true"`.
272
+
273
+ ### ARIA Properties
274
+
275
+ - `aria-label` — Provide a label that describes the tree's contents
276
+ (defaults to `"Tree"`).
277
+
278
+ ## Best Practices
279
+
280
+ 1. **Do**: Provide stable, unique `key`s — they are used for selection,
281
+ expansion, checking, and lazy-load tracking.
282
+ ```jsx
283
+ <Tree treeData={data.map((node) => ({ ...node, key: node.id }))} />
284
+ ```
285
+ 2. **Don't**: Mutate `treeData` in place. Always return a new array
286
+ from `loadData`'s commit step so React Stately can rebuild the
287
+ collection.
288
+ 3. **Accessibility**: When using checkboxes for selection, set
289
+ `selectionMode="none"` so the row click doesn't compete with the
290
+ checkbox.
291
+ 4. **Performance**: For very large trees, prefer virtualization (planned;
292
+ see Suggested Improvements) or use `loadData` to defer subtree
293
+ construction.
294
+
295
+ ## Suggested Improvements
296
+
297
+ - Built-in virtualization for very large trees (10k+ rows).
298
+ - Drag-and-drop reordering, mirroring AntD's `draggable` API.
299
+ - An `onRightClick`/context menu hook.
300
+ - Reveal-on-mount: scroll the focused row into view when expanded
301
+ programmatically.
302
+ - Optional inline title editing.
303
+
304
+ ## Related Components
305
+
306
+ - [ListBox](/components/ListBox) — Flat list with single/multi selection.
307
+ - [Menu](/components/Menu) — Hierarchical action lists in popovers.
308
+ - [Tabs](/components/Tabs) — Switch between sibling content panels.
package/docs/tasty/dsl.md CHANGED
@@ -59,6 +59,7 @@ Control how a sub-element selector attaches to the root selector using the `$` p
59
59
  | *(none)* | ` [el]` | Descendant (default) |
60
60
  | `>` | `> [el]` | Direct child |
61
61
  | `>Body>Row>` | `> [Body] > [Row] > [el]` | Chained elements |
62
+ | `> SubElementName` | `> [SubElementName]` | Self-name shorthand — when the trailing element name matches the sub-element's own key, it acts as the placeholder (same as `@`); no duplication |
62
63
  | `h1` | ` h1` | Tag selector (no key injection) |
63
64
  | `h1 >` | ` h1 > [el]` | Key is direct child of tag |
64
65
  | `h1 *` | ` h1 *` | Any descendant of tag |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.0.0-canary-7298754",
3
+ "version": "0.0.0-canary-cb3e2bd",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {
@@ -74,7 +74,7 @@
74
74
  "@react-types/shared": "^3.32.1",
75
75
  "@tabler/icons-react": "^3.31.0",
76
76
  "@tanstack/react-virtual": "^3.13.12",
77
- "@tenphi/tasty": "2.1.0",
77
+ "@tenphi/tasty": "2.1.1",
78
78
  "clipboard-copy": "^4.0.1",
79
79
  "clsx": "^1.1.1",
80
80
  "diff": "^8.0.3",
@@ -1,2 +0,0 @@
1
-
2
- import { RefObject } from "react";