@mui/x-tree-view 7.0.0-beta.6 → 7.0.0-beta.7

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 (129) hide show
  1. package/CHANGELOG.md +117 -1
  2. package/RichTreeView/RichTreeView.js +22 -22
  3. package/RichTreeView/RichTreeView.types.d.ts +2 -1
  4. package/SimpleTreeView/SimpleTreeView.js +22 -22
  5. package/TreeItem/TreeItem.js +57 -53
  6. package/TreeItem/TreeItem.types.d.ts +10 -8
  7. package/TreeItem/useTreeItemState.js +2 -2
  8. package/TreeItem2/TreeItem2.d.ts +18 -0
  9. package/TreeItem2/TreeItem2.js +301 -0
  10. package/TreeItem2/TreeItem2.types.d.ts +64 -0
  11. package/TreeItem2/TreeItem2.types.js +1 -0
  12. package/TreeItem2/index.d.ts +2 -0
  13. package/TreeItem2/index.js +1 -0
  14. package/TreeItem2/package.json +6 -0
  15. package/TreeItem2Icon/TreeItem2Icon.d.ts +7 -0
  16. package/TreeItem2Icon/TreeItem2Icon.js +68 -0
  17. package/TreeItem2Icon/TreeItem2Icon.types.d.ts +40 -0
  18. package/TreeItem2Icon/TreeItem2Icon.types.js +1 -0
  19. package/TreeItem2Icon/index.d.ts +2 -0
  20. package/TreeItem2Icon/index.js +1 -0
  21. package/TreeItem2Icon/package.json +6 -0
  22. package/TreeItem2Provider/TreeItem2Provider.d.ts +7 -0
  23. package/TreeItem2Provider/TreeItem2Provider.js +24 -0
  24. package/TreeItem2Provider/TreeItem2Provider.types.d.ts +6 -0
  25. package/TreeItem2Provider/TreeItem2Provider.types.js +1 -0
  26. package/TreeItem2Provider/index.d.ts +2 -0
  27. package/TreeItem2Provider/index.js +1 -0
  28. package/TreeItem2Provider/package.json +6 -0
  29. package/TreeView/TreeView.js +22 -22
  30. package/hooks/index.d.ts +1 -0
  31. package/hooks/index.js +2 -1
  32. package/hooks/useTreeItem2Utils/index.d.ts +1 -0
  33. package/hooks/useTreeItem2Utils/index.js +1 -0
  34. package/hooks/useTreeItem2Utils/useTreeItem2Utils.d.ts +15 -0
  35. package/hooks/useTreeItem2Utils/useTreeItem2Utils.js +61 -0
  36. package/index.d.ts +5 -1
  37. package/index.js +9 -2
  38. package/internals/TreeViewProvider/TreeViewContext.d.ts +3 -1
  39. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +4 -2
  40. package/internals/hooks/useLazyRef.d.ts +1 -2
  41. package/internals/hooks/useLazyRef.js +1 -11
  42. package/internals/hooks/useOnMount.d.ts +1 -2
  43. package/internals/hooks/useOnMount.js +1 -7
  44. package/internals/hooks/useTimeout.d.ts +1 -11
  45. package/internals/hooks/useTimeout.js +1 -36
  46. package/internals/models/plugin.d.ts +19 -16
  47. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +25 -25
  48. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +11 -11
  49. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +12 -12
  50. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +5 -5
  51. package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +17 -17
  52. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +11 -9
  53. package/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +2 -2
  54. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +34 -34
  55. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +11 -11
  56. package/internals/useTreeView/useTreeView.js +27 -25
  57. package/modern/RichTreeView/RichTreeView.js +22 -22
  58. package/modern/SimpleTreeView/SimpleTreeView.js +22 -22
  59. package/modern/TreeItem/TreeItem.js +57 -53
  60. package/modern/TreeItem/useTreeItemState.js +2 -2
  61. package/modern/TreeItem2/TreeItem2.js +300 -0
  62. package/modern/TreeItem2/TreeItem2.types.js +1 -0
  63. package/modern/TreeItem2/index.js +1 -0
  64. package/modern/TreeItem2Icon/TreeItem2Icon.js +67 -0
  65. package/modern/TreeItem2Icon/TreeItem2Icon.types.js +1 -0
  66. package/modern/TreeItem2Icon/index.js +1 -0
  67. package/modern/TreeItem2Provider/TreeItem2Provider.js +24 -0
  68. package/modern/TreeItem2Provider/TreeItem2Provider.types.js +1 -0
  69. package/modern/TreeItem2Provider/index.js +1 -0
  70. package/modern/TreeView/TreeView.js +22 -22
  71. package/modern/hooks/index.js +2 -1
  72. package/modern/hooks/useTreeItem2Utils/index.js +1 -0
  73. package/modern/hooks/useTreeItem2Utils/useTreeItem2Utils.js +61 -0
  74. package/modern/index.js +9 -2
  75. package/modern/internals/hooks/useLazyRef.js +1 -11
  76. package/modern/internals/hooks/useOnMount.js +1 -7
  77. package/modern/internals/hooks/useTimeout.js +1 -36
  78. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +24 -24
  79. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +12 -12
  80. package/modern/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +16 -16
  81. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +11 -9
  82. package/modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +2 -2
  83. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +34 -34
  84. package/modern/internals/useTreeView/useTreeView.js +27 -25
  85. package/modern/useTreeItem2/index.js +1 -0
  86. package/modern/useTreeItem2/useTreeItem2.js +135 -0
  87. package/modern/useTreeItem2/useTreeItem2.types.js +1 -0
  88. package/node/RichTreeView/RichTreeView.js +22 -22
  89. package/node/SimpleTreeView/SimpleTreeView.js +22 -22
  90. package/node/TreeItem/TreeItem.js +57 -53
  91. package/node/TreeItem/useTreeItemState.js +2 -2
  92. package/node/TreeItem2/TreeItem2.js +308 -0
  93. package/node/TreeItem2/TreeItem2.types.js +5 -0
  94. package/node/TreeItem2/index.js +42 -0
  95. package/node/TreeItem2Icon/TreeItem2Icon.js +75 -0
  96. package/node/TreeItem2Icon/TreeItem2Icon.types.js +5 -0
  97. package/node/TreeItem2Icon/index.js +12 -0
  98. package/node/TreeItem2Provider/TreeItem2Provider.js +30 -0
  99. package/node/TreeItem2Provider/TreeItem2Provider.types.js +5 -0
  100. package/node/TreeItem2Provider/index.js +12 -0
  101. package/node/TreeView/TreeView.js +22 -22
  102. package/node/hooks/index.js +8 -1
  103. package/node/hooks/useTreeItem2Utils/index.js +12 -0
  104. package/node/hooks/useTreeItem2Utils/useTreeItem2Utils.js +68 -0
  105. package/node/index.js +61 -13
  106. package/node/internals/hooks/useLazyRef.js +7 -13
  107. package/node/internals/hooks/useOnMount.js +8 -10
  108. package/node/internals/hooks/useTimeout.js +7 -37
  109. package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +24 -24
  110. package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +12 -12
  111. package/node/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +16 -16
  112. package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +11 -9
  113. package/node/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +2 -2
  114. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +34 -34
  115. package/node/internals/useTreeView/useTreeView.js +27 -25
  116. package/node/useTreeItem2/index.js +12 -0
  117. package/node/useTreeItem2/useTreeItem2.js +143 -0
  118. package/node/useTreeItem2/useTreeItem2.types.js +5 -0
  119. package/package.json +1 -1
  120. package/themeAugmentation/components.d.ts +5 -0
  121. package/themeAugmentation/overrides.d.ts +1 -0
  122. package/themeAugmentation/props.d.ts +2 -0
  123. package/useTreeItem2/index.d.ts +2 -0
  124. package/useTreeItem2/index.js +1 -0
  125. package/useTreeItem2/package.json +6 -0
  126. package/useTreeItem2/useTreeItem2.d.ts +2 -0
  127. package/useTreeItem2/useTreeItem2.js +138 -0
  128. package/useTreeItem2/useTreeItem2.types.d.ts +113 -0
  129. package/useTreeItem2/useTreeItem2.types.js +1 -0
@@ -12,6 +12,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _clsx = _interopRequireDefault(require("clsx"));
13
13
  var _Collapse = _interopRequireDefault(require("@mui/material/Collapse"));
14
14
  var _utils = require("@mui/base/utils");
15
+ var _useForkRef = _interopRequireDefault(require("@mui/utils/useForkRef"));
15
16
  var _styles = require("@mui/material/styles");
16
17
  var _unsupportedProp = _interopRequireDefault(require("@mui/utils/unsupportedProp"));
17
18
  var _elementTypeAcceptingRef = _interopRequireDefault(require("@mui/utils/elementTypeAcceptingRef"));
@@ -20,6 +21,7 @@ var _TreeItemContent = require("./TreeItemContent");
20
21
  var _treeItemClasses = require("./treeItemClasses");
21
22
  var _useTreeViewContext = require("../internals/TreeViewProvider/useTreeViewContext");
22
23
  var _icons = require("../icons");
24
+ var _TreeItem2Provider = require("../TreeItem2Provider");
23
25
  var _jsxRuntime = require("react/jsx-runtime");
24
26
  const _excluded = ["children", "className", "slots", "slotProps", "ContentComponent", "ContentProps", "nodeId", "id", "label", "onClick", "onMouseDown"],
25
27
  _excluded2 = ["ownerState"],
@@ -152,18 +154,10 @@ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeI
152
154
  disabledItemsFocusable,
153
155
  instance
154
156
  } = (0, _useTreeViewContext.useTreeViewContext)();
155
- const inPropsWithTheme = (0, _styles.useThemeProps)({
157
+ const props = (0, _styles.useThemeProps)({
156
158
  props: inProps,
157
159
  name: 'MuiTreeItem'
158
160
  });
159
- const {
160
- props,
161
- ref,
162
- wrapItem
163
- } = runItemPlugins({
164
- props: inPropsWithTheme,
165
- ref: inRef
166
- });
167
161
  const {
168
162
  children,
169
163
  className,
@@ -178,6 +172,12 @@ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeI
178
172
  onMouseDown
179
173
  } = props,
180
174
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
175
+ const {
176
+ contentRef,
177
+ rootRef
178
+ } = runItemPlugins(props);
179
+ const handleRootRef = (0, _useForkRef.default)(inRef, rootRef);
180
+ const handleContentRef = (0, _useForkRef.default)(ContentProps?.ref, contentRef);
181
181
  const slots = {
182
182
  expandIcon: inSlots?.expandIcon ?? contextIcons.slots.expandIcon ?? _icons.TreeViewExpandIcon,
183
183
  collapseIcon: inSlots?.collapseIcon ?? contextIcons.slots.collapseIcon ?? _icons.TreeViewCollapseIcon,
@@ -269,50 +269,54 @@ const TreeItem = exports.TreeItem = /*#__PURE__*/React.forwardRef(function TreeI
269
269
  }
270
270
  const canBeFocused = !disabled || disabledItemsFocusable;
271
271
  if (!focused && canBeFocused && event.currentTarget === event.target) {
272
- instance.focusNode(event, nodeId);
272
+ instance.focusItem(event, nodeId);
273
273
  }
274
274
  }
275
275
  const idAttribute = instance.getTreeItemId(nodeId, id);
276
- const item = /*#__PURE__*/(0, _jsxRuntime.jsxs)(TreeItemRoot, (0, _extends2.default)({
277
- className: (0, _clsx.default)(classes.root, className),
278
- role: "treeitem",
279
- "aria-expanded": expandable ? expanded : undefined,
280
- "aria-selected": ariaSelected,
281
- "aria-disabled": disabled || undefined,
282
- id: idAttribute,
283
- tabIndex: -1
284
- }, other, {
285
- ownerState: ownerState,
286
- onFocus: handleFocus,
287
- ref: ref,
288
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StyledTreeItemContent, (0, _extends2.default)({
289
- as: ContentComponent,
290
- classes: {
291
- root: classes.content,
292
- expanded: classes.expanded,
293
- selected: classes.selected,
294
- focused: classes.focused,
295
- disabled: classes.disabled,
296
- iconContainer: classes.iconContainer,
297
- label: classes.label
298
- },
299
- label: label,
300
- nodeId: nodeId,
301
- onClick: onClick,
302
- onMouseDown: onMouseDown,
303
- icon: icon,
304
- expansionIcon: expansionIcon,
305
- displayIcon: displayIcon,
306
- ownerState: ownerState
307
- }, ContentProps)), children && /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItemGroup, (0, _extends2.default)({
308
- as: GroupTransition
309
- }, groupTransitionProps, {
310
- children: children
311
- }))]
312
- }));
313
- return wrapItem(item);
276
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItem2Provider.TreeItem2Provider, {
277
+ nodeId: nodeId,
278
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(TreeItemRoot, (0, _extends2.default)({
279
+ className: (0, _clsx.default)(classes.root, className),
280
+ role: "treeitem",
281
+ "aria-expanded": expandable ? expanded : undefined,
282
+ "aria-selected": ariaSelected,
283
+ "aria-disabled": disabled || undefined,
284
+ id: idAttribute,
285
+ tabIndex: -1
286
+ }, other, {
287
+ ownerState: ownerState,
288
+ onFocus: handleFocus,
289
+ ref: handleRootRef,
290
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StyledTreeItemContent, (0, _extends2.default)({
291
+ as: ContentComponent,
292
+ classes: {
293
+ root: classes.content,
294
+ expanded: classes.expanded,
295
+ selected: classes.selected,
296
+ focused: classes.focused,
297
+ disabled: classes.disabled,
298
+ iconContainer: classes.iconContainer,
299
+ label: classes.label
300
+ },
301
+ label: label,
302
+ nodeId: nodeId,
303
+ onClick: onClick,
304
+ onMouseDown: onMouseDown,
305
+ icon: icon,
306
+ expansionIcon: expansionIcon,
307
+ displayIcon: displayIcon,
308
+ ownerState: ownerState
309
+ }, ContentProps, {
310
+ ref: handleContentRef
311
+ })), children && /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItemGroup, (0, _extends2.default)({
312
+ as: GroupTransition
313
+ }, groupTransitionProps, {
314
+ children: children
315
+ }))]
316
+ }))
317
+ });
314
318
  });
315
- TreeItem.propTypes = {
319
+ process.env.NODE_ENV !== "production" ? TreeItem.propTypes = {
316
320
  // ----------------------------- Warning --------------------------------
317
321
  // | These PropTypes are generated from the TypeScript type definitions |
318
322
  // | To update them edit the TypeScript types and run "yarn proptypes" |
@@ -336,12 +340,12 @@ TreeItem.propTypes = {
336
340
  */
337
341
  ContentProps: _propTypes.default.object,
338
342
  /**
339
- * If `true`, the node is disabled.
343
+ * If `true`, the item is disabled.
340
344
  * @default false
341
345
  */
342
346
  disabled: _propTypes.default.bool,
343
347
  /**
344
- * The tree node label.
348
+ * The tree item label.
345
349
  */
346
350
  label: _propTypes.default.node,
347
351
  /**
@@ -350,7 +354,7 @@ TreeItem.propTypes = {
350
354
  nodeId: _propTypes.default.string.isRequired,
351
355
  /**
352
356
  * This prop isn't supported.
353
- * Use the `onNodeFocus` callback on the tree if you need to monitor a node's focus.
357
+ * Use the `onItemFocus` callback on the tree if you need to monitor a item's focus.
354
358
  */
355
359
  onFocus: _unsupportedProp.default,
356
360
  /**
@@ -367,4 +371,4 @@ TreeItem.propTypes = {
367
371
  * The system prop that allows defining system overrides as well as additional CSS styles.
368
372
  */
369
373
  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])
370
- };
374
+ } : void 0;
@@ -20,7 +20,7 @@ function useTreeItemState(nodeId) {
20
20
  const handleExpansion = event => {
21
21
  if (!disabled) {
22
22
  if (!focused) {
23
- instance.focusNode(event, nodeId);
23
+ instance.focusItem(event, nodeId);
24
24
  }
25
25
  const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);
26
26
 
@@ -33,7 +33,7 @@ function useTreeItemState(nodeId) {
33
33
  const handleSelection = event => {
34
34
  if (!disabled) {
35
35
  if (!focused) {
36
- instance.focusNode(event, nodeId);
36
+ instance.focusItem(event, nodeId);
37
37
  }
38
38
  const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);
39
39
  if (multiple) {
@@ -0,0 +1,308 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.TreeItem2Root = exports.TreeItem2Label = exports.TreeItem2IconContainer = exports.TreeItem2GroupTransition = exports.TreeItem2Content = exports.TreeItem2 = void 0;
8
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var React = _interopRequireWildcard(require("react"));
11
+ var _propTypes = _interopRequireDefault(require("prop-types"));
12
+ var _clsx = _interopRequireDefault(require("clsx"));
13
+ var _unsupportedProp = _interopRequireDefault(require("@mui/utils/unsupportedProp"));
14
+ var _styles = require("@mui/material/styles");
15
+ var _Collapse = _interopRequireDefault(require("@mui/material/Collapse"));
16
+ var _utils = require("@mui/base/utils");
17
+ var _system = require("@mui/system");
18
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
19
+ var _useTreeItem = require("../useTreeItem2");
20
+ var _TreeItem = require("../TreeItem");
21
+ var _TreeItem2Icon = require("../TreeItem2Icon");
22
+ var _TreeItem2Provider = require("../TreeItem2Provider");
23
+ var _jsxRuntime = require("react/jsx-runtime");
24
+ const _excluded = ["id", "nodeId", "label", "disabled", "children", "slots", "slotProps"];
25
+ 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); }
26
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
27
+ const TreeItem2Root = exports.TreeItem2Root = (0, _styles.styled)('li', {
28
+ name: 'MuiTreeItem2',
29
+ slot: 'Root',
30
+ overridesResolver: (props, styles) => styles.root
31
+ })({
32
+ listStyle: 'none',
33
+ margin: 0,
34
+ padding: 0,
35
+ outline: 0
36
+ });
37
+ const TreeItem2Content = exports.TreeItem2Content = (0, _styles.styled)('div', {
38
+ name: 'MuiTreeItem2',
39
+ slot: 'Content',
40
+ overridesResolver: (props, styles) => styles.content,
41
+ shouldForwardProp: prop => (0, _system.shouldForwardProp)(prop) && prop !== 'status'
42
+ })(({
43
+ theme
44
+ }) => ({
45
+ padding: theme.spacing(0.5, 1),
46
+ borderRadius: theme.shape.borderRadius,
47
+ width: '100%',
48
+ boxSizing: 'border-box',
49
+ // prevent width + padding to overflow
50
+ display: 'flex',
51
+ alignItems: 'center',
52
+ gap: theme.spacing(1),
53
+ cursor: 'pointer',
54
+ WebkitTapHighlightColor: 'transparent',
55
+ '&:hover': {
56
+ backgroundColor: (theme.vars || theme).palette.action.hover,
57
+ // Reset on touch devices, it doesn't add specificity
58
+ '@media (hover: none)': {
59
+ backgroundColor: 'transparent'
60
+ }
61
+ },
62
+ [`& .${_TreeItem.treeItemClasses.groupTransition}`]: {
63
+ margin: 0,
64
+ padding: 0,
65
+ paddingLeft: 12
66
+ },
67
+ variants: [{
68
+ props: ({
69
+ status
70
+ }) => status.disabled,
71
+ style: {
72
+ opacity: (theme.vars || theme).palette.action.disabledOpacity,
73
+ backgroundColor: 'transparent'
74
+ }
75
+ }, {
76
+ props: ({
77
+ status
78
+ }) => status.focused,
79
+ style: {
80
+ backgroundColor: (theme.vars || theme).palette.action.focus
81
+ }
82
+ }, {
83
+ props: ({
84
+ status
85
+ }) => status.selected,
86
+ style: {
87
+ 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),
88
+ '&:hover': {
89
+ 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),
90
+ // Reset on touch devices, it doesn't add specificity
91
+ '@media (hover: none)': {
92
+ 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)
93
+ }
94
+ }
95
+ }
96
+ }, {
97
+ props: ({
98
+ status
99
+ }) => status.selected && status.focused,
100
+ style: {
101
+ 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)
102
+ }
103
+ }]
104
+ }));
105
+ const TreeItem2Label = exports.TreeItem2Label = (0, _styles.styled)('div', {
106
+ name: 'MuiTreeItem2',
107
+ slot: 'Label',
108
+ overridesResolver: (props, styles) => styles.label
109
+ })(({
110
+ theme
111
+ }) => (0, _extends2.default)({
112
+ width: '100%',
113
+ boxSizing: 'border-box',
114
+ // prevent width + padding to overflow
115
+ // fixes overflow - see https://github.com/mui/material-ui/issues/27372
116
+ minWidth: 0,
117
+ position: 'relative'
118
+ }, theme.typography.body1));
119
+ const TreeItem2IconContainer = exports.TreeItem2IconContainer = (0, _styles.styled)('div', {
120
+ name: 'MuiTreeItem2',
121
+ slot: 'IconContainer',
122
+ overridesResolver: (props, styles) => styles.iconContainer
123
+ })({
124
+ width: 16,
125
+ display: 'flex',
126
+ flexShrink: 0,
127
+ justifyContent: 'center',
128
+ '& svg': {
129
+ fontSize: 18
130
+ }
131
+ });
132
+ const TreeItem2GroupTransition = exports.TreeItem2GroupTransition = (0, _styles.styled)(_Collapse.default, {
133
+ name: 'MuiTreeItem2GroupTransition',
134
+ slot: 'GroupTransition',
135
+ overridesResolver: (props, styles) => styles.groupTransition
136
+ })({
137
+ margin: 0,
138
+ padding: 0,
139
+ paddingLeft: 12
140
+ });
141
+ const useUtilityClasses = ownerState => {
142
+ const {
143
+ classes
144
+ } = ownerState;
145
+ const slots = {
146
+ root: ['root'],
147
+ content: ['content'],
148
+ expanded: ['expanded'],
149
+ selected: ['selected'],
150
+ focused: ['focused'],
151
+ disabled: ['disabled'],
152
+ iconContainer: ['iconContainer'],
153
+ label: ['label'],
154
+ groupTransition: ['groupTransition']
155
+ };
156
+ return (0, _composeClasses.default)(slots, _TreeItem.getTreeItemUtilityClass, classes);
157
+ };
158
+
159
+ /**
160
+ *
161
+ * Demos:
162
+ *
163
+ * - [Tree View](https://mui.com/x/react-tree-view/)
164
+ *
165
+ * API:
166
+ *
167
+ * - [TreeItem2 API](https://mui.com/x/api/tree-view/tree-item-2/)
168
+ */
169
+ const TreeItem2 = exports.TreeItem2 = /*#__PURE__*/React.forwardRef(function TreeItem2(inProps, forwardedRef) {
170
+ const props = (0, _styles.useThemeProps)({
171
+ props: inProps,
172
+ name: 'MuiTreeItem2'
173
+ });
174
+ const {
175
+ id,
176
+ nodeId,
177
+ label,
178
+ disabled,
179
+ children,
180
+ slots = {},
181
+ slotProps = {}
182
+ } = props,
183
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
184
+ const {
185
+ getRootProps,
186
+ getContentProps,
187
+ getIconContainerProps,
188
+ getLabelProps,
189
+ getGroupTransitionProps,
190
+ status
191
+ } = (0, _useTreeItem.unstable_useTreeItem2)({
192
+ id,
193
+ nodeId,
194
+ children,
195
+ label,
196
+ disabled
197
+ });
198
+ const ownerState = (0, _extends2.default)({}, props, status);
199
+ const classes = useUtilityClasses(ownerState);
200
+ const Root = slots.root ?? TreeItem2Root;
201
+ const rootProps = (0, _utils.useSlotProps)({
202
+ elementType: Root,
203
+ getSlotProps: getRootProps,
204
+ externalForwardedProps: other,
205
+ externalSlotProps: slotProps.root,
206
+ additionalProps: {
207
+ ref: forwardedRef
208
+ },
209
+ ownerState: {},
210
+ className: classes.root
211
+ });
212
+ const Content = slots.content ?? TreeItem2Content;
213
+ const contentProps = (0, _utils.useSlotProps)({
214
+ elementType: Content,
215
+ getSlotProps: getContentProps,
216
+ externalSlotProps: slotProps.content,
217
+ ownerState: {},
218
+ className: (0, _clsx.default)(classes.content, status.expanded && classes.expanded, status.selected && classes.selected, status.focused && classes.focused, status.disabled && classes.disabled)
219
+ });
220
+ const IconContainer = slots.iconContainer ?? TreeItem2IconContainer;
221
+ const iconContainerProps = (0, _utils.useSlotProps)({
222
+ elementType: IconContainer,
223
+ getSlotProps: getIconContainerProps,
224
+ externalSlotProps: slotProps.iconContainer,
225
+ ownerState: {},
226
+ className: classes.iconContainer
227
+ });
228
+ const Label = slots.label ?? TreeItem2Label;
229
+ const labelProps = (0, _utils.useSlotProps)({
230
+ elementType: Label,
231
+ getSlotProps: getLabelProps,
232
+ externalSlotProps: slotProps.label,
233
+ ownerState: {},
234
+ className: classes.label
235
+ });
236
+ const GroupTransition = slots.groupTransition ?? undefined;
237
+ const groupTransitionProps = (0, _utils.useSlotProps)({
238
+ elementType: GroupTransition,
239
+ getSlotProps: getGroupTransitionProps,
240
+ externalSlotProps: slotProps.groupTransition,
241
+ ownerState: {},
242
+ className: classes.groupTransition
243
+ });
244
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItem2Provider.TreeItem2Provider, {
245
+ nodeId: nodeId,
246
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(Root, (0, _extends2.default)({}, rootProps, {
247
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(Content, (0, _extends2.default)({}, contentProps, {
248
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(IconContainer, (0, _extends2.default)({}, iconContainerProps, {
249
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_TreeItem2Icon.TreeItem2Icon, {
250
+ status: status,
251
+ slots: slots,
252
+ slotProps: slotProps
253
+ })
254
+ })), /*#__PURE__*/(0, _jsxRuntime.jsx)(Label, (0, _extends2.default)({}, labelProps))]
255
+ })), children && /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItem2GroupTransition, (0, _extends2.default)({
256
+ as: GroupTransition
257
+ }, groupTransitionProps))]
258
+ }))
259
+ });
260
+ });
261
+ process.env.NODE_ENV !== "production" ? TreeItem2.propTypes = {
262
+ // ----------------------------- Warning --------------------------------
263
+ // | These PropTypes are generated from the TypeScript type definitions |
264
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
265
+ // ----------------------------------------------------------------------
266
+ /**
267
+ * The content of the component.
268
+ */
269
+ children: _propTypes.default.node,
270
+ /**
271
+ * Override or extend the styles applied to the component.
272
+ */
273
+ classes: _propTypes.default.object,
274
+ className: _propTypes.default.string,
275
+ /**
276
+ * If `true`, the node is disabled.
277
+ * @default false
278
+ */
279
+ disabled: _propTypes.default.bool,
280
+ /**
281
+ * The id attribute of the node. If not provided, it will be generated.
282
+ */
283
+ id: _propTypes.default.string,
284
+ /**
285
+ * The label of the node.
286
+ */
287
+ label: _propTypes.default.node,
288
+ /**
289
+ * The id of the node.
290
+ * Must be unique.
291
+ */
292
+ nodeId: _propTypes.default.string.isRequired,
293
+ /**
294
+ * This prop isn't supported.
295
+ * Use the `onItemFocus` callback on the tree if you need to monitor a item's focus.
296
+ */
297
+ onFocus: _unsupportedProp.default,
298
+ /**
299
+ * The props used for each component slot.
300
+ * @default {}
301
+ */
302
+ slotProps: _propTypes.default.object,
303
+ /**
304
+ * Overridable component slots.
305
+ * @default {}
306
+ */
307
+ slots: _propTypes.default.object
308
+ } : void 0;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "TreeItem2", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _TreeItem.TreeItem2;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "TreeItem2Content", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _TreeItem.TreeItem2Content;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "TreeItem2GroupTransition", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _TreeItem.TreeItem2GroupTransition;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "TreeItem2IconContainer", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _TreeItem.TreeItem2IconContainer;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "TreeItem2Label", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _TreeItem.TreeItem2Label;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "TreeItem2Root", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _TreeItem.TreeItem2Root;
40
+ }
41
+ });
42
+ var _TreeItem = require("./TreeItem2");
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.TreeItem2Icon = TreeItem2Icon;
8
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var React = _interopRequireWildcard(require("react"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _utils = require("@mui/base/utils");
12
+ var _useTreeViewContext = require("../internals/TreeViewProvider/useTreeViewContext");
13
+ var _icons = require("../icons");
14
+ var _jsxRuntime = require("react/jsx-runtime");
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); }
16
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
+ function TreeItem2Icon(props) {
18
+ const {
19
+ slots,
20
+ slotProps,
21
+ status
22
+ } = props;
23
+ const context = (0, _useTreeViewContext.useTreeViewContext)();
24
+ const contextIcons = (0, _extends2.default)({}, context.icons.slots, {
25
+ expandIcon: context.icons.slots.expandIcon ?? _icons.TreeViewExpandIcon,
26
+ collapseIcon: context.icons.slots.collapseIcon ?? _icons.TreeViewCollapseIcon
27
+ });
28
+ const contextIconProps = context.icons.slotProps;
29
+ let iconName;
30
+ if (slots?.icon) {
31
+ iconName = 'icon';
32
+ } else if (status.expandable) {
33
+ if (status.expanded) {
34
+ iconName = 'collapseIcon';
35
+ } else {
36
+ iconName = 'expandIcon';
37
+ }
38
+ } else {
39
+ iconName = 'endIcon';
40
+ }
41
+ const Icon = slots?.[iconName] ?? contextIcons[iconName];
42
+ const iconProps = (0, _utils.useSlotProps)({
43
+ elementType: Icon,
44
+ externalSlotProps: tempOwnerState => (0, _extends2.default)({}, (0, _utils.resolveComponentProps)(contextIconProps[iconName], tempOwnerState), (0, _utils.resolveComponentProps)(slotProps?.[iconName], tempOwnerState)),
45
+ // TODO: Add proper ownerState
46
+ ownerState: {}
47
+ });
48
+ if (!Icon) {
49
+ return null;
50
+ }
51
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(Icon, (0, _extends2.default)({}, iconProps));
52
+ }
53
+ process.env.NODE_ENV !== "production" ? TreeItem2Icon.propTypes = {
54
+ // ----------------------------- Warning --------------------------------
55
+ // | These PropTypes are generated from the TypeScript type definitions |
56
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
57
+ // ----------------------------------------------------------------------
58
+ /**
59
+ * The props used for each component slot.
60
+ * @default {}
61
+ */
62
+ slotProps: _propTypes.default.object,
63
+ /**
64
+ * Overridable component slots.
65
+ * @default {}
66
+ */
67
+ slots: _propTypes.default.object,
68
+ status: _propTypes.default.shape({
69
+ disabled: _propTypes.default.bool.isRequired,
70
+ expandable: _propTypes.default.bool.isRequired,
71
+ expanded: _propTypes.default.bool.isRequired,
72
+ focused: _propTypes.default.bool.isRequired,
73
+ selected: _propTypes.default.bool.isRequired
74
+ }).isRequired
75
+ } : void 0;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "TreeItem2Icon", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _TreeItem2Icon.TreeItem2Icon;
10
+ }
11
+ });
12
+ var _TreeItem2Icon = require("./TreeItem2Icon");
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.TreeItem2Provider = TreeItem2Provider;
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+ var _useTreeViewContext = require("../internals/TreeViewProvider/useTreeViewContext");
10
+ function TreeItem2Provider(props) {
11
+ const {
12
+ children,
13
+ nodeId
14
+ } = props;
15
+ const {
16
+ wrapItem
17
+ } = (0, _useTreeViewContext.useTreeViewContext)();
18
+ return wrapItem({
19
+ children,
20
+ nodeId
21
+ });
22
+ }
23
+ TreeItem2Provider.propTypes = {
24
+ // ----------------------------- Warning --------------------------------
25
+ // | These PropTypes are generated from the TypeScript type definitions |
26
+ // | To update them edit the TypeScript types and run "yarn proptypes" |
27
+ // ----------------------------------------------------------------------
28
+ children: _propTypes.default.node,
29
+ nodeId: _propTypes.default.string.isRequired
30
+ };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });