@mui/x-tree-view 7.22.1 → 8.0.0-alpha.1

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 (296) hide show
  1. package/CHANGELOG.md +486 -11
  2. package/README.md +4 -4
  3. package/RichTreeView/RichTreeView.js +22 -5
  4. package/RichTreeView/RichTreeView.types.d.ts +4 -17
  5. package/SimpleTreeView/SimpleTreeView.js +21 -3
  6. package/TreeItem/TreeItem.d.ts +20 -2
  7. package/TreeItem/TreeItem.js +241 -371
  8. package/TreeItem/TreeItem.types.d.ts +52 -85
  9. package/TreeItem/index.d.ts +1 -4
  10. package/TreeItem/index.js +2 -4
  11. package/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.d.ts +7 -0
  12. package/{modern/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js} +8 -6
  13. package/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.d.ts → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.d.ts} +1 -1
  14. package/TreeItemDragAndDropOverlay/index.d.ts +2 -0
  15. package/TreeItemDragAndDropOverlay/index.js +1 -0
  16. package/{TreeItem2LabelInput → TreeItemDragAndDropOverlay}/package.json +1 -1
  17. package/TreeItemIcon/TreeItemIcon.d.ts +7 -0
  18. package/{TreeItem2Icon/TreeItem2Icon.js → TreeItemIcon/TreeItemIcon.js} +5 -3
  19. package/{TreeItem2Icon/TreeItem2Icon.types.d.ts → TreeItemIcon/TreeItemIcon.types.d.ts} +7 -7
  20. package/TreeItemIcon/index.d.ts +2 -0
  21. package/TreeItemIcon/index.js +1 -0
  22. package/{useTreeItem2 → TreeItemIcon}/package.json +1 -1
  23. package/TreeItemLabelInput/TreeItemLabelInput.d.ts +5 -0
  24. package/{TreeItem2LabelInput/TreeItem2LabelInput.js → TreeItemLabelInput/TreeItemLabelInput.js} +3 -3
  25. package/{TreeItem2LabelInput/TreeItem2LabelInput.types.d.ts → TreeItemLabelInput/TreeItemLabelInput.types.d.ts} +1 -1
  26. package/TreeItemLabelInput/index.d.ts +2 -0
  27. package/TreeItemLabelInput/index.js +1 -0
  28. package/{TreeItem2Provider → TreeItemLabelInput}/package.json +1 -1
  29. package/TreeItemProvider/TreeItemProvider.d.ts +9 -0
  30. package/TreeItemProvider/TreeItemProvider.js +43 -0
  31. package/{TreeItem2Provider/TreeItem2Provider.types.d.ts → TreeItemProvider/TreeItemProvider.types.d.ts} +2 -1
  32. package/TreeItemProvider/index.d.ts +2 -0
  33. package/TreeItemProvider/index.js +1 -0
  34. package/{TreeItem2Icon → TreeItemProvider}/package.json +1 -1
  35. package/hooks/index.d.ts +2 -1
  36. package/hooks/index.js +2 -1
  37. package/hooks/useTreeItemModel.d.ts +2 -0
  38. package/hooks/useTreeItemModel.js +11 -0
  39. package/hooks/useTreeItemUtils/index.d.ts +1 -0
  40. package/hooks/useTreeItemUtils/index.js +1 -0
  41. package/hooks/{useTreeItem2Utils/useTreeItem2Utils.d.ts → useTreeItemUtils/useTreeItemUtils.d.ts} +13 -12
  42. package/{modern/hooks/useTreeItem2Utils/useTreeItem2Utils.js → hooks/useTreeItemUtils/useTreeItemUtils.js} +36 -18
  43. package/index.d.ts +5 -7
  44. package/index.js +6 -8
  45. package/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +3 -1
  46. package/internals/TreeViewProvider/TreeViewChildrenItemProvider.d.ts +2 -1
  47. package/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +6 -22
  48. package/internals/TreeViewProvider/TreeViewProvider.js +1 -2
  49. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +5 -2
  50. package/internals/components/RichTreeViewItems.d.ts +3 -6
  51. package/internals/components/RichTreeViewItems.js +42 -30
  52. package/internals/corePlugins/useTreeViewId/useTreeViewId.js +10 -11
  53. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +36 -0
  54. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +9 -0
  55. package/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +1 -5
  56. package/internals/hooks/useSelector.d.ts +4 -0
  57. package/internals/hooks/useSelector.js +6 -0
  58. package/internals/index.d.ts +6 -1
  59. package/internals/index.js +5 -1
  60. package/internals/models/helpers.d.ts +0 -2
  61. package/internals/models/itemPlugin.d.ts +13 -10
  62. package/internals/models/plugin.d.ts +20 -8
  63. package/internals/models/treeView.d.ts +6 -0
  64. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +36 -24
  65. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +124 -0
  66. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +17 -0
  67. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +8 -15
  68. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +1 -0
  69. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +7 -0
  70. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +62 -40
  71. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +182 -0
  72. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +34 -0
  73. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +4 -16
  74. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +15 -13
  75. package/internals/plugins/useTreeViewItems/index.d.ts +1 -1
  76. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +58 -100
  77. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +718 -0
  78. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +103 -0
  79. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +16 -55
  80. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +29 -26
  81. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +27 -18
  82. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +1 -1
  83. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +13 -5
  84. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +19 -30
  85. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +74 -0
  86. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +26 -0
  87. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +13 -29
  88. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.d.ts +2 -0
  89. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +88 -0
  90. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +79 -43
  91. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +32 -0
  92. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +9 -0
  93. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +39 -9
  94. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +20 -1
  95. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +105 -0
  96. package/internals/useTreeView/useTreeView.js +30 -17
  97. package/internals/useTreeView/useTreeView.types.d.ts +1 -2
  98. package/internals/useTreeView/useTreeViewBuildContext.d.ts +3 -1
  99. package/internals/useTreeView/useTreeViewBuildContext.js +24 -18
  100. package/internals/utils/TreeViewStore.d.ts +12 -0
  101. package/internals/utils/TreeViewStore.js +24 -0
  102. package/internals/utils/selectors.d.ts +9 -0
  103. package/internals/utils/selectors.js +37 -0
  104. package/internals/utils/tree.d.ts +8 -8
  105. package/internals/utils/tree.js +51 -43
  106. package/models/items.d.ts +7 -2
  107. package/modern/RichTreeView/RichTreeView.js +22 -5
  108. package/modern/SimpleTreeView/SimpleTreeView.js +21 -3
  109. package/modern/TreeItem/TreeItem.js +241 -371
  110. package/modern/TreeItem/index.js +2 -4
  111. package/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js → modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js} +8 -6
  112. package/modern/TreeItemDragAndDropOverlay/index.js +1 -0
  113. package/modern/{TreeItem2Icon/TreeItem2Icon.js → TreeItemIcon/TreeItemIcon.js} +5 -3
  114. package/modern/TreeItemIcon/index.js +1 -0
  115. package/modern/{TreeItem2LabelInput/TreeItem2LabelInput.js → TreeItemLabelInput/TreeItemLabelInput.js} +3 -3
  116. package/modern/TreeItemLabelInput/index.js +1 -0
  117. package/modern/TreeItemProvider/TreeItemProvider.js +43 -0
  118. package/modern/TreeItemProvider/index.js +1 -0
  119. package/modern/hooks/index.js +2 -1
  120. package/modern/hooks/useTreeItemModel.js +11 -0
  121. package/modern/hooks/useTreeItemUtils/index.js +1 -0
  122. package/{hooks/useTreeItem2Utils/useTreeItem2Utils.js → modern/hooks/useTreeItemUtils/useTreeItemUtils.js} +36 -18
  123. package/modern/index.js +6 -8
  124. package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +6 -22
  125. package/modern/internals/TreeViewProvider/TreeViewProvider.js +1 -2
  126. package/modern/internals/components/RichTreeViewItems.js +42 -30
  127. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.js +10 -11
  128. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +9 -0
  129. package/modern/internals/hooks/useSelector.js +6 -0
  130. package/modern/internals/index.js +5 -1
  131. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +36 -24
  132. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +17 -0
  133. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +7 -0
  134. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +62 -40
  135. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +34 -0
  136. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +15 -13
  137. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +58 -100
  138. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +103 -0
  139. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +29 -26
  140. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +27 -18
  141. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +13 -5
  142. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +19 -30
  143. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +26 -0
  144. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +88 -0
  145. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +79 -43
  146. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +9 -0
  147. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +105 -0
  148. package/modern/internals/useTreeView/useTreeView.js +30 -17
  149. package/modern/internals/useTreeView/useTreeViewBuildContext.js +24 -18
  150. package/modern/internals/utils/TreeViewStore.js +24 -0
  151. package/modern/internals/utils/selectors.js +37 -0
  152. package/modern/internals/utils/tree.js +51 -43
  153. package/modern/useTreeItem/index.js +1 -0
  154. package/modern/{useTreeItem2/useTreeItem2.js → useTreeItem/useTreeItem.js} +45 -51
  155. package/node/RichTreeView/RichTreeView.js +22 -5
  156. package/node/SimpleTreeView/SimpleTreeView.js +21 -3
  157. package/node/TreeItem/TreeItem.js +242 -372
  158. package/node/TreeItem/index.js +38 -16
  159. package/node/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js} +7 -6
  160. package/node/TreeItemDragAndDropOverlay/index.js +12 -0
  161. package/node/{TreeItem2Icon/TreeItem2Icon.js → TreeItemIcon/TreeItemIcon.js} +4 -3
  162. package/node/TreeItemIcon/index.js +12 -0
  163. package/node/{TreeItem2LabelInput/TreeItem2LabelInput.js → TreeItemLabelInput/TreeItemLabelInput.js} +3 -3
  164. package/node/TreeItemLabelInput/index.js +12 -0
  165. package/node/{TreeItem2Provider/TreeItem2Provider.js → TreeItemProvider/TreeItemProvider.js} +22 -6
  166. package/node/TreeItemProvider/index.js +12 -0
  167. package/node/hooks/index.js +10 -3
  168. package/node/hooks/useTreeItemModel.js +17 -0
  169. package/node/hooks/useTreeItemUtils/index.js +12 -0
  170. package/node/hooks/{useTreeItem2Utils/useTreeItem2Utils.js → useTreeItemUtils/useTreeItemUtils.js} +37 -19
  171. package/node/index.js +18 -42
  172. package/node/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +6 -22
  173. package/node/internals/TreeViewProvider/TreeViewProvider.js +1 -2
  174. package/node/internals/components/RichTreeViewItems.js +42 -30
  175. package/node/internals/corePlugins/useTreeViewId/useTreeViewId.js +12 -13
  176. package/node/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +15 -0
  177. package/node/internals/hooks/useSelector.js +13 -0
  178. package/node/internals/index.js +47 -1
  179. package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +36 -24
  180. package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +23 -0
  181. package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +14 -0
  182. package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +62 -40
  183. package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +40 -0
  184. package/node/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +16 -13
  185. package/node/internals/plugins/useTreeViewItems/useTreeViewItems.js +60 -102
  186. package/node/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +109 -0
  187. package/node/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +30 -27
  188. package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +27 -18
  189. package/node/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +13 -5
  190. package/node/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +19 -30
  191. package/node/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +32 -0
  192. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +96 -0
  193. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +78 -42
  194. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +15 -0
  195. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +109 -2
  196. package/node/internals/useTreeView/useTreeView.js +30 -17
  197. package/node/internals/useTreeView/useTreeViewBuildContext.js +25 -18
  198. package/node/internals/utils/TreeViewStore.js +31 -0
  199. package/node/internals/utils/selectors.js +44 -0
  200. package/node/internals/utils/tree.js +51 -43
  201. package/node/useTreeItem/index.js +12 -0
  202. package/node/{useTreeItem2/useTreeItem2.js → useTreeItem/useTreeItem.js} +46 -53
  203. package/package.json +7 -5
  204. package/themeAugmentation/components.d.ts +0 -10
  205. package/themeAugmentation/overrides.d.ts +0 -3
  206. package/themeAugmentation/props.d.ts +1 -5
  207. package/useTreeItem/index.d.ts +2 -0
  208. package/useTreeItem/index.js +1 -0
  209. package/{TreeItem2 → useTreeItem}/package.json +1 -1
  210. package/useTreeItem/useTreeItem.d.ts +2 -0
  211. package/{useTreeItem2/useTreeItem2.js → useTreeItem/useTreeItem.js} +45 -51
  212. package/{useTreeItem2/useTreeItem2.types.d.ts → useTreeItem/useTreeItem.types.d.ts} +51 -58
  213. package/TreeItem/TreeItemContent.d.ts +0 -61
  214. package/TreeItem/TreeItemContent.js +0 -146
  215. package/TreeItem/useTreeItemState.d.ts +0 -21
  216. package/TreeItem/useTreeItemState.js +0 -143
  217. package/TreeItem2/TreeItem2.d.ts +0 -34
  218. package/TreeItem2/TreeItem2.js +0 -387
  219. package/TreeItem2/TreeItem2.types.d.ts +0 -92
  220. package/TreeItem2/index.d.ts +0 -2
  221. package/TreeItem2/index.js +0 -1
  222. package/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.d.ts +0 -7
  223. package/TreeItem2DragAndDropOverlay/index.d.ts +0 -2
  224. package/TreeItem2DragAndDropOverlay/index.js +0 -1
  225. package/TreeItem2DragAndDropOverlay/package.json +0 -6
  226. package/TreeItem2Icon/TreeItem2Icon.d.ts +0 -7
  227. package/TreeItem2Icon/index.d.ts +0 -2
  228. package/TreeItem2Icon/index.js +0 -1
  229. package/TreeItem2LabelInput/TreeItem2LabelInput.d.ts +0 -5
  230. package/TreeItem2LabelInput/index.d.ts +0 -2
  231. package/TreeItem2LabelInput/index.js +0 -1
  232. package/TreeItem2Provider/TreeItem2Provider.d.ts +0 -6
  233. package/TreeItem2Provider/TreeItem2Provider.js +0 -26
  234. package/TreeItem2Provider/index.d.ts +0 -2
  235. package/TreeItem2Provider/index.js +0 -1
  236. package/TreeView/TreeView.d.ts +0 -21
  237. package/TreeView/TreeView.js +0 -211
  238. package/TreeView/TreeView.types.d.ts +0 -9
  239. package/TreeView/index.d.ts +0 -3
  240. package/TreeView/index.js +0 -3
  241. package/TreeView/package.json +0 -6
  242. package/TreeView/treeViewClasses.d.ts +0 -7
  243. package/TreeView/treeViewClasses.js +0 -6
  244. package/hooks/useTreeItem2Utils/index.d.ts +0 -1
  245. package/hooks/useTreeItem2Utils/index.js +0 -1
  246. package/modern/TreeItem/TreeItemContent.js +0 -146
  247. package/modern/TreeItem/useTreeItemState.js +0 -143
  248. package/modern/TreeItem2/TreeItem2.js +0 -387
  249. package/modern/TreeItem2/index.js +0 -1
  250. package/modern/TreeItem2DragAndDropOverlay/index.js +0 -1
  251. package/modern/TreeItem2Icon/index.js +0 -1
  252. package/modern/TreeItem2LabelInput/index.js +0 -1
  253. package/modern/TreeItem2Provider/TreeItem2Provider.js +0 -26
  254. package/modern/TreeItem2Provider/TreeItem2Provider.types.js +0 -1
  255. package/modern/TreeItem2Provider/index.js +0 -1
  256. package/modern/TreeView/TreeView.js +0 -211
  257. package/modern/TreeView/TreeView.types.js +0 -1
  258. package/modern/TreeView/index.js +0 -3
  259. package/modern/TreeView/treeViewClasses.js +0 -6
  260. package/modern/hooks/useTreeItem2Utils/index.js +0 -1
  261. package/modern/useTreeItem2/index.js +0 -4
  262. package/modern/useTreeItem2/useTreeItem2.types.js +0 -1
  263. package/node/TreeItem/TreeItemContent.js +0 -153
  264. package/node/TreeItem/useTreeItemState.js +0 -148
  265. package/node/TreeItem2/TreeItem2.js +0 -394
  266. package/node/TreeItem2/index.js +0 -48
  267. package/node/TreeItem2DragAndDropOverlay/index.js +0 -12
  268. package/node/TreeItem2Icon/index.js +0 -12
  269. package/node/TreeItem2LabelInput/index.js +0 -12
  270. package/node/TreeItem2Provider/index.js +0 -12
  271. package/node/TreeView/TreeView.js +0 -217
  272. package/node/TreeView/TreeView.types.js +0 -5
  273. package/node/TreeView/index.js +0 -27
  274. package/node/TreeView/treeViewClasses.js +0 -14
  275. package/node/hooks/useTreeItem2Utils/index.js +0 -12
  276. package/node/useTreeItem2/index.js +0 -10
  277. package/node/useTreeItem2/useTreeItem2.types.js +0 -5
  278. package/useTreeItem2/index.d.ts +0 -3
  279. package/useTreeItem2/index.js +0 -4
  280. package/useTreeItem2/useTreeItem2.d.ts +0 -2
  281. package/useTreeItem2/useTreeItem2.types.js +0 -1
  282. /package/{TreeItem2/TreeItem2.types.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js} +0 -0
  283. /package/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js → TreeItemIcon/TreeItemIcon.types.js} +0 -0
  284. /package/{TreeItem2Icon/TreeItem2Icon.types.js → TreeItemLabelInput/TreeItemLabelInput.types.js} +0 -0
  285. /package/{TreeItem2LabelInput/TreeItem2LabelInput.types.js → TreeItemProvider/TreeItemProvider.types.js} +0 -0
  286. /package/{TreeItem2Provider/TreeItem2Provider.types.js → modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js} +0 -0
  287. /package/{TreeView/TreeView.types.js → modern/TreeItemIcon/TreeItemIcon.types.js} +0 -0
  288. /package/modern/{TreeItem2/TreeItem2.types.js → TreeItemLabelInput/TreeItemLabelInput.types.js} +0 -0
  289. /package/modern/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js → TreeItemProvider/TreeItemProvider.types.js} +0 -0
  290. /package/modern/{TreeItem2Icon/TreeItem2Icon.types.js → useTreeItem/useTreeItem.types.js} +0 -0
  291. /package/node/{TreeItem2/TreeItem2.types.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js} +0 -0
  292. /package/node/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js → TreeItemIcon/TreeItemIcon.types.js} +0 -0
  293. /package/node/{TreeItem2Icon/TreeItem2Icon.types.js → TreeItemLabelInput/TreeItemLabelInput.types.js} +0 -0
  294. /package/node/{TreeItem2LabelInput/TreeItem2LabelInput.types.js → TreeItemProvider/TreeItemProvider.types.js} +0 -0
  295. /package/node/{TreeItem2Provider/TreeItem2Provider.types.js → useTreeItem/useTreeItem.types.js} +0 -0
  296. /package/{modern/TreeItem2LabelInput/TreeItem2LabelInput.types.js → useTreeItem/useTreeItem.types.js} +0 -0
@@ -1,7 +1,9 @@
1
- const getLastNavigableItemInArray = (instance, items) => {
1
+ import { selectorIsItemExpandable, selectorIsItemExpanded } from "../plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js";
2
+ import { selectorCanItemBeFocused, selectorIsItemDisabled, selectorItemIndex, selectorItemMeta, selectorItemOrderedChildrenIds, selectorItemParentId } from "../plugins/useTreeViewItems/useTreeViewItems.selectors.js";
3
+ const getLastNavigableItemInArray = (state, items) => {
2
4
  // Equivalent to Array.prototype.findLastIndex
3
5
  let itemIndex = items.length - 1;
4
- while (itemIndex >= 0 && !instance.isItemNavigable(items[itemIndex])) {
6
+ while (itemIndex >= 0 && !selectorCanItemBeFocused(state, items[itemIndex])) {
5
7
  itemIndex -= 1;
6
8
  }
7
9
  if (itemIndex === -1) {
@@ -9,10 +11,13 @@ const getLastNavigableItemInArray = (instance, items) => {
9
11
  }
10
12
  return items[itemIndex];
11
13
  };
12
- export const getPreviousNavigableItem = (instance, itemId) => {
13
- const itemMeta = instance.getItemMeta(itemId);
14
- const siblings = instance.getItemOrderedChildrenIds(itemMeta.parentId);
15
- const itemIndex = instance.getItemIndex(itemId);
14
+ export const getPreviousNavigableItem = (state, itemId) => {
15
+ const itemMeta = selectorItemMeta(state, itemId);
16
+ if (!itemMeta) {
17
+ return null;
18
+ }
19
+ const siblings = selectorItemOrderedChildrenIds(state, itemMeta.parentId);
20
+ const itemIndex = selectorItemIndex(state, itemId);
16
21
 
17
22
  // TODO: What should we do if the parent is not navigable?
18
23
  if (itemIndex === 0) {
@@ -21,7 +26,7 @@ export const getPreviousNavigableItem = (instance, itemId) => {
21
26
 
22
27
  // Finds the previous navigable sibling.
23
28
  let previousNavigableSiblingIndex = itemIndex - 1;
24
- while (!instance.isItemNavigable(siblings[previousNavigableSiblingIndex]) && previousNavigableSiblingIndex >= 0) {
29
+ while (!selectorCanItemBeFocused(state, siblings[previousNavigableSiblingIndex]) && previousNavigableSiblingIndex >= 0) {
25
30
  previousNavigableSiblingIndex -= 1;
26
31
  }
27
32
  if (previousNavigableSiblingIndex === -1) {
@@ -31,51 +36,51 @@ export const getPreviousNavigableItem = (instance, itemId) => {
31
36
  }
32
37
 
33
38
  // Otherwise, we can try to go up a level and find the previous navigable item.
34
- return getPreviousNavigableItem(instance, itemMeta.parentId);
39
+ return getPreviousNavigableItem(state, itemMeta.parentId);
35
40
  }
36
41
 
37
42
  // Finds the last navigable ancestor of the previous navigable sibling.
38
43
  let currentItemId = siblings[previousNavigableSiblingIndex];
39
- let lastNavigableChild = getLastNavigableItemInArray(instance, instance.getItemOrderedChildrenIds(currentItemId));
40
- while (instance.isItemExpanded(currentItemId) && lastNavigableChild != null) {
44
+ let lastNavigableChild = getLastNavigableItemInArray(state, selectorItemOrderedChildrenIds(state, currentItemId));
45
+ while (selectorIsItemExpanded(state, currentItemId) && lastNavigableChild != null) {
41
46
  currentItemId = lastNavigableChild;
42
- lastNavigableChild = instance.getItemOrderedChildrenIds(currentItemId).find(instance.isItemNavigable);
47
+ lastNavigableChild = selectorItemOrderedChildrenIds(state, currentItemId).find(childId => selectorCanItemBeFocused(state, childId));
43
48
  }
44
49
  return currentItemId;
45
50
  };
46
- export const getNextNavigableItem = (instance, itemId) => {
51
+ export const getNextNavigableItem = (state, itemId) => {
47
52
  // If the item is expanded and has some navigable children, return the first of them.
48
- if (instance.isItemExpanded(itemId)) {
49
- const firstNavigableChild = instance.getItemOrderedChildrenIds(itemId).find(instance.isItemNavigable);
53
+ if (selectorIsItemExpanded(state, itemId)) {
54
+ const firstNavigableChild = selectorItemOrderedChildrenIds(state, itemId).find(childId => selectorCanItemBeFocused(state, childId));
50
55
  if (firstNavigableChild != null) {
51
56
  return firstNavigableChild;
52
57
  }
53
58
  }
54
- let itemMeta = instance.getItemMeta(itemId);
59
+ let itemMeta = selectorItemMeta(state, itemId);
55
60
  while (itemMeta != null) {
56
61
  // Try to find the first navigable sibling after the current item.
57
- const siblings = instance.getItemOrderedChildrenIds(itemMeta.parentId);
58
- const currentItemIndex = instance.getItemIndex(itemMeta.id);
62
+ const siblings = selectorItemOrderedChildrenIds(state, itemMeta.parentId);
63
+ const currentItemIndex = selectorItemIndex(state, itemMeta.id);
59
64
  if (currentItemIndex < siblings.length - 1) {
60
65
  let nextItemIndex = currentItemIndex + 1;
61
- while (!instance.isItemNavigable(siblings[nextItemIndex]) && nextItemIndex < siblings.length - 1) {
66
+ while (!selectorCanItemBeFocused(state, siblings[nextItemIndex]) && nextItemIndex < siblings.length - 1) {
62
67
  nextItemIndex += 1;
63
68
  }
64
- if (instance.isItemNavigable(siblings[nextItemIndex])) {
69
+ if (selectorCanItemBeFocused(state, siblings[nextItemIndex])) {
65
70
  return siblings[nextItemIndex];
66
71
  }
67
72
  }
68
73
 
69
74
  // If the sibling does not exist, go up a level to the parent and try again.
70
- itemMeta = instance.getItemMeta(itemMeta.parentId);
75
+ itemMeta = selectorItemMeta(state, itemMeta.parentId);
71
76
  }
72
77
  return null;
73
78
  };
74
- export const getLastNavigableItem = instance => {
79
+ export const getLastNavigableItem = state => {
75
80
  let itemId = null;
76
- while (itemId == null || instance.isItemExpanded(itemId)) {
77
- const children = instance.getItemOrderedChildrenIds(itemId);
78
- const lastNavigableChild = getLastNavigableItemInArray(instance, children);
81
+ while (itemId == null || selectorIsItemExpanded(state, itemId)) {
82
+ const children = selectorItemOrderedChildrenIds(state, itemId);
83
+ const lastNavigableChild = getLastNavigableItemInArray(state, children);
79
84
 
80
85
  // The item has no navigable children.
81
86
  if (lastNavigableChild == null) {
@@ -85,7 +90,7 @@ export const getLastNavigableItem = instance => {
85
90
  }
86
91
  return itemId;
87
92
  };
88
- export const getFirstNavigableItem = instance => instance.getItemOrderedChildrenIds(null).find(instance.isItemNavigable);
93
+ export const getFirstNavigableItem = state => selectorItemOrderedChildrenIds(state, null).find(itemId => selectorCanItemBeFocused(state, itemId));
89
94
 
90
95
  /**
91
96
  * This is used to determine the start and end of a selection range so
@@ -101,12 +106,15 @@ export const getFirstNavigableItem = instance => instance.getItemOrderedChildren
101
106
  * Another way to put it is which item is shallower in a trémaux tree
102
107
  * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree
103
108
  */
104
- export const findOrderInTremauxTree = (instance, itemAId, itemBId) => {
109
+ export const findOrderInTremauxTree = (state, itemAId, itemBId) => {
105
110
  if (itemAId === itemBId) {
106
111
  return [itemAId, itemBId];
107
112
  }
108
- const itemMetaA = instance.getItemMeta(itemAId);
109
- const itemMetaB = instance.getItemMeta(itemBId);
113
+ const itemMetaA = selectorItemMeta(state, itemAId);
114
+ const itemMetaB = selectorItemMeta(state, itemBId);
115
+ if (!itemMetaA || !itemMetaB) {
116
+ return [itemAId, itemBId];
117
+ }
110
118
  if (itemMetaA.parentId === itemMetaB.id || itemMetaB.parentId === itemMetaA.id) {
111
119
  return itemMetaB.parentId === itemMetaA.id ? [itemMetaA.id, itemMetaB.id] : [itemMetaB.id, itemMetaA.id];
112
120
  }
@@ -124,7 +132,7 @@ export const findOrderInTremauxTree = (instance, itemAId, itemBId) => {
124
132
  aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;
125
133
  continueA = aAncestor !== null;
126
134
  if (!aAncestorIsCommon && continueA) {
127
- aAncestor = instance.getItemMeta(aAncestor).parentId;
135
+ aAncestor = selectorItemParentId(state, aAncestor);
128
136
  }
129
137
  }
130
138
  if (continueB && !aAncestorIsCommon) {
@@ -132,53 +140,53 @@ export const findOrderInTremauxTree = (instance, itemAId, itemBId) => {
132
140
  bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;
133
141
  continueB = bAncestor !== null;
134
142
  if (!bAncestorIsCommon && continueB) {
135
- bAncestor = instance.getItemMeta(bAncestor).parentId;
143
+ bAncestor = selectorItemParentId(state, bAncestor);
136
144
  }
137
145
  }
138
146
  }
139
147
  const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;
140
- const ancestorFamily = instance.getItemOrderedChildrenIds(commonAncestor);
148
+ const ancestorFamily = selectorItemOrderedChildrenIds(state, commonAncestor);
141
149
  const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];
142
150
  const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];
143
151
  return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide) ? [itemAId, itemBId] : [itemBId, itemAId];
144
152
  };
145
- export const getNonDisabledItemsInRange = (instance, itemAId, itemBId) => {
153
+ export const getNonDisabledItemsInRange = (state, itemAId, itemBId) => {
146
154
  const getNextItem = itemId => {
147
155
  // If the item is expanded and has some children, return the first of them.
148
- if (instance.isItemExpandable(itemId) && instance.isItemExpanded(itemId)) {
149
- return instance.getItemOrderedChildrenIds(itemId)[0];
156
+ if (selectorIsItemExpandable(state, itemId) && selectorIsItemExpanded(state, itemId)) {
157
+ return selectorItemOrderedChildrenIds(state, itemId)[0];
150
158
  }
151
- let itemMeta = instance.getItemMeta(itemId);
159
+ let itemMeta = selectorItemMeta(state, itemId);
152
160
  while (itemMeta != null) {
153
161
  // Try to find the first navigable sibling after the current item.
154
- const siblings = instance.getItemOrderedChildrenIds(itemMeta.parentId);
155
- const currentItemIndex = instance.getItemIndex(itemMeta.id);
162
+ const siblings = selectorItemOrderedChildrenIds(state, itemMeta.parentId);
163
+ const currentItemIndex = selectorItemIndex(state, itemMeta.id);
156
164
  if (currentItemIndex < siblings.length - 1) {
157
165
  return siblings[currentItemIndex + 1];
158
166
  }
159
167
 
160
168
  // If the item is the last of its siblings, go up a level to the parent and try again.
161
- itemMeta = instance.getItemMeta(itemMeta.parentId);
169
+ itemMeta = itemMeta.parentId ? selectorItemMeta(state, itemMeta.parentId) : null;
162
170
  }
163
171
  throw new Error('Invalid range');
164
172
  };
165
- const [first, last] = findOrderInTremauxTree(instance, itemAId, itemBId);
173
+ const [first, last] = findOrderInTremauxTree(state, itemAId, itemBId);
166
174
  const items = [first];
167
175
  let current = first;
168
176
  while (current !== last) {
169
177
  current = getNextItem(current);
170
- if (!instance.isItemDisabled(current)) {
178
+ if (!selectorIsItemDisabled(state, current)) {
171
179
  items.push(current);
172
180
  }
173
181
  }
174
182
  return items;
175
183
  };
176
- export const getAllNavigableItems = instance => {
177
- let item = getFirstNavigableItem(instance);
184
+ export const getAllNavigableItems = state => {
185
+ let item = getFirstNavigableItem(state);
178
186
  const navigableItems = [];
179
187
  while (item != null) {
180
188
  navigableItems.push(item);
181
- item = getNextNavigableItem(instance, item);
189
+ item = getNextNavigableItem(state, item);
182
190
  }
183
191
  return navigableItems;
184
192
  };
@@ -0,0 +1 @@
1
+ export { useTreeItem } from "./useTreeItem.js";
@@ -1,19 +1,23 @@
1
+ 'use client';
2
+
1
3
  import _extends from "@babel/runtime/helpers/esm/extends";
2
4
  import * as React from 'react';
3
5
  import extractEventHandlers from '@mui/utils/extractEventHandlers';
4
6
  import useForkRef from '@mui/utils/useForkRef';
5
7
  import { useTreeViewContext } from "../internals/TreeViewProvider/index.js";
6
- import { useTreeItem2Utils } from "../hooks/useTreeItem2Utils/index.js";
8
+ import { useTreeItemUtils } from "../hooks/useTreeItemUtils/index.js";
7
9
  import { TreeViewItemDepthContext } from "../internals/TreeViewItemDepthContext/index.js";
8
10
  import { isTargetInDescendants } from "../internals/utils/tree.js";
11
+ import { useSelector } from "../internals/hooks/useSelector.js";
12
+ import { selectorIsItemTheDefaultFocusableItem } from "../internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js";
9
13
  import { generateTreeItemIdAttribute } from "../internals/corePlugins/useTreeViewId/useTreeViewId.utils.js";
10
- export const useTreeItem2 = parameters => {
14
+ import { selectorCanItemBeFocused } from "../internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js";
15
+ import { selectorTreeViewId } from "../internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js";
16
+ export const useTreeItem = parameters => {
11
17
  const {
12
18
  runItemPlugins,
13
19
  items: {
14
- onItemClick,
15
- disabledItemsFocusable,
16
- indentationAtItemLevel
20
+ onItemClick
17
21
  },
18
22
  selection: {
19
23
  disableSelection,
@@ -22,11 +26,18 @@ export const useTreeItem2 = parameters => {
22
26
  expansion: {
23
27
  expansionTrigger
24
28
  },
25
- treeId,
29
+ label: labelContext,
26
30
  instance,
27
- publicAPI
31
+ publicAPI,
32
+ store
28
33
  } = useTreeViewContext();
29
34
  const depthContext = React.useContext(TreeViewItemDepthContext);
35
+ const depth = useSelector(store, (...params) => {
36
+ if (typeof depthContext === 'function') {
37
+ return depthContext(...params);
38
+ }
39
+ return depthContext;
40
+ }, parameters.itemId);
30
41
  const {
31
42
  id,
32
43
  itemId,
@@ -42,7 +53,7 @@ export const useTreeItem2 = parameters => {
42
53
  const {
43
54
  interactions,
44
55
  status
45
- } = useTreeItem2Utils({
56
+ } = useTreeItemUtils({
46
57
  itemId,
47
58
  children
48
59
  });
@@ -51,24 +62,25 @@ export const useTreeItem2 = parameters => {
51
62
  const handleRootRef = useForkRef(rootRef, pluginRootRef, rootRefObject);
52
63
  const handleContentRef = useForkRef(contentRef, contentRefObject);
53
64
  const checkboxRef = React.useRef(null);
65
+ const treeId = useSelector(store, selectorTreeViewId);
54
66
  const idAttribute = generateTreeItemIdAttribute({
55
67
  itemId,
56
68
  treeId,
57
69
  id
58
70
  });
59
- const rootTabIndex = instance.canItemBeTabbed(itemId) ? 0 : -1;
71
+ const shouldBeAccessibleWithTab = useSelector(store, selectorIsItemTheDefaultFocusableItem, itemId);
60
72
  const sharedPropsEnhancerParams = {
61
73
  rootRefObject,
62
74
  contentRefObject,
63
- interactions
75
+ interactions,
76
+ status
64
77
  };
65
78
  const createRootHandleFocus = otherHandlers => event => {
66
79
  otherHandlers.onFocus?.(event);
67
80
  if (event.defaultMuiPrevented) {
68
81
  return;
69
82
  }
70
- const canBeFocused = !status.disabled || disabledItemsFocusable;
71
- if (!status.focused && canBeFocused && event.currentTarget === event.target) {
83
+ if (!status.focused && selectorCanItemBeFocused(store.value, itemId) && event.currentTarget === event.target) {
72
84
  instance.focusItem(event, itemId);
73
85
  }
74
86
  };
@@ -106,7 +118,7 @@ export const useTreeItem2 = parameters => {
106
118
  };
107
119
  const createContentHandleClick = otherHandlers => event => {
108
120
  otherHandlers.onClick?.(event);
109
- onItemClick?.(event, itemId);
121
+ onItemClick(event, itemId);
110
122
  if (event.defaultMuiPrevented || checkboxRef.current?.contains(event.target)) {
111
123
  return;
112
124
  }
@@ -128,16 +140,6 @@ export const useTreeItem2 = parameters => {
128
140
  event.preventDefault();
129
141
  }
130
142
  };
131
- const createCheckboxHandleChange = otherHandlers => event => {
132
- otherHandlers.onChange?.(event);
133
- if (event.defaultMuiPrevented) {
134
- return;
135
- }
136
- if (disableSelection || status.disabled) {
137
- return;
138
- }
139
- interactions.handleCheckboxSelection(event);
140
- };
141
143
  const createIconContainerHandleClick = otherHandlers => event => {
142
144
  otherHandlers.onClick?.(event);
143
145
  if (event.defaultMuiPrevented) {
@@ -147,6 +149,10 @@ export const useTreeItem2 = parameters => {
147
149
  interactions.handleExpansion(event);
148
150
  }
149
151
  };
152
+ const getContextProviderProps = () => ({
153
+ itemId,
154
+ id
155
+ });
150
156
  const getRootProps = (externalProps = {}) => {
151
157
  const externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));
152
158
 
@@ -165,21 +171,19 @@ export const useTreeItem2 = parameters => {
165
171
  const props = _extends({}, externalEventHandlers, {
166
172
  ref: handleRootRef,
167
173
  role: 'treeitem',
168
- tabIndex: rootTabIndex,
174
+ tabIndex: shouldBeAccessibleWithTab ? 0 : -1,
169
175
  id: idAttribute,
170
176
  'aria-expanded': status.expandable ? status.expanded : undefined,
171
177
  'aria-selected': ariaSelected,
172
178
  'aria-disabled': status.disabled || undefined
173
179
  }, externalProps, {
180
+ style: _extends({}, externalProps.style ?? {}, {
181
+ '--TreeView-itemDepth': depth
182
+ }),
174
183
  onFocus: createRootHandleFocus(externalEventHandlers),
175
184
  onBlur: createRootHandleBlur(externalEventHandlers),
176
185
  onKeyDown: createRootHandleKeyDown(externalEventHandlers)
177
186
  });
178
- if (indentationAtItemLevel) {
179
- props.style = {
180
- '--TreeView-itemDepth': typeof depthContext === 'function' ? depthContext(itemId) : depthContext
181
- };
182
- }
183
187
  const enhancedRootProps = propsEnhancers.root?.(_extends({}, sharedPropsEnhancerParams, {
184
188
  externalEventHandlers
185
189
  })) ?? {};
@@ -193,9 +197,6 @@ export const useTreeItem2 = parameters => {
193
197
  onMouseDown: createContentHandleMouseDown(externalEventHandlers),
194
198
  status
195
199
  });
196
- if (indentationAtItemLevel) {
197
- props.indentationAtItemLevel = true;
198
- }
199
200
  const enhancedContentProps = propsEnhancers.content?.(_extends({}, sharedPropsEnhancerParams, {
200
201
  externalEventHandlers
201
202
  })) ?? {};
@@ -203,15 +204,13 @@ export const useTreeItem2 = parameters => {
203
204
  };
204
205
  const getCheckboxProps = (externalProps = {}) => {
205
206
  const externalEventHandlers = extractEventHandlers(externalProps);
206
- return _extends({}, externalEventHandlers, {
207
- visible: checkboxSelection,
208
- ref: checkboxRef,
209
- checked: status.selected,
210
- disabled: disableSelection || status.disabled,
211
- tabIndex: -1
212
- }, externalProps, {
213
- onChange: createCheckboxHandleChange(externalEventHandlers)
214
- });
207
+ const props = _extends({}, externalEventHandlers, {
208
+ ref: checkboxRef
209
+ }, externalProps);
210
+ const enhancedCheckboxProps = propsEnhancers.checkbox?.(_extends({}, sharedPropsEnhancerParams, {
211
+ externalEventHandlers
212
+ })) ?? {};
213
+ return _extends({}, props, enhancedCheckboxProps);
215
214
  };
216
215
  const getLabelProps = (externalProps = {}) => {
217
216
  const externalEventHandlers = _extends({}, extractEventHandlers(externalProps));
@@ -220,19 +219,16 @@ export const useTreeItem2 = parameters => {
220
219
  }, externalProps, {
221
220
  onDoubleClick: createLabelHandleDoubleClick(externalEventHandlers)
222
221
  });
223
- if (instance.isTreeViewEditable) {
222
+ if (labelContext?.isItemEditable) {
224
223
  props.editable = status.editable;
225
224
  }
226
225
  return props;
227
226
  };
228
227
  const getLabelInputProps = (externalProps = {}) => {
229
228
  const externalEventHandlers = extractEventHandlers(externalProps);
230
- const enhancedLabelInputProps = propsEnhancers.labelInput?.({
231
- rootRefObject,
232
- contentRefObject,
233
- externalEventHandlers,
234
- interactions
235
- }) ?? {};
229
+ const enhancedLabelInputProps = propsEnhancers.labelInput?.(_extends({}, sharedPropsEnhancerParams, {
230
+ externalEventHandlers
231
+ })) ?? {};
236
232
  return _extends({}, externalProps, enhancedLabelInputProps);
237
233
  };
238
234
  const getIconContainerProps = (externalProps = {}) => {
@@ -250,9 +246,6 @@ export const useTreeItem2 = parameters => {
250
246
  in: status.expanded,
251
247
  children
252
248
  }, externalProps);
253
- if (indentationAtItemLevel) {
254
- response.indentationAtItemLevel = true;
255
- }
256
249
  return response;
257
250
  };
258
251
  const getDragAndDropOverlayProps = (externalProps = {}) => {
@@ -263,6 +256,7 @@ export const useTreeItem2 = parameters => {
263
256
  return _extends({}, externalProps, enhancedDragAndDropOverlayProps);
264
257
  };
265
258
  return {
259
+ getContextProviderProps,
266
260
  getRootProps,
267
261
  getContentProps,
268
262
  getGroupTransitionProps,
@@ -63,8 +63,7 @@ const RichTreeView = exports.RichTreeView = /*#__PURE__*/React.forwardRef(functi
63
63
  }
64
64
  const {
65
65
  getRootProps,
66
- contextValue,
67
- instance
66
+ contextValue
68
67
  } = (0, _useTreeView.useTreeView)({
69
68
  plugins: _RichTreeView.RICH_TREE_VIEW_PLUGINS,
70
69
  rootRef: ref,
@@ -88,8 +87,7 @@ const RichTreeView = exports.RichTreeView = /*#__PURE__*/React.forwardRef(functi
88
87
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(Root, (0, _extends2.default)({}, rootProps, {
89
88
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RichTreeViewItems.RichTreeViewItems, {
90
89
  slots: slots,
91
- slotProps: slotProps,
92
- itemsToRender: instance.getItemsToRender()
90
+ slotProps: slotProps
93
91
  })
94
92
  }))
95
93
  });
@@ -162,7 +160,6 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
162
160
  * the feature will be fully disabled and any property / method call will not have any effect.
163
161
  */
164
162
  experimentalFeatures: _propTypes.default.shape({
165
- indentationAtItemLevel: _propTypes.default.bool,
166
163
  labelEditing: _propTypes.default.bool
167
164
  }),
168
165
  /**
@@ -267,6 +264,26 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
267
264
  * When `multiSelect` is true this takes an array of strings; when false (default) a string.
268
265
  */
269
266
  selectedItems: _propTypes.default.any,
267
+ /**
268
+ * When `selectionPropagation.descendants` is set to `true`.
269
+ *
270
+ * - Selecting a parent selects all its descendants automatically.
271
+ * - Deselecting a parent deselects all its descendants automatically.
272
+ *
273
+ * When `selectionPropagation.parents` is set to `true`.
274
+ *
275
+ * - Selecting all the descendants of a parent selects the parent automatically.
276
+ * - Deselecting a descendant of a selected parent deselects the parent automatically.
277
+ *
278
+ * Only works when `multiSelect` is `true`.
279
+ * On the <SimpleTreeView />, only the expanded items are considered (since the collapsed item are not passed to the Tree View component at all)
280
+ *
281
+ * @default { parents: false, descendants: false }
282
+ */
283
+ selectionPropagation: _propTypes.default.shape({
284
+ descendants: _propTypes.default.bool,
285
+ parents: _propTypes.default.bool
286
+ }),
270
287
  /**
271
288
  * The props used for each component slot.
272
289
  * @default {}
@@ -161,9 +161,7 @@ process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
161
161
  * For each feature, if the flag is not explicitly set to `true`,
162
162
  * the feature will be fully disabled and any property / method call will not have any effect.
163
163
  */
164
- experimentalFeatures: _propTypes.default.shape({
165
- indentationAtItemLevel: _propTypes.default.bool
166
- }),
164
+ experimentalFeatures: _propTypes.default.object,
167
165
  /**
168
166
  * This prop is used to help implement the accessibility logic.
169
167
  * If you don't provide this prop. It falls back to a randomly generated id.
@@ -224,6 +222,26 @@ process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
224
222
  * When `multiSelect` is true this takes an array of strings; when false (default) a string.
225
223
  */
226
224
  selectedItems: _propTypes.default.any,
225
+ /**
226
+ * When `selectionPropagation.descendants` is set to `true`.
227
+ *
228
+ * - Selecting a parent selects all its descendants automatically.
229
+ * - Deselecting a parent deselects all its descendants automatically.
230
+ *
231
+ * When `selectionPropagation.parents` is set to `true`.
232
+ *
233
+ * - Selecting all the descendants of a parent selects the parent automatically.
234
+ * - Deselecting a descendant of a selected parent deselects the parent automatically.
235
+ *
236
+ * Only works when `multiSelect` is `true`.
237
+ * On the <SimpleTreeView />, only the expanded items are considered (since the collapsed item are not passed to the Tree View component at all)
238
+ *
239
+ * @default { parents: false, descendants: false }
240
+ */
241
+ selectionPropagation: _propTypes.default.shape({
242
+ descendants: _propTypes.default.bool,
243
+ parents: _propTypes.default.bool
244
+ }),
227
245
  /**
228
246
  * The props used for each component slot.
229
247
  */