worked on GarageApp stuff
This commit is contained in:
parent
60aaf17af3
commit
eb606572b0
51919 changed files with 2168177 additions and 18 deletions
164
node_modules/@mui/system/esm/cssVars/prepareCssVars.js
generated
vendored
Normal file
164
node_modules/@mui/system/esm/cssVars/prepareCssVars.js
generated
vendored
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
import deepmerge from '@mui/utils/deepmerge';
|
||||
import cssVarsParser from "./cssVarsParser.js";
|
||||
function prepareCssVars(theme, parserConfig = {}) {
|
||||
const {
|
||||
getSelector = defaultGetSelector,
|
||||
disableCssColorScheme,
|
||||
colorSchemeSelector: selector,
|
||||
enableContrastVars
|
||||
} = parserConfig;
|
||||
// @ts-ignore - ignore components do not exist
|
||||
const {
|
||||
colorSchemes = {},
|
||||
components,
|
||||
defaultColorScheme = 'light',
|
||||
...otherTheme
|
||||
} = theme;
|
||||
const {
|
||||
vars: rootVars,
|
||||
css: rootCss,
|
||||
varsWithDefaults: rootVarsWithDefaults
|
||||
} = cssVarsParser(otherTheme, parserConfig);
|
||||
let themeVars = rootVarsWithDefaults;
|
||||
const colorSchemesMap = {};
|
||||
const {
|
||||
[defaultColorScheme]: defaultScheme,
|
||||
...otherColorSchemes
|
||||
} = colorSchemes;
|
||||
Object.entries(otherColorSchemes || {}).forEach(([key, scheme]) => {
|
||||
const {
|
||||
vars,
|
||||
css,
|
||||
varsWithDefaults
|
||||
} = cssVarsParser(scheme, parserConfig);
|
||||
themeVars = deepmerge(themeVars, varsWithDefaults);
|
||||
colorSchemesMap[key] = {
|
||||
css,
|
||||
vars
|
||||
};
|
||||
});
|
||||
if (defaultScheme) {
|
||||
// default color scheme vars should be merged last to set as default
|
||||
const {
|
||||
css,
|
||||
vars,
|
||||
varsWithDefaults
|
||||
} = cssVarsParser(defaultScheme, parserConfig);
|
||||
themeVars = deepmerge(themeVars, varsWithDefaults);
|
||||
colorSchemesMap[defaultColorScheme] = {
|
||||
css,
|
||||
vars
|
||||
};
|
||||
}
|
||||
function defaultGetSelector(colorScheme, cssObject) {
|
||||
let rule = selector;
|
||||
if (selector === 'class') {
|
||||
rule = '.%s';
|
||||
}
|
||||
if (selector === 'data') {
|
||||
rule = '[data-%s]';
|
||||
}
|
||||
if (selector?.startsWith('data-') && !selector.includes('%s')) {
|
||||
// 'data-joy-color-scheme' -> '[data-joy-color-scheme="%s"]'
|
||||
rule = `[${selector}="%s"]`;
|
||||
}
|
||||
if (colorScheme) {
|
||||
if (rule === 'media') {
|
||||
if (theme.defaultColorScheme === colorScheme) {
|
||||
return ':root';
|
||||
}
|
||||
const mode = colorSchemes[colorScheme]?.palette?.mode || colorScheme;
|
||||
return {
|
||||
[`@media (prefers-color-scheme: ${mode})`]: {
|
||||
':root': cssObject
|
||||
}
|
||||
};
|
||||
}
|
||||
if (rule) {
|
||||
if (theme.defaultColorScheme === colorScheme) {
|
||||
return `:root, ${rule.replace('%s', String(colorScheme))}`;
|
||||
}
|
||||
return rule.replace('%s', String(colorScheme));
|
||||
}
|
||||
}
|
||||
return ':root';
|
||||
}
|
||||
const generateThemeVars = () => {
|
||||
let vars = {
|
||||
...rootVars
|
||||
};
|
||||
Object.entries(colorSchemesMap).forEach(([, {
|
||||
vars: schemeVars
|
||||
}]) => {
|
||||
vars = deepmerge(vars, schemeVars);
|
||||
});
|
||||
return vars;
|
||||
};
|
||||
const generateStyleSheets = () => {
|
||||
const stylesheets = [];
|
||||
const colorScheme = theme.defaultColorScheme || 'light';
|
||||
function insertStyleSheet(key, css) {
|
||||
if (Object.keys(css).length) {
|
||||
stylesheets.push(typeof key === 'string' ? {
|
||||
[key]: {
|
||||
...css
|
||||
}
|
||||
} : key);
|
||||
}
|
||||
}
|
||||
insertStyleSheet(getSelector(undefined, {
|
||||
...rootCss
|
||||
}), rootCss);
|
||||
const {
|
||||
[colorScheme]: defaultSchemeVal,
|
||||
...other
|
||||
} = colorSchemesMap;
|
||||
if (defaultSchemeVal) {
|
||||
// default color scheme has to come before other color schemes
|
||||
const {
|
||||
css
|
||||
} = defaultSchemeVal;
|
||||
const cssColorSheme = colorSchemes[colorScheme]?.palette?.mode;
|
||||
const finalCss = !disableCssColorScheme && cssColorSheme ? {
|
||||
colorScheme: cssColorSheme,
|
||||
...css
|
||||
} : {
|
||||
...css
|
||||
};
|
||||
insertStyleSheet(getSelector(colorScheme, {
|
||||
...finalCss
|
||||
}), finalCss);
|
||||
}
|
||||
Object.entries(other).forEach(([key, {
|
||||
css
|
||||
}]) => {
|
||||
const cssColorSheme = colorSchemes[key]?.palette?.mode;
|
||||
const finalCss = !disableCssColorScheme && cssColorSheme ? {
|
||||
colorScheme: cssColorSheme,
|
||||
...css
|
||||
} : {
|
||||
...css
|
||||
};
|
||||
insertStyleSheet(getSelector(key, {
|
||||
...finalCss
|
||||
}), finalCss);
|
||||
});
|
||||
if (enableContrastVars) {
|
||||
stylesheets.push({
|
||||
':root': {
|
||||
// use double underscore to indicate that these are private variables
|
||||
'--__l-threshold': '0.7',
|
||||
'--__l': 'clamp(0, (l / var(--__l-threshold) - 1) * -infinity, 1)',
|
||||
'--__a': 'clamp(0.87, (l / var(--__l-threshold) - 1) * -infinity, 1)' // 0.87 is the default alpha value for black text.
|
||||
}
|
||||
});
|
||||
}
|
||||
return stylesheets;
|
||||
};
|
||||
return {
|
||||
vars: themeVars,
|
||||
generateThemeVars,
|
||||
generateStyleSheets
|
||||
};
|
||||
}
|
||||
export default prepareCssVars;
|
||||
Loading…
Add table
Add a link
Reference in a new issue