@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.
- package/Autocomplete/Autocomplete.d.ts +3 -1
- package/Avatar/Avatar.js +1 -0
- package/Backdrop/Backdrop.d.ts +8 -0
- package/Backdrop/Backdrop.js +10 -5
- package/Badge/Badge.d.ts +0 -1
- package/Badge/Badge.js +47 -47
- package/CHANGELOG.md +135 -1
- package/Container/Container.js +0 -1
- package/Dialog/DialogContext.d.ts +2 -2
- package/Dialog/DialogContext.js +2 -2
- package/InputBase/InputBase.js +2 -2
- package/InputLabel/InputLabel.js +3 -1
- package/ListSubheader/ListSubheader.js +1 -0
- package/MenuList/MenuList.js +7 -0
- package/Modal/Modal.d.ts +9 -1
- package/Modal/Modal.js +14 -9
- package/OutlinedInput/OutlinedInput.js +1 -1
- package/README.md +0 -2
- package/Rating/Rating.js +2 -2
- package/Select/SelectInput.js +2 -22
- package/Slider/Slider.d.ts +5 -1
- package/Slider/Slider.js +16 -11
- package/Snackbar/Snackbar.js +21 -125
- package/Stack/Stack.d.ts +0 -1
- package/Stack/Stack.js +9 -120
- package/Stack/index.d.ts +3 -0
- package/Stack/index.js +2 -1
- package/Stack/stackClasses.d.ts +6 -0
- package/Stack/stackClasses.js +7 -0
- package/SwipeableDrawer/SwipeableDrawer.js +3 -3
- package/Unstable_Grid2/Grid2.js +2 -3
- package/index.js +1 -1
- package/internal/SwitchBase.js +1 -1
- package/legacy/Avatar/Avatar.js +1 -0
- package/legacy/Backdrop/Backdrop.js +9 -3
- package/legacy/Badge/Badge.js +48 -48
- package/legacy/Container/Container.js +0 -1
- package/legacy/Dialog/DialogContext.js +2 -2
- package/legacy/InputBase/InputBase.js +2 -2
- package/legacy/InputLabel/InputLabel.js +3 -1
- package/legacy/ListSubheader/ListSubheader.js +1 -0
- package/legacy/MenuList/MenuList.js +7 -0
- package/legacy/Modal/Modal.js +14 -9
- package/legacy/OutlinedInput/OutlinedInput.js +1 -1
- package/legacy/Rating/Rating.js +2 -2
- package/legacy/Select/SelectInput.js +2 -22
- package/legacy/Slider/Slider.js +16 -12
- package/legacy/Snackbar/Snackbar.js +20 -119
- package/legacy/Stack/Stack.js +13 -122
- package/legacy/Stack/index.js +2 -1
- package/legacy/Stack/stackClasses.js +7 -0
- package/legacy/SwipeableDrawer/SwipeableDrawer.js +3 -3
- package/legacy/Unstable_Grid2/Grid2.js +2 -3
- package/legacy/index.js +1 -1
- package/legacy/internal/SwitchBase.js +1 -1
- package/legacy/styles/createTheme.js +1 -0
- package/legacy/useAutocomplete/useAutocomplete.js +2 -2
- package/legacy/useMediaQuery/useMediaQuery.js +12 -7
- package/modern/Avatar/Avatar.js +1 -0
- package/modern/Backdrop/Backdrop.js +10 -5
- package/modern/Badge/Badge.js +47 -47
- package/modern/Container/Container.js +0 -1
- package/modern/Dialog/DialogContext.js +2 -2
- package/modern/InputBase/InputBase.js +2 -2
- package/modern/InputLabel/InputLabel.js +3 -1
- package/modern/ListSubheader/ListSubheader.js +1 -0
- package/modern/MenuList/MenuList.js +7 -0
- package/modern/Modal/Modal.js +14 -9
- package/modern/OutlinedInput/OutlinedInput.js +1 -1
- package/modern/Rating/Rating.js +2 -2
- package/modern/Select/SelectInput.js +2 -18
- package/modern/Slider/Slider.js +16 -11
- package/modern/Snackbar/Snackbar.js +21 -125
- package/modern/Stack/Stack.js +9 -120
- package/modern/Stack/index.js +2 -1
- package/modern/Stack/stackClasses.js +7 -0
- package/modern/SwipeableDrawer/SwipeableDrawer.js +3 -3
- package/modern/Unstable_Grid2/Grid2.js +2 -3
- package/modern/index.js +1 -1
- package/modern/internal/SwitchBase.js +1 -1
- package/modern/styles/createTheme.js +1 -0
- package/modern/useAutocomplete/useAutocomplete.js +2 -2
- package/modern/useMediaQuery/useMediaQuery.js +9 -7
- package/node/Avatar/Avatar.js +1 -0
- package/node/Backdrop/Backdrop.js +10 -5
- package/node/Badge/Badge.js +46 -47
- package/node/Container/Container.js +0 -2
- package/node/Dialog/DialogContext.js +4 -2
- package/node/InputBase/InputBase.js +2 -2
- package/node/InputLabel/InputLabel.js +3 -1
- package/node/ListSubheader/ListSubheader.js +1 -0
- package/node/MenuList/MenuList.js +7 -0
- package/node/Modal/Modal.js +14 -9
- package/node/OutlinedInput/OutlinedInput.js +1 -1
- package/node/Rating/Rating.js +2 -2
- package/node/Select/SelectInput.js +2 -22
- package/node/Slider/Slider.js +19 -14
- package/node/Snackbar/Snackbar.js +20 -124
- package/node/Stack/Stack.js +9 -122
- package/node/Stack/index.js +8 -1
- package/node/Stack/stackClasses.js +16 -0
- package/node/SwipeableDrawer/SwipeableDrawer.js +3 -3
- package/node/Unstable_Grid2/Grid2.js +0 -1
- package/node/index.js +1 -1
- package/node/internal/SwitchBase.js +1 -1
- package/node/styles/createTheme.js +1 -0
- package/node/useAutocomplete/useAutocomplete.js +8 -6
- package/node/useMediaQuery/useMediaQuery.js +9 -7
- package/package.json +6 -6
- package/styles/createTheme.js +1 -0
- package/styles/props.d.ts +2 -2
- package/umd/material-ui.development.js +4209 -4241
- package/umd/material-ui.production.min.js +21 -21
- package/useAutocomplete/useAutocomplete.d.ts +2 -2
- package/useAutocomplete/useAutocomplete.js +2 -2
- package/useMediaQuery/useMediaQuery.d.ts +19 -4
- package/useMediaQuery/useMediaQuery.js +9 -7
package/Select/SelectInput.js
CHANGED
|
@@ -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(
|
|
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
|
|
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.
|
package/Slider/Slider.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { SlotComponentProps } from '@mui/base';
|
|
3
|
-
import { Mark } from '@mui/base/
|
|
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 {
|
|
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
|
|
627
|
-
|
|
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
|
-
|
|
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
|
package/Snackbar/Snackbar.js
CHANGED
|
@@ -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
|
|
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
|
|
123
|
+
const {
|
|
124
|
+
getRootProps,
|
|
125
|
+
onClickAway
|
|
126
|
+
} = useSnackbar(_extends({}, ownerState, {
|
|
127
|
+
ref
|
|
128
|
+
}));
|
|
127
129
|
const [exited, setExited] = React.useState(true);
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
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:
|
|
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
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 {
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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
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
|
|
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
|
}
|
package/Unstable_Grid2/Grid2.js
CHANGED
|
@@ -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 =
|
|
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
package/internal/SwitchBase.js
CHANGED
|
@@ -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
|
|
149
|
+
id: hasLabelFor ? id : undefined,
|
|
150
150
|
name: name,
|
|
151
151
|
onChange: handleInputChange,
|
|
152
152
|
readOnly: readOnly,
|
package/legacy/Avatar/Avatar.js
CHANGED
|
@@ -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
|
-
|
|
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.
|