@mui/material 5.11.9 → 5.11.11

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 (117) hide show
  1. package/Autocomplete/Autocomplete.d.ts +3 -1
  2. package/Avatar/Avatar.js +1 -0
  3. package/Backdrop/Backdrop.d.ts +8 -0
  4. package/Backdrop/Backdrop.js +10 -5
  5. package/Badge/Badge.d.ts +0 -1
  6. package/Badge/Badge.js +47 -47
  7. package/CHANGELOG.md +135 -1
  8. package/Container/Container.js +0 -1
  9. package/Dialog/DialogContext.d.ts +2 -2
  10. package/Dialog/DialogContext.js +2 -2
  11. package/InputBase/InputBase.js +2 -2
  12. package/InputLabel/InputLabel.js +3 -1
  13. package/ListSubheader/ListSubheader.js +1 -0
  14. package/MenuList/MenuList.js +7 -0
  15. package/Modal/Modal.d.ts +9 -1
  16. package/Modal/Modal.js +14 -9
  17. package/OutlinedInput/OutlinedInput.js +1 -1
  18. package/README.md +0 -2
  19. package/Rating/Rating.js +2 -2
  20. package/Select/SelectInput.js +2 -22
  21. package/Slider/Slider.d.ts +5 -1
  22. package/Slider/Slider.js +16 -11
  23. package/Snackbar/Snackbar.js +21 -125
  24. package/Stack/Stack.d.ts +0 -1
  25. package/Stack/Stack.js +9 -120
  26. package/Stack/index.d.ts +3 -0
  27. package/Stack/index.js +2 -1
  28. package/Stack/stackClasses.d.ts +6 -0
  29. package/Stack/stackClasses.js +7 -0
  30. package/SwipeableDrawer/SwipeableDrawer.js +3 -3
  31. package/Unstable_Grid2/Grid2.js +2 -3
  32. package/index.js +1 -1
  33. package/internal/SwitchBase.js +1 -1
  34. package/legacy/Avatar/Avatar.js +1 -0
  35. package/legacy/Backdrop/Backdrop.js +9 -3
  36. package/legacy/Badge/Badge.js +48 -48
  37. package/legacy/Container/Container.js +0 -1
  38. package/legacy/Dialog/DialogContext.js +2 -2
  39. package/legacy/InputBase/InputBase.js +2 -2
  40. package/legacy/InputLabel/InputLabel.js +3 -1
  41. package/legacy/ListSubheader/ListSubheader.js +1 -0
  42. package/legacy/MenuList/MenuList.js +7 -0
  43. package/legacy/Modal/Modal.js +14 -9
  44. package/legacy/OutlinedInput/OutlinedInput.js +1 -1
  45. package/legacy/Rating/Rating.js +2 -2
  46. package/legacy/Select/SelectInput.js +2 -22
  47. package/legacy/Slider/Slider.js +16 -12
  48. package/legacy/Snackbar/Snackbar.js +20 -119
  49. package/legacy/Stack/Stack.js +13 -122
  50. package/legacy/Stack/index.js +2 -1
  51. package/legacy/Stack/stackClasses.js +7 -0
  52. package/legacy/SwipeableDrawer/SwipeableDrawer.js +3 -3
  53. package/legacy/Unstable_Grid2/Grid2.js +2 -3
  54. package/legacy/index.js +1 -1
  55. package/legacy/internal/SwitchBase.js +1 -1
  56. package/legacy/styles/createTheme.js +1 -0
  57. package/legacy/useAutocomplete/useAutocomplete.js +2 -2
  58. package/legacy/useMediaQuery/useMediaQuery.js +12 -7
  59. package/modern/Avatar/Avatar.js +1 -0
  60. package/modern/Backdrop/Backdrop.js +10 -5
  61. package/modern/Badge/Badge.js +47 -47
  62. package/modern/Container/Container.js +0 -1
  63. package/modern/Dialog/DialogContext.js +2 -2
  64. package/modern/InputBase/InputBase.js +2 -2
  65. package/modern/InputLabel/InputLabel.js +3 -1
  66. package/modern/ListSubheader/ListSubheader.js +1 -0
  67. package/modern/MenuList/MenuList.js +7 -0
  68. package/modern/Modal/Modal.js +14 -9
  69. package/modern/OutlinedInput/OutlinedInput.js +1 -1
  70. package/modern/Rating/Rating.js +2 -2
  71. package/modern/Select/SelectInput.js +2 -18
  72. package/modern/Slider/Slider.js +16 -11
  73. package/modern/Snackbar/Snackbar.js +21 -125
  74. package/modern/Stack/Stack.js +9 -120
  75. package/modern/Stack/index.js +2 -1
  76. package/modern/Stack/stackClasses.js +7 -0
  77. package/modern/SwipeableDrawer/SwipeableDrawer.js +3 -3
  78. package/modern/Unstable_Grid2/Grid2.js +2 -3
  79. package/modern/index.js +1 -1
  80. package/modern/internal/SwitchBase.js +1 -1
  81. package/modern/styles/createTheme.js +1 -0
  82. package/modern/useAutocomplete/useAutocomplete.js +2 -2
  83. package/modern/useMediaQuery/useMediaQuery.js +9 -7
  84. package/node/Avatar/Avatar.js +1 -0
  85. package/node/Backdrop/Backdrop.js +10 -5
  86. package/node/Badge/Badge.js +46 -47
  87. package/node/Container/Container.js +0 -2
  88. package/node/Dialog/DialogContext.js +4 -2
  89. package/node/InputBase/InputBase.js +2 -2
  90. package/node/InputLabel/InputLabel.js +3 -1
  91. package/node/ListSubheader/ListSubheader.js +1 -0
  92. package/node/MenuList/MenuList.js +7 -0
  93. package/node/Modal/Modal.js +14 -9
  94. package/node/OutlinedInput/OutlinedInput.js +1 -1
  95. package/node/Rating/Rating.js +2 -2
  96. package/node/Select/SelectInput.js +2 -22
  97. package/node/Slider/Slider.js +19 -14
  98. package/node/Snackbar/Snackbar.js +20 -124
  99. package/node/Stack/Stack.js +9 -122
  100. package/node/Stack/index.js +8 -1
  101. package/node/Stack/stackClasses.js +16 -0
  102. package/node/SwipeableDrawer/SwipeableDrawer.js +3 -3
  103. package/node/Unstable_Grid2/Grid2.js +0 -1
  104. package/node/index.js +1 -1
  105. package/node/internal/SwitchBase.js +1 -1
  106. package/node/styles/createTheme.js +1 -0
  107. package/node/useAutocomplete/useAutocomplete.js +8 -6
  108. package/node/useMediaQuery/useMediaQuery.js +9 -7
  109. package/package.json +6 -6
  110. package/styles/createTheme.js +1 -0
  111. package/styles/props.d.ts +2 -2
  112. package/umd/material-ui.development.js +4209 -4241
  113. package/umd/material-ui.production.min.js +21 -21
  114. package/useAutocomplete/useAutocomplete.d.ts +2 -2
  115. package/useAutocomplete/useAutocomplete.js +2 -2
  116. package/useMediaQuery/useMediaQuery.d.ts +19 -4
  117. package/useMediaQuery/useMediaQuery.js +9 -7
@@ -329,8 +329,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
329
329
  computeDisplay = true;
330
330
  }
331
331
  }
332
- const items = childrenArray.map((child, index, arr) => {
333
- var _arr$, _arr$$props, _arr$2, _arr$2$props;
332
+ const items = childrenArray.map(child => {
334
333
  if (! /*#__PURE__*/React.isValidElement(child)) {
335
334
  return null;
336
335
  }
@@ -357,25 +356,6 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
357
356
  if (selected) {
358
357
  foundMatch = true;
359
358
  }
360
- if (child.props.value === undefined) {
361
- return /*#__PURE__*/React.cloneElement(child, {
362
- 'aria-readonly': true,
363
- role: 'option'
364
- });
365
- }
366
- const isFirstSelectableElement = () => {
367
- if (value) {
368
- return selected;
369
- }
370
- const firstSelectableElement = arr.find(item => {
371
- var _item$props;
372
- return (item == null ? void 0 : (_item$props = item.props) == null ? void 0 : _item$props.value) !== undefined && item.props.disabled !== true;
373
- });
374
- if (child === firstSelectableElement) {
375
- return true;
376
- }
377
- return selected;
378
- };
379
359
  return /*#__PURE__*/React.cloneElement(child, {
380
360
  'aria-selected': selected ? 'true' : 'false',
381
361
  onClick: handleItemClick(child),
@@ -391,7 +371,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
391
371
  }
392
372
  },
393
373
  role: 'option',
394
- selected: ((_arr$ = arr[0]) == null ? void 0 : (_arr$$props = _arr$.props) == null ? void 0 : _arr$$props.value) === undefined || ((_arr$2 = arr[0]) == null ? void 0 : (_arr$2$props = _arr$2.props) == null ? void 0 : _arr$2$props.disabled) === true ? isFirstSelectableElement() : selected,
374
+ selected,
395
375
  value: undefined,
396
376
  // The value is most likely not a valid HTML attribute.
397
377
  'data-value': child.props.value // Instead, we provide it as a data attribute.
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { SlotComponentProps } from '@mui/base';
3
- import { Mark } from '@mui/base/SliderUnstyled';
3
+ import { Mark } from '@mui/base/useSlider';
4
4
  import { SxProps } from '@mui/system';
5
5
  import { OverridableStringUnion } from '@mui/types';
6
6
  import { Theme } from '../styles';
@@ -86,6 +86,10 @@ export interface SliderTypeMap<D extends React.ElementType = 'span', P = {}> {
86
86
  * Override or extend the styles applied to the component.
87
87
  */
88
88
  classes?: Partial<SliderClasses>;
89
+ /**
90
+ * @ignore
91
+ */
92
+ className?: string;
89
93
  /**
90
94
  * The default value. Use when the component is not controlled.
91
95
  */
package/Slider/Slider.js CHANGED
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { chainPropTypes } from '@mui/utils';
8
8
  import { isHostComponent, useSlotProps, unstable_composeClasses as composeClasses } from '@mui/base';
9
- import { useSlider } from '@mui/base/SliderUnstyled';
9
+ import useSlider, { valueToPercent } from '@mui/base/useSlider';
10
10
  import { alpha, lighten, darken } from '@mui/system';
11
11
  import useThemeProps from '../styles/useThemeProps';
12
12
  import styled, { slotShouldForwardProp } from '../styles/styled';
@@ -17,7 +17,6 @@ import SliderValueLabel from './SliderValueLabel';
17
17
  import sliderClasses, { getSliderUtilityClass } from './sliderClasses';
18
18
  import { jsx as _jsx } from "react/jsx-runtime";
19
19
  import { jsxs as _jsxs } from "react/jsx-runtime";
20
- const valueToPercent = (value, min, max) => (value - min) * 100 / (max - min);
21
20
  function Identity(x) {
22
21
  return x;
23
22
  }
@@ -458,7 +457,6 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
458
457
  componentsProps = {},
459
458
  color = 'primary',
460
459
  classes: classesProp,
461
- // eslint-disable-next-line react/prop-types
462
460
  className,
463
461
  disableSwap = false,
464
462
  disabled = false,
@@ -565,7 +563,8 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
565
563
  elementType: ThumbSlot,
566
564
  getSlotProps: getThumbProps,
567
565
  externalSlotProps: thumbSlotProps,
568
- ownerState: _extends({}, ownerState, thumbSlotProps == null ? void 0 : thumbSlotProps.ownerState)
566
+ ownerState: _extends({}, ownerState, thumbSlotProps == null ? void 0 : thumbSlotProps.ownerState),
567
+ className: classes.thumb
569
568
  });
570
569
  const valueLabelProps = useSlotProps({
571
570
  elementType: ValueLabelSlot,
@@ -582,7 +581,8 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
582
581
  const markLabelProps = useSlotProps({
583
582
  elementType: MarkLabelSlot,
584
583
  externalSlotProps: markLabelSlotProps,
585
- ownerState
584
+ ownerState,
585
+ className: classes.markLabel
586
586
  });
587
587
  const inputSliderProps = useSlotProps({
588
588
  elementType: InputSlot,
@@ -623,8 +623,10 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
623
623
  const percent = valueToPercent(value, min, max);
624
624
  const style = axisProps[axis].offset(percent);
625
625
  const ValueLabelComponent = valueLabelDisplay === 'off' ? Forward : ValueLabelSlot;
626
- return /*#__PURE__*/_jsx(React.Fragment, {
627
- children: /*#__PURE__*/_jsx(ValueLabelComponent, _extends({}, !isHostComponent(ValueLabelComponent) && {
626
+ return (
627
+ /*#__PURE__*/
628
+ /* TODO v6: Change component structure. It will help in avoiding the complicated React.cloneElement API added in SliderValueLabel component. Should be: Thumb -> Input, ValueLabel. Follow Joy UI's Slider structure. */
629
+ _jsx(ValueLabelComponent, _extends({}, !isHostComponent(ValueLabelComponent) && {
628
630
  valueLabelFormat,
629
631
  valueLabelDisplay,
630
632
  value: typeof valueLabelFormat === 'function' ? valueLabelFormat(scale(value), index) : valueLabelFormat,
@@ -633,8 +635,7 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
633
635
  disabled
634
636
  }, valueLabelProps, {
635
637
  children: /*#__PURE__*/_jsx(ThumbSlot, _extends({
636
- "data-index": index,
637
- "data-focusvisible": focusedThumbIndex === index
638
+ "data-index": index
638
639
  }, thumbProps, {
639
640
  className: clsx(classes.thumb, thumbProps.className, active === index && classes.active, focusedThumbIndex === index && classes.focusVisible),
640
641
  style: _extends({}, style, {
@@ -649,8 +650,8 @@ const Slider = /*#__PURE__*/React.forwardRef(function Slider(inputProps, ref) {
649
650
  value: values[index]
650
651
  }, inputSliderProps))
651
652
  }))
652
- }))
653
- }, index);
653
+ }), index)
654
+ );
654
655
  })]
655
656
  }));
656
657
  });
@@ -691,6 +692,10 @@ process.env.NODE_ENV !== "production" ? Slider.propTypes /* remove-proptypes */
691
692
  * Override or extend the styles applied to the component.
692
693
  */
693
694
  classes: PropTypes.object,
695
+ /**
696
+ * @ignore
697
+ */
698
+ className: PropTypes.string,
694
699
  /**
695
700
  * The color of the component.
696
701
  * It supports both default and custom theme colors, which can be added as shown in the
@@ -4,13 +4,12 @@ const _excluded = ["onEnter", "onExited"],
4
4
  _excluded2 = ["action", "anchorOrigin", "autoHideDuration", "children", "className", "ClickAwayListenerProps", "ContentProps", "disableWindowBlurListener", "message", "onBlur", "onClose", "onFocus", "onMouseEnter", "onMouseLeave", "open", "resumeHideDuration", "TransitionComponent", "transitionDuration", "TransitionProps"];
5
5
  import * as React from 'react';
6
6
  import PropTypes from 'prop-types';
7
- import clsx from 'clsx';
8
- import { unstable_composeClasses as composeClasses } from '@mui/base';
7
+ import { unstable_composeClasses as composeClasses, useSlotProps } from '@mui/base';
9
8
  import ClickAwayListener from '@mui/base/ClickAwayListener';
9
+ import useSnackbar from '@mui/base/useSnackbar';
10
10
  import styled from '../styles/styled';
11
11
  import useTheme from '../styles/useTheme';
12
12
  import useThemeProps from '../styles/useThemeProps';
13
- import useEventCallback from '../utils/useEventCallback';
14
13
  import capitalize from '../utils/capitalize';
15
14
  import Grow from '../Grow';
16
15
  import SnackbarContent from '../SnackbarContent';
@@ -100,13 +99,7 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
100
99
  ContentProps,
101
100
  disableWindowBlurListener = false,
102
101
  message,
103
- onBlur,
104
- onClose,
105
- onFocus,
106
- onMouseEnter,
107
- onMouseLeave,
108
102
  open,
109
- resumeHideDuration,
110
103
  TransitionComponent = Grow,
111
104
  transitionDuration = defaultTransitionDuration,
112
105
  TransitionProps: {
@@ -120,76 +113,27 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
120
113
  anchorOrigin: {
121
114
  vertical,
122
115
  horizontal
123
- }
116
+ },
117
+ autoHideDuration,
118
+ disableWindowBlurListener,
119
+ TransitionComponent,
120
+ transitionDuration
124
121
  });
125
122
  const classes = useUtilityClasses(ownerState);
126
- const timerAutoHide = React.useRef();
123
+ const {
124
+ getRootProps,
125
+ onClickAway
126
+ } = useSnackbar(_extends({}, ownerState, {
127
+ ref
128
+ }));
127
129
  const [exited, setExited] = React.useState(true);
128
- const handleClose = useEventCallback((...args) => {
129
- if (onClose) {
130
- onClose(...args);
131
- }
130
+ const rootProps = useSlotProps({
131
+ elementType: SnackbarRoot,
132
+ getSlotProps: getRootProps,
133
+ externalForwardedProps: other,
134
+ ownerState,
135
+ className: [classes.root, className]
132
136
  });
133
- const setAutoHideTimer = useEventCallback(autoHideDurationParam => {
134
- if (!onClose || autoHideDurationParam == null) {
135
- return;
136
- }
137
- clearTimeout(timerAutoHide.current);
138
- timerAutoHide.current = setTimeout(() => {
139
- handleClose(null, 'timeout');
140
- }, autoHideDurationParam);
141
- });
142
- React.useEffect(() => {
143
- if (open) {
144
- setAutoHideTimer(autoHideDuration);
145
- }
146
- return () => {
147
- clearTimeout(timerAutoHide.current);
148
- };
149
- }, [open, autoHideDuration, setAutoHideTimer]);
150
-
151
- // Pause the timer when the user is interacting with the Snackbar
152
- // or when the user hide the window.
153
- const handlePause = () => {
154
- clearTimeout(timerAutoHide.current);
155
- };
156
-
157
- // Restart the timer when the user is no longer interacting with the Snackbar
158
- // or when the window is shown back.
159
- const handleResume = React.useCallback(() => {
160
- if (autoHideDuration != null) {
161
- setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);
162
- }
163
- }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);
164
- const handleFocus = event => {
165
- if (onFocus) {
166
- onFocus(event);
167
- }
168
- handlePause();
169
- };
170
- const handleMouseEnter = event => {
171
- if (onMouseEnter) {
172
- onMouseEnter(event);
173
- }
174
- handlePause();
175
- };
176
- const handleBlur = event => {
177
- if (onBlur) {
178
- onBlur(event);
179
- }
180
- handleResume();
181
- };
182
- const handleMouseLeave = event => {
183
- if (onMouseLeave) {
184
- onMouseLeave(event);
185
- }
186
- handleResume();
187
- };
188
- const handleClickAway = event => {
189
- if (onClose) {
190
- onClose(event, 'clickaway');
191
- }
192
- };
193
137
  const handleExited = node => {
194
138
  setExited(true);
195
139
  if (onExited) {
@@ -202,63 +146,15 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
202
146
  onEnter(node, isAppearing);
203
147
  }
204
148
  };
205
- React.useEffect(() => {
206
- // TODO: window global should be refactored here
207
- if (!disableWindowBlurListener && open) {
208
- window.addEventListener('focus', handleResume);
209
- window.addEventListener('blur', handlePause);
210
- return () => {
211
- window.removeEventListener('focus', handleResume);
212
- window.removeEventListener('blur', handlePause);
213
- };
214
- }
215
- return undefined;
216
- }, [disableWindowBlurListener, handleResume, open]);
217
- React.useEffect(() => {
218
- if (!open) {
219
- return undefined;
220
- }
221
-
222
- /**
223
- * @param {KeyboardEvent} nativeEvent
224
- */
225
- function handleKeyDown(nativeEvent) {
226
- if (!nativeEvent.defaultPrevented) {
227
- // IE11, Edge (prior to using Bink?) use 'Esc'
228
- if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {
229
- // not calling `preventDefault` since we don't know if people may ignore this event e.g. a permanently open snackbar
230
- if (onClose) {
231
- onClose(nativeEvent, 'escapeKeyDown');
232
- }
233
- }
234
- }
235
- }
236
- document.addEventListener('keydown', handleKeyDown);
237
- return () => {
238
- document.removeEventListener('keydown', handleKeyDown);
239
- };
240
- }, [exited, open, onClose]);
241
149
 
242
150
  // So we only render active snackbars.
243
151
  if (!open && exited) {
244
152
  return null;
245
153
  }
246
154
  return /*#__PURE__*/_jsx(ClickAwayListener, _extends({
247
- onClickAway: handleClickAway
155
+ onClickAway: onClickAway
248
156
  }, ClickAwayListenerProps, {
249
- children: /*#__PURE__*/_jsx(SnackbarRoot, _extends({
250
- className: clsx(classes.root, className),
251
- onBlur: handleBlur,
252
- onFocus: handleFocus,
253
- onMouseEnter: handleMouseEnter,
254
- onMouseLeave: handleMouseLeave,
255
- ownerState: ownerState,
256
- ref: ref
257
- // ClickAwayListener adds an `onClick` prop which results in the alert not being announced.
258
- // See https://github.com/mui/material-ui/issues/29080
259
- ,
260
- role: "presentation"
261
- }, other, {
157
+ children: /*#__PURE__*/_jsx(SnackbarRoot, _extends({}, rootProps, {
262
158
  children: /*#__PURE__*/_jsx(TransitionComponent, _extends({
263
159
  appear: true,
264
160
  in: open,
package/Stack/Stack.d.ts CHANGED
@@ -6,7 +6,6 @@ import { Theme } from '../styles/createTheme';
6
6
  export interface StackTypeMap<P = {}, D extends React.ElementType = 'div'> {
7
7
  props: P &
8
8
  SystemProps<Theme> & {
9
- ref?: React.Ref<unknown>;
10
9
  /**
11
10
  * The content of the component.
12
11
  */
package/Stack/Stack.js CHANGED
@@ -1,128 +1,17 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["component", "direction", "spacing", "divider", "children"];
4
- import * as React from 'react';
5
1
  import PropTypes from 'prop-types';
6
- import { createUnarySpacing, getValue, handleBreakpoints, mergeBreakpointsInOrder, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';
7
- import { deepmerge } from '@mui/utils';
2
+ import { createStack } from '@mui/system';
8
3
  import styled from '../styles/styled';
9
4
  import useThemeProps from '../styles/useThemeProps';
10
-
11
- /**
12
- * Return an array with the separator React element interspersed between
13
- * each React node of the input children.
14
- *
15
- * > joinChildren([1,2,3], 0)
16
- * [1,0,2,0,3]
17
- */
18
- import { jsx as _jsx } from "react/jsx-runtime";
19
- function joinChildren(children, separator) {
20
- const childrenArray = React.Children.toArray(children).filter(Boolean);
21
- return childrenArray.reduce((output, child, index) => {
22
- output.push(child);
23
- if (index < childrenArray.length - 1) {
24
- output.push( /*#__PURE__*/React.cloneElement(separator, {
25
- key: `separator-${index}`
26
- }));
27
- }
28
- return output;
29
- }, []);
30
- }
31
- const getSideFromDirection = direction => {
32
- return {
33
- row: 'Left',
34
- 'row-reverse': 'Right',
35
- column: 'Top',
36
- 'column-reverse': 'Bottom'
37
- }[direction];
38
- };
39
- export const style = ({
40
- ownerState,
41
- theme
42
- }) => {
43
- let styles = _extends({
44
- display: 'flex',
45
- flexDirection: 'column'
46
- }, handleBreakpoints({
47
- theme
48
- }, resolveBreakpointValues({
49
- values: ownerState.direction,
50
- breakpoints: theme.breakpoints.values
51
- }), propValue => ({
52
- flexDirection: propValue
53
- })));
54
- if (ownerState.spacing) {
55
- const transformer = createUnarySpacing(theme);
56
- const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {
57
- if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {
58
- acc[breakpoint] = true;
59
- }
60
- return acc;
61
- }, {});
62
- const directionValues = resolveBreakpointValues({
63
- values: ownerState.direction,
64
- base
65
- });
66
- const spacingValues = resolveBreakpointValues({
67
- values: ownerState.spacing,
68
- base
69
- });
70
- if (typeof directionValues === 'object') {
71
- Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {
72
- const directionValue = directionValues[breakpoint];
73
- if (!directionValue) {
74
- const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';
75
- directionValues[breakpoint] = previousDirectionValue;
76
- }
77
- });
78
- }
79
- const styleFromPropValue = (propValue, breakpoint) => {
80
- return {
81
- '& > :not(style) + :not(style)': {
82
- margin: 0,
83
- [`margin${getSideFromDirection(breakpoint ? directionValues[breakpoint] : ownerState.direction)}`]: getValue(transformer, propValue)
84
- }
85
- };
86
- };
87
- styles = deepmerge(styles, handleBreakpoints({
88
- theme
89
- }, spacingValues, styleFromPropValue));
90
- }
91
- styles = mergeBreakpointsInOrder(theme.breakpoints, styles);
92
- return styles;
93
- };
94
- const StackRoot = styled('div', {
95
- name: 'MuiStack',
96
- slot: 'Root',
97
- overridesResolver: (props, styles) => {
98
- return [styles.root];
99
- }
100
- })(style);
101
- const Stack = /*#__PURE__*/React.forwardRef(function Stack(inProps, ref) {
102
- const themeProps = useThemeProps({
5
+ const Stack = createStack({
6
+ createStyledComponent: styled('div', {
7
+ name: 'MuiStack',
8
+ slot: 'Root',
9
+ overridesResolver: (props, styles) => styles.root
10
+ }),
11
+ useThemeProps: inProps => useThemeProps({
103
12
  props: inProps,
104
13
  name: 'MuiStack'
105
- });
106
- const props = extendSxProp(themeProps);
107
- const {
108
- component = 'div',
109
- direction = 'column',
110
- spacing = 0,
111
- divider,
112
- children
113
- } = props,
114
- other = _objectWithoutPropertiesLoose(props, _excluded);
115
- const ownerState = {
116
- direction,
117
- spacing
118
- };
119
- return /*#__PURE__*/_jsx(StackRoot, _extends({
120
- as: component,
121
- ownerState: ownerState,
122
- ref: ref
123
- }, other, {
124
- children: divider ? joinChildren(children, divider) : children
125
- }));
14
+ })
126
15
  });
127
16
  process.env.NODE_ENV !== "production" ? Stack.propTypes /* remove-proptypes */ = {
128
17
  // ----------------------------- Warning --------------------------------
package/Stack/index.d.ts CHANGED
@@ -1,2 +1,5 @@
1
1
  export { default } from './Stack';
2
2
  export * from './Stack';
3
+
4
+ export { default as stackClasses } from './stackClasses';
5
+ export * from './stackClasses';
package/Stack/index.js CHANGED
@@ -1 +1,2 @@
1
- export { default } from './Stack';
1
+ export { default } from './Stack';
2
+ export { default as stackClasses } from './stackClasses';
@@ -0,0 +1,6 @@
1
+ import { StackClasses } from '@mui/system';
2
+ export type { StackClassKey } from '@mui/system';
3
+ export type { StackClasses };
4
+ export declare function getStackUtilityClass(slot: string): string;
5
+ declare const stackClasses: StackClasses;
6
+ export default stackClasses;
@@ -0,0 +1,7 @@
1
+ import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
2
+ import generateUtilityClass from '../generateUtilityClass';
3
+ export function getStackUtilityClass(slot) {
4
+ return generateUtilityClass('MuiStack', slot);
5
+ }
6
+ const stackClasses = generateUtilityClasses('MuiStack', ['root']);
7
+ export default stackClasses;
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["BackdropProps"],
4
4
  _excluded2 = ["anchor", "disableBackdropTransition", "disableDiscovery", "disableSwipeToOpen", "hideBackdrop", "hysteresis", "allowSwipeInChildren", "minFlingVelocity", "ModalProps", "onClose", "onOpen", "open", "PaperProps", "SwipeAreaProps", "swipeAreaWidth", "transitionDuration", "variant"];
5
5
  import * as React from 'react';
6
- import { flushSync } from 'react-dom';
6
+ import * as ReactDOM from 'react-dom';
7
7
  import PropTypes from 'prop-types';
8
8
  import { elementTypeAcceptingRef } from '@mui/utils';
9
9
  import { useThemeProps } from '@mui/system';
@@ -207,7 +207,7 @@ const SwipeableDrawer = /*#__PURE__*/React.forwardRef(function SwipeableDrawer(i
207
207
  }
208
208
  claimedSwipeInstance = null;
209
209
  touchDetected.current = false;
210
- flushSync(() => {
210
+ ReactDOM.flushSync(() => {
211
211
  setMaybeSwiping(false);
212
212
  });
213
213
 
@@ -259,7 +259,7 @@ const SwipeableDrawer = /*#__PURE__*/React.forwardRef(function SwipeableDrawer(i
259
259
  // this is because Safari Mobile will not fire any mouse events (still fires touch though) if the DOM changes during mousemove.
260
260
  // so do this change on first touchmove instead of touchstart
261
261
  if (force || !(disableDiscovery && allowSwipeInChildren)) {
262
- flushSync(() => {
262
+ ReactDOM.flushSync(() => {
263
263
  setMaybeSwiping(true);
264
264
  });
265
265
  }
@@ -1,13 +1,12 @@
1
1
  import PropTypes from 'prop-types';
2
- import { createGrid } from '@mui/system/Unstable_Grid';
2
+ import { createGrid as createGrid2 } from '@mui/system/Unstable_Grid';
3
3
  import { styled, useThemeProps } from '../styles';
4
- const Grid2 = createGrid({
4
+ const Grid2 = createGrid2({
5
5
  createStyledComponent: styled('div', {
6
6
  name: 'MuiGrid2',
7
7
  overridesResolver: (props, styles) => styles.root
8
8
  }),
9
9
  componentName: 'MuiGrid2',
10
- // eslint-disable-next-line material-ui/mui-name-matches-component-name
11
10
  useThemeProps: inProps => useThemeProps({
12
11
  props: inProps,
13
12
  name: 'MuiGrid2'
package/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v5.11.9
2
+ * @mui/material v5.11.11
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -146,7 +146,7 @@ const SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref)
146
146
  defaultChecked: defaultChecked,
147
147
  className: classes.input,
148
148
  disabled: disabled,
149
- id: hasLabelFor && id,
149
+ id: hasLabelFor ? id : undefined,
150
150
  name: name,
151
151
  onChange: handleInputChange,
152
152
  readOnly: readOnly,
@@ -169,6 +169,7 @@ var Avatar = /*#__PURE__*/React.forwardRef(function Avatar(inProps, ref) {
169
169
  children = alt[0];
170
170
  } else {
171
171
  children = /*#__PURE__*/_jsx(AvatarFallback, {
172
+ ownerState: ownerState,
172
173
  className: classes.fallback
173
174
  });
174
175
  }
@@ -48,13 +48,13 @@ var Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(inProps, ref) {
48
48
  name: 'MuiBackdrop'
49
49
  });
50
50
  var children = props.children,
51
+ className = props.className,
51
52
  _props$component = props.component,
52
53
  component = _props$component === void 0 ? 'div' : _props$component,
53
54
  _props$components = props.components,
54
55
  components = _props$components === void 0 ? {} : _props$components,
55
56
  _props$componentsProp = props.componentsProps,
56
57
  componentsProps = _props$componentsProp === void 0 ? {} : _props$componentsProp,
57
- className = props.className,
58
58
  _props$invisible = props.invisible,
59
59
  invisible = _props$invisible === void 0 ? false : _props$invisible,
60
60
  open = props.open,
@@ -62,10 +62,10 @@ var Backdrop = /*#__PURE__*/React.forwardRef(function Backdrop(inProps, ref) {
62
62
  slotProps = _props$slotProps === void 0 ? {} : _props$slotProps,
63
63
  _props$slots = props.slots,
64
64
  slots = _props$slots === void 0 ? {} : _props$slots,
65
- transitionDuration = props.transitionDuration,
66
65
  _props$TransitionComp = props.TransitionComponent,
67
66
  TransitionComponent = _props$TransitionComp === void 0 ? Fade : _props$TransitionComp,
68
- other = _objectWithoutProperties(props, ["children", "component", "components", "componentsProps", "className", "invisible", "open", "slotProps", "slots", "transitionDuration", "TransitionComponent"]);
67
+ transitionDuration = props.transitionDuration,
68
+ other = _objectWithoutProperties(props, ["children", "className", "component", "components", "componentsProps", "invisible", "open", "slotProps", "slots", "TransitionComponent", "transitionDuration"]);
69
69
  var ownerState = _extends({}, props, {
70
70
  component: component,
71
71
  invisible: invisible
@@ -168,6 +168,12 @@ process.env.NODE_ENV !== "production" ? Backdrop.propTypes /* remove-proptypes *
168
168
  * The system prop that allows defining system overrides as well as additional CSS styles.
169
169
  */
170
170
  sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),
171
+ /**
172
+ * The component used for the transition.
173
+ * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.
174
+ * @default Fade
175
+ */
176
+ TransitionComponent: PropTypes.elementType,
171
177
  /**
172
178
  * The duration for the transition, in milliseconds.
173
179
  * You may specify a single timeout for all transitions, or individually with an object.