@mui/material 7.2.0 → 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/Button/Button.js +5 -6
- package/ButtonGroup/ButtonGroup.js +3 -4
- package/CHANGELOG.md +76 -0
- package/Checkbox/Checkbox.js +2 -3
- package/Chip/Chip.js +10 -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/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/OutlinedInput/OutlinedInput.js +2 -2
- package/PaginationItem/PaginationItem.js +7 -8
- package/Radio/Radio.js +2 -3
- package/Select/SelectInput.js +66 -21
- 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/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/Button/Button.js +5 -6
- package/esm/ButtonGroup/ButtonGroup.js +3 -4
- package/esm/Checkbox/Checkbox.js +2 -3
- package/esm/Chip/Chip.js +10 -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/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/OutlinedInput/OutlinedInput.js +2 -2
- package/esm/PaginationItem/PaginationItem.js +7 -8
- package/esm/Radio/Radio.js +2 -3
- package/esm/Select/SelectInput.js +66 -21
- 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/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/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 +3 -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/useAutocomplete/useAutocomplete.d.ts +1 -0
- package/esm/useAutocomplete/useAutocomplete.js +21 -3
- package/esm/version/index.js +2 -2
- package/index.js +1 -1
- package/package.json +9 -11
- 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 +3 -0
- package/styles/createThemeNoVars.js +59 -1
- package/styles/createThemeWithVars.d.ts +4 -0
- package/styles/createThemeWithVars.js +98 -69
- package/useAutocomplete/useAutocomplete.d.ts +1 -0
- package/useAutocomplete/useAutocomplete.js +22 -3
- package/version/index.js +2 -2
|
@@ -10,6 +10,7 @@ var _formatMuiErrorMessage = _interopRequireDefault(require("@mui/utils/formatMu
|
|
|
10
10
|
var _deepmerge = _interopRequireDefault(require("@mui/utils/deepmerge"));
|
|
11
11
|
var _styleFunctionSx = _interopRequireWildcard(require("@mui/system/styleFunctionSx"));
|
|
12
12
|
var _createTheme = _interopRequireDefault(require("@mui/system/createTheme"));
|
|
13
|
+
var _colorManipulator = require("@mui/system/colorManipulator");
|
|
13
14
|
var _generateUtilityClass = _interopRequireDefault(require("@mui/utils/generateUtilityClass"));
|
|
14
15
|
var _createMixins = _interopRequireDefault(require("./createMixins"));
|
|
15
16
|
var _createPalette = _interopRequireDefault(require("./createPalette"));
|
|
@@ -18,6 +19,58 @@ var _shadows = _interopRequireDefault(require("./shadows"));
|
|
|
18
19
|
var _createTransitions = _interopRequireDefault(require("./createTransitions"));
|
|
19
20
|
var _zIndex = _interopRequireDefault(require("./zIndex"));
|
|
20
21
|
var _stringifyTheme = require("./stringifyTheme");
|
|
22
|
+
function coefficientToPercentage(coefficient) {
|
|
23
|
+
if (typeof coefficient === 'number') {
|
|
24
|
+
return `${(coefficient * 100).toFixed(0)}%`;
|
|
25
|
+
}
|
|
26
|
+
return `calc((${coefficient}) * 100%)`;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// This can be removed when moved to `color-mix()` entirely.
|
|
30
|
+
const parseAddition = str => {
|
|
31
|
+
if (!Number.isNaN(+str)) {
|
|
32
|
+
return +str;
|
|
33
|
+
}
|
|
34
|
+
const numbers = str.match(/\d*\.?\d+/g);
|
|
35
|
+
if (!numbers) {
|
|
36
|
+
return 0;
|
|
37
|
+
}
|
|
38
|
+
let sum = 0;
|
|
39
|
+
for (let i = 0; i < numbers.length; i += 1) {
|
|
40
|
+
sum += +numbers[i];
|
|
41
|
+
}
|
|
42
|
+
return sum;
|
|
43
|
+
};
|
|
44
|
+
function attachColorManipulators(theme) {
|
|
45
|
+
Object.assign(theme, {
|
|
46
|
+
alpha(color, coefficient) {
|
|
47
|
+
const obj = this || theme;
|
|
48
|
+
if (obj.colorSpace) {
|
|
49
|
+
return `oklch(from ${color} l c h / ${typeof coefficient === 'string' ? `calc(${coefficient})` : coefficient})`;
|
|
50
|
+
}
|
|
51
|
+
if (obj.vars) {
|
|
52
|
+
// To preserve the behavior of the CSS theme variables
|
|
53
|
+
// In the future, this could be replaced by `color-mix` (when https://caniuse.com/?search=color-mix reaches 95%).
|
|
54
|
+
return `rgba(${color.replace(/var\(--([^,\s)]+)(?:,[^)]+)?\)+/g, 'var(--$1Channel)')} / ${typeof coefficient === 'string' ? `calc(${coefficient})` : coefficient})`;
|
|
55
|
+
}
|
|
56
|
+
return (0, _colorManipulator.alpha)(color, parseAddition(coefficient));
|
|
57
|
+
},
|
|
58
|
+
lighten(color, coefficient) {
|
|
59
|
+
const obj = this || theme;
|
|
60
|
+
if (obj.colorSpace) {
|
|
61
|
+
return `color-mix(in ${obj.colorSpace}, ${color}, #fff ${coefficientToPercentage(coefficient)})`;
|
|
62
|
+
}
|
|
63
|
+
return (0, _colorManipulator.lighten)(color, coefficient);
|
|
64
|
+
},
|
|
65
|
+
darken(color, coefficient) {
|
|
66
|
+
const obj = this || theme;
|
|
67
|
+
if (obj.colorSpace) {
|
|
68
|
+
return `color-mix(in ${obj.colorSpace}, ${color}, #000 ${coefficientToPercentage(coefficient)})`;
|
|
69
|
+
}
|
|
70
|
+
return (0, _colorManipulator.darken)(color, coefficient);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
21
74
|
function createThemeNoVars(options = {}, ...args) {
|
|
22
75
|
const {
|
|
23
76
|
breakpoints: breakpointsInput,
|
|
@@ -27,6 +80,7 @@ function createThemeNoVars(options = {}, ...args) {
|
|
|
27
80
|
transitions: transitionsInput = {},
|
|
28
81
|
typography: typographyInput = {},
|
|
29
82
|
shape: shapeInput,
|
|
83
|
+
colorSpace,
|
|
30
84
|
...other
|
|
31
85
|
} = options;
|
|
32
86
|
if (options.vars &&
|
|
@@ -37,7 +91,10 @@ function createThemeNoVars(options = {}, ...args) {
|
|
|
37
91
|
// #host-reference
|
|
38
92
|
'Please use another name or follow the [docs](https://mui.com/material-ui/customization/css-theme-variables/usage/) to enable the feature.' : (0, _formatMuiErrorMessage.default)(20));
|
|
39
93
|
}
|
|
40
|
-
const palette = (0, _createPalette.default)(
|
|
94
|
+
const palette = (0, _createPalette.default)({
|
|
95
|
+
...paletteInput,
|
|
96
|
+
colorSpace
|
|
97
|
+
});
|
|
41
98
|
const systemTheme = (0, _createTheme.default)(options);
|
|
42
99
|
let muiTheme = (0, _deepmerge.default)(systemTheme, {
|
|
43
100
|
mixins: (0, _createMixins.default)(systemTheme.breakpoints, mixinsInput),
|
|
@@ -94,6 +151,7 @@ function createThemeNoVars(options = {}, ...args) {
|
|
|
94
151
|
};
|
|
95
152
|
muiTheme.toRuntimeSource = _stringifyTheme.stringifyTheme; // for Pigment CSS integration
|
|
96
153
|
|
|
154
|
+
attachColorManipulators(muiTheme);
|
|
97
155
|
return muiTheme;
|
|
98
156
|
}
|
|
99
157
|
var _default = exports.default = createThemeNoVars;
|
|
@@ -266,6 +266,10 @@ export interface CssVarsThemeOptions extends Omit<ThemeOptions, 'palette' | 'com
|
|
|
266
266
|
* @default false
|
|
267
267
|
*/
|
|
268
268
|
disableCssColorScheme?: boolean;
|
|
269
|
+
/**
|
|
270
|
+
* If `true`, the CSS relative color will be used.
|
|
271
|
+
*/
|
|
272
|
+
nativeColor?: boolean;
|
|
269
273
|
/**
|
|
270
274
|
* A function to determine if the key, value should be attached as CSS Variable
|
|
271
275
|
* `keys` is an array that represents the object path keys.
|
|
@@ -19,6 +19,7 @@ var _createColorScheme = _interopRequireWildcard(require("./createColorScheme"))
|
|
|
19
19
|
var _shouldSkipGeneratingVar = _interopRequireDefault(require("./shouldSkipGeneratingVar"));
|
|
20
20
|
var _createGetSelector = _interopRequireDefault(require("./createGetSelector"));
|
|
21
21
|
var _stringifyTheme = require("./stringifyTheme");
|
|
22
|
+
var _createPalette = require("./createPalette");
|
|
22
23
|
function assignNode(obj, keys) {
|
|
23
24
|
keys.forEach(k => {
|
|
24
25
|
if (!obj[k]) {
|
|
@@ -63,7 +64,7 @@ const silent = fn => {
|
|
|
63
64
|
};
|
|
64
65
|
const createGetCssVar = (cssVarPrefix = 'mui') => (0, _system.unstable_createGetCssVar)(cssVarPrefix);
|
|
65
66
|
exports.createGetCssVar = createGetCssVar;
|
|
66
|
-
function attachColorScheme(colorSchemes, scheme, restTheme, colorScheme) {
|
|
67
|
+
function attachColorScheme(colorSpace, colorSchemes, scheme, restTheme, colorScheme) {
|
|
67
68
|
if (!scheme) {
|
|
68
69
|
return undefined;
|
|
69
70
|
}
|
|
@@ -75,7 +76,8 @@ function attachColorScheme(colorSchemes, scheme, restTheme, colorScheme) {
|
|
|
75
76
|
palette: {
|
|
76
77
|
mode,
|
|
77
78
|
...scheme?.palette
|
|
78
|
-
}
|
|
79
|
+
},
|
|
80
|
+
colorSpace
|
|
79
81
|
});
|
|
80
82
|
return undefined;
|
|
81
83
|
}
|
|
@@ -87,7 +89,8 @@ function attachColorScheme(colorSchemes, scheme, restTheme, colorScheme) {
|
|
|
87
89
|
palette: {
|
|
88
90
|
mode,
|
|
89
91
|
...scheme?.palette
|
|
90
|
-
}
|
|
92
|
+
},
|
|
93
|
+
colorSpace
|
|
91
94
|
});
|
|
92
95
|
colorSchemes[colorScheme] = {
|
|
93
96
|
...scheme,
|
|
@@ -117,6 +120,7 @@ function createThemeWithVars(options = {}, ...args) {
|
|
|
117
120
|
defaultColorScheme: defaultColorSchemeInput,
|
|
118
121
|
disableCssColorScheme = false,
|
|
119
122
|
cssVarPrefix = 'mui',
|
|
123
|
+
nativeColor = false,
|
|
120
124
|
shouldSkipGeneratingVar = _shouldSkipGeneratingVar.default,
|
|
121
125
|
colorSchemeSelector: selector = colorSchemesInput.light && colorSchemesInput.dark ? 'media' : undefined,
|
|
122
126
|
rootSelector = ':root',
|
|
@@ -144,13 +148,19 @@ function createThemeWithVars(options = {}, ...args) {
|
|
|
144
148
|
throw new Error(process.env.NODE_ENV !== "production" ? `MUI: The \`colorSchemes.${defaultColorScheme}\` option is either missing or invalid.` : (0, _formatMuiErrorMessage.default)(21, defaultColorScheme));
|
|
145
149
|
}
|
|
146
150
|
|
|
151
|
+
// The reason to use `oklch` is that it is the most perceptually uniform color space and widely supported.
|
|
152
|
+
let colorSpace;
|
|
153
|
+
if (nativeColor) {
|
|
154
|
+
colorSpace = 'oklch';
|
|
155
|
+
}
|
|
156
|
+
|
|
147
157
|
// Create the palette for the default color scheme, either `light`, `dark`, or custom color scheme.
|
|
148
|
-
const muiTheme = attachColorScheme(colorSchemes, defaultScheme, input, defaultColorScheme);
|
|
158
|
+
const muiTheme = attachColorScheme(colorSpace, colorSchemes, defaultScheme, input, defaultColorScheme);
|
|
149
159
|
if (builtInLight && !colorSchemes.light) {
|
|
150
|
-
attachColorScheme(colorSchemes, builtInLight, undefined, 'light');
|
|
160
|
+
attachColorScheme(colorSpace, colorSchemes, builtInLight, undefined, 'light');
|
|
151
161
|
}
|
|
152
162
|
if (builtInDark && !colorSchemes.dark) {
|
|
153
|
-
attachColorScheme(colorSchemes, builtInDark, undefined, 'dark');
|
|
163
|
+
attachColorScheme(colorSpace, colorSchemes, builtInDark, undefined, 'dark');
|
|
154
164
|
}
|
|
155
165
|
let theme = {
|
|
156
166
|
defaultColorScheme,
|
|
@@ -184,14 +194,30 @@ function createThemeWithVars(options = {}, ...args) {
|
|
|
184
194
|
setColor(palette.common, 'background', '#000');
|
|
185
195
|
setColor(palette.common, 'onBackground', '#fff');
|
|
186
196
|
}
|
|
197
|
+
function colorMix(method, color, coefficient) {
|
|
198
|
+
if (colorSpace) {
|
|
199
|
+
let mixer;
|
|
200
|
+
if (method === _colorManipulator.private_safeAlpha) {
|
|
201
|
+
mixer = `transparent ${((1 - coefficient) * 100).toFixed(0)}%`;
|
|
202
|
+
}
|
|
203
|
+
if (method === _colorManipulator.private_safeDarken) {
|
|
204
|
+
mixer = `#000 ${(coefficient * 100).toFixed(0)}%`;
|
|
205
|
+
}
|
|
206
|
+
if (method === _colorManipulator.private_safeLighten) {
|
|
207
|
+
mixer = `#fff ${(coefficient * 100).toFixed(0)}%`;
|
|
208
|
+
}
|
|
209
|
+
return `color-mix(in ${colorSpace}, ${color}, ${mixer})`;
|
|
210
|
+
}
|
|
211
|
+
return method(color, coefficient);
|
|
212
|
+
}
|
|
187
213
|
|
|
188
214
|
// assign component variables
|
|
189
215
|
assignNode(palette, ['Alert', 'AppBar', 'Avatar', 'Button', 'Chip', 'FilledInput', 'LinearProgress', 'Skeleton', 'Slider', 'SnackbarContent', 'SpeedDialAction', 'StepConnector', 'StepContent', 'Switch', 'TableCell', 'Tooltip']);
|
|
190
216
|
if (palette.mode === 'light') {
|
|
191
|
-
setColor(palette.Alert, 'errorColor', (
|
|
192
|
-
setColor(palette.Alert, 'infoColor', (
|
|
193
|
-
setColor(palette.Alert, 'successColor', (
|
|
194
|
-
setColor(palette.Alert, 'warningColor', (
|
|
217
|
+
setColor(palette.Alert, 'errorColor', colorMix(_colorManipulator.private_safeDarken, palette.error.light, 0.6));
|
|
218
|
+
setColor(palette.Alert, 'infoColor', colorMix(_colorManipulator.private_safeDarken, palette.info.light, 0.6));
|
|
219
|
+
setColor(palette.Alert, 'successColor', colorMix(_colorManipulator.private_safeDarken, palette.success.light, 0.6));
|
|
220
|
+
setColor(palette.Alert, 'warningColor', colorMix(_colorManipulator.private_safeDarken, palette.warning.light, 0.6));
|
|
195
221
|
setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-main'));
|
|
196
222
|
setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-main'));
|
|
197
223
|
setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-main'));
|
|
@@ -200,10 +226,10 @@ function createThemeWithVars(options = {}, ...args) {
|
|
|
200
226
|
setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.main)));
|
|
201
227
|
setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.main)));
|
|
202
228
|
setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.main)));
|
|
203
|
-
setColor(palette.Alert, 'errorStandardBg', (
|
|
204
|
-
setColor(palette.Alert, 'infoStandardBg', (
|
|
205
|
-
setColor(palette.Alert, 'successStandardBg', (
|
|
206
|
-
setColor(palette.Alert, 'warningStandardBg', (
|
|
229
|
+
setColor(palette.Alert, 'errorStandardBg', colorMix(_colorManipulator.private_safeLighten, palette.error.light, 0.9));
|
|
230
|
+
setColor(palette.Alert, 'infoStandardBg', colorMix(_colorManipulator.private_safeLighten, palette.info.light, 0.9));
|
|
231
|
+
setColor(palette.Alert, 'successStandardBg', colorMix(_colorManipulator.private_safeLighten, palette.success.light, 0.9));
|
|
232
|
+
setColor(palette.Alert, 'warningStandardBg', colorMix(_colorManipulator.private_safeLighten, palette.warning.light, 0.9));
|
|
207
233
|
setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));
|
|
208
234
|
setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));
|
|
209
235
|
setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));
|
|
@@ -218,41 +244,42 @@ function createThemeWithVars(options = {}, ...args) {
|
|
|
218
244
|
setColor(palette.FilledInput, 'bg', 'rgba(0, 0, 0, 0.06)');
|
|
219
245
|
setColor(palette.FilledInput, 'hoverBg', 'rgba(0, 0, 0, 0.09)');
|
|
220
246
|
setColor(palette.FilledInput, 'disabledBg', 'rgba(0, 0, 0, 0.12)');
|
|
221
|
-
setColor(palette.LinearProgress, 'primaryBg', (
|
|
222
|
-
setColor(palette.LinearProgress, 'secondaryBg', (
|
|
223
|
-
setColor(palette.LinearProgress, 'errorBg', (
|
|
224
|
-
setColor(palette.LinearProgress, 'infoBg', (
|
|
225
|
-
setColor(palette.LinearProgress, 'successBg', (
|
|
226
|
-
setColor(palette.LinearProgress, 'warningBg', (
|
|
227
|
-
setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.11)`);
|
|
228
|
-
setColor(palette.Slider, 'primaryTrack', (
|
|
229
|
-
setColor(palette.Slider, 'secondaryTrack', (
|
|
230
|
-
setColor(palette.Slider, 'errorTrack', (
|
|
231
|
-
setColor(palette.Slider, 'infoTrack', (
|
|
232
|
-
setColor(palette.Slider, 'successTrack', (
|
|
233
|
-
setColor(palette.Slider, 'warningTrack', (
|
|
234
|
-
const snackbarContentBackground = (
|
|
247
|
+
setColor(palette.LinearProgress, 'primaryBg', colorMix(_colorManipulator.private_safeLighten, palette.primary.main, 0.62));
|
|
248
|
+
setColor(palette.LinearProgress, 'secondaryBg', colorMix(_colorManipulator.private_safeLighten, palette.secondary.main, 0.62));
|
|
249
|
+
setColor(palette.LinearProgress, 'errorBg', colorMix(_colorManipulator.private_safeLighten, palette.error.main, 0.62));
|
|
250
|
+
setColor(palette.LinearProgress, 'infoBg', colorMix(_colorManipulator.private_safeLighten, palette.info.main, 0.62));
|
|
251
|
+
setColor(palette.LinearProgress, 'successBg', colorMix(_colorManipulator.private_safeLighten, palette.success.main, 0.62));
|
|
252
|
+
setColor(palette.LinearProgress, 'warningBg', colorMix(_colorManipulator.private_safeLighten, palette.warning.main, 0.62));
|
|
253
|
+
setColor(palette.Skeleton, 'bg', colorSpace ? colorMix(_colorManipulator.private_safeAlpha, palette.text.primary, 0.11) : `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.11)`);
|
|
254
|
+
setColor(palette.Slider, 'primaryTrack', colorMix(_colorManipulator.private_safeLighten, palette.primary.main, 0.62));
|
|
255
|
+
setColor(palette.Slider, 'secondaryTrack', colorMix(_colorManipulator.private_safeLighten, palette.secondary.main, 0.62));
|
|
256
|
+
setColor(palette.Slider, 'errorTrack', colorMix(_colorManipulator.private_safeLighten, palette.error.main, 0.62));
|
|
257
|
+
setColor(palette.Slider, 'infoTrack', colorMix(_colorManipulator.private_safeLighten, palette.info.main, 0.62));
|
|
258
|
+
setColor(palette.Slider, 'successTrack', colorMix(_colorManipulator.private_safeLighten, palette.success.main, 0.62));
|
|
259
|
+
setColor(palette.Slider, 'warningTrack', colorMix(_colorManipulator.private_safeLighten, palette.warning.main, 0.62));
|
|
260
|
+
const snackbarContentBackground = colorSpace ? colorMix(_colorManipulator.private_safeDarken, palette.background.default, 0.6825) // use `0.6825` instead of `0.8` to match the contrast ratio of JS implementation
|
|
261
|
+
: (0, _colorManipulator.private_safeEmphasize)(palette.background.default, 0.8);
|
|
235
262
|
setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
|
|
236
|
-
setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));
|
|
263
|
+
setColor(palette.SnackbarContent, 'color', silent(() => colorSpace ? _createPalette.dark.text.primary : palette.getContrastText(snackbarContentBackground)));
|
|
237
264
|
setColor(palette.SpeedDialAction, 'fabHoverBg', (0, _colorManipulator.private_safeEmphasize)(palette.background.paper, 0.15));
|
|
238
265
|
setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-400'));
|
|
239
266
|
setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-400'));
|
|
240
267
|
setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-common-white'));
|
|
241
268
|
setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-100'));
|
|
242
|
-
setColor(palette.Switch, 'primaryDisabledColor', (
|
|
243
|
-
setColor(palette.Switch, 'secondaryDisabledColor', (
|
|
244
|
-
setColor(palette.Switch, 'errorDisabledColor', (
|
|
245
|
-
setColor(palette.Switch, 'infoDisabledColor', (
|
|
246
|
-
setColor(palette.Switch, 'successDisabledColor', (
|
|
247
|
-
setColor(palette.Switch, 'warningDisabledColor', (
|
|
248
|
-
setColor(palette.TableCell, 'border', (
|
|
249
|
-
setColor(palette.Tooltip, 'bg', (
|
|
269
|
+
setColor(palette.Switch, 'primaryDisabledColor', colorMix(_colorManipulator.private_safeLighten, palette.primary.main, 0.62));
|
|
270
|
+
setColor(palette.Switch, 'secondaryDisabledColor', colorMix(_colorManipulator.private_safeLighten, palette.secondary.main, 0.62));
|
|
271
|
+
setColor(palette.Switch, 'errorDisabledColor', colorMix(_colorManipulator.private_safeLighten, palette.error.main, 0.62));
|
|
272
|
+
setColor(palette.Switch, 'infoDisabledColor', colorMix(_colorManipulator.private_safeLighten, palette.info.main, 0.62));
|
|
273
|
+
setColor(palette.Switch, 'successDisabledColor', colorMix(_colorManipulator.private_safeLighten, palette.success.main, 0.62));
|
|
274
|
+
setColor(palette.Switch, 'warningDisabledColor', colorMix(_colorManipulator.private_safeLighten, palette.warning.main, 0.62));
|
|
275
|
+
setColor(palette.TableCell, 'border', colorMix(_colorManipulator.private_safeLighten, colorMix(_colorManipulator.private_safeAlpha, palette.divider, 1), 0.88));
|
|
276
|
+
setColor(palette.Tooltip, 'bg', colorMix(_colorManipulator.private_safeAlpha, palette.grey[700], 0.92));
|
|
250
277
|
}
|
|
251
278
|
if (palette.mode === 'dark') {
|
|
252
|
-
setColor(palette.Alert, 'errorColor', (
|
|
253
|
-
setColor(palette.Alert, 'infoColor', (
|
|
254
|
-
setColor(palette.Alert, 'successColor', (
|
|
255
|
-
setColor(palette.Alert, 'warningColor', (
|
|
279
|
+
setColor(palette.Alert, 'errorColor', colorMix(_colorManipulator.private_safeLighten, palette.error.light, 0.6));
|
|
280
|
+
setColor(palette.Alert, 'infoColor', colorMix(_colorManipulator.private_safeLighten, palette.info.light, 0.6));
|
|
281
|
+
setColor(palette.Alert, 'successColor', colorMix(_colorManipulator.private_safeLighten, palette.success.light, 0.6));
|
|
282
|
+
setColor(palette.Alert, 'warningColor', colorMix(_colorManipulator.private_safeLighten, palette.warning.light, 0.6));
|
|
256
283
|
setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-dark'));
|
|
257
284
|
setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-dark'));
|
|
258
285
|
setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-dark'));
|
|
@@ -261,10 +288,10 @@ function createThemeWithVars(options = {}, ...args) {
|
|
|
261
288
|
setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.dark)));
|
|
262
289
|
setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.dark)));
|
|
263
290
|
setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.dark)));
|
|
264
|
-
setColor(palette.Alert, 'errorStandardBg', (
|
|
265
|
-
setColor(palette.Alert, 'infoStandardBg', (
|
|
266
|
-
setColor(palette.Alert, 'successStandardBg', (
|
|
267
|
-
setColor(palette.Alert, 'warningStandardBg', (
|
|
291
|
+
setColor(palette.Alert, 'errorStandardBg', colorMix(_colorManipulator.private_safeDarken, palette.error.light, 0.9));
|
|
292
|
+
setColor(palette.Alert, 'infoStandardBg', colorMix(_colorManipulator.private_safeDarken, palette.info.light, 0.9));
|
|
293
|
+
setColor(palette.Alert, 'successStandardBg', colorMix(_colorManipulator.private_safeDarken, palette.success.light, 0.9));
|
|
294
|
+
setColor(palette.Alert, 'warningStandardBg', colorMix(_colorManipulator.private_safeDarken, palette.warning.light, 0.9));
|
|
268
295
|
setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));
|
|
269
296
|
setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));
|
|
270
297
|
setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));
|
|
@@ -281,35 +308,36 @@ function createThemeWithVars(options = {}, ...args) {
|
|
|
281
308
|
setColor(palette.FilledInput, 'bg', 'rgba(255, 255, 255, 0.09)');
|
|
282
309
|
setColor(palette.FilledInput, 'hoverBg', 'rgba(255, 255, 255, 0.13)');
|
|
283
310
|
setColor(palette.FilledInput, 'disabledBg', 'rgba(255, 255, 255, 0.12)');
|
|
284
|
-
setColor(palette.LinearProgress, 'primaryBg', (
|
|
285
|
-
setColor(palette.LinearProgress, 'secondaryBg', (
|
|
286
|
-
setColor(palette.LinearProgress, 'errorBg', (
|
|
287
|
-
setColor(palette.LinearProgress, 'infoBg', (
|
|
288
|
-
setColor(palette.LinearProgress, 'successBg', (
|
|
289
|
-
setColor(palette.LinearProgress, 'warningBg', (
|
|
290
|
-
setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.13)`);
|
|
291
|
-
setColor(palette.Slider, 'primaryTrack', (
|
|
292
|
-
setColor(palette.Slider, 'secondaryTrack', (
|
|
293
|
-
setColor(palette.Slider, 'errorTrack', (
|
|
294
|
-
setColor(palette.Slider, 'infoTrack', (
|
|
295
|
-
setColor(palette.Slider, 'successTrack', (
|
|
296
|
-
setColor(palette.Slider, 'warningTrack', (
|
|
297
|
-
const snackbarContentBackground = (
|
|
311
|
+
setColor(palette.LinearProgress, 'primaryBg', colorMix(_colorManipulator.private_safeDarken, palette.primary.main, 0.5));
|
|
312
|
+
setColor(palette.LinearProgress, 'secondaryBg', colorMix(_colorManipulator.private_safeDarken, palette.secondary.main, 0.5));
|
|
313
|
+
setColor(palette.LinearProgress, 'errorBg', colorMix(_colorManipulator.private_safeDarken, palette.error.main, 0.5));
|
|
314
|
+
setColor(palette.LinearProgress, 'infoBg', colorMix(_colorManipulator.private_safeDarken, palette.info.main, 0.5));
|
|
315
|
+
setColor(palette.LinearProgress, 'successBg', colorMix(_colorManipulator.private_safeDarken, palette.success.main, 0.5));
|
|
316
|
+
setColor(palette.LinearProgress, 'warningBg', colorMix(_colorManipulator.private_safeDarken, palette.warning.main, 0.5));
|
|
317
|
+
setColor(palette.Skeleton, 'bg', colorSpace ? colorMix(_colorManipulator.private_safeAlpha, palette.text.primary, 0.13) : `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.13)`);
|
|
318
|
+
setColor(palette.Slider, 'primaryTrack', colorMix(_colorManipulator.private_safeDarken, palette.primary.main, 0.5));
|
|
319
|
+
setColor(palette.Slider, 'secondaryTrack', colorMix(_colorManipulator.private_safeDarken, palette.secondary.main, 0.5));
|
|
320
|
+
setColor(palette.Slider, 'errorTrack', colorMix(_colorManipulator.private_safeDarken, palette.error.main, 0.5));
|
|
321
|
+
setColor(palette.Slider, 'infoTrack', colorMix(_colorManipulator.private_safeDarken, palette.info.main, 0.5));
|
|
322
|
+
setColor(palette.Slider, 'successTrack', colorMix(_colorManipulator.private_safeDarken, palette.success.main, 0.5));
|
|
323
|
+
setColor(palette.Slider, 'warningTrack', colorMix(_colorManipulator.private_safeDarken, palette.warning.main, 0.5));
|
|
324
|
+
const snackbarContentBackground = colorSpace ? colorMix(_colorManipulator.private_safeLighten, palette.background.default, 0.985) // use `0.985` instead of `0.98` to match the contrast ratio of JS implementation
|
|
325
|
+
: (0, _colorManipulator.private_safeEmphasize)(palette.background.default, 0.98);
|
|
298
326
|
setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);
|
|
299
|
-
setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));
|
|
327
|
+
setColor(palette.SnackbarContent, 'color', silent(() => colorSpace ? _createPalette.light.text.primary : palette.getContrastText(snackbarContentBackground)));
|
|
300
328
|
setColor(palette.SpeedDialAction, 'fabHoverBg', (0, _colorManipulator.private_safeEmphasize)(palette.background.paper, 0.15));
|
|
301
329
|
setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-600'));
|
|
302
330
|
setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-600'));
|
|
303
331
|
setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-grey-300'));
|
|
304
332
|
setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-600'));
|
|
305
|
-
setColor(palette.Switch, 'primaryDisabledColor', (
|
|
306
|
-
setColor(palette.Switch, 'secondaryDisabledColor', (
|
|
307
|
-
setColor(palette.Switch, 'errorDisabledColor', (
|
|
308
|
-
setColor(palette.Switch, 'infoDisabledColor', (
|
|
309
|
-
setColor(palette.Switch, 'successDisabledColor', (
|
|
310
|
-
setColor(palette.Switch, 'warningDisabledColor', (
|
|
311
|
-
setColor(palette.TableCell, 'border', (
|
|
312
|
-
setColor(palette.Tooltip, 'bg', (
|
|
333
|
+
setColor(palette.Switch, 'primaryDisabledColor', colorMix(_colorManipulator.private_safeDarken, palette.primary.main, 0.55));
|
|
334
|
+
setColor(palette.Switch, 'secondaryDisabledColor', colorMix(_colorManipulator.private_safeDarken, palette.secondary.main, 0.55));
|
|
335
|
+
setColor(palette.Switch, 'errorDisabledColor', colorMix(_colorManipulator.private_safeDarken, palette.error.main, 0.55));
|
|
336
|
+
setColor(palette.Switch, 'infoDisabledColor', colorMix(_colorManipulator.private_safeDarken, palette.info.main, 0.55));
|
|
337
|
+
setColor(palette.Switch, 'successDisabledColor', colorMix(_colorManipulator.private_safeDarken, palette.success.main, 0.55));
|
|
338
|
+
setColor(palette.Switch, 'warningDisabledColor', colorMix(_colorManipulator.private_safeDarken, palette.warning.main, 0.55));
|
|
339
|
+
setColor(palette.TableCell, 'border', colorMix(_colorManipulator.private_safeDarken, colorMix(_colorManipulator.private_safeAlpha, palette.divider, 1), 0.68));
|
|
340
|
+
setColor(palette.Tooltip, 'bg', colorMix(_colorManipulator.private_safeAlpha, palette.grey[700], 0.92));
|
|
313
341
|
}
|
|
314
342
|
|
|
315
343
|
// MUI X - DataGrid needs this token.
|
|
@@ -361,7 +389,8 @@ function createThemeWithVars(options = {}, ...args) {
|
|
|
361
389
|
prefix: cssVarPrefix,
|
|
362
390
|
disableCssColorScheme,
|
|
363
391
|
shouldSkipGeneratingVar,
|
|
364
|
-
getSelector: (0, _createGetSelector.default)(theme)
|
|
392
|
+
getSelector: (0, _createGetSelector.default)(theme),
|
|
393
|
+
enableContrastVars: nativeColor
|
|
365
394
|
};
|
|
366
395
|
const {
|
|
367
396
|
vars,
|
|
@@ -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;
|
|
@@ -14,6 +14,14 @@ var _useEventCallback = _interopRequireDefault(require("@mui/utils/useEventCallb
|
|
|
14
14
|
var _useControlled = _interopRequireDefault(require("@mui/utils/useControlled"));
|
|
15
15
|
var _useId = _interopRequireDefault(require("@mui/utils/useId"));
|
|
16
16
|
var _usePreviousProps = _interopRequireDefault(require("@mui/utils/usePreviousProps"));
|
|
17
|
+
function areArraysSame({
|
|
18
|
+
array1,
|
|
19
|
+
array2,
|
|
20
|
+
parser = value => value
|
|
21
|
+
}) {
|
|
22
|
+
return array1 && array2 && array1.length === array2.length && array1.every((prevOption, index) => parser(prevOption) === parser(array2[index]));
|
|
23
|
+
}
|
|
24
|
+
|
|
17
25
|
// https://stackoverflow.com/questions/990904/remove-accents-diacritics-in-a-string-in-javascript
|
|
18
26
|
function stripDiacritics(string) {
|
|
19
27
|
return string.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
|
|
@@ -375,13 +383,22 @@ function useAutocomplete(props) {
|
|
|
375
383
|
}
|
|
376
384
|
}
|
|
377
385
|
});
|
|
386
|
+
const filteredOptionsChanged = !areArraysSame({
|
|
387
|
+
array1: previousProps.filteredOptions,
|
|
388
|
+
array2: filteredOptions,
|
|
389
|
+
parser: getOptionLabel
|
|
390
|
+
});
|
|
378
391
|
const getPreviousHighlightedOptionIndex = () => {
|
|
379
392
|
const isSameValue = (value1, value2) => {
|
|
380
393
|
const label1 = value1 ? getOptionLabel(value1) : '';
|
|
381
394
|
const label2 = value2 ? getOptionLabel(value2) : '';
|
|
382
395
|
return label1 === label2;
|
|
383
396
|
};
|
|
384
|
-
if (highlightedIndexRef.current !== -1 &&
|
|
397
|
+
if (highlightedIndexRef.current !== -1 && !areArraysSame({
|
|
398
|
+
array1: previousProps.filteredOptions,
|
|
399
|
+
array2: filteredOptions,
|
|
400
|
+
parser: getOptionLabel
|
|
401
|
+
}) && previousProps.inputValue === inputValue && (multiple ? value.length === previousProps.value.length && previousProps.value.every((val, i) => getOptionLabel(value[i]) === getOptionLabel(val)) : isSameValue(previousProps.value, value))) {
|
|
385
402
|
const previousHighlightedOption = previousProps.filteredOptions[highlightedIndexRef.current];
|
|
386
403
|
if (previousHighlightedOption) {
|
|
387
404
|
return filteredOptions.findIndex(option => {
|
|
@@ -477,8 +494,10 @@ function useAutocomplete(props) {
|
|
|
477
494
|
}, [componentName]);
|
|
478
495
|
}
|
|
479
496
|
React.useEffect(() => {
|
|
480
|
-
|
|
481
|
-
|
|
497
|
+
if (filteredOptionsChanged) {
|
|
498
|
+
syncHighlightedIndex();
|
|
499
|
+
}
|
|
500
|
+
}, [syncHighlightedIndex, filteredOptionsChanged]);
|
|
482
501
|
const handleOpen = event => {
|
|
483
502
|
if (open) {
|
|
484
503
|
return;
|
package/version/index.js
CHANGED
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.version = exports.prerelease = exports.patch = exports.minor = exports.major = exports.default = void 0;
|
|
7
|
-
const version = exports.version = "7.
|
|
7
|
+
const version = exports.version = "7.3.0";
|
|
8
8
|
const major = exports.major = Number("7");
|
|
9
|
-
const minor = exports.minor = Number("
|
|
9
|
+
const minor = exports.minor = Number("3");
|
|
10
10
|
const patch = exports.patch = Number("0");
|
|
11
11
|
const prerelease = exports.prerelease = undefined;
|
|
12
12
|
var _default = exports.default = version;
|