@mui/codemod 6.0.0-alpha.7 → 6.0.0-alpha.9

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 (124) hide show
  1. package/README.md +227 -30
  2. package/node/deprecations/accordion-props/test-cases/actual.js +6 -3
  3. package/node/deprecations/accordion-props/test-cases/expected.js +14 -10
  4. package/node/deprecations/accordion-props/test-cases/theme.expected.js +8 -7
  5. package/node/deprecations/alert-props/test-cases/expected.js +12 -4
  6. package/node/deprecations/alert-props/test-cases/theme.expected.js +12 -5
  7. package/node/deprecations/all/deprecations-all.js +6 -0
  8. package/node/deprecations/autocomplete-props/test-cases/expected.js +8 -6
  9. package/node/deprecations/autocomplete-props/test-cases/theme.expected.js +8 -7
  10. package/node/deprecations/avatar-group-props/avatar-group-props.js +87 -0
  11. package/node/deprecations/avatar-group-props/index.js +13 -0
  12. package/node/deprecations/avatar-group-props/test-cases/actual.js +56 -0
  13. package/node/deprecations/avatar-group-props/test-cases/expected.js +58 -0
  14. package/node/deprecations/avatar-group-props/test-cases/theme.actual.js +48 -0
  15. package/node/deprecations/avatar-group-props/test-cases/theme.expected.js +50 -0
  16. package/node/deprecations/avatar-props/test-cases/expected.js +8 -6
  17. package/node/deprecations/avatar-props/test-cases/theme.expected.js +8 -7
  18. package/node/deprecations/backdrop-props/test-cases/actual.js +3 -2
  19. package/node/deprecations/backdrop-props/test-cases/expected.js +3 -3
  20. package/node/deprecations/badge-props/test-cases/expected.js +12 -5
  21. package/node/deprecations/badge-props/test-cases/theme.expected.js +12 -5
  22. package/node/deprecations/form-control-label-props/test-cases/expected.js +4 -2
  23. package/node/deprecations/form-control-label-props/test-cases/theme.expected.js +4 -3
  24. package/node/deprecations/grid-props/grid-props.js +51 -0
  25. package/node/deprecations/grid-props/index.js +13 -0
  26. package/node/deprecations/grid-props/test-cases/actual.js +25 -0
  27. package/node/deprecations/grid-props/test-cases/expected.js +23 -0
  28. package/node/deprecations/grid-props/test-cases/theme.actual.js +24 -0
  29. package/node/deprecations/grid-props/test-cases/theme.expected.js +23 -0
  30. package/node/deprecations/list-item-props/index.js +13 -0
  31. package/node/deprecations/list-item-props/list-item-props.js +22 -0
  32. package/node/deprecations/list-item-props/test-cases/actual.js +43 -0
  33. package/node/deprecations/list-item-props/test-cases/expected.js +40 -0
  34. package/node/deprecations/list-item-props/test-cases/theme.actual.js +56 -0
  35. package/node/deprecations/list-item-props/test-cases/theme.expected.js +53 -0
  36. package/node/deprecations/popper-props/index.js +13 -0
  37. package/node/deprecations/popper-props/popper-props.js +22 -0
  38. package/node/deprecations/popper-props/test-cases/actual.js +27 -0
  39. package/node/deprecations/popper-props/test-cases/expected.js +24 -0
  40. package/node/deprecations/popper-props/test-cases/theme.actual.js +32 -0
  41. package/node/deprecations/popper-props/test-cases/theme.expected.js +29 -0
  42. package/node/deprecations/slider-props/test-cases/expected.js +12 -4
  43. package/node/deprecations/slider-props/test-cases/theme.expected.js +12 -5
  44. package/node/deprecations/speed-dial-props/test-cases/actual.js +3 -2
  45. package/node/deprecations/speed-dial-props/test-cases/expected.js +3 -3
  46. package/node/deprecations/step-label-props/test-cases/expected.js +8 -3
  47. package/node/deprecations/step-label-props/test-cases/theme.expected.js +8 -4
  48. package/node/deprecations/text-field-props/index.js +13 -0
  49. package/node/deprecations/text-field-props/test-cases/actual.js +27 -0
  50. package/node/deprecations/text-field-props/test-cases/expected.js +31 -0
  51. package/node/deprecations/text-field-props/test-cases/theme.actual.js +13 -0
  52. package/node/deprecations/text-field-props/test-cases/theme.expected.js +15 -0
  53. package/node/deprecations/text-field-props/text-field-props.js +48 -0
  54. package/node/deprecations/tooltip-props/index.js +13 -0
  55. package/node/deprecations/tooltip-props/test-cases/actual.js +92 -0
  56. package/node/deprecations/tooltip-props/test-cases/expected.js +84 -0
  57. package/node/deprecations/tooltip-props/test-cases/theme.actual.js +73 -0
  58. package/node/deprecations/tooltip-props/test-cases/theme.expected.js +65 -0
  59. package/node/deprecations/tooltip-props/tooltip-props.js +22 -0
  60. package/node/deprecations/utils/replaceComponentsWithSlots.js +29 -17
  61. package/node/util/migrateToVariants.js +198 -121
  62. package/node/v5.0.0/badge-overlap-value.test/actual.js +3 -4
  63. package/node/v5.0.0/badge-overlap-value.test/expected.js +3 -4
  64. package/node/v5.0.0/base-remove-component-prop.test/actual.js +4 -4
  65. package/node/v5.0.0/base-remove-component-prop.test/expected.js +4 -4
  66. package/node/v5.0.0/box-sx-prop.test/actual.js +4 -4
  67. package/node/v5.0.0/box-sx-prop.test/expected.js +3 -3
  68. package/node/v5.0.0/create-theme.test/custom-fn.actual.js +3 -4
  69. package/node/v5.0.0/create-theme.test/custom-fn.expected.js +3 -4
  70. package/node/v5.0.0/jss-to-styled.test/first.actual.js +11 -14
  71. package/node/v5.0.0/jss-to-styled.test/first.expected.js +11 -14
  72. package/node/v5.0.0/jss-to-styled.test/seventh.actual.js +4 -4
  73. package/node/v5.0.0/jss-to-styled.test/seventh.expected.js +4 -4
  74. package/node/v5.0.0/jss-to-styled.test/sixth.actual.js +3 -3
  75. package/node/v5.0.0/jss-to-styled.test/sixth.expected.js +3 -3
  76. package/node/v5.0.0/jss-to-styled.test/withCreateStyles.actual.js +3 -3
  77. package/node/v5.0.0/jss-to-styled.test/withCreateStyles.expected.js +3 -4
  78. package/node/v5.0.0/jss-to-styled.test/withCreateStyles1.actual.js +3 -3
  79. package/node/v5.0.0/jss-to-styled.test/withCreateStyles1.expected.js +3 -4
  80. package/node/v5.0.0/jss-to-styled.test/withCreateStyles2.actual.js +3 -3
  81. package/node/v5.0.0/jss-to-styled.test/withCreateStyles2.expected.js +3 -4
  82. package/node/v5.0.0/jss-to-styled.test/withCreateStyles3.actual.js +3 -3
  83. package/node/v5.0.0/jss-to-styled.test/withCreateStyles3.expected.js +3 -4
  84. package/node/v5.0.0/jss-to-tss-react.test/actual-mixins-pattern.js +6 -5
  85. package/node/v5.0.0/jss-to-tss-react.test/expected-mixins-pattern.js +6 -5
  86. package/node/v5.0.0/preset-safe.test/actual.js +6 -4
  87. package/node/v5.0.0/preset-safe.test/expected.js +9 -6
  88. package/node/v5.0.0/table-props.test/actual.js +4 -5
  89. package/node/v5.0.0/table-props.test/expected.js +4 -5
  90. package/node/v5.0.0/theme-spacing.test/large-actual.js +10 -10
  91. package/node/v5.0.0/theme-spacing.test/large-expected.js +10 -10
  92. package/node/v5.0.0/variant-prop.test/actual.js +12 -6
  93. package/node/v5.0.0/variant-prop.test/expected.js +15 -12
  94. package/node/v5.0.0/with-mobile-dialog.test/expected.js +6 -5
  95. package/node/v5.0.0/with-width.test/expected.js +6 -5
  96. package/node/v6.0.0/styled/test-cases/BasicStyled.actual.js +55 -44
  97. package/node/v6.0.0/styled/test-cases/BasicStyled.expected.js +5 -6
  98. package/node/v6.0.0/styled/test-cases/ConditionalStyled.actual.js +80 -70
  99. package/node/v6.0.0/styled/test-cases/ConditionalStyled.expected.js +7 -6
  100. package/node/v6.0.0/styled/test-cases/NestedSpread.actual.js +32 -26
  101. package/node/v6.0.0/styled/test-cases/NestedSpread.expected.js +7 -6
  102. package/node/v6.0.0/styled/test-cases/ThemePaletteMode.expected.js +28 -26
  103. package/node/v6.0.0/styled/test-cases/VariantAndModeStyled.actual.js +6 -5
  104. package/node/v6.0.0/styled/test-cases/VariantAndModeStyled.expected.js +8 -8
  105. package/node/v6.0.0/sx-prop/index.js +13 -0
  106. package/node/v6.0.0/sx-prop/sx-v6.js +355 -0
  107. package/node/v6.0.0/sx-prop/test-cases/basic-sx.actual.js +36 -0
  108. package/node/v6.0.0/sx-prop/test-cases/basic-sx.expected.js +46 -0
  109. package/node/v6.0.0/sx-prop/test-cases/sx-css-vars.actual.js +41 -0
  110. package/node/v6.0.0/sx-prop/test-cases/sx-css-vars.expected.js +71 -0
  111. package/node/v6.0.0/sx-prop/test-cases/sx-dynamic.actual.js +87 -0
  112. package/node/v6.0.0/sx-prop/test-cases/sx-dynamic.expected.js +102 -0
  113. package/node/v6.0.0/sx-prop/test-cases/sx-dynamic2.actual.js +49 -0
  114. package/node/v6.0.0/sx-prop/test-cases/sx-dynamic2.expected.js +64 -0
  115. package/node/v6.0.0/system-props/index.js +13 -0
  116. package/node/v6.0.0/system-props/removeSystemProps.js +242 -0
  117. package/node/v6.0.0/system-props/test-cases/system-props.actual.js +79 -0
  118. package/node/v6.0.0/system-props/test-cases/system-props.expected.js +92 -0
  119. package/node/v6.0.0/theme-v6/test-cases/basicTheme.actual.js +254 -225
  120. package/node/v6.0.0/theme-v6/test-cases/basicTheme.expected.js +180 -162
  121. package/node/v6.0.0/theme-v6/test-cases/themeVariants.actual.js +23 -21
  122. package/node/v6.0.0/theme-v6/test-cases/themeVariants.expected.js +20 -19
  123. package/node/v6.0.0/theme-v6/theme-v6.js +2 -2
  124. package/package.json +4 -4
@@ -1,103 +1,187 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.default = migrateToVariants;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
+ exports.getCreateBuildStyle = exports.getBuildArrowFunctionAST = exports.getAppendPaletteModeStyles = void 0;
8
+ exports.getIdentifierKey = getIdentifierKey;
9
+ exports.getObjectKey = getObjectKey;
10
+ exports.getObjectToArrowFunction = void 0;
11
+ exports.isThemePaletteMode = isThemePaletteMode;
12
+ exports.removeProperty = removeProperty;
9
13
  const MAX_DEPTH = 20;
14
+
10
15
  /**
11
- *
12
16
  * @param {import('jscodeshift').API['j']} j
13
- * @param {any[]} styles
17
+ * @returns
14
18
  */
15
- function migrateToVariants(j, styles) {
16
- function createBuildStyle(key, upperBuildStyle, applyStylesMode) {
17
- if (applyStylesMode) {
18
- upperBuildStyle = styleExpression => j.objectExpression([j.spreadElement(j.callExpression(j.memberExpression(j.identifier('theme'), j.identifier('applyStyles')), [j.stringLiteral(applyStylesMode), styleExpression]))]);
19
- }
20
- return function buildStyle(styleExpression) {
21
- if (key) {
22
- if (key.type === 'Identifier' || key.type === 'StringLiteral') {
23
- return upperBuildStyle(j.objectExpression([j.objectProperty(key, styleExpression)]));
24
- }
25
- if (key.type === 'TemplateLiteral' || key.type === 'CallExpression') {
26
- return upperBuildStyle(j.objectExpression([(0, _extends2.default)({}, j.objectProperty(key, styleExpression), {
27
- computed: true
28
- })]));
29
- }
19
+ const getCreateBuildStyle = j => function createBuildStyle(key, upperBuildStyle, applyStylesMode) {
20
+ if (applyStylesMode) {
21
+ upperBuildStyle = styleExpression => j.objectExpression([j.spreadElement(j.callExpression(j.memberExpression(j.identifier('theme'), j.identifier('applyStyles')), [j.stringLiteral(applyStylesMode), styleExpression]))]);
22
+ }
23
+ return function buildStyle(styleExpression) {
24
+ if (key) {
25
+ if (key.type === 'Identifier' || key.type === 'StringLiteral') {
26
+ return upperBuildStyle(j.objectExpression([j.objectProperty(key, styleExpression)]));
30
27
  }
31
- return upperBuildStyle ? upperBuildStyle(styleExpression) : styleExpression;
32
- };
28
+ if (key.type === 'TemplateLiteral' || key.type === 'CallExpression') {
29
+ return upperBuildStyle(j.objectExpression([{
30
+ ...j.objectProperty(key, styleExpression),
31
+ computed: true
32
+ }]));
33
+ }
34
+ }
35
+ return upperBuildStyle ? upperBuildStyle(styleExpression) : styleExpression;
36
+ };
37
+ };
38
+
39
+ /**
40
+ * @param {import('jscodeshift').API['j']} j
41
+ */
42
+ exports.getCreateBuildStyle = getCreateBuildStyle;
43
+ const getAppendPaletteModeStyles = j =>
44
+ /**
45
+ *
46
+ * @param {{ properties: any[] }} node
47
+ * @param {Record<string, any[] | import('jscodeshift').ObjectExpression>} modeStyles
48
+ */
49
+ function appendPaletteModeStyles(node, modeStyles) {
50
+ Object.entries(modeStyles).forEach(([mode, objectStyles]) => {
51
+ node.properties.push(j.spreadElement(j.callExpression(j.memberExpression(j.identifier('theme'), j.identifier('applyStyles')), [j.stringLiteral(mode), Array.isArray(objectStyles) ? j.objectExpression(objectStyles) : objectStyles])));
52
+ });
53
+ };
54
+
55
+ /**
56
+ *
57
+ * @param {import('jscodeshift').MemberExpression | import('jscodeshift').Identifier} node
58
+ */
59
+ exports.getAppendPaletteModeStyles = getAppendPaletteModeStyles;
60
+ function getIdentifierKey(node) {
61
+ if (node.type === 'MemberExpression') {
62
+ return node.property;
33
63
  }
64
+ return node;
65
+ }
34
66
 
35
- /**
36
- *
37
- * @param {import('ast-types').namedTypes.MemberExpression | import('ast-types').namedTypes.Identifier} node
38
- */
39
- function getIdentifierKey(node) {
40
- if (node.type === 'MemberExpression') {
41
- return node.property;
42
- }
43
- return node;
67
+ /**
68
+ *
69
+ * @param {import('jscodeshift').UnaryExpression | import('jscodeshift').MemberExpression | import('jscodeshift').Identifier} node
70
+ */
71
+ function getObjectKey(node) {
72
+ let tempNode = {
73
+ ...node
74
+ };
75
+ while (tempNode.type === 'UnaryExpression') {
76
+ tempNode = tempNode.argument;
77
+ }
78
+ while (tempNode.type === 'MemberExpression' || tempNode.type === 'OptionMemberExpression') {
79
+ tempNode = tempNode.object;
44
80
  }
81
+ return tempNode;
82
+ }
45
83
 
46
- /**
47
- *
48
- * @param {import('ast-types').namedTypes.UnaryExpression | import('ast-types').namedTypes.MemberExpression | import('ast-types').namedTypes.Identifier} node
49
- */
50
- function getObjectKey(node) {
51
- let tempNode = (0, _extends2.default)({}, node);
52
- while (tempNode.type === 'UnaryExpression') {
53
- tempNode = tempNode.argument;
54
- }
55
- while (tempNode.type === 'MemberExpression') {
56
- tempNode = tempNode.object;
84
+ /**
85
+ *
86
+ * @param {import('jscodeshift').ObjectExpression} node
87
+ */
88
+ function removeProperty(parentNode, child) {
89
+ if (parentNode) {
90
+ if (parentNode.type === 'ObjectExpression') {
91
+ parentNode.properties = parentNode.properties.filter(prop => prop !== child && prop.value !== child);
57
92
  }
58
- return tempNode;
59
93
  }
94
+ }
60
95
 
61
- /**
62
- *
63
- * @param {import('ast-types').namedTypes.ObjectExpression} objectExpression
64
- * @param {import('ast-types').namedTypes.BinaryExpression} addtional
65
- */
66
- function objectToArrowFunction(objectExpression, addtional) {
67
- const paramKeys = new Set();
68
- let left;
69
- objectExpression.properties.forEach((prop, index) => {
70
- paramKeys.add(prop.key.name);
71
- const result = j.binaryExpression('===', prop.key, prop.value);
72
- if (index === 0) {
73
- left = result;
74
- } else {
75
- left = j.logicalExpression('&&', left, result);
96
+ /**
97
+ * @param {import('jscodeshift').API['j']} j
98
+ */
99
+ const getBuildArrowFunctionAST = j =>
100
+ /**
101
+ *
102
+ * @param {Set<string> | import('jscodeshift').Expression[]} params
103
+ * @param {import('jscodeshift').BlockStatement} body
104
+ * @returns
105
+ */
106
+ function buildArrowFunctionAST(params, body) {
107
+ const destructured = [...params].every(param => typeof param === 'string');
108
+ return j.arrowFunctionExpression(destructured ? [j.objectPattern([...params].map(k => ({
109
+ ...j.objectProperty(j.identifier(k), j.identifier(k)),
110
+ shorthand: true
111
+ })))] : params, body);
112
+ };
113
+
114
+ /**
115
+ * @param {import('jscodeshift').API['j']} j
116
+ */
117
+ exports.getBuildArrowFunctionAST = getBuildArrowFunctionAST;
118
+ const getObjectToArrowFunction = j => {
119
+ const buildArrowFunctionAST = getBuildArrowFunctionAST(j);
120
+ return (
121
+ /**
122
+ *
123
+ * @param {import('jscodeshift').ObjectExpression} objectExpression
124
+ * @param {import('jscodeshift').BinaryExpression} addtional
125
+ */
126
+ function objectToArrowFunction(objectExpression, addtional) {
127
+ const paramKeys = new Set();
128
+ let left;
129
+ objectExpression.properties.forEach((prop, index) => {
130
+ paramKeys.add(prop.key.name);
131
+ const result = j.binaryExpression('===', prop.key, prop.value);
132
+ if (index === 0) {
133
+ left = result;
134
+ } else {
135
+ left = j.logicalExpression('&&', left, result);
136
+ }
137
+ });
138
+ if (addtional) {
139
+ paramKeys.add(getObjectKey(addtional.left).name);
76
140
  }
77
- });
78
- if (addtional) {
79
- paramKeys.add(getObjectKey(addtional.left).name);
141
+ return buildArrowFunctionAST(paramKeys, addtional ? j.logicalExpression('&&', left, addtional) : left);
80
142
  }
81
- return buildArrowFunctionAST(paramKeys, addtional ? j.logicalExpression('&&', left, addtional) : left);
82
- }
143
+ );
144
+ };
145
+
146
+ /**
147
+ *
148
+ * @param {undefined | null | import('jscodeshift').Expression} node
149
+ */
150
+ exports.getObjectToArrowFunction = getObjectToArrowFunction;
151
+ function isThemePaletteMode(node) {
152
+ return (node == null ? void 0 : node.type) === 'MemberExpression' && node.object.type === 'MemberExpression' && node.object.object.name === 'theme' && node.object.property.name === 'palette' && node.property.name === 'mode';
153
+ }
154
+
155
+ /**
156
+ *
157
+ * @param {import('jscodeshift').API['j']} j
158
+ * @param {any[]} styles
159
+ */
160
+ function migrateToVariants(j, styles) {
161
+ const createBuildStyle = getCreateBuildStyle(j);
162
+ const appendPaletteModeStyles = getAppendPaletteModeStyles(j);
163
+ const buildArrowFunctionAST = getBuildArrowFunctionAST(j);
164
+ const objectToArrowFunction = getObjectToArrowFunction(j);
83
165
 
84
166
  /**
85
167
  *
86
- * @param {import('ast-types').namedTypes.Identifier | import('ast-types').namedTypes.BinaryExpression | import('ast-types').namedTypes.UnaryExpression | import('ast-types').namedTypes.MemberExpression} node
168
+ * @param {import('jscodeshift').Identifier | import('jscodeshift').BinaryExpression | import('jscodeshift').UnaryExpression | import('jscodeshift').MemberExpression} node
87
169
  */
88
170
  function inverseBinaryExpression(node) {
89
171
  if (node.type === 'Identifier' || node.type === 'MemberExpression') {
90
172
  return j.unaryExpression('!', node);
91
173
  }
92
174
  if (node.operator === '===') {
93
- return (0, _extends2.default)({}, node, {
175
+ return {
176
+ ...node,
94
177
  operator: '!=='
95
- });
178
+ };
96
179
  }
97
180
  if (node.operator === '!==') {
98
- return (0, _extends2.default)({}, node, {
181
+ return {
182
+ ...node,
99
183
  operator: '==='
100
- });
184
+ };
101
185
  }
102
186
  if (node.operator === '!') {
103
187
  var _node$argument;
@@ -108,18 +192,6 @@ function migrateToVariants(j, styles) {
108
192
  }
109
193
  return node;
110
194
  }
111
-
112
- /**
113
- *
114
- * @param {import('ast-types').namedTypes.ObjectExpression} node
115
- */
116
- function removeProperty(parentNode, child) {
117
- if (parentNode) {
118
- if (parentNode.type === 'ObjectExpression') {
119
- parentNode.properties = parentNode.properties.filter(prop => prop !== child && prop.value !== child);
120
- }
121
- }
122
- }
123
195
  function buildObjectAST(jsObject) {
124
196
  const result = j.objectExpression([]);
125
197
  Object.entries(jsObject).forEach(([key, value]) => {
@@ -127,32 +199,18 @@ function migrateToVariants(j, styles) {
127
199
  });
128
200
  return result;
129
201
  }
130
- function buildArrowFunctionAST(params, body) {
131
- return j.arrowFunctionExpression([j.objectPattern([...params].map(k => (0, _extends2.default)({}, j.objectProperty(j.identifier(k), j.identifier(k)), {
132
- shorthand: true
133
- })))], body);
134
- }
135
202
 
136
203
  /**
137
204
  *
138
- * @param {{ properties: any[] }} node
139
- * @param {Record<string, any[] | import('ast-types').namedTypes.ObjectExpression>} modeStyles
140
- */
141
- function appendPaletteModeStyles(node, modeStyles) {
142
- Object.entries(modeStyles).forEach(([mode, objectStyles]) => {
143
- node.properties.push(j.spreadElement(j.callExpression(j.memberExpression(j.identifier('theme'), j.identifier('applyStyles')), [j.stringLiteral(mode), Array.isArray(objectStyles) ? j.objectExpression(objectStyles) : objectStyles])));
144
- });
145
- }
146
-
147
- /**
148
- *
149
- * @param {import('ast-types').namedTypes.LogicalExpression | import('ast-types').namedTypes.BinaryExpression | import('ast-types').namedTypes.UnaryExpression | import('ast-types').namedTypes.MemberExpression} node
205
+ * @param {import('jscodeshift').LogicalExpression | import('jscodeshift').BinaryExpression | import('jscodeshift').UnaryExpression | import('jscodeshift').MemberExpression} node
150
206
  */
151
207
  function buildProps(node) {
152
208
  const properties = [];
153
209
  const variables = new Set();
154
210
  let isAllEqual = true;
155
- let tempNode = (0, _extends2.default)({}, node);
211
+ let tempNode = {
212
+ ...node
213
+ };
156
214
  function assignProperties(_node) {
157
215
  if (_node.type === 'BinaryExpression') {
158
216
  variables.add(getObjectKey(_node.left).name);
@@ -191,7 +249,9 @@ function migrateToVariants(j, styles) {
191
249
  assignProperties(tempNode.left);
192
250
  break;
193
251
  }
194
- tempNode = (0, _extends2.default)({}, tempNode.left);
252
+ tempNode = {
253
+ ...tempNode.left
254
+ };
195
255
  }
196
256
  }
197
257
  if (!isAllEqual) {
@@ -211,9 +271,6 @@ function migrateToVariants(j, styles) {
211
271
  });
212
272
  return buildArrowFunctionAST(variables, j.logicalExpression('&&', parentArrow.body, currentArrow.body));
213
273
  }
214
- function isThemePaletteMode(node) {
215
- return node.type === 'MemberExpression' && node.object.type === 'MemberExpression' && node.object.object.name === 'theme' && node.object.property.name === 'palette' && node.property.name === 'mode';
216
- }
217
274
 
218
275
  // 2. Find logical spread expressions to convert to variants
219
276
  styles.forEach(style => {
@@ -224,10 +281,13 @@ function migrateToVariants(j, styles) {
224
281
  parameters.add(prop.key.name);
225
282
  });
226
283
  }
284
+ if (param.type === 'Identifier') {
285
+ parameters.add(param.name);
286
+ }
227
287
  });
228
288
  const variants = [];
229
289
  if (style.body.type === 'LogicalExpression') {
230
- if (style.params[0] && style.params[0].type === 'ObjectPattern' && style.params[0].properties.some(prop => prop.key.name !== 'theme')) {
290
+ if (style.params[0] && (style.params[0].type === 'Identifier' || style.params[0].type === 'ObjectPattern' && style.params[0].properties.some(prop => prop.key.name !== 'theme'))) {
231
291
  // case: ({ theme, ownerState }) => ownerState.variant === 'regular' && theme.mixins.toolbar
232
292
  style.body = j.objectExpression([j.objectProperty(j.identifier('variants'), j.arrayExpression([j.objectExpression([j.objectProperty(j.identifier('props'), buildProps(style.body.left)), j.objectProperty(j.identifier('style'), style.body.right)])]))]);
233
293
  }
@@ -259,7 +319,8 @@ function migrateToVariants(j, styles) {
259
319
  const modeStyles = {}; // to collect styles from `theme.palette.mode === '...'`
260
320
  data.node.properties.forEach(prop => {
261
321
  if (prop.type === 'ObjectProperty') {
262
- recurseObjectExpression((0, _extends2.default)({}, data, {
322
+ recurseObjectExpression({
323
+ ...data,
263
324
  node: prop.value,
264
325
  parentNode: data.node,
265
326
  key: prop.key,
@@ -268,13 +329,14 @@ function migrateToVariants(j, styles) {
268
329
  prop.value = newValue;
269
330
  },
270
331
  modeStyles
271
- }));
332
+ });
272
333
  } else {
273
- recurseObjectExpression((0, _extends2.default)({}, data, {
334
+ recurseObjectExpression({
335
+ ...data,
274
336
  node: prop,
275
337
  parentNode: data.node,
276
338
  buildStyle: createBuildStyle(prop.key, data.buildStyle)
277
- }));
339
+ });
278
340
  }
279
341
  });
280
342
  appendPaletteModeStyles(data.node, modeStyles);
@@ -288,7 +350,8 @@ function migrateToVariants(j, styles) {
288
350
  const mode = data.node.argument.left.right.value;
289
351
  data.node.argument.right.properties.forEach(prop => {
290
352
  if (prop.type === 'ObjectProperty') {
291
- recurseObjectExpression((0, _extends2.default)({}, data, {
353
+ recurseObjectExpression({
354
+ ...data,
292
355
  node: prop.value,
293
356
  parentNode: data.node.argument.right,
294
357
  key: prop.key,
@@ -296,13 +359,14 @@ function migrateToVariants(j, styles) {
296
359
  replaceValue: newValue => {
297
360
  prop.value = newValue;
298
361
  }
299
- }));
362
+ });
300
363
  } else {
301
- recurseObjectExpression((0, _extends2.default)({}, data, {
364
+ recurseObjectExpression({
365
+ ...data,
302
366
  node: prop,
303
367
  parentNode: data.node.argument.right,
304
368
  buildStyle: createBuildStyle(prop.key, data.buildStyle, mode)
305
- }));
369
+ });
306
370
  }
307
371
  });
308
372
  appendPaletteModeStyles(data.parentNode, {
@@ -326,7 +390,8 @@ function migrateToVariants(j, styles) {
326
390
  if (variant.style.type === 'ObjectExpression') {
327
391
  variant.style.properties.forEach(prop => {
328
392
  if (prop.type === 'ObjectProperty') {
329
- recurseObjectExpression((0, _extends2.default)({}, data, {
393
+ recurseObjectExpression({
394
+ ...data,
330
395
  node: prop.value,
331
396
  parentNode: variant.style,
332
397
  props: variant.props,
@@ -336,14 +401,15 @@ function migrateToVariants(j, styles) {
336
401
  prop.value = newValue;
337
402
  },
338
403
  modeStyles
339
- }));
404
+ });
340
405
  } else {
341
- recurseObjectExpression((0, _extends2.default)({}, data, {
406
+ recurseObjectExpression({
407
+ ...data,
342
408
  node: prop,
343
409
  parentNode: variant.style,
344
410
  props: variant.props,
345
411
  buildStyle: createBuildStyle(prop.key, data.buildStyle)
346
- }));
412
+ });
347
413
  }
348
414
  });
349
415
  }
@@ -353,10 +419,11 @@ function migrateToVariants(j, styles) {
353
419
  removeProperty(data.parentNode, data.node);
354
420
  }
355
421
  if (data.node.argument.type === 'ConditionalExpression') {
356
- recurseObjectExpression((0, _extends2.default)({}, data, {
422
+ recurseObjectExpression({
423
+ ...data,
357
424
  node: data.node.argument,
358
425
  parentNode: data.node
359
- }));
426
+ });
360
427
  removeProperty(data.parentNode, data.node);
361
428
  }
362
429
  }
@@ -419,7 +486,8 @@ function migrateToVariants(j, styles) {
419
486
  if (((_data$parentNode3 = data.parentNode) == null ? void 0 : _data$parentNode3.type) === 'ObjectExpression') {
420
487
  const modeStyles = {};
421
488
  data.node.expressions.forEach((expression, index) => {
422
- recurseObjectExpression((0, _extends2.default)({}, data, {
489
+ recurseObjectExpression({
490
+ ...data,
423
491
  node: expression,
424
492
  parentNode: data.parentNode,
425
493
  buildStyle: createBuildStyle(data.key, data.buildStyle),
@@ -427,19 +495,28 @@ function migrateToVariants(j, styles) {
427
495
  data.node.expressions[index] = newValue;
428
496
  },
429
497
  modeStyles
430
- }));
498
+ });
431
499
  });
432
500
  if (data.modeStyles) {
433
501
  Object.entries(modeStyles).forEach(([mode, objectStyles]) => {
434
- const clonedNode = (0, _extends2.default)({}, data.node, {
435
- expressions: data.node.expressions.map(expression => (0, _extends2.default)({}, expression))
436
- });
502
+ const clonedNode = {
503
+ ...data.node,
504
+ expressions: data.node.expressions.map(expression => ({
505
+ ...expression
506
+ }))
507
+ };
437
508
  clonedNode.expressions = objectStyles.map(item => item.value);
438
509
  if (!data.modeStyles[mode]) {
439
510
  data.modeStyles[mode] = [];
440
511
  }
441
512
  data.modeStyles[mode].push(j.objectProperty(data.key, clonedNode));
442
513
  });
514
+ if (data.key) {
515
+ var _data$replaceValue2;
516
+ // to remove the arrow function
517
+ // { ...: theme => `1px solid...` } to { ...: `1px solid...` }
518
+ (_data$replaceValue2 = data.replaceValue) == null || _data$replaceValue2.call(data, data.node);
519
+ }
443
520
  }
444
521
  }
445
522
  }
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
3
  var _jsxRuntime = require("react/jsx-runtime");
6
4
  /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
7
5
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
@@ -31,9 +29,10 @@ var _jsxRuntime = require("react/jsx-runtime");
31
29
  '& .MuiBadge-anchorOriginBottomLeftCircle': {}
32
30
  }
33
31
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
34
- classes: (0, _extends2.default)({}, badgeClasses, {
32
+ classes: {
33
+ ...badgeClasses,
35
34
  badge: badgeClasses.badge
36
- }),
35
+ },
37
36
  children: icon
38
37
  })]
39
38
  });
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
3
  var _jsxRuntime = require("react/jsx-runtime");
6
4
  /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
7
5
  children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
@@ -31,9 +29,10 @@ var _jsxRuntime = require("react/jsx-runtime");
31
29
  '& .MuiBadge-anchorOriginBottomLeftCircular': {}
32
30
  }
33
31
  }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Badge, {
34
- classes: (0, _extends2.default)({}, badgeClasses, {
32
+ classes: {
33
+ ...badgeClasses,
35
34
  badge: badgeClasses.badge
36
- }),
35
+ },
37
36
  children: icon
38
37
  })]
39
38
  });
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
4
  var _Input = _interopRequireDefault(require("@mui/material/Input"));
6
5
  var _Input2 = _interopRequireDefault(require("@mui/base/Input"));
7
6
  var _Switch = _interopRequireDefault(require("@mui/base/Switch"));
@@ -15,9 +14,10 @@ var _jsxRuntime = require("react/jsx-runtime");
15
14
  /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input2.default, {
16
15
  component: CustomRoot
17
16
  });
18
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input2.default, (0, _extends2.default)({
19
- component: CustomRoot
20
- }, others));
17
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input2.default, {
18
+ component: CustomRoot,
19
+ ...others
20
+ });
21
21
  /*#__PURE__*/(0, _jsxRuntime.jsx)(_Switch.default, {
22
22
  component: CustomRoot,
23
23
  randomProp: "1",
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
5
4
  var _Input = _interopRequireDefault(require("@mui/material/Input"));
6
5
  var _Input2 = _interopRequireDefault(require("@mui/base/Input"));
7
6
  var _Switch = _interopRequireDefault(require("@mui/base/Switch"));
@@ -17,11 +16,12 @@ var _jsxRuntime = require("react/jsx-runtime");
17
16
  root: CustomRoot
18
17
  }
19
18
  });
20
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input2.default, (0, _extends2.default)({
19
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Input2.default, {
21
20
  slots: {
22
21
  root: CustomRoot
23
- }
24
- }, others));
22
+ },
23
+ ...others
24
+ });
25
25
  /*#__PURE__*/(0, _jsxRuntime.jsx)(_Switch.default, {
26
26
  slots: {
27
27
  root: CustomRoot
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = BoxComponent;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var React = _interopRequireWildcard(require("react"));
10
9
  var _Box = _interopRequireDefault(require("@material-ui/core/Box"));
11
10
  var _Button2 = _interopRequireDefault(require("@material-ui/core/Button"));
@@ -34,8 +33,9 @@ function BoxComponent(props) {
34
33
  component: "span",
35
34
  children: "Save"
36
35
  }))
37
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, (0, _extends2.default)({
38
- p: [1, 2, 4]
39
- }, props))]
36
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
37
+ p: [1, 2, 4],
38
+ ...props
39
+ })]
40
40
  });
41
41
  }
@@ -5,7 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = BoxComponent;
8
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
8
  var React = _interopRequireWildcard(require("react"));
10
9
  var _Box = _interopRequireDefault(require("@material-ui/core/Box"));
11
10
  var _Button2 = _interopRequireDefault(require("@material-ui/core/Button"));
@@ -36,10 +35,11 @@ function BoxComponent(props) {
36
35
  component: "span",
37
36
  children: "Save"
38
37
  }))
39
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, (0, _extends2.default)({}, props, {
38
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_Box.default, {
39
+ ...props,
40
40
  sx: {
41
41
  p: [1, 2, 4]
42
42
  }
43
- }))]
43
+ })]
44
44
  });
45
45
  }
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.createTheme = createTheme;
8
7
  exports.createThemeOptions = createThemeOptions;
9
8
  exports.createThemeOverrides = createThemeOverrides;
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
9
  var _core = require("@material-ui/core");
12
10
  function createThemeOptions() {
13
11
  return {};
@@ -19,8 +17,9 @@ function createTheme(options) {
19
17
  const themeOptions = createThemeOptions(options);
20
18
  const baseTheme = (0, _core.createMuiTheme)(themeOptions);
21
19
  const overrides = createThemeOverrides(baseTheme);
22
- const theme = (0, _extends2.default)({}, baseTheme, {
20
+ const theme = {
21
+ ...baseTheme,
23
22
  overrides
24
- });
23
+ };
25
24
  return theme;
26
25
  }
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
3
  Object.defineProperty(exports, "__esModule", {
5
4
  value: true
6
5
  });
7
6
  exports.createTheme = createTheme;
8
7
  exports.createThemeOptions = createThemeOptions;
9
8
  exports.createThemeOverrides = createThemeOverrides;
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
9
  var _core = require("@material-ui/core");
12
10
  function createThemeOptions() {
13
11
  return {};
@@ -19,8 +17,9 @@ function createTheme(options) {
19
17
  const themeOptions = createThemeOptions(options);
20
18
  const baseTheme = (0, _core.createTheme)(themeOptions);
21
19
  const overrides = createThemeOverrides(baseTheme);
22
- const theme = (0, _extends2.default)({}, baseTheme, {
20
+ const theme = {
21
+ ...baseTheme,
23
22
  overrides
24
- });
23
+ };
25
24
  return theme;
26
25
  }