@mui/x-tree-view 7.22.1 → 8.0.0-alpha.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 (196) hide show
  1. package/CHANGELOG.md +143 -92
  2. package/README.md +2 -2
  3. package/RichTreeView/RichTreeView.js +20 -1
  4. package/RichTreeView/RichTreeView.types.d.ts +4 -4
  5. package/SimpleTreeView/SimpleTreeView.js +21 -3
  6. package/TreeItem/TreeItem.d.ts +20 -2
  7. package/TreeItem/TreeItem.js +238 -368
  8. package/TreeItem/TreeItem.types.d.ts +51 -86
  9. package/TreeItem/index.d.ts +1 -4
  10. package/TreeItem/index.js +2 -4
  11. package/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.d.ts +7 -0
  12. package/{modern/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js} +8 -6
  13. package/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.d.ts → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.d.ts} +1 -1
  14. package/TreeItemDragAndDropOverlay/index.d.ts +2 -0
  15. package/TreeItemDragAndDropOverlay/index.js +1 -0
  16. package/{TreeItem2LabelInput → TreeItemDragAndDropOverlay}/package.json +1 -1
  17. package/TreeItemIcon/TreeItemIcon.d.ts +7 -0
  18. package/{TreeItem2Icon/TreeItem2Icon.js → TreeItemIcon/TreeItemIcon.js} +5 -3
  19. package/{TreeItem2Icon/TreeItem2Icon.types.d.ts → TreeItemIcon/TreeItemIcon.types.d.ts} +7 -7
  20. package/TreeItemIcon/index.d.ts +2 -0
  21. package/TreeItemIcon/index.js +1 -0
  22. package/{useTreeItem2 → TreeItemIcon}/package.json +1 -1
  23. package/TreeItemLabelInput/TreeItemLabelInput.d.ts +5 -0
  24. package/{TreeItem2LabelInput/TreeItem2LabelInput.js → TreeItemLabelInput/TreeItemLabelInput.js} +3 -3
  25. package/{TreeItem2LabelInput/TreeItem2LabelInput.types.d.ts → TreeItemLabelInput/TreeItemLabelInput.types.d.ts} +1 -1
  26. package/TreeItemLabelInput/index.d.ts +2 -0
  27. package/TreeItemLabelInput/index.js +1 -0
  28. package/{TreeItem2Provider → TreeItemLabelInput}/package.json +1 -1
  29. package/TreeItemProvider/TreeItemProvider.d.ts +9 -0
  30. package/{TreeItem2Provider/TreeItem2Provider.js → TreeItemProvider/TreeItemProvider.js} +7 -3
  31. package/{TreeItem2Provider/TreeItem2Provider.types.d.ts → TreeItemProvider/TreeItemProvider.types.d.ts} +1 -1
  32. package/TreeItemProvider/index.d.ts +2 -0
  33. package/TreeItemProvider/index.js +1 -0
  34. package/{TreeItem2Icon → TreeItemProvider}/package.json +1 -1
  35. package/hooks/index.d.ts +1 -1
  36. package/hooks/index.js +1 -1
  37. package/hooks/useTreeItemUtils/index.d.ts +1 -0
  38. package/hooks/useTreeItemUtils/index.js +1 -0
  39. package/hooks/{useTreeItem2Utils/useTreeItem2Utils.d.ts → useTreeItemUtils/useTreeItemUtils.d.ts} +11 -11
  40. package/{modern/hooks/useTreeItem2Utils/useTreeItem2Utils.js → hooks/useTreeItemUtils/useTreeItemUtils.js} +5 -3
  41. package/index.d.ts +5 -7
  42. package/index.js +6 -8
  43. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +2 -1
  44. package/internals/components/RichTreeViewItems.d.ts +1 -2
  45. package/internals/index.d.ts +1 -1
  46. package/internals/models/helpers.d.ts +0 -2
  47. package/internals/models/itemPlugin.d.ts +11 -8
  48. package/internals/models/plugin.d.ts +1 -1
  49. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +2 -1
  50. package/internals/plugins/useTreeViewItems/useTreeViewItems.js +2 -4
  51. package/internals/plugins/useTreeViewItems/useTreeViewItems.types.d.ts +3 -5
  52. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.itemPlugin.d.ts +1 -1
  53. package/internals/plugins/useTreeViewLabel/useTreeViewLabel.types.d.ts +6 -5
  54. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.d.ts +2 -0
  55. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +86 -0
  56. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +43 -18
  57. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +33 -3
  58. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.d.ts +20 -1
  59. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +95 -0
  60. package/models/items.d.ts +4 -0
  61. package/modern/RichTreeView/RichTreeView.js +20 -1
  62. package/modern/SimpleTreeView/SimpleTreeView.js +21 -3
  63. package/modern/TreeItem/TreeItem.js +238 -368
  64. package/modern/TreeItem/index.js +2 -4
  65. package/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js → modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js} +8 -6
  66. package/modern/TreeItemDragAndDropOverlay/index.js +1 -0
  67. package/modern/{TreeItem2Icon/TreeItem2Icon.js → TreeItemIcon/TreeItemIcon.js} +5 -3
  68. package/modern/TreeItemIcon/index.js +1 -0
  69. package/modern/{TreeItem2LabelInput/TreeItem2LabelInput.js → TreeItemLabelInput/TreeItemLabelInput.js} +3 -3
  70. package/modern/TreeItemLabelInput/index.js +1 -0
  71. package/modern/{TreeItem2Provider/TreeItem2Provider.js → TreeItemProvider/TreeItemProvider.js} +7 -3
  72. package/modern/TreeItemProvider/index.js +1 -0
  73. package/modern/hooks/index.js +1 -1
  74. package/modern/hooks/useTreeItemUtils/index.js +1 -0
  75. package/{hooks/useTreeItem2Utils/useTreeItem2Utils.js → modern/hooks/useTreeItemUtils/useTreeItemUtils.js} +5 -3
  76. package/modern/index.js +6 -8
  77. package/modern/internals/plugins/useTreeViewItems/useTreeViewItems.js +2 -4
  78. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +86 -0
  79. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +43 -18
  80. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +95 -0
  81. package/modern/useTreeItem/index.js +1 -0
  82. package/modern/{useTreeItem2/useTreeItem2.js → useTreeItem/useTreeItem.js} +21 -42
  83. package/node/RichTreeView/RichTreeView.js +20 -1
  84. package/node/SimpleTreeView/SimpleTreeView.js +21 -3
  85. package/node/TreeItem/TreeItem.js +239 -369
  86. package/node/TreeItem/index.js +38 -16
  87. package/node/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.js} +7 -6
  88. package/node/TreeItemDragAndDropOverlay/index.js +12 -0
  89. package/node/{TreeItem2Icon/TreeItem2Icon.js → TreeItemIcon/TreeItemIcon.js} +4 -3
  90. package/node/TreeItemIcon/index.js +12 -0
  91. package/node/{TreeItem2LabelInput/TreeItem2LabelInput.js → TreeItemLabelInput/TreeItemLabelInput.js} +3 -3
  92. package/node/TreeItemLabelInput/index.js +12 -0
  93. package/node/{TreeItem2Provider/TreeItem2Provider.js → TreeItemProvider/TreeItemProvider.js} +6 -3
  94. package/node/TreeItemProvider/index.js +12 -0
  95. package/node/hooks/index.js +3 -3
  96. package/node/hooks/useTreeItemUtils/index.js +12 -0
  97. package/node/hooks/{useTreeItem2Utils/useTreeItem2Utils.js → useTreeItemUtils/useTreeItemUtils.js} +6 -5
  98. package/node/index.js +18 -42
  99. package/node/internals/plugins/useTreeViewItems/useTreeViewItems.js +2 -4
  100. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.itemPlugin.js +94 -0
  101. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +42 -17
  102. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.utils.js +99 -2
  103. package/node/useTreeItem/index.js +12 -0
  104. package/node/{useTreeItem2/useTreeItem2.js → useTreeItem/useTreeItem.js} +22 -44
  105. package/package.json +3 -3
  106. package/themeAugmentation/components.d.ts +0 -10
  107. package/themeAugmentation/overrides.d.ts +0 -3
  108. package/themeAugmentation/props.d.ts +1 -5
  109. package/useTreeItem/index.d.ts +2 -0
  110. package/useTreeItem/index.js +1 -0
  111. package/{TreeItem2 → useTreeItem}/package.json +1 -1
  112. package/useTreeItem/useTreeItem.d.ts +2 -0
  113. package/{useTreeItem2/useTreeItem2.js → useTreeItem/useTreeItem.js} +21 -42
  114. package/{useTreeItem2/useTreeItem2.types.d.ts → useTreeItem/useTreeItem.types.d.ts} +42 -58
  115. package/TreeItem/TreeItemContent.d.ts +0 -61
  116. package/TreeItem/TreeItemContent.js +0 -146
  117. package/TreeItem/useTreeItemState.d.ts +0 -21
  118. package/TreeItem/useTreeItemState.js +0 -143
  119. package/TreeItem2/TreeItem2.d.ts +0 -34
  120. package/TreeItem2/TreeItem2.js +0 -387
  121. package/TreeItem2/TreeItem2.types.d.ts +0 -92
  122. package/TreeItem2/index.d.ts +0 -2
  123. package/TreeItem2/index.js +0 -1
  124. package/TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.d.ts +0 -7
  125. package/TreeItem2DragAndDropOverlay/index.d.ts +0 -2
  126. package/TreeItem2DragAndDropOverlay/index.js +0 -1
  127. package/TreeItem2DragAndDropOverlay/package.json +0 -6
  128. package/TreeItem2Icon/TreeItem2Icon.d.ts +0 -7
  129. package/TreeItem2Icon/index.d.ts +0 -2
  130. package/TreeItem2Icon/index.js +0 -1
  131. package/TreeItem2LabelInput/TreeItem2LabelInput.d.ts +0 -5
  132. package/TreeItem2LabelInput/index.d.ts +0 -2
  133. package/TreeItem2LabelInput/index.js +0 -1
  134. package/TreeItem2Provider/TreeItem2Provider.d.ts +0 -6
  135. package/TreeItem2Provider/index.d.ts +0 -2
  136. package/TreeItem2Provider/index.js +0 -1
  137. package/TreeView/TreeView.d.ts +0 -21
  138. package/TreeView/TreeView.js +0 -211
  139. package/TreeView/TreeView.types.d.ts +0 -9
  140. package/TreeView/index.d.ts +0 -3
  141. package/TreeView/index.js +0 -3
  142. package/TreeView/package.json +0 -6
  143. package/TreeView/treeViewClasses.d.ts +0 -7
  144. package/TreeView/treeViewClasses.js +0 -6
  145. package/hooks/useTreeItem2Utils/index.d.ts +0 -1
  146. package/hooks/useTreeItem2Utils/index.js +0 -1
  147. package/modern/TreeItem/TreeItemContent.js +0 -146
  148. package/modern/TreeItem/useTreeItemState.js +0 -143
  149. package/modern/TreeItem2/TreeItem2.js +0 -387
  150. package/modern/TreeItem2/index.js +0 -1
  151. package/modern/TreeItem2DragAndDropOverlay/index.js +0 -1
  152. package/modern/TreeItem2Icon/index.js +0 -1
  153. package/modern/TreeItem2LabelInput/index.js +0 -1
  154. package/modern/TreeItem2Provider/TreeItem2Provider.types.js +0 -1
  155. package/modern/TreeItem2Provider/index.js +0 -1
  156. package/modern/TreeView/TreeView.js +0 -211
  157. package/modern/TreeView/TreeView.types.js +0 -1
  158. package/modern/TreeView/index.js +0 -3
  159. package/modern/TreeView/treeViewClasses.js +0 -6
  160. package/modern/hooks/useTreeItem2Utils/index.js +0 -1
  161. package/modern/useTreeItem2/index.js +0 -4
  162. package/modern/useTreeItem2/useTreeItem2.types.js +0 -1
  163. package/node/TreeItem/TreeItemContent.js +0 -153
  164. package/node/TreeItem/useTreeItemState.js +0 -148
  165. package/node/TreeItem2/TreeItem2.js +0 -394
  166. package/node/TreeItem2/index.js +0 -48
  167. package/node/TreeItem2DragAndDropOverlay/index.js +0 -12
  168. package/node/TreeItem2Icon/index.js +0 -12
  169. package/node/TreeItem2LabelInput/index.js +0 -12
  170. package/node/TreeItem2Provider/index.js +0 -12
  171. package/node/TreeView/TreeView.js +0 -217
  172. package/node/TreeView/TreeView.types.js +0 -5
  173. package/node/TreeView/index.js +0 -27
  174. package/node/TreeView/treeViewClasses.js +0 -14
  175. package/node/hooks/useTreeItem2Utils/index.js +0 -12
  176. package/node/useTreeItem2/index.js +0 -10
  177. package/node/useTreeItem2/useTreeItem2.types.js +0 -5
  178. package/useTreeItem2/index.d.ts +0 -3
  179. package/useTreeItem2/index.js +0 -4
  180. package/useTreeItem2/useTreeItem2.d.ts +0 -2
  181. package/useTreeItem2/useTreeItem2.types.js +0 -1
  182. /package/{TreeItem2/TreeItem2.types.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js} +0 -0
  183. /package/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js → TreeItemIcon/TreeItemIcon.types.js} +0 -0
  184. /package/{TreeItem2Icon/TreeItem2Icon.types.js → TreeItemLabelInput/TreeItemLabelInput.types.js} +0 -0
  185. /package/{TreeItem2LabelInput/TreeItem2LabelInput.types.js → TreeItemProvider/TreeItemProvider.types.js} +0 -0
  186. /package/{TreeItem2Provider/TreeItem2Provider.types.js → modern/TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js} +0 -0
  187. /package/{TreeView/TreeView.types.js → modern/TreeItemIcon/TreeItemIcon.types.js} +0 -0
  188. /package/modern/{TreeItem2/TreeItem2.types.js → TreeItemLabelInput/TreeItemLabelInput.types.js} +0 -0
  189. /package/modern/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js → TreeItemProvider/TreeItemProvider.types.js} +0 -0
  190. /package/modern/{TreeItem2Icon/TreeItem2Icon.types.js → useTreeItem/useTreeItem.types.js} +0 -0
  191. /package/node/{TreeItem2/TreeItem2.types.js → TreeItemDragAndDropOverlay/TreeItemDragAndDropOverlay.types.js} +0 -0
  192. /package/node/{TreeItem2DragAndDropOverlay/TreeItem2DragAndDropOverlay.types.js → TreeItemIcon/TreeItemIcon.types.js} +0 -0
  193. /package/node/{TreeItem2Icon/TreeItem2Icon.types.js → TreeItemLabelInput/TreeItemLabelInput.types.js} +0 -0
  194. /package/node/{TreeItem2LabelInput/TreeItem2LabelInput.types.js → TreeItemProvider/TreeItemProvider.types.js} +0 -0
  195. /package/node/{TreeItem2Provider/TreeItem2Provider.types.js → useTreeItem/useTreeItem.types.js} +0 -0
  196. /package/{modern/TreeItem2LabelInput/TreeItem2LabelInput.types.js → useTreeItem/useTreeItem.types.js} +0 -0
@@ -6,61 +6,31 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
6
6
  Object.defineProperty(exports, "__esModule", {
7
7
  value: true
8
8
  });
9
- exports.TreeItem = void 0;
9
+ exports.TreeItemRoot = exports.TreeItemLabel = exports.TreeItemIconContainer = exports.TreeItemGroupTransition = exports.TreeItemContent = exports.TreeItemCheckbox = exports.TreeItem = void 0;
10
10
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
11
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
12
  var React = _interopRequireWildcard(require("react"));
13
13
  var _propTypes = _interopRequireDefault(require("prop-types"));
14
14
  var _clsx = _interopRequireDefault(require("clsx"));
15
+ var _unsupportedProp = _interopRequireDefault(require("@mui/utils/unsupportedProp"));
16
+ var _styles = require("@mui/material/styles");
15
17
  var _Collapse = _interopRequireDefault(require("@mui/material/Collapse"));
16
- var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
18
+ var _Checkbox = _interopRequireDefault(require("@mui/material/Checkbox"));
19
+ var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
17
20
  var _createStyled = require("@mui/system/createStyled");
18
- var _styles = require("@mui/material/styles");
19
21
  var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
20
- var _extractEventHandlers = _interopRequireDefault(require("@mui/utils/extractEventHandlers"));
21
- var _resolveComponentProps = _interopRequireDefault(require("@mui/utils/resolveComponentProps"));
22
- var _useSlotProps4 = _interopRequireDefault(require("@mui/utils/useSlotProps"));
23
- var _unsupportedProp = _interopRequireDefault(require("@mui/utils/unsupportedProp"));
24
- var _elementTypeAcceptingRef = _interopRequireDefault(require("@mui/utils/elementTypeAcceptingRef"));
25
- var _warning = require("@mui/x-internals/warning");
26
22
  var _zeroStyled = require("../internals/zero-styled");
27
- var _TreeItemContent = require("./TreeItemContent");
23
+ var _useTreeItem = require("../useTreeItem");
28
24
  var _treeItemClasses = require("./treeItemClasses");
29
- var _TreeViewProvider = require("../internals/TreeViewProvider");
30
- var _icons = require("../icons");
31
- var _TreeItem2Provider = require("../TreeItem2Provider");
32
- var _TreeViewItemDepthContext = require("../internals/TreeViewItemDepthContext");
33
- var _useTreeItemState = require("./useTreeItemState");
34
- var _tree = require("../internals/utils/tree");
35
- var _useTreeViewId = require("../internals/corePlugins/useTreeViewId/useTreeViewId.utils");
25
+ var _TreeItemIcon = require("../TreeItemIcon");
26
+ var _TreeItemDragAndDropOverlay = require("../TreeItemDragAndDropOverlay");
27
+ var _TreeItemProvider = require("../TreeItemProvider");
28
+ var _TreeItemLabelInput = require("../TreeItemLabelInput");
36
29
  var _jsxRuntime = require("react/jsx-runtime");
37
- const _excluded = ["children", "className", "slots", "slotProps", "ContentComponent", "ContentProps", "itemId", "id", "label", "onClick", "onMouseDown", "onFocus", "onBlur", "onKeyDown"],
38
- _excluded2 = ["ownerState"],
39
- _excluded3 = ["ownerState"],
40
- _excluded4 = ["ownerState"];
30
+ const _excluded = ["visible"],
31
+ _excluded2 = ["id", "itemId", "label", "disabled", "children", "slots", "slotProps"];
41
32
  const useThemeProps = (0, _zeroStyled.createUseThemeProps)('MuiTreeItem');
42
- const useUtilityClasses = ownerState => {
43
- const {
44
- classes
45
- } = ownerState;
46
- const slots = {
47
- root: ['root'],
48
- content: ['content'],
49
- expanded: ['expanded'],
50
- selected: ['selected'],
51
- focused: ['focused'],
52
- disabled: ['disabled'],
53
- iconContainer: ['iconContainer'],
54
- checkbox: ['checkbox'],
55
- label: ['label'],
56
- labelInput: ['labelInput'],
57
- editing: ['editing'],
58
- editable: ['editable'],
59
- groupTransition: ['groupTransition']
60
- };
61
- return (0, _composeClasses.default)(slots, _treeItemClasses.getTreeItemUtilityClass, classes);
62
- };
63
- const TreeItemRoot = (0, _zeroStyled.styled)('li', {
33
+ const TreeItemRoot = exports.TreeItemRoot = (0, _zeroStyled.styled)('li', {
64
34
  name: 'MuiTreeItem',
65
35
  slot: 'Root',
66
36
  overridesResolver: (props, styles) => styles.root
@@ -70,21 +40,16 @@ const TreeItemRoot = (0, _zeroStyled.styled)('li', {
70
40
  padding: 0,
71
41
  outline: 0
72
42
  });
73
- const StyledTreeItemContent = (0, _zeroStyled.styled)(_TreeItemContent.TreeItemContent, {
43
+ const TreeItemContent = exports.TreeItemContent = (0, _zeroStyled.styled)('div', {
74
44
  name: 'MuiTreeItem',
75
45
  slot: 'Content',
76
- overridesResolver: (props, styles) => {
77
- return [styles.content, styles.iconContainer && {
78
- [`& .${_treeItemClasses.treeItemClasses.iconContainer}`]: styles.iconContainer
79
- }, styles.label && {
80
- [`& .${_treeItemClasses.treeItemClasses.label}`]: styles.label
81
- }];
82
- },
83
- shouldForwardProp: prop => (0, _createStyled.shouldForwardProp)(prop) && prop !== 'indentationAtItemLevel'
46
+ overridesResolver: (props, styles) => styles.content,
47
+ shouldForwardProp: prop => (0, _createStyled.shouldForwardProp)(prop) && prop !== 'status'
84
48
  })(({
85
49
  theme
86
50
  }) => ({
87
51
  padding: theme.spacing(0.5, 1),
52
+ paddingLeft: `calc(${theme.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`,
88
53
  borderRadius: theme.shape.borderRadius,
89
54
  width: '100%',
90
55
  boxSizing: 'border-box',
@@ -102,74 +67,130 @@ const StyledTreeItemContent = (0, _zeroStyled.styled)(_TreeItemContent.TreeItemC
102
67
  backgroundColor: 'transparent'
103
68
  }
104
69
  },
105
- [`&.${_treeItemClasses.treeItemClasses.disabled}`]: {
106
- opacity: (theme.vars || theme).palette.action.disabledOpacity,
107
- backgroundColor: 'transparent'
108
- },
109
- [`&.${_treeItemClasses.treeItemClasses.focused}`]: {
110
- backgroundColor: (theme.vars || theme).palette.action.focus
111
- },
112
- [`&.${_treeItemClasses.treeItemClasses.selected}`]: {
113
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity),
114
- '&:hover': {
115
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
116
- // Reset on touch devices, it doesn't add specificity
117
- '@media (hover: none)': {
118
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity)
70
+ variants: [{
71
+ props: ({
72
+ status
73
+ }) => status.disabled,
74
+ style: {
75
+ opacity: (theme.vars || theme).palette.action.disabledOpacity,
76
+ backgroundColor: 'transparent'
77
+ }
78
+ }, {
79
+ props: ({
80
+ status
81
+ }) => status.focused,
82
+ style: {
83
+ backgroundColor: (theme.vars || theme).palette.action.focus
84
+ }
85
+ }, {
86
+ props: ({
87
+ status
88
+ }) => status.selected,
89
+ style: {
90
+ backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity),
91
+ '&:hover': {
92
+ backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.hoverOpacity}))` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.hoverOpacity),
93
+ // Reset on touch devices, it doesn't add specificity
94
+ '@media (hover: none)': {
95
+ backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / ${theme.vars.palette.action.selectedOpacity})` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity)
96
+ }
119
97
  }
120
- },
121
- [`&.${_treeItemClasses.treeItemClasses.focused}`]: {
122
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
123
98
  }
124
- },
125
- [`& .${_treeItemClasses.treeItemClasses.iconContainer}`]: {
126
- width: 16,
127
- display: 'flex',
128
- flexShrink: 0,
129
- justifyContent: 'center',
130
- '& svg': {
131
- fontSize: 18
99
+ }, {
100
+ props: ({
101
+ status
102
+ }) => status.selected && status.focused,
103
+ style: {
104
+ backgroundColor: theme.vars ? `rgba(${theme.vars.palette.primary.mainChannel} / calc(${theme.vars.palette.action.selectedOpacity} + ${theme.vars.palette.action.focusOpacity}))` : (0, _styles.alpha)(theme.palette.primary.main, theme.palette.action.selectedOpacity + theme.palette.action.focusOpacity)
132
105
  }
133
- },
134
- [`& .${_treeItemClasses.treeItemClasses.label}`]: (0, _extends2.default)({
135
- width: '100%',
136
- boxSizing: 'border-box',
137
- // prevent width + padding to overflow
138
- // fixes overflow - see https://github.com/mui/material-ui/issues/27372
139
- minWidth: 0,
140
- position: 'relative'
141
- }, theme.typography.body1),
142
- [`& .${_treeItemClasses.treeItemClasses.checkbox}`]: {
143
- padding: 0
144
- },
106
+ }]
107
+ }));
108
+ const TreeItemLabel = exports.TreeItemLabel = (0, _zeroStyled.styled)('div', {
109
+ name: 'MuiTreeItem',
110
+ slot: 'Label',
111
+ overridesResolver: (props, styles) => styles.label,
112
+ shouldForwardProp: prop => (0, _createStyled.shouldForwardProp)(prop) && prop !== 'editable'
113
+ })(({
114
+ theme
115
+ }) => (0, _extends2.default)({
116
+ width: '100%',
117
+ boxSizing: 'border-box',
118
+ // prevent width + padding to overflow
119
+ // fixes overflow - see https://github.com/mui/material-ui/issues/27372
120
+ minWidth: 0,
121
+ position: 'relative',
122
+ overflow: 'hidden'
123
+ }, theme.typography.body1, {
145
124
  variants: [{
146
- props: {
147
- indentationAtItemLevel: true
148
- },
125
+ props: ({
126
+ editable
127
+ }) => editable,
149
128
  style: {
150
- paddingLeft: `calc(${theme.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth))`
129
+ paddingLeft: '2px'
151
130
  }
152
131
  }]
153
132
  }));
154
- const TreeItemGroup = (0, _zeroStyled.styled)(_Collapse.default, {
133
+ const TreeItemIconContainer = exports.TreeItemIconContainer = (0, _zeroStyled.styled)('div', {
134
+ name: 'MuiTreeItem',
135
+ slot: 'IconContainer',
136
+ overridesResolver: (props, styles) => styles.iconContainer
137
+ })({
138
+ width: 16,
139
+ display: 'flex',
140
+ flexShrink: 0,
141
+ justifyContent: 'center',
142
+ '& svg': {
143
+ fontSize: 18
144
+ }
145
+ });
146
+ const TreeItemGroupTransition = exports.TreeItemGroupTransition = (0, _zeroStyled.styled)(_Collapse.default, {
155
147
  name: 'MuiTreeItem',
156
148
  slot: 'GroupTransition',
157
- overridesResolver: (props, styles) => styles.groupTransition,
158
- shouldForwardProp: prop => (0, _createStyled.shouldForwardProp)(prop) && prop !== 'indentationAtItemLevel'
149
+ overridesResolver: (props, styles) => styles.groupTransition
159
150
  })({
160
151
  margin: 0,
161
- padding: 0,
162
- paddingLeft: 'var(--TreeView-itemChildrenIndentation)',
163
- variants: [{
164
- props: {
165
- indentationAtItemLevel: true
166
- },
167
- style: {
168
- paddingLeft: 0
169
- }
170
- }]
152
+ padding: 0
171
153
  });
172
-
154
+ const TreeItemCheckbox = exports.TreeItemCheckbox = (0, _zeroStyled.styled)(/*#__PURE__*/React.forwardRef((props, ref) => {
155
+ const {
156
+ visible
157
+ } = props,
158
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
159
+ if (!visible) {
160
+ return null;
161
+ }
162
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_Checkbox.default, (0, _extends2.default)({}, other, {
163
+ ref: ref
164
+ }));
165
+ }), {
166
+ name: 'MuiTreeItem',
167
+ slot: 'Checkbox',
168
+ overridesResolver: (props, styles) => styles.checkbox
169
+ })({
170
+ padding: 0
171
+ });
172
+ const useUtilityClasses = ownerState => {
173
+ const {
174
+ classes
175
+ } = ownerState;
176
+ const slots = {
177
+ root: ['root'],
178
+ content: ['content'],
179
+ expanded: ['expanded'],
180
+ editing: ['editing'],
181
+ editable: ['editable'],
182
+ selected: ['selected'],
183
+ focused: ['focused'],
184
+ disabled: ['disabled'],
185
+ iconContainer: ['iconContainer'],
186
+ checkbox: ['checkbox'],
187
+ label: ['label'],
188
+ groupTransition: ['groupTransition'],
189
+ labelInput: ['labelInput'],
190
+ dragAndDropOverlay: ['dragAndDropOverlay']
191
+ };
192
+ return (0, _composeClasses.default)(slots, _treeItemClasses.getTreeItemUtilityClass, classes);
193
+ };
173
194
  /**
174
195
  *
175
196
  * Demos:
@@ -178,269 +199,124 @@ const TreeItemGroup = (0, _zeroStyled.styled)(_Collapse.default, {
178
199
  *
179
200
  * API:
180
201
  *
181
- * - [TreeItem API](https://mui.com/x/api/tree-view/tree-item/)
202
+ * - [TreeItem API](https://mui.com/x/api/tree-view/tree-item-2/)
182
203
  */
183
- const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps, inRef) {
184
- const {
185
- icons: contextIcons,
186
- runItemPlugins,
187
- items: {
188
- disabledItemsFocusable,
189
- indentationAtItemLevel
190
- },
191
- selection: {
192
- disableSelection
193
- },
194
- expansion: {
195
- expansionTrigger
196
- },
197
- treeId,
198
- instance
199
- } = (0, _TreeViewProvider.useTreeViewContext)();
200
- const depthContext = React.useContext(_TreeViewItemDepthContext.TreeViewItemDepthContext);
204
+ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps, forwardedRef) {
201
205
  const props = useThemeProps({
202
206
  props: inProps,
203
207
  name: 'MuiTreeItem'
204
208
  });
205
209
  const {
206
- children,
207
- className,
208
- slots: inSlots,
209
- slotProps: inSlotProps,
210
- ContentComponent = _TreeItemContent.TreeItemContent,
211
- ContentProps,
212
- itemId,
213
210
  id,
211
+ itemId,
214
212
  label,
215
- onClick,
216
- onMouseDown,
217
- onBlur,
218
- onKeyDown
213
+ disabled,
214
+ children,
215
+ slots = {},
216
+ slotProps = {}
219
217
  } = props,
220
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
221
- const {
222
- expanded,
223
- focused,
224
- selected,
225
- disabled,
226
- editing,
227
- handleExpansion,
228
- handleCancelItemLabelEditing,
229
- handleSaveItemLabel
230
- } = (0, _useTreeItemState.useTreeItemState)(itemId);
231
- if (process.env.NODE_ENV !== 'production') {
232
- // Checking directly the `props` to avoid having the default value applied
233
- if (props.ContentComponent) {
234
- (0, _warning.warnOnce)(['MUI X: The ContentComponent prop of the TreeItem component is deprecated and will be removed in the next major release.', 'You can use the new TreeItem2 component or the new useTreeItem2 hook to customize the rendering of the content.', 'For more detail, see https://mui.com/x/react-tree-view/tree-item-customization/.']);
235
- }
236
- if (props.ContentProps) {
237
- (0, _warning.warnOnce)(['MUI X: The ContentProps prop of the TreeItem component is deprecated and will be removed in the next major release.', 'You can use the new TreeItem2 component or the new useTreeItem2 hook to customize the rendering of the content.', 'For more detail, see https://mui.com/x/react-tree-view/tree-item-customization/.']);
238
- }
239
- }
218
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded2);
240
219
  const {
241
- contentRef,
242
- rootRef,
243
- propsEnhancers
244
- } = runItemPlugins(props);
245
- const rootRefObject = React.useRef(null);
246
- const contentRefObject = React.useRef(null);
247
- const handleRootRef = (0, _useForkRef.default)(inRef, rootRef, rootRefObject);
248
- const handleContentRef = (0, _useForkRef.default)(ContentProps?.ref, contentRef, contentRefObject);
249
- const slots = {
250
- expandIcon: inSlots?.expandIcon ?? contextIcons.slots.expandIcon ?? _icons.TreeViewExpandIcon,
251
- collapseIcon: inSlots?.collapseIcon ?? contextIcons.slots.collapseIcon ?? _icons.TreeViewCollapseIcon,
252
- endIcon: inSlots?.endIcon ?? contextIcons.slots.endIcon,
253
- icon: inSlots?.icon,
254
- groupTransition: inSlots?.groupTransition
255
- };
256
- const isExpandable = reactChildren => {
257
- if (Array.isArray(reactChildren)) {
258
- return reactChildren.length > 0 && reactChildren.some(isExpandable);
259
- }
260
- return Boolean(reactChildren);
261
- };
262
- const expandable = isExpandable(children);
263
- const ownerState = (0, _extends2.default)({}, props, {
264
- expanded,
265
- focused,
266
- selected,
267
- disabled,
268
- indentationAtItemLevel
220
+ getRootProps,
221
+ getContentProps,
222
+ getIconContainerProps,
223
+ getCheckboxProps,
224
+ getLabelProps,
225
+ getGroupTransitionProps,
226
+ getLabelInputProps,
227
+ getDragAndDropOverlayProps,
228
+ status
229
+ } = (0, _useTreeItem.useTreeItem)({
230
+ id,
231
+ itemId,
232
+ children,
233
+ label,
234
+ disabled
269
235
  });
236
+ const ownerState = (0, _extends2.default)({}, props, status);
270
237
  const classes = useUtilityClasses(ownerState);
238
+ const Root = slots.root ?? TreeItemRoot;
239
+ const rootProps = (0, _useSlotProps.default)({
240
+ elementType: Root,
241
+ getSlotProps: getRootProps,
242
+ externalForwardedProps: other,
243
+ externalSlotProps: slotProps.root,
244
+ additionalProps: {
245
+ ref: forwardedRef
246
+ },
247
+ ownerState: {},
248
+ className: classes.root
249
+ });
250
+ const Content = slots.content ?? TreeItemContent;
251
+ const contentProps = (0, _useSlotProps.default)({
252
+ elementType: Content,
253
+ getSlotProps: getContentProps,
254
+ externalSlotProps: slotProps.content,
255
+ ownerState: {},
256
+ className: (0, _clsx.default)(classes.content, status.expanded && classes.expanded, status.selected && classes.selected, status.focused && classes.focused, status.disabled && classes.disabled, status.editing && classes.editing, status.editable && classes.editable)
257
+ });
258
+ const IconContainer = slots.iconContainer ?? TreeItemIconContainer;
259
+ const iconContainerProps = (0, _useSlotProps.default)({
260
+ elementType: IconContainer,
261
+ getSlotProps: getIconContainerProps,
262
+ externalSlotProps: slotProps.iconContainer,
263
+ ownerState: {},
264
+ className: classes.iconContainer
265
+ });
266
+ const Label = slots.label ?? TreeItemLabel;
267
+ const labelProps = (0, _useSlotProps.default)({
268
+ elementType: Label,
269
+ getSlotProps: getLabelProps,
270
+ externalSlotProps: slotProps.label,
271
+ ownerState: {},
272
+ className: classes.label
273
+ });
274
+ const Checkbox = slots.checkbox ?? TreeItemCheckbox;
275
+ const checkboxProps = (0, _useSlotProps.default)({
276
+ elementType: Checkbox,
277
+ getSlotProps: getCheckboxProps,
278
+ externalSlotProps: slotProps.checkbox,
279
+ ownerState: {},
280
+ className: classes.checkbox
281
+ });
271
282
  const GroupTransition = slots.groupTransition ?? undefined;
272
- const groupTransitionProps = (0, _useSlotProps4.default)({
283
+ const groupTransitionProps = (0, _useSlotProps.default)({
273
284
  elementType: GroupTransition,
285
+ getSlotProps: getGroupTransitionProps,
286
+ externalSlotProps: slotProps.groupTransition,
274
287
  ownerState: {},
275
- externalSlotProps: inSlotProps?.groupTransition,
276
- additionalProps: (0, _extends2.default)({
277
- unmountOnExit: true,
278
- in: expanded,
279
- component: 'ul',
280
- role: 'group'
281
- }, indentationAtItemLevel ? {
282
- indentationAtItemLevel: true
283
- } : {}),
284
288
  className: classes.groupTransition
285
289
  });
286
- const handleIconContainerClick = event => {
287
- if (expansionTrigger === 'iconContainer') {
288
- handleExpansion(event);
289
- }
290
- };
291
- const ExpansionIcon = expanded ? slots.collapseIcon : slots.expandIcon;
292
- const _useSlotProps = (0, _useSlotProps4.default)({
293
- elementType: ExpansionIcon,
294
- ownerState: {},
295
- externalSlotProps: tempOwnerState => {
296
- if (expanded) {
297
- return (0, _extends2.default)({}, (0, _resolveComponentProps.default)(contextIcons.slotProps.collapseIcon, tempOwnerState), (0, _resolveComponentProps.default)(inSlotProps?.collapseIcon, tempOwnerState));
298
- }
299
- return (0, _extends2.default)({}, (0, _resolveComponentProps.default)(contextIcons.slotProps.expandIcon, tempOwnerState), (0, _resolveComponentProps.default)(inSlotProps?.expandIcon, tempOwnerState));
300
- },
301
- additionalProps: {
302
- onClick: handleIconContainerClick
303
- }
304
- }),
305
- expansionIconProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps, _excluded2);
306
- const expansionIcon = expandable && !!ExpansionIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ExpansionIcon, (0, _extends2.default)({}, expansionIconProps)) : null;
307
- const DisplayIcon = expandable ? undefined : slots.endIcon;
308
- const _useSlotProps2 = (0, _useSlotProps4.default)({
309
- elementType: DisplayIcon,
310
- ownerState: {},
311
- externalSlotProps: tempOwnerState => {
312
- if (expandable) {
313
- return {};
314
- }
315
- return (0, _extends2.default)({}, (0, _resolveComponentProps.default)(contextIcons.slotProps.endIcon, tempOwnerState), (0, _resolveComponentProps.default)(inSlotProps?.endIcon, tempOwnerState));
316
- }
317
- }),
318
- displayIconProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps2, _excluded3);
319
- const displayIcon = DisplayIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(DisplayIcon, (0, _extends2.default)({}, displayIconProps)) : null;
320
- const Icon = slots.icon;
321
- const _useSlotProps3 = (0, _useSlotProps4.default)({
322
- elementType: Icon,
323
- ownerState: {},
324
- externalSlotProps: inSlotProps?.icon
325
- }),
326
- iconProps = (0, _objectWithoutPropertiesLoose2.default)(_useSlotProps3, _excluded4);
327
- const icon = Icon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, (0, _extends2.default)({}, iconProps)) : null;
328
-
329
- // https://www.w3.org/WAI/ARIA/apg/patterns/treeview/
330
- let ariaSelected;
331
- if (selected) {
332
- // - each selected node has aria-selected set to true.
333
- ariaSelected = true;
334
- } else if (disableSelection || disabled) {
335
- // - if the tree contains nodes that are not selectable, aria-selected is not present on those nodes.
336
- ariaSelected = undefined;
337
- } else {
338
- // - all nodes that are selectable but not selected have aria-selected set to false.
339
- ariaSelected = false;
340
- }
341
- function handleFocus(event) {
342
- const canBeFocused = !disabled || disabledItemsFocusable;
343
- if (!focused && canBeFocused && event.currentTarget === event.target) {
344
- instance.focusItem(event, itemId);
345
- }
346
- }
347
- function handleBlur(event) {
348
- onBlur?.(event);
349
- if (editing ||
350
- // we can exit the editing state by clicking outside the input (within the Tree Item) or by pressing Enter or Escape -> we don't want to remove the focused item from the state in these cases
351
- // we can also exit the editing state by clicking on the root itself -> want to remove the focused item from the state in this case
352
- event.relatedTarget && (0, _tree.isTargetInDescendants)(event.relatedTarget, rootRefObject.current) && (event.target && event.target?.dataset?.element === 'labelInput' && (0, _tree.isTargetInDescendants)(event.target, rootRefObject.current) || event.relatedTarget?.dataset?.element === 'labelInput')) {
353
- return;
354
- }
355
- instance.removeFocusedItem();
356
- }
357
- const handleKeyDown = event => {
358
- onKeyDown?.(event);
359
- if (event.target?.dataset?.element === 'labelInput') {
360
- return;
361
- }
362
- instance.handleItemKeyDown(event, itemId);
363
- };
364
- const idAttribute = (0, _useTreeViewId.generateTreeItemIdAttribute)({
365
- itemId,
366
- treeId,
367
- id
290
+ const LabelInput = slots.labelInput ?? _TreeItemLabelInput.TreeItemLabelInput;
291
+ const labelInputProps = (0, _useSlotProps.default)({
292
+ elementType: LabelInput,
293
+ getSlotProps: getLabelInputProps,
294
+ externalSlotProps: slotProps.labelInput,
295
+ ownerState: {},
296
+ className: classes.labelInput
368
297
  });
369
- const tabIndex = instance.canItemBeTabbed(itemId) ? 0 : -1;
370
- const sharedPropsEnhancerParams = {
371
- rootRefObject,
372
- contentRefObject,
373
- interactions: {
374
- handleSaveItemLabel,
375
- handleCancelItemLabelEditing
376
- }
377
- };
378
- const enhancedRootProps = propsEnhancers.root?.((0, _extends2.default)({}, sharedPropsEnhancerParams, {
379
- externalEventHandlers: (0, _extractEventHandlers.default)(other)
380
- })) ?? {};
381
- const enhancedContentProps = propsEnhancers.content?.((0, _extends2.default)({}, sharedPropsEnhancerParams, {
382
- externalEventHandlers: (0, _extractEventHandlers.default)(ContentProps)
383
- })) ?? {};
384
- const enhancedDragAndDropOverlayProps = propsEnhancers.dragAndDropOverlay?.((0, _extends2.default)({}, sharedPropsEnhancerParams, {
385
- externalEventHandlers: {}
386
- })) ?? {};
387
- const enhancedLabelInputProps = propsEnhancers.labelInput?.((0, _extends2.default)({}, sharedPropsEnhancerParams, {
388
- externalEventHandlers: {}
389
- })) ?? {};
390
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItem2Provider.TreeItem2Provider, {
298
+ const DragAndDropOverlay = slots.dragAndDropOverlay ?? _TreeItemDragAndDropOverlay.TreeItemDragAndDropOverlay;
299
+ const dragAndDropOverlayProps = (0, _useSlotProps.default)({
300
+ elementType: DragAndDropOverlay,
301
+ getSlotProps: getDragAndDropOverlayProps,
302
+ externalSlotProps: slotProps.dragAndDropOverlay,
303
+ ownerState: {},
304
+ className: classes.dragAndDropOverlay
305
+ });
306
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItemProvider.TreeItemProvider, {
391
307
  itemId: itemId,
392
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(TreeItemRoot, (0, _extends2.default)({
393
- className: (0, _clsx.default)(classes.root, className),
394
- role: "treeitem",
395
- "aria-expanded": expandable ? expanded : undefined,
396
- "aria-selected": ariaSelected,
397
- "aria-disabled": disabled || undefined,
398
- id: idAttribute,
399
- tabIndex: tabIndex
400
- }, other, {
401
- ownerState: ownerState,
402
- onFocus: handleFocus,
403
- onBlur: handleBlur,
404
- onKeyDown: handleKeyDown,
405
- ref: handleRootRef,
406
- style: indentationAtItemLevel ? (0, _extends2.default)({}, other.style, {
407
- '--TreeView-itemDepth': typeof depthContext === 'function' ? depthContext(itemId) : depthContext
408
- }) : other.style
409
- }, enhancedRootProps, {
410
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StyledTreeItemContent, (0, _extends2.default)({
411
- as: ContentComponent,
412
- classes: {
413
- root: classes.content,
414
- expanded: classes.expanded,
415
- selected: classes.selected,
416
- focused: classes.focused,
417
- disabled: classes.disabled,
418
- editable: classes.editable,
419
- editing: classes.editing,
420
- iconContainer: classes.iconContainer,
421
- label: classes.label,
422
- labelInput: classes.labelInput,
423
- checkbox: classes.checkbox
424
- },
425
- label: label,
426
- itemId: itemId,
427
- onClick: onClick,
428
- onMouseDown: onMouseDown,
429
- icon: icon,
430
- expansionIcon: expansionIcon,
431
- displayIcon: displayIcon,
432
- ownerState: ownerState
433
- }, ContentProps, enhancedContentProps, enhancedDragAndDropOverlayProps.action == null ? {} : {
434
- dragAndDropOverlayProps: enhancedDragAndDropOverlayProps
435
- }, enhancedLabelInputProps.value == null ? {} : {
436
- labelInputProps: enhancedLabelInputProps
437
- }, {
438
- ref: handleContentRef
439
- })), children && /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItemGroup, (0, _extends2.default)({
308
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Root, (0, _extends2.default)({}, rootProps, {
309
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(Content, (0, _extends2.default)({}, contentProps, {
310
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(IconContainer, (0, _extends2.default)({}, iconContainerProps, {
311
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItemIcon.TreeItemIcon, {
312
+ status: status,
313
+ slots: slots,
314
+ slotProps: slotProps
315
+ })
316
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(Checkbox, (0, _extends2.default)({}, checkboxProps)), status.editing ? /*#__PURE__*/(0, _jsxRuntime.jsx)(LabelInput, (0, _extends2.default)({}, labelInputProps)) : /*#__PURE__*/(0, _jsxRuntime.jsx)(Label, (0, _extends2.default)({}, labelProps)), /*#__PURE__*/(0, _jsxRuntime.jsx)(DragAndDropOverlay, (0, _extends2.default)({}, dragAndDropOverlayProps))]
317
+ })), children && /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItemGroupTransition, (0, _extends2.default)({
440
318
  as: GroupTransition
441
- }, groupTransitionProps, {
442
- children: children
443
- }))]
319
+ }, groupTransitionProps))]
444
320
  }))
445
321
  });
446
322
  });
@@ -458,37 +334,35 @@ process.env.NODE_ENV !== "production" ? TreeItem.propTypes = {
458
334
  */
459
335
  classes: _propTypes.default.object,
460
336
  className: _propTypes.default.string,
461
- /**
462
- * The component used to render the content of the item.
463
- * @deprecated Consider using the `<TreeItem2 />` component or the `useTreeItem2` hook instead. For more details, see https://mui.com/x/react-tree-view/tree-item-customization/.
464
- * @default TreeItemContent
465
- */
466
- ContentComponent: _elementTypeAcceptingRef.default,
467
- /**
468
- * Props applied to ContentComponent.
469
- * @deprecated Consider using the `<TreeItem2 />` component or the `useTreeItem2` hook instead. For more details, see https://mui.com/x/react-tree-view/tree-item-customization/.
470
- */
471
- ContentProps: _propTypes.default.object,
472
337
  /**
473
338
  * If `true`, the item is disabled.
474
339
  * @default false
475
340
  */
476
341
  disabled: _propTypes.default.bool,
342
+ /**
343
+ * The id attribute of the item. If not provided, it will be generated.
344
+ */
345
+ id: _propTypes.default.string,
477
346
  /**
478
347
  * The id of the item.
348
+ * Must be unique.
479
349
  */
480
350
  itemId: _propTypes.default.string.isRequired,
481
351
  /**
482
- * The Tree Item label.
352
+ * The label of the item.
483
353
  */
484
354
  label: _propTypes.default.node,
355
+ /**
356
+ * Callback fired when the item root is blurred.
357
+ */
358
+ onBlur: _propTypes.default.func,
485
359
  /**
486
360
  * This prop isn't supported.
487
- * Use the `onItemFocus` callback on the tree if you need to monitor a item's focus.
361
+ * Use the `onItemFocus` callback on the tree if you need to monitor an item's focus.
488
362
  */
489
363
  onFocus: _unsupportedProp.default,
490
364
  /**
491
- * Callback fired when a key of the keyboard is pressed on the item.
365
+ * Callback fired when a key is pressed on the keyboard and the tree is in focus.
492
366
  */
493
367
  onKeyDown: _propTypes.default.func,
494
368
  /**
@@ -500,9 +374,5 @@ process.env.NODE_ENV !== "production" ? TreeItem.propTypes = {
500
374
  * Overridable component slots.
501
375
  * @default {}
502
376
  */
503
- slots: _propTypes.default.object,
504
- /**
505
- * The system prop that allows defining system overrides as well as additional CSS styles.
506
- */
507
- sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object])
377
+ slots: _propTypes.default.object
508
378
  } : void 0;