@mui/system 5.0.3 → 5.1.0
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 +274 -0
- package/borders.js +1 -1
- package/breakpoints.js +45 -11
- package/colorManipulator.js +8 -8
- package/createBox.d.ts +5 -1
- package/createBox.js +5 -3
- package/createStyled.d.ts +16 -190
- package/createStyled.js +6 -2
- package/createTheme/createBreakpoints.d.ts +53 -6
- package/createTheme/createBreakpoints.js +3 -3
- package/cssVars/createCssVarsProvider.d.ts +131 -0
- package/cssVars/createCssVarsProvider.js +228 -0
- package/cssVars/createCssVarsProvider.spec.d.ts +1 -0
- package/cssVars/cssVarsParser.d.ts +68 -0
- package/cssVars/cssVarsParser.js +156 -0
- package/cssVars/getInitColorSchemeScript.d.ts +12 -0
- package/cssVars/getInitColorSchemeScript.js +60 -0
- package/cssVars/index.d.ts +2 -0
- package/cssVars/index.js +15 -0
- package/cssVars/package.json +6 -0
- package/cssVars/useCurrentColorScheme.d.ts +50 -0
- package/cssVars/useCurrentColorScheme.js +235 -0
- package/display.js +1 -1
- package/esm/breakpoints.js +39 -8
- package/esm/createBox.js +5 -3
- package/esm/createStyled.js +5 -1
- package/esm/createTheme/createBreakpoints.js +2 -2
- package/esm/cssVars/createCssVarsProvider.js +207 -0
- package/esm/cssVars/cssVarsParser.js +141 -0
- package/esm/cssVars/getInitColorSchemeScript.js +42 -0
- package/esm/cssVars/index.js +1 -0
- package/esm/cssVars/useCurrentColorScheme.js +217 -0
- package/esm/index.js +2 -1
- package/esm/styleFunctionSx/extendSxProp.js +20 -1
- package/esm/styleFunctionSx/styleFunctionSx.js +45 -35
- package/flexbox.js +1 -1
- package/getThemeValue.js +1 -1
- package/grid.js +1 -1
- package/index.d.ts +6 -0
- package/index.js +77 -68
- package/legacy/breakpoints.js +39 -8
- package/legacy/createBox.js +6 -3
- package/legacy/createStyled.js +5 -1
- package/legacy/createTheme/createBreakpoints.js +2 -2
- package/legacy/cssVars/createCssVarsProvider.js +215 -0
- package/legacy/cssVars/cssVarsParser.js +153 -0
- package/legacy/cssVars/getInitColorSchemeScript.js +27 -0
- package/legacy/cssVars/index.js +1 -0
- package/legacy/cssVars/useCurrentColorScheme.js +231 -0
- package/legacy/index.js +3 -2
- package/legacy/styleFunctionSx/extendSxProp.js +21 -1
- package/legacy/styleFunctionSx/styleFunctionSx.js +44 -34
- package/modern/breakpoints.js +39 -8
- package/modern/createBox.js +5 -3
- package/modern/createStyled.js +5 -1
- package/modern/createTheme/createBreakpoints.js +2 -2
- package/modern/cssVars/createCssVarsProvider.js +207 -0
- package/modern/cssVars/cssVarsParser.js +141 -0
- package/modern/cssVars/getInitColorSchemeScript.js +42 -0
- package/modern/cssVars/index.js +1 -0
- package/modern/cssVars/useCurrentColorScheme.js +217 -0
- package/modern/index.js +3 -2
- package/modern/styleFunctionSx/extendSxProp.js +20 -1
- package/modern/styleFunctionSx/styleFunctionSx.js +45 -35
- package/package.json +8 -8
- package/palette.js +1 -1
- package/positions.js +1 -1
- package/sizing.js +1 -1
- package/spacing.js +3 -3
- package/style.d.ts +2 -2
- package/style.js +1 -1
- package/styleFunctionSx/extendSxProp.js +21 -1
- package/styleFunctionSx/styleFunctionSx.d.ts +7 -1
- package/styleFunctionSx/styleFunctionSx.js +46 -36
- package/styleFunctionSx/styleFunctionSx.spec.d.ts +1 -0
- package/typography.js +1 -1
- package/useTheme.js +1 -1
|
@@ -14,53 +14,63 @@ function callIfFn(maybeFn, arg) {
|
|
|
14
14
|
|
|
15
15
|
function styleFunctionSx(props) {
|
|
16
16
|
const {
|
|
17
|
-
sx
|
|
17
|
+
sx,
|
|
18
18
|
theme = {}
|
|
19
19
|
} = props || {};
|
|
20
20
|
|
|
21
|
-
if (!
|
|
22
|
-
return null;
|
|
21
|
+
if (!sx) {
|
|
22
|
+
return null; // emotion & styled-components will neglect null
|
|
23
23
|
}
|
|
24
|
+
/*
|
|
25
|
+
* Receive `sxInput` as object or callback
|
|
26
|
+
* and then recursively check keys & values to create media query object styles.
|
|
27
|
+
* (the result will be used in `styled`)
|
|
28
|
+
*/
|
|
24
29
|
|
|
25
|
-
if (typeof styles === 'function') {
|
|
26
|
-
return styles(theme);
|
|
27
|
-
}
|
|
28
30
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
return styles;
|
|
32
|
-
}
|
|
31
|
+
function traverse(sxInput) {
|
|
32
|
+
let sxObject = sxInput;
|
|
33
33
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
34
|
+
if (typeof sxInput === 'function') {
|
|
35
|
+
sxObject = sxInput(theme);
|
|
36
|
+
} else if (typeof sxInput !== 'object') {
|
|
37
|
+
// value
|
|
38
|
+
return sxInput;
|
|
39
|
+
}
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
theme
|
|
46
|
-
}, value, x => ({
|
|
47
|
-
[styleKey]: x
|
|
48
|
-
}));
|
|
41
|
+
const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);
|
|
42
|
+
const breakpointsKeys = Object.keys(emptyBreakpoints);
|
|
43
|
+
let css = emptyBreakpoints;
|
|
44
|
+
Object.keys(sxObject).forEach(styleKey => {
|
|
45
|
+
const value = callIfFn(sxObject[styleKey], theme);
|
|
49
46
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
theme
|
|
54
|
-
});
|
|
47
|
+
if (typeof value === 'object') {
|
|
48
|
+
if (propToStyleFunction[styleKey]) {
|
|
49
|
+
css = merge(css, getThemeValue(styleKey, value, theme));
|
|
55
50
|
} else {
|
|
56
|
-
|
|
51
|
+
const breakpointsValues = handleBreakpoints({
|
|
52
|
+
theme
|
|
53
|
+
}, value, x => ({
|
|
54
|
+
[styleKey]: x
|
|
55
|
+
}));
|
|
56
|
+
|
|
57
|
+
if (objectsHaveSameKeys(breakpointsValues, value)) {
|
|
58
|
+
css[styleKey] = styleFunctionSx({
|
|
59
|
+
sx: value,
|
|
60
|
+
theme
|
|
61
|
+
});
|
|
62
|
+
} else {
|
|
63
|
+
css = merge(css, breakpointsValues);
|
|
64
|
+
}
|
|
57
65
|
}
|
|
66
|
+
} else {
|
|
67
|
+
css = merge(css, getThemeValue(styleKey, value, theme));
|
|
58
68
|
}
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return
|
|
69
|
+
});
|
|
70
|
+
return removeUnusedBreakpoints(breakpointsKeys, css);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);
|
|
64
74
|
}
|
|
65
75
|
|
|
66
76
|
styleFunctionSx.filterProps = ['sx'];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/system",
|
|
3
|
-
"version": "5.0
|
|
3
|
+
"version": "5.1.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"description": "CSS utilities for rapidly laying out custom designs.",
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
10
10
|
"react-component",
|
|
11
|
-
"
|
|
11
|
+
"mui",
|
|
12
12
|
"system"
|
|
13
13
|
],
|
|
14
14
|
"repository": {
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"url": "https://opencollective.com/material-ui"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
|
-
"@emotion/react": "^11.
|
|
29
|
+
"@emotion/react": "^11.5.0",
|
|
30
30
|
"@emotion/styled": "^11.3.0",
|
|
31
31
|
"@types/react": "^16.8.6 || ^17.0.0",
|
|
32
32
|
"react": "^17.0.2"
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@babel/runtime": "^7.
|
|
47
|
-
"@mui/private-theming": "^5.0
|
|
48
|
-
"@mui/styled-engine": "^5.0
|
|
49
|
-
"@mui/types": "^7.
|
|
50
|
-
"@mui/utils": "^5.0
|
|
46
|
+
"@babel/runtime": "^7.16.0",
|
|
47
|
+
"@mui/private-theming": "^5.1.0",
|
|
48
|
+
"@mui/styled-engine": "^5.1.0",
|
|
49
|
+
"@mui/types": "^7.1.0",
|
|
50
|
+
"@mui/utils": "^5.1.0",
|
|
51
51
|
"clsx": "^1.1.1",
|
|
52
52
|
"csstype": "^3.0.9",
|
|
53
53
|
"prop-types": "^15.7.2"
|
package/palette.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.default = exports.
|
|
8
|
+
exports.default = exports.color = exports.bgcolor = exports.backgroundColor = void 0;
|
|
9
9
|
|
|
10
10
|
var _style = _interopRequireDefault(require("./style"));
|
|
11
11
|
|
package/positions.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.zIndex = exports.top = exports.right = exports.position = exports.left = exports.default = exports.bottom = void 0;
|
|
9
9
|
|
|
10
10
|
var _style = _interopRequireDefault(require("./style"));
|
|
11
11
|
|
package/sizing.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.width = exports.sizeWidth = exports.sizeHeight = exports.minWidth = exports.minHeight = exports.maxWidth = exports.maxHeight = exports.height = exports.default = exports.boxSizing = void 0;
|
|
9
9
|
|
|
10
10
|
var _style = _interopRequireDefault(require("./style"));
|
|
11
11
|
|
package/spacing.js
CHANGED
|
@@ -5,13 +5,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.createUnaryUnit = createUnaryUnit;
|
|
9
8
|
exports.createUnarySpacing = createUnarySpacing;
|
|
10
|
-
exports.
|
|
9
|
+
exports.createUnaryUnit = createUnaryUnit;
|
|
10
|
+
exports.default = void 0;
|
|
11
11
|
exports.getStyleFromPropValue = getStyleFromPropValue;
|
|
12
|
+
exports.getValue = getValue;
|
|
12
13
|
exports.margin = margin;
|
|
13
14
|
exports.padding = padding;
|
|
14
|
-
exports.default = void 0;
|
|
15
15
|
|
|
16
16
|
var _responsivePropType = _interopRequireDefault(require("./responsivePropType"));
|
|
17
17
|
|
package/style.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { CSSObject } from '@mui/styled-engine';
|
|
1
2
|
import { StyleFunction } from './Box';
|
|
2
|
-
import { CSSObject } from './createStyled';
|
|
3
3
|
|
|
4
4
|
export interface StyleOptions<PropKey> {
|
|
5
5
|
cssProperty?: PropKey | keyof React.CSSProperties | false;
|
|
@@ -12,4 +12,4 @@ export interface StyleOptions<PropKey> {
|
|
|
12
12
|
}
|
|
13
13
|
export function style<PropKey extends string, Theme extends object>(
|
|
14
14
|
options: StyleOptions<PropKey>,
|
|
15
|
-
): StyleFunction<{ [K in PropKey]?: unknown } & { theme
|
|
15
|
+
): StyleFunction<{ [K in PropKey]?: unknown } & { theme?: Theme }>;
|
package/style.js
CHANGED
|
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.getPath = getPath;
|
|
9
8
|
exports.default = void 0;
|
|
9
|
+
exports.getPath = getPath;
|
|
10
10
|
|
|
11
11
|
var _utils = require("@mui/utils");
|
|
12
12
|
|
|
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
|
|
12
12
|
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
13
13
|
|
|
14
|
+
var _utils = require("@mui/utils");
|
|
15
|
+
|
|
14
16
|
var _getThemeValue = require("../getThemeValue");
|
|
15
17
|
|
|
16
18
|
const _excluded = ["sx"];
|
|
@@ -39,7 +41,25 @@ function extendSxProp(props) {
|
|
|
39
41
|
systemProps,
|
|
40
42
|
otherProps
|
|
41
43
|
} = splitProps(other);
|
|
44
|
+
let finalSx;
|
|
45
|
+
|
|
46
|
+
if (Array.isArray(inSx)) {
|
|
47
|
+
finalSx = [systemProps, ...inSx];
|
|
48
|
+
} else if (typeof inSx === 'function') {
|
|
49
|
+
finalSx = (...args) => {
|
|
50
|
+
const result = inSx(...args);
|
|
51
|
+
|
|
52
|
+
if (!(0, _utils.isPlainObject)(result)) {
|
|
53
|
+
return systemProps;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return (0, _extends2.default)({}, systemProps, result);
|
|
57
|
+
};
|
|
58
|
+
} else {
|
|
59
|
+
finalSx = (0, _extends2.default)({}, systemProps, inSx);
|
|
60
|
+
}
|
|
61
|
+
|
|
42
62
|
return (0, _extends2.default)({}, otherProps, {
|
|
43
|
-
sx:
|
|
63
|
+
sx: finalSx
|
|
44
64
|
});
|
|
45
65
|
}
|
|
@@ -51,7 +51,13 @@ export type SystemStyleObject<Theme extends object = {}> =
|
|
|
51
51
|
| CSSSelectorObject<Theme>
|
|
52
52
|
| null;
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
/**
|
|
55
|
+
* The `SxProps` can be either object or function
|
|
56
|
+
*/
|
|
57
|
+
export type SxProps<Theme extends object = {}> =
|
|
58
|
+
| SystemStyleObject<Theme>
|
|
59
|
+
| ((theme: Theme) => SystemStyleObject<Theme>)
|
|
60
|
+
| Array<SystemStyleObject<Theme> | ((theme: Theme) => SystemStyleObject<Theme>)>;
|
|
55
61
|
|
|
56
62
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
57
63
|
export default function unstable_styleFunctionSx(props: object): object;
|
|
@@ -29,53 +29,63 @@ function callIfFn(maybeFn, arg) {
|
|
|
29
29
|
|
|
30
30
|
function styleFunctionSx(props) {
|
|
31
31
|
const {
|
|
32
|
-
sx
|
|
32
|
+
sx,
|
|
33
33
|
theme = {}
|
|
34
34
|
} = props || {};
|
|
35
35
|
|
|
36
|
-
if (!
|
|
37
|
-
return null;
|
|
36
|
+
if (!sx) {
|
|
37
|
+
return null; // emotion & styled-components will neglect null
|
|
38
38
|
}
|
|
39
|
+
/*
|
|
40
|
+
* Receive `sxInput` as object or callback
|
|
41
|
+
* and then recursively check keys & values to create media query object styles.
|
|
42
|
+
* (the result will be used in `styled`)
|
|
43
|
+
*/
|
|
39
44
|
|
|
40
|
-
if (typeof styles === 'function') {
|
|
41
|
-
return styles(theme);
|
|
42
|
-
}
|
|
43
45
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return styles;
|
|
47
|
-
}
|
|
46
|
+
function traverse(sxInput) {
|
|
47
|
+
let sxObject = sxInput;
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
49
|
+
if (typeof sxInput === 'function') {
|
|
50
|
+
sxObject = sxInput(theme);
|
|
51
|
+
} else if (typeof sxInput !== 'object') {
|
|
52
|
+
// value
|
|
53
|
+
return sxInput;
|
|
54
|
+
}
|
|
54
55
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
if (objectsHaveSameKeys(breakpointsValues, value)) {
|
|
66
|
-
css[styleKey] = styleFunctionSx({
|
|
67
|
-
sx: value,
|
|
68
|
-
theme
|
|
69
|
-
});
|
|
56
|
+
const emptyBreakpoints = (0, _breakpoints.createEmptyBreakpointObject)(theme.breakpoints);
|
|
57
|
+
const breakpointsKeys = Object.keys(emptyBreakpoints);
|
|
58
|
+
let css = emptyBreakpoints;
|
|
59
|
+
Object.keys(sxObject).forEach(styleKey => {
|
|
60
|
+
const value = callIfFn(sxObject[styleKey], theme);
|
|
61
|
+
|
|
62
|
+
if (typeof value === 'object') {
|
|
63
|
+
if (_getThemeValue.propToStyleFunction[styleKey]) {
|
|
64
|
+
css = (0, _merge.default)(css, (0, _getThemeValue.default)(styleKey, value, theme));
|
|
70
65
|
} else {
|
|
71
|
-
|
|
66
|
+
const breakpointsValues = (0, _breakpoints.handleBreakpoints)({
|
|
67
|
+
theme
|
|
68
|
+
}, value, x => ({
|
|
69
|
+
[styleKey]: x
|
|
70
|
+
}));
|
|
71
|
+
|
|
72
|
+
if (objectsHaveSameKeys(breakpointsValues, value)) {
|
|
73
|
+
css[styleKey] = styleFunctionSx({
|
|
74
|
+
sx: value,
|
|
75
|
+
theme
|
|
76
|
+
});
|
|
77
|
+
} else {
|
|
78
|
+
css = (0, _merge.default)(css, breakpointsValues);
|
|
79
|
+
}
|
|
72
80
|
}
|
|
81
|
+
} else {
|
|
82
|
+
css = (0, _merge.default)(css, (0, _getThemeValue.default)(styleKey, value, theme));
|
|
73
83
|
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
return (
|
|
84
|
+
});
|
|
85
|
+
return (0, _breakpoints.removeUnusedBreakpoints)(breakpointsKeys, css);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);
|
|
79
89
|
}
|
|
80
90
|
|
|
81
91
|
styleFunctionSx.filterProps = ['sx'];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/typography.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.typographyVariant = exports.textAlign = exports.lineHeight = exports.letterSpacing = exports.fontWeight = exports.fontStyle = exports.fontSize = exports.fontFamily = exports.default = void 0;
|
|
9
9
|
|
|
10
10
|
var _style = _interopRequireDefault(require("./style"));
|
|
11
11
|
|
package/useTheme.js
CHANGED
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.systemDefaultTheme = exports.default = void 0;
|
|
9
9
|
|
|
10
10
|
var _createTheme = _interopRequireDefault(require("./createTheme"));
|
|
11
11
|
|