@mui/x-tree-view 8.0.0-beta.3 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/CHANGELOG.md +388 -96
  2. package/RichTreeView/RichTreeView.js +12 -8
  3. package/RichTreeView/RichTreeView.plugins.d.ts +3 -6
  4. package/RichTreeView/RichTreeView.plugins.js +1 -2
  5. package/RichTreeView/RichTreeView.types.d.ts +4 -3
  6. package/RichTreeView/index.d.ts +1 -1
  7. package/SimpleTreeView/SimpleTreeView.js +13 -10
  8. package/SimpleTreeView/SimpleTreeView.plugins.d.ts +3 -6
  9. package/SimpleTreeView/SimpleTreeView.plugins.js +1 -2
  10. package/SimpleTreeView/SimpleTreeView.types.d.ts +4 -3
  11. package/TreeItem/TreeItem.js +5 -12
  12. package/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -1
  13. package/TreeItemIcon/TreeItemIcon.js +15 -11
  14. package/TreeItemLabelInput/TreeItemLabelInput.js +1 -2
  15. package/esm/RichTreeView/RichTreeView.js +11 -7
  16. package/esm/RichTreeView/RichTreeView.plugins.d.ts +3 -6
  17. package/esm/RichTreeView/RichTreeView.plugins.js +1 -2
  18. package/esm/RichTreeView/RichTreeView.types.d.ts +4 -3
  19. package/esm/RichTreeView/index.d.ts +1 -1
  20. package/esm/SimpleTreeView/SimpleTreeView.js +12 -9
  21. package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +3 -6
  22. package/esm/SimpleTreeView/SimpleTreeView.plugins.js +1 -2
  23. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +4 -3
  24. package/esm/TreeItem/TreeItem.js +5 -12
  25. package/esm/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -1
  26. package/esm/TreeItemIcon/TreeItemIcon.js +15 -11
  27. package/esm/TreeItemLabelInput/TreeItemLabelInput.js +1 -2
  28. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
  29. package/esm/index.js +1 -1
  30. package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
  31. package/esm/internals/TreeViewProvider/TreeViewProvider.js +14 -4
  32. package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
  33. package/esm/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
  34. package/esm/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
  35. package/esm/internals/hooks/useSelector.js +1 -4
  36. package/esm/internals/index.d.ts +2 -3
  37. package/esm/internals/index.js +1 -1
  38. package/esm/internals/models/events.d.ts +2 -6
  39. package/esm/internals/models/plugin.d.ts +63 -38
  40. package/esm/internals/models/treeView.d.ts +0 -5
  41. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +35 -21
  42. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
  43. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +21 -1
  44. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
  45. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
  46. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -7
  47. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +3 -30
  48. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
  49. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
  50. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
  51. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
  52. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
  53. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
  54. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +31 -0
  55. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
  56. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
  57. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +12 -2
  58. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
  59. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
  60. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +39 -40
  61. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
  62. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +36 -1
  63. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
  64. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
  65. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +5 -24
  66. package/esm/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
  67. package/esm/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
  68. package/esm/internals/useTreeView/useTreeView.d.ts +10 -1
  69. package/esm/internals/useTreeView/useTreeView.js +22 -25
  70. package/esm/internals/useTreeView/useTreeView.types.d.ts +1 -3
  71. package/esm/internals/useTreeView/useTreeViewBuildContext.js +9 -11
  72. package/esm/internals/utils/models.d.ts +7 -0
  73. package/esm/internals/utils/models.js +23 -0
  74. package/esm/internals/utils/selectors.d.ts +1 -1
  75. package/esm/utils/cache.d.ts +1 -1
  76. package/esm/utils/cache.js +1 -1
  77. package/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
  78. package/index.js +1 -1
  79. package/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
  80. package/internals/TreeViewProvider/TreeViewProvider.js +14 -4
  81. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
  82. package/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
  83. package/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
  84. package/internals/hooks/useSelector.js +1 -5
  85. package/internals/index.d.ts +2 -3
  86. package/internals/index.js +13 -7
  87. package/internals/models/events.d.ts +2 -6
  88. package/internals/models/plugin.d.ts +63 -38
  89. package/internals/models/treeView.d.ts +0 -5
  90. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +33 -19
  91. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
  92. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +22 -2
  93. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
  94. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
  95. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +1 -9
  96. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +2 -30
  97. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
  98. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
  99. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
  100. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
  101. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
  102. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
  103. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +34 -2
  104. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
  105. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
  106. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +13 -3
  107. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
  108. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
  109. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +37 -38
  110. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
  111. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +37 -2
  112. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
  113. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
  114. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +6 -26
  115. package/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
  116. package/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
  117. package/internals/useTreeView/useTreeView.d.ts +10 -1
  118. package/internals/useTreeView/useTreeView.js +22 -25
  119. package/internals/useTreeView/useTreeView.types.d.ts +1 -3
  120. package/internals/useTreeView/useTreeViewBuildContext.js +9 -11
  121. package/internals/utils/models.d.ts +7 -0
  122. package/internals/utils/models.js +30 -0
  123. package/internals/utils/selectors.d.ts +1 -1
  124. package/package.json +4 -12
  125. package/utils/cache.d.ts +1 -1
  126. package/utils/cache.js +1 -1
  127. package/esm/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  128. package/esm/internals/plugins/useTreeViewIcons/index.js +0 -1
  129. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  130. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
  131. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  132. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
  133. package/esm/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  134. package/esm/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
  135. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  136. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
  137. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  138. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
  139. package/esm/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  140. package/esm/internals/useTreeView/useTreeViewModels.js +0 -62
  141. package/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  142. package/internals/plugins/useTreeViewIcons/index.js +0 -12
  143. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  144. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -32
  145. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  146. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -5
  147. package/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  148. package/internals/plugins/useTreeViewItemCustomization/index.js +0 -12
  149. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  150. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -32
  151. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  152. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -5
  153. package/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  154. package/internals/useTreeView/useTreeViewModels.js +0 -71
  155. package/modern/RichTreeView/RichTreeView.d.ts +0 -18
  156. package/modern/RichTreeView/RichTreeView.js +0 -322
  157. package/modern/RichTreeView/RichTreeView.plugins.d.ts +0 -13
  158. package/modern/RichTreeView/RichTreeView.plugins.js +0 -10
  159. package/modern/RichTreeView/RichTreeView.types.d.ts +0 -52
  160. package/modern/RichTreeView/RichTreeView.types.js +0 -1
  161. package/modern/RichTreeView/index.d.ts +0 -5
  162. package/modern/RichTreeView/index.js +0 -3
  163. package/modern/RichTreeView/richTreeViewClasses.d.ts +0 -5
  164. package/modern/RichTreeView/richTreeViewClasses.js +0 -6
  165. package/modern/SimpleTreeView/SimpleTreeView.d.ts +0 -20
  166. package/modern/SimpleTreeView/SimpleTreeView.js +0 -265
  167. package/modern/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -12
  168. package/modern/SimpleTreeView/SimpleTreeView.plugins.js +0 -10
  169. package/modern/SimpleTreeView/SimpleTreeView.types.d.ts +0 -51
  170. package/modern/SimpleTreeView/SimpleTreeView.types.js +0 -1
  171. package/modern/SimpleTreeView/index.d.ts +0 -3
  172. package/modern/SimpleTreeView/index.js +0 -3
  173. package/modern/SimpleTreeView/simpleTreeViewClasses.d.ts +0 -5
  174. package/modern/SimpleTreeView/simpleTreeViewClasses.js +0 -6
  175. package/modern/TreeItem/TreeItem.d.ts +0 -33
  176. package/modern/TreeItem/TreeItem.js +0 -408
  177. package/modern/TreeItem/TreeItem.types.d.ts +0 -107
  178. package/modern/TreeItem/TreeItem.types.js +0 -1
  179. package/modern/TreeItem/index.d.ts +0 -4
  180. package/modern/TreeItem/index.js +0 -2
  181. package/modern/TreeItem/treeItemClasses.d.ts +0 -55
  182. package/modern/TreeItem/treeItemClasses.js +0 -8
  183. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.d.ts +0 -7
  184. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -74
  185. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.d.ts +0 -6
  186. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js +0 -1
  187. package/modern/TreeItemDragAndDropOverlay/index.d.ts +0 -2
  188. package/modern/TreeItemDragAndDropOverlay/index.js +0 -1
  189. package/modern/TreeItemIcon/TreeItemIcon.d.ts +0 -7
  190. package/modern/TreeItemIcon/TreeItemIcon.js +0 -74
  191. package/modern/TreeItemIcon/TreeItemIcon.types.d.ts +0 -40
  192. package/modern/TreeItemIcon/TreeItemIcon.types.js +0 -1
  193. package/modern/TreeItemIcon/index.d.ts +0 -2
  194. package/modern/TreeItemIcon/index.js +0 -1
  195. package/modern/TreeItemLabelInput/TreeItemLabelInput.d.ts +0 -5
  196. package/modern/TreeItemLabelInput/TreeItemLabelInput.js +0 -24
  197. package/modern/TreeItemLabelInput/TreeItemLabelInput.types.d.ts +0 -14
  198. package/modern/TreeItemLabelInput/TreeItemLabelInput.types.js +0 -1
  199. package/modern/TreeItemLabelInput/index.d.ts +0 -2
  200. package/modern/TreeItemLabelInput/index.js +0 -1
  201. package/modern/TreeItemProvider/TreeItemProvider.d.ts +0 -7
  202. package/modern/TreeItemProvider/TreeItemProvider.js +0 -45
  203. package/modern/TreeItemProvider/TreeItemProvider.types.d.ts +0 -7
  204. package/modern/TreeItemProvider/TreeItemProvider.types.js +0 -1
  205. package/modern/TreeItemProvider/index.d.ts +0 -2
  206. package/modern/TreeItemProvider/index.js +0 -1
  207. package/modern/hooks/index.d.ts +0 -3
  208. package/modern/hooks/index.js +0 -3
  209. package/modern/hooks/useTreeItemModel.d.ts +0 -2
  210. package/modern/hooks/useTreeItemModel.js +0 -11
  211. package/modern/hooks/useTreeItemUtils/index.d.ts +0 -1
  212. package/modern/hooks/useTreeItemUtils/index.js +0 -1
  213. package/modern/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +0 -42
  214. package/modern/hooks/useTreeItemUtils/useTreeItemUtils.js +0 -165
  215. package/modern/hooks/useTreeViewApiRef.d.ts +0 -7
  216. package/modern/hooks/useTreeViewApiRef.js +0 -7
  217. package/modern/icons/icons.d.ts +0 -6
  218. package/modern/icons/icons.js +0 -9
  219. package/modern/icons/index.d.ts +0 -1
  220. package/modern/icons/index.js +0 -1
  221. package/modern/index.d.ts +0 -12
  222. package/modern/index.js +0 -22
  223. package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +0 -5
  224. package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.js +0 -5
  225. package/modern/internals/TreeViewItemDepthContext/index.d.ts +0 -1
  226. package/modern/internals/TreeViewItemDepthContext/index.js +0 -1
  227. package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.d.ts +0 -17
  228. package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +0 -49
  229. package/modern/internals/TreeViewProvider/TreeViewContext.d.ts +0 -8
  230. package/modern/internals/TreeViewProvider/TreeViewContext.js +0 -15
  231. package/modern/internals/TreeViewProvider/TreeViewProvider.d.ts +0 -9
  232. package/modern/internals/TreeViewProvider/TreeViewProvider.js +0 -32
  233. package/modern/internals/TreeViewProvider/TreeViewProvider.types.d.ts +0 -21
  234. package/modern/internals/TreeViewProvider/TreeViewProvider.types.js +0 -1
  235. package/modern/internals/TreeViewProvider/TreeViewStyleContext.d.ts +0 -33
  236. package/modern/internals/TreeViewProvider/TreeViewStyleContext.js +0 -13
  237. package/modern/internals/TreeViewProvider/index.d.ts +0 -3
  238. package/modern/internals/TreeViewProvider/index.js +0 -2
  239. package/modern/internals/components/RichTreeViewItems.d.ts +0 -32
  240. package/modern/internals/components/RichTreeViewItems.js +0 -68
  241. package/modern/internals/corePlugins/corePlugins.d.ts +0 -9
  242. package/modern/internals/corePlugins/corePlugins.js +0 -8
  243. package/modern/internals/corePlugins/index.d.ts +0 -2
  244. package/modern/internals/corePlugins/index.js +0 -1
  245. package/modern/internals/corePlugins/useTreeViewId/index.d.ts +0 -2
  246. package/modern/internals/corePlugins/useTreeViewId/index.js +0 -1
  247. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  248. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -39
  249. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -36
  250. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
  251. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  252. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.js +0 -1
  253. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  254. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
  255. package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  256. package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
  257. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  258. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -29
  259. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  260. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +0 -1
  261. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  262. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
  263. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  264. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
  265. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  266. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js +0 -1
  267. package/modern/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  268. package/modern/internals/hooks/useInstanceEventHandler.js +0 -77
  269. package/modern/internals/hooks/useLazyRef.d.ts +0 -1
  270. package/modern/internals/hooks/useLazyRef.js +0 -1
  271. package/modern/internals/hooks/useOnMount.d.ts +0 -1
  272. package/modern/internals/hooks/useOnMount.js +0 -1
  273. package/modern/internals/hooks/useSelector.d.ts +0 -4
  274. package/modern/internals/hooks/useSelector.js +0 -9
  275. package/modern/internals/hooks/useTimeout.d.ts +0 -1
  276. package/modern/internals/hooks/useTimeout.js +0 -1
  277. package/modern/internals/index.d.ts +0 -34
  278. package/modern/internals/index.js +0 -24
  279. package/modern/internals/models/events.d.ts +0 -9
  280. package/modern/internals/models/events.js +0 -1
  281. package/modern/internals/models/helpers.d.ts +0 -7
  282. package/modern/internals/models/helpers.js +0 -1
  283. package/modern/internals/models/index.d.ts +0 -4
  284. package/modern/internals/models/index.js +0 -4
  285. package/modern/internals/models/itemPlugin.d.ts +0 -43
  286. package/modern/internals/models/itemPlugin.js +0 -1
  287. package/modern/internals/models/plugin.d.ts +0 -151
  288. package/modern/internals/models/plugin.js +0 -1
  289. package/modern/internals/models/treeView.d.ts +0 -32
  290. package/modern/internals/models/treeView.js +0 -1
  291. package/modern/internals/plugins/useTreeViewExpansion/index.d.ts +0 -2
  292. package/modern/internals/plugins/useTreeViewExpansion/index.js +0 -1
  293. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  294. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -134
  295. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -184
  296. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +0 -24
  297. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -102
  298. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
  299. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -7
  300. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -19
  301. package/modern/internals/plugins/useTreeViewFocus/index.d.ts +0 -2
  302. package/modern/internals/plugins/useTreeViewFocus/index.js +0 -1
  303. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  304. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -135
  305. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -182
  306. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +0 -34
  307. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  308. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
  309. package/modern/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  310. package/modern/internals/plugins/useTreeViewIcons/index.js +0 -1
  311. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  312. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
  313. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  314. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
  315. package/modern/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  316. package/modern/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
  317. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  318. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
  319. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  320. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
  321. package/modern/internals/plugins/useTreeViewItems/index.d.ts +0 -3
  322. package/modern/internals/plugins/useTreeViewItems/index.js +0 -2
  323. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  324. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -325
  325. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -1058
  326. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -113
  327. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -205
  328. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
  329. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -4
  330. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +0 -8
  331. package/modern/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  332. package/modern/internals/plugins/useTreeViewJSXItems/index.js +0 -1
  333. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  334. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -183
  335. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts +0 -35
  336. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
  337. package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  338. package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
  339. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  340. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -273
  341. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -30
  342. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
  343. package/modern/internals/plugins/useTreeViewLabel/index.d.ts +0 -2
  344. package/modern/internals/plugins/useTreeViewLabel/index.js +0 -1
  345. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  346. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +0 -2
  347. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +0 -72
  348. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -73
  349. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -68
  350. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +0 -24
  351. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -60
  352. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
  353. package/modern/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -1
  354. package/modern/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
  355. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -247
  356. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -27
  357. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -82
  358. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
  359. package/modern/internals/plugins/useTreeViewSelection/index.d.ts +0 -2
  360. package/modern/internals/plugins/useTreeViewSelection/index.js +0 -1
  361. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  362. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.d.ts +0 -2
  363. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +0 -80
  364. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -234
  365. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -363
  366. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +0 -46
  367. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -145
  368. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
  369. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -38
  370. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -126
  371. package/modern/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -22
  372. package/modern/internals/useTreeView/extractPluginParamsFromProps.js +0 -46
  373. package/modern/internals/useTreeView/index.d.ts +0 -1
  374. package/modern/internals/useTreeView/index.js +0 -1
  375. package/modern/internals/useTreeView/useTreeView.d.ts +0 -9
  376. package/modern/internals/useTreeView/useTreeView.js +0 -114
  377. package/modern/internals/useTreeView/useTreeView.types.d.ts +0 -23
  378. package/modern/internals/useTreeView/useTreeView.types.js +0 -1
  379. package/modern/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -18
  380. package/modern/internals/useTreeView/useTreeViewBuildContext.js +0 -101
  381. package/modern/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  382. package/modern/internals/useTreeView/useTreeViewModels.js +0 -62
  383. package/modern/internals/useTreeView/useTreeViewPlugins.d.ts +0 -0
  384. package/modern/internals/useTreeView/useTreeViewPlugins.js +0 -0
  385. package/modern/internals/utils/TreeViewStore.d.ts +0 -12
  386. package/modern/internals/utils/TreeViewStore.js +0 -24
  387. package/modern/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  388. package/modern/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
  389. package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  390. package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -18
  391. package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  392. package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
  393. package/modern/internals/utils/plugins.d.ts +0 -2
  394. package/modern/internals/utils/plugins.js +0 -4
  395. package/modern/internals/utils/publishTreeViewEvent.d.ts +0 -5
  396. package/modern/internals/utils/publishTreeViewEvent.js +0 -3
  397. package/modern/internals/utils/selectors.d.ts +0 -16
  398. package/modern/internals/utils/selectors.js +0 -46
  399. package/modern/internals/utils/tree.d.ts +0 -32
  400. package/modern/internals/utils/tree.js +0 -203
  401. package/modern/internals/utils/utils.d.ts +0 -2
  402. package/modern/internals/utils/utils.js +0 -17
  403. package/modern/internals/zero-styled/index.d.ts +0 -3
  404. package/modern/internals/zero-styled/index.js +0 -7
  405. package/modern/models/events.d.ts +0 -4
  406. package/modern/models/events.js +0 -1
  407. package/modern/models/index.d.ts +0 -3
  408. package/modern/models/index.js +0 -5
  409. package/modern/models/items.d.ts +0 -13
  410. package/modern/models/items.js +0 -1
  411. package/modern/package.json +0 -1
  412. package/modern/themeAugmentation/components.d.ts +0 -21
  413. package/modern/themeAugmentation/index.d.ts +0 -3
  414. package/modern/themeAugmentation/index.js +0 -0
  415. package/modern/themeAugmentation/overrides.d.ts +0 -16
  416. package/modern/themeAugmentation/props.d.ts +0 -14
  417. package/modern/useTreeItem/index.d.ts +0 -2
  418. package/modern/useTreeItem/index.js +0 -1
  419. package/modern/useTreeItem/useTreeItem.d.ts +0 -2
  420. package/modern/useTreeItem/useTreeItem.js +0 -282
  421. package/modern/useTreeItem/useTreeItem.types.d.ts +0 -201
  422. package/modern/useTreeItem/useTreeItem.types.js +0 -1
  423. package/modern/utils/cache.d.ts +0 -38
  424. package/modern/utils/cache.js +0 -31
  425. package/modern/utils/index.d.ts +0 -1
  426. package/modern/utils/index.js +0 -1
  427. package/tsconfig.build.tsbuildinfo +0 -1
@@ -3,16 +3,17 @@ import { Theme } from '@mui/material/styles';
3
3
  import { SlotComponentProps } from '@mui/utils/types';
4
4
  import { SxProps } from '@mui/system/styleFunctionSx';
5
5
  import { SimpleTreeViewClasses } from "./simpleTreeViewClasses.js";
6
- import { SimpleTreeViewPluginParameters, SimpleTreeViewPluginSlotProps, SimpleTreeViewPluginSlots, SimpleTreeViewPluginSignatures } from "./SimpleTreeView.plugins.js";
6
+ import { SimpleTreeViewPluginParameters, SimpleTreeViewPluginSignatures } from "./SimpleTreeView.plugins.js";
7
7
  import { TreeViewExperimentalFeatures, TreeViewPublicAPI } from "../internals/models/index.js";
8
- export interface SimpleTreeViewSlots extends SimpleTreeViewPluginSlots {
8
+ import { TreeViewSlotProps, TreeViewSlots } from "../internals/TreeViewProvider/TreeViewStyleContext.js";
9
+ export interface SimpleTreeViewSlots extends TreeViewSlots {
9
10
  /**
10
11
  * Element rendered at the root.
11
12
  * @default SimpleTreeViewRoot
12
13
  */
13
14
  root?: React.ElementType;
14
15
  }
15
- export interface SimpleTreeViewSlotProps extends SimpleTreeViewPluginSlotProps {
16
+ export interface SimpleTreeViewSlotProps extends TreeViewSlotProps {
16
17
  root?: SlotComponentProps<'ul', {}, {}>;
17
18
  }
18
19
  export type SimpleTreeViewApiRef = React.RefObject<TreeViewPublicAPI<SimpleTreeViewPluginSignatures> | undefined>;
@@ -27,8 +27,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
27
27
  const useThemeProps = createUseThemeProps('MuiTreeItem');
28
28
  export const TreeItemRoot = styled('li', {
29
29
  name: 'MuiTreeItem',
30
- slot: 'Root',
31
- overridesResolver: (props, styles) => styles.root
30
+ slot: 'Root'
32
31
  })({
33
32
  listStyle: 'none',
34
33
  margin: 0,
@@ -38,7 +37,6 @@ export const TreeItemRoot = styled('li', {
38
37
  export const TreeItemContent = styled('div', {
39
38
  name: 'MuiTreeItem',
40
39
  slot: 'Content',
41
- overridesResolver: (props, styles) => styles.content,
42
40
  shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'status'
43
41
  })(({
44
42
  theme
@@ -86,7 +84,6 @@ export const TreeItemContent = styled('div', {
86
84
  export const TreeItemLabel = styled('div', {
87
85
  name: 'MuiTreeItem',
88
86
  slot: 'Label',
89
- overridesResolver: (props, styles) => styles.label,
90
87
  shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'editable'
91
88
  })(({
92
89
  theme
@@ -110,8 +107,7 @@ export const TreeItemLabel = styled('div', {
110
107
  }));
111
108
  export const TreeItemIconContainer = styled('div', {
112
109
  name: 'MuiTreeItem',
113
- slot: 'IconContainer',
114
- overridesResolver: (props, styles) => styles.iconContainer
110
+ slot: 'IconContainer'
115
111
  })({
116
112
  width: 16,
117
113
  display: 'flex',
@@ -132,8 +128,7 @@ export const TreeItemGroupTransition = styled(Collapse, {
132
128
  });
133
129
  export const TreeItemErrorContainer = styled('div', {
134
130
  name: 'MuiTreeItem',
135
- slot: 'ErrorIcon',
136
- overridesResolver: (props, styles) => styles.errorIcon
131
+ slot: 'ErrorIcon'
137
132
  })({
138
133
  position: 'absolute',
139
134
  right: -3,
@@ -144,8 +139,7 @@ export const TreeItemErrorContainer = styled('div', {
144
139
  });
145
140
  export const TreeItemLoadingContainer = styled(CircularProgress, {
146
141
  name: 'MuiTreeItem',
147
- slot: 'LoadingIcon',
148
- overridesResolver: (props, styles) => styles.loadingIcon
142
+ slot: 'LoadingIcon'
149
143
  })({
150
144
  color: 'text.primary'
151
145
  });
@@ -162,8 +156,7 @@ export const TreeItemCheckbox = styled(/*#__PURE__*/React.forwardRef((props, ref
162
156
  }));
163
157
  }), {
164
158
  name: 'MuiTreeItem',
165
- slot: 'Checkbox',
166
- overridesResolver: (props, styles) => styles.checkbox
159
+ slot: 'Checkbox'
167
160
  })({
168
161
  padding: 0
169
162
  });
@@ -10,7 +10,6 @@ import { jsx as _jsx } from "react/jsx-runtime";
10
10
  const TreeItemDragAndDropOverlayRoot = styled('div', {
11
11
  name: 'MuiTreeItemDragAndDropOverlay',
12
12
  slot: 'Root',
13
- overridesResolver: (props, styles) => styles.root,
14
13
  shouldForwardProp: prop => shouldForwardProp(prop) && prop !== 'action'
15
14
  })(({
16
15
  theme
@@ -5,21 +5,25 @@ import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import resolveComponentProps from '@mui/utils/resolveComponentProps';
7
7
  import useSlotProps from '@mui/utils/useSlotProps';
8
- import { useTreeViewContext } from "../internals/TreeViewProvider/index.js";
8
+ import { useTreeViewStyleContext } from "../internals/TreeViewProvider/TreeViewStyleContext.js";
9
9
  import { TreeViewCollapseIcon, TreeViewExpandIcon } from "../icons/index.js";
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
11
  function TreeItemIcon(props) {
12
12
  const {
13
- slots,
14
- slotProps,
13
+ slots: slotsFromTreeItem,
14
+ slotProps: slotPropsFromTreeItem,
15
15
  status
16
16
  } = props;
17
- const context = useTreeViewContext();
18
- const contextIcons = _extends({}, context.icons.slots, {
19
- expandIcon: context.icons.slots.expandIcon ?? TreeViewExpandIcon,
20
- collapseIcon: context.icons.slots.collapseIcon ?? TreeViewCollapseIcon
21
- });
22
- const contextIconProps = context.icons.slotProps;
17
+ const {
18
+ slots: slotsFromTreeView,
19
+ slotProps: slotPropsFromTreeView
20
+ } = useTreeViewStyleContext();
21
+ const slots = {
22
+ collapseIcon: slotsFromTreeItem?.collapseIcon ?? slotsFromTreeView.collapseIcon ?? TreeViewCollapseIcon,
23
+ expandIcon: slotsFromTreeItem?.expandIcon ?? slotsFromTreeView.expandIcon ?? TreeViewExpandIcon,
24
+ endIcon: slotsFromTreeItem?.endIcon ?? slotsFromTreeView.endIcon,
25
+ icon: slotsFromTreeItem?.icon
26
+ };
23
27
  let iconName;
24
28
  if (slots?.icon) {
25
29
  iconName = 'icon';
@@ -32,10 +36,10 @@ function TreeItemIcon(props) {
32
36
  } else {
33
37
  iconName = 'endIcon';
34
38
  }
35
- const Icon = slots?.[iconName] ?? contextIcons[iconName];
39
+ const Icon = slots[iconName];
36
40
  const iconProps = useSlotProps({
37
41
  elementType: Icon,
38
- externalSlotProps: tempOwnerState => _extends({}, resolveComponentProps(contextIconProps[iconName], tempOwnerState), resolveComponentProps(slotProps?.[iconName], tempOwnerState)),
42
+ externalSlotProps: tempOwnerState => _extends({}, resolveComponentProps(slotPropsFromTreeView[iconName], tempOwnerState), resolveComponentProps(slotPropsFromTreeItem?.[iconName], tempOwnerState)),
39
43
  // TODO: Add proper ownerState
40
44
  ownerState: {}
41
45
  });
@@ -6,8 +6,7 @@ import { styled } from "../internals/zero-styled/index.js";
6
6
  */
7
7
  const TreeItemLabelInput = styled('input', {
8
8
  name: 'MuiTreeItem',
9
- slot: 'LabelInput',
10
- overridesResolver: (props, styles) => styles.labelInput
9
+ slot: 'LabelInput'
11
10
  })(({
12
11
  theme
13
12
  }) => _extends({}, theme.typography.body1, {
@@ -79,7 +79,7 @@ export const useTreeItemUtils = ({
79
79
  if (status.disabled) {
80
80
  return;
81
81
  }
82
- if (!status.focused) {
82
+ if (!status.focused && !status.editing) {
83
83
  instance.focusItem(event, itemId);
84
84
  }
85
85
  const multiple = isMultiSelectEnabled && (event.shiftKey || event.ctrlKey || event.metaKey);
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-tree-view v8.0.0-beta.3
2
+ * @mui/x-tree-view v8.1.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -4,5 +4,5 @@ import { TreeViewContextValue } from "./TreeViewProvider.types.js";
4
4
  /**
5
5
  * @ignore - internal component.
6
6
  */
7
- export declare const TreeViewContext: React.Context<TreeViewContextValue<any> | null>;
7
+ export declare const TreeViewContext: React.Context<TreeViewContextValue<any, []> | null>;
8
8
  export declare const useTreeViewContext: <TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []>() => TreeViewContextValue<TSignatures, TOptionalSignatures>;
@@ -13,13 +13,23 @@ export function TreeViewProvider(props) {
13
13
  const {
14
14
  contextValue,
15
15
  classes = EMPTY_OBJECT,
16
+ slots = EMPTY_OBJECT,
17
+ slotProps = EMPTY_OBJECT,
16
18
  children
17
19
  } = props;
18
-
19
- // TODO: Add the icons to this context and drop useTreeViewIcons
20
20
  const styleContextValue = React.useMemo(() => ({
21
- classes
22
- }), [classes]);
21
+ classes,
22
+ slots: {
23
+ collapseIcon: slots.collapseIcon,
24
+ expandIcon: slots.expandIcon,
25
+ endIcon: slots.endIcon
26
+ },
27
+ slotProps: {
28
+ collapseIcon: slotProps.collapseIcon,
29
+ expandIcon: slotProps.expandIcon,
30
+ endIcon: slotProps.endIcon
31
+ }
32
+ }), [classes, slots.collapseIcon, slots.expandIcon, slots.endIcon, slotProps.collapseIcon, slotProps.expandIcon, slotProps.endIcon]);
23
33
  return /*#__PURE__*/_jsx(TreeViewContext.Provider, {
24
34
  value: contextValue,
25
35
  children: /*#__PURE__*/_jsx(TreeViewStyleContext.Provider, {
@@ -1,11 +1,10 @@
1
1
  import * as React from 'react';
2
- import { MergeSignaturesProperty, TreeItemWrapper, TreeRootWrapper, TreeViewAnyPluginSignature, TreeViewInstance, TreeViewItemPluginResponse, TreeViewPublicAPI } from "../models/index.js";
2
+ import { TreeItemWrapper, TreeRootWrapper, TreeViewAnyPluginSignature, TreeViewInstance, TreeViewItemPluginResponse, TreeViewPublicAPI } from "../models/index.js";
3
3
  import { TreeViewStore } from "../utils/TreeViewStore.js";
4
- import { TreeViewCorePluginSignatures } from "../corePlugins/index.js";
5
4
  import type { TreeItemProps } from '../../TreeItem/TreeItem.types';
6
- import { TreeViewClasses } from "./TreeViewStyleContext.js";
5
+ import { TreeViewClasses, TreeViewSlotProps, TreeViewSlots } from "./TreeViewStyleContext.js";
7
6
  export type TreeViewItemPluginsRunner = (props: TreeItemProps) => Required<TreeViewItemPluginResponse>;
8
- export type TreeViewContextValue<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = MergeSignaturesProperty<[...TreeViewCorePluginSignatures, ...TSignatures], 'contextValue'> & Partial<MergeSignaturesProperty<TOptionalSignatures, 'contextValue'>> & {
7
+ export interface TreeViewContextValue<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> {
9
8
  instance: TreeViewInstance<TSignatures, TOptionalSignatures>;
10
9
  publicAPI: TreeViewPublicAPI<TSignatures, TOptionalSignatures>;
11
10
  store: TreeViewStore<TSignatures>;
@@ -13,9 +12,11 @@ export type TreeViewContextValue<TSignatures extends readonly TreeViewAnyPluginS
13
12
  wrapItem: TreeItemWrapper<TSignatures>;
14
13
  wrapRoot: TreeRootWrapper;
15
14
  runItemPlugins: TreeViewItemPluginsRunner;
16
- };
15
+ }
17
16
  export interface TreeViewProviderProps<TSignatures extends readonly TreeViewAnyPluginSignature[]> {
18
17
  contextValue: TreeViewContextValue<TSignatures>;
19
18
  children: React.ReactNode;
20
19
  classes: Partial<TreeViewClasses> | undefined;
20
+ slots: TreeViewSlots | undefined;
21
+ slotProps: TreeViewSlotProps | undefined;
21
22
  }
@@ -1,3 +1,4 @@
1
+ import { SlotComponentProps } from '@mui/utils/types';
1
2
  import * as React from 'react';
2
3
  export interface TreeViewClasses {
3
4
  /** Styles applied to the root element. */
@@ -23,8 +24,30 @@ export interface TreeViewClasses {
23
24
  /** Styles applied to the item's loading icon element */
24
25
  itemLoadingIcon: string;
25
26
  }
27
+ export interface TreeViewSlots {
28
+ /**
29
+ * The default icon used to collapse the item.
30
+ */
31
+ collapseIcon?: React.ElementType;
32
+ /**
33
+ * The default icon used to expand the item.
34
+ */
35
+ expandIcon?: React.ElementType;
36
+ /**
37
+ * The default icon displayed next to an end item.
38
+ * This is applied to all Tree Items and can be overridden by the TreeItem `icon` slot prop.
39
+ */
40
+ endIcon?: React.ElementType;
41
+ }
42
+ export interface TreeViewSlotProps {
43
+ collapseIcon?: SlotComponentProps<'svg', {}, {}>;
44
+ expandIcon?: SlotComponentProps<'svg', {}, {}>;
45
+ endIcon?: SlotComponentProps<'svg', {}, {}>;
46
+ }
26
47
  export interface TreeViewStyleContextValue {
27
48
  classes: Partial<TreeViewClasses>;
49
+ slots: TreeViewSlots;
50
+ slotProps: TreeViewSlotProps;
28
51
  }
29
52
  /**
30
53
  * @ignore - internal component.
@@ -3,7 +3,9 @@ import * as React from 'react';
3
3
  * @ignore - internal component.
4
4
  */
5
5
  export const TreeViewStyleContext = /*#__PURE__*/React.createContext({
6
- classes: {}
6
+ classes: {},
7
+ slots: {},
8
+ slotProps: {}
7
9
  });
8
10
  if (process.env.NODE_ENV !== 'production') {
9
11
  TreeViewStyleContext.displayName = 'TreeViewStyleContext';
@@ -1,7 +1,4 @@
1
- // use-sync-external-store has no exports field defined
2
- // See https://github.com/facebook/react/issues/30698
3
- // eslint-disable-next-line import/extensions
4
- import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js';
1
+ import { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector';
5
2
  const defaultCompare = Object.is;
6
3
  export const useSelector = (store, selector, args = undefined, equals = defaultCompare) => {
7
4
  const selectorWithArgs = state => selector(state, args);
@@ -14,12 +14,11 @@ export { useTreeViewFocus } from "./plugins/useTreeViewFocus/index.js";
14
14
  export type { UseTreeViewFocusSignature, UseTreeViewFocusParameters } from './plugins/useTreeViewFocus';
15
15
  export { useTreeViewKeyboardNavigation } from "./plugins/useTreeViewKeyboardNavigation/index.js";
16
16
  export type { UseTreeViewKeyboardNavigationSignature } from './plugins/useTreeViewKeyboardNavigation';
17
- export { useTreeViewIcons } from "./plugins/useTreeViewIcons/index.js";
18
- export type { UseTreeViewIconsSignature, UseTreeViewIconsParameters } from './plugins/useTreeViewIcons';
19
17
  export { useTreeViewItems, buildSiblingIndexes, TREE_VIEW_ROOT_PARENT_ID } from "./plugins/useTreeViewItems/index.js";
20
18
  export { selectorItemMetaLookup, selectorItemMeta, selectorItemIndex, selectorItemOrderedChildrenIds } from "./plugins/useTreeViewItems/useTreeViewItems.selectors.js";
21
19
  export type { UseTreeViewItemsSignature, UseTreeViewItemsParameters, UseTreeViewItemsState } from './plugins/useTreeViewItems';
22
20
  export { useTreeViewLabel } from "./plugins/useTreeViewLabel/index.js";
21
+ export { selectorIsItemBeingEdited, selectorIsAnyItemBeingEdited as selectorIsAnItemEdited } from "./plugins/useTreeViewLabel/useTreeViewLabel.selectors.js";
23
22
  export type { UseTreeViewLabelSignature, UseTreeViewLabelParameters } from './plugins/useTreeViewLabel';
24
23
  export { selectorIsItemExpanded } from "./plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js";
25
24
  export { selectorIsItemSelected } from "./plugins/useTreeViewSelection/useTreeViewSelection.selectors.js";
@@ -31,4 +30,4 @@ export type { UseTreeViewJSXItemsSignature, UseTreeViewJSXItemsParameters } from
31
30
  export { createSelector } from "./utils/selectors.js";
32
31
  export { isTargetInDescendants } from "./utils/tree.js";
33
32
  export { TreeViewStore } from "./utils/TreeViewStore.js";
34
- export type { TreeViewClasses } from './TreeViewProvider/TreeViewStyleContext';
33
+ export type { TreeViewClasses, TreeViewSlots, TreeViewSlotProps } from './TreeViewProvider/TreeViewStyleContext';
@@ -11,10 +11,10 @@ export { useTreeViewExpansion } from "./plugins/useTreeViewExpansion/index.js";
11
11
  export { useTreeViewSelection } from "./plugins/useTreeViewSelection/index.js";
12
12
  export { useTreeViewFocus } from "./plugins/useTreeViewFocus/index.js";
13
13
  export { useTreeViewKeyboardNavigation } from "./plugins/useTreeViewKeyboardNavigation/index.js";
14
- export { useTreeViewIcons } from "./plugins/useTreeViewIcons/index.js";
15
14
  export { useTreeViewItems, buildSiblingIndexes, TREE_VIEW_ROOT_PARENT_ID } from "./plugins/useTreeViewItems/index.js";
16
15
  export { selectorItemMetaLookup, selectorItemMeta, selectorItemIndex, selectorItemOrderedChildrenIds } from "./plugins/useTreeViewItems/useTreeViewItems.selectors.js";
17
16
  export { useTreeViewLabel } from "./plugins/useTreeViewLabel/index.js";
17
+ export { selectorIsItemBeingEdited, selectorIsAnyItemBeingEdited as selectorIsAnItemEdited } from "./plugins/useTreeViewLabel/useTreeViewLabel.selectors.js";
18
18
  export { selectorIsItemExpanded } from "./plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js";
19
19
  export { selectorIsItemSelected } from "./plugins/useTreeViewSelection/useTreeViewSelection.selectors.js";
20
20
  export { selectorDataSourceState, selectorGetTreeItemError } from "./plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js";
@@ -1,9 +1,5 @@
1
- import * as React from 'react';
1
+ import { MuiEvent } from '@mui/x-internals/types';
2
2
  export interface TreeViewEventLookupElement {
3
3
  params: object;
4
4
  }
5
- export type TreeViewEventListener<E extends TreeViewEventLookupElement> = (params: E['params'], event: MuiEvent<{}>) => void;
6
- export type MuiBaseEvent = React.SyntheticEvent<HTMLElement> | DocumentEventMap[keyof DocumentEventMap] | {};
7
- export type MuiEvent<E extends MuiBaseEvent = MuiBaseEvent> = E & {
8
- defaultMuiPrevented?: boolean;
9
- };
5
+ export type TreeViewEventListener<E extends TreeViewEventLookupElement> = (params: E['params'], event: MuiEvent<{}>) => void;
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { EventHandlers } from '@mui/utils/types';
3
- import { TreeViewExperimentalFeatures, TreeViewInstance, TreeViewModel } from "./treeView.js";
3
+ import { TreeViewExperimentalFeatures, TreeViewInstance } from "./treeView.js";
4
4
  import type { MergeSignaturesProperty, OptionalIfEmpty } from './helpers';
5
5
  import { TreeViewEventLookupElement } from "./events.js";
6
6
  import type { TreeViewCorePluginSignatures } from '../corePlugins';
@@ -8,22 +8,31 @@ import { TreeViewItemPlugin } from "./itemPlugin.js";
8
8
  import { TreeViewItemId } from "../../models/index.js";
9
9
  import { TreeViewStore } from "../utils/TreeViewStore.js";
10
10
  export interface TreeViewPluginOptions<TSignature extends TreeViewAnyPluginSignature> {
11
+ /**
12
+ * An imperative API available for internal use. Used to access methods from other plugins.
13
+ */
11
14
  instance: TreeViewUsedInstance<TSignature>;
15
+ /**
16
+ * The Tree View parameters after being processed with the default values.
17
+ */
12
18
  params: TreeViewUsedDefaultizedParams<TSignature>;
13
- slots: TSignature['slots'];
14
- slotProps: TSignature['slotProps'];
15
19
  experimentalFeatures: TreeViewUsedExperimentalFeatures<TSignature>;
16
- models: TreeViewUsedModels<TSignature>;
20
+ /**
21
+ * The store that can be used to access the state of other plugins.
22
+ */
17
23
  store: TreeViewUsedStore<TSignature>;
24
+ /**
25
+ * Reference to the root element.
26
+ */
18
27
  rootRef: React.RefObject<HTMLUListElement | null>;
28
+ /**
29
+ * All the plugins that are used in the tree-view.
30
+ */
19
31
  plugins: TreeViewPlugin<TreeViewAnyPluginSignature>[];
20
32
  }
21
- type TreeViewModelsInitializer<TSignature extends TreeViewAnyPluginSignature> = { [TControlled in keyof TSignature['models']]: {
22
- getDefaultValue: (params: TSignature['defaultizedParams']) => Exclude<TSignature['defaultizedParams'][TControlled], undefined>;
23
- } };
24
33
  type TreeViewResponse<TSignature extends TreeViewAnyPluginSignature> = {
25
34
  getRootProps?: <TOther extends EventHandlers = {}>(otherHandlers: TOther) => React.HTMLAttributes<HTMLUListElement>;
26
- } & OptionalIfEmpty<'publicAPI', TSignature['publicAPI']> & OptionalIfEmpty<'instance', TSignature['instance']> & OptionalIfEmpty<'contextValue', TSignature['contextValue']>;
35
+ } & OptionalIfEmpty<'publicAPI', TSignature['publicAPI']> & OptionalIfEmpty<'instance', TSignature['instance']>;
27
36
  export type TreeViewPluginSignature<T extends {
28
37
  params?: {};
29
38
  defaultizedParams?: {};
@@ -31,61 +40,61 @@ export type TreeViewPluginSignature<T extends {
31
40
  publicAPI?: {};
32
41
  events?: { [key in keyof T['events']]: TreeViewEventLookupElement };
33
42
  state?: {};
34
- cache?: {};
35
- contextValue?: {};
36
- slots?: { [key in keyof T['slots']]: React.ElementType };
37
- slotProps?: { [key in keyof T['slotProps']]: {} | (() => {}) };
38
- modelNames?: keyof T['defaultizedParams'];
39
43
  experimentalFeatures?: string;
40
44
  dependencies?: readonly TreeViewAnyPluginSignature[];
41
45
  optionalDependencies?: readonly TreeViewAnyPluginSignature[];
42
46
  }> = {
47
+ /**
48
+ * The raw properties that can be passed to the plugin.
49
+ */
43
50
  params: T extends {
44
51
  params: {};
45
52
  } ? T['params'] : {};
53
+ /**
54
+ * The params after being processed with the default values.
55
+ */
46
56
  defaultizedParams: T extends {
47
57
  defaultizedParams: {};
48
58
  } ? T['defaultizedParams'] : {};
59
+ /**
60
+ * An imperative api available for internal use.
61
+ */
49
62
  instance: T extends {
50
63
  instance: {};
51
64
  } ? T['instance'] : {};
65
+ /**
66
+ * The public imperative API that will be exposed to the user.
67
+ * Accessed through the `apiRef` property of the plugin.
68
+ */
52
69
  publicAPI: T extends {
53
70
  publicAPI: {};
54
71
  } ? T['publicAPI'] : {};
55
72
  events: T extends {
56
73
  events: {};
57
74
  } ? T['events'] : {};
75
+ /**
76
+ * The state is the mutable data that will actually be stored in the plugin state and can be accessed by other plugins.
77
+ */
58
78
  state: T extends {
59
79
  state: {};
60
80
  } ? T['state'] : {};
61
- cache: T extends {
62
- cache: {};
63
- } ? T['cache'] : {};
64
- contextValue: T extends {
65
- contextValue: {};
66
- } ? T['contextValue'] : {};
67
- slots: T extends {
68
- slots: {};
69
- } ? T['slots'] : {};
70
- slotProps: T extends {
71
- slotProps: {};
72
- } ? T['slotProps'] : {};
73
- models: T extends {
74
- defaultizedParams: {};
75
- modelNames: keyof T['defaultizedParams'];
76
- } ? { [TControlled in T['modelNames']]-?: TreeViewModel<Exclude<T['defaultizedParams'][TControlled], undefined>> } : {};
77
81
  experimentalFeatures: T extends {
78
82
  experimentalFeatures: string;
79
83
  } ? { [key in T['experimentalFeatures']]?: boolean } : {};
84
+ /**
85
+ * Any plugins that this plugin depends on.
86
+ */
80
87
  dependencies: T extends {
81
88
  dependencies: Array<any>;
82
89
  } ? T['dependencies'] : [];
90
+ /**
91
+ * Same as dependencies but the plugin might not have been initialized. Used for dependencies on plugins of features that can be enabled conditionally.
92
+ */
83
93
  optionalDependencies: T extends {
84
94
  optionalDependencies: Array<any>;
85
95
  } ? T['optionalDependencies'] : [];
86
96
  };
87
97
  export type TreeViewAnyPluginSignature = {
88
- cache: any;
89
98
  state: any;
90
99
  instance: any;
91
100
  params: any;
@@ -93,10 +102,6 @@ export type TreeViewAnyPluginSignature = {
93
102
  dependencies: any;
94
103
  optionalDependencies: any;
95
104
  events: any;
96
- contextValue: any;
97
- slots: any;
98
- slotProps: any;
99
- models: any;
100
105
  experimentalFeatures: any;
101
106
  publicAPI: any;
102
107
  };
@@ -112,8 +117,6 @@ export type TreeViewUsedInstance<TSignature extends TreeViewAnyPluginSignature>
112
117
  };
113
118
  export type TreeViewUsedStore<TSignature extends TreeViewAnyPluginSignature> = TreeViewStore<[TSignature, ...TSignature['dependencies']]>;
114
119
  type TreeViewUsedExperimentalFeatures<TSignature extends TreeViewAnyPluginSignature> = TreeViewExperimentalFeatures<[TSignature, ...TSignature['dependencies']], TSignature['optionalDependencies']>;
115
- type RemoveSetValue<Models extends Record<string, TreeViewModel<any>>> = { [K in keyof Models]: Omit<Models[K], 'setValue'> };
116
- export type TreeViewUsedModels<TSignature extends TreeViewAnyPluginSignature> = TSignature['models'] & RemoveSetValue<MergeSignaturesProperty<TreeViewRequiredPlugins<TSignature>, 'models'>>;
117
120
  export type TreeViewUsedEvents<TSignature extends TreeViewAnyPluginSignature> = TSignature['events'] & MergeSignaturesProperty<TreeViewRequiredPlugins<TSignature>, 'events'>;
118
121
  export type TreeItemWrapper<TSignatures extends readonly TreeViewAnyPluginSignature[]> = (params: {
119
122
  itemId: TreeViewItemId;
@@ -125,14 +128,36 @@ export type TreeRootWrapper = (params: {
125
128
  children: React.ReactNode;
126
129
  }) => React.ReactNode;
127
130
  export type TreeViewPlugin<TSignature extends TreeViewAnyPluginSignature> = {
131
+ /**
132
+ * The main function of the plugin that will be executed by the Tree View.
133
+ *
134
+ * This should be a valid React `use` function, as it will be executed in the render phase and can contain hooks.
135
+ */
128
136
  (options: TreeViewPluginOptions<TSignature>): TreeViewResponse<TSignature>;
137
+ /**
138
+ * A function that receives the parameters and returns them after being processed with the default values.
139
+ *
140
+ * @param {TreeViewUsedParams<TSignature>} options The options object.
141
+ * @param {TreeViewUsedParams<TSignature>['params']} options.params The parameters before being processed with the default values.
142
+ * @param {TreeViewUsedExperimentalFeatures<TSignature>} options.experimentalFeatures An object containing the experimental feature flags.
143
+ * @returns {TSignature['defaultizedParams']} The parameters after being processed with the default values.
144
+ */
129
145
  getDefaultizedParams?: (options: {
130
146
  params: TreeViewUsedParams<TSignature>;
131
147
  experimentalFeatures: TreeViewUsedExperimentalFeatures<TSignature>;
132
148
  }) => TSignature['defaultizedParams'];
149
+ /**
150
+ * The initial state is computed after the default values are applied.
151
+ * It sets up the state for the first render.
152
+ * Other state modifications have to be done in effects and so could not be applied on the initial render.
153
+ *
154
+ * @param {TreeViewUsedDefaultizedParams<TSignature>} params The parameters after being processed with the default values.
155
+ * @returns {TSignature['state']} The initial state of the plugin.
156
+ */
133
157
  getInitialState?: (params: TreeViewUsedDefaultizedParams<TSignature>) => TSignature['state'];
134
- getInitialCache?: () => TSignature['cache'];
135
- models?: TreeViewModelsInitializer<TSignature>;
158
+ /**
159
+ * An object where each property used by the plugin is set to `true`.
160
+ */
136
161
  params: Record<keyof TSignature['params'], true>;
137
162
  itemPlugin?: TreeViewItemPlugin;
138
163
  /**
@@ -16,11 +16,6 @@ export interface TreeViewItemMeta {
16
16
  */
17
17
  label?: string;
18
18
  }
19
- export interface TreeViewModel<TValue> {
20
- name: string;
21
- value: TValue;
22
- setControlledValue: (value: TValue | ((prevValue: TValue) => TValue)) => void;
23
- }
24
19
  export type TreeViewInstance<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = MergeSignaturesProperty<[...TreeViewCorePluginSignatures, ...TSignatures], 'instance'> & Partial<MergeSignaturesProperty<TOptionalSignatures, 'instance'>>;
25
20
  export type TreeViewPublicAPI<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = MergeSignaturesProperty<[...TreeViewCorePluginSignatures, ...TSignatures], 'publicAPI'> & Partial<MergeSignaturesProperty<TOptionalSignatures, 'instance'>>;
26
21
  export type TreeViewExperimentalFeatures<TSignatures extends readonly TreeViewAnyPluginSignature[], TOptionalSignatures extends readonly TreeViewAnyPluginSignature[] = []> = MergeSignaturesProperty<[...TSignatures, ...TOptionalSignatures], 'experimentalFeatures'>;