@xivdyetools/core 4.3.0 → 5.2.0

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.
Files changed (100) hide show
  1. package/NOTICE +26 -0
  2. package/README.md +3 -1
  3. package/dist/blending/blending.d.ts +26 -6
  4. package/dist/blending/blending.d.ts.map +1 -1
  5. package/dist/blending/blending.js +79 -32
  6. package/dist/blending/blending.js.map +1 -1
  7. package/dist/blending/conversions.d.ts +0 -12
  8. package/dist/blending/conversions.d.ts.map +1 -1
  9. package/dist/blending/conversions.js +25 -28
  10. package/dist/blending/conversions.js.map +1 -1
  11. package/dist/blending/index.d.ts +4 -1
  12. package/dist/blending/index.d.ts.map +1 -1
  13. package/dist/blending/index.js.map +1 -1
  14. package/dist/blending/types.d.ts +38 -0
  15. package/dist/blending/types.d.ts.map +1 -1
  16. package/dist/config/band-vocabulary.d.ts +9 -0
  17. package/dist/config/band-vocabulary.d.ts.map +1 -1
  18. package/dist/config/band-vocabulary.js +12 -3
  19. package/dist/config/band-vocabulary.js.map +1 -1
  20. package/dist/data/locales/de.json +8 -1
  21. package/dist/data/locales/en.json +8 -1
  22. package/dist/data/locales/fr.json +8 -1
  23. package/dist/data/locales/ja.json +8 -1
  24. package/dist/data/locales/ko.json +8 -1
  25. package/dist/data/locales/zh.json +8 -1
  26. package/dist/data/munsell-hues.json +175 -0
  27. package/dist/data/oklch-hue-table.json +297 -0
  28. package/dist/index.d.ts +18 -1
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +9 -0
  31. package/dist/index.js.map +1 -1
  32. package/dist/services/ColorService.d.ts +37 -15
  33. package/dist/services/ColorService.d.ts.map +1 -1
  34. package/dist/services/ColorService.js +70 -69
  35. package/dist/services/ColorService.js.map +1 -1
  36. package/dist/services/DyeService.d.ts +35 -0
  37. package/dist/services/DyeService.d.ts.map +1 -1
  38. package/dist/services/DyeService.js +35 -0
  39. package/dist/services/DyeService.js.map +1 -1
  40. package/dist/services/LocalizationService.d.ts +5 -1
  41. package/dist/services/LocalizationService.d.ts.map +1 -1
  42. package/dist/services/LocalizationService.js +8 -0
  43. package/dist/services/LocalizationService.js.map +1 -1
  44. package/dist/services/color/ColorConverter.d.ts +67 -35
  45. package/dist/services/color/ColorConverter.d.ts.map +1 -1
  46. package/dist/services/color/ColorConverter.js +236 -85
  47. package/dist/services/color/ColorConverter.js.map +1 -1
  48. package/dist/services/dye/HarmonyGenerator.d.ts +22 -2
  49. package/dist/services/dye/HarmonyGenerator.d.ts.map +1 -1
  50. package/dist/services/dye/HarmonyGenerator.js +39 -5
  51. package/dist/services/dye/HarmonyGenerator.js.map +1 -1
  52. package/dist/services/dye/HarmonySelector.d.ts +15 -1
  53. package/dist/services/dye/HarmonySelector.d.ts.map +1 -1
  54. package/dist/services/dye/HarmonySelector.js +20 -8
  55. package/dist/services/dye/HarmonySelector.js.map +1 -1
  56. package/dist/services/dye/wheels/ColorWheel.d.ts +29 -0
  57. package/dist/services/dye/wheels/ColorWheel.d.ts.map +1 -0
  58. package/dist/services/dye/wheels/ColorWheel.js +63 -0
  59. package/dist/services/dye/wheels/ColorWheel.js.map +1 -0
  60. package/dist/services/dye/wheels/hue-warp.d.ts +40 -0
  61. package/dist/services/dye/wheels/hue-warp.d.ts.map +1 -0
  62. package/dist/services/dye/wheels/hue-warp.js +144 -0
  63. package/dist/services/dye/wheels/hue-warp.js.map +1 -0
  64. package/dist/services/dye/wheels/munsell.d.ts +17 -0
  65. package/dist/services/dye/wheels/munsell.d.ts.map +1 -0
  66. package/dist/services/dye/wheels/munsell.js +18 -0
  67. package/dist/services/dye/wheels/munsell.js.map +1 -0
  68. package/dist/services/dye/wheels/oklch-hue.d.ts +22 -0
  69. package/dist/services/dye/wheels/oklch-hue.d.ts.map +1 -0
  70. package/dist/services/dye/wheels/oklch-hue.js +23 -0
  71. package/dist/services/dye/wheels/oklch-hue.js.map +1 -0
  72. package/dist/services/dye/wheels/oklch-lightness.d.ts +24 -0
  73. package/dist/services/dye/wheels/oklch-lightness.d.ts.map +1 -0
  74. package/dist/services/dye/wheels/oklch-lightness.js +65 -0
  75. package/dist/services/dye/wheels/oklch-lightness.js.map +1 -0
  76. package/dist/services/dye/wheels/rgb-ryb.d.ts +18 -0
  77. package/dist/services/dye/wheels/rgb-ryb.d.ts.map +1 -0
  78. package/dist/services/dye/wheels/rgb-ryb.js +47 -0
  79. package/dist/services/dye/wheels/rgb-ryb.js.map +1 -0
  80. package/dist/services/dye/wheels/types.d.ts +40 -0
  81. package/dist/services/dye/wheels/types.d.ts.map +1 -0
  82. package/dist/services/dye/wheels/types.js +11 -0
  83. package/dist/services/dye/wheels/types.js.map +1 -0
  84. package/dist/services/localization/TranslationProvider.d.ts +6 -1
  85. package/dist/services/localization/TranslationProvider.d.ts.map +1 -1
  86. package/dist/services/localization/TranslationProvider.js +8 -0
  87. package/dist/services/localization/TranslationProvider.js.map +1 -1
  88. package/dist/types/index.d.ts +3 -2
  89. package/dist/types/index.d.ts.map +1 -1
  90. package/dist/types/index.js +2 -2
  91. package/dist/types/index.js.map +1 -1
  92. package/package.json +8 -3
  93. package/dist/services/color/RybColorMixer.d.ts +0 -102
  94. package/dist/services/color/RybColorMixer.d.ts.map +0 -1
  95. package/dist/services/color/RybColorMixer.js +0 -362
  96. package/dist/services/color/RybColorMixer.js.map +0 -1
  97. package/dist/services/color/SpectralMixer.d.ts +0 -43
  98. package/dist/services/color/SpectralMixer.d.ts.map +0 -1
  99. package/dist/services/color/SpectralMixer.js +0 -59
  100. package/dist/services/color/SpectralMixer.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hue-warp.js","sourceRoot":"","sources":["../../../../src/services/dye/wheels/hue-warp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The Munsell hue wheel: 40 principal hues at 3.6° per ASTM step, anchored
3
+ * to sRGB by the renotation data at Value 6 / Chroma 8 (see NOTICE).
4
+ * Red's complement is 5BG, a blue-green — the third answer after RGB (cyan)
5
+ * and RYB (green), and the one Japan's JIS Z 8721 teaches.
6
+ *
7
+ * The 40 raw renotation anchors the table was derived from live in the
8
+ * separate `data/munsell-anchors.json`, which nothing at runtime imports —
9
+ * only `munsell.test.ts`, for its cross-check. Keeping them out of this module
10
+ * keeps them out of every bundle that draws a wheel.
11
+ *
12
+ * @module services/dye/wheels/munsell
13
+ */
14
+ import type { WarpTable } from './types.js';
15
+ export declare const MUNSELL_TABLE: WarpTable;
16
+ export declare const MUNSELL_WHEEL: import("./types.js").ColorWheel;
17
+ //# sourceMappingURL=munsell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"munsell.d.ts","sourceRoot":"","sources":["../../../../src/services/dye/wheels/munsell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,aAAa,EAAE,SAAqD,CAAC;AAElF,eAAO,MAAM,aAAa,iCAAyC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The Munsell hue wheel: 40 principal hues at 3.6° per ASTM step, anchored
3
+ * to sRGB by the renotation data at Value 6 / Chroma 8 (see NOTICE).
4
+ * Red's complement is 5BG, a blue-green — the third answer after RGB (cyan)
5
+ * and RYB (green), and the one Japan's JIS Z 8721 teaches.
6
+ *
7
+ * The 40 raw renotation anchors the table was derived from live in the
8
+ * separate `data/munsell-anchors.json`, which nothing at runtime imports —
9
+ * only `munsell.test.ts`, for its cross-check. Keeping them out of this module
10
+ * keeps them out of every bundle that draws a wheel.
11
+ *
12
+ * @module services/dye/wheels/munsell
13
+ */
14
+ import munsellData from '../../../data/munsell-hues.json' with { type: 'json' };
15
+ import { hueWarpWheel } from './hue-warp.js';
16
+ export const MUNSELL_TABLE = munsellData.table;
17
+ export const MUNSELL_WHEEL = hueWarpWheel('munsell', MUNSELL_TABLE);
18
+ //# sourceMappingURL=munsell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"munsell.js","sourceRoot":"","sources":["../../../../src/services/dye/wheels/munsell.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,WAAW,MAAM,iCAAiC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,CAAC,MAAM,aAAa,GAAc,WAAW,CAAC,KAA6B,CAAC;AAElF,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The OKLCH-hue wheel: the sRGB hue circle re-spaced so equal angles are equal
3
+ * OKLab hue steps. Targets still carry the base's HSV saturation and value, so
4
+ * it behaves like RYB (a different spacing), not like a different colour space.
5
+ *
6
+ * The raw OKLab hue of the pure-hue circle reverses by 0.16° across HSV
7
+ * 231.4°–240° — invisible on the ring, a 13° inverse error if left alone
8
+ * (research 05 §7). `normalizeWarpTable` monotonises it and the tests pin the
9
+ * result.
10
+ *
11
+ * The table is DATA, generated by `scripts/build-oklch-hue-table.ts` and
12
+ * committed: deriving it here meant 72 `hsvToHex` + `hexToOklch` round trips
13
+ * on every module load, in every bundle that touched a colour wheel.
14
+ * `scripts/lib/oklch-hue-table.test.ts` re-runs the derivation and compares,
15
+ * so the JSON cannot drift from the maths that produced it.
16
+ *
17
+ * @module services/dye/wheels/oklch-hue
18
+ */
19
+ import type { WarpTable } from './types.js';
20
+ export declare const OKLCH_HUE_TABLE: WarpTable;
21
+ export declare const OKLCH_HUE_WHEEL: import("./types.js").ColorWheel;
22
+ //# sourceMappingURL=oklch-hue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oklch-hue.d.ts","sourceRoot":"","sources":["../../../../src/services/dye/wheels/oklch-hue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,eAAO,MAAM,eAAe,EAAE,SAAsD,CAAC;AAErF,eAAO,MAAM,eAAe,iCAA6C,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The OKLCH-hue wheel: the sRGB hue circle re-spaced so equal angles are equal
3
+ * OKLab hue steps. Targets still carry the base's HSV saturation and value, so
4
+ * it behaves like RYB (a different spacing), not like a different colour space.
5
+ *
6
+ * The raw OKLab hue of the pure-hue circle reverses by 0.16° across HSV
7
+ * 231.4°–240° — invisible on the ring, a 13° inverse error if left alone
8
+ * (research 05 §7). `normalizeWarpTable` monotonises it and the tests pin the
9
+ * result.
10
+ *
11
+ * The table is DATA, generated by `scripts/build-oklch-hue-table.ts` and
12
+ * committed: deriving it here meant 72 `hsvToHex` + `hexToOklch` round trips
13
+ * on every module load, in every bundle that touched a colour wheel.
14
+ * `scripts/lib/oklch-hue-table.test.ts` re-runs the derivation and compares,
15
+ * so the JSON cannot drift from the maths that produced it.
16
+ *
17
+ * @module services/dye/wheels/oklch-hue
18
+ */
19
+ import oklchHueData from '../../../data/oklch-hue-table.json' with { type: 'json' };
20
+ import { hueWarpWheel } from './hue-warp.js';
21
+ export const OKLCH_HUE_TABLE = oklchHueData.table;
22
+ export const OKLCH_HUE_WHEEL = hueWarpWheel('oklch-hue', OKLCH_HUE_TABLE);
23
+ //# sourceMappingURL=oklch-hue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oklch-hue.js","sourceRoot":"","sources":["../../../../src/services/dye/wheels/oklch-hue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,YAAY,MAAM,oCAAoC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,MAAM,CAAC,MAAM,eAAe,GAAc,YAAY,CAAC,KAA6B,CAAC;AAErF,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The constant-lightness OKLCH wheel: rotate hue at the base's OKLab L and C,
3
+ * then gamut-map. Unlike the warp wheels this abandons the base's HSV S/V, so
4
+ * a light base yields light partners and palettes lean toward mid-tones —
5
+ * a deliberate product decision (spec §2.2), not a side effect.
6
+ *
7
+ * @module services/dye/wheels/oklch-lightness
8
+ */
9
+ import type { ColorWheel } from './types.js';
10
+ /** Ring stops are painted at this L, at the maximum in-gamut chroma per hue. */
11
+ export declare const RING_LIGHTNESS = 0.65;
12
+ /**
13
+ * Below this OKLCH chroma a colour is treated as grey: no hue, no rotation.
14
+ *
15
+ * Pure White (#F9F8F4) measures OKLCH C ≈ 0.0054 and must stay grey under
16
+ * this wheel, so the threshold sits just above it — not at the 0.005 a first
17
+ * draft used, which is just below that dye's real chroma (cross-checked
18
+ * against culori's oklch converter) and would have let it rotate. 0.006
19
+ * stays well under the next dye up by chroma, Charcoal Grey at C ≈ 0.0083,
20
+ * so it does not swallow any colour meant to keep rotating.
21
+ */
22
+ export declare const ACHROMATIC_CHROMA = 0.006;
23
+ export declare const OKLCH_LIGHTNESS_WHEEL: ColorWheel;
24
+ //# sourceMappingURL=oklch-lightness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oklch-lightness.d.ts","sourceRoot":"","sources":["../../../../src/services/dye/wheels/oklch-lightness.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,gFAAgF;AAChF,eAAO,MAAM,cAAc,OAAO,CAAC;AAEnC;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAMvC,eAAO,MAAM,qBAAqB,EAAE,UAyCnC,CAAC"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * The constant-lightness OKLCH wheel: rotate hue at the base's OKLab L and C,
3
+ * then gamut-map. Unlike the warp wheels this abandons the base's HSV S/V, so
4
+ * a light base yields light partners and palettes lean toward mid-tones —
5
+ * a deliberate product decision (spec §2.2), not a side effect.
6
+ *
7
+ * @module services/dye/wheels/oklch-lightness
8
+ */
9
+ import { ColorConverter } from '../../color/ColorConverter.js';
10
+ /** Ring stops are painted at this L, at the maximum in-gamut chroma per hue. */
11
+ export const RING_LIGHTNESS = 0.65;
12
+ /**
13
+ * Below this OKLCH chroma a colour is treated as grey: no hue, no rotation.
14
+ *
15
+ * Pure White (#F9F8F4) measures OKLCH C ≈ 0.0054 and must stay grey under
16
+ * this wheel, so the threshold sits just above it — not at the 0.005 a first
17
+ * draft used, which is just below that dye's real chroma (cross-checked
18
+ * against culori's oklch converter) and would have let it rotate. 0.006
19
+ * stays well under the next dye up by chroma, Charcoal Grey at C ≈ 0.0083,
20
+ * so it does not swallow any colour meant to keep rotating.
21
+ */
22
+ export const ACHROMATIC_CHROMA = 0.006;
23
+ const mod360 = (x) => ((x % 360) + 360) % 360;
24
+ let ringCache = null;
25
+ export const OKLCH_LIGHTNESS_WHEEL = {
26
+ id: 'oklch-lightness',
27
+ // This wheel abandons the base's HSV S/V for its OKLab L and C, so ranking
28
+ // candidates by angular hue distance would discard exactly the property the
29
+ // wheel exists to preserve. `HarmonySelector` reads this and forces ΔE.
30
+ carriesBaseHsv: false,
31
+ hueOf(hex) {
32
+ const { C, h } = ColorConverter.hexToOklch(hex);
33
+ // A grey has no hue: its measured OKLab angle is an artefact of 8-bit
34
+ // rounding (#808080 reads ≈ 90°, Pure White ≈ 250°), which would park the
35
+ // base spoke at an arbitrary and unstable angle. Every warp wheel puts a
36
+ // grey at 0 (HSV hue of a grey is 0); this one does too.
37
+ if (C < ACHROMATIC_CHROMA)
38
+ return 0;
39
+ return mod360(h);
40
+ },
41
+ target(baseHex, wheelHue) {
42
+ const base = ColorConverter.hexToOklch(baseHex);
43
+ if (base.C < ACHROMATIC_CHROMA) {
44
+ // A grey has no hue to rotate; every partner of a grey is that grey.
45
+ const { r, g, b } = ColorConverter.hexToRgb(baseHex);
46
+ const hex = ColorConverter.rgbToHex(r, g, b);
47
+ return { targetHex: hex, targetHue: ColorConverter.hexToHsv(hex).h };
48
+ }
49
+ const targetHex = ColorConverter.gamutMapOklch(base.L, base.C, mod360(wheelHue));
50
+ return { targetHex, targetHue: ColorConverter.hexToHsv(targetHex).h };
51
+ },
52
+ ringStops(count) {
53
+ if (ringCache && ringCache.count === count)
54
+ return ringCache.stops;
55
+ const stops = [];
56
+ for (let i = 0; i < count; i++) {
57
+ const h = (i * 360) / count;
58
+ const c = ColorConverter.maxChromaOklch(RING_LIGHTNESS, h);
59
+ stops.push(ColorConverter.gamutMapOklch(RING_LIGHTNESS, c, h));
60
+ }
61
+ ringCache = { count, stops };
62
+ return stops;
63
+ },
64
+ };
65
+ //# sourceMappingURL=oklch-lightness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oklch-lightness.js","sourceRoot":"","sources":["../../../../src/services/dye/wheels/oklch-lightness.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAG/D,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AAEnC;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEvC,MAAM,MAAM,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAE9D,IAAI,SAAS,GAAyD,IAAI,CAAC;AAE3E,MAAM,CAAC,MAAM,qBAAqB,GAAe;IAC/C,EAAE,EAAE,iBAAiB;IAErB,2EAA2E;IAC3E,4EAA4E;IAC5E,wEAAwE;IACxE,cAAc,EAAE,KAAK;IAErB,KAAK,CAAC,GAAW;QACf,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAChD,sEAAsE;QACtE,0EAA0E;QAC1E,yEAAyE;QACzE,yDAAyD;QACzD,IAAI,CAAC,GAAG,iBAAiB;YAAE,OAAO,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,OAAe,EAAE,QAAgB;QACtC,MAAM,IAAI,GAAG,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,CAAC,GAAG,iBAAiB,EAAE,CAAC;YAC/B,qEAAqE;YACrE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7C,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,CAAC;QACD,MAAM,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjF,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACxE,CAAC;IAED,SAAS,CAAC,KAAa;QACrB,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK;YAAE,OAAO,SAAS,CAAC,KAAK,CAAC;QACnE,MAAM,KAAK,GAAe,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC;YAC5B,MAAM,CAAC,GAAG,cAAc,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,SAAS,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The RGB (identity) and RYB (artist's) wheels.
3
+ *
4
+ * RYB is the 25-pair NodeBox/Paletton/Adobe hue warp. **Column 1 is the RYB
5
+ * angle, column 2 the sRGB hue** — the most-read write-up states it the other
6
+ * way round in prose while implementing it correctly, and reversing it turns
7
+ * red's complement from green into blue while a naïve "≠ 180°" test still
8
+ * passes (research 01 §1a). `registry.test.ts` asserts the values.
9
+ *
10
+ * @module services/dye/wheels/rgb-ryb
11
+ */
12
+ import type { WarpTable } from './types.js';
13
+ /** The identity: today's Harmony Explorer, bit for bit. */
14
+ export declare const RGB_WHEEL: import("./types.js").ColorWheel;
15
+ /** `[rybAngle, srgbHue]`. Red's complement (RYB 180°) is sRGB 138°. */
16
+ export declare const RYB_TABLE: WarpTable;
17
+ export declare const RYB_WHEEL: import("./types.js").ColorWheel;
18
+ //# sourceMappingURL=rgb-ryb.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgb-ryb.d.ts","sourceRoot":"","sources":["../../../../src/services/dye/wheels/rgb-ryb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,2DAA2D;AAC3D,eAAO,MAAM,SAAS,iCAGpB,CAAC;AAEH,uEAAuE;AACvE,eAAO,MAAM,SAAS,EAAE,SA0BvB,CAAC;AAEF,eAAO,MAAM,SAAS,iCAAiC,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * The RGB (identity) and RYB (artist's) wheels.
3
+ *
4
+ * RYB is the 25-pair NodeBox/Paletton/Adobe hue warp. **Column 1 is the RYB
5
+ * angle, column 2 the sRGB hue** — the most-read write-up states it the other
6
+ * way round in prose while implementing it correctly, and reversing it turns
7
+ * red's complement from green into blue while a naïve "≠ 180°" test still
8
+ * passes (research 01 §1a). `registry.test.ts` asserts the values.
9
+ *
10
+ * @module services/dye/wheels/rgb-ryb
11
+ */
12
+ import { hueWarpWheel } from './hue-warp.js';
13
+ /** The identity: today's Harmony Explorer, bit for bit. */
14
+ export const RGB_WHEEL = hueWarpWheel('rgb', [
15
+ [0, 0],
16
+ [360, 360],
17
+ ]);
18
+ /** `[rybAngle, srgbHue]`. Red's complement (RYB 180°) is sRGB 138°. */
19
+ export const RYB_TABLE = [
20
+ [0, 0],
21
+ [15, 8],
22
+ [30, 17],
23
+ [45, 26],
24
+ [60, 34],
25
+ [75, 41],
26
+ [90, 48],
27
+ [105, 54],
28
+ [120, 60],
29
+ [135, 81],
30
+ [150, 103],
31
+ [165, 123],
32
+ [180, 138],
33
+ [195, 155],
34
+ [210, 171],
35
+ [225, 187],
36
+ [240, 204],
37
+ [255, 219],
38
+ [270, 234],
39
+ [285, 251],
40
+ [300, 267],
41
+ [315, 282],
42
+ [330, 298],
43
+ [345, 329],
44
+ [360, 360],
45
+ ];
46
+ export const RYB_WHEEL = hueWarpWheel('ryb', RYB_TABLE);
47
+ //# sourceMappingURL=rgb-ryb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rgb-ryb.js","sourceRoot":"","sources":["../../../../src/services/dye/wheels/rgb-ryb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,2DAA2D;AAC3D,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE;IAC3C,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,GAAG,EAAE,GAAG,CAAC;CACX,CAAC,CAAC;AAEH,uEAAuE;AACvE,MAAM,CAAC,MAAM,SAAS,GAAc;IAClC,CAAC,CAAC,EAAE,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,CAAC,EAAE,EAAE,EAAE,CAAC;IACR,CAAC,EAAE,EAAE,EAAE,CAAC;IACR,CAAC,EAAE,EAAE,EAAE,CAAC;IACR,CAAC,EAAE,EAAE,EAAE,CAAC;IACR,CAAC,EAAE,EAAE,EAAE,CAAC;IACR,CAAC,GAAG,EAAE,EAAE,CAAC;IACT,CAAC,GAAG,EAAE,EAAE,CAAC;IACT,CAAC,GAAG,EAAE,EAAE,CAAC;IACT,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;IACV,CAAC,GAAG,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * A colour wheel for the Harmony Explorer: how a colour becomes an angle, how
3
+ * an angle becomes a target colour, and how the ring is painted.
4
+ *
5
+ * Every consumer — the web app, the Discord bot, the OG card — reads wheels
6
+ * from this package and holds no list of its own (spec §2).
7
+ *
8
+ * @module services/dye/wheels/types
9
+ */
10
+ import type { ColorWheelId, HexColor } from '@xivdyetools/types';
11
+ export type { ColorWheelId };
12
+ export interface ColorWheel {
13
+ readonly id: ColorWheelId;
14
+ /**
15
+ * True when targets carry the base's HSV S/V (hue-distance ranking is
16
+ * meaningful). False for wheels that preserve lightness/chroma instead,
17
+ * which must always rank by ΔE.
18
+ */
19
+ readonly carriesBaseHsv: boolean;
20
+ /** Where a colour sits on this wheel, 0–360. */
21
+ hueOf(hex: string): number;
22
+ /**
23
+ * The ideal colour for a slot at `wheelHue`, carrying whatever this wheel
24
+ * preserves from the base. `targetHue` is always an sRGB/HSV hue, because
25
+ * the non-perceptual ranking branch compares dye HSV hue against it.
26
+ */
27
+ target(baseHex: string, wheelHue: number): {
28
+ targetHex: HexColor;
29
+ targetHue: number;
30
+ };
31
+ /** Ring paint at `count` evenly spaced wheel angles, plain in-gamut hex. */
32
+ ringStops(count: number): readonly HexColor[];
33
+ }
34
+ /**
35
+ * `[wheelAngle, hsvHue]` pairs, both 0–360, first pair `[0, 0]`, last pair
36
+ * `[360, 360]`, both columns strictly increasing. A hue-warp wheel is defined
37
+ * entirely by one of these.
38
+ */
39
+ export type WarpTable = ReadonlyArray<readonly [number, number]>;
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/services/dye/wheels/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEjE,YAAY,EAAE,YAAY,EAAE,CAAC;AAE7B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC;IAC1B;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,gDAAgD;IAChD,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B;;;;OAIG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;QAAE,SAAS,EAAE,QAAQ,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,4EAA4E;IAC5E,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,QAAQ,EAAE,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * A colour wheel for the Harmony Explorer: how a colour becomes an angle, how
3
+ * an angle becomes a target colour, and how the ring is painted.
4
+ *
5
+ * Every consumer — the web app, the Discord bot, the OG card — reads wheels
6
+ * from this package and holds no list of its own (spec §2).
7
+ *
8
+ * @module services/dye/wheels/types
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/services/dye/wheels/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @module services/localization
8
8
  */
9
- import type { LocaleCode, TranslationKey, HarmonyTypeKey, VisionType, ToolKey, SheetKey, RaceKey, ClanKey } from '@xivdyetools/types';
9
+ import type { LocaleCode, TranslationKey, HarmonyTypeKey, VisionType, ToolKey, SheetKey, RaceKey, ClanKey, ColorWheelId } from '@xivdyetools/types';
10
10
  import type { LocaleRegistry } from './LocaleRegistry.js';
11
11
  /**
12
12
  * Provides translations with automatic fallback to English
@@ -112,6 +112,11 @@ export declare class TranslationProvider {
112
112
  * ```
113
113
  */
114
114
  getHarmonyType(key: HarmonyTypeKey, locale: LocaleCode): string;
115
+ /**
116
+ * Localised display name of a Harmony Explorer colour wheel, with English
117
+ * fallback and finally the id itself, mirroring {@link getHarmonyType}.
118
+ */
119
+ getColorWheelName(id: ColorWheelId, locale: LocaleCode): string;
115
120
  /**
116
121
  * Get vision type with fallback
117
122
  *
@@ -1 +1 @@
1
- {"version":3,"file":"TranslationProvider.d.ts","sourceRoot":"","sources":["../../../src/services/localization/TranslationProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACR,MAAM,oBAAoB,CAAC;AAM5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,cAAc;IAE5C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAqBzD;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IA+B7D;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoBzD;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoB/D;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoBzD;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoB/D;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoB1D;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAiB3D;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAiBrD;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAiBvD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoBjD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoBjD;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAyB5D;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,SAAS;CAMlB"}
1
+ {"version":3,"file":"TranslationProvider.d.ts","sourceRoot":"","sources":["../../../src/services/localization/TranslationProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,OAAO,EACP,QAAQ,EACR,OAAO,EACP,OAAO,EACP,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAM5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ;gBAAR,QAAQ,EAAE,cAAc;IAE5C;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAqBzD;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI;IA+B7D;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoBzD;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoB/D;;;;;;;;;;;;OAYG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoBzD;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoB/D;;;OAGG;IACH,iBAAiB,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAM/D;;;;;;;;;;;;OAYG;IACH,aAAa,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoB1D;;;;;;;;;;;;;;;;OAgBG;IACH,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAiB3D;;;;;;;;;;;;;;;OAeG;IACH,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAiBrD;;;;;;;;;;;;;;;OAeG;IACH,YAAY,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAiBvD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoBjD;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAoBjD;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM;IAyB5D;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,SAAS;CAMlB"}
@@ -214,6 +214,14 @@ export class TranslationProvider {
214
214
  // Final fallback: format key
215
215
  return this.formatKey(key);
216
216
  }
217
+ /**
218
+ * Localised display name of a Harmony Explorer colour wheel, with English
219
+ * fallback and finally the id itself, mirroring {@link getHarmonyType}.
220
+ */
221
+ getColorWheelName(id, locale) {
222
+ const pick = (data) => data?.colorWheels && Object.hasOwn(data.colorWheels, id) ? data.colorWheels[id] : undefined;
223
+ return pick(this.registry.getLocale(locale)) ?? pick(this.registry.getLocale('en')) ?? id;
224
+ }
217
225
  /**
218
226
  * Get vision type with fallback
219
227
  *
@@ -1 +1 @@
1
- {"version":3,"file":"TranslationProvider.js","sourceRoot":"","sources":["../../../src/services/localization/TranslationProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TranslationProvider.js","sourceRoot":"","sources":["../../../src/services/localization/TranslationProvider.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,8 @@
12
12
  *
13
13
  * - ciede2000: ΔE2000 — industry-standard perceptual formula (**the default
14
14
  * everywhere**)
15
- * - oklab: ΔEOK — OKLAB Euclidean (prints raw, dp 3)
15
+ * - oklab: ΔEOK2 — OKLAB Euclidean, a/b scaled x2 per CSS Color 4 §20.4
16
+ * (prints raw, dp 3)
16
17
  * - cie76: ΔE76 — CIELAB Euclidean
17
18
  * - redmean: REDMEAN — weighted RGB approximation
18
19
  * - rgb: RGB DIST — Euclidean RGB distance
@@ -30,7 +31,7 @@
30
31
  * migrate through {@link normalizeMatchingMethod}.
31
32
  */
32
33
  export type MatchingMethod = 'ciede2000' | 'oklab' | 'cie76' | 'redmean' | 'rgb' | 'distinguish';
33
- /** Suite display order: ΔE2000 · ΔEOK · ΔE76 · REDMEAN · RGB DIST · DISTINGUISH % */
34
+ /** Suite display order: ΔE2000 · ΔEOK2 · ΔE76 · REDMEAN · RGB DIST · DISTINGUISH % */
34
35
  export declare const MATCHING_METHODS: readonly MatchingMethod[];
35
36
  /** ΔE2000 is the default everywhere — one answer to "what does CLOSE mean". */
36
37
  export declare const DEFAULT_MATCHING_METHOD: MatchingMethod;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC;AAEjG,qFAAqF;AACrF,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAOrD,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,EAAE,cAA4B,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,EAAE,MAAM,CAQzE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAKrE,CAAC;AAEF,yCAAyC;AACzC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED;;;;GAIG;AACH;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAMtE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,aAAa,CAAC;AAEjG,sFAAsF;AACtF,eAAO,MAAM,gBAAgB,EAAE,SAAS,cAAc,EAOrD,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,EAAE,cAA4B,CAAC;AAEnE;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,cAAc,GAAG,OAAO,EAAE,MAAM,CAQzE,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAKrE,CAAC;AAEF,yCAAyC;AACzC,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,cAAc,CAExE;AAED;;;;GAIG;AACH;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAMtE"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * @module types
8
8
  */
9
- /** Suite display order: ΔE2000 · ΔEOK · ΔE76 · REDMEAN · RGB DIST · DISTINGUISH % */
9
+ /** Suite display order: ΔE2000 · ΔEOK2 · ΔE76 · REDMEAN · RGB DIST · DISTINGUISH % */
10
10
  export const MATCHING_METHODS = [
11
11
  'ciede2000',
12
12
  'oklab',
@@ -23,7 +23,7 @@ export const DEFAULT_MATCHING_METHOD = 'ciede2000';
23
23
  */
24
24
  export const MATCHING_METHOD_TAGS = {
25
25
  ciede2000: 'ΔE2000',
26
- oklab: 'ΔEOK',
26
+ oklab: 'ΔEOK2',
27
27
  cie76: 'ΔE76',
28
28
  redmean: 'REDMEAN',
29
29
  rgb: 'RGB DIST',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA+BH,qFAAqF;AACrF,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD,WAAW;IACX,OAAO;IACP,OAAO;IACP,SAAS;IACT,KAAK;IACL,aAAa;CACd,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,uBAAuB,GAAmB,WAAW,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA6C;IAC5E,SAAS,EAAE,QAAQ;IACnB,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,eAAe;IAC5B,KAAK,EAAE,OAAO;CACf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAmC;IACxE,IAAI,EAAE,WAAW;IACjB,gBAAgB,EAAE,WAAW;IAC7B,kEAAkE;IAClE,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF,yCAAyC;AACzC,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAED;;;;GAIG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC;QAClF,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgCH,sFAAsF;AACtF,MAAM,CAAC,MAAM,gBAAgB,GAA8B;IACzD,WAAW;IACX,OAAO;IACP,OAAO;IACP,SAAS;IACT,KAAK;IACL,aAAa;CACd,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,uBAAuB,GAAmB,WAAW,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA6C;IAC5E,SAAS,EAAE,QAAQ;IACnB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,MAAM;IACb,OAAO,EAAE,SAAS;IAClB,GAAG,EAAE,UAAU;IACf,WAAW,EAAE,eAAe;IAC5B,KAAK,EAAE,OAAO;CACf,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAmC;IACxE,IAAI,EAAE,WAAW;IACjB,gBAAgB,EAAE,WAAW;IAC7B,kEAAkE;IAClE,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF,yCAAyC;AACzC,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAK,gBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9F,CAAC;AAED;;;;GAIG;AACH;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACpD,IAAI,gBAAgB,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,KAAK,CAAC,EAAE,CAAC;QAClF,OAAO,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xivdyetools/core",
3
- "version": "4.3.0",
3
+ "version": "5.2.0",
4
4
  "description": "Core color algorithms and dye database for XIV Dye Tools",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -18,7 +18,8 @@
18
18
  },
19
19
  "files": [
20
20
  "dist",
21
- "README.md"
21
+ "README.md",
22
+ "NOTICE"
22
23
  ],
23
24
  "keywords": [
24
25
  "ffxiv",
@@ -46,13 +47,15 @@
46
47
  },
47
48
  "dependencies": {
48
49
  "spectral.js": "^3.0.0",
49
- "@xivdyetools/types": "3.1.0",
50
+ "@xivdyetools/types": "3.2.0",
50
51
  "@xivdyetools/logger": "2.2.0"
51
52
  },
52
53
  "devDependencies": {
54
+ "@types/culori": "^2.1.1",
53
55
  "@types/node": "^26.4.0",
54
56
  "@vitest/coverage-v8": "^4.1.11",
55
57
  "csv-parse": "^7.0.2",
58
+ "culori": "^4.0.2",
56
59
  "tsx": "^4.23.12",
57
60
  "vitest": "^4.1.11",
58
61
  "yaml": "^2.9.0"
@@ -63,6 +66,8 @@
63
66
  "scripts": {
64
67
  "build": "npm run build:locales && tsc -p tsconfig.build.json && npm run copy:locales",
65
68
  "build:locales": "tsx scripts/build-locales.ts",
69
+ "build:munsell": "tsx scripts/build-munsell-hues.ts",
70
+ "build:oklch-hue": "tsx scripts/build-oklch-hue-table.ts",
66
71
  "copy:locales": "tsx scripts/copy-locales.ts",
67
72
  "calibrate:bands": "tsx scripts/calibrate-bands.ts",
68
73
  "test": "vitest run",