UNPKG

23.3 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports.createGetCssVar = void 0;
9exports.default = createThemeWithVars;
10var _formatMuiErrorMessage2 = _interopRequireDefault(require("@mui/utils/formatMuiErrorMessage"));
11var _deepmerge = _interopRequireDefault(require("@mui/utils/deepmerge"));
12var _system = require("@mui/system");
13var _spacing = require("@mui/system/spacing");
14var _cssVars = require("@mui/system/cssVars");
15var _styleFunctionSx = _interopRequireWildcard(require("@mui/system/styleFunctionSx"));
16var _colorManipulator = require("@mui/system/colorManipulator");
17var _createThemeNoVars = _interopRequireDefault(require("./createThemeNoVars"));
18var _createColorScheme = _interopRequireWildcard(require("./createColorScheme"));
19var _shouldSkipGeneratingVar = _interopRequireDefault(require("./shouldSkipGeneratingVar"));
20var _createGetSelector = _interopRequireDefault(require("./createGetSelector"));
21var _stringifyTheme = require("./stringifyTheme");
22function assignNode(obj, keys) {
23 keys.forEach(k => {
24 if (!obj[k]) {
25 obj[k] = {};
26 }
27 });
28}
29function setColor(obj, key, defaultValue) {
30 if (!obj[key] && defaultValue) {
31 obj[key] = defaultValue;
32 }
33}
34function toRgb(color) {
35 if (!color || !color.startsWith('hsl')) {
36 return color;
37 }
38 return (0, _colorManipulator.hslToRgb)(color);
39}
40function setColorChannel(obj, key) {
41 if (!(`${key}Channel` in obj)) {
42 // custom channel token is not provided, generate one.
43 // if channel token can't be generated, show a warning.
44 obj[`${key}Channel`] = (0, _colorManipulator.private_safeColorChannel)(toRgb(obj[key]), `MUI: Can't create \`palette.${key}Channel\` because \`palette.${key}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + '\n' + `To suppress this warning, you need to explicitly provide the \`palette.${key}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`);
45 }
46}
47function getSpacingVal(spacingInput) {
48 if (typeof spacingInput === 'number') {
49 return `${spacingInput}px`;
50 }
51 if (typeof spacingInput === 'string' || typeof spacingInput === 'function' || Array.isArray(spacingInput)) {
52 return spacingInput;
53 }
54 return '8px';
55}
56const silent = fn => {
57 try {
58 return fn();
59 } catch (error) {
60 // ignore error
61 }
62 return undefined;
63};
64const createGetCssVar = (cssVarPrefix = 'mui') => (0, _system.unstable_createGetCssVar)(cssVarPrefix);
65exports.createGetCssVar = createGetCssVar;
66function attachColorScheme(colorSchemes, scheme, restTheme, colorScheme) {
67 if (!scheme) {
68 return undefined;
69 }
70 scheme = scheme === true ? {} : scheme;
71 const mode = colorScheme === 'dark' ? 'dark' : 'light';
72 if (!restTheme) {
73 colorSchemes[colorScheme] = (0, _createColorScheme.default)({
74 ...scheme,
75 palette: {
76 mode,
77 ...scheme?.palette
78 }
79 });
80 return undefined;
81 }
82 const {
83 palette,
84 ...muiTheme
85 } = (0, _createThemeNoVars.default)({
86 ...restTheme,
87 palette: {
88 mode,
89 ...scheme?.palette
90 }
91 });
92 colorSchemes[colorScheme] = {
93 ...scheme,
94 palette,
95 opacity: {
96 ...(0, _createColorScheme.getOpacity)(mode),
97 ...scheme?.opacity
98 },
99 overlays: scheme?.overlays || (0, _createColorScheme.getOverlays)(mode)
100 };
101 return muiTheme;
102}
103
104/**
105 * A default `createThemeWithVars` comes with a single color scheme, either `light` or `dark` based on the `defaultColorScheme`.
106 * This is better suited for apps that only need a single color scheme.
107 *
108 * To enable built-in `light` and `dark` color schemes, either:
109 * 1. provide a `colorSchemeSelector` to define how the color schemes will change.
110 * 2. provide `colorSchemes.dark` will set `colorSchemeSelector: 'media'` by default.
111 */
112function createThemeWithVars(options = {}, ...args) {
113 const {
114 colorSchemes: colorSchemesInput = {
115 light: true
116 },
117 defaultColorScheme: defaultColorSchemeInput,
118 disableCssColorScheme = false,
119 cssVarPrefix = 'mui',
120 shouldSkipGeneratingVar = _shouldSkipGeneratingVar.default,
121 colorSchemeSelector: selector = colorSchemesInput.light && colorSchemesInput.dark ? 'media' : undefined,
122 rootSelector = ':root',
123 ...input
124 } = options;
125 const firstColorScheme = Object.keys(colorSchemesInput)[0];
126 const defaultColorScheme = defaultColorSchemeInput || (colorSchemesInput.light && firstColorScheme !== 'light' ? 'light' : firstColorScheme);
127 const getCssVar = createGetCssVar(cssVarPrefix);
128 const {
129 [defaultColorScheme]: defaultSchemeInput,
130 light: builtInLight,
131 dark: builtInDark,
132 ...customColorSchemes
133 } = colorSchemesInput;
134 const colorSchemes = {
135 ...customColorSchemes
136 };
137 let defaultScheme = defaultSchemeInput;
138
139 // For built-in light and dark color schemes, ensure that the value is valid if they are the default color scheme.
140 if (defaultColorScheme === 'dark' && !('dark' in colorSchemesInput) || defaultColorScheme === 'light' && !('light' in colorSchemesInput)) {
141 defaultScheme = true;
142 }
143 if (!defaultScheme) {
144 throw new Error(process.env.NODE_ENV !== "production" ? `MUI: The \`colorSchemes.${defaultColorScheme}\` option is either missing or invalid.` : (0, _formatMuiErrorMessage2.default)(21, defaultColorScheme));
145 }
146
147 // Create the palette for the default color scheme, either `light`, `dark`, or custom color scheme.
148 const muiTheme = attachColorScheme(colorSchemes, defaultScheme, input, defaultColorScheme);
149 if (builtInLight && !colorSchemes.light) {
150 attachColorScheme(colorSchemes, builtInLight, undefined, 'light');
151 }
152 if (builtInDark && !colorSchemes.dark) {
153 attachColorScheme(colorSchemes, builtInDark, undefined, 'dark');
154 }
155 let theme = {
156 defaultColorScheme,
157 ...muiTheme,
158 cssVarPrefix,
159 colorSchemeSelector: selector,
160 rootSelector,
161 getCssVar,
162 colorSchemes,
163 font: {
164 ...(0, _cssVars.prepareTypographyVars)(muiTheme.typography),
165 ...muiTheme.font
166 },
167 spacing: getSpacingVal(input.spacing)
168 };
169 Object.keys(theme.colorSchemes).forEach(key => {
170 const palette = theme.colorSchemes[key].palette;
171 const setCssVarColor = cssVar => {
172 const tokens = cssVar.split('-');
173 const color = tokens[1];
174 const colorToken = tokens[2];
175 return getCssVar(cssVar, palette[color][colorToken]);
176 };
177
178 // attach black & white channels to common node
179 if (palette.mode === 'light') {
180 setColor(palette.common, 'background', '#fff');
181 setColor(palette.common, 'onBackground', '#000');
182 }
183 if (palette.mode === 'dark') {
184 setColor(palette.common, 'background', '#000');
185 setColor(palette.common, 'onBackground', '#fff');
186 }
187
188 // assign component variables
189 assignNode(palette, ['Alert', 'AppBar', 'Avatar', 'Button', 'Chip', 'FilledInput', 'LinearProgress', 'Skeleton', 'Slider', 'SnackbarContent', 'SpeedDialAction', 'StepConnector', 'StepContent', 'Switch', 'TableCell', 'Tooltip']);
190 if (palette.mode === 'light') {
191 setColor(palette.Alert, 'errorColor', (0, _colorManipulator.private_safeDarken)(palette.error.light, 0.6));
192 setColor(palette.Alert, 'infoColor', (0, _colorManipulator.private_safeDarken)(palette.info.light, 0.6));
193 setColor(palette.Alert, 'successColor', (0, _colorManipulator.private_safeDarken)(palette.success.light, 0.6));
194 setColor(palette.Alert, 'warningColor', (0, _colorManipulator.private_safeDarken)(palette.warning.light, 0.6));
195 setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-main'));
196 setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-main'));
197 setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-main'));
198 setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-main'));
199 setColor(palette.Alert, 'errorFilledColor', silent(() => palette.getContrastText(palette.error.main)));
200 setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.main)));
201 setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.main)));
202 setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.main)));
203 setColor(palette.Alert, 'errorStandardBg', (0, _colorManipulator.private_safeLighten)(palette.error.light, 0.9));
204 setColor(palette.Alert, 'infoStandardBg', (0, _colorManipulator.private_safeLighten)(palette.info.light, 0.9));
205 setColor(palette.Alert, 'successStandardBg', (0, _colorManipulator.private_safeLighten)(palette.success.light, 0.9));
206 setColor(palette.Alert, 'warningStandardBg', (0, _colorManipulator.private_safeLighten)(palette.warning.light, 0.9));
207 setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));
208 setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));
209 setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));
210 setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main'));
211 setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-100'));
212 setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-400'));
213 setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-300'));
214 setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-A100'));
215 setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-400'));
216 setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-700'));
217 setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-700'));
218 setColor(palette.FilledInput, 'bg', 'rgba(0, 0, 0, 0.06)');
219 setColor(palette.FilledInput, 'hoverBg', 'rgba(0, 0, 0, 0.09)');
220 setColor(palette.FilledInput, 'disabledBg', 'rgba(0, 0, 0, 0.12)');
221 setColor(palette.LinearProgress, 'primaryBg', (0, _colorManipulator.private_safeLighten)(palette.primary.main, 0.62));
222 setColor(palette.LinearProgress, 'secondaryBg', (0, _colorManipulator.private_safeLighten)(palette.secondary.main, 0.62));
223 setColor(palette.LinearProgress, 'errorBg', (0, _colorManipulator.private_safeLighten)(palette.error.main, 0.62));
224 setColor(palette.LinearProgress, 'infoBg', (0, _colorManipulator.private_safeLighten)(palette.info.main, 0.62));
225 setColor(palette.LinearProgress, 'successBg', (0, _colorManipulator.private_safeLighten)(palette.success.main, 0.62));
226 setColor(palette.LinearProgress, 'warningBg', (0, _colorManipulator.private_safeLighten)(palette.warning.main, 0.62));
227 setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.11)`);
228 setColor(palette.Slider, 'primaryTrack', (0, _colorManipulator.private_safeLighten)(palette.primary.main, 0.62));
229 setColor(palette.Slider, 'secondaryTrack', (0, _colorManipulator.private_safeLighten)(palette.secondary.main, 0.62));
230 setColor(palette.Slider, 'errorTrack', (0, _colorManipulator.private_safeLighten)(palette.error.main, 0.62));
231 setColor(palette.Slider, 'infoTrack', (0, _colorManipulator.private_safeLighten)(palette.info.main, 0.62));
232 setColor(palette.Slider, 'successTrack', (0, _colorManipulator.private_safeLighten)(palette.success.main, 0.62));
233 setColor(palette.Slider, 'warningTrack', (0, _colorManipulator.private_safeLighten)(palette.warning.main, 0.62));
234 const snackbarContentBackground = (0, _colorManipulator.private_safeEmphasize)(palette.background.default, 0.8);
235 setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
236 setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));
237 setColor(palette.SpeedDialAction, 'fabHoverBg', (0, _colorManipulator.private_safeEmphasize)(palette.background.paper, 0.15));
238 setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-400'));
239 setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-400'));
240 setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-common-white'));
241 setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-100'));
242 setColor(palette.Switch, 'primaryDisabledColor', (0, _colorManipulator.private_safeLighten)(palette.primary.main, 0.62));
243 setColor(palette.Switch, 'secondaryDisabledColor', (0, _colorManipulator.private_safeLighten)(palette.secondary.main, 0.62));
244 setColor(palette.Switch, 'errorDisabledColor', (0, _colorManipulator.private_safeLighten)(palette.error.main, 0.62));
245 setColor(palette.Switch, 'infoDisabledColor', (0, _colorManipulator.private_safeLighten)(palette.info.main, 0.62));
246 setColor(palette.Switch, 'successDisabledColor', (0, _colorManipulator.private_safeLighten)(palette.success.main, 0.62));
247 setColor(palette.Switch, 'warningDisabledColor', (0, _colorManipulator.private_safeLighten)(palette.warning.main, 0.62));
248 setColor(palette.TableCell, 'border', (0, _colorManipulator.private_safeLighten)((0, _colorManipulator.private_safeAlpha)(palette.divider, 1), 0.88));
249 setColor(palette.Tooltip, 'bg', (0, _colorManipulator.private_safeAlpha)(palette.grey[700], 0.92));
250 }
251 if (palette.mode === 'dark') {
252 setColor(palette.Alert, 'errorColor', (0, _colorManipulator.private_safeLighten)(palette.error.light, 0.6));
253 setColor(palette.Alert, 'infoColor', (0, _colorManipulator.private_safeLighten)(palette.info.light, 0.6));
254 setColor(palette.Alert, 'successColor', (0, _colorManipulator.private_safeLighten)(palette.success.light, 0.6));
255 setColor(palette.Alert, 'warningColor', (0, _colorManipulator.private_safeLighten)(palette.warning.light, 0.6));
256 setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-dark'));
257 setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-dark'));
258 setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-dark'));
259 setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-dark'));
260 setColor(palette.Alert, 'errorFilledColor', silent(() => palette.getContrastText(palette.error.dark)));
261 setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.dark)));
262 setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.dark)));
263 setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.dark)));
264 setColor(palette.Alert, 'errorStandardBg', (0, _colorManipulator.private_safeDarken)(palette.error.light, 0.9));
265 setColor(palette.Alert, 'infoStandardBg', (0, _colorManipulator.private_safeDarken)(palette.info.light, 0.9));
266 setColor(palette.Alert, 'successStandardBg', (0, _colorManipulator.private_safeDarken)(palette.success.light, 0.9));
267 setColor(palette.Alert, 'warningStandardBg', (0, _colorManipulator.private_safeDarken)(palette.warning.light, 0.9));
268 setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));
269 setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));
270 setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));
271 setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main'));
272 setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-900'));
273 setColor(palette.AppBar, 'darkBg', setCssVarColor('palette-background-paper')); // specific for dark mode
274 setColor(palette.AppBar, 'darkColor', setCssVarColor('palette-text-primary')); // specific for dark mode
275 setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-600'));
276 setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-800'));
277 setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-700'));
278 setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-700'));
279 setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-300'));
280 setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-300'));
281 setColor(palette.FilledInput, 'bg', 'rgba(255, 255, 255, 0.09)');
282 setColor(palette.FilledInput, 'hoverBg', 'rgba(255, 255, 255, 0.13)');
283 setColor(palette.FilledInput, 'disabledBg', 'rgba(255, 255, 255, 0.12)');
284 setColor(palette.LinearProgress, 'primaryBg', (0, _colorManipulator.private_safeDarken)(palette.primary.main, 0.5));
285 setColor(palette.LinearProgress, 'secondaryBg', (0, _colorManipulator.private_safeDarken)(palette.secondary.main, 0.5));
286 setColor(palette.LinearProgress, 'errorBg', (0, _colorManipulator.private_safeDarken)(palette.error.main, 0.5));
287 setColor(palette.LinearProgress, 'infoBg', (0, _colorManipulator.private_safeDarken)(palette.info.main, 0.5));
288 setColor(palette.LinearProgress, 'successBg', (0, _colorManipulator.private_safeDarken)(palette.success.main, 0.5));
289 setColor(palette.LinearProgress, 'warningBg', (0, _colorManipulator.private_safeDarken)(palette.warning.main, 0.5));
290 setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.13)`);
291 setColor(palette.Slider, 'primaryTrack', (0, _colorManipulator.private_safeDarken)(palette.primary.main, 0.5));
292 setColor(palette.Slider, 'secondaryTrack', (0, _colorManipulator.private_safeDarken)(palette.secondary.main, 0.5));
293 setColor(palette.Slider, 'errorTrack', (0, _colorManipulator.private_safeDarken)(palette.error.main, 0.5));
294 setColor(palette.Slider, 'infoTrack', (0, _colorManipulator.private_safeDarken)(palette.info.main, 0.5));
295 setColor(palette.Slider, 'successTrack', (0, _colorManipulator.private_safeDarken)(palette.success.main, 0.5));
296 setColor(palette.Slider, 'warningTrack', (0, _colorManipulator.private_safeDarken)(palette.warning.main, 0.5));
297 const snackbarContentBackground = (0, _colorManipulator.private_safeEmphasize)(palette.background.default, 0.98);
298 setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
299 setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));
300 setColor(palette.SpeedDialAction, 'fabHoverBg', (0, _colorManipulator.private_safeEmphasize)(palette.background.paper, 0.15));
301 setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-600'));
302 setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-600'));
303 setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-grey-300'));
304 setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-600'));
305 setColor(palette.Switch, 'primaryDisabledColor', (0, _colorManipulator.private_safeDarken)(palette.primary.main, 0.55));
306 setColor(palette.Switch, 'secondaryDisabledColor', (0, _colorManipulator.private_safeDarken)(palette.secondary.main, 0.55));
307 setColor(palette.Switch, 'errorDisabledColor', (0, _colorManipulator.private_safeDarken)(palette.error.main, 0.55));
308 setColor(palette.Switch, 'infoDisabledColor', (0, _colorManipulator.private_safeDarken)(palette.info.main, 0.55));
309 setColor(palette.Switch, 'successDisabledColor', (0, _colorManipulator.private_safeDarken)(palette.success.main, 0.55));
310 setColor(palette.Switch, 'warningDisabledColor', (0, _colorManipulator.private_safeDarken)(palette.warning.main, 0.55));
311 setColor(palette.TableCell, 'border', (0, _colorManipulator.private_safeDarken)((0, _colorManipulator.private_safeAlpha)(palette.divider, 1), 0.68));
312 setColor(palette.Tooltip, 'bg', (0, _colorManipulator.private_safeAlpha)(palette.grey[700], 0.92));
313 }
314
315 // MUI X - DataGrid needs this token.
316 setColorChannel(palette.background, 'default');
317
318 // added for consistency with the `background.default` token
319 setColorChannel(palette.background, 'paper');
320 setColorChannel(palette.common, 'background');
321 setColorChannel(palette.common, 'onBackground');
322 setColorChannel(palette, 'divider');
323 Object.keys(palette).forEach(color => {
324 const colors = palette[color];
325
326 // The default palettes (primary, secondary, error, info, success, and warning) errors are handled by the above `createTheme(...)`.
327
328 if (colors && typeof colors === 'object') {
329 // Silent the error for custom palettes.
330 if (colors.main) {
331 setColor(palette[color], 'mainChannel', (0, _colorManipulator.private_safeColorChannel)(toRgb(colors.main)));
332 }
333 if (colors.light) {
334 setColor(palette[color], 'lightChannel', (0, _colorManipulator.private_safeColorChannel)(toRgb(colors.light)));
335 }
336 if (colors.dark) {
337 setColor(palette[color], 'darkChannel', (0, _colorManipulator.private_safeColorChannel)(toRgb(colors.dark)));
338 }
339 if (colors.contrastText) {
340 setColor(palette[color], 'contrastTextChannel', (0, _colorManipulator.private_safeColorChannel)(toRgb(colors.contrastText)));
341 }
342 if (color === 'text') {
343 // Text colors: text.primary, text.secondary
344 setColorChannel(palette[color], 'primary');
345 setColorChannel(palette[color], 'secondary');
346 }
347 if (color === 'action') {
348 // Action colors: action.active, action.selected
349 if (colors.active) {
350 setColorChannel(palette[color], 'active');
351 }
352 if (colors.selected) {
353 setColorChannel(palette[color], 'selected');
354 }
355 }
356 }
357 });
358 });
359 theme = args.reduce((acc, argument) => (0, _deepmerge.default)(acc, argument), theme);
360 const parserConfig = {
361 prefix: cssVarPrefix,
362 disableCssColorScheme,
363 shouldSkipGeneratingVar,
364 getSelector: (0, _createGetSelector.default)(theme)
365 };
366 const {
367 vars,
368 generateThemeVars,
369 generateStyleSheets
370 } = (0, _cssVars.prepareCssVars)(theme, parserConfig);
371 theme.vars = vars;
372 Object.entries(theme.colorSchemes[theme.defaultColorScheme]).forEach(([key, value]) => {
373 theme[key] = value;
374 });
375 theme.generateThemeVars = generateThemeVars;
376 theme.generateStyleSheets = generateStyleSheets;
377 theme.generateSpacing = function generateSpacing() {
378 return (0, _system.createSpacing)(input.spacing, (0, _spacing.createUnarySpacing)(this));
379 };
380 theme.getColorSchemeSelector = (0, _cssVars.createGetColorSchemeSelector)(selector);
381 theme.spacing = theme.generateSpacing();
382 theme.shouldSkipGeneratingVar = shouldSkipGeneratingVar;
383 theme.unstable_sxConfig = {
384 ..._styleFunctionSx.unstable_defaultSxConfig,
385 ...input?.unstable_sxConfig
386 };
387 theme.unstable_sx = function sx(props) {
388 return (0, _styleFunctionSx.default)({
389 sx: props,
390 theme: this
391 });
392 };
393 theme.toRuntimeSource = _stringifyTheme.stringifyTheme; // for Pigment CSS integration
394
395 return theme;
396}
\No newline at end of file