@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,65 @@
1
+ "use strict";
2
+
3
+ fn({
4
+ MuiOutlinedInput: {
5
+ defaultProps: {
6
+ slots: {
7
+ input: ComponentsInput
8
+ },
9
+ slotProps: {
10
+ input: componentsInputProps
11
+ }
12
+ }
13
+ }
14
+ });
15
+ fn({
16
+ MuiOutlinedInput: {
17
+ defaultProps: {
18
+ slots: {
19
+ input: ComponentsInput,
20
+ root: SlotsRoot
21
+ },
22
+ slotProps: {
23
+ input: componentsInputProps,
24
+ root: slotsRootProps
25
+ }
26
+ }
27
+ }
28
+ });
29
+ fn({
30
+ MuiOutlinedInput: {
31
+ defaultProps: {
32
+ slots: {
33
+ input: SlotsInput,
34
+ root: SlotsRoot
35
+ },
36
+ slotProps: {
37
+ input: {
38
+ ...componentsInputProps,
39
+ ...slotsInputProps
40
+ },
41
+ root: slotsRootProps
42
+ }
43
+ }
44
+ }
45
+ });
46
+ fn({
47
+ MuiOutlinedInput: {
48
+ defaultProps: {
49
+ slots: {
50
+ input: SlotsInput,
51
+ root: SlotsRoot
52
+ },
53
+ slotProps: {
54
+ input: {
55
+ ...componentsInputProps,
56
+ ...slotsInputProps
57
+ },
58
+ root: {
59
+ ...componentsRootProps,
60
+ ...slotsRootProps
61
+ }
62
+ }
63
+ }
64
+ }
65
+ });
@@ -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 _popperProps.default;
11
+ }
12
+ });
13
+ var _popperProps = _interopRequireDefault(require("./popper-props"));
@@ -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: 'Popper'
20
+ });
21
+ return root.toSource(printOptions);
22
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _Popper = _interopRequireDefault(require("@mui/material/Popper"));
5
+ var _jsxRuntime = require("react/jsx-runtime");
6
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popper.default, {
7
+ components: {
8
+ Root: ComponentsRoot
9
+ },
10
+ componentsProps: {
11
+ root: componentsRootProps
12
+ }
13
+ });
14
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popper.default, {
15
+ slots: {
16
+ root: SlotsRoot
17
+ },
18
+ components: {
19
+ Root: ComponentsRoot
20
+ },
21
+ slotProps: {
22
+ root: slotsRootProps
23
+ },
24
+ componentsProps: {
25
+ root: componentsRootProps
26
+ }
27
+ });
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _Popper = _interopRequireDefault(require("@mui/material/Popper"));
5
+ var _jsxRuntime = require("react/jsx-runtime");
6
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popper.default, {
7
+ slots: {
8
+ root: ComponentsRoot
9
+ },
10
+ slotProps: {
11
+ root: componentsRootProps
12
+ }
13
+ });
14
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popper.default, {
15
+ slots: {
16
+ root: SlotsRoot
17
+ },
18
+ slotProps: {
19
+ root: {
20
+ ...componentsRootProps,
21
+ ...slotsRootProps
22
+ }
23
+ }
24
+ });
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+
3
+ fn({
4
+ MuiPopper: {
5
+ defaultProps: {
6
+ components: {
7
+ Root: ComponentsRoot
8
+ },
9
+ componentsProps: {
10
+ root: componentsRootProps
11
+ }
12
+ }
13
+ }
14
+ });
15
+ fn({
16
+ MuiPopper: {
17
+ defaultProps: {
18
+ components: {
19
+ Root: ComponentsRoot
20
+ },
21
+ slots: {
22
+ root: SlotsRoot
23
+ },
24
+ componentsProps: {
25
+ root: componentsRootProps
26
+ },
27
+ slotProps: {
28
+ root: slotsRootProps
29
+ }
30
+ }
31
+ }
32
+ });
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ fn({
4
+ MuiPopper: {
5
+ defaultProps: {
6
+ slots: {
7
+ root: ComponentsRoot
8
+ },
9
+ slotProps: {
10
+ root: componentsRootProps
11
+ }
12
+ }
13
+ }
14
+ });
15
+ fn({
16
+ MuiPopper: {
17
+ defaultProps: {
18
+ slots: {
19
+ root: SlotsRoot
20
+ },
21
+ slotProps: {
22
+ root: {
23
+ ...componentsRootProps,
24
+ ...slotsRootProps
25
+ }
26
+ }
27
+ }
28
+ }
29
+ });
@@ -6,8 +6,6 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = transformer;
8
8
  var _replaceComponentsWithSlots = _interopRequireDefault(require("../utils/replaceComponentsWithSlots"));
9
- var _movePropIntoSlots = _interopRequireDefault(require("../utils/movePropIntoSlots"));
10
- var _movePropIntoSlotProps = _interopRequireDefault(require("../utils/movePropIntoSlotProps"));
11
9
  /**
12
10
  * @param {import('jscodeshift').FileInfo} file
13
11
  * @param {import('jscodeshift').API} api
@@ -20,17 +18,5 @@ function transformer(file, api, options) {
20
18
  root,
21
19
  componentName: 'StepLabel'
22
20
  });
23
- (0, _movePropIntoSlots.default)(j, {
24
- root,
25
- componentName: 'StepLabel',
26
- propName: 'StepIconComponent',
27
- slotName: 'stepIcon'
28
- });
29
- (0, _movePropIntoSlotProps.default)(j, {
30
- root,
31
- componentName: 'StepLabel',
32
- propName: 'StepIconProps',
33
- slotName: 'stepIcon'
34
- });
35
21
  return root.toSource(printOptions);
36
22
  }
@@ -18,27 +18,4 @@ var _jsxRuntime = require("react/jsx-runtime");
18
18
  componentsProps: {
19
19
  label: componentsLabelProps
20
20
  }
21
- });
22
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_StepLabel.default, {
23
- componentsProps: {
24
- label: componentsLabelProps
25
- },
26
- StepIconProps: StepIconProps
27
- });
28
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_StepLabel.default, {
29
- slots: {
30
- label: SlotsLabel
31
- },
32
- slotProps: {
33
- label: slotLabelProps
34
- },
35
- componentsProps: {
36
- label: componentsLabelProps
37
- },
38
- StepIconComponent: StepIconComponent,
39
- StepIconProps: StepIconProps
40
- });
41
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_StepLabel.default, {
42
- StepIconComponent: StepIconComponent,
43
- StepIconProps: StepIconProps
44
21
  });
@@ -18,31 +18,4 @@ var _jsxRuntime = require("react/jsx-runtime");
18
18
  ...slotLabelProps
19
19
  }
20
20
  }
21
- });
22
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_StepLabel.default, {
23
- slotProps: {
24
- label: componentsLabelProps,
25
- stepIcon: StepIconProps
26
- }
27
- });
28
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_StepLabel.default, {
29
- slots: {
30
- label: SlotsLabel,
31
- stepIcon: StepIconComponent
32
- },
33
- slotProps: {
34
- label: {
35
- ...componentsLabelProps,
36
- ...slotLabelProps
37
- },
38
- stepIcon: StepIconProps
39
- }
40
- });
41
- /*#__PURE__*/(0, _jsxRuntime.jsx)(_StepLabel.default, {
42
- slots: {
43
- stepIcon: StepIconComponent
44
- },
45
- slotProps: {
46
- stepIcon: StepIconProps
47
- }
48
21
  });
@@ -20,26 +20,4 @@ fn({
20
20
  }
21
21
  }
22
22
  }
23
- });
24
- fn({
25
- MuiStepLabel: {
26
- defaultProps: {
27
- StepIconComponent: StepIconComponent,
28
- StepIconProps: StepIconProps
29
- }
30
- }
31
- });
32
- fn({
33
- MuiStepLabel: {
34
- defaultProps: {
35
- componentsProps: {
36
- label: componentsLabelProps
37
- },
38
- slotProps: {
39
- label: slotLabelProps
40
- },
41
- StepIconComponent: StepIconComponent,
42
- StepIconProps: StepIconProps
43
- }
44
- }
45
23
  });
@@ -20,32 +20,4 @@ fn({
20
20
  }
21
21
  }
22
22
  }
23
- });
24
- fn({
25
- MuiStepLabel: {
26
- defaultProps: {
27
- slots: {
28
- stepIcon: StepIconComponent
29
- },
30
- slotProps: {
31
- stepIcon: StepIconProps
32
- }
33
- }
34
- }
35
- });
36
- fn({
37
- MuiStepLabel: {
38
- defaultProps: {
39
- slotProps: {
40
- label: {
41
- ...componentsLabelProps,
42
- ...slotLabelProps
43
- },
44
- stepIcon: StepIconProps
45
- },
46
- slots: {
47
- stepIcon: StepIconComponent
48
- }
49
- }
50
- }
51
23
  });
@@ -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 _tabClasses.default;
11
+ }
12
+ });
13
+ var _tabClasses = _interopRequireDefault(require("./tab-classes"));
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ const classes = [{
4
+ deprecatedClass: ' .MuiTab-iconWrapper',
5
+ replacementSelector: ' .MuiTab-icon'
6
+ }];
7
+ const plugin = () => {
8
+ return {
9
+ postcssPlugin: `Replace deprecated Tab classes with new classes`,
10
+ Rule(rule) {
11
+ const {
12
+ selector
13
+ } = rule;
14
+ classes.forEach(({
15
+ deprecatedClass,
16
+ replacementSelector
17
+ }) => {
18
+ const selectorRegex = new RegExp(`${deprecatedClass}$`);
19
+ if (selector.match(selectorRegex)) {
20
+ rule.selector = selector.replace(selectorRegex, replacementSelector);
21
+ }
22
+ });
23
+ }
24
+ };
25
+ };
26
+ plugin.postcss = true;
27
+ module.exports = {
28
+ plugin,
29
+ classes
30
+ };
@@ -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,53 @@
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\/Tab$/)).forEach(path => {
22
+ path.node.specifiers.forEach(specifier => {
23
+ if (specifier.type === 'ImportSpecifier' && specifier.imported.name === 'tabClasses') {
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 = ['icon'];
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
+ }
42
+ }
43
+ });
44
+ }
45
+ });
46
+ });
47
+ const selectorRegex = new RegExp(`${replacementSelectorPrefix}${deprecatedClass}$`);
48
+ root.find(j.Literal, literal => typeof literal.value === 'string' && literal.value.match(selectorRegex)).forEach(path => {
49
+ path.replace(j.literal(path.value.value.replace(selectorRegex, `${replacementSelectorPrefix}${replacementSelector}`)));
50
+ });
51
+ });
52
+ return root.toSource(printOptions);
53
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ var _Tab = require("@mui/material/Tab");
4
+ '& .MuiTab-iconWrapper';
5
+ `& .${_Tab.tabClasses.iconWrapper}`;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ var _Tab = require("@mui/material/Tab");
4
+ "& .MuiTab-icon";
5
+ `& .${_Tab.tabClasses.icon}`;
@@ -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 _tableSortLabelClasses.default;
11
+ }
12
+ });
13
+ var _tableSortLabelClasses = _interopRequireDefault(require("./table-sort-label-classes"));
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ const classes = [{
4
+ deprecatedClass: ' .MuiTableSortLabel-iconDirectionDesc',
5
+ replacementSelector: '.MuiTableSortLabel-directionDesc > .MuiTableSortLabel-icon'
6
+ }, {
7
+ deprecatedClass: ' .MuiTableSortLabel-iconDirectionAsc',
8
+ replacementSelector: '.MuiTableSortLabel-directionAsc > .MuiTableSortLabel-icon'
9
+ }];
10
+ const plugin = () => {
11
+ return {
12
+ postcssPlugin: `Replace deprecated TableSortLabel classes with new classes`,
13
+ Rule(rule) {
14
+ const {
15
+ selector
16
+ } = rule;
17
+ classes.forEach(({
18
+ deprecatedClass,
19
+ replacementSelector
20
+ }) => {
21
+ const selectorRegex = new RegExp(`${deprecatedClass}$`);
22
+ if (selector.match(selectorRegex)) {
23
+ rule.selector = selector.replace(selectorRegex, replacementSelector);
24
+ }
25
+ });
26
+ }
27
+ };
28
+ };
29
+ plugin.postcss = true;
30
+ module.exports = {
31
+ plugin,
32
+ classes
33
+ };
@@ -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,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\/TableSortLabel$/)).forEach(path => {
22
+ path.node.specifiers.forEach(specifier => {
23
+ if (specifier.type === 'ImportSpecifier' && specifier.imported.name === 'tableSortLabelClasses') {
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('MuiTableSortLabel-', '').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,7 @@
1
+ "use strict";
2
+
3
+ var _TableSortLabel = require("@mui/material/TableSortLabel");
4
+ '& .MuiTableSortLabel-iconDirectionDesc';
5
+ '& .MuiTableSortLabel-iconDirectionAsc';
6
+ `& .${_TableSortLabel.tableSortLabelClasses.iconDirectionDesc}`;
7
+ `& .${_TableSortLabel.tableSortLabelClasses.iconDirectionAsc}`;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ var _TableSortLabel = require("@mui/material/TableSortLabel");
4
+ "&.MuiTableSortLabel-directionDesc > .MuiTableSortLabel-icon";
5
+ "&.MuiTableSortLabel-directionAsc > .MuiTableSortLabel-icon";
6
+ `&.${_TableSortLabel.tableSortLabelClasses.directionDesc} > .${_TableSortLabel.tableSortLabelClasses.icon}`;
7
+ `&.${_TableSortLabel.tableSortLabelClasses.directionAsc} > .${_TableSortLabel.tableSortLabelClasses.icon}`;
@@ -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 _tooltipProps.default;
11
+ }
12
+ });
13
+ var _tooltipProps = _interopRequireDefault(require("./tooltip-props"));