@mui/system 5.12.1 → 5.13.1

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 (105) hide show
  1. package/CHANGELOG.md +312 -0
  2. package/Container/Container.d.ts +13 -13
  3. package/Container/ContainerProps.d.ts +40 -40
  4. package/Container/containerClasses.d.ts +22 -22
  5. package/Container/createContainer.d.ts +18 -18
  6. package/Container/createContainer.js +41 -35
  7. package/GlobalStyles/GlobalStyles.d.ts +13 -13
  8. package/GlobalStyles/index.d.ts +2 -2
  9. package/Stack/Stack.d.ts +14 -14
  10. package/Stack/Stack.js +1 -1
  11. package/Stack/StackProps.d.ts +53 -53
  12. package/Stack/createStack.d.ts +21 -21
  13. package/Stack/createStack.js +24 -26
  14. package/Stack/index.d.ts +5 -5
  15. package/Stack/stackClasses.d.ts +8 -8
  16. package/ThemeProvider/ThemeProvider.js +9 -5
  17. package/Unstable_Grid/Grid.d.ts +12 -12
  18. package/Unstable_Grid/GridProps.d.ts +185 -185
  19. package/Unstable_Grid/createGrid.d.ts +11 -11
  20. package/Unstable_Grid/createGrid.js +21 -23
  21. package/Unstable_Grid/gridClasses.d.ts +20 -20
  22. package/Unstable_Grid/gridGenerator.d.ts +38 -38
  23. package/Unstable_Grid/gridGenerator.js +20 -18
  24. package/Unstable_Grid/index.d.ts +5 -5
  25. package/breakpoints.js +7 -6
  26. package/colorManipulator.js +2 -0
  27. package/createBox.js +9 -12
  28. package/createStyled.js +40 -31
  29. package/createTheme/createBreakpoints.js +24 -26
  30. package/createTheme/createSpacing.d.ts +10 -10
  31. package/createTheme/createSpacing.js +3 -1
  32. package/createTheme/createTheme.js +18 -14
  33. package/cssVars/createCssVarsProvider.js +21 -20
  34. package/cssVars/createCssVarsTheme.d.ts +15 -15
  35. package/cssVars/createCssVarsTheme.js +10 -10
  36. package/cssVars/createGetCssVar.d.ts +5 -5
  37. package/cssVars/cssVarsParser.d.ts +64 -64
  38. package/cssVars/getInitColorSchemeScript.d.ts +42 -42
  39. package/cssVars/index.d.ts +5 -5
  40. package/cssVars/prepareCssVars.d.ts +16 -16
  41. package/cssVars/prepareCssVars.js +13 -12
  42. package/cssVars/useCurrentColorScheme.d.ts +53 -53
  43. package/cssVars/useCurrentColorScheme.js +17 -11
  44. package/esm/Container/createContainer.js +41 -35
  45. package/esm/Stack/Stack.js +1 -1
  46. package/esm/Stack/createStack.js +24 -26
  47. package/esm/ThemeProvider/ThemeProvider.js +9 -5
  48. package/esm/Unstable_Grid/createGrid.js +21 -23
  49. package/esm/Unstable_Grid/gridGenerator.js +20 -17
  50. package/esm/breakpoints.js +7 -6
  51. package/esm/colorManipulator.js +1 -0
  52. package/esm/createBox.js +9 -12
  53. package/esm/createStyled.js +38 -31
  54. package/esm/createTheme/createBreakpoints.js +24 -25
  55. package/esm/createTheme/createSpacing.js +4 -0
  56. package/esm/createTheme/createTheme.js +18 -14
  57. package/esm/cssVars/createCssVarsProvider.js +21 -20
  58. package/esm/cssVars/createCssVarsTheme.js +10 -10
  59. package/esm/cssVars/prepareCssVars.js +13 -12
  60. package/esm/cssVars/useCurrentColorScheme.js +17 -10
  61. package/esm/propsToClassKey.js +3 -5
  62. package/esm/styleFunctionSx/extendSxProp.js +14 -10
  63. package/index.js +5 -2
  64. package/legacy/Container/createContainer.js +7 -6
  65. package/legacy/Stack/Stack.js +1 -1
  66. package/legacy/Stack/createStack.js +6 -5
  67. package/legacy/ThemeProvider/ThemeProvider.js +4 -3
  68. package/legacy/Unstable_Grid/createGrid.js +6 -4
  69. package/legacy/Unstable_Grid/gridGenerator.js +6 -4
  70. package/legacy/breakpoints.js +5 -3
  71. package/legacy/colorManipulator.js +1 -0
  72. package/legacy/createBox.js +4 -2
  73. package/legacy/createStyled.js +13 -11
  74. package/legacy/createTheme/createBreakpoints.js +4 -3
  75. package/legacy/createTheme/createSpacing.js +4 -0
  76. package/legacy/createTheme/createTheme.js +6 -4
  77. package/legacy/cssVars/createCssVarsProvider.js +6 -5
  78. package/legacy/cssVars/createCssVarsTheme.js +4 -2
  79. package/legacy/cssVars/prepareCssVars.js +5 -3
  80. package/legacy/cssVars/useCurrentColorScheme.js +9 -7
  81. package/legacy/index.js +1 -1
  82. package/legacy/styleFunctionSx/extendSxProp.js +6 -4
  83. package/modern/Container/createContainer.js +41 -35
  84. package/modern/Stack/Stack.js +1 -1
  85. package/modern/Stack/createStack.js +24 -26
  86. package/modern/ThemeProvider/ThemeProvider.js +9 -5
  87. package/modern/Unstable_Grid/createGrid.js +21 -23
  88. package/modern/Unstable_Grid/gridGenerator.js +20 -17
  89. package/modern/breakpoints.js +7 -6
  90. package/modern/colorManipulator.js +1 -0
  91. package/modern/createBox.js +9 -12
  92. package/modern/createStyled.js +38 -31
  93. package/modern/createTheme/createBreakpoints.js +24 -25
  94. package/modern/createTheme/createSpacing.js +4 -0
  95. package/modern/createTheme/createTheme.js +18 -14
  96. package/modern/cssVars/createCssVarsProvider.js +21 -20
  97. package/modern/cssVars/createCssVarsTheme.js +10 -10
  98. package/modern/cssVars/prepareCssVars.js +13 -12
  99. package/modern/cssVars/useCurrentColorScheme.js +17 -10
  100. package/modern/index.js +1 -1
  101. package/modern/propsToClassKey.js +3 -5
  102. package/modern/styleFunctionSx/extendSxProp.js +14 -10
  103. package/package.json +4 -4
  104. package/propsToClassKey.js +3 -6
  105. package/styleFunctionSx/extendSxProp.js +14 -10
@@ -1,6 +1,3 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["component", "direction", "spacing", "divider", "children", "className", "useFlexGap"];
4
1
  import * as React from 'react';
5
2
  import PropTypes from 'prop-types';
6
3
  import clsx from 'clsx';
@@ -58,17 +55,18 @@ export const style = ({
58
55
  ownerState,
59
56
  theme
60
57
  }) => {
61
- let styles = _extends({
58
+ let styles = {
62
59
  display: 'flex',
63
- flexDirection: 'column'
64
- }, handleBreakpoints({
65
- theme
66
- }, resolveBreakpointValues({
67
- values: ownerState.direction,
68
- breakpoints: theme.breakpoints.values
69
- }), propValue => ({
70
- flexDirection: propValue
71
- })));
60
+ flexDirection: 'column',
61
+ ...handleBreakpoints({
62
+ theme
63
+ }, resolveBreakpointValues({
64
+ values: ownerState.direction,
65
+ breakpoints: theme.breakpoints.values
66
+ }), propValue => ({
67
+ flexDirection: propValue
68
+ }))
69
+ };
72
70
  if (ownerState.spacing) {
73
71
  const transformer = createUnarySpacing(theme);
74
72
  const base = Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {
@@ -132,29 +130,29 @@ export default function createStack(options = {}) {
132
130
  const themeProps = useThemeProps(inProps);
133
131
  const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.
134
132
  const {
135
- component = 'div',
136
- direction = 'column',
137
- spacing = 0,
138
- divider,
139
- children,
140
- className,
141
- useFlexGap = false
142
- } = props,
143
- other = _objectWithoutPropertiesLoose(props, _excluded);
133
+ component = 'div',
134
+ direction = 'column',
135
+ spacing = 0,
136
+ divider,
137
+ children,
138
+ className,
139
+ useFlexGap = false,
140
+ ...other
141
+ } = props;
144
142
  const ownerState = {
145
143
  direction,
146
144
  spacing,
147
145
  useFlexGap
148
146
  };
149
147
  const classes = useUtilityClasses();
150
- return /*#__PURE__*/_jsx(StackRoot, _extends({
148
+ return /*#__PURE__*/_jsx(StackRoot, {
151
149
  as: component,
152
150
  ownerState: ownerState,
153
151
  ref: ref,
154
- className: clsx(classes.root, className)
155
- }, other, {
152
+ className: clsx(classes.root, className),
153
+ ...other,
156
154
  children: divider ? joinChildren(children, divider) : children
157
- }));
155
+ });
158
156
  });
159
157
  process.env.NODE_ENV !== "production" ? Stack.propTypes /* remove-proptypes */ = {
160
158
  children: PropTypes.node,
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import * as React from 'react';
3
2
  import PropTypes from 'prop-types';
4
3
  import { ThemeProvider as MuiThemeProvider, useTheme as usePrivateTheme } from '@mui/private-theming';
@@ -12,9 +11,10 @@ function useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {
12
11
  const resolvedTheme = themeId ? upperTheme[themeId] || upperTheme : upperTheme;
13
12
  if (typeof localTheme === 'function') {
14
13
  const mergedTheme = localTheme(resolvedTheme);
15
- const result = themeId ? _extends({}, upperTheme, {
14
+ const result = themeId ? {
15
+ ...upperTheme,
16
16
  [themeId]: mergedTheme
17
- }) : mergedTheme;
17
+ } : mergedTheme;
18
18
  // must return a function for the private theme to NOT merge with the upper theme.
19
19
  // see the test case "use provided theme from a callback" in ThemeProvider.test.js
20
20
  if (isPrivate) {
@@ -22,9 +22,13 @@ function useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {
22
22
  }
23
23
  return result;
24
24
  }
25
- return themeId ? _extends({}, upperTheme, {
25
+ return themeId ? {
26
+ ...upperTheme,
26
27
  [themeId]: localTheme
27
- }) : _extends({}, upperTheme, localTheme);
28
+ } : {
29
+ ...upperTheme,
30
+ ...localTheme
31
+ };
28
32
  }, [themeId, upperTheme, localTheme, isPrivate]);
29
33
  }
30
34
 
@@ -1,6 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["className", "children", "columns", "container", "component", "direction", "wrap", "spacing", "rowSpacing", "columnSpacing", "disableEqualOverflow", "unstable_level"];
4
1
  import * as React from 'react';
5
2
  import PropTypes from 'prop-types';
6
3
  import clsx from 'clsx';
@@ -56,20 +53,20 @@ export default function createGrid(options = {}) {
56
53
  const props = extendSxProp(themeProps); // `color` type conflicts with html color attribute.
57
54
  const overflow = React.useContext(OverflowContext);
58
55
  const {
59
- className,
60
- children,
61
- columns: columnsProp = 12,
62
- container = false,
63
- component = 'div',
64
- direction = 'row',
65
- wrap = 'wrap',
66
- spacing: spacingProp = 0,
67
- rowSpacing: rowSpacingProp = spacingProp,
68
- columnSpacing: columnSpacingProp = spacingProp,
69
- disableEqualOverflow: themeDisableEqualOverflow,
70
- unstable_level: level = 0
71
- } = props,
72
- rest = _objectWithoutPropertiesLoose(props, _excluded);
56
+ className,
57
+ children,
58
+ columns: columnsProp = 12,
59
+ container = false,
60
+ component = 'div',
61
+ direction = 'row',
62
+ wrap = 'wrap',
63
+ spacing: spacingProp = 0,
64
+ rowSpacing: rowSpacingProp = spacingProp,
65
+ columnSpacing: columnSpacingProp = spacingProp,
66
+ disableEqualOverflow: themeDisableEqualOverflow,
67
+ unstable_level: level = 0,
68
+ ...rest
69
+ } = props;
73
70
  // Because `disableEqualOverflow` can be set from the theme's defaultProps, the **nested** grid should look at the instance props instead.
74
71
  let disableEqualOverflow = themeDisableEqualOverflow;
75
72
  if (level && themeDisableEqualOverflow !== undefined) {
@@ -92,7 +89,8 @@ export default function createGrid(options = {}) {
92
89
  const spacing = (_inProps$spacing = inProps.spacing) != null ? _inProps$spacing : level ? undefined : spacingProp;
93
90
  const rowSpacing = (_ref = (_inProps$rowSpacing = inProps.rowSpacing) != null ? _inProps$rowSpacing : inProps.spacing) != null ? _ref : level ? undefined : rowSpacingProp;
94
91
  const columnSpacing = (_ref2 = (_inProps$columnSpacin = inProps.columnSpacing) != null ? _inProps$columnSpacin : inProps.spacing) != null ? _ref2 : level ? undefined : columnSpacingProp;
95
- const ownerState = _extends({}, props, {
92
+ const ownerState = {
93
+ ...props,
96
94
  level,
97
95
  columns,
98
96
  container,
@@ -106,15 +104,15 @@ export default function createGrid(options = {}) {
106
104
  disableEqualOverflow: (_ref3 = (_disableEqualOverflow = disableEqualOverflow) != null ? _disableEqualOverflow : overflow) != null ? _ref3 : false,
107
105
  // use context value if exists.
108
106
  parentDisableEqualOverflow: overflow // for nested grid
109
- });
107
+ };
110
108
 
111
109
  const classes = useUtilityClasses(ownerState, theme);
112
- let result = /*#__PURE__*/_jsx(GridRoot, _extends({
110
+ let result = /*#__PURE__*/_jsx(GridRoot, {
113
111
  ref: ref,
114
112
  as: component,
115
113
  ownerState: ownerState,
116
- className: clsx(classes.root, className)
117
- }, other, {
114
+ className: clsx(classes.root, className),
115
+ ...other,
118
116
  children: React.Children.map(children, child => {
119
117
  if ( /*#__PURE__*/React.isValidElement(child) && isMuiElement(child, ['Grid'])) {
120
118
  var _child$props$unstable;
@@ -124,7 +122,7 @@ export default function createGrid(options = {}) {
124
122
  }
125
123
  return child;
126
124
  })
127
- }));
125
+ });
128
126
  if (disableEqualOverflow !== undefined && disableEqualOverflow !== (overflow != null ? overflow : false)) {
129
127
  // There are 2 possibilities that should wrap with the OverflowContext to communicate with the nested grids:
130
128
  // 1. It is the root grid with `disableEqualOverflow`.
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  function appendLevel(level) {
3
2
  if (!level) {
4
3
  return '';
@@ -206,23 +205,27 @@ export const generateGridStyles = ({
206
205
  }) => {
207
206
  const getSelfSpacing = createGetSelfSpacing(ownerState);
208
207
  const getParentSpacing = createGetParentSpacing(ownerState);
209
- return _extends({
208
+ return {
210
209
  minWidth: 0,
211
- boxSizing: 'border-box'
212
- }, ownerState.container && _extends({
213
- display: 'flex',
214
- flexWrap: 'wrap'
215
- }, ownerState.wrap && ownerState.wrap !== 'wrap' && {
216
- flexWrap: ownerState.wrap
217
- }, {
218
- margin: `calc(${getSelfSpacing('row')} / -2) calc(${getSelfSpacing('column')} / -2)`
219
- }, ownerState.disableEqualOverflow && {
220
- margin: `calc(${getSelfSpacing('row')} * -1) 0px 0px calc(${getSelfSpacing('column')} * -1)`
221
- }), (!ownerState.container || isNestedContainer(ownerState)) && _extends({
222
- padding: `calc(${getParentSpacing('row')} / 2) calc(${getParentSpacing('column')} / 2)`
223
- }, (ownerState.disableEqualOverflow || ownerState.parentDisableEqualOverflow) && {
224
- padding: `${getParentSpacing('row')} 0px 0px ${getParentSpacing('column')}`
225
- }));
210
+ boxSizing: 'border-box',
211
+ ...(ownerState.container && {
212
+ display: 'flex',
213
+ flexWrap: 'wrap',
214
+ ...(ownerState.wrap && ownerState.wrap !== 'wrap' && {
215
+ flexWrap: ownerState.wrap
216
+ }),
217
+ margin: `calc(${getSelfSpacing('row')} / -2) calc(${getSelfSpacing('column')} / -2)`,
218
+ ...(ownerState.disableEqualOverflow && {
219
+ margin: `calc(${getSelfSpacing('row')} * -1) 0px 0px calc(${getSelfSpacing('column')} * -1)`
220
+ })
221
+ }),
222
+ ...((!ownerState.container || isNestedContainer(ownerState)) && {
223
+ padding: `calc(${getParentSpacing('row')} / 2) calc(${getParentSpacing('column')} / 2)`,
224
+ ...((ownerState.disableEqualOverflow || ownerState.parentDisableEqualOverflow) && {
225
+ padding: `${getParentSpacing('row')} 0px 0px ${getParentSpacing('column')}`
226
+ })
227
+ })
228
+ };
226
229
  };
227
230
  export const generateSizeClassNames = gridSize => {
228
231
  const classNames = [];
@@ -1,4 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
1
  import PropTypes from 'prop-types';
3
2
  import { deepmerge } from '@mui/utils';
4
3
  import merge from './merge';
@@ -59,21 +58,23 @@ function breakpoints(styleFunction) {
59
58
  const extended = themeBreakpoints.keys.reduce((acc, key) => {
60
59
  if (props[key]) {
61
60
  acc = acc || {};
62
- acc[themeBreakpoints.up(key)] = styleFunction(_extends({
63
- theme
64
- }, props[key]));
61
+ acc[themeBreakpoints.up(key)] = styleFunction({
62
+ theme,
63
+ ...props[key]
64
+ });
65
65
  }
66
66
  return acc;
67
67
  }, null);
68
68
  return merge(base, extended);
69
69
  };
70
- newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {
70
+ newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? {
71
+ ...styleFunction.propTypes,
71
72
  xs: PropTypes.object,
72
73
  sm: PropTypes.object,
73
74
  md: PropTypes.object,
74
75
  lg: PropTypes.object,
75
76
  xl: PropTypes.object
76
- }) : {};
77
+ } : {};
77
78
  newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];
78
79
  return newStyleFunction;
79
80
  }
@@ -1,4 +1,5 @@
1
1
  import { formatMuiErrorMessage as _formatMuiErrorMessage } from "@mui/utils";
2
+ /* eslint-disable @typescript-eslint/naming-convention */
2
3
  /**
3
4
  * Returns a number whose value is limited to the given range.
4
5
  * @param {number} value The value to be clamped
package/esm/createBox.js CHANGED
@@ -1,6 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["className", "component"];
4
1
  import * as React from 'react';
5
2
  import clsx from 'clsx';
6
3
  import styled from '@mui/styled-engine';
@@ -19,18 +16,18 @@ export default function createBox(options = {}) {
19
16
  })(styleFunctionSx);
20
17
  const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {
21
18
  const theme = useTheme(defaultTheme);
22
- const _extendSxProp = extendSxProp(inProps),
23
- {
24
- className,
25
- component = 'div'
26
- } = _extendSxProp,
27
- other = _objectWithoutPropertiesLoose(_extendSxProp, _excluded);
28
- return /*#__PURE__*/_jsx(BoxRoot, _extends({
19
+ const {
20
+ className,
21
+ component = 'div',
22
+ ...other
23
+ } = extendSxProp(inProps);
24
+ return /*#__PURE__*/_jsx(BoxRoot, {
29
25
  as: component,
30
26
  ref: ref,
31
27
  className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),
32
- theme: themeId ? theme[themeId] || theme : theme
33
- }, other));
28
+ theme: themeId ? theme[themeId] || theme : theme,
29
+ ...other
30
+ });
34
31
  });
35
32
  return Box;
36
33
  }
@@ -1,6 +1,3 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["name", "slot", "skipVariantsResolver", "skipSx", "overridesResolver"];
4
1
  /* eslint-disable no-underscore-dangle */
5
2
  import styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';
6
3
  import { getDisplayName } from '@mui/utils';
@@ -83,25 +80,27 @@ export default function createStyled(input = {}) {
83
80
  slotShouldForwardProp = shouldForwardProp
84
81
  } = input;
85
82
  const systemSx = props => {
86
- return styleFunctionSx(_extends({}, props, {
87
- theme: resolveTheme(_extends({}, props, {
83
+ return styleFunctionSx({
84
+ ...props,
85
+ theme: resolveTheme({
86
+ ...props,
88
87
  defaultTheme,
89
88
  themeId
90
- }))
91
- }));
89
+ })
90
+ });
92
91
  };
93
92
  systemSx.__mui_systemSx = true;
94
93
  return (tag, inputOptions = {}) => {
95
94
  // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.
96
95
  processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));
97
96
  const {
98
- name: componentName,
99
- slot: componentSlot,
100
- skipVariantsResolver: inputSkipVariantsResolver,
101
- skipSx: inputSkipSx,
102
- overridesResolver
103
- } = inputOptions,
104
- options = _objectWithoutPropertiesLoose(inputOptions, _excluded);
97
+ name: componentName,
98
+ slot: componentSlot,
99
+ skipVariantsResolver: inputSkipVariantsResolver,
100
+ skipSx: inputSkipSx,
101
+ overridesResolver,
102
+ ...options
103
+ } = inputOptions;
105
104
 
106
105
  // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.
107
106
  const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver : componentSlot && componentSlot !== 'Root' || false;
@@ -122,38 +121,43 @@ export default function createStyled(input = {}) {
122
121
  // for string (html) tag, preserve the behavior in emotion & styled-components.
123
122
  shouldForwardPropOption = undefined;
124
123
  }
125
- const defaultStyledResolver = styledEngineStyled(tag, _extends({
124
+ const defaultStyledResolver = styledEngineStyled(tag, {
126
125
  shouldForwardProp: shouldForwardPropOption,
127
- label
128
- }, options));
126
+ label,
127
+ ...options
128
+ });
129
129
  const muiStyledResolver = (styleArg, ...expressions) => {
130
130
  const expressionsWithDefaultTheme = expressions ? expressions.map(stylesArg => {
131
131
  // On the server Emotion doesn't use React.forwardRef for creating components, so the created
132
132
  // component stays as a function. This condition makes sure that we do not interpolate functions
133
133
  // which are basically components used as a selectors.
134
134
  return typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg ? props => {
135
- return stylesArg(_extends({}, props, {
136
- theme: resolveTheme(_extends({}, props, {
135
+ return stylesArg({
136
+ ...props,
137
+ theme: resolveTheme({
138
+ ...props,
137
139
  defaultTheme,
138
140
  themeId
139
- }))
140
- }));
141
+ })
142
+ });
141
143
  } : stylesArg;
142
144
  }) : [];
143
145
  let transformedStyleArg = styleArg;
144
146
  if (componentName && overridesResolver) {
145
147
  expressionsWithDefaultTheme.push(props => {
146
- const theme = resolveTheme(_extends({}, props, {
148
+ const theme = resolveTheme({
149
+ ...props,
147
150
  defaultTheme,
148
151
  themeId
149
- }));
152
+ });
150
153
  const styleOverrides = getStyleOverrides(componentName, theme);
151
154
  if (styleOverrides) {
152
155
  const resolvedStyleOverrides = {};
153
156
  Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {
154
- resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends({}, props, {
157
+ resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle({
158
+ ...props,
155
159
  theme
156
- })) : slotStyle;
160
+ }) : slotStyle;
157
161
  });
158
162
  return overridesResolver(props, resolvedStyleOverrides);
159
163
  }
@@ -162,10 +166,11 @@ export default function createStyled(input = {}) {
162
166
  }
163
167
  if (componentName && !skipVariantsResolver) {
164
168
  expressionsWithDefaultTheme.push(props => {
165
- const theme = resolveTheme(_extends({}, props, {
169
+ const theme = resolveTheme({
170
+ ...props,
166
171
  defaultTheme,
167
172
  themeId
168
- }));
173
+ });
169
174
  return variantsResolver(props, getVariantStyles(componentName, theme), theme, componentName);
170
175
  });
171
176
  }
@@ -184,12 +189,14 @@ export default function createStyled(input = {}) {
184
189
  // which are basically components used as a selectors.
185
190
  styleArg.__emotion_real !== styleArg) {
186
191
  // If the type is function, we need to define the default theme.
187
- transformedStyleArg = props => styleArg(_extends({}, props, {
188
- theme: resolveTheme(_extends({}, props, {
192
+ transformedStyleArg = props => styleArg({
193
+ ...props,
194
+ theme: resolveTheme({
195
+ ...props,
189
196
  defaultTheme,
190
197
  themeId
191
- }))
192
- }));
198
+ })
199
+ });
193
200
  }
194
201
  const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);
195
202
  if (process.env.NODE_ENV !== 'production') {
@@ -1,6 +1,3 @@
1
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2
- import _extends from "@babel/runtime/helpers/esm/extends";
3
- const _excluded = ["values", "unit", "step"];
4
1
  // Sorted ASC by size. That's important.
5
2
  // It can't be configured as it's used statically for propTypes.
6
3
  export const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];
@@ -12,33 +9,34 @@ const sortBreakpointsValues = values => {
12
9
  // Sort in ascending order
13
10
  breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);
14
11
  return breakpointsAsArray.reduce((acc, obj) => {
15
- return _extends({}, acc, {
12
+ return {
13
+ ...acc,
16
14
  [obj.key]: obj.val
17
- });
15
+ };
18
16
  }, {});
19
17
  };
20
18
 
21
19
  // Keep in mind that @media is inclusive by the CSS specification.
22
20
  export default function createBreakpoints(breakpoints) {
23
21
  const {
24
- // The breakpoint **start** at this value.
25
- // For instance with the first breakpoint xs: [xs, sm).
26
- values = {
27
- xs: 0,
28
- // phone
29
- sm: 600,
30
- // tablet
31
- md: 900,
32
- // small laptop
33
- lg: 1200,
34
- // desktop
35
- xl: 1536 // large screen
36
- },
22
+ // The breakpoint **start** at this value.
23
+ // For instance with the first breakpoint xs: [xs, sm).
24
+ values = {
25
+ xs: 0,
26
+ // phone
27
+ sm: 600,
28
+ // tablet
29
+ md: 900,
30
+ // small laptop
31
+ lg: 1200,
32
+ // desktop
33
+ xl: 1536 // large screen
34
+ },
37
35
 
38
- unit = 'px',
39
- step = 5
40
- } = breakpoints,
41
- other = _objectWithoutPropertiesLoose(breakpoints, _excluded);
36
+ unit = 'px',
37
+ step = 5,
38
+ ...other
39
+ } = breakpoints;
42
40
  const sortedValues = sortBreakpointsValues(values);
43
41
  const keys = Object.keys(sortedValues);
44
42
  function up(key) {
@@ -70,7 +68,7 @@ export default function createBreakpoints(breakpoints) {
70
68
  }
71
69
  return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');
72
70
  }
73
- return _extends({
71
+ return {
74
72
  keys,
75
73
  values: sortedValues,
76
74
  up,
@@ -78,6 +76,7 @@ export default function createBreakpoints(breakpoints) {
78
76
  between,
79
77
  only,
80
78
  not,
81
- unit
82
- }, other);
79
+ unit,
80
+ ...other
81
+ };
83
82
  }
@@ -1,4 +1,8 @@
1
1
  import { createUnarySpacing } from '../spacing';
2
+
3
+ // The different signatures imply different meaning for their arguments that can't be expressed structurally.
4
+ // We express the difference with variable names.
5
+ /* tslint:disable:unified-signatures */
2
6
  /* tslint:enable:unified-signatures */
3
7
 
4
8
  export default function createSpacing(spacingInput = 8) {
@@ -1,6 +1,3 @@
1
- import _extends from "@babel/runtime/helpers/esm/extends";
2
- import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
3
- const _excluded = ["breakpoints", "palette", "spacing", "shape"];
4
1
  import { deepmerge } from '@mui/utils';
5
2
  import createBreakpoints from './createBreakpoints';
6
3
  import shape from './shape';
@@ -9,12 +6,12 @@ import styleFunctionSx from '../styleFunctionSx/styleFunctionSx';
9
6
  import defaultSxConfig from '../styleFunctionSx/defaultSxConfig';
10
7
  function createTheme(options = {}, ...args) {
11
8
  const {
12
- breakpoints: breakpointsInput = {},
13
- palette: paletteInput = {},
14
- spacing: spacingInput,
15
- shape: shapeInput = {}
16
- } = options,
17
- other = _objectWithoutPropertiesLoose(options, _excluded);
9
+ breakpoints: breakpointsInput = {},
10
+ palette: paletteInput = {},
11
+ spacing: spacingInput,
12
+ shape: shapeInput = {},
13
+ ...other
14
+ } = options;
18
15
  const breakpoints = createBreakpoints(breakpointsInput);
19
16
  const spacing = createSpacing(spacingInput);
20
17
  let muiTheme = deepmerge({
@@ -22,14 +19,21 @@ function createTheme(options = {}, ...args) {
22
19
  direction: 'ltr',
23
20
  components: {},
24
21
  // Inject component definitions.
25
- palette: _extends({
26
- mode: 'light'
27
- }, paletteInput),
22
+ palette: {
23
+ mode: 'light',
24
+ ...paletteInput
25
+ },
28
26
  spacing,
29
- shape: _extends({}, shape, shapeInput)
27
+ shape: {
28
+ ...shape,
29
+ ...shapeInput
30
+ }
30
31
  }, other);
31
32
  muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);
32
- muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);
33
+ muiTheme.unstable_sxConfig = {
34
+ ...defaultSxConfig,
35
+ ...(other == null ? void 0 : other.unstable_sxConfig)
36
+ };
33
37
  muiTheme.unstable_sx = function sx(props) {
34
38
  return styleFunctionSx({
35
39
  sx: props,