@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
+ }
package/styles/index.d.ts CHANGED
@@ -99,7 +99,7 @@ export { default as withTheme } from './withTheme';
99
99
 
100
100
  export * from './CssVarsProvider';
101
101
 
102
- export { default as experimental_extendTheme } from './experimental_extendTheme';
102
+ export { default as extendTheme } from './extendTheme';
103
103
  export type {
104
104
  ColorSchemeOverrides,
105
105
  SupportedColorScheme,
@@ -132,7 +132,7 @@ export type {
132
132
  ThemeCssVar,
133
133
  ThemeCssVarOverrides,
134
134
  ColorSystemOptions,
135
- } from './experimental_extendTheme';
135
+ } from './extendTheme';
136
136
  export { default as getOverlayAlpha } from './getOverlayAlpha';
137
137
  export { default as shouldSkipGeneratingVar } from './shouldSkipGeneratingVar';
138
138
 
package/styles/index.js CHANGED
@@ -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;
@@ -6,7 +6,7 @@ import type {
6
6
  PaletteColorChannel,
7
7
  PaletteTextChannel,
8
8
  PaletteActionChannel,
9
- } from '../styles/experimental_extendTheme';
9
+ } from '../styles/extendTheme';
10
10
 
11
11
  /**
12
12
  * Enhance the theme types to include new properties from the CssVarsProvider.
@@ -13,8 +13,8 @@ declare module '@mui/material/OverridableComponent' {
13
13
  * Either a string to use a HTML element or a component.
14
14
  */
15
15
  component: DefaultComponent;
16
- } & OverridePropsVer2<TypeMap, DefaultComponent>): JSX.Element;
17
- (props: DefaultComponentPropsVer2<TypeMap>): JSX.Element;
16
+ } & OverridePropsVer2<TypeMap, DefaultComponent>): React.JSX.Element;
17
+ (props: DefaultComponentPropsVer2<TypeMap>): React.JSX.Element;
18
18
  }
19
19
  /**
20
20
  * Props of the component if `component={Component}` is used.