@mui/x-tree-view 8.0.0-beta.2 → 8.0.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 (421) hide show
  1. package/CHANGELOG.md +423 -96
  2. package/RichTreeView/RichTreeView.js +11 -6
  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 +12 -8
  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/TreeItemIcon/TreeItemIcon.js +15 -11
  12. package/esm/RichTreeView/RichTreeView.js +10 -5
  13. package/esm/RichTreeView/RichTreeView.plugins.d.ts +3 -6
  14. package/esm/RichTreeView/RichTreeView.plugins.js +1 -2
  15. package/esm/RichTreeView/RichTreeView.types.d.ts +4 -3
  16. package/esm/RichTreeView/index.d.ts +1 -1
  17. package/esm/SimpleTreeView/SimpleTreeView.js +11 -7
  18. package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +3 -6
  19. package/esm/SimpleTreeView/SimpleTreeView.plugins.js +1 -2
  20. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +4 -3
  21. package/esm/TreeItemIcon/TreeItemIcon.js +15 -11
  22. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
  23. package/esm/index.js +1 -1
  24. package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
  25. package/esm/internals/TreeViewProvider/TreeViewProvider.js +14 -4
  26. package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
  27. package/esm/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
  28. package/esm/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
  29. package/esm/internals/hooks/useSelector.js +1 -4
  30. package/esm/internals/index.d.ts +2 -3
  31. package/esm/internals/index.js +1 -1
  32. package/esm/internals/models/events.d.ts +2 -6
  33. package/esm/internals/models/plugin.d.ts +63 -38
  34. package/esm/internals/models/treeView.d.ts +0 -5
  35. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +35 -21
  36. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
  37. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +21 -1
  38. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
  39. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
  40. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -7
  41. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +3 -30
  42. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
  43. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
  44. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
  45. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
  46. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
  47. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
  48. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +31 -0
  49. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
  50. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
  51. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +12 -2
  52. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
  53. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
  54. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +39 -40
  55. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
  56. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +36 -1
  57. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
  58. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
  59. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +5 -24
  60. package/esm/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
  61. package/esm/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
  62. package/esm/internals/useTreeView/useTreeView.d.ts +10 -1
  63. package/esm/internals/useTreeView/useTreeView.js +22 -25
  64. package/esm/internals/useTreeView/useTreeView.types.d.ts +1 -3
  65. package/esm/internals/useTreeView/useTreeViewBuildContext.js +9 -11
  66. package/esm/internals/utils/models.d.ts +7 -0
  67. package/esm/internals/utils/models.js +23 -0
  68. package/esm/internals/utils/selectors.d.ts +1 -1
  69. package/esm/utils/cache.d.ts +1 -1
  70. package/esm/utils/cache.js +1 -1
  71. package/hooks/useTreeItemUtils/useTreeItemUtils.js +1 -1
  72. package/index.js +1 -1
  73. package/internals/TreeViewProvider/TreeViewContext.d.ts +1 -1
  74. package/internals/TreeViewProvider/TreeViewProvider.js +14 -4
  75. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +6 -5
  76. package/internals/TreeViewProvider/TreeViewStyleContext.d.ts +23 -0
  77. package/internals/TreeViewProvider/TreeViewStyleContext.js +3 -1
  78. package/internals/hooks/useSelector.js +1 -5
  79. package/internals/index.d.ts +2 -3
  80. package/internals/index.js +13 -7
  81. package/internals/models/events.d.ts +2 -6
  82. package/internals/models/plugin.d.ts +63 -38
  83. package/internals/models/treeView.d.ts +0 -5
  84. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +33 -19
  85. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +144 -10
  86. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +22 -2
  87. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +1 -1
  88. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -1
  89. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +1 -9
  90. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +2 -30
  91. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +476 -28
  92. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +21 -1
  93. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -1
  94. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +90 -4
  95. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +12 -25
  96. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +12 -1
  97. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +34 -2
  98. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +3 -6
  99. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +43 -9
  100. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +13 -3
  101. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +1 -1
  102. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +2 -2
  103. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +37 -38
  104. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +186 -30
  105. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +37 -2
  106. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +3 -6
  107. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -7
  108. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +6 -26
  109. package/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -2
  110. package/internals/useTreeView/extractPluginParamsFromProps.js +1 -5
  111. package/internals/useTreeView/useTreeView.d.ts +10 -1
  112. package/internals/useTreeView/useTreeView.js +22 -25
  113. package/internals/useTreeView/useTreeView.types.d.ts +1 -3
  114. package/internals/useTreeView/useTreeViewBuildContext.js +9 -11
  115. package/internals/utils/models.d.ts +7 -0
  116. package/internals/utils/models.js +30 -0
  117. package/internals/utils/selectors.d.ts +1 -1
  118. package/package.json +7 -15
  119. package/utils/cache.d.ts +1 -1
  120. package/utils/cache.js +1 -1
  121. package/esm/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  122. package/esm/internals/plugins/useTreeViewIcons/index.js +0 -1
  123. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  124. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
  125. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  126. package/esm/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
  127. package/esm/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  128. package/esm/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
  129. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  130. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
  131. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  132. package/esm/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
  133. package/esm/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  134. package/esm/internals/useTreeView/useTreeViewModels.js +0 -62
  135. package/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  136. package/internals/plugins/useTreeViewIcons/index.js +0 -12
  137. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  138. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -32
  139. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  140. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -5
  141. package/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  142. package/internals/plugins/useTreeViewItemCustomization/index.js +0 -12
  143. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  144. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -32
  145. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  146. package/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -5
  147. package/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  148. package/internals/useTreeView/useTreeViewModels.js +0 -71
  149. package/modern/RichTreeView/RichTreeView.d.ts +0 -18
  150. package/modern/RichTreeView/RichTreeView.js +0 -322
  151. package/modern/RichTreeView/RichTreeView.plugins.d.ts +0 -13
  152. package/modern/RichTreeView/RichTreeView.plugins.js +0 -10
  153. package/modern/RichTreeView/RichTreeView.types.d.ts +0 -52
  154. package/modern/RichTreeView/RichTreeView.types.js +0 -1
  155. package/modern/RichTreeView/index.d.ts +0 -5
  156. package/modern/RichTreeView/index.js +0 -3
  157. package/modern/RichTreeView/richTreeViewClasses.d.ts +0 -5
  158. package/modern/RichTreeView/richTreeViewClasses.js +0 -6
  159. package/modern/SimpleTreeView/SimpleTreeView.d.ts +0 -20
  160. package/modern/SimpleTreeView/SimpleTreeView.js +0 -265
  161. package/modern/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -12
  162. package/modern/SimpleTreeView/SimpleTreeView.plugins.js +0 -10
  163. package/modern/SimpleTreeView/SimpleTreeView.types.d.ts +0 -51
  164. package/modern/SimpleTreeView/SimpleTreeView.types.js +0 -1
  165. package/modern/SimpleTreeView/index.d.ts +0 -3
  166. package/modern/SimpleTreeView/index.js +0 -3
  167. package/modern/SimpleTreeView/simpleTreeViewClasses.d.ts +0 -5
  168. package/modern/SimpleTreeView/simpleTreeViewClasses.js +0 -6
  169. package/modern/TreeItem/TreeItem.d.ts +0 -33
  170. package/modern/TreeItem/TreeItem.js +0 -408
  171. package/modern/TreeItem/TreeItem.types.d.ts +0 -107
  172. package/modern/TreeItem/TreeItem.types.js +0 -1
  173. package/modern/TreeItem/index.d.ts +0 -4
  174. package/modern/TreeItem/index.js +0 -2
  175. package/modern/TreeItem/treeItemClasses.d.ts +0 -55
  176. package/modern/TreeItem/treeItemClasses.js +0 -8
  177. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.d.ts +0 -7
  178. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js +0 -74
  179. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.d.ts +0 -6
  180. package/modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js +0 -1
  181. package/modern/TreeItemDragAndDropOverlay/index.d.ts +0 -2
  182. package/modern/TreeItemDragAndDropOverlay/index.js +0 -1
  183. package/modern/TreeItemIcon/TreeItemIcon.d.ts +0 -7
  184. package/modern/TreeItemIcon/TreeItemIcon.js +0 -74
  185. package/modern/TreeItemIcon/TreeItemIcon.types.d.ts +0 -40
  186. package/modern/TreeItemIcon/TreeItemIcon.types.js +0 -1
  187. package/modern/TreeItemIcon/index.d.ts +0 -2
  188. package/modern/TreeItemIcon/index.js +0 -1
  189. package/modern/TreeItemLabelInput/TreeItemLabelInput.d.ts +0 -5
  190. package/modern/TreeItemLabelInput/TreeItemLabelInput.js +0 -24
  191. package/modern/TreeItemLabelInput/TreeItemLabelInput.types.d.ts +0 -14
  192. package/modern/TreeItemLabelInput/TreeItemLabelInput.types.js +0 -1
  193. package/modern/TreeItemLabelInput/index.d.ts +0 -2
  194. package/modern/TreeItemLabelInput/index.js +0 -1
  195. package/modern/TreeItemProvider/TreeItemProvider.d.ts +0 -7
  196. package/modern/TreeItemProvider/TreeItemProvider.js +0 -45
  197. package/modern/TreeItemProvider/TreeItemProvider.types.d.ts +0 -7
  198. package/modern/TreeItemProvider/TreeItemProvider.types.js +0 -1
  199. package/modern/TreeItemProvider/index.d.ts +0 -2
  200. package/modern/TreeItemProvider/index.js +0 -1
  201. package/modern/hooks/index.d.ts +0 -3
  202. package/modern/hooks/index.js +0 -3
  203. package/modern/hooks/useTreeItemModel.d.ts +0 -2
  204. package/modern/hooks/useTreeItemModel.js +0 -11
  205. package/modern/hooks/useTreeItemUtils/index.d.ts +0 -1
  206. package/modern/hooks/useTreeItemUtils/index.js +0 -1
  207. package/modern/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +0 -42
  208. package/modern/hooks/useTreeItemUtils/useTreeItemUtils.js +0 -165
  209. package/modern/hooks/useTreeViewApiRef.d.ts +0 -7
  210. package/modern/hooks/useTreeViewApiRef.js +0 -7
  211. package/modern/icons/icons.d.ts +0 -6
  212. package/modern/icons/icons.js +0 -9
  213. package/modern/icons/index.d.ts +0 -1
  214. package/modern/icons/index.js +0 -1
  215. package/modern/index.d.ts +0 -12
  216. package/modern/index.js +0 -22
  217. package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +0 -5
  218. package/modern/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.js +0 -5
  219. package/modern/internals/TreeViewItemDepthContext/index.d.ts +0 -1
  220. package/modern/internals/TreeViewItemDepthContext/index.js +0 -1
  221. package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.d.ts +0 -17
  222. package/modern/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +0 -49
  223. package/modern/internals/TreeViewProvider/TreeViewContext.d.ts +0 -8
  224. package/modern/internals/TreeViewProvider/TreeViewContext.js +0 -15
  225. package/modern/internals/TreeViewProvider/TreeViewProvider.d.ts +0 -9
  226. package/modern/internals/TreeViewProvider/TreeViewProvider.js +0 -32
  227. package/modern/internals/TreeViewProvider/TreeViewProvider.types.d.ts +0 -21
  228. package/modern/internals/TreeViewProvider/TreeViewProvider.types.js +0 -1
  229. package/modern/internals/TreeViewProvider/TreeViewStyleContext.d.ts +0 -33
  230. package/modern/internals/TreeViewProvider/TreeViewStyleContext.js +0 -13
  231. package/modern/internals/TreeViewProvider/index.d.ts +0 -3
  232. package/modern/internals/TreeViewProvider/index.js +0 -2
  233. package/modern/internals/components/RichTreeViewItems.d.ts +0 -32
  234. package/modern/internals/components/RichTreeViewItems.js +0 -68
  235. package/modern/internals/corePlugins/corePlugins.d.ts +0 -9
  236. package/modern/internals/corePlugins/corePlugins.js +0 -8
  237. package/modern/internals/corePlugins/index.d.ts +0 -2
  238. package/modern/internals/corePlugins/index.js +0 -1
  239. package/modern/internals/corePlugins/useTreeViewId/index.d.ts +0 -2
  240. package/modern/internals/corePlugins/useTreeViewId/index.js +0 -1
  241. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  242. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -39
  243. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -36
  244. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
  245. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  246. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.types.js +0 -1
  247. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  248. package/modern/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
  249. package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  250. package/modern/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
  251. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  252. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -29
  253. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  254. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js +0 -1
  255. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  256. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
  257. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  258. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
  259. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  260. package/modern/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js +0 -1
  261. package/modern/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  262. package/modern/internals/hooks/useInstanceEventHandler.js +0 -77
  263. package/modern/internals/hooks/useLazyRef.d.ts +0 -1
  264. package/modern/internals/hooks/useLazyRef.js +0 -1
  265. package/modern/internals/hooks/useOnMount.d.ts +0 -1
  266. package/modern/internals/hooks/useOnMount.js +0 -1
  267. package/modern/internals/hooks/useSelector.d.ts +0 -4
  268. package/modern/internals/hooks/useSelector.js +0 -9
  269. package/modern/internals/hooks/useTimeout.d.ts +0 -1
  270. package/modern/internals/hooks/useTimeout.js +0 -1
  271. package/modern/internals/index.d.ts +0 -34
  272. package/modern/internals/index.js +0 -24
  273. package/modern/internals/models/events.d.ts +0 -9
  274. package/modern/internals/models/events.js +0 -1
  275. package/modern/internals/models/helpers.d.ts +0 -7
  276. package/modern/internals/models/helpers.js +0 -1
  277. package/modern/internals/models/index.d.ts +0 -4
  278. package/modern/internals/models/index.js +0 -4
  279. package/modern/internals/models/itemPlugin.d.ts +0 -43
  280. package/modern/internals/models/itemPlugin.js +0 -1
  281. package/modern/internals/models/plugin.d.ts +0 -151
  282. package/modern/internals/models/plugin.js +0 -1
  283. package/modern/internals/models/treeView.d.ts +0 -32
  284. package/modern/internals/models/treeView.js +0 -1
  285. package/modern/internals/plugins/useTreeViewExpansion/index.d.ts +0 -2
  286. package/modern/internals/plugins/useTreeViewExpansion/index.js +0 -1
  287. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  288. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -134
  289. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -184
  290. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.js +0 -24
  291. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -102
  292. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
  293. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -7
  294. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.js +0 -19
  295. package/modern/internals/plugins/useTreeViewFocus/index.d.ts +0 -2
  296. package/modern/internals/plugins/useTreeViewFocus/index.js +0 -1
  297. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  298. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -135
  299. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -182
  300. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.js +0 -34
  301. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  302. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
  303. package/modern/internals/plugins/useTreeViewIcons/index.d.ts +0 -2
  304. package/modern/internals/plugins/useTreeViewIcons/index.js +0 -1
  305. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +0 -3
  306. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +0 -24
  307. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +0 -42
  308. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +0 -1
  309. package/modern/internals/plugins/useTreeViewItemCustomization/index.d.ts +0 -2
  310. package/modern/internals/plugins/useTreeViewItemCustomization/index.js +0 -1
  311. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.d.ts +0 -3
  312. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.js +0 -24
  313. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.d.ts +0 -42
  314. package/modern/internals/plugins/useTreeViewItemCustomization/useTreeViewItemCustomization.types.js +0 -1
  315. package/modern/internals/plugins/useTreeViewItems/index.d.ts +0 -3
  316. package/modern/internals/plugins/useTreeViewItems/index.js +0 -2
  317. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  318. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -325
  319. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -1058
  320. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -113
  321. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -205
  322. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
  323. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -4
  324. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.utils.js +0 -8
  325. package/modern/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  326. package/modern/internals/plugins/useTreeViewJSXItems/index.js +0 -1
  327. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  328. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -183
  329. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts +0 -35
  330. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
  331. package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  332. package/modern/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
  333. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  334. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -273
  335. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -30
  336. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
  337. package/modern/internals/plugins/useTreeViewLabel/index.d.ts +0 -2
  338. package/modern/internals/plugins/useTreeViewLabel/index.js +0 -1
  339. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  340. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +0 -2
  341. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.js +0 -72
  342. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -73
  343. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -68
  344. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.js +0 -24
  345. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -60
  346. package/modern/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
  347. package/modern/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -1
  348. package/modern/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
  349. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -247
  350. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -27
  351. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -82
  352. package/modern/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
  353. package/modern/internals/plugins/useTreeViewSelection/index.d.ts +0 -2
  354. package/modern/internals/plugins/useTreeViewSelection/index.js +0 -1
  355. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  356. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.d.ts +0 -2
  357. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +0 -80
  358. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -234
  359. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -363
  360. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.js +0 -46
  361. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -145
  362. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
  363. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -38
  364. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -126
  365. package/modern/internals/useTreeView/extractPluginParamsFromProps.d.ts +0 -22
  366. package/modern/internals/useTreeView/extractPluginParamsFromProps.js +0 -46
  367. package/modern/internals/useTreeView/index.d.ts +0 -1
  368. package/modern/internals/useTreeView/index.js +0 -1
  369. package/modern/internals/useTreeView/useTreeView.d.ts +0 -9
  370. package/modern/internals/useTreeView/useTreeView.js +0 -114
  371. package/modern/internals/useTreeView/useTreeView.types.d.ts +0 -23
  372. package/modern/internals/useTreeView/useTreeView.types.js +0 -1
  373. package/modern/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -18
  374. package/modern/internals/useTreeView/useTreeViewBuildContext.js +0 -101
  375. package/modern/internals/useTreeView/useTreeViewModels.d.ts +0 -7
  376. package/modern/internals/useTreeView/useTreeViewModels.js +0 -62
  377. package/modern/internals/useTreeView/useTreeViewPlugins.d.ts +0 -0
  378. package/modern/internals/useTreeView/useTreeViewPlugins.js +0 -0
  379. package/modern/internals/utils/TreeViewStore.d.ts +0 -12
  380. package/modern/internals/utils/TreeViewStore.js +0 -24
  381. package/modern/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  382. package/modern/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
  383. package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  384. package/modern/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -18
  385. package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  386. package/modern/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
  387. package/modern/internals/utils/plugins.d.ts +0 -2
  388. package/modern/internals/utils/plugins.js +0 -4
  389. package/modern/internals/utils/publishTreeViewEvent.d.ts +0 -5
  390. package/modern/internals/utils/publishTreeViewEvent.js +0 -3
  391. package/modern/internals/utils/selectors.d.ts +0 -16
  392. package/modern/internals/utils/selectors.js +0 -46
  393. package/modern/internals/utils/tree.d.ts +0 -32
  394. package/modern/internals/utils/tree.js +0 -203
  395. package/modern/internals/utils/utils.d.ts +0 -2
  396. package/modern/internals/utils/utils.js +0 -17
  397. package/modern/internals/zero-styled/index.d.ts +0 -3
  398. package/modern/internals/zero-styled/index.js +0 -7
  399. package/modern/models/events.d.ts +0 -4
  400. package/modern/models/events.js +0 -1
  401. package/modern/models/index.d.ts +0 -3
  402. package/modern/models/index.js +0 -5
  403. package/modern/models/items.d.ts +0 -13
  404. package/modern/models/items.js +0 -1
  405. package/modern/package.json +0 -1
  406. package/modern/themeAugmentation/components.d.ts +0 -21
  407. package/modern/themeAugmentation/index.d.ts +0 -3
  408. package/modern/themeAugmentation/index.js +0 -0
  409. package/modern/themeAugmentation/overrides.d.ts +0 -16
  410. package/modern/themeAugmentation/props.d.ts +0 -14
  411. package/modern/useTreeItem/index.d.ts +0 -2
  412. package/modern/useTreeItem/index.js +0 -1
  413. package/modern/useTreeItem/useTreeItem.d.ts +0 -2
  414. package/modern/useTreeItem/useTreeItem.js +0 -282
  415. package/modern/useTreeItem/useTreeItem.types.d.ts +0 -201
  416. package/modern/useTreeItem/useTreeItem.types.js +0 -1
  417. package/modern/utils/cache.d.ts +0 -38
  418. package/modern/utils/cache.js +0 -31
  419. package/modern/utils/index.d.ts +0 -1
  420. package/modern/utils/index.js +0 -1
  421. package/tsconfig.build.tsbuildinfo +0 -1
@@ -0,0 +1,23 @@
1
+ import { warnOnce } from '@mui/x-internals/warning';
2
+ import * as React from 'react';
3
+ function useAssertModelConsistencyOutsideOfProduction(parameters) {
4
+ const {
5
+ state,
6
+ controlled,
7
+ defaultValue
8
+ } = parameters;
9
+ const [{
10
+ initialDefaultValue,
11
+ isControlled
12
+ }] = React.useState({
13
+ initialDefaultValue: defaultValue,
14
+ isControlled: controlled !== undefined
15
+ });
16
+ if (isControlled !== (controlled !== undefined)) {
17
+ warnOnce([`MUI X: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of Tree View to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${state} ` + 'element for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'], 'error');
18
+ }
19
+ if (JSON.stringify(initialDefaultValue) !== JSON.stringify(defaultValue)) {
20
+ warnOnce([`MUI X: A component is changing the default ${state} state of an uncontrolled Tree View after being initialized. ` + `To suppress this warning opt to use a controlled Tree View.`], 'error');
21
+ }
22
+ }
23
+ export const useAssertModelConsistency = process.env.NODE_ENV === 'production' ? () => {} : useAssertModelConsistencyOutsideOfProduction;
@@ -3,7 +3,7 @@ import { TreeViewAnyPluginSignature, TreeViewState } from "../models/index.js";
3
3
  /**
4
4
  * Type of a selector that take the whole tree view state as input and returns a value based on a required plugin.
5
5
  */
6
- export type TreeViewRootSelector<TSignature extends TreeViewAnyPluginSignature, IsOptional extends boolean = false> = <TSignatures extends [TSignature]>(state: TreeViewState<TSignatures>) => IsOptional extends true ? TSignature['state'][keyof TSignature['state']] | undefined : TSignature['state'][keyof TSignature['state']];
6
+ export type TreeViewRootSelector<TSignature extends TreeViewAnyPluginSignature, TIsOptional extends boolean = false> = <TSignatures extends (TIsOptional extends true ? [] : [TSignature]), TOptionalSignatures extends (TIsOptional extends true ? [TSignature] : [])>(state: TreeViewState<TSignatures, TOptionalSignatures>) => TIsOptional extends true ? TSignature['state'][keyof TSignature['state']] | undefined : TSignature['state'][keyof TSignature['state']];
7
7
  /**
8
8
  * Type of a selector that take the whole tree view state as input and returns a value based on an optional plugin.
9
9
  */
@@ -3,7 +3,7 @@ type DataSourceCacheDefaultConfig = {
3
3
  /**
4
4
  * Time To Live for each cache entry in milliseconds.
5
5
  * After this time the cache entry will become stale and the next query will result in cache miss.
6
- * @default 300000 (5 minutes)
6
+ * @default 300_000 (5 minutes)
7
7
  */
8
8
  ttl?: number;
9
9
  };
@@ -1,6 +1,6 @@
1
1
  export class DataSourceCacheDefault {
2
2
  constructor({
3
- ttl = 300000
3
+ ttl = 300_000
4
4
  }) {
5
5
  this.cache = void 0;
6
6
  this.ttl = void 0;
@@ -84,7 +84,7 @@ const useTreeItemUtils = ({
84
84
  if (status.disabled) {
85
85
  return;
86
86
  }
87
- if (!status.focused) {
87
+ if (!status.focused && !status.editing) {
88
88
  instance.focusItem(event, itemId);
89
89
  }
90
90
  const multiple = isMultiSelectEnabled && (event.shiftKey || event.ctrlKey || event.metaKey);
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-tree-view v8.0.0-beta.2
2
+ * @mui/x-tree-view v8.0.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>;
@@ -20,13 +20,23 @@ function TreeViewProvider(props) {
20
20
  const {
21
21
  contextValue,
22
22
  classes = EMPTY_OBJECT,
23
+ slots = EMPTY_OBJECT,
24
+ slotProps = EMPTY_OBJECT,
23
25
  children
24
26
  } = props;
25
-
26
- // TODO: Add the icons to this context and drop useTreeViewIcons
27
27
  const styleContextValue = React.useMemo(() => ({
28
- classes
29
- }), [classes]);
28
+ classes,
29
+ slots: {
30
+ collapseIcon: slots.collapseIcon,
31
+ expandIcon: slots.expandIcon,
32
+ endIcon: slots.endIcon
33
+ },
34
+ slotProps: {
35
+ collapseIcon: slotProps.collapseIcon,
36
+ expandIcon: slotProps.expandIcon,
37
+ endIcon: slotProps.endIcon
38
+ }
39
+ }), [classes, slots.collapseIcon, slots.expandIcon, slots.endIcon, slotProps.collapseIcon, slotProps.expandIcon, slotProps.endIcon]);
30
40
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewContext.TreeViewContext.Provider, {
31
41
  value: contextValue,
32
42
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeViewStyleContext.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.
@@ -10,7 +10,9 @@ var React = _interopRequireWildcard(require("react"));
10
10
  * @ignore - internal component.
11
11
  */
12
12
  const TreeViewStyleContext = exports.TreeViewStyleContext = /*#__PURE__*/React.createContext({
13
- classes: {}
13
+ classes: {},
14
+ slots: {},
15
+ slotProps: {}
14
16
  });
15
17
  if (process.env.NODE_ENV !== 'production') {
16
18
  TreeViewStyleContext.displayName = 'TreeViewStyleContext';
@@ -4,11 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.useSelector = void 0;
7
- var _withSelector = require("use-sync-external-store/with-selector.js");
8
- // use-sync-external-store has no exports field defined
9
- // See https://github.com/facebook/react/issues/30698
10
- // eslint-disable-next-line import/extensions
11
-
7
+ var _withSelector = require("use-sync-external-store/with-selector");
12
8
  const defaultCompare = Object.is;
13
9
  const useSelector = (store, selector, args = undefined, equals = defaultCompare) => {
14
10
  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';
@@ -57,6 +57,18 @@ Object.defineProperty(exports, "selectorGetTreeItemError", {
57
57
  return _useTreeViewLazyLoading.selectorGetTreeItemError;
58
58
  }
59
59
  });
60
+ Object.defineProperty(exports, "selectorIsAnItemEdited", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _useTreeViewLabel2.selectorIsAnyItemBeingEdited;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "selectorIsItemBeingEdited", {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _useTreeViewLabel2.selectorIsItemBeingEdited;
70
+ }
71
+ });
60
72
  Object.defineProperty(exports, "selectorIsItemExpanded", {
61
73
  enumerable: true,
62
74
  get: function () {
@@ -135,12 +147,6 @@ Object.defineProperty(exports, "useTreeViewFocus", {
135
147
  return _useTreeViewFocus.useTreeViewFocus;
136
148
  }
137
149
  });
138
- Object.defineProperty(exports, "useTreeViewIcons", {
139
- enumerable: true,
140
- get: function () {
141
- return _useTreeViewIcons.useTreeViewIcons;
142
- }
143
- });
144
150
  Object.defineProperty(exports, "useTreeViewItems", {
145
151
  enumerable: true,
146
152
  get: function () {
@@ -180,10 +186,10 @@ var _useTreeViewExpansion = require("./plugins/useTreeViewExpansion");
180
186
  var _useTreeViewSelection = require("./plugins/useTreeViewSelection");
181
187
  var _useTreeViewFocus = require("./plugins/useTreeViewFocus");
182
188
  var _useTreeViewKeyboardNavigation = require("./plugins/useTreeViewKeyboardNavigation");
183
- var _useTreeViewIcons = require("./plugins/useTreeViewIcons");
184
189
  var _useTreeViewItems = require("./plugins/useTreeViewItems");
185
190
  var _useTreeViewItems2 = require("./plugins/useTreeViewItems/useTreeViewItems.selectors");
186
191
  var _useTreeViewLabel = require("./plugins/useTreeViewLabel");
192
+ var _useTreeViewLabel2 = require("./plugins/useTreeViewLabel/useTreeViewLabel.selectors");
187
193
  var _useTreeViewExpansion2 = require("./plugins/useTreeViewExpansion/useTreeViewExpansion.selectors");
188
194
  var _useTreeViewSelection2 = require("./plugins/useTreeViewSelection/useTreeViewSelection.selectors");
189
195
  var _useTreeViewLazyLoading = require("./plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors");
@@ -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'>;
@@ -12,19 +12,17 @@ var _useTreeViewExpansion = require("./useTreeViewExpansion.selectors");
12
12
  var _useTreeViewExpansion2 = require("./useTreeViewExpansion.utils");
13
13
  var _useTreeViewItems = require("../useTreeViewItems/useTreeViewItems.selectors");
14
14
  var _publishTreeViewEvent = require("../../utils/publishTreeViewEvent");
15
+ var _models = require("../../utils/models");
15
16
  const useTreeViewExpansion = ({
16
17
  instance,
17
18
  store,
18
- params,
19
- models
19
+ params
20
20
  }) => {
21
- (0, _useEnhancedEffect.default)(() => {
22
- store.update(prevState => (0, _extends2.default)({}, prevState, {
23
- expansion: (0, _extends2.default)({}, prevState.expansion, {
24
- expandedItemsMap: (0, _useTreeViewExpansion2.createExpandedItemsMap)(models.expandedItems.value)
25
- })
26
- }));
27
- }, [store, models.expandedItems.value]);
21
+ (0, _models.useAssertModelConsistency)({
22
+ state: 'expandedItems',
23
+ controlled: params.expandedItems,
24
+ defaultValue: params.defaultExpandedItems
25
+ });
28
26
  (0, _useEnhancedEffect.default)(() => {
29
27
  store.update(prevState => {
30
28
  const newExpansionTrigger = (0, _useTreeViewExpansion2.getExpansionTrigger)({
@@ -42,19 +40,26 @@ const useTreeViewExpansion = ({
42
40
  });
43
41
  }, [store, params.isItemEditable, params.expansionTrigger]);
44
42
  const setExpandedItems = (event, value) => {
43
+ if (params.expandedItems === undefined) {
44
+ store.update(prevState => (0, _extends2.default)({}, prevState, {
45
+ expansion: (0, _extends2.default)({}, prevState.expansion, {
46
+ expandedItems: value
47
+ })
48
+ }));
49
+ }
45
50
  params.onExpandedItemsChange?.(event, value);
46
- models.expandedItems.setControlledValue(value);
47
51
  };
48
52
  const applyItemExpansion = (0, _useEventCallback.default)(({
49
53
  itemId,
50
54
  event,
51
55
  shouldBeExpanded
52
56
  }) => {
57
+ const oldExpanded = (0, _useTreeViewExpansion.selectorExpandedItems)(store.value);
53
58
  let newExpanded;
54
59
  if (shouldBeExpanded) {
55
- newExpanded = [itemId].concat(models.expandedItems.value);
60
+ newExpanded = [itemId].concat(oldExpanded);
56
61
  } else {
57
- newExpanded = models.expandedItems.value.filter(id => id !== itemId);
62
+ newExpanded = oldExpanded.filter(id => id !== itemId);
58
63
  }
59
64
  if (params.onItemExpansionToggle) {
60
65
  params.onItemExpansionToggle(event, itemId, shouldBeExpanded);
@@ -94,7 +99,7 @@ const useTreeViewExpansion = ({
94
99
  }
95
100
  const siblings = (0, _useTreeViewItems.selectorItemOrderedChildrenIds)(store.value, itemMeta.parentId);
96
101
  const diff = siblings.filter(child => (0, _useTreeViewExpansion.selectorIsItemExpandable)(store.value, child) && !(0, _useTreeViewExpansion.selectorIsItemExpanded)(store.value, child));
97
- const newExpanded = models.expandedItems.value.concat(diff);
102
+ const newExpanded = (0, _useTreeViewExpansion.selectorExpandedItems)(store.value).concat(diff);
98
103
  if (diff.length > 0) {
99
104
  if (params.onItemExpansionToggle) {
100
105
  diff.forEach(newlyExpandedItemId => {
@@ -104,6 +109,20 @@ const useTreeViewExpansion = ({
104
109
  setExpandedItems(event, newExpanded);
105
110
  }
106
111
  };
112
+
113
+ /**
114
+ * Update the controlled model when the `expandedItems` prop changes.
115
+ */
116
+ (0, _useEnhancedEffect.default)(() => {
117
+ const expandedItems = params.expandedItems;
118
+ if (expandedItems !== undefined) {
119
+ store.update(prevState => (0, _extends2.default)({}, prevState, {
120
+ expansion: (0, _extends2.default)({}, prevState.expansion, {
121
+ expandedItems
122
+ })
123
+ }));
124
+ }
125
+ }, [store, params.expandedItems]);
107
126
  return {
108
127
  publicAPI: {
109
128
  setItemExpansion
@@ -116,11 +135,6 @@ const useTreeViewExpansion = ({
116
135
  };
117
136
  };
118
137
  exports.useTreeViewExpansion = useTreeViewExpansion;
119
- useTreeViewExpansion.models = {
120
- expandedItems: {
121
- getDefaultValue: params => params.defaultExpandedItems
122
- }
123
- };
124
138
  const DEFAULT_EXPANDED_ITEMS = [];
125
139
  useTreeViewExpansion.getDefaultizedParams = ({
126
140
  params
@@ -129,7 +143,7 @@ useTreeViewExpansion.getDefaultizedParams = ({
129
143
  });
130
144
  useTreeViewExpansion.getInitialState = params => ({
131
145
  expansion: {
132
- expandedItemsMap: (0, _useTreeViewExpansion2.createExpandedItemsMap)(params.expandedItems === undefined ? params.defaultExpandedItems : params.expandedItems),
146
+ expandedItems: params.expandedItems === undefined ? params.defaultExpandedItems : params.expandedItems,
133
147
  expansionTrigger: (0, _useTreeViewExpansion2.getExpansionTrigger)(params)
134
148
  }
135
149
  });