@mui/material 5.11.10 → 5.11.12

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 (115) hide show
  1. package/Autocomplete/Autocomplete.d.ts +4 -1
  2. package/Autocomplete/Autocomplete.js +5 -2
  3. package/Autocomplete/autocompleteClasses.d.ts +2 -0
  4. package/Autocomplete/autocompleteClasses.js +1 -1
  5. package/Badge/Badge.js +1 -1
  6. package/CHANGELOG.md +233 -0
  7. package/Container/Container.js +0 -1
  8. package/DialogTitle/DialogTitle.js +2 -2
  9. package/InputBase/InputBase.js +2 -2
  10. package/InputLabel/InputLabel.js +3 -1
  11. package/ListSubheader/ListSubheader.js +1 -0
  12. package/Menu/Menu.js +1 -1
  13. package/MenuList/MenuList.js +7 -0
  14. package/Modal/Modal.d.ts +9 -1
  15. package/Modal/Modal.js +14 -9
  16. package/OutlinedInput/OutlinedInput.js +1 -1
  17. package/README.md +0 -2
  18. package/Rating/Rating.js +2 -2
  19. package/Select/SelectInput.js +2 -22
  20. package/Slider/Slider.d.ts +5 -1
  21. package/Slider/Slider.js +16 -11
  22. package/Snackbar/Snackbar.js +21 -125
  23. package/Stack/Stack.d.ts +0 -1
  24. package/Stack/Stack.js +9 -120
  25. package/Stack/index.d.ts +3 -0
  26. package/Stack/index.js +2 -1
  27. package/Stack/stackClasses.d.ts +6 -0
  28. package/Stack/stackClasses.js +7 -0
  29. package/Unstable_Grid2/Grid2.js +2 -3
  30. package/index.js +1 -1
  31. package/legacy/Autocomplete/Autocomplete.js +5 -2
  32. package/legacy/Autocomplete/autocompleteClasses.js +1 -1
  33. package/legacy/Badge/Badge.js +1 -1
  34. package/legacy/Container/Container.js +0 -1
  35. package/legacy/DialogTitle/DialogTitle.js +2 -2
  36. package/legacy/InputBase/InputBase.js +2 -2
  37. package/legacy/InputLabel/InputLabel.js +3 -1
  38. package/legacy/ListSubheader/ListSubheader.js +1 -0
  39. package/legacy/Menu/Menu.js +1 -1
  40. package/legacy/MenuList/MenuList.js +7 -0
  41. package/legacy/Modal/Modal.js +14 -9
  42. package/legacy/OutlinedInput/OutlinedInput.js +1 -1
  43. package/legacy/Rating/Rating.js +2 -2
  44. package/legacy/Select/SelectInput.js +2 -22
  45. package/legacy/Slider/Slider.js +16 -12
  46. package/legacy/Snackbar/Snackbar.js +20 -119
  47. package/legacy/Stack/Stack.js +13 -122
  48. package/legacy/Stack/index.js +2 -1
  49. package/legacy/Stack/stackClasses.js +7 -0
  50. package/legacy/Unstable_Grid2/Grid2.js +2 -3
  51. package/legacy/index.js +1 -1
  52. package/legacy/styles/CssVarsProvider.js +1 -8
  53. package/legacy/styles/createTheme.js +1 -0
  54. package/legacy/styles/experimental_extendTheme.js +64 -40
  55. package/legacy/useAutocomplete/useAutocomplete.js +2 -2
  56. package/modern/Autocomplete/Autocomplete.js +5 -2
  57. package/modern/Autocomplete/autocompleteClasses.js +1 -1
  58. package/modern/Badge/Badge.js +1 -1
  59. package/modern/Container/Container.js +0 -1
  60. package/modern/DialogTitle/DialogTitle.js +2 -2
  61. package/modern/InputBase/InputBase.js +2 -2
  62. package/modern/InputLabel/InputLabel.js +3 -1
  63. package/modern/ListSubheader/ListSubheader.js +1 -0
  64. package/modern/Menu/Menu.js +1 -1
  65. package/modern/MenuList/MenuList.js +7 -0
  66. package/modern/Modal/Modal.js +14 -9
  67. package/modern/OutlinedInput/OutlinedInput.js +1 -1
  68. package/modern/Rating/Rating.js +2 -2
  69. package/modern/Select/SelectInput.js +2 -18
  70. package/modern/Slider/Slider.js +16 -11
  71. package/modern/Snackbar/Snackbar.js +21 -125
  72. package/modern/Stack/Stack.js +9 -120
  73. package/modern/Stack/index.js +2 -1
  74. package/modern/Stack/stackClasses.js +7 -0
  75. package/modern/Unstable_Grid2/Grid2.js +2 -3
  76. package/modern/index.js +1 -1
  77. package/modern/styles/CssVarsProvider.js +1 -5
  78. package/modern/styles/createTheme.js +1 -0
  79. package/modern/styles/experimental_extendTheme.js +62 -41
  80. package/modern/useAutocomplete/useAutocomplete.js +2 -2
  81. package/node/Autocomplete/Autocomplete.js +5 -2
  82. package/node/Autocomplete/autocompleteClasses.js +1 -1
  83. package/node/Badge/Badge.js +2 -2
  84. package/node/Container/Container.js +0 -2
  85. package/node/DialogTitle/DialogTitle.js +2 -2
  86. package/node/InputBase/InputBase.js +2 -2
  87. package/node/InputLabel/InputLabel.js +3 -1
  88. package/node/ListSubheader/ListSubheader.js +1 -0
  89. package/node/Menu/Menu.js +1 -1
  90. package/node/MenuList/MenuList.js +7 -0
  91. package/node/Modal/Modal.js +14 -9
  92. package/node/OutlinedInput/OutlinedInput.js +1 -1
  93. package/node/Rating/Rating.js +2 -2
  94. package/node/Select/SelectInput.js +2 -22
  95. package/node/Slider/Slider.js +19 -14
  96. package/node/Snackbar/Snackbar.js +20 -124
  97. package/node/Stack/Stack.js +9 -122
  98. package/node/Stack/index.js +8 -1
  99. package/node/Stack/stackClasses.js +16 -0
  100. package/node/Unstable_Grid2/Grid2.js +0 -1
  101. package/node/index.js +1 -1
  102. package/node/styles/CssVarsProvider.js +1 -9
  103. package/node/styles/createTheme.js +1 -0
  104. package/node/styles/experimental_extendTheme.js +66 -40
  105. package/node/useAutocomplete/useAutocomplete.js +8 -6
  106. package/package.json +6 -6
  107. package/styles/CssVarsProvider.d.ts +1 -2
  108. package/styles/CssVarsProvider.js +1 -8
  109. package/styles/createTheme.js +1 -0
  110. package/styles/experimental_extendTheme.d.ts +16 -0
  111. package/styles/experimental_extendTheme.js +65 -41
  112. package/umd/material-ui.development.js +3958 -3813
  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
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;
@@ -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.10
2
+ * @mui/material v5.11.12
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -28,6 +28,7 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
28
28
  var useUtilityClasses = function useUtilityClasses(ownerState) {
29
29
  var classes = ownerState.classes,
30
30
  disablePortal = ownerState.disablePortal,
31
+ expanded = ownerState.expanded,
31
32
  focused = ownerState.focused,
32
33
  fullWidth = ownerState.fullWidth,
33
34
  hasClearIcon = ownerState.hasClearIcon,
@@ -36,7 +37,7 @@ var useUtilityClasses = function useUtilityClasses(ownerState) {
36
37
  popupOpen = ownerState.popupOpen,
37
38
  size = ownerState.size;
38
39
  var slots = {
39
- root: ['root', focused && 'focused', fullWidth && 'fullWidth', hasClearIcon && 'hasClearIcon', hasPopupIcon && 'hasPopupIcon'],
40
+ root: ['root', expanded && 'expanded', focused && 'focused', fullWidth && 'fullWidth', hasClearIcon && 'hasClearIcon', hasPopupIcon && 'hasPopupIcon'],
40
41
  inputRoot: ['inputRoot'],
41
42
  input: ['input', inputFocused && 'inputFocused'],
42
43
  tag: ['tag', "tagSize".concat(capitalize(size))],
@@ -453,6 +454,7 @@ var Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps,
453
454
  getOptionProps = _useAutocomplete.getOptionProps,
454
455
  value = _useAutocomplete.value,
455
456
  dirty = _useAutocomplete.dirty,
457
+ expanded = _useAutocomplete.expanded,
456
458
  id = _useAutocomplete.id,
457
459
  popupOpen = _useAutocomplete.popupOpen,
458
460
  focused = _useAutocomplete.focused,
@@ -467,6 +469,7 @@ var Autocomplete = /*#__PURE__*/React.forwardRef(function Autocomplete(inProps,
467
469
  // If you modify this, make sure to keep the `AutocompleteOwnerState` type in sync.
468
470
  var ownerState = _extends({}, props, {
469
471
  disablePortal: disablePortal,
472
+ expanded: expanded,
470
473
  focused: focused,
471
474
  fullWidth: fullWidth,
472
475
  hasClearIcon: hasClearIcon,
@@ -923,7 +926,7 @@ process.env.NODE_ENV !== "production" ? Autocomplete.propTypes /* remove-proptyp
923
926
  *
924
927
  * @param {React.SyntheticEvent} event The event source of the callback.
925
928
  * @param {T} option The highlighted option.
926
- * @param {string} reason Can be: `"keyboard"`, `"auto"`, `"mouse"`.
929
+ * @param {string} reason Can be: `"keyboard"`, `"auto"`, `"mouse"`, `"touch"`.
927
930
  */
928
931
  onHighlightChange: PropTypes.func,
929
932
  /**
@@ -3,5 +3,5 @@ import generateUtilityClass from '../generateUtilityClass';
3
3
  export function getAutocompleteUtilityClass(slot) {
4
4
  return generateUtilityClass('MuiAutocomplete', slot);
5
5
  }
6
- var autocompleteClasses = generateUtilityClasses('MuiAutocomplete', ['root', 'fullWidth', 'focused', 'focusVisible', 'tag', 'tagSizeSmall', 'tagSizeMedium', 'hasPopupIcon', 'hasClearIcon', 'inputRoot', 'input', 'inputFocused', 'endAdornment', 'clearIndicator', 'popupIndicator', 'popupIndicatorOpen', 'popper', 'popperDisablePortal', 'paper', 'listbox', 'loading', 'noOptions', 'option', 'groupLabel', 'groupUl']);
6
+ var autocompleteClasses = generateUtilityClasses('MuiAutocomplete', ['root', 'expanded', 'fullWidth', 'focused', 'focusVisible', 'tag', 'tagSizeSmall', 'tagSizeMedium', 'hasPopupIcon', 'hasClearIcon', 'inputRoot', 'input', 'inputFocused', 'endAdornment', 'clearIndicator', 'popupIndicator', 'popupIndicatorOpen', 'popper', 'popperDisablePortal', 'paper', 'listbox', 'loading', 'noOptions', 'option', 'groupLabel', 'groupUl']);
7
7
  export default autocompleteClasses;
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types';
6
6
  import clsx from 'clsx';
7
7
  import { usePreviousProps } from '@mui/utils';
8
8
  import composeClasses from '@mui/base/composeClasses';
9
- import { useBadge } from '@mui/base/BadgeUnstyled';
9
+ import useBadge from '@mui/base/useBadge';
10
10
  import { useSlotProps } from '@mui/base';
11
11
  import styled from '../styles/styled';
12
12
  import useThemeProps from '../styles/useThemeProps';
@@ -1,4 +1,3 @@
1
- /* eslint-disable material-ui/mui-name-matches-component-name */
2
1
  import PropTypes from 'prop-types';
3
2
  import { createContainer } from '@mui/system';
4
3
  import capitalize from '../utils/capitalize';
@@ -39,14 +39,14 @@ var DialogTitle = /*#__PURE__*/React.forwardRef(function DialogTitle(inProps, re
39
39
  var classes = useUtilityClasses(ownerState);
40
40
  var _React$useContext = React.useContext(DialogContext),
41
41
  _React$useContext$tit = _React$useContext.titleId,
42
- id = _React$useContext$tit === void 0 ? idProp : _React$useContext$tit;
42
+ titleId = _React$useContext$tit === void 0 ? idProp : _React$useContext$tit;
43
43
  return /*#__PURE__*/_jsx(DialogTitleRoot, _extends({
44
44
  component: "h2",
45
45
  className: clsx(classes.root, className),
46
46
  ownerState: ownerState,
47
47
  ref: ref,
48
48
  variant: "h6",
49
- id: id
49
+ id: idProp != null ? idProp : titleId
50
50
  }, other));
51
51
  });
52
52
  process.env.NODE_ENV !== "production" ? DialogTitle.propTypes /* remove-proptypes */ = {
@@ -439,7 +439,7 @@ var InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref) {
439
439
  ref: ref,
440
440
  onClick: handleClick
441
441
  }, other, {
442
- className: clsx(classes.root, rootProps.className, className),
442
+ className: clsx(classes.root, rootProps.className, className, readOnly && 'MuiInputBase-readOnly'),
443
443
  children: [startAdornment, /*#__PURE__*/_jsx(FormControlContext.Provider, {
444
444
  value: null,
445
445
  children: /*#__PURE__*/_jsx(Input, _extends({
@@ -466,7 +466,7 @@ var InputBase = /*#__PURE__*/React.forwardRef(function InputBase(inProps, ref) {
466
466
  ownerState: _extends({}, ownerState, inputProps.ownerState)
467
467
  }, {
468
468
  ref: handleInputRef,
469
- className: clsx(classes.input, inputProps.className),
469
+ className: clsx(classes.input, inputProps.className, readOnly && 'MuiInputBase-readOnly'),
470
470
  onBlur: handleBlur,
471
471
  onChange: handleChange,
472
472
  onFocus: handleFocus
@@ -94,7 +94,9 @@ var InputLabelRoot = styled(FormLabel, {
94
94
  }, ownerState.shrink && {
95
95
  userSelect: 'none',
96
96
  pointerEvents: 'auto',
97
- maxWidth: 'calc(133% - 24px)',
97
+ // Theoretically, we should have (8+5)*2/0.75 = 34px
98
+ // but it feels a better when it bleeds a bit on the left, so 32px.
99
+ maxWidth: 'calc(133% - 32px)',
98
100
  transform: 'translate(14px, -9px) scale(0.75)'
99
101
  }));
100
102
  });
@@ -86,6 +86,7 @@ var ListSubheader = /*#__PURE__*/React.forwardRef(function ListSubheader(inProps
86
86
  ownerState: ownerState
87
87
  }, other));
88
88
  });
89
+ ListSubheader.muiSkipListHighlight = true;
89
90
  process.env.NODE_ENV !== "production" ? ListSubheader.propTypes /* remove-proptypes */ = {
90
91
  // ----------------------------- Warning --------------------------------
91
92
  // | These PropTypes are generated from the TypeScript type definitions |
@@ -157,7 +157,7 @@ var Menu = /*#__PURE__*/React.forwardRef(function Menu(inProps, ref) {
157
157
  },
158
158
  transformOrigin: isRtl ? RTL_ORIGIN : LTR_ORIGIN,
159
159
  PaperProps: _extends({
160
- component: MenuPaper
160
+ as: MenuPaper
161
161
  }, PaperProps, {
162
162
  classes: _extends({}, PaperProps.classes, {
163
163
  root: classes.paper
@@ -196,6 +196,13 @@ var MenuList = /*#__PURE__*/React.forwardRef(function MenuList(props, ref) {
196
196
  activeItemIndex = index;
197
197
  }
198
198
  }
199
+ if (activeItemIndex === index && (child.props.disabled || child.props.muiSkipListHighlight || child.type.muiSkipListHighlight)) {
200
+ activeItemIndex += 1;
201
+ if (activeItemIndex >= children.length) {
202
+ // there are no focusable items within the list.
203
+ activeItemIndex = -1;
204
+ }
205
+ }
199
206
  });
200
207
  var items = React.Children.map(children, function (child, index) {
201
208
  if (index === activeItemIndex) {