@mui/material 6.0.0-beta.2 → 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 +427 -33
- package/Fade/Fade.js +2 -1
- package/Grow/Grow.js +2 -1
- package/Paper/Paper.js +1 -1
- package/Rating/Rating.d.ts +1 -1
- package/Rating/Rating.js +2 -2
- package/Select/selectClasses.d.ts +2 -0
- package/Slide/Slide.js +2 -1
- package/Tooltip/Tooltip.js +2 -1
- package/Typography/Typography.d.ts +1 -0
- package/Typography/Typography.js +1 -0
- package/Typography/typographyClasses.d.ts +4 -1
- package/Zoom/Zoom.js +2 -1
- package/index.js +1 -1
- package/modern/Fade/Fade.js +2 -1
- package/modern/Grow/Grow.js +2 -1
- package/modern/Paper/Paper.js +1 -1
- package/modern/Rating/Rating.js +2 -2
- package/modern/Slide/Slide.js +2 -1
- package/modern/Tooltip/Tooltip.js +2 -1
- package/modern/Typography/Typography.js +1 -0
- package/modern/Zoom/Zoom.js +2 -1
- package/modern/index.js +1 -1
- package/modern/styles/CssVarsProvider.js +0 -1
- package/modern/styles/createGetSelector.js +36 -7
- package/modern/styles/excludeVariablesFromRoot.js +1 -1
- package/modern/styles/extendTheme.js +105 -65
- package/modern/styles/shouldSkipGeneratingVar.js +1 -1
- package/modern/utils/getChildRef.js +9 -0
- package/node/Fade/Fade.js +2 -1
- package/node/Grow/Grow.js +2 -1
- package/node/Paper/Paper.js +2 -2
- package/node/Rating/Rating.js +2 -2
- package/node/Slide/Slide.js +2 -1
- package/node/Tooltip/Tooltip.js +2 -1
- package/node/Typography/Typography.js +1 -0
- package/node/Zoom/Zoom.js +2 -1
- package/node/index.js +1 -1
- package/node/styles/CssVarsProvider.js +0 -1
- package/node/styles/createGetSelector.js +36 -7
- package/node/styles/excludeVariablesFromRoot.js +1 -1
- package/node/styles/extendTheme.js +105 -65
- package/node/styles/shouldSkipGeneratingVar.js +1 -1
- package/node/utils/getChildRef.js +17 -0
- package/package.json +6 -6
- package/styles/CssVarsProvider.d.ts +2 -1
- package/styles/CssVarsProvider.js +0 -1
- package/styles/createGetSelector.d.ts +6 -2
- package/styles/createGetSelector.js +36 -7
- package/styles/excludeVariablesFromRoot.d.ts +1 -1
- package/styles/excludeVariablesFromRoot.js +1 -1
- package/styles/extendTheme.d.ts +21 -16
- package/styles/extendTheme.js +105 -65
- package/styles/shouldSkipGeneratingVar.js +1 -1
- package/utils/getChildRef.d.ts +1 -0
- package/utils/getChildRef.js +9 -0
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.createGetCssVar = void 0;
|
|
8
8
|
exports.default = extendTheme;
|
|
9
|
+
var _formatMuiErrorMessage2 = _interopRequireDefault(require("@mui/utils/formatMuiErrorMessage"));
|
|
9
10
|
var _deepmerge = _interopRequireDefault(require("@mui/utils/deepmerge"));
|
|
10
11
|
var _system = require("@mui/system");
|
|
11
12
|
var _spacing = require("@mui/system/spacing");
|
|
@@ -76,65 +77,103 @@ const silent = fn => {
|
|
|
76
77
|
};
|
|
77
78
|
const createGetCssVar = (cssVarPrefix = 'mui') => (0, _system.unstable_createGetCssVar)(cssVarPrefix);
|
|
78
79
|
exports.createGetCssVar = createGetCssVar;
|
|
80
|
+
function getOpacity(mode) {
|
|
81
|
+
return {
|
|
82
|
+
inputPlaceholder: mode === 'dark' ? 0.5 : 0.42,
|
|
83
|
+
inputUnderline: mode === 'dark' ? 0.7 : 0.42,
|
|
84
|
+
switchTrackDisabled: mode === 'dark' ? 0.2 : 0.12,
|
|
85
|
+
switchTrack: mode === 'dark' ? 0.3 : 0.38
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
function getOverlays(mode) {
|
|
89
|
+
return mode === 'dark' ? defaultDarkOverlays : [];
|
|
90
|
+
}
|
|
91
|
+
function attachColorScheme(colorSchemes, scheme, restTheme, colorScheme) {
|
|
92
|
+
var _scheme, _scheme2, _scheme3;
|
|
93
|
+
if (!scheme) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
scheme = scheme === true ? {} : scheme;
|
|
97
|
+
const mode = colorScheme === 'dark' ? 'dark' : 'light';
|
|
98
|
+
const {
|
|
99
|
+
palette,
|
|
100
|
+
...muiTheme
|
|
101
|
+
} = (0, _createTheme.default)({
|
|
102
|
+
...restTheme,
|
|
103
|
+
palette: {
|
|
104
|
+
mode,
|
|
105
|
+
...((_scheme = scheme) == null ? void 0 : _scheme.palette)
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
colorSchemes[colorScheme] = {
|
|
109
|
+
...scheme,
|
|
110
|
+
palette,
|
|
111
|
+
opacity: {
|
|
112
|
+
...getOpacity(mode),
|
|
113
|
+
...((_scheme2 = scheme) == null ? void 0 : _scheme2.opacity)
|
|
114
|
+
},
|
|
115
|
+
overlays: ((_scheme3 = scheme) == null ? void 0 : _scheme3.overlays) || getOverlays(mode)
|
|
116
|
+
};
|
|
117
|
+
return muiTheme;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* A default `extendTheme` comes with a single color scheme, either `light` or `dark` based on the `defaultColorScheme`.
|
|
122
|
+
* This is better suited for apps that only need a single color scheme.
|
|
123
|
+
*
|
|
124
|
+
* To enable built-in `light` and `dark` color schemes, either:
|
|
125
|
+
* 1. provide a `colorSchemeSelector` to define how the color schemes will change.
|
|
126
|
+
* 2. provide `colorSchemes.dark` will set `colorSchemeSelector: 'media'` by default.
|
|
127
|
+
*/
|
|
79
128
|
function extendTheme(options = {}, ...args) {
|
|
80
|
-
var _colorSchemesInput$li, _colorSchemesInput$da, _colorSchemesInput$li2, _colorSchemesInput$li3, _colorSchemesInput$da2, _colorSchemesInput$da3;
|
|
81
129
|
const {
|
|
82
|
-
colorSchemes: colorSchemesInput = {
|
|
130
|
+
colorSchemes: colorSchemesInput = {
|
|
131
|
+
light: true
|
|
132
|
+
},
|
|
133
|
+
defaultColorScheme: defaultColorSchemeInput,
|
|
134
|
+
disableCssColorScheme = false,
|
|
83
135
|
cssVarPrefix = 'mui',
|
|
84
136
|
shouldSkipGeneratingVar = _shouldSkipGeneratingVar.default,
|
|
85
|
-
|
|
137
|
+
colorSchemeSelector: selector = colorSchemesInput.light && colorSchemesInput.dark ? 'media' : undefined,
|
|
86
138
|
...input
|
|
87
139
|
} = options;
|
|
140
|
+
const firstColorScheme = Object.keys(colorSchemesInput)[0];
|
|
141
|
+
const defaultColorScheme = defaultColorSchemeInput || (colorSchemesInput.light && firstColorScheme !== 'light' ? 'light' : firstColorScheme);
|
|
88
142
|
const getCssVar = createGetCssVar(cssVarPrefix);
|
|
89
143
|
const {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
...
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
144
|
+
[defaultColorScheme]: defaultSchemeInput,
|
|
145
|
+
light: builtInLight,
|
|
146
|
+
dark: builtInDark,
|
|
147
|
+
...customColorSchemes
|
|
148
|
+
} = colorSchemesInput;
|
|
149
|
+
const colorSchemes = {
|
|
150
|
+
...customColorSchemes
|
|
151
|
+
};
|
|
152
|
+
let defaultScheme = defaultSchemeInput;
|
|
153
|
+
|
|
154
|
+
// For built-in light and dark color schemes, ensure that the value is valid if they are the default color scheme.
|
|
155
|
+
if (defaultColorScheme === 'dark' && !('dark' in colorSchemesInput) || defaultColorScheme === 'light' && !('light' in colorSchemesInput)) {
|
|
156
|
+
defaultScheme = true;
|
|
157
|
+
}
|
|
158
|
+
if (!defaultScheme) {
|
|
159
|
+
throw new Error(process.env.NODE_ENV !== "production" ? `MUI: The provided \`colorSchemes.${defaultColorScheme}\` to the \`extendTheme\` function is either missing or invalid.` : (0, _formatMuiErrorMessage2.default)(23, defaultColorScheme));
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Create the palette for the default color scheme, either `light`, `dark`, or custom color scheme.
|
|
163
|
+
const muiTheme = attachColorScheme(colorSchemes, defaultScheme, input, defaultColorScheme);
|
|
164
|
+
if (builtInLight && !colorSchemes.light) {
|
|
165
|
+
attachColorScheme(colorSchemes, builtInLight, undefined, 'light');
|
|
166
|
+
}
|
|
167
|
+
if (builtInDark && !colorSchemes.dark) {
|
|
168
|
+
attachColorScheme(colorSchemes, builtInDark, undefined, 'dark');
|
|
169
|
+
}
|
|
106
170
|
let theme = {
|
|
107
|
-
defaultColorScheme
|
|
171
|
+
defaultColorScheme,
|
|
108
172
|
...muiTheme,
|
|
109
173
|
cssVarPrefix,
|
|
174
|
+
colorSchemeSelector: selector,
|
|
110
175
|
getCssVar,
|
|
111
|
-
colorSchemes
|
|
112
|
-
...colorSchemesInput,
|
|
113
|
-
light: {
|
|
114
|
-
...colorSchemesInput.light,
|
|
115
|
-
palette: lightPalette,
|
|
116
|
-
opacity: {
|
|
117
|
-
inputPlaceholder: 0.42,
|
|
118
|
-
inputUnderline: 0.42,
|
|
119
|
-
switchTrackDisabled: 0.12,
|
|
120
|
-
switchTrack: 0.38,
|
|
121
|
-
...((_colorSchemesInput$li2 = colorSchemesInput.light) == null ? void 0 : _colorSchemesInput$li2.opacity)
|
|
122
|
-
},
|
|
123
|
-
overlays: ((_colorSchemesInput$li3 = colorSchemesInput.light) == null ? void 0 : _colorSchemesInput$li3.overlays) || []
|
|
124
|
-
},
|
|
125
|
-
dark: {
|
|
126
|
-
...colorSchemesInput.dark,
|
|
127
|
-
palette: darkPalette,
|
|
128
|
-
opacity: {
|
|
129
|
-
inputPlaceholder: 0.5,
|
|
130
|
-
inputUnderline: 0.7,
|
|
131
|
-
switchTrackDisabled: 0.2,
|
|
132
|
-
switchTrack: 0.3,
|
|
133
|
-
...((_colorSchemesInput$da2 = colorSchemesInput.dark) == null ? void 0 : _colorSchemesInput$da2.opacity)
|
|
134
|
-
},
|
|
135
|
-
overlays: ((_colorSchemesInput$da3 = colorSchemesInput.dark) == null ? void 0 : _colorSchemesInput$da3.overlays) || defaultDarkOverlays
|
|
136
|
-
}
|
|
137
|
-
},
|
|
176
|
+
colorSchemes,
|
|
138
177
|
font: {
|
|
139
178
|
...(0, _cssVars.prepareTypographyVars)(muiTheme.typography),
|
|
140
179
|
...muiTheme.font
|
|
@@ -151,17 +190,18 @@ function extendTheme(options = {}, ...args) {
|
|
|
151
190
|
};
|
|
152
191
|
|
|
153
192
|
// attach black & white channels to common node
|
|
154
|
-
if (
|
|
193
|
+
if (palette.mode === 'light') {
|
|
155
194
|
setColor(palette.common, 'background', '#fff');
|
|
156
195
|
setColor(palette.common, 'onBackground', '#000');
|
|
157
|
-
}
|
|
196
|
+
}
|
|
197
|
+
if (palette.mode === 'dark') {
|
|
158
198
|
setColor(palette.common, 'background', '#000');
|
|
159
199
|
setColor(palette.common, 'onBackground', '#fff');
|
|
160
200
|
}
|
|
161
201
|
|
|
162
202
|
// assign component variables
|
|
163
203
|
assignNode(palette, ['Alert', 'AppBar', 'Avatar', 'Button', 'Chip', 'FilledInput', 'LinearProgress', 'Skeleton', 'Slider', 'SnackbarContent', 'SpeedDialAction', 'StepConnector', 'StepContent', 'Switch', 'TableCell', 'Tooltip']);
|
|
164
|
-
if (
|
|
204
|
+
if (palette.mode === 'light') {
|
|
165
205
|
setColor(palette.Alert, 'errorColor', (0, _colorManipulator.private_safeDarken)(palette.error.light, 0.6));
|
|
166
206
|
setColor(palette.Alert, 'infoColor', (0, _colorManipulator.private_safeDarken)(palette.info.light, 0.6));
|
|
167
207
|
setColor(palette.Alert, 'successColor', (0, _colorManipulator.private_safeDarken)(palette.success.light, 0.6));
|
|
@@ -170,10 +210,10 @@ function extendTheme(options = {}, ...args) {
|
|
|
170
210
|
setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-main'));
|
|
171
211
|
setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-main'));
|
|
172
212
|
setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-main'));
|
|
173
|
-
setColor(palette.Alert, 'errorFilledColor', silent(() =>
|
|
174
|
-
setColor(palette.Alert, 'infoFilledColor', silent(() =>
|
|
175
|
-
setColor(palette.Alert, 'successFilledColor', silent(() =>
|
|
176
|
-
setColor(palette.Alert, 'warningFilledColor', silent(() =>
|
|
213
|
+
setColor(palette.Alert, 'errorFilledColor', silent(() => palette.getContrastText(palette.error.main)));
|
|
214
|
+
setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.main)));
|
|
215
|
+
setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.main)));
|
|
216
|
+
setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.main)));
|
|
177
217
|
setColor(palette.Alert, 'errorStandardBg', (0, _colorManipulator.private_safeLighten)(palette.error.light, 0.9));
|
|
178
218
|
setColor(palette.Alert, 'infoStandardBg', (0, _colorManipulator.private_safeLighten)(palette.info.light, 0.9));
|
|
179
219
|
setColor(palette.Alert, 'successStandardBg', (0, _colorManipulator.private_safeLighten)(palette.success.light, 0.9));
|
|
@@ -207,7 +247,7 @@ function extendTheme(options = {}, ...args) {
|
|
|
207
247
|
setColor(palette.Slider, 'warningTrack', (0, _colorManipulator.private_safeLighten)(palette.warning.main, 0.62));
|
|
208
248
|
const snackbarContentBackground = (0, _colorManipulator.private_safeEmphasize)(palette.background.default, 0.8);
|
|
209
249
|
setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
|
|
210
|
-
setColor(palette.SnackbarContent, 'color', silent(() =>
|
|
250
|
+
setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));
|
|
211
251
|
setColor(palette.SpeedDialAction, 'fabHoverBg', (0, _colorManipulator.private_safeEmphasize)(palette.background.paper, 0.15));
|
|
212
252
|
setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-400'));
|
|
213
253
|
setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-400'));
|
|
@@ -221,7 +261,8 @@ function extendTheme(options = {}, ...args) {
|
|
|
221
261
|
setColor(palette.Switch, 'warningDisabledColor', (0, _colorManipulator.private_safeLighten)(palette.warning.main, 0.62));
|
|
222
262
|
setColor(palette.TableCell, 'border', (0, _colorManipulator.private_safeLighten)((0, _colorManipulator.private_safeAlpha)(palette.divider, 1), 0.88));
|
|
223
263
|
setColor(palette.Tooltip, 'bg', (0, _colorManipulator.private_safeAlpha)(palette.grey[700], 0.92));
|
|
224
|
-
}
|
|
264
|
+
}
|
|
265
|
+
if (palette.mode === 'dark') {
|
|
225
266
|
setColor(palette.Alert, 'errorColor', (0, _colorManipulator.private_safeLighten)(palette.error.light, 0.6));
|
|
226
267
|
setColor(palette.Alert, 'infoColor', (0, _colorManipulator.private_safeLighten)(palette.info.light, 0.6));
|
|
227
268
|
setColor(palette.Alert, 'successColor', (0, _colorManipulator.private_safeLighten)(palette.success.light, 0.6));
|
|
@@ -230,10 +271,10 @@ function extendTheme(options = {}, ...args) {
|
|
|
230
271
|
setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-dark'));
|
|
231
272
|
setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-dark'));
|
|
232
273
|
setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-dark'));
|
|
233
|
-
setColor(palette.Alert, 'errorFilledColor', silent(() =>
|
|
234
|
-
setColor(palette.Alert, 'infoFilledColor', silent(() =>
|
|
235
|
-
setColor(palette.Alert, 'successFilledColor', silent(() =>
|
|
236
|
-
setColor(palette.Alert, 'warningFilledColor', silent(() =>
|
|
274
|
+
setColor(palette.Alert, 'errorFilledColor', silent(() => palette.getContrastText(palette.error.dark)));
|
|
275
|
+
setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.dark)));
|
|
276
|
+
setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.dark)));
|
|
277
|
+
setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.dark)));
|
|
237
278
|
setColor(palette.Alert, 'errorStandardBg', (0, _colorManipulator.private_safeDarken)(palette.error.light, 0.9));
|
|
238
279
|
setColor(palette.Alert, 'infoStandardBg', (0, _colorManipulator.private_safeDarken)(palette.info.light, 0.9));
|
|
239
280
|
setColor(palette.Alert, 'successStandardBg', (0, _colorManipulator.private_safeDarken)(palette.success.light, 0.9));
|
|
@@ -269,7 +310,7 @@ function extendTheme(options = {}, ...args) {
|
|
|
269
310
|
setColor(palette.Slider, 'warningTrack', (0, _colorManipulator.private_safeDarken)(palette.warning.main, 0.5));
|
|
270
311
|
const snackbarContentBackground = (0, _colorManipulator.private_safeEmphasize)(palette.background.default, 0.98);
|
|
271
312
|
setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
|
|
272
|
-
setColor(palette.SnackbarContent, 'color', silent(() =>
|
|
313
|
+
setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));
|
|
273
314
|
setColor(palette.SpeedDialAction, 'fabHoverBg', (0, _colorManipulator.private_safeEmphasize)(palette.background.paper, 0.15));
|
|
274
315
|
setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-600'));
|
|
275
316
|
setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-600'));
|
|
@@ -332,16 +373,15 @@ function extendTheme(options = {}, ...args) {
|
|
|
332
373
|
theme = args.reduce((acc, argument) => (0, _deepmerge.default)(acc, argument), theme);
|
|
333
374
|
const parserConfig = {
|
|
334
375
|
prefix: cssVarPrefix,
|
|
376
|
+
disableCssColorScheme,
|
|
335
377
|
shouldSkipGeneratingVar,
|
|
336
|
-
getSelector:
|
|
378
|
+
getSelector: (0, _createGetSelector.default)(theme)
|
|
337
379
|
};
|
|
338
380
|
const {
|
|
339
381
|
vars,
|
|
340
382
|
generateThemeVars,
|
|
341
383
|
generateStyleSheets
|
|
342
384
|
} = (0, _cssVars.prepareCssVars)(theme, parserConfig);
|
|
343
|
-
theme.attribute = 'data-mui-color-scheme';
|
|
344
|
-
theme.colorSchemeSelector = ':root';
|
|
345
385
|
theme.vars = vars;
|
|
346
386
|
Object.entries(theme.colorSchemes[theme.defaultColorScheme]).forEach(([key, value]) => {
|
|
347
387
|
theme[key] = value;
|
|
@@ -351,7 +391,7 @@ function extendTheme(options = {}, ...args) {
|
|
|
351
391
|
theme.generateSpacing = function generateSpacing() {
|
|
352
392
|
return (0, _system.createSpacing)(input.spacing, (0, _spacing.createUnarySpacing)(this));
|
|
353
393
|
};
|
|
354
|
-
theme.getColorSchemeSelector =
|
|
394
|
+
theme.getColorSchemeSelector = (0, _cssVars.createGetColorSchemeSelector)(selector);
|
|
355
395
|
theme.spacing = theme.generateSpacing();
|
|
356
396
|
theme.shouldSkipGeneratingVar = shouldSkipGeneratingVar;
|
|
357
397
|
theme.unstable_sxConfig = {
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = shouldSkipGeneratingVar;
|
|
7
7
|
function shouldSkipGeneratingVar(keys) {
|
|
8
8
|
var _keys$;
|
|
9
|
-
return !!keys[0].match(/(cssVarPrefix|typography|mixins|breakpoints|direction|transitions)/) || !!keys[0].match(/sxConfig$/) ||
|
|
9
|
+
return !!keys[0].match(/(cssVarPrefix|colorSchemeSelector|typography|mixins|breakpoints|direction|transitions)/) || !!keys[0].match(/sxConfig$/) ||
|
|
10
10
|
// ends with sxConfig
|
|
11
11
|
keys[0] === 'palette' && !!((_keys$ = keys[1]) != null && _keys$.match(/(mode|contrastThreshold|tonalOffset)/));
|
|
12
12
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = getChildRef;
|
|
7
|
+
var React = _interopRequireWildcard(require("react"));
|
|
8
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
9
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
|
+
function getChildRef(child) {
|
|
11
|
+
if (!child || ! /*#__PURE__*/React.isValidElement(child)) {
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
// 'ref' is passed as prop in React 19, whereas 'ref' is directly attached to children in React 18
|
|
15
|
+
// below check is to ensure 'ref' is accessible in both cases
|
|
16
|
+
return child.props.propertyIsEnumerable('ref') ? child.props.ref : child.ref;
|
|
17
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/material",
|
|
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": "Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.",
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"prop-types": "^15.8.1",
|
|
36
36
|
"react-is": "^18.3.1",
|
|
37
37
|
"react-transition-group": "^4.4.5",
|
|
38
|
-
"@mui/
|
|
39
|
-
"@mui/
|
|
40
|
-
"@mui/
|
|
41
|
-
"@mui/
|
|
38
|
+
"@mui/system": "6.0.0-beta.3",
|
|
39
|
+
"@mui/core-downloads-tracker": "^6.0.0-beta.3",
|
|
40
|
+
"@mui/types": "^7.2.14",
|
|
41
|
+
"@mui/utils": "6.0.0-beta.3"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"@emotion/react": "^11.5.0",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"@types/react": "^17.0.0 || ^18.0.0",
|
|
47
47
|
"react": "^17.0.0 || ^18.0.0",
|
|
48
48
|
"react-dom": "^17.0.0 || ^18.0.0",
|
|
49
|
-
"@mui/material-pigment-css": "^6.0.0-beta.
|
|
49
|
+
"@mui/material-pigment-css": "^6.0.0-beta.3"
|
|
50
50
|
},
|
|
51
51
|
"peerDependenciesMeta": {
|
|
52
52
|
"@types/react": {
|
|
@@ -4,15 +4,16 @@ declare const CssVarsProvider: (props: React.PropsWithChildren<Partial<import("@
|
|
|
4
4
|
theme?: {
|
|
5
5
|
cssVarPrefix?: string | undefined;
|
|
6
6
|
colorSchemes: Record<SupportedColorScheme, Record<string, any>>;
|
|
7
|
+
colorSchemeSelector?: string | undefined;
|
|
7
8
|
} | {
|
|
8
9
|
$$material: {
|
|
9
10
|
cssVarPrefix?: string | undefined;
|
|
10
11
|
colorSchemes: Record<SupportedColorScheme, Record<string, any>>;
|
|
12
|
+
colorSchemeSelector?: string | undefined;
|
|
11
13
|
};
|
|
12
14
|
} | undefined;
|
|
13
15
|
documentNode?: Document | null | undefined;
|
|
14
16
|
colorSchemeNode?: Element | null | undefined;
|
|
15
|
-
colorSchemeSelector?: string | undefined;
|
|
16
17
|
storageWindow?: Window | null | undefined;
|
|
17
18
|
disableNestedContext?: boolean | undefined;
|
|
18
19
|
disableStyleSheetGeneration?: boolean | undefined;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
declare const _default: <T extends {
|
|
2
|
-
|
|
3
|
-
colorSchemeSelector: string;
|
|
2
|
+
colorSchemeSelector?: string | undefined;
|
|
4
3
|
colorSchemes?: Record<string, any> | undefined;
|
|
5
4
|
defaultColorScheme?: string | undefined;
|
|
6
5
|
cssVarPrefix?: string | undefined;
|
|
7
6
|
}>(theme: T) => (colorScheme: keyof T['colorSchemes'] | undefined, css: Record<string, any>) => string | {
|
|
7
|
+
':root': Record<string, any>;
|
|
8
|
+
'@media (prefers-color-scheme: dark) { :root': Record<string, any>;
|
|
9
|
+
} | {
|
|
8
10
|
[x: string]: Record<string, any>;
|
|
11
|
+
':root': Record<string, any>;
|
|
12
|
+
'@media (prefers-color-scheme: dark) { :root'?: undefined;
|
|
9
13
|
};
|
|
10
14
|
export default _default;
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
import excludeVariablesFromRoot from './excludeVariablesFromRoot';
|
|
2
2
|
export default (theme => (colorScheme, css) => {
|
|
3
|
+
const selector = theme.colorSchemeSelector;
|
|
4
|
+
let rule = selector;
|
|
5
|
+
if (selector === 'class') {
|
|
6
|
+
rule = '.%s';
|
|
7
|
+
}
|
|
8
|
+
if (selector === 'data') {
|
|
9
|
+
rule = '[data-%s]';
|
|
10
|
+
}
|
|
11
|
+
if (selector?.startsWith('data-') && !selector.includes('%s')) {
|
|
12
|
+
// 'data-mui-color-scheme' -> '[data-mui-color-scheme="%s"]'
|
|
13
|
+
rule = `[${selector}="%s"]`;
|
|
14
|
+
}
|
|
3
15
|
if (theme.defaultColorScheme === colorScheme) {
|
|
4
16
|
if (colorScheme === 'dark') {
|
|
5
17
|
const excludedVariables = {};
|
|
@@ -7,15 +19,32 @@ export default (theme => (colorScheme, css) => {
|
|
|
7
19
|
excludedVariables[cssVar] = css[cssVar];
|
|
8
20
|
delete css[cssVar];
|
|
9
21
|
});
|
|
22
|
+
if (rule === 'media') {
|
|
23
|
+
return {
|
|
24
|
+
':root': css,
|
|
25
|
+
'@media (prefers-color-scheme: dark) { :root': excludedVariables
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (rule) {
|
|
29
|
+
return {
|
|
30
|
+
[rule.replace('%s', colorScheme)]: excludedVariables,
|
|
31
|
+
':root': css
|
|
32
|
+
};
|
|
33
|
+
}
|
|
10
34
|
return {
|
|
11
|
-
|
|
12
|
-
|
|
35
|
+
':root': {
|
|
36
|
+
...css,
|
|
37
|
+
...excludedVariables
|
|
38
|
+
}
|
|
13
39
|
};
|
|
14
40
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
41
|
+
} else if (colorScheme) {
|
|
42
|
+
if (rule === 'media') {
|
|
43
|
+
return `@media (prefers-color-scheme: ${String(colorScheme)}) { :root`;
|
|
44
|
+
}
|
|
45
|
+
if (rule) {
|
|
46
|
+
return rule.replace('%s', String(colorScheme));
|
|
47
|
+
}
|
|
19
48
|
}
|
|
20
|
-
return
|
|
49
|
+
return ':root';
|
|
21
50
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @internal These variables should not appear in the :root stylesheet when the `
|
|
2
|
+
* @internal These variables should not appear in the :root stylesheet when the `defaultColorScheme="dark"`
|
|
3
3
|
*/
|
|
4
4
|
declare const excludeVariablesFromRoot: (cssVarPrefix?: string) => string[];
|
|
5
5
|
export default excludeVariablesFromRoot;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @internal These variables should not appear in the :root stylesheet when the `
|
|
2
|
+
* @internal These variables should not appear in the :root stylesheet when the `defaultColorScheme="dark"`
|
|
3
3
|
*/
|
|
4
4
|
const excludeVariablesFromRoot = cssVarPrefix => [...[...Array(24)].map((_, index) => `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}overlays-${index + 1}`), `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}palette-AppBar-darkBg`, `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}palette-AppBar-darkColor`];
|
|
5
5
|
export default excludeVariablesFromRoot;
|
package/styles/extendTheme.d.ts
CHANGED
|
@@ -276,6 +276,10 @@ export interface ColorSystem {
|
|
|
276
276
|
}
|
|
277
277
|
|
|
278
278
|
export interface CssVarsThemeOptions extends Omit<ThemeOptions, 'palette' | 'components'> {
|
|
279
|
+
/**
|
|
280
|
+
* @default 'light'
|
|
281
|
+
*/
|
|
282
|
+
defaultColorScheme?: SupportedColorScheme;
|
|
279
283
|
/**
|
|
280
284
|
* Prefix of the generated CSS variables
|
|
281
285
|
* @default 'mui'
|
|
@@ -288,27 +292,27 @@ export interface CssVarsThemeOptions extends Omit<ThemeOptions, 'palette' | 'com
|
|
|
288
292
|
/**
|
|
289
293
|
* Color schemes configuration
|
|
290
294
|
*/
|
|
291
|
-
colorSchemes?: Partial<Record<
|
|
295
|
+
colorSchemes?: Partial<Record<DefaultColorScheme, boolean | ColorSystemOptions>> &
|
|
296
|
+
(ExtendedColorScheme extends string ? Record<ExtendedColorScheme, ColorSystemOptions> : {});
|
|
292
297
|
/**
|
|
293
|
-
*
|
|
294
|
-
* This is useful if you want to use class or data-* attributes to apply the color scheme.
|
|
298
|
+
* The strategy to generate CSS variables
|
|
295
299
|
*
|
|
296
|
-
*
|
|
297
|
-
*
|
|
298
|
-
* - string: the selector for the color scheme
|
|
300
|
+
* @example 'media'
|
|
301
|
+
* Generate CSS variables using [prefers-color-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
|
|
299
302
|
*
|
|
300
|
-
* @example
|
|
301
|
-
*
|
|
302
|
-
* (colorScheme) => colorScheme !== 'light' ? `.theme-${colorScheme}` : ":root"
|
|
303
|
+
* @example '.mode-%s'
|
|
304
|
+
* Generate CSS variables within a class .mode-light, .mode-dark
|
|
303
305
|
*
|
|
304
|
-
* @example
|
|
305
|
-
*
|
|
306
|
-
|
|
306
|
+
* @example '[data-mode-%s]'
|
|
307
|
+
* Generate CSS variables within a data attribute [data-mode-light], [data-mode-dark]
|
|
308
|
+
*/
|
|
309
|
+
colorSchemeSelector?: 'media' | 'class' | 'data' | string;
|
|
310
|
+
/**
|
|
311
|
+
* If `true`, the CSS color-scheme will not be set.
|
|
312
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/color-scheme
|
|
313
|
+
* @default false
|
|
307
314
|
*/
|
|
308
|
-
|
|
309
|
-
colorScheme: SupportedColorScheme | undefined,
|
|
310
|
-
css: Record<string, any>,
|
|
311
|
-
) => string | Record<string, any>;
|
|
315
|
+
disableCssColorScheme?: boolean;
|
|
312
316
|
/**
|
|
313
317
|
* A function to determine if the key, value should be attached as CSS Variable
|
|
314
318
|
* `keys` is an array that represents the object path keys.
|
|
@@ -427,6 +431,7 @@ export type ThemeCssVar = OverridableStringUnion<
|
|
|
427
431
|
*/
|
|
428
432
|
export interface CssVarsTheme extends ColorSystem {
|
|
429
433
|
colorSchemes: Record<SupportedColorScheme, ColorSystem>;
|
|
434
|
+
colorSchemeSelector: 'media' | 'class' | 'data' | string;
|
|
430
435
|
cssVarPrefix: string;
|
|
431
436
|
vars: ThemeVars;
|
|
432
437
|
getCssVar: (field: ThemeCssVar, ...vars: ThemeCssVar[]) => string;
|