@mui/x-tree-view 8.23.0 → 8.24.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 (494) hide show
  1. package/CHANGELOG.md +111 -1
  2. package/RichTreeView/RichTreeView.d.ts +1 -1
  3. package/RichTreeView/RichTreeView.js +34 -28
  4. package/RichTreeView/RichTreeView.types.d.ts +6 -4
  5. package/RichTreeView/index.d.ts +1 -3
  6. package/RichTreeView/index.js +1 -13
  7. package/RichTreeView/useExtractRichTreeViewParameters.d.ts +294 -0
  8. package/RichTreeView/useExtractRichTreeViewParameters.js +91 -0
  9. package/SimpleTreeView/SimpleTreeView.d.ts +1 -1
  10. package/SimpleTreeView/SimpleTreeView.js +30 -24
  11. package/SimpleTreeView/SimpleTreeView.types.d.ts +5 -4
  12. package/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +293 -0
  13. package/SimpleTreeView/useExtractSimpleTreeViewParameters.js +78 -0
  14. package/TreeItem/TreeItem.d.ts +1 -1
  15. package/TreeItemProvider/TreeItemProvider.js +3 -10
  16. package/esm/RichTreeView/RichTreeView.d.ts +1 -1
  17. package/esm/RichTreeView/RichTreeView.js +33 -27
  18. package/esm/RichTreeView/RichTreeView.types.d.ts +6 -4
  19. package/esm/RichTreeView/index.d.ts +1 -3
  20. package/esm/RichTreeView/index.js +1 -1
  21. package/esm/RichTreeView/useExtractRichTreeViewParameters.d.ts +294 -0
  22. package/esm/RichTreeView/useExtractRichTreeViewParameters.js +83 -0
  23. package/esm/SimpleTreeView/SimpleTreeView.d.ts +1 -1
  24. package/esm/SimpleTreeView/SimpleTreeView.js +29 -23
  25. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +5 -4
  26. package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +293 -0
  27. package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.js +70 -0
  28. package/esm/TreeItem/TreeItem.d.ts +1 -1
  29. package/esm/TreeItemProvider/TreeItemProvider.js +3 -10
  30. package/esm/hooks/useApplyPropagationToSelectedItemsOnMount.js +1 -1
  31. package/esm/hooks/useRichTreeViewApiRef.d.ts +2 -2
  32. package/esm/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
  33. package/esm/hooks/useTreeItemModel.d.ts +2 -2
  34. package/esm/hooks/useTreeItemModel.js +1 -1
  35. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
  36. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +25 -34
  37. package/esm/hooks/useTreeViewApiRef.d.ts +2 -4
  38. package/esm/hooks/useTreeViewApiRef.js +3 -2
  39. package/esm/index.d.ts +0 -1
  40. package/esm/index.js +1 -2
  41. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
  42. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +126 -0
  43. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
  44. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
  45. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +49 -0
  46. package/esm/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
  47. package/esm/internals/MinimalTreeViewStore/TimeoutManager.js +39 -0
  48. package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
  49. package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +16 -0
  50. package/esm/internals/MinimalTreeViewStore/index.d.ts +2 -0
  51. package/esm/internals/MinimalTreeViewStore/index.js +2 -0
  52. package/esm/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
  53. package/esm/internals/RichTreeViewStore/RichTreeViewStore.js +21 -0
  54. package/esm/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
  55. package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
  56. package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.js +15 -0
  57. package/esm/internals/RichTreeViewStore/index.d.ts +3 -0
  58. package/esm/internals/RichTreeViewStore/index.js +3 -0
  59. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
  60. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +18 -0
  61. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
  62. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
  63. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +5 -0
  64. package/esm/internals/SimpleTreeViewStore/index.d.ts +2 -0
  65. package/esm/internals/SimpleTreeViewStore/index.js +2 -0
  66. package/esm/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
  67. package/esm/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +2 -3
  68. package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
  69. package/esm/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
  70. package/esm/internals/TreeViewProvider/TreeViewProvider.js +11 -6
  71. package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
  72. package/esm/internals/TreeViewProvider/index.d.ts +1 -1
  73. package/esm/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
  74. package/esm/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
  75. package/esm/internals/components/RichTreeViewItems.js +3 -3
  76. package/esm/internals/hooks/useTreeViewRootProps.d.ts +287 -0
  77. package/esm/internals/hooks/useTreeViewRootProps.js +30 -0
  78. package/esm/internals/hooks/useTreeViewStore.d.ts +10 -0
  79. package/esm/internals/hooks/useTreeViewStore.js +19 -0
  80. package/esm/internals/index.d.ts +15 -21
  81. package/esm/internals/index.js +11 -14
  82. package/esm/internals/models/events.d.ts +24 -3
  83. package/esm/internals/models/index.d.ts +2 -3
  84. package/esm/internals/models/index.js +2 -3
  85. package/esm/internals/models/itemPlugin.d.ts +9 -0
  86. package/esm/internals/models/treeView.d.ts +5 -9
  87. package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
  88. package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.js +124 -0
  89. package/esm/internals/plugins/expansion/index.d.ts +2 -0
  90. package/esm/internals/plugins/expansion/index.js +2 -0
  91. package/esm/internals/plugins/expansion/selectors.d.ts +27 -0
  92. package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +5 -5
  93. package/esm/internals/plugins/expansion/utils.d.ts +5 -0
  94. package/esm/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
  95. package/esm/internals/plugins/focus/TreeViewFocusPlugin.js +107 -0
  96. package/esm/internals/plugins/focus/index.d.ts +2 -0
  97. package/esm/internals/plugins/focus/index.js +2 -0
  98. package/esm/internals/plugins/focus/selectors.d.ts +21 -0
  99. package/esm/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +6 -6
  100. package/esm/internals/plugins/id/index.d.ts +1 -0
  101. package/esm/internals/plugins/id/index.js +1 -0
  102. package/esm/internals/plugins/id/selectors.d.ts +13 -0
  103. package/esm/internals/plugins/id/selectors.js +18 -0
  104. package/esm/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
  105. package/esm/internals/plugins/items/TreeViewItemsPlugin.js +223 -0
  106. package/esm/internals/plugins/items/index.d.ts +3 -0
  107. package/esm/internals/plugins/items/index.js +3 -0
  108. package/esm/internals/plugins/items/selectors.d.ts +60 -0
  109. package/esm/internals/plugins/items/selectors.js +64 -0
  110. package/esm/internals/plugins/items/utils.d.ts +43 -0
  111. package/esm/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -50
  112. package/esm/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
  113. package/esm/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +81 -0
  114. package/esm/internals/plugins/jsxItems/index.d.ts +1 -0
  115. package/esm/internals/plugins/jsxItems/index.js +1 -0
  116. package/esm/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
  117. package/esm/internals/plugins/{useTreeViewJSXItems → jsxItems}/itemPlugin.js +29 -17
  118. package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
  119. package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +306 -0
  120. package/esm/internals/plugins/keyboardNavigation/index.d.ts +1 -0
  121. package/esm/internals/plugins/keyboardNavigation/index.js +1 -0
  122. package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
  123. package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +50 -0
  124. package/esm/internals/plugins/labelEditing/index.d.ts +2 -0
  125. package/esm/internals/plugins/labelEditing/index.js +2 -0
  126. package/{internals/plugins/useTreeViewLabel → esm/internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
  127. package/esm/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +2 -2
  128. package/esm/internals/plugins/labelEditing/selectors.d.ts +15 -0
  129. package/esm/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
  130. package/esm/internals/plugins/lazyLoading/index.d.ts +2 -0
  131. package/esm/internals/plugins/lazyLoading/index.js +2 -0
  132. package/esm/internals/plugins/lazyLoading/selectors.d.ts +19 -0
  133. package/esm/internals/plugins/lazyLoading/selectors.js +25 -0
  134. package/esm/internals/plugins/lazyLoading/types.d.ts +5 -0
  135. package/esm/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
  136. package/esm/internals/plugins/selection/TreeViewSelectionPlugin.js +319 -0
  137. package/esm/internals/plugins/selection/index.d.ts +2 -0
  138. package/esm/internals/plugins/selection/index.js +2 -0
  139. package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
  140. package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +3 -3
  141. package/esm/internals/plugins/selection/selectors.d.ts +48 -0
  142. package/esm/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +14 -9
  143. package/esm/internals/utils/tree.d.ts +8 -10
  144. package/esm/internals/utils/tree.js +2 -2
  145. package/esm/models/items.d.ts +5 -2
  146. package/esm/useTreeItem/useTreeItem.d.ts +18 -2
  147. package/esm/useTreeItem/useTreeItem.js +14 -18
  148. package/esm/useTreeItem/useTreeItem.types.d.ts +4 -19
  149. package/hooks/useApplyPropagationToSelectedItemsOnMount.js +2 -2
  150. package/hooks/useRichTreeViewApiRef.d.ts +2 -2
  151. package/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
  152. package/hooks/useTreeItemModel.d.ts +2 -2
  153. package/hooks/useTreeItemModel.js +2 -2
  154. package/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
  155. package/hooks/useTreeItemUtils/useTreeItemUtils.js +41 -49
  156. package/hooks/useTreeViewApiRef.d.ts +2 -4
  157. package/hooks/useTreeViewApiRef.js +2 -4
  158. package/index.d.ts +0 -1
  159. package/index.js +1 -22
  160. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
  161. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +134 -0
  162. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
  163. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
  164. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +58 -0
  165. package/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
  166. package/internals/MinimalTreeViewStore/TimeoutManager.js +46 -0
  167. package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
  168. package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +23 -0
  169. package/internals/MinimalTreeViewStore/index.d.ts +2 -0
  170. package/internals/MinimalTreeViewStore/index.js +27 -0
  171. package/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
  172. package/internals/RichTreeViewStore/RichTreeViewStore.js +30 -0
  173. package/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
  174. package/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
  175. package/internals/RichTreeViewStore/RichTreeViewStore.utils.js +22 -0
  176. package/internals/RichTreeViewStore/index.d.ts +3 -0
  177. package/internals/RichTreeViewStore/index.js +38 -0
  178. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
  179. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +26 -0
  180. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
  181. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
  182. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +11 -0
  183. package/internals/SimpleTreeViewStore/index.d.ts +2 -0
  184. package/internals/SimpleTreeViewStore/index.js +27 -0
  185. package/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
  186. package/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +3 -4
  187. package/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
  188. package/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
  189. package/internals/TreeViewProvider/TreeViewProvider.js +14 -9
  190. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
  191. package/internals/TreeViewProvider/index.d.ts +1 -1
  192. package/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
  193. package/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
  194. package/internals/components/RichTreeViewItems.js +9 -9
  195. package/internals/hooks/useTreeViewRootProps.d.ts +287 -0
  196. package/internals/hooks/useTreeViewRootProps.js +36 -0
  197. package/internals/hooks/useTreeViewStore.d.ts +10 -0
  198. package/internals/hooks/useTreeViewStore.js +26 -0
  199. package/internals/index.d.ts +15 -21
  200. package/internals/index.js +40 -70
  201. package/internals/models/events.d.ts +24 -3
  202. package/internals/models/index.d.ts +2 -3
  203. package/internals/models/index.js +11 -22
  204. package/internals/models/itemPlugin.d.ts +9 -0
  205. package/internals/models/treeView.d.ts +5 -9
  206. package/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
  207. package/internals/plugins/expansion/TreeViewExpansionPlugin.js +132 -0
  208. package/internals/plugins/expansion/index.d.ts +2 -0
  209. package/internals/plugins/expansion/index.js +27 -0
  210. package/internals/plugins/expansion/selectors.d.ts +27 -0
  211. package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +8 -8
  212. package/internals/plugins/expansion/utils.d.ts +5 -0
  213. package/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
  214. package/internals/plugins/focus/TreeViewFocusPlugin.js +114 -0
  215. package/internals/plugins/focus/index.d.ts +2 -0
  216. package/internals/plugins/focus/index.js +27 -0
  217. package/internals/plugins/focus/selectors.d.ts +21 -0
  218. package/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +9 -9
  219. package/internals/plugins/id/index.d.ts +1 -0
  220. package/internals/plugins/id/index.js +16 -0
  221. package/internals/plugins/id/selectors.d.ts +13 -0
  222. package/internals/plugins/id/selectors.js +24 -0
  223. package/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
  224. package/internals/plugins/items/TreeViewItemsPlugin.js +231 -0
  225. package/internals/plugins/items/index.d.ts +3 -0
  226. package/internals/plugins/items/index.js +46 -0
  227. package/internals/plugins/items/selectors.d.ts +60 -0
  228. package/internals/plugins/{useTreeViewItems/useTreeViewItems.selectors.js → items/selectors.js} +16 -16
  229. package/internals/plugins/items/utils.d.ts +43 -0
  230. package/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -51
  231. package/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
  232. package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +89 -0
  233. package/internals/plugins/jsxItems/index.d.ts +1 -0
  234. package/internals/plugins/jsxItems/index.js +16 -0
  235. package/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
  236. package/internals/plugins/{useTreeViewJSXItems → jsxItems}/itemPlugin.js +30 -17
  237. package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
  238. package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +313 -0
  239. package/internals/plugins/keyboardNavigation/index.d.ts +1 -0
  240. package/internals/plugins/keyboardNavigation/index.js +16 -0
  241. package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
  242. package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +58 -0
  243. package/internals/plugins/labelEditing/index.d.ts +2 -0
  244. package/internals/plugins/labelEditing/index.js +27 -0
  245. package/{esm/internals/plugins/useTreeViewLabel → internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
  246. package/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +6 -6
  247. package/internals/plugins/labelEditing/selectors.d.ts +15 -0
  248. package/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
  249. package/internals/plugins/lazyLoading/index.d.ts +2 -0
  250. package/internals/plugins/lazyLoading/index.js +27 -0
  251. package/internals/plugins/lazyLoading/selectors.d.ts +19 -0
  252. package/internals/plugins/{useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js → lazyLoading/selectors.js} +11 -6
  253. package/internals/plugins/lazyLoading/types.d.ts +5 -0
  254. package/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
  255. package/internals/plugins/selection/TreeViewSelectionPlugin.js +327 -0
  256. package/internals/plugins/selection/index.d.ts +2 -0
  257. package/internals/plugins/selection/index.js +27 -0
  258. package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
  259. package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +13 -13
  260. package/internals/plugins/selection/selectors.d.ts +48 -0
  261. package/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +14 -9
  262. package/internals/utils/tree.d.ts +8 -10
  263. package/internals/utils/tree.js +33 -33
  264. package/models/items.d.ts +5 -2
  265. package/package.json +2 -2
  266. package/useTreeItem/useTreeItem.d.ts +18 -2
  267. package/useTreeItem/useTreeItem.js +18 -23
  268. package/useTreeItem/useTreeItem.types.d.ts +4 -19
  269. package/RichTreeView/RichTreeView.plugins.d.ts +0 -10
  270. package/RichTreeView/RichTreeView.plugins.js +0 -15
  271. package/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
  272. package/SimpleTreeView/SimpleTreeView.plugins.js +0 -15
  273. package/esm/RichTreeView/RichTreeView.plugins.d.ts +0 -10
  274. package/esm/RichTreeView/RichTreeView.plugins.js +0 -9
  275. package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
  276. package/esm/SimpleTreeView/SimpleTreeView.plugins.js +0 -9
  277. package/esm/internals/corePlugins/corePlugins.d.ts +0 -9
  278. package/esm/internals/corePlugins/corePlugins.js +0 -8
  279. package/esm/internals/corePlugins/index.d.ts +0 -2
  280. package/esm/internals/corePlugins/index.js +0 -1
  281. package/esm/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
  282. package/esm/internals/corePlugins/useTreeViewId/index.js +0 -2
  283. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  284. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -38
  285. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
  286. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
  287. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  288. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  289. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
  290. package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  291. package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
  292. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  293. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -31
  294. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  295. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  296. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
  297. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  298. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
  299. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  300. package/esm/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  301. package/esm/internals/hooks/useInstanceEventHandler.js +0 -79
  302. package/esm/internals/models/helpers.d.ts +0 -7
  303. package/esm/internals/models/plugin.d.ts +0 -166
  304. package/esm/internals/models/plugin.js +0 -1
  305. package/esm/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
  306. package/esm/internals/plugins/useTreeViewExpansion/index.js +0 -2
  307. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  308. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -149
  309. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
  310. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
  311. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
  312. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
  313. package/esm/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
  314. package/esm/internals/plugins/useTreeViewFocus/index.js +0 -2
  315. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  316. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -113
  317. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
  318. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  319. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
  320. package/esm/internals/plugins/useTreeViewItems/index.d.ts +0 -4
  321. package/esm/internals/plugins/useTreeViewItems/index.js +0 -3
  322. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  323. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -223
  324. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -60
  325. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -64
  326. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -204
  327. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
  328. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
  329. package/esm/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  330. package/esm/internals/plugins/useTreeViewJSXItems/index.js +0 -1
  331. package/esm/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
  332. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  333. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -104
  334. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
  335. package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  336. package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
  337. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  338. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -305
  339. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
  340. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
  341. package/esm/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
  342. package/esm/internals/plugins/useTreeViewLabel/index.js +0 -2
  343. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  344. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -70
  345. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
  346. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
  347. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
  348. package/esm/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
  349. package/esm/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
  350. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
  351. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -20
  352. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
  353. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
  354. package/esm/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
  355. package/esm/internals/plugins/useTreeViewSelection/index.js +0 -2
  356. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  357. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -231
  358. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -45
  359. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
  360. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
  361. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
  362. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -107
  363. package/esm/internals/useTreeView/index.d.ts +0 -1
  364. package/esm/internals/useTreeView/index.js +0 -1
  365. package/esm/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
  366. package/esm/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -51
  367. package/esm/internals/useTreeView/useTreeView.d.ts +0 -18
  368. package/esm/internals/useTreeView/useTreeView.js +0 -102
  369. package/esm/internals/useTreeView/useTreeView.types.d.ts +0 -20
  370. package/esm/internals/useTreeView/useTreeView.types.js +0 -1
  371. package/esm/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
  372. package/esm/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  373. package/esm/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
  374. package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  375. package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -14
  376. package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  377. package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
  378. package/esm/internals/utils/plugins.d.ts +0 -2
  379. package/esm/internals/utils/plugins.js +0 -4
  380. package/esm/internals/utils/publishTreeViewEvent.d.ts +0 -5
  381. package/esm/internals/utils/publishTreeViewEvent.js +0 -3
  382. package/internals/corePlugins/corePlugins.d.ts +0 -9
  383. package/internals/corePlugins/corePlugins.js +0 -14
  384. package/internals/corePlugins/index.d.ts +0 -2
  385. package/internals/corePlugins/index.js +0 -12
  386. package/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
  387. package/internals/corePlugins/useTreeViewId/index.js +0 -19
  388. package/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  389. package/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -46
  390. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
  391. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -15
  392. package/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  393. package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  394. package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -34
  395. package/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  396. package/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -12
  397. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  398. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -38
  399. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  400. package/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  401. package/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -12
  402. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  403. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -19
  404. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  405. package/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  406. package/internals/hooks/useInstanceEventHandler.js +0 -87
  407. package/internals/models/helpers.d.ts +0 -7
  408. package/internals/models/plugin.d.ts +0 -166
  409. package/internals/models/plugin.js +0 -5
  410. package/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
  411. package/internals/plugins/useTreeViewExpansion/index.js +0 -19
  412. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  413. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -157
  414. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
  415. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
  416. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -5
  417. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
  418. package/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
  419. package/internals/plugins/useTreeViewFocus/index.js +0 -19
  420. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  421. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -121
  422. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
  423. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  424. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -5
  425. package/internals/plugins/useTreeViewItems/index.d.ts +0 -4
  426. package/internals/plugins/useTreeViewItems/index.js +0 -32
  427. package/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  428. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -231
  429. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -60
  430. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -204
  431. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -5
  432. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
  433. package/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  434. package/internals/plugins/useTreeViewJSXItems/index.js +0 -12
  435. package/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
  436. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  437. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -112
  438. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -5
  439. package/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  440. package/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -12
  441. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  442. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -312
  443. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
  444. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -5
  445. package/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
  446. package/internals/plugins/useTreeViewLabel/index.js +0 -19
  447. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  448. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -78
  449. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
  450. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
  451. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -5
  452. package/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
  453. package/internals/plugins/useTreeViewLazyLoading/index.js +0 -12
  454. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
  455. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
  456. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -5
  457. package/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
  458. package/internals/plugins/useTreeViewSelection/index.js +0 -19
  459. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  460. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -240
  461. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -45
  462. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
  463. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -5
  464. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
  465. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -116
  466. package/internals/useTreeView/index.d.ts +0 -1
  467. package/internals/useTreeView/index.js +0 -12
  468. package/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
  469. package/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -60
  470. package/internals/useTreeView/useTreeView.d.ts +0 -18
  471. package/internals/useTreeView/useTreeView.js +0 -112
  472. package/internals/useTreeView/useTreeView.types.d.ts +0 -20
  473. package/internals/useTreeView/useTreeView.types.js +0 -5
  474. package/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
  475. package/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  476. package/internals/utils/cleanupTracking/CleanupTracking.js +0 -5
  477. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  478. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -21
  479. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  480. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -45
  481. package/internals/utils/plugins.d.ts +0 -2
  482. package/internals/utils/plugins.js +0 -11
  483. package/internals/utils/publishTreeViewEvent.d.ts +0 -5
  484. package/internals/utils/publishTreeViewEvent.js +0 -10
  485. /package/esm/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
  486. /package/esm/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
  487. /package/esm/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
  488. /package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
  489. /package/esm/internals/{models/helpers.js → plugins/lazyLoading/types.js} +0 -0
  490. /package/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
  491. /package/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
  492. /package/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
  493. /package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
  494. /package/internals/{models/helpers.js → plugins/lazyLoading/types.js} +0 -0
@@ -0,0 +1,81 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { buildSiblingIndexes, TREE_VIEW_ROOT_PARENT_ID } from "../items/index.js";
3
+ import { jsxItemsitemWrapper, useJSXItemsItemPlugin } from "./itemPlugin.js";
4
+ export class TreeViewJSXItemsPlugin {
5
+ constructor(store) {
6
+ this.store = store;
7
+ store.itemPluginManager.register(useJSXItemsItemPlugin, jsxItemsitemWrapper);
8
+ }
9
+
10
+ /**
11
+ * Insert a new item in the state from a Tree Item component.
12
+ * @param {TreeViewItemMeta} item The meta-information of the item to insert.
13
+ * @returns {() => void} A function to remove the item from the state.
14
+ */
15
+ insertJSXItem = item => {
16
+ if (this.store.state.itemMetaLookup[item.id] != null) {
17
+ throw new Error(['MUI X: The Tree View component requires all items to have a unique `id` property.', 'Alternatively, you can use the `getItemId` prop to specify a custom id for each item.', `Two items were provided with the same id in the \`items\` prop: "${item.id}"`].join('\n'));
18
+ }
19
+ this.store.update({
20
+ itemMetaLookup: _extends({}, this.store.state.itemMetaLookup, {
21
+ [item.id]: item
22
+ }),
23
+ // For Simple Tree View, we don't have a proper `item` object, so we create a very basic one.
24
+ itemModelLookup: _extends({}, this.store.state.itemModelLookup, {
25
+ [item.id]: {
26
+ id: item.id,
27
+ label: item.label ?? ''
28
+ }
29
+ })
30
+ });
31
+ return () => {
32
+ const newItemMetaLookup = _extends({}, this.store.state.itemMetaLookup);
33
+ const newItemModelLookup = _extends({}, this.store.state.itemModelLookup);
34
+ delete newItemMetaLookup[item.id];
35
+ delete newItemModelLookup[item.id];
36
+ this.store.update({
37
+ itemMetaLookup: newItemMetaLookup,
38
+ itemModelLookup: newItemModelLookup
39
+ });
40
+ };
41
+ };
42
+
43
+ /**
44
+ * Updates the `labelMap` to register the first character of the given item's label.
45
+ * This map is used to navigate the tree using type-ahead search.
46
+ * @param {TreeViewItemId} itemId The id of the item to map the label of.
47
+ * @param {string} label The item's label.
48
+ * @returns {() => void} A function to remove the item from the `labelMap`.
49
+ */
50
+ mapLabelFromJSX = (itemId, label) => {
51
+ this.store.keyboardNavigation.updateLabelMap(labelMap => {
52
+ labelMap[itemId] = label;
53
+ return labelMap;
54
+ });
55
+ return () => {
56
+ this.store.keyboardNavigation.updateLabelMap(labelMap => {
57
+ const newMap = _extends({}, labelMap);
58
+ delete newMap[itemId];
59
+ return newMap;
60
+ });
61
+ };
62
+ };
63
+
64
+ /**
65
+ * Store the ids of a given item's children in the state.
66
+ * Those ids must be passed in the order they should be rendered.
67
+ * @param {TreeViewItemId | null} parentId The id of the item to store the children of.
68
+ * @param {TreeViewItemId[]} orderedChildrenIds The ids of the item's children.
69
+ */
70
+ setJSXItemsOrderedChildrenIds = (parentId, orderedChildrenIds) => {
71
+ const parentIdWithDefault = parentId ?? TREE_VIEW_ROOT_PARENT_ID;
72
+ this.store.update({
73
+ itemOrderedChildrenIdsLookup: _extends({}, this.store.state.itemOrderedChildrenIdsLookup, {
74
+ [parentIdWithDefault]: orderedChildrenIds
75
+ }),
76
+ itemChildrenIndexesLookup: _extends({}, this.store.state.itemChildrenIndexesLookup, {
77
+ [parentIdWithDefault]: buildSiblingIndexes(orderedChildrenIds)
78
+ })
79
+ });
80
+ };
81
+ }
@@ -0,0 +1 @@
1
+ export * from "./TreeViewJSXItemsPlugin.js";
@@ -0,0 +1 @@
1
+ export * from "./TreeViewJSXItemsPlugin.js";
@@ -0,0 +1,4 @@
1
+ import { TreeItemWrapper, TreeViewItemPlugin } from "../../models/index.js";
2
+ import { SimpleTreeViewStore } from "../../SimpleTreeViewStore/index.js";
3
+ export declare const useJSXItemsItemPlugin: TreeViewItemPlugin;
4
+ export declare const jsxItemsitemWrapper: TreeItemWrapper<SimpleTreeViewStore<any>>;
@@ -5,17 +5,17 @@ import { useStore } from '@mui/x-internals/store';
5
5
  import { useMergedRefs } from '@base-ui/utils/useMergedRefs';
6
6
  import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
7
7
  import { useTreeViewContext } from "../../TreeViewProvider/index.js";
8
- import { TreeViewChildrenItemContext } from "../../TreeViewProvider/TreeViewChildrenItemProvider.js";
8
+ import { TreeViewChildrenItemContext, TreeViewChildrenItemProvider } from "../../TreeViewProvider/TreeViewChildrenItemProvider.js";
9
+ import { TreeViewItemDepthContext } from "../../TreeViewItemDepthContext/index.js";
9
10
  import { itemHasChildren } from "../../../hooks/useTreeItemUtils/useTreeItemUtils.js";
10
- import { idSelectors } from "../../corePlugins/useTreeViewId/index.js";
11
- import { generateTreeItemIdAttribute } from "../../corePlugins/useTreeViewId/useTreeViewId.utils.js";
12
- export const useTreeViewJSXItemsItemPlugin = ({
11
+ import { idSelectors } from "../id/index.js";
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ export const useJSXItemsItemPlugin = ({
13
14
  props,
14
15
  rootRef,
15
16
  contentRef
16
17
  }) => {
17
18
  const {
18
- instance,
19
19
  store
20
20
  } = useTreeViewContext();
21
21
  const {
@@ -38,23 +38,18 @@ export const useTreeViewJSXItemsItemPlugin = ({
38
38
  const expandable = itemHasChildren(children);
39
39
  const pluginContentRef = React.useRef(null);
40
40
  const handleContentRef = useMergedRefs(pluginContentRef, contentRef);
41
- const treeId = useStore(store, idSelectors.treeId);
41
+ const idAttribute = useStore(store, idSelectors.treeItemIdAttribute, itemId, id);
42
42
 
43
43
  // Prevent any flashing
44
44
  useIsoLayoutEffect(() => {
45
- const idAttribute = generateTreeItemIdAttribute({
46
- itemId,
47
- treeId,
48
- id
49
- });
50
45
  registerChild(idAttribute, itemId);
51
46
  return () => {
52
47
  unregisterChild(idAttribute);
53
48
  unregisterChild(idAttribute);
54
49
  };
55
- }, [store, instance, registerChild, unregisterChild, itemId, id, treeId]);
50
+ }, [store, registerChild, unregisterChild, idAttribute, itemId]);
56
51
  useIsoLayoutEffect(() => {
57
- return instance.insertJSXItem({
52
+ return store.jsxItems.insertJSXItem({
58
53
  id: itemId,
59
54
  idAttribute: id,
60
55
  parentId,
@@ -62,15 +57,32 @@ export const useTreeViewJSXItemsItemPlugin = ({
62
57
  disabled,
63
58
  selectable: !disableSelection
64
59
  });
65
- }, [instance, parentId, itemId, expandable, disabled, disableSelection, id]);
60
+ }, [store, parentId, itemId, expandable, disabled, disableSelection, id]);
66
61
  React.useEffect(() => {
67
62
  if (label) {
68
- return instance.mapLabelFromJSX(itemId, (pluginContentRef.current?.textContent ?? '').toLowerCase());
63
+ return store.jsxItems.mapLabelFromJSX(itemId, (pluginContentRef.current?.textContent ?? '').toLowerCase());
69
64
  }
70
65
  return undefined;
71
- }, [instance, itemId, label]);
66
+ }, [store, itemId, label]);
72
67
  return {
73
68
  contentRef: handleContentRef,
74
69
  rootRef
75
70
  };
76
- };
71
+ };
72
+ export const jsxItemsitemWrapper = ({
73
+ children,
74
+ itemId,
75
+ idAttribute
76
+ }) => {
77
+ // eslint-disable-next-line react-hooks/rules-of-hooks
78
+ const depthContext = React.useContext(TreeViewItemDepthContext);
79
+ return /*#__PURE__*/_jsx(TreeViewChildrenItemProvider, {
80
+ itemId: itemId,
81
+ idAttribute: idAttribute,
82
+ children: /*#__PURE__*/_jsx(TreeViewItemDepthContext.Provider, {
83
+ value: depthContext + 1,
84
+ children: children
85
+ })
86
+ });
87
+ };
88
+ if (process.env.NODE_ENV !== "production") jsxItemsitemWrapper.displayName = "jsxItemsitemWrapper";
@@ -0,0 +1,28 @@
1
+ import { TreeViewCancellableEvent, TreeViewItemId } from "../../../models/index.js";
2
+ type TreeViewLabelMap = {
3
+ [itemId: string]: string;
4
+ };
5
+ export declare class TreeViewKeyboardNavigationPlugin {
6
+ private store;
7
+ private labelMap;
8
+ private typeaheadQuery;
9
+ constructor(store: any);
10
+ private canToggleItemSelection;
11
+ private canToggleItemExpansion;
12
+ private getFirstItemMatchingTypeaheadQuery;
13
+ /**
14
+ * Updates the `labelMap` to add/remove the first character of some item's labels.
15
+ * This map is used to navigate the tree using type-ahead search.
16
+ * This method is only used by the `useTreeViewJSXItems` plugin, otherwise the updates are handled internally.
17
+ * @param {(map: TreeViewLabelMap) => TreeViewLabelMap} updater The function to update the map.
18
+ */
19
+ updateLabelMap: (callback: (labelMap: TreeViewLabelMap) => TreeViewLabelMap) => void;
20
+ /**
21
+ * Callback fired when a key is pressed on an item.
22
+ * Handles all the keyboard navigation logic.
23
+ * @param {React.KeyboardEvent<HTMLElement> & TreeViewCancellableEvent} event The keyboard event that triggered the callback.
24
+ * @param {TreeViewItemId} itemId The id of the item that the event was triggered on.
25
+ */
26
+ handleItemKeyDown: (event: React.KeyboardEvent<HTMLElement> & TreeViewCancellableEvent, itemId: TreeViewItemId) => Promise<void>;
27
+ }
28
+ export {};
@@ -0,0 +1,306 @@
1
+ import { expansionSelectors } from "../expansion/index.js";
2
+ import { itemsSelectors } from "../items/index.js";
3
+ import { labelSelectors } from "../labelEditing/index.js";
4
+ import { selectionSelectors } from "../selection/selectors.js";
5
+ import { getFirstNavigableItem, getLastNavigableItem, getNextNavigableItem, getPreviousNavigableItem, isTargetInDescendants } from "../../utils/tree.js";
6
+ const TYPEAHEAD_TIMEOUT = 500;
7
+ export class TreeViewKeyboardNavigationPlugin {
8
+ typeaheadQuery = '';
9
+
10
+ // We can't type `store`, otherwise we get the following TS error:
11
+ // 'keyboardNavigation' implicitly has type 'any' because it does not have a type annotation and is referenced directly or indirectly in its own initializer.
12
+ constructor(store) {
13
+ this.store = store;
14
+ this.labelMap = createLabelMapFromItemMetaLookup(itemsSelectors.itemMetaLookup(this.store.state));
15
+
16
+ // Whenever the itemMetaLookup changes, we need to regen the label map.
17
+ this.store.registerStoreEffect(itemsSelectors.itemMetaLookup, (_, itemMetaLookup) => {
18
+ if (this.store.shouldIgnoreItemsStateUpdate()) {
19
+ return;
20
+ }
21
+ this.labelMap = createLabelMapFromItemMetaLookup(itemMetaLookup);
22
+ });
23
+ }
24
+ canToggleItemSelection = itemId => selectionSelectors.canItemBeSelected(this.store.state, itemId);
25
+ canToggleItemExpansion = itemId => {
26
+ return !itemsSelectors.isItemDisabled(this.store.state, itemId) && expansionSelectors.isItemExpandable(this.store.state, itemId);
27
+ };
28
+ getFirstItemMatchingTypeaheadQuery = (itemId, newKey) => {
29
+ const getNextItem = itemIdToCheck => {
30
+ const nextItemId = getNextNavigableItem(this.store.state, itemIdToCheck);
31
+ // We reached the end of the tree, check from the beginning
32
+ if (nextItemId === null) {
33
+ return getFirstNavigableItem(this.store.state);
34
+ }
35
+ return nextItemId;
36
+ };
37
+ const getNextMatchingItemId = query => {
38
+ let matchingItemId = null;
39
+ const checkedItems = {};
40
+ // If query length > 1, first check if current item matches
41
+ let currentItemId = query.length > 1 ? itemId : getNextItem(itemId);
42
+ // The "!checkedItems[currentItemId]" condition avoids an infinite loop when there is no matching item.
43
+ while (matchingItemId == null && !checkedItems[currentItemId]) {
44
+ const itemLabel = this.labelMap[currentItemId];
45
+ if (itemLabel?.startsWith(query)) {
46
+ matchingItemId = currentItemId;
47
+ } else {
48
+ checkedItems[currentItemId] = true;
49
+ currentItemId = getNextItem(currentItemId);
50
+ }
51
+ }
52
+ return matchingItemId;
53
+ };
54
+ const cleanNewKey = newKey.toLowerCase();
55
+
56
+ // Try matching with accumulated query + new key
57
+ const concatenatedQuery = `${this.typeaheadQuery}${cleanNewKey}`;
58
+
59
+ // check if the entire typed query matches an item
60
+ const concatenatedQueryMatchingItemId = getNextMatchingItemId(concatenatedQuery);
61
+ if (concatenatedQueryMatchingItemId != null) {
62
+ this.typeaheadQuery = concatenatedQuery;
63
+ return concatenatedQueryMatchingItemId;
64
+ }
65
+ const newKeyMatchingItemId = getNextMatchingItemId(cleanNewKey);
66
+ if (newKeyMatchingItemId != null) {
67
+ this.typeaheadQuery = cleanNewKey;
68
+ return newKeyMatchingItemId;
69
+ }
70
+ this.typeaheadQuery = '';
71
+ return null;
72
+ };
73
+
74
+ /**
75
+ * Updates the `labelMap` to add/remove the first character of some item's labels.
76
+ * This map is used to navigate the tree using type-ahead search.
77
+ * This method is only used by the `useTreeViewJSXItems` plugin, otherwise the updates are handled internally.
78
+ * @param {(map: TreeViewLabelMap) => TreeViewLabelMap} updater The function to update the map.
79
+ */
80
+ updateLabelMap = callback => {
81
+ this.labelMap = callback(this.labelMap);
82
+ };
83
+
84
+ // ARIA specification: https://www.w3.org/WAI/ARIA/apg/patterns/treeview/#keyboardinteraction
85
+ /**
86
+ * Callback fired when a key is pressed on an item.
87
+ * Handles all the keyboard navigation logic.
88
+ * @param {React.KeyboardEvent<HTMLElement> & TreeViewCancellableEvent} event The keyboard event that triggered the callback.
89
+ * @param {TreeViewItemId} itemId The id of the item that the event was triggered on.
90
+ */
91
+ handleItemKeyDown = async (event, itemId) => {
92
+ if (event.defaultMuiPrevented) {
93
+ return;
94
+ }
95
+ if (event.altKey || isTargetInDescendants(event.target, event.currentTarget)) {
96
+ return;
97
+ }
98
+ const ctrlPressed = event.ctrlKey || event.metaKey;
99
+ const key = event.key;
100
+ const isMultiSelectEnabled = selectionSelectors.isMultiSelectEnabled(this.store.state);
101
+
102
+ // eslint-disable-next-line default-case
103
+ switch (true) {
104
+ // Select the item when pressing "Space"
105
+ case key === ' ' && this.canToggleItemSelection(itemId):
106
+ {
107
+ event.preventDefault();
108
+ if (isMultiSelectEnabled && event.shiftKey) {
109
+ this.store.selection.expandSelectionRange(event, itemId);
110
+ } else {
111
+ this.store.selection.setItemSelection({
112
+ event,
113
+ itemId,
114
+ keepExistingSelection: isMultiSelectEnabled,
115
+ shouldBeSelected: undefined
116
+ });
117
+ }
118
+ break;
119
+ }
120
+
121
+ // If the focused item has children, we expand it.
122
+ // If the focused item has no children, we select it.
123
+ case key === 'Enter':
124
+ {
125
+ if (this.store.labelEditing?.setEditedItem && labelSelectors.isItemEditable(this.store.state, itemId) && !labelSelectors.isItemBeingEdited(this.store.state, itemId)) {
126
+ this.store.labelEditing.setEditedItem(itemId);
127
+ } else if (this.canToggleItemExpansion(itemId)) {
128
+ this.store.expansion.setItemExpansion({
129
+ event,
130
+ itemId
131
+ });
132
+ event.preventDefault();
133
+ } else if (this.canToggleItemSelection(itemId)) {
134
+ if (isMultiSelectEnabled) {
135
+ event.preventDefault();
136
+ this.store.selection.setItemSelection({
137
+ event,
138
+ itemId,
139
+ keepExistingSelection: true
140
+ });
141
+ } else if (!selectionSelectors.isItemSelected(this.store.state, itemId)) {
142
+ this.store.selection.setItemSelection({
143
+ event,
144
+ itemId
145
+ });
146
+ event.preventDefault();
147
+ }
148
+ }
149
+ break;
150
+ }
151
+
152
+ // Focus the next focusable item
153
+ case key === 'ArrowDown':
154
+ {
155
+ const nextItem = getNextNavigableItem(this.store.state, itemId);
156
+ if (nextItem) {
157
+ event.preventDefault();
158
+ this.store.focus.focusItem(event, nextItem);
159
+
160
+ // Multi select behavior when pressing Shift + ArrowDown
161
+ // Toggles the selection state of the next item
162
+ if (isMultiSelectEnabled && event.shiftKey && this.canToggleItemSelection(nextItem)) {
163
+ this.store.selection.selectItemFromArrowNavigation(event, itemId, nextItem);
164
+ }
165
+ }
166
+ break;
167
+ }
168
+
169
+ // Focuses the previous focusable item
170
+ case key === 'ArrowUp':
171
+ {
172
+ const previousItem = getPreviousNavigableItem(this.store.state, itemId);
173
+ if (previousItem) {
174
+ event.preventDefault();
175
+ this.store.focus.focusItem(event, previousItem);
176
+
177
+ // Multi select behavior when pressing Shift + ArrowUp
178
+ // Toggles the selection state of the previous item
179
+ if (isMultiSelectEnabled && event.shiftKey && this.canToggleItemSelection(previousItem)) {
180
+ this.store.selection.selectItemFromArrowNavigation(event, itemId, previousItem);
181
+ }
182
+ }
183
+ break;
184
+ }
185
+
186
+ // If the focused item is expanded, we move the focus to its first child
187
+ // If the focused item is collapsed and has children, we expand it
188
+ case key === 'ArrowRight' && !this.store.parameters.isRtl || key === 'ArrowLeft' && this.store.parameters.isRtl:
189
+ {
190
+ if (ctrlPressed) {
191
+ return;
192
+ }
193
+ if (expansionSelectors.isItemExpanded(this.store.state, itemId)) {
194
+ const nextItemId = getNextNavigableItem(this.store.state, itemId);
195
+ if (nextItemId) {
196
+ this.store.focus.focusItem(event, nextItemId);
197
+ event.preventDefault();
198
+ }
199
+ } else if (this.canToggleItemExpansion(itemId)) {
200
+ this.store.expansion.setItemExpansion({
201
+ event,
202
+ itemId
203
+ });
204
+ event.preventDefault();
205
+ }
206
+ break;
207
+ }
208
+
209
+ // If the focused item is expanded, we collapse it
210
+ // If the focused item is collapsed and has a parent, we move the focus to this parent
211
+ case key === 'ArrowLeft' && !this.store.parameters.isRtl || key === 'ArrowRight' && this.store.parameters.isRtl:
212
+ {
213
+ if (ctrlPressed) {
214
+ return;
215
+ }
216
+ if (this.canToggleItemExpansion(itemId) && expansionSelectors.isItemExpanded(this.store.state, itemId)) {
217
+ this.store.expansion.setItemExpansion({
218
+ event,
219
+ itemId
220
+ });
221
+ event.preventDefault();
222
+ } else {
223
+ const parent = itemsSelectors.itemParentId(this.store.state, itemId);
224
+ if (parent) {
225
+ this.store.focus.focusItem(event, parent);
226
+ event.preventDefault();
227
+ }
228
+ }
229
+ break;
230
+ }
231
+
232
+ // Focuses the first item in the tree
233
+ case key === 'Home':
234
+ {
235
+ // Multi select behavior when pressing Ctrl + Shift + Home
236
+ // Selects the focused item and all items up to the first item.
237
+ if (this.canToggleItemSelection(itemId) && isMultiSelectEnabled && ctrlPressed && event.shiftKey) {
238
+ this.store.selection.selectRangeFromStartToItem(event, itemId);
239
+ } else {
240
+ this.store.focus.focusItem(event, getFirstNavigableItem(this.store.state));
241
+ }
242
+ event.preventDefault();
243
+ break;
244
+ }
245
+
246
+ // Focuses the last item in the tree
247
+ case key === 'End':
248
+ {
249
+ // Multi select behavior when pressing Ctrl + Shirt + End
250
+ // Selects the focused item and all the items down to the last item.
251
+ if (this.canToggleItemSelection(itemId) && isMultiSelectEnabled && ctrlPressed && event.shiftKey) {
252
+ this.store.selection.selectRangeFromItemToEnd(event, itemId);
253
+ } else {
254
+ this.store.focus.focusItem(event, getLastNavigableItem(this.store.state));
255
+ }
256
+ event.preventDefault();
257
+ break;
258
+ }
259
+
260
+ // Expand all siblings that are at the same level as the focused item
261
+ case key === '*':
262
+ {
263
+ this.store.expansion.expandAllSiblings(event, itemId);
264
+ event.preventDefault();
265
+ break;
266
+ }
267
+
268
+ // Multi select behavior when pressing Ctrl + a
269
+ // Selects all the items
270
+ case String.fromCharCode(event.keyCode) === 'A' && ctrlPressed && isMultiSelectEnabled && selectionSelectors.enabled(this.store.state):
271
+ {
272
+ this.store.selection.selectAllNavigableItems(event);
273
+ event.preventDefault();
274
+ break;
275
+ }
276
+
277
+ // Type-ahead
278
+ case !ctrlPressed && !event.shiftKey && isPrintableKey(key):
279
+ {
280
+ this.store.timeoutManager.clearTimeout('typeahead');
281
+ const matchingItem = this.getFirstItemMatchingTypeaheadQuery(itemId, key);
282
+ if (matchingItem != null) {
283
+ this.store.focus.focusItem(event, matchingItem);
284
+ event.preventDefault();
285
+ } else {
286
+ this.typeaheadQuery = '';
287
+ }
288
+ this.store.timeoutManager.startTimeout('typeahead', TYPEAHEAD_TIMEOUT, () => {
289
+ this.typeaheadQuery = '';
290
+ });
291
+ break;
292
+ }
293
+ }
294
+ };
295
+ }
296
+ function isPrintableKey(string) {
297
+ return !!string && string.length === 1 && !!string.match(/\S/);
298
+ }
299
+ function createLabelMapFromItemMetaLookup(itemMetaLookup) {
300
+ const labelMap = {};
301
+ const processItem = item => {
302
+ labelMap[item.id] = item.label.toLowerCase();
303
+ };
304
+ Object.values(itemMetaLookup).forEach(processItem);
305
+ return labelMap;
306
+ }
@@ -0,0 +1 @@
1
+ export * from "./TreeViewKeyboardNavigationPlugin.js";
@@ -0,0 +1 @@
1
+ export * from "./TreeViewKeyboardNavigationPlugin.js";
@@ -0,0 +1,22 @@
1
+ import { ExtendableRichTreeViewStore } from "../../RichTreeViewStore/RichTreeViewStore.js";
2
+ import { TreeViewItemId } from "../../../models/index.js";
3
+ export declare class TreeViewLabelEditingPlugin {
4
+ private store;
5
+ constructor(store: ExtendableRichTreeViewStore<any, any>);
6
+ buildPublicAPI: () => {
7
+ setEditedItem: (itemId: TreeViewItemId | null) => void;
8
+ updateItemLabel: (itemId: TreeViewItemId, label: string) => void;
9
+ };
10
+ /**
11
+ * Set which item is currently being edited.
12
+ * You can pass `null` to exit editing mode.
13
+ * @param {TreeViewItemId | null} itemId The id of the item to edit, or `null` to exit editing mode.
14
+ */
15
+ setEditedItem: (itemId: TreeViewItemId | null) => void;
16
+ /**
17
+ * Used to update the label of an item.
18
+ * @param {TreeViewItemId} itemId The id of the item to update the label of.
19
+ * @param {string} label The new label of the item.
20
+ */
21
+ updateItemLabel: (itemId: TreeViewItemId, label: string) => void;
22
+ }
@@ -0,0 +1,50 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import { labelSelectors } from "./selectors.js";
3
+ import { useLabelEditingItemPlugin } from "./itemPlugin.js";
4
+ export class TreeViewLabelEditingPlugin {
5
+ constructor(store) {
6
+ this.store = store;
7
+ store.itemPluginManager.register(useLabelEditingItemPlugin, null);
8
+ }
9
+ buildPublicAPI = () => {
10
+ return {
11
+ setEditedItem: this.setEditedItem,
12
+ updateItemLabel: this.updateItemLabel
13
+ };
14
+ };
15
+
16
+ /**
17
+ * Set which item is currently being edited.
18
+ * You can pass `null` to exit editing mode.
19
+ * @param {TreeViewItemId | null} itemId The id of the item to edit, or `null` to exit editing mode.
20
+ */
21
+ setEditedItem = itemId => {
22
+ if (itemId !== null && !labelSelectors.isItemEditable(this.store.state, itemId)) {
23
+ return;
24
+ }
25
+ this.store.set('editedItemId', itemId);
26
+ };
27
+
28
+ /**
29
+ * Used to update the label of an item.
30
+ * @param {TreeViewItemId} itemId The id of the item to update the label of.
31
+ * @param {string} label The new label of the item.
32
+ */
33
+ updateItemLabel = (itemId, label) => {
34
+ if (!label) {
35
+ throw new Error(['MUI X: The Tree View component requires all items to have a `label` property.', 'The label of an item cannot be empty.', itemId].join('\n'));
36
+ }
37
+ const item = this.store.state.itemMetaLookup[itemId];
38
+ if (item.label === label) {
39
+ return;
40
+ }
41
+ this.store.set('itemMetaLookup', _extends({}, this.store.state.itemMetaLookup, {
42
+ [itemId]: _extends({}, item, {
43
+ label
44
+ })
45
+ }));
46
+ if (this.store.parameters.onItemLabelChange) {
47
+ this.store.parameters.onItemLabelChange(itemId, label);
48
+ }
49
+ };
50
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./TreeViewLabelEditingPlugin.js";
2
+ export * from "./selectors.js";
@@ -0,0 +1,2 @@
1
+ export * from "./TreeViewLabelEditingPlugin.js";
2
+ export * from "./selectors.js";
@@ -1,11 +1,12 @@
1
1
  import { TreeViewItemPlugin } from "../../models/index.js";
2
2
  import { TreeItemLabelInputProps } from "../../../TreeItemLabelInput/index.js";
3
- export declare const useTreeViewLabelItemPlugin: TreeViewItemPlugin;
4
- export interface UseTreeItemLabelInputSlotPropsFromLabelEditing extends TreeItemLabelInputProps {}
5
- export interface UseTreeItemLabelSlotPropsFromLabelEditing {
3
+ export declare const useLabelEditingItemPlugin: TreeViewItemPlugin;
4
+ interface UseTreeItemLabelInputSlotPropsFromLabelEditing extends TreeItemLabelInputProps {}
5
+ interface UseTreeItemLabelSlotPropsFromLabelEditing {
6
6
  editable?: boolean;
7
7
  }
8
8
  declare module '@mui/x-tree-view/useTreeItem' {
9
9
  interface UseTreeItemLabelInputSlotOwnProps extends UseTreeItemLabelInputSlotPropsFromLabelEditing {}
10
10
  interface UseTreeItemLabelSlotOwnProps extends UseTreeItemLabelSlotPropsFromLabelEditing {}
11
- }
11
+ }
12
+ export {};
@@ -3,8 +3,8 @@
3
3
  import * as React from 'react';
4
4
  import { useStore } from '@mui/x-internals/store';
5
5
  import { useTreeViewContext } from "../../TreeViewProvider/index.js";
6
- import { labelSelectors } from "./useTreeViewLabel.selectors.js";
7
- export const useTreeViewLabelItemPlugin = ({
6
+ import { labelSelectors } from "./selectors.js";
7
+ export const useLabelEditingItemPlugin = ({
8
8
  props
9
9
  }) => {
10
10
  const {
@@ -0,0 +1,15 @@
1
+ import { RichTreeViewState } from "../../RichTreeViewStore/index.js";
2
+ export declare const labelSelectors: {
3
+ /**
4
+ * Checks whether an item is editable.
5
+ */
6
+ isItemEditable: (args_0: RichTreeViewState<any, any>, _itemId: string) => boolean;
7
+ /**
8
+ * Checks whether an item is being edited.
9
+ */
10
+ isItemBeingEdited: (state: RichTreeViewState<any, any>, itemId: string | null) => boolean;
11
+ /**
12
+ * Checks whether any item is being edited.
13
+ */
14
+ isAnyItemBeingEdited: (state: RichTreeViewState<any, any>) => boolean;
15
+ };