@mui/x-tree-view 8.22.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 (497) hide show
  1. package/CHANGELOG.md +312 -0
  2. package/RichTreeView/RichTreeView.d.ts +1 -1
  3. package/RichTreeView/RichTreeView.js +41 -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/TreeItem/TreeItem.js +9 -2
  16. package/TreeItemProvider/TreeItemProvider.js +3 -10
  17. package/esm/RichTreeView/RichTreeView.d.ts +1 -1
  18. package/esm/RichTreeView/RichTreeView.js +40 -27
  19. package/esm/RichTreeView/RichTreeView.types.d.ts +6 -4
  20. package/esm/RichTreeView/index.d.ts +1 -3
  21. package/esm/RichTreeView/index.js +1 -1
  22. package/esm/RichTreeView/useExtractRichTreeViewParameters.d.ts +294 -0
  23. package/esm/RichTreeView/useExtractRichTreeViewParameters.js +83 -0
  24. package/esm/SimpleTreeView/SimpleTreeView.d.ts +1 -1
  25. package/esm/SimpleTreeView/SimpleTreeView.js +29 -23
  26. package/esm/SimpleTreeView/SimpleTreeView.types.d.ts +5 -4
  27. package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.d.ts +293 -0
  28. package/esm/SimpleTreeView/useExtractSimpleTreeViewParameters.js +70 -0
  29. package/esm/TreeItem/TreeItem.d.ts +1 -1
  30. package/esm/TreeItem/TreeItem.js +9 -2
  31. package/esm/TreeItemProvider/TreeItemProvider.js +3 -10
  32. package/esm/hooks/useApplyPropagationToSelectedItemsOnMount.js +2 -2
  33. package/esm/hooks/useRichTreeViewApiRef.d.ts +2 -2
  34. package/esm/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
  35. package/esm/hooks/useTreeItemModel.d.ts +2 -2
  36. package/esm/hooks/useTreeItemModel.js +1 -1
  37. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
  38. package/esm/hooks/useTreeItemUtils/useTreeItemUtils.js +26 -35
  39. package/esm/hooks/useTreeViewApiRef.d.ts +3 -5
  40. package/esm/hooks/useTreeViewApiRef.js +4 -3
  41. package/esm/index.d.ts +0 -1
  42. package/esm/index.js +1 -2
  43. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
  44. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +126 -0
  45. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
  46. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
  47. package/esm/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +49 -0
  48. package/esm/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
  49. package/esm/internals/MinimalTreeViewStore/TimeoutManager.js +39 -0
  50. package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
  51. package/esm/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +16 -0
  52. package/esm/internals/MinimalTreeViewStore/index.d.ts +2 -0
  53. package/esm/internals/MinimalTreeViewStore/index.js +2 -0
  54. package/esm/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
  55. package/esm/internals/RichTreeViewStore/RichTreeViewStore.js +21 -0
  56. package/esm/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
  57. package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
  58. package/esm/internals/RichTreeViewStore/RichTreeViewStore.utils.js +15 -0
  59. package/esm/internals/RichTreeViewStore/index.d.ts +3 -0
  60. package/esm/internals/RichTreeViewStore/index.js +3 -0
  61. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
  62. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +18 -0
  63. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
  64. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
  65. package/esm/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +5 -0
  66. package/esm/internals/SimpleTreeViewStore/index.d.ts +2 -0
  67. package/esm/internals/SimpleTreeViewStore/index.js +2 -0
  68. package/esm/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
  69. package/esm/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +2 -3
  70. package/esm/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
  71. package/esm/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
  72. package/esm/internals/TreeViewProvider/TreeViewProvider.js +11 -6
  73. package/esm/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
  74. package/esm/internals/TreeViewProvider/index.d.ts +1 -1
  75. package/esm/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
  76. package/esm/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
  77. package/esm/internals/components/RichTreeViewItems.js +3 -3
  78. package/esm/internals/hooks/useTreeViewRootProps.d.ts +287 -0
  79. package/esm/internals/hooks/useTreeViewRootProps.js +30 -0
  80. package/esm/internals/hooks/useTreeViewStore.d.ts +10 -0
  81. package/esm/internals/hooks/useTreeViewStore.js +19 -0
  82. package/esm/internals/index.d.ts +15 -21
  83. package/esm/internals/index.js +11 -14
  84. package/esm/internals/models/events.d.ts +24 -3
  85. package/esm/internals/models/index.d.ts +2 -3
  86. package/esm/internals/models/index.js +2 -3
  87. package/esm/internals/models/itemPlugin.d.ts +9 -0
  88. package/esm/internals/models/treeView.d.ts +6 -9
  89. package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
  90. package/esm/internals/plugins/expansion/TreeViewExpansionPlugin.js +124 -0
  91. package/esm/internals/plugins/expansion/index.d.ts +2 -0
  92. package/esm/internals/plugins/expansion/index.js +2 -0
  93. package/esm/internals/plugins/expansion/selectors.d.ts +27 -0
  94. package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +5 -5
  95. package/esm/internals/plugins/expansion/utils.d.ts +5 -0
  96. package/esm/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
  97. package/esm/internals/plugins/focus/TreeViewFocusPlugin.js +107 -0
  98. package/esm/internals/plugins/focus/index.d.ts +2 -0
  99. package/esm/internals/plugins/focus/index.js +2 -0
  100. package/esm/internals/plugins/focus/selectors.d.ts +21 -0
  101. package/esm/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +6 -6
  102. package/esm/internals/plugins/id/index.d.ts +1 -0
  103. package/esm/internals/plugins/id/index.js +1 -0
  104. package/esm/internals/plugins/id/selectors.d.ts +13 -0
  105. package/esm/internals/plugins/id/selectors.js +18 -0
  106. package/esm/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
  107. package/esm/internals/plugins/items/TreeViewItemsPlugin.js +223 -0
  108. package/esm/internals/plugins/items/index.d.ts +3 -0
  109. package/esm/internals/plugins/items/index.js +3 -0
  110. package/esm/internals/plugins/items/selectors.d.ts +60 -0
  111. package/esm/internals/plugins/items/selectors.js +64 -0
  112. package/esm/internals/plugins/items/utils.d.ts +43 -0
  113. package/esm/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -49
  114. package/esm/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
  115. package/esm/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +81 -0
  116. package/esm/internals/plugins/jsxItems/index.d.ts +1 -0
  117. package/esm/internals/plugins/jsxItems/index.js +1 -0
  118. package/esm/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
  119. package/esm/internals/plugins/jsxItems/itemPlugin.js +88 -0
  120. package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
  121. package/esm/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +306 -0
  122. package/esm/internals/plugins/keyboardNavigation/index.d.ts +1 -0
  123. package/esm/internals/plugins/keyboardNavigation/index.js +1 -0
  124. package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
  125. package/esm/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +50 -0
  126. package/esm/internals/plugins/labelEditing/index.d.ts +2 -0
  127. package/esm/internals/plugins/labelEditing/index.js +2 -0
  128. package/{internals/plugins/useTreeViewLabel → esm/internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
  129. package/esm/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +2 -2
  130. package/esm/internals/plugins/labelEditing/selectors.d.ts +15 -0
  131. package/esm/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
  132. package/esm/internals/plugins/lazyLoading/index.d.ts +2 -0
  133. package/esm/internals/plugins/lazyLoading/index.js +2 -0
  134. package/esm/internals/plugins/lazyLoading/selectors.d.ts +19 -0
  135. package/esm/internals/plugins/lazyLoading/selectors.js +25 -0
  136. package/esm/internals/plugins/lazyLoading/types.d.ts +5 -0
  137. package/esm/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
  138. package/esm/internals/plugins/selection/TreeViewSelectionPlugin.js +319 -0
  139. package/esm/internals/plugins/selection/index.d.ts +2 -0
  140. package/esm/internals/plugins/selection/index.js +2 -0
  141. package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
  142. package/esm/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +8 -8
  143. package/esm/internals/plugins/selection/selectors.d.ts +48 -0
  144. package/esm/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +19 -9
  145. package/esm/internals/utils/tree.d.ts +8 -10
  146. package/esm/internals/utils/tree.js +2 -2
  147. package/esm/models/items.d.ts +5 -2
  148. package/esm/useTreeItem/useTreeItem.d.ts +18 -2
  149. package/esm/useTreeItem/useTreeItem.js +15 -19
  150. package/esm/useTreeItem/useTreeItem.types.d.ts +9 -19
  151. package/hooks/useApplyPropagationToSelectedItemsOnMount.js +3 -3
  152. package/hooks/useRichTreeViewApiRef.d.ts +2 -2
  153. package/hooks/useSimpleTreeViewApiRef.d.ts +2 -3
  154. package/hooks/useTreeItemModel.d.ts +2 -2
  155. package/hooks/useTreeItemModel.js +2 -2
  156. package/hooks/useTreeItemUtils/useTreeItemUtils.d.ts +9 -19
  157. package/hooks/useTreeItemUtils/useTreeItemUtils.js +41 -49
  158. package/hooks/useTreeViewApiRef.d.ts +3 -5
  159. package/hooks/useTreeViewApiRef.js +3 -5
  160. package/index.d.ts +0 -1
  161. package/index.js +1 -22
  162. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.d.ts +90 -0
  163. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +134 -0
  164. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +272 -0
  165. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +21 -0
  166. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +58 -0
  167. package/internals/MinimalTreeViewStore/TimeoutManager.d.ts +9 -0
  168. package/internals/MinimalTreeViewStore/TimeoutManager.js +46 -0
  169. package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.d.ts +12 -0
  170. package/internals/MinimalTreeViewStore/TreeViewItemPluginManager.js +23 -0
  171. package/internals/MinimalTreeViewStore/index.d.ts +2 -0
  172. package/internals/MinimalTreeViewStore/index.js +27 -0
  173. package/internals/RichTreeViewStore/RichTreeViewStore.d.ts +53 -0
  174. package/internals/RichTreeViewStore/RichTreeViewStore.js +30 -0
  175. package/internals/RichTreeViewStore/RichTreeViewStore.types.d.ts +34 -0
  176. package/internals/RichTreeViewStore/RichTreeViewStore.utils.d.ts +3 -0
  177. package/internals/RichTreeViewStore/RichTreeViewStore.utils.js +22 -0
  178. package/internals/RichTreeViewStore/index.d.ts +3 -0
  179. package/internals/RichTreeViewStore/index.js +38 -0
  180. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.d.ts +8 -0
  181. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.js +26 -0
  182. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.types.d.ts +9 -0
  183. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.d.ts +3 -0
  184. package/internals/SimpleTreeViewStore/SimpleTreeViewStore.utils.js +11 -0
  185. package/internals/SimpleTreeViewStore/index.d.ts +2 -0
  186. package/internals/SimpleTreeViewStore/index.js +27 -0
  187. package/internals/TreeViewItemDepthContext/TreeViewItemDepthContext.d.ts +2 -3
  188. package/internals/TreeViewProvider/TreeViewChildrenItemProvider.js +3 -4
  189. package/internals/TreeViewProvider/TreeViewContext.d.ts +3 -3
  190. package/internals/TreeViewProvider/TreeViewProvider.d.ts +2 -2
  191. package/internals/TreeViewProvider/TreeViewProvider.js +14 -9
  192. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +8 -10
  193. package/internals/TreeViewProvider/index.d.ts +1 -1
  194. package/internals/TreeViewProvider/useTreeViewBuildContext.d.ts +16 -0
  195. package/internals/{useTreeView → TreeViewProvider}/useTreeViewBuildContext.js +25 -39
  196. package/internals/components/RichTreeViewItems.js +9 -9
  197. package/internals/hooks/useTreeViewRootProps.d.ts +287 -0
  198. package/internals/hooks/useTreeViewRootProps.js +36 -0
  199. package/internals/hooks/useTreeViewStore.d.ts +10 -0
  200. package/internals/hooks/useTreeViewStore.js +26 -0
  201. package/internals/index.d.ts +15 -21
  202. package/internals/index.js +40 -70
  203. package/internals/models/events.d.ts +24 -3
  204. package/internals/models/index.d.ts +2 -3
  205. package/internals/models/index.js +11 -22
  206. package/internals/models/itemPlugin.d.ts +9 -0
  207. package/internals/models/treeView.d.ts +6 -9
  208. package/internals/plugins/expansion/TreeViewExpansionPlugin.d.ts +69 -0
  209. package/internals/plugins/expansion/TreeViewExpansionPlugin.js +132 -0
  210. package/internals/plugins/expansion/index.d.ts +2 -0
  211. package/internals/plugins/expansion/index.js +27 -0
  212. package/internals/plugins/expansion/selectors.d.ts +27 -0
  213. package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.selectors.js → expansion/selectors.js} +8 -8
  214. package/internals/plugins/expansion/utils.d.ts +5 -0
  215. package/internals/plugins/focus/TreeViewFocusPlugin.d.ts +33 -0
  216. package/internals/plugins/focus/TreeViewFocusPlugin.js +114 -0
  217. package/internals/plugins/focus/index.d.ts +2 -0
  218. package/internals/plugins/focus/index.js +27 -0
  219. package/internals/plugins/focus/selectors.d.ts +21 -0
  220. package/internals/plugins/{useTreeViewFocus/useTreeViewFocus.selectors.js → focus/selectors.js} +9 -9
  221. package/internals/plugins/id/index.d.ts +1 -0
  222. package/internals/plugins/id/index.js +16 -0
  223. package/internals/plugins/id/selectors.d.ts +13 -0
  224. package/internals/plugins/id/selectors.js +24 -0
  225. package/internals/plugins/items/TreeViewItemsPlugin.d.ts +105 -0
  226. package/internals/plugins/items/TreeViewItemsPlugin.js +231 -0
  227. package/internals/plugins/items/index.d.ts +3 -0
  228. package/internals/plugins/items/index.js +46 -0
  229. package/internals/plugins/items/selectors.d.ts +60 -0
  230. package/internals/plugins/{useTreeViewItems/useTreeViewItems.selectors.js → items/selectors.js} +18 -14
  231. package/internals/plugins/items/utils.d.ts +43 -0
  232. package/internals/plugins/{useTreeViewItems/useTreeViewItems.utils.js → items/utils.js} +6 -50
  233. package/internals/plugins/{useTreeViewJSXItems/useTreeViewJSXItems.types.d.ts → jsxItems/TreeViewJSXItemsPlugin.d.ts} +6 -13
  234. package/internals/plugins/jsxItems/TreeViewJSXItemsPlugin.js +89 -0
  235. package/internals/plugins/jsxItems/index.d.ts +1 -0
  236. package/internals/plugins/jsxItems/index.js +16 -0
  237. package/internals/plugins/jsxItems/itemPlugin.d.ts +4 -0
  238. package/internals/plugins/{useTreeViewJSXItems → jsxItems}/itemPlugin.js +35 -20
  239. package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.d.ts +28 -0
  240. package/internals/plugins/keyboardNavigation/TreeViewKeyboardNavigationPlugin.js +313 -0
  241. package/internals/plugins/keyboardNavigation/index.d.ts +1 -0
  242. package/internals/plugins/keyboardNavigation/index.js +16 -0
  243. package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.d.ts +22 -0
  244. package/internals/plugins/labelEditing/TreeViewLabelEditingPlugin.js +58 -0
  245. package/internals/plugins/labelEditing/index.d.ts +2 -0
  246. package/internals/plugins/labelEditing/index.js +27 -0
  247. package/{esm/internals/plugins/useTreeViewLabel → internals/plugins/labelEditing}/itemPlugin.d.ts +5 -4
  248. package/internals/plugins/{useTreeViewLabel → labelEditing}/itemPlugin.js +6 -6
  249. package/internals/plugins/labelEditing/selectors.d.ts +15 -0
  250. package/internals/plugins/{useTreeViewLabel/useTreeViewLabel.selectors.js → labelEditing/selectors.js} +4 -4
  251. package/internals/plugins/lazyLoading/index.d.ts +2 -0
  252. package/internals/plugins/lazyLoading/index.js +27 -0
  253. package/internals/plugins/lazyLoading/selectors.d.ts +19 -0
  254. package/internals/plugins/{useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js → lazyLoading/selectors.js} +11 -6
  255. package/internals/plugins/lazyLoading/types.d.ts +5 -0
  256. package/internals/plugins/selection/TreeViewSelectionPlugin.d.ts +73 -0
  257. package/internals/plugins/selection/TreeViewSelectionPlugin.js +327 -0
  258. package/internals/plugins/selection/index.d.ts +2 -0
  259. package/internals/plugins/selection/index.js +27 -0
  260. package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.d.ts +1 -1
  261. package/internals/plugins/{useTreeViewSelection → selection}/itemPlugin.js +16 -16
  262. package/internals/plugins/selection/selectors.d.ts +48 -0
  263. package/internals/plugins/{useTreeViewSelection/useTreeViewSelection.selectors.js → selection/selectors.js} +19 -9
  264. package/internals/utils/tree.d.ts +8 -10
  265. package/internals/utils/tree.js +33 -33
  266. package/models/items.d.ts +5 -2
  267. package/package.json +3 -3
  268. package/useTreeItem/useTreeItem.d.ts +18 -2
  269. package/useTreeItem/useTreeItem.js +19 -24
  270. package/useTreeItem/useTreeItem.types.d.ts +9 -19
  271. package/RichTreeView/RichTreeView.plugins.d.ts +0 -10
  272. package/RichTreeView/RichTreeView.plugins.js +0 -15
  273. package/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
  274. package/SimpleTreeView/SimpleTreeView.plugins.js +0 -15
  275. package/esm/RichTreeView/RichTreeView.plugins.d.ts +0 -10
  276. package/esm/RichTreeView/RichTreeView.plugins.js +0 -9
  277. package/esm/SimpleTreeView/SimpleTreeView.plugins.d.ts +0 -9
  278. package/esm/SimpleTreeView/SimpleTreeView.plugins.js +0 -9
  279. package/esm/internals/corePlugins/corePlugins.d.ts +0 -9
  280. package/esm/internals/corePlugins/corePlugins.js +0 -8
  281. package/esm/internals/corePlugins/index.d.ts +0 -2
  282. package/esm/internals/corePlugins/index.js +0 -1
  283. package/esm/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
  284. package/esm/internals/corePlugins/useTreeViewId/index.js +0 -2
  285. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  286. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -38
  287. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
  288. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -9
  289. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  290. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  291. package/esm/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -26
  292. package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  293. package/esm/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -1
  294. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  295. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -31
  296. package/esm/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  297. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  298. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -1
  299. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  300. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -12
  301. package/esm/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  302. package/esm/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  303. package/esm/internals/hooks/useInstanceEventHandler.js +0 -79
  304. package/esm/internals/models/helpers.d.ts +0 -7
  305. package/esm/internals/models/plugin.d.ts +0 -166
  306. package/esm/internals/models/plugin.js +0 -1
  307. package/esm/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
  308. package/esm/internals/plugins/useTreeViewExpansion/index.js +0 -2
  309. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  310. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -149
  311. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
  312. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
  313. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -1
  314. package/esm/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
  315. package/esm/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
  316. package/esm/internals/plugins/useTreeViewFocus/index.js +0 -2
  317. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  318. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -113
  319. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
  320. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  321. package/esm/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -1
  322. package/esm/internals/plugins/useTreeViewItems/index.d.ts +0 -4
  323. package/esm/internals/plugins/useTreeViewItems/index.js +0 -3
  324. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  325. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -218
  326. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -56
  327. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.js +0 -60
  328. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -197
  329. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -1
  330. package/esm/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
  331. package/esm/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  332. package/esm/internals/plugins/useTreeViewJSXItems/index.js +0 -1
  333. package/esm/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
  334. package/esm/internals/plugins/useTreeViewJSXItems/itemPlugin.js +0 -74
  335. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  336. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -104
  337. package/esm/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -1
  338. package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  339. package/esm/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -1
  340. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  341. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -305
  342. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
  343. package/esm/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -1
  344. package/esm/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
  345. package/esm/internals/plugins/useTreeViewLabel/index.js +0 -2
  346. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  347. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -70
  348. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
  349. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
  350. package/esm/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -1
  351. package/esm/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
  352. package/esm/internals/plugins/useTreeViewLazyLoading/index.js +0 -1
  353. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
  354. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.js +0 -20
  355. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
  356. package/esm/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -1
  357. package/esm/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
  358. package/esm/internals/plugins/useTreeViewSelection/index.js +0 -2
  359. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  360. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -230
  361. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -40
  362. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
  363. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -1
  364. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
  365. package/esm/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -107
  366. package/esm/internals/useTreeView/index.d.ts +0 -1
  367. package/esm/internals/useTreeView/index.js +0 -1
  368. package/esm/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
  369. package/esm/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -51
  370. package/esm/internals/useTreeView/useTreeView.d.ts +0 -18
  371. package/esm/internals/useTreeView/useTreeView.js +0 -102
  372. package/esm/internals/useTreeView/useTreeView.types.d.ts +0 -20
  373. package/esm/internals/useTreeView/useTreeView.types.js +0 -1
  374. package/esm/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
  375. package/esm/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  376. package/esm/internals/utils/cleanupTracking/CleanupTracking.js +0 -1
  377. package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  378. package/esm/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -14
  379. package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  380. package/esm/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -38
  381. package/esm/internals/utils/plugins.d.ts +0 -2
  382. package/esm/internals/utils/plugins.js +0 -4
  383. package/esm/internals/utils/publishTreeViewEvent.d.ts +0 -5
  384. package/esm/internals/utils/publishTreeViewEvent.js +0 -3
  385. package/internals/corePlugins/corePlugins.d.ts +0 -9
  386. package/internals/corePlugins/corePlugins.js +0 -14
  387. package/internals/corePlugins/index.d.ts +0 -2
  388. package/internals/corePlugins/index.js +0 -12
  389. package/internals/corePlugins/useTreeViewId/index.d.ts +0 -3
  390. package/internals/corePlugins/useTreeViewId/index.js +0 -19
  391. package/internals/corePlugins/useTreeViewId/useTreeViewId.d.ts +0 -3
  392. package/internals/corePlugins/useTreeViewId/useTreeViewId.js +0 -46
  393. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.d.ts +0 -10
  394. package/internals/corePlugins/useTreeViewId/useTreeViewId.selectors.js +0 -15
  395. package/internals/corePlugins/useTreeViewId/useTreeViewId.types.d.ts +0 -20
  396. package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.d.ts +0 -21
  397. package/internals/corePlugins/useTreeViewId/useTreeViewId.utils.js +0 -34
  398. package/internals/corePlugins/useTreeViewInstanceEvents/index.d.ts +0 -2
  399. package/internals/corePlugins/useTreeViewInstanceEvents/index.js +0 -12
  400. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.d.ts +0 -3
  401. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +0 -38
  402. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +0 -22
  403. package/internals/corePlugins/useTreeViewOptionalPlugins/index.d.ts +0 -2
  404. package/internals/corePlugins/useTreeViewOptionalPlugins/index.js +0 -12
  405. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.d.ts +0 -3
  406. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.js +0 -19
  407. package/internals/corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.d.ts +0 -8
  408. package/internals/hooks/useInstanceEventHandler.d.ts +0 -15
  409. package/internals/hooks/useInstanceEventHandler.js +0 -87
  410. package/internals/models/helpers.d.ts +0 -7
  411. package/internals/models/plugin.d.ts +0 -166
  412. package/internals/models/plugin.js +0 -5
  413. package/internals/plugins/useTreeViewExpansion/index.d.ts +0 -3
  414. package/internals/plugins/useTreeViewExpansion/index.js +0 -19
  415. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.d.ts +0 -3
  416. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +0 -157
  417. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.selectors.d.ts +0 -28
  418. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +0 -112
  419. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.js +0 -5
  420. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.utils.d.ts +0 -6
  421. package/internals/plugins/useTreeViewFocus/index.d.ts +0 -3
  422. package/internals/plugins/useTreeViewFocus/index.js +0 -19
  423. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.d.ts +0 -3
  424. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +0 -121
  425. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.selectors.d.ts +0 -22
  426. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +0 -45
  427. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.js +0 -5
  428. package/internals/plugins/useTreeViewItems/index.d.ts +0 -4
  429. package/internals/plugins/useTreeViewItems/index.js +0 -32
  430. package/internals/plugins/useTreeViewItems/useTreeViewItems.d.ts +0 -3
  431. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +0 -226
  432. package/internals/plugins/useTreeViewItems/useTreeViewItems.selectors.d.ts +0 -56
  433. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +0 -197
  434. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.js +0 -5
  435. package/internals/plugins/useTreeViewItems/useTreeViewItems.utils.d.ts +0 -49
  436. package/internals/plugins/useTreeViewJSXItems/index.d.ts +0 -2
  437. package/internals/plugins/useTreeViewJSXItems/index.js +0 -12
  438. package/internals/plugins/useTreeViewJSXItems/itemPlugin.d.ts +0 -2
  439. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.d.ts +0 -3
  440. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +0 -112
  441. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.types.js +0 -5
  442. package/internals/plugins/useTreeViewKeyboardNavigation/index.d.ts +0 -2
  443. package/internals/plugins/useTreeViewKeyboardNavigation/index.js +0 -12
  444. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.d.ts +0 -3
  445. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +0 -312
  446. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +0 -32
  447. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.js +0 -5
  448. package/internals/plugins/useTreeViewLabel/index.d.ts +0 -3
  449. package/internals/plugins/useTreeViewLabel/index.js +0 -19
  450. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.d.ts +0 -3
  451. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.js +0 -78
  452. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.selectors.d.ts +0 -16
  453. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +0 -50
  454. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.js +0 -5
  455. package/internals/plugins/useTreeViewLazyLoading/index.d.ts +0 -2
  456. package/internals/plugins/useTreeViewLazyLoading/index.js +0 -12
  457. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.selectors.d.ts +0 -24
  458. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.d.ts +0 -100
  459. package/internals/plugins/useTreeViewLazyLoading/useTreeViewLazyLoading.types.js +0 -5
  460. package/internals/plugins/useTreeViewSelection/index.d.ts +0 -3
  461. package/internals/plugins/useTreeViewSelection/index.js +0 -19
  462. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.d.ts +0 -3
  463. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +0 -239
  464. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.selectors.d.ts +0 -40
  465. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +0 -132
  466. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.js +0 -5
  467. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +0 -31
  468. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +0 -116
  469. package/internals/useTreeView/index.d.ts +0 -1
  470. package/internals/useTreeView/index.js +0 -12
  471. package/internals/useTreeView/useExtractPluginParamsFromProps.d.ts +0 -19
  472. package/internals/useTreeView/useExtractPluginParamsFromProps.js +0 -60
  473. package/internals/useTreeView/useTreeView.d.ts +0 -18
  474. package/internals/useTreeView/useTreeView.js +0 -112
  475. package/internals/useTreeView/useTreeView.types.d.ts +0 -20
  476. package/internals/useTreeView/useTreeView.types.js +0 -5
  477. package/internals/useTreeView/useTreeViewBuildContext.d.ts +0 -13
  478. package/internals/utils/cleanupTracking/CleanupTracking.d.ts +0 -9
  479. package/internals/utils/cleanupTracking/CleanupTracking.js +0 -5
  480. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.d.ts +0 -7
  481. package/internals/utils/cleanupTracking/FinalizationRegistryBasedCleanupTracking.js +0 -21
  482. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.d.ts +0 -9
  483. package/internals/utils/cleanupTracking/TimerBasedCleanupTracking.js +0 -45
  484. package/internals/utils/plugins.d.ts +0 -2
  485. package/internals/utils/plugins.js +0 -11
  486. package/internals/utils/publishTreeViewEvent.d.ts +0 -5
  487. package/internals/utils/publishTreeViewEvent.js +0 -10
  488. /package/esm/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
  489. /package/esm/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
  490. /package/esm/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
  491. /package/esm/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
  492. /package/esm/internals/{models/helpers.js → plugins/lazyLoading/types.js} +0 -0
  493. /package/internals/{corePlugins/useTreeViewId/useTreeViewId.types.js → MinimalTreeViewStore/MinimalTreeViewStore.types.js} +0 -0
  494. /package/internals/{corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.js → RichTreeViewStore/RichTreeViewStore.types.js} +0 -0
  495. /package/internals/{corePlugins/useTreeViewOptionalPlugins/useTreeViewOptionalPlugins.types.js → SimpleTreeViewStore/SimpleTreeViewStore.types.js} +0 -0
  496. /package/internals/plugins/{useTreeViewExpansion/useTreeViewExpansion.utils.js → expansion/utils.js} +0 -0
  497. /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>>;
@@ -0,0 +1,88 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ import { useStore } from '@mui/x-internals/store';
5
+ import { useMergedRefs } from '@base-ui/utils/useMergedRefs';
6
+ import { useIsoLayoutEffect } from '@base-ui/utils/useIsoLayoutEffect';
7
+ import { useTreeViewContext } from "../../TreeViewProvider/index.js";
8
+ import { TreeViewChildrenItemContext, TreeViewChildrenItemProvider } from "../../TreeViewProvider/TreeViewChildrenItemProvider.js";
9
+ import { TreeViewItemDepthContext } from "../../TreeViewItemDepthContext/index.js";
10
+ import { itemHasChildren } from "../../../hooks/useTreeItemUtils/useTreeItemUtils.js";
11
+ import { idSelectors } from "../id/index.js";
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ export const useJSXItemsItemPlugin = ({
14
+ props,
15
+ rootRef,
16
+ contentRef
17
+ }) => {
18
+ const {
19
+ store
20
+ } = useTreeViewContext();
21
+ const {
22
+ children,
23
+ disabled = false,
24
+ disableSelection = false,
25
+ label,
26
+ itemId,
27
+ id
28
+ } = props;
29
+ const parentContext = React.useContext(TreeViewChildrenItemContext);
30
+ if (parentContext == null) {
31
+ throw new Error(['MUI X: Could not find the Tree View Children Item context.', 'It looks like you rendered your component outside of a SimpleTreeView parent component.', 'This can also happen if you are bundling multiple versions of the Tree View.'].join('\n'));
32
+ }
33
+ const {
34
+ registerChild,
35
+ unregisterChild,
36
+ parentId
37
+ } = parentContext;
38
+ const expandable = itemHasChildren(children);
39
+ const pluginContentRef = React.useRef(null);
40
+ const handleContentRef = useMergedRefs(pluginContentRef, contentRef);
41
+ const idAttribute = useStore(store, idSelectors.treeItemIdAttribute, itemId, id);
42
+
43
+ // Prevent any flashing
44
+ useIsoLayoutEffect(() => {
45
+ registerChild(idAttribute, itemId);
46
+ return () => {
47
+ unregisterChild(idAttribute);
48
+ unregisterChild(idAttribute);
49
+ };
50
+ }, [store, registerChild, unregisterChild, idAttribute, itemId]);
51
+ useIsoLayoutEffect(() => {
52
+ return store.jsxItems.insertJSXItem({
53
+ id: itemId,
54
+ idAttribute: id,
55
+ parentId,
56
+ expandable,
57
+ disabled,
58
+ selectable: !disableSelection
59
+ });
60
+ }, [store, parentId, itemId, expandable, disabled, disableSelection, id]);
61
+ React.useEffect(() => {
62
+ if (label) {
63
+ return store.jsxItems.mapLabelFromJSX(itemId, (pluginContentRef.current?.textContent ?? '').toLowerCase());
64
+ }
65
+ return undefined;
66
+ }, [store, itemId, label]);
67
+ return {
68
+ contentRef: handleContentRef,
69
+ rootRef
70
+ };
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
+ };