@mui/x-tree-view 7.11.0 → 7.12.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 (111) hide show
  1. package/CHANGELOG.md +194 -4
  2. package/RichTreeView/RichTreeView.js +11 -7
  3. package/RichTreeView/RichTreeView.types.d.ts +1 -1
  4. package/SimpleTreeView/SimpleTreeView.js +11 -7
  5. package/SimpleTreeView/SimpleTreeView.types.d.ts +1 -1
  6. package/TreeItem/TreeItem.js +36 -10
  7. package/TreeItem/TreeItem.types.d.ts +1 -1
  8. package/TreeItem/TreeItemContent.d.ts +2 -0
  9. package/TreeItem/TreeItemContent.js +11 -3
  10. package/TreeItem/treeItemClasses.d.ts +2 -0
  11. package/TreeItem/treeItemClasses.js +1 -1
  12. package/TreeItem/useTreeItemState.d.ts +1 -0
  13. package/TreeItem/useTreeItemState.js +5 -1
  14. package/TreeItem2/TreeItem2.js +15 -3
  15. package/TreeItem2/TreeItem2.types.d.ts +8 -1
  16. package/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.d.ts +4 -0
  17. package/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js +69 -0
  18. package/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.d.ts +6 -0
  19. package/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js +1 -0
  20. package/TreeItem2DragAndDropOverlay/index.d.ts +2 -0
  21. package/TreeItem2DragAndDropOverlay/index.js +1 -0
  22. package/TreeItem2DragAndDropOverlay/package.json +6 -0
  23. package/TreeItem2Icon/TreeItem2Icon.js +3 -2
  24. package/TreeItem2Icon/TreeItem2Icon.types.d.ts +1 -1
  25. package/TreeItem2Provider/TreeItem2Provider.js +1 -1
  26. package/TreeView/TreeView.js +8 -3
  27. package/hooks/useTreeItem2Utils/useTreeItem2Utils.js +1 -1
  28. package/index.js +1 -1
  29. package/internals/TreeViewProvider/index.d.ts +1 -0
  30. package/internals/TreeViewProvider/index.js +2 -1
  31. package/internals/index.d.ts +6 -5
  32. package/internals/index.js +4 -3
  33. package/internals/models/index.d.ts +2 -0
  34. package/internals/models/index.js +3 -1
  35. package/internals/models/itemPlugin.d.ts +37 -0
  36. package/internals/models/itemPlugin.js +1 -0
  37. package/internals/models/plugin.d.ts +2 -15
  38. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +2 -3
  39. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +1 -1
  40. package/internals/plugins/useTreeViewItems/index.d.ts +2 -1
  41. package/internals/plugins/useTreeViewItems/index.js +2 -1
  42. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +6 -2
  43. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +18 -4
  44. package/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +1 -1
  45. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +2 -2
  46. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +1 -2
  47. package/internals/useTreeView/useTreeView.types.d.ts +1 -1
  48. package/internals/useTreeView/useTreeViewBuildContext.js +23 -1
  49. package/internals/utils/tree.d.ts +8 -0
  50. package/internals/utils/tree.js +11 -0
  51. package/internals/utils/warning.d.ts +2 -1
  52. package/internals/utils/warning.js +19 -12
  53. package/models/items.d.ts +1 -0
  54. package/modern/RichTreeView/RichTreeView.js +11 -7
  55. package/modern/SimpleTreeView/SimpleTreeView.js +11 -7
  56. package/modern/TreeItem/TreeItem.js +36 -10
  57. package/modern/TreeItem/TreeItemContent.js +11 -3
  58. package/modern/TreeItem/treeItemClasses.js +1 -1
  59. package/modern/TreeItem/useTreeItemState.js +5 -1
  60. package/modern/TreeItem2/TreeItem2.js +15 -3
  61. package/modern/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js +69 -0
  62. package/modern/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js +1 -0
  63. package/modern/TreeItem2DragAndDropOverlay/index.js +1 -0
  64. package/modern/TreeItem2Icon/TreeItem2Icon.js +3 -2
  65. package/modern/TreeItem2Provider/TreeItem2Provider.js +1 -1
  66. package/modern/TreeView/TreeView.js +8 -3
  67. package/modern/hooks/useTreeItem2Utils/useTreeItem2Utils.js +1 -1
  68. package/modern/index.js +1 -1
  69. package/modern/internals/TreeViewProvider/index.js +2 -1
  70. package/modern/internals/index.js +4 -3
  71. package/modern/internals/models/index.js +3 -1
  72. package/modern/internals/models/itemPlugin.js +1 -0
  73. package/modern/internals/plugins/useTreeViewItems/index.js +2 -1
  74. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +6 -2
  75. package/modern/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +1 -1
  76. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +2 -2
  77. package/modern/internals/useTreeView/useTreeViewBuildContext.js +23 -1
  78. package/modern/internals/utils/tree.js +11 -0
  79. package/modern/internals/utils/warning.js +19 -12
  80. package/modern/useTreeItem2/useTreeItem2.js +43 -15
  81. package/node/RichTreeView/RichTreeView.js +12 -8
  82. package/node/SimpleTreeView/SimpleTreeView.js +11 -7
  83. package/node/TreeItem/TreeItem.js +45 -19
  84. package/node/TreeItem/TreeItemContent.js +11 -3
  85. package/node/TreeItem/treeItemClasses.js +1 -1
  86. package/node/TreeItem/useTreeItemState.js +6 -2
  87. package/node/TreeItem2/TreeItem2.js +21 -9
  88. package/node/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js +77 -0
  89. package/node/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js +5 -0
  90. package/node/TreeItem2DragAndDropOverlay/index.js +12 -0
  91. package/node/TreeItem2Icon/TreeItem2Icon.js +6 -5
  92. package/node/TreeItem2Provider/TreeItem2Provider.js +2 -2
  93. package/node/TreeView/TreeView.js +8 -3
  94. package/node/hooks/useTreeItem2Utils/useTreeItem2Utils.js +2 -2
  95. package/node/index.js +1 -1
  96. package/node/internals/TreeViewProvider/index.js +8 -1
  97. package/node/internals/index.js +27 -2
  98. package/node/internals/models/index.js +22 -0
  99. package/node/internals/models/itemPlugin.js +5 -0
  100. package/node/internals/plugins/useTreeViewItems/index.js +14 -1
  101. package/node/internals/plugins/useTreeViewItems/useTreeViewItems.js +6 -2
  102. package/node/internals/plugins/useTreeViewJSXItems/useTreeViewJSXItems.js +2 -2
  103. package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +1 -1
  104. package/node/internals/useTreeView/useTreeViewBuildContext.js +23 -1
  105. package/node/internals/utils/tree.js +14 -2
  106. package/node/internals/utils/warning.js +21 -14
  107. package/node/useTreeItem2/useTreeItem2.js +49 -21
  108. package/package.json +5 -6
  109. package/useTreeItem2/index.d.ts +1 -1
  110. package/useTreeItem2/useTreeItem2.js +43 -15
  111. package/useTreeItem2/useTreeItem2.types.d.ts +17 -4
@@ -7,9 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.useTreeItem2 = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var React = _interopRequireWildcard(require("react"));
10
- var _utils = require("@mui/base/utils");
10
+ var _extractEventHandlers = _interopRequireDefault(require("@mui/utils/extractEventHandlers"));
11
11
  var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
12
- var _useTreeViewContext = require("../internals/TreeViewProvider/useTreeViewContext");
12
+ var _TreeViewProvider = require("../internals/TreeViewProvider");
13
13
  var _useTreeItem2Utils = require("../hooks/useTreeItem2Utils");
14
14
  var _TreeViewItemDepthContext = require("../internals/TreeViewItemDepthContext");
15
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
@@ -17,6 +17,11 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
17
17
  const useTreeItem2 = parameters => {
18
18
  const {
19
19
  runItemPlugins,
20
+ items: {
21
+ onItemClick,
22
+ disabledItemsFocusable,
23
+ indentationAtItemLevel
24
+ },
20
25
  selection: {
21
26
  multiSelect,
22
27
  disableSelection,
@@ -25,11 +30,9 @@ const useTreeItem2 = parameters => {
25
30
  expansion: {
26
31
  expansionTrigger
27
32
  },
28
- disabledItemsFocusable,
29
- indentationAtItemLevel,
30
33
  instance,
31
34
  publicAPI
32
- } = (0, _useTreeViewContext.useTreeViewContext)();
35
+ } = (0, _TreeViewProvider.useTreeViewContext)();
33
36
  const depthContext = React.useContext(_TreeViewItemDepthContext.TreeViewItemDepthContext);
34
37
  const {
35
38
  id,
@@ -40,7 +43,8 @@ const useTreeItem2 = parameters => {
40
43
  } = parameters;
41
44
  const {
42
45
  rootRef: pluginRootRef,
43
- contentRef
46
+ contentRef,
47
+ propsEnhancers
44
48
  } = runItemPlugins(parameters);
45
49
  const {
46
50
  interactions,
@@ -49,8 +53,11 @@ const useTreeItem2 = parameters => {
49
53
  itemId,
50
54
  children
51
55
  });
56
+ const rootRefObject = React.useRef(null);
57
+ const contentRefObject = React.useRef(null);
52
58
  const idAttribute = instance.getTreeItemIdAttribute(itemId, id);
53
- const handleRootRef = (0, _useForkRef.default)(rootRef, pluginRootRef);
59
+ const handleRootRef = (0, _useForkRef.default)(rootRef, pluginRootRef, rootRefObject);
60
+ const handleContentRef = (0, _useForkRef.default)(contentRef, contentRefObject);
54
61
  const checkboxRef = React.useRef(null);
55
62
  const createRootHandleFocus = otherHandlers => event => {
56
63
  otherHandlers.onFocus?.(event);
@@ -78,6 +85,7 @@ const useTreeItem2 = parameters => {
78
85
  };
79
86
  const createContentHandleClick = otherHandlers => event => {
80
87
  otherHandlers.onClick?.(event);
88
+ onItemClick?.(event, itemId);
81
89
  if (event.defaultMuiPrevented || checkboxRef.current?.contains(event.target)) {
82
90
  return;
83
91
  }
@@ -119,7 +127,7 @@ const useTreeItem2 = parameters => {
119
127
  }
120
128
  };
121
129
  const getRootProps = (externalProps = {}) => {
122
- const externalEventHandlers = (0, _extends2.default)({}, (0, _utils.extractEventHandlers)(parameters), (0, _utils.extractEventHandlers)(externalProps));
130
+ const externalEventHandlers = (0, _extends2.default)({}, (0, _extractEventHandlers.default)(parameters), (0, _extractEventHandlers.default)(externalProps));
123
131
  let ariaSelected;
124
132
  if (multiSelect) {
125
133
  ariaSelected = status.selected;
@@ -132,7 +140,7 @@ const useTreeItem2 = parameters => {
132
140
  */
133
141
  ariaSelected = true;
134
142
  }
135
- const response = (0, _extends2.default)({}, externalEventHandlers, {
143
+ const props = (0, _extends2.default)({}, externalEventHandlers, {
136
144
  ref: handleRootRef,
137
145
  role: 'treeitem',
138
146
  tabIndex: instance.canItemBeTabbed(itemId) ? 0 : -1,
@@ -146,27 +154,37 @@ const useTreeItem2 = parameters => {
146
154
  onKeyDown: createRootHandleKeyDown(externalEventHandlers)
147
155
  });
148
156
  if (indentationAtItemLevel) {
149
- response.style = {
157
+ props.style = {
150
158
  '--TreeView-itemDepth': typeof depthContext === 'function' ? depthContext(itemId) : depthContext
151
159
  };
152
160
  }
153
- return response;
161
+ const enhancedRootProps = propsEnhancers.root?.({
162
+ rootRefObject,
163
+ contentRefObject,
164
+ externalEventHandlers
165
+ }) ?? {};
166
+ return (0, _extends2.default)({}, props, enhancedRootProps);
154
167
  };
155
168
  const getContentProps = (externalProps = {}) => {
156
- const externalEventHandlers = (0, _utils.extractEventHandlers)(externalProps);
157
- const response = (0, _extends2.default)({}, externalEventHandlers, externalProps, {
158
- ref: contentRef,
169
+ const externalEventHandlers = (0, _extractEventHandlers.default)(externalProps);
170
+ const props = (0, _extends2.default)({}, externalEventHandlers, externalProps, {
171
+ ref: handleContentRef,
159
172
  onClick: createContentHandleClick(externalEventHandlers),
160
173
  onMouseDown: createContentHandleMouseDown(externalEventHandlers),
161
174
  status
162
175
  });
163
176
  if (indentationAtItemLevel) {
164
- response.indentationAtItemLevel = true;
165
- }
166
- return response;
177
+ props.indentationAtItemLevel = true;
178
+ }
179
+ const enhancedContentProps = propsEnhancers.content?.({
180
+ rootRefObject,
181
+ contentRefObject,
182
+ externalEventHandlers
183
+ }) ?? {};
184
+ return (0, _extends2.default)({}, props, enhancedContentProps);
167
185
  };
168
186
  const getCheckboxProps = (externalProps = {}) => {
169
- const externalEventHandlers = (0, _utils.extractEventHandlers)(externalProps);
187
+ const externalEventHandlers = (0, _extractEventHandlers.default)(externalProps);
170
188
  return (0, _extends2.default)({}, externalEventHandlers, {
171
189
  visible: checkboxSelection,
172
190
  ref: checkboxRef,
@@ -178,19 +196,19 @@ const useTreeItem2 = parameters => {
178
196
  });
179
197
  };
180
198
  const getLabelProps = (externalProps = {}) => {
181
- const externalEventHandlers = (0, _extends2.default)({}, (0, _utils.extractEventHandlers)(parameters), (0, _utils.extractEventHandlers)(externalProps));
199
+ const externalEventHandlers = (0, _extends2.default)({}, (0, _extractEventHandlers.default)(externalProps));
182
200
  return (0, _extends2.default)({}, externalEventHandlers, {
183
201
  children: label
184
202
  }, externalProps);
185
203
  };
186
204
  const getIconContainerProps = (externalProps = {}) => {
187
- const externalEventHandlers = (0, _utils.extractEventHandlers)(externalProps);
205
+ const externalEventHandlers = (0, _extractEventHandlers.default)(externalProps);
188
206
  return (0, _extends2.default)({}, externalEventHandlers, externalProps, {
189
207
  onClick: createIconContainerHandleClick(externalEventHandlers)
190
208
  });
191
209
  };
192
210
  const getGroupTransitionProps = (externalProps = {}) => {
193
- const externalEventHandlers = (0, _utils.extractEventHandlers)(externalProps);
211
+ const externalEventHandlers = (0, _extractEventHandlers.default)(externalProps);
194
212
  const response = (0, _extends2.default)({}, externalEventHandlers, {
195
213
  unmountOnExit: true,
196
214
  component: 'ul',
@@ -203,6 +221,15 @@ const useTreeItem2 = parameters => {
203
221
  }
204
222
  return response;
205
223
  };
224
+ const getDragAndDropOverlayProps = (externalProps = {}) => {
225
+ const externalEventHandlers = (0, _extends2.default)({}, (0, _extractEventHandlers.default)(externalProps));
226
+ const enhancedDragAndDropOverlayProps = propsEnhancers.dragAndDropOverlay?.({
227
+ rootRefObject,
228
+ contentRefObject,
229
+ externalEventHandlers
230
+ }) ?? {};
231
+ return (0, _extends2.default)({}, externalProps, enhancedDragAndDropOverlayProps);
232
+ };
206
233
  return {
207
234
  getRootProps,
208
235
  getContentProps,
@@ -210,6 +237,7 @@ const useTreeItem2 = parameters => {
210
237
  getIconContainerProps,
211
238
  getCheckboxProps,
212
239
  getLabelProps,
240
+ getDragAndDropOverlayProps,
213
241
  rootRef: handleRootRef,
214
242
  status,
215
243
  publicAPI
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/x-tree-view",
3
- "version": "7.11.0",
3
+ "version": "7.12.0",
4
4
  "description": "The community edition of the Tree View components (MUI X).",
5
5
  "author": "MUI Team",
6
6
  "main": "./node/index.js",
@@ -33,15 +33,14 @@
33
33
  "directory": "packages/x-tree-view"
34
34
  },
35
35
  "dependencies": {
36
- "@babel/runtime": "^7.24.8",
37
- "@mui/base": "^5.0.0-beta.40",
38
- "@mui/system": "^5.16.2",
39
- "@mui/utils": "^5.16.2",
36
+ "@babel/runtime": "^7.25.0",
37
+ "@mui/system": "^5.16.5",
38
+ "@mui/utils": "^5.16.5",
40
39
  "@types/react-transition-group": "^4.4.10",
41
40
  "clsx": "^2.1.1",
42
41
  "prop-types": "^15.8.1",
43
42
  "react-transition-group": "^4.4.5",
44
- "@mui/x-internals": "7.11.0"
43
+ "@mui/x-internals": "7.12.0"
45
44
  },
46
45
  "peerDependencies": {
47
46
  "@emotion/react": "^11.9.0",
@@ -1,2 +1,2 @@
1
1
  export { useTreeItem2 as unstable_useTreeItem2 } from './useTreeItem2';
2
- export type { UseTreeItem2Parameters, UseTreeItem2ReturnValue, UseTreeItem2Status, UseTreeItem2ContentSlotOwnProps, } from './useTreeItem2.types';
2
+ export type { UseTreeItem2Parameters, UseTreeItem2ReturnValue, UseTreeItem2Status, UseTreeItem2RootSlotOwnProps, UseTreeItem2ContentSlotOwnProps, UseTreeItem2LabelSlotOwnProps, UseTreeItem2IconContainerSlotOwnProps, UseTreeItem2GroupTransitionSlotOwnProps, UseTreeItem2DragAndDropOverlaySlotOwnProps, } from './useTreeItem2.types';
@@ -1,13 +1,18 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import * as React from 'react';
3
- import { extractEventHandlers } from '@mui/base/utils';
3
+ import extractEventHandlers from '@mui/utils/extractEventHandlers';
4
4
  import useForkRef from '@mui/utils/useForkRef';
5
- import { useTreeViewContext } from '../internals/TreeViewProvider/useTreeViewContext';
5
+ import { useTreeViewContext } from '../internals/TreeViewProvider';
6
6
  import { useTreeItem2Utils } from '../hooks/useTreeItem2Utils';
7
7
  import { TreeViewItemDepthContext } from '../internals/TreeViewItemDepthContext';
8
8
  export const useTreeItem2 = parameters => {
9
9
  const {
10
10
  runItemPlugins,
11
+ items: {
12
+ onItemClick,
13
+ disabledItemsFocusable,
14
+ indentationAtItemLevel
15
+ },
11
16
  selection: {
12
17
  multiSelect,
13
18
  disableSelection,
@@ -16,8 +21,6 @@ export const useTreeItem2 = parameters => {
16
21
  expansion: {
17
22
  expansionTrigger
18
23
  },
19
- disabledItemsFocusable,
20
- indentationAtItemLevel,
21
24
  instance,
22
25
  publicAPI
23
26
  } = useTreeViewContext();
@@ -31,7 +34,8 @@ export const useTreeItem2 = parameters => {
31
34
  } = parameters;
32
35
  const {
33
36
  rootRef: pluginRootRef,
34
- contentRef
37
+ contentRef,
38
+ propsEnhancers
35
39
  } = runItemPlugins(parameters);
36
40
  const {
37
41
  interactions,
@@ -40,8 +44,11 @@ export const useTreeItem2 = parameters => {
40
44
  itemId,
41
45
  children
42
46
  });
47
+ const rootRefObject = React.useRef(null);
48
+ const contentRefObject = React.useRef(null);
43
49
  const idAttribute = instance.getTreeItemIdAttribute(itemId, id);
44
- const handleRootRef = useForkRef(rootRef, pluginRootRef);
50
+ const handleRootRef = useForkRef(rootRef, pluginRootRef, rootRefObject);
51
+ const handleContentRef = useForkRef(contentRef, contentRefObject);
45
52
  const checkboxRef = React.useRef(null);
46
53
  const createRootHandleFocus = otherHandlers => event => {
47
54
  otherHandlers.onFocus?.(event);
@@ -69,6 +76,7 @@ export const useTreeItem2 = parameters => {
69
76
  };
70
77
  const createContentHandleClick = otherHandlers => event => {
71
78
  otherHandlers.onClick?.(event);
79
+ onItemClick?.(event, itemId);
72
80
  if (event.defaultMuiPrevented || checkboxRef.current?.contains(event.target)) {
73
81
  return;
74
82
  }
@@ -123,7 +131,7 @@ export const useTreeItem2 = parameters => {
123
131
  */
124
132
  ariaSelected = true;
125
133
  }
126
- const response = _extends({}, externalEventHandlers, {
134
+ const props = _extends({}, externalEventHandlers, {
127
135
  ref: handleRootRef,
128
136
  role: 'treeitem',
129
137
  tabIndex: instance.canItemBeTabbed(itemId) ? 0 : -1,
@@ -137,24 +145,34 @@ export const useTreeItem2 = parameters => {
137
145
  onKeyDown: createRootHandleKeyDown(externalEventHandlers)
138
146
  });
139
147
  if (indentationAtItemLevel) {
140
- response.style = {
148
+ props.style = {
141
149
  '--TreeView-itemDepth': typeof depthContext === 'function' ? depthContext(itemId) : depthContext
142
150
  };
143
151
  }
144
- return response;
152
+ const enhancedRootProps = propsEnhancers.root?.({
153
+ rootRefObject,
154
+ contentRefObject,
155
+ externalEventHandlers
156
+ }) ?? {};
157
+ return _extends({}, props, enhancedRootProps);
145
158
  };
146
159
  const getContentProps = (externalProps = {}) => {
147
160
  const externalEventHandlers = extractEventHandlers(externalProps);
148
- const response = _extends({}, externalEventHandlers, externalProps, {
149
- ref: contentRef,
161
+ const props = _extends({}, externalEventHandlers, externalProps, {
162
+ ref: handleContentRef,
150
163
  onClick: createContentHandleClick(externalEventHandlers),
151
164
  onMouseDown: createContentHandleMouseDown(externalEventHandlers),
152
165
  status
153
166
  });
154
167
  if (indentationAtItemLevel) {
155
- response.indentationAtItemLevel = true;
156
- }
157
- return response;
168
+ props.indentationAtItemLevel = true;
169
+ }
170
+ const enhancedContentProps = propsEnhancers.content?.({
171
+ rootRefObject,
172
+ contentRefObject,
173
+ externalEventHandlers
174
+ }) ?? {};
175
+ return _extends({}, props, enhancedContentProps);
158
176
  };
159
177
  const getCheckboxProps = (externalProps = {}) => {
160
178
  const externalEventHandlers = extractEventHandlers(externalProps);
@@ -169,7 +187,7 @@ export const useTreeItem2 = parameters => {
169
187
  });
170
188
  };
171
189
  const getLabelProps = (externalProps = {}) => {
172
- const externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));
190
+ const externalEventHandlers = _extends({}, extractEventHandlers(externalProps));
173
191
  return _extends({}, externalEventHandlers, {
174
192
  children: label
175
193
  }, externalProps);
@@ -194,6 +212,15 @@ export const useTreeItem2 = parameters => {
194
212
  }
195
213
  return response;
196
214
  };
215
+ const getDragAndDropOverlayProps = (externalProps = {}) => {
216
+ const externalEventHandlers = _extends({}, extractEventHandlers(externalProps));
217
+ const enhancedDragAndDropOverlayProps = propsEnhancers.dragAndDropOverlay?.({
218
+ rootRefObject,
219
+ contentRefObject,
220
+ externalEventHandlers
221
+ }) ?? {};
222
+ return _extends({}, externalProps, enhancedDragAndDropOverlayProps);
223
+ };
197
224
  return {
198
225
  getRootProps,
199
226
  getContentProps,
@@ -201,6 +228,7 @@ export const useTreeItem2 = parameters => {
201
228
  getIconContainerProps,
202
229
  getCheckboxProps,
203
230
  getLabelProps,
231
+ getDragAndDropOverlayProps,
204
232
  rootRef: handleRootRef,
205
233
  status,
206
234
  publicAPI
@@ -1,7 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { TreeViewItemId } from '../models';
3
- import { MuiCancellableEventHandler } from '../internals/models/MuiCancellableEvent';
4
- import { TreeViewPublicAPI } from '../internals/models';
3
+ import { TreeViewPublicAPI, MuiCancellableEventHandler } from '../internals/models';
5
4
  import { UseTreeViewSelectionSignature } from '../internals/plugins/useTreeViewSelection';
6
5
  import { UseTreeViewItemsSignature } from '../internals/plugins/useTreeViewItems';
7
6
  import { UseTreeViewFocusSignature } from '../internals/plugins/useTreeViewFocus';
@@ -32,7 +31,7 @@ export interface UseTreeItem2Parameters {
32
31
  */
33
32
  children?: React.ReactNode;
34
33
  }
35
- export interface UseTreeItem2RootSlotOwnProps {
34
+ export interface UseTreeItem2RootSlotPropsFromUseTreeItem {
36
35
  role: 'treeitem';
37
36
  tabIndex: 0 | -1;
38
37
  id: string;
@@ -48,8 +47,10 @@ export interface UseTreeItem2RootSlotOwnProps {
48
47
  */
49
48
  style?: React.CSSProperties;
50
49
  }
50
+ export interface UseTreeItem2RootSlotOwnProps extends UseTreeItem2RootSlotPropsFromUseTreeItem {
51
+ }
51
52
  export type UseTreeItem2RootSlotProps<ExternalProps = {}> = ExternalProps & UseTreeItem2RootSlotOwnProps;
52
- export interface UseTreeItem2ContentSlotOwnProps {
53
+ export interface UseTreeItem2ContentSlotPropsFromUseTreeItem {
53
54
  onClick: MuiCancellableEventHandler<React.MouseEvent>;
54
55
  onMouseDown: MuiCancellableEventHandler<React.MouseEvent>;
55
56
  ref: React.RefCallback<HTMLDivElement> | null;
@@ -59,6 +60,8 @@ export interface UseTreeItem2ContentSlotOwnProps {
59
60
  */
60
61
  indentationAtItemLevel?: true;
61
62
  }
63
+ export interface UseTreeItem2ContentSlotOwnProps extends UseTreeItem2ContentSlotPropsFromUseTreeItem {
64
+ }
62
65
  export type UseTreeItem2ContentSlotProps<ExternalProps = {}> = ExternalProps & UseTreeItem2ContentSlotOwnProps;
63
66
  export interface UseTreeItem2IconContainerSlotOwnProps {
64
67
  onClick: MuiCancellableEventHandler<React.MouseEvent>;
@@ -89,6 +92,9 @@ export interface UseTreeItem2GroupTransitionSlotOwnProps {
89
92
  indentationAtItemLevel?: true;
90
93
  }
91
94
  export type UseTreeItem2GroupTransitionSlotProps<ExternalProps = {}> = ExternalProps & UseTreeItem2GroupTransitionSlotOwnProps;
95
+ export interface UseTreeItem2DragAndDropOverlaySlotOwnProps {
96
+ }
97
+ export type UseTreeItem2DragAndDropOverlaySlotProps<ExternalProps = {}> = ExternalProps & UseTreeItem2DragAndDropOverlaySlotOwnProps;
92
98
  export interface UseTreeItem2Status {
93
99
  expandable: boolean;
94
100
  expanded: boolean;
@@ -133,6 +139,13 @@ export interface UseTreeItem2ReturnValue<TSignatures extends UseTreeItem2Minimal
133
139
  * @returns {UseTreeItem2GroupTransitionSlotProps<ExternalProps>} Props that should be spread on the GroupTransition slot
134
140
  */
135
141
  getGroupTransitionProps: <ExternalProps extends Record<string, any> = {}>(externalProps?: ExternalProps) => UseTreeItem2GroupTransitionSlotProps<ExternalProps>;
142
+ /**
143
+ * Resolver for the DragAndDropOverlay slot's props.
144
+ * Warning: This slot is only useful when using the `RichTreeViewPro` component.
145
+ * @param {ExternalProps} externalProps Additional props for the DragAndDropOverlay slot
146
+ * @returns {UseTreeItem2DragAndDropOverlaySlotProps<ExternalProps>} Props that should be spread on the DragAndDropOverlay slot
147
+ */
148
+ getDragAndDropOverlayProps: <ExternalProps extends Record<string, any> = {}>(externalProps?: ExternalProps) => UseTreeItem2DragAndDropOverlaySlotProps<ExternalProps>;
136
149
  /**
137
150
  * A ref to the component's root DOM element.
138
151
  */