@sanity/ui-codemod 1.0.0-alpha.5 → 1.0.0-alpha.7
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/dist/_chunks-es/addAttribute.js +1 -1
- package/dist/_chunks-es/box.mods.js +1 -100
- package/dist/_chunks-es/box.mods.js.map +1 -1
- package/dist/_chunks-es/flex.mods.js +1 -150
- package/dist/_chunks-es/flex.mods.js.map +1 -1
- package/dist/_chunks-es/layout-mods.js +4 -0
- package/dist/_chunks-es/layout-mods.js.map +1 -1
- package/dist/_chunks-es/replaceElement.js +102 -0
- package/dist/_chunks-es/replaceElement.js.map +1 -0
- package/dist/_chunks-es/{transformComponent.js → transformStyledComponents.js} +150 -2
- package/dist/_chunks-es/transformStyledComponents.js.map +1 -0
- package/dist/commands/latest/inline.d.ts +47 -0
- package/dist/commands/latest/inline.js +17 -0
- package/dist/commands/latest/inline.js.map +1 -0
- package/dist/commands/latest/label.d.ts +47 -0
- package/dist/commands/latest/label.js +17 -0
- package/dist/commands/latest/label.js.map +1 -0
- package/dist/commands/latest/stack.d.ts +47 -0
- package/dist/commands/latest/stack.js +17 -0
- package/dist/commands/latest/stack.js.map +1 -0
- package/dist/transforms/latest/box/box.js +4 -3
- package/dist/transforms/latest/box/box.js.map +1 -1
- package/dist/transforms/latest/card/card.js +26 -10
- package/dist/transforms/latest/card/card.js.map +1 -1
- package/dist/transforms/latest/code/code.js +18 -7
- package/dist/transforms/latest/code/code.js.map +1 -1
- package/dist/transforms/latest/container/container.js +15 -7
- package/dist/transforms/latest/container/container.js.map +1 -1
- package/dist/transforms/latest/flex/flex.js +2 -2
- package/dist/transforms/latest/grid/grid.js +15 -7
- package/dist/transforms/latest/grid/grid.js.map +1 -1
- package/dist/transforms/latest/heading/heading.js +18 -7
- package/dist/transforms/latest/heading/heading.js.map +1 -1
- package/dist/transforms/latest/inline/inline.d.ts +18 -0
- package/dist/transforms/latest/inline/inline.js +80 -0
- package/dist/transforms/latest/inline/inline.js.map +1 -0
- package/dist/transforms/latest/label/label.d.ts +18 -0
- package/dist/transforms/latest/label/label.js +111 -0
- package/dist/transforms/latest/label/label.js.map +1 -0
- package/dist/transforms/latest/stack/stack.d.ts +18 -0
- package/dist/transforms/latest/stack/stack.js +67 -0
- package/dist/transforms/latest/stack/stack.js.map +1 -0
- package/dist/transforms/latest/text/text.js +18 -7
- package/dist/transforms/latest/text/text.js.map +1 -1
- package/package.json +7 -1
- package/src/constants/latest/layout-mods.ts +4 -0
- package/src/transforms/latest/box/box.test.ts +3 -8
- package/src/transforms/latest/card/card.test.ts +100 -1
- package/src/transforms/latest/card/card.ts +42 -19
- package/src/transforms/latest/code/code.test.ts +84 -1
- package/src/transforms/latest/code/code.ts +47 -16
- package/src/transforms/latest/container/container.test.ts +78 -1
- package/src/transforms/latest/container/container.ts +29 -9
- package/src/transforms/latest/grid/grid.test.ts +78 -1
- package/src/transforms/latest/grid/grid.ts +29 -9
- package/src/transforms/latest/heading/heading.test.ts +84 -1
- package/src/transforms/latest/heading/heading.ts +47 -16
- package/src/transforms/latest/inline/inline.test.ts +78 -1
- package/src/transforms/latest/inline/inline.ts +29 -9
- package/src/transforms/latest/label/label.test.ts +84 -1
- package/src/transforms/latest/label/label.ts +36 -1
- package/src/transforms/latest/stack/stack.test.ts +100 -1
- package/src/transforms/latest/stack/stack.ts +29 -7
- package/src/transforms/latest/text/text.test.ts +84 -1
- package/src/transforms/latest/text/text.ts +58 -19
- package/dist/_chunks-es/transformComponent.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getAttribute } from "./
|
|
1
|
+
import { getAttribute } from "./transformStyledComponents.js";
|
|
2
2
|
function getAttributeValue(j, value) {
|
|
3
3
|
return value === !0 || value === !1 ? j.jsxExpressionContainer(j.booleanLiteral(value)) : typeof value == "string" ? j.stringLiteral(value) : typeof value == "number" ? j.jsxExpressionContainer(j.numericLiteral(value)) : j.jsxExpressionContainer(j.nullLiteral());
|
|
4
4
|
}
|
|
@@ -1,102 +1,4 @@
|
|
|
1
|
-
import { insertTodoWarning } from "./transformComponent.js";
|
|
2
1
|
import { LAYOUT_MODS } from "./layout-mods.js";
|
|
3
|
-
function addImportSpecifier(j, root, addTo, name) {
|
|
4
|
-
let hasChanges = !1;
|
|
5
|
-
return root.find(j.ImportDeclaration).forEach((path) => {
|
|
6
|
-
const specs = path.node.specifiers;
|
|
7
|
-
if (!specs?.length)
|
|
8
|
-
return;
|
|
9
|
-
const hasFromSpecifier = specs.some(
|
|
10
|
-
(s) => s.type === "ImportSpecifier" && s.imported.type === "Identifier" && s.imported.name === addTo
|
|
11
|
-
), hasToSpecifier = specs.some(
|
|
12
|
-
(s) => s.type === "ImportSpecifier" && s.imported.type === "Identifier" && s.imported.name === name
|
|
13
|
-
);
|
|
14
|
-
hasFromSpecifier && !hasToSpecifier && (specs.push(j.importSpecifier(j.identifier(name), j.identifier(name))), hasChanges = !0);
|
|
15
|
-
}), hasChanges;
|
|
16
|
-
}
|
|
17
|
-
function getElementMatchNames(element, localNames) {
|
|
18
|
-
return localNames === void 0 ? /* @__PURE__ */ new Set([element]) : new Set(localNames);
|
|
19
|
-
}
|
|
20
|
-
function isImportBindingUsed(j, root, name, specifierPath) {
|
|
21
|
-
if (root.find(j.JSXOpeningElement).some(({ node }) => node.name.type === "JSXIdentifier" && node.name.name === name) || root.find(j.JSXClosingElement).some(({ node }) => node.name.type === "JSXIdentifier" && node.name.name === name))
|
|
22
|
-
return !0;
|
|
23
|
-
const importedPath = specifierPath.get("imported"), localPath = specifierPath.get("local");
|
|
24
|
-
return root.find(j.Identifier).some((idPath) => {
|
|
25
|
-
if (idPath.node.name !== name || idPath === importedPath || idPath === localPath)
|
|
26
|
-
return !1;
|
|
27
|
-
const parent = idPath.parent?.node;
|
|
28
|
-
return parent ? !(parent.type === "MemberExpression" && !parent.computed && parent.property === idPath.node || parent.type === "TSQualifiedName" && parent.right === idPath.node) : !0;
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
function removeUnusedImport(j, root, name) {
|
|
32
|
-
let hasChanges = !1;
|
|
33
|
-
return root.find(j.ImportDeclaration).forEach((path) => {
|
|
34
|
-
const specs = path.node.specifiers;
|
|
35
|
-
if (!specs?.length)
|
|
36
|
-
return;
|
|
37
|
-
const next = specs.filter((spec, i) => {
|
|
38
|
-
if (spec.type !== "ImportSpecifier" || spec.imported.type !== "Identifier" || spec.imported.name !== name || "importKind" in spec && spec.importKind === "type")
|
|
39
|
-
return !0;
|
|
40
|
-
const localName = spec.local?.type === "Identifier" ? spec.local.name : spec.imported.name, specifierPath = path.get("specifiers", i);
|
|
41
|
-
return isImportBindingUsed(j, root, localName, specifierPath);
|
|
42
|
-
});
|
|
43
|
-
if (next.length !== specs.length) {
|
|
44
|
-
if (next.length === 0) {
|
|
45
|
-
j(path).remove(), hasChanges = !0;
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
path.node.specifiers = next, hasChanges = !0;
|
|
49
|
-
}
|
|
50
|
-
}), hasChanges;
|
|
51
|
-
}
|
|
52
|
-
function transformImportAlias(j, root, fromExport, toExport, localName, warning) {
|
|
53
|
-
let updated = !1;
|
|
54
|
-
return root.find(j.ImportDeclaration).forEach((path) => {
|
|
55
|
-
const specs = path.node.specifiers;
|
|
56
|
-
if (specs?.length) {
|
|
57
|
-
for (const spec of specs)
|
|
58
|
-
if (!(spec.type !== "ImportSpecifier" || spec.imported.type !== "Identifier" || spec.imported.name !== fromExport || (spec.local?.type === "Identifier" ? spec.local.name : spec.imported.name) !== localName)) {
|
|
59
|
-
spec.imported.name = toExport, updated = !0, warning && insertTodoWarning(j, path, warning);
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}), updated;
|
|
64
|
-
}
|
|
65
|
-
function replaceElement(j, root, filter, from, to) {
|
|
66
|
-
const names = getElementMatchNames(from.element, from.localNames);
|
|
67
|
-
let hasChanges = !1, needsDefaultImportUpdate = !1;
|
|
68
|
-
const aliases = /* @__PURE__ */ new Set();
|
|
69
|
-
return root.find(j.JSXOpeningElement).forEach((path) => {
|
|
70
|
-
const openingEl = path.node, openingName = openingEl.name;
|
|
71
|
-
if (openingName.type !== "JSXIdentifier" || !names.has(openingName.name))
|
|
72
|
-
return;
|
|
73
|
-
const attrs = openingEl.attributes;
|
|
74
|
-
if (!attrs || !filter(attrs)) {
|
|
75
|
-
from.callback?.(path) && (hasChanges = !0);
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
const localTag = openingName.name;
|
|
79
|
-
if (localTag !== from.element && localTag !== to.element)
|
|
80
|
-
aliases.has(localTag) || (transformImportAlias(
|
|
81
|
-
j,
|
|
82
|
-
root,
|
|
83
|
-
from.element,
|
|
84
|
-
to.element,
|
|
85
|
-
localTag,
|
|
86
|
-
`Consider renaming ${localTag} to ${to.element}`
|
|
87
|
-
) && (hasChanges = !0), aliases.add(localTag));
|
|
88
|
-
else {
|
|
89
|
-
openingName.name = to.element;
|
|
90
|
-
const parentNode = path.parent?.node;
|
|
91
|
-
if (parentNode?.type === "JSXElement") {
|
|
92
|
-
const closing = parentNode.closingElement;
|
|
93
|
-
closing?.name.type === "JSXIdentifier" && (closing.name.name = to.element);
|
|
94
|
-
}
|
|
95
|
-
needsDefaultImportUpdate = !0, hasChanges = !0;
|
|
96
|
-
}
|
|
97
|
-
to.callback?.(path) && (hasChanges = !0);
|
|
98
|
-
}), needsDefaultImportUpdate && (addImportSpecifier(j, root, from.element, to.element) && (hasChanges = !0), removeUnusedImport(j, root, from.element) && (hasChanges = !0)), hasChanges;
|
|
99
|
-
}
|
|
100
2
|
const BOX_MODS = {
|
|
101
3
|
...LAYOUT_MODS,
|
|
102
4
|
alignItems: {
|
|
@@ -182,7 +84,6 @@ const BOX_MODS = {
|
|
|
182
84
|
}
|
|
183
85
|
};
|
|
184
86
|
export {
|
|
185
|
-
BOX_MODS
|
|
186
|
-
replaceElement
|
|
87
|
+
BOX_MODS
|
|
187
88
|
};
|
|
188
89
|
//# sourceMappingURL=box.mods.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box.mods.js","sources":["../../src/utils/addImportSpecifier.ts","../../src/utils/getElementMatchNames.ts","../../src/utils/isImportBindingUsed.ts","../../src/utils/removeUnusedImport.ts","../../src/utils/transformImportAlias.ts","../../src/utils/replaceElement.ts","../../src/transforms/latest/box/box.mods.ts"],"sourcesContent":["import type {API} from 'jscodeshift'\n\n/**\n * Adds an import specifier to an existing import declaration.\n * Returns whether the AST was updated.\n */\nexport function addImportSpecifier(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n addTo: string,\n name: string,\n): boolean {\n let hasChanges = false\n\n root.find(j.ImportDeclaration).forEach((path) => {\n const specs = path.node.specifiers\n\n if (!specs?.length) {\n return\n }\n\n const hasFromSpecifier = specs.some(\n (s) =>\n s.type === 'ImportSpecifier' &&\n s.imported.type === 'Identifier' &&\n s.imported.name === addTo,\n )\n const hasToSpecifier = specs.some(\n (s) =>\n s.type === 'ImportSpecifier' &&\n s.imported.type === 'Identifier' &&\n s.imported.name === name,\n )\n\n if (hasFromSpecifier && !hasToSpecifier) {\n specs.push(j.importSpecifier(j.identifier(name), j.identifier(name)))\n hasChanges = true\n }\n })\n\n return hasChanges\n}\n","export function getElementMatchNames(element: string, localNames?: Iterable<string>): Set<string> {\n if (localNames === undefined) {\n return new Set([element])\n }\n\n return new Set(localNames)\n}\n","import type {API, ASTPath, ImportSpecifier} from 'jscodeshift'\n\nexport function isImportBindingUsed(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n name: string,\n specifierPath: ASTPath<ImportSpecifier>,\n): boolean {\n const jsxOpening = root.find(j.JSXOpeningElement).some(({node}) => {\n return node.name.type === 'JSXIdentifier' && node.name.name === name\n })\n\n if (jsxOpening) {\n return true\n }\n\n const jsxClosing = root.find(j.JSXClosingElement).some(({node}) => {\n return node.name.type === 'JSXIdentifier' && node.name.name === name\n })\n\n if (jsxClosing) {\n return true\n }\n\n const importedPath = specifierPath.get('imported')\n const localPath = specifierPath.get('local')\n\n return root.find(j.Identifier).some((idPath) => {\n if (idPath.node.name !== name) {\n return false\n }\n\n if (idPath === importedPath || idPath === localPath) {\n return false\n }\n\n const parent = idPath.parent?.node\n\n if (!parent) {\n return true\n }\n\n if (parent.type === 'MemberExpression' && !parent.computed && parent.property === idPath.node) {\n return false\n }\n\n if (parent.type === 'TSQualifiedName' && parent.right === idPath.node) {\n return false\n }\n\n return true\n })\n}\n","import type {API, ASTPath, ImportSpecifier} from 'jscodeshift'\n\nimport {isImportBindingUsed} from './isImportBindingUsed'\n\n/**\n * Removes unused import specifier or the whole import if no specifiers remain.\n * Returns whether the AST was updated.\n */\nexport function removeUnusedImport(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n name: string,\n): boolean {\n let hasChanges = false\n\n root.find(j.ImportDeclaration).forEach((path) => {\n const specs = path.node.specifiers\n\n if (!specs?.length) {\n return\n }\n\n const next = specs.filter((spec, i) => {\n if (spec.type !== 'ImportSpecifier' || spec.imported.type !== 'Identifier') {\n return true\n }\n\n if (spec.imported.name !== name) {\n return true\n }\n\n if ('importKind' in spec && spec.importKind === 'type') {\n return true\n }\n\n const localName = spec.local?.type === 'Identifier' ? spec.local.name : spec.imported.name\n const specifierPath = path.get('specifiers', i) as ASTPath<ImportSpecifier>\n\n return isImportBindingUsed(j, root, localName, specifierPath)\n })\n\n if (next.length === specs.length) {\n return\n }\n\n if (next.length === 0) {\n j(path).remove()\n hasChanges = true\n return\n }\n\n path.node.specifiers = next\n hasChanges = true\n })\n\n return hasChanges\n}\n","import type {API} from 'jscodeshift'\n\nimport {insertTodoWarning} from './insertTodoWarning'\n\nexport function transformImportAlias(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n fromExport: string,\n toExport: string,\n localName: string,\n warning?: string,\n): boolean {\n let updated = false\n\n root.find(j.ImportDeclaration).forEach((path) => {\n const specs = path.node.specifiers\n\n if (!specs?.length) {\n return\n }\n\n for (const spec of specs) {\n if (spec.type !== 'ImportSpecifier' || spec.imported.type !== 'Identifier') {\n continue\n }\n\n if (spec.imported.name !== fromExport) {\n continue\n }\n\n const local = spec.local?.type === 'Identifier' ? spec.local.name : spec.imported.name\n\n if (local !== localName) {\n continue\n }\n\n spec.imported.name = toExport\n updated = true\n\n if (warning) {\n insertTodoWarning(j, path, warning)\n }\n\n return\n }\n })\n\n return updated\n}\n","import type {API, ASTPath, JSXAttribute, JSXOpeningElement, JSXSpreadAttribute} from 'jscodeshift'\n\nimport {addImportSpecifier} from './addImportSpecifier'\nimport {getElementMatchNames} from './getElementMatchNames'\nimport {removeUnusedImport} from './removeUnusedImport'\nimport {transformImportAlias} from './transformImportAlias'\n\n/**\n * Replaces JSX component if `filter` passes. Runs callbacks and updates imports.\n * If `localNames` is omitted, matches `from.element`. `localNames` may be an empty set,\n * to avoid rewriting unrelated JSX when only cross-file styled aliases are present.\n * Returns whether the AST was updated.\n */\nexport function replaceElement(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n filter: (attrs: (JSXAttribute | JSXSpreadAttribute)[]) => boolean,\n from: {\n element: string\n localNames?: Iterable<string>\n callback?: (path: ASTPath<JSXOpeningElement>) => boolean | void\n },\n to: {\n element: string\n callback?: (path: ASTPath<JSXOpeningElement>) => boolean | void\n },\n): boolean {\n const names = getElementMatchNames(from.element, from.localNames)\n\n let hasChanges = false\n let needsDefaultImportUpdate = false\n const aliases = new Set<string>()\n\n root.find(j.JSXOpeningElement).forEach((path) => {\n const openingEl = path.node\n const openingName = openingEl.name\n\n if (openingName.type !== 'JSXIdentifier' || !names.has(openingName.name)) {\n return\n }\n\n const attrs = openingEl.attributes\n\n if (!attrs || !filter(attrs)) {\n if (from.callback?.(path)) {\n hasChanges = true\n }\n\n return\n }\n\n const localTag = openingName.name\n const preserveAlias = localTag !== from.element && localTag !== to.element\n\n if (preserveAlias) {\n if (!aliases.has(localTag)) {\n if (\n transformImportAlias(\n j,\n root,\n from.element,\n to.element,\n localTag,\n `Consider renaming ${localTag} to ${to.element}`,\n )\n ) {\n hasChanges = true\n }\n\n aliases.add(localTag)\n }\n } else {\n openingName.name = to.element\n\n const parentNode = path.parent?.node\n\n if (parentNode?.type === 'JSXElement') {\n const closing = parentNode.closingElement\n\n if (closing?.name.type === 'JSXIdentifier') {\n closing.name.name = to.element\n }\n }\n\n needsDefaultImportUpdate = true\n hasChanges = true\n }\n\n if (to.callback?.(path)) {\n hasChanges = true\n }\n })\n\n if (needsDefaultImportUpdate) {\n if (addImportSpecifier(j, root, from.element, to.element)) {\n hasChanges = true\n }\n\n if (removeUnusedImport(j, root, from.element)) {\n hasChanges = true\n }\n }\n\n return hasChanges\n}\n","import {LAYOUT_MODS} from '../../../constants/latest/layout-mods'\nimport type {AttributeMods} from '../../../types/AttributeMods'\n\n/** @internal */\nexport const BOX_MODS: AttributeMods = {\n ...LAYOUT_MODS,\n alignItems: {\n type: 'style-only',\n style: 'alignItems',\n },\n flexDirection: {\n type: 'style-only',\n style: 'flexDirection',\n },\n flexWrap: {\n type: 'style-only',\n style: 'flexWrap',\n },\n gridAutoColumns: {\n type: 'style-only',\n style: 'gridAutoColumns',\n },\n gridAutoFlow: {\n type: 'style-only',\n style: 'gridAutoFlow',\n },\n gridAutoRows: {\n type: 'style-only',\n style: 'gridAutoRows',\n },\n gridTemplateColumns: {\n type: 'style-mapped',\n style: 'gridTemplateColumns',\n mapping: {\n 0: '0px',\n 1: 'repeat(1, 1fr)',\n 2: 'repeat(2, 1fr)',\n 3: 'repeat(3, 1fr)',\n 4: 'repeat(4, 1fr)',\n 5: 'repeat(5, 1fr)',\n 6: 'repeat(6, 1fr)',\n 7: 'repeat(7, 1fr)',\n 8: 'repeat(8, 1fr)',\n 9: 'repeat(9, 1fr)',\n 10: 'repeat(10, 1fr)',\n 11: 'repeat(11, 1fr)',\n 12: 'repeat(12, 1fr)',\n },\n },\n gridTemplateRows: {\n type: 'style-mapped',\n style: 'gridTemplateRows',\n mapping: {\n 0: '0px',\n 1: 'repeat(1, 1fr)',\n 2: 'repeat(2, 1fr)',\n 3: 'repeat(3, 1fr)',\n 4: 'repeat(4, 1fr)',\n 5: 'repeat(5, 1fr)',\n 6: 'repeat(6, 1fr)',\n 7: 'repeat(7, 1fr)',\n 8: 'repeat(8, 1fr)',\n 9: 'repeat(9, 1fr)',\n 10: 'repeat(10, 1fr)',\n 11: 'repeat(11, 1fr)',\n 12: 'repeat(12, 1fr)',\n },\n },\n justifyContent: {\n type: 'style-only',\n style: 'justifyContent',\n },\n tone: {\n type: 'mapped-only',\n mapping: {\n default: 'none',\n none: 'none',\n transparent: 'neutral',\n neutral: 'neutral',\n brand: 'primary',\n primary: 'primary',\n positive: 'positive',\n caution: 'caution',\n critical: 'critical',\n suggest: 'suggest',\n },\n },\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"box.mods.js","sources":["../../src/transforms/latest/box/box.mods.ts"],"sourcesContent":["import {LAYOUT_MODS} from '../../../constants/latest/layout-mods'\nimport type {AttributeMods} from '../../../types/AttributeMods'\n\n/** @internal */\nexport const BOX_MODS: AttributeMods = {\n ...LAYOUT_MODS,\n alignItems: {\n type: 'style-only',\n style: 'alignItems',\n },\n flexDirection: {\n type: 'style-only',\n style: 'flexDirection',\n },\n flexWrap: {\n type: 'style-only',\n style: 'flexWrap',\n },\n gridAutoColumns: {\n type: 'style-only',\n style: 'gridAutoColumns',\n },\n gridAutoFlow: {\n type: 'style-only',\n style: 'gridAutoFlow',\n },\n gridAutoRows: {\n type: 'style-only',\n style: 'gridAutoRows',\n },\n gridTemplateColumns: {\n type: 'style-mapped',\n style: 'gridTemplateColumns',\n mapping: {\n 0: '0px',\n 1: 'repeat(1, 1fr)',\n 2: 'repeat(2, 1fr)',\n 3: 'repeat(3, 1fr)',\n 4: 'repeat(4, 1fr)',\n 5: 'repeat(5, 1fr)',\n 6: 'repeat(6, 1fr)',\n 7: 'repeat(7, 1fr)',\n 8: 'repeat(8, 1fr)',\n 9: 'repeat(9, 1fr)',\n 10: 'repeat(10, 1fr)',\n 11: 'repeat(11, 1fr)',\n 12: 'repeat(12, 1fr)',\n },\n },\n gridTemplateRows: {\n type: 'style-mapped',\n style: 'gridTemplateRows',\n mapping: {\n 0: '0px',\n 1: 'repeat(1, 1fr)',\n 2: 'repeat(2, 1fr)',\n 3: 'repeat(3, 1fr)',\n 4: 'repeat(4, 1fr)',\n 5: 'repeat(5, 1fr)',\n 6: 'repeat(6, 1fr)',\n 7: 'repeat(7, 1fr)',\n 8: 'repeat(8, 1fr)',\n 9: 'repeat(9, 1fr)',\n 10: 'repeat(10, 1fr)',\n 11: 'repeat(11, 1fr)',\n 12: 'repeat(12, 1fr)',\n },\n },\n justifyContent: {\n type: 'style-only',\n style: 'justifyContent',\n },\n tone: {\n type: 'mapped-only',\n mapping: {\n default: 'none',\n none: 'none',\n transparent: 'neutral',\n neutral: 'neutral',\n brand: 'primary',\n primary: 'primary',\n positive: 'positive',\n caution: 'caution',\n critical: 'critical',\n suggest: 'suggest',\n },\n },\n}\n"],"names":[],"mappings":";AAIO,MAAM,WAA0B;AAAA,EACrC,GAAG;AAAA,EACH,YAAY;AAAA,IACV,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,eAAe;AAAA,IACb,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,UAAU;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,qBAAqB;AAAA,IACnB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,gBAAgB;AAAA,IACd,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,SAAS;AAAA,MACP,SAAS;AAAA,MACT,MAAM;AAAA,MACN,aAAa;AAAA,MACb,SAAS;AAAA,MACT,OAAO;AAAA,MACP,SAAS;AAAA,MACT,UAAU;AAAA,MACV,SAAS;AAAA,MACT,UAAU;AAAA,MACV,SAAS;AAAA,IAAA;AAAA,EACX;AAEJ;"}
|
|
@@ -1,151 +1,4 @@
|
|
|
1
|
-
import { getComponentLocalNames, insertTodoWarning } from "./transformComponent.js";
|
|
2
|
-
import { readFileSync, existsSync } from "node:fs";
|
|
3
|
-
import { resolve, dirname, join } from "node:path";
|
|
4
1
|
import { LAYOUT_MODS } from "./layout-mods.js";
|
|
5
|
-
const parseCache = /* @__PURE__ */ new Map();
|
|
6
|
-
function parseModule(j, filePath) {
|
|
7
|
-
const cached = parseCache.get(filePath);
|
|
8
|
-
if (cached)
|
|
9
|
-
return cached;
|
|
10
|
-
try {
|
|
11
|
-
const source = readFileSync(filePath, "utf8"), root = j(source);
|
|
12
|
-
return parseCache.set(filePath, root), root;
|
|
13
|
-
} catch {
|
|
14
|
-
return null;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
const EXTENSIONS = [".tsx", ".ts", ".jsx", ".js"];
|
|
18
|
-
function resolveRelativeModulePath(fromFilePath, moduleSpecifier) {
|
|
19
|
-
if (!moduleSpecifier.startsWith("."))
|
|
20
|
-
return null;
|
|
21
|
-
const base = resolve(dirname(fromFilePath), moduleSpecifier);
|
|
22
|
-
for (const ext of EXTENSIONS) {
|
|
23
|
-
const filePath = `${base}${ext}`;
|
|
24
|
-
if (existsSync(filePath))
|
|
25
|
-
return filePath;
|
|
26
|
-
}
|
|
27
|
-
for (const ext of EXTENSIONS) {
|
|
28
|
-
const indexPath = join(base, `index${ext}`);
|
|
29
|
-
if (existsSync(indexPath))
|
|
30
|
-
return indexPath;
|
|
31
|
-
}
|
|
32
|
-
return existsSync(base) ? base : null;
|
|
33
|
-
}
|
|
34
|
-
function findVariableInit(j, root, name) {
|
|
35
|
-
let init = null;
|
|
36
|
-
return root.find(j.VariableDeclarator).forEach((path) => {
|
|
37
|
-
const { id } = path.node;
|
|
38
|
-
id.type === "Identifier" && id.name === name && path.node.init && (init = path.node.init);
|
|
39
|
-
}), init;
|
|
40
|
-
}
|
|
41
|
-
function getExportSpecifierName(exported) {
|
|
42
|
-
return exported.type === "Identifier" || exported.type === "JSXIdentifier" ? exported.name : null;
|
|
43
|
-
}
|
|
44
|
-
function getNamedExportInit(j, exportName, filePath, visited = /* @__PURE__ */ new Set()) {
|
|
45
|
-
if (visited.has(filePath))
|
|
46
|
-
return null;
|
|
47
|
-
visited.add(filePath);
|
|
48
|
-
const root = parseModule(j, filePath);
|
|
49
|
-
if (!root)
|
|
50
|
-
return null;
|
|
51
|
-
for (const path of root.find(j.ExportNamedDeclaration).paths()) {
|
|
52
|
-
const { declaration, specifiers, source } = path.node, reexportSource = typeof source?.value == "string" ? source.value : null;
|
|
53
|
-
if (declaration?.type === "VariableDeclaration") {
|
|
54
|
-
for (const declarator of declaration.declarations)
|
|
55
|
-
if (declarator.type === "VariableDeclarator" && declarator.id.type === "Identifier" && declarator.id.name === exportName && declarator.init)
|
|
56
|
-
return { init: declarator.init, modulePath: filePath };
|
|
57
|
-
}
|
|
58
|
-
for (const spec of specifiers ?? []) {
|
|
59
|
-
if (spec.type !== "ExportSpecifier")
|
|
60
|
-
continue;
|
|
61
|
-
const exported = getExportSpecifierName(spec.exported);
|
|
62
|
-
if (!exported || exported !== exportName)
|
|
63
|
-
continue;
|
|
64
|
-
const local = spec.local?.type === "Identifier" ? spec.local.name : exported;
|
|
65
|
-
if (reexportSource) {
|
|
66
|
-
const resolvedPath = resolveRelativeModulePath(filePath, reexportSource);
|
|
67
|
-
if (resolvedPath) {
|
|
68
|
-
const followed = getNamedExportInit(j, local, resolvedPath, visited);
|
|
69
|
-
if (followed)
|
|
70
|
-
return followed;
|
|
71
|
-
}
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
const init = findVariableInit(j, root, local);
|
|
75
|
-
if (init)
|
|
76
|
-
return { init, modulePath: filePath };
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
function getStyledComponentName(node) {
|
|
82
|
-
if (!node || typeof node != "object" || !("type" in node))
|
|
83
|
-
return null;
|
|
84
|
-
const current = node;
|
|
85
|
-
if (current.type === "TaggedTemplateExpression")
|
|
86
|
-
return getStyledComponentName(current.tag);
|
|
87
|
-
if (current.type === "CallExpression") {
|
|
88
|
-
const callee = current.callee;
|
|
89
|
-
if (callee && typeof callee == "object" && "type" in callee && callee.type === "Identifier" && "name" in callee && callee.name === "styled") {
|
|
90
|
-
const arg = current.arguments?.[0];
|
|
91
|
-
return arg && typeof arg == "object" && "type" in arg && arg.type === "Identifier" && "name" in arg ? arg.name : null;
|
|
92
|
-
}
|
|
93
|
-
return getStyledComponentName(callee);
|
|
94
|
-
}
|
|
95
|
-
return current.type === "MemberExpression" && current.object ? getStyledComponentName(current.object) : null;
|
|
96
|
-
}
|
|
97
|
-
function getSameFileStyledComponentAliases(j, root, localNames) {
|
|
98
|
-
const aliases = /* @__PURE__ */ new Set(), names = new Set(localNames);
|
|
99
|
-
return root.find(j.VariableDeclarator).forEach((path) => {
|
|
100
|
-
const { id, init } = path.node;
|
|
101
|
-
if (!init || id.type !== "Identifier")
|
|
102
|
-
return;
|
|
103
|
-
const baseComponent = getStyledComponentName(init);
|
|
104
|
-
baseComponent && names.has(baseComponent) && aliases.add(id.name);
|
|
105
|
-
}), aliases;
|
|
106
|
-
}
|
|
107
|
-
function getImportedStyledComponentAliases(j, root, componentName, filePath, options) {
|
|
108
|
-
const aliases = /* @__PURE__ */ new Set();
|
|
109
|
-
return filePath && root.find(j.ImportDeclaration).forEach((path) => {
|
|
110
|
-
const source = path.node.source.value;
|
|
111
|
-
if (typeof source != "string")
|
|
112
|
-
return;
|
|
113
|
-
const resolvedPath = resolveRelativeModulePath(filePath, source);
|
|
114
|
-
if (resolvedPath)
|
|
115
|
-
for (const spec of path.node.specifiers ?? []) {
|
|
116
|
-
if (spec.type !== "ImportSpecifier" || "importKind" in spec && spec.importKind === "type" || spec.imported.type !== "Identifier")
|
|
117
|
-
continue;
|
|
118
|
-
const exportName = spec.imported.name, localName = spec.local?.type === "Identifier" ? spec.local.name : exportName, namedExport = getNamedExportInit(j, exportName, resolvedPath);
|
|
119
|
-
if (!namedExport)
|
|
120
|
-
continue;
|
|
121
|
-
const sourceRoot = parseModule(j, namedExport.modulePath);
|
|
122
|
-
if (!sourceRoot)
|
|
123
|
-
continue;
|
|
124
|
-
const exportLocalNames = getComponentLocalNames(j, sourceRoot, componentName, options), baseComponent = getStyledComponentName(namedExport.init);
|
|
125
|
-
baseComponent && exportLocalNames.has(baseComponent) && aliases.add(localName);
|
|
126
|
-
}
|
|
127
|
-
}), aliases;
|
|
128
|
-
}
|
|
129
|
-
function getStyledComponentAliases(j, root, componentName, filePath, localNames, options) {
|
|
130
|
-
const sameFile = getSameFileStyledComponentAliases(j, root, localNames), imported = getImportedStyledComponentAliases(j, root, componentName, filePath, options);
|
|
131
|
-
return /* @__PURE__ */ new Set([...sameFile, ...imported]);
|
|
132
|
-
}
|
|
133
|
-
const DEFAULT_WARNING = "Please double check styled-component migration below";
|
|
134
|
-
function transformStyledComponents(j, root, aliases, filter, options = {}) {
|
|
135
|
-
const names = new Set(aliases), { callback, warning = DEFAULT_WARNING } = options;
|
|
136
|
-
let hasChanges = !1;
|
|
137
|
-
return root.find(j.JSXOpeningElement).forEach((path) => {
|
|
138
|
-
const name = path.node.name;
|
|
139
|
-
if (name.type !== "JSXIdentifier" || !names.has(name.name))
|
|
140
|
-
return;
|
|
141
|
-
const attrs = path.node.attributes ?? [];
|
|
142
|
-
if (!filter(attrs)) {
|
|
143
|
-
insertTodoWarning(j, path, warning) && (hasChanges = !0);
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
callback?.(path) && (hasChanges = !0);
|
|
147
|
-
}), hasChanges;
|
|
148
|
-
}
|
|
149
2
|
const FLEX_MODS = {
|
|
150
3
|
...LAYOUT_MODS,
|
|
151
4
|
align: {
|
|
@@ -216,8 +69,6 @@ const FLEX_MODS = {
|
|
|
216
69
|
}
|
|
217
70
|
};
|
|
218
71
|
export {
|
|
219
|
-
FLEX_MODS
|
|
220
|
-
getStyledComponentAliases,
|
|
221
|
-
transformStyledComponents
|
|
72
|
+
FLEX_MODS
|
|
222
73
|
};
|
|
223
74
|
//# sourceMappingURL=flex.mods.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flex.mods.js","sources":["../../src/utils/parseModule.ts","../../src/utils/resolveRelativeModulePath.ts","../../src/utils/getNamedExportInit.ts","../../src/utils/getStyledComponentName.ts","../../src/utils/getStyledComponentAliases.ts","../../src/utils/transformStyledComponents.ts","../../src/transforms/latest/flex/flex.mods.ts"],"sourcesContent":["import {readFileSync} from 'node:fs'\n\nimport type {API, Collection} from 'jscodeshift'\n\nconst parseCache = new Map<string, Collection>()\n\nexport function parseModule(j: API['jscodeshift'], filePath: string): Collection | null {\n const cached = parseCache.get(filePath)\n\n if (cached) {\n return cached\n }\n\n try {\n const source = readFileSync(filePath, 'utf8')\n const root = j(source)\n\n parseCache.set(filePath, root)\n\n return root\n } catch {\n return null\n }\n}\n\n/** @internal */\nexport function clearModuleParseCache(): void {\n parseCache.clear()\n}\n","import {existsSync} from 'node:fs'\nimport {dirname, join, resolve} from 'node:path'\n\nconst EXTENSIONS = ['.tsx', '.ts', '.jsx', '.js'] as const\n\nexport function resolveRelativeModulePath(\n fromFilePath: string,\n moduleSpecifier: string,\n): string | null {\n if (!moduleSpecifier.startsWith('.')) {\n return null\n }\n\n const base = resolve(dirname(fromFilePath), moduleSpecifier)\n\n for (const ext of EXTENSIONS) {\n const filePath = `${base}${ext}`\n\n if (existsSync(filePath)) {\n return filePath\n }\n }\n\n for (const ext of EXTENSIONS) {\n const indexPath = join(base, `index${ext}`)\n\n if (existsSync(indexPath)) {\n return indexPath\n }\n }\n\n if (existsSync(base)) {\n return base\n }\n\n return null\n}\n","import type {API, Expression, ExportSpecifier} from 'jscodeshift'\n\nimport {parseModule} from './parseModule'\nimport {resolveRelativeModulePath} from './resolveRelativeModulePath'\n\nexport type NamedExportInit = {\n init: Expression\n modulePath: string\n}\n\nfunction findVariableInit(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n name: string,\n): Expression | null {\n let init: Expression | null = null\n\n root.find(j.VariableDeclarator).forEach((path) => {\n const {id} = path.node\n\n if (id.type === 'Identifier' && id.name === name && path.node.init) {\n init = path.node.init\n }\n })\n\n return init\n}\n\nfunction getExportSpecifierName(exported: ExportSpecifier['exported']): string | null {\n if (exported.type === 'Identifier' || exported.type === 'JSXIdentifier') {\n return exported.name\n }\n\n return null\n}\n\nexport function getNamedExportInit(\n j: API['jscodeshift'],\n exportName: string,\n filePath: string,\n visited: Set<string> = new Set(),\n): NamedExportInit | null {\n if (visited.has(filePath)) {\n return null\n }\n\n visited.add(filePath)\n\n const root = parseModule(j, filePath)\n\n if (!root) {\n return null\n }\n\n for (const path of root.find(j.ExportNamedDeclaration).paths()) {\n const {declaration, specifiers, source} = path.node\n const reexportSource = typeof source?.value === 'string' ? source.value : null\n\n if (declaration?.type === 'VariableDeclaration') {\n for (const declarator of declaration.declarations) {\n if (declarator.type !== 'VariableDeclarator') {\n continue\n }\n\n if (\n declarator.id.type === 'Identifier' &&\n declarator.id.name === exportName &&\n declarator.init\n ) {\n return {init: declarator.init, modulePath: filePath}\n }\n }\n }\n\n for (const spec of specifiers ?? []) {\n if (spec.type !== 'ExportSpecifier') {\n continue\n }\n\n const exported = getExportSpecifierName(spec.exported)\n\n if (!exported || exported !== exportName) {\n continue\n }\n\n const local = spec.local?.type === 'Identifier' ? spec.local.name : exported\n\n if (reexportSource) {\n const resolvedPath = resolveRelativeModulePath(filePath, reexportSource)\n\n if (resolvedPath) {\n const followed = getNamedExportInit(j, local, resolvedPath, visited)\n\n if (followed) {\n return followed\n }\n }\n\n continue\n }\n\n const init = findVariableInit(j, root, local)\n\n if (init) {\n return {init, modulePath: filePath}\n }\n }\n }\n\n return null\n}\n","export function getStyledComponentName(node: unknown): string | null {\n if (!node || typeof node !== 'object' || !('type' in node)) {\n return null\n }\n\n const current = node as {\n type: string\n callee?: unknown\n tag?: unknown\n object?: unknown\n arguments?: unknown[]\n }\n\n if (current.type === 'TaggedTemplateExpression') {\n return getStyledComponentName(current.tag)\n }\n\n if (current.type === 'CallExpression') {\n const callee = current.callee\n\n if (\n callee &&\n typeof callee === 'object' &&\n 'type' in callee &&\n callee.type === 'Identifier' &&\n 'name' in callee &&\n callee.name === 'styled'\n ) {\n const arg = current.arguments?.[0]\n\n if (\n arg &&\n typeof arg === 'object' &&\n 'type' in arg &&\n arg.type === 'Identifier' &&\n 'name' in arg\n ) {\n return arg.name as string\n }\n\n return null\n }\n\n return getStyledComponentName(callee)\n }\n\n if (current.type === 'MemberExpression' && current.object) {\n return getStyledComponentName(current.object)\n }\n\n return null\n}\n","import type {API, Collection} from 'jscodeshift'\n\nimport type {BaseOptions} from '../types/BaseOptions'\nimport {getComponentLocalNames} from './getComponentLocalNames'\nimport {getNamedExportInit} from './getNamedExportInit'\nimport {getStyledComponentName} from './getStyledComponentName'\nimport {parseModule} from './parseModule'\nimport {resolveRelativeModulePath} from './resolveRelativeModulePath'\n\nexport function getSameFileStyledComponentAliases(\n j: API['jscodeshift'],\n root: Collection,\n localNames: Iterable<string>,\n): Set<string> {\n const aliases = new Set<string>()\n const names = new Set(localNames)\n\n root.find(j.VariableDeclarator).forEach((path) => {\n const {id, init} = path.node\n\n if (!init || id.type !== 'Identifier') {\n return\n }\n\n const baseComponent = getStyledComponentName(init)\n\n if (baseComponent && names.has(baseComponent)) {\n aliases.add(id.name)\n }\n })\n\n return aliases\n}\n\nexport function getImportedStyledComponentAliases(\n j: API['jscodeshift'],\n root: Collection,\n componentName: string,\n filePath: string | undefined,\n options?: BaseOptions,\n): Set<string> {\n const aliases = new Set<string>()\n\n if (!filePath) {\n return aliases\n }\n\n root.find(j.ImportDeclaration).forEach((path) => {\n const source = path.node.source.value\n\n if (typeof source !== 'string') {\n return\n }\n\n const resolvedPath = resolveRelativeModulePath(filePath, source)\n\n if (!resolvedPath) {\n return\n }\n\n for (const spec of path.node.specifiers ?? []) {\n if (spec.type !== 'ImportSpecifier') {\n continue\n }\n\n if ('importKind' in spec && spec.importKind === 'type') {\n continue\n }\n\n if (spec.imported.type !== 'Identifier') {\n continue\n }\n\n const exportName = spec.imported.name\n const localName = spec.local?.type === 'Identifier' ? spec.local.name : exportName\n const namedExport = getNamedExportInit(j, exportName, resolvedPath)\n\n if (!namedExport) {\n continue\n }\n\n const sourceRoot = parseModule(j, namedExport.modulePath)\n\n if (!sourceRoot) {\n continue\n }\n\n const exportLocalNames = getComponentLocalNames(j, sourceRoot, componentName, options)\n const baseComponent = getStyledComponentName(namedExport.init)\n\n if (baseComponent && exportLocalNames.has(baseComponent)) {\n aliases.add(localName)\n }\n }\n })\n\n return aliases\n}\n\nexport function getStyledComponentAliases(\n j: API['jscodeshift'],\n root: Collection,\n componentName: string,\n filePath: string | undefined,\n localNames: Set<string>,\n options?: BaseOptions,\n): Set<string> {\n const sameFile = getSameFileStyledComponentAliases(j, root, localNames)\n const imported = getImportedStyledComponentAliases(j, root, componentName, filePath, options)\n\n return new Set([...sameFile, ...imported])\n}\n","import type {API, ASTPath, JSXAttribute, JSXOpeningElement, JSXSpreadAttribute} from 'jscodeshift'\n\nimport {insertTodoWarning} from './insertTodoWarning'\n\nconst DEFAULT_WARNING = 'Please double check styled-component migration below'\n\n/**\n * Runs callback on JSX styled-component if `filter` passes. Otherwise, adds\n * a TODO on the component JSX instance when manual review is needed.\n * Returns whether the AST was updated.\n */\nexport function transformStyledComponents(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n aliases: Iterable<string>,\n filter: (attrs: (JSXAttribute | JSXSpreadAttribute)[]) => boolean,\n options: {\n callback?: (path: ASTPath<JSXOpeningElement>) => boolean | void\n warning?: string\n } = {},\n): boolean {\n const names = new Set(aliases)\n const {callback, warning = DEFAULT_WARNING} = options\n let hasChanges = false\n\n root.find(j.JSXOpeningElement).forEach((path) => {\n const name = path.node.name\n\n if (name.type !== 'JSXIdentifier' || !names.has(name.name)) {\n return\n }\n\n const attrs = path.node.attributes ?? []\n\n if (!filter(attrs)) {\n if (insertTodoWarning(j, path, warning)) {\n hasChanges = true\n }\n\n return\n }\n\n if (callback?.(path)) {\n hasChanges = true\n }\n })\n\n return hasChanges\n}\n","import {LAYOUT_MODS} from '../../../constants/latest/layout-mods'\nimport type {AttributeMods} from '../../../types/AttributeMods'\n\n/** @internal */\nexport const FLEX_MODS: AttributeMods = {\n ...LAYOUT_MODS,\n align: {\n type: 'rename-only',\n name: 'alignItems',\n },\n direction: {\n type: 'rename-only',\n name: 'flexDirection',\n },\n gridAutoColumns: {\n type: 'style-only',\n style: 'gridAutoColumns',\n },\n gridAutoFlow: {\n type: 'style-only',\n style: 'gridAutoFlow',\n },\n gridAutoRows: {\n type: 'style-only',\n style: 'gridAutoRows',\n },\n gridTemplateColumns: {\n type: 'style-mapped',\n style: 'gridTemplateColumns',\n mapping: {\n 0: '0px',\n 1: 'repeat(1, 1fr)',\n 2: 'repeat(2, 1fr)',\n 3: 'repeat(3, 1fr)',\n 4: 'repeat(4, 1fr)',\n 5: 'repeat(5, 1fr)',\n 6: 'repeat(6, 1fr)',\n 7: 'repeat(7, 1fr)',\n 8: 'repeat(8, 1fr)',\n 9: 'repeat(9, 1fr)',\n 10: 'repeat(10, 1fr)',\n 11: 'repeat(11, 1fr)',\n 12: 'repeat(12, 1fr)',\n },\n },\n gridTemplateRows: {\n type: 'style-mapped',\n style: 'gridTemplateRows',\n mapping: {\n 0: '0px',\n 1: 'repeat(1, 1fr)',\n 2: 'repeat(2, 1fr)',\n 3: 'repeat(3, 1fr)',\n 4: 'repeat(4, 1fr)',\n 5: 'repeat(5, 1fr)',\n 6: 'repeat(6, 1fr)',\n 7: 'repeat(7, 1fr)',\n 8: 'repeat(8, 1fr)',\n 9: 'repeat(9, 1fr)',\n 10: 'repeat(10, 1fr)',\n 11: 'repeat(11, 1fr)',\n 12: 'repeat(12, 1fr)',\n },\n },\n wrap: {\n type: 'rename-only',\n name: 'flexWrap',\n },\n justify: {\n type: 'rename-only',\n name: 'justifyContent',\n },\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flex.mods.js","sources":["../../src/transforms/latest/flex/flex.mods.ts"],"sourcesContent":["import {LAYOUT_MODS} from '../../../constants/latest/layout-mods'\nimport type {AttributeMods} from '../../../types/AttributeMods'\n\n/** @internal */\nexport const FLEX_MODS: AttributeMods = {\n ...LAYOUT_MODS,\n align: {\n type: 'rename-only',\n name: 'alignItems',\n },\n direction: {\n type: 'rename-only',\n name: 'flexDirection',\n },\n gridAutoColumns: {\n type: 'style-only',\n style: 'gridAutoColumns',\n },\n gridAutoFlow: {\n type: 'style-only',\n style: 'gridAutoFlow',\n },\n gridAutoRows: {\n type: 'style-only',\n style: 'gridAutoRows',\n },\n gridTemplateColumns: {\n type: 'style-mapped',\n style: 'gridTemplateColumns',\n mapping: {\n 0: '0px',\n 1: 'repeat(1, 1fr)',\n 2: 'repeat(2, 1fr)',\n 3: 'repeat(3, 1fr)',\n 4: 'repeat(4, 1fr)',\n 5: 'repeat(5, 1fr)',\n 6: 'repeat(6, 1fr)',\n 7: 'repeat(7, 1fr)',\n 8: 'repeat(8, 1fr)',\n 9: 'repeat(9, 1fr)',\n 10: 'repeat(10, 1fr)',\n 11: 'repeat(11, 1fr)',\n 12: 'repeat(12, 1fr)',\n },\n },\n gridTemplateRows: {\n type: 'style-mapped',\n style: 'gridTemplateRows',\n mapping: {\n 0: '0px',\n 1: 'repeat(1, 1fr)',\n 2: 'repeat(2, 1fr)',\n 3: 'repeat(3, 1fr)',\n 4: 'repeat(4, 1fr)',\n 5: 'repeat(5, 1fr)',\n 6: 'repeat(6, 1fr)',\n 7: 'repeat(7, 1fr)',\n 8: 'repeat(8, 1fr)',\n 9: 'repeat(9, 1fr)',\n 10: 'repeat(10, 1fr)',\n 11: 'repeat(11, 1fr)',\n 12: 'repeat(12, 1fr)',\n },\n },\n wrap: {\n type: 'rename-only',\n name: 'flexWrap',\n },\n justify: {\n type: 'rename-only',\n name: 'justifyContent',\n },\n}\n"],"names":[],"mappings":";AAIO,MAAM,YAA2B;AAAA,EACtC,GAAG;AAAA,EACH,OAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAAA,EAER,WAAW;AAAA,IACT,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAAA,EAER,iBAAiB;AAAA,IACf,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,OAAO;AAAA,EAAA;AAAA,EAET,qBAAqB;AAAA,IACnB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,kBAAkB;AAAA,IAChB,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,IAAA;AAAA,EACN;AAAA,EAEF,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAAA,EAER,SAAS;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAEV;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout-mods.js","sources":["../../src/constants/latest/layout-mods.ts"],"sourcesContent":["import type {AttributeMods} from '../../types/AttributeMods'\n\nexport const LAYOUT_MODS: AttributeMods = {\n border: {\n type: 'mapped-only',\n mapping: {\n none: false,\n muted: true,\n default: true,\n },\n },\n borderTop: {\n type: 'mapped-only',\n mapping: {\n none: false,\n muted: true,\n default: true,\n },\n },\n borderRight: {\n type: 'mapped-only',\n mapping: {\n none: false,\n muted: true,\n default: true,\n },\n },\n borderBottom: {\n type: 'mapped-only',\n mapping: {\n none: false,\n muted: true,\n default: true,\n },\n },\n borderLeft: {\n type: 'mapped-only',\n mapping: {\n none: false,\n muted: true,\n default: true,\n },\n },\n borderWidth: {type: 'remove'},\n column: {\n type: 'rename-mapped',\n name: 'gridColumn',\n mapping: {\n auto: 'auto',\n full: '1 / -1',\n 1: 'span 1 / span 1',\n 2: 'span 2 / span 2',\n 3: 'span 3 / span 3',\n 4: 'span 4 / span 4',\n 5: 'span 5 / span 5',\n 6: 'span 6 / span 6',\n 7: 'span 7 / span 7',\n 8: 'span 8 / span 8',\n 9: 'span 9 / span 9',\n 10: 'span 10 / span 10',\n 11: 'span 11 / span 11',\n 12: 'span 12 / span 12',\n },\n },\n columnEnd: {\n type: 'rename-mapped',\n name: 'gridColumnEnd',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n columnStart: {\n type: 'rename-mapped',\n name: 'gridColumnStart',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n flex: {\n type: 'shorthand-mapped',\n props: [\n {\n name: 'flexBasis',\n mapping: {\n none: 'auto',\n auto: 'auto',\n initial: 'auto',\n 1: '0%',\n 2: '0%',\n 3: '0%',\n 4: '0%',\n 5: '0%',\n 6: '0%',\n 7: '0%',\n 8: '0%',\n 9: '0%',\n 10: '0%',\n 11: '0%',\n 12: '0%',\n },\n },\n {\n name: 'flexGrow',\n mapping: {\n none: 0,\n auto: 1,\n initial: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n 10: 10,\n 11: 11,\n 12: 12,\n },\n },\n {\n name: 'flexShrink',\n mapping: {\n none: 0,\n auto: 1,\n initial: 1,\n },\n },\n ],\n },\n gapX: {\n type: 'rename-only',\n name: 'columnGap',\n },\n gapY: {\n type: 'rename-only',\n name: 'rowGap',\n },\n gridColumn: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n full: '1 / -1',\n 1: 'span 1 / span 1',\n 2: 'span 2 / span 2',\n 3: 'span 3 / span 3',\n 4: 'span 4 / span 4',\n 5: 'span 5 / span 5',\n 6: 'span 6 / span 6',\n 7: 'span 7 / span 7',\n 8: 'span 8 / span 8',\n 9: 'span 9 / span 9',\n 10: 'span 10 / span 10',\n 11: 'span 11 / span 11',\n 12: 'span 12 / span 12',\n },\n },\n gridColumnEnd: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n gridColumnStart: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n gridRow: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n full: '1 / -1',\n 1: 'span 1 / span 1',\n 2: 'span 2 / span 2',\n 3: 'span 3 / span 3',\n 4: 'span 4 / span 4',\n 5: 'span 5 / span 5',\n 6: 'span 6 / span 6',\n 7: 'span 7 / span 7',\n 8: 'span 8 / span 8',\n 9: 'span 9 / span 9',\n 10: 'span 10 / span 10',\n 11: 'span 11 / span 11',\n 12: 'span 12 / span 12',\n },\n },\n gridRowEnd: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n gridRowStart: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n height: {\n type: 'mapped-only',\n mapping: {\n fill: '100%',\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n stretch: 'stretch',\n },\n },\n insetTop: {\n type: 'rename-only',\n name: 'top',\n },\n insetRight: {\n type: 'rename-only',\n name: 'right',\n },\n insetBottom: {\n type: 'rename-only',\n name: 'bottom',\n },\n insetLeft: {\n type: 'rename-only',\n name: 'left',\n },\n minHeight: {\n type: 'mapped-only',\n mapping: {\n full: '100%',\n 0: '0',\n },\n },\n maxWidth: {\n type: 'mapped-only',\n mapping: {\n auto: 'none',\n fill: '100%',\n 0: '20rem',\n 1: '40rem',\n 2: '60rem',\n 3: '80rem',\n 4: '100rem',\n 5: '120rem',\n },\n },\n minWidth: {\n type: 'mapped-only',\n mapping: {\n full: '100%',\n 0: '0',\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n },\n muted: {\n type: 'rename-mapped',\n name: 'tone',\n mapping: {\n true: 'neutral',\n },\n },\n outline: {\n type: 'style-only',\n style: 'outline',\n },\n pointerEvents: {\n type: 'style-only',\n style: 'pointerEvents',\n },\n row: {\n type: 'rename-mapped',\n name: 'gridRow',\n mapping: {\n auto: 'auto',\n full: '1 / -1',\n 1: 'span 1 / span 1',\n 2: 'span 2 / span 2',\n 3: 'span 3 / span 3',\n 4: 'span 4 / span 4',\n 5: 'span 5 / span 5',\n 6: 'span 6 / span 6',\n 7: 'span 7 / span 7',\n 8: 'span 8 / span 8',\n 9: 'span 9 / span 9',\n 10: 'span 10 / span 10',\n 11: 'span 11 / span 11',\n 12: 'span 12 / span 12',\n },\n },\n rowEnd: {\n type: 'rename-mapped',\n name: 'gridRowEnd',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n rowStart: {\n type: 'rename-mapped',\n name: 'gridRowStart',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n shadow: {type: 'remove'},\n sizing: {\n type: 'style-mapped',\n style: 'boxSizing',\n mapping: {\n content: 'content-box',\n border: 'border-box',\n },\n },\n textAlign: {\n type: 'style-only',\n style: 'textAlign',\n },\n width: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n fill: '100%',\n stretch: 'stretch',\n min: 'min-content',\n max: 'max-content',\n 0: '20rem',\n 1: '40rem',\n 2: '60rem',\n 3: '80rem',\n 4: '100rem',\n 5: '120rem',\n },\n },\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"layout-mods.js","sources":["../../src/constants/latest/layout-mods.ts"],"sourcesContent":["import type {AttributeMods} from '../../types/AttributeMods'\n\nexport const LAYOUT_MODS: AttributeMods = {\n border: {\n type: 'mapped-only',\n mapping: {\n none: false,\n muted: true,\n default: true,\n },\n },\n borderTop: {\n type: 'mapped-only',\n mapping: {\n none: false,\n muted: true,\n default: true,\n },\n },\n borderRight: {\n type: 'mapped-only',\n mapping: {\n none: false,\n muted: true,\n default: true,\n },\n },\n borderBottom: {\n type: 'mapped-only',\n mapping: {\n none: false,\n muted: true,\n default: true,\n },\n },\n borderLeft: {\n type: 'mapped-only',\n mapping: {\n none: false,\n muted: true,\n default: true,\n },\n },\n borderWidth: {type: 'remove'},\n column: {\n type: 'rename-mapped',\n name: 'gridColumn',\n mapping: {\n auto: 'auto',\n full: '1 / -1',\n 1: 'span 1 / span 1',\n 2: 'span 2 / span 2',\n 3: 'span 3 / span 3',\n 4: 'span 4 / span 4',\n 5: 'span 5 / span 5',\n 6: 'span 6 / span 6',\n 7: 'span 7 / span 7',\n 8: 'span 8 / span 8',\n 9: 'span 9 / span 9',\n 10: 'span 10 / span 10',\n 11: 'span 11 / span 11',\n 12: 'span 12 / span 12',\n },\n },\n columnEnd: {\n type: 'rename-mapped',\n name: 'gridColumnEnd',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n columnStart: {\n type: 'rename-mapped',\n name: 'gridColumnStart',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n flex: {\n type: 'shorthand-mapped',\n props: [\n {\n name: 'flexBasis',\n mapping: {\n none: 'auto',\n auto: 'auto',\n initial: 'auto',\n 1: '0%',\n 2: '0%',\n 3: '0%',\n 4: '0%',\n 5: '0%',\n 6: '0%',\n 7: '0%',\n 8: '0%',\n 9: '0%',\n 10: '0%',\n 11: '0%',\n 12: '0%',\n },\n },\n {\n name: 'flexGrow',\n mapping: {\n none: 0,\n auto: 1,\n initial: 0,\n 1: 1,\n 2: 2,\n 3: 3,\n 4: 4,\n 5: 5,\n 6: 6,\n 7: 7,\n 8: 8,\n 9: 9,\n 10: 10,\n 11: 11,\n 12: 12,\n },\n },\n {\n name: 'flexShrink',\n mapping: {\n none: 0,\n auto: 1,\n initial: 1,\n },\n },\n ],\n },\n gapX: {\n type: 'rename-only',\n name: 'columnGap',\n },\n gapY: {\n type: 'rename-only',\n name: 'rowGap',\n },\n gridColumn: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n full: '1 / -1',\n 1: 'span 1 / span 1',\n 2: 'span 2 / span 2',\n 3: 'span 3 / span 3',\n 4: 'span 4 / span 4',\n 5: 'span 5 / span 5',\n 6: 'span 6 / span 6',\n 7: 'span 7 / span 7',\n 8: 'span 8 / span 8',\n 9: 'span 9 / span 9',\n 10: 'span 10 / span 10',\n 11: 'span 11 / span 11',\n 12: 'span 12 / span 12',\n },\n },\n gridColumnEnd: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n gridColumnStart: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n gridRow: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n full: '1 / -1',\n 1: 'span 1 / span 1',\n 2: 'span 2 / span 2',\n 3: 'span 3 / span 3',\n 4: 'span 4 / span 4',\n 5: 'span 5 / span 5',\n 6: 'span 6 / span 6',\n 7: 'span 7 / span 7',\n 8: 'span 8 / span 8',\n 9: 'span 9 / span 9',\n 10: 'span 10 / span 10',\n 11: 'span 11 / span 11',\n 12: 'span 12 / span 12',\n },\n },\n gridRowEnd: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n gridRowStart: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n height: {\n type: 'mapped-only',\n mapping: {\n fill: '100%',\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n stretch: 'stretch',\n },\n },\n insetTop: {\n type: 'rename-only',\n name: 'top',\n },\n insetRight: {\n type: 'rename-only',\n name: 'right',\n },\n insetBottom: {\n type: 'rename-only',\n name: 'bottom',\n },\n insetLeft: {\n type: 'rename-only',\n name: 'left',\n },\n minHeight: {\n type: 'mapped-only',\n mapping: {\n full: '100%',\n 0: '0',\n },\n },\n maxWidth: {\n type: 'mapped-only',\n mapping: {\n auto: 'none',\n fill: '100%',\n 0: '20rem',\n 1: '40rem',\n 2: '60rem',\n 3: '80rem',\n 4: '100rem',\n 5: '120rem',\n },\n },\n minWidth: {\n type: 'mapped-only',\n mapping: {\n full: '100%',\n 0: '0',\n auto: 'auto',\n min: 'min-content',\n max: 'max-content',\n fit: 'fit-content',\n },\n },\n muted: {\n type: 'rename-mapped',\n name: 'tone',\n mapping: {\n true: 'neutral',\n },\n },\n outline: {\n type: 'style-only',\n style: 'outline',\n },\n pointerEvents: {\n type: 'style-only',\n style: 'pointerEvents',\n },\n row: {\n type: 'rename-mapped',\n name: 'gridRow',\n mapping: {\n auto: 'auto',\n full: '1 / -1',\n 1: 'span 1 / span 1',\n 2: 'span 2 / span 2',\n 3: 'span 3 / span 3',\n 4: 'span 4 / span 4',\n 5: 'span 5 / span 5',\n 6: 'span 6 / span 6',\n 7: 'span 7 / span 7',\n 8: 'span 8 / span 8',\n 9: 'span 9 / span 9',\n 10: 'span 10 / span 10',\n 11: 'span 11 / span 11',\n 12: 'span 12 / span 12',\n },\n },\n rowEnd: {\n type: 'rename-mapped',\n name: 'gridRowEnd',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n rowStart: {\n type: 'rename-mapped',\n name: 'gridRowStart',\n mapping: {\n auto: 'auto',\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 10: '10',\n 11: '11',\n 12: '12',\n },\n },\n shadow: {type: 'remove'},\n sizing: {\n type: 'style-mapped',\n style: 'boxSizing',\n mapping: {\n content: 'content-box',\n border: 'border-box',\n },\n },\n space: {\n type: 'rename-only',\n name: 'gap',\n },\n textAlign: {\n type: 'style-only',\n style: 'textAlign',\n },\n width: {\n type: 'mapped-only',\n mapping: {\n auto: 'auto',\n fill: '100%',\n stretch: 'stretch',\n min: 'min-content',\n max: 'max-content',\n 0: '20rem',\n 1: '40rem',\n 2: '60rem',\n 3: '80rem',\n 4: '100rem',\n 5: '120rem',\n },\n },\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { insertTodoWarning } from "./transformStyledComponents.js";
|
|
2
|
+
function addImportSpecifier(j, root, addTo, name) {
|
|
3
|
+
let hasChanges = !1;
|
|
4
|
+
return root.find(j.ImportDeclaration).forEach((path) => {
|
|
5
|
+
const specs = path.node.specifiers;
|
|
6
|
+
if (!specs?.length)
|
|
7
|
+
return;
|
|
8
|
+
const hasFromSpecifier = specs.some(
|
|
9
|
+
(s) => s.type === "ImportSpecifier" && s.imported.type === "Identifier" && s.imported.name === addTo
|
|
10
|
+
), hasToSpecifier = specs.some(
|
|
11
|
+
(s) => s.type === "ImportSpecifier" && s.imported.type === "Identifier" && s.imported.name === name
|
|
12
|
+
);
|
|
13
|
+
hasFromSpecifier && !hasToSpecifier && (specs.push(j.importSpecifier(j.identifier(name), j.identifier(name))), hasChanges = !0);
|
|
14
|
+
}), hasChanges;
|
|
15
|
+
}
|
|
16
|
+
function getElementMatchNames(element, localNames) {
|
|
17
|
+
return localNames === void 0 ? /* @__PURE__ */ new Set([element]) : new Set(localNames);
|
|
18
|
+
}
|
|
19
|
+
function isImportBindingUsed(j, root, name, specifierPath) {
|
|
20
|
+
if (root.find(j.JSXOpeningElement).some(({ node }) => node.name.type === "JSXIdentifier" && node.name.name === name) || root.find(j.JSXClosingElement).some(({ node }) => node.name.type === "JSXIdentifier" && node.name.name === name))
|
|
21
|
+
return !0;
|
|
22
|
+
const importedPath = specifierPath.get("imported"), localPath = specifierPath.get("local");
|
|
23
|
+
return root.find(j.Identifier).some((idPath) => {
|
|
24
|
+
if (idPath.node.name !== name || idPath === importedPath || idPath === localPath)
|
|
25
|
+
return !1;
|
|
26
|
+
const parent = idPath.parent?.node;
|
|
27
|
+
return parent ? !(parent.type === "MemberExpression" && !parent.computed && parent.property === idPath.node || parent.type === "TSQualifiedName" && parent.right === idPath.node) : !0;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function removeUnusedImport(j, root, name) {
|
|
31
|
+
let hasChanges = !1;
|
|
32
|
+
return root.find(j.ImportDeclaration).forEach((path) => {
|
|
33
|
+
const specs = path.node.specifiers;
|
|
34
|
+
if (!specs?.length)
|
|
35
|
+
return;
|
|
36
|
+
const next = specs.filter((spec, i) => {
|
|
37
|
+
if (spec.type !== "ImportSpecifier" || spec.imported.type !== "Identifier" || spec.imported.name !== name || "importKind" in spec && spec.importKind === "type")
|
|
38
|
+
return !0;
|
|
39
|
+
const localName = spec.local?.type === "Identifier" ? spec.local.name : spec.imported.name, specifierPath = path.get("specifiers", i);
|
|
40
|
+
return isImportBindingUsed(j, root, localName, specifierPath);
|
|
41
|
+
});
|
|
42
|
+
if (next.length !== specs.length) {
|
|
43
|
+
if (next.length === 0) {
|
|
44
|
+
j(path).remove(), hasChanges = !0;
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
path.node.specifiers = next, hasChanges = !0;
|
|
48
|
+
}
|
|
49
|
+
}), hasChanges;
|
|
50
|
+
}
|
|
51
|
+
function transformImportAlias(j, root, fromExport, toExport, localName, warning) {
|
|
52
|
+
let updated = !1;
|
|
53
|
+
return root.find(j.ImportDeclaration).forEach((path) => {
|
|
54
|
+
const specs = path.node.specifiers;
|
|
55
|
+
if (specs?.length) {
|
|
56
|
+
for (const spec of specs)
|
|
57
|
+
if (!(spec.type !== "ImportSpecifier" || spec.imported.type !== "Identifier" || spec.imported.name !== fromExport || (spec.local?.type === "Identifier" ? spec.local.name : spec.imported.name) !== localName)) {
|
|
58
|
+
spec.imported.name = toExport, updated = !0, warning && insertTodoWarning(j, path, warning);
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}), updated;
|
|
63
|
+
}
|
|
64
|
+
function replaceElement(j, root, filter, from, to) {
|
|
65
|
+
const names = getElementMatchNames(from.element, from.localNames);
|
|
66
|
+
let hasChanges = !1, needsDefaultImportUpdate = !1;
|
|
67
|
+
const aliases = /* @__PURE__ */ new Set();
|
|
68
|
+
return root.find(j.JSXOpeningElement).forEach((path) => {
|
|
69
|
+
const openingEl = path.node, openingName = openingEl.name;
|
|
70
|
+
if (openingName.type !== "JSXIdentifier" || !names.has(openingName.name))
|
|
71
|
+
return;
|
|
72
|
+
const attrs = openingEl.attributes;
|
|
73
|
+
if (!attrs || !filter(attrs)) {
|
|
74
|
+
from.callback?.(path) && (hasChanges = !0);
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
const localTag = openingName.name;
|
|
78
|
+
if (localTag !== from.element && localTag !== to.element)
|
|
79
|
+
aliases.has(localTag) || (transformImportAlias(
|
|
80
|
+
j,
|
|
81
|
+
root,
|
|
82
|
+
from.element,
|
|
83
|
+
to.element,
|
|
84
|
+
localTag,
|
|
85
|
+
`Consider renaming ${localTag} to ${to.element}`
|
|
86
|
+
) && (hasChanges = !0), aliases.add(localTag));
|
|
87
|
+
else {
|
|
88
|
+
openingName.name = to.element;
|
|
89
|
+
const parentNode = path.parent?.node;
|
|
90
|
+
if (parentNode?.type === "JSXElement") {
|
|
91
|
+
const closing = parentNode.closingElement;
|
|
92
|
+
closing?.name.type === "JSXIdentifier" && (closing.name.name = to.element);
|
|
93
|
+
}
|
|
94
|
+
needsDefaultImportUpdate = !0, hasChanges = !0;
|
|
95
|
+
}
|
|
96
|
+
to.callback?.(path) && (hasChanges = !0);
|
|
97
|
+
}), needsDefaultImportUpdate && (addImportSpecifier(j, root, from.element, to.element) && (hasChanges = !0), removeUnusedImport(j, root, from.element) && (hasChanges = !0)), hasChanges;
|
|
98
|
+
}
|
|
99
|
+
export {
|
|
100
|
+
replaceElement
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=replaceElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replaceElement.js","sources":["../../src/utils/addImportSpecifier.ts","../../src/utils/getElementMatchNames.ts","../../src/utils/isImportBindingUsed.ts","../../src/utils/removeUnusedImport.ts","../../src/utils/transformImportAlias.ts","../../src/utils/replaceElement.ts"],"sourcesContent":["import type {API} from 'jscodeshift'\n\n/**\n * Adds an import specifier to an existing import declaration.\n * Returns whether the AST was updated.\n */\nexport function addImportSpecifier(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n addTo: string,\n name: string,\n): boolean {\n let hasChanges = false\n\n root.find(j.ImportDeclaration).forEach((path) => {\n const specs = path.node.specifiers\n\n if (!specs?.length) {\n return\n }\n\n const hasFromSpecifier = specs.some(\n (s) =>\n s.type === 'ImportSpecifier' &&\n s.imported.type === 'Identifier' &&\n s.imported.name === addTo,\n )\n const hasToSpecifier = specs.some(\n (s) =>\n s.type === 'ImportSpecifier' &&\n s.imported.type === 'Identifier' &&\n s.imported.name === name,\n )\n\n if (hasFromSpecifier && !hasToSpecifier) {\n specs.push(j.importSpecifier(j.identifier(name), j.identifier(name)))\n hasChanges = true\n }\n })\n\n return hasChanges\n}\n","export function getElementMatchNames(element: string, localNames?: Iterable<string>): Set<string> {\n if (localNames === undefined) {\n return new Set([element])\n }\n\n return new Set(localNames)\n}\n","import type {API, ASTPath, ImportSpecifier} from 'jscodeshift'\n\nexport function isImportBindingUsed(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n name: string,\n specifierPath: ASTPath<ImportSpecifier>,\n): boolean {\n const jsxOpening = root.find(j.JSXOpeningElement).some(({node}) => {\n return node.name.type === 'JSXIdentifier' && node.name.name === name\n })\n\n if (jsxOpening) {\n return true\n }\n\n const jsxClosing = root.find(j.JSXClosingElement).some(({node}) => {\n return node.name.type === 'JSXIdentifier' && node.name.name === name\n })\n\n if (jsxClosing) {\n return true\n }\n\n const importedPath = specifierPath.get('imported')\n const localPath = specifierPath.get('local')\n\n return root.find(j.Identifier).some((idPath) => {\n if (idPath.node.name !== name) {\n return false\n }\n\n if (idPath === importedPath || idPath === localPath) {\n return false\n }\n\n const parent = idPath.parent?.node\n\n if (!parent) {\n return true\n }\n\n if (parent.type === 'MemberExpression' && !parent.computed && parent.property === idPath.node) {\n return false\n }\n\n if (parent.type === 'TSQualifiedName' && parent.right === idPath.node) {\n return false\n }\n\n return true\n })\n}\n","import type {API, ASTPath, ImportSpecifier} from 'jscodeshift'\n\nimport {isImportBindingUsed} from './isImportBindingUsed'\n\n/**\n * Removes unused import specifier or the whole import if no specifiers remain.\n * Returns whether the AST was updated.\n */\nexport function removeUnusedImport(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n name: string,\n): boolean {\n let hasChanges = false\n\n root.find(j.ImportDeclaration).forEach((path) => {\n const specs = path.node.specifiers\n\n if (!specs?.length) {\n return\n }\n\n const next = specs.filter((spec, i) => {\n if (spec.type !== 'ImportSpecifier' || spec.imported.type !== 'Identifier') {\n return true\n }\n\n if (spec.imported.name !== name) {\n return true\n }\n\n if ('importKind' in spec && spec.importKind === 'type') {\n return true\n }\n\n const localName = spec.local?.type === 'Identifier' ? spec.local.name : spec.imported.name\n const specifierPath = path.get('specifiers', i) as ASTPath<ImportSpecifier>\n\n return isImportBindingUsed(j, root, localName, specifierPath)\n })\n\n if (next.length === specs.length) {\n return\n }\n\n if (next.length === 0) {\n j(path).remove()\n hasChanges = true\n return\n }\n\n path.node.specifiers = next\n hasChanges = true\n })\n\n return hasChanges\n}\n","import type {API} from 'jscodeshift'\n\nimport {insertTodoWarning} from './insertTodoWarning'\n\nexport function transformImportAlias(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n fromExport: string,\n toExport: string,\n localName: string,\n warning?: string,\n): boolean {\n let updated = false\n\n root.find(j.ImportDeclaration).forEach((path) => {\n const specs = path.node.specifiers\n\n if (!specs?.length) {\n return\n }\n\n for (const spec of specs) {\n if (spec.type !== 'ImportSpecifier' || spec.imported.type !== 'Identifier') {\n continue\n }\n\n if (spec.imported.name !== fromExport) {\n continue\n }\n\n const local = spec.local?.type === 'Identifier' ? spec.local.name : spec.imported.name\n\n if (local !== localName) {\n continue\n }\n\n spec.imported.name = toExport\n updated = true\n\n if (warning) {\n insertTodoWarning(j, path, warning)\n }\n\n return\n }\n })\n\n return updated\n}\n","import type {API, ASTPath, JSXAttribute, JSXOpeningElement, JSXSpreadAttribute} from 'jscodeshift'\n\nimport {addImportSpecifier} from './addImportSpecifier'\nimport {getElementMatchNames} from './getElementMatchNames'\nimport {removeUnusedImport} from './removeUnusedImport'\nimport {transformImportAlias} from './transformImportAlias'\n\n/**\n * Replaces JSX component if `filter` passes. Runs callbacks and updates imports.\n * If `localNames` is omitted, matches `from.element`. `localNames` may be an empty set,\n * to avoid rewriting unrelated JSX when only cross-file styled aliases are present.\n * Returns whether the AST was updated.\n */\nexport function replaceElement(\n j: API['jscodeshift'],\n root: ReturnType<API['jscodeshift']>,\n filter: (attrs: (JSXAttribute | JSXSpreadAttribute)[]) => boolean,\n from: {\n element: string\n localNames?: Iterable<string>\n callback?: (path: ASTPath<JSXOpeningElement>) => boolean | void\n },\n to: {\n element: string\n callback?: (path: ASTPath<JSXOpeningElement>) => boolean | void\n },\n): boolean {\n const names = getElementMatchNames(from.element, from.localNames)\n\n let hasChanges = false\n let needsDefaultImportUpdate = false\n const aliases = new Set<string>()\n\n root.find(j.JSXOpeningElement).forEach((path) => {\n const openingEl = path.node\n const openingName = openingEl.name\n\n if (openingName.type !== 'JSXIdentifier' || !names.has(openingName.name)) {\n return\n }\n\n const attrs = openingEl.attributes\n\n if (!attrs || !filter(attrs)) {\n if (from.callback?.(path)) {\n hasChanges = true\n }\n\n return\n }\n\n const localTag = openingName.name\n const preserveAlias = localTag !== from.element && localTag !== to.element\n\n if (preserveAlias) {\n if (!aliases.has(localTag)) {\n if (\n transformImportAlias(\n j,\n root,\n from.element,\n to.element,\n localTag,\n `Consider renaming ${localTag} to ${to.element}`,\n )\n ) {\n hasChanges = true\n }\n\n aliases.add(localTag)\n }\n } else {\n openingName.name = to.element\n\n const parentNode = path.parent?.node\n\n if (parentNode?.type === 'JSXElement') {\n const closing = parentNode.closingElement\n\n if (closing?.name.type === 'JSXIdentifier') {\n closing.name.name = to.element\n }\n }\n\n needsDefaultImportUpdate = true\n hasChanges = true\n }\n\n if (to.callback?.(path)) {\n hasChanges = true\n }\n })\n\n if (needsDefaultImportUpdate) {\n if (addImportSpecifier(j, root, from.element, to.element)) {\n hasChanges = true\n }\n\n if (removeUnusedImport(j, root, from.element)) {\n hasChanges = true\n }\n }\n\n return hasChanges\n}\n"],"names":[],"mappings":"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"}
|