@mui/system 5.13.1 → 5.13.2
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 +41 -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 +35 -41
- package/GlobalStyles/GlobalStyles.d.ts +13 -13
- package/GlobalStyles/index.d.ts +2 -2
- package/Stack/Stack.d.ts +14 -14
- package/Stack/StackProps.d.ts +53 -53
- package/Stack/createStack.d.ts +21 -21
- package/Stack/createStack.js +26 -24
- package/Stack/index.d.ts +5 -5
- package/Stack/stackClasses.d.ts +8 -8
- package/ThemeProvider/ThemeProvider.js +5 -9
- 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 +23 -21
- package/Unstable_Grid/gridClasses.d.ts +20 -20
- package/Unstable_Grid/gridGenerator.d.ts +38 -38
- package/Unstable_Grid/gridGenerator.js +18 -20
- package/Unstable_Grid/index.d.ts +5 -5
- package/breakpoints.js +6 -7
- package/createBox.js +12 -9
- package/createStyled.js +32 -40
- package/createTheme/createBreakpoints.js +26 -24
- package/createTheme/createSpacing.d.ts +10 -10
- package/createTheme/createTheme.js +14 -18
- package/cssVars/createCssVarsProvider.js +20 -21
- 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 +12 -13
- package/cssVars/useCurrentColorScheme.d.ts +53 -53
- package/cssVars/useCurrentColorScheme.js +11 -17
- package/esm/Container/createContainer.js +35 -41
- package/esm/Stack/createStack.js +26 -24
- package/esm/ThemeProvider/ThemeProvider.js +5 -9
- package/esm/Unstable_Grid/createGrid.js +23 -21
- package/esm/Unstable_Grid/gridGenerator.js +17 -20
- package/esm/breakpoints.js +6 -7
- package/esm/createBox.js +12 -9
- package/esm/createStyled.js +31 -38
- package/esm/createTheme/createBreakpoints.js +25 -24
- package/esm/createTheme/createTheme.js +14 -18
- package/esm/cssVars/createCssVarsProvider.js +20 -21
- package/esm/cssVars/createCssVarsTheme.js +10 -10
- package/esm/cssVars/prepareCssVars.js +12 -13
- package/esm/cssVars/useCurrentColorScheme.js +10 -17
- package/esm/propsToClassKey.js +5 -3
- package/esm/styleFunctionSx/extendSxProp.js +10 -14
- package/index.js +1 -1
- package/legacy/Container/createContainer.js +6 -7
- package/legacy/Stack/createStack.js +5 -6
- package/legacy/ThemeProvider/ThemeProvider.js +3 -4
- package/legacy/Unstable_Grid/createGrid.js +4 -6
- package/legacy/Unstable_Grid/gridGenerator.js +4 -6
- package/legacy/breakpoints.js +3 -5
- package/legacy/createBox.js +2 -4
- package/legacy/createStyled.js +11 -13
- package/legacy/createTheme/createBreakpoints.js +3 -4
- package/legacy/createTheme/createTheme.js +4 -6
- package/legacy/cssVars/createCssVarsProvider.js +5 -6
- package/legacy/cssVars/createCssVarsTheme.js +2 -4
- package/legacy/cssVars/prepareCssVars.js +3 -5
- package/legacy/cssVars/useCurrentColorScheme.js +7 -9
- package/legacy/index.js +1 -1
- package/legacy/styleFunctionSx/extendSxProp.js +4 -6
- package/modern/Container/createContainer.js +35 -41
- package/modern/Stack/createStack.js +26 -24
- package/modern/ThemeProvider/ThemeProvider.js +5 -9
- package/modern/Unstable_Grid/createGrid.js +23 -21
- package/modern/Unstable_Grid/gridGenerator.js +17 -20
- package/modern/breakpoints.js +6 -7
- package/modern/createBox.js +12 -9
- package/modern/createStyled.js +31 -38
- package/modern/createTheme/createBreakpoints.js +25 -24
- package/modern/createTheme/createTheme.js +14 -18
- package/modern/cssVars/createCssVarsProvider.js +20 -21
- package/modern/cssVars/createCssVarsTheme.js +10 -10
- package/modern/cssVars/prepareCssVars.js +12 -13
- package/modern/cssVars/useCurrentColorScheme.js +10 -17
- package/modern/index.js +1 -1
- package/modern/propsToClassKey.js +5 -3
- package/modern/styleFunctionSx/extendSxProp.js +10 -14
- package/package.json +2 -2
- package/propsToClassKey.js +6 -3
- package/styleFunctionSx/extendSxProp.js +10 -14
|
@@ -1,3 +1,6 @@
|
|
|
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"];
|
|
1
4
|
import * as React from 'react';
|
|
2
5
|
import PropTypes from 'prop-types';
|
|
3
6
|
import clsx from 'clsx';
|
|
@@ -52,20 +55,20 @@ export default function createGrid(options = {}) {
|
|
|
52
55
|
const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.
|
|
53
56
|
const overflow = React.useContext(OverflowContext);
|
|
54
57
|
const {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
58
|
+
className,
|
|
59
|
+
children,
|
|
60
|
+
columns: columnsProp = 12,
|
|
61
|
+
container = false,
|
|
62
|
+
component = 'div',
|
|
63
|
+
direction = 'row',
|
|
64
|
+
wrap = 'wrap',
|
|
65
|
+
spacing: spacingProp = 0,
|
|
66
|
+
rowSpacing: rowSpacingProp = spacingProp,
|
|
67
|
+
columnSpacing: columnSpacingProp = spacingProp,
|
|
68
|
+
disableEqualOverflow: themeDisableEqualOverflow,
|
|
69
|
+
unstable_level: level = 0
|
|
70
|
+
} = props,
|
|
71
|
+
rest = _objectWithoutPropertiesLoose(props, _excluded);
|
|
69
72
|
// Because `disableEqualOverflow` can be set from the theme's defaultProps, the **nested** grid should look at the instance props instead.
|
|
70
73
|
let disableEqualOverflow = themeDisableEqualOverflow;
|
|
71
74
|
if (level && themeDisableEqualOverflow !== undefined) {
|
|
@@ -88,8 +91,7 @@ export default function createGrid(options = {}) {
|
|
|
88
91
|
const spacing = inProps.spacing ?? (level ? undefined : spacingProp);
|
|
89
92
|
const rowSpacing = inProps.rowSpacing ?? inProps.spacing ?? (level ? undefined : rowSpacingProp);
|
|
90
93
|
const columnSpacing = inProps.columnSpacing ?? inProps.spacing ?? (level ? undefined : columnSpacingProp);
|
|
91
|
-
const ownerState = {
|
|
92
|
-
...props,
|
|
94
|
+
const ownerState = _extends({}, props, {
|
|
93
95
|
level,
|
|
94
96
|
columns,
|
|
95
97
|
container,
|
|
@@ -103,15 +105,15 @@ export default function createGrid(options = {}) {
|
|
|
103
105
|
disableEqualOverflow: disableEqualOverflow ?? overflow ?? false,
|
|
104
106
|
// use context value if exists.
|
|
105
107
|
parentDisableEqualOverflow: overflow // for nested grid
|
|
106
|
-
};
|
|
108
|
+
});
|
|
107
109
|
|
|
108
110
|
const classes = useUtilityClasses(ownerState, theme);
|
|
109
|
-
let result = /*#__PURE__*/_jsx(GridRoot, {
|
|
111
|
+
let result = /*#__PURE__*/_jsx(GridRoot, _extends({
|
|
110
112
|
ref: ref,
|
|
111
113
|
as: component,
|
|
112
114
|
ownerState: ownerState,
|
|
113
|
-
className: clsx(classes.root, className)
|
|
114
|
-
|
|
115
|
+
className: clsx(classes.root, className)
|
|
116
|
+
}, other, {
|
|
115
117
|
children: React.Children.map(children, child => {
|
|
116
118
|
if ( /*#__PURE__*/React.isValidElement(child) && isMuiElement(child, ['Grid'])) {
|
|
117
119
|
return /*#__PURE__*/React.cloneElement(child, {
|
|
@@ -120,7 +122,7 @@ export default function createGrid(options = {}) {
|
|
|
120
122
|
}
|
|
121
123
|
return child;
|
|
122
124
|
})
|
|
123
|
-
});
|
|
125
|
+
}));
|
|
124
126
|
if (disableEqualOverflow !== undefined && disableEqualOverflow !== (overflow ?? false)) {
|
|
125
127
|
// There are 2 possibilities that should wrap with the OverflowContext to communicate with the nested grids:
|
|
126
128
|
// 1. It is the root grid with `disableEqualOverflow`.
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
function appendLevel(level) {
|
|
2
3
|
if (!level) {
|
|
3
4
|
return '';
|
|
@@ -203,27 +204,23 @@ export const generateGridStyles = ({
|
|
|
203
204
|
}) => {
|
|
204
205
|
const getSelfSpacing = createGetSelfSpacing(ownerState);
|
|
205
206
|
const getParentSpacing = createGetParentSpacing(ownerState);
|
|
206
|
-
return {
|
|
207
|
+
return _extends({
|
|
207
208
|
minWidth: 0,
|
|
208
|
-
boxSizing: 'border-box'
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
})
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
padding: `${getParentSpacing('row')} 0px 0px ${getParentSpacing('column')}`
|
|
224
|
-
})
|
|
225
|
-
})
|
|
226
|
-
};
|
|
209
|
+
boxSizing: 'border-box'
|
|
210
|
+
}, ownerState.container && _extends({
|
|
211
|
+
display: 'flex',
|
|
212
|
+
flexWrap: 'wrap'
|
|
213
|
+
}, ownerState.wrap && ownerState.wrap !== 'wrap' && {
|
|
214
|
+
flexWrap: ownerState.wrap
|
|
215
|
+
}, {
|
|
216
|
+
margin: `calc(${getSelfSpacing('row')} / -2) calc(${getSelfSpacing('column')} / -2)`
|
|
217
|
+
}, ownerState.disableEqualOverflow && {
|
|
218
|
+
margin: `calc(${getSelfSpacing('row')} * -1) 0px 0px calc(${getSelfSpacing('column')} * -1)`
|
|
219
|
+
}), (!ownerState.container || isNestedContainer(ownerState)) && _extends({
|
|
220
|
+
padding: `calc(${getParentSpacing('row')} / 2) calc(${getParentSpacing('column')} / 2)`
|
|
221
|
+
}, (ownerState.disableEqualOverflow || ownerState.parentDisableEqualOverflow) && {
|
|
222
|
+
padding: `${getParentSpacing('row')} 0px 0px ${getParentSpacing('column')}`
|
|
223
|
+
}));
|
|
227
224
|
};
|
|
228
225
|
export const generateSizeClassNames = gridSize => {
|
|
229
226
|
const classNames = [];
|
package/modern/breakpoints.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import PropTypes from 'prop-types';
|
|
2
3
|
import { deepmerge } from '@mui/utils';
|
|
3
4
|
import merge from './merge';
|
|
@@ -58,23 +59,21 @@ function breakpoints(styleFunction) {
|
|
|
58
59
|
const extended = themeBreakpoints.keys.reduce((acc, key) => {
|
|
59
60
|
if (props[key]) {
|
|
60
61
|
acc = acc || {};
|
|
61
|
-
acc[themeBreakpoints.up(key)] = styleFunction({
|
|
62
|
-
theme
|
|
63
|
-
|
|
64
|
-
});
|
|
62
|
+
acc[themeBreakpoints.up(key)] = styleFunction(_extends({
|
|
63
|
+
theme
|
|
64
|
+
}, props[key]));
|
|
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' ? {
|
|
71
|
-
...styleFunction.propTypes,
|
|
70
|
+
newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {
|
|
72
71
|
xs: PropTypes.object,
|
|
73
72
|
sm: PropTypes.object,
|
|
74
73
|
md: PropTypes.object,
|
|
75
74
|
lg: PropTypes.object,
|
|
76
75
|
xl: PropTypes.object
|
|
77
|
-
} : {};
|
|
76
|
+
}) : {};
|
|
78
77
|
newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];
|
|
79
78
|
return newStyleFunction;
|
|
80
79
|
}
|
package/modern/createBox.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["className", "component"];
|
|
1
4
|
import * as React from 'react';
|
|
2
5
|
import clsx from 'clsx';
|
|
3
6
|
import styled from '@mui/styled-engine';
|
|
@@ -16,18 +19,18 @@ export default function createBox(options = {}) {
|
|
|
16
19
|
})(styleFunctionSx);
|
|
17
20
|
const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {
|
|
18
21
|
const theme = useTheme(defaultTheme);
|
|
19
|
-
const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
const _extendSxProp = extendSxProp(inProps),
|
|
23
|
+
{
|
|
24
|
+
className,
|
|
25
|
+
component = 'div'
|
|
26
|
+
} = _extendSxProp,
|
|
27
|
+
other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded);
|
|
28
|
+
return /*#__PURE__*/_jsx(BoxRoot, _extends({
|
|
25
29
|
as: component,
|
|
26
30
|
ref: ref,
|
|
27
31
|
className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),
|
|
28
|
-
theme: themeId ? theme[themeId] || theme : theme
|
|
29
|
-
|
|
30
|
-
});
|
|
32
|
+
theme: themeId ? theme[themeId] || theme : theme
|
|
33
|
+
}, other));
|
|
31
34
|
});
|
|
32
35
|
return Box;
|
|
33
36
|
}
|
package/modern/createStyled.js
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
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"];
|
|
1
4
|
/* eslint-disable no-underscore-dangle */
|
|
2
5
|
import styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';
|
|
3
6
|
import { getDisplayName } from '@mui/utils';
|
|
@@ -79,27 +82,25 @@ export default function createStyled(input = {}) {
|
|
|
79
82
|
slotShouldForwardProp = shouldForwardProp
|
|
80
83
|
} = input;
|
|
81
84
|
const systemSx = props => {
|
|
82
|
-
return styleFunctionSx({
|
|
83
|
-
|
|
84
|
-
theme: resolveTheme({
|
|
85
|
-
...props,
|
|
85
|
+
return styleFunctionSx(_extends({}, props, {
|
|
86
|
+
theme: resolveTheme(_extends({}, props, {
|
|
86
87
|
defaultTheme,
|
|
87
88
|
themeId
|
|
88
|
-
})
|
|
89
|
-
});
|
|
89
|
+
}))
|
|
90
|
+
}));
|
|
90
91
|
};
|
|
91
92
|
systemSx.__mui_systemSx = true;
|
|
92
93
|
return (tag, inputOptions = {}) => {
|
|
93
94
|
// Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.
|
|
94
95
|
processStyles(tag, styles => styles.filter(style => !style?.__mui_systemSx));
|
|
95
96
|
const {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
97
|
+
name: componentName,
|
|
98
|
+
slot: componentSlot,
|
|
99
|
+
skipVariantsResolver: inputSkipVariantsResolver,
|
|
100
|
+
skipSx: inputSkipSx,
|
|
101
|
+
overridesResolver
|
|
102
|
+
} = inputOptions,
|
|
103
|
+
options = _objectWithoutPropertiesLoose(inputOptions, _excluded);
|
|
103
104
|
|
|
104
105
|
// if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.
|
|
105
106
|
const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver : componentSlot && componentSlot !== 'Root' || false;
|
|
@@ -120,43 +121,38 @@ export default function createStyled(input = {}) {
|
|
|
120
121
|
// for string (html) tag, preserve the behavior in emotion & styled-components.
|
|
121
122
|
shouldForwardPropOption = undefined;
|
|
122
123
|
}
|
|
123
|
-
const defaultStyledResolver = styledEngineStyled(tag, {
|
|
124
|
+
const defaultStyledResolver = styledEngineStyled(tag, _extends({
|
|
124
125
|
shouldForwardProp: shouldForwardPropOption,
|
|
125
|
-
label
|
|
126
|
-
|
|
127
|
-
});
|
|
126
|
+
label
|
|
127
|
+
}, options));
|
|
128
128
|
const muiStyledResolver = (styleArg, ...expressions) => {
|
|
129
129
|
const expressionsWithDefaultTheme = expressions ? expressions.map(stylesArg => {
|
|
130
130
|
// On the server Emotion doesn't use React.forwardRef for creating components, so the created
|
|
131
131
|
// component stays as a function. This condition makes sure that we do not interpolate functions
|
|
132
132
|
// which are basically components used as a selectors.
|
|
133
133
|
return typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg ? props => {
|
|
134
|
-
return stylesArg({
|
|
135
|
-
|
|
136
|
-
theme: resolveTheme({
|
|
137
|
-
...props,
|
|
134
|
+
return stylesArg(_extends({}, props, {
|
|
135
|
+
theme: resolveTheme(_extends({}, props, {
|
|
138
136
|
defaultTheme,
|
|
139
137
|
themeId
|
|
140
|
-
})
|
|
141
|
-
});
|
|
138
|
+
}))
|
|
139
|
+
}));
|
|
142
140
|
} : stylesArg;
|
|
143
141
|
}) : [];
|
|
144
142
|
let transformedStyleArg = styleArg;
|
|
145
143
|
if (componentName && overridesResolver) {
|
|
146
144
|
expressionsWithDefaultTheme.push(props => {
|
|
147
|
-
const theme = resolveTheme({
|
|
148
|
-
...props,
|
|
145
|
+
const theme = resolveTheme(_extends({}, props, {
|
|
149
146
|
defaultTheme,
|
|
150
147
|
themeId
|
|
151
|
-
});
|
|
148
|
+
}));
|
|
152
149
|
const styleOverrides = getStyleOverrides(componentName, theme);
|
|
153
150
|
if (styleOverrides) {
|
|
154
151
|
const resolvedStyleOverrides = {};
|
|
155
152
|
Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {
|
|
156
|
-
resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle({
|
|
157
|
-
...props,
|
|
153
|
+
resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends({}, props, {
|
|
158
154
|
theme
|
|
159
|
-
}) : slotStyle;
|
|
155
|
+
})) : slotStyle;
|
|
160
156
|
});
|
|
161
157
|
return overridesResolver(props, resolvedStyleOverrides);
|
|
162
158
|
}
|
|
@@ -165,11 +161,10 @@ export default function createStyled(input = {}) {
|
|
|
165
161
|
}
|
|
166
162
|
if (componentName && !skipVariantsResolver) {
|
|
167
163
|
expressionsWithDefaultTheme.push(props => {
|
|
168
|
-
const theme = resolveTheme({
|
|
169
|
-
...props,
|
|
164
|
+
const theme = resolveTheme(_extends({}, props, {
|
|
170
165
|
defaultTheme,
|
|
171
166
|
themeId
|
|
172
|
-
});
|
|
167
|
+
}));
|
|
173
168
|
return variantsResolver(props, getVariantStyles(componentName, theme), theme, componentName);
|
|
174
169
|
});
|
|
175
170
|
}
|
|
@@ -188,14 +183,12 @@ export default function createStyled(input = {}) {
|
|
|
188
183
|
// which are basically components used as a selectors.
|
|
189
184
|
styleArg.__emotion_real !== styleArg) {
|
|
190
185
|
// If the type is function, we need to define the default theme.
|
|
191
|
-
transformedStyleArg = props => styleArg({
|
|
192
|
-
|
|
193
|
-
theme: resolveTheme({
|
|
194
|
-
...props,
|
|
186
|
+
transformedStyleArg = props => styleArg(_extends({}, props, {
|
|
187
|
+
theme: resolveTheme(_extends({}, props, {
|
|
195
188
|
defaultTheme,
|
|
196
189
|
themeId
|
|
197
|
-
})
|
|
198
|
-
});
|
|
190
|
+
}))
|
|
191
|
+
}));
|
|
199
192
|
}
|
|
200
193
|
const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);
|
|
201
194
|
if (process.env.NODE_ENV !== 'production') {
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
const _excluded = ["values", "unit", "step"];
|
|
1
4
|
// Sorted ASC by size. That's important.
|
|
2
5
|
// It can't be configured as it's used statically for propTypes.
|
|
3
6
|
export const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];
|
|
@@ -9,34 +12,33 @@ const sortBreakpointsValues = values => {
|
|
|
9
12
|
// Sort in ascending order
|
|
10
13
|
breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);
|
|
11
14
|
return breakpointsAsArray.reduce((acc, obj) => {
|
|
12
|
-
return {
|
|
13
|
-
...acc,
|
|
15
|
+
return _extends({}, acc, {
|
|
14
16
|
[obj.key]: obj.val
|
|
15
|
-
};
|
|
17
|
+
});
|
|
16
18
|
}, {});
|
|
17
19
|
};
|
|
18
20
|
|
|
19
21
|
// Keep in mind that @media is inclusive by the CSS specification.
|
|
20
22
|
export default function createBreakpoints(breakpoints) {
|
|
21
23
|
const {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
24
|
+
// The breakpoint **start** at this value.
|
|
25
|
+
// For instance with the first breakpoint xs: [xs, sm).
|
|
26
|
+
values = {
|
|
27
|
+
xs: 0,
|
|
28
|
+
// phone
|
|
29
|
+
sm: 600,
|
|
30
|
+
// tablet
|
|
31
|
+
md: 900,
|
|
32
|
+
// small laptop
|
|
33
|
+
lg: 1200,
|
|
34
|
+
// desktop
|
|
35
|
+
xl: 1536 // large screen
|
|
36
|
+
},
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
unit = 'px',
|
|
39
|
+
step = 5
|
|
40
|
+
} = breakpoints,
|
|
41
|
+
other = _objectWithoutPropertiesLoose(breakpoints, _excluded);
|
|
40
42
|
const sortedValues = sortBreakpointsValues(values);
|
|
41
43
|
const keys = Object.keys(sortedValues);
|
|
42
44
|
function up(key) {
|
|
@@ -68,7 +70,7 @@ export default function createBreakpoints(breakpoints) {
|
|
|
68
70
|
}
|
|
69
71
|
return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');
|
|
70
72
|
}
|
|
71
|
-
return {
|
|
73
|
+
return _extends({
|
|
72
74
|
keys,
|
|
73
75
|
values: sortedValues,
|
|
74
76
|
up,
|
|
@@ -76,7 +78,6 @@ export default function createBreakpoints(breakpoints) {
|
|
|
76
78
|
between,
|
|
77
79
|
only,
|
|
78
80
|
not,
|
|
79
|
-
unit
|
|
80
|
-
|
|
81
|
-
};
|
|
81
|
+
unit
|
|
82
|
+
}, other);
|
|
82
83
|
}
|
|
@@ -1,3 +1,6 @@
|
|
|
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"];
|
|
1
4
|
import { deepmerge } from '@mui/utils';
|
|
2
5
|
import createBreakpoints from './createBreakpoints';
|
|
3
6
|
import shape from './shape';
|
|
@@ -6,12 +9,12 @@ import styleFunctionSx from '../styleFunctionSx/styleFunctionSx';
|
|
|
6
9
|
import defaultSxConfig from '../styleFunctionSx/defaultSxConfig';
|
|
7
10
|
function createTheme(options = {}, ...args) {
|
|
8
11
|
const {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
breakpoints: breakpointsInput = {},
|
|
13
|
+
palette: paletteInput = {},
|
|
14
|
+
spacing: spacingInput,
|
|
15
|
+
shape: shapeInput = {}
|
|
16
|
+
} = options,
|
|
17
|
+
other = _objectWithoutPropertiesLoose(options, _excluded);
|
|
15
18
|
const breakpoints = createBreakpoints(breakpointsInput);
|
|
16
19
|
const spacing = createSpacing(spacingInput);
|
|
17
20
|
let muiTheme = deepmerge({
|
|
@@ -19,21 +22,14 @@ function createTheme(options = {}, ...args) {
|
|
|
19
22
|
direction: 'ltr',
|
|
20
23
|
components: {},
|
|
21
24
|
// Inject component definitions.
|
|
22
|
-
palette: {
|
|
23
|
-
mode: 'light'
|
|
24
|
-
|
|
25
|
-
},
|
|
25
|
+
palette: _extends({
|
|
26
|
+
mode: 'light'
|
|
27
|
+
}, paletteInput),
|
|
26
28
|
spacing,
|
|
27
|
-
shape: {
|
|
28
|
-
...shape,
|
|
29
|
-
...shapeInput
|
|
30
|
-
}
|
|
29
|
+
shape: _extends({}, shape, shapeInput)
|
|
31
30
|
}, other);
|
|
32
31
|
muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);
|
|
33
|
-
muiTheme.unstable_sxConfig = {
|
|
34
|
-
...defaultSxConfig,
|
|
35
|
-
...other?.unstable_sxConfig
|
|
36
|
-
};
|
|
32
|
+
muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other?.unstable_sxConfig);
|
|
37
33
|
muiTheme.unstable_sx = function sx(props) {
|
|
38
34
|
return styleFunctionSx({
|
|
39
35
|
sx: props,
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
1
3
|
import { formatMuiErrorMessage as _formatMuiErrorMessage } from "@mui/utils";
|
|
4
|
+
const _excluded = ["colorSchemes", "components", "generateCssVars", "cssVarPrefix"];
|
|
2
5
|
import * as React from 'react';
|
|
3
6
|
import PropTypes from 'prop-types';
|
|
4
7
|
import { deepmerge } from '@mui/utils';
|
|
@@ -55,16 +58,17 @@ export default function createCssVarsProvider(options) {
|
|
|
55
58
|
const ctx = React.useContext(ColorSchemeContext);
|
|
56
59
|
const nested = !!ctx && !disableNestedContext;
|
|
57
60
|
const scopedTheme = themeProp[themeId];
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
61
|
+
const _ref = scopedTheme || themeProp,
|
|
62
|
+
{
|
|
63
|
+
colorSchemes = {},
|
|
64
|
+
components = {},
|
|
65
|
+
generateCssVars = () => ({
|
|
66
|
+
vars: {},
|
|
67
|
+
css: {}
|
|
68
|
+
}),
|
|
69
|
+
cssVarPrefix
|
|
70
|
+
} = _ref,
|
|
71
|
+
restThemeProp = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
68
72
|
const allColorSchemes = Object.keys(colorSchemes);
|
|
69
73
|
const defaultLightColorScheme = typeof defaultColorScheme === 'string' ? defaultColorScheme : defaultColorScheme.light;
|
|
70
74
|
const defaultDarkColorScheme = typeof defaultColorScheme === 'string' ? defaultColorScheme : defaultColorScheme.dark;
|
|
@@ -122,14 +126,13 @@ export default function createCssVarsProvider(options) {
|
|
|
122
126
|
} = generateCssVars();
|
|
123
127
|
|
|
124
128
|
// 3. Start composing the theme object
|
|
125
|
-
const theme = {
|
|
126
|
-
...restThemeProp,
|
|
129
|
+
const theme = _extends({}, restThemeProp, {
|
|
127
130
|
components,
|
|
128
131
|
colorSchemes,
|
|
129
132
|
cssVarPrefix,
|
|
130
133
|
vars: rootVars,
|
|
131
134
|
getColorSchemeSelector: targetColorScheme => `[${attribute}="${targetColorScheme}"] &`
|
|
132
|
-
};
|
|
135
|
+
});
|
|
133
136
|
|
|
134
137
|
// 4. Create color CSS variables and store them in objects (to be generated in stylesheets in the final step)
|
|
135
138
|
// The default color scheme stylesheet is constructed to have the least CSS specificity.
|
|
@@ -147,10 +150,7 @@ export default function createCssVarsProvider(options) {
|
|
|
147
150
|
Object.keys(scheme).forEach(schemeKey => {
|
|
148
151
|
if (scheme[schemeKey] && typeof scheme[schemeKey] === 'object') {
|
|
149
152
|
// shallow merge the 1st level structure of the theme.
|
|
150
|
-
theme[schemeKey] = {
|
|
151
|
-
...theme[schemeKey],
|
|
152
|
-
...scheme[schemeKey]
|
|
153
|
-
};
|
|
153
|
+
theme[schemeKey] = _extends({}, theme[schemeKey], scheme[schemeKey]);
|
|
154
154
|
} else {
|
|
155
155
|
theme[schemeKey] = scheme[schemeKey];
|
|
156
156
|
}
|
|
@@ -320,15 +320,14 @@ export default function createCssVarsProvider(options) {
|
|
|
320
320
|
} : void 0;
|
|
321
321
|
const defaultLightColorScheme = typeof designSystemColorScheme === 'string' ? designSystemColorScheme : designSystemColorScheme.light;
|
|
322
322
|
const defaultDarkColorScheme = typeof designSystemColorScheme === 'string' ? designSystemColorScheme : designSystemColorScheme.dark;
|
|
323
|
-
const getInitColorSchemeScript = params => systemGetInitColorSchemeScript({
|
|
323
|
+
const getInitColorSchemeScript = params => systemGetInitColorSchemeScript(_extends({
|
|
324
324
|
attribute: defaultAttribute,
|
|
325
325
|
colorSchemeStorageKey: defaultColorSchemeStorageKey,
|
|
326
326
|
defaultMode: designSystemMode,
|
|
327
327
|
defaultLightColorScheme,
|
|
328
328
|
defaultDarkColorScheme,
|
|
329
|
-
modeStorageKey: defaultModeStorageKey
|
|
330
|
-
|
|
331
|
-
});
|
|
329
|
+
modeStorageKey: defaultModeStorageKey
|
|
330
|
+
}, params));
|
|
332
331
|
return {
|
|
333
332
|
CssVarsProvider,
|
|
334
333
|
useColorScheme,
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["cssVarPrefix", "shouldSkipGeneratingVar"];
|
|
1
4
|
import prepareCssVars from './prepareCssVars';
|
|
2
5
|
function createCssVarsTheme(theme) {
|
|
3
6
|
const {
|
|
4
|
-
|
|
5
|
-
shouldSkipGeneratingVar,
|
|
6
|
-
...otherTheme
|
|
7
|
-
} = theme;
|
|
8
|
-
return {
|
|
9
|
-
...theme,
|
|
10
|
-
...prepareCssVars(otherTheme, {
|
|
11
|
-
prefix: cssVarPrefix,
|
|
7
|
+
cssVarPrefix,
|
|
12
8
|
shouldSkipGeneratingVar
|
|
13
|
-
}
|
|
14
|
-
|
|
9
|
+
} = theme,
|
|
10
|
+
otherTheme = _objectWithoutPropertiesLoose(theme, _excluded);
|
|
11
|
+
return _extends({}, theme, prepareCssVars(otherTheme, {
|
|
12
|
+
prefix: cssVarPrefix,
|
|
13
|
+
shouldSkipGeneratingVar
|
|
14
|
+
}));
|
|
15
15
|
}
|
|
16
16
|
export default createCssVarsTheme;
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
3
|
+
const _excluded = ["colorSchemes", "components"],
|
|
4
|
+
_excluded2 = ["light"];
|
|
1
5
|
import { deepmerge } from '@mui/utils';
|
|
2
6
|
import cssVarsParser from './cssVarsParser';
|
|
3
7
|
function prepareCssVars(theme, parserConfig) {
|
|
4
8
|
// @ts-ignore - ignore components do not exist
|
|
5
9
|
const {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
} = theme;
|
|
10
|
+
colorSchemes = {}
|
|
11
|
+
} = theme,
|
|
12
|
+
otherTheme = _objectWithoutPropertiesLoose(theme, _excluded);
|
|
10
13
|
const {
|
|
11
14
|
vars: rootVars,
|
|
12
15
|
css: rootCss,
|
|
@@ -15,9 +18,9 @@ function prepareCssVars(theme, parserConfig) {
|
|
|
15
18
|
let themeVars = rootVarsWithDefaults;
|
|
16
19
|
const colorSchemesMap = {};
|
|
17
20
|
const {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
light
|
|
22
|
+
} = colorSchemes,
|
|
23
|
+
otherColorSchemes = _objectWithoutPropertiesLoose(colorSchemes, _excluded2);
|
|
21
24
|
Object.entries(otherColorSchemes || {}).forEach(([key, scheme]) => {
|
|
22
25
|
const {
|
|
23
26
|
vars,
|
|
@@ -46,16 +49,12 @@ function prepareCssVars(theme, parserConfig) {
|
|
|
46
49
|
const generateCssVars = colorScheme => {
|
|
47
50
|
if (!colorScheme) {
|
|
48
51
|
return {
|
|
49
|
-
css: {
|
|
50
|
-
...rootCss
|
|
51
|
-
},
|
|
52
|
+
css: _extends({}, rootCss),
|
|
52
53
|
vars: rootVars
|
|
53
54
|
};
|
|
54
55
|
}
|
|
55
56
|
return {
|
|
56
|
-
css: {
|
|
57
|
-
...colorSchemesMap[colorScheme].css
|
|
58
|
-
},
|
|
57
|
+
css: _extends({}, colorSchemesMap[colorScheme].css),
|
|
59
58
|
vars: colorSchemesMap[colorScheme].vars
|
|
60
59
|
};
|
|
61
60
|
};
|