@mui/material 5.13.3 → 5.13.4

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.
@@ -3,7 +3,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
3
3
  import * as React from 'react';
4
4
  import PropTypes from 'prop-types';
5
5
  import clsx from 'clsx';
6
- import { unstable_composeClasses as composeClasses } from '@mui/base';
6
+ import { unstable_composeClasses as composeClasses, useSlotProps, isHostComponent } from '@mui/base';
7
7
  import { chainPropTypes, integerPropType, elementTypeAcceptingRef, refType, HTMLElementType } from '@mui/utils';
8
8
  import styled from '../styles/styled';
9
9
  import useThemeProps from '../styles/useThemeProps';
@@ -13,7 +13,7 @@ import ownerWindow from '../utils/ownerWindow';
13
13
  import useForkRef from '../utils/useForkRef';
14
14
  import Grow from '../Grow';
15
15
  import Modal from '../Modal';
16
- import Paper from '../Paper';
16
+ import PaperBase from '../Paper';
17
17
  import { getPopoverUtilityClass } from './popoverClasses';
18
18
  import { jsx as _jsx } from "react/jsx-runtime";
19
19
  export function getOffsetTop(rect, vertical) {
@@ -54,14 +54,14 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
54
54
  };
55
55
  return composeClasses(slots, getPopoverUtilityClass, classes);
56
56
  };
57
- var PopoverRoot = styled(Modal, {
57
+ export var PopoverRoot = styled(Modal, {
58
58
  name: 'MuiPopover',
59
59
  slot: 'Root',
60
60
  overridesResolver: function overridesResolver(props, styles) {
61
61
  return styles.root;
62
62
  }
63
63
  })({});
64
- var PopoverPaper = styled(Paper, {
64
+ export var PopoverPaper = styled(PaperBase, {
65
65
  name: 'MuiPopover',
66
66
  slot: 'Paper',
67
67
  overridesResolver: function overridesResolver(props, styles) {
@@ -81,6 +81,7 @@ var PopoverPaper = styled(Paper, {
81
81
  outline: 0
82
82
  });
83
83
  var Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {
84
+ var _slotProps$paper, _slots$root, _slots$paper;
84
85
  var props = useThemeProps({
85
86
  props: inProps,
86
87
  name: 'MuiPopover'
@@ -104,7 +105,9 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {
104
105
  marginThreshold = _props$marginThreshol === void 0 ? 16 : _props$marginThreshol,
105
106
  open = props.open,
106
107
  _props$PaperProps = props.PaperProps,
107
- PaperProps = _props$PaperProps === void 0 ? {} : _props$PaperProps,
108
+ PaperPropsProp = _props$PaperProps === void 0 ? {} : _props$PaperProps,
109
+ slots = props.slots,
110
+ slotProps = props.slotProps,
108
111
  _props$transformOrigi = props.transformOrigin,
109
112
  transformOrigin = _props$transformOrigi === void 0 ? {
110
113
  vertical: 'top',
@@ -118,15 +121,16 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {
118
121
  _props$TransitionProp2 = _props$TransitionProp === void 0 ? {} : _props$TransitionProp,
119
122
  onEntering = _props$TransitionProp2.onEntering,
120
123
  TransitionProps = _objectWithoutProperties(_props$TransitionProp2, ["onEntering"]),
121
- other = _objectWithoutProperties(props, ["action", "anchorEl", "anchorOrigin", "anchorPosition", "anchorReference", "children", "className", "container", "elevation", "marginThreshold", "open", "PaperProps", "transformOrigin", "TransitionComponent", "transitionDuration", "TransitionProps"]);
124
+ other = _objectWithoutProperties(props, ["action", "anchorEl", "anchorOrigin", "anchorPosition", "anchorReference", "children", "className", "container", "elevation", "marginThreshold", "open", "PaperProps", "slots", "slotProps", "transformOrigin", "TransitionComponent", "transitionDuration", "TransitionProps"]);
125
+ var externalPaperSlotProps = (_slotProps$paper = slotProps == null ? void 0 : slotProps.paper) != null ? _slotProps$paper : PaperPropsProp;
122
126
  var paperRef = React.useRef();
123
- var handlePaperRef = useForkRef(paperRef, PaperProps.ref);
127
+ var handlePaperRef = useForkRef(paperRef, externalPaperSlotProps.ref);
124
128
  var ownerState = _extends({}, props, {
125
129
  anchorOrigin: anchorOrigin,
126
130
  anchorReference: anchorReference,
127
131
  elevation: elevation,
128
132
  marginThreshold: marginThreshold,
129
- PaperProps: PaperProps,
133
+ externalPaperSlotProps: externalPaperSlotProps,
130
134
  transformOrigin: transformOrigin,
131
135
  TransitionComponent: TransitionComponent,
132
136
  transitionDuration: transitionDurationProp,
@@ -295,16 +299,44 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {
295
299
  // If the anchorEl prop is provided, use its parent body element as the container
296
300
  // If neither are provided let the Modal take care of choosing the container
297
301
  var container = containerProp || (anchorEl ? ownerDocument(resolveAnchorEl(anchorEl)).body : undefined);
298
- return /*#__PURE__*/_jsx(PopoverRoot, _extends({
299
- BackdropProps: {
300
- invisible: true
302
+ var RootSlot = (_slots$root = slots == null ? void 0 : slots.root) != null ? _slots$root : PopoverRoot;
303
+ var PaperSlot = (_slots$paper = slots == null ? void 0 : slots.paper) != null ? _slots$paper : PopoverPaper;
304
+ var paperProps = useSlotProps({
305
+ elementType: PaperSlot,
306
+ externalSlotProps: _extends({}, externalPaperSlotProps, {
307
+ style: isPositioned ? externalPaperSlotProps.style : _extends({}, externalPaperSlotProps.style, {
308
+ opacity: 0
309
+ })
310
+ }),
311
+ additionalProps: {
312
+ elevation: elevation,
313
+ ref: handlePaperRef
301
314
  },
302
- className: clsx(classes.root, className),
303
- container: container,
304
- open: open,
305
- ref: ref,
306
- ownerState: ownerState
307
- }, other, {
315
+ ownerState: ownerState,
316
+ className: clsx(classes.paper, externalPaperSlotProps == null ? void 0 : externalPaperSlotProps.className)
317
+ });
318
+ var _useSlotProps = useSlotProps({
319
+ elementType: RootSlot,
320
+ externalSlotProps: (slotProps == null ? void 0 : slotProps.root) || {},
321
+ externalForwardedProps: other,
322
+ additionalProps: {
323
+ ref: ref,
324
+ slotProps: {
325
+ backdrop: {
326
+ invisible: true
327
+ }
328
+ },
329
+ container: container,
330
+ open: open
331
+ },
332
+ ownerState: ownerState,
333
+ className: clsx(classes.root, className)
334
+ }),
335
+ rootSlotPropsProp = _useSlotProps.slotProps,
336
+ rootProps = _objectWithoutProperties(_useSlotProps, ["slotProps"]);
337
+ return /*#__PURE__*/_jsx(RootSlot, _extends({}, rootProps, !isHostComponent(RootSlot) && {
338
+ slotProps: rootSlotPropsProp
339
+ }, {
308
340
  children: /*#__PURE__*/_jsx(TransitionComponent, _extends({
309
341
  appear: true,
310
342
  in: open,
@@ -312,17 +344,7 @@ var Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {
312
344
  onExited: handleExited,
313
345
  timeout: transitionDuration
314
346
  }, TransitionProps, {
315
- children: /*#__PURE__*/_jsx(PopoverPaper, _extends({
316
- elevation: elevation
317
- }, PaperProps, {
318
- ref: handlePaperRef,
319
- className: clsx(classes.paper, PaperProps.className)
320
- }, isPositioned ? undefined : {
321
- style: _extends({}, PaperProps.style, {
322
- opacity: 0
323
- })
324
- }, {
325
- ownerState: ownerState,
347
+ children: /*#__PURE__*/_jsx(PaperSlot, _extends({}, paperProps, {
326
348
  children: children
327
349
  }))
328
350
  }))
@@ -428,11 +450,34 @@ process.env.NODE_ENV !== "production" ? Popover.propTypes /* remove-proptypes */
428
450
  open: PropTypes.bool.isRequired,
429
451
  /**
430
452
  * Props applied to the [`Paper`](/material-ui/api/paper/) element.
453
+ *
454
+ * This prop is an alias for `slotProps.paper` and will be overriden by it if both are used.
455
+ * @deprecated Use `slotProps.paper` instead.
456
+ *
431
457
  * @default {}
432
458
  */
433
459
  PaperProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({
434
460
  component: elementTypeAcceptingRef
435
461
  }),
462
+ /**
463
+ * The extra props for the slot components.
464
+ * You can override the existing props or add new ones.
465
+ *
466
+ * @default {}
467
+ */
468
+ slotProps: PropTypes.shape({
469
+ paper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
470
+ root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
471
+ }),
472
+ /**
473
+ * The components used for each slot inside.
474
+ *
475
+ * @default {}
476
+ */
477
+ slots: PropTypes.shape({
478
+ paper: PropTypes.elementType,
479
+ root: PropTypes.elementType
480
+ }),
436
481
  /**
437
482
  * The system prop that allows defining system overrides as well as additional CSS styles.
438
483
  */
package/legacy/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v5.13.3
2
+ * @mui/material v5.13.4
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -9,8 +9,7 @@ import clsx from 'clsx';
9
9
  import { unstable_composeClasses as composeClasses } from '@mui/base';
10
10
  import { HTMLElementType } from '@mui/utils';
11
11
  import MenuList from '../MenuList';
12
- import Paper from '../Paper';
13
- import Popover from '../Popover';
12
+ import Popover, { PopoverPaper } from '../Popover';
14
13
  import styled, { rootShouldForwardProp } from '../styles/styled';
15
14
  import useTheme from '../styles/useTheme';
16
15
  import useThemeProps from '../styles/useThemeProps';
@@ -41,7 +40,7 @@ const MenuRoot = styled(Popover, {
41
40
  slot: 'Root',
42
41
  overridesResolver: (props, styles) => styles.root
43
42
  })({});
44
- const MenuPaper = styled(Paper, {
43
+ export const MenuPaper = styled(PopoverPaper, {
45
44
  name: 'MuiMenu',
46
45
  slot: 'Paper',
47
46
  overridesResolver: (props, styles) => styles.paper
@@ -148,13 +147,16 @@ const Menu = /*#__PURE__*/React.forwardRef(function Menu(inProps, ref) {
148
147
  horizontal: isRtl ? 'right' : 'left'
149
148
  },
150
149
  transformOrigin: isRtl ? RTL_ORIGIN : LTR_ORIGIN,
151
- PaperProps: _extends({
152
- as: MenuPaper
153
- }, PaperProps, {
154
- classes: _extends({}, PaperProps.classes, {
155
- root: classes.paper
150
+ slots: {
151
+ paper: MenuPaper
152
+ },
153
+ slotProps: {
154
+ paper: _extends({}, PaperProps, {
155
+ classes: _extends({}, PaperProps.classes, {
156
+ root: classes.paper
157
+ })
156
158
  })
157
- }),
159
+ },
158
160
  className: classes.root,
159
161
  open: open,
160
162
  ref: ref,
@@ -180,6 +180,13 @@ const MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {
180
180
  // item and use the first valid item as a fallback
181
181
  React.Children.forEach(children, (child, index) => {
182
182
  if (! /*#__PURE__*/React.isValidElement(child)) {
183
+ if (activeItemIndex === index) {
184
+ activeItemIndex += 1;
185
+ if (activeItemIndex >= children.length) {
186
+ // there are no focusable items within the list.
187
+ activeItemIndex = -1;
188
+ }
189
+ }
183
190
  return;
184
191
  }
185
192
  if (process.env.NODE_ENV !== 'production') {
@@ -126,6 +126,14 @@ const MobileStepper = /*#__PURE__*/React.forwardRef(function MobileStepper(inPro
126
126
  position,
127
127
  variant
128
128
  });
129
+ let value;
130
+ if (variant === 'progress') {
131
+ if (steps === 1) {
132
+ value = 100;
133
+ } else {
134
+ value = Math.ceil(activeStep / (steps - 1) * 100);
135
+ }
136
+ }
129
137
  const classes = useUtilityClasses(ownerState);
130
138
  return /*#__PURE__*/_jsxs(MobileStepperRoot, _extends({
131
139
  square: true,
@@ -148,7 +156,7 @@ const MobileStepper = /*#__PURE__*/React.forwardRef(function MobileStepper(inPro
148
156
  ownerState: ownerState,
149
157
  className: classes.progress,
150
158
  variant: "determinate",
151
- value: Math.ceil(activeStep / (steps - 1) * 100)
159
+ value: value
152
160
  }, LinearProgressProps)), nextButton]
153
161
  }));
154
162
  });
@@ -1,11 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
3
  const _excluded = ["onEntering"],
4
- _excluded2 = ["action", "anchorEl", "anchorOrigin", "anchorPosition", "anchorReference", "children", "className", "container", "elevation", "marginThreshold", "open", "PaperProps", "transformOrigin", "TransitionComponent", "transitionDuration", "TransitionProps"];
4
+ _excluded2 = ["action", "anchorEl", "anchorOrigin", "anchorPosition", "anchorReference", "children", "className", "container", "elevation", "marginThreshold", "open", "PaperProps", "slots", "slotProps", "transformOrigin", "TransitionComponent", "transitionDuration", "TransitionProps"],
5
+ _excluded3 = ["slotProps"];
5
6
  import * as React from 'react';
6
7
  import PropTypes from 'prop-types';
7
8
  import clsx from 'clsx';
8
- import { unstable_composeClasses as composeClasses } from '@mui/base';
9
+ import { unstable_composeClasses as composeClasses, useSlotProps, isHostComponent } from '@mui/base';
9
10
  import { chainPropTypes, integerPropType, elementTypeAcceptingRef, refType, HTMLElementType } from '@mui/utils';
10
11
  import styled from '../styles/styled';
11
12
  import useThemeProps from '../styles/useThemeProps';
@@ -15,7 +16,7 @@ import ownerWindow from '../utils/ownerWindow';
15
16
  import useForkRef from '../utils/useForkRef';
16
17
  import Grow from '../Grow';
17
18
  import Modal from '../Modal';
18
- import Paper from '../Paper';
19
+ import PaperBase from '../Paper';
19
20
  import { getPopoverUtilityClass } from './popoverClasses';
20
21
  import { jsx as _jsx } from "react/jsx-runtime";
21
22
  export function getOffsetTop(rect, vertical) {
@@ -56,12 +57,12 @@ const useUtilityClasses = ownerState => {
56
57
  };
57
58
  return composeClasses(slots, getPopoverUtilityClass, classes);
58
59
  };
59
- const PopoverRoot = styled(Modal, {
60
+ export const PopoverRoot = styled(Modal, {
60
61
  name: 'MuiPopover',
61
62
  slot: 'Root',
62
63
  overridesResolver: (props, styles) => styles.root
63
64
  })({});
64
- const PopoverPaper = styled(Paper, {
65
+ export const PopoverPaper = styled(PaperBase, {
65
66
  name: 'MuiPopover',
66
67
  slot: 'Paper',
67
68
  overridesResolver: (props, styles) => styles.paper
@@ -98,7 +99,9 @@ const Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {
98
99
  elevation = 8,
99
100
  marginThreshold = 16,
100
101
  open,
101
- PaperProps = {},
102
+ PaperProps: PaperPropsProp = {},
103
+ slots,
104
+ slotProps,
102
105
  transformOrigin = {
103
106
  vertical: 'top',
104
107
  horizontal: 'left'
@@ -111,14 +114,15 @@ const Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {
111
114
  } = props,
112
115
  TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded),
113
116
  other = _objectWithoutPropertiesLoose(props, _excluded2);
117
+ const externalPaperSlotProps = slotProps?.paper ?? PaperPropsProp;
114
118
  const paperRef = React.useRef();
115
- const handlePaperRef = useForkRef(paperRef, PaperProps.ref);
119
+ const handlePaperRef = useForkRef(paperRef, externalPaperSlotProps.ref);
116
120
  const ownerState = _extends({}, props, {
117
121
  anchorOrigin,
118
122
  anchorReference,
119
123
  elevation,
120
124
  marginThreshold,
121
- PaperProps,
125
+ externalPaperSlotProps,
122
126
  transformOrigin,
123
127
  TransitionComponent,
124
128
  transitionDuration: transitionDurationProp,
@@ -283,16 +287,46 @@ const Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {
283
287
  // If the anchorEl prop is provided, use its parent body element as the container
284
288
  // If neither are provided let the Modal take care of choosing the container
285
289
  const container = containerProp || (anchorEl ? ownerDocument(resolveAnchorEl(anchorEl)).body : undefined);
286
- return /*#__PURE__*/_jsx(PopoverRoot, _extends({
287
- BackdropProps: {
288
- invisible: true
290
+ const RootSlot = slots?.root ?? PopoverRoot;
291
+ const PaperSlot = slots?.paper ?? PopoverPaper;
292
+ const paperProps = useSlotProps({
293
+ elementType: PaperSlot,
294
+ externalSlotProps: _extends({}, externalPaperSlotProps, {
295
+ style: isPositioned ? externalPaperSlotProps.style : _extends({}, externalPaperSlotProps.style, {
296
+ opacity: 0
297
+ })
298
+ }),
299
+ additionalProps: {
300
+ elevation,
301
+ ref: handlePaperRef
289
302
  },
290
- className: clsx(classes.root, className),
291
- container: container,
292
- open: open,
293
- ref: ref,
294
- ownerState: ownerState
295
- }, other, {
303
+ ownerState,
304
+ className: clsx(classes.paper, externalPaperSlotProps?.className)
305
+ });
306
+ const _useSlotProps = useSlotProps({
307
+ elementType: RootSlot,
308
+ externalSlotProps: slotProps?.root || {},
309
+ externalForwardedProps: other,
310
+ additionalProps: {
311
+ ref,
312
+ slotProps: {
313
+ backdrop: {
314
+ invisible: true
315
+ }
316
+ },
317
+ container,
318
+ open
319
+ },
320
+ ownerState,
321
+ className: clsx(classes.root, className)
322
+ }),
323
+ {
324
+ slotProps: rootSlotPropsProp
325
+ } = _useSlotProps,
326
+ rootProps = _objectWithoutPropertiesLoose(_useSlotProps, _excluded3);
327
+ return /*#__PURE__*/_jsx(RootSlot, _extends({}, rootProps, !isHostComponent(RootSlot) && {
328
+ slotProps: rootSlotPropsProp
329
+ }, {
296
330
  children: /*#__PURE__*/_jsx(TransitionComponent, _extends({
297
331
  appear: true,
298
332
  in: open,
@@ -300,17 +334,7 @@ const Popover = /*#__PURE__*/React.forwardRef(function Popover(inProps, ref) {
300
334
  onExited: handleExited,
301
335
  timeout: transitionDuration
302
336
  }, TransitionProps, {
303
- children: /*#__PURE__*/_jsx(PopoverPaper, _extends({
304
- elevation: elevation
305
- }, PaperProps, {
306
- ref: handlePaperRef,
307
- className: clsx(classes.paper, PaperProps.className)
308
- }, isPositioned ? undefined : {
309
- style: _extends({}, PaperProps.style, {
310
- opacity: 0
311
- })
312
- }, {
313
- ownerState: ownerState,
337
+ children: /*#__PURE__*/_jsx(PaperSlot, _extends({}, paperProps, {
314
338
  children: children
315
339
  }))
316
340
  }))
@@ -416,11 +440,34 @@ process.env.NODE_ENV !== "production" ? Popover.propTypes /* remove-proptypes */
416
440
  open: PropTypes.bool.isRequired,
417
441
  /**
418
442
  * Props applied to the [`Paper`](/material-ui/api/paper/) element.
443
+ *
444
+ * This prop is an alias for `slotProps.paper` and will be overriden by it if both are used.
445
+ * @deprecated Use `slotProps.paper` instead.
446
+ *
419
447
  * @default {}
420
448
  */
421
449
  PaperProps: PropTypes /* @typescript-to-proptypes-ignore */.shape({
422
450
  component: elementTypeAcceptingRef
423
451
  }),
452
+ /**
453
+ * The extra props for the slot components.
454
+ * You can override the existing props or add new ones.
455
+ *
456
+ * @default {}
457
+ */
458
+ slotProps: PropTypes.shape({
459
+ paper: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
460
+ root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
461
+ }),
462
+ /**
463
+ * The components used for each slot inside.
464
+ *
465
+ * @default {}
466
+ */
467
+ slots: PropTypes.shape({
468
+ paper: PropTypes.elementType,
469
+ root: PropTypes.elementType
470
+ }),
424
471
  /**
425
472
  * The system prop that allows defining system overrides as well as additional CSS styles.
426
473
  */
package/modern/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v5.13.3
2
+ * @mui/material v5.13.4
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
package/node/Menu/Menu.js CHANGED
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.default = void 0;
7
+ exports.default = exports.MenuPaper = void 0;
8
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
9
  var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
10
10
  var React = _interopRequireWildcard(require("react"));
@@ -14,8 +14,7 @@ var _clsx = _interopRequireDefault(require("clsx"));
14
14
  var _base = require("@mui/base");
15
15
  var _utils = require("@mui/utils");
16
16
  var _MenuList = _interopRequireDefault(require("../MenuList"));
17
- var _Paper = _interopRequireDefault(require("../Paper"));
18
- var _Popover = _interopRequireDefault(require("../Popover"));
17
+ var _Popover = _interopRequireWildcard(require("../Popover"));
19
18
  var _styled = _interopRequireWildcard(require("../styles/styled"));
20
19
  var _useTheme = _interopRequireDefault(require("../styles/useTheme"));
21
20
  var _useThemeProps = _interopRequireDefault(require("../styles/useThemeProps"));
@@ -50,7 +49,7 @@ const MenuRoot = (0, _styled.default)(_Popover.default, {
50
49
  slot: 'Root',
51
50
  overridesResolver: (props, styles) => styles.root
52
51
  })({});
53
- const MenuPaper = (0, _styled.default)(_Paper.default, {
52
+ const MenuPaper = (0, _styled.default)(_Popover.PopoverPaper, {
54
53
  name: 'MuiMenu',
55
54
  slot: 'Paper',
56
55
  overridesResolver: (props, styles) => styles.paper
@@ -62,6 +61,7 @@ const MenuPaper = (0, _styled.default)(_Paper.default, {
62
61
  // Add iOS momentum scrolling for iOS < 13.0
63
62
  WebkitOverflowScrolling: 'touch'
64
63
  });
64
+ exports.MenuPaper = MenuPaper;
65
65
  const MenuMenuList = (0, _styled.default)(_MenuList.default, {
66
66
  name: 'MuiMenu',
67
67
  slot: 'List',
@@ -157,13 +157,16 @@ const Menu = /*#__PURE__*/React.forwardRef(function Menu(inProps, ref) {
157
157
  horizontal: isRtl ? 'right' : 'left'
158
158
  },
159
159
  transformOrigin: isRtl ? RTL_ORIGIN : LTR_ORIGIN,
160
- PaperProps: (0, _extends2.default)({
161
- as: MenuPaper
162
- }, PaperProps, {
163
- classes: (0, _extends2.default)({}, PaperProps.classes, {
164
- root: classes.paper
160
+ slots: {
161
+ paper: MenuPaper
162
+ },
163
+ slotProps: {
164
+ paper: (0, _extends2.default)({}, PaperProps, {
165
+ classes: (0, _extends2.default)({}, PaperProps.classes, {
166
+ root: classes.paper
167
+ })
165
168
  })
166
- }),
169
+ },
167
170
  className: classes.root,
168
171
  open: open,
169
172
  ref: ref,
@@ -189,6 +189,13 @@ const MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {
189
189
  // item and use the first valid item as a fallback
190
190
  React.Children.forEach(children, (child, index) => {
191
191
  if (! /*#__PURE__*/React.isValidElement(child)) {
192
+ if (activeItemIndex === index) {
193
+ activeItemIndex += 1;
194
+ if (activeItemIndex >= children.length) {
195
+ // there are no focusable items within the list.
196
+ activeItemIndex = -1;
197
+ }
198
+ }
192
199
  return;
193
200
  }
194
201
  if (process.env.NODE_ENV !== 'production') {
@@ -134,6 +134,14 @@ const MobileStepper = /*#__PURE__*/React.forwardRef(function MobileStepper(inPro
134
134
  position,
135
135
  variant
136
136
  });
137
+ let value;
138
+ if (variant === 'progress') {
139
+ if (steps === 1) {
140
+ value = 100;
141
+ } else {
142
+ value = Math.ceil(activeStep / (steps - 1) * 100);
143
+ }
144
+ }
137
145
  const classes = useUtilityClasses(ownerState);
138
146
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(MobileStepperRoot, (0, _extends2.default)({
139
147
  square: true,
@@ -156,7 +164,7 @@ const MobileStepper = /*#__PURE__*/React.forwardRef(function MobileStepper(inPro
156
164
  ownerState: ownerState,
157
165
  className: classes.progress,
158
166
  variant: "determinate",
159
- value: Math.ceil(activeStep / (steps - 1) * 100)
167
+ value: value
160
168
  }, LinearProgressProps)), nextButton]
161
169
  }));
162
170
  });