@mui/system 6.0.0-alpha.1 → 6.0.0-alpha.11
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/CHANGELOG.md +538 -4
- package/Container/Container.d.ts +1 -1
- package/Container/createContainer.js +39 -35
- package/RtlProvider/index.js +8 -11
- package/Stack/Stack.d.ts +1 -1
- package/Stack/createStack.d.ts +1 -1
- package/Stack/createStack.js +24 -26
- package/ThemeProvider/ThemeProvider.js +9 -5
- package/Unstable_Grid/Grid.d.ts +1 -1
- package/Unstable_Grid/Grid.js +0 -4
- package/Unstable_Grid/GridProps.d.ts +0 -4
- package/Unstable_Grid/createGrid.d.ts +1 -1
- package/Unstable_Grid/createGrid.js +21 -48
- package/Unstable_Grid/gridGenerator.d.ts +1 -3
- package/Unstable_Grid/gridGenerator.js +15 -21
- package/breakpoints/breakpoints.js +26 -7
- package/createBox/createBox.js +9 -12
- package/createStyled/createStyled.js +56 -51
- package/createTheme/applyStyles.d.ts +1 -1
- package/createTheme/applyStyles.js +1 -1
- package/createTheme/createBreakpoints.js +24 -25
- package/createTheme/createTheme.d.ts +2 -1
- package/createTheme/createTheme.js +20 -14
- package/cssContainerQueries/cssContainerQueries.d.ts +24 -0
- package/cssContainerQueries/cssContainerQueries.js +70 -0
- package/cssContainerQueries/index.d.ts +3 -0
- package/cssContainerQueries/index.js +2 -0
- package/cssContainerQueries/package.json +6 -0
- package/cssVars/createCssVarsProvider.d.ts +1 -1
- package/cssVars/createCssVarsProvider.js +17 -16
- package/cssVars/createCssVarsTheme.js +3 -3
- package/cssVars/cssVarsParser.d.ts +1 -1
- package/cssVars/index.d.ts +2 -0
- package/cssVars/index.js +1 -0
- package/cssVars/prepareCssVars.js +30 -25
- package/cssVars/prepareTypographyVars.d.ts +8 -0
- package/cssVars/prepareTypographyVars.js +11 -0
- package/cssVars/useCurrentColorScheme.js +18 -11
- package/index.d.ts +2 -0
- package/index.js +2 -1
- package/modern/Container/createContainer.js +39 -35
- package/modern/RtlProvider/index.js +8 -11
- package/modern/Stack/createStack.js +24 -26
- package/modern/ThemeProvider/ThemeProvider.js +9 -5
- package/modern/Unstable_Grid/Grid.js +0 -4
- package/modern/Unstable_Grid/createGrid.js +21 -48
- package/modern/Unstable_Grid/gridGenerator.js +15 -21
- package/modern/breakpoints/breakpoints.js +26 -7
- package/modern/createBox/createBox.js +9 -12
- package/modern/createStyled/createStyled.js +56 -51
- package/modern/createTheme/applyStyles.js +1 -1
- package/modern/createTheme/createBreakpoints.js +24 -25
- package/modern/createTheme/createTheme.js +20 -14
- package/modern/cssContainerQueries/cssContainerQueries.js +70 -0
- package/modern/cssContainerQueries/index.js +2 -0
- package/modern/cssVars/createCssVarsProvider.js +17 -16
- package/modern/cssVars/createCssVarsTheme.js +3 -3
- package/modern/cssVars/index.js +1 -0
- package/modern/cssVars/prepareCssVars.js +30 -25
- package/modern/cssVars/prepareTypographyVars.js +11 -0
- package/modern/cssVars/useCurrentColorScheme.js +18 -11
- package/modern/index.js +2 -1
- package/modern/propsToClassKey/propsToClassKey.js +3 -5
- package/modern/styleFunctionSx/defaultSxConfig.js +3 -0
- package/modern/styleFunctionSx/extendSxProp.js +14 -10
- package/modern/styleFunctionSx/styleFunctionSx.js +2 -1
- package/modern/useMediaQuery/useMediaQuery.js +5 -14
- package/node/Container/createContainer.js +39 -35
- package/node/RtlProvider/index.js +8 -11
- package/node/Stack/createStack.js +24 -26
- package/node/ThemeProvider/ThemeProvider.js +9 -5
- package/node/Unstable_Grid/Grid.js +0 -4
- package/node/Unstable_Grid/createGrid.js +24 -51
- package/node/Unstable_Grid/gridGenerator.js +15 -22
- package/node/breakpoints/breakpoints.js +26 -7
- package/node/createBox/createBox.js +9 -12
- package/node/createStyled/createStyled.js +58 -52
- package/node/createTheme/applyStyles.js +1 -1
- package/node/createTheme/createBreakpoints.js +24 -26
- package/node/createTheme/createTheme.js +20 -14
- package/node/cssContainerQueries/cssContainerQueries.js +81 -0
- package/node/cssContainerQueries/index.js +32 -0
- package/node/cssVars/createCssVarsProvider.js +17 -16
- package/node/cssVars/createCssVarsTheme.js +3 -3
- package/node/cssVars/index.js +7 -0
- package/node/cssVars/prepareCssVars.js +30 -25
- package/node/cssVars/prepareTypographyVars.js +17 -0
- package/node/cssVars/useCurrentColorScheme.js +18 -12
- package/node/index.js +9 -1
- package/node/propsToClassKey/propsToClassKey.js +3 -5
- package/node/styleFunctionSx/defaultSxConfig.js +3 -0
- package/node/styleFunctionSx/extendSxProp.js +14 -10
- package/node/styleFunctionSx/styleFunctionSx.js +2 -1
- package/node/useMediaQuery/useMediaQuery.js +5 -14
- package/package.json +6 -6
- package/propsToClassKey/propsToClassKey.js +3 -5
- package/styleFunctionSx/defaultSxConfig.js +3 -0
- package/styleFunctionSx/extendSxProp.js +14 -10
- package/styleFunctionSx/styleFunctionSx.js +2 -1
- package/useMediaQuery/useMediaQuery.js +5 -14
- package/legacy/Box/Box.js +0 -30
- package/legacy/Box/boxClasses.js +0 -3
- package/legacy/Box/index.js +0 -5
- package/legacy/Container/Container.js +0 -61
- package/legacy/Container/ContainerProps.js +0 -1
- package/legacy/Container/containerClasses.js +0 -7
- package/legacy/Container/createContainer.js +0 -140
- package/legacy/Container/index.js +0 -5
- package/legacy/GlobalStyles/GlobalStyles.js +0 -37
- package/legacy/GlobalStyles/index.js +0 -4
- package/legacy/RtlProvider/index.js +0 -22
- package/legacy/Stack/Stack.js +0 -62
- package/legacy/Stack/StackProps.js +0 -1
- package/legacy/Stack/createStack.js +0 -180
- package/legacy/Stack/index.js +0 -7
- package/legacy/Stack/stackClasses.js +0 -7
- package/legacy/ThemeProvider/ThemeProvider.js +0 -87
- package/legacy/ThemeProvider/index.js +0 -3
- package/legacy/Unstable_Grid/Grid.js +0 -177
- package/legacy/Unstable_Grid/GridProps.js +0 -1
- package/legacy/Unstable_Grid/createGrid.js +0 -184
- package/legacy/Unstable_Grid/gridClasses.js +0 -28
- package/legacy/Unstable_Grid/gridGenerator.js +0 -216
- package/legacy/Unstable_Grid/index.js +0 -8
- package/legacy/Unstable_Grid/traverseBreakpoints.js +0 -48
- package/legacy/borders/borders.js +0 -51
- package/legacy/borders/index.js +0 -4
- package/legacy/breakpoints/breakpoints.js +0 -162
- package/legacy/breakpoints/index.js +0 -4
- package/legacy/colorManipulator/colorManipulator.js +0 -356
- package/legacy/colorManipulator/index.js +0 -3
- package/legacy/compose/compose.js +0 -32
- package/legacy/compose/index.js +0 -3
- package/legacy/createBox/createBox.js +0 -38
- package/legacy/createBox/index.js +0 -3
- package/legacy/createStyled/createStyled.js +0 -250
- package/legacy/createStyled/index.js +0 -4
- package/legacy/createTheme/applyStyles.js +0 -73
- package/legacy/createTheme/createBreakpoints.js +0 -83
- package/legacy/createTheme/createSpacing.js +0 -32
- package/legacy/createTheme/createTheme.js +0 -49
- package/legacy/createTheme/index.js +0 -3
- package/legacy/createTheme/shape.js +0 -4
- package/legacy/cssGrid/cssGrid.js +0 -91
- package/legacy/cssGrid/index.js +0 -4
- package/legacy/cssVars/createCssVarsProvider.js +0 -338
- package/legacy/cssVars/createCssVarsTheme.js +0 -13
- package/legacy/cssVars/createGetCssVar.js +0 -30
- package/legacy/cssVars/cssVarsParser.js +0 -141
- package/legacy/cssVars/getInitColorSchemeScript.js +0 -28
- package/legacy/cssVars/index.js +0 -6
- package/legacy/cssVars/prepareCssVars.js +0 -92
- package/legacy/cssVars/useCurrentColorScheme.js +0 -237
- package/legacy/display/display.js +0 -29
- package/legacy/display/index.js +0 -4
- package/legacy/flexbox/flexbox.js +0 -43
- package/legacy/flexbox/index.js +0 -4
- package/legacy/getThemeValue/getThemeValue.js +0 -47
- package/legacy/getThemeValue/index.js +0 -4
- package/legacy/index.js +0 -72
- package/legacy/memoize/index.js +0 -3
- package/legacy/memoize/memoize.js +0 -9
- package/legacy/merge/index.js +0 -3
- package/legacy/merge/merge.js +0 -10
- package/legacy/palette/index.js +0 -4
- package/legacy/palette/palette.js +0 -26
- package/legacy/positions/index.js +0 -4
- package/legacy/positions/positions.js +0 -22
- package/legacy/propsToClassKey/index.js +0 -3
- package/legacy/propsToClassKey/propsToClassKey.js +0 -24
- package/legacy/responsivePropType/index.js +0 -3
- package/legacy/responsivePropType/responsivePropType.js +0 -3
- package/legacy/shadows/index.js +0 -3
- package/legacy/shadows/shadows.js +0 -6
- package/legacy/sizing/index.js +0 -4
- package/legacy/sizing/sizing.js +0 -65
- package/legacy/spacing/index.js +0 -4
- package/legacy/spacing/spacing.js +0 -161
- package/legacy/style/index.js +0 -4
- package/legacy/style/style.js +0 -73
- package/legacy/styleFunctionSx/defaultSxConfig.js +0 -293
- package/legacy/styleFunctionSx/extendSxProp.js +0 -45
- package/legacy/styleFunctionSx/index.js +0 -4
- package/legacy/styleFunctionSx/styleFunctionSx.js +0 -126
- package/legacy/styled/index.js +0 -3
- package/legacy/styled/styled.js +0 -3
- package/legacy/typography/index.js +0 -4
- package/legacy/typography/typography.js +0 -37
- package/legacy/useMediaQuery/index.js +0 -2
- package/legacy/useMediaQuery/useMediaQuery.js +0 -145
- package/legacy/useTheme/index.js +0 -4
- package/legacy/useTheme/useTheme.js +0 -10
- package/legacy/useThemeProps/getThemeProps.js +0 -10
- package/legacy/useThemeProps/index.js +0 -4
- package/legacy/useThemeProps/useThemeProps.js +0 -20
- package/legacy/useThemeWithoutDefault/index.js +0 -3
- package/legacy/useThemeWithoutDefault/useThemeWithoutDefault.js +0 -13
|
@@ -7,20 +7,16 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.default = createStyled;
|
|
8
8
|
exports.shouldForwardProp = shouldForwardProp;
|
|
9
9
|
exports.systemDefaultTheme = void 0;
|
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
12
10
|
var _styledEngine = _interopRequireWildcard(require("@mui/styled-engine"));
|
|
13
11
|
var _deepmerge = require("@mui/utils/deepmerge");
|
|
14
12
|
var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
|
|
15
13
|
var _getDisplayName = _interopRequireDefault(require("@mui/utils/getDisplayName"));
|
|
16
14
|
var _createTheme = _interopRequireDefault(require("../createTheme"));
|
|
17
15
|
var _styleFunctionSx = _interopRequireDefault(require("../styleFunctionSx"));
|
|
18
|
-
const _excluded = ["ownerState"],
|
|
19
|
-
_excluded2 = ["variants"],
|
|
20
|
-
_excluded3 = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"];
|
|
21
|
-
/* eslint-disable no-underscore-dangle */
|
|
22
16
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
23
17
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
+
/* eslint-disable no-underscore-dangle */
|
|
19
|
+
|
|
24
20
|
function isEmpty(obj) {
|
|
25
21
|
return Object.keys(obj).length === 0;
|
|
26
22
|
}
|
|
@@ -58,31 +54,35 @@ function defaultOverridesResolver(slot) {
|
|
|
58
54
|
}
|
|
59
55
|
return (props, styles) => styles[slot];
|
|
60
56
|
}
|
|
61
|
-
function processStyleArg(callableStyle,
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
57
|
+
function processStyleArg(callableStyle, {
|
|
58
|
+
ownerState,
|
|
59
|
+
...props
|
|
60
|
+
}) {
|
|
61
|
+
const resolvedStylesArg = typeof callableStyle === 'function' ? callableStyle({
|
|
62
|
+
ownerState,
|
|
63
|
+
...props
|
|
64
|
+
}) : callableStyle;
|
|
69
65
|
if (Array.isArray(resolvedStylesArg)) {
|
|
70
|
-
return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle,
|
|
71
|
-
ownerState
|
|
72
|
-
|
|
66
|
+
return resolvedStylesArg.flatMap(resolvedStyle => processStyleArg(resolvedStyle, {
|
|
67
|
+
ownerState,
|
|
68
|
+
...props
|
|
69
|
+
}));
|
|
73
70
|
}
|
|
71
|
+
const mergedState = {
|
|
72
|
+
...props,
|
|
73
|
+
...ownerState,
|
|
74
|
+
ownerState
|
|
75
|
+
};
|
|
74
76
|
if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {
|
|
75
77
|
const {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
variants = [],
|
|
79
|
+
...otherStyles
|
|
80
|
+
} = resolvedStylesArg;
|
|
79
81
|
let result = otherStyles;
|
|
80
82
|
variants.forEach(variant => {
|
|
81
83
|
let isMatch = true;
|
|
82
84
|
if (typeof variant.props === 'function') {
|
|
83
|
-
isMatch = variant.props(
|
|
84
|
-
ownerState
|
|
85
|
-
}, props, ownerState));
|
|
85
|
+
isMatch = variant.props(mergedState);
|
|
86
86
|
} else {
|
|
87
87
|
Object.keys(variant.props).forEach(key => {
|
|
88
88
|
if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {
|
|
@@ -94,9 +94,7 @@ function processStyleArg(callableStyle, _ref) {
|
|
|
94
94
|
if (!Array.isArray(result)) {
|
|
95
95
|
result = [result];
|
|
96
96
|
}
|
|
97
|
-
result.push(typeof variant.style === 'function' ? variant.style(
|
|
98
|
-
ownerState
|
|
99
|
-
}, props, ownerState)) : variant.style);
|
|
97
|
+
result.push(typeof variant.style === 'function' ? variant.style(mergedState) : variant.style);
|
|
100
98
|
}
|
|
101
99
|
});
|
|
102
100
|
return result;
|
|
@@ -111,27 +109,29 @@ function createStyled(input = {}) {
|
|
|
111
109
|
slotShouldForwardProp = shouldForwardProp
|
|
112
110
|
} = input;
|
|
113
111
|
const systemSx = props => {
|
|
114
|
-
return (0, _styleFunctionSx.default)(
|
|
115
|
-
|
|
112
|
+
return (0, _styleFunctionSx.default)({
|
|
113
|
+
...props,
|
|
114
|
+
theme: resolveTheme({
|
|
115
|
+
...props,
|
|
116
116
|
defaultTheme,
|
|
117
117
|
themeId
|
|
118
|
-
})
|
|
119
|
-
})
|
|
118
|
+
})
|
|
119
|
+
});
|
|
120
120
|
};
|
|
121
121
|
systemSx.__mui_systemSx = true;
|
|
122
122
|
return (tag, inputOptions = {}) => {
|
|
123
123
|
// Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.
|
|
124
124
|
(0, _styledEngine.internal_processStyles)(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));
|
|
125
125
|
const {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
126
|
+
name: componentName,
|
|
127
|
+
slot: componentSlot,
|
|
128
|
+
skipVariantsResolver: inputSkipVariantsResolver,
|
|
129
|
+
skipSx: inputSkipSx,
|
|
130
|
+
// TODO v6: remove `lowercaseFirstLetter()` in the next major release
|
|
131
|
+
// For more details: https://github.com/mui/material-ui/pull/37908
|
|
132
|
+
overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot)),
|
|
133
|
+
...options
|
|
134
|
+
} = inputOptions;
|
|
135
135
|
|
|
136
136
|
// if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.
|
|
137
137
|
const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :
|
|
@@ -160,22 +160,24 @@ function createStyled(input = {}) {
|
|
|
160
160
|
// for string (html) tag, preserve the behavior in emotion & styled-components.
|
|
161
161
|
shouldForwardPropOption = undefined;
|
|
162
162
|
}
|
|
163
|
-
const defaultStyledResolver = (0, _styledEngine.default)(tag,
|
|
163
|
+
const defaultStyledResolver = (0, _styledEngine.default)(tag, {
|
|
164
164
|
shouldForwardProp: shouldForwardPropOption,
|
|
165
|
-
label
|
|
166
|
-
|
|
165
|
+
label,
|
|
166
|
+
...options
|
|
167
|
+
});
|
|
167
168
|
const transformStyleArg = stylesArg => {
|
|
168
169
|
// On the server Emotion doesn't use React.forwardRef for creating components, so the created
|
|
169
170
|
// component stays as a function. This condition makes sure that we do not interpolate functions
|
|
170
171
|
// which are basically components used as a selectors.
|
|
171
172
|
if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg || (0, _deepmerge.isPlainObject)(stylesArg)) {
|
|
172
|
-
return props => processStyleArg(stylesArg,
|
|
173
|
+
return props => processStyleArg(stylesArg, {
|
|
174
|
+
...props,
|
|
173
175
|
theme: resolveTheme({
|
|
174
176
|
theme: props.theme,
|
|
175
177
|
defaultTheme,
|
|
176
178
|
themeId
|
|
177
179
|
})
|
|
178
|
-
})
|
|
180
|
+
});
|
|
179
181
|
}
|
|
180
182
|
return stylesArg;
|
|
181
183
|
};
|
|
@@ -184,10 +186,11 @@ function createStyled(input = {}) {
|
|
|
184
186
|
const expressionsWithDefaultTheme = expressions ? expressions.map(transformStyleArg) : [];
|
|
185
187
|
if (componentName && overridesResolver) {
|
|
186
188
|
expressionsWithDefaultTheme.push(props => {
|
|
187
|
-
const theme = resolveTheme(
|
|
189
|
+
const theme = resolveTheme({
|
|
190
|
+
...props,
|
|
188
191
|
defaultTheme,
|
|
189
192
|
themeId
|
|
190
|
-
})
|
|
193
|
+
});
|
|
191
194
|
if (!theme.components || !theme.components[componentName] || !theme.components[componentName].styleOverrides) {
|
|
192
195
|
return null;
|
|
193
196
|
}
|
|
@@ -195,9 +198,10 @@ function createStyled(input = {}) {
|
|
|
195
198
|
const resolvedStyleOverrides = {};
|
|
196
199
|
// TODO: v7 remove iteration and use `resolveStyleArg(styleOverrides[slot])` directly
|
|
197
200
|
Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {
|
|
198
|
-
resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle,
|
|
201
|
+
resolvedStyleOverrides[slotKey] = processStyleArg(slotStyle, {
|
|
202
|
+
...props,
|
|
199
203
|
theme
|
|
200
|
-
})
|
|
204
|
+
});
|
|
201
205
|
});
|
|
202
206
|
return overridesResolver(props, resolvedStyleOverrides);
|
|
203
207
|
});
|
|
@@ -205,16 +209,18 @@ function createStyled(input = {}) {
|
|
|
205
209
|
if (componentName && !skipVariantsResolver) {
|
|
206
210
|
expressionsWithDefaultTheme.push(props => {
|
|
207
211
|
var _theme$components;
|
|
208
|
-
const theme = resolveTheme(
|
|
212
|
+
const theme = resolveTheme({
|
|
213
|
+
...props,
|
|
209
214
|
defaultTheme,
|
|
210
215
|
themeId
|
|
211
|
-
})
|
|
216
|
+
});
|
|
212
217
|
const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[componentName]) == null ? void 0 : _theme$components.variants;
|
|
213
218
|
return processStyleArg({
|
|
214
219
|
variants: themeVariants
|
|
215
|
-
},
|
|
220
|
+
}, {
|
|
221
|
+
...props,
|
|
216
222
|
theme
|
|
217
|
-
})
|
|
223
|
+
});
|
|
218
224
|
});
|
|
219
225
|
}
|
|
220
226
|
if (!skipSx) {
|
|
@@ -8,7 +8,7 @@ exports.default = applyStyles;
|
|
|
8
8
|
* A universal utility to style components with multiple color modes. Always use it from the theme object.
|
|
9
9
|
* It works with:
|
|
10
10
|
* - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)
|
|
11
|
-
* - [CSS theme variables](https://mui.com/material-ui/
|
|
11
|
+
* - [CSS theme variables](https://mui.com/material-ui/customization/css-theme-variables/overview/)
|
|
12
12
|
* - Zero-runtime engine
|
|
13
13
|
*
|
|
14
14
|
* Tips: Use an array over object spread and place `theme.applyStyles()` last.
|
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.breakpointKeys = void 0;
|
|
8
7
|
exports.default = createBreakpoints;
|
|
9
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
|
-
const _excluded = ["values", "unit", "step"];
|
|
12
8
|
// Sorted ASC by size. That's important.
|
|
13
9
|
// It can't be configured as it's used statically for propTypes.
|
|
14
10
|
const breakpointKeys = exports.breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];
|
|
@@ -20,32 +16,33 @@ const sortBreakpointsValues = values => {
|
|
|
20
16
|
// Sort in ascending order
|
|
21
17
|
breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);
|
|
22
18
|
return breakpointsAsArray.reduce((acc, obj) => {
|
|
23
|
-
return
|
|
19
|
+
return {
|
|
20
|
+
...acc,
|
|
24
21
|
[obj.key]: obj.val
|
|
25
|
-
}
|
|
22
|
+
};
|
|
26
23
|
}, {});
|
|
27
24
|
};
|
|
28
25
|
|
|
29
26
|
// Keep in mind that @media is inclusive by the CSS specification.
|
|
30
27
|
function createBreakpoints(breakpoints) {
|
|
31
28
|
const {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
29
|
+
// The breakpoint **start** at this value.
|
|
30
|
+
// For instance with the first breakpoint xs: [xs, sm).
|
|
31
|
+
values = {
|
|
32
|
+
xs: 0,
|
|
33
|
+
// phone
|
|
34
|
+
sm: 600,
|
|
35
|
+
// tablet
|
|
36
|
+
md: 900,
|
|
37
|
+
// small laptop
|
|
38
|
+
lg: 1200,
|
|
39
|
+
// desktop
|
|
40
|
+
xl: 1536 // large screen
|
|
41
|
+
},
|
|
42
|
+
unit = 'px',
|
|
43
|
+
step = 5,
|
|
44
|
+
...other
|
|
45
|
+
} = breakpoints;
|
|
49
46
|
const sortedValues = sortBreakpointsValues(values);
|
|
50
47
|
const keys = Object.keys(sortedValues);
|
|
51
48
|
function up(key) {
|
|
@@ -77,7 +74,7 @@ function createBreakpoints(breakpoints) {
|
|
|
77
74
|
}
|
|
78
75
|
return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');
|
|
79
76
|
}
|
|
80
|
-
return
|
|
77
|
+
return {
|
|
81
78
|
keys,
|
|
82
79
|
values: sortedValues,
|
|
83
80
|
up,
|
|
@@ -85,6 +82,7 @@ function createBreakpoints(breakpoints) {
|
|
|
85
82
|
between,
|
|
86
83
|
only,
|
|
87
84
|
not,
|
|
88
|
-
unit
|
|
89
|
-
|
|
85
|
+
unit,
|
|
86
|
+
...other
|
|
87
|
+
};
|
|
90
88
|
}
|
|
@@ -5,24 +5,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
10
8
|
var _deepmerge = _interopRequireDefault(require("@mui/utils/deepmerge"));
|
|
11
9
|
var _createBreakpoints = _interopRequireDefault(require("./createBreakpoints"));
|
|
10
|
+
var _cssContainerQueries = _interopRequireDefault(require("../cssContainerQueries"));
|
|
12
11
|
var _shape = _interopRequireDefault(require("./shape"));
|
|
13
12
|
var _createSpacing = _interopRequireDefault(require("./createSpacing"));
|
|
14
13
|
var _styleFunctionSx = _interopRequireDefault(require("../styleFunctionSx/styleFunctionSx"));
|
|
15
14
|
var _defaultSxConfig = _interopRequireDefault(require("../styleFunctionSx/defaultSxConfig"));
|
|
16
15
|
var _applyStyles = _interopRequireDefault(require("./applyStyles"));
|
|
17
|
-
const _excluded = ["breakpoints", "palette", "spacing", "shape"];
|
|
18
16
|
function createTheme(options = {}, ...args) {
|
|
19
17
|
const {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
breakpoints: breakpointsInput = {},
|
|
19
|
+
palette: paletteInput = {},
|
|
20
|
+
spacing: spacingInput,
|
|
21
|
+
shape: shapeInput = {},
|
|
22
|
+
...other
|
|
23
|
+
} = options;
|
|
26
24
|
const breakpoints = (0, _createBreakpoints.default)(breakpointsInput);
|
|
27
25
|
const spacing = (0, _createSpacing.default)(spacingInput);
|
|
28
26
|
let muiTheme = (0, _deepmerge.default)({
|
|
@@ -30,15 +28,23 @@ function createTheme(options = {}, ...args) {
|
|
|
30
28
|
direction: 'ltr',
|
|
31
29
|
components: {},
|
|
32
30
|
// Inject component definitions.
|
|
33
|
-
palette:
|
|
34
|
-
mode: 'light'
|
|
35
|
-
|
|
31
|
+
palette: {
|
|
32
|
+
mode: 'light',
|
|
33
|
+
...paletteInput
|
|
34
|
+
},
|
|
36
35
|
spacing,
|
|
37
|
-
shape:
|
|
36
|
+
shape: {
|
|
37
|
+
..._shape.default,
|
|
38
|
+
...shapeInput
|
|
39
|
+
}
|
|
38
40
|
}, other);
|
|
41
|
+
muiTheme = (0, _cssContainerQueries.default)(muiTheme);
|
|
39
42
|
muiTheme.applyStyles = _applyStyles.default;
|
|
40
43
|
muiTheme = args.reduce((acc, argument) => (0, _deepmerge.default)(acc, argument), muiTheme);
|
|
41
|
-
muiTheme.unstable_sxConfig =
|
|
44
|
+
muiTheme.unstable_sxConfig = {
|
|
45
|
+
..._defaultSxConfig.default,
|
|
46
|
+
...(other == null ? void 0 : other.unstable_sxConfig)
|
|
47
|
+
};
|
|
42
48
|
muiTheme.unstable_sx = function sx(props) {
|
|
43
49
|
return (0, _styleFunctionSx.default)({
|
|
44
50
|
sx: props,
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = cssContainerQueries;
|
|
8
|
+
exports.getContainerQuery = getContainerQuery;
|
|
9
|
+
exports.isCqShorthand = isCqShorthand;
|
|
10
|
+
exports.sortContainerQueries = sortContainerQueries;
|
|
11
|
+
var _formatMuiErrorMessage2 = _interopRequireDefault(require("@mui/utils/formatMuiErrorMessage"));
|
|
12
|
+
/**
|
|
13
|
+
* For using in `sx` prop to sort the breakpoint from low to high.
|
|
14
|
+
* Note: this function does not work and will not support multiple units.
|
|
15
|
+
* e.g. input: { '@container (min-width:300px)': '1rem', '@container (min-width:40rem)': '2rem' }
|
|
16
|
+
* output: { '@container (min-width:40rem)': '2rem', '@container (min-width:300px)': '1rem' } // since 40 < 300 eventhough 40rem > 300px
|
|
17
|
+
*/
|
|
18
|
+
function sortContainerQueries(theme, css) {
|
|
19
|
+
if (!theme.containerQueries) {
|
|
20
|
+
return css;
|
|
21
|
+
}
|
|
22
|
+
const sorted = Object.keys(css).filter(key => key.startsWith('@container')).sort((a, b) => {
|
|
23
|
+
var _a$match, _b$match;
|
|
24
|
+
const regex = /min-width:\s*([0-9.]+)/;
|
|
25
|
+
return +(((_a$match = a.match(regex)) == null ? void 0 : _a$match[1]) || 0) - +(((_b$match = b.match(regex)) == null ? void 0 : _b$match[1]) || 0);
|
|
26
|
+
});
|
|
27
|
+
if (!sorted.length) {
|
|
28
|
+
return css;
|
|
29
|
+
}
|
|
30
|
+
return sorted.reduce((acc, key) => {
|
|
31
|
+
const value = css[key];
|
|
32
|
+
delete acc[key];
|
|
33
|
+
acc[key] = value;
|
|
34
|
+
return acc;
|
|
35
|
+
}, {
|
|
36
|
+
...css
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
function isCqShorthand(breakpointKeys, value) {
|
|
40
|
+
return value === '@' || value.startsWith('@') && (breakpointKeys.some(key => value.startsWith(`@${key}`)) || !!value.match(/^@\d/));
|
|
41
|
+
}
|
|
42
|
+
function getContainerQuery(theme, shorthand) {
|
|
43
|
+
const matches = shorthand.match(/^@([^/]+)?\/?(.+)?$/);
|
|
44
|
+
if (!matches) {
|
|
45
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
46
|
+
throw new Error(process.env.NODE_ENV !== "production" ? `MUI: The provided shorthand ${`(${shorthand})`} is invalid. The format should be \`@<breakpoint | number>\` or \`@<breakpoint | number>/<container>\`.
|
|
47
|
+
For example, \`@sm\` or \`@600\` or \`@40rem/sidebar\`.` : (0, _formatMuiErrorMessage2.default)(21, `(${shorthand})`));
|
|
48
|
+
}
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
const [, containerQuery, containerName] = matches;
|
|
52
|
+
const value = Number.isNaN(+containerQuery) ? containerQuery || 0 : +containerQuery;
|
|
53
|
+
return theme.containerQueries(containerName).up(value);
|
|
54
|
+
}
|
|
55
|
+
function cssContainerQueries(themeInput) {
|
|
56
|
+
const toContainerQuery = (mediaQuery, name) => mediaQuery.replace('@media', name ? `@container ${name}` : '@container');
|
|
57
|
+
function attachCq(node, name) {
|
|
58
|
+
node.up = (...args) => toContainerQuery(themeInput.breakpoints.up(...args), name);
|
|
59
|
+
node.down = (...args) => toContainerQuery(themeInput.breakpoints.down(...args), name);
|
|
60
|
+
node.between = (...args) => toContainerQuery(themeInput.breakpoints.between(...args), name);
|
|
61
|
+
node.only = (...args) => toContainerQuery(themeInput.breakpoints.only(...args), name);
|
|
62
|
+
node.not = (...args) => {
|
|
63
|
+
const result = toContainerQuery(themeInput.breakpoints.not(...args), name);
|
|
64
|
+
if (result.includes('not all and')) {
|
|
65
|
+
// `@container` does not work with `not all and`, so need to invert the logic
|
|
66
|
+
return result.replace('not all and ', '').replace('min-width:', 'width<').replace('max-width:', 'width>').replace('and', 'or');
|
|
67
|
+
}
|
|
68
|
+
return result;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const node = {};
|
|
72
|
+
const containerQueries = name => {
|
|
73
|
+
attachCq(node, name);
|
|
74
|
+
return node;
|
|
75
|
+
};
|
|
76
|
+
attachCq(containerQueries);
|
|
77
|
+
return {
|
|
78
|
+
...themeInput,
|
|
79
|
+
containerQueries
|
|
80
|
+
};
|
|
81
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "default", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function () {
|
|
9
|
+
return _cssContainerQueries.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "getContainerQuery", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () {
|
|
15
|
+
return _cssContainerQueries.getContainerQuery;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "isCqShorthand", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () {
|
|
21
|
+
return _cssContainerQueries.isCqShorthand;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "sortContainerQueries", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _cssContainerQueries.sortContainerQueries;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
var _cssContainerQueries = _interopRequireWildcard(require("./cssContainerQueries"));
|
|
31
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
32
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.DISABLE_CSS_TRANSITION = void 0;
|
|
8
8
|
exports.default = createCssVarsProvider;
|
|
9
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
10
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
|
|
11
9
|
var _formatMuiErrorMessage2 = _interopRequireDefault(require("@mui/utils/formatMuiErrorMessage"));
|
|
12
10
|
var React = _interopRequireWildcard(require("react"));
|
|
13
11
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
@@ -17,7 +15,6 @@ var _ThemeProvider = _interopRequireDefault(require("../ThemeProvider"));
|
|
|
17
15
|
var _getInitColorSchemeScript = _interopRequireWildcard(require("./getInitColorSchemeScript"));
|
|
18
16
|
var _useCurrentColorScheme = _interopRequireDefault(require("./useCurrentColorScheme"));
|
|
19
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
20
|
-
const _excluded = ["colorSchemes", "components", "cssVarPrefix"];
|
|
21
18
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
22
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
23
20
|
const DISABLE_CSS_TRANSITION = exports.DISABLE_CSS_TRANSITION = '*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}';
|
|
@@ -76,13 +73,12 @@ function createCssVarsProvider(options) {
|
|
|
76
73
|
const ctx = React.useContext(ColorSchemeContext);
|
|
77
74
|
const nested = !!ctx && !disableNestedContext;
|
|
78
75
|
const scopedTheme = themeProp[themeId];
|
|
79
|
-
const
|
|
80
|
-
{
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
restThemeProp = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
|
|
76
|
+
const {
|
|
77
|
+
colorSchemes = {},
|
|
78
|
+
components = {},
|
|
79
|
+
cssVarPrefix,
|
|
80
|
+
...restThemeProp
|
|
81
|
+
} = scopedTheme || themeProp;
|
|
86
82
|
const allColorSchemes = Object.keys(colorSchemes);
|
|
87
83
|
const defaultLightColorScheme = typeof defaultColorScheme === 'string' ? defaultColorScheme : defaultColorScheme.light;
|
|
88
84
|
const defaultDarkColorScheme = typeof defaultColorScheme === 'string' ? defaultColorScheme : defaultColorScheme.dark;
|
|
@@ -137,12 +133,13 @@ function createCssVarsProvider(options) {
|
|
|
137
133
|
const themeVars = ((_restThemeProp$genera = restThemeProp.generateThemeVars) == null ? void 0 : _restThemeProp$genera.call(restThemeProp)) || restThemeProp.vars;
|
|
138
134
|
|
|
139
135
|
// 3. Start composing the theme object
|
|
140
|
-
const theme =
|
|
136
|
+
const theme = {
|
|
137
|
+
...restThemeProp,
|
|
141
138
|
components,
|
|
142
139
|
colorSchemes,
|
|
143
140
|
cssVarPrefix,
|
|
144
141
|
vars: themeVars
|
|
145
|
-
}
|
|
142
|
+
};
|
|
146
143
|
if (typeof theme.generateSpacing === 'function') {
|
|
147
144
|
theme.spacing = theme.generateSpacing();
|
|
148
145
|
}
|
|
@@ -154,7 +151,10 @@ function createCssVarsProvider(options) {
|
|
|
154
151
|
Object.keys(scheme).forEach(schemeKey => {
|
|
155
152
|
if (scheme[schemeKey] && typeof scheme[schemeKey] === 'object') {
|
|
156
153
|
// shallow merge the 1st level structure of the theme.
|
|
157
|
-
theme[schemeKey] =
|
|
154
|
+
theme[schemeKey] = {
|
|
155
|
+
...theme[schemeKey],
|
|
156
|
+
...scheme[schemeKey]
|
|
157
|
+
};
|
|
158
158
|
} else {
|
|
159
159
|
theme[schemeKey] = scheme[schemeKey];
|
|
160
160
|
}
|
|
@@ -310,14 +310,15 @@ function createCssVarsProvider(options) {
|
|
|
310
310
|
} : void 0;
|
|
311
311
|
const defaultLightColorScheme = typeof designSystemColorScheme === 'string' ? designSystemColorScheme : designSystemColorScheme.light;
|
|
312
312
|
const defaultDarkColorScheme = typeof designSystemColorScheme === 'string' ? designSystemColorScheme : designSystemColorScheme.dark;
|
|
313
|
-
const getInitColorSchemeScript = params => (0, _getInitColorSchemeScript.default)(
|
|
313
|
+
const getInitColorSchemeScript = params => (0, _getInitColorSchemeScript.default)({
|
|
314
314
|
attribute: defaultAttribute,
|
|
315
315
|
colorSchemeStorageKey: defaultColorSchemeStorageKey,
|
|
316
316
|
defaultMode: designSystemMode,
|
|
317
317
|
defaultLightColorScheme,
|
|
318
318
|
defaultDarkColorScheme,
|
|
319
|
-
modeStorageKey: defaultModeStorageKey
|
|
320
|
-
|
|
319
|
+
modeStorageKey: defaultModeStorageKey,
|
|
320
|
+
...params
|
|
321
|
+
});
|
|
321
322
|
return {
|
|
322
323
|
CssVarsProvider,
|
|
323
324
|
useColorScheme,
|
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
8
|
var _prepareCssVars = _interopRequireDefault(require("./prepareCssVars"));
|
|
10
9
|
function createCssVarsTheme(theme) {
|
|
11
10
|
const output = theme;
|
|
12
|
-
const result = (0, _prepareCssVars.default)(output,
|
|
11
|
+
const result = (0, _prepareCssVars.default)(output, {
|
|
12
|
+
...theme,
|
|
13
13
|
prefix: theme.cssVarPrefix
|
|
14
|
-
})
|
|
14
|
+
});
|
|
15
15
|
output.vars = result.vars;
|
|
16
16
|
output.generateThemeVars = result.generateThemeVars;
|
|
17
17
|
output.generateStyleSheets = result.generateStyleSheets;
|
package/node/cssVars/index.js
CHANGED
|
@@ -29,7 +29,14 @@ Object.defineProperty(exports, "prepareCssVars", {
|
|
|
29
29
|
return _prepareCssVars.default;
|
|
30
30
|
}
|
|
31
31
|
});
|
|
32
|
+
Object.defineProperty(exports, "prepareTypographyVars", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _prepareTypographyVars.default;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
32
38
|
var _createCssVarsProvider = _interopRequireDefault(require("./createCssVarsProvider"));
|
|
33
39
|
var _getInitColorSchemeScript = _interopRequireDefault(require("./getInitColorSchemeScript"));
|
|
34
40
|
var _prepareCssVars = _interopRequireDefault(require("./prepareCssVars"));
|
|
41
|
+
var _prepareTypographyVars = _interopRequireDefault(require("./prepareTypographyVars"));
|
|
35
42
|
var _createCssVarsTheme = _interopRequireDefault(require("./createCssVarsTheme"));
|