@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.
Files changed (67) hide show
  1. package/Box/Box.spec.d.ts +1 -1
  2. package/CHANGELOG.md +238 -0
  3. package/Container/Container.d.ts +13 -0
  4. package/Container/Container.js +81 -0
  5. package/Container/ContainerProps.d.ts +40 -0
  6. package/Container/ContainerProps.js +5 -0
  7. package/Container/containerClasses.d.ts +22 -0
  8. package/Container/containerClasses.js +17 -0
  9. package/Container/createContainer.d.ts +18 -0
  10. package/Container/createContainer.js +172 -0
  11. package/Container/index.d.ts +5 -0
  12. package/Container/index.js +42 -0
  13. package/Container/package.json +6 -0
  14. package/ThemeProvider/ThemeProvider.d.ts +1 -1
  15. package/createBox.spec.d.ts +1 -1
  16. package/createStyled.js +3 -1
  17. package/createTheme/createBreakpoints.d.ts +5 -0
  18. package/createTheme/createSpacing.d.ts +10 -10
  19. package/cssVars/createCssVarsProvider.d.ts +25 -0
  20. package/cssVars/createCssVarsProvider.js +74 -57
  21. package/cssVars/createCssVarsProvider.spec.d.ts +1 -1
  22. package/cssVars/createGetCssVar.d.ts +5 -5
  23. package/cssVars/cssVarsParser.d.ts +70 -70
  24. package/cssVars/cssVarsParser.js +11 -9
  25. package/cssVars/getInitColorSchemeScript.d.ts +40 -12
  26. package/cssVars/getInitColorSchemeScript.js +4 -3
  27. package/cssVars/index.d.ts +2 -2
  28. package/cssVars/useCurrentColorScheme.d.ts +53 -50
  29. package/cssVars/useCurrentColorScheme.js +17 -7
  30. package/esm/Container/Container.js +70 -0
  31. package/esm/Container/ContainerProps.js +1 -0
  32. package/esm/Container/containerClasses.js +6 -0
  33. package/esm/Container/createContainer.js +151 -0
  34. package/esm/Container/index.js +3 -0
  35. package/esm/createStyled.js +3 -1
  36. package/esm/cssVars/createCssVarsProvider.js +76 -57
  37. package/esm/cssVars/cssVarsParser.js +11 -9
  38. package/esm/cssVars/getInitColorSchemeScript.js +4 -3
  39. package/esm/cssVars/useCurrentColorScheme.js +17 -7
  40. package/esm/index.js +4 -1
  41. package/index.d.ts +6 -0
  42. package/index.js +32 -2
  43. package/index.spec.d.ts +1 -1
  44. package/legacy/Container/Container.js +70 -0
  45. package/legacy/Container/ContainerProps.js +1 -0
  46. package/legacy/Container/containerClasses.js +6 -0
  47. package/legacy/Container/createContainer.js +148 -0
  48. package/legacy/Container/index.js +3 -0
  49. package/legacy/createStyled.js +3 -1
  50. package/legacy/cssVars/createCssVarsProvider.js +83 -55
  51. package/legacy/cssVars/cssVarsParser.js +11 -7
  52. package/legacy/cssVars/getInitColorSchemeScript.js +6 -3
  53. package/legacy/cssVars/useCurrentColorScheme.js +20 -9
  54. package/legacy/index.js +5 -2
  55. package/modern/Container/Container.js +70 -0
  56. package/modern/Container/ContainerProps.js +1 -0
  57. package/modern/Container/containerClasses.js +6 -0
  58. package/modern/Container/createContainer.js +151 -0
  59. package/modern/Container/index.js +3 -0
  60. package/modern/createStyled.js +3 -1
  61. package/modern/cssVars/createCssVarsProvider.js +76 -55
  62. package/modern/cssVars/cssVarsParser.js +11 -9
  63. package/modern/cssVars/getInitColorSchemeScript.js +4 -3
  64. package/modern/cssVars/useCurrentColorScheme.js +17 -7
  65. package/modern/index.js +5 -2
  66. package/package.json +5 -5
  67. 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 default function getInitColorSchemeScript(options?: {
6
- enableSystem?: boolean;
7
- defaultLightColorScheme?: string;
8
- defaultDarkColorScheme?: string;
9
- modeStorageKey?: string;
10
- colorSchemeStorageKey?: string;
11
- attribute?: string;
12
- }): JSX.Element;
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
- document.documentElement.setAttribute('${attribute}', colorScheme);
56
+ ${colorSchemeNode}.setAttribute('${attribute}', colorScheme);
56
57
  }
57
58
  } catch (e) {} })();`
58
59
  }
@@ -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
- export default function useCurrentColorScheme<SupportedColorScheme extends string>(options: {
44
- defaultLightColorScheme: SupportedColorScheme;
45
- defaultDarkColorScheme: SupportedColorScheme;
46
- supportedColorSchemes: Array<SupportedColorScheme>;
47
- defaultMode?: Mode;
48
- modeStorageKey?: string;
49
- colorSchemeStorageKey?: string;
50
- }): Result<SupportedColorScheme>;
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 && !supportedColorSchemes.includes(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 && !supportedColorSchemes.includes(value.light) || value.dark && !supportedColorSchemes.includes(value.dark)) {
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
- }, [colorSchemeStorageKey, supportedColorSchemes, defaultLightColorScheme, defaultDarkColorScheme]);
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
- window.addEventListener('storage', handleStorage);
228
- return () => window.removeEventListener('storage', handleStorage);
229
- }, [setColorScheme, setMode, modeStorageKey, colorSchemeStorageKey, joinedColorSchemes, defaultMode]);
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
+ }
@@ -0,0 +1,3 @@
1
+ export { default } from './Container';
2
+ export { default as containerClasses } from './containerClasses';
3
+ export * from './containerClasses';
@@ -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) : slotStyle;
145
+ resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends({}, props, {
146
+ theme
147
+ })) : slotStyle;
146
148
  });
147
149
  return overridesResolver(props, resolvedStyleOverrides);
148
150
  }