@mui/codemod 6.0.0-alpha.8 → 6.0.0-beta.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 (126) hide show
  1. package/README.md +609 -180
  2. package/codemod.js +0 -2
  3. package/node/deprecations/all/deprecations-all.js +34 -22
  4. package/node/deprecations/all/postcss.config.js +7 -1
  5. package/node/deprecations/autocomplete-props/autocomplete-props.js +0 -32
  6. package/node/deprecations/autocomplete-props/test-cases/actual.js +13 -35
  7. package/node/deprecations/autocomplete-props/test-cases/expected.js +13 -41
  8. package/node/deprecations/autocomplete-props/test-cases/theme.actual.js +0 -18
  9. package/node/deprecations/autocomplete-props/test-cases/theme.expected.js +0 -22
  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/backdrop-props/backdrop-props.js +3 -5
  17. package/node/deprecations/backdrop-props/test-cases/actual.js +30 -14
  18. package/node/deprecations/backdrop-props/test-cases/expected.js +23 -13
  19. package/node/deprecations/backdrop-props/test-cases/theme.actual.js +32 -6
  20. package/node/deprecations/backdrop-props/test-cases/theme.expected.js +27 -5
  21. package/node/deprecations/filled-input-props/filled-input-props.js +22 -0
  22. package/node/deprecations/filled-input-props/index.js +13 -0
  23. package/node/deprecations/filled-input-props/test-cases/actual.js +60 -0
  24. package/node/deprecations/filled-input-props/test-cases/expected.js +52 -0
  25. package/node/deprecations/filled-input-props/test-cases/theme.actual.js +73 -0
  26. package/node/deprecations/filled-input-props/test-cases/theme.expected.js +65 -0
  27. package/node/deprecations/grid-props/grid-props.js +51 -0
  28. package/node/deprecations/grid-props/index.js +13 -0
  29. package/node/deprecations/grid-props/test-cases/actual.js +25 -0
  30. package/node/deprecations/grid-props/test-cases/expected.js +23 -0
  31. package/node/deprecations/grid-props/test-cases/theme.actual.js +24 -0
  32. package/node/deprecations/grid-props/test-cases/theme.expected.js +23 -0
  33. package/node/deprecations/input-base-props/index.js +13 -0
  34. package/node/deprecations/input-base-props/input-base-props.js +22 -0
  35. package/node/deprecations/input-base-props/test-cases/actual.js +60 -0
  36. package/node/deprecations/input-base-props/test-cases/expected.js +52 -0
  37. package/node/deprecations/input-base-props/test-cases/theme.actual.js +73 -0
  38. package/node/deprecations/input-base-props/test-cases/theme.expected.js +65 -0
  39. package/node/deprecations/input-props/index.js +13 -0
  40. package/node/deprecations/input-props/input-props.js +22 -0
  41. package/node/deprecations/input-props/test-cases/actual.js +60 -0
  42. package/node/deprecations/input-props/test-cases/expected.js +52 -0
  43. package/node/deprecations/input-props/test-cases/theme.actual.js +73 -0
  44. package/node/deprecations/input-props/test-cases/theme.expected.js +65 -0
  45. package/node/deprecations/list-item-props/index.js +13 -0
  46. package/node/deprecations/list-item-props/list-item-props.js +22 -0
  47. package/node/deprecations/list-item-props/test-cases/actual.js +43 -0
  48. package/node/deprecations/list-item-props/test-cases/expected.js +40 -0
  49. package/node/deprecations/list-item-props/test-cases/theme.actual.js +56 -0
  50. package/node/deprecations/list-item-props/test-cases/theme.expected.js +53 -0
  51. package/node/deprecations/modal-props/index.js +13 -0
  52. package/node/deprecations/modal-props/modal-props.js +22 -0
  53. package/node/deprecations/modal-props/test-cases/actual.js +43 -0
  54. package/node/deprecations/modal-props/test-cases/expected.js +40 -0
  55. package/node/deprecations/modal-props/test-cases/theme.actual.js +56 -0
  56. package/node/deprecations/modal-props/test-cases/theme.expected.js +53 -0
  57. package/node/deprecations/outlined-input-props/index.js +13 -0
  58. package/node/deprecations/outlined-input-props/outlined-input-props.js +22 -0
  59. package/node/deprecations/outlined-input-props/test-cases/actual.js +60 -0
  60. package/node/deprecations/outlined-input-props/test-cases/expected.js +52 -0
  61. package/node/deprecations/outlined-input-props/test-cases/theme.actual.js +73 -0
  62. package/node/deprecations/outlined-input-props/test-cases/theme.expected.js +65 -0
  63. package/node/deprecations/popper-props/index.js +13 -0
  64. package/node/deprecations/popper-props/popper-props.js +22 -0
  65. package/node/deprecations/popper-props/test-cases/actual.js +27 -0
  66. package/node/deprecations/popper-props/test-cases/expected.js +24 -0
  67. package/node/deprecations/popper-props/test-cases/theme.actual.js +32 -0
  68. package/node/deprecations/popper-props/test-cases/theme.expected.js +29 -0
  69. package/node/deprecations/step-label-props/step-label-props.js +0 -14
  70. package/node/deprecations/step-label-props/test-cases/actual.js +0 -23
  71. package/node/deprecations/step-label-props/test-cases/expected.js +0 -27
  72. package/node/deprecations/step-label-props/test-cases/theme.actual.js +0 -22
  73. package/node/deprecations/step-label-props/test-cases/theme.expected.js +0 -28
  74. package/node/deprecations/tab-classes/index.js +13 -0
  75. package/node/deprecations/tab-classes/postcss-plugin.js +30 -0
  76. package/node/deprecations/tab-classes/postcss.config.js +8 -0
  77. package/node/deprecations/tab-classes/tab-classes.js +53 -0
  78. package/node/deprecations/tab-classes/test-cases/actual.js +5 -0
  79. package/node/deprecations/tab-classes/test-cases/expected.js +5 -0
  80. package/node/deprecations/table-sort-label-classes/index.js +13 -0
  81. package/node/deprecations/table-sort-label-classes/postcss-plugin.js +33 -0
  82. package/node/deprecations/table-sort-label-classes/postcss.config.js +8 -0
  83. package/node/deprecations/table-sort-label-classes/table-sort-label-classes.js +77 -0
  84. package/node/deprecations/table-sort-label-classes/test-cases/actual.js +7 -0
  85. package/node/deprecations/table-sort-label-classes/test-cases/expected.js +7 -0
  86. package/node/deprecations/tooltip-props/index.js +13 -0
  87. package/node/deprecations/tooltip-props/test-cases/actual.js +92 -0
  88. package/node/deprecations/tooltip-props/test-cases/expected.js +84 -0
  89. package/node/deprecations/tooltip-props/test-cases/theme.actual.js +73 -0
  90. package/node/deprecations/tooltip-props/test-cases/theme.expected.js +65 -0
  91. package/node/deprecations/tooltip-props/tooltip-props.js +22 -0
  92. package/node/util/migrateToVariants.js +244 -138
  93. package/node/v5.0.0/theme-spacing.test/large-actual.js +1 -1
  94. package/node/v5.0.0/theme-spacing.test/large-expected.js +1 -1
  95. package/node/v6.0.0/grid-v2-props/grid-v2-props.js +149 -0
  96. package/node/v6.0.0/grid-v2-props/index.js +13 -0
  97. package/node/v6.0.0/grid-v2-props/test-cases/actual.js +85 -0
  98. package/node/v6.0.0/grid-v2-props/test-cases/custom-breakpoints.actual.js +18 -0
  99. package/node/v6.0.0/grid-v2-props/test-cases/custom-breakpoints.expected.js +22 -0
  100. package/node/v6.0.0/grid-v2-props/test-cases/expected.js +97 -0
  101. package/node/v6.0.0/styled/test-cases/ConditionalStyled.expected.js +9 -22
  102. package/node/v6.0.0/styled/test-cases/DynamicPropsStyled.actual.js +39 -0
  103. package/node/v6.0.0/styled/test-cases/DynamicPropsStyled.expected.js +65 -0
  104. package/node/v6.0.0/styled/test-cases/LogicalStyled.actual.js +31 -1
  105. package/node/v6.0.0/styled/test-cases/LogicalStyled.expected.js +39 -1
  106. package/node/v6.0.0/styled/test-cases/NestedSpread.expected.js +11 -13
  107. package/node/v6.0.0/sx-prop/index.js +13 -0
  108. package/node/v6.0.0/sx-prop/sx-v6.js +405 -0
  109. package/node/v6.0.0/sx-prop/test-cases/basic-sx.actual.js +36 -0
  110. package/node/v6.0.0/sx-prop/test-cases/basic-sx.expected.js +46 -0
  111. package/node/v6.0.0/sx-prop/test-cases/sx-css-vars.actual.js +55 -0
  112. package/node/v6.0.0/sx-prop/test-cases/sx-css-vars.expected.js +88 -0
  113. package/node/v6.0.0/sx-prop/test-cases/sx-dynamic.actual.js +107 -0
  114. package/node/v6.0.0/sx-prop/test-cases/sx-dynamic.expected.js +120 -0
  115. package/node/v6.0.0/sx-prop/test-cases/sx-dynamic2.actual.js +49 -0
  116. package/node/v6.0.0/sx-prop/test-cases/sx-dynamic2.expected.js +64 -0
  117. package/node/v6.0.0/sx-prop/test-cases/sx-line-break.actual.js +69 -0
  118. package/node/v6.0.0/sx-prop/test-cases/sx-line-break.expected.js +69 -0
  119. package/node/v6.0.0/sx-prop/test-cases/sx-value-callback.actual.js +102 -0
  120. package/node/v6.0.0/sx-prop/test-cases/sx-value-callback.expected.js +111 -0
  121. package/node/v6.0.0/system-props/index.js +13 -0
  122. package/node/v6.0.0/system-props/removeSystemProps.js +242 -0
  123. package/node/v6.0.0/system-props/test-cases/system-props.actual.js +79 -0
  124. package/node/v6.0.0/system-props/test-cases/system-props.expected.js +92 -0
  125. package/node/v6.0.0/theme-v6/theme-v6.js +2 -2
  126. package/package.json +7 -7
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _sxV.default;
11
+ }
12
+ });
13
+ var _sxV = _interopRequireDefault(require("./sx-v6"));
@@ -0,0 +1,405 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = sxV6;
8
+ var _getReturnExpression = _interopRequireDefault(require("../../util/getReturnExpression"));
9
+ var _migrateToVariants = require("../../util/migrateToVariants");
10
+ /**
11
+ *
12
+ * @param {import('jscodeshift').MemberExpression | import('jscodeshift').Identifier} node
13
+ */
14
+ function getCssVarName(node) {
15
+ let varName = '-';
16
+ while (node.type === 'MemberExpression') {
17
+ var _node$object, _node$property;
18
+ varName += `-${((_node$object = node.object) == null ? void 0 : _node$object.name) || ((_node$property = node.property) == null ? void 0 : _node$property.name) || 'unknown'}`;
19
+ if (node.object.type === 'MemberExpression') {
20
+ node = node.object;
21
+ } else {
22
+ node = node.property;
23
+ }
24
+ }
25
+ varName += `-${node.name || 'unknown'}`;
26
+ return varName;
27
+ }
28
+
29
+ /**
30
+ * @param {import('jscodeshift').FileInfo} file
31
+ * @param {import('jscodeshift').API} api
32
+ */
33
+ function sxV6(file, api, options) {
34
+ const j = api.jscodeshift;
35
+ const root = j(file.source);
36
+ const printOptions = options.printOptions;
37
+ const createBuildStyle = (0, _migrateToVariants.getCreateBuildStyle)(j);
38
+ const appendPaletteModeStyles = (0, _migrateToVariants.getAppendPaletteModeStyles)(j);
39
+ const buildArrowFunctionAST = (0, _migrateToVariants.getBuildArrowFunctionAST)(j);
40
+
41
+ /**
42
+ *
43
+ * @param {import('jscodeshift').Identifier} node
44
+ */
45
+ function replaceUndefined(node, replacement = j.nullLiteral()) {
46
+ if ((node == null ? void 0 : node.type) === 'Identifier' && node.name === 'undefined') {
47
+ return replacement;
48
+ }
49
+ return node;
50
+ }
51
+ let shouldTransform = false;
52
+ root.find(j.JSXAttribute, {
53
+ name: {
54
+ name: 'sx'
55
+ },
56
+ value: {
57
+ type: 'JSXExpressionContainer'
58
+ }
59
+ }).forEach(path => {
60
+ /**
61
+ * @type {[import('jscodeshift').StringLiteral, import('jscodeshift').Expression][]}
62
+ */
63
+ const cssVars = [];
64
+ const conditionalExpressions = []; // for ensuring the sequence of styles
65
+ let currentIndex = 0;
66
+ const sxContainer = path.node.value;
67
+ if (['ArrowFunctionExpression', 'ObjectExpression', 'ArrayExpression'].includes(sxContainer.expression.type)) {
68
+ shouldTransform = true;
69
+ (sxContainer.expression.type === 'ArrayExpression' ? sxContainer.expression.elements : [sxContainer.expression]).forEach((item, index) => {
70
+ currentIndex = index;
71
+ recurseObjectExpression({
72
+ root: item,
73
+ replaceRoot: newRoot => {
74
+ sxContainer.expression = newRoot;
75
+ },
76
+ node: item,
77
+ buildStyle: createBuildStyle()
78
+ });
79
+ });
80
+ if (cssVars.length) {
81
+ const cssVarsObject = j.objectExpression(cssVars.map(([varName, value]) => j.objectProperty(varName, value)));
82
+ if (path.parent.node.type === 'JSXOpeningElement') {
83
+ const styleAttribute = path.parent.node.attributes.find(attribute => attribute.type === 'JSXAttribute' && attribute.name.name === 'style');
84
+ const spreadAttribute = path.parent.node.attributes.find(attribute => attribute.type === 'JSXSpreadAttribute');
85
+ if (styleAttribute) {
86
+ if (styleAttribute.value.expression.type === 'ObjectExpression') {
87
+ styleAttribute.value.expression.properties = [...cssVarsObject.properties, ...styleAttribute.value.expression.properties];
88
+ } else if (styleAttribute.value.expression.type === 'Identifier' || styleAttribute.value.expression.type === 'MemberExpression') {
89
+ styleAttribute.value.expression = j.objectExpression([...cssVarsObject.properties, j.spreadElement(styleAttribute.value.expression)]);
90
+ }
91
+ } else if (spreadAttribute) {
92
+ path.parent.node.attributes.push(j.jsxAttribute(j.jsxIdentifier('style'), j.jsxExpressionContainer(j.objectExpression([...cssVarsObject.properties, j.spreadElement(j.memberExpression(spreadAttribute.argument, j.identifier('style')))]))));
93
+ } else {
94
+ path.parent.node.attributes.push(j.jsxAttribute(j.jsxIdentifier('style'), j.jsxExpressionContainer(cssVarsObject)));
95
+ }
96
+ }
97
+ }
98
+ if (conditionalExpressions.length && sxContainer.expression.type === 'ArrayExpression') {
99
+ // insert the conditional expressions in the correct order
100
+ let cumulativeIndex = 0;
101
+ conditionalExpressions.forEach(([index, newElement]) => {
102
+ sxContainer.expression.elements.splice(index + 1 + cumulativeIndex, 0, newElement);
103
+ cumulativeIndex += 1;
104
+ });
105
+ }
106
+ if (sxContainer.expression.type === 'ArrayExpression') {
107
+ sxContainer.expression.elements = sxContainer.expression.elements.filter(item => item.type !== 'ObjectExpression' || item.properties.length > 0);
108
+ }
109
+ }
110
+ function wrapSxInArray(newElement) {
111
+ if (sxContainer.expression.type === 'ObjectExpression' || sxContainer.expression.type === 'ArrowFunctionExpression') {
112
+ sxContainer.expression = j.arrayExpression([sxContainer.expression]);
113
+ }
114
+ if (sxContainer.expression.type === 'ArrayExpression') {
115
+ // store in a list to be added later to ensure the sequence of styles
116
+ conditionalExpressions.push([currentIndex, newElement]);
117
+ }
118
+ }
119
+ function rootThemeCallback(data) {
120
+ if (data.root.type === 'ObjectExpression') {
121
+ var _data$replaceRoot;
122
+ (_data$replaceRoot = data.replaceRoot) == null || _data$replaceRoot.call(data, buildArrowFunctionAST([j.identifier('theme')], data.root));
123
+ } else if (data.root.type === 'ArrayExpression') {
124
+ data.root.elements.forEach((item, index) => {
125
+ if (item === data.node) {
126
+ data.root.elements[index] = buildArrowFunctionAST([j.identifier('theme')], data.root);
127
+ }
128
+ });
129
+ }
130
+ }
131
+
132
+ /**
133
+ *
134
+ * @param {{ node: import('jscodeshift').Expression }} data
135
+ */
136
+ function recurseObjectExpression(data) {
137
+ if (data.node.type === 'ArrowFunctionExpression') {
138
+ const returnExpression = (0, _getReturnExpression.default)(data.node);
139
+ if (returnExpression) {
140
+ var _returnExpression$pro, _getObjectKey, _getObjectKey2, _getObjectKey3, _getObjectKey4;
141
+ if (returnExpression.type === 'MemberExpression' && ((_returnExpression$pro = returnExpression.property) == null ? void 0 : _returnExpression$pro.type) === 'ConditionalExpression') {
142
+ recurseObjectExpression({
143
+ ...data,
144
+ node: j.conditionalExpression(returnExpression.property.test, {
145
+ ...returnExpression,
146
+ property: returnExpression.property.consequent
147
+ }, {
148
+ ...returnExpression,
149
+ property: returnExpression.property.alternate
150
+ })
151
+ });
152
+ } else if (returnExpression.type === 'TemplateLiteral') {
153
+ const firstExpression = returnExpression.expressions[0];
154
+ if ((firstExpression == null ? void 0 : firstExpression.type) === 'ConditionalExpression') {
155
+ recurseObjectExpression({
156
+ ...data,
157
+ node: j.conditionalExpression(firstExpression.test, {
158
+ ...returnExpression,
159
+ expressions: [firstExpression.consequent, ...(returnExpression.expressions || []).slice(1)]
160
+ }, {
161
+ ...returnExpression,
162
+ expressions: [firstExpression.alternate, ...(returnExpression.expressions || []).slice(1)]
163
+ })
164
+ });
165
+ } else {
166
+ recurseObjectExpression({
167
+ ...data,
168
+ node: returnExpression
169
+ });
170
+ }
171
+ } else if (returnExpression.type === 'CallExpression' && ((_getObjectKey = (0, _migrateToVariants.getObjectKey)(returnExpression.callee)) == null ? void 0 : _getObjectKey.name) === 'theme' || returnExpression.type === 'MemberExpression' && ((_getObjectKey2 = (0, _migrateToVariants.getObjectKey)(returnExpression)) == null ? void 0 : _getObjectKey2.name) === 'theme' || returnExpression.type === 'BinaryExpression' && (((_getObjectKey3 = (0, _migrateToVariants.getObjectKey)(returnExpression.left)) == null ? void 0 : _getObjectKey3.name) === 'theme' || ((_getObjectKey4 = (0, _migrateToVariants.getObjectKey)(returnExpression.right)) == null ? void 0 : _getObjectKey4.name) === 'theme')) {
172
+ var _data$replaceValue;
173
+ (_data$replaceValue = data.replaceValue) == null || _data$replaceValue.call(data, returnExpression);
174
+ rootThemeCallback(data);
175
+ } else {
176
+ recurseObjectExpression({
177
+ ...data,
178
+ node: returnExpression
179
+ });
180
+ }
181
+ }
182
+ }
183
+ if (data.node.type === 'ObjectExpression') {
184
+ const modeStyles = {}; // to collect styles from `theme.palette.mode === '...'`
185
+ data.node.properties.forEach(prop => {
186
+ if (prop.type === 'ObjectProperty') {
187
+ recurseObjectExpression({
188
+ ...data,
189
+ node: prop.value,
190
+ parentNode: data.node,
191
+ key: prop.key,
192
+ buildStyle: createBuildStyle(prop.key, data.buildStyle),
193
+ replaceValue: newValue => {
194
+ prop.value = newValue;
195
+ },
196
+ deleteSelf: () => {
197
+ (0, _migrateToVariants.removeProperty)(data.node, prop);
198
+ if (data.node.properties.length === 0) {
199
+ var _data$deleteSelf;
200
+ (_data$deleteSelf = data.deleteSelf) == null || _data$deleteSelf.call(data);
201
+ }
202
+ },
203
+ modeStyles
204
+ });
205
+ } else {
206
+ recurseObjectExpression({
207
+ ...data,
208
+ node: prop,
209
+ parentNode: data.node,
210
+ buildStyle: createBuildStyle(prop.key, data.buildStyle)
211
+ });
212
+ }
213
+ });
214
+ appendPaletteModeStyles(data.node, modeStyles);
215
+ }
216
+ if (data.node.type === 'SpreadElement') {
217
+ if (data.node.argument.type === 'LogicalExpression') {
218
+ var _getObjectKey5, _getObjectKey6;
219
+ const paramName = data.node.argument.left.type === 'BinaryExpression' ? (_getObjectKey5 = (0, _migrateToVariants.getObjectKey)(data.node.argument.left.left)) == null ? void 0 : _getObjectKey5.name : (_getObjectKey6 = (0, _migrateToVariants.getObjectKey)(data.node.argument.left)) == null ? void 0 : _getObjectKey6.name;
220
+ if (paramName === 'theme' && data.node.argument.left.right.type === 'StringLiteral') {
221
+ if (data.node.argument.right.type === 'ObjectExpression') {
222
+ const mode = data.node.argument.left.right.value;
223
+ data.node.argument.right.properties.forEach(prop => {
224
+ if (prop.type === 'ObjectProperty') {
225
+ recurseObjectExpression({
226
+ ...data,
227
+ node: prop.value,
228
+ parentNode: data.node.argument.right,
229
+ key: prop.key,
230
+ buildStyle: createBuildStyle(prop.key, data.buildStyle, mode),
231
+ replaceValue: newValue => {
232
+ prop.value = newValue;
233
+ }
234
+ });
235
+ } else {
236
+ recurseObjectExpression({
237
+ ...data,
238
+ node: prop,
239
+ parentNode: data.node.argument.right,
240
+ buildStyle: createBuildStyle(prop.key, data.buildStyle, mode)
241
+ });
242
+ }
243
+ });
244
+ appendPaletteModeStyles(data.parentNode, {
245
+ [mode]: data.node.argument.right
246
+ });
247
+ }
248
+ if (data.deleteSelf) {
249
+ data.deleteSelf();
250
+ } else {
251
+ (0, _migrateToVariants.removeProperty)(data.parentNode, data.node);
252
+ }
253
+ return;
254
+ }
255
+ if (data.node.argument.right.type === 'ObjectExpression') {
256
+ recurseObjectExpression({
257
+ ...data,
258
+ node: data.node.argument.right,
259
+ root: data.node.argument.right,
260
+ replaceRoot: newRoot => {
261
+ data.node.argument.right = newRoot;
262
+ }
263
+ });
264
+ }
265
+ wrapSxInArray(j.logicalExpression(data.node.argument.operator, data.node.argument.left, data.buildStyle(data.node.argument.right)));
266
+ if (data.deleteSelf) {
267
+ data.deleteSelf();
268
+ } else {
269
+ (0, _migrateToVariants.removeProperty)(data.parentNode, data.node);
270
+ }
271
+ }
272
+ if (data.node.argument.type === 'ConditionalExpression') {
273
+ recurseObjectExpression({
274
+ ...data,
275
+ node: data.node.argument,
276
+ parentNode: data.node
277
+ });
278
+ if (data.deleteSelf) {
279
+ data.deleteSelf();
280
+ } else {
281
+ (0, _migrateToVariants.removeProperty)(data.parentNode, data.node);
282
+ }
283
+ }
284
+ }
285
+ if (data.node.type === 'ConditionalExpression') {
286
+ if (data.node.test.type === 'BinaryExpression' || data.node.test.type === 'UnaryExpression' || data.node.test.type === 'Identifier' || data.node.test.type === 'MemberExpression') {
287
+ var _data$parentNode, _data$node$test, _data$node$test2;
288
+ if (((_data$parentNode = data.parentNode) == null ? void 0 : _data$parentNode.type) === 'ObjectExpression' && (((_data$node$test = data.node.test) == null ? void 0 : _data$node$test.type) === 'BinaryExpression' || ((_data$node$test2 = data.node.test) == null ? void 0 : _data$node$test2.type) === 'Identifier')) {
289
+ if (data.node.consequent.type !== 'ObjectExpression' && data.node.alternate.type !== 'ObjectExpression') {
290
+ if ((0, _migrateToVariants.isThemePaletteMode)(data.node.test.left)) {
291
+ var _data$replaceValue2;
292
+ const consequentKey = (0, _migrateToVariants.getObjectKey)(data.node.consequent);
293
+ if (consequentKey.type === 'Identifier' && consequentKey.name !== 'theme') {
294
+ const varName = getCssVarName(data.node.consequent);
295
+ cssVars.push([j.stringLiteral(varName), data.node.consequent]);
296
+ data.node.consequent = j.stringLiteral(`var(${varName})`);
297
+ }
298
+ const alternateKey = (0, _migrateToVariants.getObjectKey)(data.node.alternate);
299
+ if (alternateKey.type === 'Identifier' && alternateKey.name !== 'theme') {
300
+ const varName = getCssVarName(data.node.alternate);
301
+ cssVars.push([j.stringLiteral(varName), data.node.alternate]);
302
+ data.node.alternate = j.stringLiteral(`var(${varName})`);
303
+ }
304
+ if (data.modeStyles) {
305
+ if (!data.modeStyles[data.node.test.right.value]) {
306
+ data.modeStyles[data.node.test.right.value] = [];
307
+ }
308
+ data.modeStyles[data.node.test.right.value].push(j.objectProperty(data.key, replaceUndefined(data.node.consequent)));
309
+ }
310
+ (_data$replaceValue2 = data.replaceValue) == null || _data$replaceValue2.call(data, replaceUndefined(data.node.alternate));
311
+ rootThemeCallback(data);
312
+ } else {
313
+ var _data$buildStyle, _data$buildStyle2;
314
+ wrapSxInArray(j.conditionalExpression(data.node.test, (_data$buildStyle = data.buildStyle) == null ? void 0 : _data$buildStyle.call(data, replaceUndefined(data.node.consequent)), (_data$buildStyle2 = data.buildStyle) == null ? void 0 : _data$buildStyle2.call(data, replaceUndefined(data.node.alternate))));
315
+ if (data.deleteSelf) {
316
+ data.deleteSelf();
317
+ } else {
318
+ (0, _migrateToVariants.removeProperty)(data.parentNode, data.node);
319
+ }
320
+ }
321
+ }
322
+ }
323
+ }
324
+ }
325
+ if (data.node.type === 'TemplateLiteral') {
326
+ var _data$parentNode2, _data$node$expression;
327
+ if (((_data$parentNode2 = data.parentNode) == null ? void 0 : _data$parentNode2.type) === 'ObjectExpression') {
328
+ const modeStyles = {};
329
+ data.node.expressions.forEach((expression, index) => {
330
+ if (expression.type === 'MemberExpression') {
331
+ const memberKey = (0, _migrateToVariants.getObjectKey)(expression);
332
+ if (memberKey.type === 'Identifier' && memberKey.name !== 'theme') {
333
+ const varName = getCssVarName(expression);
334
+ cssVars.push([j.stringLiteral(varName), expression]);
335
+ data.node.expressions[index] = j.stringLiteral(`var(${varName})`);
336
+ }
337
+ } else {
338
+ recurseObjectExpression({
339
+ ...data,
340
+ node: expression,
341
+ parentNode: data.parentNode,
342
+ buildStyle: createBuildStyle(data.key, data.buildStyle),
343
+ replaceValue: newValue => {
344
+ data.node.expressions[index] = newValue;
345
+ },
346
+ modeStyles
347
+ });
348
+ }
349
+ });
350
+ if (data.modeStyles) {
351
+ Object.entries(modeStyles).forEach(([mode, objectStyles]) => {
352
+ const clonedNode = {
353
+ ...data.node,
354
+ expressions: data.node.expressions.map(expression => ({
355
+ ...expression
356
+ }))
357
+ };
358
+ clonedNode.expressions = objectStyles.map(item => item.value);
359
+ if (!data.modeStyles[mode]) {
360
+ data.modeStyles[mode] = [];
361
+ }
362
+ data.modeStyles[mode].push(j.objectProperty(data.key, clonedNode));
363
+ });
364
+ if (data.key) {
365
+ var _data$replaceValue3;
366
+ (_data$replaceValue3 = data.replaceValue) == null || _data$replaceValue3.call(data, data.node);
367
+ }
368
+ }
369
+ }
370
+ if ((_data$node$expression = data.node.expressions) != null && _data$node$expression.some(expression => {
371
+ var _getObjectKey7, _getObjectKey8;
372
+ return ((_getObjectKey7 = (0, _migrateToVariants.getObjectKey)(expression)) == null ? void 0 : _getObjectKey7.name) === 'theme' || expression.type === 'CallExpression' && ((_getObjectKey8 = (0, _migrateToVariants.getObjectKey)(expression.callee)) == null ? void 0 : _getObjectKey8.name) === 'theme';
373
+ })) {
374
+ rootThemeCallback(data);
375
+ }
376
+ }
377
+ }
378
+ });
379
+ const transformed = root.toSource(printOptions);
380
+ if (shouldTransform) {
381
+ // recast adds extra newlines that we don't want, https://github.com/facebook/jscodeshift/issues/249
382
+ // need to remove them manually
383
+ const lines = [];
384
+ let isInStyled = false;
385
+ let spaceMatch;
386
+ transformed.split('\n').forEach(line => {
387
+ if (!isInStyled) {
388
+ lines.push(line);
389
+ } else if (line !== '') {
390
+ var _line$match, _spaceMatch;
391
+ if (spaceMatch && ((_line$match = line.match(/^\s+/)) == null ? void 0 : _line$match[0]) === ((_spaceMatch = spaceMatch) == null ? void 0 : _spaceMatch[0]) && line.endsWith('}')) {
392
+ isInStyled = false;
393
+ spaceMatch = null;
394
+ }
395
+ lines.push(line);
396
+ }
397
+ if (line.includes('sx=') && !line.match(/sx=\{\{[^}]+\}\}/)) {
398
+ isInStyled = true;
399
+ spaceMatch = line.match(/^\s+/);
400
+ }
401
+ });
402
+ return lines.join('\n');
403
+ }
404
+ return transformed;
405
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ var _jsxRuntime = require("react/jsx-runtime");
4
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Toolbar, {
5
+ variant: "regular",
6
+ sx: theme => ({
7
+ display: 'flex',
8
+ alignItems: 'center',
9
+ justifyContent: 'space-between',
10
+ flexShrink: 0,
11
+ borderRadius: '999px',
12
+ bgcolor: theme.palette.mode === 'light' ? 'hsla(220, 60%, 99%, 0.6)' : 'hsla(220, 0%, 0%, 0.7)',
13
+ backdropFilter: 'blur(24px)',
14
+ maxHeight: 40,
15
+ border: '1px solid',
16
+ borderColor: 'divider',
17
+ boxShadow: theme.palette.mode === 'light' ? '0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px hsla(210, 100%, 80%, 0.5)' : '0 1px 2px hsla(210, 0%, 0%, 0.5), 0 2px 12px hsla(210, 100%, 25%, 0.3)'
18
+ })
19
+ });
20
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
21
+ component: "main",
22
+ sx: {
23
+ backgroundColor: theme => theme.palette.mode === 'light' ? theme.palette.grey[100] : theme.palette.grey[900],
24
+ flexGrow: 1,
25
+ height: '100vh',
26
+ overflow: 'auto'
27
+ }
28
+ });
29
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
30
+ sx: {
31
+ borderBottom: theme => `1px solid ${theme.palette.mode === 'light' ? 'grey.200' : 'grey.800'}`,
32
+ backgroundSize: 'cover',
33
+ backgroundPosition: 'center',
34
+ minHeight: 280
35
+ }
36
+ });
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _jsxRuntime = require("react/jsx-runtime");
4
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Toolbar, {
5
+ variant: "regular",
6
+ sx: theme => ({
7
+ display: 'flex',
8
+ alignItems: 'center',
9
+ justifyContent: 'space-between',
10
+ flexShrink: 0,
11
+ borderRadius: '999px',
12
+ bgcolor: 'hsla(220, 0%, 0%, 0.7)',
13
+ backdropFilter: 'blur(24px)',
14
+ maxHeight: 40,
15
+ border: '1px solid',
16
+ borderColor: 'divider',
17
+ boxShadow: '0 1px 2px hsla(210, 0%, 0%, 0.5), 0 2px 12px hsla(210, 100%, 25%, 0.3)',
18
+ ...theme.applyStyles("light", {
19
+ bgcolor: 'hsla(220, 60%, 99%, 0.6)',
20
+ boxShadow: '0 1px 2px hsla(210, 0%, 0%, 0.05), 0 2px 12px hsla(210, 100%, 80%, 0.5)'
21
+ })
22
+ })
23
+ });
24
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
25
+ component: "main",
26
+ sx: theme => ({
27
+ backgroundColor: theme.palette.grey[900],
28
+ flexGrow: 1,
29
+ height: '100vh',
30
+ overflow: 'auto',
31
+ ...theme.applyStyles("light", {
32
+ backgroundColor: theme.palette.grey[100]
33
+ })
34
+ })
35
+ });
36
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
37
+ sx: theme => ({
38
+ borderBottom: `1px solid ${'grey.800'}`,
39
+ backgroundSize: 'cover',
40
+ backgroundPosition: 'center',
41
+ minHeight: 280,
42
+ ...theme.applyStyles("light", {
43
+ borderBottom: `1px solid ${'grey.200'}`
44
+ })
45
+ })
46
+ });
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+
3
+ var _jsxRuntime = require("react/jsx-runtime");
4
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
5
+ sx: {
6
+ backgroundImage: theme => theme.palette.mode === 'light' ? items[selectedItemIndex].imageLight : items[selectedItemIndex].imageDark
7
+ }
8
+ });
9
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
10
+ style: props.style,
11
+ sx: {
12
+ backgroundImage: theme => theme.palette.mode === 'light' ? items[selectedItemIndex].imageLight : items[selectedItemIndex].imageDark
13
+ }
14
+ });
15
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
16
+ style: {
17
+ color: 'red',
18
+ ...props.style
19
+ },
20
+ sx: {
21
+ backgroundImage: theme => theme.palette.mode === 'light' ? items[selectedItemIndex].imageLight : items[selectedItemIndex].imageDark
22
+ }
23
+ });
24
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
25
+ ...props,
26
+ sx: {
27
+ backgroundImage: theme => theme.palette.mode === 'light' ? items[selectedItemIndex].imageLight : items[selectedItemIndex].imageDark
28
+ }
29
+ });
30
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Paper, {
31
+ sx: {
32
+ position: 'relative',
33
+ backgroundColor: 'grey.800',
34
+ color: '#fff',
35
+ mb: 4,
36
+ backgroundSize: 'cover',
37
+ backgroundRepeat: 'no-repeat',
38
+ backgroundPosition: 'center',
39
+ backgroundImage: `url(${post.image})`
40
+ }
41
+ });
42
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Chip, {
43
+ size: "sm",
44
+ variant: "outlined",
45
+ color: colors[data.role],
46
+ sx: {
47
+ ml: 'auto',
48
+ borderRadius: '2px',
49
+ minHeight: '20px',
50
+ paddingInline: '4px',
51
+ fontSize: 'xs',
52
+ bgcolor: `${colors[data.role]}.softBg`
53
+ },
54
+ children: data.role
55
+ });
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ var _jsxRuntime = require("react/jsx-runtime");
4
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
5
+ sx: theme => ({
6
+ backgroundImage: "var(--imageDark-items-selectedItemIndex)",
7
+ ...theme.applyStyles("light", {
8
+ backgroundImage: "var(--imageLight-items-selectedItemIndex)"
9
+ })
10
+ }),
11
+ style: {
12
+ "--imageLight-items-selectedItemIndex": items[selectedItemIndex].imageLight,
13
+ "--imageDark-items-selectedItemIndex": items[selectedItemIndex].imageDark
14
+ }
15
+ });
16
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
17
+ style: {
18
+ "--imageLight-items-selectedItemIndex": items[selectedItemIndex].imageLight,
19
+ "--imageDark-items-selectedItemIndex": items[selectedItemIndex].imageDark,
20
+ ...props.style
21
+ },
22
+ sx: theme => ({
23
+ backgroundImage: "var(--imageDark-items-selectedItemIndex)",
24
+ ...theme.applyStyles("light", {
25
+ backgroundImage: "var(--imageLight-items-selectedItemIndex)"
26
+ })
27
+ })
28
+ });
29
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
30
+ style: {
31
+ "--imageLight-items-selectedItemIndex": items[selectedItemIndex].imageLight,
32
+ "--imageDark-items-selectedItemIndex": items[selectedItemIndex].imageDark,
33
+ color: 'red',
34
+ ...props.style
35
+ },
36
+ sx: theme => ({
37
+ backgroundImage: "var(--imageDark-items-selectedItemIndex)",
38
+ ...theme.applyStyles("light", {
39
+ backgroundImage: "var(--imageLight-items-selectedItemIndex)"
40
+ })
41
+ })
42
+ });
43
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Box, {
44
+ ...props,
45
+ sx: theme => ({
46
+ backgroundImage: "var(--imageDark-items-selectedItemIndex)",
47
+ ...theme.applyStyles("light", {
48
+ backgroundImage: "var(--imageLight-items-selectedItemIndex)"
49
+ })
50
+ }),
51
+ style: {
52
+ "--imageLight-items-selectedItemIndex": items[selectedItemIndex].imageLight,
53
+ "--imageDark-items-selectedItemIndex": items[selectedItemIndex].imageDark,
54
+ ...props.style
55
+ }
56
+ });
57
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Paper, {
58
+ sx: {
59
+ position: 'relative',
60
+ backgroundColor: 'grey.800',
61
+ color: '#fff',
62
+ mb: 4,
63
+ backgroundSize: 'cover',
64
+ backgroundRepeat: 'no-repeat',
65
+ backgroundPosition: 'center',
66
+ backgroundImage: `url(${"var(--post-image)"})`
67
+ },
68
+ style: {
69
+ "--post-image": post.image
70
+ }
71
+ });
72
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(Chip, {
73
+ size: "sm",
74
+ variant: "outlined",
75
+ color: colors[data.role],
76
+ sx: {
77
+ ml: 'auto',
78
+ borderRadius: '2px',
79
+ minHeight: '20px',
80
+ paddingInline: '4px',
81
+ fontSize: 'xs',
82
+ bgcolor: `${"var(--colors-data-role)"}.softBg`
83
+ },
84
+ style: {
85
+ "--colors-data-role": colors[data.role]
86
+ },
87
+ children: data.role
88
+ });