@mui/material 5.3.1 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) 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/Autocomplete.d.ts +5 -0
  9. package/Autocomplete/Autocomplete.js +11 -3
  10. package/Autocomplete/autocompleteClasses.d.ts +54 -54
  11. package/Avatar/avatarClasses.d.ts +20 -20
  12. package/AvatarGroup/avatarGroupClasses.d.ts +10 -10
  13. package/BottomNavigation/BottomNavigation.js +0 -0
  14. package/BottomNavigation/bottomNavigationClasses.d.ts +8 -8
  15. package/BottomNavigationAction/bottomNavigationActionClasses.d.ts +14 -14
  16. package/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  17. package/Breadcrumbs/breadcrumbsClasses.d.ts +14 -14
  18. package/Button/buttonClasses.d.ts +76 -76
  19. package/ButtonBase/TouchRipple.js +1 -2
  20. package/ButtonBase/buttonBaseClasses.d.ts +12 -12
  21. package/ButtonBase/touchRippleClasses.d.ts +20 -20
  22. package/ButtonGroup/ButtonGroupContext.d.ts +18 -18
  23. package/ButtonGroup/buttonGroupClasses.d.ts +58 -58
  24. package/CHANGELOG.md +84 -0
  25. package/Card/cardClasses.d.ts +8 -8
  26. package/CardActionArea/cardActionAreaClasses.d.ts +12 -12
  27. package/CardActions/cardActionsClasses.d.ts +10 -10
  28. package/CardContent/cardContentClasses.d.ts +8 -8
  29. package/CardHeader/cardHeaderClasses.d.ts +18 -18
  30. package/CardMedia/cardMediaClasses.d.ts +12 -12
  31. package/Checkbox/checkboxClasses.d.ts +18 -18
  32. package/Chip/chipClasses.d.ts +80 -80
  33. package/CircularProgress/circularProgressClasses.d.ts +26 -26
  34. package/ClickAwayListener/index.d.ts +2 -2
  35. package/Collapse/collapseClasses.d.ts +18 -18
  36. package/Container/containerClasses.d.ts +22 -22
  37. package/Dialog/DialogContext.d.ts +6 -6
  38. package/Dialog/dialogClasses.d.ts +36 -36
  39. package/DialogActions/dialogActionsClasses.d.ts +10 -10
  40. package/DialogContent/dialogContentClasses.d.ts +10 -10
  41. package/DialogContentText/dialogContentTextClasses.d.ts +8 -8
  42. package/DialogTitle/dialogTitleClasses.d.ts +8 -8
  43. package/Divider/dividerClasses.d.ts +34 -34
  44. package/Drawer/drawerClasses.d.ts +30 -30
  45. package/Fab/fabClasses.d.ts +26 -26
  46. package/FilledInput/filledInputClasses.d.ts +40 -40
  47. package/FormControl/formControlClasses.d.ts +14 -14
  48. package/FormControlLabel/FormControlLabel.js +11 -3
  49. package/FormControlLabel/formControlLabelClasses.d.ts +20 -18
  50. package/FormControlLabel/formControlLabelClasses.js +1 -1
  51. package/FormGroup/FormGroup.js +14 -3
  52. package/FormGroup/formGroupClasses.d.ts +12 -10
  53. package/FormGroup/formGroupClasses.js +1 -1
  54. package/FormHelperText/FormHelperText.js +7 -9
  55. package/FormHelperText/formHelperTextClasses.d.ts +22 -22
  56. package/FormLabel/formLabelClasses.d.ts +22 -22
  57. package/Grid/Grid.js +2 -4
  58. package/Grid/gridClasses.d.ts +48 -48
  59. package/Icon/iconClasses.d.ts +24 -24
  60. package/IconButton/iconButtonClasses.d.ts +26 -26
  61. package/ImageList/imageListClasses.d.ts +16 -16
  62. package/ImageListItem/imageListItemClasses.d.ts +18 -18
  63. package/ImageListItemBar/imageListItemBarClasses.d.ts +30 -30
  64. package/Input/inputClasses.d.ts +34 -34
  65. package/InputAdornment/InputAdornment.js +6 -9
  66. package/InputAdornment/inputAdornmentClasses.d.ts +24 -24
  67. package/InputBase/inputBaseClasses.d.ts +44 -44
  68. package/InputLabel/inputLabelClasses.d.ts +32 -32
  69. package/LinearProgress/linearProgressClasses.d.ts +42 -42
  70. package/Link/linkClasses.d.ts +18 -18
  71. package/List/listClasses.d.ts +14 -14
  72. package/ListItem/listItemClasses.d.ts +30 -30
  73. package/ListItemAvatar/listItemAvatarClasses.d.ts +10 -10
  74. package/ListItemButton/listItemButtonClasses.d.ts +22 -22
  75. package/ListItemIcon/listItemIconClasses.d.ts +10 -10
  76. package/ListItemSecondaryAction/listItemSecondaryActionClasses.d.ts +10 -10
  77. package/ListItemText/listItemTextClasses.d.ts +18 -18
  78. package/ListSubheader/listSubheaderClasses.d.ts +18 -18
  79. package/Menu/menuClasses.d.ts +12 -12
  80. package/MenuItem/menuItemClasses.d.ts +20 -20
  81. package/MobileStepper/mobileStepperClasses.d.ts +22 -22
  82. package/NativeSelect/nativeSelectClasses.d.ts +32 -32
  83. package/OutlinedInput/NotchedOutline.js +14 -16
  84. package/OutlinedInput/OutlinedInput.js +1 -1
  85. package/OutlinedInput/outlinedInputClasses.d.ts +36 -36
  86. package/Pagination/paginationClasses.d.ts +14 -14
  87. package/PaginationItem/paginationItemClasses.d.ts +42 -42
  88. package/Paper/paperClasses.d.ts +39 -39
  89. package/Popover/popoverClasses.d.ts +10 -10
  90. package/Popper/Popper.d.ts +17 -17
  91. package/Radio/RadioButtonIcon.js +2 -6
  92. package/Radio/radioClasses.d.ts +16 -16
  93. package/RadioGroup/RadioGroupContext.d.ts +11 -11
  94. package/RadioGroup/useRadioGroup.d.ts +4 -4
  95. package/Rating/ratingClasses.d.ts +40 -40
  96. package/ScopedCssBaseline/scopedCssBaselineClasses.d.ts +8 -8
  97. package/Select/SelectInput.js +7 -9
  98. package/Select/selectClasses.d.ts +30 -30
  99. package/Skeleton/skeletonClasses.d.ts +24 -24
  100. package/Snackbar/snackbarClasses.d.ts +20 -20
  101. package/SnackbarContent/snackbarContentClasses.d.ts +12 -12
  102. package/SpeedDial/speedDialClasses.d.ts +22 -22
  103. package/SpeedDialAction/speedDialActionClasses.d.ts +20 -20
  104. package/SpeedDialIcon/speedDialIconClasses.d.ts +18 -18
  105. package/Step/stepClasses.d.ts +16 -16
  106. package/StepButton/stepButtonClasses.d.ts +14 -14
  107. package/StepConnector/stepConnectorClasses.d.ts +26 -26
  108. package/StepContent/stepContentClasses.d.ts +12 -12
  109. package/StepIcon/stepIconClasses.d.ts +16 -16
  110. package/StepLabel/stepLabelClasses.d.ts +28 -28
  111. package/Stepper/stepperClasses.d.ts +14 -14
  112. package/SvgIcon/svgIconClasses.d.ts +24 -24
  113. package/SwipeableDrawer/SwipeArea.js +1 -3
  114. package/Switch/switchClasses.d.ts +32 -32
  115. package/Tab/tabClasses.d.ts +26 -26
  116. package/TabScrollButton/tabScrollButtonClasses.d.ts +12 -12
  117. package/Table/tableClasses.d.ts +10 -10
  118. package/TableBody/tableBodyClasses.d.ts +8 -8
  119. package/TableCell/tableCellClasses.d.ts +32 -32
  120. package/TableContainer/tableContainerClasses.d.ts +8 -8
  121. package/TableFooter/tableFooterClasses.d.ts +8 -8
  122. package/TableHead/tableHeadClasses.d.ts +8 -8
  123. package/TablePagination/tablePaginationClasses.d.ts +28 -28
  124. package/TableRow/tableRowClasses.d.ts +16 -16
  125. package/TableSortLabel/tableSortLabelClasses.d.ts +16 -16
  126. package/Tabs/tabsClasses.d.ts +32 -32
  127. package/TextField/TextField.js +1 -1
  128. package/TextField/textFieldClasses.d.ts +8 -8
  129. package/ToggleButton/toggleButtonClasses.d.ts +24 -24
  130. package/ToggleButtonGroup/toggleButtonGroupClasses.d.ts +18 -18
  131. package/Toolbar/toolbarClasses.d.ts +14 -14
  132. package/Tooltip/tooltipClasses.d.ts +30 -30
  133. package/Typography/typographyClasses.d.ts +50 -50
  134. package/darkScrollbar/index.d.ts +28 -28
  135. package/index.d.ts +7 -2
  136. package/index.js +6 -3
  137. package/internal/SwitchBase.js +2 -6
  138. package/internal/switchBaseClasses.d.ts +12 -12
  139. package/legacy/Autocomplete/Autocomplete.js +12 -3
  140. package/legacy/BottomNavigation/BottomNavigation.js +0 -0
  141. package/legacy/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  142. package/legacy/ButtonBase/TouchRipple.js +1 -2
  143. package/legacy/FormControlLabel/FormControlLabel.js +11 -3
  144. package/legacy/FormControlLabel/formControlLabelClasses.js +1 -1
  145. package/legacy/FormGroup/FormGroup.js +14 -3
  146. package/legacy/FormGroup/formGroupClasses.js +1 -1
  147. package/legacy/FormHelperText/FormHelperText.js +7 -9
  148. package/legacy/Grid/Grid.js +2 -4
  149. package/legacy/InputAdornment/InputAdornment.js +6 -9
  150. package/legacy/OutlinedInput/NotchedOutline.js +14 -16
  151. package/legacy/OutlinedInput/OutlinedInput.js +1 -1
  152. package/legacy/Radio/RadioButtonIcon.js +2 -6
  153. package/legacy/Select/SelectInput.js +7 -9
  154. package/legacy/SwipeableDrawer/SwipeArea.js +1 -3
  155. package/legacy/TextField/TextField.js +1 -1
  156. package/legacy/index.js +6 -3
  157. package/legacy/internal/SwitchBase.js +2 -6
  158. package/legacy/useMediaQuery/useMediaQuery.js +86 -31
  159. package/locale/index.d.ts +68 -68
  160. package/modern/Autocomplete/Autocomplete.js +11 -3
  161. package/modern/BottomNavigation/BottomNavigation.js +0 -0
  162. package/modern/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  163. package/modern/ButtonBase/TouchRipple.js +1 -2
  164. package/modern/FormControlLabel/FormControlLabel.js +11 -3
  165. package/modern/FormControlLabel/formControlLabelClasses.js +1 -1
  166. package/modern/FormGroup/FormGroup.js +14 -3
  167. package/modern/FormGroup/formGroupClasses.js +1 -1
  168. package/modern/FormHelperText/FormHelperText.js +7 -9
  169. package/modern/Grid/Grid.js +2 -4
  170. package/modern/InputAdornment/InputAdornment.js +6 -9
  171. package/modern/OutlinedInput/NotchedOutline.js +14 -16
  172. package/modern/OutlinedInput/OutlinedInput.js +1 -1
  173. package/modern/Radio/RadioButtonIcon.js +2 -6
  174. package/modern/Select/SelectInput.js +7 -9
  175. package/modern/SwipeableDrawer/SwipeArea.js +1 -3
  176. package/modern/TextField/TextField.js +1 -1
  177. package/modern/index.js +6 -3
  178. package/modern/internal/SwitchBase.js +2 -6
  179. package/modern/useMediaQuery/useMediaQuery.js +68 -26
  180. package/node/Autocomplete/Autocomplete.js +11 -3
  181. package/node/BottomNavigation/BottomNavigation.js +0 -0
  182. package/node/Breadcrumbs/BreadcrumbCollapsed.js +1 -3
  183. package/node/ButtonBase/TouchRipple.js +1 -2
  184. package/node/FormControlLabel/FormControlLabel.js +12 -3
  185. package/node/FormControlLabel/formControlLabelClasses.js +1 -1
  186. package/node/FormGroup/FormGroup.js +15 -3
  187. package/node/FormGroup/formGroupClasses.js +1 -1
  188. package/node/FormHelperText/FormHelperText.js +6 -9
  189. package/node/Grid/Grid.js +2 -4
  190. package/node/InputAdornment/InputAdornment.js +5 -9
  191. package/node/OutlinedInput/NotchedOutline.js +12 -16
  192. package/node/OutlinedInput/OutlinedInput.js +1 -1
  193. package/node/Radio/RadioButtonIcon.js +2 -6
  194. package/node/Select/SelectInput.js +6 -9
  195. package/node/SwipeableDrawer/SwipeArea.js +1 -3
  196. package/node/TextField/TextField.js +1 -1
  197. package/node/index.js +41 -16
  198. package/node/internal/SwitchBase.js +2 -6
  199. package/node/useMediaQuery/useMediaQuery.js +68 -26
  200. package/package.json +3 -3
  201. package/styles/ThemeProvider.d.ts +1 -1
  202. package/transitions/index.d.ts +1 -1
  203. package/transitions/transition.d.ts +13 -13
  204. package/transitions/utils.d.ts +23 -23
  205. package/umd/material-ui.development.js +5869 -8117
  206. package/umd/material-ui.production.min.js +21 -21
  207. package/useMediaQuery/useMediaQuery.d.ts +31 -27
  208. package/useMediaQuery/useMediaQuery.js +68 -26
  209. package/useTouchRipple/index.d.ts +1 -1
  210. package/useTouchRipple/useTouchRipple.d.ts +28 -28
  211. package/utils/getScrollbarSize.d.ts +2 -2
  212. package/utils/ownerDocument.d.ts +2 -2
  213. package/utils/ownerWindow.d.ts +2 -2
  214. package/utils/setRef.d.ts +2 -2
@@ -217,7 +217,7 @@ const TextField = /*#__PURE__*/React.forwardRef(function TextField(inProps, ref)
217
217
  variant: variant,
218
218
  ownerState: ownerState
219
219
  }, other, {
220
- children: [label && /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputLabel.default, (0, _extends2.default)({
220
+ children: [label != null && label !== '' && /*#__PURE__*/(0, _jsxRuntime.jsx)(_InputLabel.default, (0, _extends2.default)({
221
221
  htmlFor: id,
222
222
  id: inputLabelId
223
223
  }, InputLabelProps, {
package/node/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MUI v5.3.1
1
+ /** @license MUI v5.4.0
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.
@@ -144,7 +144,10 @@ var _exportNames = {
144
144
  useScrollTrigger: true,
145
145
  Zoom: true,
146
146
  useAutocomplete: true,
147
- GlobalStyles: true
147
+ GlobalStyles: true,
148
+ unstable_composeClasses: true,
149
+ generateUtilityClass: true,
150
+ generateUtilityClasses: true
148
151
  };
149
152
  Object.defineProperty(exports, "Accordion", {
150
153
  enumerable: true,
@@ -921,6 +924,24 @@ Object.defineProperty(exports, "darkScrollbar", {
921
924
  return _darkScrollbar.default;
922
925
  }
923
926
  });
927
+ Object.defineProperty(exports, "generateUtilityClass", {
928
+ enumerable: true,
929
+ get: function () {
930
+ return _generateUtilityClass.default;
931
+ }
932
+ });
933
+ Object.defineProperty(exports, "generateUtilityClasses", {
934
+ enumerable: true,
935
+ get: function () {
936
+ return _generateUtilityClasses.default;
937
+ }
938
+ });
939
+ Object.defineProperty(exports, "unstable_composeClasses", {
940
+ enumerable: true,
941
+ get: function () {
942
+ return _composeClasses.default;
943
+ }
944
+ });
924
945
  Object.defineProperty(exports, "useAutocomplete", {
925
946
  enumerable: true,
926
947
  get: function () {
@@ -978,20 +999,6 @@ Object.keys(_utils).forEach(function (key) {
978
999
  });
979
1000
  });
980
1001
 
981
- var _base = require("@mui/base");
982
-
983
- Object.keys(_base).forEach(function (key) {
984
- if (key === "default" || key === "__esModule") return;
985
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
986
- if (key in exports && exports[key] === _base[key]) return;
987
- Object.defineProperty(exports, key, {
988
- enumerable: true,
989
- get: function () {
990
- return _base[key];
991
- }
992
- });
993
- });
994
-
995
1002
  var _Accordion = _interopRequireWildcard(require("./Accordion"));
996
1003
 
997
1004
  Object.keys(_Accordion).forEach(function (key) {
@@ -2828,6 +2835,24 @@ Object.keys(_GlobalStyles).forEach(function (key) {
2828
2835
  });
2829
2836
  });
2830
2837
 
2838
+ var _composeClasses = _interopRequireDefault(require("@mui/base/composeClasses"));
2839
+
2840
+ var _generateUtilityClass = _interopRequireWildcard(require("@mui/base/generateUtilityClass"));
2841
+
2842
+ Object.keys(_generateUtilityClass).forEach(function (key) {
2843
+ if (key === "default" || key === "__esModule") return;
2844
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
2845
+ if (key in exports && exports[key] === _generateUtilityClass[key]) return;
2846
+ Object.defineProperty(exports, key, {
2847
+ enumerable: true,
2848
+ get: function () {
2849
+ return _generateUtilityClass[key];
2850
+ }
2851
+ });
2852
+ });
2853
+
2854
+ var _generateUtilityClasses = _interopRequireDefault(require("@mui/base/generateUtilityClasses"));
2855
+
2831
2856
  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); }
2832
2857
 
2833
2858
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -55,9 +55,7 @@ const useUtilityClasses = ownerState => {
55
55
  return (0, _base.unstable_composeClasses)(slots, _switchBaseClasses.getSwitchBaseUtilityClass, classes);
56
56
  };
57
57
 
58
- const SwitchBaseRoot = (0, _styled.default)(_ButtonBase.default, {
59
- skipSx: true
60
- })(({
58
+ const SwitchBaseRoot = (0, _styled.default)(_ButtonBase.default)(({
61
59
  ownerState
62
60
  }) => (0, _extends2.default)({
63
61
  padding: 9,
@@ -67,9 +65,7 @@ const SwitchBaseRoot = (0, _styled.default)(_ButtonBase.default, {
67
65
  }, ownerState.edge === 'end' && {
68
66
  marginRight: ownerState.size === 'small' ? -3 : -12
69
67
  }));
70
- const SwitchBaseInput = (0, _styled.default)('input', {
71
- skipSx: true
72
- })({
68
+ const SwitchBaseInput = (0, _styled.default)('input')({
73
69
  cursor: 'inherit',
74
70
  position: 'absolute',
75
71
  opacity: 0,
@@ -17,32 +17,8 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
17
17
 
18
18
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
19
 
20
- function useMediaQuery(queryInput, options = {}) {
21
- const theme = (0, _system.useThemeWithoutDefault)(); // Wait for jsdom to support the match media feature.
22
- // All the browsers MUI support have this built-in.
23
- // This defensive check is here for simplicity.
24
- // Most of the time, the match media logic isn't central to people tests.
25
-
20
+ function useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {
26
21
  const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';
27
- const {
28
- defaultMatches = false,
29
- matchMedia = supportMatchMedia ? window.matchMedia : null,
30
- noSsr = false,
31
- ssrMatchMedia = null
32
- } = (0, _system.getThemeProps)({
33
- name: 'MuiUseMediaQuery',
34
- props: options,
35
- theme
36
- });
37
-
38
- if (process.env.NODE_ENV !== 'production') {
39
- if (typeof queryInput === 'function' && theme === null) {
40
- console.error(['MUI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\n'));
41
- }
42
- }
43
-
44
- let query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;
45
- query = query.replace(/^@media( ?)/m, '');
46
22
  const [match, setMatch] = React.useState(() => {
47
23
  if (noSsr && supportMatchMedia) {
48
24
  return matchMedia(query).matches;
@@ -74,13 +50,79 @@ function useMediaQuery(queryInput, options = {}) {
74
50
  }
75
51
  };
76
52
 
77
- updateMatch();
53
+ updateMatch(); // TODO: Use `addEventListener` once support for Safari < 14 is dropped
54
+
78
55
  queryList.addListener(updateMatch);
79
56
  return () => {
80
57
  active = false;
81
58
  queryList.removeListener(updateMatch);
82
59
  };
83
60
  }, [query, matchMedia, supportMatchMedia]);
61
+ return match;
62
+ } // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814
63
+
64
+
65
+ const maybeReactUseSyncExternalStore = React['useSyncExternalStore' + ''];
66
+
67
+ function useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia) {
68
+ const getDefaultSnapshot = React.useCallback(() => defaultMatches, [defaultMatches]);
69
+ const getServerSnapshot = React.useMemo(() => {
70
+ if (ssrMatchMedia !== null) {
71
+ const {
72
+ matches
73
+ } = ssrMatchMedia(query);
74
+ return () => matches;
75
+ }
76
+
77
+ return getDefaultSnapshot;
78
+ }, [getDefaultSnapshot, query, ssrMatchMedia]);
79
+ const [getSnapshot, subscribe] = React.useMemo(() => {
80
+ if (matchMedia === null) {
81
+ return [getDefaultSnapshot, () => () => {}];
82
+ }
83
+
84
+ const mediaQueryList = matchMedia(query);
85
+ return [() => mediaQueryList.matches, notify => {
86
+ // TODO: Use `addEventListener` once support for Safari < 14 is dropped
87
+ mediaQueryList.addListener(notify);
88
+ return () => {
89
+ mediaQueryList.removeListener(notify);
90
+ };
91
+ }];
92
+ }, [getDefaultSnapshot, matchMedia, query]);
93
+ const match = maybeReactUseSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
94
+ return match;
95
+ }
96
+
97
+ function useMediaQuery(queryInput, options = {}) {
98
+ const theme = (0, _system.useThemeWithoutDefault)(); // Wait for jsdom to support the match media feature.
99
+ // All the browsers MUI support have this built-in.
100
+ // This defensive check is here for simplicity.
101
+ // Most of the time, the match media logic isn't central to people tests.
102
+
103
+ const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';
104
+ const {
105
+ defaultMatches = false,
106
+ matchMedia = supportMatchMedia ? window.matchMedia : null,
107
+ ssrMatchMedia = null,
108
+ noSsr
109
+ } = (0, _system.getThemeProps)({
110
+ name: 'MuiUseMediaQuery',
111
+ props: options,
112
+ theme
113
+ });
114
+
115
+ if (process.env.NODE_ENV !== 'production') {
116
+ if (typeof queryInput === 'function' && theme === null) {
117
+ console.error(['MUI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\n'));
118
+ }
119
+ }
120
+
121
+ let query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;
122
+ query = query.replace(/^@media( ?)/m, ''); // TODO: Drop `useMediaQueryOld` and use `use-sync-external-store` shim in `useMediaQueryNew` once the package is stable
123
+
124
+ const useMediaQueryImplementation = maybeReactUseSyncExternalStore !== undefined ? useMediaQueryNew : useMediaQueryOld;
125
+ const match = useMediaQueryImplementation(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr);
84
126
 
85
127
  if (process.env.NODE_ENV !== 'production') {
86
128
  // eslint-disable-next-line react-hooks/rules-of-hooks
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/material",
3
- "version": "5.3.1",
3
+ "version": "5.4.0",
4
4
  "private": false,
5
5
  "author": "MUI Team",
6
6
  "description": "Quickly build beautiful React apps. MUI is a simple and customizable component library to build faster, beautiful, and more accessible React applications. Follow your own design system, or start with Material Design.",
@@ -46,8 +46,8 @@
46
46
  },
47
47
  "dependencies": {
48
48
  "@babel/runtime": "^7.16.7",
49
- "@mui/base": "5.0.0-alpha.66",
50
- "@mui/system": "^5.3.0",
49
+ "@mui/base": "5.0.0-alpha.67",
50
+ "@mui/system": "^5.4.0",
51
51
  "@mui/types": "^7.1.0",
52
52
  "@mui/utils": "^5.3.0",
53
53
  "@types/react-transition-group": "^4.4.4",
@@ -10,7 +10,7 @@ export interface ThemeProviderProps<Theme = DefaultTheme> {
10
10
  * It should preferably be used at **the root of your component tree**.
11
11
  * API:
12
12
  *
13
- * - [ThemeProvider API](https://mui.com/api/theme-provider/)
13
+ * - [ThemeProvider API](/customization/theming/#themeprovider)
14
14
  */
15
15
  export default function ThemeProvider<T = DefaultTheme>(
16
16
  props: ThemeProviderProps<T>,
@@ -1 +1 @@
1
- export * from './transition';
1
+ export * from './transition';
@@ -1,13 +1,13 @@
1
- import { TransitionProps as _TransitionProps, TransitionActions } from 'react-transition-group/Transition';
2
- import * as React from 'react';
3
- export declare type TransitionHandlerKeys = 'onEnter' | 'onEntering' | 'onEntered' | 'onExit' | 'onExiting' | 'onExited';
4
- export declare type TransitionHandlerProps = Pick<_TransitionProps, TransitionHandlerKeys>;
5
- export interface EasingProps {
6
- easing: string | {
7
- enter?: string;
8
- exit?: string;
9
- };
10
- }
11
- export declare type TransitionKeys = 'in' | 'mountOnEnter' | 'unmountOnExit' | 'timeout' | 'easing' | 'addEndListener' | TransitionHandlerKeys;
12
- export interface TransitionProps extends TransitionActions, Partial<Pick<_TransitionProps & EasingProps, TransitionKeys>>, React.HTMLAttributes<HTMLElement> {
13
- }
1
+ import { TransitionProps as _TransitionProps, TransitionActions } from 'react-transition-group/Transition';
2
+ import * as React from 'react';
3
+ export declare type TransitionHandlerKeys = 'onEnter' | 'onEntering' | 'onEntered' | 'onExit' | 'onExiting' | 'onExited';
4
+ export declare type TransitionHandlerProps = Pick<_TransitionProps, TransitionHandlerKeys>;
5
+ export interface EasingProps {
6
+ easing: string | {
7
+ enter?: string;
8
+ exit?: string;
9
+ };
10
+ }
11
+ export declare type TransitionKeys = 'in' | 'mountOnEnter' | 'unmountOnExit' | 'timeout' | 'easing' | 'addEndListener' | TransitionHandlerKeys;
12
+ export interface TransitionProps extends TransitionActions, Partial<Pick<_TransitionProps & EasingProps, TransitionKeys>>, React.HTMLAttributes<HTMLElement> {
13
+ }
@@ -1,23 +1,23 @@
1
- import * as React from 'react';
2
- export declare const reflow: (node: Element) => number;
3
- interface ComponentProps {
4
- easing: string | {
5
- enter?: string;
6
- exit?: string;
7
- } | undefined;
8
- style: React.CSSProperties | undefined;
9
- timeout: number | {
10
- enter?: number;
11
- exit?: number;
12
- };
13
- }
14
- interface Options {
15
- mode: 'enter' | 'exit';
16
- }
17
- interface TransitionProps {
18
- duration: string | number;
19
- easing: string | undefined;
20
- delay: string | undefined;
21
- }
22
- export declare function getTransitionProps(props: ComponentProps, options: Options): TransitionProps;
23
- export {};
1
+ import * as React from 'react';
2
+ export declare const reflow: (node: Element) => number;
3
+ interface ComponentProps {
4
+ easing: string | {
5
+ enter?: string;
6
+ exit?: string;
7
+ } | undefined;
8
+ style: React.CSSProperties | undefined;
9
+ timeout: number | {
10
+ enter?: number;
11
+ exit?: number;
12
+ };
13
+ }
14
+ interface Options {
15
+ mode: 'enter' | 'exit';
16
+ }
17
+ interface TransitionProps {
18
+ duration: string | number;
19
+ easing: string | undefined;
20
+ delay: string | undefined;
21
+ }
22
+ export declare function getTransitionProps(props: ComponentProps, options: Options): TransitionProps;
23
+ export {};