@mui/material 6.0.0-beta.1 → 6.0.0-beta.3

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 (56) hide show
  1. package/CHANGELOG.md +442 -32
  2. package/Fade/Fade.js +2 -1
  3. package/Grow/Grow.js +2 -1
  4. package/Paper/Paper.js +1 -1
  5. package/Rating/Rating.d.ts +1 -1
  6. package/Rating/Rating.js +2 -2
  7. package/Select/selectClasses.d.ts +2 -0
  8. package/Slide/Slide.js +2 -1
  9. package/Tooltip/Tooltip.js +2 -1
  10. package/Typography/Typography.d.ts +1 -0
  11. package/Typography/Typography.js +1 -0
  12. package/Typography/typographyClasses.d.ts +4 -1
  13. package/Zoom/Zoom.js +2 -1
  14. package/index.js +1 -1
  15. package/modern/Fade/Fade.js +2 -1
  16. package/modern/Grow/Grow.js +2 -1
  17. package/modern/Paper/Paper.js +1 -1
  18. package/modern/Rating/Rating.js +2 -2
  19. package/modern/Slide/Slide.js +2 -1
  20. package/modern/Tooltip/Tooltip.js +2 -1
  21. package/modern/Typography/Typography.js +1 -0
  22. package/modern/Zoom/Zoom.js +2 -1
  23. package/modern/index.js +1 -1
  24. package/modern/styles/CssVarsProvider.js +0 -1
  25. package/modern/styles/createGetSelector.js +36 -7
  26. package/modern/styles/excludeVariablesFromRoot.js +1 -1
  27. package/modern/styles/extendTheme.js +105 -65
  28. package/modern/styles/shouldSkipGeneratingVar.js +1 -1
  29. package/modern/utils/getChildRef.js +9 -0
  30. package/node/Fade/Fade.js +2 -1
  31. package/node/Grow/Grow.js +2 -1
  32. package/node/Paper/Paper.js +2 -2
  33. package/node/Rating/Rating.js +2 -2
  34. package/node/Slide/Slide.js +2 -1
  35. package/node/Tooltip/Tooltip.js +2 -1
  36. package/node/Typography/Typography.js +1 -0
  37. package/node/Zoom/Zoom.js +2 -1
  38. package/node/index.js +1 -1
  39. package/node/styles/CssVarsProvider.js +0 -1
  40. package/node/styles/createGetSelector.js +36 -7
  41. package/node/styles/excludeVariablesFromRoot.js +1 -1
  42. package/node/styles/extendTheme.js +105 -65
  43. package/node/styles/shouldSkipGeneratingVar.js +1 -1
  44. package/node/utils/getChildRef.js +17 -0
  45. package/package.json +6 -5
  46. package/styles/CssVarsProvider.d.ts +2 -1
  47. package/styles/CssVarsProvider.js +0 -1
  48. package/styles/createGetSelector.d.ts +6 -2
  49. package/styles/createGetSelector.js +36 -7
  50. package/styles/excludeVariablesFromRoot.d.ts +1 -1
  51. package/styles/excludeVariablesFromRoot.js +1 -1
  52. package/styles/extendTheme.d.ts +21 -16
  53. package/styles/extendTheme.js +105 -65
  54. package/styles/shouldSkipGeneratingVar.js +1 -1
  55. package/utils/getChildRef.d.ts +1 -0
  56. package/utils/getChildRef.js +9 -0
@@ -1,7 +1,8 @@
1
+ import _formatMuiErrorMessage from "@mui/utils/formatMuiErrorMessage";
1
2
  import deepmerge from '@mui/utils/deepmerge';
2
3
  import { unstable_createGetCssVar as systemCreateGetCssVar, createSpacing } from '@mui/system';
3
4
  import { createUnarySpacing } from '@mui/system/spacing';
4
- import { prepareCssVars, prepareTypographyVars } from '@mui/system/cssVars';
5
+ import { prepareCssVars, prepareTypographyVars, createGetColorSchemeSelector } from '@mui/system/cssVars';
5
6
  import styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';
6
7
  import { private_safeColorChannel as safeColorChannel, private_safeAlpha as safeAlpha, private_safeDarken as safeDarken, private_safeLighten as safeLighten, private_safeEmphasize as safeEmphasize, hslToRgb } from '@mui/system/colorManipulator';
7
8
  import defaultShouldSkipGeneratingVar from './shouldSkipGeneratingVar';
@@ -65,64 +66,102 @@ const silent = fn => {
65
66
  return undefined;
66
67
  };
67
68
  export const createGetCssVar = (cssVarPrefix = 'mui') => systemCreateGetCssVar(cssVarPrefix);
69
+ function getOpacity(mode) {
70
+ return {
71
+ inputPlaceholder: mode === 'dark' ? 0.5 : 0.42,
72
+ inputUnderline: mode === 'dark' ? 0.7 : 0.42,
73
+ switchTrackDisabled: mode === 'dark' ? 0.2 : 0.12,
74
+ switchTrack: mode === 'dark' ? 0.3 : 0.38
75
+ };
76
+ }
77
+ function getOverlays(mode) {
78
+ return mode === 'dark' ? defaultDarkOverlays : [];
79
+ }
80
+ function attachColorScheme(colorSchemes, scheme, restTheme, colorScheme) {
81
+ if (!scheme) {
82
+ return undefined;
83
+ }
84
+ scheme = scheme === true ? {} : scheme;
85
+ const mode = colorScheme === 'dark' ? 'dark' : 'light';
86
+ const {
87
+ palette,
88
+ ...muiTheme
89
+ } = createThemeWithoutVars({
90
+ ...restTheme,
91
+ palette: {
92
+ mode,
93
+ ...scheme?.palette
94
+ }
95
+ });
96
+ colorSchemes[colorScheme] = {
97
+ ...scheme,
98
+ palette,
99
+ opacity: {
100
+ ...getOpacity(mode),
101
+ ...scheme?.opacity
102
+ },
103
+ overlays: scheme?.overlays || getOverlays(mode)
104
+ };
105
+ return muiTheme;
106
+ }
107
+
108
+ /**
109
+ * A default `extendTheme` comes with a single color scheme, either `light` or `dark` based on the `defaultColorScheme`.
110
+ * This is better suited for apps that only need a single color scheme.
111
+ *
112
+ * To enable built-in `light` and `dark` color schemes, either:
113
+ * 1. provide a `colorSchemeSelector` to define how the color schemes will change.
114
+ * 2. provide `colorSchemes.dark` will set `colorSchemeSelector: 'media'` by default.
115
+ */
68
116
  export default function extendTheme(options = {}, ...args) {
69
117
  const {
70
- colorSchemes: colorSchemesInput = {},
118
+ colorSchemes: colorSchemesInput = {
119
+ light: true
120
+ },
121
+ defaultColorScheme: defaultColorSchemeInput,
122
+ disableCssColorScheme = false,
71
123
  cssVarPrefix = 'mui',
72
124
  shouldSkipGeneratingVar = defaultShouldSkipGeneratingVar,
73
- getSelector,
125
+ colorSchemeSelector: selector = colorSchemesInput.light && colorSchemesInput.dark ? 'media' : undefined,
74
126
  ...input
75
127
  } = options;
128
+ const firstColorScheme = Object.keys(colorSchemesInput)[0];
129
+ const defaultColorScheme = defaultColorSchemeInput || (colorSchemesInput.light && firstColorScheme !== 'light' ? 'light' : firstColorScheme);
76
130
  const getCssVar = createGetCssVar(cssVarPrefix);
77
131
  const {
78
- palette: lightPalette,
79
- ...muiTheme
80
- } = createThemeWithoutVars({
81
- ...input,
82
- ...(colorSchemesInput.light && {
83
- palette: colorSchemesInput.light?.palette
84
- })
85
- });
86
- const {
87
- palette: darkPalette
88
- } = createThemeWithoutVars({
89
- palette: {
90
- mode: 'dark',
91
- ...colorSchemesInput.dark?.palette
92
- }
93
- });
132
+ [defaultColorScheme]: defaultSchemeInput,
133
+ light: builtInLight,
134
+ dark: builtInDark,
135
+ ...customColorSchemes
136
+ } = colorSchemesInput;
137
+ const colorSchemes = {
138
+ ...customColorSchemes
139
+ };
140
+ let defaultScheme = defaultSchemeInput;
141
+
142
+ // For built-in light and dark color schemes, ensure that the value is valid if they are the default color scheme.
143
+ if (defaultColorScheme === 'dark' && !('dark' in colorSchemesInput) || defaultColorScheme === 'light' && !('light' in colorSchemesInput)) {
144
+ defaultScheme = true;
145
+ }
146
+ if (!defaultScheme) {
147
+ throw new Error(process.env.NODE_ENV !== "production" ? `MUI: The provided \`colorSchemes.${defaultColorScheme}\` to the \`extendTheme\` function is either missing or invalid.` : _formatMuiErrorMessage(23, defaultColorScheme));
148
+ }
149
+
150
+ // Create the palette for the default color scheme, either `light`, `dark`, or custom color scheme.
151
+ const muiTheme = attachColorScheme(colorSchemes, defaultScheme, input, defaultColorScheme);
152
+ if (builtInLight && !colorSchemes.light) {
153
+ attachColorScheme(colorSchemes, builtInLight, undefined, 'light');
154
+ }
155
+ if (builtInDark && !colorSchemes.dark) {
156
+ attachColorScheme(colorSchemes, builtInDark, undefined, 'dark');
157
+ }
94
158
  let theme = {
95
- defaultColorScheme: 'light',
159
+ defaultColorScheme,
96
160
  ...muiTheme,
97
161
  cssVarPrefix,
162
+ colorSchemeSelector: selector,
98
163
  getCssVar,
99
- colorSchemes: {
100
- ...colorSchemesInput,
101
- light: {
102
- ...colorSchemesInput.light,
103
- palette: lightPalette,
104
- opacity: {
105
- inputPlaceholder: 0.42,
106
- inputUnderline: 0.42,
107
- switchTrackDisabled: 0.12,
108
- switchTrack: 0.38,
109
- ...colorSchemesInput.light?.opacity
110
- },
111
- overlays: colorSchemesInput.light?.overlays || []
112
- },
113
- dark: {
114
- ...colorSchemesInput.dark,
115
- palette: darkPalette,
116
- opacity: {
117
- inputPlaceholder: 0.5,
118
- inputUnderline: 0.7,
119
- switchTrackDisabled: 0.2,
120
- switchTrack: 0.3,
121
- ...colorSchemesInput.dark?.opacity
122
- },
123
- overlays: colorSchemesInput.dark?.overlays || defaultDarkOverlays
124
- }
125
- },
164
+ colorSchemes,
126
165
  font: {
127
166
  ...prepareTypographyVars(muiTheme.typography),
128
167
  ...muiTheme.font
@@ -139,17 +178,18 @@ export default function extendTheme(options = {}, ...args) {
139
178
  };
140
179
 
141
180
  // attach black & white channels to common node
142
- if (key === 'light') {
181
+ if (palette.mode === 'light') {
143
182
  setColor(palette.common, 'background', '#fff');
144
183
  setColor(palette.common, 'onBackground', '#000');
145
- } else {
184
+ }
185
+ if (palette.mode === 'dark') {
146
186
  setColor(palette.common, 'background', '#000');
147
187
  setColor(palette.common, 'onBackground', '#fff');
148
188
  }
149
189
 
150
190
  // assign component variables
151
191
  assignNode(palette, ['Alert', 'AppBar', 'Avatar', 'Button', 'Chip', 'FilledInput', 'LinearProgress', 'Skeleton', 'Slider', 'SnackbarContent', 'SpeedDialAction', 'StepConnector', 'StepContent', 'Switch', 'TableCell', 'Tooltip']);
152
- if (key === 'light') {
192
+ if (palette.mode === 'light') {
153
193
  setColor(palette.Alert, 'errorColor', safeDarken(palette.error.light, 0.6));
154
194
  setColor(palette.Alert, 'infoColor', safeDarken(palette.info.light, 0.6));
155
195
  setColor(palette.Alert, 'successColor', safeDarken(palette.success.light, 0.6));
@@ -158,10 +198,10 @@ export default function extendTheme(options = {}, ...args) {
158
198
  setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-main'));
159
199
  setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-main'));
160
200
  setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-main'));
161
- setColor(palette.Alert, 'errorFilledColor', silent(() => lightPalette.getContrastText(palette.error.main)));
162
- setColor(palette.Alert, 'infoFilledColor', silent(() => lightPalette.getContrastText(palette.info.main)));
163
- setColor(palette.Alert, 'successFilledColor', silent(() => lightPalette.getContrastText(palette.success.main)));
164
- setColor(palette.Alert, 'warningFilledColor', silent(() => lightPalette.getContrastText(palette.warning.main)));
201
+ setColor(palette.Alert, 'errorFilledColor', silent(() => palette.getContrastText(palette.error.main)));
202
+ setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.main)));
203
+ setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.main)));
204
+ setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.main)));
165
205
  setColor(palette.Alert, 'errorStandardBg', safeLighten(palette.error.light, 0.9));
166
206
  setColor(palette.Alert, 'infoStandardBg', safeLighten(palette.info.light, 0.9));
167
207
  setColor(palette.Alert, 'successStandardBg', safeLighten(palette.success.light, 0.9));
@@ -195,7 +235,7 @@ export default function extendTheme(options = {}, ...args) {
195
235
  setColor(palette.Slider, 'warningTrack', safeLighten(palette.warning.main, 0.62));
196
236
  const snackbarContentBackground = safeEmphasize(palette.background.default, 0.8);
197
237
  setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
198
- setColor(palette.SnackbarContent, 'color', silent(() => lightPalette.getContrastText(snackbarContentBackground)));
238
+ setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));
199
239
  setColor(palette.SpeedDialAction, 'fabHoverBg', safeEmphasize(palette.background.paper, 0.15));
200
240
  setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-400'));
201
241
  setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-400'));
@@ -209,7 +249,8 @@ export default function extendTheme(options = {}, ...args) {
209
249
  setColor(palette.Switch, 'warningDisabledColor', safeLighten(palette.warning.main, 0.62));
210
250
  setColor(palette.TableCell, 'border', safeLighten(safeAlpha(palette.divider, 1), 0.88));
211
251
  setColor(palette.Tooltip, 'bg', safeAlpha(palette.grey[700], 0.92));
212
- } else {
252
+ }
253
+ if (palette.mode === 'dark') {
213
254
  setColor(palette.Alert, 'errorColor', safeLighten(palette.error.light, 0.6));
214
255
  setColor(palette.Alert, 'infoColor', safeLighten(palette.info.light, 0.6));
215
256
  setColor(palette.Alert, 'successColor', safeLighten(palette.success.light, 0.6));
@@ -218,10 +259,10 @@ export default function extendTheme(options = {}, ...args) {
218
259
  setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-dark'));
219
260
  setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-dark'));
220
261
  setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-dark'));
221
- setColor(palette.Alert, 'errorFilledColor', silent(() => darkPalette.getContrastText(palette.error.dark)));
222
- setColor(palette.Alert, 'infoFilledColor', silent(() => darkPalette.getContrastText(palette.info.dark)));
223
- setColor(palette.Alert, 'successFilledColor', silent(() => darkPalette.getContrastText(palette.success.dark)));
224
- setColor(palette.Alert, 'warningFilledColor', silent(() => darkPalette.getContrastText(palette.warning.dark)));
262
+ setColor(palette.Alert, 'errorFilledColor', silent(() => palette.getContrastText(palette.error.dark)));
263
+ setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.dark)));
264
+ setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.dark)));
265
+ setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.dark)));
225
266
  setColor(palette.Alert, 'errorStandardBg', safeDarken(palette.error.light, 0.9));
226
267
  setColor(palette.Alert, 'infoStandardBg', safeDarken(palette.info.light, 0.9));
227
268
  setColor(palette.Alert, 'successStandardBg', safeDarken(palette.success.light, 0.9));
@@ -257,7 +298,7 @@ export default function extendTheme(options = {}, ...args) {
257
298
  setColor(palette.Slider, 'warningTrack', safeDarken(palette.warning.main, 0.5));
258
299
  const snackbarContentBackground = safeEmphasize(palette.background.default, 0.98);
259
300
  setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
260
- setColor(palette.SnackbarContent, 'color', silent(() => darkPalette.getContrastText(snackbarContentBackground)));
301
+ setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));
261
302
  setColor(palette.SpeedDialAction, 'fabHoverBg', safeEmphasize(palette.background.paper, 0.15));
262
303
  setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-600'));
263
304
  setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-600'));
@@ -320,16 +361,15 @@ export default function extendTheme(options = {}, ...args) {
320
361
  theme = args.reduce((acc, argument) => deepmerge(acc, argument), theme);
321
362
  const parserConfig = {
322
363
  prefix: cssVarPrefix,
364
+ disableCssColorScheme,
323
365
  shouldSkipGeneratingVar,
324
- getSelector: getSelector || defaultGetSelector(theme)
366
+ getSelector: defaultGetSelector(theme)
325
367
  };
326
368
  const {
327
369
  vars,
328
370
  generateThemeVars,
329
371
  generateStyleSheets
330
372
  } = prepareCssVars(theme, parserConfig);
331
- theme.attribute = 'data-mui-color-scheme';
332
- theme.colorSchemeSelector = ':root';
333
373
  theme.vars = vars;
334
374
  Object.entries(theme.colorSchemes[theme.defaultColorScheme]).forEach(([key, value]) => {
335
375
  theme[key] = value;
@@ -339,7 +379,7 @@ export default function extendTheme(options = {}, ...args) {
339
379
  theme.generateSpacing = function generateSpacing() {
340
380
  return createSpacing(input.spacing, createUnarySpacing(this));
341
381
  };
342
- theme.getColorSchemeSelector = colorScheme => `[${theme.attribute}="${colorScheme}"] &`;
382
+ theme.getColorSchemeSelector = createGetColorSchemeSelector(selector);
343
383
  theme.spacing = theme.generateSpacing();
344
384
  theme.shouldSkipGeneratingVar = shouldSkipGeneratingVar;
345
385
  theme.unstable_sxConfig = {
@@ -1,5 +1,5 @@
1
1
  export default function shouldSkipGeneratingVar(keys) {
2
- return !!keys[0].match(/(cssVarPrefix|typography|mixins|breakpoints|direction|transitions)/) || !!keys[0].match(/sxConfig$/) ||
2
+ return !!keys[0].match(/(cssVarPrefix|colorSchemeSelector|typography|mixins|breakpoints|direction|transitions)/) || !!keys[0].match(/sxConfig$/) ||
3
3
  // ends with sxConfig
4
4
  keys[0] === 'palette' && !!keys[1]?.match(/(mode|contrastThreshold|tonalOffset)/);
5
5
  }
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export default function getChildRef(child) {
3
+ if (!child || ! /*#__PURE__*/React.isValidElement(child)) {
4
+ return null;
5
+ }
6
+ // 'ref' is passed as prop in React 19, whereas 'ref' is directly attached to children in React 18
7
+ // below check is to ensure 'ref' is accessible in both cases
8
+ return child.props.propertyIsEnumerable('ref') ? child.props.ref : child.ref;
9
+ }
package/node/Fade/Fade.js CHANGED
@@ -13,6 +13,7 @@ var _elementAcceptingRef = _interopRequireDefault(require("@mui/utils/elementAcc
13
13
  var _zeroStyled = require("../zero-styled");
14
14
  var _utils = require("../transitions/utils");
15
15
  var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
16
+ var _getChildRef = _interopRequireDefault(require("../utils/getChildRef"));
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; }
@@ -55,7 +56,7 @@ const Fade = /*#__PURE__*/React.forwardRef(function Fade(props, ref) {
55
56
  } = props;
56
57
  const enableStrictModeCompat = true;
57
58
  const nodeRef = React.useRef(null);
58
- const handleRef = (0, _useForkRef.default)(nodeRef, children.ref, ref);
59
+ const handleRef = (0, _useForkRef.default)(nodeRef, (0, _getChildRef.default)(children), ref);
59
60
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
60
61
  if (callback) {
61
62
  const node = nodeRef.current;
package/node/Grow/Grow.js CHANGED
@@ -14,6 +14,7 @@ var _reactTransitionGroup = require("react-transition-group");
14
14
  var _zeroStyled = require("../zero-styled");
15
15
  var _utils = require("../transitions/utils");
16
16
  var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
17
+ var _getChildRef = _interopRequireDefault(require("../utils/getChildRef"));
17
18
  var _jsxRuntime = require("react/jsx-runtime");
18
19
  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); }
19
20
  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; }
@@ -65,7 +66,7 @@ const Grow = /*#__PURE__*/React.forwardRef(function Grow(props, ref) {
65
66
  const autoTimeout = React.useRef();
66
67
  const theme = (0, _zeroStyled.useTheme)();
67
68
  const nodeRef = React.useRef(null);
68
- const handleRef = (0, _useForkRef.default)(nodeRef, children.ref, ref);
69
+ const handleRef = (0, _useForkRef.default)(nodeRef, (0, _getChildRef.default)(children), ref);
69
70
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
70
71
  if (callback) {
71
72
  const node = nodeRef.current;
@@ -72,7 +72,7 @@ const PaperRoot = (0, _zeroStyled.styled)('div', {
72
72
  }]
73
73
  }));
74
74
  const Paper = /*#__PURE__*/React.forwardRef(function Paper(inProps, ref) {
75
- var _theme$overlays;
75
+ var _theme$vars$overlays;
76
76
  const props = (0, _DefaultPropsProvider.useDefaultProps)({
77
77
  props: inProps,
78
78
  name: 'MuiPaper'
@@ -109,7 +109,7 @@ const Paper = /*#__PURE__*/React.forwardRef(function Paper(inProps, ref) {
109
109
  ...(variant === 'elevation' && {
110
110
  '--Paper-shadow': (theme.vars || theme).shadows[elevation],
111
111
  ...(theme.vars && {
112
- '--Paper-overlay': (_theme$overlays = theme.overlays) == null ? void 0 : _theme$overlays[elevation]
112
+ '--Paper-overlay': (_theme$vars$overlays = theme.vars.overlays) == null ? void 0 : _theme$vars$overlays[elevation]
113
113
  }),
114
114
  ...(!theme.vars && theme.palette.mode === 'dark' && {
115
115
  '--Paper-overlay': `linear-gradient(${(0, _colorManipulator.alpha)('#fff', (0, _getOverlayAlpha.default)(elevation))}, ${(0, _colorManipulator.alpha)('#fff', (0, _getOverlayAlpha.default)(elevation))})`
@@ -311,7 +311,7 @@ const defaultEmptyIcon = /*#__PURE__*/(0, _jsxRuntime.jsx)(_StarBorder.default,
311
311
  fontSize: "inherit"
312
312
  });
313
313
  function defaultLabelText(value) {
314
- return `${value} Star${value !== 1 ? 's' : ''}`;
314
+ return `${value || '0'} Star${value !== 1 ? 's' : ''}`;
315
315
  }
316
316
  const Rating = /*#__PURE__*/React.forwardRef(function Rating(inProps, ref) {
317
317
  const props = (0, _DefaultPropsProvider.useDefaultProps)({
@@ -596,7 +596,7 @@ process.env.NODE_ENV !== "production" ? Rating.propTypes /* remove-proptypes */
596
596
  * @param {number} value The rating label's value to format.
597
597
  * @returns {string}
598
598
  * @default function defaultLabelText(value) {
599
- * return `${value} Star${value !== 1 ? 's' : ''}`;
599
+ * return `${value || '0'} Star${value !== 1 ? 's' : ''}`;
600
600
  * }
601
601
  */
602
602
  getLabelText: _propTypes.default.func,
@@ -18,6 +18,7 @@ var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
18
18
  var _zeroStyled = require("../zero-styled");
19
19
  var _utils = require("../transitions/utils");
20
20
  var _utils2 = require("../utils");
21
+ var _getChildRef = _interopRequireDefault(require("../utils/getChildRef"));
21
22
  var _jsxRuntime = require("react/jsx-runtime");
22
23
  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); }
23
24
  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; }
@@ -113,7 +114,7 @@ const Slide = /*#__PURE__*/React.forwardRef(function Slide(props, ref) {
113
114
  ...other
114
115
  } = props;
115
116
  const childrenRef = React.useRef(null);
116
- const handleRef = (0, _useForkRef.default)(children.ref, childrenRef, ref);
117
+ const handleRef = (0, _useForkRef.default)((0, _getChildRef.default)(children), childrenRef, ref);
117
118
  const normalizedTransitionCallback = callback => isAppearing => {
118
119
  if (callback) {
119
120
  // onEnterXxx and onExitXxx callbacks have a different arguments.length value.
@@ -27,6 +27,7 @@ var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
27
27
  var _useId = _interopRequireDefault(require("../utils/useId"));
28
28
  var _useControlled = _interopRequireDefault(require("../utils/useControlled"));
29
29
  var _tooltipClasses = _interopRequireWildcard(require("./tooltipClasses"));
30
+ var _getChildRef = _interopRequireDefault(require("../utils/getChildRef"));
30
31
  var _jsxRuntime = require("react/jsx-runtime");
31
32
  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
33
  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; }
@@ -520,7 +521,7 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
520
521
  document.removeEventListener('keydown', handleKeyDown);
521
522
  };
522
523
  }, [handleClose, open]);
523
- const handleRef = (0, _useForkRef.default)(children.ref, setChildNode, ref);
524
+ const handleRef = (0, _useForkRef.default)((0, _getChildRef.default)(children), setChildNode, ref);
524
525
 
525
526
  // There is no point in displaying an empty tooltip.
526
527
  // So we exclude all falsy values, except 0, which is valid.
@@ -222,6 +222,7 @@ process.env.NODE_ENV !== "production" ? Typography.propTypes /* remove-proptypes
222
222
  /**
223
223
  * If `true`, the element will be a paragraph element.
224
224
  * @default false
225
+ * @deprecated Use the `component` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
225
226
  */
226
227
  paragraph: _propTypes.default.bool,
227
228
  /**
package/node/Zoom/Zoom.js CHANGED
@@ -13,6 +13,7 @@ var _elementAcceptingRef = _interopRequireDefault(require("@mui/utils/elementAcc
13
13
  var _zeroStyled = require("../zero-styled");
14
14
  var _utils = require("../transitions/utils");
15
15
  var _useForkRef = _interopRequireDefault(require("../utils/useForkRef"));
16
+ var _getChildRef = _interopRequireDefault(require("../utils/getChildRef"));
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; }
@@ -55,7 +56,7 @@ const Zoom = /*#__PURE__*/React.forwardRef(function Zoom(props, ref) {
55
56
  ...other
56
57
  } = props;
57
58
  const nodeRef = React.useRef(null);
58
- const handleRef = (0, _useForkRef.default)(nodeRef, children.ref, ref);
59
+ const handleRef = (0, _useForkRef.default)(nodeRef, (0, _getChildRef.default)(children), ref);
59
60
  const normalizedTransitionCallback = callback => maybeIsAppearing => {
60
61
  if (callback) {
61
62
  const node = nodeRef.current;
package/node/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @mui/material v6.0.0-beta.1
2
+ * @mui/material v6.0.0-beta.3
3
3
  *
4
4
  * @license MIT
5
5
  * This source code is licensed under the MIT license found in the
@@ -26,7 +26,6 @@ const {
26
26
  } = (0, _system.unstable_createCssVarsProvider)({
27
27
  themeId: _identifier.default,
28
28
  theme: defaultTheme,
29
- attribute: _InitColorSchemeScript.defaultConfig.attribute,
30
29
  colorSchemeStorageKey: _InitColorSchemeScript.defaultConfig.colorSchemeStorageKey,
31
30
  modeStorageKey: _InitColorSchemeScript.defaultConfig.modeStorageKey,
32
31
  defaultColorScheme: {
@@ -7,6 +7,18 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.default = void 0;
8
8
  var _excludeVariablesFromRoot = _interopRequireDefault(require("./excludeVariablesFromRoot"));
9
9
  var _default = theme => (colorScheme, css) => {
10
+ const selector = theme.colorSchemeSelector;
11
+ let rule = selector;
12
+ if (selector === 'class') {
13
+ rule = '.%s';
14
+ }
15
+ if (selector === 'data') {
16
+ rule = '[data-%s]';
17
+ }
18
+ if (selector != null && selector.startsWith('data-') && !selector.includes('%s')) {
19
+ // 'data-mui-color-scheme' -> '[data-mui-color-scheme="%s"]'
20
+ rule = `[${selector}="%s"]`;
21
+ }
10
22
  if (theme.defaultColorScheme === colorScheme) {
11
23
  if (colorScheme === 'dark') {
12
24
  const excludedVariables = {};
@@ -14,16 +26,33 @@ var _default = theme => (colorScheme, css) => {
14
26
  excludedVariables[cssVar] = css[cssVar];
15
27
  delete css[cssVar];
16
28
  });
29
+ if (rule === 'media') {
30
+ return {
31
+ ':root': css,
32
+ '@media (prefers-color-scheme: dark) { :root': excludedVariables
33
+ };
34
+ }
35
+ if (rule) {
36
+ return {
37
+ [rule.replace('%s', colorScheme)]: excludedVariables,
38
+ ':root': css
39
+ };
40
+ }
17
41
  return {
18
- [`[${theme.attribute}="${String(colorScheme)}"]`]: excludedVariables,
19
- [theme.colorSchemeSelector]: css
42
+ ':root': {
43
+ ...css,
44
+ ...excludedVariables
45
+ }
20
46
  };
21
47
  }
22
- return `${theme.colorSchemeSelector}, [${theme.attribute}="${String(colorScheme)}"]`;
23
- }
24
- if (colorScheme) {
25
- return `[${theme.attribute}="${String(colorScheme)}"]`;
48
+ } else if (colorScheme) {
49
+ if (rule === 'media') {
50
+ return `@media (prefers-color-scheme: ${String(colorScheme)}) { :root`;
51
+ }
52
+ if (rule) {
53
+ return rule.replace('%s', String(colorScheme));
54
+ }
26
55
  }
27
- return theme.colorSchemeSelector;
56
+ return ':root';
28
57
  };
29
58
  exports.default = _default;
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
  /**
8
- * @internal These variables should not appear in the :root stylesheet when the `defaultMode="dark"`
8
+ * @internal These variables should not appear in the :root stylesheet when the `defaultColorScheme="dark"`
9
9
  */
10
10
  const excludeVariablesFromRoot = cssVarPrefix => [...[...Array(24)].map((_, index) => `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}overlays-${index + 1}`), `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}palette-AppBar-darkBg`, `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}palette-AppBar-darkColor`];
11
11
  var _default = exports.default = excludeVariablesFromRoot;