@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,104 @@
1
+ import {type API, type FileInfo, type JSXSpreadAttribute, type JSXAttribute} from 'jscodeshift'
2
+
3
+ import type {BaseOptions} from '../../../types/BaseOptions'
4
+ import {getComponentLocalNames} from '../../../utils/getComponentLocalNames'
5
+ import {getStaticAttributeExpression} from '../../../utils/getStaticAttributeExpression'
6
+ import {getStyledComponentAliases} from '../../../utils/getStyledComponentAliases'
7
+ import {replaceElement} from '../../../utils/replaceElement'
8
+ import {shouldTransformComponent} from '../../../utils/shouldTransformComponent'
9
+ import {transformAttributes} from '../../../utils/transformAttributes'
10
+ import {transformComponent} from '../../../utils/transformComponent'
11
+ import {transformImport} from '../../../utils/transformImport'
12
+ import {transformStyledComponents} from '../../../utils/transformStyledComponents'
13
+ import {FLEX_MODS} from '../flex/flex.mods'
14
+ import {GRID_MODS} from '../grid/grid.mods'
15
+ import {BOX_MODS} from './box.mods'
16
+
17
+ const BOX_TODO_WARNING = 'Please double check the Box migration below'
18
+ const FLEX_TODO_WARNING = 'Please double check the Flex migration below'
19
+ const GRID_TODO_WARNING = 'Please double check the Grid migration below'
20
+ const STYLED_TODO_WARNING = 'Please double check styled(Box) migration(s) below'
21
+
22
+ /** @internal */
23
+ export default function transform(
24
+ fileInfo: FileInfo,
25
+ api: API,
26
+ options?: BaseOptions,
27
+ ): string | undefined {
28
+ const {fromPackage, toPackage} = options || {}
29
+
30
+ return transformComponent(fileInfo, api, ({j, root, markChanged}) => {
31
+ const localNames = getComponentLocalNames(j, root, 'Box', options)
32
+ const styledAliases = getStyledComponentAliases(j, root, localNames)
33
+
34
+ if (!shouldTransformComponent(j, root, 'Box', localNames, options)) {
35
+ return
36
+ }
37
+
38
+ const replaceWithFlex = (attrs: (JSXAttribute | JSXSpreadAttribute)[]) => {
39
+ const display = getStaticAttributeExpression(j, attrs, 'display')
40
+ return display === 'flex' || display == 'inline-flex'
41
+ }
42
+
43
+ const replaceWithGrid = (attrs: (JSXAttribute | JSXSpreadAttribute)[]) => {
44
+ const display = getStaticAttributeExpression(j, attrs, 'display')
45
+ return display === 'grid' || display == 'inline-grid'
46
+ }
47
+
48
+ if (transformImport(j, root, 'Box', fromPackage, toPackage)) {
49
+ markChanged()
50
+ }
51
+
52
+ if (
53
+ replaceElement(
54
+ j,
55
+ root,
56
+ replaceWithFlex,
57
+ {
58
+ element: 'Box',
59
+ localNames,
60
+ },
61
+ {
62
+ element: 'Flex',
63
+ callback: (path) => transformAttributes(j, path, FLEX_MODS, FLEX_TODO_WARNING),
64
+ },
65
+ )
66
+ ) {
67
+ markChanged()
68
+ }
69
+
70
+ if (
71
+ replaceElement(
72
+ j,
73
+ root,
74
+ replaceWithGrid,
75
+ {
76
+ element: 'Box',
77
+ localNames,
78
+ callback: (path) => transformAttributes(j, path, BOX_MODS, BOX_TODO_WARNING),
79
+ },
80
+ {
81
+ element: 'Grid',
82
+ callback: (path) => transformAttributes(j, path, GRID_MODS, GRID_TODO_WARNING),
83
+ },
84
+ )
85
+ ) {
86
+ markChanged()
87
+ }
88
+
89
+ if (
90
+ transformStyledComponents(
91
+ j,
92
+ root,
93
+ styledAliases,
94
+ (attrs) => !replaceWithFlex(attrs) && !replaceWithGrid(attrs),
95
+ {
96
+ warning: STYLED_TODO_WARNING,
97
+ callback: (path) => transformAttributes(j, path, BOX_MODS, BOX_TODO_WARNING),
98
+ },
99
+ )
100
+ ) {
101
+ markChanged()
102
+ }
103
+ })
104
+ }
@@ -0,0 +1,592 @@
1
+ import type {AttributeMods} from '../../../types/AttributeMods'
2
+
3
+ /** @internal */
4
+ export const CARD_MODS: AttributeMods = {
5
+ alignItems: {
6
+ type: 'style-only',
7
+ style: 'alignItems',
8
+ },
9
+ border: {
10
+ type: 'remove',
11
+ },
12
+ borderTop: {
13
+ type: 'style-mapped',
14
+ style: 'borderTop',
15
+ mapping: {
16
+ true: '1px solid var(--tone-separator, var(--border-color-default))',
17
+ default: '1px solid var(--tone-separator, var(--border-color-default))',
18
+ muted: '1px solid var(--tone-separator, var(--border-color-default))',
19
+ false: 'none',
20
+ none: 'none',
21
+ },
22
+ },
23
+ borderRight: {
24
+ type: 'style-mapped',
25
+ style: 'borderRight',
26
+ mapping: {
27
+ true: '1px solid var(--tone-separator, var(--border-color-default))',
28
+ default: '1px solid var(--tone-separator, var(--border-color-default))',
29
+ muted: '1px solid var(--tone-separator, var(--border-color-default))',
30
+ false: 'none',
31
+ none: 'none',
32
+ },
33
+ },
34
+ borderbottom: {
35
+ type: 'style-mapped',
36
+ style: 'borderBottom',
37
+ mapping: {
38
+ true: '1px solid var(--tone-separator, var(--border-color-default))',
39
+ default: '1px solid var(--tone-separator, var(--border-color-default))',
40
+ muted: '1px solid var(--tone-separator, var(--border-color-default))',
41
+ false: 'none',
42
+ none: 'none',
43
+ },
44
+ },
45
+ borderLeft: {
46
+ type: 'style-mapped',
47
+ style: 'borderLeft',
48
+ mapping: {
49
+ true: '1px solid var(--tone-separator, var(--border-color-default))',
50
+ default: '1px solid var(--tone-separator, var(--border-color-default))',
51
+ muted: '1px solid var(--tone-separator, var(--border-color-default))',
52
+ false: 'none',
53
+ none: 'none',
54
+ },
55
+ },
56
+ borderWidth: {type: 'remove'},
57
+ column: {
58
+ type: 'style-mapped',
59
+ style: 'gridColumn',
60
+ mapping: {
61
+ auto: 'auto',
62
+ full: '1 / -1',
63
+ 1: 'span 1 / span 1',
64
+ 2: 'span 2 / span 2',
65
+ 3: 'span 3 / span 3',
66
+ 4: 'span 4 / span 4',
67
+ 5: 'span 5 / span 5',
68
+ 6: 'span 6 / span 6',
69
+ 7: 'span 7 / span 7',
70
+ 8: 'span 8 / span 8',
71
+ 9: 'span 9 / span 9',
72
+ 10: 'span 10 / span 10',
73
+ 11: 'span 11 / span 11',
74
+ 12: 'span 12 / span 12',
75
+ },
76
+ },
77
+ columnEnd: {
78
+ type: 'style-mapped',
79
+ style: 'gridColumnEnd',
80
+ mapping: {
81
+ auto: 'auto',
82
+ 1: '1',
83
+ 2: '2',
84
+ 3: '3',
85
+ 4: '4',
86
+ 5: '5',
87
+ 6: '6',
88
+ 7: '7',
89
+ 8: '8',
90
+ 9: '9',
91
+ 10: '10',
92
+ 11: '11',
93
+ 12: '12',
94
+ },
95
+ },
96
+ columnStart: {
97
+ type: 'style-mapped',
98
+ style: 'gridColumnStart',
99
+ mapping: {
100
+ auto: 'auto',
101
+ 1: '1',
102
+ 2: '2',
103
+ 3: '3',
104
+ 4: '4',
105
+ 5: '5',
106
+ 6: '6',
107
+ 7: '7',
108
+ 8: '8',
109
+ 9: '9',
110
+ 10: '10',
111
+ 11: '11',
112
+ 12: '12',
113
+ },
114
+ },
115
+ display: {
116
+ type: 'style-only',
117
+ style: 'display',
118
+ },
119
+ flex: {
120
+ type: 'style-mapped',
121
+ style: 'flex',
122
+ mapping: {
123
+ none: '0 0 auto',
124
+ auto: '1 1 auto',
125
+ initial: '0 1 auto',
126
+ 1: '1',
127
+ 2: '2',
128
+ 3: '3',
129
+ 4: '4',
130
+ 5: '5',
131
+ 6: '6',
132
+ 7: '7',
133
+ 8: '8',
134
+ 9: '9',
135
+ 10: '10',
136
+ 11: '11',
137
+ 12: '12',
138
+ },
139
+ },
140
+ flexDirection: {
141
+ type: 'style-only',
142
+ style: 'flexDirection',
143
+ },
144
+ flexWrap: {
145
+ type: 'style-only',
146
+ style: 'flexWrap',
147
+ },
148
+ gap: {
149
+ type: 'style-mapped',
150
+ style: 'gap',
151
+ mapping: {
152
+ 0: 'var(--space-0)',
153
+ 1: 'var(--space-1)',
154
+ 2: 'var(--space-2)',
155
+ 3: 'var(--space-3)',
156
+ 4: 'var(--space-4)',
157
+ 5: 'var(--space-5)',
158
+ 6: 'var(--space-6)',
159
+ 7: 'var(--space-7)',
160
+ 8: 'var(--space-8)',
161
+ 9: 'var(--space-9)',
162
+ },
163
+ },
164
+ gapX: {
165
+ type: 'style-mapped',
166
+ style: 'rowGap',
167
+ mapping: {
168
+ 0: 'var(--space-0)',
169
+ 1: 'var(--space-1)',
170
+ 2: 'var(--space-2)',
171
+ 3: 'var(--space-3)',
172
+ 4: 'var(--space-4)',
173
+ 5: 'var(--space-5)',
174
+ 6: 'var(--space-6)',
175
+ 7: 'var(--space-7)',
176
+ 8: 'var(--space-8)',
177
+ 9: 'var(--space-9)',
178
+ },
179
+ },
180
+ gapY: {
181
+ type: 'style-mapped',
182
+ style: 'columnGap',
183
+ mapping: {
184
+ 0: 'var(--space-0)',
185
+ 1: 'var(--space-1)',
186
+ 2: 'var(--space-2)',
187
+ 3: 'var(--space-3)',
188
+ 4: 'var(--space-4)',
189
+ 5: 'var(--space-5)',
190
+ 6: 'var(--space-6)',
191
+ 7: 'var(--space-7)',
192
+ 8: 'var(--space-8)',
193
+ 9: 'var(--space-9)',
194
+ },
195
+ },
196
+ gridAutoColumns: {
197
+ type: 'style-only',
198
+ style: 'gridAutoColumns',
199
+ },
200
+ gridAutoFlow: {
201
+ type: 'style-only',
202
+ style: 'gridAutoFlow',
203
+ },
204
+ gridAutoRows: {
205
+ type: 'style-only',
206
+ style: 'gridAutoRows',
207
+ },
208
+ gridColumn: {
209
+ type: 'style-mapped',
210
+ style: 'gridColumn',
211
+ mapping: {
212
+ auto: 'auto',
213
+ full: '1 / -1',
214
+ 1: 'span 1 / span 1',
215
+ 2: 'span 2 / span 2',
216
+ 3: 'span 3 / span 3',
217
+ 4: 'span 4 / span 4',
218
+ 5: 'span 5 / span 5',
219
+ 6: 'span 6 / span 6',
220
+ 7: 'span 7 / span 7',
221
+ 8: 'span 8 / span 8',
222
+ 9: 'span 9 / span 9',
223
+ 10: 'span 10 / span 10',
224
+ 11: 'span 11 / span 11',
225
+ 12: 'span 12 / span 12',
226
+ },
227
+ },
228
+ gridColumnEnd: {
229
+ type: 'style-mapped',
230
+ style: 'gridColumnEnd',
231
+ mapping: {
232
+ auto: 'auto',
233
+ 1: '1',
234
+ 2: '2',
235
+ 3: '3',
236
+ 4: '4',
237
+ 5: '5',
238
+ 6: '6',
239
+ 7: '7',
240
+ 8: '8',
241
+ 9: '9',
242
+ 10: '10',
243
+ 11: '11',
244
+ 12: '12',
245
+ },
246
+ },
247
+ gridColumnStart: {
248
+ type: 'style-mapped',
249
+ style: 'gridColumnStart',
250
+ mapping: {
251
+ auto: 'auto',
252
+ 1: '1',
253
+ 2: '2',
254
+ 3: '3',
255
+ 4: '4',
256
+ 5: '5',
257
+ 6: '6',
258
+ 7: '7',
259
+ 8: '8',
260
+ 9: '9',
261
+ 10: '10',
262
+ 11: '11',
263
+ 12: '12',
264
+ },
265
+ },
266
+ gridRow: {
267
+ type: 'style-mapped',
268
+ style: 'gridRow',
269
+ mapping: {
270
+ auto: 'auto',
271
+ full: '1 / -1',
272
+ 1: 'span 1 / span 1',
273
+ 2: 'span 2 / span 2',
274
+ 3: 'span 3 / span 3',
275
+ 4: 'span 4 / span 4',
276
+ 5: 'span 5 / span 5',
277
+ 6: 'span 6 / span 6',
278
+ 7: 'span 7 / span 7',
279
+ 8: 'span 8 / span 8',
280
+ 9: 'span 9 / span 9',
281
+ 10: 'span 10 / span 10',
282
+ 11: 'span 11 / span 11',
283
+ 12: 'span 12 / span 12',
284
+ },
285
+ },
286
+ gridRowEnd: {
287
+ type: 'style-mapped',
288
+ style: 'gridRowEnd',
289
+ mapping: {
290
+ auto: 'auto',
291
+ 1: '1',
292
+ 2: '2',
293
+ 3: '3',
294
+ 4: '4',
295
+ 5: '5',
296
+ 6: '6',
297
+ 7: '7',
298
+ 8: '8',
299
+ 9: '9',
300
+ 10: '10',
301
+ 11: '11',
302
+ 12: '12',
303
+ },
304
+ },
305
+ gridRowStart: {
306
+ type: 'style-mapped',
307
+ style: 'gridRowStart',
308
+ mapping: {
309
+ auto: 'auto',
310
+ 1: '1',
311
+ 2: '2',
312
+ 3: '3',
313
+ 4: '4',
314
+ 5: '5',
315
+ 6: '6',
316
+ 7: '7',
317
+ 8: '8',
318
+ 9: '9',
319
+ 10: '10',
320
+ 11: '11',
321
+ 12: '12',
322
+ },
323
+ },
324
+ gridTemplateColumns: {
325
+ type: 'style-mapped',
326
+ style: 'gridTemplateColumns',
327
+ mapping: {
328
+ 0: '0px',
329
+ 1: 'repeat(1, 1fr)',
330
+ 2: 'repeat(2, 1fr)',
331
+ 3: 'repeat(3, 1fr)',
332
+ 4: 'repeat(4, 1fr)',
333
+ 5: 'repeat(5, 1fr)',
334
+ 6: 'repeat(6, 1fr)',
335
+ 7: 'repeat(7, 1fr)',
336
+ 8: 'repeat(8, 1fr)',
337
+ 9: 'repeat(9, 1fr)',
338
+ 10: 'repeat(10, 1fr)',
339
+ 11: 'repeat(11, 1fr)',
340
+ 12: 'repeat(12, 1fr)',
341
+ },
342
+ },
343
+ gridTemplateRows: {
344
+ type: 'style-mapped',
345
+ style: 'gridTemplateRows',
346
+ mapping: {
347
+ 0: '0px',
348
+ 1: 'repeat(1, 1fr)',
349
+ 2: 'repeat(2, 1fr)',
350
+ 3: 'repeat(3, 1fr)',
351
+ 4: 'repeat(4, 1fr)',
352
+ 5: 'repeat(5, 1fr)',
353
+ 6: 'repeat(6, 1fr)',
354
+ 7: 'repeat(7, 1fr)',
355
+ 8: 'repeat(8, 1fr)',
356
+ 9: 'repeat(9, 1fr)',
357
+ 10: 'repeat(10, 1fr)',
358
+ 11: 'repeat(11, 1fr)',
359
+ 12: 'repeat(12, 1fr)',
360
+ },
361
+ },
362
+ height: {
363
+ type: 'style-mapped',
364
+ style: 'height',
365
+ mapping: {
366
+ fill: '100%',
367
+ auto: 'auto',
368
+ min: 'min-content',
369
+ max: 'max-content',
370
+ fit: 'fit-content',
371
+ stretch: 'stretch',
372
+ },
373
+ },
374
+ inset: {
375
+ type: 'style-only',
376
+ style: 'inset',
377
+ },
378
+ insetTop: {
379
+ type: 'style-only',
380
+ style: 'top',
381
+ },
382
+ insetRight: {
383
+ type: 'style-only',
384
+ style: 'right',
385
+ },
386
+ insetBottom: {
387
+ type: 'style-only',
388
+ style: 'bottom',
389
+ },
390
+ insetLeft: {
391
+ type: 'style-only',
392
+ style: 'left',
393
+ },
394
+ justifyContent: {
395
+ type: 'style-only',
396
+ style: 'justifyContent',
397
+ },
398
+ maxWidth: {
399
+ type: 'style-mapped',
400
+ style: 'maxWidth',
401
+ mapping: {
402
+ auto: 'none',
403
+ fill: '100%',
404
+ 0: '20rem',
405
+ 1: '40rem',
406
+ 2: '60rem',
407
+ 3: '80rem',
408
+ 4: '100rem',
409
+ 5: '120rem',
410
+ },
411
+ },
412
+ minHeight: {
413
+ type: 'style-mapped',
414
+ style: 'minHeight',
415
+ mapping: {
416
+ full: '100%',
417
+ 0: '0',
418
+ },
419
+ },
420
+ minWidth: {
421
+ type: 'style-mapped',
422
+ style: 'minWidth',
423
+ mapping: {
424
+ full: '100%',
425
+ 0: '0',
426
+ auto: 'auto',
427
+ min: 'min-content',
428
+ max: 'max-content',
429
+ fit: 'fit-content',
430
+ },
431
+ },
432
+ muted: {
433
+ type: 'warn-only',
434
+ warning: 'Please double check the Card migration below. The muted prop has been deprecated.',
435
+ },
436
+ outline: {
437
+ type: 'style-only',
438
+ style: 'outline',
439
+ },
440
+ overflow: {
441
+ type: 'style-only',
442
+ style: 'overflow',
443
+ },
444
+ overflowX: {
445
+ type: 'style-only',
446
+ style: 'overflowX',
447
+ },
448
+ overflowY: {
449
+ type: 'style-only',
450
+ style: 'overflowY',
451
+ },
452
+ padding: {
453
+ type: 'composite',
454
+ name: 'density',
455
+ mapping: {
456
+ compact: {
457
+ padding: 3,
458
+ radius: 2,
459
+ },
460
+ regular: {
461
+ padding: 4,
462
+ radius: 3,
463
+ },
464
+ loose: {
465
+ padding: 5,
466
+ radius: 4,
467
+ },
468
+ },
469
+ },
470
+ position: {
471
+ type: 'style-only',
472
+ style: 'position',
473
+ },
474
+ row: {
475
+ type: 'style-mapped',
476
+ style: 'gridRow',
477
+ mapping: {
478
+ auto: 'auto',
479
+ full: '1 / -1',
480
+ 1: 'span 1 / span 1',
481
+ 2: 'span 2 / span 2',
482
+ 3: 'span 3 / span 3',
483
+ 4: 'span 4 / span 4',
484
+ 5: 'span 5 / span 5',
485
+ 6: 'span 6 / span 6',
486
+ 7: 'span 7 / span 7',
487
+ 8: 'span 8 / span 8',
488
+ 9: 'span 9 / span 9',
489
+ 10: 'span 10 / span 10',
490
+ 11: 'span 11 / span 11',
491
+ 12: 'span 12 / span 12',
492
+ },
493
+ },
494
+ rowEnd: {
495
+ type: 'style-mapped',
496
+ style: 'gridRowEnd',
497
+ mapping: {
498
+ auto: 'auto',
499
+ 1: '1',
500
+ 2: '2',
501
+ 3: '3',
502
+ 4: '4',
503
+ 5: '5',
504
+ 6: '6',
505
+ 7: '7',
506
+ 8: '8',
507
+ 9: '9',
508
+ 10: '10',
509
+ 11: '11',
510
+ 12: '12',
511
+ },
512
+ },
513
+ rowStart: {
514
+ type: 'style-mapped',
515
+ style: 'gridRowStart',
516
+ mapping: {
517
+ auto: 'auto',
518
+ 1: '1',
519
+ 2: '2',
520
+ 3: '3',
521
+ 4: '4',
522
+ 5: '5',
523
+ 6: '6',
524
+ 7: '7',
525
+ 8: '8',
526
+ 9: '9',
527
+ 10: '10',
528
+ 11: '11',
529
+ 12: '12',
530
+ },
531
+ },
532
+ scheme: {
533
+ type: 'warn-only',
534
+ warning: 'Please double check the Card migration below. The scheme prop has been deprecated.',
535
+ },
536
+ shadow: {
537
+ type: 'style-mapped',
538
+ style: 'boxShadow',
539
+ mapping: {
540
+ 0: 'var(--shadow0)',
541
+ 1: 'var(--shadow1)',
542
+ 2: 'var(--shadow2)',
543
+ 3: 'var(--shadow3)',
544
+ 4: 'var(--shadow4)',
545
+ 5: 'var(--shadow5)',
546
+ },
547
+ },
548
+ sizing: {
549
+ type: 'style-mapped',
550
+ style: 'boxSizing',
551
+ mapping: {
552
+ content: 'content-box',
553
+ border: 'border-box',
554
+ },
555
+ },
556
+ textAlign: {
557
+ type: 'style-only',
558
+ style: 'textAlign',
559
+ },
560
+ tone: {
561
+ type: 'mapped-only',
562
+ mapping: {
563
+ default: 'none',
564
+ none: 'none',
565
+ transparent: 'neutral',
566
+ neutral: 'neutral',
567
+ brand: 'primary',
568
+ primary: 'primary',
569
+ positive: 'positive',
570
+ caution: 'caution',
571
+ critical: 'critical',
572
+ suggest: 'suggest',
573
+ },
574
+ },
575
+ width: {
576
+ type: 'style-mapped',
577
+ style: 'width',
578
+ mapping: {
579
+ auto: 'auto',
580
+ fill: '100%',
581
+ stretch: 'stretch',
582
+ min: 'min-content',
583
+ max: 'max-content',
584
+ 0: '20rem',
585
+ 1: '40rem',
586
+ 2: '60rem',
587
+ 3: '80rem',
588
+ 4: '100rem',
589
+ 5: '120rem',
590
+ },
591
+ },
592
+ }