@mui/material 5.3.1 → 5.4.3

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 (201) hide show
  1. package/Autocomplete/Autocomplete.d.ts +5 -0
  2. package/Autocomplete/Autocomplete.js +11 -3
  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/ButtonBase/ButtonBase.d.ts +5 -1
  8. package/ButtonBase/ButtonBase.js +15 -2
  9. package/ButtonBase/TouchRipple.js +1 -2
  10. package/CHANGELOG.md +295 -27
  11. package/Dialog/Dialog.d.ts +4 -1
  12. package/Dialog/Dialog.js +10 -6
  13. package/Drawer/Drawer.d.ts +4 -1
  14. package/Drawer/Drawer.js +11 -9
  15. package/Fab/Fab.d.ts +4 -1
  16. package/Fab/Fab.js +8 -20
  17. package/Fab/fabClasses.js +1 -1
  18. package/Fade/Fade.d.ts +2 -2
  19. package/Fade/Fade.js +8 -8
  20. package/FormControlLabel/FormControlLabel.js +11 -3
  21. package/FormControlLabel/formControlLabelClasses.d.ts +2 -0
  22. package/FormControlLabel/formControlLabelClasses.js +1 -1
  23. package/FormGroup/FormGroup.js +14 -3
  24. package/FormGroup/formGroupClasses.d.ts +2 -0
  25. package/FormGroup/formGroupClasses.js +1 -1
  26. package/FormHelperText/FormHelperText.js +7 -9
  27. package/Grid/Grid.js +2 -4
  28. package/ImageList/ImageList.js +3 -1
  29. package/InputAdornment/InputAdornment.js +6 -9
  30. package/Modal/Modal.js +1 -1
  31. package/OutlinedInput/NotchedOutline.js +14 -16
  32. package/OutlinedInput/OutlinedInput.js +1 -1
  33. package/README.md +6 -6
  34. package/Radio/RadioButtonIcon.js +2 -6
  35. package/Rating/Rating.js +1 -1
  36. package/Select/Select.js +19 -7
  37. package/Select/SelectInput.js +12 -10
  38. package/Slide/Slide.d.ts +4 -4
  39. package/Slide/Slide.js +14 -14
  40. package/Slider/Slider.js +3 -1
  41. package/Snackbar/Snackbar.d.ts +2 -2
  42. package/Snackbar/Snackbar.js +12 -9
  43. package/SpeedDial/SpeedDial.d.ts +2 -2
  44. package/SpeedDial/SpeedDial.js +9 -7
  45. package/Step/StepContext.d.ts +20 -0
  46. package/Step/StepContext.js +10 -2
  47. package/Step/index.d.ts +3 -0
  48. package/Step/index.js +3 -1
  49. package/SwipeableDrawer/SwipeArea.js +1 -3
  50. package/SwipeableDrawer/SwipeableDrawer.js +8 -6
  51. package/TextField/TextField.js +1 -1
  52. package/ToggleButton/ToggleButton.d.ts +15 -0
  53. package/ToggleButton/ToggleButton.js +8 -2
  54. package/Zoom/Zoom.d.ts +2 -2
  55. package/Zoom/Zoom.js +8 -8
  56. package/index.d.ts +11 -3
  57. package/index.js +8 -3
  58. package/internal/SwitchBase.js +2 -6
  59. package/legacy/Autocomplete/Autocomplete.js +12 -3
  60. package/legacy/AvatarGroup/AvatarGroup.js +20 -7
  61. package/legacy/Badge/Badge.js +4 -2
  62. package/legacy/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  63. package/legacy/ButtonBase/ButtonBase.js +15 -2
  64. package/legacy/ButtonBase/TouchRipple.js +1 -2
  65. package/legacy/Dialog/Dialog.js +10 -6
  66. package/legacy/Drawer/Drawer.js +11 -9
  67. package/legacy/Fab/Fab.js +8 -20
  68. package/legacy/Fab/fabClasses.js +1 -1
  69. package/legacy/Fade/Fade.js +8 -8
  70. package/legacy/FormControlLabel/FormControlLabel.js +11 -3
  71. package/legacy/FormControlLabel/formControlLabelClasses.js +1 -1
  72. package/legacy/FormGroup/FormGroup.js +14 -3
  73. package/legacy/FormGroup/formGroupClasses.js +1 -1
  74. package/legacy/FormHelperText/FormHelperText.js +7 -9
  75. package/legacy/Grid/Grid.js +2 -4
  76. package/legacy/ImageList/ImageList.js +3 -1
  77. package/legacy/InputAdornment/InputAdornment.js +6 -9
  78. package/legacy/Modal/Modal.js +1 -1
  79. package/legacy/OutlinedInput/NotchedOutline.js +14 -16
  80. package/legacy/OutlinedInput/OutlinedInput.js +1 -1
  81. package/legacy/Radio/RadioButtonIcon.js +2 -6
  82. package/legacy/Rating/Rating.js +1 -1
  83. package/legacy/Select/Select.js +23 -7
  84. package/legacy/Select/SelectInput.js +12 -10
  85. package/legacy/Slide/Slide.js +14 -14
  86. package/legacy/Slider/Slider.js +3 -1
  87. package/legacy/Snackbar/Snackbar.js +12 -9
  88. package/legacy/SpeedDial/SpeedDial.js +9 -7
  89. package/legacy/Step/StepContext.js +10 -2
  90. package/legacy/Step/index.js +3 -1
  91. package/legacy/SwipeableDrawer/SwipeArea.js +1 -3
  92. package/legacy/SwipeableDrawer/SwipeableDrawer.js +8 -6
  93. package/legacy/TextField/TextField.js +1 -1
  94. package/legacy/ToggleButton/ToggleButton.js +8 -2
  95. package/legacy/Zoom/Zoom.js +8 -8
  96. package/legacy/index.js +8 -3
  97. package/legacy/internal/SwitchBase.js +2 -6
  98. package/legacy/locale/index.js +86 -78
  99. package/legacy/styles/makeStyles.js +1 -1
  100. package/legacy/styles/withStyles.js +1 -1
  101. package/legacy/styles/withTheme.js +1 -1
  102. package/legacy/useMediaQuery/useMediaQuery.js +87 -32
  103. package/locale/index.js +12 -6
  104. package/modern/Autocomplete/Autocomplete.js +11 -3
  105. package/modern/AvatarGroup/AvatarGroup.js +17 -7
  106. package/modern/Badge/Badge.js +3 -2
  107. package/modern/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  108. package/modern/ButtonBase/ButtonBase.js +15 -2
  109. package/modern/ButtonBase/TouchRipple.js +1 -2
  110. package/modern/Dialog/Dialog.js +10 -6
  111. package/modern/Drawer/Drawer.js +11 -9
  112. package/modern/Fab/Fab.js +8 -20
  113. package/modern/Fab/fabClasses.js +1 -1
  114. package/modern/Fade/Fade.js +8 -8
  115. package/modern/FormControlLabel/FormControlLabel.js +11 -3
  116. package/modern/FormControlLabel/formControlLabelClasses.js +1 -1
  117. package/modern/FormGroup/FormGroup.js +14 -3
  118. package/modern/FormGroup/formGroupClasses.js +1 -1
  119. package/modern/FormHelperText/FormHelperText.js +7 -9
  120. package/modern/Grid/Grid.js +2 -4
  121. package/modern/ImageList/ImageList.js +3 -1
  122. package/modern/InputAdornment/InputAdornment.js +6 -9
  123. package/modern/Modal/Modal.js +1 -1
  124. package/modern/OutlinedInput/NotchedOutline.js +14 -16
  125. package/modern/OutlinedInput/OutlinedInput.js +1 -1
  126. package/modern/Radio/RadioButtonIcon.js +2 -6
  127. package/modern/Rating/Rating.js +1 -1
  128. package/modern/Select/Select.js +19 -7
  129. package/modern/Select/SelectInput.js +12 -10
  130. package/modern/Slide/Slide.js +14 -14
  131. package/modern/Slider/Slider.js +3 -1
  132. package/modern/Snackbar/Snackbar.js +12 -9
  133. package/modern/SpeedDial/SpeedDial.js +9 -7
  134. package/modern/Step/StepContext.js +10 -2
  135. package/modern/Step/index.js +3 -1
  136. package/modern/SwipeableDrawer/SwipeArea.js +1 -3
  137. package/modern/SwipeableDrawer/SwipeableDrawer.js +8 -6
  138. package/modern/TextField/TextField.js +1 -1
  139. package/modern/ToggleButton/ToggleButton.js +8 -2
  140. package/modern/Zoom/Zoom.js +8 -8
  141. package/modern/index.js +8 -3
  142. package/modern/internal/SwitchBase.js +2 -6
  143. package/modern/locale/index.js +12 -6
  144. package/modern/styles/makeStyles.js +1 -1
  145. package/modern/styles/withStyles.js +1 -1
  146. package/modern/styles/withTheme.js +1 -1
  147. package/modern/useMediaQuery/useMediaQuery.js +69 -27
  148. package/node/Autocomplete/Autocomplete.js +11 -3
  149. package/node/AvatarGroup/AvatarGroup.js +19 -7
  150. package/node/Badge/Badge.js +3 -2
  151. package/node/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  152. package/node/ButtonBase/ButtonBase.js +15 -2
  153. package/node/ButtonBase/TouchRipple.js +1 -2
  154. package/node/Dialog/Dialog.js +11 -7
  155. package/node/Drawer/Drawer.js +11 -10
  156. package/node/Fab/Fab.js +8 -20
  157. package/node/Fab/fabClasses.js +1 -1
  158. package/node/Fade/Fade.js +7 -9
  159. package/node/FormControlLabel/FormControlLabel.js +12 -3
  160. package/node/FormControlLabel/formControlLabelClasses.js +1 -1
  161. package/node/FormGroup/FormGroup.js +15 -3
  162. package/node/FormGroup/formGroupClasses.js +1 -1
  163. package/node/FormHelperText/FormHelperText.js +6 -9
  164. package/node/Grid/Grid.js +2 -4
  165. package/node/ImageList/ImageList.js +3 -1
  166. package/node/InputAdornment/InputAdornment.js +5 -9
  167. package/node/Modal/Modal.js +1 -1
  168. package/node/OutlinedInput/NotchedOutline.js +12 -16
  169. package/node/OutlinedInput/OutlinedInput.js +1 -1
  170. package/node/Radio/RadioButtonIcon.js +2 -6
  171. package/node/Rating/Rating.js +1 -1
  172. package/node/Select/Select.js +22 -9
  173. package/node/Select/SelectInput.js +11 -10
  174. package/node/Slide/Slide.js +14 -16
  175. package/node/Slider/Slider.js +3 -1
  176. package/node/Snackbar/Snackbar.js +12 -10
  177. package/node/SpeedDial/SpeedDial.js +9 -7
  178. package/node/Step/StepContext.js +11 -1
  179. package/node/Step/index.js +22 -1
  180. package/node/SwipeableDrawer/SwipeArea.js +1 -3
  181. package/node/SwipeableDrawer/SwipeableDrawer.js +8 -7
  182. package/node/TextField/TextField.js +1 -1
  183. package/node/ToggleButton/ToggleButton.js +8 -2
  184. package/node/Zoom/Zoom.js +7 -9
  185. package/node/index.js +62 -16
  186. package/node/internal/SwitchBase.js +2 -6
  187. package/node/locale/index.js +12 -6
  188. package/node/styles/makeStyles.js +1 -1
  189. package/node/styles/withStyles.js +1 -1
  190. package/node/styles/withTheme.js +1 -1
  191. package/node/useMediaQuery/useMediaQuery.js +69 -27
  192. package/package.json +8 -8
  193. package/styles/ThemeProvider.d.ts +1 -1
  194. package/styles/index.d.ts +3 -0
  195. package/styles/makeStyles.js +1 -1
  196. package/styles/withStyles.js +1 -1
  197. package/styles/withTheme.js +1 -1
  198. package/umd/material-ui.development.js +5022 -7146
  199. package/umd/material-ui.production.min.js +21 -21
  200. package/useMediaQuery/useMediaQuery.d.ts +4 -0
  201. package/useMediaQuery/useMediaQuery.js +69 -27
@@ -168,7 +168,8 @@ var Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
168
168
  overlapProp = _props$overlap === void 0 ? 'rectangular' : _props$overlap,
169
169
  _props$color = props.color,
170
170
  colorProp = _props$color === void 0 ? 'default' : _props$color,
171
- invisibleProp = props.invisible,
171
+ _props$invisible = props.invisible,
172
+ invisibleProp = _props$invisible === void 0 ? false : _props$invisible,
172
173
  badgeContentProp = props.badgeContent,
173
174
  _props$showZero = props.showZero,
174
175
  showZero = _props$showZero === void 0 ? false : _props$showZero,
@@ -183,7 +184,7 @@ var Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
183
184
  });
184
185
  var invisible = invisibleProp;
185
186
 
186
- if (invisibleProp == null && (badgeContentProp === 0 && !showZero || badgeContentProp == null && variantProp !== 'dot')) {
187
+ if (invisibleProp === false && (badgeContentProp === 0 && !showZero || badgeContentProp == null && variantProp !== 'dot')) {
187
188
  invisible = true;
188
189
  }
189
190
 
@@ -303,6 +304,7 @@ process.env.NODE_ENV !== "production" ? Badge.propTypes
303
304
 
304
305
  /**
305
306
  * If `true`, the badge is invisible.
307
+ * @default false
306
308
  */
307
309
  invisible: PropTypes.bool,
308
310
 
@@ -6,9 +6,7 @@ import styled from '../styles/styled';
6
6
  import MoreHorizIcon from '../internal/svg-icons/MoreHoriz';
7
7
  import ButtonBase from '../ButtonBase';
8
8
  import { jsx as _jsx } from "react/jsx-runtime";
9
- var BreadcrumbCollapsedButton = styled(ButtonBase, {
10
- skipSx: true
11
- })(function (_ref) {
9
+ var BreadcrumbCollapsedButton = styled(ButtonBase)(function (_ref) {
12
10
  var theme = _ref.theme;
13
11
  return _extends({
14
12
  display: 'flex',
@@ -127,11 +127,13 @@ var ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref)
127
127
  _props$tabIndex = props.tabIndex,
128
128
  tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,
129
129
  TouchRippleProps = props.TouchRippleProps,
130
+ touchRippleRef = props.touchRippleRef,
130
131
  type = props.type,
131
- other = _objectWithoutProperties(props, ["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"]);
132
+ other = _objectWithoutProperties(props, ["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"]);
132
133
 
133
134
  var buttonRef = React.useRef(null);
134
135
  var rippleRef = React.useRef(null);
136
+ var handleRippleRef = useForkRef(rippleRef, touchRippleRef);
135
137
 
136
138
  var _useIsFocusVisible = useIsFocusVisible(),
137
139
  isFocusVisibleRef = _useIsFocusVisible.isFocusVisibleRef,
@@ -361,7 +363,7 @@ var ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref)
361
363
 
362
364
  /* TouchRipple is only needed client-side, x2 boost on the server. */
363
365
  _jsx(TouchRipple, _extends({
364
- ref: rippleRef,
366
+ ref: handleRippleRef,
365
367
  center: centerRipple
366
368
  }, TouchRippleProps)) : null]
367
369
  }));
@@ -544,6 +546,17 @@ process.env.NODE_ENV !== "production" ? ButtonBase.propTypes
544
546
  */
545
547
  TouchRippleProps: PropTypes.object,
546
548
 
549
+ /**
550
+ * A ref that points to the `TouchRipple` element.
551
+ */
552
+ touchRippleRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
553
+ current: PropTypes.shape({
554
+ pulsate: PropTypes.func.isRequired,
555
+ start: PropTypes.func.isRequired,
556
+ stop: PropTypes.func.isRequired
557
+ })
558
+ })]),
559
+
547
560
  /**
548
561
  * @ignore
549
562
  */
@@ -22,8 +22,7 @@ var exitKeyframe = keyframes(_templateObject2 || (_templateObject2 = _taggedTemp
22
22
  var pulsateKeyframe = keyframes(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n"])));
23
23
  export var TouchRippleRoot = styled('span', {
24
24
  name: 'MuiTouchRipple',
25
- slot: 'Root',
26
- skipSx: true
25
+ slot: 'Root'
27
26
  })({
28
27
  overflow: 'hidden',
29
28
  pointerEvents: 'none',
@@ -9,13 +9,13 @@ import { unstable_useId as useId } from '@mui/utils';
9
9
  import capitalize from '../utils/capitalize';
10
10
  import Modal from '../Modal';
11
11
  import Fade from '../Fade';
12
- import { duration } from '../styles/createTransitions';
13
12
  import Paper from '../Paper';
14
13
  import useThemeProps from '../styles/useThemeProps';
15
14
  import styled from '../styles/styled';
16
15
  import dialogClasses, { getDialogUtilityClass } from './dialogClasses';
17
16
  import DialogContext from './DialogContext';
18
17
  import Backdrop from '../Backdrop';
18
+ import useTheme from '../styles/useTheme';
19
19
  import { jsx as _jsx } from "react/jsx-runtime";
20
20
  var DialogBackdrop = styled(Backdrop, {
21
21
  name: 'MuiDialog',
@@ -139,10 +139,6 @@ var DialogPaper = styled(Paper, {
139
139
  maxWidth: '100%'
140
140
  }));
141
141
  });
142
- var defaultTransitionDuration = {
143
- enter: duration.enteringScreen,
144
- exit: duration.leavingScreen
145
- };
146
142
  /**
147
143
  * Dialogs are overlaid modal paper based components with a backdrop.
148
144
  */
@@ -152,6 +148,11 @@ var Dialog = /*#__PURE__*/React.forwardRef(function Dialog(inProps, ref) {
152
148
  props: inProps,
153
149
  name: 'MuiDialog'
154
150
  });
151
+ var theme = useTheme();
152
+ var defaultTransitionDuration = {
153
+ enter: theme.transitions.duration.enteringScreen,
154
+ exit: theme.transitions.duration.leavingScreen
155
+ };
155
156
 
156
157
  var ariaDescribedby = props['aria-describedby'],
157
158
  ariaLabelledbyProp = props['aria-labelledby'],
@@ -399,7 +400,10 @@ process.env.NODE_ENV !== "production" ? Dialog.propTypes
399
400
  /**
400
401
  * The duration for the transition, in milliseconds.
401
402
  * You may specify a single timeout for all transitions, or individually with an object.
402
- * @default { enter: duration.enteringScreen, exit: duration.leavingScreen }
403
+ * @default {
404
+ * enter: theme.transitions.duration.enteringScreen,
405
+ * exit: theme.transitions.duration.leavingScreen,
406
+ * }
403
407
  */
404
408
  transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
405
409
  appear: PropTypes.number,
@@ -9,7 +9,6 @@ import Modal from '../Modal';
9
9
  import Slide from '../Slide';
10
10
  import Paper from '../Paper';
11
11
  import capitalize from '../utils/capitalize';
12
- import { duration } from '../styles/createTransitions';
13
12
  import useTheme from '../styles/useTheme';
14
13
  import useThemeProps from '../styles/useThemeProps';
15
14
  import styled, { rootShouldForwardProp } from '../styles/styled';
@@ -118,10 +117,6 @@ export function isHorizontal(anchor) {
118
117
  export function getAnchor(theme, anchor) {
119
118
  return theme.direction === 'rtl' && isHorizontal(anchor) ? oppositeDirection[anchor] : anchor;
120
119
  }
121
- var defaultTransitionDuration = {
122
- enter: duration.enteringScreen,
123
- exit: duration.leavingScreen
124
- };
125
120
  /**
126
121
  * The props of the [Modal](/api/modal/) component are available
127
122
  * when `variant="temporary"` is set.
@@ -132,6 +127,11 @@ var Drawer = /*#__PURE__*/React.forwardRef(function Drawer(inProps, ref) {
132
127
  props: inProps,
133
128
  name: 'MuiDrawer'
134
129
  });
130
+ var theme = useTheme();
131
+ var defaultTransitionDuration = {
132
+ enter: theme.transitions.duration.enteringScreen,
133
+ exit: theme.transitions.duration.leavingScreen
134
+ };
135
135
  var _props$anchor = props.anchor,
136
136
  anchorProp = _props$anchor === void 0 ? 'left' : _props$anchor,
137
137
  BackdropProps = props.BackdropProps,
@@ -158,12 +158,11 @@ var Drawer = /*#__PURE__*/React.forwardRef(function Drawer(inProps, ref) {
158
158
  transitionDuration = _props$transitionDura === void 0 ? defaultTransitionDuration : _props$transitionDura,
159
159
  _props$variant = props.variant,
160
160
  variant = _props$variant === void 0 ? 'temporary' : _props$variant,
161
- other = _objectWithoutProperties(props, ["anchor", "BackdropProps", "children", "className", "elevation", "hideBackdrop", "ModalProps", "onClose", "open", "PaperProps", "SlideProps", "TransitionComponent", "transitionDuration", "variant"]);
162
-
163
- var theme = useTheme(); // Let's assume that the Drawer will always be rendered on user space.
161
+ other = _objectWithoutProperties(props, ["anchor", "BackdropProps", "children", "className", "elevation", "hideBackdrop", "ModalProps", "onClose", "open", "PaperProps", "SlideProps", "TransitionComponent", "transitionDuration", "variant"]); // Let's assume that the Drawer will always be rendered on user space.
164
162
  // We use this state is order to skip the appear transition during the
165
163
  // initial mount of the component.
166
164
 
165
+
167
166
  var mounted = React.useRef(false);
168
167
  React.useEffect(function () {
169
168
  mounted.current = true;
@@ -317,7 +316,10 @@ process.env.NODE_ENV !== "production" ? Drawer.propTypes
317
316
  /**
318
317
  * The duration for the transition, in milliseconds.
319
318
  * You may specify a single timeout for all transitions, or individually with an object.
320
- * @default { enter: duration.enteringScreen, exit: duration.leavingScreen }
319
+ * @default {
320
+ * enter: theme.transitions.duration.enteringScreen,
321
+ * exit: theme.transitions.duration.leavingScreen,
322
+ * }
321
323
  */
322
324
  transitionDuration: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
323
325
  appear: PropTypes.number,
package/legacy/Fab/Fab.js CHANGED
@@ -18,7 +18,7 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
18
18
  classes = ownerState.classes,
19
19
  size = ownerState.size;
20
20
  var slots = {
21
- root: ['root', variant, "size".concat(capitalize(size)), color === 'inherit' && 'colorInherit', color === 'primary' && 'primary', color === 'secondary' && 'secondary']
21
+ root: ['root', variant, "size".concat(capitalize(size)), color === 'inherit' ? 'colorInherit' : color]
22
22
  };
23
23
  return composeClasses(slots, getFabUtilityClass, classes);
24
24
  };
@@ -28,7 +28,7 @@ var FabRoot = styled(ButtonBase, {
28
28
  slot: 'Root',
29
29
  overridesResolver: function overridesResolver(props, styles) {
30
30
  var ownerState = props.ownerState;
31
- return [styles.root, styles[ownerState.variant], styles["size".concat(capitalize(ownerState.size))], ownerState.color === 'inherit' && styles.colorInherit, ownerState.color === 'primary' && styles.primary, ownerState.color === 'secondary' && styles.secondary];
31
+ return [styles.root, styles[ownerState.variant], styles["size".concat(capitalize(ownerState.size))], ownerState.color === 'inherit' && styles.colorInherit, styles[capitalize(ownerState.size)], styles[ownerState.color]];
32
32
  }
33
33
  })(function (_ref) {
34
34
  var _extends2;
@@ -96,24 +96,14 @@ var FabRoot = styled(ButtonBase, {
96
96
  }, function (_ref2) {
97
97
  var theme = _ref2.theme,
98
98
  ownerState = _ref2.ownerState;
99
- return _extends({}, ownerState.color === 'primary' && {
100
- color: theme.palette.primary.contrastText,
101
- backgroundColor: theme.palette.primary.main,
99
+ return _extends({}, ownerState.color !== 'inherit' && ownerState.color !== 'default' && theme.palette[ownerState.color] != null && {
100
+ color: theme.palette[ownerState.color].contrastText,
101
+ backgroundColor: theme.palette[ownerState.color].main,
102
102
  '&:hover': {
103
- backgroundColor: theme.palette.primary.dark,
103
+ backgroundColor: theme.palette[ownerState.color].dark,
104
104
  // Reset on touch devices, it doesn't add specificity
105
105
  '@media (hover: none)': {
106
- backgroundColor: theme.palette.primary.main
107
- }
108
- }
109
- }, ownerState.color === 'secondary' && {
110
- color: theme.palette.secondary.contrastText,
111
- backgroundColor: theme.palette.secondary.main,
112
- '&:hover': {
113
- backgroundColor: theme.palette.secondary.dark,
114
- // Reset on touch devices, it doesn't add specificity
115
- '@media (hover: none)': {
116
- backgroundColor: theme.palette.secondary.main
106
+ backgroundColor: theme.palette[ownerState.color].main
117
107
  }
118
108
  }
119
109
  });
@@ -190,9 +180,7 @@ process.env.NODE_ENV !== "production" ? Fab.propTypes
190
180
  * The color of the component. It supports those theme colors that make sense for this component.
191
181
  * @default 'default'
192
182
  */
193
- color: PropTypes
194
- /* @typescript-to-proptypes-ignore */
195
- .oneOfType([PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary']), PropTypes.string]),
183
+ color: PropTypes.oneOf(['default', 'error', 'info', 'inherit', 'primary', 'secondary', 'success', 'warning']),
196
184
 
197
185
  /**
198
186
  * 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
- var fabClasses = generateUtilityClasses('MuiFab', ['root', 'primary', 'secondary', 'extended', 'circular', 'focusVisible', 'disabled', 'colorInherit', 'sizeSmall', 'sizeMedium', 'sizeLarge']);
5
+ var fabClasses = generateUtilityClasses('MuiFab', ['root', 'primary', 'secondary', 'extended', 'circular', 'focusVisible', 'disabled', 'colorInherit', 'sizeSmall', 'sizeMedium', 'sizeLarge', 'info', 'error', 'warning', 'success']);
6
6
  export default fabClasses;
@@ -4,7 +4,6 @@ import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import { Transition } from 'react-transition-group';
6
6
  import { elementAcceptingRef } from '@mui/utils';
7
- import { duration } from '../styles/createTransitions';
8
7
  import useTheme from '../styles/useTheme';
9
8
  import { reflow, getTransitionProps } from '../transitions/utils';
10
9
  import useForkRef from '../utils/useForkRef';
@@ -17,16 +16,18 @@ var styles = {
17
16
  opacity: 1
18
17
  }
19
18
  };
20
- var defaultTimeout = {
21
- enter: duration.enteringScreen,
22
- exit: duration.leavingScreen
23
- };
24
19
  /**
25
20
  * The Fade transition is used by the [Modal](/components/modal/) component.
26
21
  * It uses [react-transition-group](https://github.com/reactjs/react-transition-group) internally.
27
22
  */
28
23
 
29
24
  var Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {
25
+ var theme = useTheme();
26
+ var defaultTimeout = {
27
+ enter: theme.transitions.duration.enteringScreen,
28
+ exit: theme.transitions.duration.leavingScreen
29
+ };
30
+
30
31
  var addEndListener = props.addEndListener,
31
32
  _props$appear = props.appear,
32
33
  appear = _props$appear === void 0 ? true : _props$appear,
@@ -46,7 +47,6 @@ var Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {
46
47
  TransitionComponent = _props$TransitionComp === void 0 ? Transition : _props$TransitionComp,
47
48
  other = _objectWithoutProperties(props, ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"]);
48
49
 
49
- var theme = useTheme();
50
50
  var enableStrictModeCompat = true;
51
51
  var nodeRef = React.useRef(null);
52
52
  var foreignRef = useForkRef(_children.ref, ref);
@@ -214,8 +214,8 @@ process.env.NODE_ENV !== "production" ? Fade.propTypes
214
214
  * The duration for the transition, in milliseconds.
215
215
  * You may specify a single timeout for all transitions, or individually with an object.
216
216
  * @default {
217
- * enter: duration.enteringScreen,
218
- * exit: duration.leavingScreen,
217
+ * enter: theme.transitions.duration.enteringScreen,
218
+ * exit: theme.transitions.duration.leavingScreen,
219
219
  * }
220
220
  */
221
221
  timeout: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({
@@ -12,15 +12,17 @@ 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
 
18
19
  var useUtilityClasses = function useUtilityClasses(ownerState) {
19
20
  var classes = ownerState.classes,
20
21
  disabled = ownerState.disabled,
21
- labelPlacement = ownerState.labelPlacement;
22
+ labelPlacement = ownerState.labelPlacement,
23
+ error = ownerState.error;
22
24
  var slots = {
23
- root: ['root', disabled && 'disabled', "labelPlacement".concat(capitalize(labelPlacement))],
25
+ root: ['root', disabled && 'disabled', "labelPlacement".concat(capitalize(labelPlacement)), error && 'error'],
24
26
  label: ['label', disabled && 'disabled']
25
27
  };
26
28
  return composeClasses(slots, getFormControlLabelUtilityClasses, classes);
@@ -108,11 +110,17 @@ var FormControlLabel = /*#__PURE__*/React.forwardRef(function FormControlLabel(i
108
110
  controlProps[key] = props[key];
109
111
  }
110
112
  });
113
+ var fcs = formControlState({
114
+ props: props,
115
+ muiFormControl: muiFormControl,
116
+ states: ['error']
117
+ });
111
118
 
112
119
  var ownerState = _extends({}, props, {
113
120
  disabled: disabled,
114
121
  label: label,
115
- labelPlacement: labelPlacement
122
+ labelPlacement: labelPlacement,
123
+ error: fcs.error
116
124
  });
117
125
 
118
126
  var 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
- var formControlLabelClasses = generateUtilityClasses('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label']);
5
+ var formControlLabelClasses = generateUtilityClasses('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label', 'error']);
6
6
  export default formControlLabelClasses;
@@ -7,13 +7,16 @@ import { unstable_composeClasses as composeClasses } from '@mui/base';
7
7
  import styled from '../styles/styled';
8
8
  import useThemeProps from '../styles/useThemeProps';
9
9
  import { getFormGroupUtilityClass } from './formGroupClasses';
10
+ import useFormControl from '../FormControl/useFormControl';
11
+ import formControlState from '../FormControl/formControlState';
10
12
  import { jsx as _jsx } from "react/jsx-runtime";
11
13
 
12
14
  var useUtilityClasses = function useUtilityClasses(ownerState) {
13
15
  var classes = ownerState.classes,
14
- row = ownerState.row;
16
+ row = ownerState.row,
17
+ error = ownerState.error;
15
18
  var slots = {
16
- root: ['root', row && 'row']
19
+ root: ['root', row && 'row', error && 'error']
17
20
  };
18
21
  return composeClasses(slots, getFormGroupUtilityClass, classes);
19
22
  };
@@ -52,8 +55,16 @@ var FormGroup = /*#__PURE__*/React.forwardRef(function FormGroup(inProps, ref) {
52
55
  row = _props$row === void 0 ? false : _props$row,
53
56
  other = _objectWithoutProperties(props, ["className", "row"]);
54
57
 
58
+ var muiFormControl = useFormControl();
59
+ var fcs = formControlState({
60
+ props: props,
61
+ muiFormControl: muiFormControl,
62
+ states: ['error']
63
+ });
64
+
55
65
  var ownerState = _extends({}, props, {
56
- row: row
66
+ row: row,
67
+ error: fcs.error
57
68
  });
58
69
 
59
70
  var 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
- var formGroupClasses = generateUtilityClasses('MuiFormGroup', ['root', 'row']);
5
+ var formGroupClasses = generateUtilityClasses('MuiFormGroup', ['root', 'row', 'error']);
6
6
  export default formGroupClasses;
@@ -1,6 +1,9 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
+
5
+ var _span;
6
+
4
7
  import * as React from 'react';
5
8
  import PropTypes from 'prop-types';
6
9
  import clsx from 'clsx';
@@ -104,16 +107,11 @@ var FormHelperText = /*#__PURE__*/React.forwardRef(function FormHelperText(inPro
104
107
  className: clsx(classes.root, className),
105
108
  ref: ref
106
109
  }, other, {
107
- children: children === ' ' ?
108
- /*#__PURE__*/
109
- // notranslate needed while Google Translate will not fix zero-width space issue
110
- // eslint-disable-next-line react/no-danger
111
- _jsx("span", {
110
+ children: children === ' ' ? // notranslate needed while Google Translate will not fix zero-width space issue
111
+ _span || (_span = /*#__PURE__*/_jsx("span", {
112
112
  className: "notranslate",
113
- dangerouslySetInnerHTML: {
114
- __html: '​'
115
- }
116
- }) : children
113
+ children: "\u200B"
114
+ })) : children
117
115
  }));
118
116
  });
119
117
  process.env.NODE_ENV !== "production" ? FormHelperText.propTypes
@@ -251,10 +251,8 @@ var GridRoot = styled('div', {
251
251
 
252
252
  }, ownerState.zeroMinWidth && {
253
253
  minWidth: 0
254
- }, ownerState.wrap === 'nowrap' && {
255
- flexWrap: 'nowrap'
256
- }, ownerState.wrap === 'reverse' && {
257
- flexWrap: 'wrap-reverse'
254
+ }, ownerState.wrap !== 'wrap' && {
255
+ flexWrap: ownerState.wrap
258
256
  });
259
257
  }, generateDirection, generateRowGap, generateColumnGap, generateGrid);
260
258
 
@@ -168,6 +168,8 @@ process.env.NODE_ENV !== "production" ? ImageList.propTypes
168
168
  * The variant to use.
169
169
  * @default 'standard'
170
170
  */
171
- variant: PropTypes.oneOf(['masonry', 'quilted', 'standard', 'woven'])
171
+ variant: PropTypes
172
+ /* @typescript-to-proptypes-ignore */
173
+ .oneOfType([PropTypes.oneOf(['masonry', 'quilted', 'standard', 'woven']), PropTypes.string])
172
174
  } : void 0;
173
175
  export default ImageList;
@@ -1,6 +1,9 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
2
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
3
  import _extends from "@babel/runtime/helpers/esm/extends";
4
+
5
+ var _span;
6
+
4
7
  import * as React from 'react';
5
8
  import PropTypes from 'prop-types';
6
9
  import clsx from 'clsx';
@@ -116,17 +119,11 @@ var InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inPro
116
119
  children: children
117
120
  }) : /*#__PURE__*/_jsxs(React.Fragment, {
118
121
  children: [position === 'start' ?
119
- /*#__PURE__*/
120
-
121
122
  /* notranslate needed while Google Translate will not fix zero-width space issue */
122
-
123
- /* eslint-disable-next-line react/no-danger */
124
- _jsx("span", {
123
+ _span || (_span = /*#__PURE__*/_jsx("span", {
125
124
  className: "notranslate",
126
- dangerouslySetInnerHTML: {
127
- __html: '​'
128
- }
129
- }) : null, children]
125
+ children: "\u200B"
126
+ })) : null, children]
130
127
  })
131
128
  }))
132
129
  });
@@ -243,7 +243,7 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes
243
243
 
244
244
  /**
245
245
  * If `true`, the modal will not restore focus to previously focused element once
246
- * modal is hidden.
246
+ * modal is hidden or unmounted.
247
247
  * @default false
248
248
  */
249
249
  disableRestoreFocus: PropTypes.bool,
@@ -1,5 +1,8 @@
1
1
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
2
2
  import _extends from "@babel/runtime/helpers/esm/extends";
3
+
4
+ var _span;
5
+
3
6
  import * as React from 'react';
4
7
  import PropTypes from 'prop-types';
5
8
  import styled from '../styles/styled';
@@ -20,14 +23,12 @@ var NotchedOutlineRoot = styled('fieldset')({
20
23
  overflow: 'hidden',
21
24
  minWidth: '0%'
22
25
  });
23
- var NotchedOutlineLegend = styled('legend', {
24
- skipSx: true
25
- })(function (_ref) {
26
+ var NotchedOutlineLegend = styled('legend')(function (_ref) {
26
27
  var ownerState = _ref.ownerState,
27
28
  theme = _ref.theme;
28
29
  return _extends({
29
30
  float: 'unset'
30
- }, ownerState.label === undefined && {
31
+ }, !ownerState.withLabel && {
31
32
  padding: 0,
32
33
  lineHeight: '11px',
33
34
  // sync with `height` in `legend` styles
@@ -35,7 +36,7 @@ var NotchedOutlineLegend = styled('legend', {
35
36
  duration: 150,
36
37
  easing: theme.transitions.easing.easeOut
37
38
  })
38
- }, ownerState.label !== undefined && _extends({
39
+ }, ownerState.withLabel && _extends({
39
40
  display: 'block',
40
41
  // Fix conflict with normalize.css and sanitize.css
41
42
  width: 'auto',
@@ -77,9 +78,11 @@ export default function NotchedOutline(props) {
77
78
  notched = props.notched,
78
79
  other = _objectWithoutProperties(props, ["children", "classes", "className", "label", "notched"]);
79
80
 
81
+ var withLabel = label != null && label !== '';
82
+
80
83
  var ownerState = _extends({}, props, {
81
84
  notched: notched,
82
- label: label
85
+ withLabel: 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
  }
@@ -137,7 +137,7 @@ var OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(inProps
137
137
  renderSuffix: function renderSuffix(state) {
138
138
  return /*#__PURE__*/_jsx(NotchedOutlineRoot, {
139
139
  className: classes.notchedOutline,
140
- label: label && fcs.required ? _React$Fragment || (_React$Fragment = /*#__PURE__*/_jsxs(React.Fragment, {
140
+ label: label != null && label !== '' && fcs.required ? _React$Fragment || (_React$Fragment = /*#__PURE__*/_jsxs(React.Fragment, {
141
141
  children: [label, "\xA0", '*']
142
142
  })) : label,
143
143
  notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)
@@ -10,15 +10,11 @@ var RadioButtonIconRoot = styled('span')({
10
10
  position: 'relative',
11
11
  display: 'flex'
12
12
  });
13
- var RadioButtonIconBackground = styled(RadioButtonUncheckedIcon, {
14
- skipSx: true
15
- })({
13
+ var RadioButtonIconBackground = styled(RadioButtonUncheckedIcon)({
16
14
  // Scale applied to prevent dot misalignment in Safari
17
15
  transform: 'scale(1)'
18
16
  });
19
- var RadioButtonIconDot = styled(RadioButtonCheckedIcon, {
20
- skipSx: true
21
- })(function (_ref) {
17
+ var RadioButtonIconDot = styled(RadioButtonCheckedIcon)(function (_ref) {
22
18
  var theme = _ref.theme,
23
19
  ownerState = _ref.ownerState;
24
20
  return _extends({
@@ -425,7 +425,7 @@ var Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
425
425
 
426
426
  var handleChange = function handleChange(event) {
427
427
  var newValue = event.target.value === '' ? null : parseFloat(event.target.value); // Give mouse priority over keyboard
428
- // Fix https://github.com/mui-org/material-ui/issues/22827
428
+ // Fix https://github.com/mui/material-ui/issues/22827
429
429
 
430
430
  if (hover !== -1) {
431
431
  newValue = hover;