@@ -53,17 +53,12 @@ final class Protofier {
53
53
..quoted = value.hasQuotes;
54
54
case SassNumber ():
55
55
result.number = _protofyNumber (value);
56
- case SassColor (space: ColorSpace .hsl):
57
- result.hslColor = Value_HslColor ()
58
- ..hue = value.channel ('hue' ) * 1.0
59
- ..saturation = value.channel ('saturation' )
60
- ..lightness = value.channel ('lightness' )
61
- ..alpha = value.alpha * 1.0 ;
62
56
case SassColor ():
63
- result.rgbColor = Value_RgbColor ()
64
- ..red = value.channel ('red' ).clamp (0 , 255 ).round ()
65
- ..green = value.channel ('green' ).clamp (0 , 255 ).round ()
66
- ..blue = value.channel ('blue' ).clamp (0 , 255 ).round ()
57
+ result.color = Value_Color ()
58
+ ..space = value.space.name
59
+ ..channel1 = value.channel0
60
+ ..channel2 = value.channel1
61
+ ..channel3 = value.channel2
67
62
..alpha = value.alpha * 1.0 ;
68
63
case SassArgumentList ():
69
64
_argumentLists.add (value);
@@ -181,17 +176,85 @@ final class Protofier {
181
176
case Value_Value .number:
182
177
return _deprotofyNumber (value.number);
183
178
184
- case Value_Value .rgbColor:
185
- return SassColor .rgb (value.rgbColor.red, value.rgbColor.green,
186
- value.rgbColor.blue, value.rgbColor.alpha);
187
-
188
- case Value_Value .hslColor:
189
- return SassColor .hsl (value.hslColor.hue, value.hslColor.saturation,
190
- value.hslColor.lightness, value.hslColor.alpha);
191
-
192
- case Value_Value .hwbColor:
193
- return SassColor .hwb (value.hwbColor.hue, value.hwbColor.whiteness,
194
- value.hwbColor.blackness, value.hwbColor.alpha);
179
+ case Value_Value .color:
180
+ var space = ColorSpace .fromName (value.color.space);
181
+ switch (space) {
182
+ case ColorSpace .rgb:
183
+ return SassColor .rgb (value.color.channel1, value.color.channel2,
184
+ value.color.channel3, value.color.alpha);
185
+
186
+ case ColorSpace .hsl:
187
+ return SassColor .hsl (value.color.channel1, value.color.channel2,
188
+ value.color.channel3, value.color.alpha);
189
+
190
+ case ColorSpace .hwb:
191
+ return SassColor .hwb (value.color.channel1, value.color.channel2,
192
+ value.color.channel3, value.color.alpha);
193
+
194
+ case ColorSpace .lab:
195
+ return SassColor .lab (value.color.channel1, value.color.channel2,
196
+ value.color.channel3, value.color.alpha);
197
+ case ColorSpace .oklab:
198
+ return SassColor .oklab (value.color.channel1, value.color.channel2,
199
+ value.color.channel3, value.color.alpha);
200
+
201
+ case ColorSpace .lch:
202
+ return SassColor .lch (value.color.channel1, value.color.channel2,
203
+ value.color.channel3, value.color.alpha);
204
+ case ColorSpace .oklch:
205
+ return SassColor .oklch (value.color.channel1, value.color.channel2,
206
+ value.color.channel3, value.color.alpha);
207
+
208
+ case ColorSpace .srgb:
209
+ return SassColor .srgb (value.color.channel1, value.color.channel2,
210
+ value.color.channel3, value.color.alpha);
211
+ case ColorSpace .srgbLinear:
212
+ return SassColor .srgbLinear (
213
+ value.color.channel1,
214
+ value.color.channel2,
215
+ value.color.channel3,
216
+ value.color.alpha);
217
+ case ColorSpace .displayP3:
218
+ return SassColor .displayP3 (
219
+ value.color.channel1,
220
+ value.color.channel2,
221
+ value.color.channel3,
222
+ value.color.alpha);
223
+ case ColorSpace .a98Rgb:
224
+ return SassColor .a98Rgb (
225
+ value.color.channel1,
226
+ value.color.channel2,
227
+ value.color.channel3,
228
+ value.color.alpha);
229
+ case ColorSpace .prophotoRgb:
230
+ return SassColor .prophotoRgb (
231
+ value.color.channel1,
232
+ value.color.channel2,
233
+ value.color.channel3,
234
+ value.color.alpha);
235
+ case ColorSpace .rec2020:
236
+ return SassColor .rec2020 (
237
+ value.color.channel1,
238
+ value.color.channel2,
239
+ value.color.channel3,
240
+ value.color.alpha);
241
+
242
+ case ColorSpace .xyzD50:
243
+ return SassColor .xyzD50 (
244
+ value.color.channel1,
245
+ value.color.channel2,
246
+ value.color.channel3,
247
+ value.color.alpha);
248
+ case ColorSpace .xyzD65:
249
+ return SassColor .xyzD65 (
250
+ value.color.channel1,
251
+ value.color.channel2,
252
+ value.color.channel3,
253
+ value.color.alpha);
254
+
255
+ default :
256
+ throw "Unreachable" ;
257
+ }
195
258
196
259
case Value_Value .argumentList:
197
260
if (value.argumentList.id != 0 ) {
@@ -276,10 +339,8 @@ final class Protofier {
276
339
throw paramsError (error.toString ());
277
340
}
278
341
279
- if (value.whichValue () == Value_Value .rgbColor) {
280
- name = 'RgbColor.$name ' ;
281
- } else if (value.whichValue () == Value_Value .hslColor) {
282
- name = 'HslColor.$name ' ;
342
+ if (value.whichValue () == Value_Value .color) {
343
+ name = 'Color.$name ' ;
283
344
}
284
345
285
346
throw paramsError (
0 commit comments