@mui/material 5.9.0 → 5.9.3

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 (231) hide show
  1. package/Accordion/accordionClasses.d.ts +18 -18
  2. package/AccordionActions/accordionActionsClasses.d.ts +10 -10
  3. package/AccordionDetails/accordionDetailsClasses.d.ts +8 -8
  4. package/AccordionSummary/accordionSummaryClasses.d.ts +22 -22
  5. package/Alert/alertClasses.d.ts +44 -44
  6. package/AlertTitle/alertTitleClasses.d.ts +8 -8
  7. package/AppBar/appBarClasses.d.ts +28 -28
  8. package/Autocomplete/autocompleteClasses.d.ts +54 -54
  9. package/Avatar/avatarClasses.d.ts +20 -20
  10. package/AvatarGroup/avatarGroupClasses.d.ts +10 -10
  11. package/Backdrop/backdropClasses.d.ts +10 -10
  12. package/Badge/Badge.js +1 -1
  13. package/Badge/badgeClasses.d.ts +56 -56
  14. package/BottomNavigation/BottomNavigation.js +0 -0
  15. package/BottomNavigation/bottomNavigationClasses.d.ts +8 -8
  16. package/BottomNavigationAction/bottomNavigationActionClasses.d.ts +14 -14
  17. package/Breadcrumbs/breadcrumbsClasses.d.ts +14 -14
  18. package/Button/Button.js +8 -3
  19. package/Button/buttonClasses.d.ts +100 -100
  20. package/ButtonBase/TouchRipple.js +2 -2
  21. package/ButtonBase/buttonBaseClasses.d.ts +12 -12
  22. package/ButtonBase/touchRippleClasses.d.ts +20 -20
  23. package/ButtonGroup/ButtonGroupContext.d.ts +18 -18
  24. package/ButtonGroup/buttonGroupClasses.d.ts +58 -58
  25. package/CHANGELOG.md +196 -6
  26. package/Card/cardClasses.d.ts +8 -8
  27. package/CardActionArea/cardActionAreaClasses.d.ts +12 -12
  28. package/CardActions/cardActionsClasses.d.ts +10 -10
  29. package/CardContent/cardContentClasses.d.ts +8 -8
  30. package/CardHeader/cardHeaderClasses.d.ts +18 -18
  31. package/CardMedia/cardMediaClasses.d.ts +12 -12
  32. package/Checkbox/checkboxClasses.d.ts +18 -18
  33. package/Chip/Chip.js +5 -7
  34. package/Chip/chipClasses.d.ts +88 -80
  35. package/Chip/chipClasses.js +1 -1
  36. package/CircularProgress/circularProgressClasses.d.ts +26 -26
  37. package/ClickAwayListener/index.d.ts +2 -2
  38. package/Collapse/collapseClasses.d.ts +18 -18
  39. package/Container/containerClasses.d.ts +6 -6
  40. package/Dialog/Dialog.js +2 -1
  41. package/Dialog/DialogContext.d.ts +6 -6
  42. package/Dialog/dialogClasses.d.ts +36 -36
  43. package/DialogActions/dialogActionsClasses.d.ts +10 -10
  44. package/DialogContent/dialogContentClasses.d.ts +10 -10
  45. package/DialogContentText/dialogContentTextClasses.d.ts +8 -8
  46. package/DialogTitle/dialogTitleClasses.d.ts +8 -8
  47. package/Divider/dividerClasses.d.ts +34 -34
  48. package/Drawer/drawerClasses.d.ts +30 -30
  49. package/Fab/fabClasses.d.ts +26 -26
  50. package/FilledInput/filledInputClasses.d.ts +40 -40
  51. package/FormControl/formControlClasses.d.ts +14 -14
  52. package/FormControlLabel/formControlLabelClasses.d.ts +20 -20
  53. package/FormGroup/formGroupClasses.d.ts +12 -12
  54. package/FormHelperText/FormHelperText.d.ts +7 -1
  55. package/FormHelperText/FormHelperText.js +3 -1
  56. package/FormHelperText/formHelperTextClasses.d.ts +22 -22
  57. package/FormLabel/formLabelClasses.d.ts +22 -22
  58. package/Grid/Grid.js +67 -4
  59. package/Grid/gridClasses.d.ts +48 -48
  60. package/Icon/iconClasses.d.ts +24 -24
  61. package/IconButton/iconButtonClasses.d.ts +26 -26
  62. package/ImageList/imageListClasses.d.ts +16 -16
  63. package/ImageListItem/ImageListItem.js +4 -4
  64. package/ImageListItem/imageListItemClasses.d.ts +18 -18
  65. package/ImageListItemBar/imageListItemBarClasses.d.ts +30 -30
  66. package/Input/inputClasses.d.ts +34 -34
  67. package/InputAdornment/inputAdornmentClasses.d.ts +24 -24
  68. package/InputBase/InputBase.js +3 -2
  69. package/InputBase/inputBaseClasses.d.ts +46 -44
  70. package/InputBase/inputBaseClasses.js +1 -1
  71. package/InputLabel/inputLabelClasses.d.ts +32 -32
  72. package/LinearProgress/linearProgressClasses.d.ts +42 -42
  73. package/Link/getTextDecoration.d.ts +15 -15
  74. package/Link/linkClasses.d.ts +18 -18
  75. package/List/listClasses.d.ts +14 -14
  76. package/ListItem/listItemClasses.d.ts +30 -30
  77. package/ListItemAvatar/listItemAvatarClasses.d.ts +10 -10
  78. package/ListItemButton/listItemButtonClasses.d.ts +22 -22
  79. package/ListItemIcon/listItemIconClasses.d.ts +10 -10
  80. package/ListItemSecondaryAction/listItemSecondaryActionClasses.d.ts +10 -10
  81. package/ListItemText/listItemTextClasses.d.ts +18 -18
  82. package/ListSubheader/listSubheaderClasses.d.ts +18 -18
  83. package/Menu/menuClasses.d.ts +12 -12
  84. package/MenuItem/menuItemClasses.d.ts +20 -20
  85. package/MobileStepper/mobileStepperClasses.d.ts +22 -22
  86. package/Modal/Modal.d.ts +2 -1
  87. package/Modal/Modal.js +2 -1
  88. package/NativeSelect/nativeSelectClasses.d.ts +32 -32
  89. package/OutlinedInput/outlinedInputClasses.d.ts +36 -36
  90. package/OverridableComponent.d.ts +4 -0
  91. package/Pagination/paginationClasses.d.ts +14 -14
  92. package/PaginationItem/paginationItemClasses.d.ts +42 -42
  93. package/Paper/paperClasses.d.ts +39 -39
  94. package/Popover/popoverClasses.d.ts +10 -10
  95. package/Popper/Popper.d.ts +24 -24
  96. package/Popper/Popper.js +24 -0
  97. package/README.md +5 -8
  98. package/Radio/radioClasses.d.ts +16 -16
  99. package/RadioGroup/RadioGroupContext.d.ts +11 -11
  100. package/RadioGroup/useRadioGroup.d.ts +4 -4
  101. package/Rating/ratingClasses.d.ts +40 -40
  102. package/ScopedCssBaseline/scopedCssBaselineClasses.d.ts +8 -8
  103. package/Select/SelectInput.js +1 -1
  104. package/Select/selectClasses.d.ts +30 -30
  105. package/Skeleton/skeletonClasses.d.ts +24 -24
  106. package/Slider/Slider.js +3 -2
  107. package/Snackbar/snackbarClasses.d.ts +20 -20
  108. package/SnackbarContent/snackbarContentClasses.d.ts +12 -12
  109. package/SpeedDial/speedDialClasses.d.ts +22 -22
  110. package/SpeedDialAction/speedDialActionClasses.d.ts +20 -20
  111. package/SpeedDialIcon/speedDialIconClasses.d.ts +18 -18
  112. package/Stack/Stack.js +15 -2
  113. package/Step/StepContext.d.ts +20 -20
  114. package/Step/stepClasses.d.ts +16 -16
  115. package/StepButton/stepButtonClasses.d.ts +14 -14
  116. package/StepConnector/stepConnectorClasses.d.ts +26 -26
  117. package/StepContent/stepContentClasses.d.ts +12 -12
  118. package/StepIcon/stepIconClasses.d.ts +16 -16
  119. package/StepLabel/stepLabelClasses.d.ts +28 -28
  120. package/Stepper/StepperContext.d.ts +18 -18
  121. package/Stepper/stepperClasses.d.ts +14 -14
  122. package/SvgIcon/svgIconClasses.d.ts +24 -24
  123. package/Switch/switchClasses.d.ts +32 -32
  124. package/Tab/tabClasses.d.ts +26 -26
  125. package/TabScrollButton/tabScrollButtonClasses.d.ts +12 -12
  126. package/Table/tableClasses.d.ts +10 -10
  127. package/TableBody/tableBodyClasses.d.ts +8 -8
  128. package/TableCell/tableCellClasses.d.ts +32 -32
  129. package/TableContainer/tableContainerClasses.d.ts +8 -8
  130. package/TableFooter/tableFooterClasses.d.ts +8 -8
  131. package/TableHead/tableHeadClasses.d.ts +8 -8
  132. package/TablePagination/tablePaginationClasses.d.ts +28 -28
  133. package/TableRow/tableRowClasses.d.ts +16 -16
  134. package/TableSortLabel/tableSortLabelClasses.d.ts +16 -16
  135. package/Tabs/Tabs.d.ts +7 -1
  136. package/Tabs/Tabs.js +3 -1
  137. package/Tabs/tabsClasses.d.ts +32 -32
  138. package/TextField/textFieldClasses.d.ts +8 -8
  139. package/ToggleButton/toggleButtonClasses.d.ts +24 -24
  140. package/ToggleButtonGroup/toggleButtonGroupClasses.d.ts +18 -18
  141. package/Toolbar/toolbarClasses.d.ts +14 -14
  142. package/Tooltip/Tooltip.js +5 -6
  143. package/Tooltip/tooltipClasses.d.ts +30 -30
  144. package/Typography/typographyClasses.d.ts +50 -50
  145. package/Unstable_Grid2/Grid2.d.ts +4 -4
  146. package/Unstable_Grid2/Grid2Props.d.ts +15 -15
  147. package/Unstable_Grid2/grid2Classes.d.ts +5 -5
  148. package/Unstable_Grid2/index.d.ts +4 -4
  149. package/className/index.d.ts +1 -1
  150. package/darkScrollbar/index.d.ts +28 -28
  151. package/index.js +1 -1
  152. package/internal/switchBaseClasses.d.ts +12 -12
  153. package/legacy/Badge/Badge.js +1 -1
  154. package/legacy/BottomNavigation/BottomNavigation.js +0 -0
  155. package/legacy/Button/Button.js +4 -2
  156. package/legacy/ButtonBase/TouchRipple.js +2 -2
  157. package/legacy/Chip/Chip.js +4 -6
  158. package/legacy/Chip/chipClasses.js +1 -1
  159. package/legacy/Dialog/Dialog.js +2 -1
  160. package/legacy/FormHelperText/FormHelperText.js +3 -1
  161. package/legacy/Grid/Grid.js +72 -12
  162. package/legacy/ImageListItem/ImageListItem.js +4 -4
  163. package/legacy/InputBase/InputBase.js +3 -2
  164. package/legacy/InputBase/inputBaseClasses.js +1 -1
  165. package/legacy/Modal/Modal.js +2 -1
  166. package/legacy/Popper/Popper.js +24 -0
  167. package/legacy/Select/SelectInput.js +1 -1
  168. package/legacy/Slider/Slider.js +3 -2
  169. package/legacy/Stack/Stack.js +15 -2
  170. package/legacy/Tabs/Tabs.js +3 -1
  171. package/legacy/Tooltip/Tooltip.js +5 -6
  172. package/legacy/index.js +1 -1
  173. package/legacy/styles/createTheme.js +5 -0
  174. package/locale/index.d.ts +71 -71
  175. package/modern/Badge/Badge.js +1 -1
  176. package/modern/BottomNavigation/BottomNavigation.js +0 -0
  177. package/modern/Button/Button.js +8 -3
  178. package/modern/ButtonBase/TouchRipple.js +2 -2
  179. package/modern/Chip/Chip.js +5 -7
  180. package/modern/Chip/chipClasses.js +1 -1
  181. package/modern/Dialog/Dialog.js +2 -1
  182. package/modern/FormHelperText/FormHelperText.js +3 -1
  183. package/modern/Grid/Grid.js +67 -4
  184. package/modern/ImageListItem/ImageListItem.js +4 -4
  185. package/modern/InputBase/InputBase.js +3 -2
  186. package/modern/InputBase/inputBaseClasses.js +1 -1
  187. package/modern/Modal/Modal.js +2 -1
  188. package/modern/Popper/Popper.js +24 -0
  189. package/modern/Select/SelectInput.js +1 -1
  190. package/modern/Slider/Slider.js +3 -2
  191. package/modern/Stack/Stack.js +15 -2
  192. package/modern/Tabs/Tabs.js +3 -1
  193. package/modern/Tooltip/Tooltip.js +5 -6
  194. package/modern/index.js +1 -1
  195. package/modern/styles/createTheme.js +6 -0
  196. package/node/Badge/Badge.js +1 -1
  197. package/node/BottomNavigation/BottomNavigation.js +0 -0
  198. package/node/Button/Button.js +10 -3
  199. package/node/ButtonBase/TouchRipple.js +2 -2
  200. package/node/Chip/Chip.js +5 -7
  201. package/node/Chip/chipClasses.js +1 -1
  202. package/node/Dialog/Dialog.js +2 -1
  203. package/node/FormHelperText/FormHelperText.js +3 -1
  204. package/node/Grid/Grid.js +67 -4
  205. package/node/ImageListItem/ImageListItem.js +4 -4
  206. package/node/InputBase/InputBase.js +3 -2
  207. package/node/InputBase/inputBaseClasses.js +1 -1
  208. package/node/Modal/Modal.js +2 -1
  209. package/node/Popper/Popper.js +24 -0
  210. package/node/Select/SelectInput.js +1 -1
  211. package/node/Slider/Slider.js +3 -2
  212. package/node/Stack/Stack.js +14 -1
  213. package/node/Tabs/Tabs.js +3 -1
  214. package/node/Tooltip/Tooltip.js +5 -6
  215. package/node/index.js +1 -1
  216. package/node/styles/createTheme.js +6 -0
  217. package/package.json +6 -6
  218. package/styles/CssVarsProvider.d.ts +14 -14
  219. package/styles/createTheme.js +6 -0
  220. package/transitions/index.d.ts +1 -1
  221. package/transitions/transition.d.ts +13 -13
  222. package/transitions/utils.d.ts +23 -23
  223. package/umd/material-ui.development.js +279 -71
  224. package/umd/material-ui.production.min.js +20 -20
  225. package/useMediaQuery/useMediaQuery.d.ts +31 -31
  226. package/useTouchRipple/index.d.ts +1 -1
  227. package/useTouchRipple/useTouchRipple.d.ts +28 -28
  228. package/utils/getScrollbarSize.d.ts +2 -2
  229. package/utils/ownerDocument.d.ts +2 -2
  230. package/utils/ownerWindow.d.ts +2 -2
  231. package/utils/setRef.d.ts +2 -2
@@ -181,6 +181,8 @@ process.env.NODE_ENV !== "production" ? FormHelperText.propTypes
181
181
  /**
182
182
  * The variant to use.
183
183
  */
184
- variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])
184
+ variant: PropTypes
185
+ /* @typescript-to-proptypes-ignore */
186
+ .oneOfType([PropTypes.oneOf(['filled', 'outlined', 'standard']), PropTypes.string])
185
187
  } : void 0;
186
188
  export default FormHelperText;
@@ -131,6 +131,32 @@ export function generateDirection({
131
131
  return output;
132
132
  });
133
133
  }
134
+ /**
135
+ * Extracts zero value breakpoint keys before a non-zero value breakpoint key.
136
+ * @example { xs: 0, sm: 0, md: 2, lg: 0, xl: 0 } or [0, 0, 2, 0, 0]
137
+ * @returns [xs, sm]
138
+ */
139
+
140
+ function extractZeroValueBreakpointKeys({
141
+ breakpoints,
142
+ values
143
+ }) {
144
+ let nonZeroKey = '';
145
+ Object.keys(values).forEach(key => {
146
+ if (nonZeroKey !== '') {
147
+ return;
148
+ }
149
+
150
+ if (values[key] !== 0) {
151
+ nonZeroKey = key;
152
+ }
153
+ });
154
+ const sortedBreakpointKeysByValue = Object.keys(breakpoints).sort((a, b) => {
155
+ return breakpoints[a] - breakpoints[b];
156
+ });
157
+ return sortedBreakpointKeysByValue.slice(0, sortedBreakpointKeysByValue.indexOf(nonZeroKey));
158
+ }
159
+
134
160
  export function generateRowGap({
135
161
  theme,
136
162
  ownerState
@@ -146,9 +172,18 @@ export function generateRowGap({
146
172
  values: rowSpacing,
147
173
  breakpoints: theme.breakpoints.values
148
174
  });
175
+ let zeroValueBreakpointKeys;
176
+
177
+ if (typeof rowSpacingValues === 'object') {
178
+ zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({
179
+ breakpoints: theme.breakpoints.values,
180
+ values: rowSpacingValues
181
+ });
182
+ }
183
+
149
184
  styles = handleBreakpoints({
150
185
  theme
151
- }, rowSpacingValues, propValue => {
186
+ }, rowSpacingValues, (propValue, breakpoint) => {
152
187
  const themeSpacing = theme.spacing(propValue);
153
188
 
154
189
  if (themeSpacing !== '0px') {
@@ -160,7 +195,16 @@ export function generateRowGap({
160
195
  };
161
196
  }
162
197
 
163
- return {};
198
+ if (zeroValueBreakpointKeys.includes(breakpoint)) {
199
+ return {};
200
+ }
201
+
202
+ return {
203
+ marginTop: 0,
204
+ [`& > .${gridClasses.item}`]: {
205
+ paddingTop: 0
206
+ }
207
+ };
164
208
  });
165
209
  }
166
210
 
@@ -181,9 +225,18 @@ export function generateColumnGap({
181
225
  values: columnSpacing,
182
226
  breakpoints: theme.breakpoints.values
183
227
  });
228
+ let zeroValueBreakpointKeys;
229
+
230
+ if (typeof columnSpacingValues === 'object') {
231
+ zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({
232
+ breakpoints: theme.breakpoints.values,
233
+ values: columnSpacingValues
234
+ });
235
+ }
236
+
184
237
  styles = handleBreakpoints({
185
238
  theme
186
- }, columnSpacingValues, propValue => {
239
+ }, columnSpacingValues, (propValue, breakpoint) => {
187
240
  const themeSpacing = theme.spacing(propValue);
188
241
 
189
242
  if (themeSpacing !== '0px') {
@@ -196,7 +249,17 @@ export function generateColumnGap({
196
249
  };
197
250
  }
198
251
 
199
- return {};
252
+ if (zeroValueBreakpointKeys.includes(breakpoint)) {
253
+ return {};
254
+ }
255
+
256
+ return {
257
+ width: '100%',
258
+ marginLeft: 0,
259
+ [`& > .${gridClasses.item}`]: {
260
+ paddingLeft: 0
261
+ }
262
+ };
200
263
  });
201
264
  }
202
265
 
@@ -40,9 +40,8 @@ const ImageListItemRoot = styled('li', {
40
40
  })(({
41
41
  ownerState
42
42
  }) => _extends({
43
- display: 'inline-block',
44
- position: 'relative',
45
- lineHeight: 0
43
+ display: 'block',
44
+ position: 'relative'
46
45
  }, ownerState.variant === 'standard' && {
47
46
  // For titlebar under list item
48
47
  display: 'flex',
@@ -57,7 +56,8 @@ const ImageListItemRoot = styled('li', {
57
56
  [`& .${imageListItemClasses.img}`]: _extends({
58
57
  objectFit: 'cover',
59
58
  width: '100%',
60
- height: '100%'
59
+ height: '100%',
60
+ display: 'block'
61
61
  }, ownerState.variant === 'standard' && {
62
62
  height: 'auto',
63
63
  flexGrow: 1
@@ -45,13 +45,14 @@ const useUtilityClasses = ownerState => {
45
45
  fullWidth,
46
46
  hiddenLabel,
47
47
  multiline,
48
+ readOnly,
48
49
  size,
49
50
  startAdornment,
50
51
  type
51
52
  } = ownerState;
52
53
  const slots = {
53
- root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', focused && 'focused', formControl && 'formControl', size === 'small' && 'sizeSmall', multiline && 'multiline', startAdornment && 'adornedStart', endAdornment && 'adornedEnd', hiddenLabel && 'hiddenLabel'],
54
- input: ['input', disabled && 'disabled', type === 'search' && 'inputTypeSearch', multiline && 'inputMultiline', size === 'small' && 'inputSizeSmall', hiddenLabel && 'inputHiddenLabel', startAdornment && 'inputAdornedStart', endAdornment && 'inputAdornedEnd']
54
+ root: ['root', `color${capitalize(color)}`, disabled && 'disabled', error && 'error', fullWidth && 'fullWidth', focused && 'focused', formControl && 'formControl', size === 'small' && 'sizeSmall', multiline && 'multiline', startAdornment && 'adornedStart', endAdornment && 'adornedEnd', hiddenLabel && 'hiddenLabel', readOnly && 'readOnly'],
55
+ input: ['input', disabled && 'disabled', type === 'search' && 'inputTypeSearch', multiline && 'inputMultiline', size === 'small' && 'inputSizeSmall', hiddenLabel && 'inputHiddenLabel', startAdornment && 'inputAdornedStart', endAdornment && 'inputAdornedEnd', readOnly && 'readOnly']
55
56
  };
56
57
  return composeClasses(slots, getInputBaseUtilityClass, classes);
57
58
  };
@@ -2,5 +2,5 @@ import { generateUtilityClass, generateUtilityClasses } from '@mui/base';
2
2
  export function getInputBaseUtilityClass(slot) {
3
3
  return generateUtilityClass('MuiInputBase', slot);
4
4
  }
5
- const inputBaseClasses = generateUtilityClasses('MuiInputBase', ['root', 'formControl', 'focused', 'disabled', 'adornedStart', 'adornedEnd', 'error', 'sizeSmall', 'multiline', 'colorSecondary', 'fullWidth', 'hiddenLabel', 'input', 'inputSizeSmall', 'inputMultiline', 'inputTypeSearch', 'inputAdornedStart', 'inputAdornedEnd', 'inputHiddenLabel']);
5
+ const inputBaseClasses = generateUtilityClasses('MuiInputBase', ['root', 'formControl', 'focused', 'disabled', 'adornedStart', 'adornedEnd', 'error', 'sizeSmall', 'multiline', 'colorSecondary', 'fullWidth', 'hiddenLabel', 'readOnly', 'input', 'inputSizeSmall', 'inputMultiline', 'inputTypeSearch', 'inputAdornedStart', 'inputAdornedEnd', 'inputHiddenLabel']);
6
6
  export default inputBaseClasses;
@@ -138,7 +138,8 @@ process.env.NODE_ENV !== "production" ? Modal.propTypes
138
138
 
139
139
  /**
140
140
  * A backdrop component. This prop enables custom backdrop rendering.
141
- * @deprecated Use `components.Backdrop` instead.
141
+ * @deprecated Use `components.Backdrop` instead. While this prop currently works, it will be removed in the next major version.
142
+ * Use the `components.Backdrop` prop to make your application ready for the next version of Material UI.
142
143
  * @default styled(Backdrop, {
143
144
  * name: 'MuiModal',
144
145
  * slot: 'Backdrop',
@@ -61,6 +61,30 @@ process.env.NODE_ENV !== "production" ? Popper.propTypes
61
61
  /* @typescript-to-proptypes-ignore */
62
62
  .oneOfType([PropTypes.node, PropTypes.func]),
63
63
 
64
+ /**
65
+ * @ignore
66
+ */
67
+ component: PropTypes
68
+ /* @typescript-to-proptypes-ignore */
69
+ .elementType,
70
+
71
+ /**
72
+ * The components used for each slot inside the Popper.
73
+ * Either a string to use a HTML element or a component.
74
+ * @default {}
75
+ */
76
+ components: PropTypes.shape({
77
+ Root: PropTypes.elementType
78
+ }),
79
+
80
+ /**
81
+ * The props used for each slot inside the Popper.
82
+ * @default {}
83
+ */
84
+ componentsProps: PropTypes.shape({
85
+ root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
86
+ }),
87
+
64
88
  /**
65
89
  * An HTML element or function that returns one.
66
90
  * The `container` will have the portal children appended to it.
@@ -507,7 +507,7 @@ const SelectInput = /*#__PURE__*/React.forwardRef(function SelectInput(props, re
507
507
  onFocus: onFocus
508
508
  }, SelectDisplayProps, {
509
509
  ownerState: ownerState,
510
- className: clsx(classes.select, className, SelectDisplayProps.className) // The id is required for proper a11y
510
+ className: clsx(SelectDisplayProps.className, classes.select, className) // The id is required for proper a11y
511
511
  ,
512
512
  id: buttonId,
513
513
  children: isEmpty(display) ? // notranslate needed while Google Translate will not fix zero-width space issue
@@ -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
- transformOrigin: 'bottom center',
288
287
  transform: 'translateY(-100%) scale(0)',
289
288
  position: 'absolute',
290
289
  backgroundColor: (theme.vars || theme).palette.grey[600],
@@ -296,6 +295,7 @@ const SliderValueLabel = styled(SliderValueLabelUnstyled, {
296
295
  padding: '0.25rem 0.75rem'
297
296
  }, ownerState.orientation === 'horizontal' && {
298
297
  top: '-10px',
298
+ transformOrigin: 'bottom center',
299
299
  '&:before': {
300
300
  position: 'absolute',
301
301
  content: '""',
@@ -308,7 +308,8 @@ const SliderValueLabel = styled(SliderValueLabelUnstyled, {
308
308
  }
309
309
  }, ownerState.orientation === 'vertical' && {
310
310
  right: '30px',
311
- top: '25px',
311
+ top: '24px',
312
+ transformOrigin: 'right center',
312
313
  '&:before': {
313
314
  position: 'absolute',
314
315
  content: '""',
@@ -3,7 +3,7 @@ import _extends from "@babel/runtime/helpers/esm/extends";
3
3
  const _excluded = ["component", "direction", "spacing", "divider", "children"];
4
4
  import * as React from 'react';
5
5
  import PropTypes from 'prop-types';
6
- import { createUnarySpacing, getValue, handleBreakpoints, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';
6
+ import { createUnarySpacing, getValue, handleBreakpoints, mergeBreakpointsInOrder, unstable_extendSxProp as extendSxProp, unstable_resolveBreakpointValues as resolveBreakpointValues } from '@mui/system';
7
7
  import { deepmerge } from '@mui/utils';
8
8
  import styled from '../styles/styled';
9
9
  import useThemeProps from '../styles/useThemeProps';
@@ -46,7 +46,8 @@ export const style = ({
46
46
  theme
47
47
  }) => {
48
48
  let styles = _extends({
49
- display: 'flex'
49
+ display: 'flex',
50
+ flexDirection: 'column'
50
51
  }, handleBreakpoints({
51
52
  theme
52
53
  }, resolveBreakpointValues({
@@ -74,6 +75,17 @@ export const style = ({
74
75
  base
75
76
  });
76
77
 
78
+ if (typeof directionValues === 'object') {
79
+ Object.keys(directionValues).forEach((breakpoint, index, breakpoints) => {
80
+ const directionValue = directionValues[breakpoint];
81
+
82
+ if (!directionValue) {
83
+ const previousDirectionValue = index > 0 ? directionValues[breakpoints[index - 1]] : 'column';
84
+ directionValues[breakpoint] = previousDirectionValue;
85
+ }
86
+ });
87
+ }
88
+
77
89
  const styleFromPropValue = (propValue, breakpoint) => {
78
90
  return {
79
91
  '& > :not(style) + :not(style)': {
@@ -88,6 +100,7 @@ export const style = ({
88
100
  }, spacingValues, styleFromPropValue));
89
101
  }
90
102
 
103
+ styles = mergeBreakpointsInOrder(theme.breakpoints, styles);
91
104
  return styles;
92
105
  };
93
106
  const StackRoot = styled('div', {
@@ -775,7 +775,9 @@ process.env.NODE_ENV !== "production" ? Tabs.propTypes
775
775
  * Determines the color of the indicator.
776
776
  * @default 'primary'
777
777
  */
778
- indicatorColor: PropTypes.oneOf(['primary', 'secondary']),
778
+ indicatorColor: PropTypes
779
+ /* @typescript-to-proptypes-ignore */
780
+ .oneOfType([PropTypes.oneOf(['primary', 'secondary']), PropTypes.string]),
779
781
 
780
782
  /**
781
783
  * Callback fired when the value changes.
@@ -336,15 +336,12 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
336
336
  const handleEnter = event => {
337
337
  if (ignoreNonTouchEvents.current && event.type !== 'touchstart') {
338
338
  return;
339
- } // Workaround for https://github.com/facebook/react/issues/7769
340
-
341
-
342
- if (!childNode) {
343
- setChildNode(event.currentTarget);
344
339
  } // Remove the title ahead of time.
345
340
  // We don't want to wait for the next render commit.
346
341
  // We would risk displaying two tooltips at the same time (native + this one).
347
- else {
342
+
343
+
344
+ if (childNode) {
348
345
  childNode.removeAttribute('title');
349
346
  }
350
347
 
@@ -389,6 +386,8 @@ const Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {
389
386
 
390
387
  const handleFocus = event => {
391
388
  // Workaround for https://github.com/facebook/react/issues/7769
389
+ // The autoFocus of React might trigger the event before the componentDidMount.
390
+ // We need to account for this eventuality.
392
391
  if (!childNode) {
393
392
  setChildNode(event.currentTarget);
394
393
  }
package/modern/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MUI v5.9.0
1
+ /** @license MUI v5.9.3
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.
@@ -1,5 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
+ import { formatMuiErrorMessage as _formatMuiErrorMessage } from "@mui/utils";
3
4
  const _excluded = ["breakpoints", "mixins", "spacing", "palette", "transitions", "typography", "shape"];
4
5
  import { deepmerge } from '@mui/utils';
5
6
  import { generateUtilityClass } from '@mui/base';
@@ -20,6 +21,11 @@ function createTheme(options = {}, ...args) {
20
21
  } = options,
21
22
  other = _objectWithoutPropertiesLoose(options, _excluded);
22
23
 
24
+ if (options.vars) {
25
+ throw new Error(process.env.NODE_ENV !== "production" ? `MUI: \`vars\` is a private field used for CSS variables support.
26
+ Please use another name.` : _formatMuiErrorMessage(18));
27
+ }
28
+
23
29
  const palette = createPalette(paletteInput);
24
30
  const systemTheme = systemCreateTheme(options);
25
31
  let muiTheme = deepmerge(systemTheme, {
@@ -251,7 +251,7 @@ const Badge = /*#__PURE__*/React.forwardRef(function Badge(inProps, ref) {
251
251
  Root: BadgeRoot,
252
252
  Badge: BadgeBadge
253
253
  }, components),
254
- className: (0, _clsx.default)(className, classes.root, (_componentsProps$root = componentsProps.root) == null ? void 0 : _componentsProps$root.className),
254
+ className: (0, _clsx.default)((_componentsProps$root = componentsProps.root) == null ? void 0 : _componentsProps$root.className, classes.root, className),
255
255
  componentsProps: {
256
256
  root: (0, _extends2.default)({}, componentsProps.root, (0, _shouldSpreadAdditionalProps.default)(components.Root) && {
257
257
  as: component,
File without changes
@@ -37,7 +37,8 @@ var _ButtonGroupContext = _interopRequireDefault(require("../ButtonGroup/ButtonG
37
37
 
38
38
  var _jsxRuntime = require("react/jsx-runtime");
39
39
 
40
- const _excluded = ["children", "color", "component", "className", "disabled", "disableElevation", "disableFocusRipple", "endIcon", "focusVisibleClassName", "fullWidth", "size", "startIcon", "type", "variant"];
40
+ const _excluded = ["children", "color", "component", "className", "disabled", "disableElevation", "disableFocusRipple", "endIcon", "focusVisibleClassName", "fullWidth", "size", "startIcon", "type", "variant"],
41
+ _excluded2 = ["root"];
41
42
 
42
43
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
43
44
 
@@ -282,7 +283,13 @@ const Button = /*#__PURE__*/React.forwardRef(function Button(inProps, ref) {
282
283
  type,
283
284
  variant
284
285
  });
285
- const classes = useUtilityClasses(ownerState);
286
+
287
+ const _useUtilityClasses = useUtilityClasses(ownerState),
288
+ {
289
+ root: classesRoot
290
+ } = _useUtilityClasses,
291
+ classes = (0, _objectWithoutPropertiesLoose2.default)(_useUtilityClasses, _excluded2);
292
+
286
293
  const startIcon = startIconProp && /*#__PURE__*/(0, _jsxRuntime.jsx)(ButtonStartIcon, {
287
294
  className: classes.startIcon,
288
295
  ownerState: ownerState,
@@ -295,7 +302,7 @@ const Button = /*#__PURE__*/React.forwardRef(function Button(inProps, ref) {
295
302
  });
296
303
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(ButtonRoot, (0, _extends2.default)({
297
304
  ownerState: ownerState,
298
- className: (0, _clsx.default)(className, contextProps.className),
305
+ className: (0, _clsx.default)(contextProps.className, classesRoot, className),
299
306
  component: component,
300
307
  disabled: disabled,
301
308
  focusRipple: !disableFocusRipple,
@@ -247,7 +247,7 @@ const TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps,
247
247
  const {
248
248
  clientX,
249
249
  clientY
250
- } = event.touches ? event.touches[0] : event;
250
+ } = event.touches && event.touches.length > 0 ? event.touches[0] : event;
251
251
  rippleX = Math.round(clientX - rect.left);
252
252
  rippleY = Math.round(clientY - rect.top);
253
253
  }
@@ -333,7 +333,7 @@ const TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps,
333
333
  stop
334
334
  }), [pulsate, start, stop]);
335
335
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(TouchRippleRoot, (0, _extends2.default)({
336
- className: (0, _clsx.default)(classes.root, _touchRippleClasses.default.root, className),
336
+ className: (0, _clsx.default)(_touchRippleClasses.default.root, classes.root, className),
337
337
  ref: container
338
338
  }, other, {
339
339
  children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactTransitionGroup.TransitionGroup, {
package/node/Chip/Chip.js CHANGED
@@ -60,7 +60,7 @@ const useUtilityClasses = ownerState => {
60
60
  label: ['label', `label${(0, _capitalize.default)(size)}`],
61
61
  avatar: ['avatar', `avatar${(0, _capitalize.default)(size)}`, `avatarColor${(0, _capitalize.default)(color)}`],
62
62
  icon: ['icon', `icon${(0, _capitalize.default)(size)}`, `iconColor${(0, _capitalize.default)(color)}`],
63
- deleteIcon: ['deleteIcon', `deleteIcon${(0, _capitalize.default)(size)}`, `deleteIconColor${(0, _capitalize.default)(color)}`, `deleteIconOutlinedColor${(0, _capitalize.default)(color)}`]
63
+ deleteIcon: ['deleteIcon', `deleteIcon${(0, _capitalize.default)(size)}`, `deleteIconColor${(0, _capitalize.default)(color)}`, `deleteIcon${(0, _capitalize.default)(variant)}Color${(0, _capitalize.default)(color)}`]
64
64
  };
65
65
  return (0, _base.unstable_composeClasses)(slots, _chipClasses.getChipUtilityClass, classes);
66
66
  };
@@ -98,8 +98,8 @@ const ChipRoot = (0, _styled.default)('div', {
98
98
  }, {
99
99
  [`& .${_chipClasses.default.deleteIcon}`]: styles[`deleteIconColor${(0, _capitalize.default)(color)}`]
100
100
  }, {
101
- [`& .${_chipClasses.default.deleteIcon}`]: styles[`deleteIconOutlinedColor${(0, _capitalize.default)(color)}`]
102
- }, styles.root, styles[`size${(0, _capitalize.default)(size)}`], styles[`color${(0, _capitalize.default)(color)}`], clickable && styles.clickable, clickable && color !== 'default' && styles[`clickableColor${(0, _capitalize.default)(color)})`], onDelete && styles.deletable, onDelete && color !== 'default' && styles[`deletableColor${(0, _capitalize.default)(color)}`], styles[variant], variant === 'outlined' && styles[`outlined${(0, _capitalize.default)(color)}`]];
101
+ [`& .${_chipClasses.default.deleteIcon}`]: styles[`deleteIcon${(0, _capitalize.default)(variant)}Color${(0, _capitalize.default)(color)}`]
102
+ }, styles.root, styles[`size${(0, _capitalize.default)(size)}`], styles[`color${(0, _capitalize.default)(color)}`], clickable && styles.clickable, clickable && color !== 'default' && styles[`clickableColor${(0, _capitalize.default)(color)})`], onDelete && styles.deletable, onDelete && color !== 'default' && styles[`deletableColor${(0, _capitalize.default)(color)}`], styles[variant], styles[`${variant}${(0, _capitalize.default)(color)}`]];
103
103
  }
104
104
  })(({
105
105
  theme,
@@ -365,7 +365,6 @@ const Chip = /*#__PURE__*/React.forwardRef(function Chip(inProps, ref) {
365
365
  };
366
366
 
367
367
  const clickable = clickableProp !== false && onClick ? true : clickableProp;
368
- const small = size === 'small';
369
368
  const component = clickable || onDelete ? _ButtonBase.default : ComponentProp || 'div';
370
369
  const ownerState = (0, _extends2.default)({}, props, {
371
370
  component,
@@ -386,12 +385,11 @@ const Chip = /*#__PURE__*/React.forwardRef(function Chip(inProps, ref) {
386
385
  let deleteIcon = null;
387
386
 
388
387
  if (onDelete) {
389
- const customClasses = (0, _clsx.default)(color !== 'default' && (variant === 'outlined' ? classes[`deleteIconOutlinedColor${(0, _capitalize.default)(color)}`] : classes[`deleteIconColor${(0, _capitalize.default)(color)}`]), small && classes.deleteIconSmall);
390
388
  deleteIcon = deleteIconProp && /*#__PURE__*/React.isValidElement(deleteIconProp) ? /*#__PURE__*/React.cloneElement(deleteIconProp, {
391
- className: (0, _clsx.default)(deleteIconProp.props.className, classes.deleteIcon, customClasses),
389
+ className: (0, _clsx.default)(deleteIconProp.props.className, classes.deleteIcon),
392
390
  onClick: handleDeleteIconClick
393
391
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_Cancel.default, {
394
- className: (0, _clsx.default)(classes.deleteIcon, customClasses),
392
+ className: (0, _clsx.default)(classes.deleteIcon),
395
393
  onClick: handleDeleteIconClick
396
394
  });
397
395
  }
@@ -12,6 +12,6 @@ function getChipUtilityClass(slot) {
12
12
  return (0, _base.generateUtilityClass)('MuiChip', slot);
13
13
  }
14
14
 
15
- const chipClasses = (0, _base.generateUtilityClasses)('MuiChip', ['root', 'sizeSmall', 'sizeMedium', 'colorPrimary', 'colorSecondary', 'disabled', 'clickable', 'clickableColorPrimary', 'clickableColorSecondary', 'deletable', 'deletableColorPrimary', 'deletableColorSecondary', 'outlined', 'filled', 'outlinedPrimary', 'outlinedSecondary', 'avatar', 'avatarSmall', 'avatarMedium', 'avatarColorPrimary', 'avatarColorSecondary', 'icon', 'iconSmall', 'iconMedium', 'iconColorPrimary', 'iconColorSecondary', 'label', 'labelSmall', 'labelMedium', 'deleteIcon', 'deleteIconSmall', 'deleteIconMedium', 'deleteIconColorPrimary', 'deleteIconColorSecondary', 'deleteIconOutlinedColorPrimary', 'deleteIconOutlinedColorSecondary', 'focusVisible']);
15
+ const chipClasses = (0, _base.generateUtilityClasses)('MuiChip', ['root', 'sizeSmall', 'sizeMedium', 'colorPrimary', 'colorSecondary', 'disabled', 'clickable', 'clickableColorPrimary', 'clickableColorSecondary', 'deletable', 'deletableColorPrimary', 'deletableColorSecondary', 'outlined', 'filled', 'outlinedPrimary', 'outlinedSecondary', 'filledPrimary', 'filledSecondary', 'avatar', 'avatarSmall', 'avatarMedium', 'avatarColorPrimary', 'avatarColorSecondary', 'icon', 'iconSmall', 'iconMedium', 'iconColorPrimary', 'iconColorSecondary', 'label', 'labelSmall', 'labelMedium', 'deleteIcon', 'deleteIconSmall', 'deleteIconMedium', 'deleteIconColorPrimary', 'deleteIconColorSecondary', 'deleteIconOutlinedColorPrimary', 'deleteIconOutlinedColorSecondary', 'deleteIconFilledColorPrimary', 'deleteIconFilledColorSecondary', 'focusVisible']);
16
16
  var _default = chipClasses;
17
17
  exports.default = _default;
@@ -320,7 +320,8 @@ process.env.NODE_ENV !== "production" ? Dialog.propTypes
320
320
 
321
321
  /**
322
322
  * A backdrop component. This prop enables custom backdrop rendering.
323
- * @deprecated Use `components.Backdrop` instead.
323
+ * @deprecated Use `components.Backdrop` instead. While this prop currently works, it will be removed in the next major version.
324
+ * Use the `components.Backdrop` prop to make your application ready for the next version of Material UI.
324
325
  * @default styled(Backdrop, {
325
326
  * name: 'MuiModal',
326
327
  * slot: 'Backdrop',
@@ -202,7 +202,9 @@ process.env.NODE_ENV !== "production" ? FormHelperText.propTypes
202
202
  /**
203
203
  * The variant to use.
204
204
  */
205
- variant: _propTypes.default.oneOf(['filled', 'outlined', 'standard'])
205
+ variant: _propTypes.default
206
+ /* @typescript-to-proptypes-ignore */
207
+ .oneOfType([_propTypes.default.oneOf(['filled', 'outlined', 'standard']), _propTypes.default.string])
206
208
  } : void 0;
207
209
  var _default = FormHelperText;
208
210
  exports.default = _default;
package/node/Grid/Grid.js CHANGED
@@ -155,6 +155,32 @@ function generateDirection({
155
155
  return output;
156
156
  });
157
157
  }
158
+ /**
159
+ * Extracts zero value breakpoint keys before a non-zero value breakpoint key.
160
+ * @example { xs: 0, sm: 0, md: 2, lg: 0, xl: 0 } or [0, 0, 2, 0, 0]
161
+ * @returns [xs, sm]
162
+ */
163
+
164
+
165
+ function extractZeroValueBreakpointKeys({
166
+ breakpoints,
167
+ values
168
+ }) {
169
+ let nonZeroKey = '';
170
+ Object.keys(values).forEach(key => {
171
+ if (nonZeroKey !== '') {
172
+ return;
173
+ }
174
+
175
+ if (values[key] !== 0) {
176
+ nonZeroKey = key;
177
+ }
178
+ });
179
+ const sortedBreakpointKeysByValue = Object.keys(breakpoints).sort((a, b) => {
180
+ return breakpoints[a] - breakpoints[b];
181
+ });
182
+ return sortedBreakpointKeysByValue.slice(0, sortedBreakpointKeysByValue.indexOf(nonZeroKey));
183
+ }
158
184
 
159
185
  function generateRowGap({
160
186
  theme,
@@ -171,9 +197,18 @@ function generateRowGap({
171
197
  values: rowSpacing,
172
198
  breakpoints: theme.breakpoints.values
173
199
  });
200
+ let zeroValueBreakpointKeys;
201
+
202
+ if (typeof rowSpacingValues === 'object') {
203
+ zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({
204
+ breakpoints: theme.breakpoints.values,
205
+ values: rowSpacingValues
206
+ });
207
+ }
208
+
174
209
  styles = (0, _system.handleBreakpoints)({
175
210
  theme
176
- }, rowSpacingValues, propValue => {
211
+ }, rowSpacingValues, (propValue, breakpoint) => {
177
212
  const themeSpacing = theme.spacing(propValue);
178
213
 
179
214
  if (themeSpacing !== '0px') {
@@ -185,7 +220,16 @@ function generateRowGap({
185
220
  };
186
221
  }
187
222
 
188
- return {};
223
+ if (zeroValueBreakpointKeys.includes(breakpoint)) {
224
+ return {};
225
+ }
226
+
227
+ return {
228
+ marginTop: 0,
229
+ [`& > .${_gridClasses.default.item}`]: {
230
+ paddingTop: 0
231
+ }
232
+ };
189
233
  });
190
234
  }
191
235
 
@@ -207,9 +251,18 @@ function generateColumnGap({
207
251
  values: columnSpacing,
208
252
  breakpoints: theme.breakpoints.values
209
253
  });
254
+ let zeroValueBreakpointKeys;
255
+
256
+ if (typeof columnSpacingValues === 'object') {
257
+ zeroValueBreakpointKeys = extractZeroValueBreakpointKeys({
258
+ breakpoints: theme.breakpoints.values,
259
+ values: columnSpacingValues
260
+ });
261
+ }
262
+
210
263
  styles = (0, _system.handleBreakpoints)({
211
264
  theme
212
- }, columnSpacingValues, propValue => {
265
+ }, columnSpacingValues, (propValue, breakpoint) => {
213
266
  const themeSpacing = theme.spacing(propValue);
214
267
 
215
268
  if (themeSpacing !== '0px') {
@@ -222,7 +275,17 @@ function generateColumnGap({
222
275
  };
223
276
  }
224
277
 
225
- return {};
278
+ if (zeroValueBreakpointKeys.includes(breakpoint)) {
279
+ return {};
280
+ }
281
+
282
+ return {
283
+ width: '100%',
284
+ marginLeft: 0,
285
+ [`& > .${_gridClasses.default.item}`]: {
286
+ paddingLeft: 0
287
+ }
288
+ };
226
289
  });
227
290
  }
228
291
 
@@ -67,9 +67,8 @@ const ImageListItemRoot = (0, _styled.default)('li', {
67
67
  })(({
68
68
  ownerState
69
69
  }) => (0, _extends2.default)({
70
- display: 'inline-block',
71
- position: 'relative',
72
- lineHeight: 0
70
+ display: 'block',
71
+ position: 'relative'
73
72
  }, ownerState.variant === 'standard' && {
74
73
  // For titlebar under list item
75
74
  display: 'flex',
@@ -84,7 +83,8 @@ const ImageListItemRoot = (0, _styled.default)('li', {
84
83
  [`& .${_imageListItemClasses.default.img}`]: (0, _extends2.default)({
85
84
  objectFit: 'cover',
86
85
  width: '100%',
87
- height: '100%'
86
+ height: '100%',
87
+ display: 'block'
88
88
  }, ownerState.variant === 'standard' && {
89
89
  height: 'auto',
90
90
  flexGrow: 1