@@ -24,6 +24,7 @@ const defaultPluginSettings: PluginSettings = {
24
24
responsiveRoot : false ,
25
25
flutterGenerationMode : "snippet" ,
26
26
swiftUIGenerationMode : "snippet" ,
27
+ roundTailwind : false ,
27
28
} ;
28
29
29
30
// A helper type guard to ensure the key belongs to the PluginSettings type
@@ -98,169 +99,148 @@ const standardMode = async () => {
98
99
} ;
99
100
} ;
100
101
102
+ const codegenMode = async ( ) => {
103
+ // figma.showUI(__html__, { visible: false });
104
+ await getUserSettings ( ) ;
105
+
106
+ figma . codegen . on ( "generate" , ( { language, node } ) => {
107
+ const convertedSelection = convertIntoNodes ( [ node ] , null ) ;
108
+
109
+ switch ( language ) {
110
+ case "html" :
111
+ return [
112
+ {
113
+ title : `Code` ,
114
+ code : htmlMain (
115
+ convertedSelection ,
116
+ { ...userPluginSettings , jsx : false } ,
117
+ true
118
+ ) ,
119
+ language : "HTML" ,
120
+ } ,
121
+ {
122
+ title : `Text Styles` ,
123
+ code : htmlCodeGenTextStyles ( false ) ,
124
+ language : "HTML" ,
125
+ } ,
126
+ ] ;
127
+ case "html_jsx" :
128
+ return [
129
+ {
130
+ title : `Code` ,
131
+ code : htmlMain (
132
+ convertedSelection ,
133
+ { ...userPluginSettings , jsx : true } ,
134
+ true
135
+ ) ,
136
+ language : "HTML" ,
137
+ } ,
138
+ {
139
+ title : `Text Styles` ,
140
+ code : htmlCodeGenTextStyles ( true ) ,
141
+ language : "HTML" ,
142
+ } ,
143
+ ] ;
144
+ case "tailwind" :
145
+ return [
146
+ {
147
+ title : `Code` ,
148
+ code : tailwindMain ( convertedSelection , {
149
+ ...userPluginSettings ,
150
+ jsx : false ,
151
+ } ) ,
152
+ language : "HTML" ,
153
+ } ,
154
+ {
155
+ title : `Colors` ,
156
+ code : retrieveGenericSolidUIColors ( "Tailwind" )
157
+ . map ( ( d ) => `#${ d . hex } <- ${ d . colorName } ` )
158
+ . join ( "\n" ) ,
159
+ language : "HTML" ,
160
+ } ,
161
+ {
162
+ title : `Text Styles` ,
163
+ code : tailwindCodeGenTextStyles ( ) ,
164
+ language : "HTML" ,
165
+ } ,
166
+ ] ;
167
+ case "tailwind_jsx" :
168
+ return [
169
+ {
170
+ title : `Code` ,
171
+ code : tailwindMain ( convertedSelection , {
172
+ ...userPluginSettings ,
173
+ jsx : true ,
174
+ } ) ,
175
+ language : "HTML" ,
176
+ } ,
177
+ // {
178
+ // title: `Style`,
179
+ // code: tailwindMain(convertedSelection, defaultPluginSettings),
180
+ // language: "HTML",
181
+ // },
182
+ {
183
+ title : `Colors` ,
184
+ code : retrieveGenericSolidUIColors ( "Tailwind" )
185
+ . map ( ( d ) => `#${ d . hex } <- ${ d . colorName } ` )
186
+ . join ( "\n" ) ,
187
+ language : "HTML" ,
188
+ } ,
189
+ {
190
+ title : `Text Styles` ,
191
+ code : tailwindCodeGenTextStyles ( ) ,
192
+ language : "HTML" ,
193
+ } ,
194
+ ] ;
195
+ case "flutter" :
196
+ return [
197
+ {
198
+ title : `Code` ,
199
+ code : flutterMain ( convertedSelection , {
200
+ ...userPluginSettings ,
201
+ flutterGenerationMode : "snippet" ,
202
+ } ) ,
203
+ language : "SWIFT" ,
204
+ } ,
205
+ {
206
+ title : `Text Styles` ,
207
+ code : flutterCodeGenTextStyles ( ) ,
208
+ language : "SWIFT" ,
209
+ } ,
210
+ ] ;
211
+ case "swiftUI" :
212
+ return [
213
+ {
214
+ title : `SwiftUI` ,
215
+ code : swiftuiMain ( convertedSelection , {
216
+ ...userPluginSettings ,
217
+ swiftUIGenerationMode : "snippet" ,
218
+ } ) ,
219
+ language : "SWIFT" ,
220
+ } ,
221
+ {
222
+ title : `Text Styles` ,
223
+ code : swiftUICodeGenTextStyles ( ) ,
224
+ language : "SWIFT" ,
225
+ } ,
226
+ ] ;
227
+ default :
228
+ break ;
229
+ }
230
+
231
+ const blocks : CodegenResult [ ] = [ ] ;
232
+ return blocks ;
233
+ } ) ;
234
+ } ;
235
+
101
236
switch ( figma . mode ) {
102
237
case "default" :
103
238
case "inspect" :
104
239
standardMode ( ) ;
105
240
break ;
106
241
case "codegen" :
107
- initSettings ( ) ;
108
- // figma.codegen.on("preferenceschange", (preferences) => {
109
-
110
- // });
111
- figma . codegen . on ( "generate" , ( { language, node } ) => {
112
- const convertedSelection = convertIntoNodes ( [ node ] , null ) ;
113
-
114
- switch ( language ) {
115
- case "html" :
116
- return [
117
- {
118
- title : `Code` ,
119
- code : htmlMain (
120
- convertedSelection ,
121
- { ...defaultPluginSettings , jsx : false } ,
122
- true
123
- ) ,
124
- language : "HTML" ,
125
- } ,
126
- {
127
- title : `Text Styles` ,
128
- code : htmlCodeGenTextStyles ( false ) ,
129
- language : "HTML" ,
130
- } ,
131
- ] ;
132
- case "html_jsx" :
133
- return [
134
- {
135
- title : `Code` ,
136
- code : htmlMain (
137
- convertedSelection ,
138
- { ...defaultPluginSettings , jsx : true } ,
139
- true
140
- ) ,
141
- language : "HTML" ,
142
- } ,
143
- {
144
- title : `Text Styles` ,
145
- code : htmlCodeGenTextStyles ( true ) ,
146
- language : "HTML" ,
147
- } ,
148
- ] ;
149
- case "tailwind" :
150
- return [
151
- {
152
- title : `Code` ,
153
- code : tailwindMain ( convertedSelection , {
154
- ...defaultPluginSettings ,
155
- jsx : false ,
156
- } ) ,
157
- language : "HTML" ,
158
- } ,
159
- {
160
- title : `Colors` ,
161
- code : retrieveGenericSolidUIColors ( "Tailwind" )
162
- . map ( ( d ) => `#${ d . hex } <- ${ d . colorName } ` )
163
- . join ( "\n" ) ,
164
- language : "HTML" ,
165
- } ,
166
- {
167
- title : `Text Styles` ,
168
- code : tailwindCodeGenTextStyles ( ) ,
169
- language : "HTML" ,
170
- } ,
171
- ] ;
172
- case "tailwind_jsx" :
173
- return [
174
- {
175
- title : `Code` ,
176
- code : tailwindMain ( convertedSelection , {
177
- ...defaultPluginSettings ,
178
- jsx : true ,
179
- } ) ,
180
- language : "HTML" ,
181
- } ,
182
- // {
183
- // title: `Style`,
184
- // code: tailwindMain(convertedSelection, defaultPluginSettings),
185
- // language: "HTML",
186
- // },
187
- {
188
- title : `Colors` ,
189
- code : retrieveGenericSolidUIColors ( "Tailwind" )
190
- . map ( ( d ) => `#${ d . hex } <- ${ d . colorName } ` )
191
- . join ( "\n" ) ,
192
- language : "HTML" ,
193
- } ,
194
- {
195
- title : `Text Styles` ,
196
- code : tailwindCodeGenTextStyles ( ) ,
197
- language : "HTML" ,
198
- } ,
199
- ] ;
200
- case "flutter" :
201
- return [
202
- {
203
- title : `Code` ,
204
- code : flutterMain ( convertedSelection , {
205
- ...defaultPluginSettings ,
206
- flutterGenerationMode : "snippet" ,
207
- } ) ,
208
- language : "SWIFT" ,
209
- } ,
210
- {
211
- title : `Text Styles` ,
212
- code : flutterCodeGenTextStyles ( ) ,
213
- language : "SWIFT" ,
214
- } ,
215
- ] ;
216
- case "swiftUI" :
217
- return [
218
- {
219
- title : `SwiftUI` ,
220
- code : swiftuiMain ( convertedSelection , defaultPluginSettings ) ,
221
- language : "SWIFT" ,
222
- } ,
223
- {
224
- title : `Text Styles` ,
225
- code : swiftUICodeGenTextStyles ( ) ,
226
- language : "SWIFT" ,
227
- } ,
228
- ] ;
229
- default :
230
- break ;
231
- }
232
-
233
- const blocks : CodegenResult [ ] = [
234
- // {
235
- // title: `Code`,
236
- // code: tailwindMain(convertedSelection, defaultPluginSettings),
237
- // language: "HTML",
238
- // },
239
- // {
240
- // title: `Flutter`,
241
- // code: flutterMain(convertedSelection, defaultPluginSettings),
242
- // language: "SWIFT",
243
- // },
244
- // {
245
- // title: `SwiftUI`,
246
- // code: swiftuiMain(convertedSelection, node.parent?.id),
247
- // language: "SWIFT",
248
- // },
249
- // {
250
- // title: `Settings`,
251
- // code: "To change settings, export to\n CodeSandbox, and see a preview,\n click in the 'Plugins' tab above",
252
- // language: "JSON",
253
- // },
254
- // {
255
- // title: `Tailwind Colors`,
256
- // code: JSON.stringify(colors).split(", ").join(",\n"),
257
- // language: "JSON",
258
- // },
259
- ] ;
260
-
261
- figma . showUI ( __html__ , { visible : false } ) ;
262
- return blocks ;
263
- } ) ;
242
+ codegenMode ( ) ;
243
+ break ;
264
244
default :
265
245
break ;
266
246
}
0 commit comments