@mui/codemod 5.15.10 → 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 (49) hide show
  1. package/README.md +670 -7
  2. package/codemod.js +80 -7
  3. package/node/deprecations/accordion-summary-classes/accordion-summary-classes.js +55 -0
  4. package/node/deprecations/accordion-summary-classes/index.js +13 -0
  5. package/node/deprecations/accordion-summary-classes/postcss-plugin.js +28 -0
  6. package/node/deprecations/accordion-summary-classes/postcss.config.js +8 -0
  7. package/node/deprecations/accordion-summary-classes/test-cases/actual.js +54 -0
  8. package/node/deprecations/accordion-summary-classes/test-cases/expected.js +54 -0
  9. package/node/deprecations/alert-classes/alert-classes.js +58 -0
  10. package/node/deprecations/alert-classes/index.js +13 -0
  11. package/node/deprecations/alert-classes/postcss-plugin.js +38 -0
  12. package/node/deprecations/alert-classes/postcss.config.js +8 -0
  13. package/node/deprecations/alert-classes/test-cases/actual.js +27 -0
  14. package/node/deprecations/alert-classes/test-cases/expected.js +27 -0
  15. package/node/deprecations/alert-props/alert-props.js +22 -0
  16. package/node/deprecations/alert-props/index.js +13 -0
  17. package/node/deprecations/alert-props/test-cases/actual.js +43 -0
  18. package/node/deprecations/alert-props/test-cases/expected.js +33 -0
  19. package/node/deprecations/alert-props/test-cases/theme.actual.js +52 -0
  20. package/node/deprecations/alert-props/test-cases/theme.expected.js +42 -0
  21. package/node/deprecations/all/deprecations-all.js +10 -0
  22. package/node/deprecations/all/postcss.config.js +20 -0
  23. package/node/deprecations/button-classes/button-classes.js +69 -0
  24. package/node/deprecations/button-classes/index.js +13 -0
  25. package/node/deprecations/button-classes/postcss-plugin.js +126 -0
  26. package/node/deprecations/button-classes/postcss.config.js +8 -0
  27. package/node/deprecations/button-classes/test-cases/actual.js +69 -0
  28. package/node/deprecations/button-classes/test-cases/expected.js +69 -0
  29. package/node/deprecations/chip-classes/chip-classes.js +77 -0
  30. package/node/deprecations/chip-classes/index.js +13 -0
  31. package/node/deprecations/chip-classes/postcss-plugin.js +105 -0
  32. package/node/deprecations/chip-classes/postcss.config.js +8 -0
  33. package/node/deprecations/chip-classes/test-cases/actual.js +55 -0
  34. package/node/deprecations/chip-classes/test-cases/expected.js +55 -0
  35. package/node/deprecations/pagination-item-classes/index.js +13 -0
  36. package/node/deprecations/pagination-item-classes/pagination-item-classes.js +58 -0
  37. package/node/deprecations/pagination-item-classes/postcss-plugin.js +39 -0
  38. package/node/deprecations/pagination-item-classes/postcss.config.js +8 -0
  39. package/node/deprecations/pagination-item-classes/test-cases/actual.js +108 -0
  40. package/node/deprecations/pagination-item-classes/test-cases/expected.js +108 -0
  41. package/node/deprecations/slider-props/index.js +13 -0
  42. package/node/deprecations/slider-props/slider-props.js +22 -0
  43. package/node/deprecations/slider-props/test-cases/actual.js +43 -0
  44. package/node/deprecations/slider-props/test-cases/expected.js +33 -0
  45. package/node/deprecations/slider-props/test-cases/theme.actual.js +52 -0
  46. package/node/deprecations/slider-props/test-cases/theme.expected.js +42 -0
  47. package/node/deprecations/utils/replaceComponentsWithSlots.js +184 -0
  48. package/node/util/findComponentDefaultProps.js +30 -0
  49. package/package.json +4 -2
package/codemod.js CHANGED
@@ -5,11 +5,15 @@ const { promises: fs } = require('fs');
5
5
  const path = require('path');
6
6
  const yargs = require('yargs');
7
7
  const jscodeshiftPackage = require('jscodeshift/package.json');
8
+ const postcssCliPackage = require('postcss-cli/package.json');
8
9
 
9
10
  const jscodeshiftDirectory = path.dirname(require.resolve('jscodeshift'));
10
11
  const jscodeshiftExecutable = path.join(jscodeshiftDirectory, jscodeshiftPackage.bin.jscodeshift);
11
12
 
12
- async function runTransform(transform, files, flags, codemodFlags) {
13
+ const postcssCliDirectory = path.dirname(require.resolve('postcss-cli'));
14
+ const postcssExecutable = path.join(postcssCliDirectory, postcssCliPackage.bin.postcss);
15
+
16
+ async function runJscodeshiftTransform(transform, files, flags, codemodFlags) {
13
17
  const paths = [
14
18
  path.resolve(__dirname, './src', `${transform}/index.js`),
15
19
  path.resolve(__dirname, './src', `${transform}.js`),
@@ -57,6 +61,8 @@ async function runTransform(transform, files, flags, codemodFlags) {
57
61
  flags.parser || 'tsx',
58
62
  '--ignore-pattern',
59
63
  '**/node_modules/**',
64
+ '--ignore-pattern',
65
+ '**/*.css',
60
66
  ];
61
67
 
62
68
  if (flags.dry) {
@@ -80,15 +86,82 @@ async function runTransform(transform, files, flags, codemodFlags) {
80
86
  }
81
87
  }
82
88
 
89
+ const parseCssFilePaths = async (files) => {
90
+ const cssFiles = await Promise.all(
91
+ files.map(async (filePath) => {
92
+ const stat = await fs.stat(filePath);
93
+ if (stat.isDirectory()) {
94
+ return `${filePath}/**/*.css`;
95
+ }
96
+ if (filePath.endsWith('.css')) {
97
+ return filePath;
98
+ }
99
+
100
+ return null;
101
+ }),
102
+ );
103
+
104
+ return cssFiles.filter(Boolean);
105
+ };
106
+
107
+ async function runPostcssTransform(transform, files) {
108
+ // local postcss plugins are loaded through config files https://github.com/postcss/postcss-load-config/issues/17#issuecomment-253125559
109
+ const paths = [
110
+ path.resolve(__dirname, './src', `${transform}/postcss.config.js`),
111
+ path.resolve(__dirname, './node', `${transform}/postcss.config.js`),
112
+ ];
113
+
114
+ let configPath;
115
+ let error;
116
+ // eslint-disable-next-line no-restricted-syntax
117
+ for (const item of paths) {
118
+ try {
119
+ // eslint-disable-next-line no-await-in-loop
120
+ await fs.stat(item);
121
+ error = undefined;
122
+ configPath = item;
123
+ break;
124
+ } catch (srcPathError) {
125
+ error = srcPathError;
126
+ continue;
127
+ }
128
+ }
129
+
130
+ if (error) {
131
+ // don't throw if the file is not found, postcss transform is optional
132
+ if (error?.code !== 'ENOENT') {
133
+ throw error;
134
+ }
135
+ } else {
136
+ const cssPaths = await parseCssFilePaths(files);
137
+
138
+ if (cssPaths.length > 0) {
139
+ const args = [
140
+ postcssExecutable,
141
+ ...cssPaths,
142
+ '--config',
143
+ configPath,
144
+ '--replace',
145
+ '--verbose',
146
+ ];
147
+
148
+ // eslint-disable-next-line no-console -- debug information
149
+ console.log(`Executing command: postcss ${args.join(' ')}`);
150
+ const postcssProcess = childProcess.spawnSync('node', args, { stdio: 'inherit' });
151
+
152
+ if (postcssProcess.error) {
153
+ throw postcssProcess.error;
154
+ }
155
+ }
156
+ }
157
+ }
158
+
83
159
  function run(argv) {
84
160
  const { codemod, paths, ...flags } = argv;
161
+ const files = paths.map((filePath) => path.resolve(filePath));
85
162
 
86
- return runTransform(
87
- codemod,
88
- paths.map((filePath) => path.resolve(filePath)),
89
- flags,
90
- argv._,
91
- );
163
+ runJscodeshiftTransform(codemod, files, flags, argv._);
164
+ runPostcssTransform(codemod, files);
92
165
  }
93
166
 
94
167
  yargs
@@ -0,0 +1,55 @@
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
+
17
+ // contentGutters is a special case as it's applied to the content child
18
+ // but gutters is applied to the parent element, so the gutter class needs to go on the parent
19
+
20
+ root.find(j.ImportDeclaration).filter(path => path.node.source.value.match(/^@mui\/material\/AccordionSummary$/)).forEach(path => {
21
+ path.node.specifiers.forEach(specifier => {
22
+ if (specifier.type === 'ImportSpecifier' && specifier.imported.name === 'accordionSummaryClasses') {
23
+ root.find(j.MemberExpression, {
24
+ object: {
25
+ name: specifier.local.name
26
+ },
27
+ property: {
28
+ name: 'contentGutters'
29
+ }
30
+ }).forEach(memberExpression => {
31
+ const parent = memberExpression.parentPath.parentPath.value;
32
+ if (parent.type === j.TemplateLiteral.name) {
33
+ const memberExpressionIndex = parent.expressions.findIndex(expression => expression === memberExpression.value);
34
+ const precedingTemplateElement = parent.quasis[memberExpressionIndex];
35
+ if (precedingTemplateElement.value.raw.endsWith(' .')) {
36
+ parent.expressions.splice(memberExpressionIndex, 1, j.memberExpression(memberExpression.value.object, j.identifier('gutters')), j.memberExpression(memberExpression.value.object, j.identifier('content')));
37
+ parent.quasis.splice(memberExpressionIndex, 1, j.templateElement({
38
+ raw: precedingTemplateElement.value.raw.replace(' ', ''),
39
+ cooked: precedingTemplateElement.value.cooked.replace(' ', '')
40
+ }, false), j.templateElement({
41
+ raw: ' .',
42
+ cooked: ' .'
43
+ }, false));
44
+ }
45
+ }
46
+ });
47
+ }
48
+ });
49
+ });
50
+ const selectorRegex = new RegExp(`^& ${_postcssPlugin.deprecatedClass}`);
51
+ root.find(j.Literal, literal => typeof literal.value === 'string' && literal.value.match(selectorRegex)).forEach(path => {
52
+ path.replace(j.literal(path.value.value.replace(selectorRegex, `&${_postcssPlugin.replacementSelector}`)));
53
+ });
54
+ return root.toSource(printOptions);
55
+ }
@@ -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 _accordionSummaryClasses.default;
11
+ }
12
+ });
13
+ var _accordionSummaryClasses = _interopRequireDefault(require("./accordion-summary-classes"));
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ const deprecatedClass = '.MuiAccordionSummary-contentGutters';
4
+ const replacementSelector = '.MuiAccordionSummary-gutters .MuiAccordionSummary-content';
5
+ const plugin = () => {
6
+ return {
7
+ postcssPlugin: `Replace ${deprecatedClass} with ${replacementSelector}`,
8
+ Rule(rule) {
9
+ const {
10
+ selector
11
+ } = rule;
12
+
13
+ // contentGutters is a special case as it's applied to the content child
14
+ // but gutters is applied to the parent element, so the gutter class needs to go on the parent
15
+
16
+ const selectorRegex = new RegExp(` ${deprecatedClass}`);
17
+ if (selector.match(selectorRegex)) {
18
+ rule.selector = selector.replace(selectorRegex, replacementSelector);
19
+ }
20
+ }
21
+ };
22
+ };
23
+ plugin.postcss = true;
24
+ module.exports = {
25
+ plugin,
26
+ deprecatedClass,
27
+ replacementSelector
28
+ };
@@ -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,54 @@
1
+ "use strict";
2
+
3
+ var _AccordionSummary = require("@mui/material/AccordionSummary");
4
+ var _jsxRuntime = require("react/jsx-runtime");
5
+ fn({
6
+ MuiAccordionSummary: {
7
+ styleOverrides: {
8
+ root: {
9
+ '& .MuiAccordionSummary-contentGutters': {
10
+ color: 'red'
11
+ }
12
+ }
13
+ }
14
+ }
15
+ });
16
+ fn({
17
+ MuiAccordionSummary: {
18
+ styleOverrides: {
19
+ root: {
20
+ [`& .${_AccordionSummary.accordionSummaryClasses.contentGutters}`]: {
21
+ color: 'red'
22
+ }
23
+ }
24
+ }
25
+ }
26
+ });
27
+ styled(Component)(() => {
28
+ return {
29
+ '& .MuiAccordionSummary-contentGutters': {
30
+ color: 'red'
31
+ }
32
+ };
33
+ });
34
+ styled(Component)(() => {
35
+ return {
36
+ [`& .${_AccordionSummary.accordionSummaryClasses.contentGutters}`]: {
37
+ color: 'red'
38
+ }
39
+ };
40
+ });
41
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(AccordionSummary, {
42
+ sx: {
43
+ '& .MuiAccordionSummary-contentGutters': {
44
+ color: 'red'
45
+ }
46
+ }
47
+ });
48
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(AccordionSummary, {
49
+ sx: {
50
+ [`& .${_AccordionSummary.accordionSummaryClasses.contentGutters}`]: {
51
+ color: 'red'
52
+ }
53
+ }
54
+ });
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _AccordionSummary = require("@mui/material/AccordionSummary");
4
+ var _jsxRuntime = require("react/jsx-runtime");
5
+ fn({
6
+ MuiAccordionSummary: {
7
+ styleOverrides: {
8
+ root: {
9
+ '&.MuiAccordionSummary-gutters .MuiAccordionSummary-content': {
10
+ color: 'red'
11
+ }
12
+ }
13
+ }
14
+ }
15
+ });
16
+ fn({
17
+ MuiAccordionSummary: {
18
+ styleOverrides: {
19
+ root: {
20
+ [`&.${_AccordionSummary.accordionSummaryClasses.gutters} .${_AccordionSummary.accordionSummaryClasses.content}`]: {
21
+ color: 'red'
22
+ }
23
+ }
24
+ }
25
+ }
26
+ });
27
+ styled(Component)(() => {
28
+ return {
29
+ '&.MuiAccordionSummary-gutters .MuiAccordionSummary-content': {
30
+ color: 'red'
31
+ }
32
+ };
33
+ });
34
+ styled(Component)(() => {
35
+ return {
36
+ [`&.${_AccordionSummary.accordionSummaryClasses.gutters} .${_AccordionSummary.accordionSummaryClasses.content}`]: {
37
+ color: 'red'
38
+ }
39
+ };
40
+ });
41
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(AccordionSummary, {
42
+ sx: {
43
+ '&.MuiAccordionSummary-gutters .MuiAccordionSummary-content': {
44
+ color: 'red'
45
+ }
46
+ }
47
+ });
48
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(AccordionSummary, {
49
+ sx: {
50
+ [`&.${_AccordionSummary.accordionSummaryClasses.gutters} .${_AccordionSummary.accordionSummaryClasses.content}`]: {
51
+ color: 'red'
52
+ }
53
+ }
54
+ });
@@ -0,0 +1,58 @@
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
+ root.find(j.ImportDeclaration).filter(path => path.node.source.value.match(/^@mui\/material\/Alert$/)).forEach(path => {
21
+ path.node.specifiers.forEach(specifier => {
22
+ if (specifier.type === 'ImportSpecifier' && specifier.imported.name === 'alertClasses') {
23
+ const deprecatedAtomicClass = deprecatedClass.replace('.MuiAlert-', '');
24
+ root.find(j.MemberExpression, {
25
+ object: {
26
+ name: specifier.local.name
27
+ },
28
+ property: {
29
+ name: deprecatedAtomicClass
30
+ }
31
+ }).forEach(memberExpression => {
32
+ const parent = memberExpression.parentPath.parentPath.value;
33
+ if (parent.type === j.TemplateLiteral.name) {
34
+ const memberExpressionIndex = parent.expressions.findIndex(expression => expression === memberExpression.value);
35
+ const precedingTemplateElement = parent.quasis[memberExpressionIndex];
36
+ const atomicClasses = replacementSelector.replaceAll('MuiAlert-', '').split('.').filter(Boolean);
37
+ if (precedingTemplateElement.value.raw.endsWith('&.')) {
38
+ parent.expressions.splice(memberExpressionIndex, 1, j.memberExpression(memberExpression.value.object, j.identifier(atomicClasses[0])), j.memberExpression(memberExpression.value.object, j.identifier(atomicClasses[1])));
39
+ parent.quasis.splice(memberExpressionIndex, 1, j.templateElement({
40
+ raw: precedingTemplateElement.value.raw,
41
+ cooked: precedingTemplateElement.value.cooked
42
+ }, false), j.templateElement({
43
+ raw: '.',
44
+ cooked: '.'
45
+ }, false));
46
+ }
47
+ }
48
+ });
49
+ }
50
+ });
51
+ });
52
+ const selectorRegex = new RegExp(`^&${deprecatedClass}`);
53
+ root.find(j.Literal, literal => typeof literal.value === 'string' && literal.value.match(selectorRegex)).forEach(path => {
54
+ path.replace(j.literal(path.value.value.replace(selectorRegex, `&${replacementSelector}`)));
55
+ });
56
+ });
57
+ return root.toSource(printOptions);
58
+ }
@@ -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 _alertClasses.default;
11
+ }
12
+ });
13
+ var _alertClasses = _interopRequireDefault(require("./alert-classes"));
@@ -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}`;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = transformer;
8
+ var _replaceComponentsWithSlots = _interopRequireDefault(require("../utils/replaceComponentsWithSlots"));
9
+ /**
10
+ * @param {import('jscodeshift').FileInfo} file
11
+ * @param {import('jscodeshift').API} api
12
+ */
13
+ function transformer(file, api, options) {
14
+ const j = api.jscodeshift;
15
+ const root = j(file.source);
16
+ const printOptions = options.printOptions;
17
+ (0, _replaceComponentsWithSlots.default)(j, {
18
+ root,
19
+ componentName: 'Alert'
20
+ });
21
+ return root.toSource(printOptions);
22
+ }
@@ -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 _alertProps.default;
11
+ }
12
+ });
13
+ var _alertProps = _interopRequireDefault(require("./alert-props"));
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
5
+ var _jsxRuntime = require("react/jsx-runtime");
6
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
7
+ components: {
8
+ CloseButton: ComponentsButton
9
+ },
10
+ componentsProps: {
11
+ closeButton: componentsButtonProps
12
+ }
13
+ });
14
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
15
+ slots: {
16
+ closeIcon: SlotsIcon
17
+ },
18
+ components: {
19
+ CloseButton: ComponentsButton
20
+ },
21
+ slotProps: {
22
+ closeIcon: slotsIconProps
23
+ },
24
+ componentsProps: {
25
+ closeButton: componentsButtonProps
26
+ }
27
+ });
28
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
29
+ slots: {
30
+ closeIcon: SlotsIcon,
31
+ closeButton: SlotsButton
32
+ },
33
+ components: {
34
+ CloseButton: ComponentsButton
35
+ },
36
+ slotProps: {
37
+ closeIcon: slotsIconProps,
38
+ closeButton: slotsButtonProps
39
+ },
40
+ componentsProps: {
41
+ closeButton: componentsButtonProps
42
+ }
43
+ });
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _Alert = _interopRequireDefault(require("@mui/material/Alert"));
5
+ var _jsxRuntime = require("react/jsx-runtime");
6
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
7
+ slots: {
8
+ closeButton: ComponentsButton
9
+ },
10
+ slotProps: {
11
+ closeButton: componentsButtonProps
12
+ }
13
+ });
14
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
15
+ slots: {
16
+ closeIcon: SlotsIcon,
17
+ closeButton: ComponentsButton
18
+ },
19
+ slotProps: {
20
+ closeIcon: slotsIconProps,
21
+ closeButton: componentsButtonProps
22
+ }
23
+ });
24
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Alert.default, {
25
+ slots: {
26
+ closeIcon: SlotsIcon,
27
+ closeButton: SlotsButton
28
+ },
29
+ slotProps: {
30
+ closeIcon: slotsIconProps,
31
+ closeButton: slotsButtonProps
32
+ }
33
+ });
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ fn({
4
+ MuiAlert: {
5
+ defaultProps: {
6
+ components: {
7
+ CloseButton: ComponentsButton
8
+ },
9
+ componentsProps: {
10
+ closeButton: componentsButtonProps
11
+ }
12
+ }
13
+ }
14
+ });
15
+ fn({
16
+ MuiAlert: {
17
+ defaultProps: {
18
+ components: {
19
+ CloseButton: ComponentsButton
20
+ },
21
+ slots: {
22
+ closeIcon: SlotsIcon
23
+ },
24
+ componentsProps: {
25
+ closeButton: componentsButtonProps
26
+ },
27
+ slotProps: {
28
+ closeIcon: slotsIconProps
29
+ }
30
+ }
31
+ }
32
+ });
33
+ fn({
34
+ MuiAlert: {
35
+ defaultProps: {
36
+ components: {
37
+ CloseButton: ComponentsButton
38
+ },
39
+ slots: {
40
+ closeIcon: SlotsIcon,
41
+ closeButton: SlotsButton
42
+ },
43
+ componentsProps: {
44
+ closeButton: componentsButtonProps
45
+ },
46
+ slotProps: {
47
+ closeIcon: slotsIconProps,
48
+ closeButton: slotsButtonProps
49
+ }
50
+ }
51
+ }
52
+ });