@mui/material 5.3.0 → 5.4.2

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 (157) hide show
  1. package/Autocomplete/Autocomplete.d.ts +5 -0
  2. package/Autocomplete/Autocomplete.js +12 -4
  3. package/AvatarGroup/AvatarGroup.d.ts +10 -0
  4. package/AvatarGroup/AvatarGroup.js +19 -7
  5. package/Badge/Badge.js +3 -2
  6. package/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  7. package/Button/buttonClasses.d.ts +1 -1
  8. package/ButtonBase/ButtonBase.d.ts +5 -1
  9. package/ButtonBase/ButtonBase.js +15 -2
  10. package/ButtonBase/TouchRipple.js +1 -2
  11. package/CHANGELOG.md +300 -28
  12. package/Fab/Fab.d.ts +4 -1
  13. package/Fab/Fab.js +8 -20
  14. package/Fab/fabClasses.js +1 -1
  15. package/FormControlLabel/FormControlLabel.js +11 -3
  16. package/FormControlLabel/formControlLabelClasses.d.ts +2 -0
  17. package/FormControlLabel/formControlLabelClasses.js +1 -1
  18. package/FormGroup/FormGroup.js +14 -3
  19. package/FormGroup/formGroupClasses.d.ts +2 -0
  20. package/FormGroup/formGroupClasses.js +1 -1
  21. package/FormHelperText/FormHelperText.js +7 -9
  22. package/Grid/Grid.js +2 -4
  23. package/ImageList/ImageList.js +3 -1
  24. package/InputAdornment/InputAdornment.js +6 -9
  25. package/Modal/Modal.js +1 -1
  26. package/OutlinedInput/NotchedOutline.js +14 -16
  27. package/OutlinedInput/OutlinedInput.js +1 -1
  28. package/README.md +6 -6
  29. package/Radio/RadioButtonIcon.js +2 -6
  30. package/Rating/Rating.js +1 -1
  31. package/Select/Select.js +19 -7
  32. package/Select/SelectInput.js +12 -10
  33. package/Slider/Slider.js +3 -1
  34. package/Snackbar/Snackbar.js +4 -1
  35. package/SvgIcon/SvgIcon.js +9 -9
  36. package/SwipeableDrawer/SwipeArea.js +1 -3
  37. package/TextField/TextField.js +1 -1
  38. package/ToggleButton/ToggleButton.d.ts +15 -0
  39. package/ToggleButton/ToggleButton.js +8 -2
  40. package/index.d.ts +11 -3
  41. package/index.js +8 -3
  42. package/internal/SwitchBase.js +2 -6
  43. package/legacy/Autocomplete/Autocomplete.js +13 -4
  44. package/legacy/AvatarGroup/AvatarGroup.js +20 -7
  45. package/legacy/Badge/Badge.js +4 -2
  46. package/legacy/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  47. package/legacy/ButtonBase/ButtonBase.js +15 -2
  48. package/legacy/ButtonBase/TouchRipple.js +1 -2
  49. package/legacy/Fab/Fab.js +8 -20
  50. package/legacy/Fab/fabClasses.js +1 -1
  51. package/legacy/FormControlLabel/FormControlLabel.js +11 -3
  52. package/legacy/FormControlLabel/formControlLabelClasses.js +1 -1
  53. package/legacy/FormGroup/FormGroup.js +14 -3
  54. package/legacy/FormGroup/formGroupClasses.js +1 -1
  55. package/legacy/FormHelperText/FormHelperText.js +7 -9
  56. package/legacy/Grid/Grid.js +2 -4
  57. package/legacy/ImageList/ImageList.js +3 -1
  58. package/legacy/InputAdornment/InputAdornment.js +6 -9
  59. package/legacy/Modal/Modal.js +1 -1
  60. package/legacy/OutlinedInput/NotchedOutline.js +14 -16
  61. package/legacy/OutlinedInput/OutlinedInput.js +1 -1
  62. package/legacy/Radio/RadioButtonIcon.js +2 -6
  63. package/legacy/Rating/Rating.js +1 -1
  64. package/legacy/Select/Select.js +23 -7
  65. package/legacy/Select/SelectInput.js +12 -10
  66. package/legacy/Slider/Slider.js +3 -1
  67. package/legacy/Snackbar/Snackbar.js +4 -1
  68. package/legacy/SvgIcon/SvgIcon.js +9 -9
  69. package/legacy/SwipeableDrawer/SwipeArea.js +1 -3
  70. package/legacy/TextField/TextField.js +1 -1
  71. package/legacy/ToggleButton/ToggleButton.js +8 -2
  72. package/legacy/index.js +8 -3
  73. package/legacy/internal/SwitchBase.js +2 -6
  74. package/legacy/styles/makeStyles.js +1 -1
  75. package/legacy/styles/withStyles.js +1 -1
  76. package/legacy/styles/withTheme.js +1 -1
  77. package/legacy/useMediaQuery/useMediaQuery.js +87 -32
  78. package/modern/Autocomplete/Autocomplete.js +12 -4
  79. package/modern/AvatarGroup/AvatarGroup.js +17 -7
  80. package/modern/Badge/Badge.js +3 -2
  81. package/modern/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  82. package/modern/ButtonBase/ButtonBase.js +15 -2
  83. package/modern/ButtonBase/TouchRipple.js +1 -2
  84. package/modern/Fab/Fab.js +8 -20
  85. package/modern/Fab/fabClasses.js +1 -1
  86. package/modern/FormControlLabel/FormControlLabel.js +11 -3
  87. package/modern/FormControlLabel/formControlLabelClasses.js +1 -1
  88. package/modern/FormGroup/FormGroup.js +14 -3
  89. package/modern/FormGroup/formGroupClasses.js +1 -1
  90. package/modern/FormHelperText/FormHelperText.js +7 -9
  91. package/modern/Grid/Grid.js +2 -4
  92. package/modern/ImageList/ImageList.js +3 -1
  93. package/modern/InputAdornment/InputAdornment.js +6 -9
  94. package/modern/Modal/Modal.js +1 -1
  95. package/modern/OutlinedInput/NotchedOutline.js +14 -16
  96. package/modern/OutlinedInput/OutlinedInput.js +1 -1
  97. package/modern/Radio/RadioButtonIcon.js +2 -6
  98. package/modern/Rating/Rating.js +1 -1
  99. package/modern/Select/Select.js +19 -7
  100. package/modern/Select/SelectInput.js +12 -10
  101. package/modern/Slider/Slider.js +3 -1
  102. package/modern/Snackbar/Snackbar.js +4 -1
  103. package/modern/SvgIcon/SvgIcon.js +8 -8
  104. package/modern/SwipeableDrawer/SwipeArea.js +1 -3
  105. package/modern/TextField/TextField.js +1 -1
  106. package/modern/ToggleButton/ToggleButton.js +8 -2
  107. package/modern/index.js +8 -3
  108. package/modern/internal/SwitchBase.js +2 -6
  109. package/modern/styles/makeStyles.js +1 -1
  110. package/modern/styles/withStyles.js +1 -1
  111. package/modern/styles/withTheme.js +1 -1
  112. package/modern/useMediaQuery/useMediaQuery.js +69 -27
  113. package/node/Autocomplete/Autocomplete.js +12 -4
  114. package/node/AvatarGroup/AvatarGroup.js +19 -7
  115. package/node/Badge/Badge.js +3 -2
  116. package/node/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  117. package/node/ButtonBase/ButtonBase.js +15 -2
  118. package/node/ButtonBase/TouchRipple.js +1 -2
  119. package/node/Fab/Fab.js +8 -20
  120. package/node/Fab/fabClasses.js +1 -1
  121. package/node/FormControlLabel/FormControlLabel.js +12 -3
  122. package/node/FormControlLabel/formControlLabelClasses.js +1 -1
  123. package/node/FormGroup/FormGroup.js +15 -3
  124. package/node/FormGroup/formGroupClasses.js +1 -1
  125. package/node/FormHelperText/FormHelperText.js +6 -9
  126. package/node/Grid/Grid.js +2 -4
  127. package/node/ImageList/ImageList.js +3 -1
  128. package/node/InputAdornment/InputAdornment.js +5 -9
  129. package/node/Modal/Modal.js +1 -1
  130. package/node/OutlinedInput/NotchedOutline.js +12 -16
  131. package/node/OutlinedInput/OutlinedInput.js +1 -1
  132. package/node/Radio/RadioButtonIcon.js +2 -6
  133. package/node/Rating/Rating.js +1 -1
  134. package/node/Select/Select.js +22 -9
  135. package/node/Select/SelectInput.js +11 -10
  136. package/node/Slider/Slider.js +3 -1
  137. package/node/Snackbar/Snackbar.js +4 -1
  138. package/node/SvgIcon/SvgIcon.js +9 -9
  139. package/node/SwipeableDrawer/SwipeArea.js +1 -3
  140. package/node/TextField/TextField.js +1 -1
  141. package/node/ToggleButton/ToggleButton.js +8 -2
  142. package/node/index.js +62 -16
  143. package/node/internal/SwitchBase.js +2 -6
  144. package/node/styles/makeStyles.js +1 -1
  145. package/node/styles/withStyles.js +1 -1
  146. package/node/styles/withTheme.js +1 -1
  147. package/node/useMediaQuery/useMediaQuery.js +69 -27
  148. package/package.json +8 -8
  149. package/styles/ThemeProvider.d.ts +1 -1
  150. package/styles/index.d.ts +3 -0
  151. package/styles/makeStyles.js +1 -1
  152. package/styles/withStyles.js +1 -1
  153. package/styles/withTheme.js +1 -1
  154. package/umd/material-ui.development.js +5056 -7204
  155. package/umd/material-ui.production.min.js +21 -21
  156. package/useMediaQuery/useMediaQuery.d.ts +4 -0
  157. package/useMediaQuery/useMediaQuery.js +69 -27
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["action", "centerRipple", "children", "className", "component", "disabled", "disableRipple", "disableTouchRipple", "focusRipple", "focusVisibleClassName", "LinkComponent", "onBlur", "onClick", "onContextMenu", "onDragLeave", "onFocus", "onFocusVisible", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseLeave", "onMouseUp", "onTouchEnd", "onTouchMove", "onTouchStart", "tabIndex", "TouchRippleProps", "type"];
3
+ const _excluded = ["action", "centerRipple", "children", "className", "component", "disabled", "disableRipple", "disableTouchRipple", "focusRipple", "focusVisibleClassName", "LinkComponent", "onBlur", "onClick", "onContextMenu", "onDragLeave", "onFocus", "onFocusVisible", "onKeyDown", "onKeyUp", "onMouseDown", "onMouseLeave", "onMouseUp", "onTouchEnd", "onTouchMove", "onTouchStart", "tabIndex", "TouchRippleProps", "touchRippleRef", "type"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
@@ -118,12 +118,14 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
118
118
  onTouchStart,
119
119
  tabIndex = 0,
120
120
  TouchRippleProps,
121
+ touchRippleRef,
121
122
  type
122
123
  } = props,
123
124
  other = _objectWithoutPropertiesLoose(props, _excluded);
124
125
 
125
126
  const buttonRef = React.useRef(null);
126
127
  const rippleRef = React.useRef(null);
128
+ const handleRippleRef = useForkRef(rippleRef, touchRippleRef);
127
129
  const {
128
130
  isFocusVisibleRef,
129
131
  onFocus: handleFocusVisible,
@@ -343,7 +345,7 @@ const ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, re
343
345
 
344
346
  /* TouchRipple is only needed client-side, x2 boost on the server. */
345
347
  _jsx(TouchRipple, _extends({
346
- ref: rippleRef,
348
+ ref: handleRippleRef,
347
349
  center: centerRipple
348
350
  }, TouchRippleProps)) : null]
349
351
  }));
@@ -526,6 +528,17 @@ process.env.NODE_ENV !== "production" ? ButtonBase.propTypes
526
528
  */
527
529
  TouchRippleProps: PropTypes.object,
528
530
 
531
+ /**
532
+ * A ref that points to the `TouchRippple` element.
533
+ */
534
+ touchRippleRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
535
+ current: PropTypes.shape({
536
+ pulsate: PropTypes.func.isRequired,
537
+ start: PropTypes.func.isRequired,
538
+ stop: PropTypes.func.isRequired
539
+ })
540
+ })]),
541
+
529
542
  /**
530
543
  * @ignore
531
544
  */
@@ -48,8 +48,7 @@ const pulsateKeyframe = keyframes`
48
48
  `;
49
49
  export const TouchRippleRoot = styled('span', {
50
50
  name: 'MuiTouchRipple',
51
- slot: 'Root',
52
- skipSx: true
51
+ slot: 'Root'
53
52
  })({
54
53
  overflow: 'hidden',
55
54
  pointerEvents: 'none',
package/modern/Fab/Fab.js CHANGED
@@ -20,7 +20,7 @@ const useUtilityClasses = ownerState => {
20
20
  size
21
21
  } = ownerState;
22
22
  const slots = {
23
- root: ['root', variant, `size${capitalize(size)}`, color === 'inherit' && 'colorInherit', color === 'primary' && 'primary', color === 'secondary' && 'secondary']
23
+ root: ['root', variant, `size${capitalize(size)}`, color === 'inherit' ? 'colorInherit' : color]
24
24
  };
25
25
  return composeClasses(slots, getFabUtilityClass, classes);
26
26
  };
@@ -32,7 +32,7 @@ const FabRoot = styled(ButtonBase, {
32
32
  const {
33
33
  ownerState
34
34
  } = props;
35
- return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.color === 'inherit' && styles.colorInherit, ownerState.color === 'primary' && styles.primary, ownerState.color === 'secondary' && styles.secondary];
35
+ return [styles.root, styles[ownerState.variant], styles[`size${capitalize(ownerState.size)}`], ownerState.color === 'inherit' && styles.colorInherit, styles[capitalize(ownerState.size)], styles[ownerState.color]];
36
36
  }
37
37
  })(({
38
38
  theme,
@@ -99,24 +99,14 @@ const FabRoot = styled(ButtonBase, {
99
99
  }), ({
100
100
  theme,
101
101
  ownerState
102
- }) => _extends({}, ownerState.color === 'primary' && {
103
- color: theme.palette.primary.contrastText,
104
- backgroundColor: theme.palette.primary.main,
102
+ }) => _extends({}, ownerState.color !== 'inherit' && ownerState.color !== 'default' && theme.palette[ownerState.color] != null && {
103
+ color: theme.palette[ownerState.color].contrastText,
104
+ backgroundColor: theme.palette[ownerState.color].main,
105
105
  '&:hover': {
106
- backgroundColor: theme.palette.primary.dark,
106
+ backgroundColor: theme.palette[ownerState.color].dark,
107
107
  // Reset on touch devices, it doesn't add specificity
108
108
  '@media (hover: none)': {
109
- backgroundColor: theme.palette.primary.main
110
- }
111
- }
112
- }, ownerState.color === 'secondary' && {
113
- color: theme.palette.secondary.contrastText,
114
- backgroundColor: theme.palette.secondary.main,
115
- '&:hover': {
116
- backgroundColor: theme.palette.secondary.dark,
117
- // Reset on touch devices, it doesn't add specificity
118
- '@media (hover: none)': {
119
- backgroundColor: theme.palette.secondary.main
109
+ backgroundColor: theme.palette[ownerState.color].main
120
110
  }
121
111
  }
122
112
  }));
@@ -188,9 +178,7 @@ process.env.NODE_ENV !== "production" ? Fab.propTypes
188
178
  * The color of the component. It supports those theme colors that make sense for this component.
189
179
  * @default 'default'
190
180
  */
191
- color: PropTypes
192
- /* @typescript-to-proptypes-ignore */
193
- .oneOfType([PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary']), PropTypes.string]),
181
+ color: PropTypes.oneOf(['default', 'error', 'info', 'inherit', 'primary', 'secondary', 'success', 'warning']),
194
182
 
195
183
  /**
196
184
  * The component used for the root node.
@@ -2,5 +2,5 @@ import { generateUtilityClass, generateUtilityClasses } from '@mui/base';
2
2
  export function getFabUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiFab', slot);
4
4
  }
5
- const fabClasses = generateUtilityClasses('MuiFab', ['root', 'primary', 'secondary', 'extended', 'circular', 'focusVisible', 'disabled', 'colorInherit', 'sizeSmall', 'sizeMedium', 'sizeLarge']);
5
+ const fabClasses = generateUtilityClasses('MuiFab', ['root', 'primary', 'secondary', 'extended', 'circular', 'focusVisible', 'disabled', 'colorInherit', 'sizeSmall', 'sizeMedium', 'sizeLarge', 'info', 'error', 'warning', 'success']);
6
6
  export default fabClasses;
@@ -12,6 +12,7 @@ import capitalize from '../utils/capitalize';
12
12
  import styled from '../styles/styled';
13
13
  import useThemeProps from '../styles/useThemeProps';
14
14
  import formControlLabelClasses, { getFormControlLabelUtilityClasses } from './formControlLabelClasses';
15
+ import formControlState from '../FormControl/formControlState';
15
16
  import { jsx as _jsx } from "react/jsx-runtime";
16
17
  import { jsxs as _jsxs } from "react/jsx-runtime";
17
18
 
@@ -19,10 +20,11 @@ const useUtilityClasses = ownerState => {
19
20
  const {
20
21
  classes,
21
22
  disabled,
22
- labelPlacement
23
+ labelPlacement,
24
+ error
23
25
  } = ownerState;
24
26
  const slots = {
25
- root: ['root', disabled && 'disabled', `labelPlacement${capitalize(labelPlacement)}`],
27
+ root: ['root', disabled && 'disabled', `labelPlacement${capitalize(labelPlacement)}`, error && 'error'],
26
28
  label: ['label', disabled && 'disabled']
27
29
  };
28
30
  return composeClasses(slots, getFormControlLabelUtilityClasses, classes);
@@ -114,11 +116,17 @@ const FormControlLabel = /*#__PURE__*/React.forwardRef(function FormControlLabel
114
116
  controlProps[key] = props[key];
115
117
  }
116
118
  });
119
+ const fcs = formControlState({
120
+ props,
121
+ muiFormControl,
122
+ states: ['error']
123
+ });
117
124
 
118
125
  const ownerState = _extends({}, props, {
119
126
  disabled,
120
127
  label,
121
- labelPlacement
128
+ labelPlacement,
129
+ error: fcs.error
122
130
  });
123
131
 
124
132
  const classes = useUtilityClasses(ownerState);
@@ -2,5 +2,5 @@ import { generateUtilityClasses, generateUtilityClass } from '@mui/base';
2
2
  export function getFormControlLabelUtilityClasses(slot) {
3
3
  return generateUtilityClass('MuiFormControlLabel', slot);
4
4
  }
5
- const formControlLabelClasses = generateUtilityClasses('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label']);
5
+ const formControlLabelClasses = generateUtilityClasses('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label', 'error']);
6
6
  export default formControlLabelClasses;
@@ -8,15 +8,18 @@ import { unstable_composeClasses as composeClasses } from '@mui/base';
8
8
  import styled from '../styles/styled';
9
9
  import useThemeProps from '../styles/useThemeProps';
10
10
  import { getFormGroupUtilityClass } from './formGroupClasses';
11
+ import useFormControl from '../FormControl/useFormControl';
12
+ import formControlState from '../FormControl/formControlState';
11
13
  import { jsx as _jsx } from "react/jsx-runtime";
12
14
 
13
15
  const useUtilityClasses = ownerState => {
14
16
  const {
15
17
  classes,
16
- row
18
+ row,
19
+ error
17
20
  } = ownerState;
18
21
  const slots = {
19
- root: ['root', row && 'row']
22
+ root: ['root', row && 'row', error && 'error']
20
23
  };
21
24
  return composeClasses(slots, getFormGroupUtilityClass, classes);
22
25
  };
@@ -57,8 +60,16 @@ const FormGroup = /*#__PURE__*/React.forwardRef(function FormGroup(inProps, ref)
57
60
  } = props,
58
61
  other = _objectWithoutPropertiesLoose(props, _excluded);
59
62
 
63
+ const muiFormControl = useFormControl();
64
+ const fcs = formControlState({
65
+ props,
66
+ muiFormControl,
67
+ states: ['error']
68
+ });
69
+
60
70
  const ownerState = _extends({}, props, {
61
- row
71
+ row,
72
+ error: fcs.error
62
73
  });
63
74
 
64
75
  const classes = useUtilityClasses(ownerState);
@@ -2,5 +2,5 @@ import { generateUtilityClass, generateUtilityClasses } from '@mui/base';
2
2
  export function getFormGroupUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiFormGroup', slot);
4
4
  }
5
- const formGroupClasses = generateUtilityClasses('MuiFormGroup', ['root', 'row']);
5
+ const formGroupClasses = generateUtilityClasses('MuiFormGroup', ['root', 'row', 'error']);
6
6
  export default formGroupClasses;
@@ -1,5 +1,8 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
+
4
+ var _span;
5
+
3
6
  const _excluded = ["children", "className", "component", "disabled", "error", "filled", "focused", "margin", "required", "variant"];
4
7
  import * as React from 'react';
5
8
  import PropTypes from 'prop-types';
@@ -101,16 +104,11 @@ const FormHelperText = /*#__PURE__*/React.forwardRef(function FormHelperText(inP
101
104
  className: clsx(classes.root, className),
102
105
  ref: ref
103
106
  }, other, {
104
- children: children === ' ' ?
105
- /*#__PURE__*/
106
- // notranslate needed while Google Translate will not fix zero-width space issue
107
- // eslint-disable-next-line react/no-danger
108
- _jsx("span", {
107
+ children: children === ' ' ? // notranslate needed while Google Translate will not fix zero-width space issue
108
+ _span || (_span = /*#__PURE__*/_jsx("span", {
109
109
  className: "notranslate",
110
- dangerouslySetInnerHTML: {
111
- __html: '​'
112
- }
113
- }) : children
110
+ children: "\u200B"
111
+ })) : children
114
112
  }));
115
113
  });
116
114
  process.env.NODE_ENV !== "production" ? FormHelperText.propTypes
@@ -260,10 +260,8 @@ const GridRoot = styled('div', {
260
260
 
261
261
  }, ownerState.zeroMinWidth && {
262
262
  minWidth: 0
263
- }, ownerState.wrap === 'nowrap' && {
264
- flexWrap: 'nowrap'
265
- }, ownerState.wrap === 'reverse' && {
266
- flexWrap: 'wrap-reverse'
263
+ }, ownerState.wrap !== 'wrap' && {
264
+ flexWrap: ownerState.wrap
267
265
  }), generateDirection, generateRowGap, generateColumnGap, generateGrid);
268
266
 
269
267
  const useUtilityClasses = ownerState => {
@@ -169,6 +169,8 @@ process.env.NODE_ENV !== "production" ? ImageList.propTypes
169
169
  * The variant to use.
170
170
  * @default 'standard'
171
171
  */
172
- variant: PropTypes.oneOf(['masonry', 'quilted', 'standard', 'woven'])
172
+ variant: PropTypes
173
+ /* @typescript-to-proptypes-ignore */
174
+ .oneOfType([PropTypes.oneOf(['masonry', 'quilted', 'standard', 'woven']), PropTypes.string])
173
175
  } : void 0;
174
176
  export default ImageList;
@@ -1,5 +1,8 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
+
4
+ var _span;
5
+
3
6
  const _excluded = ["children", "className", "component", "disablePointerEvents", "disableTypography", "position", "variant"];
4
7
  import * as React from 'react';
5
8
  import PropTypes from 'prop-types';
@@ -121,17 +124,11 @@ const InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inP
121
124
  children: children
122
125
  }) : /*#__PURE__*/_jsxs(React.Fragment, {
123
126
  children: [position === 'start' ?
124
- /*#__PURE__*/
125
-
126
127
  /* notranslate needed while Google Translate will not fix zero-width space issue */
127
-
128
- /* eslint-disable-next-line react/no-danger */
129
- _jsx("span", {
128
+ _span || (_span = /*#__PURE__*/_jsx("span", {
130
129
  className: "notranslate",
131
- dangerouslySetInnerHTML: {
132
- __html: '​'
133
- }
134
- }) : null, children]
130
+ children: "\u200B"
131
+ })) : null, children]
135
132
  })
136
133
  }))
137
134
  });
@@ -226,7 +226,7 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes
226
226
 
227
227
  /**
228
228
  * If `true`, the modal will not restore focus to previously focused element once
229
- * modal is hidden.
229
+ * modal is hidden or unmounted.
230
230
  * @default false
231
231
  */
232
232
  disableRestoreFocus: PropTypes.bool,
@@ -1,5 +1,8 @@
1
1
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
+
4
+ var _span;
5
+
3
6
  const _excluded = ["children", "classes", "className", "label", "notched"];
4
7
  import * as React from 'react';
5
8
  import PropTypes from 'prop-types';
@@ -21,14 +24,12 @@ const NotchedOutlineRoot = styled('fieldset')({
21
24
  overflow: 'hidden',
22
25
  minWidth: '0%'
23
26
  });
24
- const NotchedOutlineLegend = styled('legend', {
25
- skipSx: true
26
- })(({
27
+ const NotchedOutlineLegend = styled('legend')(({
27
28
  ownerState,
28
29
  theme
29
30
  }) => _extends({
30
31
  float: 'unset'
31
- }, ownerState.label === undefined && {
32
+ }, !ownerState.withLabel && {
32
33
  padding: 0,
33
34
  lineHeight: '11px',
34
35
  // sync with `height` in `legend` styles
@@ -36,7 +37,7 @@ const NotchedOutlineLegend = styled('legend', {
36
37
  duration: 150,
37
38
  easing: theme.transitions.easing.easeOut
38
39
  })
39
- }, ownerState.label !== undefined && _extends({
40
+ }, ownerState.withLabel && _extends({
40
41
  display: 'block',
41
42
  // Fix conflict with normalize.css and sanitize.css
42
43
  width: 'auto',
@@ -77,9 +78,11 @@ export default function NotchedOutline(props) {
77
78
  } = props,
78
79
  other = _objectWithoutPropertiesLoose(props, _excluded);
79
80
 
81
+ const withLabel = label != null && label !== '';
82
+
80
83
  const ownerState = _extends({}, props, {
81
84
  notched,
82
- label
85
+ withLabel
83
86
  });
84
87
 
85
88
  return /*#__PURE__*/_jsx(NotchedOutlineRoot, _extends({
@@ -89,18 +92,13 @@ export default function NotchedOutline(props) {
89
92
  }, other, {
90
93
  children: /*#__PURE__*/_jsx(NotchedOutlineLegend, {
91
94
  ownerState: ownerState,
92
- children: label ? /*#__PURE__*/_jsx("span", {
95
+ children: withLabel ? /*#__PURE__*/_jsx("span", {
93
96
  children: label
94
- }) :
95
- /*#__PURE__*/
96
- // notranslate needed while Google Translate will not fix zero-width space issue
97
- // eslint-disable-next-line react/no-danger
98
- _jsx("span", {
97
+ }) : // notranslate needed while Google Translate will not fix zero-width space issue
98
+ _span || (_span = /*#__PURE__*/_jsx("span", {
99
99
  className: "notranslate",
100
- dangerouslySetInnerHTML: {
101
- __html: '​'
102
- }
103
- })
100
+ children: "\u200B"
101
+ }))
104
102
  })
105
103
  }));
106
104
  }
@@ -136,7 +136,7 @@ const OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(inPro
136
136
  }, components),
137
137
  renderSuffix: state => /*#__PURE__*/_jsx(NotchedOutlineRoot, {
138
138
  className: classes.notchedOutline,
139
- label: label && fcs.required ? _React$Fragment || (_React$Fragment = /*#__PURE__*/_jsxs(React.Fragment, {
139
+ label: label != null && label !== '' && fcs.required ? _React$Fragment || (_React$Fragment = /*#__PURE__*/_jsxs(React.Fragment, {
140
140
  children: [label, "\xA0", '*']
141
141
  })) : label,
142
142
  notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)
@@ -10,15 +10,11 @@ const RadioButtonIconRoot = styled('span')({
10
10
  position: 'relative',
11
11
  display: 'flex'
12
12
  });
13
- const RadioButtonIconBackground = styled(RadioButtonUncheckedIcon, {
14
- skipSx: true
15
- })({
13
+ const RadioButtonIconBackground = styled(RadioButtonUncheckedIcon)({
16
14
  // Scale applied to prevent dot misalignment in Safari
17
15
  transform: 'scale(1)'
18
16
  });
19
- const RadioButtonIconDot = styled(RadioButtonCheckedIcon, {
20
- skipSx: true
21
- })(({
17
+ const RadioButtonIconDot = styled(RadioButtonCheckedIcon)(({
22
18
  theme,
23
19
  ownerState
24
20
  }) => _extends({
@@ -405,7 +405,7 @@ const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
405
405
 
406
406
  const handleChange = event => {
407
407
  let newValue = event.target.value === '' ? null : parseFloat(event.target.value); // Give mouse priority over keyboard
408
- // Fix https://github.com/mui-org/material-ui/issues/22827
408
+ // Fix https://github.com/mui/material-ui/issues/22827
409
409
 
410
410
  if (hover !== -1) {
411
411
  newValue = hover;
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
 
4
- var _Input, _FilledInput;
4
+ var _StyledInput, _StyledFilledInput;
5
5
 
6
6
  const _excluded = ["autoWidth", "children", "classes", "className", "defaultOpen", "displayEmpty", "IconComponent", "id", "input", "inputProps", "label", "labelId", "MenuProps", "multiple", "native", "onClose", "onOpen", "open", "renderValue", "SelectDisplayProps", "variant"];
7
7
  import * as React from 'react';
@@ -18,6 +18,7 @@ import FilledInput from '../FilledInput';
18
18
  import OutlinedInput from '../OutlinedInput';
19
19
  import useThemeProps from '../styles/useThemeProps';
20
20
  import useForkRef from '../utils/useForkRef';
21
+ import styled, { rootShouldForwardProp } from '../styles/styled';
21
22
  import { jsx as _jsx } from "react/jsx-runtime";
22
23
 
23
24
  const useUtilityClasses = ownerState => {
@@ -27,6 +28,15 @@ const useUtilityClasses = ownerState => {
27
28
  return classes;
28
29
  };
29
30
 
31
+ const styledRootConfig = {
32
+ name: 'MuiSelect',
33
+ overridesResolver: (props, styles) => styles.root,
34
+ shouldForwardProp: prop => rootShouldForwardProp(prop) && prop !== 'variant',
35
+ slot: 'Root'
36
+ };
37
+ const StyledInput = styled(Input, styledRootConfig)('');
38
+ const StyledOutlinedInput = styled(OutlinedInput, styledRootConfig)('');
39
+ const StyledFilledInput = styled(FilledInput, styledRootConfig)('');
30
40
  const Select = /*#__PURE__*/React.forwardRef(function Select(inProps, ref) {
31
41
  const props = useThemeProps({
32
42
  name: 'MuiSelect',
@@ -54,7 +64,7 @@ const Select = /*#__PURE__*/React.forwardRef(function Select(inProps, ref) {
54
64
  open,
55
65
  renderValue,
56
66
  SelectDisplayProps,
57
- variant: variantProps = 'outlined'
67
+ variant: variantProp = 'outlined'
58
68
  } = props,
59
69
  other = _objectWithoutPropertiesLoose(props, _excluded);
60
70
 
@@ -65,16 +75,17 @@ const Select = /*#__PURE__*/React.forwardRef(function Select(inProps, ref) {
65
75
  muiFormControl,
66
76
  states: ['variant']
67
77
  });
68
- const variant = fcs.variant || variantProps;
78
+ const variant = fcs.variant || variantProp;
69
79
  const InputComponent = input || {
70
- standard: _Input || (_Input = /*#__PURE__*/_jsx(Input, {})),
71
- outlined: /*#__PURE__*/_jsx(OutlinedInput, {
80
+ standard: _StyledInput || (_StyledInput = /*#__PURE__*/_jsx(StyledInput, {})),
81
+ outlined: /*#__PURE__*/_jsx(StyledOutlinedInput, {
72
82
  label: label
73
83
  }),
74
- filled: _FilledInput || (_FilledInput = /*#__PURE__*/_jsx(FilledInput, {}))
84
+ filled: _StyledFilledInput || (_StyledFilledInput = /*#__PURE__*/_jsx(StyledFilledInput, {}))
75
85
  }[variant];
76
86
 
77
87
  const ownerState = _extends({}, props, {
88
+ variant,
78
89
  classes: classesProp
79
90
  });
80
91
 
@@ -113,7 +124,8 @@ const Select = /*#__PURE__*/React.forwardRef(function Select(inProps, ref) {
113
124
  notched: true
114
125
  } : {}, {
115
126
  ref: inputComponentRef,
116
- className: clsx(InputComponent.props.className, className)
127
+ className: clsx(InputComponent.props.className, className),
128
+ variant
117
129
  }, other));
118
130
  });
119
131
  process.env.NODE_ENV !== "production" ? Select.propTypes
@@ -1,6 +1,9 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  import { formatMuiErrorMessage as _formatMuiErrorMessage } from "@mui/utils";
4
+
5
+ var _span;
6
+
4
7
  const _excluded = ["aria-describedby", "aria-label", "autoFocus", "autoWidth", "children", "className", "defaultOpen", "defaultValue", "disabled", "displayEmpty", "IconComponent", "inputRef", "labelId", "MenuProps", "multiple", "name", "onBlur", "onChange", "onClose", "onFocus", "onOpen", "open", "readOnly", "renderValue", "SelectDisplayProps", "tabIndex", "type", "value", "variant"];
5
8
  import * as React from 'react';
6
9
  import { isFragment } from 'react-is';
@@ -186,6 +189,10 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
186
189
  }
187
190
  }, [autoFocus]);
188
191
  React.useEffect(() => {
192
+ if (!labelId) {
193
+ return undefined;
194
+ }
195
+
189
196
  const label = ownerDocument(displayRef.current).getElementById(labelId);
190
197
 
191
198
  if (label) {
@@ -282,7 +289,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
282
289
  if (onChange) {
283
290
  // Redefine target to allow name and value to be read.
284
291
  // This allows seamless integration with the most popular form libraries.
285
- // https://github.com/mui-org/material-ui/issues/13485#issuecomment-676048492
292
+ // https://github.com/mui/material-ui/issues/13485#issuecomment-676048492
286
293
  // Clone the event to not override `target` of the original event.
287
294
  const nativeEvent = event.nativeEvent || event;
288
295
  const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);
@@ -482,16 +489,11 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
482
489
  className: clsx(classes.select, className, SelectDisplayProps.className) // The id is required for proper a11y
483
490
  ,
484
491
  id: buttonId,
485
- children: isEmpty(display) ?
486
- /*#__PURE__*/
487
- // notranslate needed while Google Translate will not fix zero-width space issue
488
- // eslint-disable-next-line react/no-danger
489
- _jsx("span", {
492
+ children: isEmpty(display) ? // notranslate needed while Google Translate will not fix zero-width space issue
493
+ _span || (_span = /*#__PURE__*/_jsx("span", {
490
494
  className: "notranslate",
491
- dangerouslySetInnerHTML: {
492
- __html: '​'
493
- }
494
- }) : display
495
+ children: "\u200B"
496
+ })) : display
495
497
  })), /*#__PURE__*/_jsx(SelectNativeInput, _extends({
496
498
  value: Array.isArray(value) ? value.join(',') : value,
497
499
  name: name,
@@ -689,7 +689,9 @@ process.env.NODE_ENV !== "production" ? Slider.propTypes
689
689
  * The size of the slider.
690
690
  * @default 'medium'
691
691
  */
692
- size: PropTypes.oneOf(['small', 'medium']),
692
+ size: PropTypes
693
+ /* @typescript-to-proptypes-ignore */
694
+ .oneOfType([PropTypes.oneOf(['small', 'medium']), PropTypes.string]),
693
695
 
694
696
  /**
695
697
  * The granularity with which the slider can step through values. (A "discrete" slider.)
@@ -290,7 +290,10 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
290
290
  onMouseEnter: handleMouseEnter,
291
291
  onMouseLeave: handleMouseLeave,
292
292
  ownerState: ownerState,
293
- ref: ref
293
+ ref: ref // ClickAwayListener adds an `onClick` prop which results in the alert not being announced.
294
+ // See https://github.com/mui-org/material-ui/issues/29080
295
+ ,
296
+ role: "presentation"
294
297
  }, other, {
295
298
  children: /*#__PURE__*/_jsx(TransitionComponent, _extends({
296
299
  appear: true,
@@ -43,19 +43,19 @@ const SvgIconRoot = styled('svg', {
43
43
  display: 'inline-block',
44
44
  fill: 'currentColor',
45
45
  flexShrink: 0,
46
- transition: theme.transitions.create('fill', {
47
- duration: theme.transitions.duration.shorter
46
+ transition: theme.transitions?.create?.('fill', {
47
+ duration: theme.transitions?.duration?.shorter
48
48
  }),
49
49
  fontSize: {
50
50
  inherit: 'inherit',
51
- small: theme.typography.pxToRem(20),
52
- medium: theme.typography.pxToRem(24),
53
- large: theme.typography.pxToRem(35)
51
+ small: theme.typography?.pxToRem?.(20) || '1.25rem',
52
+ medium: theme.typography?.pxToRem?.(24) || '1.5rem',
53
+ large: theme.typography?.pxToRem?.(35) || '2.1875'
54
54
  }[ownerState.fontSize],
55
55
  // TODO v5 deprecate, v6 remove for sx
56
- color: theme.palette[ownerState.color]?.main ?? {
57
- action: theme.palette.action.active,
58
- disabled: theme.palette.action.disabled,
56
+ color: theme.palette?.[ownerState.color]?.main ?? {
57
+ action: theme.palette?.action?.active,
58
+ disabled: theme.palette?.action?.disabled,
59
59
  inherit: undefined
60
60
  }[ownerState.color]
61
61
  }));
@@ -8,9 +8,7 @@ import styled from '../styles/styled';
8
8
  import capitalize from '../utils/capitalize';
9
9
  import { isHorizontal } from '../Drawer/Drawer';
10
10
  import { jsx as _jsx } from "react/jsx-runtime";
11
- const SwipeAreaRoot = styled('div', {
12
- skipSx: true
13
- })(({
11
+ const SwipeAreaRoot = styled('div')(({
14
12
  theme,
15
13
  ownerState
16
14
  }) => _extends({
@@ -191,7 +191,7 @@ const TextField = /*#__PURE__*/React.forwardRef(function TextField(inProps, ref)
191
191
  variant: variant,
192
192
  ownerState: ownerState
193
193
  }, other, {
194
- children: [label && /*#__PURE__*/_jsx(InputLabel, _extends({
194
+ children: [label != null && label !== '' && /*#__PURE__*/_jsx(InputLabel, _extends({
195
195
  htmlFor: id,
196
196
  id: inputLabelId
197
197
  }, InputLabelProps, {