@mui/material 6.3.1 → 6.4.1
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/Autocomplete/Autocomplete.d.ts +1 -1
- 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/ButtonBase/ButtonBase.d.ts +2 -0
- package/ButtonGroup/ButtonGroupButtonContext.js +2 -0
- package/ButtonGroup/ButtonGroupContext.js +2 -0
- package/CHANGELOG.md +91 -0
- package/CardHeader/CardHeader.d.ts +114 -1
- package/CardHeader/CardHeader.js +99 -32
- package/CircularProgress/CircularProgress.js +2 -2
- package/Dialog/Dialog.d.ts +85 -1
- package/Dialog/Dialog.js +91 -20
- package/Dialog/DialogContext.js +2 -0
- package/Drawer/Drawer.js +1 -1
- package/Drawer/drawerClasses.d.ts +32 -8
- package/Drawer/drawerClasses.js +1 -1
- package/FormControl/FormControl.js +9 -7
- package/FormControl/FormControlContext.js +2 -0
- package/Hidden/withWidth.js +2 -0
- package/IconButton/IconButton.d.ts +13 -0
- package/IconButton/IconButton.js +80 -7
- package/IconButton/iconButtonClasses.d.ts +6 -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/RadioGroup/RadioGroupContext.js +2 -0
- package/Select/Select.js +10 -1
- package/Select/SelectInput.js +1 -1
- package/Slider/useSlider.js +5 -2
- package/Step/StepContext.js +2 -0
- package/StepLabel/StepLabel.d.ts +1 -1
- package/Stepper/StepperContext.js +2 -0
- package/Table/Tablelvl2Context.js +2 -0
- package/ToggleButtonGroup/ToggleButtonGroupButtonContext.js +2 -0
- package/ToggleButtonGroup/ToggleButtonGroupContext.js +2 -0
- package/Tooltip/Tooltip.d.ts +1 -1
- package/index.js +1 -1
- package/modern/Alert/Alert.js +53 -21
- package/modern/Button/Button.js +233 -15
- package/modern/Button/buttonClasses.js +1 -1
- package/modern/ButtonGroup/ButtonGroupButtonContext.js +2 -0
- package/modern/ButtonGroup/ButtonGroupContext.js +2 -0
- package/modern/CardHeader/CardHeader.js +99 -32
- package/modern/CircularProgress/CircularProgress.js +2 -2
- package/modern/Dialog/Dialog.js +91 -20
- package/modern/Dialog/DialogContext.js +2 -0
- package/modern/Drawer/Drawer.js +1 -1
- package/modern/Drawer/drawerClasses.js +1 -1
- package/modern/FormControl/FormControl.js +9 -7
- package/modern/FormControl/FormControlContext.js +2 -0
- package/modern/Hidden/withWidth.js +2 -0
- package/modern/IconButton/IconButton.js +80 -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/RadioGroup/RadioGroupContext.js +2 -0
- package/modern/Select/Select.js +10 -1
- package/modern/Select/SelectInput.js +1 -1
- package/modern/Slider/useSlider.js +5 -2
- package/modern/Step/StepContext.js +2 -0
- package/modern/Stepper/StepperContext.js +2 -0
- package/modern/Table/Tablelvl2Context.js +2 -0
- package/modern/ToggleButtonGroup/ToggleButtonGroupButtonContext.js +2 -0
- package/modern/ToggleButtonGroup/ToggleButtonGroupContext.js +2 -0
- 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/Button/Button.js +233 -15
- package/node/Button/buttonClasses.js +1 -1
- package/node/ButtonGroup/ButtonGroupButtonContext.js +1 -0
- package/node/ButtonGroup/ButtonGroupContext.js +1 -0
- package/node/CardHeader/CardHeader.js +99 -32
- package/node/CircularProgress/CircularProgress.js +2 -2
- package/node/Dialog/Dialog.js +91 -20
- package/node/Dialog/DialogContext.js +1 -0
- package/node/Drawer/Drawer.js +1 -1
- package/node/Drawer/drawerClasses.js +1 -1
- package/node/FormControl/FormControl.js +9 -7
- package/node/FormControl/FormControlContext.js +1 -0
- package/node/Hidden/withWidth.js +1 -0
- package/node/IconButton/IconButton.js +79 -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/RadioGroup/RadioGroupContext.js +1 -0
- package/node/Select/Select.js +10 -1
- package/node/Select/SelectInput.js +1 -1
- package/node/Slider/useSlider.js +5 -2
- package/node/Step/StepContext.js +1 -0
- package/node/Stepper/StepperContext.js +1 -0
- package/node/Table/Tablelvl2Context.js +1 -0
- package/node/ToggleButtonGroup/ToggleButtonGroupButtonContext.js +1 -0
- package/node/ToggleButtonGroup/ToggleButtonGroupContext.js +1 -0
- 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 +5 -5
- 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
|
@@ -5,8 +5,9 @@ const getTextDecoration = ({
|
|
|
5
5
|
ownerState
|
|
6
6
|
}) => {
|
|
7
7
|
const transformedColor = ownerState.color;
|
|
8
|
-
|
|
9
|
-
const
|
|
8
|
+
// check the `main` color first for a custom palette, then fallback to the color itself
|
|
9
|
+
const color = getPath(theme, `palette.${transformedColor}.main`, false) || getPath(theme, `palette.${transformedColor}`, false) || ownerState.color;
|
|
10
|
+
const channelColor = getPath(theme, `palette.${transformedColor}.mainChannel`) || getPath(theme, `palette.${transformedColor}Channel`);
|
|
10
11
|
if ('vars' in theme && channelColor) {
|
|
11
12
|
return `rgba(${channelColor} / 0.4)`;
|
|
12
13
|
}
|
package/modern/Select/Select.js
CHANGED
|
@@ -4,6 +4,7 @@ import * as React from 'react';
|
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import clsx from 'clsx';
|
|
6
6
|
import deepmerge from '@mui/utils/deepmerge';
|
|
7
|
+
import composeClasses from '@mui/utils/composeClasses';
|
|
7
8
|
import getReactElementRef from '@mui/utils/getReactElementRef';
|
|
8
9
|
import SelectInput from "./SelectInput.js";
|
|
9
10
|
import formControlState from "../FormControl/formControlState.js";
|
|
@@ -17,12 +18,20 @@ import { useDefaultProps } from "../DefaultPropsProvider/index.js";
|
|
|
17
18
|
import useForkRef from "../utils/useForkRef.js";
|
|
18
19
|
import { styled } from "../zero-styled/index.js";
|
|
19
20
|
import rootShouldForwardProp from "../styles/rootShouldForwardProp.js";
|
|
21
|
+
import { getSelectUtilityClasses } from "./selectClasses.js";
|
|
20
22
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
21
23
|
const useUtilityClasses = ownerState => {
|
|
22
24
|
const {
|
|
23
25
|
classes
|
|
24
26
|
} = ownerState;
|
|
25
|
-
|
|
27
|
+
const slots = {
|
|
28
|
+
root: ['root']
|
|
29
|
+
};
|
|
30
|
+
const composedClasses = composeClasses(slots, getSelectUtilityClasses, classes);
|
|
31
|
+
return {
|
|
32
|
+
...classes,
|
|
33
|
+
...composedClasses
|
|
34
|
+
};
|
|
26
35
|
};
|
|
27
36
|
const styledRootConfig = {
|
|
28
37
|
name: 'MuiSelect',
|
|
@@ -443,7 +443,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
|
|
|
443
443
|
ref: handleDisplayRef,
|
|
444
444
|
tabIndex: tabIndex,
|
|
445
445
|
role: "combobox",
|
|
446
|
-
"aria-controls": listboxId,
|
|
446
|
+
"aria-controls": open ? listboxId : undefined,
|
|
447
447
|
"aria-disabled": disabled ? 'true' : undefined,
|
|
448
448
|
"aria-expanded": open ? 'true' : 'false',
|
|
449
449
|
"aria-haspopup": "listbox",
|
|
@@ -188,6 +188,8 @@ export function useSlider(parameters) {
|
|
|
188
188
|
const [open, setOpen] = React.useState(-1);
|
|
189
189
|
const [dragging, setDragging] = React.useState(false);
|
|
190
190
|
const moveCount = React.useRef(0);
|
|
191
|
+
// lastChangedValue is updated whenever onChange is triggered.
|
|
192
|
+
const lastChangedValue = React.useRef(null);
|
|
191
193
|
const [valueDerived, setValueState] = useControlled({
|
|
192
194
|
controlled: valueProp,
|
|
193
195
|
default: defaultValue ?? min,
|
|
@@ -208,6 +210,7 @@ export function useSlider(parameters) {
|
|
|
208
210
|
name
|
|
209
211
|
}
|
|
210
212
|
});
|
|
213
|
+
lastChangedValue.current = value;
|
|
211
214
|
onChange(clonedEvent, value, thumbIndex);
|
|
212
215
|
});
|
|
213
216
|
const range = Array.isArray(valueDerived);
|
|
@@ -279,7 +282,7 @@ export function useSlider(parameters) {
|
|
|
279
282
|
handleChange(event, newValue, index);
|
|
280
283
|
}
|
|
281
284
|
if (onChangeCommitted) {
|
|
282
|
-
onChangeCommitted(event, newValue);
|
|
285
|
+
onChangeCommitted(event, lastChangedValue.current ?? newValue);
|
|
283
286
|
}
|
|
284
287
|
};
|
|
285
288
|
const createHandleHiddenInputKeyDown = otherHandlers => event => {
|
|
@@ -484,7 +487,7 @@ export function useSlider(parameters) {
|
|
|
484
487
|
setOpen(-1);
|
|
485
488
|
}
|
|
486
489
|
if (onChangeCommitted) {
|
|
487
|
-
onChangeCommitted(nativeEvent, newValue);
|
|
490
|
+
onChangeCommitted(nativeEvent, lastChangedValue.current ?? newValue);
|
|
488
491
|
}
|
|
489
492
|
touchId.current = undefined;
|
|
490
493
|
|
package/modern/index.js
CHANGED
package/modern/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,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/modern/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/modern/version/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export const version = "6.
|
|
1
|
+
export const version = "6.4.1";
|
|
2
2
|
export const major = Number("6");
|
|
3
|
-
export const minor = Number("
|
|
3
|
+
export const minor = Number("4");
|
|
4
4
|
export const patch = Number("1");
|
|
5
5
|
export const prerelease = undefined;
|
|
6
6
|
export default version;
|
package/node/Alert/Alert.js
CHANGED
|
@@ -194,6 +194,39 @@ const Alert = /*#__PURE__*/React.forwardRef(function Alert(inProps, ref) {
|
|
|
194
194
|
...slotProps
|
|
195
195
|
}
|
|
196
196
|
};
|
|
197
|
+
const [RootSlot, rootSlotProps] = (0, _useSlot.default)('root', {
|
|
198
|
+
ref,
|
|
199
|
+
shouldForwardComponentProp: true,
|
|
200
|
+
className: (0, _clsx.default)(classes.root, className),
|
|
201
|
+
elementType: AlertRoot,
|
|
202
|
+
externalForwardedProps: {
|
|
203
|
+
...externalForwardedProps,
|
|
204
|
+
...other
|
|
205
|
+
},
|
|
206
|
+
ownerState,
|
|
207
|
+
additionalProps: {
|
|
208
|
+
role,
|
|
209
|
+
elevation: 0
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
const [IconSlot, iconSlotProps] = (0, _useSlot.default)('icon', {
|
|
213
|
+
className: classes.icon,
|
|
214
|
+
elementType: AlertIcon,
|
|
215
|
+
externalForwardedProps,
|
|
216
|
+
ownerState
|
|
217
|
+
});
|
|
218
|
+
const [MessageSlot, messageSlotProps] = (0, _useSlot.default)('message', {
|
|
219
|
+
className: classes.message,
|
|
220
|
+
elementType: AlertMessage,
|
|
221
|
+
externalForwardedProps,
|
|
222
|
+
ownerState
|
|
223
|
+
});
|
|
224
|
+
const [ActionSlot, actionSlotProps] = (0, _useSlot.default)('action', {
|
|
225
|
+
className: classes.action,
|
|
226
|
+
elementType: AlertAction,
|
|
227
|
+
externalForwardedProps,
|
|
228
|
+
ownerState
|
|
229
|
+
});
|
|
197
230
|
const [CloseButtonSlot, closeButtonProps] = (0, _useSlot.default)('closeButton', {
|
|
198
231
|
elementType: _IconButton.default,
|
|
199
232
|
externalForwardedProps,
|
|
@@ -204,28 +237,19 @@ const Alert = /*#__PURE__*/React.forwardRef(function Alert(inProps, ref) {
|
|
|
204
237
|
externalForwardedProps,
|
|
205
238
|
ownerState
|
|
206
239
|
});
|
|
207
|
-
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
className: (0, _clsx.default)(classes.root, className),
|
|
212
|
-
ref: ref,
|
|
213
|
-
...other,
|
|
214
|
-
children: [icon !== false ? /*#__PURE__*/(0, _jsxRuntime.jsx)(AlertIcon, {
|
|
215
|
-
ownerState: ownerState,
|
|
216
|
-
className: classes.icon,
|
|
240
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(RootSlot, {
|
|
241
|
+
...rootSlotProps,
|
|
242
|
+
children: [icon !== false ? /*#__PURE__*/(0, _jsxRuntime.jsx)(IconSlot, {
|
|
243
|
+
...iconSlotProps,
|
|
217
244
|
children: icon || iconMapping[severity] || defaultIconMapping[severity]
|
|
218
|
-
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
219
|
-
|
|
220
|
-
className: classes.message,
|
|
245
|
+
}) : null, /*#__PURE__*/(0, _jsxRuntime.jsx)(MessageSlot, {
|
|
246
|
+
...messageSlotProps,
|
|
221
247
|
children: children
|
|
222
|
-
}), action != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
223
|
-
|
|
224
|
-
className: classes.action,
|
|
248
|
+
}), action != null ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionSlot, {
|
|
249
|
+
...actionSlotProps,
|
|
225
250
|
children: action
|
|
226
|
-
}) : null, action == null && onClose ? /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
227
|
-
|
|
228
|
-
className: classes.action,
|
|
251
|
+
}) : null, action == null && onClose ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ActionSlot, {
|
|
252
|
+
...actionSlotProps,
|
|
229
253
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(CloseButtonSlot, {
|
|
230
254
|
size: "small",
|
|
231
255
|
"aria-label": closeText,
|
|
@@ -337,16 +361,24 @@ process.env.NODE_ENV !== "production" ? Alert.propTypes /* remove-proptypes */ =
|
|
|
337
361
|
* @default {}
|
|
338
362
|
*/
|
|
339
363
|
slotProps: _propTypes.default.shape({
|
|
364
|
+
action: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
340
365
|
closeButton: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
341
|
-
closeIcon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
|
366
|
+
closeIcon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
367
|
+
icon: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
368
|
+
message: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
|
|
369
|
+
root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
|
|
342
370
|
}),
|
|
343
371
|
/**
|
|
344
372
|
* The components used for each slot inside.
|
|
345
373
|
* @default {}
|
|
346
374
|
*/
|
|
347
375
|
slots: _propTypes.default.shape({
|
|
376
|
+
action: _propTypes.default.elementType,
|
|
348
377
|
closeButton: _propTypes.default.elementType,
|
|
349
|
-
closeIcon: _propTypes.default.elementType
|
|
378
|
+
closeIcon: _propTypes.default.elementType,
|
|
379
|
+
icon: _propTypes.default.elementType,
|
|
380
|
+
message: _propTypes.default.elementType,
|
|
381
|
+
root: _propTypes.default.elementType
|
|
350
382
|
}),
|
|
351
383
|
/**
|
|
352
384
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|