@mui/system 5.12.1 → 5.13.1
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/CHANGELOG.md +312 -0
- package/Container/Container.d.ts +13 -13
- package/Container/ContainerProps.d.ts +40 -40
- package/Container/containerClasses.d.ts +22 -22
- package/Container/createContainer.d.ts +18 -18
- package/Container/createContainer.js +41 -35
- package/GlobalStyles/GlobalStyles.d.ts +13 -13
- package/GlobalStyles/index.d.ts +2 -2
- package/Stack/Stack.d.ts +14 -14
- package/Stack/Stack.js +1 -1
- package/Stack/StackProps.d.ts +53 -53
- package/Stack/createStack.d.ts +21 -21
- package/Stack/createStack.js +24 -26
- package/Stack/index.d.ts +5 -5
- package/Stack/stackClasses.d.ts +8 -8
- package/ThemeProvider/ThemeProvider.js +9 -5
- package/Unstable_Grid/Grid.d.ts +12 -12
- package/Unstable_Grid/GridProps.d.ts +185 -185
- package/Unstable_Grid/createGrid.d.ts +11 -11
- package/Unstable_Grid/createGrid.js +21 -23
- package/Unstable_Grid/gridClasses.d.ts +20 -20
- package/Unstable_Grid/gridGenerator.d.ts +38 -38
- package/Unstable_Grid/gridGenerator.js +20 -18
- package/Unstable_Grid/index.d.ts +5 -5
- package/breakpoints.js +7 -6
- package/colorManipulator.js +2 -0
- package/createBox.js +9 -12
- package/createStyled.js +40 -31
- package/createTheme/createBreakpoints.js +24 -26
- package/createTheme/createSpacing.d.ts +10 -10
- package/createTheme/createSpacing.js +3 -1
- package/createTheme/createTheme.js +18 -14
- package/cssVars/createCssVarsProvider.js +21 -20
- package/cssVars/createCssVarsTheme.d.ts +15 -15
- package/cssVars/createCssVarsTheme.js +10 -10
- package/cssVars/createGetCssVar.d.ts +5 -5
- package/cssVars/cssVarsParser.d.ts +64 -64
- package/cssVars/getInitColorSchemeScript.d.ts +42 -42
- package/cssVars/index.d.ts +5 -5
- package/cssVars/prepareCssVars.d.ts +16 -16
- package/cssVars/prepareCssVars.js +13 -12
- package/cssVars/useCurrentColorScheme.d.ts +53 -53
- package/cssVars/useCurrentColorScheme.js +17 -11
- package/esm/Container/createContainer.js +41 -35
- package/esm/Stack/Stack.js +1 -1
- package/esm/Stack/createStack.js +24 -26
- package/esm/ThemeProvider/ThemeProvider.js +9 -5
- package/esm/Unstable_Grid/createGrid.js +21 -23
- package/esm/Unstable_Grid/gridGenerator.js +20 -17
- package/esm/breakpoints.js +7 -6
- package/esm/colorManipulator.js +1 -0
- package/esm/createBox.js +9 -12
- package/esm/createStyled.js +38 -31
- package/esm/createTheme/createBreakpoints.js +24 -25
- package/esm/createTheme/createSpacing.js +4 -0
- package/esm/createTheme/createTheme.js +18 -14
- package/esm/cssVars/createCssVarsProvider.js +21 -20
- package/esm/cssVars/createCssVarsTheme.js +10 -10
- package/esm/cssVars/prepareCssVars.js +13 -12
- package/esm/cssVars/useCurrentColorScheme.js +17 -10
- package/esm/propsToClassKey.js +3 -5
- package/esm/styleFunctionSx/extendSxProp.js +14 -10
- package/index.js +5 -2
- package/legacy/Container/createContainer.js +7 -6
- package/legacy/Stack/Stack.js +1 -1
- package/legacy/Stack/createStack.js +6 -5
- package/legacy/ThemeProvider/ThemeProvider.js +4 -3
- package/legacy/Unstable_Grid/createGrid.js +6 -4
- package/legacy/Unstable_Grid/gridGenerator.js +6 -4
- package/legacy/breakpoints.js +5 -3
- package/legacy/colorManipulator.js +1 -0
- package/legacy/createBox.js +4 -2
- package/legacy/createStyled.js +13 -11
- package/legacy/createTheme/createBreakpoints.js +4 -3
- package/legacy/createTheme/createSpacing.js +4 -0
- package/legacy/createTheme/createTheme.js +6 -4
- package/legacy/cssVars/createCssVarsProvider.js +6 -5
- package/legacy/cssVars/createCssVarsTheme.js +4 -2
- package/legacy/cssVars/prepareCssVars.js +5 -3
- package/legacy/cssVars/useCurrentColorScheme.js +9 -7
- package/legacy/index.js +1 -1
- package/legacy/styleFunctionSx/extendSxProp.js +6 -4
- package/modern/Container/createContainer.js +41 -35
- package/modern/Stack/Stack.js +1 -1
- package/modern/Stack/createStack.js +24 -26
- package/modern/ThemeProvider/ThemeProvider.js +9 -5
- package/modern/Unstable_Grid/createGrid.js +21 -23
- package/modern/Unstable_Grid/gridGenerator.js +20 -17
- package/modern/breakpoints.js +7 -6
- package/modern/colorManipulator.js +1 -0
- package/modern/createBox.js +9 -12
- package/modern/createStyled.js +38 -31
- package/modern/createTheme/createBreakpoints.js +24 -25
- package/modern/createTheme/createSpacing.js +4 -0
- package/modern/createTheme/createTheme.js +18 -14
- package/modern/cssVars/createCssVarsProvider.js +21 -20
- package/modern/cssVars/createCssVarsTheme.js +10 -10
- package/modern/cssVars/prepareCssVars.js +13 -12
- package/modern/cssVars/useCurrentColorScheme.js +17 -10
- package/modern/index.js +1 -1
- package/modern/propsToClassKey.js +3 -5
- package/modern/styleFunctionSx/extendSxProp.js +14 -10
- package/package.json +4 -4
- package/propsToClassKey.js +3 -6
- package/styleFunctionSx/extendSxProp.js +14 -10
package/esm/Stack/createStack.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
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", "className", "useFlexGap"];
|
|
4
1
|
import * as React from 'react';
|
|
5
2
|
import PropTypes from 'prop-types';
|
|
6
3
|
import clsx from 'clsx';
|
|
@@ -58,17 +55,18 @@ export const style = ({
|
|
|
58
55
|
ownerState,
|
|
59
56
|
theme
|
|
60
57
|
}) => {
|
|
61
|
-
let styles =
|
|
58
|
+
let styles = {
|
|
62
59
|
display: 'flex',
|
|
63
|
-
flexDirection: 'column'
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
60
|
+
flexDirection: 'column',
|
|
61
|
+
...handleBreakpoints({
|
|
62
|
+
theme
|
|
63
|
+
}, resolveBreakpointValues({
|
|
64
|
+
values: ownerState.direction,
|
|
65
|
+
breakpoints: theme.breakpoints.values
|
|
66
|
+
}), propValue => ({
|
|
67
|
+
flexDirection: propValue
|
|
68
|
+
}))
|
|
69
|
+
};
|
|
72
70
|
if (ownerState.spacing) {
|
|
73
71
|
const transformer = createUnarySpacing(theme);
|
|
74
72
|
const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {
|
|
@@ -132,29 +130,29 @@ export default function createStack(options = {}) {
|
|
|
132
130
|
const themeProps = useThemeProps(inProps);
|
|
133
131
|
const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.
|
|
134
132
|
const {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
133
|
+
component = 'div',
|
|
134
|
+
direction = 'column',
|
|
135
|
+
spacing = 0,
|
|
136
|
+
divider,
|
|
137
|
+
children,
|
|
138
|
+
className,
|
|
139
|
+
useFlexGap = false,
|
|
140
|
+
...other
|
|
141
|
+
} = props;
|
|
144
142
|
const ownerState = {
|
|
145
143
|
direction,
|
|
146
144
|
spacing,
|
|
147
145
|
useFlexGap
|
|
148
146
|
};
|
|
149
147
|
const classes = useUtilityClasses();
|
|
150
|
-
return /*#__PURE__*/_jsx(StackRoot,
|
|
148
|
+
return /*#__PURE__*/_jsx(StackRoot, {
|
|
151
149
|
as: component,
|
|
152
150
|
ownerState: ownerState,
|
|
153
151
|
ref: ref,
|
|
154
|
-
className: clsx(classes.root, className)
|
|
155
|
-
|
|
152
|
+
className: clsx(classes.root, className),
|
|
153
|
+
...other,
|
|
156
154
|
children: divider ? joinChildren(children, divider) : children
|
|
157
|
-
})
|
|
155
|
+
});
|
|
158
156
|
});
|
|
159
157
|
process.env.NODE_ENV !== "production" ? Stack.propTypes /* remove-proptypes */ = {
|
|
160
158
|
children: PropTypes.node,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
1
|
import * as React from 'react';
|
|
3
2
|
import PropTypes from 'prop-types';
|
|
4
3
|
import { ThemeProvider as MuiThemeProvider, useTheme as usePrivateTheme } from '@mui/private-theming';
|
|
@@ -12,9 +11,10 @@ function useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {
|
|
|
12
11
|
const resolvedTheme = themeId ? upperTheme[themeId] || upperTheme : upperTheme;
|
|
13
12
|
if (typeof localTheme === 'function') {
|
|
14
13
|
const mergedTheme = localTheme(resolvedTheme);
|
|
15
|
-
const result = themeId ?
|
|
14
|
+
const result = themeId ? {
|
|
15
|
+
...upperTheme,
|
|
16
16
|
[themeId]: mergedTheme
|
|
17
|
-
}
|
|
17
|
+
} : mergedTheme;
|
|
18
18
|
// must return a function for the private theme to NOT merge with the upper theme.
|
|
19
19
|
// see the test case "use provided theme from a callback" in ThemeProvider.test.js
|
|
20
20
|
if (isPrivate) {
|
|
@@ -22,9 +22,13 @@ function useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {
|
|
|
22
22
|
}
|
|
23
23
|
return result;
|
|
24
24
|
}
|
|
25
|
-
return themeId ?
|
|
25
|
+
return themeId ? {
|
|
26
|
+
...upperTheme,
|
|
26
27
|
[themeId]: localTheme
|
|
27
|
-
}
|
|
28
|
+
} : {
|
|
29
|
+
...upperTheme,
|
|
30
|
+
...localTheme
|
|
31
|
+
};
|
|
28
32
|
}, [themeId, upperTheme, localTheme, isPrivate]);
|
|
29
33
|
}
|
|
30
34
|
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["className", "children", "columns", "container", "component", "direction", "wrap", "spacing", "rowSpacing", "columnSpacing", "disableEqualOverflow", "unstable_level"];
|
|
4
1
|
import * as React from 'react';
|
|
5
2
|
import PropTypes from 'prop-types';
|
|
6
3
|
import clsx from 'clsx';
|
|
@@ -56,20 +53,20 @@ export default function createGrid(options = {}) {
|
|
|
56
53
|
const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.
|
|
57
54
|
const overflow = React.useContext(OverflowContext);
|
|
58
55
|
const {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
56
|
+
className,
|
|
57
|
+
children,
|
|
58
|
+
columns: columnsProp = 12,
|
|
59
|
+
container = false,
|
|
60
|
+
component = 'div',
|
|
61
|
+
direction = 'row',
|
|
62
|
+
wrap = 'wrap',
|
|
63
|
+
spacing: spacingProp = 0,
|
|
64
|
+
rowSpacing: rowSpacingProp = spacingProp,
|
|
65
|
+
columnSpacing: columnSpacingProp = spacingProp,
|
|
66
|
+
disableEqualOverflow: themeDisableEqualOverflow,
|
|
67
|
+
unstable_level: level = 0,
|
|
68
|
+
...rest
|
|
69
|
+
} = props;
|
|
73
70
|
// Because `disableEqualOverflow` can be set from the theme's defaultProps, the **nested** grid should look at the instance props instead.
|
|
74
71
|
let disableEqualOverflow = themeDisableEqualOverflow;
|
|
75
72
|
if (level && themeDisableEqualOverflow !== undefined) {
|
|
@@ -92,7 +89,8 @@ export default function createGrid(options = {}) {
|
|
|
92
89
|
const spacing = (_inProps$spacing = inProps.spacing) != null ? _inProps$spacing : level ? undefined : spacingProp;
|
|
93
90
|
const rowSpacing = (_ref = (_inProps$rowSpacing = inProps.rowSpacing) != null ? _inProps$rowSpacing : inProps.spacing) != null ? _ref : level ? undefined : rowSpacingProp;
|
|
94
91
|
const columnSpacing = (_ref2 = (_inProps$columnSpacin = inProps.columnSpacing) != null ? _inProps$columnSpacin : inProps.spacing) != null ? _ref2 : level ? undefined : columnSpacingProp;
|
|
95
|
-
const ownerState =
|
|
92
|
+
const ownerState = {
|
|
93
|
+
...props,
|
|
96
94
|
level,
|
|
97
95
|
columns,
|
|
98
96
|
container,
|
|
@@ -106,15 +104,15 @@ export default function createGrid(options = {}) {
|
|
|
106
104
|
disableEqualOverflow: (_ref3 = (_disableEqualOverflow = disableEqualOverflow) != null ? _disableEqualOverflow : overflow) != null ? _ref3 : false,
|
|
107
105
|
// use context value if exists.
|
|
108
106
|
parentDisableEqualOverflow: overflow // for nested grid
|
|
109
|
-
}
|
|
107
|
+
};
|
|
110
108
|
|
|
111
109
|
const classes = useUtilityClasses(ownerState, theme);
|
|
112
|
-
let result = /*#__PURE__*/_jsx(GridRoot,
|
|
110
|
+
let result = /*#__PURE__*/_jsx(GridRoot, {
|
|
113
111
|
ref: ref,
|
|
114
112
|
as: component,
|
|
115
113
|
ownerState: ownerState,
|
|
116
|
-
className: clsx(classes.root, className)
|
|
117
|
-
|
|
114
|
+
className: clsx(classes.root, className),
|
|
115
|
+
...other,
|
|
118
116
|
children: React.Children.map(children, child => {
|
|
119
117
|
if ( /*#__PURE__*/React.isValidElement(child) && isMuiElement(child, ['Grid'])) {
|
|
120
118
|
var _child$props$unstable;
|
|
@@ -124,7 +122,7 @@ export default function createGrid(options = {}) {
|
|
|
124
122
|
}
|
|
125
123
|
return child;
|
|
126
124
|
})
|
|
127
|
-
})
|
|
125
|
+
});
|
|
128
126
|
if (disableEqualOverflow !== undefined && disableEqualOverflow !== (overflow != null ? overflow : false)) {
|
|
129
127
|
// There are 2 possibilities that should wrap with the OverflowContext to communicate with the nested grids:
|
|
130
128
|
// 1. It is the root grid with `disableEqualOverflow`.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
1
|
function appendLevel(level) {
|
|
3
2
|
if (!level) {
|
|
4
3
|
return '';
|
|
@@ -206,23 +205,27 @@ export const generateGridStyles = ({
|
|
|
206
205
|
}) => {
|
|
207
206
|
const getSelfSpacing = createGetSelfSpacing(ownerState);
|
|
208
207
|
const getParentSpacing = createGetParentSpacing(ownerState);
|
|
209
|
-
return
|
|
208
|
+
return {
|
|
210
209
|
minWidth: 0,
|
|
211
|
-
boxSizing: 'border-box'
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
210
|
+
boxSizing: 'border-box',
|
|
211
|
+
...(ownerState.container && {
|
|
212
|
+
display: 'flex',
|
|
213
|
+
flexWrap: 'wrap',
|
|
214
|
+
...(ownerState.wrap && ownerState.wrap !== 'wrap' && {
|
|
215
|
+
flexWrap: ownerState.wrap
|
|
216
|
+
}),
|
|
217
|
+
margin: `calc(${getSelfSpacing('row')} / -2) calc(${getSelfSpacing('column')} / -2)`,
|
|
218
|
+
...(ownerState.disableEqualOverflow && {
|
|
219
|
+
margin: `calc(${getSelfSpacing('row')} * -1) 0px 0px calc(${getSelfSpacing('column')} * -1)`
|
|
220
|
+
})
|
|
221
|
+
}),
|
|
222
|
+
...((!ownerState.container || isNestedContainer(ownerState)) && {
|
|
223
|
+
padding: `calc(${getParentSpacing('row')} / 2) calc(${getParentSpacing('column')} / 2)`,
|
|
224
|
+
...((ownerState.disableEqualOverflow || ownerState.parentDisableEqualOverflow) && {
|
|
225
|
+
padding: `${getParentSpacing('row')} 0px 0px ${getParentSpacing('column')}`
|
|
226
|
+
})
|
|
227
|
+
})
|
|
228
|
+
};
|
|
226
229
|
};
|
|
227
230
|
export const generateSizeClassNames = gridSize => {
|
|
228
231
|
const classNames = [];
|
package/esm/breakpoints.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
1
|
import PropTypes from 'prop-types';
|
|
3
2
|
import { deepmerge } from '@mui/utils';
|
|
4
3
|
import merge from './merge';
|
|
@@ -59,21 +58,23 @@ function breakpoints(styleFunction) {
|
|
|
59
58
|
const extended = themeBreakpoints.keys.reduce((acc, key) => {
|
|
60
59
|
if (props[key]) {
|
|
61
60
|
acc = acc || {};
|
|
62
|
-
acc[themeBreakpoints.up(key)] = styleFunction(
|
|
63
|
-
theme
|
|
64
|
-
|
|
61
|
+
acc[themeBreakpoints.up(key)] = styleFunction({
|
|
62
|
+
theme,
|
|
63
|
+
...props[key]
|
|
64
|
+
});
|
|
65
65
|
}
|
|
66
66
|
return acc;
|
|
67
67
|
}, null);
|
|
68
68
|
return merge(base, extended);
|
|
69
69
|
};
|
|
70
|
-
newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ?
|
|
70
|
+
newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? {
|
|
71
|
+
...styleFunction.propTypes,
|
|
71
72
|
xs: PropTypes.object,
|
|
72
73
|
sm: PropTypes.object,
|
|
73
74
|
md: PropTypes.object,
|
|
74
75
|
lg: PropTypes.object,
|
|
75
76
|
xl: PropTypes.object
|
|
76
|
-
}
|
|
77
|
+
} : {};
|
|
77
78
|
newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];
|
|
78
79
|
return newStyleFunction;
|
|
79
80
|
}
|
package/esm/colorManipulator.js
CHANGED
package/esm/createBox.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["className", "component"];
|
|
4
1
|
import * as React from 'react';
|
|
5
2
|
import clsx from 'clsx';
|
|
6
3
|
import styled from '@mui/styled-engine';
|
|
@@ -19,18 +16,18 @@ export default function createBox(options = {}) {
|
|
|
19
16
|
})(styleFunctionSx);
|
|
20
17
|
const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {
|
|
21
18
|
const theme = useTheme(defaultTheme);
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return /*#__PURE__*/_jsx(BoxRoot, _extends({
|
|
19
|
+
const {
|
|
20
|
+
className,
|
|
21
|
+
component = 'div',
|
|
22
|
+
...other
|
|
23
|
+
} = extendSxProp(inProps);
|
|
24
|
+
return /*#__PURE__*/_jsx(BoxRoot, {
|
|
29
25
|
as: component,
|
|
30
26
|
ref: ref,
|
|
31
27
|
className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),
|
|
32
|
-
theme: themeId ? theme[themeId] || theme : theme
|
|
33
|
-
|
|
28
|
+
theme: themeId ? theme[themeId] || theme : theme,
|
|
29
|
+
...other
|
|
30
|
+
});
|
|
34
31
|
});
|
|
35
32
|
return Box;
|
|
36
33
|
}
|
package/esm/createStyled.js
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"];
|
|
4
1
|
/* eslint-disable no-underscore-dangle */
|
|
5
2
|
import styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';
|
|
6
3
|
import { getDisplayName } from '@mui/utils';
|
|
@@ -83,25 +80,27 @@ export default function createStyled(input = {}) {
|
|
|
83
80
|
slotShouldForwardProp = shouldForwardProp
|
|
84
81
|
} = input;
|
|
85
82
|
const systemSx = props => {
|
|
86
|
-
return styleFunctionSx(
|
|
87
|
-
|
|
83
|
+
return styleFunctionSx({
|
|
84
|
+
...props,
|
|
85
|
+
theme: resolveTheme({
|
|
86
|
+
...props,
|
|
88
87
|
defaultTheme,
|
|
89
88
|
themeId
|
|
90
|
-
})
|
|
91
|
-
})
|
|
89
|
+
})
|
|
90
|
+
});
|
|
92
91
|
};
|
|
93
92
|
systemSx.__mui_systemSx = true;
|
|
94
93
|
return (tag, inputOptions = {}) => {
|
|
95
94
|
// Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.
|
|
96
95
|
processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));
|
|
97
96
|
const {
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
97
|
+
name: componentName,
|
|
98
|
+
slot: componentSlot,
|
|
99
|
+
skipVariantsResolver: inputSkipVariantsResolver,
|
|
100
|
+
skipSx: inputSkipSx,
|
|
101
|
+
overridesResolver,
|
|
102
|
+
...options
|
|
103
|
+
} = inputOptions;
|
|
105
104
|
|
|
106
105
|
// if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.
|
|
107
106
|
const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver : componentSlot && componentSlot !== 'Root' || false;
|
|
@@ -122,38 +121,43 @@ export default function createStyled(input = {}) {
|
|
|
122
121
|
// for string (html) tag, preserve the behavior in emotion & styled-components.
|
|
123
122
|
shouldForwardPropOption = undefined;
|
|
124
123
|
}
|
|
125
|
-
const defaultStyledResolver = styledEngineStyled(tag,
|
|
124
|
+
const defaultStyledResolver = styledEngineStyled(tag, {
|
|
126
125
|
shouldForwardProp: shouldForwardPropOption,
|
|
127
|
-
label
|
|
128
|
-
|
|
126
|
+
label,
|
|
127
|
+
...options
|
|
128
|
+
});
|
|
129
129
|
const muiStyledResolver = (styleArg, ...expressions) => {
|
|
130
130
|
const expressionsWithDefaultTheme = expressions ? expressions.map(stylesArg => {
|
|
131
131
|
// On the server Emotion doesn't use React.forwardRef for creating components, so the created
|
|
132
132
|
// component stays as a function. This condition makes sure that we do not interpolate functions
|
|
133
133
|
// which are basically components used as a selectors.
|
|
134
134
|
return typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg ? props => {
|
|
135
|
-
return stylesArg(
|
|
136
|
-
|
|
135
|
+
return stylesArg({
|
|
136
|
+
...props,
|
|
137
|
+
theme: resolveTheme({
|
|
138
|
+
...props,
|
|
137
139
|
defaultTheme,
|
|
138
140
|
themeId
|
|
139
|
-
})
|
|
140
|
-
})
|
|
141
|
+
})
|
|
142
|
+
});
|
|
141
143
|
} : stylesArg;
|
|
142
144
|
}) : [];
|
|
143
145
|
let transformedStyleArg = styleArg;
|
|
144
146
|
if (componentName && overridesResolver) {
|
|
145
147
|
expressionsWithDefaultTheme.push(props => {
|
|
146
|
-
const theme = resolveTheme(
|
|
148
|
+
const theme = resolveTheme({
|
|
149
|
+
...props,
|
|
147
150
|
defaultTheme,
|
|
148
151
|
themeId
|
|
149
|
-
})
|
|
152
|
+
});
|
|
150
153
|
const styleOverrides = getStyleOverrides(componentName, theme);
|
|
151
154
|
if (styleOverrides) {
|
|
152
155
|
const resolvedStyleOverrides = {};
|
|
153
156
|
Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {
|
|
154
|
-
resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(
|
|
157
|
+
resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle({
|
|
158
|
+
...props,
|
|
155
159
|
theme
|
|
156
|
-
})
|
|
160
|
+
}) : slotStyle;
|
|
157
161
|
});
|
|
158
162
|
return overridesResolver(props, resolvedStyleOverrides);
|
|
159
163
|
}
|
|
@@ -162,10 +166,11 @@ export default function createStyled(input = {}) {
|
|
|
162
166
|
}
|
|
163
167
|
if (componentName && !skipVariantsResolver) {
|
|
164
168
|
expressionsWithDefaultTheme.push(props => {
|
|
165
|
-
const theme = resolveTheme(
|
|
169
|
+
const theme = resolveTheme({
|
|
170
|
+
...props,
|
|
166
171
|
defaultTheme,
|
|
167
172
|
themeId
|
|
168
|
-
})
|
|
173
|
+
});
|
|
169
174
|
return variantsResolver(props, getVariantStyles(componentName, theme), theme, componentName);
|
|
170
175
|
});
|
|
171
176
|
}
|
|
@@ -184,12 +189,14 @@ export default function createStyled(input = {}) {
|
|
|
184
189
|
// which are basically components used as a selectors.
|
|
185
190
|
styleArg.__emotion_real !== styleArg) {
|
|
186
191
|
// If the type is function, we need to define the default theme.
|
|
187
|
-
transformedStyleArg = props => styleArg(
|
|
188
|
-
|
|
192
|
+
transformedStyleArg = props => styleArg({
|
|
193
|
+
...props,
|
|
194
|
+
theme: resolveTheme({
|
|
195
|
+
...props,
|
|
189
196
|
defaultTheme,
|
|
190
197
|
themeId
|
|
191
|
-
})
|
|
192
|
-
})
|
|
198
|
+
})
|
|
199
|
+
});
|
|
193
200
|
}
|
|
194
201
|
const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);
|
|
195
202
|
if (process.env.NODE_ENV !== 'production') {
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["values", "unit", "step"];
|
|
4
1
|
// Sorted ASC by size. That's important.
|
|
5
2
|
// It can't be configured as it's used statically for propTypes.
|
|
6
3
|
export const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];
|
|
@@ -12,33 +9,34 @@ const sortBreakpointsValues = values => {
|
|
|
12
9
|
// Sort in ascending order
|
|
13
10
|
breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);
|
|
14
11
|
return breakpointsAsArray.reduce((acc, obj) => {
|
|
15
|
-
return
|
|
12
|
+
return {
|
|
13
|
+
...acc,
|
|
16
14
|
[obj.key]: obj.val
|
|
17
|
-
}
|
|
15
|
+
};
|
|
18
16
|
}, {});
|
|
19
17
|
};
|
|
20
18
|
|
|
21
19
|
// Keep in mind that @media is inclusive by the CSS specification.
|
|
22
20
|
export default function createBreakpoints(breakpoints) {
|
|
23
21
|
const {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
22
|
+
// The breakpoint **start** at this value.
|
|
23
|
+
// For instance with the first breakpoint xs: [xs, sm).
|
|
24
|
+
values = {
|
|
25
|
+
xs: 0,
|
|
26
|
+
// phone
|
|
27
|
+
sm: 600,
|
|
28
|
+
// tablet
|
|
29
|
+
md: 900,
|
|
30
|
+
// small laptop
|
|
31
|
+
lg: 1200,
|
|
32
|
+
// desktop
|
|
33
|
+
xl: 1536 // large screen
|
|
34
|
+
},
|
|
37
35
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
36
|
+
unit = 'px',
|
|
37
|
+
step = 5,
|
|
38
|
+
...other
|
|
39
|
+
} = breakpoints;
|
|
42
40
|
const sortedValues = sortBreakpointsValues(values);
|
|
43
41
|
const keys = Object.keys(sortedValues);
|
|
44
42
|
function up(key) {
|
|
@@ -70,7 +68,7 @@ export default function createBreakpoints(breakpoints) {
|
|
|
70
68
|
}
|
|
71
69
|
return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');
|
|
72
70
|
}
|
|
73
|
-
return
|
|
71
|
+
return {
|
|
74
72
|
keys,
|
|
75
73
|
values: sortedValues,
|
|
76
74
|
up,
|
|
@@ -78,6 +76,7 @@ export default function createBreakpoints(breakpoints) {
|
|
|
78
76
|
between,
|
|
79
77
|
only,
|
|
80
78
|
not,
|
|
81
|
-
unit
|
|
82
|
-
|
|
79
|
+
unit,
|
|
80
|
+
...other
|
|
81
|
+
};
|
|
83
82
|
}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { createUnarySpacing } from '../spacing';
|
|
2
|
+
|
|
3
|
+
// The different signatures imply different meaning for their arguments that can't be expressed structurally.
|
|
4
|
+
// We express the difference with variable names.
|
|
5
|
+
/* tslint:disable:unified-signatures */
|
|
2
6
|
/* tslint:enable:unified-signatures */
|
|
3
7
|
|
|
4
8
|
export default function createSpacing(spacingInput = 8) {
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
-
const _excluded = ["breakpoints", "palette", "spacing", "shape"];
|
|
4
1
|
import { deepmerge } from '@mui/utils';
|
|
5
2
|
import createBreakpoints from './createBreakpoints';
|
|
6
3
|
import shape from './shape';
|
|
@@ -9,12 +6,12 @@ import styleFunctionSx from '../styleFunctionSx/styleFunctionSx';
|
|
|
9
6
|
import defaultSxConfig from '../styleFunctionSx/defaultSxConfig';
|
|
10
7
|
function createTheme(options = {}, ...args) {
|
|
11
8
|
const {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
9
|
+
breakpoints: breakpointsInput = {},
|
|
10
|
+
palette: paletteInput = {},
|
|
11
|
+
spacing: spacingInput,
|
|
12
|
+
shape: shapeInput = {},
|
|
13
|
+
...other
|
|
14
|
+
} = options;
|
|
18
15
|
const breakpoints = createBreakpoints(breakpointsInput);
|
|
19
16
|
const spacing = createSpacing(spacingInput);
|
|
20
17
|
let muiTheme = deepmerge({
|
|
@@ -22,14 +19,21 @@ function createTheme(options = {}, ...args) {
|
|
|
22
19
|
direction: 'ltr',
|
|
23
20
|
components: {},
|
|
24
21
|
// Inject component definitions.
|
|
25
|
-
palette:
|
|
26
|
-
mode: 'light'
|
|
27
|
-
|
|
22
|
+
palette: {
|
|
23
|
+
mode: 'light',
|
|
24
|
+
...paletteInput
|
|
25
|
+
},
|
|
28
26
|
spacing,
|
|
29
|
-
shape:
|
|
27
|
+
shape: {
|
|
28
|
+
...shape,
|
|
29
|
+
...shapeInput
|
|
30
|
+
}
|
|
30
31
|
}, other);
|
|
31
32
|
muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);
|
|
32
|
-
muiTheme.unstable_sxConfig =
|
|
33
|
+
muiTheme.unstable_sxConfig = {
|
|
34
|
+
...defaultSxConfig,
|
|
35
|
+
...(other == null ? void 0 : other.unstable_sxConfig)
|
|
36
|
+
};
|
|
33
37
|
muiTheme.unstable_sx = function sx(props) {
|
|
34
38
|
return styleFunctionSx({
|
|
35
39
|
sx: props,
|