@mui/system 6.1.1 → 6.1.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/Box/Box.js +17 -11
- package/Box/boxClasses.js +10 -3
- package/Box/index.js +35 -3
- package/Box/package.json +2 -2
- package/CHANGELOG.md +136 -0
- package/Container/Container.js +17 -12
- package/Container/ContainerProps.js +5 -1
- package/Container/containerClasses.js +14 -6
- package/Container/createContainer.js +36 -28
- package/Container/index.js +35 -3
- package/Container/package.json +2 -2
- package/DefaultPropsProvider/DefaultPropsProvider.js +19 -11
- package/DefaultPropsProvider/index.js +19 -1
- package/DefaultPropsProvider/package.json +2 -2
- package/GlobalStyles/GlobalStyles.js +18 -11
- package/GlobalStyles/index.js +25 -2
- package/GlobalStyles/package.json +2 -2
- package/Grid/Grid.js +38 -27
- package/Grid/GridProps.d.ts +16 -11
- package/Grid/GridProps.js +5 -1
- package/Grid/createGrid.js +46 -38
- package/Grid/gridClasses.js +14 -6
- package/Grid/gridGenerator.d.ts +3 -7
- package/Grid/gridGenerator.js +62 -69
- package/Grid/index.js +63 -6
- package/Grid/package.json +2 -2
- package/Grid/traverseBreakpoints.js +11 -3
- package/InitColorSchemeScript/InitColorSchemeScript.js +16 -7
- package/InitColorSchemeScript/index.js +13 -1
- package/InitColorSchemeScript/package.json +2 -2
- package/RtlProvider/index.js +17 -8
- package/RtlProvider/package.json +2 -2
- package/Stack/Stack.js +17 -11
- package/Stack/StackProps.js +5 -1
- package/Stack/createStack.js +46 -36
- package/Stack/index.js +55 -5
- package/Stack/package.json +2 -2
- package/Stack/stackClasses.js +14 -6
- package/ThemeProvider/ThemeProvider.js +27 -20
- package/ThemeProvider/index.js +13 -1
- package/ThemeProvider/package.json +2 -2
- package/borders/borders.js +36 -26
- package/borders/index.js +25 -2
- package/borders/package.json +2 -2
- package/breakpoints/breakpoints.js +34 -21
- package/breakpoints/index.js +25 -2
- package/breakpoints/package.json +2 -2
- package/colorManipulator/colorManipulator.js +50 -25
- package/colorManipulator/index.js +16 -1
- package/colorManipulator/package.json +2 -2
- package/compose/compose.js +10 -3
- package/compose/index.js +13 -1
- package/compose/package.json +2 -2
- package/createBox/createBox.js +20 -13
- package/createBox/index.js +13 -1
- package/createBox/package.json +2 -2
- package/createBreakpoints/createBreakpoints.js +9 -2
- package/createBreakpoints/index.js +13 -3
- package/createBreakpoints/package.json +2 -2
- package/createStyled/createStyled.js +161 -117
- package/createStyled/index.js +25 -2
- package/createStyled/package.json +2 -2
- package/createTheme/applyStyles.js +7 -1
- package/createTheme/createSpacing.js +8 -3
- package/createTheme/createTheme.d.ts +16 -10
- package/createTheme/createTheme.js +25 -18
- package/createTheme/index.js +27 -3
- package/createTheme/package.json +2 -2
- package/createTheme/shape.js +7 -1
- package/cssContainerQueries/cssContainerQueries.js +16 -7
- package/cssContainerQueries/index.js +31 -2
- package/cssContainerQueries/package.json +2 -2
- package/cssGrid/cssGrid.js +40 -31
- package/cssGrid/index.js +25 -2
- package/cssGrid/package.json +2 -2
- package/cssVars/createCssVarsProvider.d.ts +7 -1
- package/cssVars/createCssVarsProvider.js +46 -31
- package/cssVars/createCssVarsTheme.js +14 -7
- package/cssVars/createGetCssVar.js +7 -1
- package/cssVars/cssVarsParser.js +13 -3
- package/cssVars/getColorSchemeSelector.js +7 -1
- package/cssVars/index.js +41 -5
- package/cssVars/package.json +2 -2
- package/cssVars/prepareCssVars.js +16 -9
- package/cssVars/prepareTypographyVars.js +7 -1
- package/cssVars/useCurrentColorScheme.js +19 -11
- package/display/display.js +16 -9
- package/display/index.js +25 -2
- package/display/package.json +2 -2
- package/esm/Box/Box.js +30 -0
- package/esm/Box/boxClasses.js +3 -0
- package/esm/Box/index.js +3 -0
- package/{node → esm}/Container/Container.js +12 -17
- package/esm/Container/ContainerProps.js +1 -0
- package/esm/Container/containerClasses.js +7 -0
- package/{node → esm}/Container/createContainer.js +28 -36
- package/esm/Container/index.js +3 -0
- package/{node → esm}/DefaultPropsProvider/DefaultPropsProvider.js +11 -19
- package/esm/DefaultPropsProvider/index.js +1 -0
- package/esm/GlobalStyles/GlobalStyles.js +37 -0
- package/esm/GlobalStyles/index.js +2 -0
- package/esm/Grid/Grid.js +106 -0
- package/esm/Grid/GridProps.js +1 -0
- package/esm/Grid/createGrid.js +148 -0
- package/{node → esm}/Grid/gridClasses.js +6 -14
- package/esm/Grid/gridGenerator.js +193 -0
- package/esm/Grid/index.js +6 -0
- package/{node → esm}/Grid/traverseBreakpoints.js +3 -11
- package/{node → esm}/InitColorSchemeScript/InitColorSchemeScript.js +7 -16
- package/esm/InitColorSchemeScript/index.js +1 -0
- package/esm/RtlProvider/index.js +22 -0
- package/{node → esm}/Stack/Stack.js +11 -17
- package/esm/Stack/StackProps.js +1 -0
- package/{node → esm}/Stack/createStack.js +36 -46
- package/esm/Stack/index.js +5 -0
- package/esm/Stack/stackClasses.js +7 -0
- package/{node → esm}/ThemeProvider/ThemeProvider.js +20 -27
- package/esm/ThemeProvider/index.js +1 -0
- package/esm/borders/borders.js +49 -0
- package/esm/borders/index.js +2 -0
- package/{node → esm}/breakpoints/breakpoints.js +21 -34
- package/esm/breakpoints/index.js +2 -0
- package/{node → esm}/colorManipulator/colorManipulator.js +23 -51
- package/esm/colorManipulator/index.js +1 -0
- package/{node → esm}/compose/compose.js +3 -10
- package/esm/compose/index.js +1 -0
- package/esm/createBox/createBox.js +35 -0
- package/esm/createBox/index.js +1 -0
- package/{node → esm}/createBreakpoints/createBreakpoints.js +2 -9
- package/esm/createBreakpoints/index.js +3 -0
- package/esm/createStyled/createStyled.js +276 -0
- package/esm/createStyled/index.js +2 -0
- package/{node → esm}/createTheme/applyStyles.js +1 -7
- package/{node → esm}/createTheme/createSpacing.js +3 -8
- package/esm/createTheme/createTheme.js +49 -0
- package/esm/createTheme/index.js +3 -0
- package/esm/createTheme/shape.js +4 -0
- package/{node → esm}/cssContainerQueries/cssContainerQueries.js +6 -17
- package/esm/cssContainerQueries/index.js +2 -0
- package/esm/cssGrid/cssGrid.js +85 -0
- package/esm/cssGrid/index.js +2 -0
- package/{node → esm}/cssVars/createCssVarsProvider.js +37 -40
- package/esm/cssVars/createCssVarsTheme.js +21 -0
- package/{node → esm}/cssVars/createGetCssVar.js +1 -7
- package/{node → esm}/cssVars/cssVarsParser.js +3 -13
- package/{node → esm}/cssVars/getColorSchemeSelector.js +1 -7
- package/esm/cssVars/index.js +5 -0
- package/{node → esm}/cssVars/prepareCssVars.js +9 -16
- package/{node → esm}/cssVars/prepareTypographyVars.js +1 -7
- package/{node → esm}/cssVars/useCurrentColorScheme.js +11 -19
- package/esm/display/display.js +27 -0
- package/esm/display/index.js +2 -0
- package/esm/flexbox/flexbox.js +43 -0
- package/esm/flexbox/index.js +2 -0
- package/esm/getThemeValue/getThemeValue.js +51 -0
- package/esm/getThemeValue/index.js +2 -0
- package/esm/index.js +68 -0
- package/esm/memoTheme.js +28 -0
- package/esm/memoize/index.js +1 -0
- package/{node → esm}/memoize/memoize.js +1 -7
- package/esm/merge/index.js +1 -0
- package/esm/merge/merge.js +10 -0
- package/esm/palette/index.js +2 -0
- package/esm/palette/palette.js +26 -0
- package/esm/positions/index.js +2 -0
- package/esm/positions/positions.js +22 -0
- package/esm/preprocessStyles.js +25 -0
- package/esm/propsToClassKey/index.js +1 -0
- package/esm/propsToClassKey/propsToClassKey.js +25 -0
- package/esm/responsivePropType/index.js +1 -0
- package/esm/responsivePropType/responsivePropType.js +3 -0
- package/esm/shadows/index.js +1 -0
- package/esm/shadows/shadows.js +6 -0
- package/esm/sizing/index.js +2 -0
- package/esm/sizing/sizing.js +64 -0
- package/esm/spacing/index.js +2 -0
- package/{node → esm}/spacing/spacing.js +21 -36
- package/esm/style/index.js +2 -0
- package/{node → esm}/style/style.js +9 -18
- package/{node → esm}/styleFunctionSx/defaultSxConfig.js +65 -71
- package/{node → esm}/styleFunctionSx/extendSxProp.js +5 -12
- package/esm/styleFunctionSx/index.js +4 -0
- package/{node → esm}/styleFunctionSx/styleFunctionSx.js +19 -27
- package/esm/styled/index.js +1 -0
- package/esm/styled/styled.js +3 -0
- package/esm/typography/index.js +2 -0
- package/esm/typography/typography.js +37 -0
- package/esm/useMediaQuery/index.js +2 -0
- package/{node → esm}/useMediaQuery/useMediaQuery.js +8 -15
- package/esm/useTheme/index.js +2 -0
- package/esm/useTheme/useTheme.js +9 -0
- package/esm/useThemeProps/getThemeProps.js +12 -0
- package/esm/useThemeProps/index.js +2 -0
- package/esm/useThemeProps/useThemeProps.js +20 -0
- package/esm/useThemeWithoutDefault/index.js +1 -0
- package/esm/useThemeWithoutDefault/useThemeWithoutDefault.js +12 -0
- package/esm/version/index.js +6 -0
- package/flexbox/flexbox.js +24 -17
- package/flexbox/index.js +25 -2
- package/flexbox/package.json +2 -2
- package/getThemeValue/getThemeValue.js +40 -33
- package/getThemeValue/index.js +25 -2
- package/getThemeValue/package.json +2 -2
- package/index.d.ts +2 -0
- package/index.js +606 -63
- package/memoTheme.d.ts +12 -0
- package/memoTheme.js +34 -0
- package/memoize/index.js +13 -1
- package/memoize/memoize.js +7 -1
- package/memoize/package.json +2 -2
- package/merge/index.js +13 -1
- package/merge/merge.js +10 -3
- package/merge/package.json +2 -2
- package/modern/Grid/Grid.js +16 -11
- package/modern/Grid/createGrid.js +1 -1
- package/modern/Grid/gridGenerator.js +28 -51
- package/modern/colorManipulator/colorManipulator.js +3 -4
- package/modern/createStyled/createStyled.js +144 -109
- package/modern/cssContainerQueries/cssContainerQueries.js +1 -2
- package/modern/cssVars/createCssVarsProvider.js +8 -2
- package/modern/cssVars/useCurrentColorScheme.js +4 -4
- package/modern/index.js +3 -2
- package/modern/memoTheme.js +28 -0
- package/modern/preprocessStyles.js +25 -0
- package/modern/version/index.js +2 -2
- package/package.json +7 -7
- package/palette/index.js +25 -2
- package/palette/package.json +2 -2
- package/palette/palette.js +16 -8
- package/positions/index.js +25 -2
- package/positions/package.json +2 -2
- package/positions/positions.js +16 -9
- package/preprocessStyles.d.ts +5 -0
- package/preprocessStyles.js +31 -0
- package/propsToClassKey/index.js +13 -1
- package/propsToClassKey/package.json +2 -2
- package/propsToClassKey/propsToClassKey.js +11 -4
- package/responsivePropType/index.js +13 -1
- package/responsivePropType/package.json +2 -2
- package/responsivePropType/responsivePropType.js +10 -3
- package/shadows/index.js +13 -1
- package/shadows/package.json +2 -2
- package/shadows/shadows.js +10 -3
- package/sizing/index.js +25 -2
- package/sizing/package.json +2 -2
- package/sizing/sizing.js +27 -17
- package/spacing/index.js +25 -2
- package/spacing/package.json +2 -2
- package/spacing/spacing.js +36 -21
- package/style/index.js +25 -2
- package/style/package.json +2 -2
- package/style/style.js +18 -9
- package/styleFunctionSx/defaultSxConfig.js +71 -65
- package/styleFunctionSx/extendSxProp.js +12 -5
- package/styleFunctionSx/index.js +34 -4
- package/styleFunctionSx/package.json +2 -2
- package/styleFunctionSx/styleFunctionSx.d.ts +1 -1
- package/styleFunctionSx/styleFunctionSx.js +27 -19
- package/styled/index.js +13 -1
- package/styled/package.json +2 -2
- package/styled/styled.js +10 -3
- package/typography/index.js +25 -2
- package/typography/package.json +2 -2
- package/typography/typography.js +20 -13
- package/useMediaQuery/index.js +25 -2
- package/useMediaQuery/package.json +2 -2
- package/useMediaQuery/useMediaQuery.js +15 -8
- package/useTheme/index.js +25 -2
- package/useTheme/package.json +2 -2
- package/useTheme/useTheme.js +11 -5
- package/useThemeProps/getThemeProps.js +10 -3
- package/useThemeProps/index.js +20 -2
- package/useThemeProps/package.json +2 -2
- package/useThemeProps/useThemeProps.js +11 -5
- package/useThemeWithoutDefault/index.js +13 -1
- package/useThemeWithoutDefault/package.json +2 -2
- package/useThemeWithoutDefault/useThemeWithoutDefault.js +10 -4
- package/version/index.js +12 -6
- package/version/package.json +2 -2
- package/node/Box/Box.js +0 -36
- package/node/Box/boxClasses.js +0 -10
- package/node/Box/index.js +0 -35
- package/node/Container/ContainerProps.js +0 -5
- package/node/Container/containerClasses.js +0 -15
- package/node/Container/index.js +0 -35
- package/node/DefaultPropsProvider/index.js +0 -19
- package/node/GlobalStyles/GlobalStyles.js +0 -44
- package/node/GlobalStyles/index.js +0 -25
- package/node/Grid/Grid.js +0 -107
- package/node/Grid/GridProps.js +0 -5
- package/node/Grid/createGrid.js +0 -156
- package/node/Grid/gridGenerator.js +0 -232
- package/node/Grid/index.js +0 -63
- package/node/InitColorSchemeScript/index.js +0 -13
- package/node/RtlProvider/index.js +0 -31
- package/node/Stack/StackProps.js +0 -5
- package/node/Stack/index.js +0 -55
- package/node/Stack/stackClasses.js +0 -15
- package/node/ThemeProvider/index.js +0 -13
- package/node/borders/borders.js +0 -59
- package/node/borders/index.js +0 -25
- package/node/breakpoints/index.js +0 -25
- package/node/colorManipulator/index.js +0 -16
- package/node/compose/index.js +0 -13
- package/node/createBox/createBox.js +0 -42
- package/node/createBox/index.js +0 -13
- package/node/createBreakpoints/index.js +0 -13
- package/node/createStyled/createStyled.js +0 -252
- package/node/createStyled/index.js +0 -25
- package/node/createTheme/createTheme.js +0 -56
- package/node/createTheme/index.js +0 -27
- package/node/createTheme/shape.js +0 -10
- package/node/cssContainerQueries/index.js +0 -31
- package/node/cssGrid/cssGrid.js +0 -94
- package/node/cssGrid/index.js +0 -25
- package/node/cssVars/createCssVarsTheme.js +0 -28
- package/node/cssVars/index.js +0 -41
- package/node/display/display.js +0 -34
- package/node/display/index.js +0 -25
- package/node/flexbox/flexbox.js +0 -50
- package/node/flexbox/index.js +0 -25
- package/node/getThemeValue/getThemeValue.js +0 -58
- package/node/getThemeValue/index.js +0 -25
- package/node/index.js +0 -609
- package/node/memoize/index.js +0 -13
- package/node/merge/index.js +0 -13
- package/node/merge/merge.js +0 -17
- package/node/palette/index.js +0 -25
- package/node/palette/palette.js +0 -34
- package/node/positions/index.js +0 -25
- package/node/positions/positions.js +0 -29
- package/node/propsToClassKey/index.js +0 -13
- package/node/propsToClassKey/propsToClassKey.js +0 -32
- package/node/responsivePropType/index.js +0 -13
- package/node/responsivePropType/responsivePropType.js +0 -10
- package/node/shadows/index.js +0 -13
- package/node/shadows/shadows.js +0 -13
- package/node/sizing/index.js +0 -25
- package/node/sizing/sizing.js +0 -74
- package/node/spacing/index.js +0 -25
- package/node/style/index.js +0 -25
- package/node/styleFunctionSx/index.js +0 -34
- package/node/styled/index.js +0 -13
- package/node/styled/styled.js +0 -10
- package/node/typography/index.js +0 -25
- package/node/typography/typography.js +0 -44
- package/node/useMediaQuery/index.js +0 -25
- package/node/useTheme/index.js +0 -25
- package/node/useTheme/useTheme.js +0 -15
- package/node/useThemeProps/getThemeProps.js +0 -19
- package/node/useThemeProps/index.js +0 -20
- package/node/useThemeProps/useThemeProps.js +0 -26
- package/node/useThemeWithoutDefault/index.js +0 -13
- package/node/useThemeWithoutDefault/useThemeWithoutDefault.js +0 -18
- package/node/version/index.js +0 -12
|
@@ -1,104 +1,119 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = createStyled;
|
|
9
|
+
exports.shouldForwardProp = shouldForwardProp;
|
|
10
|
+
exports.systemDefaultTheme = void 0;
|
|
11
|
+
var _styledEngine = _interopRequireWildcard(require("@mui/styled-engine"));
|
|
12
|
+
var _deepmerge = require("@mui/utils/deepmerge");
|
|
13
|
+
var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
|
|
14
|
+
var _getDisplayName = _interopRequireDefault(require("@mui/utils/getDisplayName"));
|
|
15
|
+
var _createTheme = _interopRequireDefault(require("../createTheme"));
|
|
16
|
+
var _styleFunctionSx = _interopRequireDefault(require("../styleFunctionSx"));
|
|
17
|
+
var _preprocessStyles = _interopRequireDefault(require("../preprocessStyles"));
|
|
1
18
|
/* eslint-disable no-underscore-dangle */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
import createTheme from "../createTheme/index.js";
|
|
7
|
-
import styleFunctionSx from "../styleFunctionSx/index.js";
|
|
8
|
-
export const systemDefaultTheme = createTheme();
|
|
19
|
+
/* eslint-disable no-labels */
|
|
20
|
+
/* eslint-disable no-lone-blocks */
|
|
21
|
+
|
|
22
|
+
const systemDefaultTheme = exports.systemDefaultTheme = (0, _createTheme.default)();
|
|
9
23
|
|
|
10
24
|
// Update /system/styled/#api in case if this changes
|
|
11
|
-
|
|
25
|
+
function shouldForwardProp(prop) {
|
|
12
26
|
return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';
|
|
13
27
|
}
|
|
14
|
-
function resolveTheme(themeId, theme, defaultTheme) {
|
|
15
|
-
return isObjectEmpty(theme) ? defaultTheme : theme[themeId] || theme;
|
|
16
|
-
}
|
|
17
|
-
const PROCESSED_PROPS = Symbol('mui.processed_props');
|
|
18
|
-
function attachTheme(props, themeId, defaultTheme) {
|
|
19
|
-
if (PROCESSED_PROPS in props) {
|
|
20
|
-
return props[PROCESSED_PROPS];
|
|
21
|
-
}
|
|
22
|
-
const processedProps = {
|
|
23
|
-
...props,
|
|
24
|
-
theme: resolveTheme(themeId, props.theme, defaultTheme)
|
|
25
|
-
};
|
|
26
|
-
props[PROCESSED_PROPS] = processedProps;
|
|
27
|
-
processedProps[PROCESSED_PROPS] = processedProps;
|
|
28
|
-
return processedProps;
|
|
29
|
-
}
|
|
30
28
|
function defaultOverridesResolver(slot) {
|
|
31
29
|
if (!slot) {
|
|
32
30
|
return null;
|
|
33
31
|
}
|
|
34
32
|
return (_props, styles) => styles[slot];
|
|
35
33
|
}
|
|
36
|
-
function
|
|
34
|
+
function attachTheme(props, themeId, defaultTheme) {
|
|
35
|
+
props.theme = isObjectEmpty(props.theme) ? defaultTheme : props.theme[themeId] || props.theme;
|
|
36
|
+
}
|
|
37
|
+
function processStyle(props, style) {
|
|
38
|
+
/*
|
|
39
|
+
* Style types:
|
|
40
|
+
* - null/undefined
|
|
41
|
+
* - string
|
|
42
|
+
* - CSS style object: { [cssKey]: [cssValue], variants }
|
|
43
|
+
* - Processed style object: { style, variants, isProcessed: true }
|
|
44
|
+
* - Array of any of the above
|
|
45
|
+
*/
|
|
46
|
+
|
|
37
47
|
const resolvedStyle = typeof style === 'function' ? style(props) : style;
|
|
38
48
|
if (Array.isArray(resolvedStyle)) {
|
|
39
|
-
return resolvedStyle.flatMap(subStyle => processStyle(
|
|
49
|
+
return resolvedStyle.flatMap(subStyle => processStyle(props, subStyle));
|
|
40
50
|
}
|
|
41
51
|
if (Array.isArray(resolvedStyle?.variants)) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
52
|
+
let rootStyle;
|
|
53
|
+
if (resolvedStyle.isProcessed) {
|
|
54
|
+
rootStyle = resolvedStyle.style;
|
|
55
|
+
} else {
|
|
56
|
+
const {
|
|
57
|
+
variants,
|
|
58
|
+
...otherStyles
|
|
59
|
+
} = resolvedStyle;
|
|
60
|
+
rootStyle = otherStyles;
|
|
61
|
+
}
|
|
62
|
+
return processStyleVariants(props, resolvedStyle.variants, [rootStyle]);
|
|
63
|
+
}
|
|
64
|
+
if (resolvedStyle?.isProcessed) {
|
|
65
|
+
return resolvedStyle.style;
|
|
66
|
+
}
|
|
67
|
+
return resolvedStyle;
|
|
68
|
+
}
|
|
69
|
+
function processStyleVariants(props, variants, results = []) {
|
|
70
|
+
let mergedState; // We might not need it, initialized lazily
|
|
48
71
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
} else {
|
|
62
|
-
for (const key in variant.props) {
|
|
63
|
-
if (props[key] !== variant.props[key] && props.ownerState?.[key] !== variant.props[key]) {
|
|
64
|
-
continue variantLoop;
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
if (!Array.isArray(result)) {
|
|
69
|
-
result = [result];
|
|
72
|
+
variantLoop: for (let i = 0; i < variants.length; i += 1) {
|
|
73
|
+
const variant = variants[i];
|
|
74
|
+
if (typeof variant.props === 'function') {
|
|
75
|
+
mergedState ?? (mergedState = {
|
|
76
|
+
...props,
|
|
77
|
+
...props.ownerState,
|
|
78
|
+
ownerState: props.ownerState
|
|
79
|
+
});
|
|
80
|
+
if (!variant.props(mergedState)) {
|
|
81
|
+
continue;
|
|
70
82
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
};
|
|
77
|
-
result.push(variant.style(mergedState));
|
|
78
|
-
} else {
|
|
79
|
-
result.push(variant.style);
|
|
83
|
+
} else {
|
|
84
|
+
for (const key in variant.props) {
|
|
85
|
+
if (props[key] !== variant.props[key] && props.ownerState?.[key] !== variant.props[key]) {
|
|
86
|
+
continue variantLoop;
|
|
87
|
+
}
|
|
80
88
|
}
|
|
81
89
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
90
|
+
if (typeof variant.style === 'function') {
|
|
91
|
+
mergedState ?? (mergedState = {
|
|
92
|
+
...props,
|
|
93
|
+
...props.ownerState,
|
|
94
|
+
ownerState: props.ownerState
|
|
95
|
+
});
|
|
96
|
+
results.push(variant.style(mergedState));
|
|
97
|
+
} else {
|
|
98
|
+
results.push(variant.style);
|
|
99
|
+
}
|
|
85
100
|
}
|
|
86
|
-
return
|
|
101
|
+
return results;
|
|
87
102
|
}
|
|
88
|
-
|
|
103
|
+
function createStyled(input = {}) {
|
|
89
104
|
const {
|
|
90
105
|
themeId,
|
|
91
106
|
defaultTheme = systemDefaultTheme,
|
|
92
107
|
rootShouldForwardProp = shouldForwardProp,
|
|
93
108
|
slotShouldForwardProp = shouldForwardProp
|
|
94
109
|
} = input;
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
}
|
|
98
|
-
systemSx.__mui_systemSx = true;
|
|
110
|
+
function styleAttachTheme(props) {
|
|
111
|
+
attachTheme(props, themeId, defaultTheme);
|
|
112
|
+
}
|
|
99
113
|
const styled = (tag, inputOptions = {}) => {
|
|
100
|
-
//
|
|
101
|
-
|
|
114
|
+
// If `tag` is already a styled component, filter out the `sx` style function
|
|
115
|
+
// to prevent unnecessary styles generated by the composite components.
|
|
116
|
+
(0, _styledEngine.internal_mutateStyles)(tag, styles => styles.filter(style => style !== _styleFunctionSx.default));
|
|
102
117
|
const {
|
|
103
118
|
name: componentName,
|
|
104
119
|
slot: componentSlot,
|
|
@@ -116,14 +131,6 @@ export default function createStyled(input = {}) {
|
|
|
116
131
|
// For more details: https://github.com/mui/material-ui/pull/37908
|
|
117
132
|
componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;
|
|
118
133
|
const skipSx = inputSkipSx || false;
|
|
119
|
-
let label;
|
|
120
|
-
if (process.env.NODE_ENV !== 'production') {
|
|
121
|
-
if (componentName) {
|
|
122
|
-
// TODO v6: remove `lowercaseFirstLetter()` in the next major release
|
|
123
|
-
// For more details: https://github.com/mui/material-ui/pull/37908
|
|
124
|
-
label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
134
|
let shouldForwardPropOption = shouldForwardProp;
|
|
128
135
|
|
|
129
136
|
// TODO v6: remove `Root` in the next major release
|
|
@@ -137,77 +144,97 @@ export default function createStyled(input = {}) {
|
|
|
137
144
|
// for string (html) tag, preserve the behavior in emotion & styled-components.
|
|
138
145
|
shouldForwardPropOption = undefined;
|
|
139
146
|
}
|
|
140
|
-
const defaultStyledResolver =
|
|
147
|
+
const defaultStyledResolver = (0, _styledEngine.default)(tag, {
|
|
141
148
|
shouldForwardProp: shouldForwardPropOption,
|
|
142
|
-
label,
|
|
149
|
+
label: generateStyledLabel(componentName, componentSlot),
|
|
143
150
|
...options
|
|
144
151
|
});
|
|
145
|
-
const
|
|
152
|
+
const transformStyle = style => {
|
|
146
153
|
// On the server Emotion doesn't use React.forwardRef for creating components, so the created
|
|
147
154
|
// component stays as a function. This condition makes sure that we do not interpolate functions
|
|
148
155
|
// which are basically components used as a selectors.
|
|
149
|
-
if (typeof style === 'function' && style.__emotion_real !== style
|
|
150
|
-
return
|
|
156
|
+
if (typeof style === 'function' && style.__emotion_real !== style) {
|
|
157
|
+
return function styleFunctionProcessor(props) {
|
|
158
|
+
return processStyle(props, style);
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
if ((0, _deepmerge.isPlainObject)(style)) {
|
|
162
|
+
const serialized = (0, _preprocessStyles.default)(style);
|
|
163
|
+
if (!serialized.variants) {
|
|
164
|
+
return serialized.style;
|
|
165
|
+
}
|
|
166
|
+
return function styleObjectProcessor(props) {
|
|
167
|
+
return processStyle(props, serialized);
|
|
168
|
+
};
|
|
151
169
|
}
|
|
152
170
|
return style;
|
|
153
171
|
};
|
|
154
|
-
const muiStyledResolver = (
|
|
155
|
-
|
|
156
|
-
const
|
|
172
|
+
const muiStyledResolver = (...expressionsInput) => {
|
|
173
|
+
const expressionsHead = [];
|
|
174
|
+
const expressionsBody = expressionsInput.map(transformStyle);
|
|
175
|
+
const expressionsTail = [];
|
|
176
|
+
|
|
177
|
+
// Preprocess `props` to set the scoped theme value.
|
|
178
|
+
// This must run before any other expression.
|
|
179
|
+
expressionsHead.push(styleAttachTheme);
|
|
157
180
|
if (componentName && overridesResolver) {
|
|
158
|
-
|
|
159
|
-
const theme =
|
|
160
|
-
|
|
181
|
+
expressionsTail.push(function styleThemeOverrides(props) {
|
|
182
|
+
const theme = props.theme;
|
|
183
|
+
const styleOverrides = theme.components?.[componentName]?.styleOverrides;
|
|
184
|
+
if (!styleOverrides) {
|
|
161
185
|
return null;
|
|
162
186
|
}
|
|
163
|
-
const styleOverrides = theme.components[componentName].styleOverrides;
|
|
164
187
|
const resolvedStyleOverrides = {};
|
|
165
|
-
const propsWithTheme = attachTheme(props, themeId, defaultTheme);
|
|
166
188
|
|
|
167
189
|
// TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly
|
|
168
190
|
// eslint-disable-next-line guard-for-in
|
|
169
191
|
for (const slotKey in styleOverrides) {
|
|
170
|
-
resolvedStyleOverrides[slotKey] = processStyle(styleOverrides[slotKey]
|
|
192
|
+
resolvedStyleOverrides[slotKey] = processStyle(props, styleOverrides[slotKey]);
|
|
171
193
|
}
|
|
172
194
|
return overridesResolver(props, resolvedStyleOverrides);
|
|
173
195
|
});
|
|
174
196
|
}
|
|
175
197
|
if (componentName && !skipVariantsResolver) {
|
|
176
|
-
|
|
177
|
-
const theme =
|
|
198
|
+
expressionsTail.push(function styleThemeVariants(props) {
|
|
199
|
+
const theme = props.theme;
|
|
178
200
|
const themeVariants = theme?.components?.[componentName]?.variants;
|
|
179
201
|
if (!themeVariants) {
|
|
180
202
|
return null;
|
|
181
203
|
}
|
|
182
|
-
return
|
|
183
|
-
variants: themeVariants
|
|
184
|
-
}, attachTheme(props, themeId, defaultTheme));
|
|
204
|
+
return processStyleVariants(props, themeVariants);
|
|
185
205
|
});
|
|
186
206
|
}
|
|
187
207
|
if (!skipSx) {
|
|
188
|
-
|
|
208
|
+
expressionsTail.push(_styleFunctionSx.default);
|
|
189
209
|
}
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
210
|
+
|
|
211
|
+
// This function can be called as a tagged template, so the first argument would contain
|
|
212
|
+
// CSS `string[]` values.
|
|
213
|
+
if (Array.isArray(expressionsBody[0])) {
|
|
214
|
+
const inputStrings = expressionsBody.shift();
|
|
215
|
+
|
|
216
|
+
// We need to add placeholders in the tagged template for the custom functions we have
|
|
217
|
+
// possibly added (attachTheme, overrides, variants, and sx).
|
|
218
|
+
const placeholdersHead = new Array(expressionsHead.length).fill('');
|
|
219
|
+
const placeholdersTail = new Array(expressionsTail.length).fill('');
|
|
220
|
+
let outputStrings;
|
|
221
|
+
// prettier-ignore
|
|
222
|
+
{
|
|
223
|
+
outputStrings = [...placeholdersHead, ...inputStrings, ...placeholdersTail];
|
|
224
|
+
outputStrings.raw = [...placeholdersHead, ...inputStrings.raw, ...placeholdersTail];
|
|
205
225
|
}
|
|
206
|
-
|
|
226
|
+
|
|
227
|
+
// The only case where we put something before `attachTheme`
|
|
228
|
+
expressionsHead.unshift(outputStrings);
|
|
207
229
|
}
|
|
230
|
+
const expressions = [...expressionsHead, ...expressionsBody, ...expressionsTail];
|
|
231
|
+
const Component = defaultStyledResolver(...expressions);
|
|
208
232
|
if (tag.muiName) {
|
|
209
233
|
Component.muiName = tag.muiName;
|
|
210
234
|
}
|
|
235
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
236
|
+
Component.displayName = generateDisplayName(componentName, componentSlot, tag);
|
|
237
|
+
}
|
|
211
238
|
return Component;
|
|
212
239
|
};
|
|
213
240
|
if (defaultStyledResolver.withConfig) {
|
|
@@ -217,6 +244,23 @@ export default function createStyled(input = {}) {
|
|
|
217
244
|
};
|
|
218
245
|
return styled;
|
|
219
246
|
}
|
|
247
|
+
function generateDisplayName(componentName, componentSlot, tag) {
|
|
248
|
+
if (componentName) {
|
|
249
|
+
return `${componentName}${(0, _capitalize.default)(componentSlot || '')}`;
|
|
250
|
+
}
|
|
251
|
+
return `Styled(${(0, _getDisplayName.default)(tag)})`;
|
|
252
|
+
}
|
|
253
|
+
function generateStyledLabel(componentName, componentSlot) {
|
|
254
|
+
let label;
|
|
255
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
256
|
+
if (componentName) {
|
|
257
|
+
// TODO v6: remove `lowercaseFirstLetter()` in the next major release
|
|
258
|
+
// For more details: https://github.com/mui/material-ui/pull/37908
|
|
259
|
+
label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
return label;
|
|
263
|
+
}
|
|
220
264
|
function isObjectEmpty(object) {
|
|
221
265
|
// eslint-disable-next-line
|
|
222
266
|
for (const _ in object) {
|
package/createStyled/index.js
CHANGED
|
@@ -1,2 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
var _exportNames = {};
|
|
8
|
+
Object.defineProperty(exports, "default", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () {
|
|
11
|
+
return _createStyled.default;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
var _createStyled = _interopRequireWildcard(require("./createStyled"));
|
|
15
|
+
Object.keys(_createStyled).forEach(function (key) {
|
|
16
|
+
if (key === "default" || key === "__esModule") return;
|
|
17
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
18
|
+
if (key in exports && exports[key] === _createStyled[key]) return;
|
|
19
|
+
Object.defineProperty(exports, key, {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () {
|
|
22
|
+
return _createStyled[key];
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
});
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = applyStyles;
|
|
1
7
|
/**
|
|
2
8
|
* A universal utility to style components with multiple color modes. Always use it from the theme object.
|
|
3
9
|
* It works with:
|
|
@@ -56,7 +62,7 @@
|
|
|
56
62
|
* })
|
|
57
63
|
*```
|
|
58
64
|
*/
|
|
59
|
-
|
|
65
|
+
function applyStyles(key, styles) {
|
|
60
66
|
// @ts-expect-error this is 'any' type
|
|
61
67
|
const theme = this;
|
|
62
68
|
if (theme.vars) {
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = createSpacing;
|
|
7
|
+
var _spacing = require("../spacing");
|
|
3
8
|
// The different signatures imply different meaning for their arguments that can't be expressed structurally.
|
|
4
9
|
// We express the difference with variable names.
|
|
5
10
|
|
|
6
|
-
|
|
11
|
+
function createSpacing(spacingInput = 8,
|
|
7
12
|
// Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.
|
|
8
13
|
// Smaller components, such as icons, can align to a 4dp grid.
|
|
9
14
|
// https://m2.material.io/design/layout/understanding-layout.html
|
|
10
|
-
transform = createUnarySpacing({
|
|
15
|
+
transform = (0, _spacing.createUnarySpacing)({
|
|
11
16
|
spacing: spacingInput
|
|
12
17
|
})) {
|
|
13
18
|
// Already transformed.
|
|
@@ -14,18 +14,24 @@ export {
|
|
|
14
14
|
|
|
15
15
|
export type Direction = 'ltr' | 'rtl';
|
|
16
16
|
|
|
17
|
+
export interface Typography {}
|
|
18
|
+
export interface Mixins {}
|
|
19
|
+
export interface Shadows {}
|
|
20
|
+
export interface Transitions {}
|
|
21
|
+
export interface ZIndex {}
|
|
22
|
+
|
|
17
23
|
export interface ThemeOptions {
|
|
18
24
|
shape?: ShapeOptions;
|
|
19
25
|
breakpoints?: BreakpointsOptions;
|
|
20
26
|
direction?: Direction;
|
|
21
|
-
mixins?:
|
|
27
|
+
mixins?: Mixins;
|
|
22
28
|
palette?: Record<string, any>;
|
|
23
|
-
shadows?:
|
|
29
|
+
shadows?: Shadows;
|
|
24
30
|
spacing?: SpacingOptions;
|
|
25
|
-
transitions?:
|
|
31
|
+
transitions?: Transitions;
|
|
26
32
|
components?: Record<string, any>;
|
|
27
|
-
typography?:
|
|
28
|
-
zIndex?:
|
|
33
|
+
typography?: Typography;
|
|
34
|
+
zIndex?: ZIndex;
|
|
29
35
|
unstable_sxConfig?: SxConfig;
|
|
30
36
|
}
|
|
31
37
|
|
|
@@ -34,13 +40,13 @@ export interface Theme extends CssContainerQueries {
|
|
|
34
40
|
breakpoints: Breakpoints;
|
|
35
41
|
direction: Direction;
|
|
36
42
|
palette: Record<string, any> & { mode: 'light' | 'dark' };
|
|
37
|
-
shadows?:
|
|
43
|
+
shadows?: Shadows;
|
|
38
44
|
spacing: Spacing;
|
|
39
|
-
transitions?:
|
|
45
|
+
transitions?: Transitions;
|
|
40
46
|
components?: Record<string, any>;
|
|
41
|
-
mixins?:
|
|
42
|
-
typography?:
|
|
43
|
-
zIndex?:
|
|
47
|
+
mixins?: Mixins;
|
|
48
|
+
typography?: Typography;
|
|
49
|
+
zIndex?: ZIndex;
|
|
44
50
|
applyStyles: ApplyStyles<'light' | 'dark'>;
|
|
45
51
|
unstable_sxConfig: SxConfig;
|
|
46
52
|
unstable_sx: (props: SxProps<Theme>) => CSSObject;
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _deepmerge = _interopRequireDefault(require("@mui/utils/deepmerge"));
|
|
9
|
+
var _createBreakpoints = _interopRequireDefault(require("../createBreakpoints/createBreakpoints"));
|
|
10
|
+
var _cssContainerQueries = _interopRequireDefault(require("../cssContainerQueries"));
|
|
11
|
+
var _shape = _interopRequireDefault(require("./shape"));
|
|
12
|
+
var _createSpacing = _interopRequireDefault(require("./createSpacing"));
|
|
13
|
+
var _styleFunctionSx = _interopRequireDefault(require("../styleFunctionSx/styleFunctionSx"));
|
|
14
|
+
var _defaultSxConfig = _interopRequireDefault(require("../styleFunctionSx/defaultSxConfig"));
|
|
15
|
+
var _applyStyles = _interopRequireDefault(require("./applyStyles"));
|
|
9
16
|
function createTheme(options = {}, ...args) {
|
|
10
17
|
const {
|
|
11
18
|
breakpoints: breakpointsInput = {},
|
|
@@ -14,9 +21,9 @@ function createTheme(options = {}, ...args) {
|
|
|
14
21
|
shape: shapeInput = {},
|
|
15
22
|
...other
|
|
16
23
|
} = options;
|
|
17
|
-
const breakpoints =
|
|
18
|
-
const spacing =
|
|
19
|
-
let muiTheme =
|
|
24
|
+
const breakpoints = (0, _createBreakpoints.default)(breakpointsInput);
|
|
25
|
+
const spacing = (0, _createSpacing.default)(spacingInput);
|
|
26
|
+
let muiTheme = (0, _deepmerge.default)({
|
|
20
27
|
breakpoints,
|
|
21
28
|
direction: 'ltr',
|
|
22
29
|
components: {},
|
|
@@ -27,23 +34,23 @@ function createTheme(options = {}, ...args) {
|
|
|
27
34
|
},
|
|
28
35
|
spacing,
|
|
29
36
|
shape: {
|
|
30
|
-
...
|
|
37
|
+
..._shape.default,
|
|
31
38
|
...shapeInput
|
|
32
39
|
}
|
|
33
40
|
}, other);
|
|
34
|
-
muiTheme =
|
|
35
|
-
muiTheme.applyStyles =
|
|
36
|
-
muiTheme = args.reduce((acc, argument) =>
|
|
41
|
+
muiTheme = (0, _cssContainerQueries.default)(muiTheme);
|
|
42
|
+
muiTheme.applyStyles = _applyStyles.default;
|
|
43
|
+
muiTheme = args.reduce((acc, argument) => (0, _deepmerge.default)(acc, argument), muiTheme);
|
|
37
44
|
muiTheme.unstable_sxConfig = {
|
|
38
|
-
...
|
|
45
|
+
..._defaultSxConfig.default,
|
|
39
46
|
...other?.unstable_sxConfig
|
|
40
47
|
};
|
|
41
48
|
muiTheme.unstable_sx = function sx(props) {
|
|
42
|
-
return
|
|
49
|
+
return (0, _styleFunctionSx.default)({
|
|
43
50
|
sx: props,
|
|
44
51
|
theme: this
|
|
45
52
|
});
|
|
46
53
|
};
|
|
47
54
|
return muiTheme;
|
|
48
55
|
}
|
|
49
|
-
|
|
56
|
+
var _default = exports.default = createTheme;
|
package/createTheme/index.js
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "default", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _createTheme.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "private_createBreakpoints", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () {
|
|
16
|
+
return _createBreakpoints.default;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "unstable_applyStyles", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () {
|
|
22
|
+
return _applyStyles.default;
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
var _createTheme = _interopRequireDefault(require("./createTheme"));
|
|
26
|
+
var _createBreakpoints = _interopRequireDefault(require("../createBreakpoints/createBreakpoints"));
|
|
27
|
+
var _applyStyles = _interopRequireDefault(require("./applyStyles"));
|
package/createTheme/package.json
CHANGED