@mui/material 5.8.1 → 5.8.4
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/Autocomplete/autocompleteClasses.d.ts +1 -1
- package/Button/buttonClasses.d.ts +24 -0
- package/Button/buttonClasses.js +1 -1
- package/CHANGELOG.md +217 -8
- package/Checkbox/Checkbox.js +4 -4
- package/Grid/Grid.d.ts +73 -52
- package/Grid/Grid.js +94 -40
- package/Grow/Grow.js +4 -4
- package/Hidden/withWidth.js +0 -2
- package/InputLabel/InputLabel.d.ts +5 -0
- package/InputLabel/InputLabel.js +6 -0
- package/Link/Link.js +10 -17
- package/Link/getTextDecoration.d.ts +15 -0
- package/Link/getTextDecoration.js +29 -0
- package/Popover/Popover.d.ts +7 -0
- package/Popover/index.js +1 -0
- package/README.md +13 -12
- package/Slider/Slider.d.ts +3 -1
- package/Slider/Slider.js +23 -8
- package/Snackbar/Snackbar.js +6 -20
- package/Stack/Stack.js +1 -1
- package/StepIcon/StepIcon.js +2 -1
- package/Tab/Tab.d.ts +0 -1
- package/Tabs/Tabs.js +16 -0
- package/index.js +1 -1
- package/legacy/Alert/Alert.js +3 -1
- package/legacy/Button/buttonClasses.js +1 -1
- package/legacy/Checkbox/Checkbox.js +4 -4
- package/legacy/Grid/Grid.js +97 -48
- package/legacy/Grow/Grow.js +4 -4
- package/legacy/Hidden/withWidth.js +0 -2
- package/legacy/InputLabel/InputLabel.js +6 -0
- package/legacy/Link/Link.js +10 -17
- package/legacy/Link/getTextDecoration.js +28 -0
- package/legacy/Popover/index.js +1 -0
- package/legacy/Slider/Slider.js +23 -8
- package/legacy/Snackbar/Snackbar.js +6 -21
- package/legacy/Stack/Stack.js +2 -1
- package/legacy/StepIcon/StepIcon.js +2 -1
- package/legacy/Tabs/Tabs.js +16 -0
- package/legacy/index.js +1 -1
- package/legacy/styles/CssVarsProvider.js +3 -0
- package/modern/Alert/Alert.js +3 -1
- package/modern/Button/buttonClasses.js +1 -1
- package/modern/Checkbox/Checkbox.js +4 -4
- package/modern/Grid/Grid.js +94 -40
- package/modern/Grow/Grow.js +4 -4
- package/modern/Hidden/withWidth.js +0 -2
- package/modern/InputLabel/InputLabel.js +6 -0
- package/modern/Link/Link.js +10 -17
- package/modern/Link/getTextDecoration.js +29 -0
- package/modern/Popover/index.js +1 -0
- package/modern/Slider/Slider.js +23 -8
- package/modern/Snackbar/Snackbar.js +6 -20
- package/modern/Stack/Stack.js +1 -1
- package/modern/StepIcon/StepIcon.js +2 -1
- package/modern/Tabs/Tabs.js +16 -0
- package/modern/index.js +1 -1
- package/modern/styles/CssVarsProvider.js +3 -0
- package/node/Alert/Alert.js +3 -1
- package/node/Button/buttonClasses.js +1 -1
- package/node/Checkbox/Checkbox.js +4 -4
- package/node/Grid/Grid.js +95 -40
- package/node/Grow/Grow.js +4 -4
- package/node/Hidden/withWidth.js +0 -3
- package/node/InputLabel/InputLabel.js +6 -0
- package/node/Link/Link.js +12 -20
- package/node/Link/getTextDecoration.js +39 -0
- package/node/Popover/index.js +13 -3
- package/node/Slider/Slider.js +23 -8
- package/node/Snackbar/Snackbar.js +6 -18
- package/node/Stack/Stack.js +1 -1
- package/node/StepIcon/StepIcon.js +2 -1
- package/node/Tabs/Tabs.js +16 -0
- package/node/index.js +1 -1
- package/node/styles/CssVarsProvider.js +3 -0
- package/package.json +6 -7
- package/styles/CssVarsProvider.js +3 -0
- package/umd/material-ui.development.js +291 -227
- package/umd/material-ui.production.min.js +21 -21
package/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/Grow/Grow.js
CHANGED
|
@@ -24,12 +24,12 @@ const styles = {
|
|
|
24
24
|
transform: 'none'
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
27
|
+
/*
|
|
28
|
+
TODO v6: remove
|
|
29
|
+
Conditionally apply a workaround for the CSS transition bug in Safari 15.4 / WebKit browsers.
|
|
30
30
|
*/
|
|
31
31
|
|
|
32
|
-
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);
|
|
33
33
|
/**
|
|
34
34
|
* The Grow transition is used by the [Tooltip](/material-ui/react-tooltip/) and
|
|
35
35
|
* [Popover](/material-ui/react-popover/) components.
|
package/Hidden/withWidth.js
CHANGED
|
@@ -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
|
|
|
@@ -45,6 +45,11 @@ export interface InputLabelProps extends StandardProps<FormLabelProps> {
|
|
|
45
45
|
* If `true`, the label is shrunk.
|
|
46
46
|
*/
|
|
47
47
|
shrink?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* The size of the component.
|
|
50
|
+
* @default 'normal'
|
|
51
|
+
*/
|
|
52
|
+
size?: 'small' | 'normal';
|
|
48
53
|
/**
|
|
49
54
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
50
55
|
*/
|
package/InputLabel/InputLabel.js
CHANGED
|
@@ -209,6 +209,12 @@ process.env.NODE_ENV !== "production" ? InputLabel.propTypes
|
|
|
209
209
|
*/
|
|
210
210
|
shrink: PropTypes.bool,
|
|
211
211
|
|
|
212
|
+
/**
|
|
213
|
+
* The size of the component.
|
|
214
|
+
* @default 'normal'
|
|
215
|
+
*/
|
|
216
|
+
size: PropTypes.oneOf(['normal', 'small']),
|
|
217
|
+
|
|
212
218
|
/**
|
|
213
219
|
* The system prop that allows defining system overrides as well as additional CSS styles.
|
|
214
220
|
*/
|
package/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,15 @@
|
|
|
1
|
+
import type { Theme } from '../styles';
|
|
2
|
+
export declare const colorTransformations: {
|
|
3
|
+
primary: string;
|
|
4
|
+
textPrimary: string;
|
|
5
|
+
secondary: string;
|
|
6
|
+
textSecondary: string;
|
|
7
|
+
error: string;
|
|
8
|
+
};
|
|
9
|
+
declare const getTextDecoration: <T extends Theme>({ theme, ownerState, }: {
|
|
10
|
+
theme: T;
|
|
11
|
+
ownerState: {
|
|
12
|
+
color: string;
|
|
13
|
+
};
|
|
14
|
+
}) => string;
|
|
15
|
+
export default getTextDecoration;
|
|
@@ -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/Popover/Popover.d.ts
CHANGED
|
@@ -133,6 +133,13 @@ export interface PopoverActions {
|
|
|
133
133
|
updatePosition(): void;
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
+
export function getOffsetTop(rect: DOMRect, vertical: number | 'center' | 'bottom' | 'top'): number;
|
|
137
|
+
|
|
138
|
+
export function getOffsetLeft(
|
|
139
|
+
rect: DOMRect,
|
|
140
|
+
horizontal: number | 'center' | 'right' | 'left',
|
|
141
|
+
): number;
|
|
142
|
+
|
|
136
143
|
/**
|
|
137
144
|
*
|
|
138
145
|
* Demos:
|
package/Popover/index.js
CHANGED
package/README.md
CHANGED
|
@@ -7,11 +7,13 @@
|
|
|
7
7
|
|
|
8
8
|
**MUI Core** contains foundational React UI component libraries for shipping new features faster.
|
|
9
9
|
|
|
10
|
-
- _Material UI_ is a comprehensive library of components that features our implementation of Google's [Material Design](https://material.io/design/introduction/) system.
|
|
10
|
+
- [_Material UI_](https://mui.com/material-ui/getting-started/overview/) is a comprehensive library of components that features our implementation of Google's [Material Design](https://material.io/design/introduction/) system.
|
|
11
11
|
|
|
12
|
-
-
|
|
12
|
+
- [_Joy UI_](https://mui.com/joy-ui/getting-started/overview/) is a beautifully designed library of React UI components.
|
|
13
13
|
|
|
14
|
-
- _MUI
|
|
14
|
+
- [_MUI Base_](https://mui.com/base/getting-started/overview/) is our library of "unstyled" components and low-level hooks. With Base, you gain complete control over your app's CSS and accessibility features.
|
|
15
|
+
|
|
16
|
+
- [_MUI System_](https://mui.com/system/basics/) is a collection of CSS utilities to help you rapidly lay out custom designs.
|
|
15
17
|
|
|
16
18
|
<div align="center">
|
|
17
19
|
|
|
@@ -48,9 +50,9 @@ yarn add @mui/material @emotion/react @emotion/styled
|
|
|
48
50
|
<details>
|
|
49
51
|
<summary>Older versions</summary>
|
|
50
52
|
|
|
51
|
-
- **[v4.x](https://v4.mui.com/)** ([Migration from v4 to v5](https://mui.com/material-ui/
|
|
52
|
-
- **[v3.x](https://v3.mui.com/)** ([Migration from v3 to v4](https://mui.com/material-ui/
|
|
53
|
-
- **[v0.x](https://v0.mui.com/)** ([Migration to v1](https://mui.com/material-ui/
|
|
53
|
+
- **[v4.x](https://v4.mui.com/)** ([Migration from v4 to v5](https://mui.com/material-ui/migration/migration-v4/))
|
|
54
|
+
- **[v3.x](https://v3.mui.com/)** ([Migration from v3 to v4](https://mui.com/material-ui/migration/migration-v3/))
|
|
55
|
+
- **[v0.x](https://v0.mui.com/)** ([Migration to v1](https://mui.com/material-ui/migration/migration-v0x/))
|
|
54
56
|
|
|
55
57
|
</details>
|
|
56
58
|
|
|
@@ -134,15 +136,10 @@ Here is an example of a basic app using Material UI's `Button` component:
|
|
|
134
136
|
|
|
135
137
|
```jsx
|
|
136
138
|
import * as React from 'react';
|
|
137
|
-
import ReactDOM from 'react-dom';
|
|
138
139
|
import Button from '@mui/material/Button';
|
|
139
140
|
|
|
140
141
|
function App() {
|
|
141
|
-
return
|
|
142
|
-
<Button variant="contained" color="primary">
|
|
143
|
-
Hello World
|
|
144
|
-
</Button>
|
|
145
|
-
);
|
|
142
|
+
return <Button variant="contained">Hello World</Button>;
|
|
146
143
|
}
|
|
147
144
|
```
|
|
148
145
|
|
|
@@ -191,6 +188,10 @@ Future plans and high-priority features and enhancements can be found in our [ro
|
|
|
191
188
|
This project is licensed under the terms of the
|
|
192
189
|
[MIT license](/LICENSE).
|
|
193
190
|
|
|
191
|
+
## Security
|
|
192
|
+
|
|
193
|
+
For details of supported versions and contact details for reporting security issues, please refer to the [security policy](https://github.com/mui/material-ui/blob/master/SECURITY.md).
|
|
194
|
+
|
|
194
195
|
## Sponsoring services
|
|
195
196
|
|
|
196
197
|
These great services sponsor MUI's core infrastructure:
|
package/Slider/Slider.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
ExtendSliderUnstyledTypeMap,
|
|
4
4
|
ExtendSliderUnstyled,
|
|
5
5
|
SliderUnstyledTypeMap,
|
|
6
|
+
SliderValueLabelProps,
|
|
6
7
|
} from '@mui/base/SliderUnstyled';
|
|
7
8
|
import { SxProps } from '@mui/system';
|
|
8
9
|
import { OverridableStringUnion } from '@mui/types';
|
|
@@ -55,13 +56,14 @@ export type SliderTypeMap<
|
|
|
55
56
|
defaultComponent: D;
|
|
56
57
|
}>;
|
|
57
58
|
|
|
59
|
+
export { SliderValueLabelProps } from '@mui/base/SliderUnstyled';
|
|
60
|
+
|
|
58
61
|
type SliderRootProps = NonNullable<SliderTypeMap['props']['componentsProps']>['root'];
|
|
59
62
|
type SliderMarkProps = NonNullable<SliderTypeMap['props']['componentsProps']>['mark'];
|
|
60
63
|
type SliderMarkLabelProps = NonNullable<SliderTypeMap['props']['componentsProps']>['markLabel'];
|
|
61
64
|
type SliderRailProps = NonNullable<SliderTypeMap['props']['componentsProps']>['rail'];
|
|
62
65
|
type SliderTrackProps = NonNullable<SliderTypeMap['props']['componentsProps']>['track'];
|
|
63
66
|
type SliderThumbProps = NonNullable<SliderTypeMap['props']['componentsProps']>['thumb'];
|
|
64
|
-
type SliderValueLabelProps = NonNullable<SliderTypeMap['props']['componentsProps']>['valueLabel'];
|
|
65
67
|
type SliderInputProps = NonNullable<SliderTypeMap['props']['componentsProps']>['input'];
|
|
66
68
|
|
|
67
69
|
export const SliderRoot: React.FC<SliderRootProps>;
|
package/Slider/Slider.js
CHANGED
|
@@ -284,7 +284,6 @@ const SliderValueLabel = styled(SliderValueLabelUnstyled, {
|
|
|
284
284
|
transition: theme.transitions.create(['transform'], {
|
|
285
285
|
duration: theme.transitions.duration.shortest
|
|
286
286
|
}),
|
|
287
|
-
top: -10,
|
|
288
287
|
transformOrigin: 'bottom center',
|
|
289
288
|
transform: 'translateY(-100%) scale(0)',
|
|
290
289
|
position: 'absolute',
|
|
@@ -295,20 +294,34 @@ const SliderValueLabel = styled(SliderValueLabelUnstyled, {
|
|
|
295
294
|
alignItems: 'center',
|
|
296
295
|
justifyContent: 'center',
|
|
297
296
|
padding: '0.25rem 0.75rem'
|
|
298
|
-
}, ownerState.
|
|
299
|
-
|
|
300
|
-
padding: '0.25rem 0.5rem'
|
|
301
|
-
}, {
|
|
297
|
+
}, ownerState.orientation === 'horizontal' && {
|
|
298
|
+
top: '-10px',
|
|
302
299
|
'&:before': {
|
|
303
300
|
position: 'absolute',
|
|
304
301
|
content: '""',
|
|
305
302
|
width: 8,
|
|
306
303
|
height: 8,
|
|
304
|
+
transform: 'translate(-50%, 50%) rotate(45deg)',
|
|
305
|
+
backgroundColor: 'inherit',
|
|
307
306
|
bottom: 0,
|
|
308
|
-
left: '50%'
|
|
307
|
+
left: '50%'
|
|
308
|
+
}
|
|
309
|
+
}, ownerState.orientation === 'vertical' && {
|
|
310
|
+
right: '30px',
|
|
311
|
+
top: '25px',
|
|
312
|
+
'&:before': {
|
|
313
|
+
position: 'absolute',
|
|
314
|
+
content: '""',
|
|
315
|
+
width: 8,
|
|
316
|
+
height: 8,
|
|
309
317
|
transform: 'translate(-50%, 50%) rotate(45deg)',
|
|
310
|
-
backgroundColor: 'inherit'
|
|
318
|
+
backgroundColor: 'inherit',
|
|
319
|
+
right: '-20%',
|
|
320
|
+
top: '25%'
|
|
311
321
|
}
|
|
322
|
+
}, ownerState.size === 'small' && {
|
|
323
|
+
fontSize: theme.typography.pxToRem(12),
|
|
324
|
+
padding: '0.25rem 0.5rem'
|
|
312
325
|
}));
|
|
313
326
|
process.env.NODE_ENV !== "production" ? SliderValueLabel.propTypes
|
|
314
327
|
/* remove-proptypes */
|
|
@@ -574,12 +587,14 @@ process.env.NODE_ENV !== "production" ? Slider.propTypes
|
|
|
574
587
|
thumb: PropTypes.object,
|
|
575
588
|
track: PropTypes.object,
|
|
576
589
|
valueLabel: PropTypes.shape({
|
|
590
|
+
children: PropTypes.element,
|
|
577
591
|
className: PropTypes.string,
|
|
578
592
|
components: PropTypes.shape({
|
|
579
593
|
Root: PropTypes.elementType
|
|
580
594
|
}),
|
|
595
|
+
open: PropTypes.bool,
|
|
581
596
|
style: PropTypes.object,
|
|
582
|
-
value: PropTypes.
|
|
597
|
+
value: PropTypes.number,
|
|
583
598
|
valueLabelDisplay: PropTypes.oneOf(['auto', 'off', 'on'])
|
|
584
599
|
})
|
|
585
600
|
}),
|
package/Snackbar/Snackbar.js
CHANGED
|
@@ -41,16 +41,11 @@ const SnackbarRoot = styled('div', {
|
|
|
41
41
|
theme,
|
|
42
42
|
ownerState
|
|
43
43
|
}) => {
|
|
44
|
-
const center =
|
|
44
|
+
const center = {
|
|
45
45
|
left: '50%',
|
|
46
46
|
right: 'auto',
|
|
47
47
|
transform: 'translateX(-50%)'
|
|
48
|
-
}
|
|
49
|
-
right: '50%',
|
|
50
|
-
left: 'auto',
|
|
51
|
-
transform: 'translateX(50%)'
|
|
52
|
-
});
|
|
53
|
-
|
|
48
|
+
};
|
|
54
49
|
return _extends({
|
|
55
50
|
zIndex: (theme.vars || theme).zIndex.snackbar,
|
|
56
51
|
position: 'fixed',
|
|
@@ -72,19 +67,13 @@ const SnackbarRoot = styled('div', {
|
|
|
72
67
|
top: 24
|
|
73
68
|
} : {
|
|
74
69
|
bottom: 24
|
|
75
|
-
}, ownerState.anchorOrigin.horizontal === 'center' && center, ownerState.anchorOrigin.horizontal === 'left' &&
|
|
70
|
+
}, ownerState.anchorOrigin.horizontal === 'center' && center, ownerState.anchorOrigin.horizontal === 'left' && {
|
|
76
71
|
left: 24,
|
|
77
72
|
right: 'auto'
|
|
78
|
-
}, ownerState.
|
|
73
|
+
}, ownerState.anchorOrigin.horizontal === 'right' && {
|
|
79
74
|
right: 24,
|
|
80
75
|
left: 'auto'
|
|
81
|
-
})
|
|
82
|
-
right: 24,
|
|
83
|
-
left: 'auto'
|
|
84
|
-
}, ownerState.isRtl && {
|
|
85
|
-
left: 24,
|
|
86
|
-
right: 'auto'
|
|
87
|
-
}))
|
|
76
|
+
})
|
|
88
77
|
});
|
|
89
78
|
});
|
|
90
79
|
const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
|
|
@@ -131,14 +120,11 @@ const Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(inProps, ref) {
|
|
|
131
120
|
TransitionProps = _objectWithoutPropertiesLoose(props.TransitionProps, _excluded),
|
|
132
121
|
other = _objectWithoutPropertiesLoose(props, _excluded2);
|
|
133
122
|
|
|
134
|
-
const isRtl = theme.direction === 'rtl';
|
|
135
|
-
|
|
136
123
|
const ownerState = _extends({}, props, {
|
|
137
124
|
anchorOrigin: {
|
|
138
125
|
vertical,
|
|
139
126
|
horizontal
|
|
140
|
-
}
|
|
141
|
-
isRtl
|
|
127
|
+
}
|
|
142
128
|
});
|
|
143
129
|
|
|
144
130
|
const classes = useUtilityClasses(ownerState);
|
package/Stack/Stack.js
CHANGED
|
@@ -59,7 +59,7 @@ export const style = ({
|
|
|
59
59
|
if (ownerState.spacing) {
|
|
60
60
|
const transformer = createUnarySpacing(theme);
|
|
61
61
|
const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {
|
|
62
|
-
if (ownerState.spacing[breakpoint] != null || ownerState.direction[breakpoint] != null) {
|
|
62
|
+
if (typeof ownerState.spacing === 'object' && ownerState.spacing[breakpoint] != null || typeof ownerState.direction === 'object' && ownerState.direction[breakpoint] != null) {
|
|
63
63
|
acc[breakpoint] = true;
|
|
64
64
|
}
|
|
65
65
|
|
package/StepIcon/StepIcon.js
CHANGED
|
@@ -120,8 +120,9 @@ const StepIcon = /*#__PURE__*/React.forwardRef(function StepIcon(inProps, ref) {
|
|
|
120
120
|
})), /*#__PURE__*/_jsx(StepIconText, {
|
|
121
121
|
className: classes.text,
|
|
122
122
|
x: "12",
|
|
123
|
-
y: "
|
|
123
|
+
y: "12",
|
|
124
124
|
textAnchor: "middle",
|
|
125
|
+
dominantBaseline: "central",
|
|
125
126
|
ownerState: ownerState,
|
|
126
127
|
children: icon
|
|
127
128
|
})]
|
package/Tab/Tab.d.ts
CHANGED