@mui/codemod 6.4.4 → 7.0.0-alpha.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 (25) hide show
  1. package/README.md +14 -78
  2. package/node/deprecations/all/deprecations-all.js +4 -4
  3. package/node/deprecations/all/postcss.config.js +1 -4
  4. package/node/deprecations/{slider-classes → popover-props}/index.js +2 -2
  5. package/node/deprecations/popover-props/popover-props.js +49 -0
  6. package/node/deprecations/popover-props/test-cases/actual.js +73 -0
  7. package/node/deprecations/popover-props/test-cases/expected.js +89 -0
  8. package/node/deprecations/popover-props/test-cases/theme.actual.js +19 -0
  9. package/node/deprecations/popover-props/test-cases/theme.expected.js +23 -0
  10. package/node/deprecations/{mobile-stepper-props → snackbar-props}/index.js +2 -2
  11. package/node/deprecations/{mobile-stepper-props/mobile-stepper-props.js → snackbar-props/snackbar-props.js} +22 -3
  12. package/node/deprecations/snackbar-props/test-cases/actual.js +54 -0
  13. package/node/deprecations/snackbar-props/test-cases/expected.js +67 -0
  14. package/node/deprecations/snackbar-props/test-cases/theme.actual.js +39 -0
  15. package/node/deprecations/snackbar-props/test-cases/theme.expected.js +46 -0
  16. package/package.json +4 -4
  17. package/node/deprecations/mobile-stepper-props/test-cases/actual.js +0 -30
  18. package/node/deprecations/mobile-stepper-props/test-cases/expected.js +0 -34
  19. package/node/deprecations/mobile-stepper-props/test-cases/theme.actual.js +0 -11
  20. package/node/deprecations/mobile-stepper-props/test-cases/theme.expected.js +0 -13
  21. package/node/deprecations/slider-classes/postcss-plugin.js +0 -51
  22. package/node/deprecations/slider-classes/postcss.config.js +0 -8
  23. package/node/deprecations/slider-classes/slider-classes.js +0 -69
  24. package/node/deprecations/slider-classes/test-cases/actual.js +0 -19
  25. package/node/deprecations/slider-classes/test-cases/expected.js +0 -19
package/README.md CHANGED
@@ -1400,19 +1400,6 @@ 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
-
1416
1403
  #### `pagination-item-classes`
1417
1404
 
1418
1405
  JS transforms:
@@ -1625,76 +1612,25 @@ npx @mui/codemod@latest deprecations/select-classes <path>
1625
1612
  npx @mui/codemod@latest deprecations/slider-props <path>
1626
1613
  ```
1627
1614
 
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:
1615
+ #### `snackbar-props`
1676
1616
 
1677
1617
  ```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
1618
+ <Snackbar
1619
+ - ClickAwayListenerProps={CustomClickAwayListenerProps}
1620
+ - ContentProps={CustomContentProps}
1621
+ - TransitionComponent={CustomTransition}
1622
+ - TransitionProps={CustomTransitionProps}
1623
+ + slots={{ transition: CustomTransition }}
1624
+ + slotProps={{
1625
+ + clickAwayListener: CustomClickAwayListenerProps,
1626
+ + content: CustomContentProps,
1627
+ + transition: CustomTransitionProps
1628
+ + }}
1629
+ />
1694
1630
  ```
1695
1631
 
1696
1632
  ```bash
1697
- npx @mui/codemod@latest deprecations/button-classes <path>
1633
+ npx @mui/codemod@next deprecations/snackbar-props <path>
1698
1634
  ```
1699
1635
 
1700
1636
  #### `tooltip-props`
@@ -40,8 +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
+ var _popoverProps = _interopRequireDefault(require("../popover-props"));
44
+ var _snackbarProps = _interopRequireDefault(require("../snackbar-props"));
45
45
  /**
46
46
  * @param {import('jscodeshift').FileInfo} file
47
47
  * @param {import('jscodeshift').API} api
@@ -82,7 +82,7 @@ function deprecationsAll(file, api, options) {
82
82
  file.source = (0, _tooltipProps.default)(file, api, options);
83
83
  file.source = (0, _tablePaginationProps.default)(file, api, options);
84
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);
85
+ file.source = (0, _popoverProps.default)(file, api, options);
86
+ file.source = (0, _snackbarProps.default)(file, api, options);
87
87
  return file.source;
88
88
  }
@@ -42,9 +42,6 @@ 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');
48
45
  module.exports = {
49
- plugins: [accordionSummaryClassesPlugin, alertClassesPlugin, buttonClassesPlugin, buttonGroupClassesPlugin, chipClassesPlugin, circularProgressClassesPlugin, linearProgressClassesPlugin, drawerClassesPlugin, paginationItemClassesPlugin, stepConnectorClassesPlugin, toggleButtonGroupClassesPlugin, tabClassesPlugin, tableSortLabelClassesPlugin, selectClassesPlugin, sliderClassesPlugin]
46
+ plugins: [accordionSummaryClassesPlugin, alertClassesPlugin, buttonClassesPlugin, buttonGroupClassesPlugin, chipClassesPlugin, circularProgressClassesPlugin, linearProgressClassesPlugin, drawerClassesPlugin, paginationItemClassesPlugin, stepConnectorClassesPlugin, toggleButtonGroupClassesPlugin, tabClassesPlugin, tableSortLabelClassesPlugin, selectClassesPlugin]
50
47
  };
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  Object.defineProperty(exports, "default", {
8
8
  enumerable: true,
9
9
  get: function () {
10
- return _sliderClasses.default;
10
+ return _popoverProps.default;
11
11
  }
12
12
  });
13
- var _sliderClasses = _interopRequireDefault(require("./slider-classes"));
13
+ var _popoverProps = _interopRequireDefault(require("./popover-props"));
@@ -0,0 +1,49 @@
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 _movePropIntoSlots = _interopRequireDefault(require("../utils/movePropIntoSlots"));
9
+ var _movePropIntoSlotProps = _interopRequireDefault(require("../utils/movePropIntoSlotProps"));
10
+ /**
11
+ * @param {import('jscodeshift').FileInfo} file
12
+ * @param {import('jscodeshift').API} api
13
+ */
14
+ function transformer(file, api, options) {
15
+ const j = api.jscodeshift;
16
+ const root = j(file.source);
17
+ const printOptions = options.printOptions;
18
+ (0, _movePropIntoSlots.default)(j, {
19
+ root,
20
+ componentName: 'Popover',
21
+ propName: 'BackdropComponent',
22
+ slotName: 'backdrop'
23
+ });
24
+ (0, _movePropIntoSlotProps.default)(j, {
25
+ root,
26
+ componentName: 'Popover',
27
+ propName: 'BackdropProps',
28
+ slotName: 'backdrop'
29
+ });
30
+ (0, _movePropIntoSlotProps.default)(j, {
31
+ root,
32
+ componentName: 'Popover',
33
+ propName: 'PaperProps',
34
+ slotName: 'paper'
35
+ });
36
+ (0, _movePropIntoSlots.default)(j, {
37
+ root,
38
+ componentName: 'Popover',
39
+ propName: 'TransitionComponent',
40
+ slotName: 'transition'
41
+ });
42
+ (0, _movePropIntoSlotProps.default)(j, {
43
+ root,
44
+ componentName: 'Popover',
45
+ propName: 'TransitionProps',
46
+ slotName: 'transition'
47
+ });
48
+ return root.toSource(printOptions);
49
+ }
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _Popover = _interopRequireDefault(require("@mui/material/Popover"));
5
+ var _material = require("@mui/material");
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
8
+ BackdropComponent: CustomBackdrop,
9
+ BackdropProps: {
10
+ timeout: 200
11
+ },
12
+ PaperProps: {
13
+ elevation: 4
14
+ },
15
+ TransitionComponent: CustomTransition,
16
+ TransitionProps: {
17
+ timeout: 200
18
+ }
19
+ });
20
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
21
+ BackdropComponent: CustomBackdrop,
22
+ BackdropProps: {
23
+ timeout: 200
24
+ },
25
+ PaperProps: {
26
+ elevation: 4
27
+ },
28
+ TransitionComponent: CustomTransition,
29
+ TransitionProps: {
30
+ timeout: 200
31
+ },
32
+ slotProps: {
33
+ backdrop: {
34
+ sx: {
35
+ backgroundColor: 'red'
36
+ }
37
+ },
38
+ paper: {
39
+ sx: {
40
+ backgroundColor: 'blue'
41
+ }
42
+ },
43
+ transition: {
44
+ onEnter: () => {}
45
+ }
46
+ }
47
+ });
48
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Popover, {
49
+ BackdropComponent: CustomBackdrop,
50
+ BackdropProps: {
51
+ timeout: 200
52
+ },
53
+ PaperProps: {
54
+ elevation: 4
55
+ },
56
+ TransitionComponent: CustomTransition,
57
+ TransitionProps: {
58
+ timeout: 200
59
+ }
60
+ });
61
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(CustomPopover, {
62
+ BackdropComponent: CustomBackdrop,
63
+ BackdropProps: {
64
+ timeout: 200
65
+ },
66
+ PaperProps: {
67
+ elevation: 4
68
+ },
69
+ TransitionComponent: CustomTransition,
70
+ TransitionProps: {
71
+ timeout: 200
72
+ }
73
+ });
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _Popover = _interopRequireDefault(require("@mui/material/Popover"));
5
+ var _material = require("@mui/material");
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
8
+ slots: {
9
+ backdrop: CustomBackdrop,
10
+ transition: CustomTransition
11
+ },
12
+ slotProps: {
13
+ backdrop: {
14
+ timeout: 200
15
+ },
16
+ paper: {
17
+ elevation: 4
18
+ },
19
+ transition: {
20
+ timeout: 200
21
+ }
22
+ }
23
+ });
24
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Popover.default, {
25
+ slotProps: {
26
+ backdrop: {
27
+ ...{
28
+ timeout: 200
29
+ },
30
+ ...{
31
+ sx: {
32
+ backgroundColor: 'red'
33
+ }
34
+ }
35
+ },
36
+ paper: {
37
+ ...{
38
+ elevation: 4
39
+ },
40
+ ...{
41
+ sx: {
42
+ backgroundColor: 'blue'
43
+ }
44
+ }
45
+ },
46
+ transition: {
47
+ ...{
48
+ timeout: 200
49
+ },
50
+ ...{
51
+ onEnter: () => {}
52
+ }
53
+ }
54
+ },
55
+ slots: {
56
+ backdrop: CustomBackdrop,
57
+ transition: CustomTransition
58
+ }
59
+ });
60
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Popover, {
61
+ slots: {
62
+ backdrop: CustomBackdrop,
63
+ transition: CustomTransition
64
+ },
65
+ slotProps: {
66
+ backdrop: {
67
+ timeout: 200
68
+ },
69
+ paper: {
70
+ elevation: 4
71
+ },
72
+ transition: {
73
+ timeout: 200
74
+ }
75
+ }
76
+ });
77
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(CustomPopover, {
78
+ BackdropComponent: CustomBackdrop,
79
+ BackdropProps: {
80
+ timeout: 200
81
+ },
82
+ PaperProps: {
83
+ elevation: 4
84
+ },
85
+ TransitionComponent: CustomTransition,
86
+ TransitionProps: {
87
+ timeout: 200
88
+ }
89
+ });
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ fn({
4
+ MuiPopover: {
5
+ defaultProps: {
6
+ BackdropComponent: 'div',
7
+ BackdropProps: {
8
+ timeout: 200
9
+ },
10
+ PaperProps: {
11
+ elevation: 8
12
+ },
13
+ TransitionComponent: 'em',
14
+ TransitionProps: {
15
+ timeout: 200
16
+ }
17
+ }
18
+ }
19
+ });
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ fn({
4
+ MuiPopover: {
5
+ defaultProps: {
6
+ slots: {
7
+ backdrop: 'div',
8
+ transition: 'em'
9
+ },
10
+ slotProps: {
11
+ backdrop: {
12
+ timeout: 200
13
+ },
14
+ paper: {
15
+ elevation: 8
16
+ },
17
+ transition: {
18
+ timeout: 200
19
+ }
20
+ }
21
+ }
22
+ }
23
+ });
@@ -7,7 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  Object.defineProperty(exports, "default", {
8
8
  enumerable: true,
9
9
  get: function () {
10
- return _mobileStepperProps.default;
10
+ return _snackbarProps.default;
11
11
  }
12
12
  });
13
- var _mobileStepperProps = _interopRequireDefault(require("./mobile-stepper-props"));
13
+ var _snackbarProps = _interopRequireDefault(require("./snackbar-props"));
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.default = transformer;
8
+ var _movePropIntoSlots = _interopRequireDefault(require("../utils/movePropIntoSlots"));
8
9
  var _movePropIntoSlotProps = _interopRequireDefault(require("../utils/movePropIntoSlotProps"));
9
10
  /**
10
11
  * @param {import('jscodeshift').FileInfo} file
@@ -14,11 +15,29 @@ function transformer(file, api, options) {
14
15
  const j = api.jscodeshift;
15
16
  const root = j(file.source);
16
17
  const printOptions = options.printOptions;
18
+ (0, _movePropIntoSlots.default)(j, {
19
+ root,
20
+ componentName: 'Snackbar',
21
+ propName: 'TransitionComponent',
22
+ slotName: 'transition'
23
+ });
24
+ (0, _movePropIntoSlotProps.default)(j, {
25
+ root,
26
+ componentName: 'Snackbar',
27
+ propName: 'TransitionProps',
28
+ slotName: 'transition'
29
+ });
30
+ (0, _movePropIntoSlotProps.default)(j, {
31
+ root,
32
+ componentName: 'Snackbar',
33
+ propName: 'ContentProps',
34
+ slotName: 'content'
35
+ });
17
36
  (0, _movePropIntoSlotProps.default)(j, {
18
37
  root,
19
- componentName: 'MobileStepper',
20
- propName: 'LinearProgressProps',
21
- slotName: 'progress'
38
+ componentName: 'Snackbar',
39
+ propName: 'ClickAwayListenerProps',
40
+ slotName: 'clickAwayListener'
22
41
  });
23
42
  return root.toSource(printOptions);
24
43
  }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _Snackbar = _interopRequireDefault(require("@mui/material/Snackbar"));
5
+ var _material = require("@mui/material");
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Snackbar.default, {
8
+ ClickAwayListenerProps: CustomListenerProps,
9
+ ContentProps: CustomContentProps,
10
+ TransitionComponent: CustomTransition,
11
+ TransitionProps: CustomTransitionProps
12
+ });
13
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Snackbar, {
14
+ ClickAwayListenerProps: CustomListenerProps,
15
+ ContentProps: CustomContentProps,
16
+ TransitionComponent: CustomTransition,
17
+ TransitionProps: CustomTransitionProps
18
+ });
19
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Snackbar.default, {
20
+ ClickAwayListenerProps: CustomListenerProps,
21
+ ContentProps: CustomContentProps,
22
+ TransitionComponent: CustomTransition,
23
+ TransitionProps: CustomTransitionProps,
24
+ slots: {
25
+ root: 'div'
26
+ }
27
+ });
28
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Snackbar, {
29
+ ClickAwayListenerProps: CustomListenerProps,
30
+ ContentProps: CustomContentProps,
31
+ TransitionComponent: CustomTransition,
32
+ TransitionProps: CustomTransitionProps,
33
+ slots: {
34
+ ...outerSlots
35
+ }
36
+ });
37
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Snackbar.default, {
38
+ ClickAwayListenerProps: CustomListenerProps,
39
+ ContentProps: CustomContentProps,
40
+ TransitionComponent: ComponentTransition,
41
+ TransitionProps: CustomTransitionProps,
42
+ slots: {
43
+ root: 'div',
44
+ transition: SlotTransition
45
+ }
46
+ });
47
+
48
+ // should skip non MUI components
49
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(NonMuiSnackbar, {
50
+ ClickAwayListenerProps: CustomListenerProps,
51
+ ContentProps: CustomContentProps,
52
+ TransitionComponent: CustomTransition,
53
+ TransitionProps: CustomTransitionProps
54
+ });
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _Snackbar = _interopRequireDefault(require("@mui/material/Snackbar"));
5
+ var _material = require("@mui/material");
6
+ var _jsxRuntime = require("react/jsx-runtime");
7
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Snackbar.default, {
8
+ slots: {
9
+ transition: CustomTransition
10
+ },
11
+ slotProps: {
12
+ transition: CustomTransitionProps,
13
+ content: CustomContentProps,
14
+ clickAwayListener: CustomListenerProps
15
+ }
16
+ });
17
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Snackbar, {
18
+ slots: {
19
+ transition: CustomTransition
20
+ },
21
+ slotProps: {
22
+ transition: CustomTransitionProps,
23
+ content: CustomContentProps,
24
+ clickAwayListener: CustomListenerProps
25
+ }
26
+ });
27
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Snackbar.default, {
28
+ slots: {
29
+ root: 'div',
30
+ transition: CustomTransition
31
+ },
32
+ slotProps: {
33
+ transition: CustomTransitionProps,
34
+ content: CustomContentProps,
35
+ clickAwayListener: CustomListenerProps
36
+ }
37
+ });
38
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_material.Snackbar, {
39
+ slots: {
40
+ ...outerSlots,
41
+ transition: CustomTransition
42
+ },
43
+ slotProps: {
44
+ transition: CustomTransitionProps,
45
+ content: CustomContentProps,
46
+ clickAwayListener: CustomListenerProps
47
+ }
48
+ });
49
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(_Snackbar.default, {
50
+ slots: {
51
+ root: 'div',
52
+ transition: SlotTransition
53
+ },
54
+ slotProps: {
55
+ transition: CustomTransitionProps,
56
+ content: CustomContentProps,
57
+ clickAwayListener: CustomListenerProps
58
+ }
59
+ });
60
+
61
+ // should skip non MUI components
62
+ /*#__PURE__*/(0, _jsxRuntime.jsx)(NonMuiSnackbar, {
63
+ ClickAwayListenerProps: CustomListenerProps,
64
+ ContentProps: CustomContentProps,
65
+ TransitionComponent: CustomTransition,
66
+ TransitionProps: CustomTransitionProps
67
+ });
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ fn({
4
+ MuiSnackbar: {
5
+ defaultProps: {
6
+ ClickAwayListenerProps: CustomListenerProps,
7
+ ContentProps: CustomContentProps,
8
+ TransitionComponent: CustomTransition,
9
+ TransitionProps: CustomTransitionProps
10
+ }
11
+ }
12
+ });
13
+ fn({
14
+ MuiSnackbar: {
15
+ defaultProps: {
16
+ ClickAwayListenerProps: CustomListenerProps,
17
+ ContentProps: CustomContentProps,
18
+ TransitionComponent: CustomTransition,
19
+ TransitionProps: CustomTransitionProps,
20
+ slots: {
21
+ root: 'div'
22
+ }
23
+ }
24
+ }
25
+ });
26
+ fn({
27
+ MuiSnackbar: {
28
+ defaultProps: {
29
+ ClickAwayListenerProps: CustomListenerProps,
30
+ ContentProps: CustomContentProps,
31
+ TransitionComponent: ComponentTransition,
32
+ TransitionProps: CustomTransitionProps,
33
+ slots: {
34
+ root: 'div',
35
+ transition: SlotTransition
36
+ }
37
+ }
38
+ }
39
+ });
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ fn({
4
+ MuiSnackbar: {
5
+ defaultProps: {
6
+ slots: {
7
+ transition: CustomTransition
8
+ },
9
+ slotProps: {
10
+ transition: CustomTransitionProps,
11
+ content: CustomContentProps,
12
+ clickAwayListener: CustomListenerProps
13
+ }
14
+ }
15
+ }
16
+ });
17
+ fn({
18
+ MuiSnackbar: {
19
+ defaultProps: {
20
+ slots: {
21
+ root: 'div',
22
+ transition: CustomTransition
23
+ },
24
+ slotProps: {
25
+ transition: CustomTransitionProps,
26
+ content: CustomContentProps,
27
+ clickAwayListener: CustomListenerProps
28
+ }
29
+ }
30
+ }
31
+ });
32
+ fn({
33
+ MuiSnackbar: {
34
+ defaultProps: {
35
+ slots: {
36
+ root: 'div',
37
+ transition: SlotTransition
38
+ },
39
+ slotProps: {
40
+ transition: CustomTransitionProps,
41
+ content: CustomContentProps,
42
+ clickAwayListener: CustomListenerProps
43
+ }
44
+ }
45
+ }
46
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mui/codemod",
3
- "version": "6.4.4",
3
+ "version": "7.0.0-alpha.0",
4
4
  "bin": "./codemod.js",
5
5
  "private": false,
6
6
  "author": "MUI Team",
@@ -24,9 +24,9 @@
24
24
  "url": "https://opencollective.com/mui-org"
25
25
  },
26
26
  "dependencies": {
27
- "@babel/core": "^7.26.0",
28
- "@babel/runtime": "^7.26.0",
29
- "@babel/traverse": "^7.26.5",
27
+ "@babel/core": "^7.26.7",
28
+ "@babel/runtime": "^7.26.7",
29
+ "@babel/traverse": "^7.26.7",
30
30
  "jscodeshift": "^17.1.2",
31
31
  "jscodeshift-add-imports": "^1.0.11",
32
32
  "postcss": "^8.4.49",
@@ -1,30 +0,0 @@
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
- });
@@ -1,34 +0,0 @@
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
- });
@@ -1,11 +0,0 @@
1
- "use strict";
2
-
3
- fn({
4
- MuiMobileStepper: {
5
- defaultProps: {
6
- LinearProgressProps: {
7
- variant: 'determinate'
8
- }
9
- }
10
- }
11
- });
@@ -1,13 +0,0 @@
1
- "use strict";
2
-
3
- fn({
4
- MuiMobileStepper: {
5
- defaultProps: {
6
- slotProps: {
7
- progress: {
8
- variant: 'determinate'
9
- }
10
- }
11
- }
12
- }
13
- });
@@ -1,51 +0,0 @@
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
- };
@@ -1,8 +0,0 @@
1
- "use strict";
2
-
3
- const {
4
- plugin
5
- } = require('./postcss-plugin');
6
- module.exports = {
7
- plugins: [plugin]
8
- };
@@ -1,69 +0,0 @@
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
- }
@@ -1,19 +0,0 @@
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}`;
@@ -1,19 +0,0 @@
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}`;