@mui/material 5.8.3 → 5.8.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/Alert/Alert.js +19 -11
  2. package/AppBar/AppBar.js +22 -5
  3. package/Autocomplete/autocompleteClasses.d.ts +1 -1
  4. package/Avatar/Avatar.js +7 -4
  5. package/Badge/Badge.js +2 -2
  6. package/Button/buttonClasses.d.ts +24 -0
  7. package/Button/buttonClasses.js +1 -1
  8. package/CHANGELOG.md +224 -14
  9. package/Chip/Chip.js +31 -30
  10. package/Dialog/Dialog.js +11 -6
  11. package/FilledInput/FilledInput.js +28 -13
  12. package/Grid/Grid.d.ts +73 -52
  13. package/Grid/Grid.js +94 -40
  14. package/Grow/Grow.js +1 -2
  15. package/Hidden/withWidth.js +0 -2
  16. package/Input/Input.js +1 -1
  17. package/InputBase/InputBase.js +2 -2
  18. package/LinearProgress/LinearProgress.js +6 -2
  19. package/Link/Link.js +10 -17
  20. package/Link/getTextDecoration.d.ts +15 -0
  21. package/Link/getTextDecoration.js +29 -0
  22. package/Modal/Modal.d.ts +2 -0
  23. package/Modal/Modal.js +25 -8
  24. package/OutlinedInput/OutlinedInput.js +40 -10
  25. package/Popover/Popover.d.ts +7 -0
  26. package/Popover/index.js +1 -0
  27. package/README.md +6 -9
  28. package/Skeleton/Skeleton.js +8 -3
  29. package/Slider/Slider.d.ts +3 -1
  30. package/Slider/Slider.js +24 -22
  31. package/Snackbar/Snackbar.js +6 -20
  32. package/SnackbarContent/SnackbarContent.js +3 -3
  33. package/SpeedDialAction/SpeedDialAction.js +7 -7
  34. package/Stack/Stack.js +1 -1
  35. package/StepConnector/StepConnector.js +14 -11
  36. package/StepContent/StepContent.js +1 -1
  37. package/StepIcon/StepIcon.js +2 -1
  38. package/Switch/Switch.js +11 -11
  39. package/Tab/Tab.d.ts +0 -1
  40. package/TableCell/TableCell.js +5 -5
  41. package/Tabs/Tabs.js +16 -2
  42. package/Tooltip/Tooltip.js +1 -1
  43. package/index.js +1 -1
  44. package/legacy/Alert/Alert.js +19 -11
  45. package/legacy/AppBar/AppBar.js +23 -4
  46. package/legacy/Avatar/Avatar.js +7 -4
  47. package/legacy/Badge/Badge.js +2 -2
  48. package/legacy/Button/buttonClasses.js +1 -1
  49. package/legacy/Chip/Chip.js +31 -30
  50. package/legacy/Dialog/Dialog.js +11 -6
  51. package/legacy/FilledInput/FilledInput.js +28 -14
  52. package/legacy/Grid/Grid.js +97 -48
  53. package/legacy/Grow/Grow.js +1 -2
  54. package/legacy/Hidden/withWidth.js +0 -2
  55. package/legacy/Input/Input.js +1 -1
  56. package/legacy/InputBase/InputBase.js +2 -2
  57. package/legacy/LinearProgress/LinearProgress.js +6 -2
  58. package/legacy/Link/Link.js +10 -17
  59. package/legacy/Link/getTextDecoration.js +28 -0
  60. package/legacy/Modal/Modal.js +23 -7
  61. package/legacy/OutlinedInput/OutlinedInput.js +36 -9
  62. package/legacy/Popover/index.js +1 -0
  63. package/legacy/Skeleton/Skeleton.js +2 -2
  64. package/legacy/Slider/Slider.js +24 -22
  65. package/legacy/Snackbar/Snackbar.js +6 -21
  66. package/legacy/SnackbarContent/SnackbarContent.js +3 -3
  67. package/legacy/SpeedDialAction/SpeedDialAction.js +7 -7
  68. package/legacy/Stack/Stack.js +2 -1
  69. package/legacy/StepConnector/StepConnector.js +2 -1
  70. package/legacy/StepContent/StepContent.js +1 -1
  71. package/legacy/StepIcon/StepIcon.js +2 -1
  72. package/legacy/Switch/Switch.js +11 -11
  73. package/legacy/TableCell/TableCell.js +5 -5
  74. package/legacy/Tabs/Tabs.js +16 -2
  75. package/legacy/Tooltip/Tooltip.js +1 -1
  76. package/legacy/index.js +1 -1
  77. package/legacy/styles/CssVarsProvider.js +4 -2
  78. package/legacy/styles/experimental_extendTheme.js +153 -18
  79. package/modern/Alert/Alert.js +19 -11
  80. package/modern/AppBar/AppBar.js +22 -5
  81. package/modern/Avatar/Avatar.js +7 -4
  82. package/modern/Badge/Badge.js +2 -2
  83. package/modern/Button/buttonClasses.js +1 -1
  84. package/modern/Chip/Chip.js +31 -30
  85. package/modern/Dialog/Dialog.js +11 -6
  86. package/modern/FilledInput/FilledInput.js +27 -12
  87. package/modern/Grid/Grid.js +94 -40
  88. package/modern/Grow/Grow.js +1 -2
  89. package/modern/Hidden/withWidth.js +0 -2
  90. package/modern/Input/Input.js +1 -1
  91. package/modern/InputBase/InputBase.js +2 -2
  92. package/modern/LinearProgress/LinearProgress.js +6 -2
  93. package/modern/Link/Link.js +10 -17
  94. package/modern/Link/getTextDecoration.js +29 -0
  95. package/modern/Modal/Modal.js +24 -7
  96. package/modern/OutlinedInput/OutlinedInput.js +40 -10
  97. package/modern/Popover/index.js +1 -0
  98. package/modern/Skeleton/Skeleton.js +7 -2
  99. package/modern/Slider/Slider.js +24 -22
  100. package/modern/Snackbar/Snackbar.js +6 -20
  101. package/modern/SnackbarContent/SnackbarContent.js +3 -3
  102. package/modern/SpeedDialAction/SpeedDialAction.js +7 -7
  103. package/modern/Stack/Stack.js +1 -1
  104. package/modern/StepConnector/StepConnector.js +14 -11
  105. package/modern/StepContent/StepContent.js +1 -1
  106. package/modern/StepIcon/StepIcon.js +2 -1
  107. package/modern/Switch/Switch.js +11 -11
  108. package/modern/TableCell/TableCell.js +5 -5
  109. package/modern/Tabs/Tabs.js +16 -2
  110. package/modern/Tooltip/Tooltip.js +1 -1
  111. package/modern/index.js +1 -1
  112. package/modern/styles/CssVarsProvider.js +2 -2
  113. package/modern/styles/experimental_extendTheme.js +154 -18
  114. package/node/Alert/Alert.js +19 -11
  115. package/node/AppBar/AppBar.js +22 -5
  116. package/node/Avatar/Avatar.js +7 -4
  117. package/node/Badge/Badge.js +2 -2
  118. package/node/Button/buttonClasses.js +1 -1
  119. package/node/Chip/Chip.js +31 -30
  120. package/node/Dialog/Dialog.js +11 -6
  121. package/node/FilledInput/FilledInput.js +28 -13
  122. package/node/Grid/Grid.js +95 -40
  123. package/node/Grow/Grow.js +1 -2
  124. package/node/Hidden/withWidth.js +0 -3
  125. package/node/Input/Input.js +1 -1
  126. package/node/InputBase/InputBase.js +2 -2
  127. package/node/LinearProgress/LinearProgress.js +6 -2
  128. package/node/Link/Link.js +12 -20
  129. package/node/Link/getTextDecoration.js +39 -0
  130. package/node/Modal/Modal.js +25 -8
  131. package/node/OutlinedInput/OutlinedInput.js +38 -10
  132. package/node/Popover/index.js +13 -3
  133. package/node/Skeleton/Skeleton.js +7 -2
  134. package/node/Slider/Slider.js +24 -22
  135. package/node/Snackbar/Snackbar.js +6 -18
  136. package/node/SnackbarContent/SnackbarContent.js +3 -3
  137. package/node/SpeedDialAction/SpeedDialAction.js +7 -7
  138. package/node/Stack/Stack.js +1 -1
  139. package/node/StepConnector/StepConnector.js +14 -11
  140. package/node/StepContent/StepContent.js +1 -1
  141. package/node/StepIcon/StepIcon.js +2 -1
  142. package/node/Switch/Switch.js +11 -11
  143. package/node/TableCell/TableCell.js +5 -5
  144. package/node/Tabs/Tabs.js +16 -2
  145. package/node/Tooltip/Tooltip.js +1 -1
  146. package/node/index.js +1 -1
  147. package/node/styles/CssVarsProvider.js +6 -2
  148. package/node/styles/experimental_extendTheme.js +152 -17
  149. package/package.json +6 -7
  150. package/styles/CssVarsProvider.d.ts +10 -28
  151. package/styles/CssVarsProvider.js +6 -2
  152. package/styles/createPalette.d.ts +0 -26
  153. package/styles/experimental_extendTheme.d.ts +225 -37
  154. package/styles/experimental_extendTheme.js +154 -18
  155. package/styles/index.d.ts +24 -1
  156. package/themeCssVarsAugmentation/index.d.ts +61 -0
  157. package/umd/material-ui.development.js +1048 -541
  158. package/umd/material-ui.production.min.js +27 -22
@@ -101,7 +101,7 @@ const SwitchSwitchBase = styled(SwitchBase, {
101
101
  left: 0,
102
102
  zIndex: 1,
103
103
  // Render above the focus ripple.
104
- color: theme.palette.mode === 'light' ? theme.palette.common.white : theme.palette.grey[300],
104
+ color: theme.vars ? theme.vars.palette.Switch.defaultColor : `${theme.palette.mode === 'light' ? theme.palette.common.white : theme.palette.grey[300]}`,
105
105
  transition: theme.transitions.create(['left', 'transform'], {
106
106
  duration: theme.transitions.duration.shortest
107
107
  }),
@@ -109,13 +109,13 @@ const SwitchSwitchBase = styled(SwitchBase, {
109
109
  transform: 'translateX(20px)'
110
110
  },
111
111
  [`&.${switchClasses.disabled}`]: {
112
- color: theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[600]
112
+ color: theme.vars ? theme.vars.palette.Switch.defaultDisabledColor : `${theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[600]}`
113
113
  },
114
114
  [`&.${switchClasses.checked} + .${switchClasses.track}`]: {
115
115
  opacity: 0.5
116
116
  },
117
117
  [`&.${switchClasses.disabled} + .${switchClasses.track}`]: {
118
- opacity: theme.palette.mode === 'light' ? 0.12 : 0.2
118
+ opacity: theme.vars ? theme.vars.opacity.switchTrackDisabled : `${theme.palette.mode === 'light' ? 0.12 : 0.2}`
119
119
  },
120
120
  [`& .${switchClasses.input}`]: {
121
121
  left: '-100%',
@@ -126,7 +126,7 @@ const SwitchSwitchBase = styled(SwitchBase, {
126
126
  ownerState
127
127
  }) => _extends({
128
128
  '&:hover': {
129
- backgroundColor: alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),
129
+ backgroundColor: theme.vars ? `rgba(${theme.vars.palette.action.activeChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette.action.active, theme.palette.action.hoverOpacity),
130
130
  // Reset on touch devices, it doesn't add specificity
131
131
  '@media (hover: none)': {
132
132
  backgroundColor: 'transparent'
@@ -134,19 +134,19 @@ const SwitchSwitchBase = styled(SwitchBase, {
134
134
  }
135
135
  }, ownerState.color !== 'default' && {
136
136
  [`&.${switchClasses.checked}`]: {
137
- color: theme.palette[ownerState.color].main,
137
+ color: (theme.vars || theme).palette[ownerState.color].main,
138
138
  '&:hover': {
139
- backgroundColor: alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),
139
+ backgroundColor: theme.vars ? `rgba(${theme.vars.palette[ownerState.color].mainChannel} / ${theme.vars.palette.action.hoverOpacity})` : alpha(theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),
140
140
  '@media (hover: none)': {
141
141
  backgroundColor: 'transparent'
142
142
  }
143
143
  },
144
144
  [`&.${switchClasses.disabled}`]: {
145
- color: theme.palette.mode === 'light' ? lighten(theme.palette[ownerState.color].main, 0.62) : darken(theme.palette[ownerState.color].main, 0.55)
145
+ color: theme.vars ? theme.vars.palette.Switch[`${ownerState.color}DisabledColor`] : `${theme.palette.mode === 'light' ? lighten(theme.palette[ownerState.color].main, 0.62) : darken(theme.palette[ownerState.color].main, 0.55)}`
146
146
  }
147
147
  },
148
148
  [`&.${switchClasses.checked} + .${switchClasses.track}`]: {
149
- backgroundColor: theme.palette[ownerState.color].main
149
+ backgroundColor: (theme.vars || theme).palette[ownerState.color].main
150
150
  }
151
151
  }));
152
152
  const SwitchTrack = styled('span', {
@@ -163,8 +163,8 @@ const SwitchTrack = styled('span', {
163
163
  transition: theme.transitions.create(['opacity', 'background-color'], {
164
164
  duration: theme.transitions.duration.shortest
165
165
  }),
166
- backgroundColor: theme.palette.mode === 'light' ? theme.palette.common.black : theme.palette.common.white,
167
- opacity: theme.palette.mode === 'light' ? 0.38 : 0.3
166
+ backgroundColor: theme.vars ? theme.vars.palette.common.onBackground : `${theme.palette.mode === 'light' ? theme.palette.common.black : theme.palette.common.white}`,
167
+ opacity: theme.vars ? theme.vars.opacity.switchTrack : `${theme.palette.mode === 'light' ? 0.38 : 0.3}`
168
168
  }));
169
169
  const SwitchThumb = styled('span', {
170
170
  name: 'MuiSwitch',
@@ -173,7 +173,7 @@ const SwitchThumb = styled('span', {
173
173
  })(({
174
174
  theme
175
175
  }) => ({
176
- boxShadow: theme.shadows[1],
176
+ boxShadow: (theme.vars || theme).shadows[1],
177
177
  backgroundColor: 'currentColor',
178
178
  width: 20,
179
179
  height: 20,
@@ -46,18 +46,18 @@ const TableCellRoot = styled('td', {
46
46
  verticalAlign: 'inherit',
47
47
  // Workaround for a rendering bug with spanned columns in Chrome 62.0.
48
48
  // Removes the alpha (sets it to 1), and lightens or darkens the theme color.
49
- borderBottom: `1px solid
49
+ borderBottom: theme.vars ? `1px solid ${theme.vars.palette.TableCell.border}` : `1px solid
50
50
  ${theme.palette.mode === 'light' ? lighten(alpha(theme.palette.divider, 1), 0.88) : darken(alpha(theme.palette.divider, 1), 0.68)}`,
51
51
  textAlign: 'left',
52
52
  padding: 16
53
53
  }, ownerState.variant === 'head' && {
54
- color: theme.palette.text.primary,
54
+ color: (theme.vars || theme).palette.text.primary,
55
55
  lineHeight: theme.typography.pxToRem(24),
56
56
  fontWeight: theme.typography.fontWeightMedium
57
57
  }, ownerState.variant === 'body' && {
58
- color: theme.palette.text.primary
58
+ color: (theme.vars || theme).palette.text.primary
59
59
  }, ownerState.variant === 'footer' && {
60
- color: theme.palette.text.secondary,
60
+ color: (theme.vars || theme).palette.text.secondary,
61
61
  lineHeight: theme.typography.pxToRem(21),
62
62
  fontSize: theme.typography.pxToRem(12)
63
63
  }, ownerState.size === 'small' && {
@@ -89,7 +89,7 @@ const TableCellRoot = styled('td', {
89
89
  position: 'sticky',
90
90
  top: 0,
91
91
  zIndex: 2,
92
- backgroundColor: theme.palette.background.default
92
+ backgroundColor: (theme.vars || theme).palette.background.default
93
93
  }));
94
94
  /**
95
95
  * The component renders a `<th>` element when the parent context is a header
@@ -426,6 +426,12 @@ const Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {
426
426
  const tab = children[i];
427
427
 
428
428
  if (totalSize + tab[clientSize] > containerSize) {
429
+ // If the first item is longer than the container size, then only scroll
430
+ // by the container size.
431
+ if (i === 0) {
432
+ totalSize = containerSize;
433
+ }
434
+
429
435
  break;
430
436
  }
431
437
 
@@ -535,8 +541,16 @@ const Tabs = /*#__PURE__*/React.forwardRef(function Tabs(inProps, ref) {
535
541
  });
536
542
  React.useEffect(() => {
537
543
  const handleResize = debounce(() => {
538
- updateIndicatorState();
539
- updateScrollButtonState();
544
+ // If the Tabs component is replaced by Suspense with a fallback, the last
545
+ // ResizeObserver's handler that runs because of the change in the layout is trying to
546
+ // access a dom node that is no longer there (as the fallback component is being shown instead).
547
+ // See https://github.com/mui/material-ui/issues/33276
548
+ // TODO: Add tests that will ensure the component is not failing when
549
+ // replaced by Suspense with a fallback, once React is updated to version 18
550
+ if (tabsRef.current) {
551
+ updateIndicatorState();
552
+ updateScrollButtonState();
553
+ }
540
554
  });
541
555
  const win = ownerWindow(tabsRef.current);
542
556
  win.addEventListener('resize', handleResize);
@@ -117,7 +117,7 @@ const TooltipTooltip = styled('div', {
117
117
  theme,
118
118
  ownerState
119
119
  }) => _extends({
120
- backgroundColor: theme.vars ? `rgba(${theme.vars.palette.grey.darkChannel} / 0.92)` : alpha(theme.palette.grey[700], 0.92),
120
+ backgroundColor: theme.vars ? theme.vars.palette.Tooltip.bg : alpha(theme.palette.grey[700], 0.92),
121
121
  borderRadius: (theme.vars || theme).shape.borderRadius,
122
122
  color: (theme.vars || theme).palette.common.white,
123
123
  fontFamily: theme.typography.fontFamily,
package/modern/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MUI v5.8.3
1
+ /** @license MUI v5.8.6
2
2
  *
3
3
  * This source code is licensed under the MIT license found in the
4
4
  * LICENSE file in the root directory of this source tree.
@@ -18,7 +18,7 @@ const {
18
18
  light: 'light',
19
19
  dark: 'dark'
20
20
  },
21
- prefix: 'md',
21
+ prefix: 'mui',
22
22
  resolveTheme: theme => {
23
23
  const newTheme = _extends({}, theme, {
24
24
  typography: createTypography(theme.palette, theme.typography)
@@ -26,6 +26,6 @@ const {
26
26
 
27
27
  return newTheme;
28
28
  },
29
- shouldSkipGeneratingVar: keys => !!keys[0].match(/(typography|mixins|breakpoints|direction|transitions)/)
29
+ shouldSkipGeneratingVar: keys => !!keys[0].match(/(typography|mixins|breakpoints|direction|transitions)/) || keys[0] === 'palette' && !!keys[1]?.match(/(mode|contrastThreshold|tonalOffset)/)
30
30
  });
31
31
  export { useColorScheme, getInitColorSchemeScript, Experimental_CssVarsProvider };
@@ -3,7 +3,7 @@ import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWith
3
3
  const _excluded = ["colorSchemes"],
4
4
  _excluded2 = ["palette"];
5
5
  import { deepmerge } from '@mui/utils';
6
- import { colorChannel } from '@mui/system';
6
+ import { colorChannel, alpha, darken, lighten, emphasize } from '@mui/system';
7
7
  import createThemeWithoutVars from './createTheme';
8
8
  import { getOverlayAlpha } from '../Paper/Paper';
9
9
  const defaultDarkOverlays = [...Array(25)].map((_, index) => {
@@ -14,6 +14,19 @@ const defaultDarkOverlays = [...Array(25)].map((_, index) => {
14
14
  const overlay = getOverlayAlpha(index);
15
15
  return `linear-gradient(rgba(255 255 255 / ${overlay}), rgba(255 255 255 / ${overlay}))`;
16
16
  });
17
+
18
+ function assignNode(obj, keys) {
19
+ keys.forEach(k => {
20
+ if (!obj[k]) {
21
+ obj[k] = {};
22
+ }
23
+ });
24
+ }
25
+
26
+ function setColor(obj, key, defaultValue) {
27
+ obj[key] = obj[key] || defaultValue;
28
+ }
29
+
17
30
  export default function extendTheme(options = {}, ...args) {
18
31
  const {
19
32
  colorSchemes: colorSchemesInput = {}
@@ -41,16 +54,20 @@ export default function extendTheme(options = {}, ...args) {
41
54
  light: _extends({}, colorSchemesInput.light, {
42
55
  palette: lightPalette,
43
56
  opacity: _extends({
44
- placeholder: 0.42,
45
- inputTouchBottomLine: 0.42
57
+ inputPlaceholder: 0.42,
58
+ inputUnderline: 0.42,
59
+ switchTrackDisabled: 0.12,
60
+ switchTrack: 0.38
46
61
  }, colorSchemesInput.light?.opacity),
47
62
  overlays: colorSchemesInput.light?.overlays || []
48
63
  }),
49
64
  dark: _extends({}, colorSchemesInput.dark, {
50
65
  palette: darkPalette,
51
66
  opacity: _extends({
52
- placeholder: 0.5,
53
- inputTouchBottomLine: 0.7
67
+ inputPlaceholder: 0.5,
68
+ inputUnderline: 0.7,
69
+ switchTrackDisabled: 0.2,
70
+ switchTrack: 0.3
54
71
  }, colorSchemesInput.dark?.opacity),
55
72
  overlays: colorSchemesInput.dark?.overlays || defaultDarkOverlays
56
73
  })
@@ -60,23 +77,138 @@ export default function extendTheme(options = {}, ...args) {
60
77
  Object.keys(theme.colorSchemes).forEach(key => {
61
78
  const palette = theme.colorSchemes[key].palette; // attach black & white channels to common node
62
79
 
63
- if (key === 'dark') {
64
- palette.common.background = palette.common.background || '#000';
65
- palette.common.onBackground = palette.common.onBackground || '#fff';
80
+ if (key === 'light') {
81
+ setColor(palette.common, 'background', '#fff');
82
+ setColor(palette.common, 'onBackground', '#000');
83
+ } else {
84
+ setColor(palette.common, 'background', '#000');
85
+ setColor(palette.common, 'onBackground', '#fff');
86
+ } // assign component variables
87
+
88
+
89
+ assignNode(palette, ['Alert', 'AppBar', 'Avatar', 'Chip', 'FilledInput', 'LinearProgress', 'Skeleton', 'Slider', 'SnackbarContent', 'SpeedDialAction', 'StepConnector', 'StepContent', 'Switch', 'TableCell', 'Tooltip']);
90
+
91
+ if (key === 'light') {
92
+ setColor(palette.Alert, 'errorColor', darken(palette.error.light, 0.6));
93
+ setColor(palette.Alert, 'infoColor', darken(palette.info.light, 0.6));
94
+ setColor(palette.Alert, 'successColor', darken(palette.success.light, 0.6));
95
+ setColor(palette.Alert, 'warningColor', darken(palette.warning.light, 0.6));
96
+ setColor(palette.Alert, 'errorFilledBg', 'var(--mui-palette-error-main)');
97
+ setColor(palette.Alert, 'infoFilledBg', 'var(--mui-palette-info-main)');
98
+ setColor(palette.Alert, 'successFilledBg', 'var(--mui-palette-success-main)');
99
+ setColor(palette.Alert, 'warningFilledBg', 'var(--mui-palette-warning-main)');
100
+ setColor(palette.Alert, 'errorFilledColor', lightPalette.getContrastText(palette.error.main));
101
+ setColor(palette.Alert, 'infoFilledColor', lightPalette.getContrastText(palette.info.main));
102
+ setColor(palette.Alert, 'successFilledColor', lightPalette.getContrastText(palette.success.main));
103
+ setColor(palette.Alert, 'warningFilledColor', lightPalette.getContrastText(palette.warning.main));
104
+ setColor(palette.Alert, 'errorStandardBg', lighten(palette.error.light, 0.9));
105
+ setColor(palette.Alert, 'infoStandardBg', lighten(palette.info.light, 0.9));
106
+ setColor(palette.Alert, 'successStandardBg', lighten(palette.success.light, 0.9));
107
+ setColor(palette.Alert, 'warningStandardBg', lighten(palette.warning.light, 0.9));
108
+ setColor(palette.Alert, 'errorIconColor', 'var(--mui-palette-error-light)');
109
+ setColor(palette.Alert, 'infoIconColor', 'var(--mui-palette-info-light)');
110
+ setColor(palette.Alert, 'successIconColor', 'var(--mui-palette-success-light)');
111
+ setColor(palette.Alert, 'warningIconColor', 'var(--mui-palette-warning-light)');
112
+ setColor(palette.AppBar, 'defaultBg', 'var(--mui-palette-grey-100)');
113
+ setColor(palette.Avatar, 'defaultBg', 'var(--mui-palette-grey-400)');
114
+ setColor(palette.Chip, 'defaultBorder', 'var(--mui-palette-grey-400)');
115
+ setColor(palette.Chip, 'defaultAvatarColor', 'var(--mui-palette-grey-700)');
116
+ setColor(palette.Chip, 'defaultIconColor', 'var(--mui-palette-grey-700)');
117
+ setColor(palette.FilledInput, 'bg', 'rgba(0, 0, 0, 0.06)');
118
+ setColor(palette.FilledInput, 'hoverBg', 'rgba(0, 0, 0, 0.09)');
119
+ setColor(palette.FilledInput, 'disabledBg', 'rgba(0, 0, 0, 0.12)');
120
+ setColor(palette.LinearProgress, 'primaryBg', lighten(palette.primary.main, 0.62));
121
+ setColor(palette.LinearProgress, 'secondaryBg', lighten(palette.secondary.main, 0.62));
122
+ setColor(palette.LinearProgress, 'errorBg', lighten(palette.error.main, 0.62));
123
+ setColor(palette.LinearProgress, 'infoBg', lighten(palette.info.main, 0.62));
124
+ setColor(palette.LinearProgress, 'successBg', lighten(palette.success.main, 0.62));
125
+ setColor(palette.LinearProgress, 'warningBg', lighten(palette.warning.main, 0.62));
126
+ setColor(palette.Skeleton, 'bg', 'rgba(var(--mui-palette-text-primaryChannel) / 0.11)');
127
+ setColor(palette.Slider, 'primaryTrack', lighten(palette.primary.main, 0.62));
128
+ setColor(palette.Slider, 'secondaryTrack', lighten(palette.secondary.main, 0.62));
129
+ setColor(palette.Slider, 'errorTrack', lighten(palette.error.main, 0.62));
130
+ setColor(palette.Slider, 'infoTrack', lighten(palette.info.main, 0.62));
131
+ setColor(palette.Slider, 'successTrack', lighten(palette.success.main, 0.62));
132
+ setColor(palette.Slider, 'warningTrack', lighten(palette.warning.main, 0.62));
133
+ setColor(palette.SnackbarContent, 'bg', emphasize(palette.background.default, 0.8));
134
+ setColor(palette.SpeedDialAction, 'fabHoverBg', emphasize(palette.background.paper, 0.15));
135
+ setColor(palette.StepConnector, 'border', 'var(--mui-palette-grey-400)');
136
+ setColor(palette.StepContent, 'border', 'var(--mui-palette-grey-400)');
137
+ setColor(palette.Switch, 'defaultColor', 'var(--mui-palette-common-white)');
138
+ setColor(palette.Switch, 'defaultDisabledColor', 'var(--mui-palette-grey-100)');
139
+ setColor(palette.Switch, 'primaryDisabledColor', lighten(palette.primary.main, 0.62));
140
+ setColor(palette.Switch, 'secondaryDisabledColor', lighten(palette.secondary.main, 0.62));
141
+ setColor(palette.Switch, 'errorDisabledColor', lighten(palette.error.main, 0.62));
142
+ setColor(palette.Switch, 'infoDisabledColor', lighten(palette.info.main, 0.62));
143
+ setColor(palette.Switch, 'successDisabledColor', lighten(palette.success.main, 0.62));
144
+ setColor(palette.Switch, 'warningDisabledColor', lighten(palette.warning.main, 0.62));
145
+ setColor(palette.TableCell, 'border', lighten(alpha(palette.divider, 1), 0.88));
146
+ setColor(palette.Tooltip, 'bg', alpha(palette.grey[700], 0.92));
66
147
  } else {
67
- palette.common.background = palette.common.background || '#fff';
68
- palette.common.onBackground = palette.common.onBackground || '#000';
148
+ setColor(palette.Alert, 'errorColor', lighten(palette.error.light, 0.6));
149
+ setColor(palette.Alert, 'infoColor', lighten(palette.info.light, 0.6));
150
+ setColor(palette.Alert, 'successColor', lighten(palette.success.light, 0.6));
151
+ setColor(palette.Alert, 'warningColor', lighten(palette.warning.light, 0.6));
152
+ setColor(palette.Alert, 'errorFilledBg', 'var(--mui-palette-error-dark)');
153
+ setColor(palette.Alert, 'infoFilledBg', 'var(--mui-palette-info-dark)');
154
+ setColor(palette.Alert, 'successFilledBg', 'var(--mui-palette-success-dark)');
155
+ setColor(palette.Alert, 'warningFilledBg', 'var(--mui-palette-warning-dark)');
156
+ setColor(palette.Alert, 'errorFilledColor', darkPalette.getContrastText(palette.error.dark));
157
+ setColor(palette.Alert, 'infoFilledColor', darkPalette.getContrastText(palette.info.dark));
158
+ setColor(palette.Alert, 'successFilledColor', darkPalette.getContrastText(palette.success.dark));
159
+ setColor(palette.Alert, 'warningFilledColor', darkPalette.getContrastText(palette.warning.dark));
160
+ setColor(palette.Alert, 'errorStandardBg', darken(palette.error.light, 0.9));
161
+ setColor(palette.Alert, 'infoStandardBg', darken(palette.info.light, 0.9));
162
+ setColor(palette.Alert, 'successStandardBg', darken(palette.success.light, 0.9));
163
+ setColor(palette.Alert, 'warningStandardBg', darken(palette.warning.light, 0.9));
164
+ setColor(palette.Alert, 'errorIconColor', 'var(--mui-palette-error-main)');
165
+ setColor(palette.Alert, 'infoIconColor', 'var(--mui-palette-info-main)');
166
+ setColor(palette.Alert, 'successIconColor', 'var(--mui-palette-success-main)');
167
+ setColor(palette.Alert, 'warningIconColor', 'var(--mui-palette-warning-main)');
168
+ setColor(palette.AppBar, 'defaultBg', 'var(--mui-palette-grey-900)');
169
+ setColor(palette.AppBar, 'darkBg', 'var(--mui-palette-background-paper)'); // specific for dark mode
170
+
171
+ setColor(palette.AppBar, 'darkColor', 'var(--mui-palette-text-primary)'); // specific for dark mode
172
+
173
+ setColor(palette.Avatar, 'defaultBg', 'var(--mui-palette-grey-600)');
174
+ setColor(palette.Chip, 'defaultBorder', 'var(--mui-palette-grey-700)');
175
+ setColor(palette.Chip, 'defaultAvatarColor', 'var(--mui-palette-grey-300)');
176
+ setColor(palette.Chip, 'defaultIconColor', 'var(--mui-palette-grey-300)');
177
+ setColor(palette.FilledInput, 'bg', 'rgba(255, 255, 255, 0.09)');
178
+ setColor(palette.FilledInput, 'hoverBg', 'rgba(255, 255, 255, 0.13)');
179
+ setColor(palette.FilledInput, 'disabledBg', 'rgba(255, 255, 255, 0.12)');
180
+ setColor(palette.LinearProgress, 'primaryBg', darken(palette.primary.main, 0.5));
181
+ setColor(palette.LinearProgress, 'secondaryBg', darken(palette.secondary.main, 0.5));
182
+ setColor(palette.LinearProgress, 'errorBg', darken(palette.error.main, 0.5));
183
+ setColor(palette.LinearProgress, 'infoBg', darken(palette.info.main, 0.5));
184
+ setColor(palette.LinearProgress, 'successBg', darken(palette.success.main, 0.5));
185
+ setColor(palette.LinearProgress, 'warningBg', darken(palette.warning.main, 0.5));
186
+ setColor(palette.Skeleton, 'bg', 'rgba(var(--mui-palette-text-primaryChannel) / 0.13)');
187
+ setColor(palette.Slider, 'primaryTrack', darken(palette.primary.main, 0.5));
188
+ setColor(palette.Slider, 'secondaryTrack', darken(palette.secondary.main, 0.5));
189
+ setColor(palette.Slider, 'errorTrack', darken(palette.error.main, 0.5));
190
+ setColor(palette.Slider, 'infoTrack', darken(palette.info.main, 0.5));
191
+ setColor(palette.Slider, 'successTrack', darken(palette.success.main, 0.5));
192
+ setColor(palette.Slider, 'warningTrack', darken(palette.warning.main, 0.5));
193
+ setColor(palette.SnackbarContent, 'bg', emphasize(palette.background.default, 0.98));
194
+ setColor(palette.SpeedDialAction, 'fabHoverBg', emphasize(palette.background.paper, 0.15));
195
+ setColor(palette.StepConnector, 'border', 'var(--mui-palette-grey-600)');
196
+ setColor(palette.StepContent, 'border', 'var(--mui-palette-grey-600)');
197
+ setColor(palette.Switch, 'defaultColor', 'var(--mui-palette-grey-300)');
198
+ setColor(palette.Switch, 'defaultDisabledColor', 'var(--mui-palette-grey-600)');
199
+ setColor(palette.Switch, 'primaryDisabledColor', darken(palette.primary.main, 0.55));
200
+ setColor(palette.Switch, 'secondaryDisabledColor', darken(palette.secondary.main, 0.55));
201
+ setColor(palette.Switch, 'errorDisabledColor', darken(palette.error.main, 0.55));
202
+ setColor(palette.Switch, 'infoDisabledColor', darken(palette.info.main, 0.55));
203
+ setColor(palette.Switch, 'successDisabledColor', darken(palette.success.main, 0.55));
204
+ setColor(palette.Switch, 'warningDisabledColor', darken(palette.warning.main, 0.55));
205
+ setColor(palette.TableCell, 'border', darken(alpha(palette.divider, 1), 0.68));
206
+ setColor(palette.Tooltip, 'bg', alpha(palette.grey[700], 0.92));
69
207
  }
70
208
 
71
209
  palette.common.backgroundChannel = colorChannel(palette.common.background);
72
210
  palette.common.onBackgroundChannel = colorChannel(palette.common.onBackground);
73
- palette.dividerChannel = colorChannel(palette.divider); // special token for Tooltip
74
- // TODO: consider adding `main`, and `light` to palette.grey to make it consistent.
75
-
76
- if (!palette.grey.dark) {
77
- palette.grey.dark = palette.grey[700];
78
- }
79
-
211
+ palette.dividerChannel = colorChannel(palette.divider);
80
212
  Object.keys(palette).forEach(color => {
81
213
  const colors = palette[color]; // Color palettes: primary, secondary, error, info, success, and warning
82
214
 
@@ -103,12 +235,16 @@ export default function extendTheme(options = {}, ...args) {
103
235
 
104
236
  if (colors.secondary) {
105
237
  palette[color].secondaryChannel = colorChannel(colors.secondary);
106
- } // Action colors: action.activeChannel
238
+ } // Action colors: action.active, action.selected
107
239
 
108
240
 
109
241
  if (colors.active) {
110
242
  palette[color].activeChannel = colorChannel(colors.active);
111
243
  }
244
+
245
+ if (colors.selected) {
246
+ palette[color].selectedChannel = colorChannel(colors.selected);
247
+ }
112
248
  });
113
249
  });
114
250
  theme = args.reduce((acc, argument) => deepmerge(acc, argument), theme);
@@ -90,22 +90,30 @@ const AlertRoot = (0, _styled.default)(_Paper.default, {
90
90
  display: 'flex',
91
91
  padding: '6px 16px'
92
92
  }, color && ownerState.variant === 'standard' && {
93
- color: getColor(theme.palette[color].light, 0.6),
94
- backgroundColor: getBackgroundColor(theme.palette[color].light, 0.9),
95
- [`& .${_alertClasses.default.icon}`]: {
93
+ color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),
94
+ backgroundColor: theme.vars ? theme.vars.palette.Alert[`${color}StandardBg`] : getBackgroundColor(theme.palette[color].light, 0.9),
95
+ [`& .${_alertClasses.default.icon}`]: theme.vars ? {
96
+ color: theme.vars.palette.Alert[`${color}IconColor`]
97
+ } : {
96
98
  color: theme.palette.mode === 'dark' ? theme.palette[color].main : theme.palette[color].light
97
99
  }
98
100
  }, color && ownerState.variant === 'outlined' && {
99
- color: getColor(theme.palette[color].light, 0.6),
100
- border: `1px solid ${theme.palette[color].light}`,
101
- [`& .${_alertClasses.default.icon}`]: {
101
+ color: theme.vars ? theme.vars.palette.Alert[`${color}Color`] : getColor(theme.palette[color].light, 0.6),
102
+ border: `1px solid ${(theme.vars || theme).palette[color].light}`,
103
+ [`& .${_alertClasses.default.icon}`]: theme.vars ? {
104
+ color: theme.vars.palette.Alert[`${color}IconColor`]
105
+ } : {
102
106
  color: theme.palette.mode === 'dark' ? theme.palette[color].main : theme.palette[color].light
103
107
  }
104
- }, color && ownerState.variant === 'filled' && {
105
- color: '#fff',
106
- fontWeight: theme.typography.fontWeightMedium,
107
- backgroundColor: theme.palette.mode === 'dark' ? theme.palette[color].dark : theme.palette[color].main
108
- });
108
+ }, color && ownerState.variant === 'filled' && (0, _extends2.default)({
109
+ fontWeight: theme.typography.fontWeightMedium
110
+ }, theme.vars ? {
111
+ color: theme.vars.palette.Alert[`${color}FilledColor`],
112
+ backgroundColor: theme.vars.palette.Alert[`${color}FilledBg`]
113
+ } : {
114
+ backgroundColor: theme.palette.mode === 'dark' ? theme.palette[color].dark : theme.palette[color].main,
115
+ color: theme.palette.getContrastText(theme.palette.mode === 'dark' ? theme.palette[color].dark : theme.palette[color].main)
116
+ }));
109
117
  });
110
118
  const AlertIcon = (0, _styled.default)('div', {
111
119
  name: 'MuiAlert',
@@ -47,7 +47,11 @@ const useUtilityClasses = ownerState => {
47
47
  root: ['root', `color${(0, _capitalize.default)(color)}`, `position${(0, _capitalize.default)(position)}`]
48
48
  };
49
49
  return (0, _base.unstable_composeClasses)(slots, _appBarClasses.getAppBarUtilityClass, classes);
50
- };
50
+ }; // var2 is the fallback.
51
+ // Ex. var1: 'var(--a)', var2: 'var(--b)'; return: 'var(--a, var(--b))'
52
+
53
+
54
+ const joinVars = (var1, var2) => `${var1 == null ? void 0 : var1.replace(')', '')}, ${var2})`;
51
55
 
52
56
  const AppBarRoot = (0, _styled.default)(_Paper.default, {
53
57
  name: 'MuiAppBar',
@@ -72,7 +76,7 @@ const AppBarRoot = (0, _styled.default)(_Paper.default, {
72
76
  flexShrink: 0
73
77
  }, ownerState.position === 'fixed' && {
74
78
  position: 'fixed',
75
- zIndex: theme.zIndex.appBar,
79
+ zIndex: (theme.vars || theme).zIndex.appBar,
76
80
  top: 0,
77
81
  left: 'auto',
78
82
  right: 0,
@@ -82,14 +86,14 @@ const AppBarRoot = (0, _styled.default)(_Paper.default, {
82
86
  }
83
87
  }, ownerState.position === 'absolute' && {
84
88
  position: 'absolute',
85
- zIndex: theme.zIndex.appBar,
89
+ zIndex: (theme.vars || theme).zIndex.appBar,
86
90
  top: 0,
87
91
  left: 'auto',
88
92
  right: 0
89
93
  }, ownerState.position === 'sticky' && {
90
94
  // ⚠️ sticky is not supported by IE11.
91
95
  position: 'sticky',
92
- zIndex: theme.zIndex.appBar,
96
+ zIndex: (theme.vars || theme).zIndex.appBar,
93
97
  top: 0,
94
98
  left: 'auto',
95
99
  right: 0
@@ -97,7 +101,7 @@ const AppBarRoot = (0, _styled.default)(_Paper.default, {
97
101
  position: 'static'
98
102
  }, ownerState.position === 'relative' && {
99
103
  position: 'relative'
100
- }, ownerState.color === 'default' && {
104
+ }, !theme.vars && (0, _extends2.default)({}, ownerState.color === 'default' && {
101
105
  backgroundColor: backgroundColorDefault,
102
106
  color: theme.palette.getContrastText(backgroundColorDefault)
103
107
  }, ownerState.color && ownerState.color !== 'default' && ownerState.color !== 'inherit' && ownerState.color !== 'transparent' && {
@@ -113,6 +117,19 @@ const AppBarRoot = (0, _styled.default)(_Paper.default, {
113
117
  color: 'inherit'
114
118
  }, theme.palette.mode === 'dark' && {
115
119
  backgroundImage: 'none'
120
+ })), theme.vars && (0, _extends2.default)({}, ownerState.color === 'default' && {
121
+ '--AppBar-background': ownerState.enableColorOnDark ? theme.vars.palette.AppBar.defaultBg : joinVars(theme.vars.palette.AppBar.darkBg, theme.vars.palette.AppBar.defaultBg),
122
+ '--AppBar-color': ownerState.enableColorOnDark ? theme.vars.palette.text.primary : joinVars(theme.vars.palette.AppBar.darkColor, theme.vars.palette.text.primary)
123
+ }, ownerState.color && !ownerState.color.match(/^(default|inherit|transparent)$/) && {
124
+ '--AppBar-background': ownerState.enableColorOnDark ? theme.vars.palette[ownerState.color].main : joinVars(theme.vars.palette.AppBar.darkBg, theme.vars.palette[ownerState.color].main),
125
+ '--AppBar-color': ownerState.enableColorOnDark ? theme.vars.palette[ownerState.color].contrastText : joinVars(theme.vars.palette.AppBar.darkColor, theme.vars.palette[ownerState.color].contrastText)
126
+ }, {
127
+ backgroundColor: 'var(--AppBar-background)',
128
+ color: ownerState.color === 'inherit' ? 'inherit' : 'var(--AppBar-color)'
129
+ }, ownerState.color === 'transparent' && {
130
+ backgroundImage: 'none',
131
+ backgroundColor: 'transparent',
132
+ color: 'inherit'
116
133
  }));
117
134
  });
118
135
  const AppBar = /*#__PURE__*/React.forwardRef(function AppBar(inProps, ref) {
@@ -76,13 +76,16 @@ const AvatarRoot = (0, _styled.default)('div', {
76
76
  overflow: 'hidden',
77
77
  userSelect: 'none'
78
78
  }, ownerState.variant === 'rounded' && {
79
- borderRadius: theme.shape.borderRadius
79
+ borderRadius: (theme.vars || theme).shape.borderRadius
80
80
  }, ownerState.variant === 'square' && {
81
81
  borderRadius: 0
82
- }, ownerState.colorDefault && {
83
- color: theme.palette.background.default,
82
+ }, ownerState.colorDefault && (0, _extends2.default)({
83
+ color: (theme.vars || theme).palette.background.default
84
+ }, theme.vars ? {
85
+ backgroundColor: theme.vars.palette.Avatar.defaultBg
86
+ } : {
84
87
  backgroundColor: theme.palette.mode === 'light' ? theme.palette.grey[400] : theme.palette.grey[600]
85
- }));
88
+ })));
86
89
  const AvatarImg = (0, _styled.default)('img', {
87
90
  name: 'MuiAvatar',
88
91
  slot: 'Img',
@@ -347,8 +347,8 @@ process.env.NODE_ENV !== "production" ? Badge.propTypes
347
347
  * @default {}
348
348
  */
349
349
  componentsProps: _propTypes.default.shape({
350
- badge: _propTypes.default.object,
351
- root: _propTypes.default.object
350
+ badge: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
351
+ root: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
352
352
  }),
353
353
 
354
354
  /**
@@ -12,6 +12,6 @@ function getButtonUtilityClass(slot) {
12
12
  return (0, _base.generateUtilityClass)('MuiButton', slot);
13
13
  }
14
14
 
15
- const buttonClasses = (0, _base.generateUtilityClasses)('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);
15
+ const buttonClasses = (0, _base.generateUtilityClasses)('MuiButton', ['root', 'text', 'textInherit', 'textPrimary', 'textSecondary', 'textSuccess', 'textError', 'textInfo', 'textWarning', 'outlined', 'outlinedInherit', 'outlinedPrimary', 'outlinedSecondary', 'outlinedSuccess', 'outlinedError', 'outlinedInfo', 'outlinedWarning', 'contained', 'containedInherit', 'containedPrimary', 'containedSecondary', 'containedSuccess', 'containedError', 'containedInfo', 'containedWarning', 'disableElevation', 'focusVisible', 'disabled', 'colorInherit', 'textSizeSmall', 'textSizeMedium', 'textSizeLarge', 'outlinedSizeSmall', 'outlinedSizeMedium', 'outlinedSizeLarge', 'containedSizeSmall', 'containedSizeMedium', 'containedSizeLarge', 'sizeMedium', 'sizeSmall', 'sizeLarge', 'fullWidth', 'startIcon', 'endIcon', 'iconSizeSmall', 'iconSizeMedium', 'iconSizeLarge']);
16
16
  var _default = buttonClasses;
17
17
  exports.default = _default;