@xivdyetools/core 1.12.1 → 1.12.5
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.
- package/dist/data/locales/de.json +1 -1
- package/dist/data/locales/en.json +1 -1
- package/dist/data/locales/fr.json +1 -1
- package/dist/data/locales/ja.json +1 -1
- package/dist/data/locales/ko.json +1 -1
- package/dist/data/locales/zh.json +1 -1
- package/dist/services/ColorService.d.ts +228 -1
- package/dist/services/ColorService.d.ts.map +1 -1
- package/dist/services/ColorService.js +364 -0
- package/dist/services/ColorService.js.map +1 -1
- package/dist/services/color/ColorConverter.d.ts +223 -1
- package/dist/services/color/ColorConverter.d.ts.map +1 -1
- package/dist/services/color/ColorConverter.js +456 -0
- package/dist/services/color/ColorConverter.js.map +1 -1
- package/dist/services/color/RybColorMixer.d.ts +5 -8
- package/dist/services/color/RybColorMixer.d.ts.map +1 -1
- package/dist/services/color/RybColorMixer.js +78 -49
- package/dist/services/color/RybColorMixer.js.map +1 -1
- package/dist/services/color/SpectralMixer.d.ts +77 -0
- package/dist/services/color/SpectralMixer.d.ts.map +1 -0
- package/dist/services/color/SpectralMixer.js +133 -0
- package/dist/services/color/SpectralMixer.js.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +3 -2
|
@@ -30,6 +30,7 @@ import { ColorblindnessSimulator } from './color/ColorblindnessSimulator.js';
|
|
|
30
30
|
import { ColorAccessibility } from './color/ColorAccessibility.js';
|
|
31
31
|
import { ColorManipulator } from './color/ColorManipulator.js';
|
|
32
32
|
import { RybColorMixer } from './color/RybColorMixer.js';
|
|
33
|
+
import { SpectralMixer } from './color/SpectralMixer.js';
|
|
33
34
|
/**
|
|
34
35
|
* Color conversion and manipulation service (Facade)
|
|
35
36
|
* Per R-4: Delegates to focused service classes for better separation of concerns
|
|
@@ -248,6 +249,168 @@ export class ColorService {
|
|
|
248
249
|
return ColorConverter.labToHex(L, a, b);
|
|
249
250
|
}
|
|
250
251
|
// ============================================================================
|
|
252
|
+
// OKLAB/OKLCH Color Space (Modern Perceptual)
|
|
253
|
+
// ============================================================================
|
|
254
|
+
/**
|
|
255
|
+
* Convert RGB to OKLAB color space
|
|
256
|
+
*
|
|
257
|
+
* OKLAB is a modern perceptually uniform color space that fixes issues
|
|
258
|
+
* with CIELAB, particularly for blue colors. Blue + Yellow = Green in OKLAB.
|
|
259
|
+
*
|
|
260
|
+
* @example rgbToOklab(255, 0, 0) -> { L: 0.628, a: 0.225, b: 0.126 }
|
|
261
|
+
*/
|
|
262
|
+
static rgbToOklab(r, g, b) {
|
|
263
|
+
return ColorConverter.rgbToOklab(r, g, b);
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Convert hex color to OKLAB
|
|
267
|
+
*/
|
|
268
|
+
static hexToOklab(hex) {
|
|
269
|
+
return ColorConverter.hexToOklab(hex);
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Convert OKLAB to RGB
|
|
273
|
+
*/
|
|
274
|
+
static oklabToRgb(L, a, b) {
|
|
275
|
+
return ColorConverter.oklabToRgb(L, a, b);
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Convert OKLAB to hex color
|
|
279
|
+
*/
|
|
280
|
+
static oklabToHex(L, a, b) {
|
|
281
|
+
return ColorConverter.oklabToHex(L, a, b);
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Convert RGB to OKLCH (cylindrical OKLAB)
|
|
285
|
+
*
|
|
286
|
+
* OKLCH expresses OKLAB in cylindrical coordinates for intuitive
|
|
287
|
+
* hue manipulation. Ideal for gradient interpolation.
|
|
288
|
+
*/
|
|
289
|
+
static rgbToOklch(r, g, b) {
|
|
290
|
+
return ColorConverter.rgbToOklch(r, g, b);
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Convert hex color to OKLCH
|
|
294
|
+
*/
|
|
295
|
+
static hexToOklch(hex) {
|
|
296
|
+
return ColorConverter.hexToOklch(hex);
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Convert OKLCH to RGB
|
|
300
|
+
*/
|
|
301
|
+
static oklchToRgb(L, C, h) {
|
|
302
|
+
return ColorConverter.oklchToRgb(L, C, h);
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Convert OKLCH to hex color
|
|
306
|
+
*/
|
|
307
|
+
static oklchToHex(L, C, h) {
|
|
308
|
+
return ColorConverter.oklchToHex(L, C, h);
|
|
309
|
+
}
|
|
310
|
+
// ============================================================================
|
|
311
|
+
// LCH Color Space (Cylindrical LAB)
|
|
312
|
+
// ============================================================================
|
|
313
|
+
/**
|
|
314
|
+
* Convert CIE LAB to LCH (cylindrical LAB)
|
|
315
|
+
*/
|
|
316
|
+
static labToLch(L, a, b) {
|
|
317
|
+
return ColorConverter.labToLch(L, a, b);
|
|
318
|
+
}
|
|
319
|
+
/**
|
|
320
|
+
* Convert LCH to CIE LAB
|
|
321
|
+
*/
|
|
322
|
+
static lchToLab(L, C, h) {
|
|
323
|
+
return ColorConverter.lchToLab(L, C, h);
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Convert RGB to LCH
|
|
327
|
+
*/
|
|
328
|
+
static rgbToLch(r, g, b) {
|
|
329
|
+
return ColorConverter.rgbToLch(r, g, b);
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* Convert hex color to LCH
|
|
333
|
+
*/
|
|
334
|
+
static hexToLch(hex) {
|
|
335
|
+
return ColorConverter.hexToLch(hex);
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Convert LCH to RGB
|
|
339
|
+
*/
|
|
340
|
+
static lchToRgb(L, C, h) {
|
|
341
|
+
return ColorConverter.lchToRgb(L, C, h);
|
|
342
|
+
}
|
|
343
|
+
/**
|
|
344
|
+
* Convert LCH to hex color
|
|
345
|
+
*/
|
|
346
|
+
static lchToHex(L, C, h) {
|
|
347
|
+
return ColorConverter.lchToHex(L, C, h);
|
|
348
|
+
}
|
|
349
|
+
// ============================================================================
|
|
350
|
+
// HSL Color Space
|
|
351
|
+
// ============================================================================
|
|
352
|
+
/**
|
|
353
|
+
* Convert RGB to HSL
|
|
354
|
+
* @example rgbToHsl(255, 0, 0) -> { h: 0, s: 100, l: 50 }
|
|
355
|
+
*/
|
|
356
|
+
static rgbToHsl(r, g, b) {
|
|
357
|
+
return ColorConverter.rgbToHsl(r, g, b);
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Convert hex color to HSL
|
|
361
|
+
*/
|
|
362
|
+
static hexToHsl(hex) {
|
|
363
|
+
return ColorConverter.hexToHsl(hex);
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Convert HSL to RGB
|
|
367
|
+
* @example hslToRgb(0, 100, 50) -> { r: 255, g: 0, b: 0 }
|
|
368
|
+
*/
|
|
369
|
+
static hslToRgb(h, s, l) {
|
|
370
|
+
return ColorConverter.hslToRgb(h, s, l);
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Convert HSL to hex color
|
|
374
|
+
*/
|
|
375
|
+
static hslToHex(h, s, l) {
|
|
376
|
+
return ColorConverter.hslToHex(h, s, l);
|
|
377
|
+
}
|
|
378
|
+
// ============================================================================
|
|
379
|
+
// Color Mixing (RGB, LAB, RYB, OKLAB, HSL)
|
|
380
|
+
// ============================================================================
|
|
381
|
+
/**
|
|
382
|
+
* Mix two colors using RGB additive mixing (averaging)
|
|
383
|
+
*
|
|
384
|
+
* @param hex1 First hex color
|
|
385
|
+
* @param hex2 Second hex color
|
|
386
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
387
|
+
* @returns Mixed color as hex
|
|
388
|
+
*/
|
|
389
|
+
static mixColorsRgb(hex1, hex2, ratio = 0.5) {
|
|
390
|
+
const rgb1 = ColorConverter.hexToRgb(hex1);
|
|
391
|
+
const rgb2 = ColorConverter.hexToRgb(hex2);
|
|
392
|
+
const r = Math.round(rgb1.r + (rgb2.r - rgb1.r) * ratio);
|
|
393
|
+
const g = Math.round(rgb1.g + (rgb2.g - rgb1.g) * ratio);
|
|
394
|
+
const b = Math.round(rgb1.b + (rgb2.b - rgb1.b) * ratio);
|
|
395
|
+
return ColorConverter.rgbToHex(r, g, b);
|
|
396
|
+
}
|
|
397
|
+
/**
|
|
398
|
+
* Mix two colors using LAB perceptually uniform mixing
|
|
399
|
+
*
|
|
400
|
+
* @param hex1 First hex color
|
|
401
|
+
* @param hex2 Second hex color
|
|
402
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
403
|
+
* @returns Mixed color as hex
|
|
404
|
+
*/
|
|
405
|
+
static mixColorsLab(hex1, hex2, ratio = 0.5) {
|
|
406
|
+
const lab1 = ColorConverter.hexToLab(hex1);
|
|
407
|
+
const lab2 = ColorConverter.hexToLab(hex2);
|
|
408
|
+
const L = lab1.L + (lab2.L - lab1.L) * ratio;
|
|
409
|
+
const a = lab1.a + (lab2.a - lab1.a) * ratio;
|
|
410
|
+
const b = lab1.b + (lab2.b - lab1.b) * ratio;
|
|
411
|
+
return ColorConverter.labToHex(L, a, b);
|
|
412
|
+
}
|
|
413
|
+
// ============================================================================
|
|
251
414
|
// RYB Color Mixing (delegated to RybColorMixer)
|
|
252
415
|
// ============================================================================
|
|
253
416
|
/**
|
|
@@ -306,5 +469,206 @@ export class ColorService {
|
|
|
306
469
|
static rybToHex(r, y, b) {
|
|
307
470
|
return RybColorMixer.rybToHex(r, y, b);
|
|
308
471
|
}
|
|
472
|
+
// ============================================================================
|
|
473
|
+
// Advanced Color Mixing (OKLAB, OKLCH, LCH, HSL)
|
|
474
|
+
// ============================================================================
|
|
475
|
+
/**
|
|
476
|
+
* Mix two colors using OKLAB perceptually uniform mixing
|
|
477
|
+
*
|
|
478
|
+
* OKLAB produces more intuitive results than LAB for complementary colors:
|
|
479
|
+
* - Blue + Yellow = Green (not pink like LAB)
|
|
480
|
+
* - Smooth, vibrant gradients without muddy midpoints
|
|
481
|
+
*
|
|
482
|
+
* @param hex1 First hex color
|
|
483
|
+
* @param hex2 Second hex color
|
|
484
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
485
|
+
* @returns Mixed color as hex
|
|
486
|
+
*
|
|
487
|
+
* @example
|
|
488
|
+
* // Mix blue and yellow to get green (not pink like LAB)
|
|
489
|
+
* ColorService.mixColorsOklab('#0000FF', '#FFFF00') // Returns green-ish color
|
|
490
|
+
*/
|
|
491
|
+
static mixColorsOklab(hex1, hex2, ratio = 0.5) {
|
|
492
|
+
const oklab1 = ColorConverter.hexToOklab(hex1);
|
|
493
|
+
const oklab2 = ColorConverter.hexToOklab(hex2);
|
|
494
|
+
const L = oklab1.L + (oklab2.L - oklab1.L) * ratio;
|
|
495
|
+
const a = oklab1.a + (oklab2.a - oklab1.a) * ratio;
|
|
496
|
+
const b = oklab1.b + (oklab2.b - oklab1.b) * ratio;
|
|
497
|
+
return ColorConverter.oklabToHex(L, a, b);
|
|
498
|
+
}
|
|
499
|
+
/**
|
|
500
|
+
* Hue interpolation method for cylindrical color spaces
|
|
501
|
+
* - 'shorter': Take the shorter arc around the hue wheel (default)
|
|
502
|
+
* - 'longer': Take the longer arc around the hue wheel
|
|
503
|
+
* - 'increasing': Always go clockwise (increasing hue values)
|
|
504
|
+
* - 'decreasing': Always go counter-clockwise (decreasing hue values)
|
|
505
|
+
*/
|
|
506
|
+
static interpolateHue(h1, h2, ratio, method = 'shorter') {
|
|
507
|
+
let diff = h2 - h1;
|
|
508
|
+
switch (method) {
|
|
509
|
+
case 'shorter':
|
|
510
|
+
if (diff > 180)
|
|
511
|
+
diff -= 360;
|
|
512
|
+
if (diff < -180)
|
|
513
|
+
diff += 360;
|
|
514
|
+
break;
|
|
515
|
+
case 'longer':
|
|
516
|
+
if (diff > 0 && diff < 180)
|
|
517
|
+
diff -= 360;
|
|
518
|
+
if (diff < 0 && diff > -180)
|
|
519
|
+
diff += 360;
|
|
520
|
+
break;
|
|
521
|
+
case 'increasing':
|
|
522
|
+
if (diff < 0)
|
|
523
|
+
diff += 360;
|
|
524
|
+
break;
|
|
525
|
+
case 'decreasing':
|
|
526
|
+
if (diff > 0)
|
|
527
|
+
diff -= 360;
|
|
528
|
+
break;
|
|
529
|
+
}
|
|
530
|
+
return ((h1 + diff * ratio) % 360 + 360) % 360;
|
|
531
|
+
}
|
|
532
|
+
/**
|
|
533
|
+
* Mix two colors using OKLCH cylindrical mixing
|
|
534
|
+
*
|
|
535
|
+
* OKLCH provides control over hue interpolation direction,
|
|
536
|
+
* useful for creating gradients that go "through" specific colors.
|
|
537
|
+
*
|
|
538
|
+
* @param hex1 First hex color
|
|
539
|
+
* @param hex2 Second hex color
|
|
540
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
541
|
+
* @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
|
|
542
|
+
* @returns Mixed color as hex
|
|
543
|
+
*/
|
|
544
|
+
static mixColorsOklch(hex1, hex2, ratio = 0.5, hueMethod = 'shorter') {
|
|
545
|
+
const oklch1 = ColorConverter.hexToOklch(hex1);
|
|
546
|
+
const oklch2 = ColorConverter.hexToOklch(hex2);
|
|
547
|
+
const L = oklch1.L + (oklch2.L - oklch1.L) * ratio;
|
|
548
|
+
const C = oklch1.C + (oklch2.C - oklch1.C) * ratio;
|
|
549
|
+
const h = this.interpolateHue(oklch1.h, oklch2.h, ratio, hueMethod);
|
|
550
|
+
return ColorConverter.oklchToHex(L, C, h);
|
|
551
|
+
}
|
|
552
|
+
/**
|
|
553
|
+
* Mix two colors using LCH cylindrical mixing
|
|
554
|
+
*
|
|
555
|
+
* LCH is the cylindrical form of CIE LAB, providing hue control
|
|
556
|
+
* for perceptual mixing. Note: May produce unexpected hues for
|
|
557
|
+
* blue+yellow due to LAB's red bias (use OKLCH for better results).
|
|
558
|
+
*
|
|
559
|
+
* @param hex1 First hex color
|
|
560
|
+
* @param hex2 Second hex color
|
|
561
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
562
|
+
* @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
|
|
563
|
+
* @returns Mixed color as hex
|
|
564
|
+
*/
|
|
565
|
+
static mixColorsLch(hex1, hex2, ratio = 0.5, hueMethod = 'shorter') {
|
|
566
|
+
const lch1 = ColorConverter.hexToLch(hex1);
|
|
567
|
+
const lch2 = ColorConverter.hexToLch(hex2);
|
|
568
|
+
const L = lch1.L + (lch2.L - lch1.L) * ratio;
|
|
569
|
+
const C = lch1.C + (lch2.C - lch1.C) * ratio;
|
|
570
|
+
const h = this.interpolateHue(lch1.h, lch2.h, ratio, hueMethod);
|
|
571
|
+
return ColorConverter.lchToHex(L, C, h);
|
|
572
|
+
}
|
|
573
|
+
/**
|
|
574
|
+
* Mix two colors using HSL hue averaging
|
|
575
|
+
*
|
|
576
|
+
* Simple and intuitive mixing based on hue wheel position.
|
|
577
|
+
* Blue + Yellow = Spring Green (hue ~150°).
|
|
578
|
+
* Results may be over-saturated compared to perceptual methods.
|
|
579
|
+
*
|
|
580
|
+
* @param hex1 First hex color
|
|
581
|
+
* @param hex2 Second hex color
|
|
582
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
583
|
+
* @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
|
|
584
|
+
* @returns Mixed color as hex
|
|
585
|
+
*/
|
|
586
|
+
static mixColorsHsl(hex1, hex2, ratio = 0.5, hueMethod = 'shorter') {
|
|
587
|
+
const hsl1 = ColorConverter.hexToHsl(hex1);
|
|
588
|
+
const hsl2 = ColorConverter.hexToHsl(hex2);
|
|
589
|
+
const h = this.interpolateHue(hsl1.h, hsl2.h, ratio, hueMethod);
|
|
590
|
+
const s = hsl1.s + (hsl2.s - hsl1.s) * ratio;
|
|
591
|
+
const l = hsl1.l + (hsl2.l - hsl1.l) * ratio;
|
|
592
|
+
return ColorConverter.hslToHex(h, s, l);
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* Mix two colors using HSV hue averaging
|
|
596
|
+
*
|
|
597
|
+
* Similar to HSL but uses Value instead of Lightness.
|
|
598
|
+
* Useful when working with existing HSV-based workflows.
|
|
599
|
+
*
|
|
600
|
+
* @param hex1 First hex color
|
|
601
|
+
* @param hex2 Second hex color
|
|
602
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
603
|
+
* @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
|
|
604
|
+
* @returns Mixed color as hex
|
|
605
|
+
*/
|
|
606
|
+
static mixColorsHsv(hex1, hex2, ratio = 0.5, hueMethod = 'shorter') {
|
|
607
|
+
const hsv1 = ColorConverter.hexToHsv(hex1);
|
|
608
|
+
const hsv2 = ColorConverter.hexToHsv(hex2);
|
|
609
|
+
const h = this.interpolateHue(hsv1.h, hsv2.h, ratio, hueMethod);
|
|
610
|
+
const s = hsv1.s + (hsv2.s - hsv1.s) * ratio;
|
|
611
|
+
const v = hsv1.v + (hsv2.v - hsv1.v) * ratio;
|
|
612
|
+
return ColorConverter.hsvToHex(h, s, v);
|
|
613
|
+
}
|
|
614
|
+
// ============================================================================
|
|
615
|
+
// Spectral Mixing (Kubelka-Munk Theory - Realistic Paint Mixing)
|
|
616
|
+
// ============================================================================
|
|
617
|
+
/**
|
|
618
|
+
* Mix two colors using Kubelka-Munk spectral mixing
|
|
619
|
+
*
|
|
620
|
+
* This is the most physically accurate color mixing method available,
|
|
621
|
+
* simulating how real pigments and paints interact with light.
|
|
622
|
+
*
|
|
623
|
+
* Key characteristics:
|
|
624
|
+
* - Based on light absorption and scattering theory
|
|
625
|
+
* - Blue + Yellow = Green (like real paint!)
|
|
626
|
+
* - More realistic tinting and shading
|
|
627
|
+
* - Uses spectral reflectance curves (380-750nm)
|
|
628
|
+
*
|
|
629
|
+
* @param hex1 First hex color
|
|
630
|
+
* @param hex2 Second hex color
|
|
631
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
632
|
+
* @returns Mixed color as hex
|
|
633
|
+
*
|
|
634
|
+
* @example
|
|
635
|
+
* // Mix blue and yellow to get green (like real paint)
|
|
636
|
+
* ColorService.mixColorsSpectral('#0000FF', '#FFFF00')
|
|
637
|
+
*/
|
|
638
|
+
static mixColorsSpectral(hex1, hex2, ratio = 0.5) {
|
|
639
|
+
return SpectralMixer.mixColors(hex1, hex2, ratio);
|
|
640
|
+
}
|
|
641
|
+
/**
|
|
642
|
+
* Mix multiple colors using Kubelka-Munk spectral mixing
|
|
643
|
+
*
|
|
644
|
+
* @param colors Array of hex colors to mix
|
|
645
|
+
* @param weights Optional array of weights (defaults to equal weights)
|
|
646
|
+
* @returns Mixed color as hex
|
|
647
|
+
*/
|
|
648
|
+
static mixMultipleSpectral(colors, weights) {
|
|
649
|
+
return SpectralMixer.mixMultiple(colors, weights);
|
|
650
|
+
}
|
|
651
|
+
/**
|
|
652
|
+
* Generate a gradient using spectral mixing
|
|
653
|
+
*
|
|
654
|
+
* Creates a series of colors that transition smoothly using
|
|
655
|
+
* Kubelka-Munk theory for realistic blending.
|
|
656
|
+
*
|
|
657
|
+
* @param hex1 Starting color
|
|
658
|
+
* @param hex2 Ending color
|
|
659
|
+
* @param steps Number of colors in the gradient
|
|
660
|
+
* @returns Array of hex colors
|
|
661
|
+
*/
|
|
662
|
+
static gradientSpectral(hex1, hex2, steps) {
|
|
663
|
+
return SpectralMixer.gradient(hex1, hex2, steps);
|
|
664
|
+
}
|
|
665
|
+
/**
|
|
666
|
+
* Check if spectral mixing is available
|
|
667
|
+
*
|
|
668
|
+
* @returns true if spectral.js is loaded and functional
|
|
669
|
+
*/
|
|
670
|
+
static isSpectralAvailable() {
|
|
671
|
+
return SpectralMixer.isAvailable();
|
|
672
|
+
}
|
|
309
673
|
}
|
|
310
674
|
//# sourceMappingURL=ColorService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorService.js","sourceRoot":"","sources":["../../src/services/ColorService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAE,cAAc,EAAsB,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAY,MAAM,0BAA0B,CAAC;AAEnE;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACvB,+EAA+E;IAC/E,mBAAmB;IACnB,+EAA+E;IAE/E;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,cAAc,CAAC,WAAW,EAAE,CAAC;QAC7B,uBAAuB,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QAQlB,MAAM,cAAc,GAAG,cAAc,CAAC,aAAa,EAAE,CAAC;QACtD,MAAM,cAAc,GAAG,uBAAuB,CAAC,aAAa,EAAE,CAAC;QAC/D,OAAO;YACL,GAAG,cAAc;YACjB,UAAU,EAAE,cAAc,CAAC,UAAU;SACtC,CAAC;IACJ,CAAC;IAED,+EAA+E;IAC/E,iDAAiD;IACjD,+EAA+E;IAE/E;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,GAAW;QAC7B,OAAO,cAAc,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAY,EAAE,IAAY;QAChD,OAAO,cAAc,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED,+EAA+E;IAC/E,mEAAmE;IACnE,+EAA+E;IAE/E;;;OAGG;IACH,MAAM,CAAC,sBAAsB,CAAC,GAAQ,EAAE,UAAsB;QAC5D,OAAO,uBAAuB,CAAC,sBAAsB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAAC,GAAW,EAAE,UAAsB;QAClE,OAAO,uBAAuB,CAAC,yBAAyB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC5E,CAAC;IAED,+EAA+E;IAC/E,wDAAwD;IACxD,+EAA+E;IAE/E;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CAAC,GAAW;QACtC,OAAO,kBAAkB,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAY,EAAE,IAAY;QAChD,OAAO,kBAAkB,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAY,EAAE,IAAY,EAAE,YAAqB,KAAK;QACvE,OAAO,kBAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,YAAqB,KAAK;QACxE,OAAO,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,GAAW;QAC7B,OAAO,kBAAkB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,eAAuB;QAChD,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACjE,CAAC;IAED,+EAA+E;IAC/E,qDAAqD;IACrD,+EAA+E;IAE/E;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAW,EAAE,MAAc;QACjD,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAW,EAAE,MAAc;QACjD,OAAO,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,GAAW,EAAE,OAAe;QAC3C,OAAO,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,GAAW;QACvB,OAAO,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,GAAW;QAC3B,OAAO,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,+EAA+E;IAC/E,gDAAgD;IAChD,+EAA+E;IAE/E;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,OAAO,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,SAAS,CAAC,IAAY,EAAE,IAAY,EAAE,UAAyB,OAAO;QAC3E,OAAO,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,+EAA+E;IAC/E,gDAAgD;IAChD,+EAA+E;IAE/E;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,YAAY,CAAC,IAAY,EAAE,IAAY,EAAE,QAAgB,GAAG;QACjE,OAAO,aAAa,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"ColorService.js","sourceRoot":"","sources":["../../src/services/ColorService.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Per R-4: Focused class for color format conversions
|
|
4
4
|
* Handles conversions between hex, RGB, and HSV color formats
|
|
5
5
|
*/
|
|
6
|
-
import type { RGB, HSV, HexColor, LAB } from '../../types/index.js';
|
|
6
|
+
import type { RGB, HSV, HexColor, LAB, OKLAB, OKLCH, LCH, HSL } from '../../types/index.js';
|
|
7
7
|
/**
|
|
8
8
|
* DeltaE formula for color difference calculations
|
|
9
9
|
* - cie76: Simple Euclidean distance in LAB space (fast)
|
|
@@ -239,5 +239,227 @@ export declare class ColorConverter {
|
|
|
239
239
|
* Static method: Calculate DeltaE using default instance
|
|
240
240
|
*/
|
|
241
241
|
static getDeltaE(hex1: string, hex2: string, formula?: DeltaEFormula): number;
|
|
242
|
+
/**
|
|
243
|
+
* Convert sRGB component to linear RGB
|
|
244
|
+
* Applies inverse gamma companding
|
|
245
|
+
* @internal
|
|
246
|
+
*/
|
|
247
|
+
private srgbToLinear;
|
|
248
|
+
/**
|
|
249
|
+
* Convert linear RGB component to sRGB
|
|
250
|
+
* Applies gamma companding
|
|
251
|
+
* @internal
|
|
252
|
+
*/
|
|
253
|
+
private linearToSrgb;
|
|
254
|
+
/**
|
|
255
|
+
* Convert RGB to OKLAB color space
|
|
256
|
+
*
|
|
257
|
+
* OKLAB is a modern perceptually uniform color space that fixes issues
|
|
258
|
+
* with CIELAB, particularly for blue colors. Blue + Yellow = Green in OKLAB.
|
|
259
|
+
*
|
|
260
|
+
* @param r Red component (0-255)
|
|
261
|
+
* @param g Green component (0-255)
|
|
262
|
+
* @param b Blue component (0-255)
|
|
263
|
+
* @returns OKLAB color with L (0-1), a (~-0.4 to 0.4), b (~-0.4 to 0.4)
|
|
264
|
+
*
|
|
265
|
+
* @example rgbToOklab(255, 0, 0) -> { L: 0.628, a: 0.225, b: 0.126 }
|
|
266
|
+
*/
|
|
267
|
+
rgbToOklab(r: number, g: number, b: number): OKLAB;
|
|
268
|
+
/**
|
|
269
|
+
* Static method: Convert RGB to OKLAB using default instance
|
|
270
|
+
*/
|
|
271
|
+
static rgbToOklab(r: number, g: number, b: number): OKLAB;
|
|
272
|
+
/**
|
|
273
|
+
* Convert OKLAB to RGB color space
|
|
274
|
+
*
|
|
275
|
+
* @param L Lightness (0-1)
|
|
276
|
+
* @param a Green-Red axis (~-0.4 to 0.4)
|
|
277
|
+
* @param b Blue-Yellow axis (~-0.4 to 0.4)
|
|
278
|
+
* @returns RGB color with values 0-255
|
|
279
|
+
*
|
|
280
|
+
* @example oklabToRgb(0.628, 0.225, 0.126) -> { r: 255, g: 0, b: 0 }
|
|
281
|
+
*/
|
|
282
|
+
oklabToRgb(L: number, a: number, b: number): RGB;
|
|
283
|
+
/**
|
|
284
|
+
* Static method: Convert OKLAB to RGB using default instance
|
|
285
|
+
*/
|
|
286
|
+
static oklabToRgb(L: number, a: number, b: number): RGB;
|
|
287
|
+
/**
|
|
288
|
+
* Convert hex color to OKLAB
|
|
289
|
+
*/
|
|
290
|
+
hexToOklab(hex: string): OKLAB;
|
|
291
|
+
/**
|
|
292
|
+
* Static method: Convert hex to OKLAB using default instance
|
|
293
|
+
*/
|
|
294
|
+
static hexToOklab(hex: string): OKLAB;
|
|
295
|
+
/**
|
|
296
|
+
* Convert OKLAB to hex color
|
|
297
|
+
*/
|
|
298
|
+
oklabToHex(L: number, a: number, b: number): HexColor;
|
|
299
|
+
/**
|
|
300
|
+
* Static method: Convert OKLAB to hex using default instance
|
|
301
|
+
*/
|
|
302
|
+
static oklabToHex(L: number, a: number, b: number): HexColor;
|
|
303
|
+
/**
|
|
304
|
+
* Convert RGB to OKLCH (cylindrical OKLAB)
|
|
305
|
+
*
|
|
306
|
+
* OKLCH expresses OKLAB in cylindrical coordinates for intuitive
|
|
307
|
+
* hue manipulation. Ideal for gradient interpolation.
|
|
308
|
+
*
|
|
309
|
+
* @param r Red component (0-255)
|
|
310
|
+
* @param g Green component (0-255)
|
|
311
|
+
* @param b Blue component (0-255)
|
|
312
|
+
* @returns OKLCH color with L (0-1), C (chroma, 0 to ~0.4), h (hue, 0-360)
|
|
313
|
+
*
|
|
314
|
+
* @example rgbToOklch(255, 0, 0) -> { L: 0.628, C: 0.258, h: 29.23 }
|
|
315
|
+
*/
|
|
316
|
+
rgbToOklch(r: number, g: number, b: number): OKLCH;
|
|
317
|
+
/**
|
|
318
|
+
* Static method: Convert RGB to OKLCH using default instance
|
|
319
|
+
*/
|
|
320
|
+
static rgbToOklch(r: number, g: number, b: number): OKLCH;
|
|
321
|
+
/**
|
|
322
|
+
* Convert OKLCH to RGB
|
|
323
|
+
*
|
|
324
|
+
* @param L Lightness (0-1)
|
|
325
|
+
* @param C Chroma (0 to ~0.4)
|
|
326
|
+
* @param h Hue angle (0-360 degrees)
|
|
327
|
+
* @returns RGB color with values 0-255
|
|
328
|
+
*/
|
|
329
|
+
oklchToRgb(L: number, C: number, h: number): RGB;
|
|
330
|
+
/**
|
|
331
|
+
* Static method: Convert OKLCH to RGB using default instance
|
|
332
|
+
*/
|
|
333
|
+
static oklchToRgb(L: number, C: number, h: number): RGB;
|
|
334
|
+
/**
|
|
335
|
+
* Convert hex color to OKLCH
|
|
336
|
+
*/
|
|
337
|
+
hexToOklch(hex: string): OKLCH;
|
|
338
|
+
/**
|
|
339
|
+
* Static method: Convert hex to OKLCH using default instance
|
|
340
|
+
*/
|
|
341
|
+
static hexToOklch(hex: string): OKLCH;
|
|
342
|
+
/**
|
|
343
|
+
* Convert OKLCH to hex color
|
|
344
|
+
*/
|
|
345
|
+
oklchToHex(L: number, C: number, h: number): HexColor;
|
|
346
|
+
/**
|
|
347
|
+
* Static method: Convert OKLCH to hex using default instance
|
|
348
|
+
*/
|
|
349
|
+
static oklchToHex(L: number, C: number, h: number): HexColor;
|
|
350
|
+
/**
|
|
351
|
+
* Convert CIE LAB to LCH (cylindrical LAB)
|
|
352
|
+
*
|
|
353
|
+
* LCH expresses LAB in cylindrical coordinates for hue-based operations.
|
|
354
|
+
*
|
|
355
|
+
* @param L Lightness (0-100)
|
|
356
|
+
* @param a Green-Red axis (~-128 to 127)
|
|
357
|
+
* @param b Blue-Yellow axis (~-128 to 127)
|
|
358
|
+
* @returns LCH color with L (0-100), C (chroma), h (hue, 0-360)
|
|
359
|
+
*/
|
|
360
|
+
labToLch(L: number, a: number, b: number): LCH;
|
|
361
|
+
/**
|
|
362
|
+
* Static method: Convert LAB to LCH using default instance
|
|
363
|
+
*/
|
|
364
|
+
static labToLch(L: number, a: number, b: number): LCH;
|
|
365
|
+
/**
|
|
366
|
+
* Convert LCH to CIE LAB
|
|
367
|
+
*
|
|
368
|
+
* @param L Lightness (0-100)
|
|
369
|
+
* @param C Chroma
|
|
370
|
+
* @param h Hue angle (0-360 degrees)
|
|
371
|
+
* @returns LAB color
|
|
372
|
+
*/
|
|
373
|
+
lchToLab(L: number, C: number, h: number): LAB;
|
|
374
|
+
/**
|
|
375
|
+
* Static method: Convert LCH to LAB using default instance
|
|
376
|
+
*/
|
|
377
|
+
static lchToLab(L: number, C: number, h: number): LAB;
|
|
378
|
+
/**
|
|
379
|
+
* Convert RGB to LCH
|
|
380
|
+
*/
|
|
381
|
+
rgbToLch(r: number, g: number, b: number): LCH;
|
|
382
|
+
/**
|
|
383
|
+
* Static method: Convert RGB to LCH using default instance
|
|
384
|
+
*/
|
|
385
|
+
static rgbToLch(r: number, g: number, b: number): LCH;
|
|
386
|
+
/**
|
|
387
|
+
* Convert LCH to RGB
|
|
388
|
+
*/
|
|
389
|
+
lchToRgb(L: number, C: number, h: number): RGB;
|
|
390
|
+
/**
|
|
391
|
+
* Static method: Convert LCH to RGB using default instance
|
|
392
|
+
*/
|
|
393
|
+
static lchToRgb(L: number, C: number, h: number): RGB;
|
|
394
|
+
/**
|
|
395
|
+
* Convert hex color to LCH
|
|
396
|
+
*/
|
|
397
|
+
hexToLch(hex: string): LCH;
|
|
398
|
+
/**
|
|
399
|
+
* Static method: Convert hex to LCH using default instance
|
|
400
|
+
*/
|
|
401
|
+
static hexToLch(hex: string): LCH;
|
|
402
|
+
/**
|
|
403
|
+
* Convert LCH to hex color
|
|
404
|
+
*/
|
|
405
|
+
lchToHex(L: number, C: number, h: number): HexColor;
|
|
406
|
+
/**
|
|
407
|
+
* Static method: Convert LCH to hex using default instance
|
|
408
|
+
*/
|
|
409
|
+
static lchToHex(L: number, C: number, h: number): HexColor;
|
|
410
|
+
/**
|
|
411
|
+
* Convert RGB to HSL (Hue, Saturation, Lightness)
|
|
412
|
+
*
|
|
413
|
+
* HSL is similar to HSV but uses Lightness instead of Value.
|
|
414
|
+
* Common in design tools like Photoshop, Figma, and CSS.
|
|
415
|
+
*
|
|
416
|
+
* @param r Red component (0-255)
|
|
417
|
+
* @param g Green component (0-255)
|
|
418
|
+
* @param b Blue component (0-255)
|
|
419
|
+
* @returns HSL color with h (0-360), s (0-100), l (0-100)
|
|
420
|
+
*
|
|
421
|
+
* @example rgbToHsl(255, 0, 0) -> { h: 0, s: 100, l: 50 }
|
|
422
|
+
*/
|
|
423
|
+
rgbToHsl(r: number, g: number, b: number): HSL;
|
|
424
|
+
/**
|
|
425
|
+
* Static method: Convert RGB to HSL using default instance
|
|
426
|
+
*/
|
|
427
|
+
static rgbToHsl(r: number, g: number, b: number): HSL;
|
|
428
|
+
/**
|
|
429
|
+
* Convert HSL to RGB
|
|
430
|
+
*
|
|
431
|
+
* @param h Hue (0-360 degrees)
|
|
432
|
+
* @param s Saturation (0-100 percent)
|
|
433
|
+
* @param l Lightness (0-100 percent)
|
|
434
|
+
* @returns RGB color with values 0-255
|
|
435
|
+
*
|
|
436
|
+
* @example hslToRgb(0, 100, 50) -> { r: 255, g: 0, b: 0 }
|
|
437
|
+
*/
|
|
438
|
+
hslToRgb(h: number, s: number, l: number): RGB;
|
|
439
|
+
/**
|
|
440
|
+
* Helper for HSL to RGB conversion
|
|
441
|
+
* @internal
|
|
442
|
+
*/
|
|
443
|
+
private hueToRgbComponent;
|
|
444
|
+
/**
|
|
445
|
+
* Static method: Convert HSL to RGB using default instance
|
|
446
|
+
*/
|
|
447
|
+
static hslToRgb(h: number, s: number, l: number): RGB;
|
|
448
|
+
/**
|
|
449
|
+
* Convert hex color to HSL
|
|
450
|
+
*/
|
|
451
|
+
hexToHsl(hex: string): HSL;
|
|
452
|
+
/**
|
|
453
|
+
* Static method: Convert hex to HSL using default instance
|
|
454
|
+
*/
|
|
455
|
+
static hexToHsl(hex: string): HSL;
|
|
456
|
+
/**
|
|
457
|
+
* Convert HSL to hex color
|
|
458
|
+
*/
|
|
459
|
+
hslToHex(h: number, s: number, l: number): HexColor;
|
|
460
|
+
/**
|
|
461
|
+
* Static method: Convert HSL to hex using default instance
|
|
462
|
+
*/
|
|
463
|
+
static hslToHex(h: number, s: number, l: number): HexColor;
|
|
242
464
|
}
|
|
243
465
|
//# sourceMappingURL=ColorConverter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorConverter.d.ts","sourceRoot":"","sources":["../../../src/services/color/ColorConverter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ColorConverter.d.ts","sourceRoot":"","sources":["../../../src/services/color/ColorConverter.ts"],"names":[],"mappings":"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"}
|