@mui/system 6.0.0-alpha.0 → 6.0.0-alpha.10

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 (199) hide show
  1. package/CHANGELOG.md +591 -6
  2. package/Container/Container.d.ts +1 -1
  3. package/Container/createContainer.js +39 -35
  4. package/RtlProvider/index.js +8 -11
  5. package/Stack/Stack.d.ts +1 -1
  6. package/Stack/createStack.d.ts +1 -1
  7. package/Stack/createStack.js +24 -26
  8. package/ThemeProvider/ThemeProvider.js +9 -5
  9. package/Unstable_Grid/Grid.d.ts +1 -1
  10. package/Unstable_Grid/createGrid.d.ts +1 -1
  11. package/Unstable_Grid/createGrid.js +21 -23
  12. package/Unstable_Grid/gridGenerator.js +20 -17
  13. package/breakpoints/breakpoints.js +26 -7
  14. package/createBox/createBox.js +9 -12
  15. package/createStyled/createStyled.js +56 -51
  16. package/createTheme/applyStyles.d.ts +1 -1
  17. package/createTheme/applyStyles.js +1 -1
  18. package/createTheme/createBreakpoints.js +24 -25
  19. package/createTheme/createSpacing.d.ts +2 -2
  20. package/createTheme/createSpacing.js +7 -8
  21. package/createTheme/createTheme.d.ts +2 -1
  22. package/createTheme/createTheme.js +20 -14
  23. package/cssContainerQueries/cssContainerQueries.d.ts +24 -0
  24. package/cssContainerQueries/cssContainerQueries.js +70 -0
  25. package/cssContainerQueries/index.d.ts +3 -0
  26. package/cssContainerQueries/index.js +2 -0
  27. package/cssContainerQueries/package.json +6 -0
  28. package/cssVars/createCssVarsProvider.d.ts +1 -1
  29. package/cssVars/createCssVarsProvider.js +20 -16
  30. package/cssVars/createCssVarsTheme.js +3 -3
  31. package/cssVars/cssVarsParser.d.ts +1 -1
  32. package/cssVars/cssVarsParser.js +3 -2
  33. package/cssVars/index.d.ts +2 -0
  34. package/cssVars/index.js +1 -0
  35. package/cssVars/prepareCssVars.js +30 -25
  36. package/cssVars/prepareTypographyVars.d.ts +8 -0
  37. package/cssVars/prepareTypographyVars.js +11 -0
  38. package/cssVars/useCurrentColorScheme.js +18 -11
  39. package/index.d.ts +2 -0
  40. package/index.js +2 -1
  41. package/modern/Container/createContainer.js +39 -35
  42. package/modern/RtlProvider/index.js +8 -11
  43. package/modern/Stack/createStack.js +24 -26
  44. package/modern/ThemeProvider/ThemeProvider.js +9 -5
  45. package/modern/Unstable_Grid/createGrid.js +21 -23
  46. package/modern/Unstable_Grid/gridGenerator.js +20 -17
  47. package/modern/breakpoints/breakpoints.js +26 -7
  48. package/modern/createBox/createBox.js +9 -12
  49. package/modern/createStyled/createStyled.js +56 -51
  50. package/modern/createTheme/applyStyles.js +1 -1
  51. package/modern/createTheme/createBreakpoints.js +24 -25
  52. package/modern/createTheme/createSpacing.js +7 -8
  53. package/modern/createTheme/createTheme.js +20 -14
  54. package/modern/cssContainerQueries/cssContainerQueries.js +70 -0
  55. package/modern/cssContainerQueries/index.js +2 -0
  56. package/modern/cssVars/createCssVarsProvider.js +20 -16
  57. package/modern/cssVars/createCssVarsTheme.js +3 -3
  58. package/modern/cssVars/cssVarsParser.js +3 -2
  59. package/modern/cssVars/index.js +1 -0
  60. package/modern/cssVars/prepareCssVars.js +30 -25
  61. package/modern/cssVars/prepareTypographyVars.js +11 -0
  62. package/modern/cssVars/useCurrentColorScheme.js +18 -11
  63. package/modern/index.js +2 -1
  64. package/modern/propsToClassKey/propsToClassKey.js +3 -5
  65. package/modern/spacing/spacing.js +24 -21
  66. package/modern/styleFunctionSx/defaultSxConfig.js +3 -0
  67. package/modern/styleFunctionSx/extendSxProp.js +14 -10
  68. package/modern/styleFunctionSx/styleFunctionSx.js +2 -1
  69. package/node/Container/createContainer.js +39 -35
  70. package/node/RtlProvider/index.js +8 -11
  71. package/node/Stack/createStack.js +24 -26
  72. package/node/ThemeProvider/ThemeProvider.js +9 -5
  73. package/node/Unstable_Grid/createGrid.js +23 -25
  74. package/node/Unstable_Grid/gridGenerator.js +20 -18
  75. package/node/breakpoints/breakpoints.js +26 -7
  76. package/node/createBox/createBox.js +9 -12
  77. package/node/createStyled/createStyled.js +58 -52
  78. package/node/createTheme/applyStyles.js +1 -1
  79. package/node/createTheme/createBreakpoints.js +24 -26
  80. package/node/createTheme/createSpacing.js +7 -8
  81. package/node/createTheme/createTheme.js +20 -14
  82. package/node/cssContainerQueries/cssContainerQueries.js +81 -0
  83. package/node/cssContainerQueries/index.js +32 -0
  84. package/node/cssVars/createCssVarsProvider.js +20 -16
  85. package/node/cssVars/createCssVarsTheme.js +3 -3
  86. package/node/cssVars/cssVarsParser.js +3 -2
  87. package/node/cssVars/index.js +7 -0
  88. package/node/cssVars/prepareCssVars.js +30 -25
  89. package/node/cssVars/prepareTypographyVars.js +17 -0
  90. package/node/cssVars/useCurrentColorScheme.js +18 -12
  91. package/node/index.js +9 -1
  92. package/node/propsToClassKey/propsToClassKey.js +3 -5
  93. package/node/spacing/spacing.js +24 -21
  94. package/node/styleFunctionSx/defaultSxConfig.js +3 -0
  95. package/node/styleFunctionSx/extendSxProp.js +14 -10
  96. package/node/styleFunctionSx/styleFunctionSx.js +2 -1
  97. package/package.json +6 -6
  98. package/propsToClassKey/propsToClassKey.js +3 -5
  99. package/spacing/spacing.js +24 -21
  100. package/styleFunctionSx/defaultSxConfig.js +3 -0
  101. package/styleFunctionSx/extendSxProp.js +14 -10
  102. package/styleFunctionSx/styleFunctionSx.js +2 -1
  103. package/legacy/Box/Box.js +0 -30
  104. package/legacy/Box/boxClasses.js +0 -3
  105. package/legacy/Box/index.js +0 -5
  106. package/legacy/Container/Container.js +0 -61
  107. package/legacy/Container/ContainerProps.js +0 -1
  108. package/legacy/Container/containerClasses.js +0 -7
  109. package/legacy/Container/createContainer.js +0 -140
  110. package/legacy/Container/index.js +0 -5
  111. package/legacy/GlobalStyles/GlobalStyles.js +0 -37
  112. package/legacy/GlobalStyles/index.js +0 -4
  113. package/legacy/RtlProvider/index.js +0 -22
  114. package/legacy/Stack/Stack.js +0 -62
  115. package/legacy/Stack/StackProps.js +0 -1
  116. package/legacy/Stack/createStack.js +0 -180
  117. package/legacy/Stack/index.js +0 -7
  118. package/legacy/Stack/stackClasses.js +0 -7
  119. package/legacy/ThemeProvider/ThemeProvider.js +0 -87
  120. package/legacy/ThemeProvider/index.js +0 -3
  121. package/legacy/Unstable_Grid/Grid.js +0 -177
  122. package/legacy/Unstable_Grid/GridProps.js +0 -1
  123. package/legacy/Unstable_Grid/createGrid.js +0 -184
  124. package/legacy/Unstable_Grid/gridClasses.js +0 -28
  125. package/legacy/Unstable_Grid/gridGenerator.js +0 -216
  126. package/legacy/Unstable_Grid/index.js +0 -8
  127. package/legacy/Unstable_Grid/traverseBreakpoints.js +0 -48
  128. package/legacy/borders/borders.js +0 -51
  129. package/legacy/borders/index.js +0 -4
  130. package/legacy/breakpoints/breakpoints.js +0 -162
  131. package/legacy/breakpoints/index.js +0 -4
  132. package/legacy/colorManipulator/colorManipulator.js +0 -356
  133. package/legacy/colorManipulator/index.js +0 -3
  134. package/legacy/compose/compose.js +0 -32
  135. package/legacy/compose/index.js +0 -3
  136. package/legacy/createBox/createBox.js +0 -38
  137. package/legacy/createBox/index.js +0 -3
  138. package/legacy/createStyled/createStyled.js +0 -250
  139. package/legacy/createStyled/index.js +0 -4
  140. package/legacy/createTheme/applyStyles.js +0 -73
  141. package/legacy/createTheme/createBreakpoints.js +0 -83
  142. package/legacy/createTheme/createSpacing.js +0 -36
  143. package/legacy/createTheme/createTheme.js +0 -49
  144. package/legacy/createTheme/index.js +0 -3
  145. package/legacy/createTheme/shape.js +0 -4
  146. package/legacy/cssGrid/cssGrid.js +0 -91
  147. package/legacy/cssGrid/index.js +0 -4
  148. package/legacy/cssVars/createCssVarsProvider.js +0 -335
  149. package/legacy/cssVars/createCssVarsTheme.js +0 -13
  150. package/legacy/cssVars/createGetCssVar.js +0 -30
  151. package/legacy/cssVars/cssVarsParser.js +0 -140
  152. package/legacy/cssVars/getInitColorSchemeScript.js +0 -28
  153. package/legacy/cssVars/index.js +0 -6
  154. package/legacy/cssVars/prepareCssVars.js +0 -92
  155. package/legacy/cssVars/useCurrentColorScheme.js +0 -237
  156. package/legacy/display/display.js +0 -29
  157. package/legacy/display/index.js +0 -4
  158. package/legacy/flexbox/flexbox.js +0 -43
  159. package/legacy/flexbox/index.js +0 -4
  160. package/legacy/getThemeValue/getThemeValue.js +0 -47
  161. package/legacy/getThemeValue/index.js +0 -4
  162. package/legacy/index.js +0 -72
  163. package/legacy/memoize/index.js +0 -3
  164. package/legacy/memoize/memoize.js +0 -9
  165. package/legacy/merge/index.js +0 -3
  166. package/legacy/merge/merge.js +0 -10
  167. package/legacy/palette/index.js +0 -4
  168. package/legacy/palette/palette.js +0 -26
  169. package/legacy/positions/index.js +0 -4
  170. package/legacy/positions/positions.js +0 -22
  171. package/legacy/propsToClassKey/index.js +0 -3
  172. package/legacy/propsToClassKey/propsToClassKey.js +0 -24
  173. package/legacy/responsivePropType/index.js +0 -3
  174. package/legacy/responsivePropType/responsivePropType.js +0 -3
  175. package/legacy/shadows/index.js +0 -3
  176. package/legacy/shadows/shadows.js +0 -6
  177. package/legacy/sizing/index.js +0 -4
  178. package/legacy/sizing/sizing.js +0 -65
  179. package/legacy/spacing/index.js +0 -4
  180. package/legacy/spacing/spacing.js +0 -158
  181. package/legacy/style/index.js +0 -4
  182. package/legacy/style/style.js +0 -73
  183. package/legacy/styleFunctionSx/defaultSxConfig.js +0 -293
  184. package/legacy/styleFunctionSx/extendSxProp.js +0 -45
  185. package/legacy/styleFunctionSx/index.js +0 -4
  186. package/legacy/styleFunctionSx/styleFunctionSx.js +0 -126
  187. package/legacy/styled/index.js +0 -3
  188. package/legacy/styled/styled.js +0 -3
  189. package/legacy/typography/index.js +0 -4
  190. package/legacy/typography/typography.js +0 -37
  191. package/legacy/useMediaQuery/index.js +0 -2
  192. package/legacy/useMediaQuery/useMediaQuery.js +0 -145
  193. package/legacy/useTheme/index.js +0 -4
  194. package/legacy/useTheme/useTheme.js +0 -10
  195. package/legacy/useThemeProps/getThemeProps.js +0 -10
  196. package/legacy/useThemeProps/index.js +0 -4
  197. package/legacy/useThemeProps/useThemeProps.js +0 -20
  198. package/legacy/useThemeWithoutDefault/index.js +0 -3
  199. package/legacy/useThemeWithoutDefault/useThemeWithoutDefault.js +0 -13
@@ -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
- breakpoints: breakpointsInput = {},
21
- palette: paletteInput = {},
22
- spacing: spacingInput,
23
- shape: shapeInput = {}
24
- } = options,
25
- other = (0, _objectWithoutPropertiesLoose2.default)(options, _excluded);
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: (0, _extends2.default)({
34
- mode: 'light'
35
- }, paletteInput),
31
+ palette: {
32
+ mode: 'light',
33
+ ...paletteInput
34
+ },
36
35
  spacing,
37
- shape: (0, _extends2.default)({}, _shape.default, shapeInput)
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 = (0, _extends2.default)({}, _defaultSxConfig.default, other == null ? void 0 : other.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.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 : +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>');
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 _ref = scopedTheme || themeProp,
80
- {
81
- colorSchemes = {},
82
- components = {},
83
- cssVarPrefix
84
- } = _ref,
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,16 @@ 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 = (0, _extends2.default)({}, restThemeProp, {
136
+ const theme = {
137
+ ...restThemeProp,
141
138
  components,
142
139
  colorSchemes,
143
140
  cssVarPrefix,
144
141
  vars: themeVars
145
- });
142
+ };
143
+ if (typeof theme.generateSpacing === 'function') {
144
+ theme.spacing = theme.generateSpacing();
145
+ }
146
146
 
147
147
  // 4. Resolve the color scheme and merge it to the theme
148
148
  Object.entries(colorSchemes).forEach(([key, scheme]) => {
@@ -151,7 +151,10 @@ function createCssVarsProvider(options) {
151
151
  Object.keys(scheme).forEach(schemeKey => {
152
152
  if (scheme[schemeKey] && typeof scheme[schemeKey] === 'object') {
153
153
  // shallow merge the 1st level structure of the theme.
154
- theme[schemeKey] = (0, _extends2.default)({}, theme[schemeKey], scheme[schemeKey]);
154
+ theme[schemeKey] = {
155
+ ...theme[schemeKey],
156
+ ...scheme[schemeKey]
157
+ };
155
158
  } else {
156
159
  theme[schemeKey] = scheme[schemeKey];
157
160
  }
@@ -307,14 +310,15 @@ function createCssVarsProvider(options) {
307
310
  } : void 0;
308
311
  const defaultLightColorScheme = typeof designSystemColorScheme === 'string' ? designSystemColorScheme : designSystemColorScheme.light;
309
312
  const defaultDarkColorScheme = typeof designSystemColorScheme === 'string' ? designSystemColorScheme : designSystemColorScheme.dark;
310
- const getInitColorSchemeScript = params => (0, _getInitColorSchemeScript.default)((0, _extends2.default)({
313
+ const getInitColorSchemeScript = params => (0, _getInitColorSchemeScript.default)({
311
314
  attribute: defaultAttribute,
312
315
  colorSchemeStorageKey: defaultColorSchemeStorageKey,
313
316
  defaultMode: designSystemMode,
314
317
  defaultLightColorScheme,
315
318
  defaultDarkColorScheme,
316
- modeStorageKey: defaultModeStorageKey
317
- }, params));
319
+ modeStorageKey: defaultModeStorageKey,
320
+ ...params
321
+ });
318
322
  return {
319
323
  CssVarsProvider,
320
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, (0, _extends2.default)({}, theme, {
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;
@@ -121,11 +121,12 @@ function cssVarsParser(theme, options) {
121
121
  if (!shouldSkipGeneratingVar || !shouldSkipGeneratingVar(keys, value)) {
122
122
  // only create css & var if `shouldSkipGeneratingVar` return false
123
123
  const cssVar = `--${prefix ? `${prefix}-` : ''}${keys.join('-')}`;
124
+ const resolvedValue = getCssValue(keys, value);
124
125
  Object.assign(css, {
125
- [cssVar]: getCssValue(keys, value)
126
+ [cssVar]: resolvedValue
126
127
  });
127
128
  assignNestedKeys(vars, keys, `var(${cssVar})`, arrayKeys);
128
- assignNestedKeys(varsWithDefaults, keys, `var(${cssVar}, ${value})`, arrayKeys);
129
+ assignNestedKeys(varsWithDefaults, keys, `var(${cssVar}, ${resolvedValue})`, arrayKeys);
129
130
  }
130
131
  }
131
132
  }, keys => keys[0] === 'vars' // skip 'vars/*' paths
@@ -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"));
@@ -5,24 +5,19 @@ 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 _toPropertyKey2 = _interopRequireDefault(require("@babel/runtime/helpers/toPropertyKey"));
10
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
8
  var _deepmerge = _interopRequireDefault(require("@mui/utils/deepmerge"));
12
9
  var _cssVarsParser = _interopRequireDefault(require("./cssVarsParser"));
13
- const _excluded = ["getSelector"],
14
- _excluded2 = ["colorSchemes", "components", "defaultColorScheme"];
15
- function prepareCssVars(theme, _ref = {}) {
16
- let {
17
- getSelector
18
- } = _ref,
19
- parserConfig = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
10
+ function prepareCssVars(theme, {
11
+ getSelector,
12
+ ...parserConfig
13
+ } = {}) {
20
14
  // @ts-ignore - ignore components do not exist
21
15
  const {
22
- colorSchemes = {},
23
- defaultColorScheme = 'light'
24
- } = theme,
25
- otherTheme = (0, _objectWithoutPropertiesLoose2.default)(theme, _excluded2);
16
+ colorSchemes = {},
17
+ components,
18
+ defaultColorScheme = 'light',
19
+ ...otherTheme
20
+ } = theme;
26
21
  const {
27
22
  vars: rootVars,
28
23
  css: rootCss,
@@ -31,9 +26,9 @@ function prepareCssVars(theme, _ref = {}) {
31
26
  let themeVars = rootVarsWithDefaults;
32
27
  const colorSchemesMap = {};
33
28
  const {
34
- [defaultColorScheme]: defaultScheme
35
- } = colorSchemes,
36
- otherColorSchemes = (0, _objectWithoutPropertiesLoose2.default)(colorSchemes, [defaultColorScheme].map(_toPropertyKey2.default));
29
+ [defaultColorScheme]: defaultScheme,
30
+ ...otherColorSchemes
31
+ } = colorSchemes;
37
32
  Object.entries(otherColorSchemes || {}).forEach(([key, scheme]) => {
38
33
  const {
39
34
  vars,
@@ -60,7 +55,9 @@ function prepareCssVars(theme, _ref = {}) {
60
55
  };
61
56
  }
62
57
  const generateThemeVars = () => {
63
- let vars = (0, _extends2.default)({}, rootVars);
58
+ let vars = {
59
+ ...rootVars
60
+ };
64
61
  Object.entries(colorSchemesMap).forEach(([, {
65
62
  vars: schemeVars
66
63
  }]) => {
@@ -74,26 +71,34 @@ function prepareCssVars(theme, _ref = {}) {
74
71
  function insertStyleSheet(selector, css) {
75
72
  if (Object.keys(css).length) {
76
73
  stylesheets.push(typeof selector === 'string' ? {
77
- [selector]: (0, _extends2.default)({}, css)
74
+ [selector]: {
75
+ ...css
76
+ }
78
77
  } : selector);
79
78
  }
80
79
  }
81
- insertStyleSheet((getSelector == null ? void 0 : getSelector(undefined, (0, _extends2.default)({}, rootCss))) || ':root', rootCss);
80
+ insertStyleSheet((getSelector == null ? void 0 : getSelector(undefined, {
81
+ ...rootCss
82
+ })) || ':root', rootCss);
82
83
  const {
83
- [colorScheme]: defaultSchemeVal
84
- } = colorSchemesMap,
85
- rest = (0, _objectWithoutPropertiesLoose2.default)(colorSchemesMap, [colorScheme].map(_toPropertyKey2.default));
84
+ [colorScheme]: defaultSchemeVal,
85
+ ...rest
86
+ } = colorSchemesMap;
86
87
  if (defaultSchemeVal) {
87
88
  // default color scheme has to come before other color schemes
88
89
  const {
89
90
  css
90
91
  } = defaultSchemeVal;
91
- insertStyleSheet((getSelector == null ? void 0 : getSelector(colorScheme, (0, _extends2.default)({}, css))) || `[${theme.attribute || 'data-color-scheme'}="${colorScheme}"]`, css);
92
+ insertStyleSheet((getSelector == null ? void 0 : getSelector(colorScheme, {
93
+ ...css
94
+ })) || `[${theme.attribute || 'data-color-scheme'}="${colorScheme}"]`, css);
92
95
  }
93
96
  Object.entries(rest).forEach(([key, {
94
97
  css
95
98
  }]) => {
96
- insertStyleSheet((getSelector == null ? void 0 : getSelector(key, (0, _extends2.default)({}, css))) || `[${theme.attribute || 'data-color-scheme'}="${key}"]`, css);
99
+ insertStyleSheet((getSelector == null ? void 0 : getSelector(key, {
100
+ ...css
101
+ })) || `[${theme.attribute || 'data-color-scheme'}="${key}"]`, css);
97
102
  });
98
103
  return stylesheets;
99
104
  };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = prepareTypographyVars;
7
+ function prepareTypographyVars(typography) {
8
+ const vars = {};
9
+ const entries = Object.entries(typography);
10
+ entries.forEach(entry => {
11
+ const [key, value] = entry;
12
+ if (typeof value === 'object') {
13
+ vars[key] = `${value.fontStyle ? `${value.fontStyle} ` : ''}${value.fontVariant ? `${value.fontVariant} ` : ''}${value.fontWeight ? `${value.fontWeight} ` : ''}${value.fontStretch ? `${value.fontStretch} ` : ''}${value.fontSize || ''}${value.lineHeight ? `/${value.lineHeight} ` : ''}${value.fontFamily || ''}`;
14
+ }
15
+ });
16
+ return vars;
17
+ }
@@ -1,14 +1,12 @@
1
1
  "use strict";
2
2
  'use client';
3
3
 
4
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = useCurrentColorScheme;
9
8
  exports.getColorScheme = getColorScheme;
10
9
  exports.getSystemMode = getSystemMode;
11
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
10
  var React = _interopRequireWildcard(require("react"));
13
11
  var _getInitColorSchemeScript = require("./getInitColorSchemeScript");
14
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); }
@@ -94,10 +92,11 @@ function useCurrentColorScheme(options) {
94
92
  } catch (e) {
95
93
  // Unsupported
96
94
  }
97
- return (0, _extends2.default)({}, currentState, {
95
+ return {
96
+ ...currentState,
98
97
  mode: newMode,
99
98
  systemMode: getSystemMode(newMode)
100
- });
99
+ };
101
100
  });
102
101
  }, [modeStorageKey, defaultMode]);
103
102
  const setColorScheme = React.useCallback(value => {
@@ -109,17 +108,20 @@ function useCurrentColorScheme(options) {
109
108
  } catch (e) {
110
109
  // Unsupported
111
110
  }
112
- return (0, _extends2.default)({}, currentState, {
111
+ return {
112
+ ...currentState,
113
113
  lightColorScheme: defaultLightColorScheme,
114
114
  darkColorScheme: defaultDarkColorScheme
115
- });
115
+ };
116
116
  });
117
117
  } else if (typeof value === 'string') {
118
118
  if (value && !joinedColorSchemes.includes(value)) {
119
119
  console.error(`\`${value}\` does not exist in \`theme.colorSchemes\`.`);
120
120
  } else {
121
121
  setState(currentState => {
122
- const newState = (0, _extends2.default)({}, currentState);
122
+ const newState = {
123
+ ...currentState
124
+ };
123
125
  processState(currentState, mode => {
124
126
  try {
125
127
  localStorage.setItem(`${colorSchemeStorageKey}-${mode}`, value);
@@ -138,7 +140,9 @@ function useCurrentColorScheme(options) {
138
140
  }
139
141
  } else {
140
142
  setState(currentState => {
141
- const newState = (0, _extends2.default)({}, currentState);
143
+ const newState = {
144
+ ...currentState
145
+ };
142
146
  const newLightColorScheme = value.light === null ? defaultLightColorScheme : value.light;
143
147
  const newDarkColorScheme = value.dark === null ? defaultDarkColorScheme : value.dark;
144
148
  if (newLightColorScheme) {
@@ -178,9 +182,10 @@ function useCurrentColorScheme(options) {
178
182
  if (currentState.systemMode === systemMode) {
179
183
  return currentState;
180
184
  }
181
- return (0, _extends2.default)({}, currentState, {
185
+ return {
186
+ ...currentState,
182
187
  systemMode
183
- });
188
+ };
184
189
  });
185
190
  }
186
191
  }, [state.mode]);
@@ -232,9 +237,10 @@ function useCurrentColorScheme(options) {
232
237
  }
233
238
  return undefined;
234
239
  }, [setColorScheme, setMode, modeStorageKey, colorSchemeStorageKey, joinedColorSchemes, defaultMode, storageWindow]);
235
- return (0, _extends2.default)({}, state, {
240
+ return {
241
+ ...state,
236
242
  colorScheme,
237
243
  setMode,
238
244
  setColorScheme
239
- });
245
+ };
240
246
  }
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/system v6.0.0-alpha.0
2
+ * @mui/system v6.0.0-alpha.10
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -22,6 +22,7 @@ var _exportNames = {
22
22
  handleBreakpoints: true,
23
23
  mergeBreakpointsInOrder: true,
24
24
  unstable_resolveBreakpointValues: true,
25
+ cssContainerQueries: true,
25
26
  compose: true,
26
27
  display: true,
27
28
  flexbox: true,
@@ -174,6 +175,12 @@ Object.defineProperty(exports, "css", {
174
175
  return _styledEngine.css;
175
176
  }
176
177
  });
178
+ Object.defineProperty(exports, "cssContainerQueries", {
179
+ enumerable: true,
180
+ get: function () {
181
+ return _cssContainerQueries.default;
182
+ }
183
+ });
177
184
  Object.defineProperty(exports, "display", {
178
185
  enumerable: true,
179
186
  get: function () {
@@ -395,6 +402,7 @@ Object.keys(_borders).forEach(function (key) {
395
402
  });
396
403
  });
397
404
  var _breakpoints = _interopRequireWildcard(require("./breakpoints"));
405
+ var _cssContainerQueries = _interopRequireDefault(require("./cssContainerQueries"));
398
406
  var _compose = _interopRequireDefault(require("./compose"));
399
407
  var _display = _interopRequireDefault(require("./display"));
400
408
  var _flexbox = _interopRequireWildcard(require("./flexbox"));
@@ -5,9 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = propsToClassKey;
8
- var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
9
8
  var _capitalize = _interopRequireDefault(require("@mui/utils/capitalize"));
10
- const _excluded = ["variant"];
11
9
  function isEmpty(string) {
12
10
  return string.length === 0;
13
11
  }
@@ -19,9 +17,9 @@ function isEmpty(string) {
19
17
  */
20
18
  function propsToClassKey(props) {
21
19
  const {
22
- variant
23
- } = props,
24
- other = (0, _objectWithoutPropertiesLoose2.default)(props, _excluded);
20
+ variant,
21
+ ...other
22
+ } = props;
25
23
  let classKey = variant || '';
26
24
  Object.keys(other).sort().forEach(key => {
27
25
  if (key === 'color') {
@@ -59,25 +59,29 @@ const paddingKeys = exports.paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'p
59
59
  const spacingKeys = [...marginKeys, ...paddingKeys];
60
60
  function createUnaryUnit(theme, themeKey, defaultValue, propName) {
61
61
  var _getPath;
62
- const themeSpacing = (_getPath = (0, _style.getPath)(theme, themeKey, false)) != null ? _getPath : defaultValue;
63
- if (typeof themeSpacing === 'number') {
64
- return abs => {
65
- if (typeof abs === 'string') {
66
- return abs;
62
+ const themeSpacing = (_getPath = (0, _style.getPath)(theme, themeKey, true)) != null ? _getPath : defaultValue;
63
+ if (typeof themeSpacing === 'number' || typeof themeSpacing === 'string') {
64
+ return val => {
65
+ if (typeof val === 'string') {
66
+ return val;
67
67
  }
68
68
  if (process.env.NODE_ENV !== 'production') {
69
- if (typeof abs !== 'number') {
70
- console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);
69
+ if (typeof val !== 'number') {
70
+ console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${val}.`);
71
71
  }
72
72
  }
73
- return themeSpacing * abs;
73
+ if (typeof themeSpacing === 'string') {
74
+ return `calc(${val} * ${themeSpacing})`;
75
+ }
76
+ return themeSpacing * val;
74
77
  };
75
78
  }
76
79
  if (Array.isArray(themeSpacing)) {
77
- return abs => {
78
- if (typeof abs === 'string') {
79
- return abs;
80
+ return val => {
81
+ if (typeof val === 'string') {
82
+ return val;
80
83
  }
84
+ const abs = Math.abs(val);
81
85
  if (process.env.NODE_ENV !== 'production') {
82
86
  if (!Number.isInteger(abs)) {
83
87
  console.error([`MUI: The \`theme.${themeKey}\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \`theme.${themeKey}\` as a number.`].join('\n'));
@@ -85,7 +89,14 @@ function createUnaryUnit(theme, themeKey, defaultValue, propName) {
85
89
  console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\n'));
86
90
  }
87
91
  }
88
- return themeSpacing[abs];
92
+ const transformed = themeSpacing[abs];
93
+ if (val >= 0) {
94
+ return transformed;
95
+ }
96
+ if (typeof transformed === 'number') {
97
+ return -transformed;
98
+ }
99
+ return `-${transformed}`;
89
100
  };
90
101
  }
91
102
  if (typeof themeSpacing === 'function') {
@@ -103,15 +114,7 @@ function getValue(transformer, propValue) {
103
114
  if (typeof propValue === 'string' || propValue == null) {
104
115
  return propValue;
105
116
  }
106
- const abs = Math.abs(propValue);
107
- const transformed = transformer(abs);
108
- if (propValue >= 0) {
109
- return transformed;
110
- }
111
- if (typeof transformed === 'number') {
112
- return -transformed;
113
- }
114
- return `-${transformed}`;
117
+ return transformer(propValue);
115
118
  }
116
119
  function getStyleFromPropValue(cssProperties, transformer) {
117
120
  return propValue => cssProperties.reduce((acc, cssProperty) => {
@@ -273,6 +273,9 @@ const defaultSxConfig = {
273
273
  },
274
274
  boxSizing: {},
275
275
  // typography
276
+ font: {
277
+ themeKey: 'font'
278
+ },
276
279
  fontFamily: {
277
280
  themeKey: 'typography'
278
281
  },