@@ -10,7 +10,7 @@ import SwiftSyntax
1010import SwiftSyntaxMacros
1111
1212extension CSSStyle {
13- public enum Color : HTMLInitializable {
13+ public enum Color : HTMLParsable {
1414 case currentColor
1515 case hex( String )
1616 case hsl( SFloat , SFloat , SFloat , SFloat ? = nil )
@@ -90,7 +90,7 @@ extension CSSStyle {
9090 case lemonChiffon
9191 case lightBlue
9292 case lightCoral
93- case lighCyan
93+ case lightCyan
9494 case lightGoldenRodYellow
9595 case lightGray, lightGrey
9696 case lightGreen
@@ -167,12 +167,170 @@ extension CSSStyle {
167167 case yellow
168168 case yellowGreen
169169
170- public init ? ( context: some MacroExpansionContext , isUnchecked: Bool , key: String , arguments: LabeledExprListSyntax ) {
171- return nil
170+ // MARK: init
171+ public init ? ( context: HTMLExpansionContext ) {
172+ switch context. key {
173+ case " currentColor " : self = . currentColor
174+ case " inherit " : self = . inherit
175+ case " initial " : self = . initial
176+ case " transparent " : self = . transparent
177+
178+ case " aliceBlue " : self = . aliceBlue
179+ case " antiqueWhite " : self = . antiqueWhite
180+ case " aqua " : self = . aqua
181+ case " aquamarine " : self = . aquamarine
182+ case " azure " : self = . azure
183+ case " beige " : self = . beige
184+ case " bisque " : self = . bisque
185+ case " black " : self = . black
186+ case " blanchedAlmond " : self = . blanchedAlmond
187+ case " blue " : self = . blue
188+ case " blueViolet " : self = . blueViolet
189+ case " brown " : self = . brown
190+ case " burlyWood " : self = . burlyWood
191+ case " cadetBlue " : self = . cadetBlue
192+ case " chartreuse " : self = . chartreuse
193+ case " chocolate " : self = . chocolate
194+ case " coral " : self = . coral
195+ case " cornflowerBlue " : self = . cornflowerBlue
196+ case " cornsilk " : self = . cornsilk
197+ case " crimson " : self = . crimson
198+ case " cyan " : self = . cyan
199+ case " darkBlue " : self = . darkBlue
200+ case " darkCyan " : self = . darkCyan
201+ case " darkGoldenRod " : self = . darkGoldenRod
202+ case " darkGray " : self = . darkGray
203+ case " darkGrey " : self = . darkGrey
204+ case " darkGreen " : self = . darkGreen
205+ case " darkKhaki " : self = . darkKhaki
206+ case " darkMagenta " : self = . darkMagenta
207+ case " darkOliveGreen " : self = . darkOliveGreen
208+ case " darkOrange " : self = . darkOrange
209+ case " darkOrchid " : self = . darkOrchid
210+ case " darkRed " : self = . darkRed
211+ case " darkSalmon " : self = . darkSalmon
212+ case " darkSeaGreen " : self = . darkSeaGreen
213+ case " darkSlateBlue " : self = . darkSlateBlue
214+ case " darkSlateGray " : self = . darkSlateGray
215+ case " darkSlateGrey " : self = . darkSlateGrey
216+ case " darkTurquoise " : self = . darkTurquoise
217+ case " darkViolet " : self = . darkViolet
218+ case " deepPink " : self = . deepPink
219+ case " deepSkyBlue " : self = . deepSkyBlue
220+ case " dimGray " : self = . dimGray
221+ case " dimGrey " : self = . dimGrey
222+ case " dodgerBlue " : self = . dodgerBlue
223+ case " fireBrick " : self = . fireBrick
224+ case " floralWhite " : self = . floralWhite
225+ case " forestGreen " : self = . forestGreen
226+ case " fuchsia " : self = . fuchsia
227+ case " gainsboro " : self = . gainsboro
228+ case " ghostWhite " : self = . ghostWhite
229+ case " gold " : self = . gold
230+ case " goldenRod " : self = . goldenRod
231+ case " gray " : self = . gray
232+ case " grey " : self = . grey
233+ case " green " : self = . green
234+ case " greenYellow " : self = . greenYellow
235+ case " honeyDew " : self = . honeyDew
236+ case " hotPink " : self = . hotPink
237+ case " indianRed " : self = . indianRed
238+ case " indigo " : self = . indigo
239+ case " ivory " : self = . ivory
240+ case " khaki " : self = . khaki
241+ case " lavender " : self = . lavender
242+ case " lavenderBlush " : self = . lavenderBlush
243+ case " lawnGreen " : self = . lawnGreen
244+ case " lemonChiffon " : self = . lemonChiffon
245+ case " lightBlue " : self = . lightBlue
246+ case " lightCoral " : self = . lightCoral
247+ case " lightCyan " : self = . lightCyan
248+ case " lightGoldenRodYellow " : self = . lightGoldenRodYellow
249+ case " lightGray " : self = . lightGray
250+ case " lightGrey " : self = . lightGrey
251+ case " lightGreen " : self = . lightGreen
252+ case " lightPink " : self = . lightPink
253+ case " lightSalmon " : self = . lightSalmon
254+ case " lightSeaGreen " : self = . lightSeaGreen
255+ case " lightSkyBlue " : self = . lightSkyBlue
256+ case " lightSlateGray " : self = . lightSlateGray
257+ case " lightSlateGrey " : self = . lightSlateGrey
258+ case " lightSteelBlue " : self = . lightSteelBlue
259+ case " lightYellow " : self = . lightYellow
260+ case " lime " : self = . lime
261+ case " limeGreen " : self = . limeGreen
262+ case " linen " : self = . linen
263+ case " magenta " : self = . magenta
264+ case " maroon " : self = . maroon
265+ case " mediumAquaMarine " : self = . mediumAquaMarine
266+ case " mediumBlue " : self = . mediumBlue
267+ case " mediumOrchid " : self = . mediumOrchid
268+ case " mediumPurple " : self = . mediumPurple
269+ case " mediumSeaGreen " : self = . mediumSeaGreen
270+ case " mediumSlateBlue " : self = . mediumSlateBlue
271+ case " mediumSpringGreen " : self = . mediumSpringGreen
272+ case " mediumTurquoise " : self = . mediumTurquoise
273+ case " mediumVioletRed " : self = . mediumVioletRed
274+ case " midnightBlue " : self = . midnightBlue
275+ case " mintCream " : self = . mintCream
276+ case " mistyRose " : self = . mistyRose
277+ case " moccasin " : self = . moccasin
278+ case " navajoWhite " : self = . navajoWhite
279+ case " navy " : self = . navy
280+ case " oldLace " : self = . oldLace
281+ case " olive " : self = . olive
282+ case " oliveDrab " : self = . oliveDrab
283+ case " orange " : self = . orange
284+ case " orangeRed " : self = . orangeRed
285+ case " orchid " : self = . orchid
286+ case " paleGoldenRod " : self = . paleGoldenRod
287+ case " paleGreen " : self = . paleGreen
288+ case " paleTurquoise " : self = . paleTurquoise
289+ case " paleVioletRed " : self = . paleVioletRed
290+ case " papayaWhip " : self = . papayaWhip
291+ case " peachPuff " : self = . peachPuff
292+ case " peru " : self = . peru
293+ case " pink " : self = . pink
294+ case " plum " : self = . plum
295+ case " powderBlue " : self = . powderBlue
296+ case " purple " : self = . purple
297+ case " rebeccaPurple " : self = . rebeccaPurple
298+ case " red " : self = . red
299+ case " rosyBrown " : self = . rosyBrown
300+ case " royalBlue " : self = . royalBlue
301+ case " saddleBrown " : self = . saddleBrown
302+ case " salmon " : self = . salmon
303+ case " sandyBrown " : self = . sandyBrown
304+ case " seaGreen " : self = . seaGreen
305+ case " seaShell " : self = . seaShell
306+ case " sienna " : self = . sienna
307+ case " silver " : self = . silver
308+ case " skyBlue " : self = . skyBlue
309+ case " slateBlue " : self = . slateBlue
310+ case " slateGray " : self = . slateGray
311+ case " slateGrey " : self = . slateGrey
312+ case " snow " : self = . snow
313+ case " springGreen " : self = . springGreen
314+ case " steelBlue " : self = . steelBlue
315+ case " tan " : self = . tan
316+ case " teal " : self = . teal
317+ case " thistle " : self = . thistle
318+ case " tomato " : self = . tomato
319+ case " turquoise " : self = . turquoise
320+ case " violet " : self = . violet
321+ case " wheat " : self = . wheat
322+ case " white " : self = . white
323+ case " whiteSmoke " : self = . whiteSmoke
324+ case " yellow " : self = . yellow
325+ case " yellowGreen " : self = . yellowGreen
326+ default : return nil
327+ }
172328 }
173329
330+ /// - Warning: Never use.
174331 public var key : String { " " }
175332
333+ // MARK: HTML value
176334 @inlinable
177335 public func htmlValue( encoding: HTMLEncoding , forMacro: Bool ) -> String ? {
178336 switch self {
0 commit comments