@mui/material 5.8.2 → 5.8.5
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/Alert/Alert.js +3 -1
- package/AppBar/AppBar.js +22 -5
- package/Autocomplete/autocompleteClasses.d.ts +1 -1
- package/Avatar/Avatar.js +7 -4
- package/Badge/Badge.js +2 -2
- package/Button/buttonClasses.d.ts +24 -0
- package/Button/buttonClasses.js +1 -1
- package/CHANGELOG.md +225 -8
- package/Checkbox/Checkbox.js +4 -4
- package/Chip/Chip.js +31 -30
- package/Dialog/Dialog.js +11 -6
- package/FilledInput/FilledInput.js +28 -13
- package/Grid/Grid.d.ts +73 -52
- package/Grid/Grid.js +94 -40
- package/Grow/Grow.js +1 -2
- package/Hidden/withWidth.js +0 -2
- package/InputBase/InputBase.js +2 -2
- package/LinearProgress/LinearProgress.js +6 -2
- package/Link/Link.js +10 -17
- package/Link/getTextDecoration.d.ts +15 -0
- package/Link/getTextDecoration.js +29 -0
- package/Modal/Modal.d.ts +2 -0
- package/Modal/Modal.js +25 -8
- package/OutlinedInput/OutlinedInput.js +25 -10
- package/Popover/Popover.d.ts +7 -0
- package/Popover/index.js +1 -0
- package/README.md +13 -12
- package/Skeleton/Skeleton.js +8 -3
- package/Slider/Slider.d.ts +3 -1
- package/Slider/Slider.js +35 -20
- package/Snackbar/Snackbar.js +6 -20
- package/SnackbarContent/SnackbarContent.js +3 -3
- package/SpeedDialAction/SpeedDialAction.js +7 -7
- package/Stack/Stack.js +1 -1
- package/StepConnector/StepConnector.js +14 -11
- package/StepContent/StepContent.js +1 -1
- package/StepIcon/StepIcon.js +2 -1
- package/Switch/Switch.js +11 -11
- package/Tab/Tab.d.ts +0 -1
- package/TableCell/TableCell.js +5 -5
- package/Tabs/Tabs.js +6 -0
- package/Tooltip/Tooltip.js +1 -1
- package/index.js +1 -1
- package/legacy/Alert/Alert.js +3 -1
- package/legacy/AppBar/AppBar.js +23 -4
- package/legacy/Avatar/Avatar.js +7 -4
- package/legacy/Badge/Badge.js +2 -2
- package/legacy/Button/buttonClasses.js +1 -1
- package/legacy/Checkbox/Checkbox.js +4 -4
- package/legacy/Chip/Chip.js +31 -30
- package/legacy/Dialog/Dialog.js +11 -6
- package/legacy/FilledInput/FilledInput.js +28 -14
- package/legacy/Grid/Grid.js +97 -48
- package/legacy/Grow/Grow.js +1 -2
- package/legacy/Hidden/withWidth.js +0 -2
- package/legacy/InputBase/InputBase.js +2 -2
- package/legacy/LinearProgress/LinearProgress.js +6 -2
- package/legacy/Link/Link.js +10 -17
- package/legacy/Link/getTextDecoration.js +28 -0
- package/legacy/Modal/Modal.js +23 -7
- package/legacy/OutlinedInput/OutlinedInput.js +21 -9
- package/legacy/Popover/index.js +1 -0
- package/legacy/Skeleton/Skeleton.js +2 -2
- package/legacy/Slider/Slider.js +35 -20
- package/legacy/Snackbar/Snackbar.js +6 -21
- package/legacy/SnackbarContent/SnackbarContent.js +3 -3
- package/legacy/SpeedDialAction/SpeedDialAction.js +7 -7
- package/legacy/Stack/Stack.js +2 -1
- package/legacy/StepConnector/StepConnector.js +2 -1
- package/legacy/StepContent/StepContent.js +1 -1
- package/legacy/StepIcon/StepIcon.js +2 -1
- package/legacy/Switch/Switch.js +11 -11
- package/legacy/TableCell/TableCell.js +5 -5
- package/legacy/Tabs/Tabs.js +6 -0
- package/legacy/Tooltip/Tooltip.js +1 -1
- package/legacy/index.js +1 -1
- package/legacy/styles/CssVarsProvider.js +4 -1
- package/legacy/styles/experimental_extendTheme.js +113 -18
- package/modern/Alert/Alert.js +3 -1
- package/modern/AppBar/AppBar.js +22 -5
- package/modern/Avatar/Avatar.js +7 -4
- package/modern/Badge/Badge.js +2 -2
- package/modern/Button/buttonClasses.js +1 -1
- package/modern/Checkbox/Checkbox.js +4 -4
- package/modern/Chip/Chip.js +31 -30
- package/modern/Dialog/Dialog.js +11 -6
- package/modern/FilledInput/FilledInput.js +27 -12
- package/modern/Grid/Grid.js +94 -40
- package/modern/Grow/Grow.js +1 -2
- package/modern/Hidden/withWidth.js +0 -2
- package/modern/InputBase/InputBase.js +2 -2
- package/modern/LinearProgress/LinearProgress.js +6 -2
- package/modern/Link/Link.js +10 -17
- package/modern/Link/getTextDecoration.js +29 -0
- package/modern/Modal/Modal.js +24 -7
- package/modern/OutlinedInput/OutlinedInput.js +25 -10
- package/modern/Popover/index.js +1 -0
- package/modern/Skeleton/Skeleton.js +7 -2
- package/modern/Slider/Slider.js +35 -20
- package/modern/Snackbar/Snackbar.js +6 -20
- package/modern/SnackbarContent/SnackbarContent.js +3 -3
- package/modern/SpeedDialAction/SpeedDialAction.js +7 -7
- package/modern/Stack/Stack.js +1 -1
- package/modern/StepConnector/StepConnector.js +14 -11
- package/modern/StepContent/StepContent.js +1 -1
- package/modern/StepIcon/StepIcon.js +2 -1
- package/modern/Switch/Switch.js +11 -11
- package/modern/TableCell/TableCell.js +5 -5
- package/modern/Tabs/Tabs.js +6 -0
- package/modern/Tooltip/Tooltip.js +1 -1
- package/modern/index.js +1 -1
- package/modern/styles/CssVarsProvider.js +4 -1
- package/modern/styles/experimental_extendTheme.js +114 -18
- package/node/Alert/Alert.js +3 -1
- package/node/AppBar/AppBar.js +22 -5
- package/node/Avatar/Avatar.js +7 -4
- package/node/Badge/Badge.js +2 -2
- package/node/Button/buttonClasses.js +1 -1
- package/node/Checkbox/Checkbox.js +4 -4
- package/node/Chip/Chip.js +31 -30
- package/node/Dialog/Dialog.js +11 -6
- package/node/FilledInput/FilledInput.js +28 -13
- package/node/Grid/Grid.js +95 -40
- package/node/Grow/Grow.js +1 -2
- package/node/Hidden/withWidth.js +0 -3
- package/node/InputBase/InputBase.js +2 -2
- package/node/LinearProgress/LinearProgress.js +6 -2
- package/node/Link/Link.js +12 -20
- package/node/Link/getTextDecoration.js +39 -0
- package/node/Modal/Modal.js +25 -8
- package/node/OutlinedInput/OutlinedInput.js +25 -10
- package/node/Popover/index.js +13 -3
- package/node/Skeleton/Skeleton.js +7 -2
- package/node/Slider/Slider.js +35 -20
- package/node/Snackbar/Snackbar.js +6 -18
- package/node/SnackbarContent/SnackbarContent.js +3 -3
- package/node/SpeedDialAction/SpeedDialAction.js +7 -7
- package/node/Stack/Stack.js +1 -1
- package/node/StepConnector/StepConnector.js +14 -11
- package/node/StepContent/StepContent.js +1 -1
- package/node/StepIcon/StepIcon.js +2 -1
- package/node/Switch/Switch.js +11 -11
- package/node/TableCell/TableCell.js +5 -5
- package/node/Tabs/Tabs.js +6 -0
- package/node/Tooltip/Tooltip.js +1 -1
- package/node/index.js +1 -1
- package/node/styles/CssVarsProvider.js +4 -1
- package/node/styles/experimental_extendTheme.js +112 -17
- package/package.json +6 -7
- package/styles/CssVarsProvider.js +4 -1
- package/styles/createPalette.d.ts +65 -2
- package/styles/experimental_extendTheme.js +114 -18
- package/umd/material-ui.development.js +767 -414
- package/umd/material-ui.production.min.js +27 -22
package/modern/Grid/Grid.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["className", "columns", "columnSpacing", "component", "container", "direction", "item", "
|
|
3
|
+
const _excluded = ["className", "columns", "columnSpacing", "component", "container", "direction", "item", "rowSpacing", "spacing", "wrap", "zeroMinWidth"];
|
|
4
4
|
// A grid component using the following libs as inspiration.
|
|
5
5
|
//
|
|
6
6
|
// For the implementation:
|
|
@@ -19,6 +19,7 @@ import { unstable_composeClasses as composeClasses } from '@mui/base';
|
|
|
19
19
|
import requirePropFactory from '../utils/requirePropFactory';
|
|
20
20
|
import styled from '../styles/styled';
|
|
21
21
|
import useThemeProps from '../styles/useThemeProps';
|
|
22
|
+
import useTheme from '../styles/useTheme';
|
|
22
23
|
import GridContext from './GridContext';
|
|
23
24
|
import gridClasses, { getGridUtilityClass } from './gridClasses';
|
|
24
25
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -201,26 +202,27 @@ export function generateColumnGap({
|
|
|
201
202
|
|
|
202
203
|
return styles;
|
|
203
204
|
}
|
|
204
|
-
export function
|
|
205
|
-
//
|
|
206
|
-
if (!
|
|
205
|
+
export function resolveSpacingStyles(spacing, breakpoints, styles = {}) {
|
|
206
|
+
// undefined/null or `spacing` <= 0
|
|
207
|
+
if (!spacing || spacing <= 0) {
|
|
207
208
|
return [];
|
|
208
209
|
} // in case of string/number `spacing`
|
|
209
210
|
|
|
210
211
|
|
|
211
212
|
if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {
|
|
212
|
-
return [styles[`spacing-xs-${String(spacing)}`]
|
|
213
|
+
return [styles[`spacing-xs-${String(spacing)}`]];
|
|
213
214
|
} // in case of object `spacing`
|
|
214
215
|
|
|
215
216
|
|
|
216
|
-
const
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
217
|
+
const spacingStyles = [];
|
|
218
|
+
breakpoints.forEach(breakpoint => {
|
|
219
|
+
const value = spacing[breakpoint];
|
|
220
|
+
|
|
221
|
+
if (Number(value) > 0) {
|
|
222
|
+
spacingStyles.push(styles[`spacing-${breakpoint}-${String(value)}`]);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
return spacingStyles;
|
|
224
226
|
} // Default CSS values
|
|
225
227
|
// flex: '0 1 auto',
|
|
226
228
|
// flexDirection: 'row',
|
|
@@ -232,20 +234,33 @@ const GridRoot = styled('div', {
|
|
|
232
234
|
name: 'MuiGrid',
|
|
233
235
|
slot: 'Root',
|
|
234
236
|
overridesResolver: (props, styles) => {
|
|
237
|
+
const {
|
|
238
|
+
ownerState
|
|
239
|
+
} = props;
|
|
235
240
|
const {
|
|
236
241
|
container,
|
|
237
242
|
direction,
|
|
238
243
|
item,
|
|
239
|
-
lg,
|
|
240
|
-
md,
|
|
241
|
-
sm,
|
|
242
244
|
spacing,
|
|
243
245
|
wrap,
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
246
|
+
zeroMinWidth,
|
|
247
|
+
breakpoints
|
|
248
|
+
} = ownerState;
|
|
249
|
+
let spacingStyles = []; // in case of grid item
|
|
250
|
+
|
|
251
|
+
if (container) {
|
|
252
|
+
spacingStyles = resolveSpacingStyles(spacing, breakpoints, styles);
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
const breakpointsStyles = [];
|
|
256
|
+
breakpoints.forEach(breakpoint => {
|
|
257
|
+
const value = ownerState[breakpoint];
|
|
258
|
+
|
|
259
|
+
if (value) {
|
|
260
|
+
breakpointsStyles.push(styles[`grid-${breakpoint}-${String(value)}`]);
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
return [styles.root, container && styles.container, item && styles.item, zeroMinWidth && styles.zeroMinWidth, ...spacingStyles, direction !== 'row' && styles[`direction-xs-${String(direction)}`], wrap !== 'wrap' && styles[`wrap-xs-${String(wrap)}`], ...breakpointsStyles];
|
|
249
264
|
}
|
|
250
265
|
})(({
|
|
251
266
|
ownerState
|
|
@@ -263,6 +278,29 @@ const GridRoot = styled('div', {
|
|
|
263
278
|
}, ownerState.wrap !== 'wrap' && {
|
|
264
279
|
flexWrap: ownerState.wrap
|
|
265
280
|
}), generateDirection, generateRowGap, generateColumnGap, generateGrid);
|
|
281
|
+
export function resolveSpacingClasses(spacing, breakpoints) {
|
|
282
|
+
// undefined/null or `spacing` <= 0
|
|
283
|
+
if (!spacing || spacing <= 0) {
|
|
284
|
+
return [];
|
|
285
|
+
} // in case of string/number `spacing`
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
if (typeof spacing === 'string' && !Number.isNaN(Number(spacing)) || typeof spacing === 'number') {
|
|
289
|
+
return [`spacing-xs-${String(spacing)}`];
|
|
290
|
+
} // in case of object `spacing`
|
|
291
|
+
|
|
292
|
+
|
|
293
|
+
const classes = [];
|
|
294
|
+
breakpoints.forEach(breakpoint => {
|
|
295
|
+
const value = spacing[breakpoint];
|
|
296
|
+
|
|
297
|
+
if (Number(value) > 0) {
|
|
298
|
+
const className = `spacing-${breakpoint}-${String(value)}`;
|
|
299
|
+
classes.push(className);
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
return classes;
|
|
303
|
+
}
|
|
266
304
|
|
|
267
305
|
const useUtilityClasses = ownerState => {
|
|
268
306
|
const {
|
|
@@ -270,17 +308,27 @@ const useUtilityClasses = ownerState => {
|
|
|
270
308
|
container,
|
|
271
309
|
direction,
|
|
272
310
|
item,
|
|
273
|
-
lg,
|
|
274
|
-
md,
|
|
275
|
-
sm,
|
|
276
311
|
spacing,
|
|
277
312
|
wrap,
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
zeroMinWidth
|
|
313
|
+
zeroMinWidth,
|
|
314
|
+
breakpoints
|
|
281
315
|
} = ownerState;
|
|
316
|
+
let spacingClasses = []; // in case of grid item
|
|
317
|
+
|
|
318
|
+
if (container) {
|
|
319
|
+
spacingClasses = resolveSpacingClasses(spacing, breakpoints);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
const breakpointsClasses = [];
|
|
323
|
+
breakpoints.forEach(breakpoint => {
|
|
324
|
+
const value = ownerState[breakpoint];
|
|
325
|
+
|
|
326
|
+
if (value) {
|
|
327
|
+
breakpointsClasses.push(`grid-${breakpoint}-${String(value)}`);
|
|
328
|
+
}
|
|
329
|
+
});
|
|
282
330
|
const slots = {
|
|
283
|
-
root: ['root', container && 'container', item && 'item', zeroMinWidth && 'zeroMinWidth', ...
|
|
331
|
+
root: ['root', container && 'container', item && 'item', zeroMinWidth && 'zeroMinWidth', ...spacingClasses, direction !== 'row' && `direction-xs-${String(direction)}`, wrap !== 'wrap' && `wrap-xs-${String(wrap)}`, ...breakpointsClasses]
|
|
284
332
|
};
|
|
285
333
|
return composeClasses(slots, getGridUtilityClass, classes);
|
|
286
334
|
};
|
|
@@ -290,6 +338,9 @@ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {
|
|
|
290
338
|
props: inProps,
|
|
291
339
|
name: 'MuiGrid'
|
|
292
340
|
});
|
|
341
|
+
const {
|
|
342
|
+
breakpoints
|
|
343
|
+
} = useTheme();
|
|
293
344
|
const props = extendSxProp(themeProps);
|
|
294
345
|
|
|
295
346
|
const {
|
|
@@ -300,14 +351,9 @@ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {
|
|
|
300
351
|
container = false,
|
|
301
352
|
direction = 'row',
|
|
302
353
|
item = false,
|
|
303
|
-
lg = false,
|
|
304
|
-
md = false,
|
|
305
354
|
rowSpacing: rowSpacingProp,
|
|
306
|
-
sm = false,
|
|
307
355
|
spacing = 0,
|
|
308
356
|
wrap = 'wrap',
|
|
309
|
-
xl = false,
|
|
310
|
-
xs = false,
|
|
311
357
|
zeroMinWidth = false
|
|
312
358
|
} = props,
|
|
313
359
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
@@ -317,21 +363,29 @@ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {
|
|
|
317
363
|
const columnsContext = React.useContext(GridContext); // columns set with default breakpoint unit of 12
|
|
318
364
|
|
|
319
365
|
const columns = container ? columnsProp || 12 : columnsContext;
|
|
366
|
+
const breakpointsValues = {};
|
|
367
|
+
|
|
368
|
+
const otherFiltered = _extends({}, other);
|
|
369
|
+
|
|
370
|
+
breakpoints.keys.forEach(breakpoint => {
|
|
371
|
+
if (other[breakpoint] != null) {
|
|
372
|
+
breakpointsValues[breakpoint] = other[breakpoint];
|
|
373
|
+
delete otherFiltered[breakpoint];
|
|
374
|
+
}
|
|
375
|
+
});
|
|
320
376
|
|
|
321
377
|
const ownerState = _extends({}, props, {
|
|
322
378
|
columns,
|
|
323
379
|
container,
|
|
324
380
|
direction,
|
|
325
381
|
item,
|
|
326
|
-
lg,
|
|
327
|
-
md,
|
|
328
|
-
sm,
|
|
329
382
|
rowSpacing,
|
|
330
383
|
columnSpacing,
|
|
331
384
|
wrap,
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
385
|
+
zeroMinWidth,
|
|
386
|
+
spacing
|
|
387
|
+
}, breakpointsValues, {
|
|
388
|
+
breakpoints: breakpoints.keys
|
|
335
389
|
});
|
|
336
390
|
|
|
337
391
|
const classes = useUtilityClasses(ownerState);
|
|
@@ -342,7 +396,7 @@ const Grid = /*#__PURE__*/React.forwardRef(function Grid(inProps, ref) {
|
|
|
342
396
|
className: clsx(classes.root, className),
|
|
343
397
|
as: component,
|
|
344
398
|
ref: ref
|
|
345
|
-
},
|
|
399
|
+
}, otherFiltered))
|
|
346
400
|
});
|
|
347
401
|
});
|
|
348
402
|
process.env.NODE_ENV !== "production" ? Grid.propTypes
|
package/modern/Grow/Grow.js
CHANGED
|
@@ -27,10 +27,9 @@ const styles = {
|
|
|
27
27
|
/*
|
|
28
28
|
TODO v6: remove
|
|
29
29
|
Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers.
|
|
30
|
-
Remove this workaround once the WebKit bug fix is released.
|
|
31
30
|
*/
|
|
32
31
|
|
|
33
|
-
const isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\/)15(.|_)
|
|
32
|
+
const isWebKit154 = typeof navigator !== 'undefined' && /^((?!chrome|android).)*(safari|mobile)/i.test(navigator.userAgent) && /(os |version\/)15(.|_)4/i.test(navigator.userAgent);
|
|
34
33
|
/**
|
|
35
34
|
* The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and
|
|
36
35
|
* [Popover](/material-ui/react-popover/) components.
|
|
@@ -5,7 +5,6 @@ import * as React from 'react';
|
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { getDisplayName } from '@mui/utils';
|
|
7
7
|
import { getThemeProps } from '@mui/system';
|
|
8
|
-
import hoistNonReactStatics from 'hoist-non-react-statics';
|
|
9
8
|
import useTheme from '../styles/useTheme';
|
|
10
9
|
import useEnhancedEffect from '../utils/useEnhancedEffect';
|
|
11
10
|
import useMediaQuery from '../useMediaQuery';
|
|
@@ -113,7 +112,6 @@ const withWidth = (options = {}) => Component => {
|
|
|
113
112
|
WithWidth.displayName = `WithWidth(${getDisplayName(Component)})`;
|
|
114
113
|
}
|
|
115
114
|
|
|
116
|
-
hoistNonReactStatics(WithWidth, Component);
|
|
117
115
|
return WithWidth;
|
|
118
116
|
};
|
|
119
117
|
|
|
@@ -97,7 +97,7 @@ export const InputBaseComponent = styled('input', {
|
|
|
97
97
|
const placeholder = _extends({
|
|
98
98
|
color: 'currentColor'
|
|
99
99
|
}, theme.vars ? {
|
|
100
|
-
opacity: theme.vars.opacity.
|
|
100
|
+
opacity: theme.vars.opacity.inputPlaceholder
|
|
101
101
|
} : {
|
|
102
102
|
opacity: light ? 0.42 : 0.5
|
|
103
103
|
}, {
|
|
@@ -110,7 +110,7 @@ export const InputBaseComponent = styled('input', {
|
|
|
110
110
|
opacity: '0 !important'
|
|
111
111
|
};
|
|
112
112
|
const placeholderVisible = theme.vars ? {
|
|
113
|
-
opacity: theme.vars.opacity.
|
|
113
|
+
opacity: theme.vars.opacity.inputPlaceholder
|
|
114
114
|
} : {
|
|
115
115
|
opacity: light ? 0.42 : 0.5
|
|
116
116
|
};
|
|
@@ -84,6 +84,10 @@ const getColorShade = (theme, color) => {
|
|
|
84
84
|
return 'currentColor';
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
+
if (theme.vars) {
|
|
88
|
+
return theme.vars.palette.LinearProgress[`${color}Bg`];
|
|
89
|
+
}
|
|
90
|
+
|
|
87
91
|
return theme.palette.mode === 'light' ? lighten(theme.palette[color].main, 0.62) : darken(theme.palette[color].main, 0.5);
|
|
88
92
|
};
|
|
89
93
|
|
|
@@ -176,7 +180,7 @@ const LinearProgressBar1 = styled('span', {
|
|
|
176
180
|
top: 0,
|
|
177
181
|
transition: 'transform 0.2s linear',
|
|
178
182
|
transformOrigin: 'left',
|
|
179
|
-
backgroundColor: ownerState.color === 'inherit' ? 'currentColor' : theme.palette[ownerState.color].main
|
|
183
|
+
backgroundColor: ownerState.color === 'inherit' ? 'currentColor' : (theme.vars || theme).palette[ownerState.color].main
|
|
180
184
|
}, ownerState.variant === 'determinate' && {
|
|
181
185
|
transition: `transform .${TRANSITION_DURATION}s linear`
|
|
182
186
|
}, ownerState.variant === 'buffer' && {
|
|
@@ -209,7 +213,7 @@ const LinearProgressBar2 = styled('span', {
|
|
|
209
213
|
transition: 'transform 0.2s linear',
|
|
210
214
|
transformOrigin: 'left'
|
|
211
215
|
}, ownerState.variant !== 'buffer' && {
|
|
212
|
-
backgroundColor: ownerState.color === 'inherit' ? 'currentColor' : theme.palette[ownerState.color].main
|
|
216
|
+
backgroundColor: ownerState.color === 'inherit' ? 'currentColor' : (theme.vars || theme).palette[ownerState.color].main
|
|
213
217
|
}, ownerState.color === 'inherit' && {
|
|
214
218
|
opacity: 0.3
|
|
215
219
|
}, ownerState.variant === 'buffer' && {
|
package/modern/Link/Link.js
CHANGED
|
@@ -6,7 +6,6 @@ import PropTypes from 'prop-types';
|
|
|
6
6
|
import clsx from 'clsx';
|
|
7
7
|
import { elementTypeAcceptingRef } from '@mui/utils';
|
|
8
8
|
import { unstable_composeClasses as composeClasses } from '@mui/base';
|
|
9
|
-
import { alpha, getPath } from '@mui/system';
|
|
10
9
|
import capitalize from '../utils/capitalize';
|
|
11
10
|
import styled from '../styles/styled';
|
|
12
11
|
import useThemeProps from '../styles/useThemeProps';
|
|
@@ -14,18 +13,8 @@ import useIsFocusVisible from '../utils/useIsFocusVisible';
|
|
|
14
13
|
import useForkRef from '../utils/useForkRef';
|
|
15
14
|
import Typography from '../Typography';
|
|
16
15
|
import linkClasses, { getLinkUtilityClass } from './linkClasses';
|
|
16
|
+
import getTextDecoration, { colorTransformations } from './getTextDecoration';
|
|
17
17
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
|
-
const colorTransformations = {
|
|
19
|
-
primary: 'primary.main',
|
|
20
|
-
textPrimary: 'text.primary',
|
|
21
|
-
secondary: 'secondary.main',
|
|
22
|
-
textSecondary: 'text.secondary',
|
|
23
|
-
error: 'error.main'
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
const transformDeprecatedColors = color => {
|
|
27
|
-
return colorTransformations[color] || color;
|
|
28
|
-
};
|
|
29
18
|
|
|
30
19
|
const useUtilityClasses = ownerState => {
|
|
31
20
|
const {
|
|
@@ -53,7 +42,6 @@ const LinkRoot = styled(Typography, {
|
|
|
53
42
|
theme,
|
|
54
43
|
ownerState
|
|
55
44
|
}) => {
|
|
56
|
-
const color = getPath(theme, `palette.${transformDeprecatedColors(ownerState.color)}`) || ownerState.color;
|
|
57
45
|
return _extends({}, ownerState.underline === 'none' && {
|
|
58
46
|
textDecoration: 'none'
|
|
59
47
|
}, ownerState.underline === 'hover' && {
|
|
@@ -61,13 +49,18 @@ const LinkRoot = styled(Typography, {
|
|
|
61
49
|
'&:hover': {
|
|
62
50
|
textDecoration: 'underline'
|
|
63
51
|
}
|
|
64
|
-
}, ownerState.underline === 'always' && {
|
|
65
|
-
textDecoration: 'underline'
|
|
66
|
-
|
|
52
|
+
}, ownerState.underline === 'always' && _extends({
|
|
53
|
+
textDecoration: 'underline'
|
|
54
|
+
}, ownerState.color !== 'inherit' && {
|
|
55
|
+
textDecorationColor: getTextDecoration({
|
|
56
|
+
theme,
|
|
57
|
+
ownerState
|
|
58
|
+
})
|
|
59
|
+
}, {
|
|
67
60
|
'&:hover': {
|
|
68
61
|
textDecorationColor: 'inherit'
|
|
69
62
|
}
|
|
70
|
-
}, ownerState.component === 'button' && {
|
|
63
|
+
}), ownerState.component === 'button' && {
|
|
71
64
|
position: 'relative',
|
|
72
65
|
WebkitTapHighlightColor: 'transparent',
|
|
73
66
|
backgroundColor: 'transparent',
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { alpha, getPath } from '@mui/system';
|
|
2
|
+
export const colorTransformations = {
|
|
3
|
+
primary: 'primary.main',
|
|
4
|
+
textPrimary: 'text.primary',
|
|
5
|
+
secondary: 'secondary.main',
|
|
6
|
+
textSecondary: 'text.secondary',
|
|
7
|
+
error: 'error.main'
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
const transformDeprecatedColors = color => {
|
|
11
|
+
return colorTransformations[color] || color;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
const getTextDecoration = ({
|
|
15
|
+
theme,
|
|
16
|
+
ownerState
|
|
17
|
+
}) => {
|
|
18
|
+
const transformedColor = transformDeprecatedColors(ownerState.color);
|
|
19
|
+
const color = getPath(theme, `palette.${transformedColor}`, false) || ownerState.color;
|
|
20
|
+
const channelColor = getPath(theme, `palette.${transformedColor}Channel`);
|
|
21
|
+
|
|
22
|
+
if ('vars' in theme && channelColor) {
|
|
23
|
+
return `rgba(${channelColor} / 0.4)`;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return alpha(color, 0.4);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export default getTextDecoration;
|
package/modern/Modal/Modal.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
|
|
2
2
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
3
|
-
const _excluded = ["BackdropComponent", "closeAfterTransition", "children", "components", "componentsProps", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted"];
|
|
3
|
+
const _excluded = ["BackdropComponent", "BackdropProps", "closeAfterTransition", "children", "component", "components", "componentsProps", "disableAutoFocus", "disableEnforceFocus", "disableEscapeKeyDown", "disablePortal", "disableRestoreFocus", "disableScrollLock", "hideBackdrop", "keepMounted", "theme"];
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
import { isHostComponent } from '@mui/base';
|
|
@@ -69,8 +69,10 @@ const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
|
|
|
69
69
|
|
|
70
70
|
const {
|
|
71
71
|
BackdropComponent = ModalBackdrop,
|
|
72
|
+
BackdropProps,
|
|
72
73
|
closeAfterTransition = false,
|
|
73
74
|
children,
|
|
75
|
+
component,
|
|
74
76
|
components = {},
|
|
75
77
|
componentsProps = {},
|
|
76
78
|
disableAutoFocus = false,
|
|
@@ -80,7 +82,9 @@ const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
|
|
|
80
82
|
disableRestoreFocus = false,
|
|
81
83
|
disableScrollLock = false,
|
|
82
84
|
hideBackdrop = false,
|
|
83
|
-
keepMounted = false
|
|
85
|
+
keepMounted = false,
|
|
86
|
+
// eslint-disable-next-line react/prop-types
|
|
87
|
+
theme
|
|
84
88
|
} = props,
|
|
85
89
|
other = _objectWithoutPropertiesLoose(props, _excluded);
|
|
86
90
|
|
|
@@ -102,16 +106,19 @@ const Modal = /*#__PURE__*/React.forwardRef(function Modal(inProps, ref) {
|
|
|
102
106
|
});
|
|
103
107
|
|
|
104
108
|
const classes = extendUtilityClasses(ownerState);
|
|
109
|
+
const Root = components.Root ?? component ?? ModalRoot;
|
|
105
110
|
return /*#__PURE__*/_jsx(ModalUnstyled, _extends({
|
|
106
111
|
components: _extends({
|
|
107
|
-
Root
|
|
112
|
+
Root,
|
|
113
|
+
Backdrop: BackdropComponent
|
|
108
114
|
}, components),
|
|
109
115
|
componentsProps: {
|
|
110
|
-
root: _extends({}, componentsProps.root,
|
|
111
|
-
|
|
112
|
-
|
|
116
|
+
root: _extends({}, componentsProps.root, !isHostComponent(Root) && {
|
|
117
|
+
as: component,
|
|
118
|
+
theme
|
|
119
|
+
}),
|
|
120
|
+
backdrop: _extends({}, BackdropProps, componentsProps.backdrop)
|
|
113
121
|
},
|
|
114
|
-
BackdropComponent: BackdropComponent,
|
|
115
122
|
onTransitionEnter: () => setExited(false),
|
|
116
123
|
onTransitionExited: () => setExited(true),
|
|
117
124
|
ref: ref
|
|
@@ -131,6 +138,7 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes
|
|
|
131
138
|
|
|
132
139
|
/**
|
|
133
140
|
* A backdrop component. This prop enables custom backdrop rendering.
|
|
141
|
+
* @deprecated Use `components.Backdrop` instead.
|
|
134
142
|
* @default styled(Backdrop, {
|
|
135
143
|
* name: 'MuiModal',
|
|
136
144
|
* slot: 'Backdrop',
|
|
@@ -145,6 +153,7 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes
|
|
|
145
153
|
|
|
146
154
|
/**
|
|
147
155
|
* Props applied to the [`Backdrop`](/material-ui/api/backdrop/) element.
|
|
156
|
+
* @deprecated Use `componentsProps.backdrop` instead.
|
|
148
157
|
*/
|
|
149
158
|
BackdropProps: PropTypes.object,
|
|
150
159
|
|
|
@@ -164,12 +173,19 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes
|
|
|
164
173
|
*/
|
|
165
174
|
closeAfterTransition: PropTypes.bool,
|
|
166
175
|
|
|
176
|
+
/**
|
|
177
|
+
* The component used for the root node.
|
|
178
|
+
* Either a string to use a HTML element or a component.
|
|
179
|
+
*/
|
|
180
|
+
component: PropTypes.elementType,
|
|
181
|
+
|
|
167
182
|
/**
|
|
168
183
|
* The components used for each slot inside the Modal.
|
|
169
184
|
* Either a string to use a HTML element or a component.
|
|
170
185
|
* @default {}
|
|
171
186
|
*/
|
|
172
187
|
components: PropTypes.shape({
|
|
188
|
+
Backdrop: PropTypes.elementType,
|
|
173
189
|
Root: PropTypes.elementType
|
|
174
190
|
}),
|
|
175
191
|
|
|
@@ -178,6 +194,7 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes
|
|
|
178
194
|
* @default {}
|
|
179
195
|
*/
|
|
180
196
|
componentsProps: PropTypes.shape({
|
|
197
|
+
backdrop: PropTypes.object,
|
|
181
198
|
root: PropTypes.object
|
|
182
199
|
}),
|
|
183
200
|
|
|
@@ -40,25 +40,25 @@ const OutlinedInputRoot = styled(InputBaseRoot, {
|
|
|
40
40
|
const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
|
|
41
41
|
return _extends({
|
|
42
42
|
position: 'relative',
|
|
43
|
-
borderRadius: theme.shape.borderRadius,
|
|
43
|
+
borderRadius: (theme.vars || theme).shape.borderRadius,
|
|
44
44
|
[`&:hover .${outlinedInputClasses.notchedOutline}`]: {
|
|
45
|
-
borderColor: theme.palette.text.primary
|
|
45
|
+
borderColor: (theme.vars || theme).palette.text.primary
|
|
46
46
|
},
|
|
47
47
|
// Reset on touch devices, it doesn't add specificity
|
|
48
48
|
'@media (hover: none)': {
|
|
49
49
|
[`&:hover .${outlinedInputClasses.notchedOutline}`]: {
|
|
50
|
-
borderColor
|
|
50
|
+
borderColor: theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : borderColor
|
|
51
51
|
}
|
|
52
52
|
},
|
|
53
53
|
[`&.${outlinedInputClasses.focused} .${outlinedInputClasses.notchedOutline}`]: {
|
|
54
|
-
borderColor: theme.palette[ownerState.color].main,
|
|
54
|
+
borderColor: (theme.vars || theme).palette[ownerState.color].main,
|
|
55
55
|
borderWidth: 2
|
|
56
56
|
},
|
|
57
57
|
[`&.${outlinedInputClasses.error} .${outlinedInputClasses.notchedOutline}`]: {
|
|
58
|
-
borderColor: theme.palette.error.main
|
|
58
|
+
borderColor: (theme.vars || theme).palette.error.main
|
|
59
59
|
},
|
|
60
60
|
[`&.${outlinedInputClasses.disabled} .${outlinedInputClasses.notchedOutline}`]: {
|
|
61
|
-
borderColor: theme.palette.action.disabled
|
|
61
|
+
borderColor: (theme.vars || theme).palette.action.disabled
|
|
62
62
|
}
|
|
63
63
|
}, ownerState.startAdornment && {
|
|
64
64
|
paddingLeft: 14
|
|
@@ -76,9 +76,12 @@ const NotchedOutlineRoot = styled(NotchedOutline, {
|
|
|
76
76
|
overridesResolver: (props, styles) => styles.notchedOutline
|
|
77
77
|
})(({
|
|
78
78
|
theme
|
|
79
|
-
}) =>
|
|
80
|
-
borderColor
|
|
81
|
-
|
|
79
|
+
}) => {
|
|
80
|
+
const borderColor = theme.palette.mode === 'light' ? 'rgba(0, 0, 0, 0.23)' : 'rgba(255, 255, 255, 0.23)';
|
|
81
|
+
return {
|
|
82
|
+
borderColor: theme.vars ? `rgba(${theme.vars.palette.common.onBackgroundChannel} / 0.23)` : borderColor
|
|
83
|
+
};
|
|
84
|
+
});
|
|
82
85
|
const OutlinedInputInput = styled(InputBaseInput, {
|
|
83
86
|
name: 'MuiOutlinedInput',
|
|
84
87
|
slot: 'Input',
|
|
@@ -87,13 +90,25 @@ const OutlinedInputInput = styled(InputBaseInput, {
|
|
|
87
90
|
theme,
|
|
88
91
|
ownerState
|
|
89
92
|
}) => _extends({
|
|
90
|
-
padding: '16.5px 14px'
|
|
93
|
+
padding: '16.5px 14px'
|
|
94
|
+
}, !theme.vars && {
|
|
91
95
|
'&:-webkit-autofill': {
|
|
92
96
|
WebkitBoxShadow: theme.palette.mode === 'light' ? null : '0 0 0 100px #266798 inset',
|
|
93
97
|
WebkitTextFillColor: theme.palette.mode === 'light' ? null : '#fff',
|
|
94
98
|
caretColor: theme.palette.mode === 'light' ? null : '#fff',
|
|
95
99
|
borderRadius: 'inherit'
|
|
96
100
|
}
|
|
101
|
+
}, theme.vars && {
|
|
102
|
+
'&:-webkit-autofill': {
|
|
103
|
+
borderRadius: 'inherit'
|
|
104
|
+
},
|
|
105
|
+
[theme.getColorSchemeSelector('dark')]: {
|
|
106
|
+
'&:-webkit-autofill': {
|
|
107
|
+
WebkitBoxShadow: '0 0 0 100px #266798 inset',
|
|
108
|
+
WebkitTextFillColor: '#fff',
|
|
109
|
+
caretColor: '#fff'
|
|
110
|
+
}
|
|
111
|
+
}
|
|
97
112
|
}, ownerState.size === 'small' && {
|
|
98
113
|
padding: '8.5px 14px'
|
|
99
114
|
}, ownerState.multiline && {
|
package/modern/Popover/index.js
CHANGED
|
@@ -72,7 +72,7 @@ const SkeletonRoot = styled('span', {
|
|
|
72
72
|
return _extends({
|
|
73
73
|
display: 'block',
|
|
74
74
|
// Create a "on paper" color with sufficient contrast retaining the color
|
|
75
|
-
backgroundColor: alpha(theme.palette.text.primary, theme.palette.mode === 'light' ? 0.11 : 0.13),
|
|
75
|
+
backgroundColor: theme.vars ? theme.vars.palette.Skeleton.bg : alpha(theme.palette.text.primary, theme.palette.mode === 'light' ? 0.11 : 0.13),
|
|
76
76
|
height: '1.2em'
|
|
77
77
|
}, ownerState.variant === 'text' && {
|
|
78
78
|
marginTop: 0,
|
|
@@ -111,7 +111,12 @@ const SkeletonRoot = styled('span', {
|
|
|
111
111
|
|
|
112
112
|
&::after {
|
|
113
113
|
animation: ${waveKeyframe} 1.6s linear 0.5s infinite;
|
|
114
|
-
background: linear-gradient(
|
|
114
|
+
background: linear-gradient(
|
|
115
|
+
90deg,
|
|
116
|
+
transparent,
|
|
117
|
+
${(theme.vars || theme).palette.action.hover},
|
|
118
|
+
transparent
|
|
119
|
+
);
|
|
115
120
|
content: '';
|
|
116
121
|
position: absolute;
|
|
117
122
|
transform: translateX(-100%); /* Avoid flash during server-side hydration */
|