@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
@@ -5,7 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  var _exportNames = {
7
7
  TreeItem: true,
8
- TreeItemContent: true
8
+ TreeItemRoot: true,
9
+ TreeItemContent: true,
10
+ TreeItemIconContainer: true,
11
+ TreeItemGroupTransition: true,
12
+ TreeItemCheckbox: true,
13
+ TreeItemLabel: true
9
14
  };
10
15
  Object.defineProperty(exports, "TreeItem", {
11
16
  enumerable: true,
@@ -13,10 +18,40 @@ Object.defineProperty(exports, "TreeItem", {
13
18
  return _TreeItem.TreeItem;
14
19
  }
15
20
  });
21
+ Object.defineProperty(exports, "TreeItemCheckbox", {
22
+ enumerable: true,
23
+ get: function () {
24
+ return _TreeItem.TreeItemCheckbox;
25
+ }
26
+ });
16
27
  Object.defineProperty(exports, "TreeItemContent", {
17
28
  enumerable: true,
18
29
  get: function () {
19
- return _TreeItemContent.TreeItemContent;
30
+ return _TreeItem.TreeItemContent;
31
+ }
32
+ });
33
+ Object.defineProperty(exports, "TreeItemGroupTransition", {
34
+ enumerable: true,
35
+ get: function () {
36
+ return _TreeItem.TreeItemGroupTransition;
37
+ }
38
+ });
39
+ Object.defineProperty(exports, "TreeItemIconContainer", {
40
+ enumerable: true,
41
+ get: function () {
42
+ return _TreeItem.TreeItemIconContainer;
43
+ }
44
+ });
45
+ Object.defineProperty(exports, "TreeItemLabel", {
46
+ enumerable: true,
47
+ get: function () {
48
+ return _TreeItem.TreeItemLabel;
49
+ }
50
+ });
51
+ Object.defineProperty(exports, "TreeItemRoot", {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _TreeItem.TreeItemRoot;
20
55
  }
21
56
  });
22
57
  var _TreeItem = require("./TreeItem");
@@ -31,17 +66,4 @@ Object.keys(_treeItemClasses).forEach(function (key) {
31
66
  return _treeItemClasses[key];
32
67
  }
33
68
  });
34
- });
35
- var _useTreeItemState = require("./useTreeItemState");
36
- Object.keys(_useTreeItemState).forEach(function (key) {
37
- if (key === "default" || key === "__esModule") return;
38
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
39
- if (key in exports && exports[key] === _useTreeItemState[key]) return;
40
- Object.defineProperty(exports, key, {
41
- enumerable: true,
42
- get: function () {
43
- return _useTreeItemState[key];
44
- }
45
- });
46
- });
47
- var _TreeItemContent = require("./TreeItemContent");
69
+ });
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
6
  Object.defineProperty(exports, "__esModule", {
6
7
  value: true
7
8
  });
8
- exports.TreeItem2DragAndDropOverlay = TreeItem2DragAndDropOverlay;
9
+ exports.TreeItemDragAndDropOverlay = TreeItemDragAndDropOverlay;
9
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
11
  var React = _interopRequireWildcard(require("react"));
11
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -13,8 +14,8 @@ var _styles = require("@mui/material/styles");
13
14
  var _system = require("@mui/system");
14
15
  var _zeroStyled = require("../internals/zero-styled");
15
16
  var _jsxRuntime = require("react/jsx-runtime");
16
- const TreeItem2DragAndDropOverlayRoot = (0, _zeroStyled.styled)('div', {
17
- name: 'MuiTreeItem2DragAndDropOverlay',
17
+ const TreeItemDragAndDropOverlayRoot = (0, _zeroStyled.styled)('div', {
18
+ name: 'MuiTreeItemDragAndDropOverlay',
18
19
  slot: 'Root',
19
20
  overridesResolver: (props, styles) => styles.root,
20
21
  shouldForwardProp: prop => (0, _system.shouldForwardProp)(prop) && prop !== 'action'
@@ -63,13 +64,13 @@ const TreeItem2DragAndDropOverlayRoot = (0, _zeroStyled.styled)('div', {
63
64
  }
64
65
  }]
65
66
  }));
66
- function TreeItem2DragAndDropOverlay(props) {
67
+ function TreeItemDragAndDropOverlay(props) {
67
68
  if (props.action == null) {
68
69
  return null;
69
70
  }
70
- return /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItem2DragAndDropOverlayRoot, (0, _extends2.default)({}, props));
71
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItemDragAndDropOverlayRoot, (0, _extends2.default)({}, props));
71
72
  }
72
- process.env.NODE_ENV !== "production" ? TreeItem2DragAndDropOverlay.propTypes = {
73
+ process.env.NODE_ENV !== "production" ? TreeItemDragAndDropOverlay.propTypes = {
73
74
  // ----------------------------- Warning --------------------------------
74
75
  // | These PropTypes are generated from the TypeScript type definitions |
75
76
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "TreeItemDragAndDropOverlay", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _TreeItemDragAndDropOverlay.TreeItemDragAndDropOverlay;
10
+ }
11
+ });
12
+ var _TreeItemDragAndDropOverlay = require("./TreeItemDragAndDropOverlay");
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
5
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
6
  Object.defineProperty(exports, "__esModule", {
6
7
  value: true
7
8
  });
8
- exports.TreeItem2Icon = TreeItem2Icon;
9
+ exports.TreeItemIcon = TreeItemIcon;
9
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
11
  var React = _interopRequireWildcard(require("react"));
11
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -14,7 +15,7 @@ var _useSlotProps = _interopRequireDefault(require("@mui/utils/useSlotProps"));
14
15
  var _TreeViewProvider = require("../internals/TreeViewProvider");
15
16
  var _icons = require("../icons");
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
- function TreeItem2Icon(props) {
18
+ function TreeItemIcon(props) {
18
19
  const {
19
20
  slots,
20
21
  slotProps,
@@ -50,7 +51,7 @@ function TreeItem2Icon(props) {
50
51
  }
51
52
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, (0, _extends2.default)({}, iconProps));
52
53
  }
53
- process.env.NODE_ENV !== "production" ? TreeItem2Icon.propTypes = {
54
+ process.env.NODE_ENV !== "production" ? TreeItemIcon.propTypes = {
54
55
  // ----------------------------- Warning --------------------------------
55
56
  // | These PropTypes are generated from the TypeScript type definitions |
56
57
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "TreeItemIcon", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _TreeItemIcon.TreeItemIcon;
10
+ }
11
+ });
12
+ var _TreeItemIcon = require("./TreeItemIcon");
@@ -4,14 +4,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.TreeItem2LabelInput = void 0;
7
+ exports.TreeItemLabelInput = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _zeroStyled = require("../internals/zero-styled");
10
10
  /**
11
11
  * @ignore - internal component.
12
12
  */
13
- const TreeItem2LabelInput = exports.TreeItem2LabelInput = (0, _zeroStyled.styled)('input', {
14
- name: 'MuiTreeItem2',
13
+ const TreeItemLabelInput = exports.TreeItemLabelInput = (0, _zeroStyled.styled)('input', {
14
+ name: 'MuiTreeItem',
15
15
  slot: 'LabelInput',
16
16
  overridesResolver: (props, styles) => styles.labelInput
17
17
  })(({
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "TreeItemLabelInput", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _TreeItemLabelInput.TreeItemLabelInput;
10
+ }
11
+ });
12
+ var _TreeItemLabelInput = require("./TreeItemLabelInput");
@@ -4,10 +4,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.TreeItem2Provider = TreeItem2Provider;
7
+ exports.TreeItemProvider = TreeItemProvider;
8
8
  var _propTypes = _interopRequireDefault(require("prop-types"));
9
9
  var _TreeViewProvider = require("../internals/TreeViewProvider");
10
- function TreeItem2Provider(props) {
10
+ /**
11
+ * @ignore - internal component.
12
+ */
13
+ function TreeItemProvider(props) {
11
14
  const {
12
15
  children,
13
16
  itemId
@@ -22,7 +25,7 @@ function TreeItem2Provider(props) {
22
25
  instance
23
26
  });
24
27
  }
25
- TreeItem2Provider.propTypes = {
28
+ TreeItemProvider.propTypes = {
26
29
  // ----------------------------- Warning --------------------------------
27
30
  // | These PropTypes are generated from the TypeScript type definitions |
28
31
  // | To update them edit the TypeScript types and run "pnpm proptypes" |
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "TreeItemProvider", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _TreeItemProvider.TreeItemProvider;
10
+ }
11
+ });
12
+ var _TreeItemProvider = require("./TreeItemProvider");
@@ -3,10 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "useTreeItem2Utils", {
6
+ Object.defineProperty(exports, "useTreeItemUtils", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _useTreeItem2Utils.useTreeItem2Utils;
9
+ return _useTreeItemUtils.useTreeItemUtils;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "useTreeViewApiRef", {
@@ -16,4 +16,4 @@ Object.defineProperty(exports, "useTreeViewApiRef", {
16
16
  }
17
17
  });
18
18
  var _useTreeViewApiRef = require("./useTreeViewApiRef");
19
- var _useTreeItem2Utils = require("./useTreeItem2Utils");
19
+ var _useTreeItemUtils = require("./useTreeItemUtils");
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useTreeItemUtils", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _useTreeItemUtils.useTreeItemUtils;
10
+ }
11
+ });
12
+ var _useTreeItemUtils = require("./useTreeItemUtils");
@@ -1,18 +1,19 @@
1
1
  "use strict";
2
+ 'use client';
2
3
 
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
- exports.useTreeItem2Utils = void 0;
7
+ exports.useTreeItemUtils = void 0;
7
8
  var _TreeViewProvider = require("../../internals/TreeViewProvider");
8
9
  var _useTreeViewLabel = require("../../internals/plugins/useTreeViewLabel");
9
10
  var _plugins = require("../../internals/utils/plugins");
10
11
  /**
11
- * Plugins that need to be present in the Tree View in order for `useTreeItem2Utils` to work correctly.
12
+ * Plugins that need to be present in the Tree View in order for `useTreeItemUtils` to work correctly.
12
13
  */
13
14
 
14
15
  /**
15
- * Plugins that `useTreeItem2Utils` can use if they are present, but are not required.
16
+ * Plugins that `useTreeItemUtils` can use if they are present, but are not required.
16
17
  */
17
18
 
18
19
  const isItemExpandable = reactChildren => {
@@ -21,7 +22,7 @@ const isItemExpandable = reactChildren => {
21
22
  }
22
23
  return Boolean(reactChildren);
23
24
  };
24
- const useTreeItem2Utils = ({
25
+ const useTreeItemUtils = ({
25
26
  itemId,
26
27
  children
27
28
  }) => {
@@ -144,4 +145,4 @@ const useTreeItem2Utils = ({
144
145
  publicAPI
145
146
  };
146
147
  };
147
- exports.useTreeItem2Utils = useTreeItem2Utils;
148
+ exports.useTreeItemUtils = useTreeItemUtils;
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-tree-view v7.22.1
2
+ * @mui/x-tree-view v8.0.0-alpha.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -19,18 +19,6 @@ Object.defineProperty(exports, "unstable_resetCleanupTracking", {
19
19
  return _useInstanceEventHandler.unstable_resetCleanupTracking;
20
20
  }
21
21
  });
22
- var _TreeView = require("./TreeView");
23
- Object.keys(_TreeView).forEach(function (key) {
24
- if (key === "default" || key === "__esModule") return;
25
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
26
- if (key in exports && exports[key] === _TreeView[key]) return;
27
- Object.defineProperty(exports, key, {
28
- enumerable: true,
29
- get: function () {
30
- return _TreeView[key];
31
- }
32
- });
33
- });
34
22
  var _SimpleTreeView = require("./SimpleTreeView");
35
23
  Object.keys(_SimpleTreeView).forEach(function (key) {
36
24
  if (key === "default" || key === "__esModule") return;
@@ -67,19 +55,7 @@ Object.keys(_TreeItem).forEach(function (key) {
67
55
  }
68
56
  });
69
57
  });
70
- var _TreeItem2 = require("./TreeItem2");
71
- Object.keys(_TreeItem2).forEach(function (key) {
72
- if (key === "default" || key === "__esModule") return;
73
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
74
- if (key in exports && exports[key] === _TreeItem2[key]) return;
75
- Object.defineProperty(exports, key, {
76
- enumerable: true,
77
- get: function () {
78
- return _TreeItem2[key];
79
- }
80
- });
81
- });
82
- var _useTreeItem = require("./useTreeItem2");
58
+ var _useTreeItem = require("./useTreeItem");
83
59
  Object.keys(_useTreeItem).forEach(function (key) {
84
60
  if (key === "default" || key === "__esModule") return;
85
61
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
@@ -91,51 +67,51 @@ Object.keys(_useTreeItem).forEach(function (key) {
91
67
  }
92
68
  });
93
69
  });
94
- var _TreeItem2Icon = require("./TreeItem2Icon");
95
- Object.keys(_TreeItem2Icon).forEach(function (key) {
70
+ var _TreeItemIcon = require("./TreeItemIcon");
71
+ Object.keys(_TreeItemIcon).forEach(function (key) {
96
72
  if (key === "default" || key === "__esModule") return;
97
73
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
98
- if (key in exports && exports[key] === _TreeItem2Icon[key]) return;
74
+ if (key in exports && exports[key] === _TreeItemIcon[key]) return;
99
75
  Object.defineProperty(exports, key, {
100
76
  enumerable: true,
101
77
  get: function () {
102
- return _TreeItem2Icon[key];
78
+ return _TreeItemIcon[key];
103
79
  }
104
80
  });
105
81
  });
106
- var _TreeItem2Provider = require("./TreeItem2Provider");
107
- Object.keys(_TreeItem2Provider).forEach(function (key) {
82
+ var _TreeItemProvider = require("./TreeItemProvider");
83
+ Object.keys(_TreeItemProvider).forEach(function (key) {
108
84
  if (key === "default" || key === "__esModule") return;
109
85
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
110
- if (key in exports && exports[key] === _TreeItem2Provider[key]) return;
86
+ if (key in exports && exports[key] === _TreeItemProvider[key]) return;
111
87
  Object.defineProperty(exports, key, {
112
88
  enumerable: true,
113
89
  get: function () {
114
- return _TreeItem2Provider[key];
90
+ return _TreeItemProvider[key];
115
91
  }
116
92
  });
117
93
  });
118
- var _TreeItem2DragAndDropOverlay = require("./TreeItem2DragAndDropOverlay");
119
- Object.keys(_TreeItem2DragAndDropOverlay).forEach(function (key) {
94
+ var _TreeItemDragAndDropOverlay = require("./TreeItemDragAndDropOverlay");
95
+ Object.keys(_TreeItemDragAndDropOverlay).forEach(function (key) {
120
96
  if (key === "default" || key === "__esModule") return;
121
97
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
122
- if (key in exports && exports[key] === _TreeItem2DragAndDropOverlay[key]) return;
98
+ if (key in exports && exports[key] === _TreeItemDragAndDropOverlay[key]) return;
123
99
  Object.defineProperty(exports, key, {
124
100
  enumerable: true,
125
101
  get: function () {
126
- return _TreeItem2DragAndDropOverlay[key];
102
+ return _TreeItemDragAndDropOverlay[key];
127
103
  }
128
104
  });
129
105
  });
130
- var _TreeItem2LabelInput = require("./TreeItem2LabelInput");
131
- Object.keys(_TreeItem2LabelInput).forEach(function (key) {
106
+ var _TreeItemLabelInput = require("./TreeItemLabelInput");
107
+ Object.keys(_TreeItemLabelInput).forEach(function (key) {
132
108
  if (key === "default" || key === "__esModule") return;
133
109
  if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
134
- if (key in exports && exports[key] === _TreeItem2LabelInput[key]) return;
110
+ if (key in exports && exports[key] === _TreeItemLabelInput[key]) return;
135
111
  Object.defineProperty(exports, key, {
136
112
  enumerable: true,
137
113
  get: function () {
138
- return _TreeItem2LabelInput[key];
114
+ return _TreeItemLabelInput[key];
139
115
  }
140
116
  });
141
117
  });
@@ -71,8 +71,7 @@ const useTreeViewItems = ({
71
71
  instance,
72
72
  params,
73
73
  state,
74
- setState,
75
- experimentalFeatures
74
+ setState
76
75
  }) => {
77
76
  const getItemMeta = React.useCallback(itemId => state.items.itemMetaMap[itemId], [state.items.itemMetaMap]);
78
77
  const getItem = React.useCallback(itemId => state.items.itemMap[itemId], [state.items.itemMap]);
@@ -199,8 +198,7 @@ const useTreeViewItems = ({
199
198
  contextValue: {
200
199
  items: {
201
200
  onItemClick: params.onItemClick,
202
- disabledItemsFocusable: params.disabledItemsFocusable,
203
- indentationAtItemLevel: experimentalFeatures.indentationAtItemLevel ?? false
201
+ disabledItemsFocusable: params.disabledItemsFocusable
204
202
  }
205
203
  }
206
204
  };
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useTreeViewSelectionItemPlugin = void 0;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _TreeViewProvider = require("../../TreeViewProvider");
10
+ function getCheckboxStatus({
11
+ itemId,
12
+ instance,
13
+ selectionPropagation,
14
+ selected
15
+ }) {
16
+ if (selected) {
17
+ return {
18
+ indeterminate: false,
19
+ checked: true
20
+ };
21
+ }
22
+ const children = instance.getItemOrderedChildrenIds(itemId);
23
+ if (children.length === 0) {
24
+ return {
25
+ indeterminate: false,
26
+ checked: false
27
+ };
28
+ }
29
+ let hasSelectedDescendant = false;
30
+ let hasUnSelectedDescendant = false;
31
+ const traverseDescendants = itemToTraverseId => {
32
+ if (itemToTraverseId !== itemId) {
33
+ if (instance.isItemSelected(itemToTraverseId)) {
34
+ hasSelectedDescendant = true;
35
+ } else {
36
+ hasUnSelectedDescendant = true;
37
+ }
38
+ }
39
+ instance.getItemOrderedChildrenIds(itemToTraverseId).forEach(traverseDescendants);
40
+ };
41
+ traverseDescendants(itemId);
42
+ return {
43
+ indeterminate: hasSelectedDescendant && hasUnSelectedDescendant || !hasUnSelectedDescendant && !selected,
44
+ checked: selectionPropagation.parents ? hasSelectedDescendant : selected
45
+ };
46
+ }
47
+ const useTreeViewSelectionItemPlugin = ({
48
+ props
49
+ }) => {
50
+ const {
51
+ itemId
52
+ } = props;
53
+ const {
54
+ instance,
55
+ selection: {
56
+ disableSelection,
57
+ checkboxSelection,
58
+ selectionPropagation
59
+ }
60
+ } = (0, _TreeViewProvider.useTreeViewContext)();
61
+ return {
62
+ propsEnhancers: {
63
+ checkbox: ({
64
+ externalEventHandlers,
65
+ interactions,
66
+ status
67
+ }) => {
68
+ const handleChange = event => {
69
+ externalEventHandlers.onChange?.(event);
70
+ if (event.defaultMuiPrevented) {
71
+ return;
72
+ }
73
+ if (disableSelection || status.disabled) {
74
+ return;
75
+ }
76
+ interactions.handleCheckboxSelection(event);
77
+ };
78
+ const checkboxStatus = getCheckboxStatus({
79
+ instance,
80
+ itemId,
81
+ selectionPropagation,
82
+ selected: status.selected
83
+ });
84
+ return (0, _extends2.default)({
85
+ visible: checkboxSelection,
86
+ disabled: disableSelection || status.disabled,
87
+ tabIndex: -1,
88
+ onChange: handleChange
89
+ }, checkboxStatus);
90
+ }
91
+ }
92
+ };
93
+ };
94
+ exports.useTreeViewSelectionItemPlugin = useTreeViewSelectionItemPlugin;
@@ -10,6 +10,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var React = _interopRequireWildcard(require("react"));
11
11
  var _tree = require("../../utils/tree");
12
12
  var _useTreeViewSelection = require("./useTreeViewSelection.utils");
13
+ var _useTreeViewSelection2 = require("./useTreeViewSelection.itemPlugin");
13
14
  const useTreeViewSelection = ({
14
15
  instance,
15
16
  params,
@@ -28,30 +29,47 @@ const useTreeViewSelection = ({
28
29
  }
29
30
  return temp;
30
31
  }, [models.selectedItems.value]);
31
- const setSelectedItems = (event, newSelectedItems) => {
32
+ const setSelectedItems = (event, newModel, additionalItemsToPropagate) => {
33
+ let cleanModel;
34
+ if (params.multiSelect && (params.selectionPropagation.descendants || params.selectionPropagation.parents)) {
35
+ cleanModel = (0, _useTreeViewSelection.propagateSelection)({
36
+ instance,
37
+ selectionPropagation: params.selectionPropagation,
38
+ newModel: newModel,
39
+ oldModel: models.selectedItems.value,
40
+ additionalItemsToPropagate
41
+ });
42
+ } else {
43
+ cleanModel = newModel;
44
+ }
32
45
  if (params.onItemSelectionToggle) {
33
46
  if (params.multiSelect) {
34
- const addedItems = newSelectedItems.filter(itemId => !instance.isItemSelected(itemId));
35
- const removedItems = models.selectedItems.value.filter(itemId => !newSelectedItems.includes(itemId));
36
- addedItems.forEach(itemId => {
37
- params.onItemSelectionToggle(event, itemId, true);
47
+ const changes = (0, _useTreeViewSelection.getAddedAndRemovedItems)({
48
+ instance,
49
+ newModel: cleanModel,
50
+ oldModel: models.selectedItems.value
38
51
  });
39
- removedItems.forEach(itemId => {
40
- params.onItemSelectionToggle(event, itemId, false);
41
- });
42
- } else if (newSelectedItems !== models.selectedItems.value) {
52
+ if (params.onItemSelectionToggle) {
53
+ changes.added.forEach(itemId => {
54
+ params.onItemSelectionToggle(event, itemId, true);
55
+ });
56
+ changes.removed.forEach(itemId => {
57
+ params.onItemSelectionToggle(event, itemId, false);
58
+ });
59
+ }
60
+ } else if (params.onItemSelectionToggle && cleanModel !== models.selectedItems.value) {
43
61
  if (models.selectedItems.value != null) {
44
62
  params.onItemSelectionToggle(event, models.selectedItems.value, false);
45
63
  }
46
- if (newSelectedItems != null) {
47
- params.onItemSelectionToggle(event, newSelectedItems, true);
64
+ if (cleanModel != null) {
65
+ params.onItemSelectionToggle(event, cleanModel, true);
48
66
  }
49
67
  }
50
68
  }
51
69
  if (params.onSelectedItemsChange) {
52
- params.onSelectedItemsChange(event, newSelectedItems);
70
+ params.onSelectedItemsChange(event, cleanModel);
53
71
  }
54
- models.selectedItems.setControlledValue(newSelectedItems);
72
+ models.selectedItems.setControlledValue(cleanModel);
55
73
  };
56
74
  const isItemSelected = itemId => selectedItemsMap.has(itemId);
57
75
  const selectItem = ({
@@ -82,7 +100,10 @@ const useTreeViewSelection = ({
82
100
  newSelected = params.multiSelect ? [itemId] : itemId;
83
101
  }
84
102
  }
85
- setSelectedItems(event, newSelected);
103
+ setSelectedItems(event, newSelected,
104
+ // If shouldBeSelected === instance.isItemSelect(itemId), we still want to propagate the select.
105
+ // This is useful when the element is in an indeterminate state.
106
+ [itemId]);
86
107
  lastSelectedItem.current = itemId;
87
108
  lastSelectedRange.current = {};
88
109
  };
@@ -171,12 +192,14 @@ const useTreeViewSelection = ({
171
192
  selection: {
172
193
  multiSelect: params.multiSelect,
173
194
  checkboxSelection: params.checkboxSelection,
174
- disableSelection: params.disableSelection
195
+ disableSelection: params.disableSelection,
196
+ selectionPropagation: params.selectionPropagation
175
197
  }
176
198
  }
177
199
  };
178
200
  };
179
201
  exports.useTreeViewSelection = useTreeViewSelection;
202
+ useTreeViewSelection.itemPlugin = _useTreeViewSelection2.useTreeViewSelectionItemPlugin;
180
203
  useTreeViewSelection.models = {
181
204
  selectedItems: {
182
205
  getDefaultValue: params => params.defaultSelectedItems
@@ -189,7 +212,8 @@ useTreeViewSelection.getDefaultizedParams = ({
189
212
  disableSelection: params.disableSelection ?? false,
190
213
  multiSelect: params.multiSelect ?? false,
191
214
  checkboxSelection: params.checkboxSelection ?? false,
192
- defaultSelectedItems: params.defaultSelectedItems ?? (params.multiSelect ? DEFAULT_SELECTED_ITEMS : null)
215
+ defaultSelectedItems: params.defaultSelectedItems ?? (params.multiSelect ? DEFAULT_SELECTED_ITEMS : null),
216
+ selectionPropagation: params.selectionPropagation ?? {}
193
217
  });
194
218
  useTreeViewSelection.params = {
195
219
  disableSelection: true,
@@ -198,5 +222,6 @@ useTreeViewSelection.params = {
198
222
  defaultSelectedItems: true,
199
223
  selectedItems: true,
200
224
  onSelectedItemsChange: true,
201
- onItemSelectionToggle: true
225
+ onItemSelectionToggle: true,
226
+ selectionPropagation: true
202
227
  };