@mui/material 6.3.0 → 6.4.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.
- package/Alert/Alert.d.ts +69 -0
- package/Alert/Alert.js +53 -21
- package/AppBar/AppBar.d.ts +1 -1
- package/AppBar/AppBar.js +1 -1
- package/Autocomplete/Autocomplete.d.ts +1 -1
- package/Autocomplete/Autocomplete.js +35 -48
- package/Button/Button.d.ts +18 -0
- package/Button/Button.js +233 -15
- package/Button/buttonClasses.d.ts +14 -0
- package/Button/buttonClasses.js +1 -1
- package/CHANGELOG.md +85 -0
- package/CardHeader/CardHeader.d.ts +114 -1
- package/CardHeader/CardHeader.js +99 -32
- package/CircularProgress/CircularProgress.js +2 -2
- package/IconButton/IconButton.d.ts +12 -0
- package/IconButton/IconButton.js +69 -7
- package/IconButton/iconButtonClasses.d.ts +4 -0
- package/IconButton/iconButtonClasses.js +1 -1
- package/LinearProgress/LinearProgress.js +4 -4
- package/LinearProgress/linearProgressClasses.d.ts +31 -9
- package/LinearProgress/linearProgressClasses.js +1 -1
- package/Link/getTextDecoration.js +3 -2
- package/Select/Select.js +10 -1
- package/Select/SelectInput.js +1 -1
- package/Select/selectClasses.d.ts +9 -3
- package/Slider/useSlider.js +5 -2
- package/StepLabel/StepLabel.d.ts +1 -1
- package/TableSortLabel/TableSortLabel.d.ts +43 -1
- package/TableSortLabel/TableSortLabel.js +40 -7
- package/Tooltip/Tooltip.d.ts +1 -1
- package/Tooltip/Tooltip.js +1 -1
- package/index.js +1 -1
- package/modern/Alert/Alert.js +53 -21
- package/modern/AppBar/AppBar.js +1 -1
- package/modern/Autocomplete/Autocomplete.js +35 -48
- package/modern/Button/Button.js +233 -15
- package/modern/Button/buttonClasses.js +1 -1
- package/modern/CardHeader/CardHeader.js +99 -32
- package/modern/CircularProgress/CircularProgress.js +2 -2
- package/modern/IconButton/IconButton.js +69 -7
- package/modern/IconButton/iconButtonClasses.js +1 -1
- package/modern/LinearProgress/LinearProgress.js +4 -4
- package/modern/LinearProgress/linearProgressClasses.js +1 -1
- package/modern/Link/getTextDecoration.js +3 -2
- package/modern/Select/Select.js +10 -1
- package/modern/Select/SelectInput.js +1 -1
- package/modern/Slider/useSlider.js +5 -2
- package/modern/TableSortLabel/TableSortLabel.js +40 -7
- package/modern/Tooltip/Tooltip.js +1 -1
- package/modern/index.js +1 -1
- package/modern/utils/index.js +1 -0
- package/modern/utils/mergeSlotProps.js +43 -0
- package/modern/utils/useSlot.js +5 -1
- package/modern/version/index.js +2 -2
- package/node/Alert/Alert.js +53 -21
- package/node/AppBar/AppBar.js +1 -1
- package/node/Autocomplete/Autocomplete.js +35 -48
- package/node/Button/Button.js +233 -15
- package/node/Button/buttonClasses.js +1 -1
- package/node/CardHeader/CardHeader.js +99 -32
- package/node/CircularProgress/CircularProgress.js +2 -2
- package/node/IconButton/IconButton.js +68 -6
- package/node/IconButton/iconButtonClasses.js +1 -1
- package/node/LinearProgress/LinearProgress.js +4 -4
- package/node/LinearProgress/linearProgressClasses.js +1 -1
- package/node/Link/getTextDecoration.js +3 -2
- package/node/Select/Select.js +10 -1
- package/node/Select/SelectInput.js +1 -1
- package/node/Slider/useSlider.js +5 -2
- package/node/TableSortLabel/TableSortLabel.js +40 -7
- package/node/Tooltip/Tooltip.js +1 -1
- package/node/index.js +1 -1
- package/node/utils/index.js +7 -0
- package/node/utils/mergeSlotProps.js +50 -0
- package/node/utils/useSlot.js +5 -1
- package/node/version/index.js +2 -2
- package/package.json +6 -6
- package/utils/index.d.ts +1 -0
- package/utils/index.js +1 -0
- package/utils/mergeSlotProps.d.ts +2 -0
- package/utils/mergeSlotProps.js +43 -0
- package/utils/useSlot.d.ts +8 -0
- package/utils/useSlot.js +5 -1
- package/version/index.js +2 -2
|
@@ -12,12 +12,14 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
12
12
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
13
|
var _chainPropTypes = _interopRequireDefault(require("@mui/utils/chainPropTypes"));
|
|
14
14
|
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
15
|
+
var _utils = require("@mui/material/utils");
|
|
15
16
|
var _colorManipulator = require("@mui/system/colorManipulator");
|
|
16
17
|
var _zeroStyled = require("../zero-styled");
|
|
17
18
|
var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
|
|
18
19
|
var _createSimplePaletteValueFilter = _interopRequireDefault(require("../utils/createSimplePaletteValueFilter"));
|
|
19
20
|
var _DefaultPropsProvider = require("../DefaultPropsProvider");
|
|
20
21
|
var _ButtonBase = _interopRequireDefault(require("../ButtonBase"));
|
|
22
|
+
var _CircularProgress = _interopRequireDefault(require("../CircularProgress"));
|
|
21
23
|
var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
|
|
22
24
|
var _iconButtonClasses = _interopRequireWildcard(require("./iconButtonClasses"));
|
|
23
25
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -27,10 +29,12 @@ const useUtilityClasses = ownerState => {
|
|
|
27
29
|
disabled,
|
|
28
30
|
color,
|
|
29
31
|
edge,
|
|
30
|
-
size
|
|
32
|
+
size,
|
|
33
|
+
loading
|
|
31
34
|
} = ownerState;
|
|
32
35
|
const slots = {
|
|
33
|
-
root: ['root', disabled && 'disabled', color !== 'default' && `color${(0, _capitalize.default)(color)}`, edge && `edge${(0, _capitalize.default)(edge)}`, `size${(0, _capitalize.default)(size)}`]
|
|
36
|
+
root: ['root', loading && 'loading', disabled && 'disabled', color !== 'default' && `color${(0, _capitalize.default)(color)}`, edge && `edge${(0, _capitalize.default)(edge)}`, `size${(0, _capitalize.default)(size)}`],
|
|
37
|
+
loadingIndicator: ['loadingIndicator']
|
|
34
38
|
};
|
|
35
39
|
return (0, _composeClasses.default)(slots, _iconButtonClasses.getIconButtonUtilityClass, classes);
|
|
36
40
|
};
|
|
@@ -41,7 +45,7 @@ const IconButtonRoot = (0, _zeroStyled.styled)(_ButtonBase.default, {
|
|
|
41
45
|
const {
|
|
42
46
|
ownerState
|
|
43
47
|
} = props;
|
|
44
|
-
return [styles.root, ownerState.color !== 'default' && styles[`color${(0, _capitalize.default)(ownerState.color)}`], ownerState.edge && styles[`edge${(0, _capitalize.default)(ownerState.edge)}`], styles[`size${(0, _capitalize.default)(ownerState.size)}`]];
|
|
48
|
+
return [styles.root, ownerState.loading && styles.loading, ownerState.color !== 'default' && styles[`color${(0, _capitalize.default)(ownerState.color)}`], ownerState.edge && styles[`edge${(0, _capitalize.default)(ownerState.edge)}`], styles[`size${(0, _capitalize.default)(ownerState.size)}`]];
|
|
45
49
|
}
|
|
46
50
|
})((0, _memoTheme.default)(({
|
|
47
51
|
theme
|
|
@@ -144,8 +148,34 @@ const IconButtonRoot = (0, _zeroStyled.styled)(_ButtonBase.default, {
|
|
|
144
148
|
[`&.${_iconButtonClasses.default.disabled}`]: {
|
|
145
149
|
backgroundColor: 'transparent',
|
|
146
150
|
color: (theme.vars || theme).palette.action.disabled
|
|
151
|
+
},
|
|
152
|
+
[`&.${_iconButtonClasses.default.loading}`]: {
|
|
153
|
+
color: 'transparent'
|
|
147
154
|
}
|
|
148
155
|
})));
|
|
156
|
+
const IconButtonLoadingIndicator = (0, _zeroStyled.styled)('span', {
|
|
157
|
+
name: 'MuiIconButton',
|
|
158
|
+
slot: 'LoadingIndicator',
|
|
159
|
+
overridesResolver: (props, styles) => styles.loadingIndicator
|
|
160
|
+
})(({
|
|
161
|
+
theme
|
|
162
|
+
}) => ({
|
|
163
|
+
display: 'none',
|
|
164
|
+
position: 'absolute',
|
|
165
|
+
visibility: 'visible',
|
|
166
|
+
top: '50%',
|
|
167
|
+
left: '50%',
|
|
168
|
+
transform: 'translate(-50%, -50%)',
|
|
169
|
+
color: (theme.vars || theme).palette.action.disabled,
|
|
170
|
+
variants: [{
|
|
171
|
+
props: {
|
|
172
|
+
loading: true
|
|
173
|
+
},
|
|
174
|
+
style: {
|
|
175
|
+
display: 'flex'
|
|
176
|
+
}
|
|
177
|
+
}]
|
|
178
|
+
}));
|
|
149
179
|
|
|
150
180
|
/**
|
|
151
181
|
* Refer to the [Icons](/material-ui/icons/) section of the documentation
|
|
@@ -164,26 +194,42 @@ const IconButton = /*#__PURE__*/React.forwardRef(function IconButton(inProps, re
|
|
|
164
194
|
disabled = false,
|
|
165
195
|
disableFocusRipple = false,
|
|
166
196
|
size = 'medium',
|
|
197
|
+
id: idProp,
|
|
198
|
+
loading = false,
|
|
199
|
+
loadingIndicator: loadingIndicatorProp,
|
|
167
200
|
...other
|
|
168
201
|
} = props;
|
|
202
|
+
const id = (0, _utils.unstable_useId)(idProp);
|
|
203
|
+
const loadingIndicator = loadingIndicatorProp ?? /*#__PURE__*/(0, _jsxRuntime.jsx)(_CircularProgress.default, {
|
|
204
|
+
"aria-labelledby": id,
|
|
205
|
+
color: "inherit",
|
|
206
|
+
size: 16
|
|
207
|
+
});
|
|
169
208
|
const ownerState = {
|
|
170
209
|
...props,
|
|
171
210
|
edge,
|
|
172
211
|
color,
|
|
173
212
|
disabled,
|
|
174
213
|
disableFocusRipple,
|
|
214
|
+
loading,
|
|
215
|
+
loadingIndicator,
|
|
175
216
|
size
|
|
176
217
|
};
|
|
177
218
|
const classes = useUtilityClasses(ownerState);
|
|
178
|
-
return /*#__PURE__*/(0, _jsxRuntime.
|
|
219
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(IconButtonRoot, {
|
|
220
|
+
id: id,
|
|
179
221
|
className: (0, _clsx.default)(classes.root, className),
|
|
180
222
|
centerRipple: true,
|
|
181
223
|
focusRipple: !disableFocusRipple,
|
|
182
|
-
disabled: disabled,
|
|
224
|
+
disabled: disabled || loading,
|
|
183
225
|
ref: ref,
|
|
184
226
|
...other,
|
|
185
227
|
ownerState: ownerState,
|
|
186
|
-
children:
|
|
228
|
+
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(IconButtonLoadingIndicator, {
|
|
229
|
+
className: classes.loadingIndicator,
|
|
230
|
+
ownerState: ownerState,
|
|
231
|
+
children: loading && loadingIndicator
|
|
232
|
+
}), children]
|
|
187
233
|
});
|
|
188
234
|
});
|
|
189
235
|
process.env.NODE_ENV !== "production" ? IconButton.propTypes /* remove-proptypes */ = {
|
|
@@ -242,6 +288,22 @@ process.env.NODE_ENV !== "production" ? IconButton.propTypes /* remove-proptypes
|
|
|
242
288
|
* @default false
|
|
243
289
|
*/
|
|
244
290
|
edge: _propTypes.default.oneOf(['end', 'start', false]),
|
|
291
|
+
/**
|
|
292
|
+
* @ignore
|
|
293
|
+
*/
|
|
294
|
+
id: _propTypes.default.string,
|
|
295
|
+
/**
|
|
296
|
+
* If `true`, the loading indicator is visible and the button is disabled.
|
|
297
|
+
* @default false
|
|
298
|
+
*/
|
|
299
|
+
loading: _propTypes.default.bool,
|
|
300
|
+
/**
|
|
301
|
+
* Element placed before the children if the button is in loading state.
|
|
302
|
+
* The node should contain an element with `role="progressbar"` with an accessible name.
|
|
303
|
+
* By default, it renders a `CircularProgress` that is labeled by the button itself.
|
|
304
|
+
* @default <CircularProgress color="inherit" size={16} />
|
|
305
|
+
*/
|
|
306
|
+
loadingIndicator: _propTypes.default.node,
|
|
245
307
|
/**
|
|
246
308
|
* The size of the component.
|
|
247
309
|
* `small` is equivalent to the dense button styling.
|
|
@@ -11,5 +11,5 @@ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateU
|
|
|
11
11
|
function getIconButtonUtilityClass(slot) {
|
|
12
12
|
return (0, _generateUtilityClass.default)('MuiIconButton', slot);
|
|
13
13
|
}
|
|
14
|
-
const iconButtonClasses = (0, _generateUtilityClasses.default)('MuiIconButton', ['root', 'disabled', 'colorInherit', 'colorPrimary', 'colorSecondary', 'colorError', 'colorInfo', 'colorSuccess', 'colorWarning', 'edgeStart', 'edgeEnd', 'sizeSmall', 'sizeMedium', 'sizeLarge']);
|
|
14
|
+
const iconButtonClasses = (0, _generateUtilityClasses.default)('MuiIconButton', ['root', 'disabled', 'colorInherit', 'colorPrimary', 'colorSecondary', 'colorError', 'colorInfo', 'colorSuccess', 'colorWarning', 'edgeStart', 'edgeEnd', 'sizeSmall', 'sizeMedium', 'sizeLarge', 'loading', 'loadingIndicator']);
|
|
15
15
|
var _default = exports.default = iconButtonClasses;
|
|
@@ -91,8 +91,8 @@ const useUtilityClasses = ownerState => {
|
|
|
91
91
|
const slots = {
|
|
92
92
|
root: ['root', `color${(0, _capitalize.default)(color)}`, variant],
|
|
93
93
|
dashed: ['dashed', `dashedColor${(0, _capitalize.default)(color)}`],
|
|
94
|
-
bar1: ['bar', `barColor${(0, _capitalize.default)(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar1Indeterminate', variant === 'determinate' && 'bar1Determinate', variant === 'buffer' && 'bar1Buffer'],
|
|
95
|
-
bar2: ['bar', variant !== 'buffer' && `barColor${(0, _capitalize.default)(color)}`, variant === 'buffer' && `color${(0, _capitalize.default)(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar2Indeterminate', variant === 'buffer' && 'bar2Buffer']
|
|
94
|
+
bar1: ['bar', 'bar1', `barColor${(0, _capitalize.default)(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar1Indeterminate', variant === 'determinate' && 'bar1Determinate', variant === 'buffer' && 'bar1Buffer'],
|
|
95
|
+
bar2: ['bar', 'bar2', variant !== 'buffer' && `barColor${(0, _capitalize.default)(color)}`, variant === 'buffer' && `color${(0, _capitalize.default)(color)}`, (variant === 'indeterminate' || variant === 'query') && 'bar2Indeterminate', variant === 'buffer' && 'bar2Buffer']
|
|
96
96
|
};
|
|
97
97
|
return (0, _composeClasses.default)(slots, _linearProgressClasses.getLinearProgressUtilityClass, classes);
|
|
98
98
|
};
|
|
@@ -210,7 +210,7 @@ const LinearProgressBar1 = (0, _zeroStyled.styled)('span', {
|
|
|
210
210
|
const {
|
|
211
211
|
ownerState
|
|
212
212
|
} = props;
|
|
213
|
-
return [styles.bar, styles[`barColor${(0, _capitalize.default)(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar1Indeterminate, ownerState.variant === 'determinate' && styles.bar1Determinate, ownerState.variant === 'buffer' && styles.bar1Buffer];
|
|
213
|
+
return [styles.bar, styles.bar1, styles[`barColor${(0, _capitalize.default)(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar1Indeterminate, ownerState.variant === 'determinate' && styles.bar1Determinate, ownerState.variant === 'buffer' && styles.bar1Buffer];
|
|
214
214
|
}
|
|
215
215
|
})((0, _memoTheme.default)(({
|
|
216
216
|
theme
|
|
@@ -274,7 +274,7 @@ const LinearProgressBar2 = (0, _zeroStyled.styled)('span', {
|
|
|
274
274
|
const {
|
|
275
275
|
ownerState
|
|
276
276
|
} = props;
|
|
277
|
-
return [styles.bar, styles[`barColor${(0, _capitalize.default)(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar2Indeterminate, ownerState.variant === 'buffer' && styles.bar2Buffer];
|
|
277
|
+
return [styles.bar, styles.bar2, styles[`barColor${(0, _capitalize.default)(ownerState.color)}`], (ownerState.variant === 'indeterminate' || ownerState.variant === 'query') && styles.bar2Indeterminate, ownerState.variant === 'buffer' && styles.bar2Buffer];
|
|
278
278
|
}
|
|
279
279
|
})((0, _memoTheme.default)(({
|
|
280
280
|
theme
|
|
@@ -11,5 +11,5 @@ var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateU
|
|
|
11
11
|
function getLinearProgressUtilityClass(slot) {
|
|
12
12
|
return (0, _generateUtilityClass.default)('MuiLinearProgress', slot);
|
|
13
13
|
}
|
|
14
|
-
const linearProgressClasses = (0, _generateUtilityClasses.default)('MuiLinearProgress', ['root', 'colorPrimary', 'colorSecondary', 'determinate', 'indeterminate', 'buffer', 'query', 'dashed', 'dashedColorPrimary', 'dashedColorSecondary', 'bar', 'barColorPrimary', 'barColorSecondary', 'bar1Indeterminate', 'bar1Determinate', 'bar1Buffer', 'bar2Indeterminate', 'bar2Buffer']);
|
|
14
|
+
const linearProgressClasses = (0, _generateUtilityClasses.default)('MuiLinearProgress', ['root', 'colorPrimary', 'colorSecondary', 'determinate', 'indeterminate', 'buffer', 'query', 'dashed', 'dashedColorPrimary', 'dashedColorSecondary', 'bar', 'bar1', 'bar2', 'barColorPrimary', 'barColorSecondary', 'bar1Indeterminate', 'bar1Determinate', 'bar1Buffer', 'bar2Indeterminate', 'bar2Buffer']);
|
|
15
15
|
var _default = exports.default = linearProgressClasses;
|
|
@@ -11,8 +11,9 @@ const getTextDecoration = ({
|
|
|
11
11
|
ownerState
|
|
12
12
|
}) => {
|
|
13
13
|
const transformedColor = ownerState.color;
|
|
14
|
-
|
|
15
|
-
const
|
|
14
|
+
// check the `main` color first for a custom palette, then fallback to the color itself
|
|
15
|
+
const color = (0, _style.getPath)(theme, `palette.${transformedColor}.main`, false) || (0, _style.getPath)(theme, `palette.${transformedColor}`, false) || ownerState.color;
|
|
16
|
+
const channelColor = (0, _style.getPath)(theme, `palette.${transformedColor}.mainChannel`) || (0, _style.getPath)(theme, `palette.${transformedColor}Channel`);
|
|
16
17
|
if ('vars' in theme && channelColor) {
|
|
17
18
|
return `rgba(${channelColor} / 0.4)`;
|
|
18
19
|
}
|
package/node/Select/Select.js
CHANGED
|
@@ -11,6 +11,7 @@ var React = _interopRequireWildcard(require("react"));
|
|
|
11
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
12
12
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
13
13
|
var _deepmerge = _interopRequireDefault(require("@mui/utils/deepmerge"));
|
|
14
|
+
var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"));
|
|
14
15
|
var _getReactElementRef = _interopRequireDefault(require("@mui/utils/getReactElementRef"));
|
|
15
16
|
var _SelectInput = _interopRequireDefault(require("./SelectInput"));
|
|
16
17
|
var _formControlState = _interopRequireDefault(require("../FormControl/formControlState"));
|
|
@@ -24,12 +25,20 @@ var _DefaultPropsProvider = require("../DefaultPropsProvider");
|
|
|
24
25
|
var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
|
|
25
26
|
var _zeroStyled = require("../zero-styled");
|
|
26
27
|
var _rootShouldForwardProp = _interopRequireDefault(require("../styles/rootShouldForwardProp"));
|
|
28
|
+
var _selectClasses = require("./selectClasses");
|
|
27
29
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
28
30
|
const useUtilityClasses = ownerState => {
|
|
29
31
|
const {
|
|
30
32
|
classes
|
|
31
33
|
} = ownerState;
|
|
32
|
-
|
|
34
|
+
const slots = {
|
|
35
|
+
root: ['root']
|
|
36
|
+
};
|
|
37
|
+
const composedClasses = (0, _composeClasses.default)(slots, _selectClasses.getSelectUtilityClasses, classes);
|
|
38
|
+
return {
|
|
39
|
+
...classes,
|
|
40
|
+
...composedClasses
|
|
41
|
+
};
|
|
33
42
|
};
|
|
34
43
|
const styledRootConfig = {
|
|
35
44
|
name: 'MuiSelect',
|
|
@@ -450,7 +450,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
|
|
|
450
450
|
ref: handleDisplayRef,
|
|
451
451
|
tabIndex: tabIndex,
|
|
452
452
|
role: "combobox",
|
|
453
|
-
"aria-controls": listboxId,
|
|
453
|
+
"aria-controls": open ? listboxId : undefined,
|
|
454
454
|
"aria-disabled": disabled ? 'true' : undefined,
|
|
455
455
|
"aria-expanded": open ? 'true' : 'false',
|
|
456
456
|
"aria-haspopup": "listbox",
|
package/node/Slider/useSlider.js
CHANGED
|
@@ -198,6 +198,8 @@ function useSlider(parameters) {
|
|
|
198
198
|
const [open, setOpen] = React.useState(-1);
|
|
199
199
|
const [dragging, setDragging] = React.useState(false);
|
|
200
200
|
const moveCount = React.useRef(0);
|
|
201
|
+
// lastChangedValue is updated whenever onChange is triggered.
|
|
202
|
+
const lastChangedValue = React.useRef(null);
|
|
201
203
|
const [valueDerived, setValueState] = (0, _utils.unstable_useControlled)({
|
|
202
204
|
controlled: valueProp,
|
|
203
205
|
default: defaultValue ?? min,
|
|
@@ -218,6 +220,7 @@ function useSlider(parameters) {
|
|
|
218
220
|
name
|
|
219
221
|
}
|
|
220
222
|
});
|
|
223
|
+
lastChangedValue.current = value;
|
|
221
224
|
onChange(clonedEvent, value, thumbIndex);
|
|
222
225
|
});
|
|
223
226
|
const range = Array.isArray(valueDerived);
|
|
@@ -289,7 +292,7 @@ function useSlider(parameters) {
|
|
|
289
292
|
handleChange(event, newValue, index);
|
|
290
293
|
}
|
|
291
294
|
if (onChangeCommitted) {
|
|
292
|
-
onChangeCommitted(event, newValue);
|
|
295
|
+
onChangeCommitted(event, lastChangedValue.current ?? newValue);
|
|
293
296
|
}
|
|
294
297
|
};
|
|
295
298
|
const createHandleHiddenInputKeyDown = otherHandlers => event => {
|
|
@@ -494,7 +497,7 @@ function useSlider(parameters) {
|
|
|
494
497
|
setOpen(-1);
|
|
495
498
|
}
|
|
496
499
|
if (onChangeCommitted) {
|
|
497
|
-
onChangeCommitted(nativeEvent, newValue);
|
|
500
|
+
onChangeCommitted(nativeEvent, lastChangedValue.current ?? newValue);
|
|
498
501
|
}
|
|
499
502
|
touchId.current = undefined;
|
|
500
503
|
|
|
@@ -18,6 +18,7 @@ var _memoTheme = _interopRequireDefault(require("../utils/memoTheme"));
|
|
|
18
18
|
var _DefaultPropsProvider = require("../DefaultPropsProvider");
|
|
19
19
|
var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
|
|
20
20
|
var _tableSortLabelClasses = _interopRequireWildcard(require("./tableSortLabelClasses"));
|
|
21
|
+
var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
|
|
21
22
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
22
23
|
const useUtilityClasses = ownerState => {
|
|
23
24
|
const {
|
|
@@ -117,6 +118,8 @@ const TableSortLabel = /*#__PURE__*/React.forwardRef(function TableSortLabel(inP
|
|
|
117
118
|
direction = 'asc',
|
|
118
119
|
hideSortIcon = false,
|
|
119
120
|
IconComponent = _ArrowDownward.default,
|
|
121
|
+
slots = {},
|
|
122
|
+
slotProps = {},
|
|
120
123
|
...other
|
|
121
124
|
} = props;
|
|
122
125
|
const ownerState = {
|
|
@@ -127,17 +130,31 @@ const TableSortLabel = /*#__PURE__*/React.forwardRef(function TableSortLabel(inP
|
|
|
127
130
|
IconComponent
|
|
128
131
|
};
|
|
129
132
|
const classes = useUtilityClasses(ownerState);
|
|
130
|
-
|
|
133
|
+
const externalForwardedProps = {
|
|
134
|
+
slots,
|
|
135
|
+
slotProps
|
|
136
|
+
};
|
|
137
|
+
const [RootSlot, rootProps] = (0, _useSlot.default)('root', {
|
|
138
|
+
elementType: TableSortLabelRoot,
|
|
139
|
+
externalForwardedProps,
|
|
140
|
+
ownerState,
|
|
131
141
|
className: (0, _clsx.default)(classes.root, className),
|
|
132
|
-
|
|
142
|
+
ref
|
|
143
|
+
});
|
|
144
|
+
const [IconSlot, iconProps] = (0, _useSlot.default)('icon', {
|
|
145
|
+
elementType: TableSortLabelIcon,
|
|
146
|
+
externalForwardedProps,
|
|
147
|
+
ownerState,
|
|
148
|
+
className: classes.icon
|
|
149
|
+
});
|
|
150
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(RootSlot, {
|
|
133
151
|
disableRipple: true,
|
|
134
|
-
|
|
135
|
-
|
|
152
|
+
component: "span",
|
|
153
|
+
...rootProps,
|
|
136
154
|
...other,
|
|
137
|
-
children: [children, hideSortIcon && !active ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
155
|
+
children: [children, hideSortIcon && !active ? null : /*#__PURE__*/(0, _jsxRuntime.jsx)(IconSlot, {
|
|
138
156
|
as: IconComponent,
|
|
139
|
-
|
|
140
|
-
ownerState: ownerState
|
|
157
|
+
...iconProps
|
|
141
158
|
})]
|
|
142
159
|
});
|
|
143
160
|
});
|
|
@@ -178,6 +195,22 @@ process.env.NODE_ENV !== "production" ? TableSortLabel.propTypes /* remove-propt
|
|
|
178
195
|
* @default ArrowDownwardIcon
|
|
179
196
|
*/
|
|
180
197
|
IconComponent: _propTypes.default.elementType,
|
|
198
|
+
/**
|
|
199
|
+
* The props used for each slot inside.
|
|
200
|
+
* @default {}
|
|
201
|
+
*/
|
|
202
|
+
slotProps: _propTypes.default.shape({
|
|
203
|
+
icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
204
|
+
root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
|
205
|
+
}),
|
|
206
|
+
/**
|
|
207
|
+
* The components used for each slot inside.
|
|
208
|
+
* @default {}
|
|
209
|
+
*/
|
|
210
|
+
slots: _propTypes.default.shape({
|
|
211
|
+
icon: _propTypes.default.elementType,
|
|
212
|
+
root: _propTypes.default.elementType
|
|
213
|
+
}),
|
|
181
214
|
/**
|
|
182
215
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
183
216
|
*/
|
package/node/Tooltip/Tooltip.js
CHANGED
|
@@ -387,7 +387,7 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
|
|
|
387
387
|
// eslint-disable-next-line react-hooks/rules-of-hooks -- process.env never changes
|
|
388
388
|
React.useEffect(() => {
|
|
389
389
|
if (childNode && childNode.disabled && !isControlled && title !== '' && childNode.tagName.toLowerCase() === 'button') {
|
|
390
|
-
console.
|
|
390
|
+
console.warn(['MUI: You are providing a disabled `button` child to the Tooltip component.', 'A disabled element does not fire events.', "Tooltip needs to listen to the child element's events to display the title.", '', 'Add a simple wrapper element, such as a `span`.'].join('\n'));
|
|
391
391
|
}
|
|
392
392
|
}, [title, childNode, isControlled]);
|
|
393
393
|
}
|
package/node/index.js
CHANGED
package/node/utils/index.js
CHANGED
|
@@ -41,6 +41,12 @@ Object.defineProperty(exports, "isMuiElement", {
|
|
|
41
41
|
return _isMuiElement.default;
|
|
42
42
|
}
|
|
43
43
|
});
|
|
44
|
+
Object.defineProperty(exports, "mergeSlotProps", {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: function () {
|
|
47
|
+
return _mergeSlotProps.default;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
44
50
|
Object.defineProperty(exports, "ownerDocument", {
|
|
45
51
|
enumerable: true,
|
|
46
52
|
get: function () {
|
|
@@ -126,6 +132,7 @@ var _unsupportedProp = _interopRequireDefault(require("./unsupportedProp"));
|
|
|
126
132
|
var _useControlled = _interopRequireDefault(require("./useControlled"));
|
|
127
133
|
var _useEventCallback = _interopRequireDefault(require("./useEventCallback"));
|
|
128
134
|
var _useForkRef = _interopRequireDefault(require("./useForkRef"));
|
|
135
|
+
var _mergeSlotProps = _interopRequireDefault(require("./mergeSlotProps"));
|
|
129
136
|
// TODO: remove this export once ClassNameGenerator is stable
|
|
130
137
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
131
138
|
const unstable_ClassNameGenerator = exports.unstable_ClassNameGenerator = {
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = mergeSlotProps;
|
|
8
|
+
var _clsx = _interopRequireDefault(require("clsx"));
|
|
9
|
+
function mergeSlotProps(externalSlotProps, defaultSlotProps) {
|
|
10
|
+
if (!externalSlotProps) {
|
|
11
|
+
return defaultSlotProps;
|
|
12
|
+
}
|
|
13
|
+
if (typeof externalSlotProps === 'function' || typeof defaultSlotProps === 'function') {
|
|
14
|
+
return ownerState => {
|
|
15
|
+
const defaultSlotPropsValue = typeof defaultSlotProps === 'function' ? defaultSlotProps(ownerState) : defaultSlotProps;
|
|
16
|
+
const externalSlotPropsValue = typeof externalSlotProps === 'function' ? externalSlotProps({
|
|
17
|
+
...ownerState,
|
|
18
|
+
...defaultSlotPropsValue
|
|
19
|
+
}) : externalSlotProps;
|
|
20
|
+
const className = (0, _clsx.default)(ownerState?.className, defaultSlotPropsValue?.className, externalSlotPropsValue?.className);
|
|
21
|
+
return {
|
|
22
|
+
...defaultSlotPropsValue,
|
|
23
|
+
...externalSlotPropsValue,
|
|
24
|
+
...(!!className && {
|
|
25
|
+
className
|
|
26
|
+
}),
|
|
27
|
+
...(defaultSlotPropsValue?.style && externalSlotPropsValue?.style && {
|
|
28
|
+
style: {
|
|
29
|
+
...defaultSlotPropsValue.style,
|
|
30
|
+
...externalSlotPropsValue.style
|
|
31
|
+
}
|
|
32
|
+
})
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
const className = (0, _clsx.default)(defaultSlotProps?.className, externalSlotProps?.className);
|
|
37
|
+
return {
|
|
38
|
+
...defaultSlotProps,
|
|
39
|
+
...externalSlotProps,
|
|
40
|
+
...(!!className && {
|
|
41
|
+
className
|
|
42
|
+
}),
|
|
43
|
+
...(defaultSlotProps?.style && externalSlotProps?.style && {
|
|
44
|
+
style: {
|
|
45
|
+
...defaultSlotProps.style,
|
|
46
|
+
...externalSlotProps.style
|
|
47
|
+
}
|
|
48
|
+
})
|
|
49
|
+
};
|
|
50
|
+
}
|
package/node/utils/useSlot.js
CHANGED
|
@@ -38,6 +38,7 @@ name, parameters) {
|
|
|
38
38
|
ownerState,
|
|
39
39
|
externalForwardedProps,
|
|
40
40
|
internalForwardedProps,
|
|
41
|
+
shouldForwardComponentProp = false,
|
|
41
42
|
...useSlotPropsParams
|
|
42
43
|
} = parameters;
|
|
43
44
|
const {
|
|
@@ -73,9 +74,12 @@ name, parameters) {
|
|
|
73
74
|
...(name === 'root' && !rootComponent && !slots[name] && internalForwardedProps),
|
|
74
75
|
...(name !== 'root' && !slots[name] && internalForwardedProps),
|
|
75
76
|
...mergedProps,
|
|
76
|
-
...(LeafComponent && {
|
|
77
|
+
...(LeafComponent && !shouldForwardComponentProp && {
|
|
77
78
|
as: LeafComponent
|
|
78
79
|
}),
|
|
80
|
+
...(LeafComponent && shouldForwardComponentProp && {
|
|
81
|
+
component: LeafComponent
|
|
82
|
+
}),
|
|
79
83
|
ref
|
|
80
84
|
}, ownerState);
|
|
81
85
|
return [elementType, props];
|
package/node/version/index.js
CHANGED
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.version = exports.prerelease = exports.patch = exports.minor = exports.major = exports.default = void 0;
|
|
7
|
-
const version = exports.version = "6.
|
|
7
|
+
const version = exports.version = "6.4.0";
|
|
8
8
|
const major = exports.major = Number("6");
|
|
9
|
-
const minor = exports.minor = Number("
|
|
9
|
+
const minor = exports.minor = Number("4");
|
|
10
10
|
const patch = exports.patch = Number("0");
|
|
11
11
|
const prerelease = exports.prerelease = undefined;
|
|
12
12
|
var _default = exports.default = version;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/material",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.4.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"description": "Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"prop-types": "^15.8.1",
|
|
36
36
|
"react-is": "^19.0.0",
|
|
37
37
|
"react-transition-group": "^4.4.5",
|
|
38
|
-
"@mui/
|
|
39
|
-
"@mui/utils": "^6.
|
|
40
|
-
"@mui/
|
|
41
|
-
"@mui/
|
|
38
|
+
"@mui/core-downloads-tracker": "^6.4.0",
|
|
39
|
+
"@mui/utils": "^6.4.0",
|
|
40
|
+
"@mui/types": "^7.2.21",
|
|
41
|
+
"@mui/system": "^6.4.0"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"@emotion/react": "^11.5.0",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
47
47
|
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
48
48
|
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
49
|
-
"@mui/material-pigment-css": "^6.
|
|
49
|
+
"@mui/material-pigment-css": "^6.4.0"
|
|
50
50
|
},
|
|
51
51
|
"peerDependenciesMeta": {
|
|
52
52
|
"@types/react": {
|
package/utils/index.d.ts
CHANGED
|
@@ -16,4 +16,5 @@ export { default as unsupportedProp } from './unsupportedProp';
|
|
|
16
16
|
export { default as useControlled } from './useControlled';
|
|
17
17
|
export { default as useEventCallback } from './useEventCallback';
|
|
18
18
|
export { default as useForkRef } from './useForkRef';
|
|
19
|
+
export { default as mergeSlotProps } from './mergeSlotProps';
|
|
19
20
|
export * from './types';
|
package/utils/index.js
CHANGED
|
@@ -18,6 +18,7 @@ export { default as unsupportedProp } from "./unsupportedProp.js";
|
|
|
18
18
|
export { default as useControlled } from "./useControlled.js";
|
|
19
19
|
export { default as useEventCallback } from "./useEventCallback.js";
|
|
20
20
|
export { default as useForkRef } from "./useForkRef.js";
|
|
21
|
+
export { default as mergeSlotProps } from "./mergeSlotProps.js";
|
|
21
22
|
// TODO: remove this export once ClassNameGenerator is stable
|
|
22
23
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
23
24
|
export const unstable_ClassNameGenerator = {
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { SlotComponentProps } from '@mui/utils';
|
|
2
|
+
export default function mergeSlotProps<T extends SlotComponentProps<React.ElementType, {}, {}>, K = T, U = T extends Function ? T : K extends Function ? K : T extends undefined ? K : T>(externalSlotProps: T | undefined, defaultSlotProps: K): U;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import clsx from 'clsx';
|
|
2
|
+
export default function mergeSlotProps(externalSlotProps, defaultSlotProps) {
|
|
3
|
+
if (!externalSlotProps) {
|
|
4
|
+
return defaultSlotProps;
|
|
5
|
+
}
|
|
6
|
+
if (typeof externalSlotProps === 'function' || typeof defaultSlotProps === 'function') {
|
|
7
|
+
return ownerState => {
|
|
8
|
+
const defaultSlotPropsValue = typeof defaultSlotProps === 'function' ? defaultSlotProps(ownerState) : defaultSlotProps;
|
|
9
|
+
const externalSlotPropsValue = typeof externalSlotProps === 'function' ? externalSlotProps({
|
|
10
|
+
...ownerState,
|
|
11
|
+
...defaultSlotPropsValue
|
|
12
|
+
}) : externalSlotProps;
|
|
13
|
+
const className = clsx(ownerState?.className, defaultSlotPropsValue?.className, externalSlotPropsValue?.className);
|
|
14
|
+
return {
|
|
15
|
+
...defaultSlotPropsValue,
|
|
16
|
+
...externalSlotPropsValue,
|
|
17
|
+
...(!!className && {
|
|
18
|
+
className
|
|
19
|
+
}),
|
|
20
|
+
...(defaultSlotPropsValue?.style && externalSlotPropsValue?.style && {
|
|
21
|
+
style: {
|
|
22
|
+
...defaultSlotPropsValue.style,
|
|
23
|
+
...externalSlotPropsValue.style
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
const className = clsx(defaultSlotProps?.className, externalSlotProps?.className);
|
|
30
|
+
return {
|
|
31
|
+
...defaultSlotProps,
|
|
32
|
+
...externalSlotProps,
|
|
33
|
+
...(!!className && {
|
|
34
|
+
className
|
|
35
|
+
}),
|
|
36
|
+
...(defaultSlotProps?.style && externalSlotProps?.style && {
|
|
37
|
+
style: {
|
|
38
|
+
...defaultSlotProps.style,
|
|
39
|
+
...externalSlotProps.style
|
|
40
|
+
}
|
|
41
|
+
})
|
|
42
|
+
};
|
|
43
|
+
}
|
package/utils/useSlot.d.ts
CHANGED
|
@@ -70,6 +70,14 @@ name: T, parameters: (T extends 'root' ? {
|
|
|
70
70
|
* e.g. Autocomplete's listbox uses Popper + StyledComponent
|
|
71
71
|
*/
|
|
72
72
|
internalForwardedProps?: any;
|
|
73
|
+
/**
|
|
74
|
+
* Set to true if the `elementType` is a styled component of another Material UI component.
|
|
75
|
+
*
|
|
76
|
+
* For example, the AlertRoot is a styled component of the Paper component.
|
|
77
|
+
* This flag is used to forward the `component` and `slotProps.root.component` to the Paper component.
|
|
78
|
+
* Otherwise, the `component` prop will be converted to `as` prop which replaces the Paper component (the paper styles are gone).
|
|
79
|
+
*/
|
|
80
|
+
shouldForwardComponentProp?: boolean;
|
|
73
81
|
}): [ElementType, {
|
|
74
82
|
className: string;
|
|
75
83
|
ownerState: OwnerState & SlotOwnerState;
|
package/utils/useSlot.js
CHANGED
|
@@ -32,6 +32,7 @@ name, parameters) {
|
|
|
32
32
|
ownerState,
|
|
33
33
|
externalForwardedProps,
|
|
34
34
|
internalForwardedProps,
|
|
35
|
+
shouldForwardComponentProp = false,
|
|
35
36
|
...useSlotPropsParams
|
|
36
37
|
} = parameters;
|
|
37
38
|
const {
|
|
@@ -67,9 +68,12 @@ name, parameters) {
|
|
|
67
68
|
...(name === 'root' && !rootComponent && !slots[name] && internalForwardedProps),
|
|
68
69
|
...(name !== 'root' && !slots[name] && internalForwardedProps),
|
|
69
70
|
...mergedProps,
|
|
70
|
-
...(LeafComponent && {
|
|
71
|
+
...(LeafComponent && !shouldForwardComponentProp && {
|
|
71
72
|
as: LeafComponent
|
|
72
73
|
}),
|
|
74
|
+
...(LeafComponent && shouldForwardComponentProp && {
|
|
75
|
+
component: LeafComponent
|
|
76
|
+
}),
|
|
73
77
|
ref
|
|
74
78
|
}, ownerState);
|
|
75
79
|
return [elementType, props];
|
package/version/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export const version = "6.
|
|
1
|
+
export const version = "6.4.0";
|
|
2
2
|
export const major = Number("6");
|
|
3
|
-
export const minor = Number("
|
|
3
|
+
export const minor = Number("4");
|
|
4
4
|
export const patch = Number("0");
|
|
5
5
|
export const prerelease = undefined;
|
|
6
6
|
export default version;
|