@mui/material 6.0.0-alpha.8 → 6.0.0-alpha.9

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 (125) hide show
  1. package/AccordionActions/AccordionActions.d.ts +1 -1
  2. package/AccordionDetails/AccordionDetails.d.ts +1 -1
  3. package/Alert/Alert.d.ts +1 -1
  4. package/AlertTitle/AlertTitle.d.ts +3 -3
  5. package/Autocomplete/Autocomplete.d.ts +1 -1
  6. package/Avatar/Avatar.js +3 -1
  7. package/AvatarGroup/AvatarGroup.d.ts +51 -18
  8. package/AvatarGroup/AvatarGroup.js +37 -18
  9. package/Button/Button.d.ts +1 -1
  10. package/ButtonBase/ButtonBase.d.ts +1 -1
  11. package/CHANGELOG.md +76 -0
  12. package/CardActions/CardActions.d.ts +1 -1
  13. package/CardHeader/CardHeader.d.ts +1 -1
  14. package/Checkbox/Checkbox.d.ts +1 -1
  15. package/Chip/Chip.d.ts +3 -3
  16. package/CircularProgress/CircularProgress.d.ts +1 -1
  17. package/Collapse/Collapse.d.ts +1 -1
  18. package/CssBaseline/CssBaseline.d.ts +1 -1
  19. package/Dialog/Dialog.d.ts +1 -1
  20. package/DialogActions/DialogActions.d.ts +1 -1
  21. package/DialogContent/DialogContent.d.ts +1 -1
  22. package/Drawer/Drawer.d.ts +1 -1
  23. package/Fade/Fade.d.ts +1 -1
  24. package/FilledInput/FilledInput.d.ts +1 -1
  25. package/FormControlLabel/FormControlLabel.d.ts +1 -1
  26. package/FormGroup/FormGroup.d.ts +1 -1
  27. package/GlobalStyles/GlobalStyles.d.ts +1 -1
  28. package/Grid/Grid.d.ts +1 -0
  29. package/Grid/Grid.js +1 -0
  30. package/Grow/Grow.d.ts +1 -1
  31. package/Hidden/Hidden.d.ts +2 -0
  32. package/Hidden/Hidden.js +2 -0
  33. package/ImageListItemBar/ImageListItemBar.d.ts +1 -1
  34. package/Input/Input.d.ts +1 -1
  35. package/InputBase/InputBase.d.ts +1 -1
  36. package/LinearProgress/LinearProgress.d.ts +1 -1
  37. package/ListItem/ListItem.d.ts +4 -12
  38. package/ListItem/ListItem.js +6 -14
  39. package/ListItemAvatar/ListItemAvatar.d.ts +1 -1
  40. package/ListItemIcon/ListItemIcon.d.ts +1 -1
  41. package/ListItemSecondaryAction/ListItemSecondaryAction.d.ts +5 -1
  42. package/ListItemSecondaryAction/ListItemSecondaryAction.js +2 -0
  43. package/ListItemText/ListItemText.d.ts +3 -1
  44. package/Menu/Menu.d.ts +1 -1
  45. package/MobileStepper/MobileStepper.d.ts +1 -1
  46. package/Modal/Modal.d.ts +1 -1
  47. package/NativeSelect/NativeSelect.d.ts +1 -1
  48. package/OutlinedInput/OutlinedInput.d.ts +3 -1
  49. package/OverridableComponent.d.ts +2 -2
  50. package/Pagination/Pagination.d.ts +1 -1
  51. package/Popover/Popover.d.ts +1 -1
  52. package/Popper/Popper.d.ts +4 -0
  53. package/Popper/Popper.js +4 -0
  54. package/Radio/Radio.d.ts +1 -1
  55. package/RadioGroup/RadioGroup.d.ts +1 -1
  56. package/Rating/Rating.d.ts +1 -1
  57. package/Select/Select.d.ts +1 -1
  58. package/Slide/Slide.d.ts +1 -1
  59. package/Slider/Slider.d.ts +1 -1
  60. package/Slider/Slider.js +1 -1
  61. package/Slider/SliderValueLabel.types.d.ts +1 -1
  62. package/Snackbar/Snackbar.d.ts +1 -1
  63. package/SnackbarContent/SnackbarContent.d.ts +1 -1
  64. package/SpeedDial/SpeedDial.d.ts +1 -1
  65. package/SpeedDialAction/SpeedDialAction.d.ts +1 -1
  66. package/SpeedDialIcon/SpeedDialIcon.d.ts +3 -1
  67. package/StepConnector/StepConnector.d.ts +2 -2
  68. package/StepContent/StepContent.d.ts +1 -1
  69. package/StepIcon/StepIcon.d.ts +1 -1
  70. package/StepLabel/StepLabel.d.ts +1 -1
  71. package/Switch/Switch.d.ts +1 -1
  72. package/Tab/Tab.d.ts +1 -1
  73. package/TabScrollButton/TabScrollButton.d.ts +1 -1
  74. package/TableCell/TableCell.d.ts +1 -1
  75. package/TextField/TextField.d.ts +1 -1
  76. package/ToggleButtonGroup/ToggleButtonGroup.d.ts +1 -1
  77. package/Tooltip/Tooltip.d.ts +3 -5
  78. package/Tooltip/Tooltip.js +2 -4
  79. package/Zoom/Zoom.d.ts +1 -1
  80. package/index.js +1 -1
  81. package/locale/index.d.ts +1 -0
  82. package/locale/index.js +74 -1
  83. package/modern/Avatar/Avatar.js +3 -1
  84. package/modern/AvatarGroup/AvatarGroup.js +37 -18
  85. package/modern/Grid/Grid.js +1 -0
  86. package/modern/Hidden/Hidden.js +2 -0
  87. package/modern/ListItem/ListItem.js +6 -14
  88. package/modern/ListItemSecondaryAction/ListItemSecondaryAction.js +2 -0
  89. package/modern/Popper/Popper.js +4 -0
  90. package/modern/Slider/Slider.js +1 -1
  91. package/modern/Tooltip/Tooltip.js +2 -4
  92. package/modern/index.js +1 -1
  93. package/modern/locale/index.js +74 -1
  94. package/modern/styles/CssVarsProvider.js +17 -6
  95. package/modern/styles/experimental_extendTheme.js +8 -354
  96. package/modern/styles/extendTheme.js +355 -0
  97. package/modern/styles/index.js +2 -1
  98. package/modern/styles/responsiveFontSizes.js +3 -0
  99. package/node/Avatar/Avatar.js +3 -1
  100. package/node/AvatarGroup/AvatarGroup.js +37 -18
  101. package/node/Grid/Grid.js +1 -0
  102. package/node/Hidden/Hidden.js +2 -0
  103. package/node/ListItem/ListItem.js +6 -14
  104. package/node/ListItemSecondaryAction/ListItemSecondaryAction.js +2 -0
  105. package/node/Popper/Popper.js +4 -0
  106. package/node/Slider/Slider.js +1 -1
  107. package/node/Tooltip/Tooltip.js +2 -4
  108. package/node/index.js +1 -1
  109. package/node/locale/index.js +75 -2
  110. package/node/styles/CssVarsProvider.js +22 -7
  111. package/node/styles/experimental_extendTheme.js +9 -360
  112. package/node/styles/extendTheme.js +367 -0
  113. package/node/styles/index.js +10 -0
  114. package/node/styles/responsiveFontSizes.js +3 -0
  115. package/package.json +6 -6
  116. package/styles/CssVarsProvider.d.ts +3 -2
  117. package/styles/CssVarsProvider.js +17 -6
  118. package/styles/experimental_extendTheme.js +8 -354
  119. package/styles/{experimental_extendTheme.d.ts → extendTheme.d.ts} +1 -2
  120. package/styles/extendTheme.js +355 -0
  121. package/styles/index.d.ts +2 -2
  122. package/styles/index.js +2 -1
  123. package/styles/responsiveFontSizes.js +3 -0
  124. package/themeCssVarsAugmentation/index.d.ts +1 -1
  125. package/types/OverridableComponentAugmentation.d.ts +2 -2
@@ -0,0 +1,355 @@
1
+ import deepmerge from '@mui/utils/deepmerge';
2
+ import { unstable_createGetCssVar as systemCreateGetCssVar, createSpacing } from '@mui/system';
3
+ import { createUnarySpacing } from '@mui/system/spacing';
4
+ import { prepareCssVars, prepareTypographyVars } from '@mui/system/cssVars';
5
+ import styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';
6
+ 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
+ import defaultShouldSkipGeneratingVar from './shouldSkipGeneratingVar';
8
+ import createThemeWithoutVars from './createTheme';
9
+ import getOverlayAlpha from './getOverlayAlpha';
10
+ import defaultGetSelector from './createGetSelector';
11
+ const defaultDarkOverlays = [...Array(25)].map((_, index) => {
12
+ if (index === 0) {
13
+ return undefined;
14
+ }
15
+ const overlay = getOverlayAlpha(index);
16
+ return `linear-gradient(rgba(255 255 255 / ${overlay}), rgba(255 255 255 / ${overlay}))`;
17
+ });
18
+ function assignNode(obj, keys) {
19
+ keys.forEach(k => {
20
+ if (!obj[k]) {
21
+ obj[k] = {};
22
+ }
23
+ });
24
+ }
25
+ function setColor(obj, key, defaultValue) {
26
+ if (!obj[key] && defaultValue) {
27
+ obj[key] = defaultValue;
28
+ }
29
+ }
30
+ function toRgb(color) {
31
+ if (!color || !color.startsWith('hsl')) {
32
+ return color;
33
+ }
34
+ return hslToRgb(color);
35
+ }
36
+ function setColorChannel(obj, key) {
37
+ if (!(`${key}Channel` in obj)) {
38
+ // custom channel token is not provided, generate one.
39
+ // if channel token can't be generated, show a warning.
40
+ obj[`${key}Channel`] = safeColorChannel(toRgb(obj[key]), `MUI: Can't create \`palette.${key}Channel\` because \`palette.${key}\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + '\n' + `To suppress this warning, you need to explicitly provide the \`palette.${key}Channel\` as a string (in rgb format, for example "12 12 12") or undefined if you want to remove the channel token.`);
41
+ }
42
+ }
43
+ function getSpacingVal(spacingInput) {
44
+ if (typeof spacingInput === 'number') {
45
+ return `${spacingInput}px`;
46
+ }
47
+ if (typeof spacingInput === 'string') {
48
+ return spacingInput;
49
+ }
50
+ if (typeof spacingInput === 'function') {
51
+ return getSpacingVal(spacingInput(1));
52
+ }
53
+ if (Array.isArray(spacingInput)) {
54
+ return spacingInput;
55
+ }
56
+ return '8px';
57
+ }
58
+ const silent = fn => {
59
+ try {
60
+ return fn();
61
+ } catch (error) {
62
+ // ignore error
63
+ }
64
+ return undefined;
65
+ };
66
+ export const createGetCssVar = (cssVarPrefix = 'mui') => systemCreateGetCssVar(cssVarPrefix);
67
+ export default function extendTheme(options = {}, ...args) {
68
+ const {
69
+ colorSchemes: colorSchemesInput = {},
70
+ cssVarPrefix = 'mui',
71
+ shouldSkipGeneratingVar = defaultShouldSkipGeneratingVar,
72
+ getSelector,
73
+ ...input
74
+ } = options;
75
+ const getCssVar = createGetCssVar(cssVarPrefix);
76
+ const {
77
+ palette: lightPalette,
78
+ ...muiTheme
79
+ } = createThemeWithoutVars({
80
+ ...input,
81
+ ...(colorSchemesInput.light && {
82
+ palette: colorSchemesInput.light?.palette
83
+ })
84
+ });
85
+ const {
86
+ palette: darkPalette
87
+ } = createThemeWithoutVars({
88
+ palette: {
89
+ mode: 'dark',
90
+ ...colorSchemesInput.dark?.palette
91
+ }
92
+ });
93
+ let theme = {
94
+ defaultColorScheme: 'light',
95
+ ...muiTheme,
96
+ cssVarPrefix,
97
+ getCssVar,
98
+ colorSchemes: {
99
+ ...colorSchemesInput,
100
+ light: {
101
+ ...colorSchemesInput.light,
102
+ palette: lightPalette,
103
+ opacity: {
104
+ inputPlaceholder: 0.42,
105
+ inputUnderline: 0.42,
106
+ switchTrackDisabled: 0.12,
107
+ switchTrack: 0.38,
108
+ ...colorSchemesInput.light?.opacity
109
+ },
110
+ overlays: colorSchemesInput.light?.overlays || []
111
+ },
112
+ dark: {
113
+ ...colorSchemesInput.dark,
114
+ palette: darkPalette,
115
+ opacity: {
116
+ inputPlaceholder: 0.5,
117
+ inputUnderline: 0.7,
118
+ switchTrackDisabled: 0.2,
119
+ switchTrack: 0.3,
120
+ ...colorSchemesInput.dark?.opacity
121
+ },
122
+ overlays: colorSchemesInput.dark?.overlays || defaultDarkOverlays
123
+ }
124
+ },
125
+ font: {
126
+ ...prepareTypographyVars(muiTheme.typography),
127
+ ...muiTheme.font
128
+ },
129
+ spacing: getSpacingVal(input.spacing)
130
+ };
131
+ Object.keys(theme.colorSchemes).forEach(key => {
132
+ const palette = theme.colorSchemes[key].palette;
133
+ const setCssVarColor = cssVar => {
134
+ const tokens = cssVar.split('-');
135
+ const color = tokens[1];
136
+ const colorToken = tokens[2];
137
+ return getCssVar(cssVar, palette[color][colorToken]);
138
+ };
139
+
140
+ // attach black & white channels to common node
141
+ if (key === 'light') {
142
+ setColor(palette.common, 'background', '#fff');
143
+ setColor(palette.common, 'onBackground', '#000');
144
+ } else {
145
+ setColor(palette.common, 'background', '#000');
146
+ setColor(palette.common, 'onBackground', '#fff');
147
+ }
148
+
149
+ // assign component variables
150
+ assignNode(palette, ['Alert', 'AppBar', 'Avatar', 'Button', 'Chip', 'FilledInput', 'LinearProgress', 'Skeleton', 'Slider', 'SnackbarContent', 'SpeedDialAction', 'StepConnector', 'StepContent', 'Switch', 'TableCell', 'Tooltip']);
151
+ if (key === 'light') {
152
+ setColor(palette.Alert, 'errorColor', safeDarken(palette.error.light, 0.6));
153
+ setColor(palette.Alert, 'infoColor', safeDarken(palette.info.light, 0.6));
154
+ setColor(palette.Alert, 'successColor', safeDarken(palette.success.light, 0.6));
155
+ setColor(palette.Alert, 'warningColor', safeDarken(palette.warning.light, 0.6));
156
+ setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-main'));
157
+ setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-main'));
158
+ setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-main'));
159
+ setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-main'));
160
+ setColor(palette.Alert, 'errorFilledColor', silent(() => lightPalette.getContrastText(palette.error.main)));
161
+ setColor(palette.Alert, 'infoFilledColor', silent(() => lightPalette.getContrastText(palette.info.main)));
162
+ setColor(palette.Alert, 'successFilledColor', silent(() => lightPalette.getContrastText(palette.success.main)));
163
+ setColor(palette.Alert, 'warningFilledColor', silent(() => lightPalette.getContrastText(palette.warning.main)));
164
+ setColor(palette.Alert, 'errorStandardBg', safeLighten(palette.error.light, 0.9));
165
+ setColor(palette.Alert, 'infoStandardBg', safeLighten(palette.info.light, 0.9));
166
+ setColor(palette.Alert, 'successStandardBg', safeLighten(palette.success.light, 0.9));
167
+ setColor(palette.Alert, 'warningStandardBg', safeLighten(palette.warning.light, 0.9));
168
+ setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));
169
+ setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));
170
+ setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));
171
+ setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main'));
172
+ setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-100'));
173
+ setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-400'));
174
+ setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-300'));
175
+ setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-A100'));
176
+ setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-400'));
177
+ setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-700'));
178
+ setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-700'));
179
+ setColor(palette.FilledInput, 'bg', 'rgba(0, 0, 0, 0.06)');
180
+ setColor(palette.FilledInput, 'hoverBg', 'rgba(0, 0, 0, 0.09)');
181
+ setColor(palette.FilledInput, 'disabledBg', 'rgba(0, 0, 0, 0.12)');
182
+ setColor(palette.LinearProgress, 'primaryBg', safeLighten(palette.primary.main, 0.62));
183
+ setColor(palette.LinearProgress, 'secondaryBg', safeLighten(palette.secondary.main, 0.62));
184
+ setColor(palette.LinearProgress, 'errorBg', safeLighten(palette.error.main, 0.62));
185
+ setColor(palette.LinearProgress, 'infoBg', safeLighten(palette.info.main, 0.62));
186
+ setColor(palette.LinearProgress, 'successBg', safeLighten(palette.success.main, 0.62));
187
+ setColor(palette.LinearProgress, 'warningBg', safeLighten(palette.warning.main, 0.62));
188
+ setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.11)`);
189
+ setColor(palette.Slider, 'primaryTrack', safeLighten(palette.primary.main, 0.62));
190
+ setColor(palette.Slider, 'secondaryTrack', safeLighten(palette.secondary.main, 0.62));
191
+ setColor(palette.Slider, 'errorTrack', safeLighten(palette.error.main, 0.62));
192
+ setColor(palette.Slider, 'infoTrack', safeLighten(palette.info.main, 0.62));
193
+ setColor(palette.Slider, 'successTrack', safeLighten(palette.success.main, 0.62));
194
+ setColor(palette.Slider, 'warningTrack', safeLighten(palette.warning.main, 0.62));
195
+ const snackbarContentBackground = safeEmphasize(palette.background.default, 0.8);
196
+ setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
197
+ setColor(palette.SnackbarContent, 'color', silent(() => lightPalette.getContrastText(snackbarContentBackground)));
198
+ setColor(palette.SpeedDialAction, 'fabHoverBg', safeEmphasize(palette.background.paper, 0.15));
199
+ setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-400'));
200
+ setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-400'));
201
+ setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-common-white'));
202
+ setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-100'));
203
+ setColor(palette.Switch, 'primaryDisabledColor', safeLighten(palette.primary.main, 0.62));
204
+ setColor(palette.Switch, 'secondaryDisabledColor', safeLighten(palette.secondary.main, 0.62));
205
+ setColor(palette.Switch, 'errorDisabledColor', safeLighten(palette.error.main, 0.62));
206
+ setColor(palette.Switch, 'infoDisabledColor', safeLighten(palette.info.main, 0.62));
207
+ setColor(palette.Switch, 'successDisabledColor', safeLighten(palette.success.main, 0.62));
208
+ setColor(palette.Switch, 'warningDisabledColor', safeLighten(palette.warning.main, 0.62));
209
+ setColor(palette.TableCell, 'border', safeLighten(safeAlpha(palette.divider, 1), 0.88));
210
+ setColor(palette.Tooltip, 'bg', safeAlpha(palette.grey[700], 0.92));
211
+ } else {
212
+ setColor(palette.Alert, 'errorColor', safeLighten(palette.error.light, 0.6));
213
+ setColor(palette.Alert, 'infoColor', safeLighten(palette.info.light, 0.6));
214
+ setColor(palette.Alert, 'successColor', safeLighten(palette.success.light, 0.6));
215
+ setColor(palette.Alert, 'warningColor', safeLighten(palette.warning.light, 0.6));
216
+ setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-dark'));
217
+ setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-dark'));
218
+ setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-dark'));
219
+ setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-dark'));
220
+ setColor(palette.Alert, 'errorFilledColor', silent(() => darkPalette.getContrastText(palette.error.dark)));
221
+ setColor(palette.Alert, 'infoFilledColor', silent(() => darkPalette.getContrastText(palette.info.dark)));
222
+ setColor(palette.Alert, 'successFilledColor', silent(() => darkPalette.getContrastText(palette.success.dark)));
223
+ setColor(palette.Alert, 'warningFilledColor', silent(() => darkPalette.getContrastText(palette.warning.dark)));
224
+ setColor(palette.Alert, 'errorStandardBg', safeDarken(palette.error.light, 0.9));
225
+ setColor(palette.Alert, 'infoStandardBg', safeDarken(palette.info.light, 0.9));
226
+ setColor(palette.Alert, 'successStandardBg', safeDarken(palette.success.light, 0.9));
227
+ setColor(palette.Alert, 'warningStandardBg', safeDarken(palette.warning.light, 0.9));
228
+ setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));
229
+ setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));
230
+ setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));
231
+ setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main'));
232
+ setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-900'));
233
+ setColor(palette.AppBar, 'darkBg', setCssVarColor('palette-background-paper')); // specific for dark mode
234
+ setColor(palette.AppBar, 'darkColor', setCssVarColor('palette-text-primary')); // specific for dark mode
235
+ setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-600'));
236
+ setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-800'));
237
+ setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-700'));
238
+ setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-700'));
239
+ setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-300'));
240
+ setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-300'));
241
+ setColor(palette.FilledInput, 'bg', 'rgba(255, 255, 255, 0.09)');
242
+ setColor(palette.FilledInput, 'hoverBg', 'rgba(255, 255, 255, 0.13)');
243
+ setColor(palette.FilledInput, 'disabledBg', 'rgba(255, 255, 255, 0.12)');
244
+ setColor(palette.LinearProgress, 'primaryBg', safeDarken(palette.primary.main, 0.5));
245
+ setColor(palette.LinearProgress, 'secondaryBg', safeDarken(palette.secondary.main, 0.5));
246
+ setColor(palette.LinearProgress, 'errorBg', safeDarken(palette.error.main, 0.5));
247
+ setColor(palette.LinearProgress, 'infoBg', safeDarken(palette.info.main, 0.5));
248
+ setColor(palette.LinearProgress, 'successBg', safeDarken(palette.success.main, 0.5));
249
+ setColor(palette.LinearProgress, 'warningBg', safeDarken(palette.warning.main, 0.5));
250
+ setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.13)`);
251
+ setColor(palette.Slider, 'primaryTrack', safeDarken(palette.primary.main, 0.5));
252
+ setColor(palette.Slider, 'secondaryTrack', safeDarken(palette.secondary.main, 0.5));
253
+ setColor(palette.Slider, 'errorTrack', safeDarken(palette.error.main, 0.5));
254
+ setColor(palette.Slider, 'infoTrack', safeDarken(palette.info.main, 0.5));
255
+ setColor(palette.Slider, 'successTrack', safeDarken(palette.success.main, 0.5));
256
+ setColor(palette.Slider, 'warningTrack', safeDarken(palette.warning.main, 0.5));
257
+ const snackbarContentBackground = safeEmphasize(palette.background.default, 0.98);
258
+ setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
259
+ setColor(palette.SnackbarContent, 'color', silent(() => darkPalette.getContrastText(snackbarContentBackground)));
260
+ setColor(palette.SpeedDialAction, 'fabHoverBg', safeEmphasize(palette.background.paper, 0.15));
261
+ setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-600'));
262
+ setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-600'));
263
+ setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-grey-300'));
264
+ setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-600'));
265
+ setColor(palette.Switch, 'primaryDisabledColor', safeDarken(palette.primary.main, 0.55));
266
+ setColor(palette.Switch, 'secondaryDisabledColor', safeDarken(palette.secondary.main, 0.55));
267
+ setColor(palette.Switch, 'errorDisabledColor', safeDarken(palette.error.main, 0.55));
268
+ setColor(palette.Switch, 'infoDisabledColor', safeDarken(palette.info.main, 0.55));
269
+ setColor(palette.Switch, 'successDisabledColor', safeDarken(palette.success.main, 0.55));
270
+ setColor(palette.Switch, 'warningDisabledColor', safeDarken(palette.warning.main, 0.55));
271
+ setColor(palette.TableCell, 'border', safeDarken(safeAlpha(palette.divider, 1), 0.68));
272
+ setColor(palette.Tooltip, 'bg', safeAlpha(palette.grey[700], 0.92));
273
+ }
274
+
275
+ // MUI X - DataGrid needs this token.
276
+ setColorChannel(palette.background, 'default');
277
+
278
+ // added for consistency with the `background.default` token
279
+ setColorChannel(palette.background, 'paper');
280
+ setColorChannel(palette.common, 'background');
281
+ setColorChannel(palette.common, 'onBackground');
282
+ setColorChannel(palette, 'divider');
283
+ Object.keys(palette).forEach(color => {
284
+ const colors = palette[color];
285
+
286
+ // The default palettes (primary, secondary, error, info, success, and warning) errors are handled by the above `createTheme(...)`.
287
+
288
+ if (colors && typeof colors === 'object') {
289
+ // Silent the error for custom palettes.
290
+ if (colors.main) {
291
+ setColor(palette[color], 'mainChannel', safeColorChannel(toRgb(colors.main)));
292
+ }
293
+ if (colors.light) {
294
+ setColor(palette[color], 'lightChannel', safeColorChannel(toRgb(colors.light)));
295
+ }
296
+ if (colors.dark) {
297
+ setColor(palette[color], 'darkChannel', safeColorChannel(toRgb(colors.dark)));
298
+ }
299
+ if (colors.contrastText) {
300
+ setColor(palette[color], 'contrastTextChannel', safeColorChannel(toRgb(colors.contrastText)));
301
+ }
302
+ if (color === 'text') {
303
+ // Text colors: text.primary, text.secondary
304
+ setColorChannel(palette[color], 'primary');
305
+ setColorChannel(palette[color], 'secondary');
306
+ }
307
+ if (color === 'action') {
308
+ // Action colors: action.active, action.selected
309
+ if (colors.active) {
310
+ setColorChannel(palette[color], 'active');
311
+ }
312
+ if (colors.selected) {
313
+ setColorChannel(palette[color], 'selected');
314
+ }
315
+ }
316
+ }
317
+ });
318
+ });
319
+ theme = args.reduce((acc, argument) => deepmerge(acc, argument), theme);
320
+ const parserConfig = {
321
+ prefix: cssVarPrefix,
322
+ shouldSkipGeneratingVar,
323
+ getSelector: getSelector || defaultGetSelector(theme)
324
+ };
325
+ const {
326
+ vars,
327
+ generateThemeVars,
328
+ generateStyleSheets
329
+ } = prepareCssVars(theme, parserConfig);
330
+ theme.attribute = 'data-mui-color-scheme';
331
+ theme.colorSchemeSelector = ':root';
332
+ theme.vars = vars;
333
+ Object.entries(theme.colorSchemes[theme.defaultColorScheme]).forEach(([key, value]) => {
334
+ theme[key] = value;
335
+ });
336
+ theme.generateThemeVars = generateThemeVars;
337
+ theme.generateStyleSheets = generateStyleSheets;
338
+ theme.generateSpacing = function generateSpacing() {
339
+ return createSpacing(input.spacing, createUnarySpacing(this));
340
+ };
341
+ theme.getColorSchemeSelector = colorScheme => `[${theme.attribute}="${colorScheme}"] &`;
342
+ theme.spacing = theme.generateSpacing();
343
+ theme.shouldSkipGeneratingVar = shouldSkipGeneratingVar;
344
+ theme.unstable_sxConfig = {
345
+ ...defaultSxConfig,
346
+ ...input?.unstable_sxConfig
347
+ };
348
+ theme.unstable_sx = function sx(props) {
349
+ return styleFunctionSx({
350
+ sx: props,
351
+ theme: this
352
+ });
353
+ };
354
+ return theme;
355
+ }
@@ -27,7 +27,8 @@ export { default as makeStyles } from './makeStyles';
27
27
  export { default as withStyles } from './withStyles';
28
28
  export { default as withTheme } from './withTheme';
29
29
  export * from './CssVarsProvider';
30
- export { default as experimental_extendTheme } from './experimental_extendTheme';
30
+ export { default as extendTheme } from './extendTheme';
31
+ export { default as experimental_extendTheme } from './experimental_extendTheme'; // TODO: Remove in v7
31
32
  export { default as getOverlayAlpha } from './getOverlayAlpha';
32
33
  export { default as shouldSkipGeneratingVar } from './shouldSkipGeneratingVar';
33
34
 
@@ -21,6 +21,9 @@ export default function responsiveFontSizes(themeInput, options = {}) {
21
21
  const breakpointValues = breakpoints.map(x => theme.breakpoints.values[x]);
22
22
  variants.forEach(variant => {
23
23
  const style = typography[variant];
24
+ if (!style) {
25
+ return;
26
+ }
24
27
  const remFontSize = parseFloat(convert(style.fontSize, 'rem'));
25
28
  if (remFontSize <= 1) {
26
29
  return;
@@ -183,6 +183,8 @@ const Avatar = /*#__PURE__*/React.forwardRef(function Avatar(inProps, ref) {
183
183
  component,
184
184
  variant
185
185
  };
186
+ // This issue explains why this is required: https://github.com/mui/material-ui/issues/42184
187
+ delete ownerState.ownerState;
186
188
  const classes = useUtilityClasses(ownerState);
187
189
  const [ImgSlot, imgSlotProps] = (0, _useSlot.default)('img', {
188
190
  className: classes.img,
@@ -222,10 +224,10 @@ const Avatar = /*#__PURE__*/React.forwardRef(function Avatar(inProps, ref) {
222
224
  }
223
225
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(AvatarRoot, {
224
226
  as: component,
225
- ownerState: ownerState,
226
227
  className: (0, _clsx.default)(classes.root, className),
227
228
  ref: ref,
228
229
  ...other,
230
+ ownerState: ownerState,
229
231
  children: children
230
232
  });
231
233
  });
@@ -15,6 +15,7 @@ var _composeClasses = _interopRequireDefault(require("@mui/utils/composeClasses"
15
15
  var _zeroStyled = require("../zero-styled");
16
16
  var _Avatar = _interopRequireWildcard(require("../Avatar"));
17
17
  var _avatarGroupClasses = _interopRequireWildcard(require("./avatarGroupClasses"));
18
+ var _useSlot = _interopRequireDefault(require("../utils/useSlot"));
18
19
  var _jsxRuntime = require("react/jsx-runtime");
19
20
  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); }
20
21
  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; }
@@ -64,10 +65,11 @@ const AvatarGroup = /*#__PURE__*/React.forwardRef(function AvatarGroup(inProps,
64
65
  children: childrenProp,
65
66
  className,
66
67
  component = 'div',
67
- componentsProps = {},
68
+ componentsProps,
68
69
  max = 5,
69
70
  renderSurplus,
70
71
  slotProps = {},
72
+ slots = {},
71
73
  spacing = 'medium',
72
74
  total,
73
75
  variant = 'circular',
@@ -98,22 +100,36 @@ const AvatarGroup = /*#__PURE__*/React.forwardRef(function AvatarGroup(inProps,
98
100
  const maxAvatars = Math.min(children.length, clampedMax - 1);
99
101
  const extraAvatars = Math.max(totalAvatars - clampedMax, totalAvatars - maxAvatars, 0);
100
102
  const extraAvatarsElement = renderSurplus ? renderSurplus(extraAvatars) : `+${extraAvatars}`;
101
- const additionalAvatarSlotProps = (_slotProps$additional = slotProps.additionalAvatar) != null ? _slotProps$additional : componentsProps.additionalAvatar;
102
103
  const marginValue = ownerState.spacing && SPACINGS[ownerState.spacing] !== undefined ? SPACINGS[ownerState.spacing] : -ownerState.spacing || -8;
104
+ const externalForwardedProps = {
105
+ slots,
106
+ slotProps: {
107
+ surplus: (_slotProps$additional = slotProps.additionalAvatar) != null ? _slotProps$additional : componentsProps == null ? void 0 : componentsProps.additionalAvatar,
108
+ ...componentsProps,
109
+ ...slotProps
110
+ }
111
+ };
112
+ const [SurplusSlot, surplusProps] = (0, _useSlot.default)('surplus', {
113
+ elementType: _Avatar.default,
114
+ externalForwardedProps,
115
+ className: classes.avatar,
116
+ ownerState,
117
+ additionalProps: {
118
+ variant,
119
+ style: {
120
+ '--AvatarRoot-spacing': marginValue ? `${marginValue}px` : undefined,
121
+ ...other.style
122
+ }
123
+ }
124
+ });
103
125
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(AvatarGroupRoot, {
104
126
  as: component,
105
127
  ownerState: ownerState,
106
128
  className: (0, _clsx.default)(classes.root, className),
107
129
  ref: ref,
108
130
  ...other,
109
- children: [extraAvatars ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_Avatar.default, {
110
- variant: variant,
111
- ...additionalAvatarSlotProps,
112
- className: (0, _clsx.default)(classes.avatar, additionalAvatarSlotProps == null ? void 0 : additionalAvatarSlotProps.className),
113
- style: {
114
- '--AvatarRoot-spacing': marginValue ? `${marginValue}px` : undefined,
115
- ...other.style
116
- },
131
+ children: [extraAvatars ? /*#__PURE__*/(0, _jsxRuntime.jsx)(SurplusSlot, {
132
+ ...surplusProps,
117
133
  children: extraAvatarsElement
118
134
  }) : null, children.slice(0, maxAvatars).reverse().map(child => {
119
135
  return /*#__PURE__*/React.cloneElement(child, {
@@ -150,9 +166,8 @@ process.env.NODE_ENV !== "production" ? AvatarGroup.propTypes /* remove-proptype
150
166
  * You can override the existing props or add new ones.
151
167
  *
152
168
  * This prop is an alias for the `slotProps` prop.
153
- * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.
154
169
  *
155
- * @default {}
170
+ * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
156
171
  */
157
172
  componentsProps: _propTypes.default.shape({
158
173
  additionalAvatar: _propTypes.default.object
@@ -174,15 +189,19 @@ process.env.NODE_ENV !== "production" ? AvatarGroup.propTypes /* remove-proptype
174
189
  */
175
190
  renderSurplus: _propTypes.default.func,
176
191
  /**
177
- * The extra props for the slot components.
178
- * You can override the existing props or add new ones.
179
- *
180
- * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.
181
- *
192
+ * The props used for each slot inside.
182
193
  * @default {}
183
194
  */
184
195
  slotProps: _propTypes.default.shape({
185
- additionalAvatar: _propTypes.default.object
196
+ additionalAvatar: _propTypes.default.object,
197
+ surplus: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
198
+ }),
199
+ /**
200
+ * The components used for each slot inside.
201
+ * @default {}
202
+ */
203
+ slots: _propTypes.default.shape({
204
+ surplus: _propTypes.default.elementType
186
205
  }),
187
206
  /**
188
207
  * Spacing between avatars.
package/node/Grid/Grid.js CHANGED
@@ -546,6 +546,7 @@ process.env.NODE_ENV !== "production" ? Grid.propTypes /* remove-proptypes */ =
546
546
  * Defines the `flex-wrap` style property.
547
547
  * It's applied for all screen sizes.
548
548
  * @default 'wrap'
549
+ * @deprecated Use `flexWrap` instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
549
550
  */
550
551
  wrap: _propTypes.default.oneOf(['nowrap', 'wrap-reverse', 'wrap']),
551
552
  /**
@@ -15,6 +15,8 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
15
15
  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; }
16
16
  /**
17
17
  * Responsively hides children based on the selected implementation.
18
+ *
19
+ * @deprecated The Hidden component was deprecated in Material UI v5. To learn more, see [the Hidden section](/material-ui/migration/v5-component-changes/#hidden) of the migration docs.
18
20
  */function Hidden(props) {
19
21
  const {
20
22
  implementation = 'js',
@@ -232,7 +232,7 @@ const ListItem = /*#__PURE__*/React.forwardRef(function ListItem(inProps, ref) {
232
232
  }, [autoFocus]);
233
233
  const children = React.Children.toArray(childrenProp);
234
234
 
235
- // v4 implementation, deprecated in v5, will be removed in v6
235
+ // v4 implementation, deprecated in v6, will be removed in v7
236
236
  const hasSecondaryAction = children.length && (0, _isMuiElement.default)(children[children.length - 1], ['ListItemSecondaryAction']);
237
237
  const ownerState = {
238
238
  ...props,
@@ -263,7 +263,7 @@ const ListItem = /*#__PURE__*/React.forwardRef(function ListItem(inProps, ref) {
263
263
  Component = _ButtonBase.default;
264
264
  }
265
265
 
266
- // v4 implementation, deprecated in v5, will be removed in v6
266
+ // v4 implementation, deprecated in v6, will be removed in v7
267
267
  if (hasSecondaryAction) {
268
268
  // Use div by default.
269
269
  Component = !componentProps.component && !componentProp ? 'div' : Component;
@@ -381,9 +381,7 @@ process.env.NODE_ENV !== "production" ? ListItem.propTypes /* remove-proptypes *
381
381
  /**
382
382
  * The components used for each slot inside.
383
383
  *
384
- * This prop is an alias for the `slots` prop.
385
- * It's recommended to use the `slots` prop instead.
386
- *
384
+ * @deprecated Use the `slots` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
387
385
  * @default {}
388
386
  */
389
387
  components: _propTypes.default.shape({
@@ -393,9 +391,7 @@ process.env.NODE_ENV !== "production" ? ListItem.propTypes /* remove-proptypes *
393
391
  * The extra props for the slot components.
394
392
  * You can override the existing props or add new ones.
395
393
  *
396
- * This prop is an alias for the `slotProps` prop.
397
- * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.
398
- *
394
+ * @deprecated Use the `slotProps` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
399
395
  * @default {}
400
396
  */
401
397
  componentsProps: _propTypes.default.shape({
@@ -404,13 +400,13 @@ process.env.NODE_ENV !== "production" ? ListItem.propTypes /* remove-proptypes *
404
400
  /**
405
401
  * The container component used when a `ListItemSecondaryAction` is the last child.
406
402
  * @default 'li'
407
- * @deprecated
403
+ * @deprecated Use the `component` or `slots.root` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
408
404
  */
409
405
  ContainerComponent: _elementTypeAcceptingRef.default,
410
406
  /**
411
407
  * Props applied to the container component if used.
412
408
  * @default {}
413
- * @deprecated
409
+ * @deprecated Use the `slotProps.root` prop instead. This prop will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
414
410
  */
415
411
  ContainerProps: _propTypes.default.object,
416
412
  /**
@@ -458,8 +454,6 @@ process.env.NODE_ENV !== "production" ? ListItem.propTypes /* remove-proptypes *
458
454
  * The extra props for the slot components.
459
455
  * You can override the existing props or add new ones.
460
456
  *
461
- * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.
462
- *
463
457
  * @default {}
464
458
  */
465
459
  slotProps: _propTypes.default.shape({
@@ -468,8 +462,6 @@ process.env.NODE_ENV !== "production" ? ListItem.propTypes /* remove-proptypes *
468
462
  /**
469
463
  * The components used for each slot inside.
470
464
  *
471
- * This prop is an alias for the `components` prop, which will be deprecated in the future.
472
- *
473
465
  * @default {}
474
466
  */
475
467
  slots: _propTypes.default.shape({
@@ -53,6 +53,8 @@ const ListItemSecondaryActionRoot = (0, _zeroStyled.styled)('div', {
53
53
 
54
54
  /**
55
55
  * Must be used as the last child of ListItem to function properly.
56
+ *
57
+ * @deprecated Use the `secondaryAction` prop in the `ListItem` component instead. This component will be removed in v7. See [Migrating from deprecated APIs](/material-ui/migration/migrating-from-deprecated-apis/) for more details.
56
58
  */
57
59
  const ListItemSecondaryAction = /*#__PURE__*/React.forwardRef(function ListItemSecondaryAction(inProps, ref) {
58
60
  const props = useThemeProps({
@@ -108,6 +108,8 @@ process.env.NODE_ENV !== "production" ? Popper.propTypes /* remove-proptypes */
108
108
  /**
109
109
  * The components used for each slot inside the Popper.
110
110
  * Either a string to use a HTML element or a component.
111
+ *
112
+ * @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
111
113
  * @default {}
112
114
  */
113
115
  components: _propTypes.default.shape({
@@ -115,6 +117,8 @@ process.env.NODE_ENV !== "production" ? Popper.propTypes /* remove-proptypes */
115
117
  }),
116
118
  /**
117
119
  * The props used for each slot inside the Popper.
120
+ *
121
+ * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
118
122
  * @default {}
119
123
  */
120
124
  componentsProps: _propTypes.default.shape({
@@ -332,7 +332,7 @@ const SliderThumb = exports.SliderThumb = (0, _zeroStyled.styled)('span', {
332
332
  },
333
333
  [`&.${_sliderClasses.default.active}`]: {
334
334
  ...(theme.vars ? {
335
- boxShadow: `0px 0px 0px 14px rgba(${theme.vars.palette[color].mainChannel} / 0.16)}`
335
+ boxShadow: `0px 0px 0px 14px rgba(${theme.vars.palette[color].mainChannel} / 0.16)`
336
336
  } : {
337
337
  boxShadow: `0px 0px 0px 14px ${(0, _colorManipulator.alpha)(theme.palette[color].main, 0.16)}`
338
338
  })
@@ -720,8 +720,7 @@ process.env.NODE_ENV !== "production" ? Tooltip.propTypes /* remove-proptypes */
720
720
  /**
721
721
  * The components used for each slot inside.
722
722
  *
723
- * This prop is an alias for the `slots` prop.
724
- * It's recommended to use the `slots` prop instead.
723
+ * @deprecated use the `slots` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
725
724
  *
726
725
  * @default {}
727
726
  */
@@ -735,8 +734,7 @@ process.env.NODE_ENV !== "production" ? Tooltip.propTypes /* remove-proptypes */
735
734
  * The extra props for the slot components.
736
735
  * You can override the existing props or add new ones.
737
736
  *
738
- * This prop is an alias for the `slotProps` prop.
739
- * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.
737
+ * @deprecated use the `slotProps` prop instead. This prop will be removed in v7. [How to migrate](/material-ui/migration/migrating-from-deprecated-apis/).
740
738
  *
741
739
  * @default {}
742
740
  */