@mui/material 5.8.3 → 5.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Autocomplete/autocompleteClasses.d.ts +1 -1
- package/Button/buttonClasses.d.ts +24 -0
- package/Button/buttonClasses.js +1 -1
- package/CHANGELOG.md +90 -10
- package/Grid/Grid.d.ts +73 -52
- package/Grid/Grid.js +94 -40
- package/Grow/Grow.js +1 -2
- package/Hidden/withWidth.js +0 -2
- package/Link/Link.js +10 -17
- package/Link/getTextDecoration.d.ts +15 -0
- package/Link/getTextDecoration.js +29 -0
- package/Popover/Popover.d.ts +7 -0
- package/Popover/index.js +1 -0
- package/README.md +6 -9
- package/Slider/Slider.d.ts +3 -1
- package/Slider/Slider.js +3 -1
- package/Snackbar/Snackbar.js +6 -20
- package/Stack/Stack.js +1 -1
- package/StepIcon/StepIcon.js +2 -1
- package/Tab/Tab.d.ts +0 -1
- package/Tabs/Tabs.js +16 -0
- package/index.js +1 -1
- package/legacy/Button/buttonClasses.js +1 -1
- package/legacy/Grid/Grid.js +97 -48
- package/legacy/Grow/Grow.js +1 -2
- package/legacy/Hidden/withWidth.js +0 -2
- package/legacy/Link/Link.js +10 -17
- package/legacy/Link/getTextDecoration.js +28 -0
- package/legacy/Popover/index.js +1 -0
- package/legacy/Slider/Slider.js +3 -1
- package/legacy/Snackbar/Snackbar.js +6 -21
- package/legacy/Stack/Stack.js +2 -1
- package/legacy/StepIcon/StepIcon.js +2 -1
- package/legacy/Tabs/Tabs.js +16 -0
- package/legacy/index.js +1 -1
- package/modern/Button/buttonClasses.js +1 -1
- package/modern/Grid/Grid.js +94 -40
- package/modern/Grow/Grow.js +1 -2
- package/modern/Hidden/withWidth.js +0 -2
- package/modern/Link/Link.js +10 -17
- package/modern/Link/getTextDecoration.js +29 -0
- package/modern/Popover/index.js +1 -0
- package/modern/Slider/Slider.js +3 -1
- package/modern/Snackbar/Snackbar.js +6 -20
- package/modern/Stack/Stack.js +1 -1
- package/modern/StepIcon/StepIcon.js +2 -1
- package/modern/Tabs/Tabs.js +16 -0
- package/modern/index.js +1 -1
- package/node/Button/buttonClasses.js +1 -1
- package/node/Grid/Grid.js +95 -40
- package/node/Grow/Grow.js +1 -2
- package/node/Hidden/withWidth.js +0 -3
- package/node/Link/Link.js +12 -20
- package/node/Link/getTextDecoration.js +39 -0
- package/node/Popover/index.js +13 -3
- package/node/Slider/Slider.js +3 -1
- package/node/Snackbar/Snackbar.js +6 -18
- package/node/Stack/Stack.js +1 -1
- package/node/StepIcon/StepIcon.js +2 -1
- package/node/Tabs/Tabs.js +16 -0
- package/node/index.js +1 -1
- package/package.json +5 -6
- package/umd/material-ui.development.js +190 -173
- package/umd/material-ui.production.min.js +21 -21
package/legacy/Link/Link.js
CHANGED
|
@@ -7,7 +7,6 @@ import PropTypes from 'prop-types';
|
|
|
7
7
|
import clsx from 'clsx';
|
|
8
8
|
import { elementTypeAcceptingRef } from '@mui/utils';
|
|
9
9
|
import { unstable_composeClasses as composeClasses } from '@mui/base';
|
|
10
|
-
import { alpha, getPath } from '@mui/system';
|
|
11
10
|
import capitalize from '../utils/capitalize';
|
|
12
11
|
import styled from '../styles/styled';
|
|
13
12
|
import useThemeProps from '../styles/useThemeProps';
|
|
@@ -15,18 +14,8 @@ import useIsFocusVisible from '../utils/useIsFocusVisible';
|
|
|
15
14
|
import useForkRef from '../utils/useForkRef';
|
|
16
15
|
import Typography from '../Typography';
|
|
17
16
|
import linkClasses, { getLinkUtilityClass } from './linkClasses';
|
|
17
|
+
import getTextDecoration, { colorTransformations } from './getTextDecoration';
|
|
18
18
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
19
|
-
var colorTransformations = {
|
|
20
|
-
primary: 'primary.main',
|
|
21
|
-
textPrimary: 'text.primary',
|
|
22
|
-
secondary: 'secondary.main',
|
|
23
|
-
textSecondary: 'text.secondary',
|
|
24
|
-
error: 'error.main'
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
var transformDeprecatedColors = function transformDeprecatedColors(color) {
|
|
28
|
-
return colorTransformations[color] || color;
|
|
29
|
-
};
|
|
30
19
|
|
|
31
20
|
var useUtilityClasses = function useUtilityClasses(ownerState) {
|
|
32
21
|
var classes = ownerState.classes,
|
|
@@ -49,7 +38,6 @@ var LinkRoot = styled(Typography, {
|
|
|
49
38
|
})(function (_ref) {
|
|
50
39
|
var theme = _ref.theme,
|
|
51
40
|
ownerState = _ref.ownerState;
|
|
52
|
-
var color = getPath(theme, "palette.".concat(transformDeprecatedColors(ownerState.color))) || ownerState.color;
|
|
53
41
|
return _extends({}, ownerState.underline === 'none' && {
|
|
54
42
|
textDecoration: 'none'
|
|
55
43
|
}, ownerState.underline === 'hover' && {
|
|
@@ -57,13 +45,18 @@ var LinkRoot = styled(Typography, {
|
|
|
57
45
|
'&:hover': {
|
|
58
46
|
textDecoration: 'underline'
|
|
59
47
|
}
|
|
60
|
-
}, ownerState.underline === 'always' && {
|
|
61
|
-
textDecoration: 'underline'
|
|
62
|
-
|
|
48
|
+
}, ownerState.underline === 'always' && _extends({
|
|
49
|
+
textDecoration: 'underline'
|
|
50
|
+
}, ownerState.color !== 'inherit' && {
|
|
51
|
+
textDecorationColor: getTextDecoration({
|
|
52
|
+
theme: theme,
|
|
53
|
+
ownerState: ownerState
|
|
54
|
+
})
|
|
55
|
+
}, {
|
|
63
56
|
'&:hover': {
|
|
64
57
|
textDecorationColor: 'inherit'
|
|
65
58
|
}
|
|
66
|
-
}, ownerState.component === 'button' && _defineProperty({
|
|
59
|
+
}), ownerState.component === 'button' && _defineProperty({
|
|
67
60
|
position: 'relative',
|
|
68
61
|
WebkitTapHighlightColor: 'transparent',
|
|
69
62
|
backgroundColor: 'transparent',
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { alpha, getPath } from '@mui/system';
|
|
2
|
+
export var colorTransformations = {
|
|
3
|
+
primary: 'primary.main',
|
|
4
|
+
textPrimary: 'text.primary',
|
|
5
|
+
secondary: 'secondary.main',
|
|
6
|
+
textSecondary: 'text.secondary',
|
|
7
|
+
error: 'error.main'
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
var transformDeprecatedColors = function transformDeprecatedColors(color) {
|
|
11
|
+
return colorTransformations[color] || color;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
var getTextDecoration = function getTextDecoration(_ref) {
|
|
15
|
+
var theme = _ref.theme,
|
|
16
|
+
ownerState = _ref.ownerState;
|
|
17
|
+
var transformedColor = transformDeprecatedColors(ownerState.color);
|
|
18
|
+
var color = getPath(theme, "palette.".concat(transformedColor), false) || ownerState.color;
|
|
19
|
+
var channelColor = getPath(theme, "palette.".concat(transformedColor, "Channel"));
|
|
20
|
+
|
|
21
|
+
if ('vars' in theme && channelColor) {
|
|
22
|
+
return "rgba(".concat(channelColor, " / 0.4)");
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return alpha(color, 0.4);
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export default getTextDecoration;
|
package/legacy/Popover/index.js
CHANGED
package/legacy/Slider/Slider.js
CHANGED
|
@@ -598,12 +598,14 @@ process.env.NODE_ENV !== "production" ? Slider.propTypes
|
|
|
598
598
|
thumb: PropTypes.object,
|
|
599
599
|
track: PropTypes.object,
|
|
600
600
|
valueLabel: PropTypes.shape({
|
|
601
|
+
children: PropTypes.element,
|
|
601
602
|
className: PropTypes.string,
|
|
602
603
|
components: PropTypes.shape({
|
|
603
604
|
Root: PropTypes.elementType
|
|
604
605
|
}),
|
|
606
|
+
open: PropTypes.bool,
|
|
605
607
|
style: PropTypes.object,
|
|
606
|
-
value: PropTypes.
|
|
608
|
+
value: PropTypes.number,
|
|
607
609
|
valueLabelDisplay: PropTypes.oneOf(['auto', 'off', 'on'])
|
|
608
610
|
})
|
|
609
611
|
}),
|
|
@@ -35,17 +35,11 @@ var SnackbarRoot = styled('div', {
|
|
|
35
35
|
})(function (_ref) {
|
|
36
36
|
var theme = _ref.theme,
|
|
37
37
|
ownerState = _ref.ownerState;
|
|
38
|
-
|
|
39
|
-
var center = _extends({}, !ownerState.isRtl && {
|
|
38
|
+
var center = {
|
|
40
39
|
left: '50%',
|
|
41
40
|
right: 'auto',
|
|
42
41
|
transform: 'translateX(-50%)'
|
|
43
|
-
}
|
|
44
|
-
right: '50%',
|
|
45
|
-
left: 'auto',
|
|
46
|
-
transform: 'translateX(50%)'
|
|
47
|
-
});
|
|
48
|
-
|
|
42
|
+
};
|
|
49
43
|
return _extends({
|
|
50
44
|
zIndex: (theme.vars || theme).zIndex.snackbar,
|
|
51
45
|
position: 'fixed',
|
|
@@ -66,19 +60,13 @@ var SnackbarRoot = styled('div', {
|
|
|
66
60
|
top: 24
|
|
67
61
|
} : {
|
|
68
62
|
bottom: 24
|
|
69
|
-
}, ownerState.anchorOrigin.horizontal === 'center' && center, ownerState.anchorOrigin.horizontal === 'left' &&
|
|
63
|
+
}, ownerState.anchorOrigin.horizontal === 'center' && center, ownerState.anchorOrigin.horizontal === 'left' && {
|
|
70
64
|
left: 24,
|
|
71
65
|
right: 'auto'
|
|
72
|
-
}, ownerState.
|
|
73
|
-
right: 24,
|
|
74
|
-
left: 'auto'
|
|
75
|
-
}), ownerState.anchorOrigin.horizontal === 'right' && _extends({}, !ownerState.isRtl && {
|
|
66
|
+
}, ownerState.anchorOrigin.horizontal === 'right' && {
|
|
76
67
|
right: 24,
|
|
77
68
|
left: 'auto'
|
|
78
|
-
}
|
|
79
|
-
left: 24,
|
|
80
|
-
right: 'auto'
|
|
81
|
-
}))));
|
|
69
|
+
})));
|
|
82
70
|
});
|
|
83
71
|
var Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
|
|
84
72
|
var props = useThemeProps({
|
|
@@ -126,14 +114,11 @@ var Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
|
|
|
126
114
|
TransitionProps = _objectWithoutProperties(_props$TransitionProp, ["onEnter", "onExited"]),
|
|
127
115
|
other = _objectWithoutProperties(props, ["action", "anchorOrigin", "autoHideDuration", "children", "className", "ClickAwayListenerProps", "ContentProps", "disableWindowBlurListener", "message", "onBlur", "onClose", "onFocus", "onMouseEnter", "onMouseLeave", "open", "resumeHideDuration", "TransitionComponent", "transitionDuration", "TransitionProps"]);
|
|
128
116
|
|
|
129
|
-
var isRtl = theme.direction === 'rtl';
|
|
130
|
-
|
|
131
117
|
var ownerState = _extends({}, props, {
|
|
132
118
|
anchorOrigin: {
|
|
133
119
|
vertical: vertical,
|
|
134
120
|
horizontal: horizontal
|
|
135
|
-
}
|
|
136
|
-
isRtl: isRtl
|
|
121
|
+
}
|
|
137
122
|
});
|
|
138
123
|
|
|
139
124
|
var classes = useUtilityClasses(ownerState);
|
package/legacy/Stack/Stack.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
2
2
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
+
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
3
4
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
4
5
|
import * as React from 'react';
|
|
5
6
|
import PropTypes from 'prop-types';
|
|
@@ -61,7 +62,7 @@ export var style = function style(_ref) {
|
|
|
61
62
|
if (ownerState.spacing) {
|
|
62
63
|
var transformer = createUnarySpacing(theme);
|
|
63
64
|
var base = Object.keys(theme.breakpoints.values).reduce(function (acc, breakpoint) {
|
|
64
|
-
if (ownerState.spacing[breakpoint] != null || ownerState.direction[breakpoint] != null) {
|
|
65
|
+
if (_typeof(ownerState.spacing) === 'object' && ownerState.spacing[breakpoint] != null || _typeof(ownerState.direction) === 'object' && ownerState.direction[breakpoint] != null) {
|
|
65
66
|
acc[breakpoint] = true;
|
|
66
67
|
}
|
|
67
68
|
|
|
@@ -124,8 +124,9 @@ var StepIcon = /*#__PURE__*/React.forwardRef(function StepIcon(inProps, ref) {
|
|
|
124
124
|
})), /*#__PURE__*/_jsx(StepIconText, {
|
|
125
125
|
className: classes.text,
|
|
126
126
|
x: "12",
|
|
127
|
-
y: "
|
|
127
|
+
y: "12",
|
|
128
128
|
textAnchor: "middle",
|
|
129
|
+
dominantBaseline: "central",
|
|
129
130
|
ownerState: ownerState,
|
|
130
131
|
children: icon
|
|
131
132
|
})]
|
package/legacy/Tabs/Tabs.js
CHANGED
|
@@ -429,10 +429,26 @@ var Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {
|
|
|
429
429
|
scroll(scrollValue);
|
|
430
430
|
};
|
|
431
431
|
|
|
432
|
+
var getFirstVisibleTab = function getFirstVisibleTab(tabs) {
|
|
433
|
+
var containerSize = tabsRef.current[clientSize];
|
|
434
|
+
var containerStartBound = Math.round(tabsRef.current[scrollStart]);
|
|
435
|
+
var containerEndBound = Math.round(containerStartBound + containerSize);
|
|
436
|
+
var offset = vertical ? 'offsetTop' : 'offsetLeft';
|
|
437
|
+
return tabs.find(function (tab) {
|
|
438
|
+
var centerPoint = tab[offset] + tab[clientSize] / 2;
|
|
439
|
+
return centerPoint >= containerStartBound && centerPoint <= containerEndBound;
|
|
440
|
+
});
|
|
441
|
+
};
|
|
442
|
+
|
|
432
443
|
var getScrollSize = function getScrollSize() {
|
|
433
444
|
var containerSize = tabsRef.current[clientSize];
|
|
434
445
|
var totalSize = 0;
|
|
435
446
|
var children = Array.from(tabListRef.current.children);
|
|
447
|
+
var firstVisibleTab = getFirstVisibleTab(children);
|
|
448
|
+
|
|
449
|
+
if (firstVisibleTab && firstVisibleTab[clientSize] > containerSize) {
|
|
450
|
+
return firstVisibleTab[clientSize];
|
|
451
|
+
}
|
|
436
452
|
|
|
437
453
|
for (var i = 0; i < children.length; i += 1) {
|
|
438
454
|
var tab = children[i];
|
package/legacy/index.js
CHANGED
|
@@ -2,5 +2,5 @@ import { generateUtilityClass, generateUtilityClasses } from '@mui/base';
|
|
|
2
2
|
export function getButtonUtilityClass(slot) {
|
|
3
3
|
return generateUtilityClass('MuiButton', slot);
|
|
4
4
|
}
|
|
5
|
-
const buttonClasses = generateUtilityClasses('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);
|
|
5
|
+
const buttonClasses = generateUtilityClasses('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'textSuccess', 'textError', 'textInfo', 'textWarning', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'outlinedSuccess', 'outlinedError', 'outlinedInfo', 'outlinedWarning', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'containedSuccess', 'containedError', 'containedInfo', 'containedWarning', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);
|
|
6
6
|
export default buttonClasses;
|
package/modern/Grid/Grid.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["className", "columns", "columnSpacing", "component", "container", "direction", "item", "
|
|
3
|
+
const _excluded = ["className", "columns", "columnSpacing", "component", "container", "direction", "item", "rowSpacing", "spacing", "wrap", "zeroMinWidth"];
|
|
4
4
|
// A grid component using the following libs as inspiration.
|
|
5
5
|
//
|
|
6
6
|
// For the implementation:
|
|
@@ -19,6 +19,7 @@ import { unstable_composeClasses as composeClasses } from '@mui/base';
|
|
|
19
19
|
import requirePropFactory from '../utils/requirePropFactory';
|
|
20
20
|
import styled from '../styles/styled';
|
|
21
21
|
import useThemeProps from '../styles/useThemeProps';
|
|
22
|
+
import useTheme from '../styles/useTheme';
|
|
22
23
|
import GridContext from './GridContext';
|
|
23
24
|
import gridClasses, { getGridUtilityClass } from './gridClasses';
|
|
24
25
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -201,26 +202,27 @@ export function generateColumnGap({
|
|
|
201
202
|
|
|
202
203
|
return styles;
|
|
203
204
|
}
|
|
204
|
-
export function
|
|
205
|
-
//
|
|
206
|
-
if (!
|
|
205
|
+
export function resolveSpacingStyles(spacing, breakpoints, styles = {}) {
|
|
206
|
+
// undefined/null or `spacing` <= 0
|
|
207
|
+
if (!spacing || spacing <= 0) {
|
|
207
208
|
return [];
|
|
208
209
|
} // in case of string/number `spacing`
|
|
209
210
|
|
|
210
211
|
|
|
211
212
|
if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {
|
|
212
|
-
return [styles[`spacing-xs-${String(spacing)}`]
|
|
213
|
+
return [styles[`spacing-xs-${String(spacing)}`]];
|
|
213
214
|
} // in case of object `spacing`
|
|
214
215
|
|
|
215
216
|
|
|
216
|
-
const
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
217
|
+
const spacingStyles = [];
|
|
218
|
+
breakpoints.forEach(breakpoint => {
|
|
219
|
+
const value = spacing[breakpoint];
|
|
220
|
+
|
|
221
|
+
if (Number(value) > 0) {
|
|
222
|
+
spacingStyles.push(styles[`spacing-${breakpoint}-${String(value)}`]);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
return spacingStyles;
|
|
224
226
|
} // Default CSS values
|
|
225
227
|
// flex: '0 1 auto',
|
|
226
228
|
// flexDirection: 'row',
|
|
@@ -232,20 +234,33 @@ const GridRoot = styled('div', {
|
|
|
232
234
|
name: 'MuiGrid',
|
|
233
235
|
slot: 'Root',
|
|
234
236
|
overridesResolver: (props, styles) => {
|
|
237
|
+
const {
|
|
238
|
+
ownerState
|
|
239
|
+
} = props;
|
|
235
240
|
const {
|
|
236
241
|
container,
|
|
237
242
|
direction,
|
|
238
243
|
item,
|
|
239
|
-
lg,
|
|
240
|
-
md,
|
|
241
|
-
sm,
|
|
242
244
|
spacing,
|
|
243
245
|
wrap,
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
246
|
+
zeroMinWidth,
|
|
247
|
+
breakpoints
|
|
248
|
+
} = ownerState;
|
|
249
|
+
let spacingStyles = []; // in case of grid item
|
|
250
|
+
|
|
251
|
+
if (container) {
|
|
252
|
+
spacingStyles = resolveSpacingStyles(spacing, breakpoints, styles);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
const breakpointsStyles = [];
|
|
256
|
+
breakpoints.forEach(breakpoint => {
|
|
257
|
+
const value = ownerState[breakpoint];
|
|
258
|
+
|
|
259
|
+
if (value) {
|
|
260
|
+
breakpointsStyles.push(styles[`grid-${breakpoint}-${String(value)}`]);
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
return [styles.root, container && styles.container, item && styles.item, zeroMinWidth && styles.zeroMinWidth, ...spacingStyles, direction !== 'row' && styles[`direction-xs-${String(direction)}`], wrap !== 'wrap' && styles[`wrap-xs-${String(wrap)}`], ...breakpointsStyles];
|
|
249
264
|
}
|
|
250
265
|
})(({
|
|
251
266
|
ownerState
|
|
@@ -263,6 +278,29 @@ const GridRoot = styled('div', {
|
|
|
263
278
|
}, ownerState.wrap !== 'wrap' && {
|
|
264
279
|
flexWrap: ownerState.wrap
|
|
265
280
|
}), generateDirection, generateRowGap, generateColumnGap, generateGrid);
|
|
281
|
+
export function resolveSpacingClasses(spacing, breakpoints) {
|
|
282
|
+
// undefined/null or `spacing` <= 0
|
|
283
|
+
if (!spacing || spacing <= 0) {
|
|
284
|
+
return [];
|
|
285
|
+
} // in case of string/number `spacing`
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {
|
|
289
|
+
return [`spacing-xs-${String(spacing)}`];
|
|
290
|
+
} // in case of object `spacing`
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
const classes = [];
|
|
294
|
+
breakpoints.forEach(breakpoint => {
|
|
295
|
+
const value = spacing[breakpoint];
|
|
296
|
+
|
|
297
|
+
if (Number(value) > 0) {
|
|
298
|
+
const className = `spacing-${breakpoint}-${String(value)}`;
|
|
299
|
+
classes.push(className);
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
return classes;
|
|
303
|
+
}
|
|
266
304
|
|
|
267
305
|
const useUtilityClasses = ownerState => {
|
|
268
306
|
const {
|
|
@@ -270,17 +308,27 @@ const useUtilityClasses = ownerState => {
|
|
|
270
308
|
container,
|
|
271
309
|
direction,
|
|
272
310
|
item,
|
|
273
|
-
lg,
|
|
274
|
-
md,
|
|
275
|
-
sm,
|
|
276
311
|
spacing,
|
|
277
312
|
wrap,
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
zeroMinWidth
|
|
313
|
+
zeroMinWidth,
|
|
314
|
+
breakpoints
|
|
281
315
|
} = ownerState;
|
|
316
|
+
let spacingClasses = []; // in case of grid item
|
|
317
|
+
|
|
318
|
+
if (container) {
|
|
319
|
+
spacingClasses = resolveSpacingClasses(spacing, breakpoints);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
const breakpointsClasses = [];
|
|
323
|
+
breakpoints.forEach(breakpoint => {
|
|
324
|
+
const value = ownerState[breakpoint];
|
|
325
|
+
|
|
326
|
+
if (value) {
|
|
327
|
+
breakpointsClasses.push(`grid-${breakpoint}-${String(value)}`);
|
|
328
|
+
}
|
|
329
|
+
});
|
|
282
330
|
const slots = {
|
|
283
|
-
root: ['root', container && 'container', item && 'item', zeroMinWidth && 'zeroMinWidth', ...
|
|
331
|
+
root: ['root', container && 'container', item && 'item', zeroMinWidth && 'zeroMinWidth', ...spacingClasses, direction !== 'row' && `direction-xs-${String(direction)}`, wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...breakpointsClasses]
|
|
284
332
|
};
|
|
285
333
|
return composeClasses(slots, getGridUtilityClass, classes);
|
|
286
334
|
};
|
|
@@ -290,6 +338,9 @@ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {
|
|
|
290
338
|
props: inProps,
|
|
291
339
|
name: 'MuiGrid'
|
|
292
340
|
});
|
|
341
|
+
const {
|
|
342
|
+
breakpoints
|
|
343
|
+
} = useTheme();
|
|
293
344
|
const props = extendSxProp(themeProps);
|
|
294
345
|
|
|
295
346
|
const {
|
|
@@ -300,14 +351,9 @@ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {
|
|
|
300
351
|
container = false,
|
|
301
352
|
direction = 'row',
|
|
302
353
|
item = false,
|
|
303
|
-
lg = false,
|
|
304
|
-
md = false,
|
|
305
354
|
rowSpacing: rowSpacingProp,
|
|
306
|
-
sm = false,
|
|
307
355
|
spacing = 0,
|
|
308
356
|
wrap = 'wrap',
|
|
309
|
-
xl = false,
|
|
310
|
-
xs = false,
|
|
311
357
|
zeroMinWidth = false
|
|
312
358
|
} = props,
|
|
313
359
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
@@ -317,21 +363,29 @@ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {
|
|
|
317
363
|
const columnsContext = React.useContext(GridContext); // columns set with default breakpoint unit of 12
|
|
318
364
|
|
|
319
365
|
const columns = container ? columnsProp || 12 : columnsContext;
|
|
366
|
+
const breakpointsValues = {};
|
|
367
|
+
|
|
368
|
+
const otherFiltered = _extends({}, other);
|
|
369
|
+
|
|
370
|
+
breakpoints.keys.forEach(breakpoint => {
|
|
371
|
+
if (other[breakpoint] != null) {
|
|
372
|
+
breakpointsValues[breakpoint] = other[breakpoint];
|
|
373
|
+
delete otherFiltered[breakpoint];
|
|
374
|
+
}
|
|
375
|
+
});
|
|
320
376
|
|
|
321
377
|
const ownerState = _extends({}, props, {
|
|
322
378
|
columns,
|
|
323
379
|
container,
|
|
324
380
|
direction,
|
|
325
381
|
item,
|
|
326
|
-
lg,
|
|
327
|
-
md,
|
|
328
|
-
sm,
|
|
329
382
|
rowSpacing,
|
|
330
383
|
columnSpacing,
|
|
331
384
|
wrap,
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
385
|
+
zeroMinWidth,
|
|
386
|
+
spacing
|
|
387
|
+
}, breakpointsValues, {
|
|
388
|
+
breakpoints: breakpoints.keys
|
|
335
389
|
});
|
|
336
390
|
|
|
337
391
|
const classes = useUtilityClasses(ownerState);
|
|
@@ -342,7 +396,7 @@ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {
|
|
|
342
396
|
className: clsx(classes.root, className),
|
|
343
397
|
as: component,
|
|
344
398
|
ref: ref
|
|
345
|
-
},
|
|
399
|
+
}, otherFiltered))
|
|
346
400
|
});
|
|
347
401
|
});
|
|
348
402
|
process.env.NODE_ENV !== "production" ? Grid.propTypes
|
package/modern/Grow/Grow.js
CHANGED
|
@@ -27,10 +27,9 @@ const styles = {
|
|
|
27
27
|
/*
|
|
28
28
|
TODO v6: remove
|
|
29
29
|
Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers.
|
|
30
|
-
Remove this workaround once the WebKit bug fix is released.
|
|
31
30
|
*/
|
|
32
31
|
|
|
33
|
-
const isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\/)15(.|_)
|
|
32
|
+
const isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\/)15(.|_)4/i.test(navigator.userAgent);
|
|
34
33
|
/**
|
|
35
34
|
* The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and
|
|
36
35
|
* [Popover](/material-ui/react-popover/) components.
|
|
@@ -5,7 +5,6 @@ import * as React from 'react';
|
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { getDisplayName } from '@mui/utils';
|
|
7
7
|
import { getThemeProps } from '@mui/system';
|
|
8
|
-
import hoistNonReactStatics from 'hoist-non-react-statics';
|
|
9
8
|
import useTheme from '../styles/useTheme';
|
|
10
9
|
import useEnhancedEffect from '../utils/useEnhancedEffect';
|
|
11
10
|
import useMediaQuery from '../useMediaQuery';
|
|
@@ -113,7 +112,6 @@ const withWidth = (options = {}) => Component => {
|
|
|
113
112
|
WithWidth.displayName = `WithWidth(${getDisplayName(Component)})`;
|
|
114
113
|
}
|
|
115
114
|
|
|
116
|
-
hoistNonReactStatics(WithWidth, Component);
|
|
117
115
|
return WithWidth;
|
|
118
116
|
};
|
|
119
117
|
|
package/modern/Link/Link.js
CHANGED
|
@@ -6,7 +6,6 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
import clsx from 'clsx';
|
|
7
7
|
import { elementTypeAcceptingRef } from '@mui/utils';
|
|
8
8
|
import { unstable_composeClasses as composeClasses } from '@mui/base';
|
|
9
|
-
import { alpha, getPath } from '@mui/system';
|
|
10
9
|
import capitalize from '../utils/capitalize';
|
|
11
10
|
import styled from '../styles/styled';
|
|
12
11
|
import useThemeProps from '../styles/useThemeProps';
|
|
@@ -14,18 +13,8 @@ import useIsFocusVisible from '../utils/useIsFocusVisible';
|
|
|
14
13
|
import useForkRef from '../utils/useForkRef';
|
|
15
14
|
import Typography from '../Typography';
|
|
16
15
|
import linkClasses, { getLinkUtilityClass } from './linkClasses';
|
|
16
|
+
import getTextDecoration, { colorTransformations } from './getTextDecoration';
|
|
17
17
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
|
-
const colorTransformations = {
|
|
19
|
-
primary: 'primary.main',
|
|
20
|
-
textPrimary: 'text.primary',
|
|
21
|
-
secondary: 'secondary.main',
|
|
22
|
-
textSecondary: 'text.secondary',
|
|
23
|
-
error: 'error.main'
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const transformDeprecatedColors = color => {
|
|
27
|
-
return colorTransformations[color] || color;
|
|
28
|
-
};
|
|
29
18
|
|
|
30
19
|
const useUtilityClasses = ownerState => {
|
|
31
20
|
const {
|
|
@@ -53,7 +42,6 @@ const LinkRoot = styled(Typography, {
|
|
|
53
42
|
theme,
|
|
54
43
|
ownerState
|
|
55
44
|
}) => {
|
|
56
|
-
const color = getPath(theme, `palette.${transformDeprecatedColors(ownerState.color)}`) || ownerState.color;
|
|
57
45
|
return _extends({}, ownerState.underline === 'none' && {
|
|
58
46
|
textDecoration: 'none'
|
|
59
47
|
}, ownerState.underline === 'hover' && {
|
|
@@ -61,13 +49,18 @@ const LinkRoot = styled(Typography, {
|
|
|
61
49
|
'&:hover': {
|
|
62
50
|
textDecoration: 'underline'
|
|
63
51
|
}
|
|
64
|
-
}, ownerState.underline === 'always' && {
|
|
65
|
-
textDecoration: 'underline'
|
|
66
|
-
|
|
52
|
+
}, ownerState.underline === 'always' && _extends({
|
|
53
|
+
textDecoration: 'underline'
|
|
54
|
+
}, ownerState.color !== 'inherit' && {
|
|
55
|
+
textDecorationColor: getTextDecoration({
|
|
56
|
+
theme,
|
|
57
|
+
ownerState
|
|
58
|
+
})
|
|
59
|
+
}, {
|
|
67
60
|
'&:hover': {
|
|
68
61
|
textDecorationColor: 'inherit'
|
|
69
62
|
}
|
|
70
|
-
}, ownerState.component === 'button' && {
|
|
63
|
+
}), ownerState.component === 'button' && {
|
|
71
64
|
position: 'relative',
|
|
72
65
|
WebkitTapHighlightColor: 'transparent',
|
|
73
66
|
backgroundColor: 'transparent',
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { alpha, getPath } from '@mui/system';
|
|
2
|
+
export const colorTransformations = {
|
|
3
|
+
primary: 'primary.main',
|
|
4
|
+
textPrimary: 'text.primary',
|
|
5
|
+
secondary: 'secondary.main',
|
|
6
|
+
textSecondary: 'text.secondary',
|
|
7
|
+
error: 'error.main'
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const transformDeprecatedColors = color => {
|
|
11
|
+
return colorTransformations[color] || color;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const getTextDecoration = ({
|
|
15
|
+
theme,
|
|
16
|
+
ownerState
|
|
17
|
+
}) => {
|
|
18
|
+
const transformedColor = transformDeprecatedColors(ownerState.color);
|
|
19
|
+
const color = getPath(theme, `palette.${transformedColor}`, false) || ownerState.color;
|
|
20
|
+
const channelColor = getPath(theme, `palette.${transformedColor}Channel`);
|
|
21
|
+
|
|
22
|
+
if ('vars' in theme && channelColor) {
|
|
23
|
+
return `rgba(${channelColor} / 0.4)`;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return alpha(color, 0.4);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export default getTextDecoration;
|
package/modern/Popover/index.js
CHANGED
package/modern/Slider/Slider.js
CHANGED
|
@@ -585,12 +585,14 @@ process.env.NODE_ENV !== "production" ? Slider.propTypes
|
|
|
585
585
|
thumb: PropTypes.object,
|
|
586
586
|
track: PropTypes.object,
|
|
587
587
|
valueLabel: PropTypes.shape({
|
|
588
|
+
children: PropTypes.element,
|
|
588
589
|
className: PropTypes.string,
|
|
589
590
|
components: PropTypes.shape({
|
|
590
591
|
Root: PropTypes.elementType
|
|
591
592
|
}),
|
|
593
|
+
open: PropTypes.bool,
|
|
592
594
|
style: PropTypes.object,
|
|
593
|
-
value: PropTypes.
|
|
595
|
+
value: PropTypes.number,
|
|
594
596
|
valueLabelDisplay: PropTypes.oneOf(['auto', 'off', 'on'])
|
|
595
597
|
})
|
|
596
598
|
}),
|