@mui/codemod 6.0.0-beta.3 → 6.0.0-beta.3-dev.20240725-084532-7340f56bef
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 +57 -0
- package/node/deprecations/all/deprecations-all.js +2 -0
- package/node/deprecations/image-list-item-bar-classes/image-list-item-bar-classes.js +77 -0
- package/node/deprecations/image-list-item-bar-classes/index.js +13 -0
- package/node/deprecations/image-list-item-bar-classes/postcss-plugin.js +39 -0
- package/node/deprecations/image-list-item-bar-classes/postcss.config.js +8 -0
- package/node/deprecations/image-list-item-bar-classes/test-cases/actual.js +11 -0
- package/node/deprecations/image-list-item-bar-classes/test-cases/expected.js +11 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1117,6 +1117,63 @@ npx @mui/codemod@next deprecations/list-item-props <path>
|
|
|
1117
1117
|
npx @mui/codemod@next deprecations/grid-props <path>
|
|
1118
1118
|
```
|
|
1119
1119
|
|
|
1120
|
+
#### `image-list-item-bar-classes`
|
|
1121
|
+
|
|
1122
|
+
JS transforms:
|
|
1123
|
+
|
|
1124
|
+
```diff
|
|
1125
|
+
import { imageListItemBarClasses } from '@mui/material/ImageListItemBar';
|
|
1126
|
+
|
|
1127
|
+
MuiImageListItemBar: {
|
|
1128
|
+
styleOverrides: {
|
|
1129
|
+
root: {
|
|
1130
|
+
- [`& .${imageListItemBarClasses.titleWrapBelow}`]: {
|
|
1131
|
+
+ [`&.${imageListItemBarClasses.positionBelow} > .${imageListItemBarClasses.titleWrap}`]: {
|
|
1132
|
+
color: 'red',
|
|
1133
|
+
},
|
|
1134
|
+
- [`& .${imageListItemBarClasses.titleWrapActionPosLeft}`]: {
|
|
1135
|
+
+ [`&.${imageListItemBarClasses.actionPositionLeft} > .${imageListItemBarClasses.titleWrap}`]: {
|
|
1136
|
+
color: 'red',
|
|
1137
|
+
},
|
|
1138
|
+
- [`& .${imageListItemBarClasses.titleWrapActionPosRight}`]: {
|
|
1139
|
+
+ [`&.${imageListItemBarClasses.actionPositionRight} > .${imageListItemBarClasses.titleWrap}`]: {
|
|
1140
|
+
color: 'red',
|
|
1141
|
+
},
|
|
1142
|
+
- [`& .${imageListItemBarClasses.actionIconActionPosLeft}`]: {
|
|
1143
|
+
+ [`&.${imageListItemBarClasses.actionPositionLeft} > .${imageListItemBarClasses.actionIcon}`]: {
|
|
1144
|
+
color: 'red',
|
|
1145
|
+
},
|
|
1146
|
+
},
|
|
1147
|
+
},
|
|
1148
|
+
},
|
|
1149
|
+
```
|
|
1150
|
+
|
|
1151
|
+
CSS transforms:
|
|
1152
|
+
|
|
1153
|
+
```diff
|
|
1154
|
+
- .MuiImageListItemBar-titleWrapBelow
|
|
1155
|
+
+.MuiImageListItemBar-positionBelow > .MuiImageListItemBar-titleWrap
|
|
1156
|
+
```
|
|
1157
|
+
|
|
1158
|
+
```diff
|
|
1159
|
+
- .MuiImageListItemBar-titleWrapActionPosLeft
|
|
1160
|
+
+.MuiImageListItemBar-actionPositionLeft > .MuiImageListItemBar-titleWrap
|
|
1161
|
+
```
|
|
1162
|
+
|
|
1163
|
+
```diff
|
|
1164
|
+
- .MuiImageListItemBar-titleWrapActionPosRight
|
|
1165
|
+
+.MuiImageListItemBar-actionPositionRight > .MuiImageListItemBar-titleWrap
|
|
1166
|
+
```
|
|
1167
|
+
|
|
1168
|
+
```diff
|
|
1169
|
+
- .MuiImageListItemBar-actionIconActionPosLeft
|
|
1170
|
+
+.MuiImageListItemBar-actionPositionLeft > .MuiImageListItemBar-actionIcon
|
|
1171
|
+
```
|
|
1172
|
+
|
|
1173
|
+
```bash
|
|
1174
|
+
npx @mui/codemod@next deprecations/image-list-item-bar-classes <path>
|
|
1175
|
+
```
|
|
1176
|
+
|
|
1120
1177
|
#### `input-base-props`
|
|
1121
1178
|
|
|
1122
1179
|
```diff
|
|
@@ -18,6 +18,7 @@ var _dividerProps = _interopRequireDefault(require("../divider-props"));
|
|
|
18
18
|
var _filledInputProps = _interopRequireDefault(require("../filled-input-props"));
|
|
19
19
|
var _formControlLabelProps = _interopRequireDefault(require("../form-control-label-props"));
|
|
20
20
|
var _gridProps = _interopRequireDefault(require("../grid-props"));
|
|
21
|
+
var _imageListItemBarClasses = _interopRequireDefault(require("../image-list-item-bar-classes"));
|
|
21
22
|
var _inputBaseProps = _interopRequireDefault(require("../input-base-props"));
|
|
22
23
|
var _inputProps = _interopRequireDefault(require("../input-props"));
|
|
23
24
|
var _modalProps = _interopRequireDefault(require("../modal-props"));
|
|
@@ -47,6 +48,7 @@ function deprecationsAll(file, api, options) {
|
|
|
47
48
|
file.source = (0, _filledInputProps.default)(file, api, options);
|
|
48
49
|
file.source = (0, _formControlLabelProps.default)(file, api, options);
|
|
49
50
|
file.source = (0, _gridProps.default)(file, api, options);
|
|
51
|
+
file.source = (0, _imageListItemBarClasses.default)(file, api, options);
|
|
50
52
|
file.source = (0, _inputBaseProps.default)(file, api, options);
|
|
51
53
|
file.source = (0, _inputProps.default)(file, api, options);
|
|
52
54
|
file.source = (0, _modalProps.default)(file, api, options);
|
|
@@ -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\/ImageListItemBar$/)).forEach(path => {
|
|
22
|
+
path.node.specifiers.forEach(specifier => {
|
|
23
|
+
if (specifier.type === 'ImportSpecifier' && specifier.imported.name === 'imageListItemBarClasses') {
|
|
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('MuiImageListItemBar-', '').replaceAll(replacementSelectorPrefix, '').replaceAll(' > ', '').split('.').filter(Boolean);
|
|
38
|
+
if (precedingTemplateElement.value.raw.endsWith(deprecatedClass.startsWith(' ') ? `${replacementSelectorPrefix} .` : `${replacementSelectorPrefix}.`)) {
|
|
39
|
+
const atomicClassesArgs = [memberExpressionIndex, 1, ...atomicClasses.map(atomicClass => j.memberExpression(memberExpression.value.object, j.identifier(atomicClass)))];
|
|
40
|
+
parent.expressions.splice(...atomicClassesArgs);
|
|
41
|
+
if (replacementSelector.includes(' > ')) {
|
|
42
|
+
const quasisArgs = [memberExpressionIndex, 1, j.templateElement({
|
|
43
|
+
raw: precedingTemplateElement.value.raw.replace(' ', ''),
|
|
44
|
+
cooked: precedingTemplateElement.value.cooked.replace(' ', '')
|
|
45
|
+
}, false), j.templateElement({
|
|
46
|
+
raw: ' > .',
|
|
47
|
+
cooked: ' > .'
|
|
48
|
+
}, false)];
|
|
49
|
+
if (atomicClasses.length === 3) {
|
|
50
|
+
quasisArgs.splice(3, 0, j.templateElement({
|
|
51
|
+
raw: '.',
|
|
52
|
+
cooked: '.'
|
|
53
|
+
}, false));
|
|
54
|
+
}
|
|
55
|
+
parent.quasis.splice(...quasisArgs);
|
|
56
|
+
} else {
|
|
57
|
+
parent.quasis.splice(memberExpressionIndex, 1, j.templateElement({
|
|
58
|
+
raw: precedingTemplateElement.value.raw,
|
|
59
|
+
cooked: precedingTemplateElement.value.cooked
|
|
60
|
+
}, false), j.templateElement({
|
|
61
|
+
raw: '.',
|
|
62
|
+
cooked: '.'
|
|
63
|
+
}, false));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
const selectorRegex = new RegExp(`${replacementSelectorPrefix}${deprecatedClass}$`);
|
|
72
|
+
root.find(j.Literal, literal => typeof literal.value === 'string' && literal.value.match(selectorRegex)).forEach(path => {
|
|
73
|
+
path.replace(j.literal(path.value.value.replace(selectorRegex, `${replacementSelectorPrefix}${replacementSelector}`)));
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
return root.toSource(printOptions);
|
|
77
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
Object.defineProperty(exports, "default", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return _imageListItemBarClasses.default;
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
var _imageListItemBarClasses = _interopRequireDefault(require("./image-list-item-bar-classes"));
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const classes = [{
|
|
4
|
+
deprecatedClass: ' .MuiImageListItemBar-titleWrapBelow',
|
|
5
|
+
replacementSelector: '.MuiImageListItemBar-positionBelow > .MuiImageListItemBar-titleWrap'
|
|
6
|
+
}, {
|
|
7
|
+
deprecatedClass: ' .MuiImageListItemBar-titleWrapActionPosLeft',
|
|
8
|
+
replacementSelector: '.MuiImageListItemBar-actionPositionLeft > .MuiImageListItemBar-titleWrap'
|
|
9
|
+
}, {
|
|
10
|
+
deprecatedClass: ' .MuiImageListItemBar-titleWrapActionPosRight',
|
|
11
|
+
replacementSelector: '.MuiImageListItemBar-actionPositionRight > .MuiImageListItemBar-titleWrap'
|
|
12
|
+
}, {
|
|
13
|
+
deprecatedClass: ' .MuiImageListItemBar-actionIconActionPosLeft',
|
|
14
|
+
replacementSelector: '.MuiImageListItemBar-actionPositionLeft > .MuiImageListItemBar-actionIcon'
|
|
15
|
+
}];
|
|
16
|
+
const plugin = () => {
|
|
17
|
+
return {
|
|
18
|
+
postcssPlugin: `Replace deprecated ImageListItemBar classes with new classes`,
|
|
19
|
+
Rule(rule) {
|
|
20
|
+
const {
|
|
21
|
+
selector
|
|
22
|
+
} = rule;
|
|
23
|
+
classes.forEach(({
|
|
24
|
+
deprecatedClass,
|
|
25
|
+
replacementSelector
|
|
26
|
+
}) => {
|
|
27
|
+
const selectorRegex = new RegExp(`${deprecatedClass}$`);
|
|
28
|
+
if (selector.match(selectorRegex)) {
|
|
29
|
+
rule.selector = selector.replace(selectorRegex, replacementSelector);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
plugin.postcss = true;
|
|
36
|
+
module.exports = {
|
|
37
|
+
plugin,
|
|
38
|
+
classes
|
|
39
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _ImageListItemBar = require("@mui/material/ImageListItemBar");
|
|
4
|
+
'& .MuiImageListItemBar-titleWrapBelow';
|
|
5
|
+
'& .MuiImageListItemBar-titleWrapActionPosLeft';
|
|
6
|
+
'& .MuiImageListItemBar-titleWrapActionPosRight';
|
|
7
|
+
'& .MuiImageListItemBar-actionIconActionPosLeft';
|
|
8
|
+
`& .${_ImageListItemBar.imageListItemBarClasses.titleWrapBelow}`;
|
|
9
|
+
`& .${_ImageListItemBar.imageListItemBarClasses.titleWrapActionPosLeft}`;
|
|
10
|
+
`& .${_ImageListItemBar.imageListItemBarClasses.titleWrapActionPosRight}`;
|
|
11
|
+
`& .${_ImageListItemBar.imageListItemBarClasses.actionIconActionPosLeft}`;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _ImageListItemBar = require("@mui/material/ImageListItemBar");
|
|
4
|
+
"&.MuiImageListItemBar-positionBelow > .MuiImageListItemBar-titleWrap";
|
|
5
|
+
"&.MuiImageListItemBar-actionPositionLeft > .MuiImageListItemBar-titleWrap";
|
|
6
|
+
"&.MuiImageListItemBar-actionPositionRight > .MuiImageListItemBar-titleWrap";
|
|
7
|
+
"&.MuiImageListItemBar-actionPositionLeft > .MuiImageListItemBar-actionIcon";
|
|
8
|
+
`&.${_ImageListItemBar.imageListItemBarClasses.positionBelow} > .${_ImageListItemBar.imageListItemBarClasses.titleWrap}`;
|
|
9
|
+
`&.${_ImageListItemBar.imageListItemBarClasses.actionPositionLeft} > .${_ImageListItemBar.imageListItemBarClasses.titleWrap}`;
|
|
10
|
+
`&.${_ImageListItemBar.imageListItemBarClasses.actionPositionRight} > .${_ImageListItemBar.imageListItemBarClasses.titleWrap}`;
|
|
11
|
+
`&.${_ImageListItemBar.imageListItemBarClasses.actionPositionLeft} > .${_ImageListItemBar.imageListItemBarClasses.actionIcon}`;
|