@mui/system 6.0.0-alpha.8 → 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 (69) hide show
  1. package/CHANGELOG.md +407 -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/createStyled/createStyled.js +7 -10
  21. package/createTheme/applyStyles.d.ts +1 -1
  22. package/createTheme/applyStyles.js +1 -1
  23. package/createTheme/createTheme.d.ts +1 -1
  24. package/cssContainerQueries/cssContainerQueries.js +4 -4
  25. package/cssVars/createCssVarsProvider.d.ts +3 -3
  26. package/cssVars/createCssVarsProvider.js +2 -2
  27. package/cssVars/index.d.ts +0 -1
  28. package/cssVars/index.js +0 -1
  29. package/cssVars/useCurrentColorScheme.js +1 -1
  30. package/index.js +1 -1
  31. package/modern/Container/createContainer.js +0 -2
  32. package/modern/DefaultPropsProvider/DefaultPropsProvider.js +64 -0
  33. package/modern/DefaultPropsProvider/index.js +1 -0
  34. package/modern/{cssVars/getInitColorSchemeScript.js → InitColorSchemeScript/InitColorSchemeScript.js} +9 -2
  35. package/modern/InitColorSchemeScript/index.js +1 -0
  36. package/modern/ThemeProvider/ThemeProvider.js +5 -1
  37. package/modern/Unstable_Grid/Grid.js +5 -81
  38. package/modern/Unstable_Grid/createGrid.js +36 -55
  39. package/modern/Unstable_Grid/gridClasses.js +1 -1
  40. package/modern/Unstable_Grid/gridGenerator.js +10 -19
  41. package/modern/createStyled/createStyled.js +7 -10
  42. package/modern/createTheme/applyStyles.js +1 -1
  43. package/modern/cssContainerQueries/cssContainerQueries.js +4 -4
  44. package/modern/cssVars/createCssVarsProvider.js +2 -2
  45. package/modern/cssVars/index.js +0 -1
  46. package/modern/cssVars/useCurrentColorScheme.js +1 -1
  47. package/modern/index.js +1 -1
  48. package/modern/useMediaQuery/useMediaQuery.js +5 -27
  49. package/node/Container/createContainer.js +0 -2
  50. package/node/DefaultPropsProvider/DefaultPropsProvider.js +73 -0
  51. package/node/DefaultPropsProvider/index.js +20 -0
  52. package/node/{cssVars/getInitColorSchemeScript.js → InitColorSchemeScript/InitColorSchemeScript.js} +11 -3
  53. package/node/InitColorSchemeScript/index.js +13 -0
  54. package/node/ThemeProvider/ThemeProvider.js +5 -1
  55. package/node/Unstable_Grid/Grid.js +5 -81
  56. package/node/Unstable_Grid/createGrid.js +39 -58
  57. package/node/Unstable_Grid/gridClasses.js +1 -1
  58. package/node/Unstable_Grid/gridGenerator.js +10 -19
  59. package/node/createStyled/createStyled.js +7 -10
  60. package/node/createTheme/applyStyles.js +1 -1
  61. package/node/cssContainerQueries/cssContainerQueries.js +4 -4
  62. package/node/cssVars/createCssVarsProvider.js +5 -5
  63. package/node/cssVars/index.js +0 -7
  64. package/node/cssVars/useCurrentColorScheme.js +3 -3
  65. package/node/index.js +1 -1
  66. package/node/useMediaQuery/useMediaQuery.js +5 -26
  67. package/package.json +5 -5
  68. package/useMediaQuery/useMediaQuery.d.ts +0 -18
  69. package/useMediaQuery/useMediaQuery.js +5 -27
@@ -68,6 +68,11 @@ function processStyleArg(callableStyle, {
68
68
  ...props
69
69
  }));
70
70
  }
71
+ const mergedState = {
72
+ ...props,
73
+ ...ownerState,
74
+ ownerState
75
+ };
71
76
  if (!!resolvedStylesArg && typeof resolvedStylesArg === 'object' && Array.isArray(resolvedStylesArg.variants)) {
72
77
  const {
73
78
  variants = [],
@@ -77,11 +82,7 @@ function processStyleArg(callableStyle, {
77
82
  variants.forEach(variant => {
78
83
  let isMatch = true;
79
84
  if (typeof variant.props === 'function') {
80
- isMatch = variant.props({
81
- ownerState,
82
- ...props,
83
- ...ownerState
84
- });
85
+ isMatch = variant.props(mergedState);
85
86
  } else {
86
87
  Object.keys(variant.props).forEach(key => {
87
88
  if ((ownerState == null ? void 0 : ownerState[key]) !== variant.props[key] && props[key] !== variant.props[key]) {
@@ -93,11 +94,7 @@ function processStyleArg(callableStyle, {
93
94
  if (!Array.isArray(result)) {
94
95
  result = [result];
95
96
  }
96
- result.push(typeof variant.style === 'function' ? variant.style({
97
- ownerState,
98
- ...props,
99
- ...ownerState
100
- }) : variant.style);
97
+ result.push(typeof variant.style === 'function' ? variant.style(mergedState) : variant.style);
101
98
  }
102
99
  });
103
100
  return result;
@@ -8,7 +8,7 @@ exports.default = applyStyles;
8
8
  * A universal utility to style components with multiple color modes. Always use it from the theme object.
9
9
  * It works with:
10
10
  * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)
11
- * - [CSS theme variables](https://mui.com/material-ui/experimental-api/css-theme-variables/overview/)
11
+ * - [CSS theme variables](https://mui.com/material-ui/customization/css-theme-variables/overview/)
12
12
  * - Zero-runtime engine
13
13
  *
14
14
  * Tips: Use an array over object spread and place `theme.applyStyles()` last.
@@ -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.8
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.8",
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,13 +26,13 @@
26
26
  "url": "https://opencollective.com/mui-org"
27
27
  },
28
28
  "dependencies": {
29
- "@babel/runtime": "^7.24.5",
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.8",
34
- "@mui/styled-engine": "^6.0.0-alpha.8",
35
- "@mui/utils": "^6.0.0-alpha.8",
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
36
  "@mui/types": "^7.2.14"
37
37
  },
38
38
  "peerDependencies": {
@@ -1,21 +1,3 @@
1
- /**
2
- * @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.
3
- */
4
- export interface MuiMediaQueryListEvent {
5
- matches: boolean;
6
- }
7
- /**
8
- * @deprecated Not used internally. Use `MediaQueryList` from lib.dom.d.ts instead.
9
- */
10
- export interface MuiMediaQueryList {
11
- matches: boolean;
12
- addListener: (listener: MuiMediaQueryListListener) => void;
13
- removeListener: (listener: MuiMediaQueryListListener) => void;
14
- }
15
- /**
16
- * @deprecated Not used internally. Use `(event: MediaQueryListEvent) => void` instead.
17
- */
18
- export type MuiMediaQueryListListener = (event: MuiMediaQueryListEvent) => void;
19
1
  export interface UseMediaQueryOptions {
20
2
  /**
21
3
  * As `window.matchMedia()` is unavailable on the server,
@@ -4,19 +4,6 @@ import * as React from 'react';
4
4
  import useEnhancedEffect from '@mui/utils/useEnhancedEffect';
5
5
  import { getThemeProps } from '../useThemeProps';
6
6
  import useTheme from '../useThemeWithoutDefault';
7
-
8
- /**
9
- * @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.
10
- */
11
-
12
- /**
13
- * @deprecated Not used internally. Use `MediaQueryList` from lib.dom.d.ts instead.
14
- */
15
-
16
- /**
17
- * @deprecated Not used internally. Use `(event: MediaQueryListEvent) => void` instead.
18
- */
19
-
20
7
  function useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {
21
8
  const [match, setMatch] = React.useState(() => {
22
9
  if (noSsr && matchMedia) {
@@ -31,25 +18,17 @@ function useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSs
31
18
  return defaultMatches;
32
19
  });
33
20
  useEnhancedEffect(() => {
34
- let active = true;
35
21
  if (!matchMedia) {
36
22
  return undefined;
37
23
  }
38
24
  const queryList = matchMedia(query);
39
25
  const updateMatch = () => {
40
- // Workaround Safari wrong implementation of matchMedia
41
- // TODO can we remove it?
42
- // https://github.com/mui/material-ui/pull/17315#issuecomment-528286677
43
- if (active) {
44
- setMatch(queryList.matches);
45
- }
26
+ setMatch(queryList.matches);
46
27
  };
47
28
  updateMatch();
48
- // TODO: Use `addEventListener` once support for Safari < 14 is dropped
49
- queryList.addListener(updateMatch);
29
+ queryList.addEventListener('change', updateMatch);
50
30
  return () => {
51
- active = false;
52
- queryList.removeListener(updateMatch);
31
+ queryList.removeEventListener('change', updateMatch);
53
32
  };
54
33
  }, [query, matchMedia]);
55
34
  return match;
@@ -77,10 +56,9 @@ function useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia, noSs
77
56
  }
78
57
  const mediaQueryList = matchMedia(query);
79
58
  return [() => mediaQueryList.matches, notify => {
80
- // TODO: Use `addEventListener` once support for Safari < 14 is dropped
81
- mediaQueryList.addListener(notify);
59
+ mediaQueryList.addEventListener('change', notify);
82
60
  return () => {
83
- mediaQueryList.removeListener(notify);
61
+ mediaQueryList.removeEventListener('change', notify);
84
62
  };
85
63
  }];
86
64
  }, [getDefaultSnapshot, matchMedia, query]);