@mui/x-tree-view 7.0.0-alpha.7 → 7.0.0-alpha.9

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 (164) hide show
  1. package/CHANGELOG.md +554 -51
  2. package/README.md +1 -1
  3. package/RichTreeView/RichTreeView.js +14 -79
  4. package/RichTreeView/RichTreeView.types.d.ts +6 -9
  5. package/RichTreeView/index.d.ts +1 -1
  6. package/SimpleTreeView/SimpleTreeView.js +17 -75
  7. package/SimpleTreeView/SimpleTreeView.plugins.d.ts +4 -2
  8. package/SimpleTreeView/SimpleTreeView.types.d.ts +8 -7
  9. package/SimpleTreeView/index.d.ts +1 -1
  10. package/TreeItem/TreeItem.js +62 -39
  11. package/TreeItem/TreeItem.types.d.ts +33 -17
  12. package/TreeItem/TreeItemContent.d.ts +0 -3
  13. package/TreeItem/TreeItemContent.js +2 -5
  14. package/TreeItem/index.d.ts +2 -2
  15. package/TreeItem/index.js +1 -1
  16. package/TreeItem/{useTreeItem.d.ts → useTreeItemState.d.ts} +1 -1
  17. package/TreeItem/{useTreeItem.js → useTreeItemState.js} +4 -2
  18. package/TreeView/TreeView.js +1 -22
  19. package/TreeView/TreeView.types.d.ts +5 -1
  20. package/TreeView/index.d.ts +1 -1
  21. package/icons/icons.d.ts +6 -0
  22. package/icons/icons.js +9 -0
  23. package/icons/index.d.ts +1 -0
  24. package/icons/index.js +1 -0
  25. package/icons/package.json +6 -0
  26. package/index.d.ts +1 -0
  27. package/index.js +3 -2
  28. package/internals/TreeViewProvider/TreeViewContext.d.ts +4 -2
  29. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +3 -11
  30. package/internals/TreeViewProvider/useTreeViewContext.js +1 -1
  31. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -1
  32. package/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.types.d.ts +3 -2
  33. package/internals/index.d.ts +15 -0
  34. package/internals/index.js +4 -0
  35. package/internals/models/MuiCancellableEvent.d.ts +4 -0
  36. package/internals/models/helpers.d.ts +7 -1
  37. package/internals/models/plugin.d.ts +65 -20
  38. package/internals/models/treeView.d.ts +1 -2
  39. package/internals/package.json +6 -0
  40. package/internals/plugins/defaultPlugins.d.ts +6 -4
  41. package/internals/plugins/defaultPlugins.js +2 -2
  42. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +14 -10
  43. package/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.types.d.ts +7 -3
  44. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +2 -5
  45. package/internals/plugins/useTreeViewFocus/useTreeViewFocus.types.d.ts +12 -6
  46. package/internals/plugins/useTreeViewIcons/index.d.ts +2 -0
  47. package/internals/plugins/useTreeViewIcons/index.js +1 -0
  48. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.d.ts +3 -0
  49. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +22 -0
  50. package/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.d.ts +43 -0
  51. package/internals/plugins/useTreeViewId/useTreeViewId.js +3 -0
  52. package/internals/plugins/useTreeViewId/useTreeViewId.types.d.ts +6 -2
  53. package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +2 -1
  54. package/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.types.d.ts +6 -4
  55. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +155 -112
  56. package/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.types.d.ts +9 -6
  57. package/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +21 -3
  58. package/internals/plugins/useTreeViewNodes/useTreeViewNodes.types.d.ts +10 -2
  59. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +17 -5
  60. package/internals/plugins/useTreeViewSelection/useTreeViewSelection.types.d.ts +15 -5
  61. package/internals/useTreeView/useTreeView.js +7 -3
  62. package/internals/useTreeView/useTreeView.types.d.ts +6 -6
  63. package/internals/useTreeView/useTreeViewModels.js +12 -13
  64. package/internals/utils/extractPluginParamsFromProps.d.ts +16 -0
  65. package/internals/utils/extractPluginParamsFromProps.js +38 -0
  66. package/legacy/RichTreeView/RichTreeView.js +15 -77
  67. package/legacy/SimpleTreeView/SimpleTreeView.js +14 -70
  68. package/legacy/TreeItem/TreeItem.js +63 -39
  69. package/legacy/TreeItem/TreeItemContent.js +9 -12
  70. package/legacy/TreeItem/index.js +1 -1
  71. package/legacy/TreeItem/{useTreeItem.js → useTreeItemState.js} +2 -2
  72. package/legacy/TreeView/TreeView.js +1 -22
  73. package/legacy/icons/icons.js +9 -0
  74. package/legacy/icons/index.js +1 -0
  75. package/legacy/index.js +3 -2
  76. package/legacy/internals/TreeViewProvider/useTreeViewContext.js +1 -1
  77. package/legacy/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -1
  78. package/legacy/internals/index.js +4 -0
  79. package/legacy/internals/plugins/defaultPlugins.js +2 -2
  80. package/legacy/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +16 -10
  81. package/legacy/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +2 -5
  82. package/legacy/internals/plugins/useTreeViewIcons/index.js +1 -0
  83. package/legacy/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +21 -0
  84. package/legacy/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +1 -0
  85. package/legacy/internals/plugins/useTreeViewId/useTreeViewId.js +3 -0
  86. package/legacy/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +2 -1
  87. package/legacy/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +157 -110
  88. package/legacy/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +20 -2
  89. package/legacy/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +20 -6
  90. package/legacy/internals/useTreeView/useTreeView.js +6 -2
  91. package/legacy/internals/useTreeView/useTreeViewModels.js +12 -13
  92. package/legacy/internals/utils/extractPluginParamsFromProps.js +36 -0
  93. package/modern/RichTreeView/RichTreeView.js +14 -79
  94. package/modern/SimpleTreeView/SimpleTreeView.js +17 -75
  95. package/modern/TreeItem/TreeItem.js +61 -39
  96. package/modern/TreeItem/TreeItemContent.js +2 -5
  97. package/modern/TreeItem/index.js +1 -1
  98. package/modern/TreeItem/{useTreeItem.js → useTreeItemState.js} +4 -2
  99. package/modern/TreeView/TreeView.js +1 -22
  100. package/modern/icons/icons.js +9 -0
  101. package/modern/icons/index.js +1 -0
  102. package/modern/index.js +3 -2
  103. package/modern/internals/TreeViewProvider/useTreeViewContext.js +1 -1
  104. package/modern/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -1
  105. package/modern/internals/index.js +4 -0
  106. package/modern/internals/models/MuiCancellableEvent.js +1 -0
  107. package/modern/internals/plugins/defaultPlugins.js +2 -2
  108. package/modern/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +14 -11
  109. package/modern/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +3 -3
  110. package/modern/internals/plugins/useTreeViewIcons/index.js +1 -0
  111. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +22 -0
  112. package/modern/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +1 -0
  113. package/modern/internals/plugins/useTreeViewId/useTreeViewId.js +3 -0
  114. package/modern/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +2 -1
  115. package/modern/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +155 -112
  116. package/modern/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +18 -3
  117. package/modern/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +18 -6
  118. package/modern/internals/useTreeView/useTreeView.js +7 -3
  119. package/modern/internals/useTreeView/useTreeViewModels.js +12 -13
  120. package/modern/internals/utils/extractPluginParamsFromProps.js +38 -0
  121. package/node/RichTreeView/RichTreeView.js +14 -79
  122. package/node/SimpleTreeView/SimpleTreeView.js +17 -75
  123. package/node/TreeItem/TreeItem.js +61 -39
  124. package/node/TreeItem/TreeItemContent.js +2 -5
  125. package/node/TreeItem/index.js +4 -4
  126. package/node/TreeItem/{useTreeItem.js → useTreeItemState.js} +5 -3
  127. package/node/TreeView/TreeView.js +1 -22
  128. package/node/icons/icons.js +17 -0
  129. package/node/icons/index.js +16 -0
  130. package/node/index.js +13 -1
  131. package/node/internals/TreeViewProvider/useTreeViewContext.js +1 -1
  132. package/node/internals/corePlugins/useTreeViewInstanceEvents/useTreeViewInstanceEvents.js +2 -1
  133. package/node/internals/index.js +33 -0
  134. package/node/internals/plugins/defaultPlugins.js +2 -2
  135. package/node/internals/plugins/useTreeViewExpansion/useTreeViewExpansion.js +14 -11
  136. package/node/internals/plugins/useTreeViewFocus/useTreeViewFocus.js +3 -3
  137. package/node/internals/plugins/useTreeViewIcons/index.js +12 -0
  138. package/node/internals/plugins/useTreeViewIcons/useTreeViewIcons.js +29 -0
  139. package/node/internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js +5 -0
  140. package/node/internals/plugins/useTreeViewId/useTreeViewId.js +4 -1
  141. package/node/internals/plugins/useTreeViewJSXNodes/useTreeViewJSXNodes.js +2 -1
  142. package/node/internals/plugins/useTreeViewKeyboardNavigation/useTreeViewKeyboardNavigation.js +155 -112
  143. package/node/internals/plugins/useTreeViewNodes/useTreeViewNodes.js +18 -3
  144. package/node/internals/plugins/useTreeViewSelection/useTreeViewSelection.js +18 -6
  145. package/node/internals/useTreeView/useTreeView.js +7 -3
  146. package/node/internals/useTreeView/useTreeViewModels.js +12 -13
  147. package/node/internals/utils/extractPluginParamsFromProps.js +46 -0
  148. package/package.json +7 -7
  149. package/themeAugmentation/components.d.ts +4 -4
  150. package/internals/plugins/useTreeViewContextValueBuilder/index.d.ts +0 -2
  151. package/internals/plugins/useTreeViewContextValueBuilder/index.js +0 -1
  152. package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.d.ts +0 -3
  153. package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +0 -26
  154. package/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.d.ts +0 -29
  155. package/legacy/internals/plugins/useTreeViewContextValueBuilder/index.js +0 -1
  156. package/legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +0 -28
  157. package/modern/internals/plugins/useTreeViewContextValueBuilder/index.js +0 -1
  158. package/modern/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +0 -26
  159. package/node/internals/plugins/useTreeViewContextValueBuilder/index.js +0 -12
  160. package/node/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.js +0 -33
  161. /package/internals/{plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js → models/MuiCancellableEvent.js} +0 -0
  162. /package/{legacy/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js → internals/plugins/useTreeViewIcons/useTreeViewIcons.types.js} +0 -0
  163. /package/{modern/internals/plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js → legacy/internals/models/MuiCancellableEvent.js} +0 -0
  164. /package/node/internals/{plugins/useTreeViewContextValueBuilder/useTreeViewContextValueBuilder.types.js → models/MuiCancellableEvent.js} +0 -0
@@ -2,14 +2,14 @@ import * as React from 'react';
2
2
  import { EventHandlers } from '@mui/base/utils';
3
3
  import type { TreeViewContextValue } from '../TreeViewProvider';
4
4
  import { TreeViewAnyPluginSignature, TreeViewPlugin, ConvertPluginsIntoSignatures, MergePluginsProperty, TreeViewInstance } from '../models';
5
- export type UseTreeViewParameters<TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[]> = {
5
+ export type UseTreeViewParameters<TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[]> = UseTreeViewBaseParameters<TPlugins> & MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, 'params'>;
6
+ export interface UseTreeViewBaseParameters<TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[]> {
6
7
  rootRef?: React.Ref<HTMLUListElement> | undefined;
7
8
  plugins: TPlugins;
8
- } & MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, 'params'>;
9
- export type UseTreeViewDefaultizedParameters<TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[]> = {
10
- rootRef?: React.Ref<HTMLUListElement> | undefined;
11
- plugins: TPlugins;
12
- } & MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, 'defaultizedParams'>;
9
+ slots: MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, 'slots'>;
10
+ slotProps: MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, 'slotProps'>;
11
+ }
12
+ export type UseTreeViewDefaultizedParameters<TPlugins extends readonly TreeViewPlugin<TreeViewAnyPluginSignature>[]> = UseTreeViewBaseParameters<TPlugins> & MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, 'defaultizedParams'>;
13
13
  export interface UseTreeViewRootSlotProps extends Pick<React.HTMLAttributes<HTMLUListElement>, 'onFocus' | 'onBlur' | 'onKeyDown' | 'id' | 'aria-activedescendant' | 'aria-multiselectable' | 'role' | 'tabIndex'> {
14
14
  ref: React.Ref<HTMLUListElement>;
15
15
  }
@@ -10,23 +10,22 @@ export const useTreeViewModels = (plugins, props) => {
10
10
  const initialState = {};
11
11
  plugins.forEach(plugin => {
12
12
  if (plugin.models) {
13
- Object.entries(plugin.models).forEach(([modelName, model]) => {
13
+ Object.entries(plugin.models).forEach(([modelName, modelInitializer]) => {
14
14
  modelsRef.current[modelName] = {
15
- controlledProp: model.controlledProp,
16
- defaultProp: model.defaultProp,
17
- isControlled: props[model.controlledProp] !== undefined
15
+ isControlled: props[modelName] !== undefined,
16
+ getDefaultValue: modelInitializer.getDefaultValue
18
17
  };
19
- initialState[modelName] = props[model.defaultProp];
18
+ initialState[modelName] = modelInitializer.getDefaultValue(props);
20
19
  });
21
20
  }
22
21
  });
23
22
  return initialState;
24
23
  });
25
24
  const models = Object.fromEntries(Object.entries(modelsRef.current).map(([modelName, model]) => {
26
- const value = model.isControlled ? props[model.controlledProp] : modelsState[modelName];
25
+ const value = model.isControlled ? props[modelName] : modelsState[modelName];
27
26
  return [modelName, {
28
27
  value,
29
- setValue: newValue => {
28
+ setControlledValue: newValue => {
30
29
  if (!model.isControlled) {
31
30
  setModelsState(prevState => _extends({}, prevState, {
32
31
  [modelName]: newValue
@@ -40,19 +39,19 @@ export const useTreeViewModels = (plugins, props) => {
40
39
  /* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */
41
40
  if (process.env.NODE_ENV !== 'production') {
42
41
  Object.entries(modelsRef.current).forEach(([modelName, model]) => {
43
- const controlled = props[model.controlledProp];
44
- const defaultProp = props[model.defaultProp];
42
+ const controlled = props[modelName];
43
+ const newDefaultValue = model.getDefaultValue(props);
45
44
  React.useEffect(() => {
46
45
  if (model.isControlled !== (controlled !== undefined)) {
47
- console.error([`MUI: A component is changing the ${model.isControlled ? '' : 'un'}controlled ${modelName} state of TreeView to be ${model.isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${modelName} ` + 'element for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'].join('\n'));
46
+ console.error([`MUI X: A component is changing the ${model.isControlled ? '' : 'un'}controlled ${modelName} state of TreeView to be ${model.isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${modelName} ` + 'element for the lifetime of the component.', "The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.", 'More info: https://fb.me/react-controlled-components'].join('\n'));
48
47
  }
49
48
  }, [controlled]);
50
49
  const {
51
50
  current: defaultValue
52
- } = React.useRef(defaultProp);
51
+ } = React.useRef(newDefaultValue);
53
52
  React.useEffect(() => {
54
- if (!model.isControlled && defaultValue !== defaultProp) {
55
- console.error([`MUI: A component is changing the default ${modelName} state of an uncontrolled TreeView after being initialized. ` + `To suppress this warning opt to use a controlled TreeView.`].join('\n'));
53
+ if (!model.isControlled && defaultValue !== newDefaultValue) {
54
+ console.error([`MUI X: A component is changing the default ${modelName} state of an uncontrolled TreeView after being initialized. ` + `To suppress this warning opt to use a controlled TreeView.`].join('\n'));
56
55
  }
57
56
  }, [JSON.stringify(defaultValue)]);
58
57
  });
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { ConvertPluginsIntoSignatures, MergePluginsProperty, TreeViewPlugin } from '../models';
3
+ import { UseTreeViewBaseParameters } from '../useTreeView/useTreeView.types';
4
+ export declare const extractPluginParamsFromProps: <TPlugins extends readonly TreeViewPlugin<any>[], TSlots extends MergePluginsProperty<TPlugins, "slots">, TSlotProps extends MergePluginsProperty<TPlugins, "slotProps">, TProps extends {
5
+ slots?: TSlots | undefined;
6
+ slotProps?: TSlotProps | undefined;
7
+ }>({ props: { slots, slotProps, ...props }, plugins, rootRef, }: {
8
+ props: TProps;
9
+ plugins: TPlugins;
10
+ rootRef?: React.Ref<HTMLUListElement> | undefined;
11
+ }) => {
12
+ pluginParams: UseTreeViewBaseParameters<TPlugins> & MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, "params">;
13
+ slots: TSlots | undefined;
14
+ slotProps: TSlotProps | undefined;
15
+ otherProps: Omit<TProps, keyof MergePluginsProperty<ConvertPluginsIntoSignatures<TPlugins>, "params">>;
16
+ };
@@ -0,0 +1,38 @@
1
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
+ const _excluded = ["slots", "slotProps"];
3
+ export const extractPluginParamsFromProps = _ref => {
4
+ let {
5
+ props: {
6
+ slots,
7
+ slotProps
8
+ },
9
+ plugins,
10
+ rootRef
11
+ } = _ref,
12
+ props = _objectWithoutPropertiesLoose(_ref.props, _excluded);
13
+ const paramsLookup = {};
14
+ plugins.forEach(plugin => {
15
+ Object.assign(paramsLookup, plugin.params);
16
+ });
17
+ const pluginParams = {
18
+ plugins,
19
+ rootRef,
20
+ slots: slots != null ? slots : {},
21
+ slotProps: slotProps != null ? slotProps : {}
22
+ };
23
+ const otherProps = {};
24
+ Object.keys(props).forEach(propName => {
25
+ const prop = props[propName];
26
+ if (paramsLookup[propName]) {
27
+ pluginParams[propName] = prop;
28
+ } else {
29
+ otherProps[propName] = prop;
30
+ }
31
+ });
32
+ return {
33
+ pluginParams,
34
+ slots,
35
+ slotProps,
36
+ otherProps
37
+ };
38
+ };
@@ -1,6 +1,4 @@
1
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
1
  import _extends from "@babel/runtime/helpers/esm/extends";
3
- var _excluded = ["disabledItemsFocusable", "expandedNodes", "defaultExpandedNodes", "onExpandedNodesChange", "onNodeExpansionToggle", "onNodeFocus", "disableSelection", "defaultSelectedNodes", "selectedNodes", "multiSelect", "onSelectedNodesChange", "onNodeSelectionToggle", "id", "defaultCollapseIcon", "defaultEndIcon", "defaultExpandIcon", "defaultParentIcon", "items", "getItemId", "getItemLabel", "isItemDisabled", "slots", "slotProps"];
4
2
  import * as React from 'react';
5
3
  import PropTypes from 'prop-types';
6
4
  import { styled, useThemeProps } from '@mui/material/styles';
@@ -12,6 +10,7 @@ import { TreeViewProvider } from '../internals/TreeViewProvider';
12
10
  import { DEFAULT_TREE_VIEW_PLUGINS } from '../internals/plugins';
13
11
  import { TreeItem } from '../TreeItem';
14
12
  import { buildWarning } from '../internals/utils/warning';
13
+ import { extractPluginParamsFromProps } from '../internals/utils/extractPluginParamsFromProps';
15
14
  import { jsx as _jsx } from "react/jsx-runtime";
16
15
  var useUtilityClasses = function useUtilityClasses(ownerState) {
17
16
  var classes = ownerState.classes;
@@ -58,7 +57,7 @@ function WrappedTreeItem(_ref) {
58
57
  children: children
59
58
  }));
60
59
  }
61
- var childrenWarning = buildWarning(['MUI: The `RichTreeView` component does not support JSX children.', 'If you want to add items, you need to use the `items` prop', 'Check the documentation for more details: https://next.mui.com/x/react-tree-view/rich-tree-view/items/']);
60
+ var childrenWarning = buildWarning(['MUI X: The `RichTreeView` component does not support JSX children.', 'If you want to add items, you need to use the `items` prop', 'Check the documentation for more details: https://next.mui.com/x/react-tree-view/rich-tree-view/items/']);
62
61
 
63
62
  /**
64
63
  *
@@ -76,61 +75,21 @@ var RichTreeView = /*#__PURE__*/React.forwardRef(function RichTreeView(inProps,
76
75
  props: inProps,
77
76
  name: 'MuiRichTreeView'
78
77
  });
79
- var _ref2 = props,
80
- disabledItemsFocusable = _ref2.disabledItemsFocusable,
81
- expandedNodes = _ref2.expandedNodes,
82
- defaultExpandedNodes = _ref2.defaultExpandedNodes,
83
- onExpandedNodesChange = _ref2.onExpandedNodesChange,
84
- onNodeExpansionToggle = _ref2.onNodeExpansionToggle,
85
- onNodeFocus = _ref2.onNodeFocus,
86
- disableSelection = _ref2.disableSelection,
87
- defaultSelectedNodes = _ref2.defaultSelectedNodes,
88
- selectedNodes = _ref2.selectedNodes,
89
- multiSelect = _ref2.multiSelect,
90
- onSelectedNodesChange = _ref2.onSelectedNodesChange,
91
- onNodeSelectionToggle = _ref2.onNodeSelectionToggle,
92
- treeId = _ref2.id,
93
- defaultCollapseIcon = _ref2.defaultCollapseIcon,
94
- defaultEndIcon = _ref2.defaultEndIcon,
95
- defaultExpandIcon = _ref2.defaultExpandIcon,
96
- defaultParentIcon = _ref2.defaultParentIcon,
97
- items = _ref2.items,
98
- getItemId = _ref2.getItemId,
99
- getItemLabel = _ref2.getItemLabel,
100
- isItemDisabled = _ref2.isItemDisabled,
101
- slots = _ref2.slots,
102
- slotProps = _ref2.slotProps,
103
- other = _objectWithoutProperties(_ref2, _excluded);
104
78
  if (process.env.NODE_ENV !== 'production') {
105
79
  if (props.children != null) {
106
80
  childrenWarning();
107
81
  }
108
82
  }
109
- var _useTreeView = useTreeView({
110
- disabledItemsFocusable: disabledItemsFocusable,
111
- expandedNodes: expandedNodes,
112
- defaultExpandedNodes: defaultExpandedNodes,
113
- onExpandedNodesChange: onExpandedNodesChange,
114
- onNodeExpansionToggle: onNodeExpansionToggle,
115
- onNodeFocus: onNodeFocus,
116
- disableSelection: disableSelection,
117
- defaultSelectedNodes: defaultSelectedNodes,
118
- selectedNodes: selectedNodes,
119
- multiSelect: multiSelect,
120
- onSelectedNodesChange: onSelectedNodesChange,
121
- onNodeSelectionToggle: onNodeSelectionToggle,
122
- id: treeId,
123
- defaultCollapseIcon: defaultCollapseIcon,
124
- defaultEndIcon: defaultEndIcon,
125
- defaultExpandIcon: defaultExpandIcon,
126
- defaultParentIcon: defaultParentIcon,
127
- items: items,
128
- getItemId: getItemId,
129
- getItemLabel: getItemLabel,
130
- isItemDisabled: isItemDisabled,
83
+ var _extractPluginParamsF = extractPluginParamsFromProps({
84
+ props: props,
131
85
  plugins: DEFAULT_TREE_VIEW_PLUGINS,
132
86
  rootRef: ref
133
87
  }),
88
+ pluginParams = _extractPluginParamsF.pluginParams,
89
+ slots = _extractPluginParamsF.slots,
90
+ slotProps = _extractPluginParamsF.slotProps,
91
+ otherProps = _extractPluginParamsF.otherProps;
92
+ var _useTreeView = useTreeView(pluginParams),
134
93
  getRootProps = _useTreeView.getRootProps,
135
94
  contextValue = _useTreeView.contextValue,
136
95
  instance = _useTreeView.instance;
@@ -139,17 +98,17 @@ var RichTreeView = /*#__PURE__*/React.forwardRef(function RichTreeView(inProps,
139
98
  var rootProps = useSlotProps({
140
99
  elementType: Root,
141
100
  externalSlotProps: slotProps == null ? void 0 : slotProps.root,
142
- externalForwardedProps: other,
101
+ externalForwardedProps: otherProps,
143
102
  className: classes.root,
144
103
  getSlotProps: getRootProps,
145
104
  ownerState: props
146
105
  });
147
106
  var nodesToRender = instance.getNodesToRender();
148
- var renderNode = function renderNode(_ref3) {
149
- var label = _ref3.label,
150
- nodeId = _ref3.nodeId,
151
- id = _ref3.id,
152
- children = _ref3.children;
107
+ var renderNode = function renderNode(_ref2) {
108
+ var label = _ref2.label,
109
+ nodeId = _ref2.nodeId,
110
+ id = _ref2.id,
111
+ children = _ref2.children;
153
112
  return /*#__PURE__*/_jsx(WrappedTreeItem, {
154
113
  slots: slots,
155
114
  slotProps: slotProps,
@@ -175,34 +134,13 @@ process.env.NODE_ENV !== "production" ? RichTreeView.propTypes = {
175
134
  * Override or extend the styles applied to the component.
176
135
  */
177
136
  classes: PropTypes.object,
178
- /**
179
- * className applied to the root element.
180
- */
181
137
  className: PropTypes.string,
182
- /**
183
- * The default icon used to collapse the node.
184
- */
185
- defaultCollapseIcon: PropTypes.node,
186
- /**
187
- * The default icon displayed next to a end node. This is applied to all
188
- * tree nodes and can be overridden by the TreeItem `icon` prop.
189
- */
190
- defaultEndIcon: PropTypes.node,
191
138
  /**
192
139
  * Expanded node ids.
193
140
  * Used when the item's expansion is not controlled.
194
141
  * @default []
195
142
  */
196
143
  defaultExpandedNodes: PropTypes.arrayOf(PropTypes.string),
197
- /**
198
- * The default icon used to expand the node.
199
- */
200
- defaultExpandIcon: PropTypes.node,
201
- /**
202
- * The default icon displayed next to a parent node. This is applied to all
203
- * parent nodes and can be overridden by the TreeItem `icon` prop.
204
- */
205
- defaultParentIcon: PropTypes.node,
206
144
  /**
207
145
  * Selected node ids. (Uncontrolled)
208
146
  * When `multiSelect` is true this takes an array of strings; when false (default) a string.
@@ -1,6 +1,4 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
- var _excluded = ["disabledItemsFocusable", "expandedNodes", "defaultExpandedNodes", "onExpandedNodesChange", "onNodeExpansionToggle", "onNodeFocus", "disableSelection", "defaultSelectedNodes", "selectedNodes", "multiSelect", "onSelectedNodesChange", "onNodeSelectionToggle", "id", "defaultCollapseIcon", "defaultEndIcon", "defaultExpandIcon", "defaultParentIcon", "children", "slots", "slotProps"];
4
2
  import * as React from 'react';
5
3
  import PropTypes from 'prop-types';
6
4
  import { styled, useThemeProps } from '@mui/material/styles';
@@ -11,6 +9,7 @@ import { useTreeView } from '../internals/useTreeView';
11
9
  import { TreeViewProvider } from '../internals/TreeViewProvider';
12
10
  import { SIMPLE_TREE_VIEW_PLUGINS } from './SimpleTreeView.plugins';
13
11
  import { buildWarning } from '../internals/utils/warning';
12
+ import { extractPluginParamsFromProps } from '../internals/utils/extractPluginParamsFromProps';
14
13
  import { jsx as _jsx } from "react/jsx-runtime";
15
14
  var useUtilityClasses = function useUtilityClasses(ownerState) {
16
15
  var classes = ownerState.classes;
@@ -32,7 +31,7 @@ export var SimpleTreeViewRoot = styled('ul', {
32
31
  outline: 0
33
32
  });
34
33
  var EMPTY_ITEMS = [];
35
- var itemsPropWarning = buildWarning(['MUI: The `SimpleTreeView` component does not support the `items` prop.', 'If you want to add items, you need to pass them as JSX children.', 'Check the documentation for more details: https://next.mui.com/x/react-tree-view/simple-tree-view/items/']);
34
+ var itemsPropWarning = buildWarning(['MUI X: The `SimpleTreeView` component does not support the `items` prop.', 'If you want to add items, you need to pass them as JSX children.', 'Check the documentation for more details: https://next.mui.com/x/react-tree-view/simple-tree-view/items/']);
36
35
 
37
36
  /**
38
37
  *
@@ -51,72 +50,38 @@ var SimpleTreeView = /*#__PURE__*/React.forwardRef(function SimpleTreeView(inPro
51
50
  name: 'MuiSimpleTreeView'
52
51
  });
53
52
  var ownerState = props;
54
- var _ref = props,
55
- disabledItemsFocusable = _ref.disabledItemsFocusable,
56
- expandedNodes = _ref.expandedNodes,
57
- defaultExpandedNodes = _ref.defaultExpandedNodes,
58
- onExpandedNodesChange = _ref.onExpandedNodesChange,
59
- onNodeExpansionToggle = _ref.onNodeExpansionToggle,
60
- onNodeFocus = _ref.onNodeFocus,
61
- disableSelection = _ref.disableSelection,
62
- defaultSelectedNodes = _ref.defaultSelectedNodes,
63
- selectedNodes = _ref.selectedNodes,
64
- multiSelect = _ref.multiSelect,
65
- onSelectedNodesChange = _ref.onSelectedNodesChange,
66
- onNodeSelectionToggle = _ref.onNodeSelectionToggle,
67
- id = _ref.id,
68
- defaultCollapseIcon = _ref.defaultCollapseIcon,
69
- defaultEndIcon = _ref.defaultEndIcon,
70
- defaultExpandIcon = _ref.defaultExpandIcon,
71
- defaultParentIcon = _ref.defaultParentIcon,
72
- children = _ref.children,
73
- slots = _ref.slots,
74
- slotProps = _ref.slotProps,
75
- other = _objectWithoutProperties(_ref, _excluded);
76
53
  if (process.env.NODE_ENV !== 'production') {
77
54
  if (props.items != null) {
78
55
  itemsPropWarning();
79
56
  }
80
57
  }
81
- var _useTreeView = useTreeView({
82
- disabledItemsFocusable: disabledItemsFocusable,
83
- expandedNodes: expandedNodes,
84
- defaultExpandedNodes: defaultExpandedNodes,
85
- onExpandedNodesChange: onExpandedNodesChange,
86
- onNodeExpansionToggle: onNodeExpansionToggle,
87
- onNodeFocus: onNodeFocus,
88
- disableSelection: disableSelection,
89
- defaultSelectedNodes: defaultSelectedNodes,
90
- selectedNodes: selectedNodes,
91
- multiSelect: multiSelect,
92
- onSelectedNodesChange: onSelectedNodesChange,
93
- onNodeSelectionToggle: onNodeSelectionToggle,
94
- id: id,
95
- defaultCollapseIcon: defaultCollapseIcon,
96
- defaultEndIcon: defaultEndIcon,
97
- defaultExpandIcon: defaultExpandIcon,
98
- defaultParentIcon: defaultParentIcon,
99
- items: EMPTY_ITEMS,
58
+ var _extractPluginParamsF = extractPluginParamsFromProps({
59
+ props: _extends({}, props, {
60
+ items: EMPTY_ITEMS
61
+ }),
100
62
  plugins: SIMPLE_TREE_VIEW_PLUGINS,
101
63
  rootRef: ref
102
64
  }),
65
+ pluginParams = _extractPluginParamsF.pluginParams,
66
+ slots = _extractPluginParamsF.slots,
67
+ slotProps = _extractPluginParamsF.slotProps,
68
+ otherProps = _extractPluginParamsF.otherProps;
69
+ var _useTreeView = useTreeView(pluginParams),
103
70
  getRootProps = _useTreeView.getRootProps,
104
71
  contextValue = _useTreeView.contextValue;
105
72
  var classes = useUtilityClasses(props);
106
73
  var Root = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : SimpleTreeViewRoot;
107
74
  var rootProps = useSlotProps({
108
75
  elementType: Root,
109
- externalSlotProps: {},
110
- externalForwardedProps: other,
76
+ externalSlotProps: slotProps == null ? void 0 : slotProps.root,
77
+ externalForwardedProps: otherProps,
111
78
  className: classes.root,
112
79
  getSlotProps: getRootProps,
113
80
  ownerState: ownerState
114
81
  });
115
82
  return /*#__PURE__*/_jsx(TreeViewProvider, {
116
83
  value: contextValue,
117
- children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {
118
- children: children
119
- }))
84
+ children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps))
120
85
  });
121
86
  });
122
87
  process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
@@ -132,34 +97,13 @@ process.env.NODE_ENV !== "production" ? SimpleTreeView.propTypes = {
132
97
  * Override or extend the styles applied to the component.
133
98
  */
134
99
  classes: PropTypes.object,
135
- /**
136
- * className applied to the root element.
137
- */
138
100
  className: PropTypes.string,
139
- /**
140
- * The default icon used to collapse the node.
141
- */
142
- defaultCollapseIcon: PropTypes.node,
143
- /**
144
- * The default icon displayed next to a end node. This is applied to all
145
- * tree nodes and can be overridden by the TreeItem `icon` prop.
146
- */
147
- defaultEndIcon: PropTypes.node,
148
101
  /**
149
102
  * Expanded node ids.
150
103
  * Used when the item's expansion is not controlled.
151
104
  * @default []
152
105
  */
153
106
  defaultExpandedNodes: PropTypes.arrayOf(PropTypes.string),
154
- /**
155
- * The default icon used to expand the node.
156
- */
157
- defaultExpandIcon: PropTypes.node,
158
- /**
159
- * The default icon displayed next to a parent node. This is applied to all
160
- * parent nodes and can be overridden by the TreeItem `icon` prop.
161
- */
162
- defaultParentIcon: PropTypes.node,
163
107
  /**
164
108
  * Selected node ids. (Uncontrolled)
165
109
  * When `multiSelect` is true this takes an array of strings; when false (default) a string.
@@ -1,11 +1,15 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
4
- var _excluded = ["children", "className", "collapseIcon", "ContentComponent", "ContentProps", "endIcon", "expandIcon", "icon", "nodeId", "id", "label", "onClick", "onMouseDown", "TransitionComponent", "TransitionProps"];
4
+ var _excluded = ["children", "className", "slots", "slotProps", "ContentComponent", "ContentProps", "nodeId", "id", "label", "onClick", "onMouseDown", "TransitionComponent", "TransitionProps"],
5
+ _excluded2 = ["ownerState"],
6
+ _excluded3 = ["ownerState"],
7
+ _excluded4 = ["ownerState"];
5
8
  import * as React from 'react';
6
9
  import PropTypes from 'prop-types';
7
10
  import clsx from 'clsx';
8
11
  import Collapse from '@mui/material/Collapse';
12
+ import { resolveComponentProps, useSlotProps } from '@mui/base/utils';
9
13
  import { alpha, styled, useThemeProps } from '@mui/material/styles';
10
14
  import unsupportedProp from '@mui/utils/unsupportedProp';
11
15
  import elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';
@@ -13,6 +17,7 @@ import { unstable_composeClasses as composeClasses } from '@mui/base';
13
17
  import { TreeItemContent } from './TreeItemContent';
14
18
  import { treeItemClasses, getTreeItemUtilityClass } from './treeItemClasses';
15
19
  import { useTreeViewContext } from '../internals/TreeViewProvider/useTreeViewContext';
20
+ import { TreeViewCollapseIcon, TreeViewExpandIcon } from '../icons';
16
21
  import { jsx as _jsx } from "react/jsx-runtime";
17
22
  import { jsxs as _jsxs } from "react/jsx-runtime";
18
23
  var useUtilityClasses = function useUtilityClasses(ownerState) {
@@ -124,10 +129,11 @@ var TreeItemGroup = styled(Collapse, {
124
129
  * - [TreeItem API](https://mui.com/x/api/tree-view/tree-item/)
125
130
  */
126
131
  export var TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps, inRef) {
132
+ var _ref5, _inSlots$expandIcon, _ref6, _inSlots$collapseIcon, _inSlots$endIcon;
127
133
  var _useTreeViewContext = useTreeViewContext(),
128
134
  contextIcons = _useTreeViewContext.icons,
129
135
  runItemPlugins = _useTreeViewContext.runItemPlugins,
130
- multiSelect = _useTreeViewContext.multiSelect,
136
+ multiSelect = _useTreeViewContext.selection.multiSelect,
131
137
  disabledItemsFocusable = _useTreeViewContext.disabledItemsFocusable,
132
138
  instance = _useTreeViewContext.instance;
133
139
  var inPropsWithTheme = useThemeProps({
@@ -143,13 +149,11 @@ export var TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps, i
143
149
  wrapItem = _runItemPlugins.wrapItem;
144
150
  var children = props.children,
145
151
  className = props.className,
146
- collapseIcon = props.collapseIcon,
152
+ inSlots = props.slots,
153
+ inSlotProps = props.slotProps,
147
154
  _props$ContentCompone = props.ContentComponent,
148
155
  ContentComponent = _props$ContentCompone === void 0 ? TreeItemContent : _props$ContentCompone,
149
156
  ContentProps = props.ContentProps,
150
- endIcon = props.endIcon,
151
- expandIcon = props.expandIcon,
152
- icon = props.icon,
153
157
  nodeId = props.nodeId,
154
158
  id = props.id,
155
159
  label = props.label,
@@ -159,6 +163,12 @@ export var TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps, i
159
163
  TransitionComponent = _props$TransitionComp === void 0 ? Collapse : _props$TransitionComp,
160
164
  TransitionProps = props.TransitionProps,
161
165
  other = _objectWithoutProperties(props, _excluded);
166
+ var slots = {
167
+ expandIcon: (_ref5 = (_inSlots$expandIcon = inSlots == null ? void 0 : inSlots.expandIcon) != null ? _inSlots$expandIcon : contextIcons.slots.expandIcon) != null ? _ref5 : TreeViewExpandIcon,
168
+ collapseIcon: (_ref6 = (_inSlots$collapseIcon = inSlots == null ? void 0 : inSlots.collapseIcon) != null ? _inSlots$collapseIcon : contextIcons.slots.collapseIcon) != null ? _ref6 : TreeViewCollapseIcon,
169
+ endIcon: (_inSlots$endIcon = inSlots == null ? void 0 : inSlots.endIcon) != null ? _inSlots$endIcon : contextIcons.slots.endIcon,
170
+ icon: inSlots == null ? void 0 : inSlots.icon
171
+ };
162
172
  var expandable = Boolean(Array.isArray(children) ? children.length : children);
163
173
  var expanded = instance.isNodeExpanded(nodeId);
164
174
  var focused = instance.isNodeFocused(nodeId);
@@ -171,20 +181,43 @@ export var TreeItem = /*#__PURE__*/React.forwardRef(function TreeItem(inProps, i
171
181
  disabled: disabled
172
182
  });
173
183
  var classes = useUtilityClasses(ownerState);
174
- var displayIcon;
175
- var expansionIcon;
176
- if (expandable) {
177
- if (!expanded) {
178
- expansionIcon = expandIcon || contextIcons.defaultExpandIcon;
179
- } else {
180
- expansionIcon = collapseIcon || contextIcons.defaultCollapseIcon;
181
- }
182
- }
183
- if (expandable) {
184
- displayIcon = contextIcons.defaultParentIcon;
185
- } else {
186
- displayIcon = endIcon || contextIcons.defaultEndIcon;
187
- }
184
+ var ExpansionIcon = expanded ? slots.collapseIcon : slots.expandIcon;
185
+ var _useSlotProps = useSlotProps({
186
+ elementType: ExpansionIcon,
187
+ ownerState: {},
188
+ externalSlotProps: function externalSlotProps(tempOwnerState) {
189
+ if (expanded) {
190
+ return _extends({}, resolveComponentProps(contextIcons.slotProps.collapseIcon, tempOwnerState), resolveComponentProps(inSlotProps == null ? void 0 : inSlotProps.collapseIcon, tempOwnerState));
191
+ }
192
+ return _extends({}, resolveComponentProps(contextIcons.slotProps.expandIcon, tempOwnerState), resolveComponentProps(inSlotProps == null ? void 0 : inSlotProps.expandIcon, tempOwnerState));
193
+ }
194
+ }),
195
+ expansionIconOwnerState = _useSlotProps.ownerState,
196
+ expansionIconProps = _objectWithoutProperties(_useSlotProps, _excluded2);
197
+ var expansionIcon = expandable && !!ExpansionIcon ? /*#__PURE__*/_jsx(ExpansionIcon, _extends({}, expansionIconProps)) : null;
198
+ var DisplayIcon = expandable ? undefined : slots.endIcon;
199
+ var _useSlotProps2 = useSlotProps({
200
+ elementType: DisplayIcon,
201
+ ownerState: {},
202
+ externalSlotProps: function externalSlotProps(tempOwnerState) {
203
+ if (expandable) {
204
+ return {};
205
+ }
206
+ return _extends({}, resolveComponentProps(contextIcons.slotProps.endIcon, tempOwnerState), resolveComponentProps(inSlotProps == null ? void 0 : inSlotProps.endIcon, tempOwnerState));
207
+ }
208
+ }),
209
+ displayIconOwnerState = _useSlotProps2.ownerState,
210
+ displayIconProps = _objectWithoutProperties(_useSlotProps2, _excluded3);
211
+ var displayIcon = DisplayIcon ? /*#__PURE__*/_jsx(DisplayIcon, _extends({}, displayIconProps)) : null;
212
+ var Icon = slots.icon;
213
+ var _useSlotProps3 = useSlotProps({
214
+ elementType: Icon,
215
+ ownerState: {},
216
+ externalSlotProps: inSlotProps == null ? void 0 : inSlotProps.icon
217
+ }),
218
+ iconOwnerState = _useSlotProps3.ownerState,
219
+ iconProps = _objectWithoutProperties(_useSlotProps3, _excluded4);
220
+ var icon = Icon ? /*#__PURE__*/_jsx(Icon, _extends({}, iconProps)) : null;
188
221
  var ariaSelected;
189
222
  if (multiSelect) {
190
223
  ariaSelected = selected;
@@ -265,14 +298,7 @@ TreeItem.propTypes = {
265
298
  * Override or extend the styles applied to the component.
266
299
  */
267
300
  classes: PropTypes.object,
268
- /**
269
- * className applied to the root element.
270
- */
271
301
  className: PropTypes.string,
272
- /**
273
- * The icon used to collapse the node.
274
- */
275
- collapseIcon: PropTypes.node,
276
302
  /**
277
303
  * The component used for the content node.
278
304
  * @default TreeItemContent
@@ -287,18 +313,6 @@ TreeItem.propTypes = {
287
313
  * @default false
288
314
  */
289
315
  disabled: PropTypes.bool,
290
- /**
291
- * The icon displayed next to an end node.
292
- */
293
- endIcon: PropTypes.node,
294
- /**
295
- * The icon used to expand the node.
296
- */
297
- expandIcon: PropTypes.node,
298
- /**
299
- * The icon to display next to the tree node's label.
300
- */
301
- icon: PropTypes.node,
302
316
  /**
303
317
  * The tree node label.
304
318
  */
@@ -312,6 +326,16 @@ TreeItem.propTypes = {
312
326
  * Use the `onNodeFocus` callback on the tree if you need to monitor a node's focus.
313
327
  */
314
328
  onFocus: unsupportedProp,
329
+ /**
330
+ * The props used for each component slot.
331
+ * @default {}
332
+ */
333
+ slotProps: PropTypes.object,
334
+ /**
335
+ * Overridable component slots.
336
+ * @default {}
337
+ */
338
+ slots: PropTypes.object,
315
339
  /**
316
340
  * The system prop that allows defining system overrides as well as additional CSS styles.
317
341
  */
@@ -4,7 +4,7 @@ var _excluded = ["classes", "className", "displayIcon", "expansionIcon", "icon",
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
- import { useTreeItem } from './useTreeItem';
7
+ import { useTreeItemState } from './useTreeItemState';
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
9
  import { jsxs as _jsxs } from "react/jsx-runtime";
10
10
  /**
@@ -21,14 +21,14 @@ var TreeItemContent = /*#__PURE__*/React.forwardRef(function TreeItemContent(pro
21
21
  onClick = props.onClick,
22
22
  onMouseDown = props.onMouseDown,
23
23
  other = _objectWithoutProperties(props, _excluded);
24
- var _useTreeItem = useTreeItem(nodeId),
25
- disabled = _useTreeItem.disabled,
26
- expanded = _useTreeItem.expanded,
27
- selected = _useTreeItem.selected,
28
- focused = _useTreeItem.focused,
29
- handleExpansion = _useTreeItem.handleExpansion,
30
- handleSelection = _useTreeItem.handleSelection,
31
- preventSelection = _useTreeItem.preventSelection;
24
+ var _useTreeItemState = useTreeItemState(nodeId),
25
+ disabled = _useTreeItemState.disabled,
26
+ expanded = _useTreeItemState.expanded,
27
+ selected = _useTreeItemState.selected,
28
+ focused = _useTreeItemState.focused,
29
+ handleExpansion = _useTreeItemState.handleExpansion,
30
+ handleSelection = _useTreeItemState.handleSelection,
31
+ preventSelection = _useTreeItemState.preventSelection;
32
32
  var icon = iconProp || expansionIcon || displayIcon;
33
33
  var handleMouseDown = function handleMouseDown(event) {
34
34
  preventSelection(event);
@@ -70,9 +70,6 @@ process.env.NODE_ENV !== "production" ? TreeItemContent.propTypes = {
70
70
  * Override or extend the styles applied to the component.
71
71
  */
72
72
  classes: PropTypes.object.isRequired,
73
- /**
74
- * className applied to the root element.
75
- */
76
73
  className: PropTypes.string,
77
74
  /**
78
75
  * The icon to display next to the tree node's label. Either a parent or end icon.
@@ -1,4 +1,4 @@
1
1
  export { TreeItem } from './TreeItem';
2
2
  export * from './treeItemClasses';
3
- export * from './useTreeItem';
3
+ export * from './useTreeItemState';
4
4
  export { TreeItemContent } from './TreeItemContent';