@mui/codemod 5.15.11 → 5.15.12

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 (28) hide show
  1. package/README.md +533 -6
  2. package/node/deprecations/alert-classes/alert-classes.js +58 -0
  3. package/node/deprecations/alert-classes/index.js +13 -0
  4. package/node/deprecations/alert-classes/postcss-plugin.js +38 -0
  5. package/node/deprecations/alert-classes/postcss.config.js +8 -0
  6. package/node/deprecations/alert-classes/test-cases/actual.js +27 -0
  7. package/node/deprecations/alert-classes/test-cases/expected.js +27 -0
  8. package/node/deprecations/all/deprecations-all.js +6 -0
  9. package/node/deprecations/all/postcss.config.js +10 -1
  10. package/node/deprecations/button-classes/button-classes.js +69 -0
  11. package/node/deprecations/button-classes/index.js +13 -0
  12. package/node/deprecations/button-classes/postcss-plugin.js +126 -0
  13. package/node/deprecations/button-classes/postcss.config.js +8 -0
  14. package/node/deprecations/button-classes/test-cases/actual.js +69 -0
  15. package/node/deprecations/button-classes/test-cases/expected.js +69 -0
  16. package/node/deprecations/chip-classes/chip-classes.js +77 -0
  17. package/node/deprecations/chip-classes/index.js +13 -0
  18. package/node/deprecations/chip-classes/postcss-plugin.js +105 -0
  19. package/node/deprecations/chip-classes/postcss.config.js +8 -0
  20. package/node/deprecations/chip-classes/test-cases/actual.js +55 -0
  21. package/node/deprecations/chip-classes/test-cases/expected.js +55 -0
  22. package/node/deprecations/slider-props/index.js +13 -0
  23. package/node/deprecations/slider-props/slider-props.js +22 -0
  24. package/node/deprecations/slider-props/test-cases/actual.js +43 -0
  25. package/node/deprecations/slider-props/test-cases/expected.js +33 -0
  26. package/node/deprecations/slider-props/test-cases/theme.actual.js +52 -0
  27. package/node/deprecations/slider-props/test-cases/theme.expected.js +42 -0
  28. package/package.json +4 -4
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ const variants = ['standard', 'outlined', 'filled'];
4
+ const colors = ['Success', 'Info', 'Warning', 'Error'];
5
+ const classes = variants.reduce((acc, variant) => {
6
+ return acc.concat(colors.map(color => {
7
+ const deprecatedClass = `.MuiAlert-${variant}${color}`;
8
+ const replacementSelector = `.MuiAlert-${variant}.MuiAlert-color${color}`;
9
+ return {
10
+ deprecatedClass,
11
+ replacementSelector
12
+ };
13
+ }));
14
+ }, []);
15
+ const plugin = () => {
16
+ return {
17
+ postcssPlugin: `Replace deperecated Alert classes with new classes`,
18
+ Rule(rule) {
19
+ const {
20
+ selector
21
+ } = rule;
22
+ classes.forEach(({
23
+ deprecatedClass,
24
+ replacementSelector
25
+ }) => {
26
+ const selectorRegex = new RegExp(`${deprecatedClass}`);
27
+ if (selector.match(selectorRegex)) {
28
+ rule.selector = selector.replace(selectorRegex, replacementSelector);
29
+ }
30
+ });
31
+ }
32
+ };
33
+ };
34
+ plugin.postcss = true;
35
+ module.exports = {
36
+ plugin,
37
+ classes
38
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ const {
4
+ plugin
5
+ } = require('./postcss-plugin');
6
+ module.exports = {
7
+ plugins: [plugin]
8
+ };
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _Alert = require("@mui/material/Alert");
4
+ '&.MuiAlert-standardSuccess';
5
+ '&.MuiAlert-standardInfo';
6
+ '&.MuiAlert-standardWarning';
7
+ '&.MuiAlert-standardError';
8
+ '&.MuiAlert-outlinedSuccess';
9
+ '&.MuiAlert-outlinedInfo';
10
+ '&.MuiAlert-outlinedWarning';
11
+ '&.MuiAlert-outlinedError';
12
+ '&.MuiAlert-filledSuccess';
13
+ '&.MuiAlert-filledInfo';
14
+ '&.MuiAlert-filledWarning';
15
+ '&.MuiAlert-filledError';
16
+ `&.${_Alert.alertClasses.standardSuccess}`;
17
+ `&.${_Alert.alertClasses.standardInfo}`;
18
+ `&.${_Alert.alertClasses.standardWarning}`;
19
+ `&.${_Alert.alertClasses.standardError}`;
20
+ `&.${_Alert.alertClasses.outlinedSuccess}`;
21
+ `&.${_Alert.alertClasses.outlinedInfo}`;
22
+ `&.${_Alert.alertClasses.outlinedWarning}`;
23
+ `&.${_Alert.alertClasses.outlinedError}`;
24
+ `&.${_Alert.alertClasses.filledSuccess}`;
25
+ `&.${_Alert.alertClasses.filledInfo}`;
26
+ `&.${_Alert.alertClasses.filledWarning}`;
27
+ `&.${_Alert.alertClasses.filledError}`;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _Alert = require("@mui/material/Alert");
4
+ '&.MuiAlert-standard.MuiAlert-colorSuccess';
5
+ '&.MuiAlert-standard.MuiAlert-colorInfo';
6
+ '&.MuiAlert-standard.MuiAlert-colorWarning';
7
+ '&.MuiAlert-standard.MuiAlert-colorError';
8
+ '&.MuiAlert-outlined.MuiAlert-colorSuccess';
9
+ '&.MuiAlert-outlined.MuiAlert-colorInfo';
10
+ '&.MuiAlert-outlined.MuiAlert-colorWarning';
11
+ '&.MuiAlert-outlined.MuiAlert-colorError';
12
+ '&.MuiAlert-filled.MuiAlert-colorSuccess';
13
+ '&.MuiAlert-filled.MuiAlert-colorInfo';
14
+ '&.MuiAlert-filled.MuiAlert-colorWarning';
15
+ '&.MuiAlert-filled.MuiAlert-colorError';
16
+ `&.${_Alert.alertClasses.standard}.${_Alert.alertClasses.colorSuccess}`;
17
+ `&.${_Alert.alertClasses.standard}.${_Alert.alertClasses.colorInfo}`;
18
+ `&.${_Alert.alertClasses.standard}.${_Alert.alertClasses.colorWarning}`;
19
+ `&.${_Alert.alertClasses.standard}.${_Alert.alertClasses.colorError}`;
20
+ `&.${_Alert.alertClasses.outlined}.${_Alert.alertClasses.colorSuccess}`;
21
+ `&.${_Alert.alertClasses.outlined}.${_Alert.alertClasses.colorInfo}`;
22
+ `&.${_Alert.alertClasses.outlined}.${_Alert.alertClasses.colorWarning}`;
23
+ `&.${_Alert.alertClasses.outlined}.${_Alert.alertClasses.colorError}`;
24
+ `&.${_Alert.alertClasses.filled}.${_Alert.alertClasses.colorSuccess}`;
25
+ `&.${_Alert.alertClasses.filled}.${_Alert.alertClasses.colorInfo}`;
26
+ `&.${_Alert.alertClasses.filled}.${_Alert.alertClasses.colorWarning}`;
27
+ `&.${_Alert.alertClasses.filled}.${_Alert.alertClasses.colorError}`;
@@ -9,7 +9,10 @@ var _accordionProps = _interopRequireDefault(require("../accordion-props"));
9
9
  var _avatarProps = _interopRequireDefault(require("../avatar-props"));
10
10
  var _dividerProps = _interopRequireDefault(require("../divider-props"));
11
11
  var _accordionSummaryClasses = _interopRequireDefault(require("../accordion-summary-classes"));
12
+ var _buttonClasses = _interopRequireDefault(require("../button-classes"));
13
+ var _chipClasses = _interopRequireDefault(require("../chip-classes"));
12
14
  var _paginationItemClasses = _interopRequireDefault(require("../pagination-item-classes"));
15
+ var _alertClasses = _interopRequireDefault(require("../alert-classes"));
13
16
  /**
14
17
  * @param {import('jscodeshift').FileInfo} file
15
18
  * @param {import('jscodeshift').API} api
@@ -19,6 +22,9 @@ function deprecationsAll(file, api, options) {
19
22
  file.source = (0, _avatarProps.default)(file, api, options);
20
23
  file.source = (0, _dividerProps.default)(file, api, options);
21
24
  file.source = (0, _accordionSummaryClasses.default)(file, api, options);
25
+ file.source = (0, _buttonClasses.default)(file, api, options);
26
+ file.source = (0, _chipClasses.default)(file, api, options);
22
27
  file.source = (0, _paginationItemClasses.default)(file, api, options);
28
+ file.source = (0, _alertClasses.default)(file, api, options);
23
29
  return file.source;
24
30
  }
@@ -3,9 +3,18 @@
3
3
  const {
4
4
  plugin: accordionSummaryClassesPlugin
5
5
  } = require('../accordion-summary-classes/postcss-plugin');
6
+ const {
7
+ plugin: alertClassesPlugin
8
+ } = require('../alert-classes/postcss-plugin');
9
+ const {
10
+ plugin: buttonClassesPlugin
11
+ } = require('../button-classes/postcss-plugin');
12
+ const {
13
+ plugin: chipClassesPlugin
14
+ } = require('../chip-classes/postcss-plugin');
6
15
  const {
7
16
  plugin: paginationItemClassesPlugin
8
17
  } = require('../pagination-item-classes/postcss-plugin');
9
18
  module.exports = {
10
- plugins: [accordionSummaryClassesPlugin, paginationItemClassesPlugin]
19
+ plugins: [accordionSummaryClassesPlugin, alertClassesPlugin, buttonClassesPlugin, chipClassesPlugin, paginationItemClassesPlugin]
11
20
  };
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = transformer;
7
+ var _postcssPlugin = require("./postcss-plugin");
8
+ /**
9
+ * @param {import('jscodeshift').FileInfo} file
10
+ * @param {import('jscodeshift').API} api
11
+ */
12
+ function transformer(file, api, options) {
13
+ const j = api.jscodeshift;
14
+ const root = j(file.source);
15
+ const printOptions = options.printOptions;
16
+ _postcssPlugin.classes.forEach(({
17
+ deprecatedClass,
18
+ replacementSelector
19
+ }) => {
20
+ const replacementSelectorPrefix = '&';
21
+ root.find(j.ImportDeclaration).filter(path => path.node.source.value.match(/^@mui\/material\/Button$/)).forEach(path => {
22
+ path.node.specifiers.forEach(specifier => {
23
+ if (specifier.type === 'ImportSpecifier' && specifier.imported.name === 'buttonClasses') {
24
+ const deprecatedAtomicClass = deprecatedClass.replace(`${deprecatedClass.split('-')[0]}-`, '');
25
+ root.find(j.MemberExpression, {
26
+ object: {
27
+ name: specifier.local.name
28
+ },
29
+ property: {
30
+ name: deprecatedAtomicClass
31
+ }
32
+ }).forEach(memberExpression => {
33
+ const parent = memberExpression.parentPath.parentPath.value;
34
+ if (parent.type === j.TemplateLiteral.name) {
35
+ const memberExpressionIndex = parent.expressions.findIndex(expression => expression === memberExpression.value);
36
+ const precedingTemplateElement = parent.quasis[memberExpressionIndex];
37
+ const atomicClasses = replacementSelector.replaceAll('MuiButton-', '').replaceAll(replacementSelectorPrefix, '').replaceAll(' > ', '').split('.').filter(Boolean);
38
+ if (precedingTemplateElement.value.raw.endsWith(deprecatedClass.startsWith(' ') ? `${replacementSelectorPrefix} .` : `${replacementSelectorPrefix}.`)) {
39
+ parent.expressions.splice(memberExpressionIndex, 1, j.memberExpression(memberExpression.value.object, j.identifier(atomicClasses[0])), j.memberExpression(memberExpression.value.object, j.identifier(atomicClasses[1])));
40
+ if (replacementSelector.includes(' > ')) {
41
+ parent.quasis.splice(memberExpressionIndex, 1, j.templateElement({
42
+ raw: precedingTemplateElement.value.raw.replace(' ', ''),
43
+ cooked: precedingTemplateElement.value.cooked.replace(' ', '')
44
+ }, false), j.templateElement({
45
+ raw: ' > .',
46
+ cooked: ' > .'
47
+ }, false));
48
+ } else {
49
+ parent.quasis.splice(memberExpressionIndex, 1, j.templateElement({
50
+ raw: precedingTemplateElement.value.raw,
51
+ cooked: precedingTemplateElement.value.cooked
52
+ }, false), j.templateElement({
53
+ raw: '.',
54
+ cooked: '.'
55
+ }, false));
56
+ }
57
+ }
58
+ }
59
+ });
60
+ }
61
+ });
62
+ });
63
+ const selectorRegex = new RegExp(`^${replacementSelectorPrefix}${deprecatedClass}`);
64
+ root.find(j.Literal, literal => typeof literal.value === 'string' && literal.value.match(selectorRegex)).forEach(path => {
65
+ path.replace(j.literal(path.value.value.replace(selectorRegex, `${replacementSelectorPrefix}${replacementSelector}`)));
66
+ });
67
+ });
68
+ return root.toSource(printOptions);
69
+ }
@@ -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 _buttonClasses.default;
11
+ }
12
+ });
13
+ var _buttonClasses = _interopRequireDefault(require("./button-classes"));
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+
3
+ const classes = [{
4
+ deprecatedClass: '.MuiButton-textInherit',
5
+ replacementSelector: '.MuiButton-text.MuiButton-colorInherit'
6
+ }, {
7
+ deprecatedClass: '.MuiButton-textPrimary',
8
+ replacementSelector: '.MuiButton-text.MuiButton-colorPrimary'
9
+ }, {
10
+ deprecatedClass: '.MuiButton-textSecondary',
11
+ replacementSelector: '.MuiButton-text.MuiButton-colorSecondary'
12
+ }, {
13
+ deprecatedClass: '.MuiButton-textSuccess',
14
+ replacementSelector: '.MuiButton-text.MuiButton-colorSuccess'
15
+ }, {
16
+ deprecatedClass: '.MuiButton-textError',
17
+ replacementSelector: '.MuiButton-text.MuiButton-colorError'
18
+ }, {
19
+ deprecatedClass: '.MuiButton-textInfo',
20
+ replacementSelector: '.MuiButton-text.MuiButton-colorInfo'
21
+ }, {
22
+ deprecatedClass: '.MuiButton-textWarning',
23
+ replacementSelector: '.MuiButton-text.MuiButton-colorWarning'
24
+ }, {
25
+ deprecatedClass: '.MuiButton-outlinedInherit',
26
+ replacementSelector: '.MuiButton-outlined.MuiButton-colorInherit'
27
+ }, {
28
+ deprecatedClass: '.MuiButton-outlinedPrimary',
29
+ replacementSelector: '.MuiButton-outlined.MuiButton-colorPrimary'
30
+ }, {
31
+ deprecatedClass: '.MuiButton-outlinedSecondary',
32
+ replacementSelector: '.MuiButton-outlined.MuiButton-colorSecondary'
33
+ }, {
34
+ deprecatedClass: '.MuiButton-outlinedSuccess',
35
+ replacementSelector: '.MuiButton-outlined.MuiButton-colorSuccess'
36
+ }, {
37
+ deprecatedClass: '.MuiButton-outlinedError',
38
+ replacementSelector: '.MuiButton-outlined.MuiButton-colorError'
39
+ }, {
40
+ deprecatedClass: '.MuiButton-outlinedInfo',
41
+ replacementSelector: '.MuiButton-outlined.MuiButton-colorInfo'
42
+ }, {
43
+ deprecatedClass: '.MuiButton-outlinedWarning',
44
+ replacementSelector: '.MuiButton-outlined.MuiButton-colorWarning'
45
+ }, {
46
+ deprecatedClass: '.MuiButton-containedInherit',
47
+ replacementSelector: '.MuiButton-contained.MuiButton-colorInherit'
48
+ }, {
49
+ deprecatedClass: '.MuiButton-containedPrimary',
50
+ replacementSelector: '.MuiButton-contained.MuiButton-colorPrimary'
51
+ }, {
52
+ deprecatedClass: '.MuiButton-containedSecondary',
53
+ replacementSelector: '.MuiButton-contained.MuiButton-colorSecondary'
54
+ }, {
55
+ deprecatedClass: '.MuiButton-containedSuccess',
56
+ replacementSelector: '.MuiButton-contained.MuiButton-colorSuccess'
57
+ }, {
58
+ deprecatedClass: '.MuiButton-containedError',
59
+ replacementSelector: '.MuiButton-contained.MuiButton-colorError'
60
+ }, {
61
+ deprecatedClass: '.MuiButton-containedInfo',
62
+ replacementSelector: '.MuiButton-contained.MuiButton-colorInfo'
63
+ }, {
64
+ deprecatedClass: '.MuiButton-containedWarning',
65
+ replacementSelector: '.MuiButton-contained.MuiButton-colorWarning'
66
+ }, {
67
+ deprecatedClass: '.MuiButton-textSizeSmall',
68
+ replacementSelector: '.MuiButton-text.MuiButton-sizeSmall'
69
+ }, {
70
+ deprecatedClass: '.MuiButton-textSizeLarge',
71
+ replacementSelector: '.MuiButton-text.MuiButton-sizeLarge'
72
+ }, {
73
+ deprecatedClass: '.MuiButton-outlinedSizeSmall',
74
+ replacementSelector: '.MuiButton-outlined.MuiButton-sizeSmall'
75
+ }, {
76
+ deprecatedClass: '.MuiButton-outlinedSizeLarge',
77
+ replacementSelector: '.MuiButton-outlined.MuiButton-sizeLarge'
78
+ }, {
79
+ deprecatedClass: '.MuiButton-containedSizeSmall',
80
+ replacementSelector: '.MuiButton-contained.MuiButton-sizeSmall'
81
+ }, {
82
+ deprecatedClass: '.MuiButton-containedSizeLarge',
83
+ replacementSelector: '.MuiButton-contained.MuiButton-sizeLarge'
84
+ }, {
85
+ deprecatedClass: '.MuiButton-textSizeMedium',
86
+ replacementSelector: '.MuiButton-text.MuiButton-sizeMedium'
87
+ }, {
88
+ deprecatedClass: '.MuiButton-outlinedSizeMedium',
89
+ replacementSelector: '.MuiButton-outlined.MuiButton-sizeMedium'
90
+ }, {
91
+ deprecatedClass: '.MuiButton-containedSizeMedium',
92
+ replacementSelector: '.MuiButton-contained.MuiButton-sizeMedium'
93
+ }, {
94
+ deprecatedClass: ' .MuiButton-iconSizeSmall',
95
+ replacementSelector: '.MuiButton-sizeSmall > .MuiButton-icon'
96
+ }, {
97
+ deprecatedClass: ' .MuiButton-iconSizeMedium',
98
+ replacementSelector: '.MuiButton-sizeMedium > .MuiButton-icon'
99
+ }, {
100
+ deprecatedClass: ' .MuiButton-iconSizeLarge',
101
+ replacementSelector: '.MuiButton-sizeLarge > .MuiButton-icon'
102
+ }];
103
+ const plugin = () => {
104
+ return {
105
+ postcssPlugin: `Replace deperecated Button classes with new classes`,
106
+ Rule(rule) {
107
+ const {
108
+ selector
109
+ } = rule;
110
+ classes.forEach(({
111
+ deprecatedClass,
112
+ replacementSelector
113
+ }) => {
114
+ const selectorRegex = new RegExp(`${deprecatedClass}`);
115
+ if (selector.match(selectorRegex)) {
116
+ rule.selector = selector.replace(selectorRegex, replacementSelector);
117
+ }
118
+ });
119
+ }
120
+ };
121
+ };
122
+ plugin.postcss = true;
123
+ module.exports = {
124
+ plugin,
125
+ classes
126
+ };
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+
3
+ const {
4
+ plugin
5
+ } = require('./postcss-plugin');
6
+ module.exports = {
7
+ plugins: [plugin]
8
+ };
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _Button = require("@mui/material/Button");
4
+ '&.MuiButton-textInherit';
5
+ '&.MuiButton-textPrimary';
6
+ '&.MuiButton-textSecondary';
7
+ '&.MuiButton-textSuccess';
8
+ '&.MuiButton-textError';
9
+ '&.MuiButton-textInfo';
10
+ '&.MuiButton-textWarning';
11
+ '&.MuiButton-outlinedInherit';
12
+ '&.MuiButton-outlinedPrimary';
13
+ '&.MuiButton-outlinedSecondary';
14
+ '&.MuiButton-outlinedSuccess';
15
+ '&.MuiButton-outlinedError';
16
+ '&.MuiButton-outlinedInfo';
17
+ '&.MuiButton-outlinedWarning';
18
+ '&.MuiButton-containedInherit';
19
+ '&.MuiButton-containedPrimary';
20
+ '&.MuiButton-containedSecondary';
21
+ '&.MuiButton-containedSuccess';
22
+ '&.MuiButton-containedError';
23
+ '&.MuiButton-containedInfo';
24
+ '&.MuiButton-containedWarning';
25
+ '&.MuiButton-textSizeSmall';
26
+ '&.MuiButton-textSizeMedium';
27
+ '&.MuiButton-textSizeLarge';
28
+ '&.MuiButton-outlinedSizeSmall';
29
+ '&.MuiButton-outlinedSizeMedium';
30
+ '&.MuiButton-outlinedSizeLarge';
31
+ '&.MuiButton-containedSizeSmall';
32
+ '&.MuiButton-containedSizeMedium';
33
+ '&.MuiButton-containedSizeLarge';
34
+ '& .MuiButton-iconSizeSmall';
35
+ '& .MuiButton-iconSizeMedium';
36
+ '& .MuiButton-iconSizeLarge';
37
+ `&.${_Button.buttonClasses.textInherit}`;
38
+ `&.${_Button.buttonClasses.textPrimary}`;
39
+ `&.${_Button.buttonClasses.textSecondary}`;
40
+ `&.${_Button.buttonClasses.textSuccess}`;
41
+ `&.${_Button.buttonClasses.textError}`;
42
+ `&.${_Button.buttonClasses.textInfo}`;
43
+ `&.${_Button.buttonClasses.textWarning}`;
44
+ `&.${_Button.buttonClasses.outlinedInherit}`;
45
+ `&.${_Button.buttonClasses.outlinedPrimary}`;
46
+ `&.${_Button.buttonClasses.outlinedSecondary}`;
47
+ `&.${_Button.buttonClasses.outlinedSuccess}`;
48
+ `&.${_Button.buttonClasses.outlinedError}`;
49
+ `&.${_Button.buttonClasses.outlinedInfo}`;
50
+ `&.${_Button.buttonClasses.outlinedWarning}`;
51
+ `&.${_Button.buttonClasses.containedInherit}`;
52
+ `&.${_Button.buttonClasses.containedPrimary}`;
53
+ `&.${_Button.buttonClasses.containedSecondary}`;
54
+ `&.${_Button.buttonClasses.containedSuccess}`;
55
+ `&.${_Button.buttonClasses.containedError}`;
56
+ `&.${_Button.buttonClasses.containedInfo}`;
57
+ `&.${_Button.buttonClasses.containedWarning}`;
58
+ `&.${_Button.buttonClasses.textSizeSmall}`;
59
+ `&.${_Button.buttonClasses.textSizeMedium}`;
60
+ `&.${_Button.buttonClasses.textSizeLarge}`;
61
+ `&.${_Button.buttonClasses.outlinedSizeSmall}`;
62
+ `&.${_Button.buttonClasses.outlinedSizeMedium}`;
63
+ `&.${_Button.buttonClasses.outlinedSizeLarge}`;
64
+ `&.${_Button.buttonClasses.containedSizeSmall}`;
65
+ `&.${_Button.buttonClasses.containedSizeMedium}`;
66
+ `&.${_Button.buttonClasses.containedSizeLarge}`;
67
+ `& .${_Button.buttonClasses.iconSizeSmall}`;
68
+ `& .${_Button.buttonClasses.iconSizeMedium}`;
69
+ `& .${_Button.buttonClasses.iconSizeLarge}`;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _Button = require("@mui/material/Button");
4
+ "&.MuiButton-text.MuiButton-colorInherit";
5
+ "&.MuiButton-text.MuiButton-colorPrimary";
6
+ "&.MuiButton-text.MuiButton-colorSecondary";
7
+ "&.MuiButton-text.MuiButton-colorSuccess";
8
+ "&.MuiButton-text.MuiButton-colorError";
9
+ "&.MuiButton-text.MuiButton-colorInfo";
10
+ "&.MuiButton-text.MuiButton-colorWarning";
11
+ "&.MuiButton-outlined.MuiButton-colorInherit";
12
+ "&.MuiButton-outlined.MuiButton-colorPrimary";
13
+ "&.MuiButton-outlined.MuiButton-colorSecondary";
14
+ "&.MuiButton-outlined.MuiButton-colorSuccess";
15
+ "&.MuiButton-outlined.MuiButton-colorError";
16
+ "&.MuiButton-outlined.MuiButton-colorInfo";
17
+ "&.MuiButton-outlined.MuiButton-colorWarning";
18
+ "&.MuiButton-contained.MuiButton-colorInherit";
19
+ "&.MuiButton-contained.MuiButton-colorPrimary";
20
+ "&.MuiButton-contained.MuiButton-colorSecondary";
21
+ "&.MuiButton-contained.MuiButton-colorSuccess";
22
+ "&.MuiButton-contained.MuiButton-colorError";
23
+ "&.MuiButton-contained.MuiButton-colorInfo";
24
+ "&.MuiButton-contained.MuiButton-colorWarning";
25
+ "&.MuiButton-text.MuiButton-sizeSmall";
26
+ "&.MuiButton-text.MuiButton-sizeMedium";
27
+ "&.MuiButton-text.MuiButton-sizeLarge";
28
+ "&.MuiButton-outlined.MuiButton-sizeSmall";
29
+ "&.MuiButton-outlined.MuiButton-sizeMedium";
30
+ "&.MuiButton-outlined.MuiButton-sizeLarge";
31
+ "&.MuiButton-contained.MuiButton-sizeSmall";
32
+ "&.MuiButton-contained.MuiButton-sizeMedium";
33
+ "&.MuiButton-contained.MuiButton-sizeLarge";
34
+ "&.MuiButton-sizeSmall > .MuiButton-icon";
35
+ "&.MuiButton-sizeMedium > .MuiButton-icon";
36
+ "&.MuiButton-sizeLarge > .MuiButton-icon";
37
+ `&.${_Button.buttonClasses.text}.${_Button.buttonClasses.colorInherit}`;
38
+ `&.${_Button.buttonClasses.text}.${_Button.buttonClasses.colorPrimary}`;
39
+ `&.${_Button.buttonClasses.text}.${_Button.buttonClasses.colorSecondary}`;
40
+ `&.${_Button.buttonClasses.text}.${_Button.buttonClasses.colorSuccess}`;
41
+ `&.${_Button.buttonClasses.text}.${_Button.buttonClasses.colorError}`;
42
+ `&.${_Button.buttonClasses.text}.${_Button.buttonClasses.colorInfo}`;
43
+ `&.${_Button.buttonClasses.text}.${_Button.buttonClasses.colorWarning}`;
44
+ `&.${_Button.buttonClasses.outlined}.${_Button.buttonClasses.colorInherit}`;
45
+ `&.${_Button.buttonClasses.outlined}.${_Button.buttonClasses.colorPrimary}`;
46
+ `&.${_Button.buttonClasses.outlined}.${_Button.buttonClasses.colorSecondary}`;
47
+ `&.${_Button.buttonClasses.outlined}.${_Button.buttonClasses.colorSuccess}`;
48
+ `&.${_Button.buttonClasses.outlined}.${_Button.buttonClasses.colorError}`;
49
+ `&.${_Button.buttonClasses.outlined}.${_Button.buttonClasses.colorInfo}`;
50
+ `&.${_Button.buttonClasses.outlined}.${_Button.buttonClasses.colorWarning}`;
51
+ `&.${_Button.buttonClasses.contained}.${_Button.buttonClasses.colorInherit}`;
52
+ `&.${_Button.buttonClasses.contained}.${_Button.buttonClasses.colorPrimary}`;
53
+ `&.${_Button.buttonClasses.contained}.${_Button.buttonClasses.colorSecondary}`;
54
+ `&.${_Button.buttonClasses.contained}.${_Button.buttonClasses.colorSuccess}`;
55
+ `&.${_Button.buttonClasses.contained}.${_Button.buttonClasses.colorError}`;
56
+ `&.${_Button.buttonClasses.contained}.${_Button.buttonClasses.colorInfo}`;
57
+ `&.${_Button.buttonClasses.contained}.${_Button.buttonClasses.colorWarning}`;
58
+ `&.${_Button.buttonClasses.text}.${_Button.buttonClasses.sizeSmall}`;
59
+ `&.${_Button.buttonClasses.text}.${_Button.buttonClasses.sizeMedium}`;
60
+ `&.${_Button.buttonClasses.text}.${_Button.buttonClasses.sizeLarge}`;
61
+ `&.${_Button.buttonClasses.outlined}.${_Button.buttonClasses.sizeSmall}`;
62
+ `&.${_Button.buttonClasses.outlined}.${_Button.buttonClasses.sizeMedium}`;
63
+ `&.${_Button.buttonClasses.outlined}.${_Button.buttonClasses.sizeLarge}`;
64
+ `&.${_Button.buttonClasses.contained}.${_Button.buttonClasses.sizeSmall}`;
65
+ `&.${_Button.buttonClasses.contained}.${_Button.buttonClasses.sizeMedium}`;
66
+ `&.${_Button.buttonClasses.contained}.${_Button.buttonClasses.sizeLarge}`;
67
+ `&.${_Button.buttonClasses.sizeSmall} > .${_Button.buttonClasses.icon}`;
68
+ `&.${_Button.buttonClasses.sizeMedium} > .${_Button.buttonClasses.icon}`;
69
+ `&.${_Button.buttonClasses.sizeLarge} > .${_Button.buttonClasses.icon}`;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = transformer;
7
+ var _postcssPlugin = require("./postcss-plugin");
8
+ /**
9
+ * @param {import('jscodeshift').FileInfo} file
10
+ * @param {import('jscodeshift').API} api
11
+ */
12
+ function transformer(file, api, options) {
13
+ const j = api.jscodeshift;
14
+ const root = j(file.source);
15
+ const printOptions = options.printOptions;
16
+ _postcssPlugin.classes.forEach(({
17
+ deprecatedClass,
18
+ replacementSelector
19
+ }) => {
20
+ const replacementSelectorPrefix = '&';
21
+ root.find(j.ImportDeclaration).filter(path => path.node.source.value.match(/^@mui\/material\/Chip$/)).forEach(path => {
22
+ path.node.specifiers.forEach(specifier => {
23
+ if (specifier.type === 'ImportSpecifier' && specifier.imported.name === 'chipClasses') {
24
+ const deprecatedAtomicClass = deprecatedClass.replace(`${deprecatedClass.split('-')[0]}-`, '');
25
+ root.find(j.MemberExpression, {
26
+ object: {
27
+ name: specifier.local.name
28
+ },
29
+ property: {
30
+ name: deprecatedAtomicClass
31
+ }
32
+ }).forEach(memberExpression => {
33
+ const parent = memberExpression.parentPath.parentPath.value;
34
+ if (parent.type === j.TemplateLiteral.name) {
35
+ const memberExpressionIndex = parent.expressions.findIndex(expression => expression === memberExpression.value);
36
+ const precedingTemplateElement = parent.quasis[memberExpressionIndex];
37
+ const atomicClasses = replacementSelector.replaceAll('MuiChip-', '').replaceAll(replacementSelectorPrefix, '').replaceAll(' > ', '').split('.').filter(Boolean);
38
+ if (precedingTemplateElement.value.raw.endsWith(deprecatedClass.startsWith(' ') ? `${replacementSelectorPrefix} .` : `${replacementSelectorPrefix}.`)) {
39
+ const atomicClassesArgs = [memberExpressionIndex, 1, ...atomicClasses.map(atomicClass => j.memberExpression(memberExpression.value.object, j.identifier(atomicClass)))];
40
+ parent.expressions.splice(...atomicClassesArgs);
41
+ if (replacementSelector.includes(' > ')) {
42
+ const quasisArgs = [memberExpressionIndex, 1, j.templateElement({
43
+ raw: precedingTemplateElement.value.raw.replace(' ', ''),
44
+ cooked: precedingTemplateElement.value.cooked.replace(' ', '')
45
+ }, false), j.templateElement({
46
+ raw: ' > .',
47
+ cooked: ' > .'
48
+ }, false)];
49
+ if (atomicClasses.length === 3) {
50
+ quasisArgs.splice(3, 0, j.templateElement({
51
+ raw: '.',
52
+ cooked: '.'
53
+ }, false));
54
+ }
55
+ parent.quasis.splice(...quasisArgs);
56
+ } else {
57
+ parent.quasis.splice(memberExpressionIndex, 1, j.templateElement({
58
+ raw: precedingTemplateElement.value.raw,
59
+ cooked: precedingTemplateElement.value.cooked
60
+ }, false), j.templateElement({
61
+ raw: '.',
62
+ cooked: '.'
63
+ }, false));
64
+ }
65
+ }
66
+ }
67
+ });
68
+ }
69
+ });
70
+ });
71
+ const selectorRegex = new RegExp(`^${replacementSelectorPrefix}${deprecatedClass}`);
72
+ root.find(j.Literal, literal => typeof literal.value === 'string' && literal.value.match(selectorRegex)).forEach(path => {
73
+ path.replace(j.literal(path.value.value.replace(selectorRegex, `${replacementSelectorPrefix}${replacementSelector}`)));
74
+ });
75
+ });
76
+ return root.toSource(printOptions);
77
+ }
@@ -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 _chipClasses.default;
11
+ }
12
+ });
13
+ var _chipClasses = _interopRequireDefault(require("./chip-classes"));