@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,422 @@
1
+ import type {AttributeMods} from '../../types/AttributeMods'
2
+
3
+ export const LAYOUT_MODS: AttributeMods = {
4
+ border: {
5
+ type: 'mapped-only',
6
+ mapping: {
7
+ none: false,
8
+ muted: true,
9
+ default: true,
10
+ },
11
+ },
12
+ borderTop: {
13
+ type: 'mapped-only',
14
+ mapping: {
15
+ none: false,
16
+ muted: true,
17
+ default: true,
18
+ },
19
+ },
20
+ borderRight: {
21
+ type: 'mapped-only',
22
+ mapping: {
23
+ none: false,
24
+ muted: true,
25
+ default: true,
26
+ },
27
+ },
28
+ borderBottom: {
29
+ type: 'mapped-only',
30
+ mapping: {
31
+ none: false,
32
+ muted: true,
33
+ default: true,
34
+ },
35
+ },
36
+ borderLeft: {
37
+ type: 'mapped-only',
38
+ mapping: {
39
+ none: false,
40
+ muted: true,
41
+ default: true,
42
+ },
43
+ },
44
+ borderWidth: {type: 'remove'},
45
+ column: {
46
+ type: 'rename-mapped',
47
+ name: 'gridColumn',
48
+ mapping: {
49
+ auto: 'auto',
50
+ full: '1 / -1',
51
+ 1: 'span 1 / span 1',
52
+ 2: 'span 2 / span 2',
53
+ 3: 'span 3 / span 3',
54
+ 4: 'span 4 / span 4',
55
+ 5: 'span 5 / span 5',
56
+ 6: 'span 6 / span 6',
57
+ 7: 'span 7 / span 7',
58
+ 8: 'span 8 / span 8',
59
+ 9: 'span 9 / span 9',
60
+ 10: 'span 10 / span 10',
61
+ 11: 'span 11 / span 11',
62
+ 12: 'span 12 / span 12',
63
+ },
64
+ },
65
+ columnEnd: {
66
+ type: 'rename-mapped',
67
+ name: 'gridColumnEnd',
68
+ mapping: {
69
+ auto: 'auto',
70
+ 1: '1',
71
+ 2: '2',
72
+ 3: '3',
73
+ 4: '4',
74
+ 5: '5',
75
+ 6: '6',
76
+ 7: '7',
77
+ 8: '8',
78
+ 9: '9',
79
+ 10: '10',
80
+ 11: '11',
81
+ 12: '12',
82
+ },
83
+ },
84
+ columnStart: {
85
+ type: 'rename-mapped',
86
+ name: 'gridColumnStart',
87
+ mapping: {
88
+ auto: 'auto',
89
+ 1: '1',
90
+ 2: '2',
91
+ 3: '3',
92
+ 4: '4',
93
+ 5: '5',
94
+ 6: '6',
95
+ 7: '7',
96
+ 8: '8',
97
+ 9: '9',
98
+ 10: '10',
99
+ 11: '11',
100
+ 12: '12',
101
+ },
102
+ },
103
+ flex: {
104
+ type: 'shorthand-mapped',
105
+ props: [
106
+ {
107
+ name: 'flexBasis',
108
+ mapping: {
109
+ none: 'auto',
110
+ auto: 'auto',
111
+ initial: 'auto',
112
+ },
113
+ },
114
+ {
115
+ name: 'flexGrow',
116
+ mapping: {
117
+ none: 0,
118
+ auto: 1,
119
+ initial: 0,
120
+ 1: 1,
121
+ 2: 2,
122
+ 3: 3,
123
+ 4: 4,
124
+ 5: 5,
125
+ 6: 6,
126
+ 7: 7,
127
+ 8: 8,
128
+ 9: 9,
129
+ 10: 10,
130
+ 11: 11,
131
+ 12: 12,
132
+ },
133
+ },
134
+ {
135
+ name: 'flexShrink',
136
+ mapping: {
137
+ none: 0,
138
+ auto: 1,
139
+ initial: 1,
140
+ },
141
+ },
142
+ ],
143
+ },
144
+ gapX: {
145
+ type: 'rename-only',
146
+ name: 'rowGap',
147
+ },
148
+ gapY: {
149
+ type: 'rename-only',
150
+ name: 'columnGap',
151
+ },
152
+ gridColumn: {
153
+ type: 'mapped-only',
154
+ mapping: {
155
+ auto: 'auto',
156
+ full: '1 / -1',
157
+ 1: 'span 1 / span 1',
158
+ 2: 'span 2 / span 2',
159
+ 3: 'span 3 / span 3',
160
+ 4: 'span 4 / span 4',
161
+ 5: 'span 5 / span 5',
162
+ 6: 'span 6 / span 6',
163
+ 7: 'span 7 / span 7',
164
+ 8: 'span 8 / span 8',
165
+ 9: 'span 9 / span 9',
166
+ 10: 'span 10 / span 10',
167
+ 11: 'span 11 / span 11',
168
+ 12: 'span 12 / span 12',
169
+ },
170
+ },
171
+ gridColumnEnd: {
172
+ type: 'mapped-only',
173
+ mapping: {
174
+ auto: 'auto',
175
+ 1: '1',
176
+ 2: '2',
177
+ 3: '3',
178
+ 4: '4',
179
+ 5: '5',
180
+ 6: '6',
181
+ 7: '7',
182
+ 8: '8',
183
+ 9: '9',
184
+ 10: '10',
185
+ 11: '11',
186
+ 12: '12',
187
+ },
188
+ },
189
+ gridColumnStart: {
190
+ type: 'mapped-only',
191
+ mapping: {
192
+ auto: 'auto',
193
+ 1: '1',
194
+ 2: '2',
195
+ 3: '3',
196
+ 4: '4',
197
+ 5: '5',
198
+ 6: '6',
199
+ 7: '7',
200
+ 8: '8',
201
+ 9: '9',
202
+ 10: '10',
203
+ 11: '11',
204
+ 12: '12',
205
+ },
206
+ },
207
+ gridRow: {
208
+ type: 'mapped-only',
209
+ mapping: {
210
+ auto: 'auto',
211
+ full: '1 / -1',
212
+ 1: 'span 1 / span 1',
213
+ 2: 'span 2 / span 2',
214
+ 3: 'span 3 / span 3',
215
+ 4: 'span 4 / span 4',
216
+ 5: 'span 5 / span 5',
217
+ 6: 'span 6 / span 6',
218
+ 7: 'span 7 / span 7',
219
+ 8: 'span 8 / span 8',
220
+ 9: 'span 9 / span 9',
221
+ 10: 'span 10 / span 10',
222
+ 11: 'span 11 / span 11',
223
+ 12: 'span 12 / span 12',
224
+ },
225
+ },
226
+ gridRowEnd: {
227
+ type: 'mapped-only',
228
+ mapping: {
229
+ auto: 'auto',
230
+ 1: '1',
231
+ 2: '2',
232
+ 3: '3',
233
+ 4: '4',
234
+ 5: '5',
235
+ 6: '6',
236
+ 7: '7',
237
+ 8: '8',
238
+ 9: '9',
239
+ 10: '10',
240
+ 11: '11',
241
+ 12: '12',
242
+ },
243
+ },
244
+ gridRowStart: {
245
+ type: 'mapped-only',
246
+ mapping: {
247
+ auto: 'auto',
248
+ 1: '1',
249
+ 2: '2',
250
+ 3: '3',
251
+ 4: '4',
252
+ 5: '5',
253
+ 6: '6',
254
+ 7: '7',
255
+ 8: '8',
256
+ 9: '9',
257
+ 10: '10',
258
+ 11: '11',
259
+ 12: '12',
260
+ },
261
+ },
262
+ height: {
263
+ type: 'mapped-only',
264
+ mapping: {
265
+ fill: '100%',
266
+ auto: 'auto',
267
+ min: 'min-content',
268
+ max: 'max-content',
269
+ fit: 'fit-content',
270
+ stretch: 'stretch',
271
+ },
272
+ },
273
+ insetTop: {
274
+ type: 'rename-only',
275
+ name: 'top',
276
+ },
277
+ insetRight: {
278
+ type: 'rename-only',
279
+ name: 'right',
280
+ },
281
+ insetBottom: {
282
+ type: 'rename-only',
283
+ name: 'bottom',
284
+ },
285
+ insetLeft: {
286
+ type: 'rename-only',
287
+ name: 'left',
288
+ },
289
+ minHeight: {
290
+ type: 'mapped-only',
291
+ mapping: {
292
+ full: '100%',
293
+ 0: '0',
294
+ },
295
+ },
296
+ maxWidth: {
297
+ type: 'mapped-only',
298
+ mapping: {
299
+ auto: 'none',
300
+ fill: '100%',
301
+ 0: '20rem',
302
+ 1: '40rem',
303
+ 2: '60rem',
304
+ 3: '80rem',
305
+ 4: '100rem',
306
+ 5: '120rem',
307
+ },
308
+ },
309
+ minWidth: {
310
+ type: 'mapped-only',
311
+ mapping: {
312
+ full: '100%',
313
+ 0: '0',
314
+ auto: 'auto',
315
+ min: 'min-content',
316
+ max: 'max-content',
317
+ fit: 'fit-content',
318
+ },
319
+ },
320
+ muted: {
321
+ type: 'rename-mapped',
322
+ name: 'tone',
323
+ mapping: {
324
+ true: 'neutral',
325
+ },
326
+ },
327
+ outline: {
328
+ type: 'style-only',
329
+ style: 'outline',
330
+ },
331
+ pointerEvents: {
332
+ type: 'style-only',
333
+ style: 'pointerEvents',
334
+ },
335
+ row: {
336
+ type: 'rename-mapped',
337
+ name: 'gridRow',
338
+ mapping: {
339
+ auto: 'auto',
340
+ full: '1 / -1',
341
+ 1: 'span 1 / span 1',
342
+ 2: 'span 2 / span 2',
343
+ 3: 'span 3 / span 3',
344
+ 4: 'span 4 / span 4',
345
+ 5: 'span 5 / span 5',
346
+ 6: 'span 6 / span 6',
347
+ 7: 'span 7 / span 7',
348
+ 8: 'span 8 / span 8',
349
+ 9: 'span 9 / span 9',
350
+ 10: 'span 10 / span 10',
351
+ 11: 'span 11 / span 11',
352
+ 12: 'span 12 / span 12',
353
+ },
354
+ },
355
+ rowEnd: {
356
+ type: 'rename-mapped',
357
+ name: 'gridRowEnd',
358
+ mapping: {
359
+ auto: 'auto',
360
+ 1: '1',
361
+ 2: '2',
362
+ 3: '3',
363
+ 4: '4',
364
+ 5: '5',
365
+ 6: '6',
366
+ 7: '7',
367
+ 8: '8',
368
+ 9: '9',
369
+ 10: '10',
370
+ 11: '11',
371
+ 12: '12',
372
+ },
373
+ },
374
+ rowStart: {
375
+ type: 'rename-mapped',
376
+ name: 'gridRowStart',
377
+ mapping: {
378
+ auto: 'auto',
379
+ 1: '1',
380
+ 2: '2',
381
+ 3: '3',
382
+ 4: '4',
383
+ 5: '5',
384
+ 6: '6',
385
+ 7: '7',
386
+ 8: '8',
387
+ 9: '9',
388
+ 10: '10',
389
+ 11: '11',
390
+ 12: '12',
391
+ },
392
+ },
393
+ shadow: {type: 'remove'},
394
+ sizing: {
395
+ type: 'style-mapped',
396
+ style: 'boxSizing',
397
+ mapping: {
398
+ content: 'content-box',
399
+ border: 'border-box',
400
+ },
401
+ },
402
+ textAlign: {
403
+ type: 'style-only',
404
+ style: 'textAlign',
405
+ },
406
+ width: {
407
+ type: 'mapped-only',
408
+ mapping: {
409
+ auto: 'auto',
410
+ fill: '100%',
411
+ stretch: 'stretch',
412
+ min: 'min-content',
413
+ max: 'max-content',
414
+ 0: '20rem',
415
+ 1: '40rem',
416
+ 2: '60rem',
417
+ 3: '80rem',
418
+ 4: '100rem',
419
+ 5: '120rem',
420
+ },
421
+ },
422
+ }
@@ -0,0 +1,88 @@
1
+ import {LAYOUT_MODS} from '../../../constants/latest/layout-mods'
2
+ import type {AttributeMods} from '../../../types/AttributeMods'
3
+
4
+ /** @internal */
5
+ export const BOX_MODS: AttributeMods = {
6
+ ...LAYOUT_MODS,
7
+ alignItems: {
8
+ type: 'style-only',
9
+ style: 'alignItems',
10
+ },
11
+ flexDirection: {
12
+ type: 'style-only',
13
+ style: 'flexDirection',
14
+ },
15
+ flexWrap: {
16
+ type: 'style-only',
17
+ style: 'flexWrap',
18
+ },
19
+ gridAutoColumns: {
20
+ type: 'style-only',
21
+ style: 'gridAutoColumns',
22
+ },
23
+ gridAutoFlow: {
24
+ type: 'style-only',
25
+ style: 'gridAutoFlow',
26
+ },
27
+ gridAutoRows: {
28
+ type: 'style-only',
29
+ style: 'gridAutoRows',
30
+ },
31
+ gridTemplateColumns: {
32
+ type: 'style-mapped',
33
+ style: 'gridTemplateColumns',
34
+ mapping: {
35
+ 0: '0px',
36
+ 1: 'repeat(1, 1fr)',
37
+ 2: 'repeat(2, 1fr)',
38
+ 3: 'repeat(3, 1fr)',
39
+ 4: 'repeat(4, 1fr)',
40
+ 5: 'repeat(5, 1fr)',
41
+ 6: 'repeat(6, 1fr)',
42
+ 7: 'repeat(7, 1fr)',
43
+ 8: 'repeat(8, 1fr)',
44
+ 9: 'repeat(9, 1fr)',
45
+ 10: 'repeat(10, 1fr)',
46
+ 11: 'repeat(11, 1fr)',
47
+ 12: 'repeat(12, 1fr)',
48
+ },
49
+ },
50
+ gridTemplateRows: {
51
+ type: 'style-mapped',
52
+ style: 'gridTemplateRows',
53
+ mapping: {
54
+ 0: '0px',
55
+ 1: 'repeat(1, 1fr)',
56
+ 2: 'repeat(2, 1fr)',
57
+ 3: 'repeat(3, 1fr)',
58
+ 4: 'repeat(4, 1fr)',
59
+ 5: 'repeat(5, 1fr)',
60
+ 6: 'repeat(6, 1fr)',
61
+ 7: 'repeat(7, 1fr)',
62
+ 8: 'repeat(8, 1fr)',
63
+ 9: 'repeat(9, 1fr)',
64
+ 10: 'repeat(10, 1fr)',
65
+ 11: 'repeat(11, 1fr)',
66
+ 12: 'repeat(12, 1fr)',
67
+ },
68
+ },
69
+ justifyContent: {
70
+ type: 'style-only',
71
+ style: 'justifyContent',
72
+ },
73
+ tone: {
74
+ type: 'mapped-only',
75
+ mapping: {
76
+ default: 'none',
77
+ none: 'none',
78
+ transparent: 'neutral',
79
+ neutral: 'neutral',
80
+ brand: 'primary',
81
+ primary: 'primary',
82
+ positive: 'positive',
83
+ caution: 'caution',
84
+ critical: 'critical',
85
+ suggest: 'suggest',
86
+ },
87
+ },
88
+ }
@@ -0,0 +1,204 @@
1
+ import {defineInlineTest} from '../../../utils/testUtils'
2
+ import transform from './box'
3
+
4
+ defineInlineTest(
5
+ transform,
6
+ {fromPackage: '@legacy/ui', toPackage: '@sanity/ui'},
7
+ `
8
+ import {Box} from '@legacy/ui'
9
+
10
+ <Box />
11
+ `,
12
+ `
13
+ import {Box} from "@sanity/ui"
14
+
15
+ <Box />
16
+ `,
17
+ 'updates Box import path based on fromPackage and toPackage',
18
+ )
19
+
20
+ defineInlineTest(
21
+ transform,
22
+ {},
23
+ `
24
+ <Box
25
+ alignItems="center"
26
+ flexDirection="row"
27
+ flexWrap="wrap"
28
+ justifyContent="center"
29
+ />
30
+ `,
31
+ `
32
+ <Box
33
+ style={{
34
+ alignItems: "center",
35
+ flexDirection: "row",
36
+ flexWrap: "wrap",
37
+ justifyContent: "center"
38
+ }} />
39
+ `,
40
+ 'moves flex props to style',
41
+ )
42
+
43
+ defineInlineTest(
44
+ transform,
45
+ {},
46
+ `
47
+ <Box
48
+ gridAutoColumns="auto"
49
+ gridAutoFlow="row"
50
+ gridAutoRows="auto"
51
+ />
52
+ `,
53
+ `
54
+ <Box
55
+ style={{
56
+ gridAutoColumns: "auto",
57
+ gridAutoFlow: "row",
58
+ gridAutoRows: "auto"
59
+ }} />
60
+ `,
61
+ 'moves grid props to style',
62
+ )
63
+
64
+ defineInlineTest(
65
+ transform,
66
+ {},
67
+ `
68
+ <Box
69
+ gridTemplateColumns={1}
70
+ gridTemplateRows={2}
71
+ />
72
+ `,
73
+ `
74
+ <Box
75
+ style={{
76
+ gridTemplateColumns: "repeat(1, 1fr)",
77
+ gridTemplateRows: "repeat(2, 1fr)"
78
+ }} />
79
+ `,
80
+ 'moves grid props to style and updates mapped values',
81
+ )
82
+
83
+ defineInlineTest(
84
+ transform,
85
+ {},
86
+ `
87
+ import {Box} from '@sanity/ui'
88
+
89
+ function Example() {
90
+ const RootBox = styled(Box)(({theme}) => ({}))
91
+
92
+ return <RootBox alignItems="center" />
93
+ }
94
+ `,
95
+ `
96
+ import {Box} from '@sanity/ui'
97
+
98
+ function Example() {
99
+ const RootBox = styled(Box)(({theme}) => ({}))
100
+
101
+ return (
102
+ <RootBox style={{
103
+ alignItems: "center"
104
+ }} />
105
+ );
106
+ }
107
+ `,
108
+ 'transforms attributes on styled component',
109
+ )
110
+
111
+ defineInlineTest(
112
+ transform,
113
+ {fromPackage: '@legacy/ui', toPackage: '@sanity/ui'},
114
+ `
115
+ import {Box} from '@legacy/ui'
116
+
117
+ function Example() {
118
+ const RootBox = styled(Box)(({theme}) => ({}))
119
+
120
+ return <RootBox alignItems="center" />
121
+ }
122
+ `,
123
+ `
124
+ import {Box} from "@sanity/ui"
125
+
126
+ function Example() {
127
+ const RootBox = styled(Box)(({theme}) => ({}))
128
+
129
+ return (
130
+ <RootBox style={{
131
+ alignItems: "center"
132
+ }} />
133
+ );
134
+ }
135
+ `,
136
+ 'transforms attributes on styled component and updates import path based on fromPackage and toPackage',
137
+ )
138
+
139
+ defineInlineTest(
140
+ transform,
141
+ {},
142
+ `
143
+ import {Box as ImportedBox} from '@sanity/ui'
144
+
145
+ <ImportedBox alignItems="center" />
146
+ `,
147
+ `
148
+ import {Box as ImportedBox} from '@sanity/ui'
149
+
150
+ <ImportedBox style={{
151
+ alignItems: "center"
152
+ }} />
153
+ `,
154
+ 'transforms attributes on aliased import',
155
+ )
156
+
157
+ defineInlineTest(
158
+ transform,
159
+ {},
160
+ `
161
+ <Box display="flex" alignItems="center" />
162
+ `,
163
+ `
164
+ <Flex display="flex" alignItems="center" />
165
+ `,
166
+ 'replaces Box with Flex when display is flex',
167
+ )
168
+
169
+ defineInlineTest(
170
+ transform,
171
+ {},
172
+ `
173
+ <Box display="grid" gridAutoFlow="row" />
174
+ `,
175
+ `
176
+ <Grid display="grid" gridAutoFlow="row" />
177
+ `,
178
+ 'replaces Box with Grid when display is grid',
179
+ )
180
+
181
+ defineInlineTest(
182
+ transform,
183
+ {},
184
+ `
185
+ import {Box} from '@sanity/ui'
186
+
187
+ function Example() {
188
+ const RootBox = styled(Box)(({theme}) => ({}))
189
+
190
+ return <RootBox display="flex" alignItems="center" />
191
+ }
192
+ `,
193
+ `
194
+ import {Box} from '@sanity/ui'
195
+
196
+ function Example() {
197
+ // UI-CODEMOD TODO: Please double check styled(Box) migration(s) below
198
+ const RootBox = styled(Box)(({theme}) => ({}));
199
+
200
+ return <RootBox display="flex" alignItems="center" />
201
+ }
202
+ `,
203
+ 'warns and does not transform attributes if styled Box definition should be replaced',
204
+ )