@mui/material 5.2.5 → 5.3.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 (99) hide show
  1. package/Autocomplete/Autocomplete.d.ts +2 -0
  2. package/Autocomplete/Autocomplete.js +10 -6
  3. package/Avatar/Avatar.d.ts +3 -1
  4. package/Backdrop/Backdrop.js +3 -1
  5. package/Badge/Badge.d.ts +25 -0
  6. package/Badge/Badge.js +31 -15
  7. package/ButtonGroup/ButtonGroupContext.d.ts +1 -1
  8. package/CHANGELOG.md +245 -32
  9. package/FilledInput/FilledInput.js +4 -1
  10. package/FormControlLabel/FormControlLabel.js +3 -1
  11. package/Input/Input.js +4 -1
  12. package/InputBase/InputBase.js +4 -1
  13. package/InputLabel/InputLabel.js +4 -0
  14. package/ListItem/ListItem.js +3 -1
  15. package/Modal/Modal.js +3 -1
  16. package/README.md +19 -24
  17. package/Select/Select.d.ts +9 -1
  18. package/Select/Select.js +10 -1
  19. package/Select/SelectInput.d.ts +1 -0
  20. package/Select/SelectInput.js +25 -4
  21. package/Slider/Slider.d.ts +2 -0
  22. package/Slider/Slider.js +126 -53
  23. package/StepLabel/StepLabel.js +3 -1
  24. package/SvgIcon/SvgIcon.d.ts +8 -0
  25. package/SvgIcon/SvgIcon.js +19 -3
  26. package/TextField/TextField.d.ts +1 -0
  27. package/TextField/TextField.js +1 -0
  28. package/Tooltip/Tooltip.js +6 -1
  29. package/index.js +1 -1
  30. package/legacy/Autocomplete/Autocomplete.js +10 -6
  31. package/legacy/Backdrop/Backdrop.js +3 -1
  32. package/legacy/Badge/Badge.js +36 -16
  33. package/legacy/FilledInput/FilledInput.js +4 -1
  34. package/legacy/FormControlLabel/FormControlLabel.js +3 -1
  35. package/legacy/Input/Input.js +4 -1
  36. package/legacy/InputBase/InputBase.js +4 -1
  37. package/legacy/InputLabel/InputLabel.js +4 -0
  38. package/legacy/ListItem/ListItem.js +3 -1
  39. package/legacy/Modal/Modal.js +3 -1
  40. package/legacy/Select/Select.js +11 -1
  41. package/legacy/Select/SelectInput.js +29 -7
  42. package/legacy/Slider/Slider.js +127 -54
  43. package/legacy/StepLabel/StepLabel.js +3 -1
  44. package/legacy/SvgIcon/SvgIcon.js +20 -3
  45. package/legacy/TextField/TextField.js +1 -0
  46. package/legacy/Tooltip/Tooltip.js +6 -1
  47. package/legacy/index.js +1 -1
  48. package/legacy/locale/index.js +224 -130
  49. package/legacy/utils/shouldSpreadAdditionalProps.js +7 -0
  50. package/locale/index.d.ts +1 -0
  51. package/locale/index.js +140 -50
  52. package/modern/Autocomplete/Autocomplete.js +9 -5
  53. package/modern/Backdrop/Backdrop.js +3 -1
  54. package/modern/Badge/Badge.js +31 -15
  55. package/modern/FilledInput/FilledInput.js +4 -1
  56. package/modern/FormControlLabel/FormControlLabel.js +3 -1
  57. package/modern/Input/Input.js +4 -1
  58. package/modern/InputBase/InputBase.js +4 -1
  59. package/modern/InputLabel/InputLabel.js +4 -0
  60. package/modern/ListItem/ListItem.js +3 -1
  61. package/modern/Modal/Modal.js +3 -1
  62. package/modern/Select/Select.js +10 -1
  63. package/modern/Select/SelectInput.js +25 -4
  64. package/modern/Slider/Slider.js +126 -53
  65. package/modern/StepLabel/StepLabel.js +3 -1
  66. package/modern/SvgIcon/SvgIcon.js +19 -3
  67. package/modern/TextField/TextField.js +1 -0
  68. package/modern/Tooltip/Tooltip.js +6 -1
  69. package/modern/index.js +1 -1
  70. package/modern/locale/index.js +140 -50
  71. package/modern/utils/shouldSpreadAdditionalProps.js +7 -0
  72. package/node/Autocomplete/Autocomplete.js +10 -6
  73. package/node/Backdrop/Backdrop.js +3 -1
  74. package/node/Badge/Badge.js +33 -16
  75. package/node/FilledInput/FilledInput.js +4 -1
  76. package/node/FormControlLabel/FormControlLabel.js +3 -1
  77. package/node/Input/Input.js +4 -1
  78. package/node/InputBase/InputBase.js +4 -1
  79. package/node/InputLabel/InputLabel.js +4 -0
  80. package/node/ListItem/ListItem.js +3 -1
  81. package/node/Modal/Modal.js +3 -1
  82. package/node/Select/Select.js +10 -1
  83. package/node/Select/SelectInput.js +25 -4
  84. package/node/Slider/Slider.js +112 -45
  85. package/node/StepLabel/StepLabel.js +3 -1
  86. package/node/SvgIcon/SvgIcon.js +19 -3
  87. package/node/TextField/TextField.js +1 -0
  88. package/node/Tooltip/Tooltip.js +6 -1
  89. package/node/index.js +1 -1
  90. package/node/locale/index.js +142 -51
  91. package/node/utils/shouldSpreadAdditionalProps.js +15 -0
  92. package/package.json +7 -7
  93. package/styles/components.d.ts +452 -113
  94. package/styles/createTheme.d.ts +12 -6
  95. package/styles/overrides.d.ts +16 -4
  96. package/styles/useThemeProps.d.ts +2 -1
  97. package/umd/material-ui.development.js +703 -332
  98. package/umd/material-ui.production.min.js +21 -21
  99. package/utils/shouldSpreadAdditionalProps.js +7 -0
@@ -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,
@@ -607,10 +607,11 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
607
607
  role: "presentation",
608
608
  anchorEl: anchorEl,
609
609
  open: true,
610
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(AutocompletePaper, {
611
- as: PaperComponent,
612
- className: classes.paper,
610
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(AutocompletePaper, (0, _extends2.default)({
613
611
  ownerState: ownerState,
612
+ as: PaperComponent
613
+ }, componentsProps.paper, {
614
+ className: (0, _clsx.default)(classes.paper, (_componentsProps$pape = componentsProps.paper) == null ? void 0 : _componentsProps$pape.className),
614
615
  children: [loading && groupedOptions.length === 0 ? /*#__PURE__*/(0, _jsxRuntime.jsx)(AutocompleteLoading, {
615
616
  className: classes.loading,
616
617
  ownerState: ownerState,
@@ -641,7 +642,7 @@ const Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps
641
642
  return renderListOption(option, index);
642
643
  })
643
644
  })) : null]
644
- })
645
+ }))
645
646
  }) : null]
646
647
  });
647
648
  });
@@ -742,7 +743,10 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes
742
743
  * The props used for each slot inside.
743
744
  * @default {}
744
745
  */
745
- componentsProps: _propTypes.default.object,
746
+ componentsProps: _propTypes.default.shape({
747
+ clearIndicator: _propTypes.default.object,
748
+ paper: _propTypes.default.object
749
+ }),
746
750
 
747
751
  /**
748
752
  * The default value. Use when the component is not controlled.
@@ -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,17 +27,20 @@ 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");
33
35
 
34
- const _excluded = ["component", "components", "componentsProps", "color", "invisible", "badgeContent", "showZero", "variant"];
36
+ const _excluded = ["anchorOrigin", "component", "components", "componentsProps", "overlap", "color", "invisible", "badgeContent", "showZero", "variant"];
35
37
 
36
38
  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); }
37
39
 
38
40
  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; }
39
41
 
40
- const badgeClasses = (0, _extends2.default)({}, _BadgeUnstyled.badgeUnstyledClasses, (0, _base.generateUtilityClasses)('MuiBadge', ['colorError', 'colorInfo', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorWarning']));
42
+ const badgeClasses = (0, _extends2.default)({}, _BadgeUnstyled.badgeUnstyledClasses, (0, _base.generateUtilityClasses)('MuiBadge', ['colorError', 'colorInfo', 'colorPrimary', 'colorSecondary', 'colorSuccess', 'colorWarning', 'overlapRectangular', 'overlapCircular', // TODO: v6 remove the overlap value from these class keys
43
+ 'anchorOriginTopLeftCircular', 'anchorOriginTopLeftRectangular', 'anchorOriginTopRightCircular', 'anchorOriginTopRightRectangular', 'anchorOriginBottomLeftCircular', 'anchorOriginBottomLeftRectangular', 'anchorOriginBottomRightCircular', 'anchorOriginBottomRightRectangular']));
41
44
  exports.badgeClasses = badgeClasses;
42
45
  const RADIUS_STANDARD = 10;
43
46
  const RADIUS_DOT = 4;
@@ -45,10 +48,12 @@ const RADIUS_DOT = 4;
45
48
  const extendUtilityClasses = ownerState => {
46
49
  const {
47
50
  color,
51
+ anchorOrigin,
52
+ overlap,
48
53
  classes = {}
49
54
  } = ownerState;
50
55
  return (0, _extends2.default)({}, classes, {
51
- badge: (0, _clsx.default)(classes.badge, color !== 'default' && [(0, _BadgeUnstyled.getBadgeUtilityClass)(`color${(0, _capitalize.default)(color)}`), classes[`color${(0, _capitalize.default)(color)}`]])
56
+ badge: (0, _clsx.default)(classes.badge, (0, _BadgeUnstyled.getBadgeUtilityClass)(`anchorOrigin${(0, _capitalize.default)(anchorOrigin.vertical)}${(0, _capitalize.default)(anchorOrigin.horizontal)}${(0, _capitalize.default)(overlap)}`), (0, _BadgeUnstyled.getBadgeUtilityClass)(`overlap${(0, _capitalize.default)(overlap)}`), color !== 'default' && [(0, _BadgeUnstyled.getBadgeUtilityClass)(`color${(0, _capitalize.default)(color)}`), classes[`color${(0, _capitalize.default)(color)}`]])
52
57
  });
53
58
  };
54
59
 
@@ -176,11 +181,6 @@ const BadgeBadge = (0, _styled.default)('span', {
176
181
  duration: theme.transitions.duration.leavingScreen
177
182
  })
178
183
  }));
179
-
180
- const shouldSpreadAdditionalProps = Slot => {
181
- return !Slot || !(0, _base.isHostComponent)(Slot);
182
- };
183
-
184
184
  const Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
185
185
  var _componentsProps$root, _componentsProps$badg;
186
186
 
@@ -189,9 +189,14 @@ const Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
189
189
  name: 'MuiBadge'
190
190
  });
191
191
  const {
192
+ anchorOrigin: anchorOriginProp = {
193
+ vertical: 'top',
194
+ horizontal: 'right'
195
+ },
192
196
  component = 'span',
193
197
  components = {},
194
198
  componentsProps = {},
199
+ overlap: overlapProp = 'rectangular',
195
200
  color: colorProp = 'default',
196
201
  invisible: invisibleProp,
197
202
  badgeContent: badgeContentProp,
@@ -200,7 +205,9 @@ const Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
200
205
  } = props,
201
206
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
202
207
  const prevProps = (0, _utils.usePreviousProps)({
203
- color: colorProp
208
+ anchorOrigin: anchorOriginProp,
209
+ color: colorProp,
210
+ overlap: overlapProp
204
211
  });
205
212
  let invisible = invisibleProp;
206
213
 
@@ -209,14 +216,19 @@ const Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
209
216
  }
210
217
 
211
218
  const {
212
- color = colorProp
219
+ color = colorProp,
220
+ overlap = overlapProp,
221
+ anchorOrigin = anchorOriginProp
213
222
  } = invisible ? prevProps : props;
214
223
  const ownerState = (0, _extends2.default)({}, props, {
224
+ anchorOrigin,
215
225
  invisible,
216
- color
226
+ color,
227
+ overlap
217
228
  });
218
229
  const classes = extendUtilityClasses(ownerState);
219
230
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_BadgeUnstyled.default, (0, _extends2.default)({
231
+ anchorOrigin: anchorOrigin,
220
232
  invisible: invisibleProp,
221
233
  badgeContent: badgeContentProp,
222
234
  showZero: showZero,
@@ -227,15 +239,17 @@ const Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
227
239
  Badge: BadgeBadge
228
240
  }, components),
229
241
  componentsProps: {
230
- root: (0, _extends2.default)({}, componentsProps.root, shouldSpreadAdditionalProps(components.Root) && {
242
+ root: (0, _extends2.default)({}, componentsProps.root, (0, _shouldSpreadAdditionalProps.default)(components.Root) && {
231
243
  as: component,
232
244
  ownerState: (0, _extends2.default)({}, (_componentsProps$root = componentsProps.root) == null ? void 0 : _componentsProps$root.ownerState, {
233
- color
245
+ color,
246
+ overlap
234
247
  })
235
248
  }),
236
- badge: (0, _extends2.default)({}, componentsProps.badge, shouldSpreadAdditionalProps(components.Badge) && {
249
+ badge: (0, _extends2.default)({}, componentsProps.badge, (0, _shouldSpreadAdditionalProps.default)(components.Badge) && {
237
250
  ownerState: (0, _extends2.default)({}, (_componentsProps$badg = componentsProps.badge) == null ? void 0 : _componentsProps$badg.ownerState, {
238
- color
251
+ color,
252
+ overlap
239
253
  })
240
254
  })
241
255
  },
@@ -306,7 +320,10 @@ process.env.NODE_ENV !== "production" ? Badge.propTypes
306
320
  * The props used for each slot inside the Badge.
307
321
  * @default {}
308
322
  */
309
- componentsProps: _propTypes.default.object,
323
+ componentsProps: _propTypes.default.shape({
324
+ badge: _propTypes.default.object,
325
+ root: _propTypes.default.object
326
+ }),
310
327
 
311
328
  /**
312
329
  * If `true`, the badge is invisible.
@@ -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.
@@ -185,7 +185,9 @@ process.env.NODE_ENV !== "production" ? FormControlLabel.propTypes
185
185
  * The props used for each slot inside.
186
186
  * @default {}
187
187
  */
188
- componentsProps: _propTypes.default.object,
188
+ componentsProps: _propTypes.default.shape({
189
+ typography: _propTypes.default.object
190
+ }),
189
191
 
190
192
  /**
191
193
  * A control element. For instance, it can be a `Radio`, a `Switch` or a `Checkbox`.
@@ -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.
@@ -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.
@@ -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
  */
@@ -43,7 +43,7 @@ var _selectClasses = _interopRequireWildcard(require("./selectClasses"));
43
43
 
44
44
  var _jsxRuntime = require("react/jsx-runtime");
45
45
 
46
- const _excluded = ["aria-describedby", "aria-label", "autoFocus", "autoWidth", "children", "className", "defaultValue", "disabled", "displayEmpty", "IconComponent", "inputRef", "labelId", "MenuProps", "multiple", "name", "onBlur", "onChange", "onClose", "onFocus", "onOpen", "open", "readOnly", "renderValue", "SelectDisplayProps", "tabIndex", "type", "value", "variant"];
46
+ 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"];
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
 
@@ -143,6 +143,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
143
143
  autoWidth,
144
144
  children,
145
145
  className,
146
+ defaultOpen,
146
147
  defaultValue,
147
148
  disabled,
148
149
  displayEmpty,
@@ -171,6 +172,11 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
171
172
  default: defaultValue,
172
173
  name: 'Select'
173
174
  });
175
+ const [openState, setOpenState] = (0, _useControlled.default)({
176
+ controlled: openProp,
177
+ default: defaultOpen,
178
+ name: 'Select'
179
+ });
174
180
  const inputRef = React.useRef(null);
175
181
  const displayRef = React.useRef(null);
176
182
  const [displayNode, setDisplayNode] = React.useState(null);
@@ -178,7 +184,6 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
178
184
  current: isOpenControlled
179
185
  } = React.useRef(openProp != null);
180
186
  const [menuMinWidthState, setMenuMinWidthState] = React.useState();
181
- const [openState, setOpenState] = React.useState(false);
182
187
  const handleRef = (0, _useForkRef.default)(ref, inputRefProp);
183
188
  const handleDisplayRef = React.useCallback(node => {
184
189
  displayRef.current = node;
@@ -193,7 +198,17 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
193
198
  },
194
199
  node: inputRef.current,
195
200
  value
196
- }), [value]);
201
+ }), [value]); // Resize menu on `defaultOpen` automatic toggle.
202
+
203
+ React.useEffect(() => {
204
+ if (defaultOpen && openState && displayNode && !isOpenControlled) {
205
+ setMenuMinWidthState(autoWidth ? null : displayNode.clientWidth);
206
+ displayRef.current.focus();
207
+ } // eslint-disable-next-line react-hooks/exhaustive-deps
208
+
209
+ }, [displayNode, autoWidth]); // `isOpenControlled` is ignored because the component should never switch between controlled and uncontrolled modes.
210
+ // `defaultOpen` and `openState` are ignored to avoid unnecessary callbacks.
211
+
197
212
  React.useEffect(() => {
198
213
  if (autoFocus) {
199
214
  displayRef.current.focus();
@@ -329,7 +344,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
329
344
  }
330
345
  };
331
346
 
332
- const open = displayNode !== null && (isOpenControlled ? openProp : openState);
347
+ const open = displayNode !== null && openState;
333
348
 
334
349
  const handleBlur = event => {
335
350
  // if open event.stopImmediatePropagation
@@ -586,6 +601,12 @@ process.env.NODE_ENV !== "production" ? SelectInput.propTypes = {
586
601
  */
587
602
  className: _propTypes.default.string,
588
603
 
604
+ /**
605
+ * If `true`, the component is toggled on mount. Use when the component open state is not controlled.
606
+ * You can only use it when the `native` prop is `false` (default).
607
+ */
608
+ defaultOpen: _propTypes.default.bool,
609
+
589
610
  /**
590
611
  * The default value. Use when the component is not controlled.
591
612
  */
@@ -31,11 +31,13 @@ var _styled = _interopRequireWildcard(require("../styles/styled"));
31
31
 
32
32
  var _useTheme = _interopRequireDefault(require("../styles/useTheme"));
33
33
 
34
+ var _shouldSpreadAdditionalProps = _interopRequireDefault(require("../utils/shouldSpreadAdditionalProps"));
35
+
34
36
  var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
35
37
 
36
38
  var _jsxRuntime = require("react/jsx-runtime");
37
39
 
38
- const _excluded = ["components", "componentsProps", "color", "size"];
40
+ const _excluded = ["component", "components", "componentsProps", "color", "size"];
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); }
41
43
 
@@ -110,6 +112,19 @@ const SliderRoot = (0, _styled.default)('span', {
110
112
  }
111
113
  }));
112
114
  exports.SliderRoot = SliderRoot;
115
+ process.env.NODE_ENV !== "production" ? SliderRoot.propTypes
116
+ /* remove-proptypes */
117
+ = {
118
+ // ----------------------------- Warning --------------------------------
119
+ // | These PropTypes are generated from the TypeScript type definitions |
120
+ // | To update them edit the d.ts file and run "yarn proptypes" |
121
+ // ----------------------------------------------------------------------
122
+
123
+ /**
124
+ * @ignore
125
+ */
126
+ children: _propTypes.default.node
127
+ } : void 0;
113
128
  const SliderRail = (0, _styled.default)('span', {
114
129
  name: 'MuiSlider',
115
130
  slot: 'Rail',
@@ -136,6 +151,19 @@ const SliderRail = (0, _styled.default)('span', {
136
151
  opacity: 1
137
152
  }));
138
153
  exports.SliderRail = SliderRail;
154
+ process.env.NODE_ENV !== "production" ? SliderRail.propTypes
155
+ /* remove-proptypes */
156
+ = {
157
+ // ----------------------------- Warning --------------------------------
158
+ // | These PropTypes are generated from the TypeScript type definitions |
159
+ // | To update them edit the d.ts file and run "yarn proptypes" |
160
+ // ----------------------------------------------------------------------
161
+
162
+ /**
163
+ * @ignore
164
+ */
165
+ children: _propTypes.default.node
166
+ } : void 0;
139
167
  const SliderTrack = (0, _styled.default)('span', {
140
168
  name: 'MuiSlider',
141
169
  slot: 'Track',
@@ -173,6 +201,19 @@ const SliderTrack = (0, _styled.default)('span', {
173
201
  });
174
202
  });
175
203
  exports.SliderTrack = SliderTrack;
204
+ process.env.NODE_ENV !== "production" ? SliderTrack.propTypes
205
+ /* remove-proptypes */
206
+ = {
207
+ // ----------------------------- Warning --------------------------------
208
+ // | These PropTypes are generated from the TypeScript type definitions |
209
+ // | To update them edit the d.ts file and run "yarn proptypes" |
210
+ // ----------------------------------------------------------------------
211
+
212
+ /**
213
+ * @ignore
214
+ */
215
+ children: _propTypes.default.node
216
+ } : void 0;
176
217
  const SliderThumb = (0, _styled.default)('span', {
177
218
  name: 'MuiSlider',
178
219
  slot: 'Thumb',
@@ -246,6 +287,19 @@ const SliderThumb = (0, _styled.default)('span', {
246
287
  }
247
288
  }));
248
289
  exports.SliderThumb = SliderThumb;
290
+ process.env.NODE_ENV !== "production" ? SliderThumb.propTypes
291
+ /* remove-proptypes */
292
+ = {
293
+ // ----------------------------- Warning --------------------------------
294
+ // | These PropTypes are generated from the TypeScript type definitions |
295
+ // | To update them edit the d.ts file and run "yarn proptypes" |
296
+ // ----------------------------------------------------------------------
297
+
298
+ /**
299
+ * @ignore
300
+ */
301
+ children: _propTypes.default.node
302
+ } : void 0;
249
303
  const SliderValueLabel = (0, _styled.default)(_SliderUnstyled.SliderValueLabelUnstyled, {
250
304
  name: 'MuiSlider',
251
305
  slot: 'ValueLabel',
@@ -291,6 +345,19 @@ const SliderValueLabel = (0, _styled.default)(_SliderUnstyled.SliderValueLabelUn
291
345
  }
292
346
  }));
293
347
  exports.SliderValueLabel = SliderValueLabel;
348
+ process.env.NODE_ENV !== "production" ? SliderValueLabel.propTypes
349
+ /* remove-proptypes */
350
+ = {
351
+ // ----------------------------- Warning --------------------------------
352
+ // | These PropTypes are generated from the TypeScript type definitions |
353
+ // | To update them edit the d.ts file and run "yarn proptypes" |
354
+ // ----------------------------------------------------------------------
355
+
356
+ /**
357
+ * @ignore
358
+ */
359
+ children: _propTypes.default.node
360
+ } : void 0;
294
361
  const SliderMark = (0, _styled.default)('span', {
295
362
  name: 'MuiSlider',
296
363
  slot: 'Mark',
@@ -317,6 +384,19 @@ const SliderMark = (0, _styled.default)('span', {
317
384
  opacity: 0.8
318
385
  }));
319
386
  exports.SliderMark = SliderMark;
387
+ process.env.NODE_ENV !== "production" ? SliderMark.propTypes
388
+ /* remove-proptypes */
389
+ = {
390
+ // ----------------------------- Warning --------------------------------
391
+ // | These PropTypes are generated from the TypeScript type definitions |
392
+ // | To update them edit the d.ts file and run "yarn proptypes" |
393
+ // ----------------------------------------------------------------------
394
+
395
+ /**
396
+ * @ignore
397
+ */
398
+ children: _propTypes.default.node
399
+ } : void 0;
320
400
  const SliderMarkLabel = (0, _styled.default)('span', {
321
401
  name: 'MuiSlider',
322
402
  slot: 'MarkLabel',
@@ -346,7 +426,9 @@ const SliderMarkLabel = (0, _styled.default)('span', {
346
426
  color: theme.palette.text.primary
347
427
  }));
348
428
  exports.SliderMarkLabel = SliderMarkLabel;
349
- SliderRoot.propTypes = {
429
+ process.env.NODE_ENV !== "production" ? SliderMarkLabel.propTypes
430
+ /* remove-proptypes */
431
+ = {
350
432
  // ----------------------------- Warning --------------------------------
351
433
  // | These PropTypes are generated from the TypeScript type definitions |
352
434
  // | To update them edit the d.ts file and run "yarn proptypes" |
@@ -355,40 +437,8 @@ SliderRoot.propTypes = {
355
437
  /**
356
438
  * @ignore
357
439
  */
358
- children: _propTypes.default.node,
359
-
360
- /**
361
- * @ignore
362
- */
363
- ownerState: _propTypes.default.shape({
364
- 'aria-label': _propTypes.default.string,
365
- 'aria-labelledby': _propTypes.default.string,
366
- 'aria-valuetext': _propTypes.default.string,
367
- classes: _propTypes.default.object,
368
- color: _propTypes.default.oneOf(['primary', 'secondary']),
369
- defaultValue: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.number), _propTypes.default.number]),
370
- disabled: _propTypes.default.bool,
371
- getAriaLabel: _propTypes.default.func,
372
- getAriaValueText: _propTypes.default.func,
373
- isRtl: _propTypes.default.bool,
374
- marks: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.shape({
375
- label: _propTypes.default.node,
376
- value: _propTypes.default.number.isRequired
377
- })), _propTypes.default.bool]),
378
- max: _propTypes.default.number,
379
- min: _propTypes.default.number,
380
- name: _propTypes.default.string,
381
- onChange: _propTypes.default.func,
382
- onChangeCommitted: _propTypes.default.func,
383
- orientation: _propTypes.default.oneOf(['horizontal', 'vertical']),
384
- scale: _propTypes.default.func,
385
- step: _propTypes.default.number,
386
- track: _propTypes.default.oneOf(['inverted', 'normal', false]),
387
- value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.number), _propTypes.default.number]),
388
- valueLabelDisplay: _propTypes.default.oneOf(['auto', 'off', 'on']),
389
- valueLabelFormat: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.string])
390
- })
391
- };
440
+ children: _propTypes.default.node
441
+ } : void 0;
392
442
 
393
443
  const extendUtilityClasses = ownerState => {
394
444
  const {
@@ -402,10 +452,6 @@ const extendUtilityClasses = ownerState => {
402
452
  });
403
453
  };
404
454
 
405
- const shouldSpreadOwnerState = Component => {
406
- return !Component || !(0, _base.isHostComponent)(Component);
407
- };
408
-
409
455
  const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
410
456
  var _componentsProps$root, _componentsProps$thum, _componentsProps$trac, _componentsProps$valu;
411
457
 
@@ -416,6 +462,8 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
416
462
  const theme = (0, _useTheme.default)();
417
463
  const isRtl = theme.direction === 'rtl';
418
464
  const {
465
+ // eslint-disable-next-line react/prop-types
466
+ component = 'span',
419
467
  components = {},
420
468
  componentsProps = {},
421
469
  color = 'primary',
@@ -439,25 +487,26 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
439
487
  MarkLabel: SliderMarkLabel
440
488
  }, components),
441
489
  componentsProps: (0, _extends2.default)({}, componentsProps, {
442
- root: (0, _extends2.default)({}, componentsProps.root, shouldSpreadOwnerState(components.Root) && {
490
+ root: (0, _extends2.default)({}, componentsProps.root, (0, _shouldSpreadAdditionalProps.default)(components.Root) && {
491
+ as: component,
443
492
  ownerState: (0, _extends2.default)({}, (_componentsProps$root = componentsProps.root) == null ? void 0 : _componentsProps$root.ownerState, {
444
493
  color,
445
494
  size
446
495
  })
447
496
  }),
448
- thumb: (0, _extends2.default)({}, componentsProps.thumb, shouldSpreadOwnerState(components.Thumb) && {
497
+ thumb: (0, _extends2.default)({}, componentsProps.thumb, (0, _shouldSpreadAdditionalProps.default)(components.Thumb) && {
449
498
  ownerState: (0, _extends2.default)({}, (_componentsProps$thum = componentsProps.thumb) == null ? void 0 : _componentsProps$thum.ownerState, {
450
499
  color,
451
500
  size
452
501
  })
453
502
  }),
454
- track: (0, _extends2.default)({}, componentsProps.track, shouldSpreadOwnerState(components.Track) && {
503
+ track: (0, _extends2.default)({}, componentsProps.track, (0, _shouldSpreadAdditionalProps.default)(components.Track) && {
455
504
  ownerState: (0, _extends2.default)({}, (_componentsProps$trac = componentsProps.track) == null ? void 0 : _componentsProps$trac.ownerState, {
456
505
  color,
457
506
  size
458
507
  })
459
508
  }),
460
- valueLabel: (0, _extends2.default)({}, componentsProps.valueLabel, shouldSpreadOwnerState(components.ValueLabel) && {
509
+ valueLabel: (0, _extends2.default)({}, componentsProps.valueLabel, (0, _shouldSpreadAdditionalProps.default)(components.ValueLabel) && {
461
510
  ownerState: (0, _extends2.default)({}, (_componentsProps$valu = componentsProps.valueLabel) == null ? void 0 : _componentsProps$valu.ownerState, {
462
511
  color,
463
512
  size
@@ -531,6 +580,7 @@ process.env.NODE_ENV !== "production" ? Slider.propTypes
531
580
  * @default {}
532
581
  */
533
582
  components: _propTypes.default.shape({
583
+ Input: _propTypes.default.elementType,
534
584
  Mark: _propTypes.default.elementType,
535
585
  MarkLabel: _propTypes.default.elementType,
536
586
  Rail: _propTypes.default.elementType,
@@ -544,7 +594,24 @@ process.env.NODE_ENV !== "production" ? Slider.propTypes
544
594
  * The props used for each slot inside the Slider.
545
595
  * @default {}
546
596
  */
547
- componentsProps: _propTypes.default.object,
597
+ componentsProps: _propTypes.default.shape({
598
+ input: _propTypes.default.object,
599
+ mark: _propTypes.default.object,
600
+ markLabel: _propTypes.default.object,
601
+ rail: _propTypes.default.object,
602
+ root: _propTypes.default.object,
603
+ thumb: _propTypes.default.object,
604
+ track: _propTypes.default.object,
605
+ valueLabel: _propTypes.default.shape({
606
+ className: _propTypes.default.string,
607
+ components: _propTypes.default.shape({
608
+ Root: _propTypes.default.elementType
609
+ }),
610
+ style: _propTypes.default.object,
611
+ value: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.number), _propTypes.default.number]),
612
+ valueLabelDisplay: _propTypes.default.oneOf(['auto', 'off', 'on'])
613
+ })
614
+ }),
548
615
 
549
616
  /**
550
617
  * The default value. Use when the component is not controlled.