@mui/material 5.16.7 → 5.16.8

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 (125) hide show
  1. package/AccordionActions/AccordionActions.d.ts +1 -1
  2. package/AccordionDetails/AccordionDetails.d.ts +1 -1
  3. package/Alert/Alert.d.ts +1 -1
  4. package/AlertTitle/AlertTitle.d.ts +1 -1
  5. package/Autocomplete/Autocomplete.d.ts +1 -1
  6. package/AvatarGroup/AvatarGroup.d.ts +1 -1
  7. package/Button/Button.d.ts +1 -1
  8. package/ButtonBase/ButtonBase.d.ts +1 -1
  9. package/CHANGELOG.md +47 -0
  10. package/CardActions/CardActions.d.ts +1 -1
  11. package/CardHeader/CardHeader.d.ts +1 -1
  12. package/Checkbox/Checkbox.d.ts +1 -1
  13. package/Chip/Chip.d.ts +3 -3
  14. package/CircularProgress/CircularProgress.d.ts +1 -1
  15. package/ClickAwayListener/ClickAwayListener.js +2 -3
  16. package/Collapse/Collapse.d.ts +1 -1
  17. package/CssBaseline/CssBaseline.d.ts +1 -1
  18. package/Dialog/Dialog.d.ts +1 -1
  19. package/DialogActions/DialogActions.d.ts +1 -1
  20. package/DialogContent/DialogContent.d.ts +1 -1
  21. package/Drawer/Drawer.d.ts +1 -1
  22. package/Fade/Fade.d.ts +1 -1
  23. package/Fade/Fade.js +2 -1
  24. package/FilledInput/FilledInput.d.ts +1 -1
  25. package/FormControlLabel/FormControlLabel.d.ts +1 -1
  26. package/FormGroup/FormGroup.d.ts +1 -1
  27. package/GlobalStyles/GlobalStyles.d.ts +1 -1
  28. package/Grow/Grow.d.ts +1 -1
  29. package/Grow/Grow.js +2 -1
  30. package/ImageListItemBar/ImageListItemBar.d.ts +1 -1
  31. package/Input/Input.d.ts +1 -1
  32. package/InputBase/InputBase.d.ts +1 -1
  33. package/LinearProgress/LinearProgress.d.ts +1 -1
  34. package/ListItemAvatar/ListItemAvatar.d.ts +1 -1
  35. package/ListItemIcon/ListItemIcon.d.ts +1 -1
  36. package/ListItemSecondaryAction/ListItemSecondaryAction.d.ts +3 -1
  37. package/ListItemText/ListItemText.d.ts +3 -1
  38. package/Menu/Menu.d.ts +1 -1
  39. package/MobileStepper/MobileStepper.d.ts +1 -1
  40. package/Modal/Modal.d.ts +1 -1
  41. package/NativeSelect/NativeSelect.d.ts +1 -1
  42. package/OutlinedInput/OutlinedInput.d.ts +3 -1
  43. package/OverridableComponent.d.ts +2 -2
  44. package/Pagination/Pagination.d.ts +1 -1
  45. package/Popover/Popover.d.ts +1 -1
  46. package/Portal/Portal.js +2 -3
  47. package/README.md +5 -5
  48. package/Radio/Radio.d.ts +1 -1
  49. package/RadioGroup/RadioGroup.d.ts +1 -1
  50. package/Rating/Rating.d.ts +1 -1
  51. package/Select/Select.d.ts +1 -1
  52. package/Select/Select.js +2 -1
  53. package/Slide/Slide.d.ts +1 -1
  54. package/Slide/Slide.js +2 -1
  55. package/Slider/Slider.d.ts +1 -1
  56. package/Slider/SliderValueLabel.types.d.ts +1 -1
  57. package/Slider/useSlider.js +3 -3
  58. package/Snackbar/Snackbar.d.ts +1 -1
  59. package/SnackbarContent/SnackbarContent.d.ts +1 -1
  60. package/SpeedDial/SpeedDial.d.ts +1 -1
  61. package/SpeedDialAction/SpeedDialAction.d.ts +1 -1
  62. package/SpeedDialIcon/SpeedDialIcon.d.ts +3 -1
  63. package/StepConnector/StepConnector.d.ts +2 -2
  64. package/StepContent/StepContent.d.ts +1 -1
  65. package/StepIcon/StepIcon.d.ts +1 -1
  66. package/StepLabel/StepLabel.d.ts +3 -1
  67. package/Switch/Switch.d.ts +1 -1
  68. package/Tab/Tab.d.ts +1 -1
  69. package/TabScrollButton/TabScrollButton.d.ts +1 -1
  70. package/TableCell/TableCell.d.ts +1 -1
  71. package/TextField/TextField.d.ts +1 -1
  72. package/ToggleButtonGroup/ToggleButtonGroup.d.ts +1 -1
  73. package/Tooltip/Tooltip.d.ts +1 -1
  74. package/Tooltip/Tooltip.js +2 -1
  75. package/Unstable_TrapFocus/FocusTrap.js +2 -3
  76. package/Zoom/Zoom.d.ts +1 -1
  77. package/Zoom/Zoom.js +2 -1
  78. package/index.js +1 -1
  79. package/legacy/ClickAwayListener/ClickAwayListener.js +2 -3
  80. package/legacy/Fade/Fade.js +2 -1
  81. package/legacy/Grow/Grow.js +2 -1
  82. package/legacy/Portal/Portal.js +3 -3
  83. package/legacy/Select/Select.js +2 -1
  84. package/legacy/Slide/Slide.js +2 -1
  85. package/legacy/Slider/useSlider.js +3 -3
  86. package/legacy/Tooltip/Tooltip.js +2 -1
  87. package/legacy/Unstable_TrapFocus/FocusTrap.js +2 -3
  88. package/legacy/Zoom/Zoom.js +2 -1
  89. package/legacy/index.js +1 -1
  90. package/legacy/useAutocomplete/useAutocomplete.js +2 -1
  91. package/legacy/version/index.js +2 -2
  92. package/modern/ClickAwayListener/ClickAwayListener.js +2 -3
  93. package/modern/Fade/Fade.js +2 -1
  94. package/modern/Grow/Grow.js +2 -1
  95. package/modern/Portal/Portal.js +2 -3
  96. package/modern/Select/Select.js +2 -1
  97. package/modern/Slide/Slide.js +2 -1
  98. package/modern/Slider/useSlider.js +3 -3
  99. package/modern/Tooltip/Tooltip.js +2 -1
  100. package/modern/Unstable_TrapFocus/FocusTrap.js +2 -3
  101. package/modern/Zoom/Zoom.js +2 -1
  102. package/modern/index.js +1 -1
  103. package/modern/useAutocomplete/useAutocomplete.js +2 -1
  104. package/modern/version/index.js +2 -2
  105. package/node/ClickAwayListener/ClickAwayListener.js +2 -3
  106. package/node/Fade/Fade.js +2 -1
  107. package/node/Grow/Grow.js +2 -1
  108. package/node/Portal/Portal.js +1 -2
  109. package/node/Select/Select.js +2 -1
  110. package/node/Slide/Slide.js +2 -1
  111. package/node/Slider/useSlider.js +3 -3
  112. package/node/Tooltip/Tooltip.js +2 -1
  113. package/node/Unstable_TrapFocus/FocusTrap.js +1 -2
  114. package/node/Zoom/Zoom.js +2 -1
  115. package/node/index.js +1 -1
  116. package/node/useAutocomplete/useAutocomplete.js +2 -1
  117. package/node/version/index.js +2 -2
  118. package/package.json +8 -8
  119. package/styles/CssVarsProvider.d.ts +1 -1
  120. package/types/OverridableComponentAugmentation.d.ts +2 -2
  121. package/umd/material-ui.development.js +40 -22
  122. package/umd/material-ui.production.min.js +4 -4
  123. package/useAutocomplete/useAutocomplete.d.ts +1 -1
  124. package/useAutocomplete/useAutocomplete.js +2 -1
  125. package/version/index.js +2 -2
@@ -3,7 +3,7 @@
3
3
  /* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex */
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument } from '@mui/utils';
6
+ import { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument, unstable_getReactElementRef as getReactElementRef } from '@mui/utils';
7
7
  import { jsx as _jsx } from "react/jsx-runtime";
8
8
  import { jsxs as _jsxs } from "react/jsx-runtime";
9
9
  // Inspired by https://github.com/focus-trap/tabbable
@@ -93,8 +93,7 @@ function FocusTrap(props) {
93
93
  // It waits for the active element to move into the component to activate.
94
94
  const activated = React.useRef(false);
95
95
  const rootRef = React.useRef(null);
96
- // @ts-expect-error TODO upstream fix
97
- const handleRef = useForkRef(children.ref, rootRef);
96
+ const handleRef = useForkRef(getReactElementRef(children), rootRef);
98
97
  const lastKeydown = React.useRef(null);
99
98
  React.useEffect(() => {
100
99
  // We might render an empty child.
@@ -7,6 +7,7 @@ import * as React from 'react';
7
7
  import PropTypes from 'prop-types';
8
8
  import { Transition } from 'react-transition-group';
9
9
  import elementAcceptingRef from '@mui/utils/elementAcceptingRef';
10
+ import getReactElementRef from '@mui/utils/getReactElementRef';
10
11
  import useTheme from '../styles/useTheme';
11
12
  import { reflow, getTransitionProps } from '../transitions/utils';
12
13
  import useForkRef from '../utils/useForkRef';
@@ -50,7 +51,7 @@ const Zoom = /*#__PURE__*/React.forwardRef(function Zoom(props, ref) {
50
51
  } = props,
51
52
  other = _objectWithoutPropertiesLoose(props, _excluded);
52
53
  const nodeRef = React.useRef(null);
53
- const handleRef = useForkRef(nodeRef, children.ref, ref);
54
+ const handleRef = useForkRef(nodeRef, getReactElementRef(children), ref);
54
55
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
55
56
  if (callback) {
56
57
  const node = nodeRef.current;
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v5.16.7
2
+ * @mui/material v5.16.8
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -58,6 +58,7 @@ const defaultFilterOptions = createFilterOptions();
58
58
  // Number of options to jump in list box when `Page Up` and `Page Down` keys are used.
59
59
  const pageSize = 5;
60
60
  const defaultIsActiveElementInListbox = listboxRef => listboxRef.current !== null && listboxRef.current.parentElement?.contains(document.activeElement);
61
+ const MULTIPLE_DEFAULT_VALUE = [];
61
62
  function useAutocomplete(props) {
62
63
  const {
63
64
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -71,7 +72,7 @@ function useAutocomplete(props) {
71
72
  clearOnBlur = !props.freeSolo,
72
73
  clearOnEscape = false,
73
74
  componentName = 'useAutocomplete',
74
- defaultValue = props.multiple ? [] : null,
75
+ defaultValue = props.multiple ? MULTIPLE_DEFAULT_VALUE : null,
75
76
  disableClearable = false,
76
77
  disableCloseOnSelect = false,
77
78
  disabled: disabledProp,
@@ -1,7 +1,7 @@
1
- export const version = "5.16.7";
1
+ export const version = "5.16.8";
2
2
  export const major = Number("5");
3
3
  export const minor = Number("16");
4
- export const patch = Number("7");
4
+ export const patch = Number("8");
5
5
  export const preReleaseLabel = undefined || null;
6
6
  export const preReleaseNumber = Number(undefined) || null;
7
7
  export default version;
@@ -9,6 +9,7 @@ exports.ClickAwayListener = ClickAwayListener;
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _utils = require("@mui/utils");
12
+ var _getReactElementRef = _interopRequireDefault(require("@mui/utils/getReactElementRef"));
12
13
  var _jsxRuntime = require("react/jsx-runtime");
13
14
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
15
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
@@ -54,9 +55,7 @@ function ClickAwayListener(props) {
54
55
  activatedRef.current = false;
55
56
  };
56
57
  }, []);
57
- const handleRef = (0, _utils.unstable_useForkRef)(
58
- // @ts-expect-error TODO upstream fix
59
- children.ref, nodeRef);
58
+ const handleRef = (0, _utils.unstable_useForkRef)((0, _getReactElementRef.default)(children), nodeRef);
60
59
 
61
60
  // The handler doesn't take event.defaultPrevented into account:
62
61
  //
package/node/Fade/Fade.js CHANGED
@@ -12,6 +12,7 @@ var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _reactTransitionGroup = require("react-transition-group");
14
14
  var _elementAcceptingRef = _interopRequireDefault(require("@mui/utils/elementAcceptingRef"));
15
+ var _getReactElementRef = _interopRequireDefault(require("@mui/utils/getReactElementRef"));
15
16
  var _useTheme = _interopRequireDefault(require("../styles/useTheme"));
16
17
  var _utils = require("../transitions/utils");
17
18
  var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
@@ -58,7 +59,7 @@ const Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {
58
59
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
59
60
  const enableStrictModeCompat = true;
60
61
  const nodeRef = React.useRef(null);
61
- const handleRef = (0, _useForkRef.default)(nodeRef, children.ref, ref);
62
+ const handleRef = (0, _useForkRef.default)(nodeRef, (0, _getReactElementRef.default)(children), ref);
62
63
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
63
64
  if (callback) {
64
65
  const node = nodeRef.current;
package/node/Grow/Grow.js CHANGED
@@ -12,6 +12,7 @@ var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _useTimeout = _interopRequireDefault(require("@mui/utils/useTimeout"));
14
14
  var _elementAcceptingRef = _interopRequireDefault(require("@mui/utils/elementAcceptingRef"));
15
+ var _getReactElementRef = _interopRequireDefault(require("@mui/utils/getReactElementRef"));
15
16
  var _reactTransitionGroup = require("react-transition-group");
16
17
  var _useTheme = _interopRequireDefault(require("../styles/useTheme"));
17
18
  var _utils = require("../transitions/utils");
@@ -68,7 +69,7 @@ const Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {
68
69
  const autoTimeout = React.useRef();
69
70
  const theme = (0, _useTheme.default)();
70
71
  const nodeRef = React.useRef(null);
71
- const handleRef = (0, _useForkRef.default)(nodeRef, children.ref, ref);
72
+ const handleRef = (0, _useForkRef.default)(nodeRef, (0, _getReactElementRef.default)(children), ref);
72
73
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
73
74
  if (callback) {
74
75
  const node = nodeRef.current;
@@ -36,8 +36,7 @@ const Portal = /*#__PURE__*/React.forwardRef(function Portal(props, forwardedRef
36
36
  disablePortal = false
37
37
  } = props;
38
38
  const [mountNode, setMountNode] = React.useState(null);
39
- // @ts-expect-error TODO upstream fix
40
- const handleRef = (0, _utils.unstable_useForkRef)( /*#__PURE__*/React.isValidElement(children) ? children.ref : null, forwardedRef);
39
+ const handleRef = (0, _utils.unstable_useForkRef)( /*#__PURE__*/React.isValidElement(children) ? (0, _utils.unstable_getReactElementRef)(children) : null, forwardedRef);
41
40
  (0, _utils.unstable_useEnhancedEffect)(() => {
42
41
  if (!disablePortal) {
43
42
  setMountNode(getContainer(container) || document.body);
@@ -12,6 +12,7 @@ var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _clsx = _interopRequireDefault(require("clsx"));
14
14
  var _deepmerge = _interopRequireDefault(require("@mui/utils/deepmerge"));
15
+ var _getReactElementRef = _interopRequireDefault(require("@mui/utils/getReactElementRef"));
15
16
  var _SelectInput = _interopRequireDefault(require("./SelectInput"));
16
17
  var _formControlState = _interopRequireDefault(require("../FormControl/formControlState"));
17
18
  var _useFormControl = _interopRequireDefault(require("../FormControl/useFormControl"));
@@ -98,7 +99,7 @@ const Select = /*#__PURE__*/React.forwardRef(function Select(inProps, ref) {
98
99
  ownerState: ownerState
99
100
  })
100
101
  }[variant];
101
- const inputComponentRef = (0, _useForkRef.default)(ref, InputComponent.ref);
102
+ const inputComponentRef = (0, _useForkRef.default)(ref, (0, _getReactElementRef.default)(InputComponent));
102
103
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(React.Fragment, {
103
104
  children: /*#__PURE__*/React.cloneElement(InputComponent, (0, _extends2.default)({
104
105
  // Most of the logic is implemented in `SelectInput`.
@@ -15,6 +15,7 @@ var _reactTransitionGroup = require("react-transition-group");
15
15
  var _chainPropTypes = _interopRequireDefault(require("@mui/utils/chainPropTypes"));
16
16
  var _HTMLElementType = _interopRequireDefault(require("@mui/utils/HTMLElementType"));
17
17
  var _elementAcceptingRef = _interopRequireDefault(require("@mui/utils/elementAcceptingRef"));
18
+ var _getReactElementRef = _interopRequireDefault(require("@mui/utils/getReactElementRef"));
18
19
  var _debounce = _interopRequireDefault(require("../utils/debounce"));
19
20
  var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
20
21
  var _useTheme = _interopRequireDefault(require("../styles/useTheme"));
@@ -115,7 +116,7 @@ const Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {
115
116
  } = props,
116
117
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
117
118
  const childrenRef = React.useRef(null);
118
- const handleRef = (0, _useForkRef.default)(children.ref, childrenRef, ref);
119
+ const handleRef = (0, _useForkRef.default)((0, _getReactElementRef.default)(children), childrenRef, ref);
119
120
  const normalizedTransitionCallback = callback => isAppearing => {
120
121
  if (callback) {
121
122
  // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
@@ -192,7 +192,7 @@ function useSlider(parameters) {
192
192
  tabIndex,
193
193
  value: valueProp
194
194
  } = parameters;
195
- const touchId = React.useRef();
195
+ const touchId = React.useRef(undefined);
196
196
  // We can't use the :active browser pseudo-classes.
197
197
  // - The active state isn't triggered when clicking on the rail.
198
198
  // - The active state isn't transferred when inversing a range slider.
@@ -236,7 +236,7 @@ function useSlider(parameters) {
236
236
  ref: focusVisibleRef
237
237
  } = (0, _utils.unstable_useIsFocusVisible)();
238
238
  const [focusedThumbIndex, setFocusedThumbIndex] = React.useState(-1);
239
- const sliderRef = React.useRef();
239
+ const sliderRef = React.useRef(null);
240
240
  const handleFocusRef = (0, _utils.unstable_useForkRef)(focusVisibleRef, sliderRef);
241
241
  const handleRef = (0, _utils.unstable_useForkRef)(ref, handleFocusRef);
242
242
  const createHandleHiddenInputFocus = otherHandlers => event => {
@@ -347,7 +347,7 @@ function useSlider(parameters) {
347
347
  // @ts-ignore
348
348
  changeValue(event, event.target.valueAsNumber);
349
349
  };
350
- const previousIndex = React.useRef();
350
+ const previousIndex = React.useRef(undefined);
351
351
  let axis = orientation;
352
352
  if (isRtl && orientation === 'horizontal') {
353
353
  axis += '-reverse';
@@ -18,6 +18,7 @@ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"
18
18
  var _colorManipulator = require("@mui/system/colorManipulator");
19
19
  var _RtlProvider = require("@mui/system/RtlProvider");
20
20
  var _appendOwnerState = _interopRequireDefault(require("@mui/utils/appendOwnerState"));
21
+ var _getReactElementRef = _interopRequireDefault(require("@mui/utils/getReactElementRef"));
21
22
  var _styles = require("../styles");
22
23
  var _DefaultPropsProvider = require("../DefaultPropsProvider");
23
24
  var _capitalize = _interopRequireDefault(require("../utils/capitalize"));
@@ -436,7 +437,7 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
436
437
  document.removeEventListener('keydown', handleKeyDown);
437
438
  };
438
439
  }, [handleClose, open]);
439
- const handleRef = (0, _useForkRef.default)(children.ref, focusVisibleRef, setChildNode, ref);
440
+ const handleRef = (0, _useForkRef.default)((0, _getReactElementRef.default)(children), focusVisibleRef, setChildNode, ref);
440
441
 
441
442
  // There is no point in displaying an empty tooltip.
442
443
  // So we exclude all falsy values, except 0, which is valid.
@@ -100,8 +100,7 @@ function FocusTrap(props) {
100
100
  // It waits for the active element to move into the component to activate.
101
101
  const activated = React.useRef(false);
102
102
  const rootRef = React.useRef(null);
103
- // @ts-expect-error TODO upstream fix
104
- const handleRef = (0, _utils.unstable_useForkRef)(children.ref, rootRef);
103
+ const handleRef = (0, _utils.unstable_useForkRef)((0, _utils.unstable_getReactElementRef)(children), rootRef);
105
104
  const lastKeydown = React.useRef(null);
106
105
  React.useEffect(() => {
107
106
  // We might render an empty child.
package/node/Zoom/Zoom.js CHANGED
@@ -12,6 +12,7 @@ var React = _interopRequireWildcard(require("react"));
12
12
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
13
  var _reactTransitionGroup = require("react-transition-group");
14
14
  var _elementAcceptingRef = _interopRequireDefault(require("@mui/utils/elementAcceptingRef"));
15
+ var _getReactElementRef = _interopRequireDefault(require("@mui/utils/getReactElementRef"));
15
16
  var _useTheme = _interopRequireDefault(require("../styles/useTheme"));
16
17
  var _utils = require("../transitions/utils");
17
18
  var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
@@ -58,7 +59,7 @@ const Zoom = /*#__PURE__*/React.forwardRef(function Zoom(props, ref) {
58
59
  } = props,
59
60
  other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
60
61
  const nodeRef = React.useRef(null);
61
- const handleRef = (0, _useForkRef.default)(nodeRef, children.ref, ref);
62
+ const handleRef = (0, _useForkRef.default)(nodeRef, (0, _getReactElementRef.default)(children), ref);
62
63
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
63
64
  if (callback) {
64
65
  const node = nodeRef.current;
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v5.16.7
2
+ * @mui/material v5.16.8
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -69,6 +69,7 @@ const defaultIsActiveElementInListbox = listboxRef => {
69
69
  var _listboxRef$current$p;
70
70
  return listboxRef.current !== null && ((_listboxRef$current$p = listboxRef.current.parentElement) == null ? void 0 : _listboxRef$current$p.contains(document.activeElement));
71
71
  };
72
+ const MULTIPLE_DEFAULT_VALUE = [];
72
73
  function useAutocomplete(props) {
73
74
  const {
74
75
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -82,7 +83,7 @@ function useAutocomplete(props) {
82
83
  clearOnBlur = !props.freeSolo,
83
84
  clearOnEscape = false,
84
85
  componentName = 'useAutocomplete',
85
- defaultValue = props.multiple ? [] : null,
86
+ defaultValue = props.multiple ? MULTIPLE_DEFAULT_VALUE : null,
86
87
  disableClearable = false,
87
88
  disableCloseOnSelect = false,
88
89
  disabled: disabledProp,
@@ -4,10 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.version = exports.preReleaseNumber = exports.preReleaseLabel = exports.patch = exports.minor = exports.major = exports.default = void 0;
7
- const version = exports.version = "5.16.7";
7
+ const version = exports.version = "5.16.8";
8
8
  const major = exports.major = Number("5");
9
9
  const minor = exports.minor = Number("16");
10
- const patch = exports.patch = Number("7");
10
+ const patch = exports.patch = Number("8");
11
11
  const preReleaseLabel = exports.preReleaseLabel = undefined || null;
12
12
  const preReleaseNumber = exports.preReleaseNumber = Number(undefined) || null;
13
13
  var _default = exports.default = version;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/material",
3
- "version": "5.16.7",
3
+ "version": "5.16.8",
4
4
  "private": false,
5
5
  "author": "MUI Team",
6
6
  "description": "Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.",
@@ -21,7 +21,7 @@
21
21
  "bugs": {
22
22
  "url": "https://github.com/mui/material-ui/issues"
23
23
  },
24
- "homepage": "https://mui.com/material-ui/",
24
+ "homepage": "https://v5.mui.com/material-ui/",
25
25
  "funding": {
26
26
  "type": "opencollective",
27
27
  "url": "https://opencollective.com/mui-org"
@@ -35,17 +35,17 @@
35
35
  "prop-types": "^15.8.1",
36
36
  "react-is": "^18.3.1",
37
37
  "react-transition-group": "^4.4.5",
38
- "@mui/system": "^5.16.7",
39
- "@mui/utils": "^5.16.6",
38
+ "@mui/system": "^5.16.8",
40
39
  "@mui/types": "^7.2.15",
41
- "@mui/core-downloads-tracker": "^5.16.7"
40
+ "@mui/utils": "^5.16.8",
41
+ "@mui/core-downloads-tracker": "^5.16.8"
42
42
  },
43
43
  "peerDependencies": {
44
44
  "@emotion/react": "^11.5.0",
45
45
  "@emotion/styled": "^11.3.0",
46
- "@types/react": "^17.0.0 || ^18.0.0",
47
- "react": "^17.0.0 || ^18.0.0",
48
- "react-dom": "^17.0.0 || ^18.0.0"
46
+ "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
47
+ "react": "^17.0.0 || ^18.0.0 || ^19.0.0",
48
+ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0"
49
49
  },
50
50
  "peerDependenciesMeta": {
51
51
  "@types/react": {
@@ -16,7 +16,7 @@ declare const CssVarsProvider: (props: React.PropsWithChildren<Partial<import("@
16
16
  storageWindow?: Window | null | undefined;
17
17
  disableNestedContext?: boolean | undefined;
18
18
  disableStyleSheetGeneration?: boolean | undefined;
19
- }>) => React.ReactElement<any, string | React.JSXElementConstructor<any>>, useColorScheme: () => import("@mui/system").ColorSchemeContextValue<SupportedColorScheme>;
19
+ }>) => React.JSX.Element, useColorScheme: () => import("@mui/system").ColorSchemeContextValue<SupportedColorScheme>;
20
20
  /**
21
21
  * @deprecated Use `InitColorSchemeScript` instead
22
22
  * ```diff
@@ -13,8 +13,8 @@ declare module '@mui/material/OverridableComponent' {
13
13
  * Either a string to use a HTML element or a component.
14
14
  */
15
15
  component: DefaultComponent;
16
- } & OverridePropsVer2<TypeMap, DefaultComponent>): JSX.Element;
17
- (props: DefaultComponentPropsVer2<TypeMap>): JSX.Element;
16
+ } & OverridePropsVer2<TypeMap, DefaultComponent>): React.JSX.Element;
17
+ (props: DefaultComponentPropsVer2<TypeMap>): React.JSX.Element;
18
18
  }
19
19
  /**
20
20
  * Props of the component if `component={Component}` is used.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v5.16.7
2
+ * @mui/material v5.16.8
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -5068,7 +5068,7 @@
5068
5068
  return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);
5069
5069
  }
5070
5070
  function deepClone(source) {
5071
- if (!isPlainObject(source)) {
5071
+ if ( /*#__PURE__*/React__namespace.isValidElement(source) || !isPlainObject(source)) {
5072
5072
  return source;
5073
5073
  }
5074
5074
  var output = {};
@@ -5084,7 +5084,9 @@
5084
5084
  var output = options.clone ? _extends({}, target) : target;
5085
5085
  if (isPlainObject(target) && isPlainObject(source)) {
5086
5086
  Object.keys(source).forEach(function (key) {
5087
- if (isPlainObject(source[key]) &&
5087
+ if ( /*#__PURE__*/React__namespace.isValidElement(source[key])) {
5088
+ output[key] = source[key];
5089
+ } else if (isPlainObject(source[key]) &&
5088
5090
  // Avoid prototype pollution
5089
5091
  Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {
5090
5092
  // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.
@@ -8659,6 +8661,24 @@
8659
8661
  return props;
8660
8662
  }
8661
8663
 
8664
+ /**
8665
+ * Returns the ref of a React element handling differences between React 19 and older versions.
8666
+ * It will throw runtime error if the element is not a valid React element.
8667
+ *
8668
+ * @param element React.ReactElement
8669
+ * @returns React.Ref<any> | null
8670
+ */
8671
+ function getReactElementRef(element) {
8672
+ // 'ref' is passed as prop in React 19, whereas 'ref' is directly attached to children in older versions
8673
+ if (parseInt(React__namespace.version, 10) >= 19) {
8674
+ var _element$props;
8675
+ return (element == null || (_element$props = element.props) == null ? void 0 : _element$props.ref) || null;
8676
+ }
8677
+ // @ts-expect-error element.ref is not included in the ReactElement type
8678
+ // https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/70189
8679
+ return (element == null ? void 0 : element.ref) || null;
8680
+ }
8681
+
8662
8682
  var ThemeContext = /*#__PURE__*/React__namespace.createContext(null);
8663
8683
  {
8664
8684
  ThemeContext.displayName = 'ThemeContext';
@@ -10233,9 +10253,9 @@
10233
10253
  }, other, {
10234
10254
  children: React__namespace.Children.map(children, function (child) {
10235
10255
  if ( /*#__PURE__*/React__namespace.isValidElement(child) && isMuiElement(child, ['Grid'])) {
10236
- var _child$props$unstable;
10256
+ var _unstable_level, _child$props;
10237
10257
  return /*#__PURE__*/React__namespace.cloneElement(child, {
10238
- unstable_level: (_child$props$unstable = child.props.unstable_level) != null ? _child$props$unstable : level + 1
10258
+ unstable_level: (_unstable_level = (_child$props = child.props) == null ? void 0 : _child$props.unstable_level) != null ? _unstable_level : level + 1
10239
10259
  });
10240
10260
  }
10241
10261
  return child;
@@ -16132,6 +16152,7 @@
16132
16152
  var _listboxRef$current$p;
16133
16153
  return listboxRef.current !== null && ((_listboxRef$current$p = listboxRef.current.parentElement) == null ? void 0 : _listboxRef$current$p.contains(document.activeElement));
16134
16154
  };
16155
+ var MULTIPLE_DEFAULT_VALUE = [];
16135
16156
  function useAutocomplete(props) {
16136
16157
  var _props$unstable_isAct = props.unstable_isActiveElementInListbox,
16137
16158
  unstable_isActiveElementInListbox = _props$unstable_isAct === void 0 ? defaultIsActiveElementInListbox : _props$unstable_isAct,
@@ -16152,7 +16173,7 @@
16152
16173
  _props$componentName = props.componentName,
16153
16174
  componentName = _props$componentName === void 0 ? 'useAutocomplete' : _props$componentName,
16154
16175
  _props$defaultValue = props.defaultValue,
16155
- defaultValue = _props$defaultValue === void 0 ? props.multiple ? [] : null : _props$defaultValue,
16176
+ defaultValue = _props$defaultValue === void 0 ? props.multiple ? MULTIPLE_DEFAULT_VALUE : null : _props$defaultValue,
16156
16177
  _props$disableClearab = props.disableClearable,
16157
16178
  disableClearable = _props$disableClearab === void 0 ? false : _props$disableClearab,
16158
16179
  _props$disableCloseOn = props.disableCloseOnSelect,
@@ -18958,8 +18979,8 @@
18958
18979
  disablePortal = _props$disablePortal === void 0 ? false : _props$disablePortal;
18959
18980
  var _React$useState = React__namespace.useState(null),
18960
18981
  mountNode = _React$useState[0],
18961
- setMountNode = _React$useState[1]; // @ts-expect-error TODO upstream fix
18962
- var handleRef = useForkRef( /*#__PURE__*/React__namespace.isValidElement(children) ? children.ref : null, forwardedRef);
18982
+ setMountNode = _React$useState[1];
18983
+ var handleRef = useForkRef( /*#__PURE__*/React__namespace.isValidElement(children) ? getReactElementRef(children) : null, forwardedRef);
18963
18984
  useEnhancedEffect$1(function () {
18964
18985
  if (!disablePortal) {
18965
18986
  setMountNode(getContainer$1(container) || document.body);
@@ -22786,7 +22807,7 @@
22786
22807
  TransitionComponent = _props$TransitionComp === void 0 ? Transition$1 : _props$TransitionComp,
22787
22808
  other = _objectWithoutProperties(props, ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"]);
22788
22809
  var nodeRef = React__namespace.useRef(null);
22789
- var handleRef = useForkRef(nodeRef, _children.ref, ref);
22810
+ var handleRef = useForkRef(nodeRef, getReactElementRef(_children), ref);
22790
22811
  var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
22791
22812
  return function (maybeIsAppearing) {
22792
22813
  if (callback) {
@@ -26267,9 +26288,7 @@
26267
26288
  activatedRef.current = false;
26268
26289
  };
26269
26290
  }, []);
26270
- var handleRef = useForkRef(
26271
- // @ts-expect-error TODO upstream fix
26272
- children.ref, nodeRef);
26291
+ var handleRef = useForkRef(getReactElementRef(children), nodeRef);
26273
26292
 
26274
26293
  // The handler doesn't take event.defaultPrevented into account:
26275
26294
  //
@@ -26924,8 +26943,7 @@
26924
26943
  // It waits for the active element to move into the component to activate.
26925
26944
  var activated = React__namespace.useRef(false);
26926
26945
  var rootRef = React__namespace.useRef(null);
26927
- // @ts-expect-error TODO upstream fix
26928
- var handleRef = useForkRef(children.ref, rootRef);
26946
+ var handleRef = useForkRef(getReactElementRef(children), rootRef);
26929
26947
  var lastKeydown = React__namespace.useRef(null);
26930
26948
  React__namespace.useEffect(function () {
26931
26949
  // We might render an empty child.
@@ -28789,7 +28807,7 @@
28789
28807
  TransitionComponent = _props$TransitionComp === void 0 ? Transition$1 : _props$TransitionComp,
28790
28808
  other = _objectWithoutProperties(props, ["addEndListener", "appear", "children", "container", "direction", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"]);
28791
28809
  var childrenRef = React__namespace.useRef(null);
28792
- var handleRef = useForkRef(_children.ref, childrenRef, ref);
28810
+ var handleRef = useForkRef(getReactElementRef(_children), childrenRef, ref);
28793
28811
  var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
28794
28812
  return function (isAppearing) {
28795
28813
  if (callback) {
@@ -31608,7 +31626,7 @@
31608
31626
  var autoTimeout = React__namespace.useRef();
31609
31627
  var theme = useTheme();
31610
31628
  var nodeRef = React__namespace.useRef(null);
31611
- var handleRef = useForkRef(nodeRef, _children.ref, ref);
31629
+ var handleRef = useForkRef(nodeRef, getReactElementRef(_children), ref);
31612
31630
  var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
31613
31631
  return function (maybeIsAppearing) {
31614
31632
  if (callback) {
@@ -40292,7 +40310,7 @@
40292
40310
  ownerState: ownerState
40293
40311
  })
40294
40312
  }[variant];
40295
- var inputComponentRef = useForkRef(ref, InputComponent.ref);
40313
+ var inputComponentRef = useForkRef(ref, getReactElementRef(InputComponent));
40296
40314
  return /*#__PURE__*/jsxRuntime_1(React__namespace.Fragment, {
40297
40315
  children: /*#__PURE__*/React__namespace.cloneElement(InputComponent, _extends({
40298
40316
  // Most of the logic is implemented in `SelectInput`.
@@ -40846,7 +40864,7 @@
40846
40864
  shiftStep = _parameters$shiftStep === void 0 ? 10 : _parameters$shiftStep,
40847
40865
  tabIndex = parameters.tabIndex,
40848
40866
  valueProp = parameters.value;
40849
- var touchId = React__namespace.useRef();
40867
+ var touchId = React__namespace.useRef(undefined);
40850
40868
  // We can't use the :active browser pseudo-classes.
40851
40869
  // - The active state isn't triggered when clicking on the rail.
40852
40870
  // - The active state isn't transferred when inversing a range slider.
@@ -40906,7 +40924,7 @@
40906
40924
  var _React$useState4 = React__namespace.useState(-1),
40907
40925
  focusedThumbIndex = _React$useState4[0],
40908
40926
  setFocusedThumbIndex = _React$useState4[1];
40909
- var sliderRef = React__namespace.useRef();
40927
+ var sliderRef = React__namespace.useRef(null);
40910
40928
  var handleFocusRef = useForkRef(focusVisibleRef, sliderRef);
40911
40929
  var handleRef = useForkRef(ref, handleFocusRef);
40912
40930
  var createHandleHiddenInputFocus = function createHandleHiddenInputFocus(otherHandlers) {
@@ -41025,7 +41043,7 @@
41025
41043
  changeValue(event, event.target.valueAsNumber);
41026
41044
  };
41027
41045
  };
41028
- var previousIndex = React__namespace.useRef();
41046
+ var previousIndex = React__namespace.useRef(undefined);
41029
41047
  var axis = orientation;
41030
41048
  if (isRtl && orientation === 'horizontal') {
41031
41049
  axis += '-reverse';
@@ -43038,7 +43056,7 @@
43038
43056
  TransitionComponent = _props$TransitionComp === void 0 ? Transition$1 : _props$TransitionComp,
43039
43057
  other = _objectWithoutProperties(props, ["addEndListener", "appear", "children", "easing", "in", "onEnter", "onEntered", "onEntering", "onExit", "onExited", "onExiting", "style", "timeout", "TransitionComponent"]);
43040
43058
  var nodeRef = React__namespace.useRef(null);
43041
- var handleRef = useForkRef(nodeRef, _children.ref, ref);
43059
+ var handleRef = useForkRef(nodeRef, getReactElementRef(_children), ref);
43042
43060
  var normalizedTransitionCallback = function normalizedTransitionCallback(callback) {
43043
43061
  return function (maybeIsAppearing) {
43044
43062
  if (callback) {
@@ -44086,7 +44104,7 @@
44086
44104
  document.removeEventListener('keydown', handleKeyDown);
44087
44105
  };
44088
44106
  }, [handleClose, open]);
44089
- var handleRef = useForkRef(children.ref, focusVisibleRef, setChildNode, ref);
44107
+ var handleRef = useForkRef(getReactElementRef(children), focusVisibleRef, setChildNode, ref);
44090
44108
 
44091
44109
  // There is no point in displaying an empty tooltip.
44092
44110
  // So we exclude all falsy values, except 0, which is valid.