@mui/codemod 6.4.2 → 6.4.4

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.
package/README.md CHANGED
@@ -1400,6 +1400,19 @@ npx @mui/codemod@latest deprecations/linear-progress-classes <path>
1400
1400
  npx @mui/codemod@latest deprecations/modal-props <path>
1401
1401
  ```
1402
1402
 
1403
+ #### `mobile-stepper-props`
1404
+
1405
+ ```diff
1406
+ <MobileStepper
1407
+ - LinearProgressProps={{ color: 'primary' }}
1408
+ + slotProps={{ progress: { color: 'primary' } }}
1409
+ />
1410
+ ```
1411
+
1412
+ ```bash
1413
+ npx @mui/codemod@latest deprecations/mobile-stepper-props <path>
1414
+ ```
1415
+
1403
1416
  #### `pagination-item-classes`
1404
1417
 
1405
1418
  JS transforms:
@@ -1612,6 +1625,78 @@ npx @mui/codemod@latest deprecations/select-classes <path>
1612
1625
  npx @mui/codemod@latest deprecations/slider-props <path>
1613
1626
  ```
1614
1627
 
1628
+ #### `slider-classes`
1629
+
1630
+ JS transforms:
1631
+
1632
+ ```diff
1633
+ import { sliderClasses } from '@mui/material/Slider';
1634
+
1635
+ MuiSlider: {
1636
+ styleOverrides: {
1637
+ root: {
1638
+ - [`&.${sliderClasses.thumbSizeSmall}`]: {
1639
+ + [`&.${sliderClasses.sizeSmall} > .${sliderClasses.thumb}`]: {
1640
+ color: 'red',
1641
+ },
1642
+ - [`&.${sliderClasses.thumbSizeMedium}`]: {
1643
+ + [`&.${sliderClasses.sizeMedium} > .${sliderClasses.thumb}`]: {
1644
+ color: 'red',
1645
+ },
1646
+ - [`&.${sliderClasses.thumbColorPrimary}`]: {
1647
+ + [`&.${sliderClasses.colorPrimary} > .${sliderClasses.thumb}`]: {
1648
+ color: 'red',
1649
+ },
1650
+ - [`&.${sliderClasses.thumbColorSecondary}`]: {
1651
+ + [`&.${sliderClasses.colorSecondary} > .${sliderClasses.thumb}`]: {
1652
+ color: 'red',
1653
+ },
1654
+ - [`&.${sliderClasses.thumbColorError}`]: {
1655
+ + [`&.${sliderClasses.colorError} > .${sliderClasses.thumb}`]: {
1656
+ color: 'red',
1657
+ },
1658
+ - [`&.${sliderClrsses.thumbColorInfo}`]: {
1659
+ + [`&.${soiderClasses.colorInfo} > .${sliderClasses.thumb}`]: {
1660
+ color: 'red',
1661
+ },
1662
+ - [`&.${sliderClasses.thumbColorSuccess}`]: {
1663
+ + [`&.${sliderClasses.colorSuccess} > .${sliderClasses.thumb}`]: {
1664
+ color: 'red',
1665
+ },
1666
+ - [`&.${sliderClasses.thumbColorWarning}`]: {
1667
+ + [`&.${sliderClasses.colorWarning} > .${sliderClasses.thumb}`]: {
1668
+ color: 'red',
1669
+ },
1670
+ },
1671
+ },
1672
+ },
1673
+ ```
1674
+
1675
+ CSS transforms:
1676
+
1677
+ ```diff
1678
+ -.MuiSlider-root .MuiSlider-thumbSizeSmall
1679
+ +.MuiSlider-root.MuiSlider-sizeSmall > .MuiSlider-thumb
1680
+ -.MuiSlider-root .MuiSlider-thumbSizeMedium
1681
+ +.MuiSlider-root.MuiSlider-sizeMedium > .MuiSlider-thumb
1682
+ -.MuiSlider-root .MuiSlider-thumbColorPrimary
1683
+ +.MuiSlider-root.MuiSlider-colorPrimary > .MuiSlider-thumb
1684
+ -.MuiSlider-root .MuiSlider-thumbColorSecondary
1685
+ +.MuiSlider-root.MuiSlider-colorSecondary > .MuiSlider-thumb
1686
+ -.MuiSlider-root .MuiSlider-thumbColorError
1687
+ +.MuiSlider-root.MuiSlider-colorError > .MuiSlider-thumb
1688
+ -.MuiSlider-root .MuiSlider-thumbColorInfo
1689
+ +.MuiSlider-root.MuiSlider-colorInfo > .MuiSlider-thumb
1690
+ -.MuiSlider-root .MuiSlider-thumbColorSuccess
1691
+ +.MuiSlider-root.MuiSlider-colorSuccess > .MuiSlider-thumb
1692
+ -.MuiSlider-root .MuiSlider-thumbColorWarning
1693
+ +.MuiSlider-root.MuiSlider-colorWarning > .MuiSlider-thumb
1694
+ ```
1695
+
1696
+ ```bash
1697
+ npx @mui/codemod@latest deprecations/button-classes <path>
1698
+ ```
1699
+
1615
1700
  #### `tooltip-props`
1616
1701
 
1617
1702
  ```diff
@@ -40,6 +40,8 @@ var _toggleButtonGroupClasses = _interopRequireDefault(require("../toggle-button
40
40
  var _tooltipProps = _interopRequireDefault(require("../tooltip-props"));
41
41
  var _tablePaginationProps = _interopRequireDefault(require("../table-pagination-props"));
42
42
  var _cardHeaderProps = _interopRequireDefault(require("../card-header-props"));
43
+ var _sliderClasses = _interopRequireDefault(require("../slider-classes"));
44
+ var _mobileStepperProps = _interopRequireDefault(require("../mobile-stepper-props"));
43
45
  /**
44
46
  * @param {import('jscodeshift').FileInfo} file
45
47
  * @param {import('jscodeshift').API} api
@@ -80,5 +82,7 @@ function deprecationsAll(file, api, options) {
80
82
  file.source = (0, _tooltipProps.default)(file, api, options);
81
83
  file.source = (0, _tablePaginationProps.default)(file, api, options);
82
84
  file.source = (0, _cardHeaderProps.default)(file, api, options);
85
+ file.source = (0, _sliderClasses.default)(file, api, options);
86
+ file.source = (0, _mobileStepperProps.default)(file, api, options);
83
87
  return file.source;
84
88
  }
@@ -42,6 +42,9 @@ const {
42
42
  const {
43
43
  plugin: selectClassesPlugin
44
44
  } = require('../select-classes/postcss-plugin');
45
+ const {
46
+ plugin: sliderClassesPlugin
47
+ } = require('../slider-classes/postcss-plugin');
45
48
  module.exports = {
46
- plugins: [accordionSummaryClassesPlugin, alertClassesPlugin, buttonClassesPlugin, buttonGroupClassesPlugin, chipClassesPlugin, circularProgressClassesPlugin, linearProgressClassesPlugin, drawerClassesPlugin, paginationItemClassesPlugin, stepConnectorClassesPlugin, toggleButtonGroupClassesPlugin, tabClassesPlugin, tableSortLabelClassesPlugin, selectClassesPlugin]
49
+ plugins: [accordionSummaryClassesPlugin, alertClassesPlugin, buttonClassesPlugin, buttonGroupClassesPlugin, chipClassesPlugin, circularProgressClassesPlugin, linearProgressClassesPlugin, drawerClassesPlugin, paginationItemClassesPlugin, stepConnectorClassesPlugin, toggleButtonGroupClassesPlugin, tabClassesPlugin, tableSortLabelClassesPlugin, selectClassesPlugin, sliderClassesPlugin]
47
50
  };
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _mobileStepperProps.default;
11
+ }
12
+ });
13
+ var _mobileStepperProps = _interopRequireDefault(require("./mobile-stepper-props"));
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = transformer;
8
+ var _movePropIntoSlotProps = _interopRequireDefault(require("../utils/movePropIntoSlotProps"));
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, _movePropIntoSlotProps.default)(j, {
18
+ root,
19
+ componentName: 'MobileStepper',
20
+ propName: 'LinearProgressProps',
21
+ slotName: 'progress'
22
+ });
23
+ return root.toSource(printOptions);
24
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _MobileStepper = _interopRequireDefault(require("@mui/material/MobileStepper"));
5
+ var _material = require("@mui/material");
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileStepper.default, {
8
+ variant: "progress",
9
+ LinearProgressProps: {
10
+ variant: 'determinate'
11
+ }
12
+ });
13
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MobileStepper, {
14
+ variant: "progress",
15
+ LinearProgressProps: {
16
+ variant: 'determinate'
17
+ },
18
+ slotProps: {
19
+ progress: {
20
+ sx: {
21
+ width: '100%'
22
+ }
23
+ }
24
+ }
25
+ });
26
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(CustomMobileStepper, {
27
+ LinearProgressProps: {
28
+ variant: 'determinate'
29
+ }
30
+ });
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _MobileStepper = _interopRequireDefault(require("@mui/material/MobileStepper"));
5
+ var _material = require("@mui/material");
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_MobileStepper.default, {
8
+ variant: "progress",
9
+ slotProps: {
10
+ progress: {
11
+ variant: 'determinate'
12
+ }
13
+ }
14
+ });
15
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.MobileStepper, {
16
+ variant: "progress",
17
+ slotProps: {
18
+ progress: {
19
+ ...{
20
+ variant: 'determinate'
21
+ },
22
+ ...{
23
+ sx: {
24
+ width: '100%'
25
+ }
26
+ }
27
+ }
28
+ }
29
+ });
30
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(CustomMobileStepper, {
31
+ LinearProgressProps: {
32
+ variant: 'determinate'
33
+ }
34
+ });
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ fn({
4
+ MuiMobileStepper: {
5
+ defaultProps: {
6
+ LinearProgressProps: {
7
+ variant: 'determinate'
8
+ }
9
+ }
10
+ }
11
+ });
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ fn({
4
+ MuiMobileStepper: {
5
+ defaultProps: {
6
+ slotProps: {
7
+ progress: {
8
+ variant: 'determinate'
9
+ }
10
+ }
11
+ }
12
+ }
13
+ });
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ Object.defineProperty(exports, "default", {
8
+ enumerable: true,
9
+ get: function () {
10
+ return _sliderClasses.default;
11
+ }
12
+ });
13
+ var _sliderClasses = _interopRequireDefault(require("./slider-classes"));
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ const classes = [{
4
+ deprecatedClass: ' .MuiSlider-thumbSizeSmall',
5
+ replacementSelector: '.MuiSlider-sizeSmall > .MuiSlider-thumb'
6
+ }, {
7
+ deprecatedClass: ' .MuiSlider-thumbSizeMedium',
8
+ replacementSelector: '.MuiSlider-sizeMedium > .MuiSlider-thumb'
9
+ }, {
10
+ deprecatedClass: ' .MuiSlider-thumbColorPrimary',
11
+ replacementSelector: '.MuiSlider-colorPrimary > .MuiSlider-thumb'
12
+ }, {
13
+ deprecatedClass: ' .MuiSlider-thumbColorSecondary',
14
+ replacementSelector: '.MuiSlider-colorSecondary > .MuiSlider-thumb'
15
+ }, {
16
+ deprecatedClass: ' .MuiSlider-thumbColorError',
17
+ replacementSelector: '.MuiSlider-colorError > .MuiSlider-thumb'
18
+ }, {
19
+ deprecatedClass: ' .MuiSlider-thumbColorInfo',
20
+ replacementSelector: '.MuiSlider-colorInfo > .MuiSlider-thumb'
21
+ }, {
22
+ deprecatedClass: ' .MuiSlider-thumbColorSuccess',
23
+ replacementSelector: '.MuiSlider-colorSuccess > .MuiSlider-thumb'
24
+ }, {
25
+ deprecatedClass: ' .MuiSlider-thumbColorWarning',
26
+ replacementSelector: '.MuiSlider-colorWarning > .MuiSlider-thumb'
27
+ }];
28
+ const plugin = () => {
29
+ return {
30
+ postcssPlugin: `Replace deprecated Slider classes with new classes`,
31
+ Rule(rule) {
32
+ const {
33
+ selector
34
+ } = rule;
35
+ classes.forEach(({
36
+ deprecatedClass,
37
+ replacementSelector
38
+ }) => {
39
+ const selectorRegex = new RegExp(`${deprecatedClass}`);
40
+ if (selector.match(selectorRegex)) {
41
+ rule.selector = selector.replace(selectorRegex, replacementSelector);
42
+ }
43
+ });
44
+ }
45
+ };
46
+ };
47
+ plugin.postcss = true;
48
+ module.exports = {
49
+ plugin,
50
+ classes
51
+ };
@@ -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
+ 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\/Slider$/)).forEach(path => {
22
+ path.node.specifiers.forEach(specifier => {
23
+ if (specifier.type === 'ImportSpecifier' && specifier.imported.name === 'sliderClasses') {
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('MuiSlider-', '').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,19 @@
1
+ "use strict";
2
+
3
+ var _Slider = require("@mui/material/Slider");
4
+ '& .MuiSlider-thumbSizeSmall';
5
+ '& .MuiSlider-thumbSizeMedium';
6
+ '& .MuiSlider-thumbColorPrimary';
7
+ '& .MuiSlider-thumbColorSecondary';
8
+ '& .MuiSlider-thumbColorError';
9
+ '& .MuiSlider-thumbColorInfo';
10
+ '& .MuiSlider-thumbColorSuccess';
11
+ '& .MuiSlider-thumbColorWarning';
12
+ `& .${_Slider.sliderClasses.thumbSizeSmall}`;
13
+ `& .${_Slider.sliderClasses.thumbSizeMedium}`;
14
+ `& .${_Slider.sliderClasses.thumbColorPrimary}`;
15
+ `& .${_Slider.sliderClasses.thumbColorSecondary}`;
16
+ `& .${_Slider.sliderClasses.thumbColorError}`;
17
+ `& .${_Slider.sliderClasses.thumbColorInfo}`;
18
+ `& .${_Slider.sliderClasses.thumbColorSuccess}`;
19
+ `& .${_Slider.sliderClasses.thumbColorWarning}`;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ var _Slider = require("@mui/material/Slider");
4
+ "&.MuiSlider-sizeSmall > .MuiSlider-thumb";
5
+ "&.MuiSlider-sizeMedium > .MuiSlider-thumb";
6
+ "&.MuiSlider-colorPrimary > .MuiSlider-thumb";
7
+ "&.MuiSlider-colorSecondary > .MuiSlider-thumb";
8
+ "&.MuiSlider-colorError > .MuiSlider-thumb";
9
+ "&.MuiSlider-colorInfo > .MuiSlider-thumb";
10
+ "&.MuiSlider-colorSuccess > .MuiSlider-thumb";
11
+ "&.MuiSlider-colorWarning > .MuiSlider-thumb";
12
+ `&.${_Slider.sliderClasses.sizeSmall} > .${_Slider.sliderClasses.thumb}`;
13
+ `&.${_Slider.sliderClasses.sizeMedium} > .${_Slider.sliderClasses.thumb}`;
14
+ `&.${_Slider.sliderClasses.colorPrimary} > .${_Slider.sliderClasses.thumb}`;
15
+ `&.${_Slider.sliderClasses.colorSecondary} > .${_Slider.sliderClasses.thumb}`;
16
+ `&.${_Slider.sliderClasses.colorError} > .${_Slider.sliderClasses.thumb}`;
17
+ `&.${_Slider.sliderClasses.colorInfo} > .${_Slider.sliderClasses.thumb}`;
18
+ `&.${_Slider.sliderClasses.colorSuccess} > .${_Slider.sliderClasses.thumb}`;
19
+ `&.${_Slider.sliderClasses.colorWarning} > .${_Slider.sliderClasses.thumb}`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/codemod",
3
- "version": "6.4.2",
3
+ "version": "6.4.4",
4
4
  "bin": "./codemod.js",
5
5
  "private": false,
6
6
  "author": "MUI Team",