@mui/x-tree-view 9.12.0 → 9.13.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 (108) hide show
  1. package/CHANGELOG.md +152 -0
  2. package/RichTreeView/RichTreeView.js +30 -25
  3. package/RichTreeView/RichTreeView.mjs +30 -25
  4. package/RichTreeView/RichTreeView.types.d.mts +27 -1
  5. package/RichTreeView/RichTreeView.types.d.ts +27 -1
  6. package/RichTreeView/richTreeViewClasses.d.mts +4 -1
  7. package/RichTreeView/richTreeViewClasses.d.ts +4 -1
  8. package/RichTreeView/richTreeViewClasses.js +1 -1
  9. package/RichTreeView/richTreeViewClasses.mjs +1 -1
  10. package/RichTreeView/useExtractRichTreeViewParameters.d.mts +1 -0
  11. package/RichTreeView/useExtractRichTreeViewParameters.d.ts +1 -0
  12. package/RichTreeView/useExtractRichTreeViewParameters.js +6 -3
  13. package/RichTreeView/useExtractRichTreeViewParameters.mjs +6 -3
  14. package/SimpleTreeView/simpleTreeViewClasses.d.mts +1 -1
  15. package/SimpleTreeView/simpleTreeViewClasses.d.ts +1 -1
  16. package/TreeItem/TreeItem.js +2 -1
  17. package/TreeItem/TreeItem.mjs +2 -1
  18. package/TreeItemLoader/TreeItemLoader.d.mts +20 -0
  19. package/TreeItemLoader/TreeItemLoader.d.ts +20 -0
  20. package/TreeItemLoader/TreeItemLoader.js +152 -0
  21. package/TreeItemLoader/TreeItemLoader.mjs +146 -0
  22. package/TreeItemLoader/TreeItemLoader.types.d.mts +36 -0
  23. package/TreeItemLoader/TreeItemLoader.types.d.ts +36 -0
  24. package/TreeItemLoader/TreeItemLoader.types.js +5 -0
  25. package/TreeItemLoader/TreeItemLoader.types.mjs +1 -0
  26. package/TreeItemLoader/TreeItemLoaderContext.d.mts +24 -0
  27. package/TreeItemLoader/TreeItemLoaderContext.d.ts +24 -0
  28. package/TreeItemLoader/TreeItemLoaderContext.js +22 -0
  29. package/TreeItemLoader/TreeItemLoaderContext.mjs +16 -0
  30. package/TreeItemLoader/index.d.mts +3 -0
  31. package/TreeItemLoader/index.d.ts +3 -0
  32. package/TreeItemLoader/index.js +34 -0
  33. package/TreeItemLoader/index.mjs +2 -0
  34. package/TreeItemLoader/treeItemLoaderClasses.d.mts +13 -0
  35. package/TreeItemLoader/treeItemLoaderClasses.d.ts +13 -0
  36. package/TreeItemLoader/treeItemLoaderClasses.js +14 -0
  37. package/TreeItemLoader/treeItemLoaderClasses.mjs +6 -0
  38. package/index.d.mts +1 -0
  39. package/index.d.ts +1 -0
  40. package/index.js +12 -1
  41. package/index.mjs +2 -1
  42. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.js +2 -2
  43. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.mjs +3 -3
  44. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.mts +4 -0
  45. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.types.d.ts +4 -0
  46. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.mts +1 -2
  47. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.d.ts +1 -2
  48. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.js +2 -9
  49. package/internals/MinimalTreeViewStore/MinimalTreeViewStore.utils.mjs +2 -7
  50. package/internals/TreeViewProvider/TreeViewProvider.js +7 -3
  51. package/internals/TreeViewProvider/TreeViewProvider.mjs +7 -3
  52. package/internals/TreeViewProvider/TreeViewProvider.types.d.mts +3 -3
  53. package/internals/TreeViewProvider/TreeViewProvider.types.d.ts +3 -3
  54. package/internals/TreeViewProvider/TreeViewStyleContext.d.mts +30 -2
  55. package/internals/TreeViewProvider/TreeViewStyleContext.d.ts +30 -2
  56. package/internals/TreeViewProvider/TreeViewStyleContext.js +12 -0
  57. package/internals/TreeViewProvider/TreeViewStyleContext.mjs +13 -0
  58. package/internals/components/RichTreeViewItems.js +59 -2
  59. package/internals/components/RichTreeViewItems.mjs +59 -2
  60. package/internals/components/RichTreeViewLoading.d.mts +97 -0
  61. package/internals/components/RichTreeViewLoading.d.ts +97 -0
  62. package/internals/components/RichTreeViewLoading.js +171 -0
  63. package/internals/components/RichTreeViewLoading.mjs +160 -0
  64. package/internals/constants.d.mts +6 -0
  65. package/internals/constants.d.ts +6 -0
  66. package/internals/constants.js +12 -0
  67. package/internals/constants.mjs +6 -0
  68. package/internals/hooks/useTreeViewStore.d.mts +1 -1
  69. package/internals/hooks/useTreeViewStore.d.ts +1 -1
  70. package/internals/hooks/useTreeViewStore.js +7 -3
  71. package/internals/hooks/useTreeViewStore.mjs +7 -3
  72. package/internals/index.d.mts +2 -0
  73. package/internals/index.d.ts +2 -0
  74. package/internals/index.js +13 -0
  75. package/internals/index.mjs +1 -0
  76. package/internals/plugins/expansion/selectors.d.mts +3 -2
  77. package/internals/plugins/expansion/selectors.d.ts +3 -2
  78. package/internals/plugins/expansion/selectors.js +4 -4
  79. package/internals/plugins/expansion/selectors.mjs +5 -5
  80. package/internals/plugins/focus/selectors.d.mts +3 -2
  81. package/internals/plugins/focus/selectors.d.ts +3 -2
  82. package/internals/plugins/focus/selectors.js +3 -3
  83. package/internals/plugins/focus/selectors.mjs +4 -4
  84. package/internals/plugins/id/selectors.d.mts +6 -3
  85. package/internals/plugins/id/selectors.d.ts +6 -3
  86. package/internals/plugins/id/selectors.js +4 -5
  87. package/internals/plugins/id/selectors.mjs +4 -5
  88. package/internals/plugins/items/selectors.d.mts +9 -8
  89. package/internals/plugins/items/selectors.d.ts +9 -8
  90. package/internals/plugins/items/selectors.js +15 -16
  91. package/internals/plugins/items/selectors.mjs +15 -16
  92. package/internals/plugins/labelEditing/selectors.d.mts +3 -2
  93. package/internals/plugins/labelEditing/selectors.d.ts +3 -2
  94. package/internals/plugins/labelEditing/selectors.js +6 -5
  95. package/internals/plugins/labelEditing/selectors.mjs +6 -5
  96. package/internals/plugins/lazyLoading/selectors.d.mts +9 -3
  97. package/internals/plugins/lazyLoading/selectors.d.ts +9 -3
  98. package/internals/plugins/lazyLoading/selectors.js +10 -6
  99. package/internals/plugins/lazyLoading/selectors.mjs +10 -6
  100. package/internals/plugins/lazyLoading/types.d.mts +5 -1
  101. package/internals/plugins/lazyLoading/types.d.ts +5 -1
  102. package/internals/plugins/selection/selectors.d.mts +15 -9
  103. package/internals/plugins/selection/selectors.d.ts +15 -9
  104. package/internals/plugins/selection/selectors.js +12 -12
  105. package/internals/plugins/selection/selectors.mjs +13 -13
  106. package/package.json +19 -7
  107. package/useTreeItem/useTreeItem.js +3 -3
  108. package/useTreeItem/useTreeItem.mjs +3 -3
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import type { TreeItemLoaderProps } from "./TreeItemLoader.types.mjs";
3
+ export declare const TreeItemLoaderRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, keyof React.ClassAttributes<HTMLLIElement> | keyof React.LiHTMLAttributes<HTMLLIElement>>, {}>;
4
+ /**
5
+ * Semantic wrapper for one loading row of the Rich Tree View.
6
+ *
7
+ * It renders a `li` element with the `role`, `aria` attributes, indentation and
8
+ * height of a tree item, so custom loading UIs stay accessible and aligned.
9
+ * Without children, it renders the default skeleton placeholders.
10
+ *
11
+ * Demos:
12
+ *
13
+ * - [Tree View](https://mui.com/x/react-tree-view/)
14
+ *
15
+ * API:
16
+ *
17
+ * - [TreeItemLoader API](https://mui.com/x/api/tree-view/tree-item-loader/)
18
+ */
19
+ declare const TreeItemLoader: React.ForwardRefExoticComponent<TreeItemLoaderProps & React.RefAttributes<HTMLLIElement>>;
20
+ export { TreeItemLoader };
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import type { TreeItemLoaderProps } from "./TreeItemLoader.types.js";
3
+ export declare const TreeItemLoaderRoot: import("@emotion/styled").StyledComponent<import("@mui/system").MUIStyledCommonProps<import("@mui/material/styles").Theme>, Pick<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, keyof React.ClassAttributes<HTMLLIElement> | keyof React.LiHTMLAttributes<HTMLLIElement>>, {}>;
4
+ /**
5
+ * Semantic wrapper for one loading row of the Rich Tree View.
6
+ *
7
+ * It renders a `li` element with the `role`, `aria` attributes, indentation and
8
+ * height of a tree item, so custom loading UIs stay accessible and aligned.
9
+ * Without children, it renders the default skeleton placeholders.
10
+ *
11
+ * Demos:
12
+ *
13
+ * - [Tree View](https://mui.com/x/react-tree-view/)
14
+ *
15
+ * API:
16
+ *
17
+ * - [TreeItemLoader API](https://mui.com/x/api/tree-view/tree-item-loader/)
18
+ */
19
+ declare const TreeItemLoader: React.ForwardRefExoticComponent<TreeItemLoaderProps & React.RefAttributes<HTMLLIElement>>;
20
+ export { TreeItemLoader };
@@ -0,0 +1,152 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
6
+ Object.defineProperty(exports, "__esModule", {
7
+ value: true
8
+ });
9
+ exports.TreeItemLoaderRoot = exports.TreeItemLoader = void 0;
10
+ var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
+ var React = _interopRequireWildcard(require("react"));
13
+ var _propTypes = _interopRequireDefault(require("prop-types"));
14
+ var _clsx = _interopRequireDefault(require("clsx"));
15
+ var _Skeleton = _interopRequireDefault(require("@mui/material/Skeleton"));
16
+ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
17
+ var _zeroStyled = require("../internals/zero-styled");
18
+ var _constants = require("../internals/constants");
19
+ var _treeItemLoaderClasses = require("./treeItemLoaderClasses");
20
+ var _TreeItemLoaderContext = require("./TreeItemLoaderContext");
21
+ var _jsxRuntime = require("react/jsx-runtime");
22
+ const _excluded = ["children", "className", "classes", "style", "ownerState"];
23
+ const useThemeProps = (0, _zeroStyled.createUseThemeProps)('MuiTreeItemLoader');
24
+
25
+ // Rotated with `nth-of-type` so consecutive rows render labels of different widths.
26
+ const LABEL_WIDTHS = ['40%', '70%', '55%', '50%', '65%'];
27
+ const TreeItemLoaderRoot = exports.TreeItemLoaderRoot = (0, _zeroStyled.styled)('li', {
28
+ name: 'MuiTreeItemLoader',
29
+ slot: 'Root'
30
+ })(({
31
+ theme
32
+ }) => (0, _extends2.default)({
33
+ listStyle: 'none',
34
+ margin: 0
35
+ }, theme.typography.body1, {
36
+ padding: theme.spacing(0.5, 1),
37
+ // Same indentation formula as the tree item content.
38
+ paddingLeft: `calc(${theme.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth, 0))`,
39
+ height: 'var(--TreeView-itemHeight, unset)',
40
+ boxSizing: 'border-box',
41
+ display: 'flex',
42
+ alignItems: 'center',
43
+ gap: theme.spacing(1),
44
+ [`& .${_treeItemLoaderClasses.treeItemLoaderClasses.iconContainer}`]: {
45
+ width: _constants.TREE_ITEM_ICON_CONTAINER_WIDTH_PX,
46
+ flexShrink: 0,
47
+ display: 'inline-block'
48
+ },
49
+ [`& .${_treeItemLoaderClasses.treeItemLoaderClasses.checkbox}`]: {
50
+ flexShrink: 0
51
+ }
52
+ }, Object.fromEntries(LABEL_WIDTHS.map((width, index) => [`&:nth-of-type(5n + ${index + 1}) .${_treeItemLoaderClasses.treeItemLoaderClasses.label}`, {
53
+ width
54
+ }]))));
55
+ const useUtilityClasses = classes => {
56
+ const slots = {
57
+ root: ['root'],
58
+ iconContainer: ['iconContainer'],
59
+ checkbox: ['checkbox'],
60
+ label: ['label']
61
+ };
62
+ return (0, _composeClasses.default)(slots, _treeItemLoaderClasses.getTreeItemLoaderUtilityClass, classes);
63
+ };
64
+
65
+ /**
66
+ * Semantic wrapper for one loading row of the Rich Tree View.
67
+ *
68
+ * It renders a `li` element with the `role`, `aria` attributes, indentation and
69
+ * height of a tree item, so custom loading UIs stay accessible and aligned.
70
+ * Without children, it renders the default skeleton placeholders.
71
+ *
72
+ * Demos:
73
+ *
74
+ * - [Tree View](https://mui.com/x/react-tree-view/)
75
+ *
76
+ * API:
77
+ *
78
+ * - [TreeItemLoader API](https://mui.com/x/api/tree-view/tree-item-loader/)
79
+ */
80
+ const TreeItemLoader = exports.TreeItemLoader = /*#__PURE__*/React.forwardRef(function TreeItemLoader(inProps, ref) {
81
+ const props = useThemeProps({
82
+ props: inProps,
83
+ name: 'MuiTreeItemLoader'
84
+ });
85
+ const {
86
+ children,
87
+ className,
88
+ classes: classesProp,
89
+ style
90
+ } = props,
91
+ other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
92
+ const {
93
+ itemDepth,
94
+ itemHeight,
95
+ isCheckboxSelectionEnabled
96
+ } = React.useContext(_TreeItemLoaderContext.TreeItemLoaderContext);
97
+ const classes = useUtilityClasses(classesProp);
98
+ const rootStyle = (0, _extends2.default)({
99
+ '--TreeView-itemDepth': itemDepth
100
+ }, itemHeight == null ? {} : {
101
+ '--TreeView-itemHeight': `${itemHeight}px`
102
+ }, style);
103
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(TreeItemLoaderRoot, (0, _extends2.default)({
104
+ role: "treeitem",
105
+ "aria-disabled": true
106
+ }, other, {
107
+ className: (0, _clsx.default)(classes.root, className),
108
+ style: rootStyle,
109
+ ref: ref,
110
+ children: children ?? /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
111
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
112
+ className: classes.iconContainer
113
+ }), isCheckboxSelectionEnabled &&
114
+ /*#__PURE__*/
115
+ // Same size as the checkbox rendered by the tree item, to keep the labels aligned.
116
+ (0, _jsxRuntime.jsx)(_Skeleton.default, {
117
+ variant: "circular",
118
+ width: 24,
119
+ height: 24,
120
+ className: classes.checkbox
121
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Skeleton.default, {
122
+ className: classes.label
123
+ })]
124
+ })
125
+ }));
126
+ });
127
+ if (process.env.NODE_ENV !== "production") TreeItemLoader.displayName = "TreeItemLoader";
128
+ process.env.NODE_ENV !== "production" ? TreeItemLoader.propTypes /* remove-proptypes */ = {
129
+ // ----------------------------- Warning --------------------------------
130
+ // | These PropTypes are generated from the TypeScript type definitions |
131
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
132
+ // ----------------------------------------------------------------------
133
+ /**
134
+ * The content of the loading row.
135
+ * When not provided, the default skeleton placeholders are rendered.
136
+ */
137
+ children: _propTypes.default.node,
138
+ /**
139
+ * Override or extend the styles applied to the component.
140
+ */
141
+ classes: _propTypes.default.object,
142
+ /**
143
+ * State of the loading row, forwarded by the `itemLoader` slot.
144
+ * The component does not render it.
145
+ */
146
+ ownerState: _propTypes.default.shape({
147
+ index: _propTypes.default.number.isRequired,
148
+ isCheckboxSelectionEnabled: _propTypes.default.bool.isRequired,
149
+ itemDepth: _propTypes.default.number.isRequired,
150
+ itemsCount: _propTypes.default.number.isRequired
151
+ })
152
+ } : void 0;
@@ -0,0 +1,146 @@
1
+ 'use client';
2
+
3
+ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
4
+ import _extends from "@babel/runtime/helpers/esm/extends";
5
+ const _excluded = ["children", "className", "classes", "style", "ownerState"];
6
+ import * as React from 'react';
7
+ import PropTypes from 'prop-types';
8
+ import clsx from 'clsx';
9
+ import Skeleton from '@mui/material/Skeleton';
10
+ import composeClasses from '@mui/utils/composeClasses';
11
+ import { styled, createUseThemeProps } from "../internals/zero-styled/index.mjs";
12
+ import { TREE_ITEM_ICON_CONTAINER_WIDTH_PX } from "../internals/constants.mjs";
13
+ import { getTreeItemLoaderUtilityClass, treeItemLoaderClasses } from "./treeItemLoaderClasses.mjs";
14
+ import { TreeItemLoaderContext } from "./TreeItemLoaderContext.mjs";
15
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
+ const useThemeProps = createUseThemeProps('MuiTreeItemLoader');
17
+
18
+ // Rotated with `nth-of-type` so consecutive rows render labels of different widths.
19
+ const LABEL_WIDTHS = ['40%', '70%', '55%', '50%', '65%'];
20
+ export const TreeItemLoaderRoot = styled('li', {
21
+ name: 'MuiTreeItemLoader',
22
+ slot: 'Root'
23
+ })(({
24
+ theme
25
+ }) => _extends({
26
+ listStyle: 'none',
27
+ margin: 0
28
+ }, theme.typography.body1, {
29
+ padding: theme.spacing(0.5, 1),
30
+ // Same indentation formula as the tree item content.
31
+ paddingLeft: `calc(${theme.spacing(1)} + var(--TreeView-itemChildrenIndentation) * var(--TreeView-itemDepth, 0))`,
32
+ height: 'var(--TreeView-itemHeight, unset)',
33
+ boxSizing: 'border-box',
34
+ display: 'flex',
35
+ alignItems: 'center',
36
+ gap: theme.spacing(1),
37
+ [`& .${treeItemLoaderClasses.iconContainer}`]: {
38
+ width: TREE_ITEM_ICON_CONTAINER_WIDTH_PX,
39
+ flexShrink: 0,
40
+ display: 'inline-block'
41
+ },
42
+ [`& .${treeItemLoaderClasses.checkbox}`]: {
43
+ flexShrink: 0
44
+ }
45
+ }, Object.fromEntries(LABEL_WIDTHS.map((width, index) => [`&:nth-of-type(5n + ${index + 1}) .${treeItemLoaderClasses.label}`, {
46
+ width
47
+ }]))));
48
+ const useUtilityClasses = classes => {
49
+ const slots = {
50
+ root: ['root'],
51
+ iconContainer: ['iconContainer'],
52
+ checkbox: ['checkbox'],
53
+ label: ['label']
54
+ };
55
+ return composeClasses(slots, getTreeItemLoaderUtilityClass, classes);
56
+ };
57
+
58
+ /**
59
+ * Semantic wrapper for one loading row of the Rich Tree View.
60
+ *
61
+ * It renders a `li` element with the `role`, `aria` attributes, indentation and
62
+ * height of a tree item, so custom loading UIs stay accessible and aligned.
63
+ * Without children, it renders the default skeleton placeholders.
64
+ *
65
+ * Demos:
66
+ *
67
+ * - [Tree View](https://mui.com/x/react-tree-view/)
68
+ *
69
+ * API:
70
+ *
71
+ * - [TreeItemLoader API](https://mui.com/x/api/tree-view/tree-item-loader/)
72
+ */
73
+ const TreeItemLoader = /*#__PURE__*/React.forwardRef(function TreeItemLoader(inProps, ref) {
74
+ const props = useThemeProps({
75
+ props: inProps,
76
+ name: 'MuiTreeItemLoader'
77
+ });
78
+ const {
79
+ children,
80
+ className,
81
+ classes: classesProp,
82
+ style
83
+ } = props,
84
+ other = _objectWithoutPropertiesLoose(props, _excluded);
85
+ const {
86
+ itemDepth,
87
+ itemHeight,
88
+ isCheckboxSelectionEnabled
89
+ } = React.useContext(TreeItemLoaderContext);
90
+ const classes = useUtilityClasses(classesProp);
91
+ const rootStyle = _extends({
92
+ '--TreeView-itemDepth': itemDepth
93
+ }, itemHeight == null ? {} : {
94
+ '--TreeView-itemHeight': `${itemHeight}px`
95
+ }, style);
96
+ return /*#__PURE__*/_jsx(TreeItemLoaderRoot, _extends({
97
+ role: "treeitem",
98
+ "aria-disabled": true
99
+ }, other, {
100
+ className: clsx(classes.root, className),
101
+ style: rootStyle,
102
+ ref: ref,
103
+ children: children ?? /*#__PURE__*/_jsxs(React.Fragment, {
104
+ children: [/*#__PURE__*/_jsx("span", {
105
+ className: classes.iconContainer
106
+ }), isCheckboxSelectionEnabled &&
107
+ /*#__PURE__*/
108
+ // Same size as the checkbox rendered by the tree item, to keep the labels aligned.
109
+ _jsx(Skeleton, {
110
+ variant: "circular",
111
+ width: 24,
112
+ height: 24,
113
+ className: classes.checkbox
114
+ }), /*#__PURE__*/_jsx(Skeleton, {
115
+ className: classes.label
116
+ })]
117
+ })
118
+ }));
119
+ });
120
+ if (process.env.NODE_ENV !== "production") TreeItemLoader.displayName = "TreeItemLoader";
121
+ process.env.NODE_ENV !== "production" ? TreeItemLoader.propTypes /* remove-proptypes */ = {
122
+ // ----------------------------- Warning --------------------------------
123
+ // | These PropTypes are generated from the TypeScript type definitions |
124
+ // | To update them edit the TypeScript types and run "pnpm proptypes" |
125
+ // ----------------------------------------------------------------------
126
+ /**
127
+ * The content of the loading row.
128
+ * When not provided, the default skeleton placeholders are rendered.
129
+ */
130
+ children: PropTypes.node,
131
+ /**
132
+ * Override or extend the styles applied to the component.
133
+ */
134
+ classes: PropTypes.object,
135
+ /**
136
+ * State of the loading row, forwarded by the `itemLoader` slot.
137
+ * The component does not render it.
138
+ */
139
+ ownerState: PropTypes.shape({
140
+ index: PropTypes.number.isRequired,
141
+ isCheckboxSelectionEnabled: PropTypes.bool.isRequired,
142
+ itemDepth: PropTypes.number.isRequired,
143
+ itemsCount: PropTypes.number.isRequired
144
+ })
145
+ } : void 0;
146
+ export { TreeItemLoader };
@@ -0,0 +1,36 @@
1
+ import type * as React from 'react';
2
+ import type { TreeItemLoaderClasses } from "./treeItemLoaderClasses.mjs";
3
+ export interface TreeItemLoaderOwnerState {
4
+ /**
5
+ * Index of the loading row inside its group.
6
+ */
7
+ index: number;
8
+ /**
9
+ * Number of loading rows rendered in the group.
10
+ */
11
+ itemsCount: number;
12
+ /**
13
+ * Depth of the loading rows.
14
+ */
15
+ itemDepth: number;
16
+ /**
17
+ * Whether each row renders a checkbox placeholder.
18
+ */
19
+ isCheckboxSelectionEnabled: boolean;
20
+ }
21
+ export interface TreeItemLoaderProps extends React.HTMLAttributes<HTMLLIElement> {
22
+ /**
23
+ * The content of the loading row.
24
+ * When not provided, the default skeleton placeholders are rendered.
25
+ */
26
+ children?: React.ReactNode;
27
+ /**
28
+ * Override or extend the styles applied to the component.
29
+ */
30
+ classes?: Partial<TreeItemLoaderClasses>;
31
+ /**
32
+ * State of the loading row, forwarded by the `itemLoader` slot.
33
+ * The component does not render it.
34
+ */
35
+ ownerState?: TreeItemLoaderOwnerState;
36
+ }
@@ -0,0 +1,36 @@
1
+ import type * as React from 'react';
2
+ import type { TreeItemLoaderClasses } from "./treeItemLoaderClasses.js";
3
+ export interface TreeItemLoaderOwnerState {
4
+ /**
5
+ * Index of the loading row inside its group.
6
+ */
7
+ index: number;
8
+ /**
9
+ * Number of loading rows rendered in the group.
10
+ */
11
+ itemsCount: number;
12
+ /**
13
+ * Depth of the loading rows.
14
+ */
15
+ itemDepth: number;
16
+ /**
17
+ * Whether each row renders a checkbox placeholder.
18
+ */
19
+ isCheckboxSelectionEnabled: boolean;
20
+ }
21
+ export interface TreeItemLoaderProps extends React.HTMLAttributes<HTMLLIElement> {
22
+ /**
23
+ * The content of the loading row.
24
+ * When not provided, the default skeleton placeholders are rendered.
25
+ */
26
+ children?: React.ReactNode;
27
+ /**
28
+ * Override or extend the styles applied to the component.
29
+ */
30
+ classes?: Partial<TreeItemLoaderClasses>;
31
+ /**
32
+ * State of the loading row, forwarded by the `itemLoader` slot.
33
+ * The component does not render it.
34
+ */
35
+ ownerState?: TreeItemLoaderOwnerState;
36
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ export interface TreeItemLoaderContextValue {
3
+ /**
4
+ * Depth of the loading rows.
5
+ * `0` for the whole-tree loading UI, parent depth + 1 for the children of a lazily loading item.
6
+ */
7
+ itemDepth: number;
8
+ /**
9
+ * Fixed height of the rows, from the `itemHeight` prop of the tree.
10
+ */
11
+ itemHeight: number | null;
12
+ /**
13
+ * Whether each row renders a checkbox placeholder.
14
+ */
15
+ isCheckboxSelectionEnabled: boolean;
16
+ }
17
+ /**
18
+ * Provides the layout information of the surrounding tree to `TreeItemLoader`.
19
+ * The loading UI renders outside of the tree items, so the depth and height
20
+ * cannot be derived from an item.
21
+ *
22
+ * @ignore - internal context.
23
+ */
24
+ export declare const TreeItemLoaderContext: React.Context<TreeItemLoaderContextValue>;
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ export interface TreeItemLoaderContextValue {
3
+ /**
4
+ * Depth of the loading rows.
5
+ * `0` for the whole-tree loading UI, parent depth + 1 for the children of a lazily loading item.
6
+ */
7
+ itemDepth: number;
8
+ /**
9
+ * Fixed height of the rows, from the `itemHeight` prop of the tree.
10
+ */
11
+ itemHeight: number | null;
12
+ /**
13
+ * Whether each row renders a checkbox placeholder.
14
+ */
15
+ isCheckboxSelectionEnabled: boolean;
16
+ }
17
+ /**
18
+ * Provides the layout information of the surrounding tree to `TreeItemLoader`.
19
+ * The loading UI renders outside of the tree items, so the depth and height
20
+ * cannot be derived from an item.
21
+ *
22
+ * @ignore - internal context.
23
+ */
24
+ export declare const TreeItemLoaderContext: React.Context<TreeItemLoaderContextValue>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.TreeItemLoaderContext = void 0;
9
+ var React = _interopRequireWildcard(require("react"));
10
+ /**
11
+ * Provides the layout information of the surrounding tree to `TreeItemLoader`.
12
+ * The loading UI renders outside of the tree items, so the depth and height
13
+ * cannot be derived from an item.
14
+ *
15
+ * @ignore - internal context.
16
+ */
17
+ const TreeItemLoaderContext = exports.TreeItemLoaderContext = /*#__PURE__*/React.createContext({
18
+ itemDepth: 0,
19
+ itemHeight: null,
20
+ isCheckboxSelectionEnabled: false
21
+ });
22
+ if (process.env.NODE_ENV !== "production") TreeItemLoaderContext.displayName = "TreeItemLoaderContext";
@@ -0,0 +1,16 @@
1
+ 'use client';
2
+
3
+ import * as React from 'react';
4
+ /**
5
+ * Provides the layout information of the surrounding tree to `TreeItemLoader`.
6
+ * The loading UI renders outside of the tree items, so the depth and height
7
+ * cannot be derived from an item.
8
+ *
9
+ * @ignore - internal context.
10
+ */
11
+ export const TreeItemLoaderContext = /*#__PURE__*/React.createContext({
12
+ itemDepth: 0,
13
+ itemHeight: null,
14
+ isCheckboxSelectionEnabled: false
15
+ });
16
+ if (process.env.NODE_ENV !== "production") TreeItemLoaderContext.displayName = "TreeItemLoaderContext";
@@ -0,0 +1,3 @@
1
+ export { TreeItemLoader, TreeItemLoaderRoot } from "./TreeItemLoader.mjs";
2
+ export type { TreeItemLoaderProps, TreeItemLoaderOwnerState } from "./TreeItemLoader.types.mjs";
3
+ export * from "./treeItemLoaderClasses.mjs";
@@ -0,0 +1,3 @@
1
+ export { TreeItemLoader, TreeItemLoaderRoot } from "./TreeItemLoader.js";
2
+ export type { TreeItemLoaderProps, TreeItemLoaderOwnerState } from "./TreeItemLoader.types.js";
3
+ export * from "./treeItemLoaderClasses.js";
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ var _exportNames = {
7
+ TreeItemLoader: true,
8
+ TreeItemLoaderRoot: true
9
+ };
10
+ Object.defineProperty(exports, "TreeItemLoader", {
11
+ enumerable: true,
12
+ get: function () {
13
+ return _TreeItemLoader.TreeItemLoader;
14
+ }
15
+ });
16
+ Object.defineProperty(exports, "TreeItemLoaderRoot", {
17
+ enumerable: true,
18
+ get: function () {
19
+ return _TreeItemLoader.TreeItemLoaderRoot;
20
+ }
21
+ });
22
+ var _TreeItemLoader = require("./TreeItemLoader");
23
+ var _treeItemLoaderClasses = require("./treeItemLoaderClasses");
24
+ Object.keys(_treeItemLoaderClasses).forEach(function (key) {
25
+ if (key === "default" || key === "__esModule") return;
26
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
27
+ if (key in exports && exports[key] === _treeItemLoaderClasses[key]) return;
28
+ Object.defineProperty(exports, key, {
29
+ enumerable: true,
30
+ get: function () {
31
+ return _treeItemLoaderClasses[key];
32
+ }
33
+ });
34
+ });
@@ -0,0 +1,2 @@
1
+ export { TreeItemLoader, TreeItemLoaderRoot } from "./TreeItemLoader.mjs";
2
+ export * from "./treeItemLoaderClasses.mjs";
@@ -0,0 +1,13 @@
1
+ export interface TreeItemLoaderClasses {
2
+ /** Styles applied to the root element. */
3
+ root: string;
4
+ /** Styles applied to the icon gutter element of the default content. */
5
+ iconContainer: string;
6
+ /** Styles applied to the checkbox placeholder element of the default content. */
7
+ checkbox: string;
8
+ /** Styles applied to the label placeholder element of the default content. */
9
+ label: string;
10
+ }
11
+ export type TreeItemLoaderClassKey = keyof TreeItemLoaderClasses;
12
+ export declare function getTreeItemLoaderUtilityClass(slot: string): string;
13
+ export declare const treeItemLoaderClasses: TreeItemLoaderClasses;
@@ -0,0 +1,13 @@
1
+ export interface TreeItemLoaderClasses {
2
+ /** Styles applied to the root element. */
3
+ root: string;
4
+ /** Styles applied to the icon gutter element of the default content. */
5
+ iconContainer: string;
6
+ /** Styles applied to the checkbox placeholder element of the default content. */
7
+ checkbox: string;
8
+ /** Styles applied to the label placeholder element of the default content. */
9
+ label: string;
10
+ }
11
+ export type TreeItemLoaderClassKey = keyof TreeItemLoaderClasses;
12
+ export declare function getTreeItemLoaderUtilityClass(slot: string): string;
13
+ export declare const treeItemLoaderClasses: TreeItemLoaderClasses;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getTreeItemLoaderUtilityClass = getTreeItemLoaderUtilityClass;
8
+ exports.treeItemLoaderClasses = void 0;
9
+ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
10
+ var _generateUtilityClasses = _interopRequireDefault(require("@mui/utils/generateUtilityClasses"));
11
+ function getTreeItemLoaderUtilityClass(slot) {
12
+ return (0, _generateUtilityClass.default)('MuiTreeItemLoader', slot);
13
+ }
14
+ const treeItemLoaderClasses = exports.treeItemLoaderClasses = (0, _generateUtilityClasses.default)('MuiTreeItemLoader', ['root', 'iconContainer', 'checkbox', 'label']);
@@ -0,0 +1,6 @@
1
+ import generateUtilityClass from '@mui/utils/generateUtilityClass';
2
+ import generateUtilityClasses from '@mui/utils/generateUtilityClasses';
3
+ export function getTreeItemLoaderUtilityClass(slot) {
4
+ return generateUtilityClass('MuiTreeItemLoader', slot);
5
+ }
6
+ export const treeItemLoaderClasses = generateUtilityClasses('MuiTreeItemLoader', ['root', 'iconContainer', 'checkbox', 'label']);
package/index.d.mts CHANGED
@@ -6,6 +6,7 @@ export * from "./TreeItemIcon/index.mjs";
6
6
  export * from "./TreeItemProvider/index.mjs";
7
7
  export * from "./TreeItemDragAndDropOverlay/index.mjs";
8
8
  export * from "./TreeItemLabelInput/index.mjs";
9
+ export * from "./TreeItemLoader/index.mjs";
9
10
  export * from "./models/index.mjs";
10
11
  export * from "./icons/index.mjs";
11
12
  export * from "./hooks/index.mjs";
package/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export * from "./TreeItemIcon/index.js";
6
6
  export * from "./TreeItemProvider/index.js";
7
7
  export * from "./TreeItemDragAndDropOverlay/index.js";
8
8
  export * from "./TreeItemLabelInput/index.js";
9
+ export * from "./TreeItemLoader/index.js";
9
10
  export * from "./models/index.js";
10
11
  export * from "./icons/index.js";
11
12
  export * from "./hooks/index.js";
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/x-tree-view v9.12.0
2
+ * @mui/x-tree-view v9.13.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -98,6 +98,17 @@ Object.keys(_TreeItemLabelInput).forEach(function (key) {
98
98
  }
99
99
  });
100
100
  });
101
+ var _TreeItemLoader = require("./TreeItemLoader");
102
+ Object.keys(_TreeItemLoader).forEach(function (key) {
103
+ if (key === "default" || key === "__esModule") return;
104
+ if (key in exports && exports[key] === _TreeItemLoader[key]) return;
105
+ Object.defineProperty(exports, key, {
106
+ enumerable: true,
107
+ get: function () {
108
+ return _TreeItemLoader[key];
109
+ }
110
+ });
111
+ });
101
112
  var _models = require("./models");
102
113
  Object.keys(_models).forEach(function (key) {
103
114
  if (key === "default" || key === "__esModule") return;