@xivdyetools/core 1.12.4 → 1.12.6

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.
@@ -3,13 +3,15 @@
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)
10
10
  * - cie2000: CIEDE2000 formula (perceptually accurate, industry standard)
11
+ * - oklab: OKLAB Euclidean distance (modern, simpler than cie2000, CSS standard)
12
+ * - hyab: HyAB hybrid distance (best for large color differences/palette matching)
11
13
  */
12
- export type DeltaEFormula = 'cie76' | 'cie2000';
14
+ export type DeltaEFormula = 'cie76' | 'cie2000' | 'oklab' | 'hyab';
13
15
  /**
14
16
  * Configuration for ColorConverter caches
15
17
  */
@@ -229,15 +231,320 @@ export declare class ColorConverter {
229
231
  static getDeltaE2000(lab1: LAB, lab2: LAB): number;
230
232
  /**
231
233
  * Calculate DeltaE between two hex colors using specified formula
234
+ *
235
+ * Available formulas:
236
+ * - cie76: LAB Euclidean (fast, fair accuracy)
237
+ * - cie2000: CIEDE2000 (industry standard, accurate)
238
+ * - oklab: OKLAB Euclidean (modern, simpler than cie2000, CSS standard)
239
+ * - hyab: HyAB hybrid (best for large color differences/palette matching)
240
+ *
232
241
  * @param hex1 First hex color
233
242
  * @param hex2 Second hex color
234
- * @param formula DeltaE formula to use ('cie76' or 'cie2000')
235
- * @returns DeltaE value
243
+ * @param formula DeltaE formula to use (default: 'cie76')
244
+ * @returns DeltaE value (scale varies by formula)
236
245
  */
237
246
  getDeltaE(hex1: string, hex2: string, formula?: DeltaEFormula): number;
238
247
  /**
239
248
  * Static method: Calculate DeltaE using default instance
240
249
  */
241
250
  static getDeltaE(hex1: string, hex2: string, formula?: DeltaEFormula): number;
251
+ /**
252
+ * Calculate color difference using OKLAB Euclidean distance.
253
+ *
254
+ * OKLAB provides better perceptual uniformity than LAB with simpler math
255
+ * than CIEDE2000. It fixes LAB's blue→purple hue shift issue.
256
+ *
257
+ * Adopted by Safari, Photoshop, and CSS Color Level 4.
258
+ *
259
+ * Reference: Björn Ottosson (2020) - "A perceptual color space for image processing"
260
+ *
261
+ * @param hex1 First color in hex format
262
+ * @param hex2 Second color in hex format
263
+ * @returns Distance value (0 = identical, scale ~0-0.5 for typical colors)
264
+ *
265
+ * @example getDeltaE_Oklab("#FF0000", "#00FF00") -> ~0.39
266
+ */
267
+ getDeltaE_Oklab(hex1: string, hex2: string): number;
268
+ /**
269
+ * Static method: Calculate OKLAB Euclidean distance using default instance
270
+ */
271
+ static getDeltaE_Oklab(hex1: string, hex2: string): number;
272
+ /**
273
+ * Calculate color difference using HyAB (Hybrid) algorithm.
274
+ *
275
+ * HyAB uses taxicab distance for lightness and Euclidean for chroma.
276
+ * Research shows it outperforms both Euclidean AND CIEDE2000 for large
277
+ * color differences (>10 units), making it ideal for palette matching.
278
+ *
279
+ * Formula: ΔE_HyAB = |L₂ - L₁| + √[(a₂-a₁)² + (b₂-b₁)²]
280
+ *
281
+ * Reference: Abasi, Tehran & Fairchild (2019) -
282
+ * "Distance metrics for very large color differences"
283
+ *
284
+ * @param hex1 First color in hex format
285
+ * @param hex2 Second color in hex format
286
+ * @param kL Lightness weight (default 1.0). Higher = prioritize lightness matching.
287
+ * Use kL > 1 for visibility-critical matching (armor, UI).
288
+ * Use kL < 1 to tolerate brightness differences (find vibrant alternatives).
289
+ * @returns Distance value (0 = identical, scale ~0-1.5 for typical colors)
290
+ *
291
+ * @example getDeltaE_HyAB("#FF0000", "#800000") -> ~0.32
292
+ * @example getDeltaE_HyAB("#FF0000", "#800000", 2.0) -> higher (emphasize brightness)
293
+ */
294
+ getDeltaE_HyAB(hex1: string, hex2: string, kL?: number): number;
295
+ /**
296
+ * Static method: Calculate HyAB distance using default instance
297
+ */
298
+ static getDeltaE_HyAB(hex1: string, hex2: string, kL?: number): number;
299
+ /**
300
+ * Calculate color difference using OKLCH with customizable L/C/H weights.
301
+ *
302
+ * Allows users to prioritize different color attributes:
303
+ * - Lightness (L): Brightness/darkness
304
+ * - Chroma (C): Saturation/vividness
305
+ * - Hue (H): The actual color (red, blue, green, etc.)
306
+ *
307
+ * @param hex1 First color in hex format
308
+ * @param hex2 Second color in hex format
309
+ * @param weights Object with kL, kC, kH weights (default 1.0 each)
310
+ * @returns Distance value (0 = identical, higher = more different)
311
+ *
312
+ * @example getDeltaE_OklchWeighted("#FF0000", "#FF8000", { kH: 2.0 }) -> prioritizes hue match
313
+ */
314
+ getDeltaE_OklchWeighted(hex1: string, hex2: string, weights?: {
315
+ kL?: number;
316
+ kC?: number;
317
+ kH?: number;
318
+ }): number;
319
+ /**
320
+ * Static method: Calculate OKLCH weighted distance using default instance
321
+ */
322
+ static getDeltaE_OklchWeighted(hex1: string, hex2: string, weights?: {
323
+ kL?: number;
324
+ kC?: number;
325
+ kH?: number;
326
+ }): number;
327
+ /**
328
+ * Convert sRGB component to linear RGB
329
+ * Applies inverse gamma companding
330
+ * @internal
331
+ */
332
+ private srgbToLinear;
333
+ /**
334
+ * Convert linear RGB component to sRGB
335
+ * Applies gamma companding
336
+ * @internal
337
+ */
338
+ private linearToSrgb;
339
+ /**
340
+ * Convert RGB to OKLAB color space
341
+ *
342
+ * OKLAB is a modern perceptually uniform color space that fixes issues
343
+ * with CIELAB, particularly for blue colors. Blue + Yellow = Green in OKLAB.
344
+ *
345
+ * @param r Red component (0-255)
346
+ * @param g Green component (0-255)
347
+ * @param b Blue component (0-255)
348
+ * @returns OKLAB color with L (0-1), a (~-0.4 to 0.4), b (~-0.4 to 0.4)
349
+ *
350
+ * @example rgbToOklab(255, 0, 0) -> { L: 0.628, a: 0.225, b: 0.126 }
351
+ */
352
+ rgbToOklab(r: number, g: number, b: number): OKLAB;
353
+ /**
354
+ * Static method: Convert RGB to OKLAB using default instance
355
+ */
356
+ static rgbToOklab(r: number, g: number, b: number): OKLAB;
357
+ /**
358
+ * Convert OKLAB to RGB color space
359
+ *
360
+ * @param L Lightness (0-1)
361
+ * @param a Green-Red axis (~-0.4 to 0.4)
362
+ * @param b Blue-Yellow axis (~-0.4 to 0.4)
363
+ * @returns RGB color with values 0-255
364
+ *
365
+ * @example oklabToRgb(0.628, 0.225, 0.126) -> { r: 255, g: 0, b: 0 }
366
+ */
367
+ oklabToRgb(L: number, a: number, b: number): RGB;
368
+ /**
369
+ * Static method: Convert OKLAB to RGB using default instance
370
+ */
371
+ static oklabToRgb(L: number, a: number, b: number): RGB;
372
+ /**
373
+ * Convert hex color to OKLAB
374
+ */
375
+ hexToOklab(hex: string): OKLAB;
376
+ /**
377
+ * Static method: Convert hex to OKLAB using default instance
378
+ */
379
+ static hexToOklab(hex: string): OKLAB;
380
+ /**
381
+ * Convert OKLAB to hex color
382
+ */
383
+ oklabToHex(L: number, a: number, b: number): HexColor;
384
+ /**
385
+ * Static method: Convert OKLAB to hex using default instance
386
+ */
387
+ static oklabToHex(L: number, a: number, b: number): HexColor;
388
+ /**
389
+ * Convert RGB to OKLCH (cylindrical OKLAB)
390
+ *
391
+ * OKLCH expresses OKLAB in cylindrical coordinates for intuitive
392
+ * hue manipulation. Ideal for gradient interpolation.
393
+ *
394
+ * @param r Red component (0-255)
395
+ * @param g Green component (0-255)
396
+ * @param b Blue component (0-255)
397
+ * @returns OKLCH color with L (0-1), C (chroma, 0 to ~0.4), h (hue, 0-360)
398
+ *
399
+ * @example rgbToOklch(255, 0, 0) -> { L: 0.628, C: 0.258, h: 29.23 }
400
+ */
401
+ rgbToOklch(r: number, g: number, b: number): OKLCH;
402
+ /**
403
+ * Static method: Convert RGB to OKLCH using default instance
404
+ */
405
+ static rgbToOklch(r: number, g: number, b: number): OKLCH;
406
+ /**
407
+ * Convert OKLCH to RGB
408
+ *
409
+ * @param L Lightness (0-1)
410
+ * @param C Chroma (0 to ~0.4)
411
+ * @param h Hue angle (0-360 degrees)
412
+ * @returns RGB color with values 0-255
413
+ */
414
+ oklchToRgb(L: number, C: number, h: number): RGB;
415
+ /**
416
+ * Static method: Convert OKLCH to RGB using default instance
417
+ */
418
+ static oklchToRgb(L: number, C: number, h: number): RGB;
419
+ /**
420
+ * Convert hex color to OKLCH
421
+ */
422
+ hexToOklch(hex: string): OKLCH;
423
+ /**
424
+ * Static method: Convert hex to OKLCH using default instance
425
+ */
426
+ static hexToOklch(hex: string): OKLCH;
427
+ /**
428
+ * Convert OKLCH to hex color
429
+ */
430
+ oklchToHex(L: number, C: number, h: number): HexColor;
431
+ /**
432
+ * Static method: Convert OKLCH to hex using default instance
433
+ */
434
+ static oklchToHex(L: number, C: number, h: number): HexColor;
435
+ /**
436
+ * Convert CIE LAB to LCH (cylindrical LAB)
437
+ *
438
+ * LCH expresses LAB in cylindrical coordinates for hue-based operations.
439
+ *
440
+ * @param L Lightness (0-100)
441
+ * @param a Green-Red axis (~-128 to 127)
442
+ * @param b Blue-Yellow axis (~-128 to 127)
443
+ * @returns LCH color with L (0-100), C (chroma), h (hue, 0-360)
444
+ */
445
+ labToLch(L: number, a: number, b: number): LCH;
446
+ /**
447
+ * Static method: Convert LAB to LCH using default instance
448
+ */
449
+ static labToLch(L: number, a: number, b: number): LCH;
450
+ /**
451
+ * Convert LCH to CIE LAB
452
+ *
453
+ * @param L Lightness (0-100)
454
+ * @param C Chroma
455
+ * @param h Hue angle (0-360 degrees)
456
+ * @returns LAB color
457
+ */
458
+ lchToLab(L: number, C: number, h: number): LAB;
459
+ /**
460
+ * Static method: Convert LCH to LAB using default instance
461
+ */
462
+ static lchToLab(L: number, C: number, h: number): LAB;
463
+ /**
464
+ * Convert RGB to LCH
465
+ */
466
+ rgbToLch(r: number, g: number, b: number): LCH;
467
+ /**
468
+ * Static method: Convert RGB to LCH using default instance
469
+ */
470
+ static rgbToLch(r: number, g: number, b: number): LCH;
471
+ /**
472
+ * Convert LCH to RGB
473
+ */
474
+ lchToRgb(L: number, C: number, h: number): RGB;
475
+ /**
476
+ * Static method: Convert LCH to RGB using default instance
477
+ */
478
+ static lchToRgb(L: number, C: number, h: number): RGB;
479
+ /**
480
+ * Convert hex color to LCH
481
+ */
482
+ hexToLch(hex: string): LCH;
483
+ /**
484
+ * Static method: Convert hex to LCH using default instance
485
+ */
486
+ static hexToLch(hex: string): LCH;
487
+ /**
488
+ * Convert LCH to hex color
489
+ */
490
+ lchToHex(L: number, C: number, h: number): HexColor;
491
+ /**
492
+ * Static method: Convert LCH to hex using default instance
493
+ */
494
+ static lchToHex(L: number, C: number, h: number): HexColor;
495
+ /**
496
+ * Convert RGB to HSL (Hue, Saturation, Lightness)
497
+ *
498
+ * HSL is similar to HSV but uses Lightness instead of Value.
499
+ * Common in design tools like Photoshop, Figma, and CSS.
500
+ *
501
+ * @param r Red component (0-255)
502
+ * @param g Green component (0-255)
503
+ * @param b Blue component (0-255)
504
+ * @returns HSL color with h (0-360), s (0-100), l (0-100)
505
+ *
506
+ * @example rgbToHsl(255, 0, 0) -> { h: 0, s: 100, l: 50 }
507
+ */
508
+ rgbToHsl(r: number, g: number, b: number): HSL;
509
+ /**
510
+ * Static method: Convert RGB to HSL using default instance
511
+ */
512
+ static rgbToHsl(r: number, g: number, b: number): HSL;
513
+ /**
514
+ * Convert HSL to RGB
515
+ *
516
+ * @param h Hue (0-360 degrees)
517
+ * @param s Saturation (0-100 percent)
518
+ * @param l Lightness (0-100 percent)
519
+ * @returns RGB color with values 0-255
520
+ *
521
+ * @example hslToRgb(0, 100, 50) -> { r: 255, g: 0, b: 0 }
522
+ */
523
+ hslToRgb(h: number, s: number, l: number): RGB;
524
+ /**
525
+ * Helper for HSL to RGB conversion
526
+ * @internal
527
+ */
528
+ private hueToRgbComponent;
529
+ /**
530
+ * Static method: Convert HSL to RGB using default instance
531
+ */
532
+ static hslToRgb(h: number, s: number, l: number): RGB;
533
+ /**
534
+ * Convert hex color to HSL
535
+ */
536
+ hexToHsl(hex: string): HSL;
537
+ /**
538
+ * Static method: Convert hex to HSL using default instance
539
+ */
540
+ static hexToHsl(hex: string): HSL;
541
+ /**
542
+ * Convert HSL to hex color
543
+ */
544
+ hslToHex(h: number, s: number, l: number): HexColor;
545
+ /**
546
+ * Static method: Convert HSL to hex using default instance
547
+ */
548
+ static hslToHex(h: number, s: number, l: number): HexColor;
242
549
  }
243
550
  //# sourceMappingURL=ColorConverter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColorConverter.d.ts","sourceRoot":"","sources":["../../../src/services/color/ColorConverter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ColorConverter.d.ts","sourceRoot":"","sources":["../../../src/services/color/ColorConverter.ts"],"names":[],"mappings":"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"}