FrontPastel/node_modules/@mui/system/modern/cssVars/prepareCssVars.js

71 lines
2.2 KiB
JavaScript

import _extends from "@babel/runtime/helpers/esm/extends";
import _toPropertyKey from "@babel/runtime/helpers/esm/toPropertyKey";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
const _excluded = ["colorSchemes", "components", "defaultColorScheme"];
import deepmerge from '@mui/utils/deepmerge';
import cssVarsParser from './cssVarsParser';
function prepareCssVars(theme, parserConfig) {
// @ts-ignore - ignore components do not exist
const {
colorSchemes = {},
defaultColorScheme = 'light'
} = theme,
otherTheme = _objectWithoutPropertiesLoose(theme, _excluded);
const {
vars: rootVars,
css: rootCss,
varsWithDefaults: rootVarsWithDefaults
} = cssVarsParser(otherTheme, parserConfig);
let themeVars = rootVarsWithDefaults;
const colorSchemesMap = {};
const {
[defaultColorScheme]: light
} = colorSchemes,
otherColorSchemes = _objectWithoutPropertiesLoose(colorSchemes, [defaultColorScheme].map(_toPropertyKey));
Object.entries(otherColorSchemes || {}).forEach(([key, scheme]) => {
const {
vars,
css,
varsWithDefaults
} = cssVarsParser(scheme, parserConfig);
themeVars = deepmerge(themeVars, varsWithDefaults);
colorSchemesMap[key] = {
css,
vars
};
});
if (light) {
// default color scheme vars should be merged last to set as default
const {
css,
vars,
varsWithDefaults
} = cssVarsParser(light, parserConfig);
themeVars = deepmerge(themeVars, varsWithDefaults);
colorSchemesMap[defaultColorScheme] = {
css,
vars
};
}
const generateCssVars = colorScheme => {
if (!colorScheme) {
const css = _extends({}, rootCss);
return {
css,
vars: rootVars,
selector: parserConfig?.getSelector?.(colorScheme, css) || ':root'
};
}
const css = _extends({}, colorSchemesMap[colorScheme].css);
return {
css,
vars: colorSchemesMap[colorScheme].vars,
selector: parserConfig?.getSelector?.(colorScheme, css) || ':root'
};
};
return {
vars: themeVars,
generateCssVars
};
}
export default prepareCssVars;