@mui/system 7.0.1 → 7.1.0
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/Box/Box.d.ts +12 -31
- package/CHANGELOG.md +157 -0
- package/Grid/createGrid.js +1 -2
- package/InitColorSchemeScript/InitColorSchemeScript.js +1 -1
- package/Stack/createStack.js +1 -2
- package/borders/borders.d.ts +2 -1
- package/breakpoints/breakpoints.d.ts +1 -1
- package/compose/compose.d.ts +14 -1
- package/compose/index.d.ts +1 -1
- package/cssGrid/cssGrid.d.ts +2 -1
- package/cssVars/cssVarsParser.d.ts +1 -1
- package/display/display.d.ts +2 -1
- package/esm/Box/Box.d.ts +12 -31
- package/esm/Grid/createGrid.js +1 -2
- package/esm/InitColorSchemeScript/InitColorSchemeScript.js +1 -1
- package/esm/Stack/createStack.js +1 -2
- package/esm/borders/borders.d.ts +2 -1
- package/esm/breakpoints/breakpoints.d.ts +1 -1
- package/esm/compose/compose.d.ts +14 -1
- package/esm/compose/index.d.ts +1 -1
- package/esm/cssGrid/cssGrid.d.ts +2 -1
- package/esm/cssVars/cssVarsParser.d.ts +1 -1
- package/esm/display/display.d.ts +2 -1
- package/esm/flexbox/flexbox.d.ts +15 -1
- package/esm/index.d.ts +10 -0
- package/esm/index.js +1 -1
- package/esm/memoTheme.d.ts +1 -1
- package/esm/palette/palette.d.ts +2 -1
- package/esm/positions/positions.d.ts +2 -1
- package/esm/shadows/shadows.d.ts +2 -1
- package/esm/sizing/sizing.d.ts +2 -1
- package/esm/spacing/spacing.d.ts +2 -1
- package/esm/style/style.d.ts +5 -1
- package/esm/styleFunctionSx/defaultSxConfig.d.ts +1 -2
- package/esm/typography/typography.d.ts +2 -1
- package/esm/useMediaQuery/useMediaQuery.js +3 -0
- package/esm/useThemeProps/getThemeProps.d.ts +0 -5
- package/esm/version/index.js +3 -3
- package/flexbox/flexbox.d.ts +15 -1
- package/index.d.ts +10 -0
- package/index.js +1 -1
- package/memoTheme.d.ts +1 -1
- package/package.json +7 -15
- package/palette/palette.d.ts +2 -1
- package/positions/positions.d.ts +2 -1
- package/shadows/shadows.d.ts +2 -1
- package/sizing/sizing.d.ts +2 -1
- package/spacing/spacing.d.ts +2 -1
- package/style/style.d.ts +5 -1
- package/styleFunctionSx/defaultSxConfig.d.ts +1 -2
- package/typography/typography.d.ts +2 -1
- package/useMediaQuery/useMediaQuery.js +3 -0
- package/useThemeProps/getThemeProps.d.ts +0 -5
- package/version/index.js +3 -3
- package/modern/Box/Box.d.ts +0 -72
- package/modern/Box/Box.js +0 -30
- package/modern/Box/boxClasses.d.ts +0 -7
- package/modern/Box/boxClasses.js +0 -3
- package/modern/Box/index.d.ts +0 -4
- package/modern/Box/index.js +0 -3
- package/modern/CSSProperties.d.ts +0 -7
- package/modern/Container/Container.d.ts +0 -13
- package/modern/Container/Container.js +0 -61
- package/modern/Container/ContainerProps.d.ts +0 -40
- package/modern/Container/ContainerProps.js +0 -1
- package/modern/Container/containerClasses.d.ts +0 -22
- package/modern/Container/containerClasses.js +0 -7
- package/modern/Container/createContainer.d.ts +0 -18
- package/modern/Container/createContainer.js +0 -149
- package/modern/Container/index.d.ts +0 -4
- package/modern/Container/index.js +0 -3
- package/modern/DefaultPropsProvider/DefaultPropsProvider.d.ts +0 -18
- package/modern/DefaultPropsProvider/DefaultPropsProvider.js +0 -64
- package/modern/DefaultPropsProvider/index.d.ts +0 -1
- package/modern/DefaultPropsProvider/index.js +0 -1
- package/modern/GlobalStyles/GlobalStyles.d.ts +0 -17
- package/modern/GlobalStyles/GlobalStyles.js +0 -37
- package/modern/GlobalStyles/index.d.ts +0 -2
- package/modern/GlobalStyles/index.js +0 -2
- package/modern/Grid/Grid.d.ts +0 -13
- package/modern/Grid/Grid.js +0 -106
- package/modern/Grid/GridProps.d.ts +0 -103
- package/modern/Grid/GridProps.js +0 -1
- package/modern/Grid/createGrid.d.ts +0 -13
- package/modern/Grid/createGrid.js +0 -155
- package/modern/Grid/deleteLegacyGridProps.d.ts +0 -11
- package/modern/Grid/deleteLegacyGridProps.js +0 -41
- package/modern/Grid/gridClasses.d.ts +0 -20
- package/modern/Grid/gridClasses.js +0 -19
- package/modern/Grid/gridGenerator.d.ts +0 -42
- package/modern/Grid/gridGenerator.js +0 -193
- package/modern/Grid/index.d.ts +0 -7
- package/modern/Grid/index.js +0 -7
- package/modern/Grid/traverseBreakpoints.d.ts +0 -7
- package/modern/Grid/traverseBreakpoints.js +0 -42
- package/modern/InitColorSchemeScript/InitColorSchemeScript.d.ts +0 -51
- package/modern/InitColorSchemeScript/InitColorSchemeScript.js +0 -78
- package/modern/InitColorSchemeScript/index.d.ts +0 -2
- package/modern/InitColorSchemeScript/index.js +0 -1
- package/modern/RtlProvider/index.d.ts +0 -8
- package/modern/RtlProvider/index.js +0 -24
- package/modern/Stack/Stack.d.ts +0 -14
- package/modern/Stack/Stack.js +0 -62
- package/modern/Stack/StackProps.d.ts +0 -53
- package/modern/Stack/StackProps.js +0 -1
- package/modern/Stack/createStack.d.ts +0 -24
- package/modern/Stack/createStack.js +0 -173
- package/modern/Stack/index.d.ts +0 -5
- package/modern/Stack/index.js +0 -5
- package/modern/Stack/stackClasses.d.ts +0 -8
- package/modern/Stack/stackClasses.js +0 -7
- package/modern/ThemeProvider/ThemeProvider.d.ts +0 -24
- package/modern/ThemeProvider/ThemeProvider.js +0 -97
- package/modern/ThemeProvider/index.d.ts +0 -2
- package/modern/ThemeProvider/index.js +0 -1
- package/modern/borders/borders.d.ts +0 -14
- package/modern/borders/borders.js +0 -49
- package/modern/borders/index.d.ts +0 -2
- package/modern/borders/index.js +0 -2
- package/modern/breakpoints/breakpoints.d.ts +0 -19
- package/modern/breakpoints/breakpoints.js +0 -171
- package/modern/breakpoints/index.d.ts +0 -2
- package/modern/breakpoints/index.js +0 -2
- package/modern/colorManipulator/colorManipulator.d.ts +0 -25
- package/modern/colorManipulator/colorManipulator.js +0 -349
- package/modern/colorManipulator/index.d.ts +0 -1
- package/modern/colorManipulator/index.js +0 -1
- package/modern/compose/compose.d.ts +0 -2
- package/modern/compose/compose.js +0 -24
- package/modern/compose/index.d.ts +0 -1
- package/modern/compose/index.js +0 -1
- package/modern/createBox/createBox.d.ts +0 -9
- package/modern/createBox/createBox.js +0 -35
- package/modern/createBox/index.d.ts +0 -1
- package/modern/createBox/index.js +0 -1
- package/modern/createBreakpoints/createBreakpoints.d.ts +0 -78
- package/modern/createBreakpoints/createBreakpoints.js +0 -81
- package/modern/createBreakpoints/index.d.ts +0 -3
- package/modern/createBreakpoints/index.js +0 -3
- package/modern/createStyled/createStyled.d.ts +0 -27
- package/modern/createStyled/createStyled.js +0 -276
- package/modern/createStyled/index.d.ts +0 -2
- package/modern/createStyled/index.js +0 -2
- package/modern/createTheme/applyStyles.d.ts +0 -67
- package/modern/createTheme/applyStyles.js +0 -87
- package/modern/createTheme/createSpacing.d.ts +0 -10
- package/modern/createTheme/createSpacing.js +0 -31
- package/modern/createTheme/createTheme.d.ts +0 -54
- package/modern/createTheme/createTheme.js +0 -49
- package/modern/createTheme/index.d.ts +0 -4
- package/modern/createTheme/index.js +0 -3
- package/modern/createTheme/shape.d.ts +0 -6
- package/modern/createTheme/shape.js +0 -4
- package/modern/cssContainerQueries/cssContainerQueries.d.ts +0 -23
- package/modern/cssContainerQueries/cssContainerQueries.js +0 -69
- package/modern/cssContainerQueries/index.d.ts +0 -3
- package/modern/cssContainerQueries/index.js +0 -2
- package/modern/cssGrid/cssGrid.d.ts +0 -15
- package/modern/cssGrid/cssGrid.js +0 -85
- package/modern/cssGrid/index.d.ts +0 -2
- package/modern/cssGrid/index.js +0 -2
- package/modern/cssVars/createCssVarsProvider.d.ts +0 -141
- package/modern/cssVars/createCssVarsProvider.js +0 -338
- package/modern/cssVars/createCssVarsTheme.d.ts +0 -15
- package/modern/cssVars/createCssVarsTheme.js +0 -21
- package/modern/cssVars/createGetCssVar.d.ts +0 -5
- package/modern/cssVars/createGetCssVar.js +0 -22
- package/modern/cssVars/cssVarsParser.d.ts +0 -64
- package/modern/cssVars/cssVarsParser.js +0 -129
- package/modern/cssVars/getColorSchemeSelector.d.ts +0 -1
- package/modern/cssVars/getColorSchemeSelector.js +0 -26
- package/modern/cssVars/index.d.ts +0 -8
- package/modern/cssVars/index.js +0 -5
- package/modern/cssVars/localStorageManager.d.ts +0 -34
- package/modern/cssVars/localStorageManager.js +0 -51
- package/modern/cssVars/prepareCssVars.d.ts +0 -16
- package/modern/cssVars/prepareCssVars.js +0 -153
- package/modern/cssVars/prepareTypographyVars.d.ts +0 -4
- package/modern/cssVars/prepareTypographyVars.js +0 -11
- package/modern/cssVars/useCurrentColorScheme.d.ts +0 -56
- package/modern/cssVars/useCurrentColorScheme.js +0 -228
- package/modern/display/display.d.ts +0 -3
- package/modern/display/display.js +0 -27
- package/modern/display/index.d.ts +0 -2
- package/modern/display/index.js +0 -2
- package/modern/flexbox/flexbox.d.ts +0 -3
- package/modern/flexbox/flexbox.js +0 -43
- package/modern/flexbox/index.d.ts +0 -2
- package/modern/flexbox/index.js +0 -2
- package/modern/getThemeValue/getThemeValue.d.ts +0 -1
- package/modern/getThemeValue/getThemeValue.js +0 -51
- package/modern/getThemeValue/index.d.ts +0 -2
- package/modern/getThemeValue/index.js +0 -2
- package/modern/index.d.ts +0 -80
- package/modern/index.js +0 -75
- package/modern/memoTheme.d.ts +0 -12
- package/modern/memoTheme.js +0 -28
- package/modern/memoize/index.d.ts +0 -1
- package/modern/memoize/index.js +0 -1
- package/modern/memoize/memoize.d.ts +0 -1
- package/modern/memoize/memoize.js +0 -9
- package/modern/merge/index.d.ts +0 -1
- package/modern/merge/index.js +0 -1
- package/modern/merge/merge.d.ts +0 -1
- package/modern/merge/merge.js +0 -10
- package/modern/package.json +0 -1
- package/modern/palette/index.d.ts +0 -2
- package/modern/palette/index.js +0 -2
- package/modern/palette/palette.d.ts +0 -5
- package/modern/palette/palette.js +0 -26
- package/modern/positions/index.d.ts +0 -2
- package/modern/positions/index.js +0 -2
- package/modern/positions/positions.d.ts +0 -3
- package/modern/positions/positions.js +0 -22
- package/modern/preprocessStyles.d.ts +0 -5
- package/modern/preprocessStyles.js +0 -25
- package/modern/propsToClassKey/index.d.ts +0 -1
- package/modern/propsToClassKey/index.js +0 -1
- package/modern/propsToClassKey/propsToClassKey.d.ts +0 -1
- package/modern/propsToClassKey/propsToClassKey.js +0 -25
- package/modern/responsivePropType/index.d.ts +0 -1
- package/modern/responsivePropType/index.js +0 -1
- package/modern/responsivePropType/responsivePropType.d.ts +0 -2
- package/modern/responsivePropType/responsivePropType.js +0 -3
- package/modern/shadows/index.d.ts +0 -1
- package/modern/shadows/index.js +0 -1
- package/modern/shadows/shadows.d.ts +0 -3
- package/modern/shadows/shadows.js +0 -6
- package/modern/sizing/index.d.ts +0 -2
- package/modern/sizing/index.js +0 -2
- package/modern/sizing/sizing.d.ts +0 -12
- package/modern/sizing/sizing.js +0 -64
- package/modern/spacing/index.d.ts +0 -2
- package/modern/spacing/index.js +0 -2
- package/modern/spacing/spacing.d.ts +0 -19
- package/modern/spacing/spacing.js +0 -157
- package/modern/style/index.d.ts +0 -2
- package/modern/style/index.js +0 -2
- package/modern/style/style.d.ts +0 -19
- package/modern/style/style.js +0 -75
- package/modern/styleFunctionSx/AliasesCSSProperties.d.ts +0 -269
- package/modern/styleFunctionSx/AliasesCSSProperties.js +0 -1
- package/modern/styleFunctionSx/OverwriteCSSProperties.d.ts +0 -54
- package/modern/styleFunctionSx/OverwriteCSSProperties.js +0 -1
- package/modern/styleFunctionSx/StandardCssProperties.d.ts +0 -2
- package/modern/styleFunctionSx/StandardCssProperties.js +0 -1
- package/modern/styleFunctionSx/defaultSxConfig.d.ts +0 -15
- package/modern/styleFunctionSx/defaultSxConfig.js +0 -294
- package/modern/styleFunctionSx/extendSxProp.d.ts +0 -4
- package/modern/styleFunctionSx/extendSxProp.js +0 -51
- package/modern/styleFunctionSx/index.d.ts +0 -9
- package/modern/styleFunctionSx/index.js +0 -4
- package/modern/styleFunctionSx/styleFunctionSx.d.ts +0 -62
- package/modern/styleFunctionSx/styleFunctionSx.js +0 -127
- package/modern/styled/index.d.ts +0 -1
- package/modern/styled/index.js +0 -1
- package/modern/styled/styled.d.ts +0 -3
- package/modern/styled/styled.js +0 -3
- package/modern/typography/index.d.ts +0 -2
- package/modern/typography/index.js +0 -2
- package/modern/typography/typography.d.ts +0 -12
- package/modern/typography/typography.js +0 -37
- package/modern/useMediaQuery/index.d.ts +0 -2
- package/modern/useMediaQuery/index.js +0 -2
- package/modern/useMediaQuery/useMediaQuery.d.ts +0 -32
- package/modern/useMediaQuery/useMediaQuery.js +0 -118
- package/modern/useTheme/index.d.ts +0 -2
- package/modern/useTheme/index.js +0 -2
- package/modern/useTheme/useTheme.d.ts +0 -2
- package/modern/useTheme/useTheme.js +0 -9
- package/modern/useThemeProps/getThemeProps.d.ts +0 -16
- package/modern/useThemeProps/getThemeProps.js +0 -12
- package/modern/useThemeProps/index.d.ts +0 -3
- package/modern/useThemeProps/index.js +0 -2
- package/modern/useThemeProps/useThemeProps.d.ts +0 -14
- package/modern/useThemeProps/useThemeProps.js +0 -20
- package/modern/useThemeWithoutDefault/index.d.ts +0 -1
- package/modern/useThemeWithoutDefault/index.js +0 -1
- package/modern/useThemeWithoutDefault/useThemeWithoutDefault.d.ts +0 -1
- package/modern/useThemeWithoutDefault/useThemeWithoutDefault.js +0 -12
- package/modern/version/index.d.ts +0 -6
- package/modern/version/index.js +0 -6
- package/tsconfig.build.tsbuildinfo +0 -1
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
function noop() {}
|
|
2
|
-
const localStorageManager = ({
|
|
3
|
-
key,
|
|
4
|
-
storageWindow
|
|
5
|
-
}) => {
|
|
6
|
-
if (!storageWindow && typeof window !== 'undefined') {
|
|
7
|
-
storageWindow = window;
|
|
8
|
-
}
|
|
9
|
-
return {
|
|
10
|
-
get(defaultValue) {
|
|
11
|
-
if (typeof window === 'undefined') {
|
|
12
|
-
return undefined;
|
|
13
|
-
}
|
|
14
|
-
if (!storageWindow) {
|
|
15
|
-
return defaultValue;
|
|
16
|
-
}
|
|
17
|
-
let value;
|
|
18
|
-
try {
|
|
19
|
-
value = storageWindow.localStorage.getItem(key);
|
|
20
|
-
} catch {
|
|
21
|
-
// Unsupported
|
|
22
|
-
}
|
|
23
|
-
return value || defaultValue;
|
|
24
|
-
},
|
|
25
|
-
set: value => {
|
|
26
|
-
if (storageWindow) {
|
|
27
|
-
try {
|
|
28
|
-
storageWindow.localStorage.setItem(key, value);
|
|
29
|
-
} catch {
|
|
30
|
-
// Unsupported
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
},
|
|
34
|
-
subscribe: handler => {
|
|
35
|
-
if (!storageWindow) {
|
|
36
|
-
return noop;
|
|
37
|
-
}
|
|
38
|
-
const listener = event => {
|
|
39
|
-
const value = event.newValue;
|
|
40
|
-
if (event.key === key) {
|
|
41
|
-
handler(value);
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
storageWindow.addEventListener('storage', listener);
|
|
45
|
-
return () => {
|
|
46
|
-
storageWindow.removeEventListener('storage', listener);
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
};
|
|
51
|
-
export default localStorageManager;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export interface DefaultCssVarsTheme {
|
|
2
|
-
colorSchemes?: Record<string, any>;
|
|
3
|
-
defaultColorScheme?: string;
|
|
4
|
-
}
|
|
5
|
-
declare function prepareCssVars<T extends DefaultCssVarsTheme, ThemeVars extends Record<string, any>>(theme: T, parserConfig?: {
|
|
6
|
-
prefix?: string;
|
|
7
|
-
colorSchemeSelector?: 'media' | 'class' | 'data' | string;
|
|
8
|
-
disableCssColorScheme?: boolean;
|
|
9
|
-
shouldSkipGeneratingVar?: (objectPathKeys: Array<string>, value: string | number) => boolean;
|
|
10
|
-
getSelector?: (colorScheme: keyof T['colorSchemes'] | undefined, css: Record<string, any>) => string | Record<string, any>;
|
|
11
|
-
}): {
|
|
12
|
-
vars: ThemeVars;
|
|
13
|
-
generateThemeVars: () => ThemeVars;
|
|
14
|
-
generateStyleSheets: () => Record<string, any>[];
|
|
15
|
-
};
|
|
16
|
-
export default prepareCssVars;
|
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
import deepmerge from '@mui/utils/deepmerge';
|
|
2
|
-
import cssVarsParser from "./cssVarsParser.js";
|
|
3
|
-
function prepareCssVars(theme, parserConfig = {}) {
|
|
4
|
-
const {
|
|
5
|
-
getSelector = defaultGetSelector,
|
|
6
|
-
disableCssColorScheme,
|
|
7
|
-
colorSchemeSelector: selector
|
|
8
|
-
} = parserConfig;
|
|
9
|
-
// @ts-ignore - ignore components do not exist
|
|
10
|
-
const {
|
|
11
|
-
colorSchemes = {},
|
|
12
|
-
components,
|
|
13
|
-
defaultColorScheme = 'light',
|
|
14
|
-
...otherTheme
|
|
15
|
-
} = theme;
|
|
16
|
-
const {
|
|
17
|
-
vars: rootVars,
|
|
18
|
-
css: rootCss,
|
|
19
|
-
varsWithDefaults: rootVarsWithDefaults
|
|
20
|
-
} = cssVarsParser(otherTheme, parserConfig);
|
|
21
|
-
let themeVars = rootVarsWithDefaults;
|
|
22
|
-
const colorSchemesMap = {};
|
|
23
|
-
const {
|
|
24
|
-
[defaultColorScheme]: defaultScheme,
|
|
25
|
-
...otherColorSchemes
|
|
26
|
-
} = colorSchemes;
|
|
27
|
-
Object.entries(otherColorSchemes || {}).forEach(([key, scheme]) => {
|
|
28
|
-
const {
|
|
29
|
-
vars,
|
|
30
|
-
css,
|
|
31
|
-
varsWithDefaults
|
|
32
|
-
} = cssVarsParser(scheme, parserConfig);
|
|
33
|
-
themeVars = deepmerge(themeVars, varsWithDefaults);
|
|
34
|
-
colorSchemesMap[key] = {
|
|
35
|
-
css,
|
|
36
|
-
vars
|
|
37
|
-
};
|
|
38
|
-
});
|
|
39
|
-
if (defaultScheme) {
|
|
40
|
-
// default color scheme vars should be merged last to set as default
|
|
41
|
-
const {
|
|
42
|
-
css,
|
|
43
|
-
vars,
|
|
44
|
-
varsWithDefaults
|
|
45
|
-
} = cssVarsParser(defaultScheme, parserConfig);
|
|
46
|
-
themeVars = deepmerge(themeVars, varsWithDefaults);
|
|
47
|
-
colorSchemesMap[defaultColorScheme] = {
|
|
48
|
-
css,
|
|
49
|
-
vars
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
function defaultGetSelector(colorScheme, cssObject) {
|
|
53
|
-
let rule = selector;
|
|
54
|
-
if (selector === 'class') {
|
|
55
|
-
rule = '.%s';
|
|
56
|
-
}
|
|
57
|
-
if (selector === 'data') {
|
|
58
|
-
rule = '[data-%s]';
|
|
59
|
-
}
|
|
60
|
-
if (selector?.startsWith('data-') && !selector.includes('%s')) {
|
|
61
|
-
// 'data-joy-color-scheme' -> '[data-joy-color-scheme="%s"]'
|
|
62
|
-
rule = `[${selector}="%s"]`;
|
|
63
|
-
}
|
|
64
|
-
if (colorScheme) {
|
|
65
|
-
if (rule === 'media') {
|
|
66
|
-
if (theme.defaultColorScheme === colorScheme) {
|
|
67
|
-
return ':root';
|
|
68
|
-
}
|
|
69
|
-
const mode = colorSchemes[colorScheme]?.palette?.mode || colorScheme;
|
|
70
|
-
return {
|
|
71
|
-
[`@media (prefers-color-scheme: ${mode})`]: {
|
|
72
|
-
':root': cssObject
|
|
73
|
-
}
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
if (rule) {
|
|
77
|
-
if (theme.defaultColorScheme === colorScheme) {
|
|
78
|
-
return `:root, ${rule.replace('%s', String(colorScheme))}`;
|
|
79
|
-
}
|
|
80
|
-
return rule.replace('%s', String(colorScheme));
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return ':root';
|
|
84
|
-
}
|
|
85
|
-
const generateThemeVars = () => {
|
|
86
|
-
let vars = {
|
|
87
|
-
...rootVars
|
|
88
|
-
};
|
|
89
|
-
Object.entries(colorSchemesMap).forEach(([, {
|
|
90
|
-
vars: schemeVars
|
|
91
|
-
}]) => {
|
|
92
|
-
vars = deepmerge(vars, schemeVars);
|
|
93
|
-
});
|
|
94
|
-
return vars;
|
|
95
|
-
};
|
|
96
|
-
const generateStyleSheets = () => {
|
|
97
|
-
const stylesheets = [];
|
|
98
|
-
const colorScheme = theme.defaultColorScheme || 'light';
|
|
99
|
-
function insertStyleSheet(key, css) {
|
|
100
|
-
if (Object.keys(css).length) {
|
|
101
|
-
stylesheets.push(typeof key === 'string' ? {
|
|
102
|
-
[key]: {
|
|
103
|
-
...css
|
|
104
|
-
}
|
|
105
|
-
} : key);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
insertStyleSheet(getSelector(undefined, {
|
|
109
|
-
...rootCss
|
|
110
|
-
}), rootCss);
|
|
111
|
-
const {
|
|
112
|
-
[colorScheme]: defaultSchemeVal,
|
|
113
|
-
...other
|
|
114
|
-
} = colorSchemesMap;
|
|
115
|
-
if (defaultSchemeVal) {
|
|
116
|
-
// default color scheme has to come before other color schemes
|
|
117
|
-
const {
|
|
118
|
-
css
|
|
119
|
-
} = defaultSchemeVal;
|
|
120
|
-
const cssColorSheme = colorSchemes[colorScheme]?.palette?.mode;
|
|
121
|
-
const finalCss = !disableCssColorScheme && cssColorSheme ? {
|
|
122
|
-
colorScheme: cssColorSheme,
|
|
123
|
-
...css
|
|
124
|
-
} : {
|
|
125
|
-
...css
|
|
126
|
-
};
|
|
127
|
-
insertStyleSheet(getSelector(colorScheme, {
|
|
128
|
-
...finalCss
|
|
129
|
-
}), finalCss);
|
|
130
|
-
}
|
|
131
|
-
Object.entries(other).forEach(([key, {
|
|
132
|
-
css
|
|
133
|
-
}]) => {
|
|
134
|
-
const cssColorSheme = colorSchemes[key]?.palette?.mode;
|
|
135
|
-
const finalCss = !disableCssColorScheme && cssColorSheme ? {
|
|
136
|
-
colorScheme: cssColorSheme,
|
|
137
|
-
...css
|
|
138
|
-
} : {
|
|
139
|
-
...css
|
|
140
|
-
};
|
|
141
|
-
insertStyleSheet(getSelector(key, {
|
|
142
|
-
...finalCss
|
|
143
|
-
}), finalCss);
|
|
144
|
-
});
|
|
145
|
-
return stylesheets;
|
|
146
|
-
};
|
|
147
|
-
return {
|
|
148
|
-
vars: themeVars,
|
|
149
|
-
generateThemeVars,
|
|
150
|
-
generateStyleSheets
|
|
151
|
-
};
|
|
152
|
-
}
|
|
153
|
-
export default prepareCssVars;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
type RecordPropertyNames<T> = { [K in keyof T]: T[K] extends Function ? never : T[K] extends Record<string, any> ? K : never }[keyof T];
|
|
2
|
-
export type ExtractTypographyTokens<T> = { [K in RecordPropertyNames<T>]: string };
|
|
3
|
-
export default function prepareTypographyVars<T extends Record<string, any>>(typography: T): ExtractTypographyTokens<T>;
|
|
4
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export default function prepareTypographyVars(typography) {
|
|
2
|
-
const vars = {};
|
|
3
|
-
const entries = Object.entries(typography);
|
|
4
|
-
entries.forEach(entry => {
|
|
5
|
-
const [key, value] = entry;
|
|
6
|
-
if (typeof value === 'object') {
|
|
7
|
-
vars[key] = `${value.fontStyle ? `${value.fontStyle} ` : ''}${value.fontVariant ? `${value.fontVariant} ` : ''}${value.fontWeight ? `${value.fontWeight} ` : ''}${value.fontStretch ? `${value.fontStretch} ` : ''}${value.fontSize || ''}${value.lineHeight ? `/${value.lineHeight} ` : ''}${value.fontFamily || ''}`;
|
|
8
|
-
}
|
|
9
|
-
});
|
|
10
|
-
return vars;
|
|
11
|
-
}
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import type { StorageManager } from "./localStorageManager.js";
|
|
2
|
-
export type Mode = 'light' | 'dark' | 'system';
|
|
3
|
-
export type SystemMode = Exclude<Mode, 'system'>;
|
|
4
|
-
export interface State<SupportedColorScheme extends string> {
|
|
5
|
-
/**
|
|
6
|
-
* User selected mode.
|
|
7
|
-
* Note: on the server, mode is always undefined
|
|
8
|
-
*/
|
|
9
|
-
mode: 'light' | 'dark' | 'system' | undefined;
|
|
10
|
-
/**
|
|
11
|
-
* Only valid if `mode: 'system'`, either 'light' | 'dark'.
|
|
12
|
-
*/
|
|
13
|
-
systemMode: 'light' | 'dark' | undefined;
|
|
14
|
-
/**
|
|
15
|
-
* The color scheme for the light mode.
|
|
16
|
-
*/
|
|
17
|
-
lightColorScheme: SupportedColorScheme;
|
|
18
|
-
/**
|
|
19
|
-
* The color scheme for the dark mode.
|
|
20
|
-
*/
|
|
21
|
-
darkColorScheme: SupportedColorScheme;
|
|
22
|
-
}
|
|
23
|
-
export type Result<SupportedColorScheme extends string> = State<SupportedColorScheme> & {
|
|
24
|
-
/**
|
|
25
|
-
* The current application color scheme. It is always `undefined` on the server.
|
|
26
|
-
*/
|
|
27
|
-
colorScheme: SupportedColorScheme | undefined;
|
|
28
|
-
/**
|
|
29
|
-
* `mode` is saved to internal state and localStorage
|
|
30
|
-
* If `mode` is null, it will be reset to the defaultMode
|
|
31
|
-
*/
|
|
32
|
-
setMode: (mode: Mode | null) => void;
|
|
33
|
-
/**
|
|
34
|
-
* `colorScheme` is saved to internal state and localStorage
|
|
35
|
-
* If `colorScheme` is null, it will be reset to the defaultColorScheme (light | dark)
|
|
36
|
-
*/
|
|
37
|
-
setColorScheme: (colorScheme: SupportedColorScheme | Partial<{
|
|
38
|
-
light: SupportedColorScheme | null;
|
|
39
|
-
dark: SupportedColorScheme | null;
|
|
40
|
-
}> | null) => void;
|
|
41
|
-
};
|
|
42
|
-
export declare function getSystemMode(mode: undefined | string): SystemMode | undefined;
|
|
43
|
-
export declare function getColorScheme<SupportedColorScheme extends string>(state: State<SupportedColorScheme>): SupportedColorScheme | undefined;
|
|
44
|
-
interface UseCurrentColoSchemeOptions<SupportedColorScheme extends string> {
|
|
45
|
-
defaultLightColorScheme: SupportedColorScheme;
|
|
46
|
-
defaultDarkColorScheme: SupportedColorScheme;
|
|
47
|
-
supportedColorSchemes: Array<SupportedColorScheme>;
|
|
48
|
-
defaultMode?: Mode;
|
|
49
|
-
modeStorageKey?: string;
|
|
50
|
-
colorSchemeStorageKey?: string;
|
|
51
|
-
storageWindow?: Window | null;
|
|
52
|
-
storageManager?: StorageManager | null;
|
|
53
|
-
noSsr?: boolean;
|
|
54
|
-
}
|
|
55
|
-
export default function useCurrentColorScheme<SupportedColorScheme extends string>(options: UseCurrentColoSchemeOptions<SupportedColorScheme>): Result<SupportedColorScheme>;
|
|
56
|
-
export {};
|
|
@@ -1,228 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { DEFAULT_MODE_STORAGE_KEY, DEFAULT_COLOR_SCHEME_STORAGE_KEY } from "../InitColorSchemeScript/InitColorSchemeScript.js";
|
|
5
|
-
import localStorageManager from "./localStorageManager.js";
|
|
6
|
-
function noop() {}
|
|
7
|
-
export function getSystemMode(mode) {
|
|
8
|
-
if (typeof window !== 'undefined' && typeof window.matchMedia === 'function' && mode === 'system') {
|
|
9
|
-
const mql = window.matchMedia('(prefers-color-scheme: dark)');
|
|
10
|
-
if (mql.matches) {
|
|
11
|
-
return 'dark';
|
|
12
|
-
}
|
|
13
|
-
return 'light';
|
|
14
|
-
}
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
function processState(state, callback) {
|
|
18
|
-
if (state.mode === 'light' || state.mode === 'system' && state.systemMode === 'light') {
|
|
19
|
-
return callback('light');
|
|
20
|
-
}
|
|
21
|
-
if (state.mode === 'dark' || state.mode === 'system' && state.systemMode === 'dark') {
|
|
22
|
-
return callback('dark');
|
|
23
|
-
}
|
|
24
|
-
return undefined;
|
|
25
|
-
}
|
|
26
|
-
export function getColorScheme(state) {
|
|
27
|
-
return processState(state, mode => {
|
|
28
|
-
if (mode === 'light') {
|
|
29
|
-
return state.lightColorScheme;
|
|
30
|
-
}
|
|
31
|
-
if (mode === 'dark') {
|
|
32
|
-
return state.darkColorScheme;
|
|
33
|
-
}
|
|
34
|
-
return undefined;
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
export default function useCurrentColorScheme(options) {
|
|
38
|
-
const {
|
|
39
|
-
defaultMode = 'light',
|
|
40
|
-
defaultLightColorScheme,
|
|
41
|
-
defaultDarkColorScheme,
|
|
42
|
-
supportedColorSchemes = [],
|
|
43
|
-
modeStorageKey = DEFAULT_MODE_STORAGE_KEY,
|
|
44
|
-
colorSchemeStorageKey = DEFAULT_COLOR_SCHEME_STORAGE_KEY,
|
|
45
|
-
storageWindow = typeof window === 'undefined' ? undefined : window,
|
|
46
|
-
storageManager = localStorageManager,
|
|
47
|
-
noSsr = false
|
|
48
|
-
} = options;
|
|
49
|
-
const joinedColorSchemes = supportedColorSchemes.join(',');
|
|
50
|
-
const isMultiSchemes = supportedColorSchemes.length > 1;
|
|
51
|
-
const modeStorage = React.useMemo(() => storageManager?.({
|
|
52
|
-
key: modeStorageKey,
|
|
53
|
-
storageWindow
|
|
54
|
-
}), [storageManager, modeStorageKey, storageWindow]);
|
|
55
|
-
const lightStorage = React.useMemo(() => storageManager?.({
|
|
56
|
-
key: `${colorSchemeStorageKey}-light`,
|
|
57
|
-
storageWindow
|
|
58
|
-
}), [storageManager, colorSchemeStorageKey, storageWindow]);
|
|
59
|
-
const darkStorage = React.useMemo(() => storageManager?.({
|
|
60
|
-
key: `${colorSchemeStorageKey}-dark`,
|
|
61
|
-
storageWindow
|
|
62
|
-
}), [storageManager, colorSchemeStorageKey, storageWindow]);
|
|
63
|
-
const [state, setState] = React.useState(() => {
|
|
64
|
-
const initialMode = modeStorage?.get(defaultMode) || defaultMode;
|
|
65
|
-
const lightColorScheme = lightStorage?.get(defaultLightColorScheme) || defaultLightColorScheme;
|
|
66
|
-
const darkColorScheme = darkStorage?.get(defaultDarkColorScheme) || defaultDarkColorScheme;
|
|
67
|
-
return {
|
|
68
|
-
mode: initialMode,
|
|
69
|
-
systemMode: getSystemMode(initialMode),
|
|
70
|
-
lightColorScheme,
|
|
71
|
-
darkColorScheme
|
|
72
|
-
};
|
|
73
|
-
});
|
|
74
|
-
const [isClient, setIsClient] = React.useState(noSsr || !isMultiSchemes);
|
|
75
|
-
React.useEffect(() => {
|
|
76
|
-
setIsClient(true); // to rerender the component after hydration
|
|
77
|
-
}, []);
|
|
78
|
-
const colorScheme = getColorScheme(state);
|
|
79
|
-
const setMode = React.useCallback(mode => {
|
|
80
|
-
setState(currentState => {
|
|
81
|
-
if (mode === currentState.mode) {
|
|
82
|
-
// do nothing if mode does not change
|
|
83
|
-
return currentState;
|
|
84
|
-
}
|
|
85
|
-
const newMode = mode ?? defaultMode;
|
|
86
|
-
modeStorage?.set(newMode);
|
|
87
|
-
return {
|
|
88
|
-
...currentState,
|
|
89
|
-
mode: newMode,
|
|
90
|
-
systemMode: getSystemMode(newMode)
|
|
91
|
-
};
|
|
92
|
-
});
|
|
93
|
-
}, [modeStorage, defaultMode]);
|
|
94
|
-
const setColorScheme = React.useCallback(value => {
|
|
95
|
-
if (!value) {
|
|
96
|
-
setState(currentState => {
|
|
97
|
-
lightStorage?.set(defaultLightColorScheme);
|
|
98
|
-
darkStorage?.set(defaultDarkColorScheme);
|
|
99
|
-
return {
|
|
100
|
-
...currentState,
|
|
101
|
-
lightColorScheme: defaultLightColorScheme,
|
|
102
|
-
darkColorScheme: defaultDarkColorScheme
|
|
103
|
-
};
|
|
104
|
-
});
|
|
105
|
-
} else if (typeof value === 'string') {
|
|
106
|
-
if (value && !joinedColorSchemes.includes(value)) {
|
|
107
|
-
console.error(`\`${value}\` does not exist in \`theme.colorSchemes\`.`);
|
|
108
|
-
} else {
|
|
109
|
-
setState(currentState => {
|
|
110
|
-
const newState = {
|
|
111
|
-
...currentState
|
|
112
|
-
};
|
|
113
|
-
processState(currentState, mode => {
|
|
114
|
-
if (mode === 'light') {
|
|
115
|
-
lightStorage?.set(value);
|
|
116
|
-
newState.lightColorScheme = value;
|
|
117
|
-
}
|
|
118
|
-
if (mode === 'dark') {
|
|
119
|
-
darkStorage?.set(value);
|
|
120
|
-
newState.darkColorScheme = value;
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
return newState;
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
} else {
|
|
127
|
-
setState(currentState => {
|
|
128
|
-
const newState = {
|
|
129
|
-
...currentState
|
|
130
|
-
};
|
|
131
|
-
const newLightColorScheme = value.light === null ? defaultLightColorScheme : value.light;
|
|
132
|
-
const newDarkColorScheme = value.dark === null ? defaultDarkColorScheme : value.dark;
|
|
133
|
-
if (newLightColorScheme) {
|
|
134
|
-
if (!joinedColorSchemes.includes(newLightColorScheme)) {
|
|
135
|
-
console.error(`\`${newLightColorScheme}\` does not exist in \`theme.colorSchemes\`.`);
|
|
136
|
-
} else {
|
|
137
|
-
newState.lightColorScheme = newLightColorScheme;
|
|
138
|
-
lightStorage?.set(newLightColorScheme);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
if (newDarkColorScheme) {
|
|
142
|
-
if (!joinedColorSchemes.includes(newDarkColorScheme)) {
|
|
143
|
-
console.error(`\`${newDarkColorScheme}\` does not exist in \`theme.colorSchemes\`.`);
|
|
144
|
-
} else {
|
|
145
|
-
newState.darkColorScheme = newDarkColorScheme;
|
|
146
|
-
darkStorage?.set(newDarkColorScheme);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
return newState;
|
|
150
|
-
});
|
|
151
|
-
}
|
|
152
|
-
}, [joinedColorSchemes, lightStorage, darkStorage, defaultLightColorScheme, defaultDarkColorScheme]);
|
|
153
|
-
const handleMediaQuery = React.useCallback(event => {
|
|
154
|
-
if (state.mode === 'system') {
|
|
155
|
-
setState(currentState => {
|
|
156
|
-
const systemMode = event?.matches ? 'dark' : 'light';
|
|
157
|
-
|
|
158
|
-
// Early exit, nothing changed.
|
|
159
|
-
if (currentState.systemMode === systemMode) {
|
|
160
|
-
return currentState;
|
|
161
|
-
}
|
|
162
|
-
return {
|
|
163
|
-
...currentState,
|
|
164
|
-
systemMode
|
|
165
|
-
};
|
|
166
|
-
});
|
|
167
|
-
}
|
|
168
|
-
}, [state.mode]);
|
|
169
|
-
|
|
170
|
-
// Ref hack to avoid adding handleMediaQuery as a dep
|
|
171
|
-
const mediaListener = React.useRef(handleMediaQuery);
|
|
172
|
-
mediaListener.current = handleMediaQuery;
|
|
173
|
-
React.useEffect(() => {
|
|
174
|
-
if (typeof window.matchMedia !== 'function' || !isMultiSchemes) {
|
|
175
|
-
return undefined;
|
|
176
|
-
}
|
|
177
|
-
const handler = (...args) => mediaListener.current(...args);
|
|
178
|
-
|
|
179
|
-
// Always listen to System preference
|
|
180
|
-
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
|
181
|
-
|
|
182
|
-
// Intentionally use deprecated listener methods to support iOS & old browsers
|
|
183
|
-
media.addListener(handler);
|
|
184
|
-
handler(media);
|
|
185
|
-
return () => {
|
|
186
|
-
media.removeListener(handler);
|
|
187
|
-
};
|
|
188
|
-
}, [isMultiSchemes]);
|
|
189
|
-
|
|
190
|
-
// Handle when localStorage has changed
|
|
191
|
-
React.useEffect(() => {
|
|
192
|
-
if (isMultiSchemes) {
|
|
193
|
-
const unsubscribeMode = modeStorage?.subscribe(value => {
|
|
194
|
-
if (!value || ['light', 'dark', 'system'].includes(value)) {
|
|
195
|
-
setMode(value || defaultMode);
|
|
196
|
-
}
|
|
197
|
-
}) || noop;
|
|
198
|
-
const unsubscribeLight = lightStorage?.subscribe(value => {
|
|
199
|
-
if (!value || joinedColorSchemes.match(value)) {
|
|
200
|
-
setColorScheme({
|
|
201
|
-
light: value
|
|
202
|
-
});
|
|
203
|
-
}
|
|
204
|
-
}) || noop;
|
|
205
|
-
const unsubscribeDark = darkStorage?.subscribe(value => {
|
|
206
|
-
if (!value || joinedColorSchemes.match(value)) {
|
|
207
|
-
setColorScheme({
|
|
208
|
-
dark: value
|
|
209
|
-
});
|
|
210
|
-
}
|
|
211
|
-
}) || noop;
|
|
212
|
-
return () => {
|
|
213
|
-
unsubscribeMode();
|
|
214
|
-
unsubscribeLight();
|
|
215
|
-
unsubscribeDark();
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
return undefined;
|
|
219
|
-
}, [setColorScheme, setMode, joinedColorSchemes, defaultMode, storageWindow, isMultiSchemes, modeStorage, lightStorage, darkStorage]);
|
|
220
|
-
return {
|
|
221
|
-
...state,
|
|
222
|
-
mode: isClient ? state.mode : undefined,
|
|
223
|
-
systemMode: isClient ? state.systemMode : undefined,
|
|
224
|
-
colorScheme: isClient ? colorScheme : undefined,
|
|
225
|
-
setMode,
|
|
226
|
-
setColorScheme
|
|
227
|
-
};
|
|
228
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import style from "../style/index.js";
|
|
2
|
-
import compose from "../compose/index.js";
|
|
3
|
-
export const displayPrint = style({
|
|
4
|
-
prop: 'displayPrint',
|
|
5
|
-
cssProperty: false,
|
|
6
|
-
transform: value => ({
|
|
7
|
-
'@media print': {
|
|
8
|
-
display: value
|
|
9
|
-
}
|
|
10
|
-
})
|
|
11
|
-
});
|
|
12
|
-
export const displayRaw = style({
|
|
13
|
-
prop: 'display'
|
|
14
|
-
});
|
|
15
|
-
export const overflow = style({
|
|
16
|
-
prop: 'overflow'
|
|
17
|
-
});
|
|
18
|
-
export const textOverflow = style({
|
|
19
|
-
prop: 'textOverflow'
|
|
20
|
-
});
|
|
21
|
-
export const visibility = style({
|
|
22
|
-
prop: 'visibility'
|
|
23
|
-
});
|
|
24
|
-
export const whiteSpace = style({
|
|
25
|
-
prop: 'whiteSpace'
|
|
26
|
-
});
|
|
27
|
-
export default compose(displayPrint, displayRaw, overflow, textOverflow, visibility, whiteSpace);
|
package/modern/display/index.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import style from "../style/index.js";
|
|
2
|
-
import compose from "../compose/index.js";
|
|
3
|
-
export const flexBasis = style({
|
|
4
|
-
prop: 'flexBasis'
|
|
5
|
-
});
|
|
6
|
-
export const flexDirection = style({
|
|
7
|
-
prop: 'flexDirection'
|
|
8
|
-
});
|
|
9
|
-
export const flexWrap = style({
|
|
10
|
-
prop: 'flexWrap'
|
|
11
|
-
});
|
|
12
|
-
export const justifyContent = style({
|
|
13
|
-
prop: 'justifyContent'
|
|
14
|
-
});
|
|
15
|
-
export const alignItems = style({
|
|
16
|
-
prop: 'alignItems'
|
|
17
|
-
});
|
|
18
|
-
export const alignContent = style({
|
|
19
|
-
prop: 'alignContent'
|
|
20
|
-
});
|
|
21
|
-
export const order = style({
|
|
22
|
-
prop: 'order'
|
|
23
|
-
});
|
|
24
|
-
export const flex = style({
|
|
25
|
-
prop: 'flex'
|
|
26
|
-
});
|
|
27
|
-
export const flexGrow = style({
|
|
28
|
-
prop: 'flexGrow'
|
|
29
|
-
});
|
|
30
|
-
export const flexShrink = style({
|
|
31
|
-
prop: 'flexShrink'
|
|
32
|
-
});
|
|
33
|
-
export const alignSelf = style({
|
|
34
|
-
prop: 'alignSelf'
|
|
35
|
-
});
|
|
36
|
-
export const justifyItems = style({
|
|
37
|
-
prop: 'justifyItems'
|
|
38
|
-
});
|
|
39
|
-
export const justifySelf = style({
|
|
40
|
-
prop: 'justifySelf'
|
|
41
|
-
});
|
|
42
|
-
const flexbox = compose(flexBasis, flexDirection, flexWrap, justifyContent, alignItems, alignContent, order, flex, flexGrow, flexShrink, alignSelf, justifyItems, justifySelf);
|
|
43
|
-
export default flexbox;
|
package/modern/flexbox/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function getThemeValue(prop: string, value: any, theme: object): any;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import borders from "../borders/index.js";
|
|
2
|
-
import display from "../display/index.js";
|
|
3
|
-
import flexbox from "../flexbox/index.js";
|
|
4
|
-
import grid from "../cssGrid/index.js";
|
|
5
|
-
import positions from "../positions/index.js";
|
|
6
|
-
import palette from "../palette/index.js";
|
|
7
|
-
import shadows from "../shadows/index.js";
|
|
8
|
-
import sizing from "../sizing/index.js";
|
|
9
|
-
import spacing from "../spacing/index.js";
|
|
10
|
-
import typography from "../typography/index.js";
|
|
11
|
-
const filterPropsMapping = {
|
|
12
|
-
borders: borders.filterProps,
|
|
13
|
-
display: display.filterProps,
|
|
14
|
-
flexbox: flexbox.filterProps,
|
|
15
|
-
grid: grid.filterProps,
|
|
16
|
-
positions: positions.filterProps,
|
|
17
|
-
palette: palette.filterProps,
|
|
18
|
-
shadows: shadows.filterProps,
|
|
19
|
-
sizing: sizing.filterProps,
|
|
20
|
-
spacing: spacing.filterProps,
|
|
21
|
-
typography: typography.filterProps
|
|
22
|
-
};
|
|
23
|
-
export const styleFunctionMapping = {
|
|
24
|
-
borders,
|
|
25
|
-
display,
|
|
26
|
-
flexbox,
|
|
27
|
-
grid,
|
|
28
|
-
positions,
|
|
29
|
-
palette,
|
|
30
|
-
shadows,
|
|
31
|
-
sizing,
|
|
32
|
-
spacing,
|
|
33
|
-
typography
|
|
34
|
-
};
|
|
35
|
-
export const propToStyleFunction = Object.keys(filterPropsMapping).reduce((acc, styleFnName) => {
|
|
36
|
-
filterPropsMapping[styleFnName].forEach(propName => {
|
|
37
|
-
acc[propName] = styleFunctionMapping[styleFnName];
|
|
38
|
-
});
|
|
39
|
-
return acc;
|
|
40
|
-
}, {});
|
|
41
|
-
function getThemeValue(prop, value, theme) {
|
|
42
|
-
const inputProps = {
|
|
43
|
-
[prop]: value,
|
|
44
|
-
theme
|
|
45
|
-
};
|
|
46
|
-
const styleFunction = propToStyleFunction[prop];
|
|
47
|
-
return styleFunction ? styleFunction(inputProps) : {
|
|
48
|
-
[prop]: value
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
export default getThemeValue;
|