@mui/system 6.0.0-alpha.9 → 6.0.0-beta.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 (62) hide show
  1. package/CHANGELOG.md +331 -3
  2. package/Container/createContainer.js +0 -2
  3. package/DefaultPropsProvider/DefaultPropsProvider.d.ts +12 -0
  4. package/DefaultPropsProvider/DefaultPropsProvider.js +64 -0
  5. package/DefaultPropsProvider/index.d.ts +1 -0
  6. package/DefaultPropsProvider/index.js +1 -0
  7. package/DefaultPropsProvider/package.json +6 -0
  8. package/{cssVars/getInitColorSchemeScript.d.ts → InitColorSchemeScript/InitColorSchemeScript.d.ts} +9 -2
  9. package/{cssVars/getInitColorSchemeScript.js → InitColorSchemeScript/InitColorSchemeScript.js} +9 -2
  10. package/InitColorSchemeScript/index.d.ts +2 -0
  11. package/InitColorSchemeScript/index.js +1 -0
  12. package/InitColorSchemeScript/package.json +6 -0
  13. package/ThemeProvider/ThemeProvider.js +5 -1
  14. package/Unstable_Grid/Grid.js +5 -81
  15. package/Unstable_Grid/GridProps.d.ts +12 -97
  16. package/Unstable_Grid/createGrid.js +36 -55
  17. package/Unstable_Grid/gridClasses.js +1 -1
  18. package/Unstable_Grid/gridGenerator.d.ts +3 -10
  19. package/Unstable_Grid/gridGenerator.js +10 -19
  20. package/createTheme/createTheme.d.ts +1 -1
  21. package/cssContainerQueries/cssContainerQueries.js +4 -4
  22. package/cssVars/createCssVarsProvider.d.ts +2 -2
  23. package/cssVars/createCssVarsProvider.js +2 -2
  24. package/cssVars/index.d.ts +0 -1
  25. package/cssVars/index.js +0 -1
  26. package/cssVars/useCurrentColorScheme.js +1 -1
  27. package/index.js +1 -1
  28. package/modern/Container/createContainer.js +0 -2
  29. package/modern/DefaultPropsProvider/DefaultPropsProvider.js +64 -0
  30. package/modern/DefaultPropsProvider/index.js +1 -0
  31. package/modern/{cssVars/getInitColorSchemeScript.js → InitColorSchemeScript/InitColorSchemeScript.js} +9 -2
  32. package/modern/InitColorSchemeScript/index.js +1 -0
  33. package/modern/ThemeProvider/ThemeProvider.js +5 -1
  34. package/modern/Unstable_Grid/Grid.js +5 -81
  35. package/modern/Unstable_Grid/createGrid.js +36 -55
  36. package/modern/Unstable_Grid/gridClasses.js +1 -1
  37. package/modern/Unstable_Grid/gridGenerator.js +10 -19
  38. package/modern/cssContainerQueries/cssContainerQueries.js +4 -4
  39. package/modern/cssVars/createCssVarsProvider.js +2 -2
  40. package/modern/cssVars/index.js +0 -1
  41. package/modern/cssVars/useCurrentColorScheme.js +1 -1
  42. package/modern/index.js +1 -1
  43. package/modern/useMediaQuery/useMediaQuery.js +5 -27
  44. package/node/Container/createContainer.js +0 -2
  45. package/node/DefaultPropsProvider/DefaultPropsProvider.js +73 -0
  46. package/node/DefaultPropsProvider/index.js +20 -0
  47. package/node/{cssVars/getInitColorSchemeScript.js → InitColorSchemeScript/InitColorSchemeScript.js} +11 -3
  48. package/node/InitColorSchemeScript/index.js +13 -0
  49. package/node/ThemeProvider/ThemeProvider.js +5 -1
  50. package/node/Unstable_Grid/Grid.js +5 -81
  51. package/node/Unstable_Grid/createGrid.js +37 -56
  52. package/node/Unstable_Grid/gridClasses.js +1 -1
  53. package/node/Unstable_Grid/gridGenerator.js +10 -19
  54. package/node/cssContainerQueries/cssContainerQueries.js +4 -4
  55. package/node/cssVars/createCssVarsProvider.js +5 -5
  56. package/node/cssVars/index.js +0 -7
  57. package/node/cssVars/useCurrentColorScheme.js +3 -3
  58. package/node/index.js +1 -1
  59. package/node/useMediaQuery/useMediaQuery.js +5 -26
  60. package/package.json +6 -6
  61. package/useMediaQuery/useMediaQuery.d.ts +0 -18
  62. package/useMediaQuery/useMediaQuery.js +5 -27
@@ -4,15 +4,19 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.DEFAULT_MODE_STORAGE_KEY = exports.DEFAULT_COLOR_SCHEME_STORAGE_KEY = exports.DEFAULT_ATTRIBUTE = void 0;
7
- exports.default = getInitColorSchemeScript;
7
+ exports.default = InitColorSchemeScript;
8
8
  var React = _interopRequireWildcard(require("react"));
9
9
  var _jsxRuntime = require("react/jsx-runtime");
10
10
  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); }
11
11
  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; }
12
+ /**
13
+ * Split this component for RSC import
14
+ */
15
+
12
16
  const DEFAULT_MODE_STORAGE_KEY = exports.DEFAULT_MODE_STORAGE_KEY = 'mode';
13
17
  const DEFAULT_COLOR_SCHEME_STORAGE_KEY = exports.DEFAULT_COLOR_SCHEME_STORAGE_KEY = 'color-scheme';
14
18
  const DEFAULT_ATTRIBUTE = exports.DEFAULT_ATTRIBUTE = 'data-color-scheme';
15
- function getInitColorSchemeScript(options) {
19
+ function InitColorSchemeScript(options) {
16
20
  const {
17
21
  defaultMode = 'light',
18
22
  defaultLightColorScheme = 'light',
@@ -20,10 +24,14 @@ function getInitColorSchemeScript(options) {
20
24
  modeStorageKey = DEFAULT_MODE_STORAGE_KEY,
21
25
  colorSchemeStorageKey = DEFAULT_COLOR_SCHEME_STORAGE_KEY,
22
26
  attribute = DEFAULT_ATTRIBUTE,
23
- colorSchemeNode = 'document.documentElement'
27
+ colorSchemeNode = 'document.documentElement',
28
+ nonce
24
29
  } = options || {};
25
30
  return /*#__PURE__*/(0, _jsxRuntime.jsx)("script", {
31
+ suppressHydrationWarning: true,
32
+ nonce: typeof window === 'undefined' ? nonce : ''
26
33
  // eslint-disable-next-line react/no-danger
34
+ ,
27
35
  dangerouslySetInnerHTML: {
28
36
  __html: `(function() {
29
37
  try {
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _InitColorSchemeScript.default;
11
+ }
12
+ });
13
+ var _InitColorSchemeScript = _interopRequireDefault(require("./InitColorSchemeScript"));
@@ -13,6 +13,7 @@ var _exactProp = _interopRequireDefault(require("@mui/utils/exactProp"));
13
13
  var _styledEngine = require("@mui/styled-engine");
14
14
  var _useThemeWithoutDefault = _interopRequireDefault(require("../useThemeWithoutDefault"));
15
15
  var _RtlProvider = _interopRequireDefault(require("../RtlProvider"));
16
+ var _DefaultPropsProvider = _interopRequireDefault(require("../DefaultPropsProvider"));
16
17
  var _jsxRuntime = require("react/jsx-runtime");
17
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); }
18
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; }
@@ -72,7 +73,10 @@ function ThemeProvider(props) {
72
73
  value: engineTheme,
73
74
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_RtlProvider.default, {
74
75
  value: rtlValue,
75
- children: children
76
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_DefaultPropsProvider.default, {
77
+ value: engineTheme == null ? void 0 : engineTheme.components,
78
+ children: children
79
+ })
76
80
  })
77
81
  })
78
82
  });
@@ -52,62 +52,18 @@ process.env.NODE_ENV !== "production" ? Grid.propTypes /* remove-proptypes */ =
52
52
  */
53
53
  direction: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), _propTypes.default.arrayOf(_propTypes.default.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), _propTypes.default.object]),
54
54
  /**
55
- * If `true`, the negative margin and padding are apply only to the top and left sides of the grid.
55
+ * Defines the offset value for the type `item` components.
56
56
  */
57
- disableEqualOverflow: _propTypes.default.bool,
58
- /**
59
- * If a number, it sets the number of columns the grid item uses.
60
- * It can't be greater than the total number of columns of the container (12 by default).
61
- * If 'auto', the grid item's width matches its content.
62
- * If false, the prop is ignored.
63
- * If true, the grid item's width grows to use the space available in the grid container.
64
- * The value is applied for the `lg` breakpoint and wider screens if not overridden.
65
- * @default false
66
- */
67
- lg: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
68
- /**
69
- * If a number, it sets the margin-left equals to the number of columns the grid item uses.
70
- * If 'auto', the grid item push itself to the right-end of the container.
71
- * The value is applied for the `lg` breakpoint and wider screens if not overridden.
72
- */
73
- lgOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
74
- /**
75
- * If a number, it sets the number of columns the grid item uses.
76
- * It can't be greater than the total number of columns of the container (12 by default).
77
- * If 'auto', the grid item's width matches its content.
78
- * If false, the prop is ignored.
79
- * If true, the grid item's width grows to use the space available in the grid container.
80
- * The value is applied for the `md` breakpoint and wider screens if not overridden.
81
- * @default false
82
- */
83
- md: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
84
- /**
85
- * If a number, it sets the margin-left equals to the number of columns the grid item uses.
86
- * If 'auto', the grid item push itself to the right-end of the container.
87
- * The value is applied for the `md` breakpoint and wider screens if not overridden.
88
- */
89
- mdOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
57
+ offset: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])), _propTypes.default.object]),
90
58
  /**
91
59
  * Defines the vertical space between the type `item` components.
92
60
  * It overrides the value of the `spacing` prop.
93
61
  */
94
62
  rowSpacing: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.string]),
95
63
  /**
96
- * If a number, it sets the number of columns the grid item uses.
97
- * It can't be greater than the total number of columns of the container (12 by default).
98
- * If 'auto', the grid item's width matches its content.
99
- * If false, the prop is ignored.
100
- * If true, the grid item's width grows to use the space available in the grid container.
101
- * The value is applied for the `sm` breakpoint and wider screens if not overridden.
102
- * @default false
64
+ * Defines the size of the the type `item` components.
103
65
  */
104
- sm: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
105
- /**
106
- * If a number, it sets the margin-left equals to the number of columns the grid item uses.
107
- * If 'auto', the grid item push itself to the right-end of the container.
108
- * The value is applied for the `sm` breakpoint and wider screens if not overridden.
109
- */
110
- smOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
66
+ size: _propTypes.default /* @typescript-to-proptypes-ignore */.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.number])), _propTypes.default.object]),
111
67
  /**
112
68
  * Defines the space between the type `item` components.
113
69
  * It can only be used on a type `container` component.
@@ -146,38 +102,6 @@ process.env.NODE_ENV !== "production" ? Grid.propTypes /* remove-proptypes */ =
146
102
  * It's applied for all screen sizes.
147
103
  * @default 'wrap'
148
104
  */
149
- wrap: _propTypes.default.oneOf(['nowrap', 'wrap-reverse', 'wrap']),
150
- /**
151
- * If a number, it sets the number of columns the grid item uses.
152
- * It can't be greater than the total number of columns of the container (12 by default).
153
- * If 'auto', the grid item's width matches its content.
154
- * If false, the prop is ignored.
155
- * If true, the grid item's width grows to use the space available in the grid container.
156
- * The value is applied for the `xl` breakpoint and wider screens if not overridden.
157
- * @default false
158
- */
159
- xl: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
160
- /**
161
- * If a number, it sets the margin-left equals to the number of columns the grid item uses.
162
- * If 'auto', the grid item push itself to the right-end of the container.
163
- * The value is applied for the `xl` breakpoint and wider screens if not overridden.
164
- */
165
- xlOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
166
- /**
167
- * If a number, it sets the number of columns the grid item uses.
168
- * It can't be greater than the total number of columns of the container (12 by default).
169
- * If 'auto', the grid item's width matches its content.
170
- * If false, the prop is ignored.
171
- * If true, the grid item's width grows to use the space available in the grid container.
172
- * The value is applied for all the screen sizes with the lowest priority.
173
- * @default false
174
- */
175
- xs: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
176
- /**
177
- * If a number, it sets the margin-left equals to the number of columns the grid item uses.
178
- * If 'auto', the grid item push itself to the right-end of the container.
179
- * The value is applied for the `xs` breakpoint and wider screens if not overridden.
180
- */
181
- xsOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number])
105
+ wrap: _propTypes.default.oneOf(['nowrap', 'wrap-reverse', 'wrap'])
182
106
  } : void 0;
183
107
  var _default = exports.default = Grid;
@@ -42,30 +42,48 @@ function createGrid(options = {}) {
42
42
  useThemeProps = useThemePropsDefault,
43
43
  componentName = 'MuiGrid'
44
44
  } = options;
45
- const GridOverflowContext = /*#__PURE__*/React.createContext(undefined);
46
- if (process.env.NODE_ENV !== 'production') {
47
- GridOverflowContext.displayName = 'GridOverflowContext';
48
- }
49
45
  const useUtilityClasses = (ownerState, theme) => {
50
46
  const {
51
47
  container,
52
48
  direction,
53
49
  spacing,
54
50
  wrap,
55
- gridSize
51
+ size
56
52
  } = ownerState;
57
53
  const slots = {
58
- root: ['root', container && 'container', wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...(0, _gridGenerator.generateDirectionClasses)(direction), ...(0, _gridGenerator.generateSizeClassNames)(gridSize), ...(container ? (0, _gridGenerator.generateSpacingClassNames)(spacing, theme.breakpoints.keys[0]) : [])]
54
+ root: ['root', container && 'container', wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...(0, _gridGenerator.generateDirectionClasses)(direction), ...(0, _gridGenerator.generateSizeClassNames)(size), ...(container ? (0, _gridGenerator.generateSpacingClassNames)(spacing, theme.breakpoints.keys[0]) : [])]
59
55
  };
60
56
  return (0, _composeClasses.default)(slots, slot => (0, _generateUtilityClass.default)(componentName, slot), {});
61
57
  };
58
+ function parseResponsiveProp(propValue, breakpoints, shouldUseValue = () => true) {
59
+ const parsedProp = {};
60
+ if (propValue === null) {
61
+ return parsedProp;
62
+ }
63
+ if (Array.isArray(propValue)) {
64
+ propValue.forEach((value, index) => {
65
+ if (value !== null && shouldUseValue(value) && breakpoints.keys[index]) {
66
+ parsedProp[breakpoints.keys[index]] = value;
67
+ }
68
+ });
69
+ } else if (typeof propValue === 'object') {
70
+ Object.keys(propValue).forEach(key => {
71
+ const value = propValue[key];
72
+ if (value !== null && value !== undefined && shouldUseValue(value)) {
73
+ parsedProp[key] = value;
74
+ }
75
+ });
76
+ } else {
77
+ parsedProp[breakpoints.keys[0]] = propValue;
78
+ }
79
+ return parsedProp;
80
+ }
62
81
  const GridRoot = createStyledComponent(_gridGenerator.generateGridColumnsStyles, _gridGenerator.generateGridColumnSpacingStyles, _gridGenerator.generateGridRowSpacingStyles, _gridGenerator.generateGridSizeStyles, _gridGenerator.generateGridDirectionStyles, _gridGenerator.generateGridStyles, _gridGenerator.generateGridOffsetStyles);
63
82
  const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {
64
- var _inProps$columns, _inProps$spacing, _ref, _inProps$rowSpacing, _ref2, _inProps$columnSpacin, _ref3, _disableEqualOverflow;
83
+ var _inProps$columns, _inProps$spacing, _ref, _inProps$rowSpacing, _ref2, _inProps$columnSpacin;
65
84
  const theme = (0, _useTheme.default)();
66
85
  const themeProps = useThemeProps(inProps);
67
86
  const props = (0, _styleFunctionSx.extendSxProp)(themeProps); // `color` type conflicts with html color attribute.
68
- const overflow = React.useContext(GridOverflowContext);
69
87
  const {
70
88
  className,
71
89
  children,
@@ -74,31 +92,16 @@ function createGrid(options = {}) {
74
92
  component = 'div',
75
93
  direction = 'row',
76
94
  wrap = 'wrap',
95
+ size: sizeProp = {},
96
+ offset: offsetProp = {},
77
97
  spacing: spacingProp = 0,
78
98
  rowSpacing: rowSpacingProp = spacingProp,
79
99
  columnSpacing: columnSpacingProp = spacingProp,
80
- disableEqualOverflow: themeDisableEqualOverflow,
81
100
  unstable_level: level = 0,
82
101
  ...rest
83
102
  } = props;
84
- // Because `disableEqualOverflow` can be set from the theme's defaultProps, the **nested** grid should look at the instance props instead.
85
- let disableEqualOverflow = themeDisableEqualOverflow;
86
- if (level && themeDisableEqualOverflow !== undefined) {
87
- disableEqualOverflow = inProps.disableEqualOverflow;
88
- }
89
- // collect breakpoints related props because they can be customized from the theme.
90
- const gridSize = {};
91
- const gridOffset = {};
92
- const other = {};
93
- Object.entries(rest).forEach(([key, val]) => {
94
- if (theme.breakpoints.values[key] !== undefined) {
95
- gridSize[key] = val;
96
- } else if (theme.breakpoints.values[key.replace('Offset', '')] !== undefined) {
97
- gridOffset[key.replace('Offset', '')] = val;
98
- } else {
99
- other[key] = val;
100
- }
101
- });
103
+ const size = parseResponsiveProp(sizeProp, theme.breakpoints, val => val !== false);
104
+ const offset = parseResponsiveProp(offsetProp, theme.breakpoints);
102
105
  const columns = (_inProps$columns = inProps.columns) != null ? _inProps$columns : level ? undefined : columnsProp;
103
106
  const spacing = (_inProps$spacing = inProps.spacing) != null ? _inProps$spacing : level ? undefined : spacingProp;
104
107
  const rowSpacing = (_ref = (_inProps$rowSpacing = inProps.rowSpacing) != null ? _inProps$rowSpacing : inProps.spacing) != null ? _ref : level ? undefined : rowSpacingProp;
@@ -113,19 +116,16 @@ function createGrid(options = {}) {
113
116
  spacing,
114
117
  rowSpacing,
115
118
  columnSpacing,
116
- gridSize,
117
- gridOffset,
118
- disableEqualOverflow: (_ref3 = (_disableEqualOverflow = disableEqualOverflow) != null ? _disableEqualOverflow : overflow) != null ? _ref3 : false,
119
- // use context value if exists.
120
- parentDisableEqualOverflow: overflow // for nested grid
119
+ size,
120
+ offset
121
121
  };
122
122
  const classes = useUtilityClasses(ownerState, theme);
123
- let result = /*#__PURE__*/(0, _jsxRuntime.jsx)(GridRoot, {
123
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(GridRoot, {
124
124
  ref: ref,
125
125
  as: component,
126
126
  ownerState: ownerState,
127
127
  className: (0, _clsx.default)(classes.root, className),
128
- ...other,
128
+ ...rest,
129
129
  children: React.Children.map(children, child => {
130
130
  if ( /*#__PURE__*/React.isValidElement(child) && (0, _isMuiElement.default)(child, ['Grid'])) {
131
131
  var _unstable_level;
@@ -136,16 +136,6 @@ function createGrid(options = {}) {
136
136
  return child;
137
137
  })
138
138
  });
139
- if (disableEqualOverflow !== undefined && disableEqualOverflow !== (overflow != null ? overflow : false)) {
140
- // There are 2 possibilities that should wrap with the GridOverflowContext to communicate with the nested grids:
141
- // 1. It is the root grid with `disableEqualOverflow`.
142
- // 2. It is a nested grid with different `disableEqualOverflow` from the context.
143
- result = /*#__PURE__*/(0, _jsxRuntime.jsx)(GridOverflowContext.Provider, {
144
- value: disableEqualOverflow,
145
- children: result
146
- });
147
- }
148
- return result;
149
139
  });
150
140
  process.env.NODE_ENV !== "production" ? Grid.propTypes /* remove-proptypes */ = {
151
141
  children: _propTypes.default.node,
@@ -155,21 +145,12 @@ function createGrid(options = {}) {
155
145
  component: _propTypes.default.elementType,
156
146
  container: _propTypes.default.bool,
157
147
  direction: _propTypes.default.oneOfType([_propTypes.default.oneOf(['column-reverse', 'column', 'row-reverse', 'row']), _propTypes.default.arrayOf(_propTypes.default.oneOf(['column-reverse', 'column', 'row-reverse', 'row'])), _propTypes.default.object]),
158
- disableEqualOverflow: _propTypes.default.bool,
159
- lg: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
160
- lgOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
161
- md: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
162
- mdOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
148
+ offset: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number])), _propTypes.default.object]),
163
149
  rowSpacing: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.string]),
164
- sm: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
165
- smOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
150
+ size: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.number, _propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool, _propTypes.default.number])), _propTypes.default.object]),
166
151
  spacing: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.string]),
167
152
  sx: _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object, _propTypes.default.bool])), _propTypes.default.func, _propTypes.default.object]),
168
- wrap: _propTypes.default.oneOf(['nowrap', 'wrap-reverse', 'wrap']),
169
- xl: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
170
- xlOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number]),
171
- xs: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number, _propTypes.default.bool]),
172
- xsOffset: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.number])
153
+ wrap: _propTypes.default.oneOf(['nowrap', 'wrap-reverse', 'wrap'])
173
154
  } : void 0;
174
155
 
175
156
  // @ts-ignore internal logic for nested grid
@@ -14,7 +14,7 @@ function getGridUtilityClass(slot) {
14
14
  const SPACINGS = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
15
15
  const DIRECTIONS = ['column-reverse', 'column', 'row-reverse', 'row'];
16
16
  const WRAPS = ['nowrap', 'wrap-reverse', 'wrap'];
17
- const GRID_SIZES = ['auto', true, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
17
+ const GRID_SIZES = ['auto', 'grow', 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
18
18
  const gridClasses = (0, _generateUtilityClasses.default)('MuiGrid', ['root', 'container', 'item',
19
19
  // spacings
20
20
  ...SPACINGS.map(spacing => `spacing-xs-${spacing}`),
@@ -37,11 +37,11 @@ const generateGridSizeStyles = ({
37
37
  theme,
38
38
  ownerState
39
39
  }) => {
40
- const getSelfSpacing = createGetSelfSpacing(ownerState);
40
+ const getParentSpacing = createGetParentSpacing(ownerState);
41
41
  const styles = {};
42
- (0, _traverseBreakpoints.traverseBreakpoints)(theme.breakpoints, ownerState.gridSize, (appendStyle, value) => {
42
+ (0, _traverseBreakpoints.traverseBreakpoints)(theme.breakpoints, ownerState.size, (appendStyle, value) => {
43
43
  let style = {};
44
- if (value === true) {
44
+ if (value === 'grow') {
45
45
  style = {
46
46
  flexBasis: 0,
47
47
  flexGrow: 1,
@@ -61,7 +61,7 @@ const generateGridSizeStyles = ({
61
61
  style = {
62
62
  flexGrow: 0,
63
63
  flexBasis: 'auto',
64
- width: `calc(100% * ${value} / ${getParentColumns(ownerState)}${isNestedContainer(ownerState) ? ` + ${getSelfSpacing('column')}` : ''})`
64
+ width: `calc(100% * ${value} / ${getParentColumns(ownerState)} - (${getParentColumns(ownerState)} - ${value}) * (${getParentSpacing('column')} / ${getParentColumns(ownerState)}))`
65
65
  };
66
66
  }
67
67
  appendStyle(styles, style);
@@ -73,8 +73,9 @@ const generateGridOffsetStyles = ({
73
73
  theme,
74
74
  ownerState
75
75
  }) => {
76
+ const getParentSpacing = createGetParentSpacing(ownerState);
76
77
  const styles = {};
77
- (0, _traverseBreakpoints.traverseBreakpoints)(theme.breakpoints, ownerState.gridOffset, (appendStyle, value) => {
78
+ (0, _traverseBreakpoints.traverseBreakpoints)(theme.breakpoints, ownerState.offset, (appendStyle, value) => {
78
79
  let style = {};
79
80
  if (value === 'auto') {
80
81
  style = {
@@ -83,7 +84,7 @@ const generateGridOffsetStyles = ({
83
84
  }
84
85
  if (typeof value === 'number') {
85
86
  style = {
86
- marginLeft: value === 0 ? '0px' : `calc(100% * ${value} / ${getParentColumns(ownerState)})`
87
+ marginLeft: value === 0 ? '0px' : `calc(100% * ${value} / ${getParentColumns(ownerState)} + ${getParentSpacing('column')} * ${value} / ${getParentColumns(ownerState)})`
87
88
  };
88
89
  }
89
90
  appendStyle(styles, style);
@@ -175,7 +176,6 @@ const generateGridStyles = ({
175
176
  ownerState
176
177
  }) => {
177
178
  const getSelfSpacing = createGetSelfSpacing(ownerState);
178
- const getParentSpacing = createGetParentSpacing(ownerState);
179
179
  return {
180
180
  minWidth: 0,
181
181
  boxSizing: 'border-box',
@@ -185,23 +185,14 @@ const generateGridStyles = ({
185
185
  ...(ownerState.wrap && ownerState.wrap !== 'wrap' && {
186
186
  flexWrap: ownerState.wrap
187
187
  }),
188
- margin: `calc(${getSelfSpacing('row')} / -2) calc(${getSelfSpacing('column')} / -2)`,
189
- ...(ownerState.disableEqualOverflow && {
190
- margin: `calc(${getSelfSpacing('row')} * -1) 0px 0px calc(${getSelfSpacing('column')} * -1)`
191
- })
192
- }),
193
- ...((!ownerState.container || isNestedContainer(ownerState)) && {
194
- padding: `calc(${getParentSpacing('row')} / 2) calc(${getParentSpacing('column')} / 2)`,
195
- ...((ownerState.disableEqualOverflow || ownerState.parentDisableEqualOverflow) && {
196
- padding: `${getParentSpacing('row')} 0px 0px ${getParentSpacing('column')}`
197
- })
188
+ gap: `${getSelfSpacing('row')} ${getSelfSpacing('column')}`
198
189
  })
199
190
  };
200
191
  };
201
192
  exports.generateGridStyles = generateGridStyles;
202
- const generateSizeClassNames = gridSize => {
193
+ const generateSizeClassNames = size => {
203
194
  const classNames = [];
204
- Object.entries(gridSize).forEach(([key, value]) => {
195
+ Object.entries(size).forEach(([key, value]) => {
205
196
  if (value !== false && value !== undefined) {
206
197
  classNames.push(`grid-${key}-${String(value)}`);
207
198
  }
@@ -37,10 +37,10 @@ function sortContainerQueries(theme, css) {
37
37
  });
38
38
  }
39
39
  function isCqShorthand(breakpointKeys, value) {
40
- return value.startsWith('@') && (breakpointKeys.some(key => value.startsWith(`@${key}`)) || !!value.match(/^@\d/));
40
+ return value === '@' || value.startsWith('@') && (breakpointKeys.some(key => value.startsWith(`@${key}`)) || !!value.match(/^@\d/));
41
41
  }
42
42
  function getContainerQuery(theme, shorthand) {
43
- const matches = shorthand.match(/^@([^/]+)\/?(.+)?$/);
43
+ const matches = shorthand.match(/^@([^/]+)?\/?(.+)?$/);
44
44
  if (!matches) {
45
45
  if (process.env.NODE_ENV !== 'production') {
46
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>\`.
@@ -49,7 +49,7 @@ For example, \`@sm\` or \`@600\` or \`@40rem/sidebar\`.` : (0, _formatMuiErrorMe
49
49
  return null;
50
50
  }
51
51
  const [, containerQuery, containerName] = matches;
52
- const value = Number.isNaN(+containerQuery) ? containerQuery : +containerQuery;
52
+ const value = Number.isNaN(+containerQuery) ? containerQuery || 0 : +containerQuery;
53
53
  return theme.containerQueries(containerName).up(value);
54
54
  }
55
55
  function cssContainerQueries(themeInput) {
@@ -63,7 +63,7 @@ function cssContainerQueries(themeInput) {
63
63
  const result = toContainerQuery(themeInput.breakpoints.not(...args), name);
64
64
  if (result.includes('not all and')) {
65
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>');
66
+ return result.replace('not all and ', '').replace('min-width:', 'width<').replace('max-width:', 'width>').replace('and', 'or');
67
67
  }
68
68
  return result;
69
69
  };
@@ -12,7 +12,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
12
12
  var _styledEngine = require("@mui/styled-engine");
13
13
  var _privateTheming = require("@mui/private-theming");
14
14
  var _ThemeProvider = _interopRequireDefault(require("../ThemeProvider"));
15
- var _getInitColorSchemeScript = _interopRequireWildcard(require("./getInitColorSchemeScript"));
15
+ var _InitColorSchemeScript = _interopRequireWildcard(require("../InitColorSchemeScript/InitColorSchemeScript"));
16
16
  var _useCurrentColorScheme = _interopRequireDefault(require("./useCurrentColorScheme"));
17
17
  var _jsxRuntime = require("react/jsx-runtime");
18
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); }
@@ -28,9 +28,9 @@ function createCssVarsProvider(options) {
28
28
  * It should also ideally have a vars object created using `prepareCssVars`.
29
29
  */
30
30
  theme: defaultTheme = {},
31
- attribute: defaultAttribute = _getInitColorSchemeScript.DEFAULT_ATTRIBUTE,
32
- modeStorageKey: defaultModeStorageKey = _getInitColorSchemeScript.DEFAULT_MODE_STORAGE_KEY,
33
- colorSchemeStorageKey: defaultColorSchemeStorageKey = _getInitColorSchemeScript.DEFAULT_COLOR_SCHEME_STORAGE_KEY,
31
+ attribute: defaultAttribute = _InitColorSchemeScript.DEFAULT_ATTRIBUTE,
32
+ modeStorageKey: defaultModeStorageKey = _InitColorSchemeScript.DEFAULT_MODE_STORAGE_KEY,
33
+ colorSchemeStorageKey: defaultColorSchemeStorageKey = _InitColorSchemeScript.DEFAULT_COLOR_SCHEME_STORAGE_KEY,
34
34
  defaultMode: designSystemMode = 'light',
35
35
  defaultColorScheme: designSystemColorScheme,
36
36
  disableTransitionOnChange: designSystemTransitionOnChange = false,
@@ -310,7 +310,7 @@ 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, _InitColorSchemeScript.default)({
314
314
  attribute: defaultAttribute,
315
315
  colorSchemeStorageKey: defaultColorSchemeStorageKey,
316
316
  defaultMode: designSystemMode,
@@ -17,12 +17,6 @@ Object.defineProperty(exports, "default", {
17
17
  return _createCssVarsProvider.default;
18
18
  }
19
19
  });
20
- Object.defineProperty(exports, "getInitColorSchemeScript", {
21
- enumerable: true,
22
- get: function () {
23
- return _getInitColorSchemeScript.default;
24
- }
25
- });
26
20
  Object.defineProperty(exports, "prepareCssVars", {
27
21
  enumerable: true,
28
22
  get: function () {
@@ -36,7 +30,6 @@ Object.defineProperty(exports, "prepareTypographyVars", {
36
30
  }
37
31
  });
38
32
  var _createCssVarsProvider = _interopRequireDefault(require("./createCssVarsProvider"));
39
- var _getInitColorSchemeScript = _interopRequireDefault(require("./getInitColorSchemeScript"));
40
33
  var _prepareCssVars = _interopRequireDefault(require("./prepareCssVars"));
41
34
  var _prepareTypographyVars = _interopRequireDefault(require("./prepareTypographyVars"));
42
35
  var _createCssVarsTheme = _interopRequireDefault(require("./createCssVarsTheme"));
@@ -8,7 +8,7 @@ exports.default = useCurrentColorScheme;
8
8
  exports.getColorScheme = getColorScheme;
9
9
  exports.getSystemMode = getSystemMode;
10
10
  var React = _interopRequireWildcard(require("react"));
11
- var _getInitColorSchemeScript = require("./getInitColorSchemeScript");
11
+ var _InitColorSchemeScript = require("../InitColorSchemeScript/InitColorSchemeScript");
12
12
  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); }
13
13
  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; }
14
14
  function getSystemMode(mode) {
@@ -63,8 +63,8 @@ function useCurrentColorScheme(options) {
63
63
  defaultLightColorScheme,
64
64
  defaultDarkColorScheme,
65
65
  supportedColorSchemes = [],
66
- modeStorageKey = _getInitColorSchemeScript.DEFAULT_MODE_STORAGE_KEY,
67
- colorSchemeStorageKey = _getInitColorSchemeScript.DEFAULT_COLOR_SCHEME_STORAGE_KEY,
66
+ modeStorageKey = _InitColorSchemeScript.DEFAULT_MODE_STORAGE_KEY,
67
+ colorSchemeStorageKey = _InitColorSchemeScript.DEFAULT_COLOR_SCHEME_STORAGE_KEY,
68
68
  storageWindow = typeof window === 'undefined' ? undefined : window
69
69
  } = options;
70
70
  const joinedColorSchemes = supportedColorSchemes.join(',');
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/system v6.0.0-alpha.9
2
+ * @mui/system v6.0.0-beta.0
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -12,18 +12,6 @@ var _useThemeProps = require("../useThemeProps");
12
12
  var _useThemeWithoutDefault = _interopRequireDefault(require("../useThemeWithoutDefault"));
13
13
  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); }
14
14
  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; }
15
- /**
16
- * @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.
17
- */
18
-
19
- /**
20
- * @deprecated Not used internally. Use `MediaQueryList` from lib.dom.d.ts instead.
21
- */
22
-
23
- /**
24
- * @deprecated Not used internally. Use `(event: MediaQueryListEvent) => void` instead.
25
- */
26
-
27
15
  function useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {
28
16
  const [match, setMatch] = React.useState(() => {
29
17
  if (noSsr && matchMedia) {
@@ -38,25 +26,17 @@ function useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSs
38
26
  return defaultMatches;
39
27
  });
40
28
  (0, _useEnhancedEffect.default)(() => {
41
- let active = true;
42
29
  if (!matchMedia) {
43
30
  return undefined;
44
31
  }
45
32
  const queryList = matchMedia(query);
46
33
  const updateMatch = () => {
47
- // Workaround Safari wrong implementation of matchMedia
48
- // TODO can we remove it?
49
- // https://github.com/mui/material-ui/pull/17315#issuecomment-528286677
50
- if (active) {
51
- setMatch(queryList.matches);
52
- }
34
+ setMatch(queryList.matches);
53
35
  };
54
36
  updateMatch();
55
- // TODO: Use `addEventListener` once support for Safari < 14 is dropped
56
- queryList.addListener(updateMatch);
37
+ queryList.addEventListener('change', updateMatch);
57
38
  return () => {
58
- active = false;
59
- queryList.removeListener(updateMatch);
39
+ queryList.removeEventListener('change', updateMatch);
60
40
  };
61
41
  }, [query, matchMedia]);
62
42
  return match;
@@ -84,10 +64,9 @@ function useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia, noSs
84
64
  }
85
65
  const mediaQueryList = matchMedia(query);
86
66
  return [() => mediaQueryList.matches, notify => {
87
- // TODO: Use `addEventListener` once support for Safari < 14 is dropped
88
- mediaQueryList.addListener(notify);
67
+ mediaQueryList.addEventListener('change', notify);
89
68
  return () => {
90
- mediaQueryList.removeListener(notify);
69
+ mediaQueryList.removeEventListener('change', notify);
91
70
  };
92
71
  }];
93
72
  }, [getDefaultSnapshot, matchMedia, query]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/system",
3
- "version": "6.0.0-alpha.9",
3
+ "version": "6.0.0-beta.0",
4
4
  "private": false,
5
5
  "author": "MUI Team",
6
6
  "description": "MUI System is a set of CSS utilities to help you build custom designs more efficiently. It makes it possible to rapidly lay out custom designs.",
@@ -26,14 +26,14 @@
26
26
  "url": "https://opencollective.com/mui-org"
27
27
  },
28
28
  "dependencies": {
29
- "@babel/runtime": "^7.24.6",
29
+ "@babel/runtime": "^7.24.7",
30
30
  "clsx": "^2.1.1",
31
31
  "csstype": "^3.1.3",
32
32
  "prop-types": "^15.8.1",
33
- "@mui/private-theming": "^6.0.0-alpha.9",
34
- "@mui/styled-engine": "^6.0.0-alpha.9",
35
- "@mui/types": "^7.2.14",
36
- "@mui/utils": "^6.0.0-alpha.9"
33
+ "@mui/private-theming": "6.0.0-beta.0",
34
+ "@mui/utils": "6.0.0-beta.0",
35
+ "@mui/styled-engine": "6.0.0-beta.0",
36
+ "@mui/types": "^7.2.14"
37
37
  },
38
38
  "peerDependencies": {
39
39
  "@emotion/react": "^11.5.0",