@mui/system 5.6.3 → 5.8.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.spec.d.ts +1 -1
- package/CHANGELOG.md +238 -0
- package/Container/Container.d.ts +13 -0
- package/Container/Container.js +81 -0
- package/Container/ContainerProps.d.ts +40 -0
- package/Container/ContainerProps.js +5 -0
- package/Container/containerClasses.d.ts +22 -0
- package/Container/containerClasses.js +17 -0
- package/Container/createContainer.d.ts +18 -0
- package/Container/createContainer.js +172 -0
- package/Container/index.d.ts +5 -0
- package/Container/index.js +42 -0
- package/Container/package.json +6 -0
- package/ThemeProvider/ThemeProvider.d.ts +1 -1
- package/createBox.spec.d.ts +1 -1
- package/createStyled.js +3 -1
- package/createTheme/createBreakpoints.d.ts +5 -0
- package/createTheme/createSpacing.d.ts +10 -10
- package/cssVars/createCssVarsProvider.d.ts +25 -0
- package/cssVars/createCssVarsProvider.js +74 -57
- package/cssVars/createCssVarsProvider.spec.d.ts +1 -1
- package/cssVars/createGetCssVar.d.ts +5 -5
- package/cssVars/cssVarsParser.d.ts +70 -70
- package/cssVars/cssVarsParser.js +11 -9
- package/cssVars/getInitColorSchemeScript.d.ts +40 -12
- package/cssVars/getInitColorSchemeScript.js +4 -3
- package/cssVars/index.d.ts +2 -2
- package/cssVars/useCurrentColorScheme.d.ts +53 -50
- package/cssVars/useCurrentColorScheme.js +17 -7
- package/esm/Container/Container.js +70 -0
- package/esm/Container/ContainerProps.js +1 -0
- package/esm/Container/containerClasses.js +6 -0
- package/esm/Container/createContainer.js +151 -0
- package/esm/Container/index.js +3 -0
- package/esm/createStyled.js +3 -1
- package/esm/cssVars/createCssVarsProvider.js +76 -57
- package/esm/cssVars/cssVarsParser.js +11 -9
- package/esm/cssVars/getInitColorSchemeScript.js +4 -3
- package/esm/cssVars/useCurrentColorScheme.js +17 -7
- package/esm/index.js +4 -1
- package/index.d.ts +6 -0
- package/index.js +32 -2
- package/index.spec.d.ts +1 -1
- package/legacy/Container/Container.js +70 -0
- package/legacy/Container/ContainerProps.js +1 -0
- package/legacy/Container/containerClasses.js +6 -0
- package/legacy/Container/createContainer.js +148 -0
- package/legacy/Container/index.js +3 -0
- package/legacy/createStyled.js +3 -1
- package/legacy/cssVars/createCssVarsProvider.js +83 -55
- package/legacy/cssVars/cssVarsParser.js +11 -7
- package/legacy/cssVars/getInitColorSchemeScript.js +6 -3
- package/legacy/cssVars/useCurrentColorScheme.js +20 -9
- package/legacy/index.js +5 -2
- package/modern/Container/Container.js +70 -0
- package/modern/Container/ContainerProps.js +1 -0
- package/modern/Container/containerClasses.js +6 -0
- package/modern/Container/createContainer.js +151 -0
- package/modern/Container/index.js +3 -0
- package/modern/createStyled.js +3 -1
- package/modern/cssVars/createCssVarsProvider.js +76 -55
- package/modern/cssVars/cssVarsParser.js +11 -9
- package/modern/cssVars/getInitColorSchemeScript.js +4 -3
- package/modern/cssVars/useCurrentColorScheme.js +17 -7
- package/modern/index.js +5 -2
- package/package.json +5 -5
- package/styleFunctionSx/styleFunctionSx.spec.d.ts +1 -1
|
@@ -1,12 +1,40 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
export declare const DEFAULT_MODE_STORAGE_KEY = "mui-mode";
|
|
3
|
-
export declare const DEFAULT_COLOR_SCHEME_STORAGE_KEY = "mui-color-scheme";
|
|
4
|
-
export declare const DEFAULT_ATTRIBUTE = "data-mui-color-scheme";
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const DEFAULT_MODE_STORAGE_KEY = "mui-mode";
|
|
3
|
+
export declare const DEFAULT_COLOR_SCHEME_STORAGE_KEY = "mui-color-scheme";
|
|
4
|
+
export declare const DEFAULT_ATTRIBUTE = "data-mui-color-scheme";
|
|
5
|
+
export interface GetInitColorSchemeScriptOptions {
|
|
6
|
+
/**
|
|
7
|
+
* If `true`, the initial color scheme is set to the user's prefers-color-scheme mode
|
|
8
|
+
* @default false
|
|
9
|
+
*/
|
|
10
|
+
enableSystem?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* The default color scheme to be used on the light mode
|
|
13
|
+
*/
|
|
14
|
+
defaultLightColorScheme?: string;
|
|
15
|
+
/**
|
|
16
|
+
* The default color scheme to be used on the dark mode
|
|
17
|
+
*/
|
|
18
|
+
defaultDarkColorScheme?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The node (provided as string) used to attach the color-scheme attribute
|
|
21
|
+
* @default 'document.documentElement'
|
|
22
|
+
*/
|
|
23
|
+
colorSchemeNode?: string;
|
|
24
|
+
/**
|
|
25
|
+
* localStorage key used to store `mode`
|
|
26
|
+
* @default 'mui-mode'
|
|
27
|
+
*/
|
|
28
|
+
modeStorageKey?: string;
|
|
29
|
+
/**
|
|
30
|
+
* localStorage key used to store `colorScheme`
|
|
31
|
+
* @default 'mui-color-scheme'
|
|
32
|
+
*/
|
|
33
|
+
colorSchemeStorageKey?: string;
|
|
34
|
+
/**
|
|
35
|
+
* DOM attribute for applying color scheme
|
|
36
|
+
* @default 'data-mui-color-scheme'
|
|
37
|
+
*/
|
|
38
|
+
attribute?: string;
|
|
39
|
+
}
|
|
40
|
+
export default function getInitColorSchemeScript(options?: GetInitColorSchemeScriptOptions): JSX.Element;
|
|
@@ -23,12 +23,13 @@ exports.DEFAULT_ATTRIBUTE = DEFAULT_ATTRIBUTE;
|
|
|
23
23
|
|
|
24
24
|
function getInitColorSchemeScript(options) {
|
|
25
25
|
const {
|
|
26
|
-
enableSystem,
|
|
26
|
+
enableSystem = false,
|
|
27
27
|
defaultLightColorScheme = 'light',
|
|
28
28
|
defaultDarkColorScheme = 'dark',
|
|
29
29
|
modeStorageKey = DEFAULT_MODE_STORAGE_KEY,
|
|
30
30
|
colorSchemeStorageKey = DEFAULT_COLOR_SCHEME_STORAGE_KEY,
|
|
31
|
-
attribute = DEFAULT_ATTRIBUTE
|
|
31
|
+
attribute = DEFAULT_ATTRIBUTE,
|
|
32
|
+
colorSchemeNode = 'document.documentElement'
|
|
32
33
|
} = options || {};
|
|
33
34
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)("script", {
|
|
34
35
|
// eslint-disable-next-line react/no-danger
|
|
@@ -52,7 +53,7 @@ function getInitColorSchemeScript(options) {
|
|
|
52
53
|
colorScheme = localStorage.getItem('${colorSchemeStorageKey}-dark') || '${defaultDarkColorScheme}';
|
|
53
54
|
}
|
|
54
55
|
if (colorScheme) {
|
|
55
|
-
|
|
56
|
+
${colorSchemeNode}.setAttribute('${attribute}', colorScheme);
|
|
56
57
|
}
|
|
57
58
|
} catch (e) {} })();`
|
|
58
59
|
}
|
package/cssVars/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { default } from './createCssVarsProvider';
|
|
2
|
-
export type { CreateCssVarsProviderResult } from './createCssVarsProvider';
|
|
1
|
+
export { default } from './createCssVarsProvider';
|
|
2
|
+
export type { CreateCssVarsProviderResult } from './createCssVarsProvider';
|
|
@@ -1,50 +1,53 @@
|
|
|
1
|
-
export declare type Mode = 'light' | 'dark' | 'system';
|
|
2
|
-
export declare type SystemMode = Exclude<Mode, 'system'>;
|
|
3
|
-
export interface State<SupportedColorScheme extends string> {
|
|
4
|
-
/**
|
|
5
|
-
* User selected mode.
|
|
6
|
-
* Note: on the server, mode is always undefined
|
|
7
|
-
*/
|
|
8
|
-
mode: Mode | undefined;
|
|
9
|
-
/**
|
|
10
|
-
* Only valid if `mode: 'system'`, either 'light' | 'dark'.
|
|
11
|
-
*/
|
|
12
|
-
systemMode: SystemMode | undefined;
|
|
13
|
-
/**
|
|
14
|
-
* The color scheme for the light mode.
|
|
15
|
-
*/
|
|
16
|
-
lightColorScheme: SupportedColorScheme;
|
|
17
|
-
/**
|
|
18
|
-
* The color scheme for the dark mode.
|
|
19
|
-
*/
|
|
20
|
-
darkColorScheme: SupportedColorScheme;
|
|
21
|
-
}
|
|
22
|
-
export declare type Result<SupportedColorScheme extends string> = State<SupportedColorScheme> & {
|
|
23
|
-
/**
|
|
24
|
-
* The current application color scheme. It is always `undefined` on the server.
|
|
25
|
-
*/
|
|
26
|
-
colorScheme: SupportedColorScheme | undefined;
|
|
27
|
-
/**
|
|
28
|
-
* `mode` is saved to internal state and localStorage
|
|
29
|
-
* If `mode` is null, it will be reset to the defaultMode
|
|
30
|
-
*/
|
|
31
|
-
setMode: (mode: Mode | null) => void;
|
|
32
|
-
/**
|
|
33
|
-
* `colorScheme` is saved to internal state and localStorage
|
|
34
|
-
* If `colorScheme` is null, it will be reset to the defaultColorScheme (light | dark)
|
|
35
|
-
*/
|
|
36
|
-
setColorScheme: (colorScheme: SupportedColorScheme | Partial<{
|
|
37
|
-
light: SupportedColorScheme | null;
|
|
38
|
-
dark: SupportedColorScheme | null;
|
|
39
|
-
}> | null) => void;
|
|
40
|
-
};
|
|
41
|
-
export declare function getSystemMode(mode: undefined | string): SystemMode | undefined;
|
|
42
|
-
export declare function getColorScheme<SupportedColorScheme extends string>(state: State<SupportedColorScheme>): SupportedColorScheme | undefined;
|
|
43
|
-
|
|
44
|
-
defaultLightColorScheme: SupportedColorScheme;
|
|
45
|
-
defaultDarkColorScheme: SupportedColorScheme;
|
|
46
|
-
supportedColorSchemes: Array<SupportedColorScheme>;
|
|
47
|
-
defaultMode?: Mode;
|
|
48
|
-
modeStorageKey?: string;
|
|
49
|
-
colorSchemeStorageKey?: string;
|
|
50
|
-
|
|
1
|
+
export declare type Mode = 'light' | 'dark' | 'system';
|
|
2
|
+
export declare type SystemMode = Exclude<Mode, 'system'>;
|
|
3
|
+
export interface State<SupportedColorScheme extends string> {
|
|
4
|
+
/**
|
|
5
|
+
* User selected mode.
|
|
6
|
+
* Note: on the server, mode is always undefined
|
|
7
|
+
*/
|
|
8
|
+
mode: Mode | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Only valid if `mode: 'system'`, either 'light' | 'dark'.
|
|
11
|
+
*/
|
|
12
|
+
systemMode: SystemMode | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* The color scheme for the light mode.
|
|
15
|
+
*/
|
|
16
|
+
lightColorScheme: SupportedColorScheme;
|
|
17
|
+
/**
|
|
18
|
+
* The color scheme for the dark mode.
|
|
19
|
+
*/
|
|
20
|
+
darkColorScheme: SupportedColorScheme;
|
|
21
|
+
}
|
|
22
|
+
export declare type Result<SupportedColorScheme extends string> = State<SupportedColorScheme> & {
|
|
23
|
+
/**
|
|
24
|
+
* The current application color scheme. It is always `undefined` on the server.
|
|
25
|
+
*/
|
|
26
|
+
colorScheme: SupportedColorScheme | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* `mode` is saved to internal state and localStorage
|
|
29
|
+
* If `mode` is null, it will be reset to the defaultMode
|
|
30
|
+
*/
|
|
31
|
+
setMode: (mode: Mode | null) => void;
|
|
32
|
+
/**
|
|
33
|
+
* `colorScheme` is saved to internal state and localStorage
|
|
34
|
+
* If `colorScheme` is null, it will be reset to the defaultColorScheme (light | dark)
|
|
35
|
+
*/
|
|
36
|
+
setColorScheme: (colorScheme: SupportedColorScheme | Partial<{
|
|
37
|
+
light: SupportedColorScheme | null;
|
|
38
|
+
dark: SupportedColorScheme | null;
|
|
39
|
+
}> | null) => void;
|
|
40
|
+
};
|
|
41
|
+
export declare function getSystemMode(mode: undefined | string): SystemMode | undefined;
|
|
42
|
+
export declare function getColorScheme<SupportedColorScheme extends string>(state: State<SupportedColorScheme>): SupportedColorScheme | undefined;
|
|
43
|
+
interface UseCurrentColoSchemeOptions<SupportedColorScheme extends string> {
|
|
44
|
+
defaultLightColorScheme: SupportedColorScheme;
|
|
45
|
+
defaultDarkColorScheme: SupportedColorScheme;
|
|
46
|
+
supportedColorSchemes: Array<SupportedColorScheme>;
|
|
47
|
+
defaultMode?: Mode;
|
|
48
|
+
modeStorageKey?: string;
|
|
49
|
+
colorSchemeStorageKey?: string;
|
|
50
|
+
storageWindow?: Window | null;
|
|
51
|
+
}
|
|
52
|
+
export default function useCurrentColorScheme<SupportedColorScheme extends string>(options: UseCurrentColoSchemeOptions<SupportedColorScheme>): Result<SupportedColorScheme>;
|
|
53
|
+
export {};
|
|
@@ -81,7 +81,8 @@ function useCurrentColorScheme(options) {
|
|
|
81
81
|
defaultDarkColorScheme,
|
|
82
82
|
supportedColorSchemes = [],
|
|
83
83
|
modeStorageKey = _getInitColorSchemeScript.DEFAULT_MODE_STORAGE_KEY,
|
|
84
|
-
colorSchemeStorageKey = _getInitColorSchemeScript.DEFAULT_COLOR_SCHEME_STORAGE_KEY
|
|
84
|
+
colorSchemeStorageKey = _getInitColorSchemeScript.DEFAULT_COLOR_SCHEME_STORAGE_KEY,
|
|
85
|
+
storageWindow = typeof window === 'undefined' ? undefined : window
|
|
85
86
|
} = options;
|
|
86
87
|
const joinedColorSchemes = supportedColorSchemes.join(',');
|
|
87
88
|
const [state, setState] = React.useState(() => {
|
|
@@ -98,6 +99,10 @@ function useCurrentColorScheme(options) {
|
|
|
98
99
|
setState(currentState => {
|
|
99
100
|
const newMode = !mode ? defaultMode : mode;
|
|
100
101
|
|
|
102
|
+
if (mode === currentState.mode) {
|
|
103
|
+
return currentState;
|
|
104
|
+
}
|
|
105
|
+
|
|
101
106
|
if (typeof localStorage !== 'undefined') {
|
|
102
107
|
localStorage.setItem(modeStorageKey, newMode);
|
|
103
108
|
}
|
|
@@ -110,7 +115,7 @@ function useCurrentColorScheme(options) {
|
|
|
110
115
|
}, [modeStorageKey, defaultMode]);
|
|
111
116
|
const setColorScheme = React.useCallback(value => {
|
|
112
117
|
if (!value || typeof value === 'string') {
|
|
113
|
-
if (value && !
|
|
118
|
+
if (value && !joinedColorSchemes.includes(value)) {
|
|
114
119
|
console.error(`\`${value}\` does not exist in \`theme.colorSchemes\`.`);
|
|
115
120
|
} else {
|
|
116
121
|
setState(currentState => {
|
|
@@ -137,7 +142,7 @@ function useCurrentColorScheme(options) {
|
|
|
137
142
|
return newState;
|
|
138
143
|
});
|
|
139
144
|
}
|
|
140
|
-
} else if (value.light && !
|
|
145
|
+
} else if (value.light && !joinedColorSchemes.includes(value.light) || value.dark && !joinedColorSchemes.includes(value.dark)) {
|
|
141
146
|
console.error(`\`${value}\` does not exist in \`theme.colorSchemes\`.`);
|
|
142
147
|
} else {
|
|
143
148
|
setState(currentState => {
|
|
@@ -162,7 +167,7 @@ function useCurrentColorScheme(options) {
|
|
|
162
167
|
localStorage.setItem(`${colorSchemeStorageKey}-dark`, value.dark);
|
|
163
168
|
}
|
|
164
169
|
}
|
|
165
|
-
}, [
|
|
170
|
+
}, [joinedColorSchemes, colorSchemeStorageKey, defaultLightColorScheme, defaultDarkColorScheme]);
|
|
166
171
|
const handleMediaQuery = React.useCallback(e => {
|
|
167
172
|
if (state.mode === 'system') {
|
|
168
173
|
setState(currentState => (0, _extends2.default)({}, currentState, {
|
|
@@ -224,9 +229,14 @@ function useCurrentColorScheme(options) {
|
|
|
224
229
|
}
|
|
225
230
|
};
|
|
226
231
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
232
|
+
if (storageWindow) {
|
|
233
|
+
// For syncing color-scheme changes between iframes
|
|
234
|
+
storageWindow.addEventListener('storage', handleStorage);
|
|
235
|
+
return () => storageWindow.removeEventListener('storage', handleStorage);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
return undefined;
|
|
239
|
+
}, [setColorScheme, setMode, modeStorageKey, colorSchemeStorageKey, joinedColorSchemes, defaultMode, storageWindow]);
|
|
230
240
|
return (0, _extends2.default)({}, state, {
|
|
231
241
|
colorScheme,
|
|
232
242
|
setMode,
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import PropTypes from 'prop-types';
|
|
2
|
+
import createContainer from './createContainer';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* Demos:
|
|
6
|
+
*
|
|
7
|
+
* - [Container (Material UI)](https://mui.com/material-ui/react-container/)
|
|
8
|
+
* - [Container (MUI System)](https://mui.com/system/react-container/)
|
|
9
|
+
*
|
|
10
|
+
* API:
|
|
11
|
+
*
|
|
12
|
+
* - [Container API](https://mui.com/system/api/container/)
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const Container = createContainer();
|
|
16
|
+
process.env.NODE_ENV !== "production" ? Container.propTypes
|
|
17
|
+
/* remove-proptypes */
|
|
18
|
+
= {
|
|
19
|
+
// ----------------------------- Warning --------------------------------
|
|
20
|
+
// | These PropTypes are generated from the TypeScript type definitions |
|
|
21
|
+
// | To update them edit TypeScript types and run "yarn proptypes" |
|
|
22
|
+
// ----------------------------------------------------------------------
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* @ignore
|
|
26
|
+
*/
|
|
27
|
+
children: PropTypes.node,
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Override or extend the styles applied to the component.
|
|
31
|
+
*/
|
|
32
|
+
classes: PropTypes.object,
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The component used for the root node.
|
|
36
|
+
* Either a string to use a HTML element or a component.
|
|
37
|
+
*/
|
|
38
|
+
component: PropTypes.elementType,
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* If `true`, the left and right padding is removed.
|
|
42
|
+
* @default false
|
|
43
|
+
*/
|
|
44
|
+
disableGutters: PropTypes.bool,
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Set the max-width to match the min-width of the current breakpoint.
|
|
48
|
+
* This is useful if you'd prefer to design for a fixed set of sizes
|
|
49
|
+
* instead of trying to accommodate a fully fluid viewport.
|
|
50
|
+
* It's fluid by default.
|
|
51
|
+
* @default false
|
|
52
|
+
*/
|
|
53
|
+
fixed: PropTypes.bool,
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Determine the max-width of the container.
|
|
57
|
+
* The container width grows with the size of the screen.
|
|
58
|
+
* Set to `false` to disable `maxWidth`.
|
|
59
|
+
* @default 'lg'
|
|
60
|
+
*/
|
|
61
|
+
maxWidth: PropTypes
|
|
62
|
+
/* @typescript-to-proptypes-ignore */
|
|
63
|
+
.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
67
|
+
*/
|
|
68
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
69
|
+
} : void 0;
|
|
70
|
+
export default Container;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { unstable_generateUtilityClass as generateUtilityClass, unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';
|
|
2
|
+
export function getContainerUtilityClass(slot) {
|
|
3
|
+
return generateUtilityClass('MuiContainer', slot);
|
|
4
|
+
}
|
|
5
|
+
const containerClasses = generateUtilityClasses('MuiContainer', ['root', 'disableGutters', 'fixed', 'maxWidthXs', 'maxWidthSm', 'maxWidthMd', 'maxWidthLg', 'maxWidthXl']);
|
|
6
|
+
export default containerClasses;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
+
const _excluded = ["className", "component", "disableGutters", "fixed", "maxWidth", "classes"];
|
|
4
|
+
import * as React from 'react';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import clsx from 'clsx';
|
|
7
|
+
import { unstable_capitalize as capitalize, unstable_composeClasses as composeClasses, unstable_generateUtilityClass as generateUtilityClass } from '@mui/utils';
|
|
8
|
+
import useThemePropsSystem from '../useThemeProps';
|
|
9
|
+
import systemStyled from '../styled';
|
|
10
|
+
import createTheme from '../createTheme';
|
|
11
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
|
+
const defaultTheme = createTheme();
|
|
13
|
+
const defaultCreateStyledComponent = systemStyled('div', {
|
|
14
|
+
name: 'MuiContainer',
|
|
15
|
+
slot: 'Root',
|
|
16
|
+
overridesResolver: (props, styles) => {
|
|
17
|
+
const {
|
|
18
|
+
ownerState
|
|
19
|
+
} = props;
|
|
20
|
+
return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
const useThemePropsDefault = inProps => useThemePropsSystem({
|
|
25
|
+
props: inProps,
|
|
26
|
+
name: 'MuiContainer',
|
|
27
|
+
defaultTheme
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
const useUtilityClasses = (ownerState, componentName) => {
|
|
31
|
+
const getContainerUtilityClass = slot => {
|
|
32
|
+
return generateUtilityClass(componentName, slot);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
const {
|
|
36
|
+
classes,
|
|
37
|
+
fixed,
|
|
38
|
+
disableGutters,
|
|
39
|
+
maxWidth
|
|
40
|
+
} = ownerState;
|
|
41
|
+
const slots = {
|
|
42
|
+
root: ['root', maxWidth && `maxWidth${capitalize(String(maxWidth))}`, fixed && 'fixed', disableGutters && 'disableGutters']
|
|
43
|
+
};
|
|
44
|
+
return composeClasses(slots, getContainerUtilityClass, classes);
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export default function createContainer(options = {}) {
|
|
48
|
+
const {
|
|
49
|
+
// This will allow adding custom styled fn (for example for custom sx style function)
|
|
50
|
+
createStyledComponent = defaultCreateStyledComponent,
|
|
51
|
+
useThemeProps = useThemePropsDefault,
|
|
52
|
+
componentName = 'MuiContainer'
|
|
53
|
+
} = options;
|
|
54
|
+
const ContainerRoot = createStyledComponent(({
|
|
55
|
+
theme,
|
|
56
|
+
ownerState
|
|
57
|
+
}) => _extends({
|
|
58
|
+
width: '100%',
|
|
59
|
+
marginLeft: 'auto',
|
|
60
|
+
boxSizing: 'border-box',
|
|
61
|
+
marginRight: 'auto',
|
|
62
|
+
display: 'block'
|
|
63
|
+
}, !ownerState.disableGutters && {
|
|
64
|
+
paddingLeft: theme.spacing(2),
|
|
65
|
+
paddingRight: theme.spacing(2),
|
|
66
|
+
// @ts-ignore module augmentation fails if custom breakpoints are used
|
|
67
|
+
[theme.breakpoints.up('sm')]: {
|
|
68
|
+
paddingLeft: theme.spacing(3),
|
|
69
|
+
paddingRight: theme.spacing(3)
|
|
70
|
+
}
|
|
71
|
+
}), ({
|
|
72
|
+
theme,
|
|
73
|
+
ownerState
|
|
74
|
+
}) => ownerState.fixed && Object.keys(theme.breakpoints.values).reduce((acc, breakpointValueKey) => {
|
|
75
|
+
const breakpoint = breakpointValueKey;
|
|
76
|
+
const value = theme.breakpoints.values[breakpoint];
|
|
77
|
+
|
|
78
|
+
if (value !== 0) {
|
|
79
|
+
// @ts-ignore
|
|
80
|
+
acc[theme.breakpoints.up(breakpoint)] = {
|
|
81
|
+
maxWidth: `${value}${theme.breakpoints.unit}`
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
return acc;
|
|
86
|
+
}, {}), ({
|
|
87
|
+
theme,
|
|
88
|
+
ownerState
|
|
89
|
+
}) => _extends({}, ownerState.maxWidth === 'xs' && {
|
|
90
|
+
// @ts-ignore module augmentation fails if custom breakpoints are used
|
|
91
|
+
[theme.breakpoints.up('xs')]: {
|
|
92
|
+
// @ts-ignore module augmentation fails if custom breakpoints are used
|
|
93
|
+
maxWidth: Math.max(theme.breakpoints.values.xs, 444)
|
|
94
|
+
}
|
|
95
|
+
}, ownerState.maxWidth && // @ts-ignore module augmentation fails if custom breakpoints are used
|
|
96
|
+
ownerState.maxWidth !== 'xs' && {
|
|
97
|
+
// @ts-ignore module augmentation fails if custom breakpoints are used
|
|
98
|
+
[theme.breakpoints.up(ownerState.maxWidth)]: {
|
|
99
|
+
// @ts-ignore module augmentation fails if custom breakpoints are used
|
|
100
|
+
maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`
|
|
101
|
+
}
|
|
102
|
+
}));
|
|
103
|
+
const Container = /*#__PURE__*/React.forwardRef(function Container(inProps, ref) {
|
|
104
|
+
const props = useThemeProps(inProps);
|
|
105
|
+
|
|
106
|
+
const {
|
|
107
|
+
className,
|
|
108
|
+
component = 'div',
|
|
109
|
+
disableGutters = false,
|
|
110
|
+
fixed = false,
|
|
111
|
+
maxWidth = 'lg'
|
|
112
|
+
} = props,
|
|
113
|
+
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
114
|
+
|
|
115
|
+
const ownerState = _extends({}, props, {
|
|
116
|
+
component,
|
|
117
|
+
disableGutters,
|
|
118
|
+
fixed,
|
|
119
|
+
maxWidth
|
|
120
|
+
}); // @ts-ignore module augmentation fails if custom breakpoints are used
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
const classes = useUtilityClasses(ownerState, componentName);
|
|
124
|
+
return (
|
|
125
|
+
/*#__PURE__*/
|
|
126
|
+
// @ts-ignore theme is injected by the styled util
|
|
127
|
+
_jsx(ContainerRoot, _extends({
|
|
128
|
+
as: component // @ts-ignore module augmentation fails if custom breakpoints are used
|
|
129
|
+
,
|
|
130
|
+
ownerState: ownerState,
|
|
131
|
+
className: clsx(classes.root, className),
|
|
132
|
+
ref: ref
|
|
133
|
+
}, other))
|
|
134
|
+
);
|
|
135
|
+
});
|
|
136
|
+
process.env.NODE_ENV !== "production" ? Container.propTypes
|
|
137
|
+
/* remove-proptypes */
|
|
138
|
+
= {
|
|
139
|
+
children: PropTypes.node,
|
|
140
|
+
classes: PropTypes.object,
|
|
141
|
+
className: PropTypes.string,
|
|
142
|
+
component: PropTypes.elementType,
|
|
143
|
+
disableGutters: PropTypes.bool,
|
|
144
|
+
fixed: PropTypes.bool,
|
|
145
|
+
maxWidth: PropTypes
|
|
146
|
+
/* @typescript-to-proptypes-ignore */
|
|
147
|
+
.oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),
|
|
148
|
+
sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])
|
|
149
|
+
} : void 0;
|
|
150
|
+
return Container;
|
|
151
|
+
}
|
package/esm/createStyled.js
CHANGED
|
@@ -142,7 +142,9 @@ export default function createStyled(input = {}) {
|
|
|
142
142
|
if (styleOverrides) {
|
|
143
143
|
const resolvedStyleOverrides = {};
|
|
144
144
|
Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {
|
|
145
|
-
resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(props
|
|
145
|
+
resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends({}, props, {
|
|
146
|
+
theme
|
|
147
|
+
})) : slotStyle;
|
|
146
148
|
});
|
|
147
149
|
return overridesResolver(props, resolvedStyleOverrides);
|
|
148
150
|
}
|