@mui/material 5.2.7 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/Autocomplete/Autocomplete.d.ts +7 -0
  2. package/Autocomplete/Autocomplete.js +22 -10
  3. package/Backdrop/Backdrop.js +3 -1
  4. package/Badge/Badge.js +6 -7
  5. package/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  6. package/Button/buttonClasses.d.ts +1 -1
  7. package/ButtonBase/TouchRipple.js +1 -2
  8. package/CHANGELOG.md +284 -33
  9. package/FilledInput/FilledInput.js +4 -1
  10. package/FormControlLabel/FormControlLabel.js +14 -4
  11. package/FormControlLabel/formControlLabelClasses.d.ts +2 -0
  12. package/FormControlLabel/formControlLabelClasses.js +1 -1
  13. package/FormGroup/FormGroup.js +14 -3
  14. package/FormGroup/formGroupClasses.d.ts +2 -0
  15. package/FormGroup/formGroupClasses.js +1 -1
  16. package/FormHelperText/FormHelperText.js +7 -9
  17. package/Grid/Grid.js +2 -4
  18. package/Input/Input.js +4 -1
  19. package/InputAdornment/InputAdornment.js +6 -9
  20. package/InputBase/InputBase.js +4 -1
  21. package/InputLabel/InputLabel.js +4 -0
  22. package/ListItem/ListItem.js +3 -1
  23. package/Modal/Modal.js +3 -1
  24. package/OutlinedInput/NotchedOutline.js +14 -16
  25. package/OutlinedInput/OutlinedInput.js +1 -1
  26. package/README.md +5 -4
  27. package/Radio/RadioButtonIcon.js +2 -6
  28. package/Select/Select.d.ts +9 -1
  29. package/Select/Select.js +10 -1
  30. package/Select/SelectInput.d.ts +1 -0
  31. package/Select/SelectInput.js +32 -13
  32. package/Slider/Slider.d.ts +2 -0
  33. package/Slider/Slider.js +126 -53
  34. package/StepLabel/StepLabel.js +3 -1
  35. package/SvgIcon/SvgIcon.js +9 -9
  36. package/SwipeableDrawer/SwipeArea.js +1 -3
  37. package/TextField/TextField.d.ts +1 -0
  38. package/TextField/TextField.js +2 -1
  39. package/Tooltip/Tooltip.js +6 -1
  40. package/index.d.ts +7 -2
  41. package/index.js +6 -3
  42. package/internal/SwitchBase.js +2 -6
  43. package/legacy/Autocomplete/Autocomplete.js +23 -10
  44. package/legacy/Backdrop/Backdrop.js +3 -1
  45. package/legacy/Badge/Badge.js +6 -7
  46. package/legacy/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  47. package/legacy/ButtonBase/TouchRipple.js +1 -2
  48. package/legacy/FilledInput/FilledInput.js +4 -1
  49. package/legacy/FormControlLabel/FormControlLabel.js +14 -4
  50. package/legacy/FormControlLabel/formControlLabelClasses.js +1 -1
  51. package/legacy/FormGroup/FormGroup.js +14 -3
  52. package/legacy/FormGroup/formGroupClasses.js +1 -1
  53. package/legacy/FormHelperText/FormHelperText.js +7 -9
  54. package/legacy/Grid/Grid.js +2 -4
  55. package/legacy/Input/Input.js +4 -1
  56. package/legacy/InputAdornment/InputAdornment.js +6 -9
  57. package/legacy/InputBase/InputBase.js +4 -1
  58. package/legacy/InputLabel/InputLabel.js +4 -0
  59. package/legacy/ListItem/ListItem.js +3 -1
  60. package/legacy/Modal/Modal.js +3 -1
  61. package/legacy/OutlinedInput/NotchedOutline.js +14 -16
  62. package/legacy/OutlinedInput/OutlinedInput.js +1 -1
  63. package/legacy/Radio/RadioButtonIcon.js +2 -6
  64. package/legacy/Select/Select.js +11 -1
  65. package/legacy/Select/SelectInput.js +36 -16
  66. package/legacy/Slider/Slider.js +127 -54
  67. package/legacy/StepLabel/StepLabel.js +3 -1
  68. package/legacy/SvgIcon/SvgIcon.js +9 -9
  69. package/legacy/SwipeableDrawer/SwipeArea.js +1 -3
  70. package/legacy/TextField/TextField.js +2 -1
  71. package/legacy/Tooltip/Tooltip.js +6 -1
  72. package/legacy/index.js +6 -3
  73. package/legacy/internal/SwitchBase.js +2 -6
  74. package/legacy/useMediaQuery/useMediaQuery.js +86 -31
  75. package/legacy/utils/shouldSpreadAdditionalProps.js +7 -0
  76. package/modern/Autocomplete/Autocomplete.js +21 -9
  77. package/modern/Backdrop/Backdrop.js +3 -1
  78. package/modern/Badge/Badge.js +6 -7
  79. package/modern/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  80. package/modern/ButtonBase/TouchRipple.js +1 -2
  81. package/modern/FilledInput/FilledInput.js +4 -1
  82. package/modern/FormControlLabel/FormControlLabel.js +14 -4
  83. package/modern/FormControlLabel/formControlLabelClasses.js +1 -1
  84. package/modern/FormGroup/FormGroup.js +14 -3
  85. package/modern/FormGroup/formGroupClasses.js +1 -1
  86. package/modern/FormHelperText/FormHelperText.js +7 -9
  87. package/modern/Grid/Grid.js +2 -4
  88. package/modern/Input/Input.js +4 -1
  89. package/modern/InputAdornment/InputAdornment.js +6 -9
  90. package/modern/InputBase/InputBase.js +4 -1
  91. package/modern/InputLabel/InputLabel.js +4 -0
  92. package/modern/ListItem/ListItem.js +3 -1
  93. package/modern/Modal/Modal.js +3 -1
  94. package/modern/OutlinedInput/NotchedOutline.js +14 -16
  95. package/modern/OutlinedInput/OutlinedInput.js +1 -1
  96. package/modern/Radio/RadioButtonIcon.js +2 -6
  97. package/modern/Select/Select.js +10 -1
  98. package/modern/Select/SelectInput.js +32 -13
  99. package/modern/Slider/Slider.js +126 -53
  100. package/modern/StepLabel/StepLabel.js +3 -1
  101. package/modern/SvgIcon/SvgIcon.js +8 -8
  102. package/modern/SwipeableDrawer/SwipeArea.js +1 -3
  103. package/modern/TextField/TextField.js +2 -1
  104. package/modern/Tooltip/Tooltip.js +6 -1
  105. package/modern/index.js +6 -3
  106. package/modern/internal/SwitchBase.js +2 -6
  107. package/modern/useMediaQuery/useMediaQuery.js +68 -26
  108. package/modern/utils/shouldSpreadAdditionalProps.js +7 -0
  109. package/node/Autocomplete/Autocomplete.js +22 -10
  110. package/node/Backdrop/Backdrop.js +3 -1
  111. package/node/Badge/Badge.js +8 -8
  112. package/node/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  113. package/node/ButtonBase/TouchRipple.js +1 -2
  114. package/node/FilledInput/FilledInput.js +4 -1
  115. package/node/FormControlLabel/FormControlLabel.js +15 -4
  116. package/node/FormControlLabel/formControlLabelClasses.js +1 -1
  117. package/node/FormGroup/FormGroup.js +15 -3
  118. package/node/FormGroup/formGroupClasses.js +1 -1
  119. package/node/FormHelperText/FormHelperText.js +6 -9
  120. package/node/Grid/Grid.js +2 -4
  121. package/node/Input/Input.js +4 -1
  122. package/node/InputAdornment/InputAdornment.js +5 -9
  123. package/node/InputBase/InputBase.js +4 -1
  124. package/node/InputLabel/InputLabel.js +4 -0
  125. package/node/ListItem/ListItem.js +3 -1
  126. package/node/Modal/Modal.js +3 -1
  127. package/node/OutlinedInput/NotchedOutline.js +12 -16
  128. package/node/OutlinedInput/OutlinedInput.js +1 -1
  129. package/node/Radio/RadioButtonIcon.js +2 -6
  130. package/node/Select/Select.js +10 -1
  131. package/node/Select/SelectInput.js +31 -13
  132. package/node/Slider/Slider.js +112 -45
  133. package/node/StepLabel/StepLabel.js +3 -1
  134. package/node/SvgIcon/SvgIcon.js +9 -9
  135. package/node/SwipeableDrawer/SwipeArea.js +1 -3
  136. package/node/TextField/TextField.js +2 -1
  137. package/node/Tooltip/Tooltip.js +6 -1
  138. package/node/index.js +41 -16
  139. package/node/internal/SwitchBase.js +2 -6
  140. package/node/useMediaQuery/useMediaQuery.js +68 -26
  141. package/node/utils/shouldSpreadAdditionalProps.js +15 -0
  142. package/package.json +7 -7
  143. package/styles/ThemeProvider.d.ts +1 -1
  144. package/styles/components.d.ts +452 -113
  145. package/styles/createTheme.d.ts +12 -6
  146. package/styles/overrides.d.ts +16 -4
  147. package/styles/useThemeProps.d.ts +2 -1
  148. package/umd/material-ui.development.js +2988 -4926
  149. package/umd/material-ui.production.min.js +21 -21
  150. package/useMediaQuery/useMediaQuery.d.ts +4 -0
  151. package/useMediaQuery/useMediaQuery.js +68 -26
  152. package/utils/shouldSpreadAdditionalProps.js +7 -0
@@ -63,7 +63,7 @@ var _jsxRuntime = require("react/jsx-runtime");
63
63
 
64
64
  var _ClearIcon, _ArrowDropDownIcon;
65
65
 
66
- const _excluded = ["autoComplete", "autoHighlight", "autoSelect", "blurOnSelect", "ChipProps", "className", "clearIcon", "clearOnBlur", "clearOnEscape", "clearText", "closeText", "componentsProps", "defaultValue", "disableClearable", "disableCloseOnSelect", "disabled", "disabledItemsFocusable", "disableListWrap", "disablePortal", "filterOptions", "filterSelectedOptions", "forcePopupIcon", "freeSolo", "fullWidth", "getLimitTagsText", "getOptionDisabled", "getOptionLabel", "isOptionEqualToValue", "groupBy", "handleHomeEndKeys", "id", "includeInputInList", "inputValue", "limitTags", "ListboxComponent", "ListboxProps", "loading", "loadingText", "multiple", "noOptionsText", "onChange", "onClose", "onHighlightChange", "onInputChange", "onOpen", "open", "openOnFocus", "openText", "options", "PaperComponent", "PopperComponent", "popupIcon", "renderGroup", "renderInput", "renderOption", "renderTags", "selectOnFocus", "size", "value"];
66
+ const _excluded = ["autoComplete", "autoHighlight", "autoSelect", "blurOnSelect", "ChipProps", "className", "clearIcon", "clearOnBlur", "clearOnEscape", "clearText", "closeText", "componentsProps", "defaultValue", "disableClearable", "disableCloseOnSelect", "disabled", "disabledItemsFocusable", "disableListWrap", "disablePortal", "filterOptions", "filterSelectedOptions", "forcePopupIcon", "freeSolo", "fullWidth", "getLimitTagsText", "getOptionDisabled", "getOptionLabel", "isOptionEqualToValue", "groupBy", "handleHomeEndKeys", "id", "includeInputInList", "inputValue", "limitTags", "ListboxComponent", "ListboxProps", "loading", "loadingText", "multiple", "noOptionsText", "onChange", "onClose", "onHighlightChange", "onInputChange", "onOpen", "open", "openOnFocus", "openText", "options", "PaperComponent", "PopperComponent", "popupIcon", "readOnly", "renderGroup", "renderInput", "renderOption", "renderTags", "selectOnFocus", "size", "value"];
67
67
 
68
68
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
69
69
 
@@ -389,7 +389,7 @@ const AutocompleteGroupUl = (0, _styled.default)('ul', {
389
389
  }
390
390
  });
391
391
  const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps, ref) {
392
- var _componentsProps$clea;
392
+ var _componentsProps$clea, _componentsProps$pape;
393
393
 
394
394
  const props = (0, _useThemeProps.default)({
395
395
  props: inProps,
@@ -444,6 +444,7 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
444
444
  PaperComponent = _Paper.default,
445
445
  PopperComponent = _Popper.default,
446
446
  popupIcon = _ArrowDropDownIcon || (_ArrowDropDownIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_ArrowDropDown.default, {})),
447
+ readOnly = false,
447
448
  renderGroup: renderGroupProp,
448
449
  renderInput,
449
450
  renderOption: renderOptionProp,
@@ -476,7 +477,7 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
476
477
  } = (0, _base.useAutocomplete)((0, _extends2.default)({}, props, {
477
478
  componentName: 'Autocomplete'
478
479
  }));
479
- const hasClearIcon = !disableClearable && !disabled && dirty;
480
+ const hasClearIcon = !disableClearable && !disabled && dirty && !readOnly;
480
481
  const hasPopupIcon = (!freeSolo || forcePopupIcon === true) && forcePopupIcon !== false;
481
482
  const ownerState = (0, _extends2.default)({}, props, {
482
483
  disablePortal,
@@ -593,7 +594,8 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
593
594
  },
594
595
  inputProps: (0, _extends2.default)({
595
596
  className: (0, _clsx.default)(classes.input),
596
- disabled
597
+ disabled,
598
+ readOnly
597
599
  }, getInputProps())
598
600
  })
599
601
  })), popupOpen && anchorEl ? /*#__PURE__*/(0, _jsxRuntime.jsx)(AutocompletePopper, {
@@ -607,10 +609,11 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
607
609
  role: "presentation",
608
610
  anchorEl: anchorEl,
609
611
  open: true,
610
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(AutocompletePaper, {
611
- as: PaperComponent,
612
- className: classes.paper,
612
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(AutocompletePaper, (0, _extends2.default)({
613
613
  ownerState: ownerState,
614
+ as: PaperComponent
615
+ }, componentsProps.paper, {
616
+ className: (0, _clsx.default)(classes.paper, (_componentsProps$pape = componentsProps.paper) == null ? void 0 : _componentsProps$pape.className),
614
617
  children: [loading && groupedOptions.length === 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(AutocompleteLoading, {
615
618
  className: classes.loading,
616
619
  ownerState: ownerState,
@@ -641,7 +644,7 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
641
644
  return renderListOption(option, index);
642
645
  })
643
646
  })) : null]
644
- })
647
+ }))
645
648
  }) : null]
646
649
  });
647
650
  });
@@ -711,7 +714,7 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes
711
714
  * If `true`, the input's text is cleared on blur if no value is selected.
712
715
  *
713
716
  * Set to `true` if you want to help the user enter a new value.
714
- * Set to `false` if you want to help the user resume his search.
717
+ * Set to `false` if you want to help the user resume their search.
715
718
  * @default !props.freeSolo
716
719
  */
717
720
  clearOnBlur: _propTypes.default.bool,
@@ -742,7 +745,10 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes
742
745
  * The props used for each slot inside.
743
746
  * @default {}
744
747
  */
745
- componentsProps: _propTypes.default.object,
748
+ componentsProps: _propTypes.default.shape({
749
+ clearIndicator: _propTypes.default.object,
750
+ paper: _propTypes.default.object
751
+ }),
746
752
 
747
753
  /**
748
754
  * The default value. Use when the component is not controlled.
@@ -1030,6 +1036,12 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes
1030
1036
  */
1031
1037
  popupIcon: _propTypes.default.node,
1032
1038
 
1039
+ /**
1040
+ * If `true`, the component becomes readonly. It is also supported for multiple tags where the tag cannot be deleted.
1041
+ * @default false
1042
+ */
1043
+ readOnly: _propTypes.default.bool,
1044
+
1033
1045
  /**
1034
1046
  * Render the group.
1035
1047
  *
@@ -148,7 +148,9 @@ process.env.NODE_ENV !== "production" ? Backdrop.propTypes
148
148
  * The props used for each slot inside the Backdrop.
149
149
  * @default {}
150
150
  */
151
- componentsProps: _propTypes.default.object,
151
+ componentsProps: _propTypes.default.shape({
152
+ root: _propTypes.default.object
153
+ }),
152
154
 
153
155
  /**
154
156
  * If `true`, the backdrop is invisible.
@@ -27,6 +27,8 @@ var _styled = _interopRequireDefault(require("../styles/styled"));
27
27
 
28
28
  var _useThemeProps = _interopRequireDefault(require("../styles/useThemeProps"));
29
29
 
30
+ var _shouldSpreadAdditionalProps = _interopRequireDefault(require("../utils/shouldSpreadAdditionalProps"));
31
+
30
32
  var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
31
33
 
32
34
  var _jsxRuntime = require("react/jsx-runtime");
@@ -179,11 +181,6 @@ const BadgeBadge = (0, _styled.default)('span', {
179
181
  duration: theme.transitions.duration.leavingScreen
180
182
  })
181
183
  }));
182
-
183
- const shouldSpreadAdditionalProps = Slot => {
184
- return !Slot || !(0, _base.isHostComponent)(Slot);
185
- };
186
-
187
184
  const Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
188
185
  var _componentsProps$root, _componentsProps$badg;
189
186
 
@@ -242,14 +239,14 @@ const Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
242
239
  Badge: BadgeBadge
243
240
  }, components),
244
241
  componentsProps: {
245
- root: (0, _extends2.default)({}, componentsProps.root, shouldSpreadAdditionalProps(components.Root) && {
242
+ root: (0, _extends2.default)({}, componentsProps.root, (0, _shouldSpreadAdditionalProps.default)(components.Root) && {
246
243
  as: component,
247
244
  ownerState: (0, _extends2.default)({}, (_componentsProps$root = componentsProps.root) == null ? void 0 : _componentsProps$root.ownerState, {
248
245
  color,
249
246
  overlap
250
247
  })
251
248
  }),
252
- badge: (0, _extends2.default)({}, componentsProps.badge, shouldSpreadAdditionalProps(components.Badge) && {
249
+ badge: (0, _extends2.default)({}, componentsProps.badge, (0, _shouldSpreadAdditionalProps.default)(components.Badge) && {
253
250
  ownerState: (0, _extends2.default)({}, (_componentsProps$badg = componentsProps.badge) == null ? void 0 : _componentsProps$badg.ownerState, {
254
251
  color,
255
252
  overlap
@@ -323,7 +320,10 @@ process.env.NODE_ENV !== "production" ? Badge.propTypes
323
320
  * The props used for each slot inside the Badge.
324
321
  * @default {}
325
322
  */
326
- componentsProps: _propTypes.default.object,
323
+ componentsProps: _propTypes.default.shape({
324
+ badge: _propTypes.default.object,
325
+ root: _propTypes.default.object
326
+ }),
327
327
 
328
328
  /**
329
329
  * If `true`, the badge is invisible.
@@ -27,9 +27,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
27
27
 
28
28
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
29
 
30
- const BreadcrumbCollapsedButton = (0, _styled.default)(_ButtonBase.default, {
31
- skipSx: true
32
- })(({
30
+ const BreadcrumbCollapsedButton = (0, _styled.default)(_ButtonBase.default)(({
33
31
  theme
34
32
  }) => (0, _extends2.default)({
35
33
  display: 'flex',
@@ -75,8 +75,7 @@ const pulsateKeyframe = (0, _system.keyframes)`
75
75
  `;
76
76
  const TouchRippleRoot = (0, _styled.default)('span', {
77
77
  name: 'MuiTouchRipple',
78
- slot: 'Root',
79
- skipSx: true
78
+ slot: 'Root'
80
79
  })({
81
80
  overflow: 'hidden',
82
81
  pointerEvents: 'none',
@@ -279,7 +279,10 @@ process.env.NODE_ENV !== "production" ? FilledInput.propTypes
279
279
  * The props used for each slot inside the Input.
280
280
  * @default {}
281
281
  */
282
- componentsProps: _propTypes.default.object,
282
+ componentsProps: _propTypes.default.shape({
283
+ input: _propTypes.default.object,
284
+ root: _propTypes.default.object
285
+ }),
283
286
 
284
287
  /**
285
288
  * The default value. Use when the component is not controlled.
@@ -33,6 +33,8 @@ var _useThemeProps = _interopRequireDefault(require("../styles/useThemeProps"));
33
33
 
34
34
  var _formControlLabelClasses = _interopRequireWildcard(require("./formControlLabelClasses"));
35
35
 
36
+ var _formControlState = _interopRequireDefault(require("../FormControl/formControlState"));
37
+
36
38
  var _jsxRuntime = require("react/jsx-runtime");
37
39
 
38
40
  const _excluded = ["checked", "className", "componentsProps", "control", "disabled", "disableTypography", "inputRef", "label", "labelPlacement", "name", "onChange", "value"];
@@ -45,10 +47,11 @@ const useUtilityClasses = ownerState => {
45
47
  const {
46
48
  classes,
47
49
  disabled,
48
- labelPlacement
50
+ labelPlacement,
51
+ error
49
52
  } = ownerState;
50
53
  const slots = {
51
- root: ['root', disabled && 'disabled', `labelPlacement${(0, _capitalize.default)(labelPlacement)}`],
54
+ root: ['root', disabled && 'disabled', `labelPlacement${(0, _capitalize.default)(labelPlacement)}`, error && 'error'],
52
55
  label: ['label', disabled && 'disabled']
53
56
  };
54
57
  return (0, _base.unstable_composeClasses)(slots, _formControlLabelClasses.getFormControlLabelUtilityClasses, classes);
@@ -139,10 +142,16 @@ const FormControlLabel = /*#__PURE__*/React.forwardRef(function FormControlLabel
139
142
  controlProps[key] = props[key];
140
143
  }
141
144
  });
145
+ const fcs = (0, _formControlState.default)({
146
+ props,
147
+ muiFormControl,
148
+ states: ['error']
149
+ });
142
150
  const ownerState = (0, _extends2.default)({}, props, {
143
151
  disabled,
144
152
  label,
145
- labelPlacement
153
+ labelPlacement,
154
+ error: fcs.error
146
155
  });
147
156
  const classes = useUtilityClasses(ownerState);
148
157
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(FormControlLabelRoot, (0, _extends2.default)({
@@ -185,7 +194,9 @@ process.env.NODE_ENV !== "production" ? FormControlLabel.propTypes
185
194
  * The props used for each slot inside.
186
195
  * @default {}
187
196
  */
188
- componentsProps: _propTypes.default.object,
197
+ componentsProps: _propTypes.default.shape({
198
+ typography: _propTypes.default.object
199
+ }),
189
200
 
190
201
  /**
191
202
  * A control element. For instance, it can be a `Radio`, a `Switch` or a `Checkbox`.
@@ -12,6 +12,6 @@ function getFormControlLabelUtilityClasses(slot) {
12
12
  return (0, _base.generateUtilityClass)('MuiFormControlLabel', slot);
13
13
  }
14
14
 
15
- const formControlLabelClasses = (0, _base.generateUtilityClasses)('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label']);
15
+ const formControlLabelClasses = (0, _base.generateUtilityClasses)('MuiFormControlLabel', ['root', 'labelPlacementStart', 'labelPlacementTop', 'labelPlacementBottom', 'disabled', 'label', 'error']);
16
16
  var _default = formControlLabelClasses;
17
17
  exports.default = _default;
@@ -25,6 +25,10 @@ var _useThemeProps = _interopRequireDefault(require("../styles/useThemeProps"));
25
25
 
26
26
  var _formGroupClasses = require("./formGroupClasses");
27
27
 
28
+ var _useFormControl = _interopRequireDefault(require("../FormControl/useFormControl"));
29
+
30
+ var _formControlState = _interopRequireDefault(require("../FormControl/formControlState"));
31
+
28
32
  var _jsxRuntime = require("react/jsx-runtime");
29
33
 
30
34
  const _excluded = ["className", "row"];
@@ -36,10 +40,11 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
36
40
  const useUtilityClasses = ownerState => {
37
41
  const {
38
42
  classes,
39
- row
43
+ row,
44
+ error
40
45
  } = ownerState;
41
46
  const slots = {
42
- root: ['root', row && 'row']
47
+ root: ['root', row && 'row', error && 'error']
43
48
  };
44
49
  return (0, _base.unstable_composeClasses)(slots, _formGroupClasses.getFormGroupUtilityClass, classes);
45
50
  };
@@ -78,8 +83,15 @@ const FormGroup = /*#__PURE__*/React.forwardRef(function FormGroup(inProps, ref)
78
83
  row = false
79
84
  } = props,
80
85
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
86
+ const muiFormControl = (0, _useFormControl.default)();
87
+ const fcs = (0, _formControlState.default)({
88
+ props,
89
+ muiFormControl,
90
+ states: ['error']
91
+ });
81
92
  const ownerState = (0, _extends2.default)({}, props, {
82
- row
93
+ row,
94
+ error: fcs.error
83
95
  });
84
96
  const classes = useUtilityClasses(ownerState);
85
97
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(FormGroupRoot, (0, _extends2.default)({
@@ -12,6 +12,6 @@ function getFormGroupUtilityClass(slot) {
12
12
  return (0, _base.generateUtilityClass)('MuiFormGroup', slot);
13
13
  }
14
14
 
15
- const formGroupClasses = (0, _base.generateUtilityClasses)('MuiFormGroup', ['root', 'row']);
15
+ const formGroupClasses = (0, _base.generateUtilityClasses)('MuiFormGroup', ['root', 'row', 'error']);
16
16
  var _default = formGroupClasses;
17
17
  exports.default = _default;
@@ -33,6 +33,8 @@ var _useThemeProps = _interopRequireDefault(require("../styles/useThemeProps"));
33
33
 
34
34
  var _jsxRuntime = require("react/jsx-runtime");
35
35
 
36
+ var _span;
37
+
36
38
  const _excluded = ["children", "className", "component", "disabled", "error", "filled", "focused", "margin", "required", "variant"];
37
39
 
38
40
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -123,16 +125,11 @@ const FormHelperText = /*#__PURE__*/React.forwardRef(function FormHelperText(inP
123
125
  className: (0, _clsx.default)(classes.root, className),
124
126
  ref: ref
125
127
  }, other, {
126
- children: children === ' ' ?
127
- /*#__PURE__*/
128
- // notranslate needed while Google Translate will not fix zero-width space issue
129
- // eslint-disable-next-line react/no-danger
130
- (0, _jsxRuntime.jsx)("span", {
128
+ children: children === ' ' ? // notranslate needed while Google Translate will not fix zero-width space issue
129
+ _span || (_span = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
131
130
  className: "notranslate",
132
- dangerouslySetInnerHTML: {
133
- __html: '​'
134
- }
135
- }) : children
131
+ children: "\u200B"
132
+ })) : children
136
133
  }));
137
134
  });
138
135
  process.env.NODE_ENV !== "production" ? FormHelperText.propTypes
package/node/Grid/Grid.js CHANGED
@@ -286,10 +286,8 @@ const GridRoot = (0, _styled.default)('div', {
286
286
 
287
287
  }, ownerState.zeroMinWidth && {
288
288
  minWidth: 0
289
- }, ownerState.wrap === 'nowrap' && {
290
- flexWrap: 'nowrap'
291
- }, ownerState.wrap === 'reverse' && {
292
- flexWrap: 'wrap-reverse'
289
+ }, ownerState.wrap !== 'wrap' && {
290
+ flexWrap: ownerState.wrap
293
291
  }), generateDirection, generateRowGap, generateColumnGap, generateGrid);
294
292
 
295
293
  const useUtilityClasses = ownerState => {
@@ -215,7 +215,10 @@ process.env.NODE_ENV !== "production" ? Input.propTypes
215
215
  * The props used for each slot inside the Input.
216
216
  * @default {}
217
217
  */
218
- componentsProps: _propTypes.default.object,
218
+ componentsProps: _propTypes.default.shape({
219
+ input: _propTypes.default.object,
220
+ root: _propTypes.default.object
221
+ }),
219
222
 
220
223
  /**
221
224
  * The default value. Use when the component is not controlled.
@@ -35,6 +35,8 @@ var _useThemeProps = _interopRequireDefault(require("../styles/useThemeProps"));
35
35
 
36
36
  var _jsxRuntime = require("react/jsx-runtime");
37
37
 
38
+ var _span;
39
+
38
40
  const _excluded = ["children", "className", "component", "disablePointerEvents", "disableTypography", "position", "variant"];
39
41
 
40
42
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -144,17 +146,11 @@ const InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inP
144
146
  children: children
145
147
  }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
146
148
  children: [position === 'start' ?
147
- /*#__PURE__*/
148
-
149
149
  /* notranslate needed while Google Translate will not fix zero-width space issue */
150
-
151
- /* eslint-disable-next-line react/no-danger */
152
- (0, _jsxRuntime.jsx)("span", {
150
+ _span || (_span = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
153
151
  className: "notranslate",
154
- dangerouslySetInnerHTML: {
155
- __html: '​'
156
- }
157
- }) : null, children]
152
+ children: "\u200B"
153
+ })) : null, children]
158
154
  })
159
155
  }))
160
156
  });
@@ -584,7 +584,10 @@ process.env.NODE_ENV !== "production" ? InputBase.propTypes
584
584
  * The props used for each slot inside the Input.
585
585
  * @default {}
586
586
  */
587
- componentsProps: _propTypes.default.object,
587
+ componentsProps: _propTypes.default.shape({
588
+ input: _propTypes.default.object,
589
+ root: _propTypes.default.object
590
+ }),
588
591
 
589
592
  /**
590
593
  * The default value. Use when the component is not controlled.
@@ -107,6 +107,8 @@ const InputLabelRoot = (0, _styled.default)(_FormLabel.default, {
107
107
  }, ownerState.size === 'small' && {
108
108
  transform: 'translate(12px, 13px) scale(1)'
109
109
  }, ownerState.shrink && (0, _extends2.default)({
110
+ userSelect: 'none',
111
+ pointerEvents: 'auto',
110
112
  transform: 'translate(12px, 7px) scale(0.75)',
111
113
  maxWidth: 'calc(133% - 24px)'
112
114
  }, ownerState.size === 'small' && {
@@ -120,6 +122,8 @@ const InputLabelRoot = (0, _styled.default)(_FormLabel.default, {
120
122
  }, ownerState.size === 'small' && {
121
123
  transform: 'translate(14px, 9px) scale(1)'
122
124
  }, ownerState.shrink && {
125
+ userSelect: 'none',
126
+ pointerEvents: 'auto',
123
127
  maxWidth: 'calc(133% - 24px)',
124
128
  transform: 'translate(14px, -9px) scale(0.75)'
125
129
  })));
@@ -375,7 +375,9 @@ process.env.NODE_ENV !== "production" ? ListItem.propTypes
375
375
  * The props used for each slot inside the Input.
376
376
  * @default {}
377
377
  */
378
- componentsProps: _propTypes.default.object,
378
+ componentsProps: _propTypes.default.shape({
379
+ root: _propTypes.default.object
380
+ }),
379
381
 
380
382
  /**
381
383
  * The container component used when a `ListItemSecondaryAction` is the last child.
@@ -201,7 +201,9 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes
201
201
  * The props used for each slot inside the Modal.
202
202
  * @default {}
203
203
  */
204
- componentsProps: _propTypes.default.object,
204
+ componentsProps: _propTypes.default.shape({
205
+ root: _propTypes.default.object
206
+ }),
205
207
 
206
208
  /**
207
209
  * An HTML element or function that returns one.
@@ -19,6 +19,8 @@ var _styled = _interopRequireDefault(require("../styles/styled"));
19
19
 
20
20
  var _jsxRuntime = require("react/jsx-runtime");
21
21
 
22
+ var _span;
23
+
22
24
  const _excluded = ["children", "classes", "className", "label", "notched"];
23
25
 
24
26
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -41,14 +43,12 @@ const NotchedOutlineRoot = (0, _styled.default)('fieldset')({
41
43
  overflow: 'hidden',
42
44
  minWidth: '0%'
43
45
  });
44
- const NotchedOutlineLegend = (0, _styled.default)('legend', {
45
- skipSx: true
46
- })(({
46
+ const NotchedOutlineLegend = (0, _styled.default)('legend')(({
47
47
  ownerState,
48
48
  theme
49
49
  }) => (0, _extends2.default)({
50
50
  float: 'unset'
51
- }, ownerState.label === undefined && {
51
+ }, !ownerState.withLabel && {
52
52
  padding: 0,
53
53
  lineHeight: '11px',
54
54
  // sync with `height` in `legend` styles
@@ -56,7 +56,7 @@ const NotchedOutlineLegend = (0, _styled.default)('legend', {
56
56
  duration: 150,
57
57
  easing: theme.transitions.easing.easeOut
58
58
  })
59
- }, ownerState.label !== undefined && (0, _extends2.default)({
59
+ }, ownerState.withLabel && (0, _extends2.default)({
60
60
  display: 'block',
61
61
  // Fix conflict with normalize.css and sanitize.css
62
62
  width: 'auto',
@@ -96,9 +96,10 @@ function NotchedOutline(props) {
96
96
  notched
97
97
  } = props,
98
98
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
99
+ const withLabel = label != null && label !== '';
99
100
  const ownerState = (0, _extends2.default)({}, props, {
100
101
  notched,
101
- label
102
+ withLabel
102
103
  });
103
104
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(NotchedOutlineRoot, (0, _extends2.default)({
104
105
  "aria-hidden": true,
@@ -107,18 +108,13 @@ function NotchedOutline(props) {
107
108
  }, other, {
108
109
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(NotchedOutlineLegend, {
109
110
  ownerState: ownerState,
110
- children: label ? /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
111
+ children: withLabel ? /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
111
112
  children: label
112
- }) :
113
- /*#__PURE__*/
114
- // notranslate needed while Google Translate will not fix zero-width space issue
115
- // eslint-disable-next-line react/no-danger
116
- (0, _jsxRuntime.jsx)("span", {
113
+ }) : // notranslate needed while Google Translate will not fix zero-width space issue
114
+ _span || (_span = /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
117
115
  className: "notranslate",
118
- dangerouslySetInnerHTML: {
119
- __html: '​'
120
- }
121
- })
116
+ children: "\u200B"
117
+ }))
122
118
  })
123
119
  }));
124
120
  }
@@ -160,7 +160,7 @@ const OutlinedInput = /*#__PURE__*/React.forwardRef(function OutlinedInput(inPro
160
160
  }, components),
161
161
  renderSuffix: state => /*#__PURE__*/(0, _jsxRuntime.jsx)(NotchedOutlineRoot, {
162
162
  className: classes.notchedOutline,
163
- label: label && fcs.required ? _React$Fragment || (_React$Fragment = /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
163
+ label: label != null && label !== '' && fcs.required ? _React$Fragment || (_React$Fragment = /*#__PURE__*/(0, _jsxRuntime.jsxs)(React.Fragment, {
164
164
  children: [label, "\xA0", '*']
165
165
  })) : label,
166
166
  notched: typeof notched !== 'undefined' ? notched : Boolean(state.startAdornment || state.filled || state.focused)
@@ -29,15 +29,11 @@ const RadioButtonIconRoot = (0, _styled.default)('span')({
29
29
  position: 'relative',
30
30
  display: 'flex'
31
31
  });
32
- const RadioButtonIconBackground = (0, _styled.default)(_RadioButtonUnchecked.default, {
33
- skipSx: true
34
- })({
32
+ const RadioButtonIconBackground = (0, _styled.default)(_RadioButtonUnchecked.default)({
35
33
  // Scale applied to prevent dot misalignment in Safari
36
34
  transform: 'scale(1)'
37
35
  });
38
- const RadioButtonIconDot = (0, _styled.default)(_RadioButtonChecked.default, {
39
- skipSx: true
40
- })(({
36
+ const RadioButtonIconDot = (0, _styled.default)(_RadioButtonChecked.default)(({
41
37
  theme,
42
38
  ownerState
43
39
  }) => (0, _extends2.default)({
@@ -43,7 +43,7 @@ var _jsxRuntime = require("react/jsx-runtime");
43
43
 
44
44
  var _Input, _FilledInput;
45
45
 
46
- const _excluded = ["autoWidth", "children", "classes", "className", "displayEmpty", "IconComponent", "id", "input", "inputProps", "label", "labelId", "MenuProps", "multiple", "native", "onClose", "onOpen", "open", "renderValue", "SelectDisplayProps", "variant"];
46
+ const _excluded = ["autoWidth", "children", "classes", "className", "defaultOpen", "displayEmpty", "IconComponent", "id", "input", "inputProps", "label", "labelId", "MenuProps", "multiple", "native", "onClose", "onOpen", "open", "renderValue", "SelectDisplayProps", "variant"];
47
47
 
48
48
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
49
49
 
@@ -66,6 +66,7 @@ const Select = /*#__PURE__*/React.forwardRef(function Select(inProps, ref) {
66
66
  children,
67
67
  classes: classesProp = {},
68
68
  className,
69
+ defaultOpen = false,
69
70
  displayEmpty = false,
70
71
  IconComponent = _ArrowDropDown.default,
71
72
  id,
@@ -119,6 +120,7 @@ const Select = /*#__PURE__*/React.forwardRef(function Select(inProps, ref) {
119
120
  id
120
121
  } : {
121
122
  autoWidth,
123
+ defaultOpen,
122
124
  displayEmpty,
123
125
  labelId,
124
126
  MenuProps,
@@ -173,6 +175,13 @@ process.env.NODE_ENV !== "production" ? Select.propTypes
173
175
  */
174
176
  className: _propTypes.default.string,
175
177
 
178
+ /**
179
+ * If `true`, the component is initially open. Use when the component open state is not controlled (i.e. the `open` prop is not defined).
180
+ * You can only use it when the `native` prop is `false` (default).
181
+ * @default false
182
+ */
183
+ defaultOpen: _propTypes.default.bool,
184
+
176
185
  /**
177
186
  * The default value. Use when the component is not controlled.
178
187
  */