@mui/system 6.0.0-beta.1 → 6.0.0-beta.3
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 +442 -32
- package/InitColorSchemeScript/InitColorSchemeScript.d.ts +3 -5
- package/InitColorSchemeScript/InitColorSchemeScript.js +26 -7
- package/createTheme/applyStyles.js +10 -4
- package/cssVars/createCssVarsProvider.d.ts +2 -11
- package/cssVars/createCssVarsProvider.js +33 -72
- package/cssVars/createCssVarsTheme.d.ts +2 -1
- package/cssVars/createCssVarsTheme.js +10 -2
- package/cssVars/getColorSchemeSelector.d.ts +1 -0
- package/cssVars/getColorSchemeSelector.js +26 -0
- package/cssVars/index.d.ts +1 -0
- package/cssVars/index.js +2 -1
- package/cssVars/prepareCssVars.d.ts +3 -2
- package/cssVars/prepareCssVars.js +56 -14
- package/cssVars/useCurrentColorScheme.d.ts +2 -2
- package/index.js +1 -1
- package/modern/InitColorSchemeScript/InitColorSchemeScript.js +26 -7
- package/modern/createTheme/applyStyles.js +10 -4
- package/modern/cssVars/createCssVarsProvider.js +33 -72
- package/modern/cssVars/createCssVarsTheme.js +10 -2
- package/modern/cssVars/getColorSchemeSelector.js +26 -0
- package/modern/cssVars/index.js +2 -1
- package/modern/cssVars/prepareCssVars.js +56 -14
- package/modern/index.js +1 -1
- package/node/InitColorSchemeScript/InitColorSchemeScript.js +26 -7
- package/node/createTheme/applyStyles.js +11 -4
- package/node/cssVars/createCssVarsProvider.js +33 -72
- package/node/cssVars/createCssVarsTheme.js +10 -2
- package/node/cssVars/getColorSchemeSelector.js +32 -0
- package/node/cssVars/index.js +8 -1
- package/node/cssVars/prepareCssVars.js +59 -14
- package/node/index.js +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createGetColorSchemeSelector = createGetColorSchemeSelector;
|
|
7
|
+
/* eslint-disable import/prefer-default-export */
|
|
8
|
+
function createGetColorSchemeSelector(selector) {
|
|
9
|
+
return function getColorSchemeSelector(colorScheme) {
|
|
10
|
+
if (selector === 'media') {
|
|
11
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
12
|
+
if (colorScheme !== 'light' && colorScheme !== 'dark') {
|
|
13
|
+
console.error(`MUI: @media (prefers-color-scheme) supports only 'light' or 'dark', but receive '${colorScheme}'.`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return `@media (prefers-color-scheme: ${colorScheme})`;
|
|
17
|
+
}
|
|
18
|
+
if (selector) {
|
|
19
|
+
if (selector.startsWith('data-') && !selector.includes('%s')) {
|
|
20
|
+
return `[${selector}="${colorScheme}"] &`;
|
|
21
|
+
}
|
|
22
|
+
if (selector === 'class') {
|
|
23
|
+
return `.${colorScheme} &`;
|
|
24
|
+
}
|
|
25
|
+
if (selector === 'data') {
|
|
26
|
+
return `[data-${colorScheme}] &`;
|
|
27
|
+
}
|
|
28
|
+
return `${selector.replace('%s', colorScheme)} &`;
|
|
29
|
+
}
|
|
30
|
+
return '&';
|
|
31
|
+
};
|
|
32
|
+
}
|
package/node/cssVars/index.js
CHANGED
|
@@ -11,6 +11,12 @@ Object.defineProperty(exports, "createCssVarsTheme", {
|
|
|
11
11
|
return _createCssVarsTheme.default;
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
|
+
Object.defineProperty(exports, "createGetColorSchemeSelector", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function () {
|
|
17
|
+
return _getColorSchemeSelector.createGetColorSchemeSelector;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
14
20
|
Object.defineProperty(exports, "default", {
|
|
15
21
|
enumerable: true,
|
|
16
22
|
get: function () {
|
|
@@ -32,4 +38,5 @@ Object.defineProperty(exports, "prepareTypographyVars", {
|
|
|
32
38
|
var _createCssVarsProvider = _interopRequireDefault(require("./createCssVarsProvider"));
|
|
33
39
|
var _prepareCssVars = _interopRequireDefault(require("./prepareCssVars"));
|
|
34
40
|
var _prepareTypographyVars = _interopRequireDefault(require("./prepareTypographyVars"));
|
|
35
|
-
var _createCssVarsTheme = _interopRequireDefault(require("./createCssVarsTheme"));
|
|
41
|
+
var _createCssVarsTheme = _interopRequireDefault(require("./createCssVarsTheme"));
|
|
42
|
+
var _getColorSchemeSelector = require("./getColorSchemeSelector");
|
|
@@ -7,10 +7,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _deepmerge = _interopRequireDefault(require("@mui/utils/deepmerge"));
|
|
9
9
|
var _cssVarsParser = _interopRequireDefault(require("./cssVarsParser"));
|
|
10
|
-
function prepareCssVars(theme, {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
function prepareCssVars(theme, parserConfig = {}) {
|
|
11
|
+
const {
|
|
12
|
+
getSelector = defaultGetSelector,
|
|
13
|
+
disableCssColorScheme,
|
|
14
|
+
colorSchemeSelector: selector
|
|
15
|
+
} = parserConfig;
|
|
14
16
|
// @ts-ignore - ignore components do not exist
|
|
15
17
|
const {
|
|
16
18
|
colorSchemes = {},
|
|
@@ -54,6 +56,33 @@ function prepareCssVars(theme, {
|
|
|
54
56
|
vars
|
|
55
57
|
};
|
|
56
58
|
}
|
|
59
|
+
function defaultGetSelector(colorScheme) {
|
|
60
|
+
let rule = selector;
|
|
61
|
+
if (selector === 'class') {
|
|
62
|
+
rule = '.%s';
|
|
63
|
+
}
|
|
64
|
+
if (selector === 'data') {
|
|
65
|
+
rule = '[data-%s]';
|
|
66
|
+
}
|
|
67
|
+
if (selector != null && selector.startsWith('data-') && !selector.includes('%s')) {
|
|
68
|
+
// 'data-joy-color-scheme' -> '[data-joy-color-scheme="%s"]'
|
|
69
|
+
rule = `[${selector}="%s"]`;
|
|
70
|
+
}
|
|
71
|
+
if (colorScheme) {
|
|
72
|
+
if (rule === 'media') {
|
|
73
|
+
var _colorSchemes;
|
|
74
|
+
if (theme.defaultColorScheme === colorScheme) {
|
|
75
|
+
return ':root';
|
|
76
|
+
}
|
|
77
|
+
const mode = ((_colorSchemes = colorSchemes[colorScheme]) == null || (_colorSchemes = _colorSchemes.palette) == null ? void 0 : _colorSchemes.mode) || colorScheme;
|
|
78
|
+
return `@media (prefers-color-scheme: ${mode}) { :root`;
|
|
79
|
+
}
|
|
80
|
+
if (rule) {
|
|
81
|
+
return rule.replace('%s', String(colorScheme));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return ':root';
|
|
85
|
+
}
|
|
57
86
|
const generateThemeVars = () => {
|
|
58
87
|
let vars = {
|
|
59
88
|
...rootVars
|
|
@@ -68,37 +97,53 @@ function prepareCssVars(theme, {
|
|
|
68
97
|
const generateStyleSheets = () => {
|
|
69
98
|
const stylesheets = [];
|
|
70
99
|
const colorScheme = theme.defaultColorScheme || 'light';
|
|
71
|
-
function insertStyleSheet(
|
|
100
|
+
function insertStyleSheet(key, css) {
|
|
72
101
|
if (Object.keys(css).length) {
|
|
73
|
-
stylesheets.push(typeof
|
|
74
|
-
[
|
|
102
|
+
stylesheets.push(typeof key === 'string' ? {
|
|
103
|
+
[key]: {
|
|
75
104
|
...css
|
|
76
105
|
}
|
|
77
|
-
} :
|
|
106
|
+
} : key);
|
|
78
107
|
}
|
|
79
108
|
}
|
|
80
|
-
insertStyleSheet(
|
|
109
|
+
insertStyleSheet(getSelector(undefined, {
|
|
81
110
|
...rootCss
|
|
82
|
-
})
|
|
111
|
+
}), rootCss);
|
|
83
112
|
const {
|
|
84
113
|
[colorScheme]: defaultSchemeVal,
|
|
85
114
|
...other
|
|
86
115
|
} = colorSchemesMap;
|
|
87
116
|
if (defaultSchemeVal) {
|
|
117
|
+
var _colorSchemes$colorSc;
|
|
88
118
|
// default color scheme has to come before other color schemes
|
|
89
119
|
const {
|
|
90
120
|
css
|
|
91
121
|
} = defaultSchemeVal;
|
|
92
|
-
|
|
122
|
+
const cssColorSheme = (_colorSchemes$colorSc = colorSchemes[colorScheme]) == null || (_colorSchemes$colorSc = _colorSchemes$colorSc.palette) == null ? void 0 : _colorSchemes$colorSc.mode;
|
|
123
|
+
const finalCss = !disableCssColorScheme && cssColorSheme ? {
|
|
124
|
+
colorScheme: cssColorSheme,
|
|
93
125
|
...css
|
|
94
|
-
}
|
|
126
|
+
} : {
|
|
127
|
+
...css
|
|
128
|
+
};
|
|
129
|
+
insertStyleSheet(getSelector(colorScheme, {
|
|
130
|
+
...finalCss
|
|
131
|
+
}), finalCss);
|
|
95
132
|
}
|
|
96
133
|
Object.entries(other).forEach(([key, {
|
|
97
134
|
css
|
|
98
135
|
}]) => {
|
|
99
|
-
|
|
136
|
+
var _colorSchemes$key;
|
|
137
|
+
const cssColorSheme = (_colorSchemes$key = colorSchemes[key]) == null || (_colorSchemes$key = _colorSchemes$key.palette) == null ? void 0 : _colorSchemes$key.mode;
|
|
138
|
+
const finalCss = !disableCssColorScheme && cssColorSheme ? {
|
|
139
|
+
colorScheme: cssColorSheme,
|
|
140
|
+
...css
|
|
141
|
+
} : {
|
|
100
142
|
...css
|
|
101
|
-
}
|
|
143
|
+
};
|
|
144
|
+
insertStyleSheet(getSelector(key, {
|
|
145
|
+
...finalCss
|
|
146
|
+
}), finalCss);
|
|
102
147
|
});
|
|
103
148
|
return stylesheets;
|
|
104
149
|
};
|
package/node/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/system",
|
|
3
|
-
"version": "6.0.0-beta.
|
|
3
|
+
"version": "6.0.0-beta.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"author": "MUI Team",
|
|
6
6
|
"description": "MUI System is a set of CSS utilities to help you build custom designs more efficiently. It makes it possible to rapidly lay out custom designs.",
|
|
@@ -30,10 +30,10 @@
|
|
|
30
30
|
"clsx": "^2.1.1",
|
|
31
31
|
"csstype": "^3.1.3",
|
|
32
32
|
"prop-types": "^15.8.1",
|
|
33
|
-
"@mui/private-theming": "6.0.0-beta.
|
|
33
|
+
"@mui/private-theming": "6.0.0-beta.3",
|
|
34
|
+
"@mui/styled-engine": "6.0.0-beta.3",
|
|
34
35
|
"@mui/types": "^7.2.14",
|
|
35
|
-
"@mui/utils": "6.0.0-beta.
|
|
36
|
-
"@mui/styled-engine": "6.0.0-beta.1"
|
|
36
|
+
"@mui/utils": "6.0.0-beta.3"
|
|
37
37
|
},
|
|
38
38
|
"peerDependencies": {
|
|
39
39
|
"@emotion/react": "^11.5.0",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"directory": "build"
|
|
59
59
|
},
|
|
60
60
|
"engines": {
|
|
61
|
-
"node": ">=
|
|
61
|
+
"node": ">=14.0.0"
|
|
62
62
|
},
|
|
63
63
|
"module": "./index.js",
|
|
64
64
|
"types": "./index.d.ts"
|