@sanity/ui-codemod 1.0.0-alpha.1

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 (157) hide show
  1. package/bin/run.js +5 -0
  2. package/dist/_chunks-es/addAttribute.js +11 -0
  3. package/dist/_chunks-es/addAttribute.js.map +1 -0
  4. package/dist/_chunks-es/box.mods.js +186 -0
  5. package/dist/_chunks-es/box.mods.js.map +1 -0
  6. package/dist/_chunks-es/flex.mods.js +74 -0
  7. package/dist/_chunks-es/flex.mods.js.map +1 -0
  8. package/dist/_chunks-es/getTransformPath.js +75 -0
  9. package/dist/_chunks-es/getTransformPath.js.map +1 -0
  10. package/dist/_chunks-es/grid.mods.js +110 -0
  11. package/dist/_chunks-es/grid.mods.js.map +1 -0
  12. package/dist/_chunks-es/layout-mods.js +424 -0
  13. package/dist/_chunks-es/layout-mods.js.map +1 -0
  14. package/dist/_chunks-es/transformComponent.js +359 -0
  15. package/dist/_chunks-es/transformComponent.js.map +1 -0
  16. package/dist/commands/latest/box.d.ts +47 -0
  17. package/dist/commands/latest/box.js +17 -0
  18. package/dist/commands/latest/box.js.map +1 -0
  19. package/dist/commands/latest/card.d.ts +47 -0
  20. package/dist/commands/latest/card.js +17 -0
  21. package/dist/commands/latest/card.js.map +1 -0
  22. package/dist/commands/latest/code.d.ts +47 -0
  23. package/dist/commands/latest/code.js +17 -0
  24. package/dist/commands/latest/code.js.map +1 -0
  25. package/dist/commands/latest/container.d.ts +47 -0
  26. package/dist/commands/latest/container.js +17 -0
  27. package/dist/commands/latest/container.js.map +1 -0
  28. package/dist/commands/latest/flex.d.ts +47 -0
  29. package/dist/commands/latest/flex.js +17 -0
  30. package/dist/commands/latest/flex.js.map +1 -0
  31. package/dist/commands/latest/grid.d.ts +47 -0
  32. package/dist/commands/latest/grid.js +17 -0
  33. package/dist/commands/latest/grid.js.map +1 -0
  34. package/dist/commands/latest/heading.d.ts +47 -0
  35. package/dist/commands/latest/heading.js +17 -0
  36. package/dist/commands/latest/heading.js.map +1 -0
  37. package/dist/commands/latest/text.d.ts +47 -0
  38. package/dist/commands/latest/text.js +17 -0
  39. package/dist/commands/latest/text.js.map +1 -0
  40. package/dist/transforms/latest/box/box.d.ts +18 -0
  41. package/dist/transforms/latest/box/box.js +101 -0
  42. package/dist/transforms/latest/box/box.js.map +1 -0
  43. package/dist/transforms/latest/card/card.d.ts +18 -0
  44. package/dist/transforms/latest/card/card.js +618 -0
  45. package/dist/transforms/latest/card/card.js.map +1 -0
  46. package/dist/transforms/latest/code/code.d.ts +18 -0
  47. package/dist/transforms/latest/code/code.js +73 -0
  48. package/dist/transforms/latest/code/code.js.map +1 -0
  49. package/dist/transforms/latest/container/container.d.ts +18 -0
  50. package/dist/transforms/latest/container/container.js +91 -0
  51. package/dist/transforms/latest/container/container.js.map +1 -0
  52. package/dist/transforms/latest/flex/flex.d.ts +18 -0
  53. package/dist/transforms/latest/flex/flex.js +19 -0
  54. package/dist/transforms/latest/flex/flex.js.map +1 -0
  55. package/dist/transforms/latest/grid/grid.d.ts +18 -0
  56. package/dist/transforms/latest/grid/grid.js +19 -0
  57. package/dist/transforms/latest/grid/grid.js.map +1 -0
  58. package/dist/transforms/latest/heading/heading.d.ts +18 -0
  59. package/dist/transforms/latest/heading/heading.js +85 -0
  60. package/dist/transforms/latest/heading/heading.js.map +1 -0
  61. package/dist/transforms/latest/text/text.d.ts +18 -0
  62. package/dist/transforms/latest/text/text.js +88 -0
  63. package/dist/transforms/latest/text/text.js.map +1 -0
  64. package/package.json +68 -0
  65. package/src/baseCommand.ts +74 -0
  66. package/src/commands/latest/box.ts +21 -0
  67. package/src/commands/latest/card.ts +21 -0
  68. package/src/commands/latest/code.ts +21 -0
  69. package/src/commands/latest/container.ts +21 -0
  70. package/src/commands/latest/flex.ts +21 -0
  71. package/src/commands/latest/grid.ts +21 -0
  72. package/src/commands/latest/heading.ts +21 -0
  73. package/src/commands/latest/inline.ts +21 -0
  74. package/src/commands/latest/label.ts +21 -0
  75. package/src/commands/latest/stack.ts +21 -0
  76. package/src/commands/latest/text.ts +21 -0
  77. package/src/constants/latest/layout-mods.ts +422 -0
  78. package/src/transforms/latest/box/box.mods.ts +88 -0
  79. package/src/transforms/latest/box/box.test.ts +204 -0
  80. package/src/transforms/latest/box/box.ts +104 -0
  81. package/src/transforms/latest/card/card.mods.ts +592 -0
  82. package/src/transforms/latest/card/card.test.ts +207 -0
  83. package/src/transforms/latest/card/card.ts +71 -0
  84. package/src/transforms/latest/code/code.mods.ts +57 -0
  85. package/src/transforms/latest/code/code.test.ts +61 -0
  86. package/src/transforms/latest/code/code.ts +53 -0
  87. package/src/transforms/latest/container/container.mods.ts +77 -0
  88. package/src/transforms/latest/container/container.test.ts +105 -0
  89. package/src/transforms/latest/container/container.ts +42 -0
  90. package/src/transforms/latest/flex/flex.mods.ts +73 -0
  91. package/src/transforms/latest/flex/flex.test.ts +80 -0
  92. package/src/transforms/latest/flex/flex.ts +42 -0
  93. package/src/transforms/latest/grid/grid.mods.ts +109 -0
  94. package/src/transforms/latest/grid/grid.test.ts +97 -0
  95. package/src/transforms/latest/grid/grid.ts +42 -0
  96. package/src/transforms/latest/heading/heading.mods.ts +70 -0
  97. package/src/transforms/latest/heading/heading.test.ts +87 -0
  98. package/src/transforms/latest/heading/heading.ts +53 -0
  99. package/src/transforms/latest/inline/inline.mods.ts +65 -0
  100. package/src/transforms/latest/inline/inline.test.ts +57 -0
  101. package/src/transforms/latest/inline/inline.ts +42 -0
  102. package/src/transforms/latest/label/label.mods.ts +72 -0
  103. package/src/transforms/latest/label/label.test.ts +113 -0
  104. package/src/transforms/latest/label/label.ts +67 -0
  105. package/src/transforms/latest/stack/stack.mods.ts +12 -0
  106. package/src/transforms/latest/stack/stack.test.ts +160 -0
  107. package/src/transforms/latest/stack/stack.ts +102 -0
  108. package/src/transforms/latest/text/text.mods.ts +72 -0
  109. package/src/transforms/latest/text/text.test.ts +113 -0
  110. package/src/transforms/latest/text/text.ts +57 -0
  111. package/src/types/AnyExpression.ts +9 -0
  112. package/src/types/AttributeMods.ts +16 -0
  113. package/src/types/BaseOptions.ts +6 -0
  114. package/src/utils/addAttribute.test.ts +43 -0
  115. package/src/utils/addAttribute.ts +26 -0
  116. package/src/utils/addImportSpecifier.test.ts +36 -0
  117. package/src/utils/addImportSpecifier.ts +42 -0
  118. package/src/utils/getAttribute.ts +22 -0
  119. package/src/utils/getAttributeExpression.ts +22 -0
  120. package/src/utils/getAttributeValue.ts +20 -0
  121. package/src/utils/getClonedImportSpecifiers.ts +29 -0
  122. package/src/utils/getComponentJsxNames.ts +17 -0
  123. package/src/utils/getComponentLocalNames.ts +69 -0
  124. package/src/utils/getCompositeAttrValue.ts +39 -0
  125. package/src/utils/getMappingArray.ts +36 -0
  126. package/src/utils/getMappingExpression.ts +22 -0
  127. package/src/utils/getMappingValue.ts +52 -0
  128. package/src/utils/getShorthandAttributes.ts +54 -0
  129. package/src/utils/getSplitImportSpecifiers.ts +40 -0
  130. package/src/utils/getStaticAttributeExpression.ts +35 -0
  131. package/src/utils/getStyleExpression.ts +37 -0
  132. package/src/utils/getStyledComponentAliases.ts +28 -0
  133. package/src/utils/getStyledComponentName.ts +52 -0
  134. package/src/utils/getTransformPath.ts +17 -0
  135. package/src/utils/insertTodoWarning.ts +48 -0
  136. package/src/utils/isImportBindingUsed.ts +53 -0
  137. package/src/utils/isValidStyleType.ts +21 -0
  138. package/src/utils/mergeStyle.ts +64 -0
  139. package/src/utils/removeUnusedImport.test.ts +77 -0
  140. package/src/utils/removeUnusedImport.ts +57 -0
  141. package/src/utils/replaceElement.test.ts +181 -0
  142. package/src/utils/replaceElement.ts +106 -0
  143. package/src/utils/replaceStyledComponent.test.ts +57 -0
  144. package/src/utils/replaceStyledComponent.ts +60 -0
  145. package/src/utils/shouldTransformComponent.test.ts +61 -0
  146. package/src/utils/shouldTransformComponent.ts +40 -0
  147. package/src/utils/testUtils.ts +54 -0
  148. package/src/utils/transformAttributes.test.ts +544 -0
  149. package/src/utils/transformAttributes.ts +248 -0
  150. package/src/utils/transformComponent.test.ts +45 -0
  151. package/src/utils/transformComponent.ts +31 -0
  152. package/src/utils/transformImport.test.ts +175 -0
  153. package/src/utils/transformImport.ts +55 -0
  154. package/src/utils/transformImportAlias.test.ts +40 -0
  155. package/src/utils/transformImportAlias.ts +49 -0
  156. package/src/utils/transformStyledComponents.test.ts +172 -0
  157. package/src/utils/transformStyledComponents.ts +58 -0
@@ -0,0 +1,73 @@
1
+ import "jscodeshift";
2
+ import { addAttribute } from "../../../_chunks-es/addAttribute.js";
3
+ import { transformComponent, getComponentLocalNames, shouldTransformComponent, transformImport, transformAttributes } from "../../../_chunks-es/transformComponent.js";
4
+ const CODE_MODS = {
5
+ flex: {
6
+ type: "style-mapped",
7
+ style: "flex",
8
+ mapping: {
9
+ none: "0 0 auto",
10
+ auto: "1 1 auto",
11
+ initial: "0 1 auto",
12
+ 1: "1",
13
+ 2: "2",
14
+ 3: "3",
15
+ 4: "4",
16
+ 5: "5",
17
+ 6: "6",
18
+ 7: "7",
19
+ 8: "8",
20
+ 9: "9",
21
+ 10: "10",
22
+ 11: "11",
23
+ 12: "12"
24
+ }
25
+ },
26
+ maxWidth: {
27
+ type: "style-mapped",
28
+ style: "maxWidth",
29
+ mapping: {
30
+ auto: "none",
31
+ fill: "100%",
32
+ 0: "20rem",
33
+ 1: "40rem",
34
+ 2: "60rem",
35
+ 3: "80rem",
36
+ 4: "100rem",
37
+ 5: "120rem"
38
+ }
39
+ },
40
+ width: {
41
+ type: "style-mapped",
42
+ style: "width",
43
+ mapping: {
44
+ auto: "auto",
45
+ fill: "100%",
46
+ stretch: "stretch",
47
+ min: "min-content",
48
+ max: "max-content",
49
+ 0: "20rem",
50
+ 1: "40rem",
51
+ 2: "60rem",
52
+ 3: "80rem",
53
+ 4: "100rem",
54
+ 5: "120rem"
55
+ }
56
+ }
57
+ }, TODO_WARNING = "Please double check the Code migration below";
58
+ function transform(fileInfo, api, options) {
59
+ const { fromPackage, toPackage } = options || {};
60
+ return transformComponent(fileInfo, api, ({ j, root, markChanged }) => {
61
+ const localNames = getComponentLocalNames(j, root, "Code", options);
62
+ shouldTransformComponent(j, root, "Code", localNames, options) && (transformImport(j, root, "Code", fromPackage, toPackage) && markChanged(), root.find(j.JSXOpeningElement, {
63
+ name: { type: "JSXIdentifier", name: "Code" }
64
+ }).forEach((path) => {
65
+ let changed = !1;
66
+ transformAttributes(j, path, CODE_MODS, TODO_WARNING) && (changed = !0), addAttribute(j, path.node, "trim", !0) && (changed = !0), changed && markChanged();
67
+ }));
68
+ });
69
+ }
70
+ export {
71
+ transform as default
72
+ };
73
+ //# sourceMappingURL=code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code.js","sources":["../../../../src/transforms/latest/code/code.mods.ts","../../../../src/transforms/latest/code/code.ts"],"sourcesContent":["import type {AttributeMods} from '../../../types/AttributeMods'\n\n/** @internal */\nexport const CODE_MODS: AttributeMods = {\n flex: {\n type: 'style-mapped',\n style: 'flex',\n mapping: {\n none: '0 0 auto',\n auto: '1 1 auto',\n initial: '0 1 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 maxWidth: {\n type: 'style-mapped',\n style: 'maxWidth',\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 width: {\n type: 'style-mapped',\n style: 'width',\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","import {type API, type FileInfo} from 'jscodeshift'\n\nimport type {BaseOptions} from '../../../types/BaseOptions'\nimport {addAttribute} from '../../../utils/addAttribute'\nimport {getComponentLocalNames} from '../../../utils/getComponentLocalNames'\nimport {shouldTransformComponent} from '../../../utils/shouldTransformComponent'\nimport {transformAttributes} from '../../../utils/transformAttributes'\nimport {transformComponent} from '../../../utils/transformComponent'\nimport {transformImport} from '../../../utils/transformImport'\nimport {CODE_MODS} from './code.mods'\n\nconst TODO_WARNING = 'Please double check the Code migration below'\n\n/** @internal */\nexport default function transform(\n fileInfo: FileInfo,\n api: API,\n options: BaseOptions,\n): string | undefined {\n const {fromPackage, toPackage} = options || {}\n\n return transformComponent(fileInfo, api, ({j, root, markChanged}) => {\n const localNames = getComponentLocalNames(j, root, 'Code', options)\n\n if (!shouldTransformComponent(j, root, 'Code', localNames, options)) {\n return\n }\n\n if (transformImport(j, root, 'Code', fromPackage, toPackage)) {\n markChanged()\n }\n\n root\n .find(j.JSXOpeningElement, {\n name: {type: 'JSXIdentifier', name: 'Code'},\n })\n .forEach((path) => {\n let changed = false\n\n if (transformAttributes(j, path, CODE_MODS, TODO_WARNING)) {\n changed = true\n }\n\n if (addAttribute(j, path.node, 'trim', true)) {\n changed = true\n }\n\n if (changed) {\n markChanged()\n }\n })\n })\n}\n"],"names":[],"mappings":";;;AAGO,MAAM,YAA2B;AAAA,EACtC,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,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,UAAU;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EACL;AAAA,EAEF,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EACL;AAEJ,GC7CM,eAAe;AAGrB,SAAwB,UACtB,UACA,KACA,SACoB;AACpB,QAAM,EAAC,aAAa,UAAA,IAAa,WAAW,CAAA;AAE5C,SAAO,mBAAmB,UAAU,KAAK,CAAC,EAAC,GAAG,MAAM,kBAAiB;AACnE,UAAM,aAAa,uBAAuB,GAAG,MAAM,QAAQ,OAAO;AAE7D,6BAAyB,GAAG,MAAM,QAAQ,YAAY,OAAO,MAI9D,gBAAgB,GAAG,MAAM,QAAQ,aAAa,SAAS,KACzD,YAAA,GAGF,KACG,KAAK,EAAE,mBAAmB;AAAA,MACzB,MAAM,EAAC,MAAM,iBAAiB,MAAM,OAAA;AAAA,IAAM,CAC3C,EACA,QAAQ,CAAC,SAAS;AACjB,UAAI,UAAU;AAEV,0BAAoB,GAAG,MAAM,WAAW,YAAY,MACtD,UAAU,KAGR,aAAa,GAAG,KAAK,MAAM,QAAQ,EAAI,MACzC,UAAU,KAGR,WACF,YAAA;AAAA,IAEJ,CAAC;AAAA,EACL,CAAC;AACH;"}
@@ -0,0 +1,18 @@
1
+ import { API } from "jscodeshift";
2
+ import { FileInfo } from "jscodeshift";
3
+ import type { Options } from "jscodeshift";
4
+
5
+ declare interface BaseOptions extends Options {
6
+ fromPackage?: string;
7
+ toPackage?: string;
8
+ }
9
+
10
+ /** @internal */
11
+ declare function transform(
12
+ fileInfo: FileInfo,
13
+ api: API,
14
+ options?: BaseOptions,
15
+ ): string | undefined;
16
+ export default transform;
17
+
18
+ export {};
@@ -0,0 +1,91 @@
1
+ import "jscodeshift";
2
+ import { transformComponent, getComponentLocalNames, shouldTransformComponent, transformImport, transformAttributes } from "../../../_chunks-es/transformComponent.js";
3
+ import { LAYOUT_MODS } from "../../../_chunks-es/layout-mods.js";
4
+ const CONTAINER_MODS = {
5
+ ...LAYOUT_MODS,
6
+ alignItems: {
7
+ type: "style-only",
8
+ style: "alignItems"
9
+ },
10
+ flexDirection: {
11
+ type: "style-only",
12
+ style: "flexDirection"
13
+ },
14
+ flexWrap: {
15
+ type: "style-only",
16
+ style: "flexWrap"
17
+ },
18
+ gridAutoColumns: {
19
+ type: "style-only",
20
+ style: "gridAutoColumns"
21
+ },
22
+ gridAutoFlow: {
23
+ type: "style-only",
24
+ style: "gridAutoFlow"
25
+ },
26
+ gridAutoRows: {
27
+ type: "style-only",
28
+ style: "gridAutoRows"
29
+ },
30
+ gridTemplateColumns: {
31
+ type: "style-mapped",
32
+ style: "gridTemplateColumns",
33
+ mapping: {
34
+ 0: "0px",
35
+ 1: "repeat(1, 1fr)",
36
+ 2: "repeat(2, 1fr)",
37
+ 3: "repeat(3, 1fr)",
38
+ 4: "repeat(4, 1fr)",
39
+ 5: "repeat(5, 1fr)",
40
+ 6: "repeat(6, 1fr)",
41
+ 7: "repeat(7, 1fr)",
42
+ 8: "repeat(8, 1fr)",
43
+ 9: "repeat(9, 1fr)",
44
+ 10: "repeat(10, 1fr)",
45
+ 11: "repeat(11, 1fr)",
46
+ 12: "repeat(12, 1fr)"
47
+ }
48
+ },
49
+ gridTemplateRows: {
50
+ type: "style-mapped",
51
+ style: "gridTemplateRows",
52
+ mapping: {
53
+ 0: "0px",
54
+ 1: "repeat(1, 1fr)",
55
+ 2: "repeat(2, 1fr)",
56
+ 3: "repeat(3, 1fr)",
57
+ 4: "repeat(4, 1fr)",
58
+ 5: "repeat(5, 1fr)",
59
+ 6: "repeat(6, 1fr)",
60
+ 7: "repeat(7, 1fr)",
61
+ 8: "repeat(8, 1fr)",
62
+ 9: "repeat(9, 1fr)",
63
+ 10: "repeat(10, 1fr)",
64
+ 11: "repeat(11, 1fr)",
65
+ 12: "repeat(12, 1fr)"
66
+ }
67
+ },
68
+ justifyContent: {
69
+ type: "style-only",
70
+ style: "justifyContent"
71
+ },
72
+ width: {
73
+ type: "rename-only",
74
+ name: "size"
75
+ }
76
+ }, TODO_WARNING = "Please double check the Container migration below";
77
+ function transform(fileInfo, api, options) {
78
+ const { fromPackage, toPackage } = options || {};
79
+ return transformComponent(fileInfo, api, ({ j, root, markChanged }) => {
80
+ const localNames = getComponentLocalNames(j, root, "Container", options);
81
+ shouldTransformComponent(j, root, "Container", localNames, options) && (transformImport(j, root, "Container", fromPackage, toPackage) && markChanged(), root.find(j.JSXOpeningElement, {
82
+ name: { type: "JSXIdentifier", name: "Container" }
83
+ }).forEach((path) => {
84
+ transformAttributes(j, path, CONTAINER_MODS, TODO_WARNING) && markChanged();
85
+ }));
86
+ });
87
+ }
88
+ export {
89
+ transform as default
90
+ };
91
+ //# sourceMappingURL=container.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.js","sources":["../../../../src/transforms/latest/container/container.mods.ts","../../../../src/transforms/latest/container/container.ts"],"sourcesContent":["import {LAYOUT_MODS} from '../../../constants/latest/layout-mods'\nimport type {AttributeMods} from '../../../types/AttributeMods'\n\n/** @internal */\nexport const CONTAINER_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 width: {\n type: 'rename-only',\n name: 'size',\n },\n}\n","import {type API, type FileInfo} from 'jscodeshift'\n\nimport type {BaseOptions} from '../../../types/BaseOptions'\nimport {getComponentLocalNames} from '../../../utils/getComponentLocalNames'\nimport {shouldTransformComponent} from '../../../utils/shouldTransformComponent'\nimport {transformAttributes} from '../../../utils/transformAttributes'\nimport {transformComponent} from '../../../utils/transformComponent'\nimport {transformImport} from '../../../utils/transformImport'\nimport {CONTAINER_MODS} from './container.mods'\n\nconst TODO_WARNING = 'Please double check the Container migration below'\n\n/** @internal */\nexport default function transform(\n fileInfo: FileInfo,\n api: API,\n options?: BaseOptions,\n): string | undefined {\n const {fromPackage, toPackage} = options || {}\n\n return transformComponent(fileInfo, api, ({j, root, markChanged}) => {\n const localNames = getComponentLocalNames(j, root, 'Container', options)\n\n if (!shouldTransformComponent(j, root, 'Container', localNames, options)) {\n return\n }\n\n if (transformImport(j, root, 'Container', fromPackage, toPackage)) {\n markChanged()\n }\n\n root\n .find(j.JSXOpeningElement, {\n name: {type: 'JSXIdentifier', name: 'Container'},\n })\n .forEach((path) => {\n if (transformAttributes(j, path, CONTAINER_MODS, TODO_WARNING)) {\n markChanged()\n }\n })\n })\n}\n"],"names":[],"mappings":";;;AAIO,MAAM,iBAAgC;AAAA,EAC3C,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,OAAO;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAEV,GClEM,eAAe;AAGrB,SAAwB,UACtB,UACA,KACA,SACoB;AACpB,QAAM,EAAC,aAAa,UAAA,IAAa,WAAW,CAAA;AAE5C,SAAO,mBAAmB,UAAU,KAAK,CAAC,EAAC,GAAG,MAAM,kBAAiB;AACnE,UAAM,aAAa,uBAAuB,GAAG,MAAM,aAAa,OAAO;AAElE,6BAAyB,GAAG,MAAM,aAAa,YAAY,OAAO,MAInE,gBAAgB,GAAG,MAAM,aAAa,aAAa,SAAS,KAC9D,YAAA,GAGF,KACG,KAAK,EAAE,mBAAmB;AAAA,MACzB,MAAM,EAAC,MAAM,iBAAiB,MAAM,YAAA;AAAA,IAAW,CAChD,EACA,QAAQ,CAAC,SAAS;AACb,0BAAoB,GAAG,MAAM,gBAAgB,YAAY,KAC3D,YAAA;AAAA,IAEJ,CAAC;AAAA,EACL,CAAC;AACH;"}
@@ -0,0 +1,18 @@
1
+ import { API } from "jscodeshift";
2
+ import { FileInfo } from "jscodeshift";
3
+ import type { Options } from "jscodeshift";
4
+
5
+ declare interface BaseOptions extends Options {
6
+ fromPackage?: string;
7
+ toPackage?: string;
8
+ }
9
+
10
+ /** @internal */
11
+ declare function transform(
12
+ fileInfo: FileInfo,
13
+ api: API,
14
+ options: BaseOptions,
15
+ ): string | undefined;
16
+ export default transform;
17
+
18
+ export {};
@@ -0,0 +1,19 @@
1
+ import "jscodeshift";
2
+ import { transformComponent, getComponentLocalNames, shouldTransformComponent, transformImport, transformAttributes } from "../../../_chunks-es/transformComponent.js";
3
+ import { FLEX_MODS } from "../../../_chunks-es/flex.mods.js";
4
+ const TODO_WARNING = "Please double check the Flex migration below";
5
+ function transform(fileInfo, api, options) {
6
+ const { fromPackage, toPackage } = options || {};
7
+ return transformComponent(fileInfo, api, ({ j, root, markChanged }) => {
8
+ const localNames = getComponentLocalNames(j, root, "Flex", options);
9
+ shouldTransformComponent(j, root, "Flex", localNames, options) && (transformImport(j, root, "Flex", fromPackage, toPackage) && markChanged(), root.find(j.JSXOpeningElement, {
10
+ name: { type: "JSXIdentifier", name: "Flex" }
11
+ }).forEach((path) => {
12
+ transformAttributes(j, path, FLEX_MODS, TODO_WARNING) && markChanged();
13
+ }));
14
+ });
15
+ }
16
+ export {
17
+ transform as default
18
+ };
19
+ //# sourceMappingURL=flex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flex.js","sources":["../../../../src/transforms/latest/flex/flex.ts"],"sourcesContent":["import {type API, type FileInfo} from 'jscodeshift'\n\nimport type {BaseOptions} from '../../../types/BaseOptions'\nimport {getComponentLocalNames} from '../../../utils/getComponentLocalNames'\nimport {shouldTransformComponent} from '../../../utils/shouldTransformComponent'\nimport {transformAttributes} from '../../../utils/transformAttributes'\nimport {transformComponent} from '../../../utils/transformComponent'\nimport {transformImport} from '../../../utils/transformImport'\nimport {FLEX_MODS} from './flex.mods'\n\nconst TODO_WARNING = 'Please double check the Flex migration below'\n\n/** @internal */\nexport default function transform(\n fileInfo: FileInfo,\n api: API,\n options: BaseOptions,\n): string | undefined {\n const {fromPackage, toPackage} = options || {}\n\n return transformComponent(fileInfo, api, ({j, root, markChanged}) => {\n const localNames = getComponentLocalNames(j, root, 'Flex', options)\n\n if (!shouldTransformComponent(j, root, 'Flex', localNames, options)) {\n return\n }\n\n if (transformImport(j, root, 'Flex', fromPackage, toPackage)) {\n markChanged()\n }\n\n root\n .find(j.JSXOpeningElement, {\n name: {type: 'JSXIdentifier', name: 'Flex'},\n })\n .forEach((path) => {\n if (transformAttributes(j, path, FLEX_MODS, TODO_WARNING)) {\n markChanged()\n }\n })\n })\n}\n"],"names":[],"mappings":";;;AAUA,MAAM,eAAe;AAGrB,SAAwB,UACtB,UACA,KACA,SACoB;AACpB,QAAM,EAAC,aAAa,UAAA,IAAa,WAAW,CAAA;AAE5C,SAAO,mBAAmB,UAAU,KAAK,CAAC,EAAC,GAAG,MAAM,kBAAiB;AACnE,UAAM,aAAa,uBAAuB,GAAG,MAAM,QAAQ,OAAO;AAE7D,6BAAyB,GAAG,MAAM,QAAQ,YAAY,OAAO,MAI9D,gBAAgB,GAAG,MAAM,QAAQ,aAAa,SAAS,KACzD,YAAA,GAGF,KACG,KAAK,EAAE,mBAAmB;AAAA,MACzB,MAAM,EAAC,MAAM,iBAAiB,MAAM,OAAA;AAAA,IAAM,CAC3C,EACA,QAAQ,CAAC,SAAS;AACb,0BAAoB,GAAG,MAAM,WAAW,YAAY,KACtD,YAAA;AAAA,IAEJ,CAAC;AAAA,EACL,CAAC;AACH;"}
@@ -0,0 +1,18 @@
1
+ import { API } from "jscodeshift";
2
+ import { FileInfo } from "jscodeshift";
3
+ import type { Options } from "jscodeshift";
4
+
5
+ declare interface BaseOptions extends Options {
6
+ fromPackage?: string;
7
+ toPackage?: string;
8
+ }
9
+
10
+ /** @internal */
11
+ declare function transform(
12
+ fileInfo: FileInfo,
13
+ api: API,
14
+ options: BaseOptions,
15
+ ): string | undefined;
16
+ export default transform;
17
+
18
+ export {};
@@ -0,0 +1,19 @@
1
+ import "jscodeshift";
2
+ import { transformComponent, getComponentLocalNames, shouldTransformComponent, transformImport, transformAttributes } from "../../../_chunks-es/transformComponent.js";
3
+ import { GRID_MODS } from "../../../_chunks-es/grid.mods.js";
4
+ const TODO_WARNING = "Please double check the Grid migration below";
5
+ function transform(fileInfo, api, options) {
6
+ const { fromPackage, toPackage } = options || {};
7
+ return transformComponent(fileInfo, api, ({ j, root, markChanged }) => {
8
+ const localNames = getComponentLocalNames(j, root, "Grid", options);
9
+ shouldTransformComponent(j, root, "Grid", localNames, options) && (transformImport(j, root, "Grid", fromPackage, toPackage) && markChanged(), root.find(j.JSXOpeningElement, {
10
+ name: { type: "JSXIdentifier", name: "Grid" }
11
+ }).forEach((path) => {
12
+ transformAttributes(j, path, GRID_MODS, TODO_WARNING) && markChanged();
13
+ }));
14
+ });
15
+ }
16
+ export {
17
+ transform as default
18
+ };
19
+ //# sourceMappingURL=grid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.js","sources":["../../../../src/transforms/latest/grid/grid.ts"],"sourcesContent":["import {type API, type FileInfo} from 'jscodeshift'\n\nimport type {BaseOptions} from '../../../types/BaseOptions'\nimport {getComponentLocalNames} from '../../../utils/getComponentLocalNames'\nimport {shouldTransformComponent} from '../../../utils/shouldTransformComponent'\nimport {transformAttributes} from '../../../utils/transformAttributes'\nimport {transformComponent} from '../../../utils/transformComponent'\nimport {transformImport} from '../../../utils/transformImport'\nimport {GRID_MODS} from './grid.mods'\n\nconst TODO_WARNING = 'Please double check the Grid migration below'\n\n/** @internal */\nexport default function transform(\n fileInfo: FileInfo,\n api: API,\n options: BaseOptions,\n): string | undefined {\n const {fromPackage, toPackage} = options || {}\n\n return transformComponent(fileInfo, api, ({j, root, markChanged}) => {\n const localNames = getComponentLocalNames(j, root, 'Grid', options)\n\n if (!shouldTransformComponent(j, root, 'Grid', localNames, options)) {\n return\n }\n\n if (transformImport(j, root, 'Grid', fromPackage, toPackage)) {\n markChanged()\n }\n\n root\n .find(j.JSXOpeningElement, {\n name: {type: 'JSXIdentifier', name: 'Grid'},\n })\n .forEach((path) => {\n if (transformAttributes(j, path, GRID_MODS, TODO_WARNING)) {\n markChanged()\n }\n })\n })\n}\n"],"names":[],"mappings":";;;AAUA,MAAM,eAAe;AAGrB,SAAwB,UACtB,UACA,KACA,SACoB;AACpB,QAAM,EAAC,aAAa,UAAA,IAAa,WAAW,CAAA;AAE5C,SAAO,mBAAmB,UAAU,KAAK,CAAC,EAAC,GAAG,MAAM,kBAAiB;AACnE,UAAM,aAAa,uBAAuB,GAAG,MAAM,QAAQ,OAAO;AAE7D,6BAAyB,GAAG,MAAM,QAAQ,YAAY,OAAO,MAI9D,gBAAgB,GAAG,MAAM,QAAQ,aAAa,SAAS,KACzD,YAAA,GAGF,KACG,KAAK,EAAE,mBAAmB;AAAA,MACzB,MAAM,EAAC,MAAM,iBAAiB,MAAM,OAAA;AAAA,IAAM,CAC3C,EACA,QAAQ,CAAC,SAAS;AACb,0BAAoB,GAAG,MAAM,WAAW,YAAY,KACtD,YAAA;AAAA,IAEJ,CAAC;AAAA,EACL,CAAC;AACH;"}
@@ -0,0 +1,18 @@
1
+ import { API } from "jscodeshift";
2
+ import { FileInfo } from "jscodeshift";
3
+ import type { Options } from "jscodeshift";
4
+
5
+ declare interface BaseOptions extends Options {
6
+ fromPackage?: string;
7
+ toPackage?: string;
8
+ }
9
+
10
+ /** @internal */
11
+ declare function transform(
12
+ fileInfo: FileInfo,
13
+ api: API,
14
+ options: BaseOptions,
15
+ ): string | undefined;
16
+ export default transform;
17
+
18
+ export {};
@@ -0,0 +1,85 @@
1
+ import "jscodeshift";
2
+ import { addAttribute } from "../../../_chunks-es/addAttribute.js";
3
+ import { transformComponent, getComponentLocalNames, shouldTransformComponent, transformImport, transformAttributes } from "../../../_chunks-es/transformComponent.js";
4
+ const HEADING_MODS = {
5
+ as: {
6
+ type: "warn-missing",
7
+ warning: "Please double check the Heading migration below. The as prop is missing and will default to h2."
8
+ },
9
+ flex: {
10
+ type: "style-mapped",
11
+ style: "flex",
12
+ mapping: {
13
+ none: "0 0 auto",
14
+ auto: "1 1 auto",
15
+ initial: "0 1 auto",
16
+ 1: "1",
17
+ 2: "2",
18
+ 3: "3",
19
+ 4: "4",
20
+ 5: "5",
21
+ 6: "6",
22
+ 7: "7",
23
+ 8: "8",
24
+ 9: "9",
25
+ 10: "10",
26
+ 11: "11",
27
+ 12: "12"
28
+ }
29
+ },
30
+ maxWidth: {
31
+ type: "style-mapped",
32
+ style: "maxWidth",
33
+ mapping: {
34
+ auto: "none",
35
+ fill: "100%",
36
+ 0: "20rem",
37
+ 1: "40rem",
38
+ 2: "60rem",
39
+ 3: "80rem",
40
+ 4: "100rem",
41
+ 5: "120rem"
42
+ }
43
+ },
44
+ textOverflow: {
45
+ type: "rename-mapped",
46
+ name: "truncate",
47
+ mapping: {
48
+ ellipsis: 1,
49
+ clip: 1
50
+ }
51
+ },
52
+ width: {
53
+ type: "style-mapped",
54
+ style: "width",
55
+ mapping: {
56
+ auto: "auto",
57
+ fill: "100%",
58
+ stretch: "stretch",
59
+ min: "min-content",
60
+ max: "max-content",
61
+ 0: "20rem",
62
+ 1: "40rem",
63
+ 2: "60rem",
64
+ 3: "80rem",
65
+ 4: "100rem",
66
+ 5: "120rem"
67
+ }
68
+ }
69
+ }, TODO_WARNING = "Please double check the Heading migration below";
70
+ function transform(fileInfo, api, options) {
71
+ const { fromPackage, toPackage } = options || {};
72
+ return transformComponent(fileInfo, api, ({ j, root, markChanged }) => {
73
+ const localNames = getComponentLocalNames(j, root, "Heading", options);
74
+ shouldTransformComponent(j, root, "Heading", localNames, options) && (transformImport(j, root, "Heading", fromPackage, toPackage) && markChanged(), root.find(j.JSXOpeningElement, {
75
+ name: { type: "JSXIdentifier", name: "Heading" }
76
+ }).forEach((path) => {
77
+ let changed = !1;
78
+ transformAttributes(j, path, HEADING_MODS, TODO_WARNING) && (changed = !0), addAttribute(j, path.node, "trim", !0) && (changed = !0), changed && markChanged();
79
+ }));
80
+ });
81
+ }
82
+ export {
83
+ transform as default
84
+ };
85
+ //# sourceMappingURL=heading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heading.js","sources":["../../../../src/transforms/latest/heading/heading.mods.ts","../../../../src/transforms/latest/heading/heading.ts"],"sourcesContent":["import type {AttributeMods} from '../../../types/AttributeMods'\n\n/** @internal */\nexport const HEADING_MODS: AttributeMods = {\n as: {\n type: 'warn-missing',\n warning:\n 'Please double check the Heading migration below. The as prop is missing and will default to h2.',\n },\n flex: {\n type: 'style-mapped',\n style: 'flex',\n mapping: {\n none: '0 0 auto',\n auto: '1 1 auto',\n initial: '0 1 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 maxWidth: {\n type: 'style-mapped',\n style: 'maxWidth',\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 textOverflow: {\n type: 'rename-mapped',\n name: 'truncate',\n mapping: {\n ellipsis: 1,\n clip: 1,\n },\n },\n width: {\n type: 'style-mapped',\n style: 'width',\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","import {type API, type FileInfo} from 'jscodeshift'\n\nimport type {BaseOptions} from '../../../types/BaseOptions'\nimport {addAttribute} from '../../../utils/addAttribute'\nimport {getComponentLocalNames} from '../../../utils/getComponentLocalNames'\nimport {shouldTransformComponent} from '../../../utils/shouldTransformComponent'\nimport {transformAttributes} from '../../../utils/transformAttributes'\nimport {transformComponent} from '../../../utils/transformComponent'\nimport {transformImport} from '../../../utils/transformImport'\nimport {HEADING_MODS} from './heading.mods'\n\nconst TODO_WARNING = 'Please double check the Heading migration below'\n\n/** @internal */\nexport default function transform(\n fileInfo: FileInfo,\n api: API,\n options: BaseOptions,\n): string | undefined {\n const {fromPackage, toPackage} = options || {}\n\n return transformComponent(fileInfo, api, ({j, root, markChanged}) => {\n const localNames = getComponentLocalNames(j, root, 'Heading', options)\n\n if (!shouldTransformComponent(j, root, 'Heading', localNames, options)) {\n return\n }\n\n if (transformImport(j, root, 'Heading', fromPackage, toPackage)) {\n markChanged()\n }\n\n root\n .find(j.JSXOpeningElement, {\n name: {type: 'JSXIdentifier', name: 'Heading'},\n })\n .forEach((path) => {\n let changed = false\n\n if (transformAttributes(j, path, HEADING_MODS, TODO_WARNING)) {\n changed = true\n }\n\n if (addAttribute(j, path.node, 'trim', true)) {\n changed = true\n }\n\n if (changed) {\n markChanged()\n }\n })\n })\n}\n"],"names":[],"mappings":";;;AAGO,MAAM,eAA8B;AAAA,EACzC,IAAI;AAAA,IACF,MAAM;AAAA,IACN,SACE;AAAA,EAAA;AAAA,EAEJ,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,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,UAAU;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EACL;AAAA,EAEF,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,MACP,UAAU;AAAA,MACV,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EACL;AAEJ,GC1DM,eAAe;AAGrB,SAAwB,UACtB,UACA,KACA,SACoB;AACpB,QAAM,EAAC,aAAa,UAAA,IAAa,WAAW,CAAA;AAE5C,SAAO,mBAAmB,UAAU,KAAK,CAAC,EAAC,GAAG,MAAM,kBAAiB;AACnE,UAAM,aAAa,uBAAuB,GAAG,MAAM,WAAW,OAAO;AAEhE,6BAAyB,GAAG,MAAM,WAAW,YAAY,OAAO,MAIjE,gBAAgB,GAAG,MAAM,WAAW,aAAa,SAAS,KAC5D,YAAA,GAGF,KACG,KAAK,EAAE,mBAAmB;AAAA,MACzB,MAAM,EAAC,MAAM,iBAAiB,MAAM,UAAA;AAAA,IAAS,CAC9C,EACA,QAAQ,CAAC,SAAS;AACjB,UAAI,UAAU;AAEV,0BAAoB,GAAG,MAAM,cAAc,YAAY,MACzD,UAAU,KAGR,aAAa,GAAG,KAAK,MAAM,QAAQ,EAAI,MACzC,UAAU,KAGR,WACF,YAAA;AAAA,IAEJ,CAAC;AAAA,EACL,CAAC;AACH;"}
@@ -0,0 +1,18 @@
1
+ import { API } from "jscodeshift";
2
+ import { FileInfo } from "jscodeshift";
3
+ import type { Options } from "jscodeshift";
4
+
5
+ declare interface BaseOptions extends Options {
6
+ fromPackage?: string;
7
+ toPackage?: string;
8
+ }
9
+
10
+ /** @internal */
11
+ declare function transform(
12
+ fileInfo: FileInfo,
13
+ api: API,
14
+ options: BaseOptions,
15
+ ): string | undefined;
16
+ export default transform;
17
+
18
+ export {};
@@ -0,0 +1,88 @@
1
+ import "jscodeshift";
2
+ import { addAttribute } from "../../../_chunks-es/addAttribute.js";
3
+ import { transformComponent, getComponentLocalNames, shouldTransformComponent, transformImport, transformAttributes } from "../../../_chunks-es/transformComponent.js";
4
+ const TEXT_MODS = {
5
+ accent: {
6
+ type: "rename-mapped",
7
+ name: "tone",
8
+ mapping: {
9
+ true: "suggest"
10
+ }
11
+ },
12
+ flex: {
13
+ type: "style-mapped",
14
+ style: "flex",
15
+ mapping: {
16
+ none: "0 0 auto",
17
+ auto: "1 1 auto",
18
+ initial: "0 1 auto",
19
+ 1: "1",
20
+ 2: "2",
21
+ 3: "3",
22
+ 4: "4",
23
+ 5: "5",
24
+ 6: "6",
25
+ 7: "7",
26
+ 8: "8",
27
+ 9: "9",
28
+ 10: "10",
29
+ 11: "11",
30
+ 12: "12"
31
+ }
32
+ },
33
+ maxWidth: {
34
+ type: "style-mapped",
35
+ style: "maxWidth",
36
+ mapping: {
37
+ auto: "none",
38
+ fill: "100%",
39
+ 0: "20rem",
40
+ 1: "40rem",
41
+ 2: "60rem",
42
+ 3: "80rem",
43
+ 4: "100rem",
44
+ 5: "120rem"
45
+ }
46
+ },
47
+ textOverflow: {
48
+ type: "rename-mapped",
49
+ name: "truncate",
50
+ mapping: {
51
+ ellipsis: 1,
52
+ clip: 1
53
+ }
54
+ },
55
+ width: {
56
+ type: "style-mapped",
57
+ style: "width",
58
+ mapping: {
59
+ auto: "auto",
60
+ fill: "100%",
61
+ stretch: "stretch",
62
+ min: "min-content",
63
+ max: "max-content",
64
+ 0: "20rem",
65
+ 1: "40rem",
66
+ 2: "60rem",
67
+ 3: "80rem",
68
+ 4: "100rem",
69
+ 5: "120rem"
70
+ }
71
+ }
72
+ }, TODO_WARNING = "Please double check the Text migration below";
73
+ function transform(fileInfo, api, options) {
74
+ const { fromPackage, toPackage } = options || {};
75
+ return transformComponent(fileInfo, api, ({ j, root, markChanged }) => {
76
+ const localNames = getComponentLocalNames(j, root, "Text", options);
77
+ shouldTransformComponent(j, root, "Text", localNames, options) && (transformImport(j, root, "Text", fromPackage, toPackage) && markChanged(), root.find(j.JSXOpeningElement, {
78
+ name: { type: "JSXIdentifier", name: "Text" }
79
+ }).forEach((path) => {
80
+ let changed = !1;
81
+ transformAttributes(j, path, TEXT_MODS, TODO_WARNING) && (changed = !0), addAttribute(j, path.node, "as", "div") && (changed = !0), addAttribute(j, path.node, "trim", !0) && (changed = !0), changed && markChanged();
82
+ }));
83
+ });
84
+ }
85
+ export {
86
+ transform as default
87
+ };
88
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","sources":["../../../../src/transforms/latest/text/text.mods.ts","../../../../src/transforms/latest/text/text.ts"],"sourcesContent":["import type {AttributeMods} from '../../../types/AttributeMods'\n\n/** @internal */\nexport const TEXT_MODS: AttributeMods = {\n accent: {\n type: 'rename-mapped',\n name: 'tone',\n mapping: {\n true: 'suggest',\n },\n },\n flex: {\n type: 'style-mapped',\n style: 'flex',\n mapping: {\n none: '0 0 auto',\n auto: '1 1 auto',\n initial: '0 1 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 maxWidth: {\n type: 'style-mapped',\n style: 'maxWidth',\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 textOverflow: {\n type: 'rename-mapped',\n name: 'truncate',\n mapping: {\n ellipsis: 1,\n clip: 1,\n },\n },\n width: {\n type: 'style-mapped',\n style: 'width',\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","import {type API, type FileInfo} from 'jscodeshift'\n\nimport type {BaseOptions} from '../../../types/BaseOptions'\nimport {addAttribute} from '../../../utils/addAttribute'\nimport {getComponentLocalNames} from '../../../utils/getComponentLocalNames'\nimport {shouldTransformComponent} from '../../../utils/shouldTransformComponent'\nimport {transformAttributes} from '../../../utils/transformAttributes'\nimport {transformComponent} from '../../../utils/transformComponent'\nimport {transformImport} from '../../../utils/transformImport'\nimport {TEXT_MODS} from './text.mods'\n\nconst TODO_WARNING = 'Please double check the Text migration below'\n\n/** @internal */\nexport default function transform(\n fileInfo: FileInfo,\n api: API,\n options: BaseOptions,\n): string | undefined {\n const {fromPackage, toPackage} = options || {}\n\n return transformComponent(fileInfo, api, ({j, root, markChanged}) => {\n const localNames = getComponentLocalNames(j, root, 'Text', options)\n\n if (!shouldTransformComponent(j, root, 'Text', localNames, options)) {\n return\n }\n\n if (transformImport(j, root, 'Text', fromPackage, toPackage)) {\n markChanged()\n }\n\n root\n .find(j.JSXOpeningElement, {\n name: {type: 'JSXIdentifier', name: 'Text'},\n })\n .forEach((path) => {\n let changed = false\n\n if (transformAttributes(j, path, TEXT_MODS, TODO_WARNING)) {\n changed = true\n }\n\n if (addAttribute(j, path.node, 'as', 'div')) {\n changed = true\n }\n\n if (addAttribute(j, path.node, 'trim', true)) {\n changed = true\n }\n\n if (changed) {\n markChanged()\n }\n })\n })\n}\n"],"names":[],"mappings":";;;AAGO,MAAM,YAA2B;AAAA,EACtC,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,MACP,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,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,UAAU;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EACL;AAAA,EAEF,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA,MACP,UAAU;AAAA,MACV,MAAM;AAAA,IAAA;AAAA,EACR;AAAA,EAEF,OAAO;AAAA,IACL,MAAM;AAAA,IACN,OAAO;AAAA,IACP,SAAS;AAAA,MACP,MAAM;AAAA,MACN,MAAM;AAAA,MACN,SAAS;AAAA,MACT,KAAK;AAAA,MACL,KAAK;AAAA,MACL,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAAA,EACL;AAEJ,GC5DM,eAAe;AAGrB,SAAwB,UACtB,UACA,KACA,SACoB;AACpB,QAAM,EAAC,aAAa,UAAA,IAAa,WAAW,CAAA;AAE5C,SAAO,mBAAmB,UAAU,KAAK,CAAC,EAAC,GAAG,MAAM,kBAAiB;AACnE,UAAM,aAAa,uBAAuB,GAAG,MAAM,QAAQ,OAAO;AAE7D,6BAAyB,GAAG,MAAM,QAAQ,YAAY,OAAO,MAI9D,gBAAgB,GAAG,MAAM,QAAQ,aAAa,SAAS,KACzD,YAAA,GAGF,KACG,KAAK,EAAE,mBAAmB;AAAA,MACzB,MAAM,EAAC,MAAM,iBAAiB,MAAM,OAAA;AAAA,IAAM,CAC3C,EACA,QAAQ,CAAC,SAAS;AACjB,UAAI,UAAU;AAEV,0BAAoB,GAAG,MAAM,WAAW,YAAY,MACtD,UAAU,KAGR,aAAa,GAAG,KAAK,MAAM,MAAM,KAAK,MACxC,UAAU,KAGR,aAAa,GAAG,KAAK,MAAM,QAAQ,EAAI,MACzC,UAAU,KAGR,WACF,YAAA;AAAA,IAEJ,CAAC;AAAA,EACL,CAAC;AACH;"}
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "@sanity/ui-codemod",
3
+ "version": "1.0.0-alpha.1",
4
+ "description": "",
5
+ "keywords": [],
6
+ "license": "ISC",
7
+ "author": "",
8
+ "bin": {
9
+ "ui-codemod": "./bin/run.js"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "src"
14
+ ],
15
+ "type": "module",
16
+ "sideEffects": false,
17
+ "exports": {
18
+ "./transforms/latest/box": "./dist/transforms/latest/box/box.js",
19
+ "./latest/box": "./dist/commands/latest/box.js",
20
+ "./transforms/latest/card": "./dist/transforms/latest/card/card.js",
21
+ "./latest/card": "./dist/commands/latest/card.js",
22
+ "./transforms/latest/code": "./dist/transforms/latest/code/code.js",
23
+ "./latest/code": "./dist/commands/latest/code.js",
24
+ "./transforms/latest/container": "./dist/transforms/latest/container/container.js",
25
+ "./latest/container": "./dist/commands/latest/container.js",
26
+ "./transforms/latest/flex": "./dist/transforms/latest/flex/flex.js",
27
+ "./latest/flex": "./dist/commands/latest/flex.js",
28
+ "./transforms/latest/grid": "./dist/transforms/latest/grid/grid.js",
29
+ "./latest/grid": "./dist/commands/latest/grid.js",
30
+ "./transforms/latest/heading": "./dist/transforms/latest/heading/heading.js",
31
+ "./latest/heading": "./dist/commands/latest/heading.js",
32
+ "./transforms/latest/text": "./dist/transforms/latest/text/text.js",
33
+ "./latest/text": "./dist/commands/latest/text.js",
34
+ "./package.json": "./package.json"
35
+ },
36
+ "dependencies": {
37
+ "@oclif/core": "^4.10.5",
38
+ "@types/jscodeshift": "^17.3.0",
39
+ "jscodeshift": "^17.3.0"
40
+ },
41
+ "devDependencies": {
42
+ "@sanity/browserslist-config": "^1.0.5",
43
+ "@sanity/pkg-utils": "^10.8.2",
44
+ "@sanity/tsconfig": "^1.0.0",
45
+ "@types/node": "^25.5.2",
46
+ "ts-node": "^10.9.2",
47
+ "tsx": "^4.21.0",
48
+ "typescript": "^5.9.3",
49
+ "vitest": "^4.1.1"
50
+ },
51
+ "browserslist": "extends @sanity/browserslist-config",
52
+ "oclif": {
53
+ "bin": "@sanity/ui-codemod",
54
+ "commands": "./dist/commands",
55
+ "dirname": "ui-codemod",
56
+ "topicSeparator": ":",
57
+ "topics": {
58
+ "latest": {
59
+ "description": "Migrate to latest version of UI"
60
+ }
61
+ }
62
+ },
63
+ "scripts": {
64
+ "build": "pkg build --strict --clean --check",
65
+ "test": "vitest run",
66
+ "ts:check": "tsc --noEmit"
67
+ }
68
+ }