@mui/material 7.1.2 → 7.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Accordion/Accordion.d.ts +11 -0
- package/Accordion/Accordion.js +19 -5
- package/Alert/Alert.js +2 -3
- package/Autocomplete/Autocomplete.js +4 -4
- package/Backdrop/Backdrop.js +1 -0
- package/Breadcrumbs/BreadcrumbCollapsed.js +3 -1
- package/Button/Button.js +5 -6
- package/ButtonGroup/ButtonGroup.js +3 -4
- package/CHANGELOG.md +141 -0
- package/Checkbox/Checkbox.js +2 -3
- package/Chip/Chip.js +11 -11
- package/Divider/Divider.js +1 -2
- package/FilledInput/FilledInput.js +1 -1
- package/IconButton/IconButton.js +2 -3
- package/Input/Input.js +1 -1
- package/Input/inputClasses.d.ts +12 -4
- package/LinearProgress/LinearProgress.js +1 -2
- package/Link/Link.js +11 -4
- package/Link/getTextDecoration.js +5 -0
- package/ListItemButton/ListItemButton.js +4 -5
- package/MenuItem/MenuItem.js +4 -5
- package/NativeSelect/NativeSelectInput.js +6 -2
- package/OutlinedInput/NotchedOutline.js +2 -0
- package/OutlinedInput/OutlinedInput.js +2 -2
- package/OutlinedInput/outlinedInputClasses.d.ts +12 -4
- package/PaginationItem/PaginationItem.js +7 -8
- package/Radio/Radio.js +2 -3
- package/Radio/RadioButtonIcon.js +7 -2
- package/Select/SelectInput.js +69 -20
- package/Skeleton/Skeleton.js +1 -1
- package/Slider/Slider.js +6 -15
- package/Snackbar/Snackbar.js +2 -8
- package/SpeedDial/SpeedDial.js +20 -6
- package/SwipeableDrawer/SwipeArea.js +1 -0
- package/Switch/Switch.js +6 -4
- package/TableCell/TableCell.js +1 -2
- package/TableRow/TableRow.js +2 -3
- package/ToggleButton/ToggleButton.js +7 -8
- package/Tooltip/Tooltip.js +2 -3
- package/esm/Accordion/Accordion.d.ts +11 -0
- package/esm/Accordion/Accordion.js +19 -5
- package/esm/Alert/Alert.js +2 -3
- package/esm/Autocomplete/Autocomplete.js +4 -4
- package/esm/Backdrop/Backdrop.js +1 -0
- package/esm/Breadcrumbs/BreadcrumbCollapsed.js +3 -1
- package/esm/Button/Button.js +5 -6
- package/esm/ButtonGroup/ButtonGroup.js +3 -4
- package/esm/Checkbox/Checkbox.js +2 -3
- package/esm/Chip/Chip.js +11 -11
- package/esm/Divider/Divider.js +1 -2
- package/esm/FilledInput/FilledInput.js +1 -1
- package/esm/IconButton/IconButton.js +2 -3
- package/esm/Input/Input.js +1 -1
- package/esm/Input/inputClasses.d.ts +12 -4
- package/esm/LinearProgress/LinearProgress.js +1 -2
- package/esm/Link/Link.js +11 -4
- package/esm/Link/getTextDecoration.js +5 -0
- package/esm/ListItemButton/ListItemButton.js +4 -5
- package/esm/MenuItem/MenuItem.js +4 -5
- package/esm/NativeSelect/NativeSelectInput.js +6 -2
- package/esm/OutlinedInput/NotchedOutline.js +2 -0
- package/esm/OutlinedInput/OutlinedInput.js +2 -2
- package/esm/OutlinedInput/outlinedInputClasses.d.ts +12 -4
- package/esm/PaginationItem/PaginationItem.js +7 -8
- package/esm/Radio/Radio.js +2 -3
- package/esm/Radio/RadioButtonIcon.js +7 -2
- package/esm/Select/SelectInput.js +69 -20
- package/esm/Skeleton/Skeleton.js +2 -2
- package/esm/Slider/Slider.js +6 -15
- package/esm/Snackbar/Snackbar.js +2 -8
- package/esm/SpeedDial/SpeedDial.js +20 -6
- package/esm/SwipeableDrawer/SwipeArea.js +1 -0
- package/esm/Switch/Switch.js +6 -4
- package/esm/TableCell/TableCell.js +1 -2
- package/esm/TableRow/TableRow.js +2 -3
- package/esm/ToggleButton/ToggleButton.js +7 -8
- package/esm/Tooltip/Tooltip.js +2 -3
- package/esm/index.js +1 -1
- package/esm/internal/SwitchBase.js +4 -1
- package/esm/locale/index.js +6 -3
- package/esm/styles/components.d.ts +5 -0
- package/esm/styles/createColorScheme.d.ts +3 -1
- package/esm/styles/createColorScheme.js +6 -1
- package/esm/styles/createPalette.js +29 -2
- package/esm/styles/createTheme.d.ts +1 -1
- package/esm/styles/createThemeNoVars.d.ts +4 -0
- package/esm/styles/createThemeNoVars.js +59 -1
- package/esm/styles/createThemeWithVars.d.ts +4 -0
- package/esm/styles/createThemeWithVars.js +98 -69
- package/esm/styles/shouldSkipGeneratingVar.js +1 -1
- package/esm/useAutocomplete/useAutocomplete.d.ts +1 -0
- package/esm/useAutocomplete/useAutocomplete.js +21 -3
- package/esm/version/index.js +3 -3
- package/index.js +1 -1
- package/internal/SwitchBase.js +4 -1
- package/locale/index.js +6 -3
- package/package.json +9 -11
- package/styles/components.d.ts +5 -0
- package/styles/createColorScheme.d.ts +3 -1
- package/styles/createColorScheme.js +6 -1
- package/styles/createPalette.js +30 -2
- package/styles/createTheme.d.ts +1 -1
- package/styles/createThemeNoVars.d.ts +4 -0
- package/styles/createThemeNoVars.js +59 -1
- package/styles/createThemeWithVars.d.ts +4 -0
- package/styles/createThemeWithVars.js +98 -69
- package/styles/shouldSkipGeneratingVar.js +1 -1
- package/useAutocomplete/useAutocomplete.d.ts +1 -0
- package/useAutocomplete/useAutocomplete.js +22 -3
- package/version/index.js +3 -3
|
@@ -10,6 +10,7 @@ import createColorScheme, { getOpacity, getOverlays } from "./createColorScheme.
|
|
|
10
10
|
import defaultShouldSkipGeneratingVar from "./shouldSkipGeneratingVar.js";
|
|
11
11
|
import defaultGetSelector from "./createGetSelector.js";
|
|
12
12
|
import { stringifyTheme } from "./stringifyTheme.js";
|
|
13
|
+
import { light, dark } from "./createPalette.js";
|
|
13
14
|
function assignNode(obj, keys) {
|
|
14
15
|
keys.forEach(k => {
|
|
15
16
|
if (!obj[k]) {
|
|
@@ -53,7 +54,7 @@ const silent = fn => {
|
|
|
53
54
|
return undefined;
|
|
54
55
|
};
|
|
55
56
|
export const createGetCssVar = (cssVarPrefix = 'mui') => systemCreateGetCssVar(cssVarPrefix);
|
|
56
|
-
function attachColorScheme(colorSchemes, scheme, restTheme, colorScheme) {
|
|
57
|
+
function attachColorScheme(colorSpace, colorSchemes, scheme, restTheme, colorScheme) {
|
|
57
58
|
if (!scheme) {
|
|
58
59
|
return undefined;
|
|
59
60
|
}
|
|
@@ -65,7 +66,8 @@ function attachColorScheme(colorSchemes, scheme, restTheme, colorScheme) {
|
|
|
65
66
|
palette: {
|
|
66
67
|
mode,
|
|
67
68
|
...scheme?.palette
|
|
68
|
-
}
|
|
69
|
+
},
|
|
70
|
+
colorSpace
|
|
69
71
|
});
|
|
70
72
|
return undefined;
|
|
71
73
|
}
|
|
@@ -77,7 +79,8 @@ function attachColorScheme(colorSchemes, scheme, restTheme, colorScheme) {
|
|
|
77
79
|
palette: {
|
|
78
80
|
mode,
|
|
79
81
|
...scheme?.palette
|
|
80
|
-
}
|
|
82
|
+
},
|
|
83
|
+
colorSpace
|
|
81
84
|
});
|
|
82
85
|
colorSchemes[colorScheme] = {
|
|
83
86
|
...scheme,
|
|
@@ -107,6 +110,7 @@ export default function createThemeWithVars(options = {}, ...args) {
|
|
|
107
110
|
defaultColorScheme: defaultColorSchemeInput,
|
|
108
111
|
disableCssColorScheme = false,
|
|
109
112
|
cssVarPrefix = 'mui',
|
|
113
|
+
nativeColor = false,
|
|
110
114
|
shouldSkipGeneratingVar = defaultShouldSkipGeneratingVar,
|
|
111
115
|
colorSchemeSelector: selector = colorSchemesInput.light && colorSchemesInput.dark ? 'media' : undefined,
|
|
112
116
|
rootSelector = ':root',
|
|
@@ -134,13 +138,19 @@ export default function createThemeWithVars(options = {}, ...args) {
|
|
|
134
138
|
throw new Error(process.env.NODE_ENV !== "production" ? `MUI: The \`colorSchemes.${defaultColorScheme}\` option is either missing or invalid.` : _formatErrorMessage(21, defaultColorScheme));
|
|
135
139
|
}
|
|
136
140
|
|
|
141
|
+
// The reason to use `oklch` is that it is the most perceptually uniform color space and widely supported.
|
|
142
|
+
let colorSpace;
|
|
143
|
+
if (nativeColor) {
|
|
144
|
+
colorSpace = 'oklch';
|
|
145
|
+
}
|
|
146
|
+
|
|
137
147
|
// Create the palette for the default color scheme, either `light`, `dark`, or custom color scheme.
|
|
138
|
-
const muiTheme = attachColorScheme(colorSchemes, defaultScheme, input, defaultColorScheme);
|
|
148
|
+
const muiTheme = attachColorScheme(colorSpace, colorSchemes, defaultScheme, input, defaultColorScheme);
|
|
139
149
|
if (builtInLight && !colorSchemes.light) {
|
|
140
|
-
attachColorScheme(colorSchemes, builtInLight, undefined, 'light');
|
|
150
|
+
attachColorScheme(colorSpace, colorSchemes, builtInLight, undefined, 'light');
|
|
141
151
|
}
|
|
142
152
|
if (builtInDark && !colorSchemes.dark) {
|
|
143
|
-
attachColorScheme(colorSchemes, builtInDark, undefined, 'dark');
|
|
153
|
+
attachColorScheme(colorSpace, colorSchemes, builtInDark, undefined, 'dark');
|
|
144
154
|
}
|
|
145
155
|
let theme = {
|
|
146
156
|
defaultColorScheme,
|
|
@@ -174,14 +184,30 @@ export default function createThemeWithVars(options = {}, ...args) {
|
|
|
174
184
|
setColor(palette.common, 'background', '#000');
|
|
175
185
|
setColor(palette.common, 'onBackground', '#fff');
|
|
176
186
|
}
|
|
187
|
+
function colorMix(method, color, coefficient) {
|
|
188
|
+
if (colorSpace) {
|
|
189
|
+
let mixer;
|
|
190
|
+
if (method === safeAlpha) {
|
|
191
|
+
mixer = `transparent ${((1 - coefficient) * 100).toFixed(0)}%`;
|
|
192
|
+
}
|
|
193
|
+
if (method === safeDarken) {
|
|
194
|
+
mixer = `#000 ${(coefficient * 100).toFixed(0)}%`;
|
|
195
|
+
}
|
|
196
|
+
if (method === safeLighten) {
|
|
197
|
+
mixer = `#fff ${(coefficient * 100).toFixed(0)}%`;
|
|
198
|
+
}
|
|
199
|
+
return `color-mix(in ${colorSpace}, ${color}, ${mixer})`;
|
|
200
|
+
}
|
|
201
|
+
return method(color, coefficient);
|
|
202
|
+
}
|
|
177
203
|
|
|
178
204
|
// assign component variables
|
|
179
205
|
assignNode(palette, ['Alert', 'AppBar', 'Avatar', 'Button', 'Chip', 'FilledInput', 'LinearProgress', 'Skeleton', 'Slider', 'SnackbarContent', 'SpeedDialAction', 'StepConnector', 'StepContent', 'Switch', 'TableCell', 'Tooltip']);
|
|
180
206
|
if (palette.mode === 'light') {
|
|
181
|
-
setColor(palette.Alert, 'errorColor', safeDarken
|
|
182
|
-
setColor(palette.Alert, 'infoColor', safeDarken
|
|
183
|
-
setColor(palette.Alert, 'successColor', safeDarken
|
|
184
|
-
setColor(palette.Alert, 'warningColor', safeDarken
|
|
207
|
+
setColor(palette.Alert, 'errorColor', colorMix(safeDarken, palette.error.light, 0.6));
|
|
208
|
+
setColor(palette.Alert, 'infoColor', colorMix(safeDarken, palette.info.light, 0.6));
|
|
209
|
+
setColor(palette.Alert, 'successColor', colorMix(safeDarken, palette.success.light, 0.6));
|
|
210
|
+
setColor(palette.Alert, 'warningColor', colorMix(safeDarken, palette.warning.light, 0.6));
|
|
185
211
|
setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-main'));
|
|
186
212
|
setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-main'));
|
|
187
213
|
setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-main'));
|
|
@@ -190,10 +216,10 @@ export default function createThemeWithVars(options = {}, ...args) {
|
|
|
190
216
|
setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.main)));
|
|
191
217
|
setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.main)));
|
|
192
218
|
setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.main)));
|
|
193
|
-
setColor(palette.Alert, 'errorStandardBg', safeLighten
|
|
194
|
-
setColor(palette.Alert, 'infoStandardBg', safeLighten
|
|
195
|
-
setColor(palette.Alert, 'successStandardBg', safeLighten
|
|
196
|
-
setColor(palette.Alert, 'warningStandardBg', safeLighten
|
|
219
|
+
setColor(palette.Alert, 'errorStandardBg', colorMix(safeLighten, palette.error.light, 0.9));
|
|
220
|
+
setColor(palette.Alert, 'infoStandardBg', colorMix(safeLighten, palette.info.light, 0.9));
|
|
221
|
+
setColor(palette.Alert, 'successStandardBg', colorMix(safeLighten, palette.success.light, 0.9));
|
|
222
|
+
setColor(palette.Alert, 'warningStandardBg', colorMix(safeLighten, palette.warning.light, 0.9));
|
|
197
223
|
setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));
|
|
198
224
|
setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));
|
|
199
225
|
setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));
|
|
@@ -208,41 +234,42 @@ export default function createThemeWithVars(options = {}, ...args) {
|
|
|
208
234
|
setColor(palette.FilledInput, 'bg', 'rgba(0, 0, 0, 0.06)');
|
|
209
235
|
setColor(palette.FilledInput, 'hoverBg', 'rgba(0, 0, 0, 0.09)');
|
|
210
236
|
setColor(palette.FilledInput, 'disabledBg', 'rgba(0, 0, 0, 0.12)');
|
|
211
|
-
setColor(palette.LinearProgress, 'primaryBg', safeLighten
|
|
212
|
-
setColor(palette.LinearProgress, 'secondaryBg', safeLighten
|
|
213
|
-
setColor(palette.LinearProgress, 'errorBg', safeLighten
|
|
214
|
-
setColor(palette.LinearProgress, 'infoBg', safeLighten
|
|
215
|
-
setColor(palette.LinearProgress, 'successBg', safeLighten
|
|
216
|
-
setColor(palette.LinearProgress, 'warningBg', safeLighten
|
|
217
|
-
setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.11)`);
|
|
218
|
-
setColor(palette.Slider, 'primaryTrack', safeLighten
|
|
219
|
-
setColor(palette.Slider, 'secondaryTrack', safeLighten
|
|
220
|
-
setColor(palette.Slider, 'errorTrack', safeLighten
|
|
221
|
-
setColor(palette.Slider, 'infoTrack', safeLighten
|
|
222
|
-
setColor(palette.Slider, 'successTrack', safeLighten
|
|
223
|
-
setColor(palette.Slider, 'warningTrack', safeLighten
|
|
224
|
-
const snackbarContentBackground =
|
|
237
|
+
setColor(palette.LinearProgress, 'primaryBg', colorMix(safeLighten, palette.primary.main, 0.62));
|
|
238
|
+
setColor(palette.LinearProgress, 'secondaryBg', colorMix(safeLighten, palette.secondary.main, 0.62));
|
|
239
|
+
setColor(palette.LinearProgress, 'errorBg', colorMix(safeLighten, palette.error.main, 0.62));
|
|
240
|
+
setColor(palette.LinearProgress, 'infoBg', colorMix(safeLighten, palette.info.main, 0.62));
|
|
241
|
+
setColor(palette.LinearProgress, 'successBg', colorMix(safeLighten, palette.success.main, 0.62));
|
|
242
|
+
setColor(palette.LinearProgress, 'warningBg', colorMix(safeLighten, palette.warning.main, 0.62));
|
|
243
|
+
setColor(palette.Skeleton, 'bg', colorSpace ? colorMix(safeAlpha, palette.text.primary, 0.11) : `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.11)`);
|
|
244
|
+
setColor(palette.Slider, 'primaryTrack', colorMix(safeLighten, palette.primary.main, 0.62));
|
|
245
|
+
setColor(palette.Slider, 'secondaryTrack', colorMix(safeLighten, palette.secondary.main, 0.62));
|
|
246
|
+
setColor(palette.Slider, 'errorTrack', colorMix(safeLighten, palette.error.main, 0.62));
|
|
247
|
+
setColor(palette.Slider, 'infoTrack', colorMix(safeLighten, palette.info.main, 0.62));
|
|
248
|
+
setColor(palette.Slider, 'successTrack', colorMix(safeLighten, palette.success.main, 0.62));
|
|
249
|
+
setColor(palette.Slider, 'warningTrack', colorMix(safeLighten, palette.warning.main, 0.62));
|
|
250
|
+
const snackbarContentBackground = colorSpace ? colorMix(safeDarken, palette.background.default, 0.6825) // use `0.6825` instead of `0.8` to match the contrast ratio of JS implementation
|
|
251
|
+
: safeEmphasize(palette.background.default, 0.8);
|
|
225
252
|
setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
|
|
226
|
-
setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));
|
|
253
|
+
setColor(palette.SnackbarContent, 'color', silent(() => colorSpace ? dark.text.primary : palette.getContrastText(snackbarContentBackground)));
|
|
227
254
|
setColor(palette.SpeedDialAction, 'fabHoverBg', safeEmphasize(palette.background.paper, 0.15));
|
|
228
255
|
setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-400'));
|
|
229
256
|
setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-400'));
|
|
230
257
|
setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-common-white'));
|
|
231
258
|
setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-100'));
|
|
232
|
-
setColor(palette.Switch, 'primaryDisabledColor', safeLighten
|
|
233
|
-
setColor(palette.Switch, 'secondaryDisabledColor', safeLighten
|
|
234
|
-
setColor(palette.Switch, 'errorDisabledColor', safeLighten
|
|
235
|
-
setColor(palette.Switch, 'infoDisabledColor', safeLighten
|
|
236
|
-
setColor(palette.Switch, 'successDisabledColor', safeLighten
|
|
237
|
-
setColor(palette.Switch, 'warningDisabledColor', safeLighten
|
|
238
|
-
setColor(palette.TableCell, 'border', safeLighten(safeAlpha
|
|
239
|
-
setColor(palette.Tooltip, 'bg', safeAlpha
|
|
259
|
+
setColor(palette.Switch, 'primaryDisabledColor', colorMix(safeLighten, palette.primary.main, 0.62));
|
|
260
|
+
setColor(palette.Switch, 'secondaryDisabledColor', colorMix(safeLighten, palette.secondary.main, 0.62));
|
|
261
|
+
setColor(palette.Switch, 'errorDisabledColor', colorMix(safeLighten, palette.error.main, 0.62));
|
|
262
|
+
setColor(palette.Switch, 'infoDisabledColor', colorMix(safeLighten, palette.info.main, 0.62));
|
|
263
|
+
setColor(palette.Switch, 'successDisabledColor', colorMix(safeLighten, palette.success.main, 0.62));
|
|
264
|
+
setColor(palette.Switch, 'warningDisabledColor', colorMix(safeLighten, palette.warning.main, 0.62));
|
|
265
|
+
setColor(palette.TableCell, 'border', colorMix(safeLighten, colorMix(safeAlpha, palette.divider, 1), 0.88));
|
|
266
|
+
setColor(palette.Tooltip, 'bg', colorMix(safeAlpha, palette.grey[700], 0.92));
|
|
240
267
|
}
|
|
241
268
|
if (palette.mode === 'dark') {
|
|
242
|
-
setColor(palette.Alert, 'errorColor', safeLighten
|
|
243
|
-
setColor(palette.Alert, 'infoColor', safeLighten
|
|
244
|
-
setColor(palette.Alert, 'successColor', safeLighten
|
|
245
|
-
setColor(palette.Alert, 'warningColor', safeLighten
|
|
269
|
+
setColor(palette.Alert, 'errorColor', colorMix(safeLighten, palette.error.light, 0.6));
|
|
270
|
+
setColor(palette.Alert, 'infoColor', colorMix(safeLighten, palette.info.light, 0.6));
|
|
271
|
+
setColor(palette.Alert, 'successColor', colorMix(safeLighten, palette.success.light, 0.6));
|
|
272
|
+
setColor(palette.Alert, 'warningColor', colorMix(safeLighten, palette.warning.light, 0.6));
|
|
246
273
|
setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-dark'));
|
|
247
274
|
setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-dark'));
|
|
248
275
|
setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-dark'));
|
|
@@ -251,10 +278,10 @@ export default function createThemeWithVars(options = {}, ...args) {
|
|
|
251
278
|
setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.dark)));
|
|
252
279
|
setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.dark)));
|
|
253
280
|
setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.dark)));
|
|
254
|
-
setColor(palette.Alert, 'errorStandardBg', safeDarken
|
|
255
|
-
setColor(palette.Alert, 'infoStandardBg', safeDarken
|
|
256
|
-
setColor(palette.Alert, 'successStandardBg', safeDarken
|
|
257
|
-
setColor(palette.Alert, 'warningStandardBg', safeDarken
|
|
281
|
+
setColor(palette.Alert, 'errorStandardBg', colorMix(safeDarken, palette.error.light, 0.9));
|
|
282
|
+
setColor(palette.Alert, 'infoStandardBg', colorMix(safeDarken, palette.info.light, 0.9));
|
|
283
|
+
setColor(palette.Alert, 'successStandardBg', colorMix(safeDarken, palette.success.light, 0.9));
|
|
284
|
+
setColor(palette.Alert, 'warningStandardBg', colorMix(safeDarken, palette.warning.light, 0.9));
|
|
258
285
|
setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));
|
|
259
286
|
setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));
|
|
260
287
|
setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));
|
|
@@ -271,35 +298,36 @@ export default function createThemeWithVars(options = {}, ...args) {
|
|
|
271
298
|
setColor(palette.FilledInput, 'bg', 'rgba(255, 255, 255, 0.09)');
|
|
272
299
|
setColor(palette.FilledInput, 'hoverBg', 'rgba(255, 255, 255, 0.13)');
|
|
273
300
|
setColor(palette.FilledInput, 'disabledBg', 'rgba(255, 255, 255, 0.12)');
|
|
274
|
-
setColor(palette.LinearProgress, 'primaryBg', safeDarken
|
|
275
|
-
setColor(palette.LinearProgress, 'secondaryBg', safeDarken
|
|
276
|
-
setColor(palette.LinearProgress, 'errorBg', safeDarken
|
|
277
|
-
setColor(palette.LinearProgress, 'infoBg', safeDarken
|
|
278
|
-
setColor(palette.LinearProgress, 'successBg', safeDarken
|
|
279
|
-
setColor(palette.LinearProgress, 'warningBg', safeDarken
|
|
280
|
-
setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.13)`);
|
|
281
|
-
setColor(palette.Slider, 'primaryTrack', safeDarken
|
|
282
|
-
setColor(palette.Slider, 'secondaryTrack', safeDarken
|
|
283
|
-
setColor(palette.Slider, 'errorTrack', safeDarken
|
|
284
|
-
setColor(palette.Slider, 'infoTrack', safeDarken
|
|
285
|
-
setColor(palette.Slider, 'successTrack', safeDarken
|
|
286
|
-
setColor(palette.Slider, 'warningTrack', safeDarken
|
|
287
|
-
const snackbarContentBackground =
|
|
301
|
+
setColor(palette.LinearProgress, 'primaryBg', colorMix(safeDarken, palette.primary.main, 0.5));
|
|
302
|
+
setColor(palette.LinearProgress, 'secondaryBg', colorMix(safeDarken, palette.secondary.main, 0.5));
|
|
303
|
+
setColor(palette.LinearProgress, 'errorBg', colorMix(safeDarken, palette.error.main, 0.5));
|
|
304
|
+
setColor(palette.LinearProgress, 'infoBg', colorMix(safeDarken, palette.info.main, 0.5));
|
|
305
|
+
setColor(palette.LinearProgress, 'successBg', colorMix(safeDarken, palette.success.main, 0.5));
|
|
306
|
+
setColor(palette.LinearProgress, 'warningBg', colorMix(safeDarken, palette.warning.main, 0.5));
|
|
307
|
+
setColor(palette.Skeleton, 'bg', colorSpace ? colorMix(safeAlpha, palette.text.primary, 0.13) : `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.13)`);
|
|
308
|
+
setColor(palette.Slider, 'primaryTrack', colorMix(safeDarken, palette.primary.main, 0.5));
|
|
309
|
+
setColor(palette.Slider, 'secondaryTrack', colorMix(safeDarken, palette.secondary.main, 0.5));
|
|
310
|
+
setColor(palette.Slider, 'errorTrack', colorMix(safeDarken, palette.error.main, 0.5));
|
|
311
|
+
setColor(palette.Slider, 'infoTrack', colorMix(safeDarken, palette.info.main, 0.5));
|
|
312
|
+
setColor(palette.Slider, 'successTrack', colorMix(safeDarken, palette.success.main, 0.5));
|
|
313
|
+
setColor(palette.Slider, 'warningTrack', colorMix(safeDarken, palette.warning.main, 0.5));
|
|
314
|
+
const snackbarContentBackground = colorSpace ? colorMix(safeLighten, palette.background.default, 0.985) // use `0.985` instead of `0.98` to match the contrast ratio of JS implementation
|
|
315
|
+
: safeEmphasize(palette.background.default, 0.98);
|
|
288
316
|
setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
|
|
289
|
-
setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));
|
|
317
|
+
setColor(palette.SnackbarContent, 'color', silent(() => colorSpace ? light.text.primary : palette.getContrastText(snackbarContentBackground)));
|
|
290
318
|
setColor(palette.SpeedDialAction, 'fabHoverBg', safeEmphasize(palette.background.paper, 0.15));
|
|
291
319
|
setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-600'));
|
|
292
320
|
setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-600'));
|
|
293
321
|
setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-grey-300'));
|
|
294
322
|
setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-600'));
|
|
295
|
-
setColor(palette.Switch, 'primaryDisabledColor', safeDarken
|
|
296
|
-
setColor(palette.Switch, 'secondaryDisabledColor', safeDarken
|
|
297
|
-
setColor(palette.Switch, 'errorDisabledColor', safeDarken
|
|
298
|
-
setColor(palette.Switch, 'infoDisabledColor', safeDarken
|
|
299
|
-
setColor(palette.Switch, 'successDisabledColor', safeDarken
|
|
300
|
-
setColor(palette.Switch, 'warningDisabledColor', safeDarken
|
|
301
|
-
setColor(palette.TableCell, 'border', safeDarken(safeAlpha
|
|
302
|
-
setColor(palette.Tooltip, 'bg', safeAlpha
|
|
323
|
+
setColor(palette.Switch, 'primaryDisabledColor', colorMix(safeDarken, palette.primary.main, 0.55));
|
|
324
|
+
setColor(palette.Switch, 'secondaryDisabledColor', colorMix(safeDarken, palette.secondary.main, 0.55));
|
|
325
|
+
setColor(palette.Switch, 'errorDisabledColor', colorMix(safeDarken, palette.error.main, 0.55));
|
|
326
|
+
setColor(palette.Switch, 'infoDisabledColor', colorMix(safeDarken, palette.info.main, 0.55));
|
|
327
|
+
setColor(palette.Switch, 'successDisabledColor', colorMix(safeDarken, palette.success.main, 0.55));
|
|
328
|
+
setColor(palette.Switch, 'warningDisabledColor', colorMix(safeDarken, palette.warning.main, 0.55));
|
|
329
|
+
setColor(palette.TableCell, 'border', colorMix(safeDarken, colorMix(safeAlpha, palette.divider, 1), 0.68));
|
|
330
|
+
setColor(palette.Tooltip, 'bg', colorMix(safeAlpha, palette.grey[700], 0.92));
|
|
303
331
|
}
|
|
304
332
|
|
|
305
333
|
// MUI X - DataGrid needs this token.
|
|
@@ -351,7 +379,8 @@ export default function createThemeWithVars(options = {}, ...args) {
|
|
|
351
379
|
prefix: cssVarPrefix,
|
|
352
380
|
disableCssColorScheme,
|
|
353
381
|
shouldSkipGeneratingVar,
|
|
354
|
-
getSelector: defaultGetSelector(theme)
|
|
382
|
+
getSelector: defaultGetSelector(theme),
|
|
383
|
+
enableContrastVars: nativeColor
|
|
355
384
|
};
|
|
356
385
|
const {
|
|
357
386
|
vars,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export default function shouldSkipGeneratingVar(keys) {
|
|
2
|
-
return !!keys[0].match(/(cssVarPrefix|colorSchemeSelector|rootSelector|typography|mixins|breakpoints|direction|transitions)/) || !!keys[0].match(/sxConfig$/) ||
|
|
2
|
+
return !!keys[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|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
|
}
|
|
@@ -135,6 +135,7 @@ export interface UseAutocompleteProps<Value, Multiple extends boolean | undefine
|
|
|
135
135
|
* Used to determine the disabled state for a given option.
|
|
136
136
|
*
|
|
137
137
|
* @param {Value} option The option to test.
|
|
138
|
+
* @template Value The option shape. Will be the same shape as an item of the options.
|
|
138
139
|
* @returns {boolean}
|
|
139
140
|
*/
|
|
140
141
|
getOptionDisabled?: (option: Value) => boolean;
|
|
@@ -6,6 +6,13 @@ import useEventCallback from '@mui/utils/useEventCallback';
|
|
|
6
6
|
import useControlled from '@mui/utils/useControlled';
|
|
7
7
|
import useId from '@mui/utils/useId';
|
|
8
8
|
import usePreviousProps from '@mui/utils/usePreviousProps';
|
|
9
|
+
function areArraysSame({
|
|
10
|
+
array1,
|
|
11
|
+
array2,
|
|
12
|
+
parser = value => value
|
|
13
|
+
}) {
|
|
14
|
+
return array1 && array2 && array1.length === array2.length && array1.every((prevOption, index) => parser(prevOption) === parser(array2[index]));
|
|
15
|
+
}
|
|
9
16
|
|
|
10
17
|
// https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript
|
|
11
18
|
function stripDiacritics(string) {
|
|
@@ -368,13 +375,22 @@ function useAutocomplete(props) {
|
|
|
368
375
|
}
|
|
369
376
|
}
|
|
370
377
|
});
|
|
378
|
+
const filteredOptionsChanged = !areArraysSame({
|
|
379
|
+
array1: previousProps.filteredOptions,
|
|
380
|
+
array2: filteredOptions,
|
|
381
|
+
parser: getOptionLabel
|
|
382
|
+
});
|
|
371
383
|
const getPreviousHighlightedOptionIndex = () => {
|
|
372
384
|
const isSameValue = (value1, value2) => {
|
|
373
385
|
const label1 = value1 ? getOptionLabel(value1) : '';
|
|
374
386
|
const label2 = value2 ? getOptionLabel(value2) : '';
|
|
375
387
|
return label1 === label2;
|
|
376
388
|
};
|
|
377
|
-
if (highlightedIndexRef.current !== -1 &&
|
|
389
|
+
if (highlightedIndexRef.current !== -1 && !areArraysSame({
|
|
390
|
+
array1: previousProps.filteredOptions,
|
|
391
|
+
array2: filteredOptions,
|
|
392
|
+
parser: getOptionLabel
|
|
393
|
+
}) && previousProps.inputValue === inputValue && (multiple ? value.length === previousProps.value.length && previousProps.value.every((val, i) => getOptionLabel(value[i]) === getOptionLabel(val)) : isSameValue(previousProps.value, value))) {
|
|
378
394
|
const previousHighlightedOption = previousProps.filteredOptions[highlightedIndexRef.current];
|
|
379
395
|
if (previousHighlightedOption) {
|
|
380
396
|
return filteredOptions.findIndex(option => {
|
|
@@ -470,8 +486,10 @@ function useAutocomplete(props) {
|
|
|
470
486
|
}, [componentName]);
|
|
471
487
|
}
|
|
472
488
|
React.useEffect(() => {
|
|
473
|
-
|
|
474
|
-
|
|
489
|
+
if (filteredOptionsChanged) {
|
|
490
|
+
syncHighlightedIndex();
|
|
491
|
+
}
|
|
492
|
+
}, [syncHighlightedIndex, filteredOptionsChanged]);
|
|
475
493
|
const handleOpen = event => {
|
|
476
494
|
if (open) {
|
|
477
495
|
return;
|
package/esm/version/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export const version = "7.
|
|
1
|
+
export const version = "7.3.0";
|
|
2
2
|
export const major = Number("7");
|
|
3
|
-
export const minor = Number("
|
|
4
|
-
export const patch = Number("
|
|
3
|
+
export const minor = Number("3");
|
|
4
|
+
export const patch = Number("0");
|
|
5
5
|
export const prerelease = undefined;
|
|
6
6
|
export default version;
|
package/index.js
CHANGED
package/internal/SwitchBase.js
CHANGED
|
@@ -33,7 +33,9 @@ const useUtilityClasses = ownerState => {
|
|
|
33
33
|
};
|
|
34
34
|
return (0, _composeClasses.default)(slots, _switchBaseClasses.getSwitchBaseUtilityClass, classes);
|
|
35
35
|
};
|
|
36
|
-
const SwitchBaseRoot = (0, _zeroStyled.styled)(_ButtonBase.default
|
|
36
|
+
const SwitchBaseRoot = (0, _zeroStyled.styled)(_ButtonBase.default, {
|
|
37
|
+
name: 'MuiSwitchBase'
|
|
38
|
+
})({
|
|
37
39
|
padding: 9,
|
|
38
40
|
borderRadius: '50%',
|
|
39
41
|
variants: [{
|
|
@@ -71,6 +73,7 @@ const SwitchBaseRoot = (0, _zeroStyled.styled)(_ButtonBase.default)({
|
|
|
71
73
|
}]
|
|
72
74
|
});
|
|
73
75
|
const SwitchBaseInput = (0, _zeroStyled.styled)('input', {
|
|
76
|
+
name: 'MuiSwitchBase',
|
|
74
77
|
shouldForwardProp: _rootShouldForwardProp.default
|
|
75
78
|
})({
|
|
76
79
|
cursor: 'inherit',
|
package/locale/index.js
CHANGED
|
@@ -3284,9 +3284,12 @@ const roRO = exports.roRO = {
|
|
|
3284
3284
|
// if (type === 'previous') {
|
|
3285
3285
|
return 'Mergi la pagina precedentă';
|
|
3286
3286
|
},
|
|
3287
|
-
labelRowsPerPage: 'Rânduri pe pagină:'
|
|
3288
|
-
|
|
3289
|
-
|
|
3287
|
+
labelRowsPerPage: 'Rânduri pe pagină:',
|
|
3288
|
+
labelDisplayedRows: ({
|
|
3289
|
+
from,
|
|
3290
|
+
to,
|
|
3291
|
+
count
|
|
3292
|
+
}) => `${from}–${to} din ${count !== -1 ? count : `mai mult de ${to}`}`
|
|
3290
3293
|
}
|
|
3291
3294
|
},
|
|
3292
3295
|
MuiRating: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mui/material",
|
|
3
|
-
"version": "7.
|
|
3
|
+
"version": "7.3.0",
|
|
4
4
|
"author": "MUI Team",
|
|
5
5
|
"description": "Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.",
|
|
6
6
|
"main": "./index.js",
|
|
@@ -26,18 +26,18 @@
|
|
|
26
26
|
"url": "https://opencollective.com/mui-org"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@babel/runtime": "^7.
|
|
29
|
+
"@babel/runtime": "^7.28.2",
|
|
30
30
|
"@popperjs/core": "^2.11.8",
|
|
31
31
|
"@types/react-transition-group": "^4.4.12",
|
|
32
32
|
"clsx": "^2.1.1",
|
|
33
33
|
"csstype": "^3.1.3",
|
|
34
34
|
"prop-types": "^15.8.1",
|
|
35
|
-
"react-is": "^19.1.
|
|
35
|
+
"react-is": "^19.1.1",
|
|
36
36
|
"react-transition-group": "^4.4.5",
|
|
37
|
-
"@mui/
|
|
38
|
-
"@mui/types": "^7.4.
|
|
39
|
-
"@mui/
|
|
40
|
-
"@mui/
|
|
37
|
+
"@mui/system": "^7.3.0",
|
|
38
|
+
"@mui/types": "^7.4.5",
|
|
39
|
+
"@mui/utils": "^7.3.0",
|
|
40
|
+
"@mui/core-downloads-tracker": "^7.3.0"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
43
43
|
"@emotion/react": "^11.5.0",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
46
46
|
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
47
47
|
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
48
|
-
"@mui/material-pigment-css": "^7.
|
|
48
|
+
"@mui/material-pigment-css": "^7.3.0"
|
|
49
49
|
},
|
|
50
50
|
"peerDependenciesMeta": {
|
|
51
51
|
"@types/react": {
|
|
@@ -63,8 +63,7 @@
|
|
|
63
63
|
},
|
|
64
64
|
"sideEffects": false,
|
|
65
65
|
"publishConfig": {
|
|
66
|
-
"access": "public"
|
|
67
|
-
"directory": "build"
|
|
66
|
+
"access": "public"
|
|
68
67
|
},
|
|
69
68
|
"engines": {
|
|
70
69
|
"node": ">=14.0.0"
|
|
@@ -117,6 +116,5 @@
|
|
|
117
116
|
}
|
|
118
117
|
},
|
|
119
118
|
"private": false,
|
|
120
|
-
"module": "./esm/index.js",
|
|
121
119
|
"types": "./index.d.ts"
|
|
122
120
|
}
|
package/styles/components.d.ts
CHANGED
|
@@ -2,6 +2,11 @@ import { ComponentsProps } from "./props.js";
|
|
|
2
2
|
import { ComponentsOverrides } from "./overrides.js";
|
|
3
3
|
import { ComponentsVariants } from "./variants.js";
|
|
4
4
|
export interface Components<Theme = unknown> {
|
|
5
|
+
/**
|
|
6
|
+
* Whether to merge the className and style coming from the component props with the default props.
|
|
7
|
+
* @default false
|
|
8
|
+
*/
|
|
9
|
+
mergeClassNameAndStyle?: boolean;
|
|
5
10
|
MuiAlert?: {
|
|
6
11
|
defaultProps?: ComponentsProps['MuiAlert'];
|
|
7
12
|
styleOverrides?: ComponentsOverrides<Theme>['MuiAlert'];
|
|
@@ -6,4 +6,6 @@ export declare function getOpacity(mode: 'light' | 'dark'): {
|
|
|
6
6
|
switchTrack: number;
|
|
7
7
|
};
|
|
8
8
|
export declare function getOverlays(mode: 'light' | 'dark'): string[];
|
|
9
|
-
export default function createColorScheme(options: ColorSystemOptions
|
|
9
|
+
export default function createColorScheme(options: ColorSystemOptions & {
|
|
10
|
+
colorSpace?: string;
|
|
11
|
+
}): ColorSystemOptions;
|
|
@@ -35,9 +35,14 @@ function createColorScheme(options) {
|
|
|
35
35
|
// need to cast to avoid module augmentation test
|
|
36
36
|
opacity,
|
|
37
37
|
overlays,
|
|
38
|
+
colorSpace,
|
|
38
39
|
...rest
|
|
39
40
|
} = options;
|
|
40
|
-
|
|
41
|
+
// need to cast because `colorSpace` is considered internal at the moment.
|
|
42
|
+
const palette = (0, _createPalette.default)({
|
|
43
|
+
...paletteInput,
|
|
44
|
+
colorSpace
|
|
45
|
+
});
|
|
41
46
|
return {
|
|
42
47
|
palette,
|
|
43
48
|
opacity: {
|
package/styles/createPalette.js
CHANGED
|
@@ -4,6 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
+
exports.contrastColor = contrastColor;
|
|
7
8
|
exports.dark = void 0;
|
|
8
9
|
exports.default = createPalette;
|
|
9
10
|
exports.light = void 0;
|
|
@@ -101,6 +102,19 @@ function addLightOrDark(intent, direction, shade, tonalOffset) {
|
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
}
|
|
105
|
+
function mixLightOrDark(colorSpace, intent, direction, shade, tonalOffset) {
|
|
106
|
+
const tonalOffsetLight = tonalOffset.light || tonalOffset;
|
|
107
|
+
const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;
|
|
108
|
+
if (!intent[direction]) {
|
|
109
|
+
if (intent.hasOwnProperty(shade)) {
|
|
110
|
+
intent[direction] = intent[shade];
|
|
111
|
+
} else if (direction === 'light') {
|
|
112
|
+
intent.light = `color-mix(in ${colorSpace}, ${intent.main}, #fff ${(tonalOffsetLight * 100).toFixed(0)}%)`;
|
|
113
|
+
} else if (direction === 'dark') {
|
|
114
|
+
intent.dark = `color-mix(in ${colorSpace}, ${intent.main}, #000 ${(tonalOffsetDark * 100).toFixed(0)}%)`;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
104
118
|
function getDefaultPrimary(mode = 'light') {
|
|
105
119
|
if (mode === 'dark') {
|
|
106
120
|
return {
|
|
@@ -186,11 +200,17 @@ function getDefaultWarning(mode = 'light') {
|
|
|
186
200
|
dark: _orange.default[900]
|
|
187
201
|
};
|
|
188
202
|
}
|
|
203
|
+
|
|
204
|
+
// Use the same name as the experimental CSS `contrast-color` function.
|
|
205
|
+
function contrastColor(background) {
|
|
206
|
+
return `oklch(from ${background} var(--__l) 0 h / var(--__a))`;
|
|
207
|
+
}
|
|
189
208
|
function createPalette(palette) {
|
|
190
209
|
const {
|
|
191
210
|
mode = 'light',
|
|
192
211
|
contrastThreshold = 3,
|
|
193
212
|
tonalOffset = 0.2,
|
|
213
|
+
colorSpace,
|
|
194
214
|
...other
|
|
195
215
|
} = palette;
|
|
196
216
|
const primary = palette.primary || getDefaultPrimary(mode);
|
|
@@ -204,6 +224,9 @@ function createPalette(palette) {
|
|
|
204
224
|
// Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59
|
|
205
225
|
// and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54
|
|
206
226
|
function getContrastText(background) {
|
|
227
|
+
if (colorSpace) {
|
|
228
|
+
return contrastColor(background);
|
|
229
|
+
}
|
|
207
230
|
const contrastText = (0, _colorManipulator.getContrastRatio)(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;
|
|
208
231
|
if (process.env.NODE_ENV !== 'production') {
|
|
209
232
|
const contrast = (0, _colorManipulator.getContrastRatio)(background, contrastText);
|
|
@@ -232,8 +255,13 @@ function createPalette(palette) {
|
|
|
232
255
|
if (typeof color.main !== 'string') {
|
|
233
256
|
throw new Error(process.env.NODE_ENV !== "production" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n` + `\`color.main\` should be a string, but \`${JSON.stringify(color.main)}\` was provided instead.\n` + '\n' + 'Did you intend to use one of the following approaches?\n' + '\n' + 'import { green } from "@mui/material/colors";\n' + '\n' + 'const theme1 = createTheme({ palette: {\n' + ' primary: green,\n' + '} });\n' + '\n' + 'const theme2 = createTheme({ palette: {\n' + ' primary: { main: green[500] },\n' + '} });' : (0, _formatMuiErrorMessage.default)(12, name ? ` (${name})` : '', JSON.stringify(color.main)));
|
|
234
257
|
}
|
|
235
|
-
|
|
236
|
-
|
|
258
|
+
if (colorSpace) {
|
|
259
|
+
mixLightOrDark(colorSpace, color, 'light', lightShade, tonalOffset);
|
|
260
|
+
mixLightOrDark(colorSpace, color, 'dark', darkShade, tonalOffset);
|
|
261
|
+
} else {
|
|
262
|
+
addLightOrDark(color, 'light', lightShade, tonalOffset);
|
|
263
|
+
addLightOrDark(color, 'dark', darkShade, tonalOffset);
|
|
264
|
+
}
|
|
237
265
|
if (!color.contrastText) {
|
|
238
266
|
color.contrastText = getContrastText(color.main);
|
|
239
267
|
}
|
package/styles/createTheme.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export type { ThemeOptions, Theme, CssThemeVariables } from "./createThemeNoVars
|
|
|
8
8
|
* @returns A complete, ready-to-use theme object.
|
|
9
9
|
*/
|
|
10
10
|
export default function createTheme(options?: Omit<ThemeOptions, 'components'> & Pick<CssVarsThemeOptions, 'defaultColorScheme' | 'colorSchemes' | 'components'> & {
|
|
11
|
-
cssVariables?: boolean | Pick<CssVarsThemeOptions, 'colorSchemeSelector' | 'rootSelector' | 'disableCssColorScheme' | 'cssVarPrefix' | 'shouldSkipGeneratingVar'>;
|
|
11
|
+
cssVariables?: boolean | Pick<CssVarsThemeOptions, 'colorSchemeSelector' | 'rootSelector' | 'disableCssColorScheme' | 'cssVarPrefix' | 'shouldSkipGeneratingVar' | 'nativeColor'>;
|
|
12
12
|
},
|
|
13
13
|
// cast type to skip module augmentation test
|
|
14
14
|
...args: object[]): Theme;
|
|
@@ -32,6 +32,7 @@ export interface ThemeOptions extends Omit<SystemThemeOptions, 'zIndex'>, CssVar
|
|
|
32
32
|
zIndex?: ZIndexOptions;
|
|
33
33
|
unstable_strictMode?: boolean;
|
|
34
34
|
unstable_sxConfig?: SxConfig;
|
|
35
|
+
modularCssLayers?: boolean | string;
|
|
35
36
|
}
|
|
36
37
|
export interface BaseTheme extends SystemTheme {
|
|
37
38
|
mixins: Mixins;
|
|
@@ -59,6 +60,9 @@ export interface Theme extends BaseTheme, CssVarsProperties {
|
|
|
59
60
|
components?: Components<BaseTheme>;
|
|
60
61
|
unstable_sx: (props: SxProps<Theme>) => CSSObject;
|
|
61
62
|
unstable_sxConfig: SxConfig;
|
|
63
|
+
alpha: (color: string, value: number | string) => string;
|
|
64
|
+
lighten: (color: string, coefficient: number | string) => string;
|
|
65
|
+
darken: (color: string, coefficient: number | string) => string;
|
|
62
66
|
}
|
|
63
67
|
|
|
64
68
|
/**
|