@xivdyetools/core 1.15.4 → 1.16.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.
package/README.md CHANGED
@@ -159,6 +159,12 @@ const triadicDeltaE = dyeService.findTriadicDyes('#FF6B6B', {
159
159
  deltaEFormula: 'cie2000', // or 'cie76' (faster, default)
160
160
  });
161
161
 
162
+ // Color space selection for hue rotation (v1.16.0+)
163
+ // OKLCH produces more perceptually balanced harmonies
164
+ const triadicOklch = dyeService.findTriadicDyes('#FF6B6B', { colorSpace: 'oklch' });
165
+ const compLch = dyeService.findComplementaryPair('#FF6B6B', { colorSpace: 'lch' });
166
+ // Available spaces: 'hsv' (default), 'oklch', 'lch', 'hsl'
167
+
162
168
  // Filtering
163
169
  const redDyes = dyeService.searchByCategory('Red');
164
170
  const searchResults = dyeService.searchByName('black');
@@ -295,6 +301,7 @@ import type {
295
301
  ICacheBackend,
296
302
  HarmonyOptions,
297
303
  HarmonyMatchingAlgorithm,
304
+ HarmonyColorSpace,
298
305
  DeltaEFormula
299
306
  } from 'xivdyetools-core';
300
307
  ```
@@ -1,261 +1,261 @@
1
- {
2
- "locale": "de",
3
- "meta": {
4
- "version": "1.0.0",
5
- "generated": "2026-01-26T14:50:02.825Z",
6
- "dyeCount": 125
7
- },
8
- "labels": {
9
- "dye": "Farbstoff",
10
- "dark": "Dunkel",
11
- "metallic": "Metallic",
12
- "pastel": "Pastell",
13
- "cosmic": "Kosmo",
14
- "cosmicExploration": "Kosmo-Erkundung",
15
- "cosmicFortunes": "Kosmo-Glück"
16
- },
17
- "dyeNames": {
18
- "5729": "Schneeweißer",
19
- "5730": "Aschgrauer",
20
- "5731": "Goobbuegrauer",
21
- "5732": "Schiefergrauer",
22
- "5733": "Anthraziter",
23
- "5734": "Rußschwarzer",
24
- "5735": "Rosaroter",
25
- "5736": "Altrosa",
26
- "5737": "Rolanbeerenroter",
27
- "5738": "Dalamudroter",
28
- "5739": "Rostroter",
29
- "5740": "Weinroter",
30
- "5741": "Korallenrosa",
31
- "5742": "Blutroter",
32
- "5743": "Lachsrosa",
33
- "5744": "Abendroter",
34
- "5745": "Tafelbergroter",
35
- "5746": "Borkenbrauner",
36
- "5747": "Schokoladenbrauner",
37
- "5748": "Rotbrauner",
38
- "5749": "Koboldbrauner",
39
- "5750": "Korkbrauner",
40
- "5751": "Qiqirnbrauner",
41
- "5752": "Opo-Opobrauner",
42
- "5753": "Steinbockbrauner",
43
- "5754": "Kürbisoranger",
44
- "5755": "Eichelbrauner",
45
- "5756": "Obstbrauner",
46
- "5757": "Kastanienbrauner",
47
- "5758": "Kartonbrauner",
48
- "5759": "Schieferbrauner",
49
- "5760": "Maulwurfsbrauner",
50
- "5761": "Lehmbrauner",
51
- "5762": "Knochenweißer",
52
- "5763": "Ul'dahbrauner",
53
- "5764": "Wüstengelber",
54
- "5765": "Honiggelber",
55
- "5766": "Maisgelber",
56
- "5767": "Coeurlgelber",
57
- "5768": "Cremegelber",
58
- "5769": "Halataligelber",
59
- "5770": "Rosinenbrauner",
60
- "5771": "Schlammgrüner",
61
- "5772": "Sylphengrüner",
62
- "5773": "Limettengrüner",
63
- "5774": "Moosgrüner",
64
- "5775": "Grasgrüner",
65
- "5776": "Olivgrüner",
66
- "5777": "Sumpfgrüner",
67
- "5778": "Apfelgrüner",
68
- "5779": "Kaktusgrüner",
69
- "5780": "Jägergrüner",
70
- "5781": "Ochugrüner",
71
- "5782": "Adaman-Taimaigrüner",
72
- "5783": "Nophicagrüner",
73
- "5784": "Waldgrüner",
74
- "5785": "Mintgrüner",
75
- "5786": "Türkiser",
76
- "5787": "Morbolgrüner",
77
- "5788": "Eisblauer",
78
- "5789": "Himmelblauer",
79
- "5790": "Seenebelblauer",
80
- "5791": "Pfauenblauer",
81
- "5792": "Rhotanoblauer",
82
- "5793": "Leichenblauer",
83
- "5794": "Erdseimblauer",
84
- "5795": "Indigoblauer",
85
- "5796": "Tintenblauer",
86
- "5797": "Raptorenblauer",
87
- "5798": "Othardblauer",
88
- "5799": "Sturmblauer",
89
- "5800": "Nichtsblauer",
90
- "5801": "Königsblauer",
91
- "5802": "Mitternachtsblauer",
92
- "5803": "Schattenblauer",
93
- "5804": "Tiefblauer",
94
- "5805": "Lavendelblauer",
95
- "5806": "Düstervioletter",
96
- "5807": "Johannisbeerenvioletter",
97
- "5808": "Irisvioletter",
98
- "5809": "Weintraubenvioletter",
99
- "5810": "Lotusrosa",
100
- "5811": "Kolibrirosa",
101
- "5812": "Pflaumenvioletter",
102
- "5813": "Königsvioletter",
103
- "13114": "Wolkenweißer",
104
- "13115": "Rabenschwarzer",
105
- "13116": "Metallic silberner",
106
- "13117": "Metallic goldener",
107
- "13708": "Pastellrosa",
108
- "13709": "Dunkelroter",
109
- "13710": "Dunkelbrauner",
110
- "13711": "Pastellgrüner",
111
- "13712": "Dunkelgrüner",
112
- "13713": "Pastellblauer",
113
- "13714": "Dunkelblauer",
114
- "13715": "Pastellvioletter",
115
- "13716": "Dunkelvioletter",
116
- "13717": "Metallic roter",
117
- "13718": "Metallic orangefarbener",
118
- "13719": "Metallic gelber",
119
- "13720": "Metallic grüner",
120
- "13721": "Metallic himmelblauer",
121
- "13722": "Metallic blauer",
122
- "13723": "Metallic violetter",
123
- "30116": "Rubinroter",
124
- "30117": "Kirschpinker",
125
- "30118": "Kanariengelber",
126
- "30119": "Vanillegelber",
127
- "30120": "Dragoonblauer",
128
- "30121": "Cyanblauer",
129
- "30122": "Cermetgrauer",
130
- "30123": "Perlmutt-",
131
- "30124": "Metallic messingfarbener",
132
- "48163": "Neonpinker",
133
- "48164": "Knalloranger",
134
- "48165": "Neongrüner",
135
- "48166": "Neongelber",
136
- "48167": "Purpurvioletter",
137
- "48168": "Azurblauer",
138
- "48169": "Metallic pinker",
139
- "48170": "Metallic rubinroter",
140
- "48171": "Metallic kobaltgrüner",
141
- "48172": "Metallic dunkelblauer",
142
- "48227": "Karmesinroter"
143
- },
144
- "categories": {
145
- "Neutral": "Neutral",
146
- "Reds": "Rot",
147
- "Blues": "Blau",
148
- "Browns": "Braun",
149
- "Greens": "Grün",
150
- "Yellows": "Gelb",
151
- "Purples": "Violett",
152
- "Special": "Spezial",
153
- "Facewear": "Gesichtsschmuck"
154
- },
155
- "acquisitions": {
156
- "Dye Vendor": "Farbstoffverkäufer",
157
- "Crafting": "Handwerker",
158
- "Ixali Vendor": "Ixal-Händler",
159
- "Sylphic Vendor": "Sylphen-Händlerin",
160
- "Amalj'aa Vendor": "Amalj'aa-Händler",
161
- "Sahagin Vendor": "Sahagin-Händler",
162
- "Kobold Vendor": "Kobold-Händler",
163
- "Cosmic Exploration": "Kosmo-Erkundung",
164
- "Cosmic Fortunes": "Kosmo-Glück",
165
- "Venture Coffers": "Gehilfen-Schatzkiste",
166
- "Facewear Collection": "Gesichtsschmuck-Sammlung"
167
- },
168
- "metallicDyeIds": [
169
- 13116,
170
- 13117,
171
- 13717,
172
- 13718,
173
- 13719,
174
- 13720,
175
- 13721,
176
- 13722,
177
- 13723,
178
- 30122,
179
- 30123,
180
- 30124,
181
- 48169,
182
- 48170,
183
- 48171,
184
- 48172
185
- ],
186
- "harmonyTypes": {
187
- "complementary": "Komplementär",
188
- "analogous": "Analog",
189
- "triadic": "Triadisch",
190
- "splitComplementary": "Geteiltes Komplement",
191
- "tetradic": "Tetradisch",
192
- "square": "Quadrat",
193
- "monochromatic": "Monochromatisch",
194
- "compound": "Zusammengesetzt",
195
- "shades": "Schattierungen"
196
- },
197
- "visionTypes": {
198
- "normal": "Normales Sehen",
199
- "deuteranopia": "Deuteranopie (Rot-Grün-Farbenblindheit)",
200
- "protanopia": "Protanopie (Rot-Grün-Farbenblindheit)",
201
- "tritanopia": "Tritanopie (Blau-Gelb-Farbenblindheit)",
202
- "achromatopsia": "Achromatopsie (Totale Farbenblindheit)"
203
- },
204
- "jobNames": {
205
- "paladin": "Paladin",
206
- "warrior": "Krieger",
207
- "darkKnight": "Dunkelritter",
208
- "gunbreaker": "Revolverklinge",
209
- "whiteMage": "Weißmagier",
210
- "scholar": "Gelehrter",
211
- "astrologian": "Astrologe",
212
- "sage": "Weiser",
213
- "monk": "Mönch",
214
- "dragoon": "Dragoon",
215
- "ninja": "Ninja",
216
- "samurai": "Samurai",
217
- "reaper": "Schnitter",
218
- "viper": "Viper",
219
- "bard": "Barde",
220
- "machinist": "Maschinist",
221
- "dancer": "Tänzer",
222
- "blackMage": "Schwarzmagier",
223
- "summoner": "Beschwörer",
224
- "redMage": "Rotmagier",
225
- "pictomancer": "Piktomant",
226
- "blueMage": "Blaumagier"
227
- },
228
- "grandCompanyNames": {
229
- "maelstrom": "Der Mahlstrom",
230
- "twinAdder": "Die Bruderschaft der Morgenviper",
231
- "immortalFlames": "Die Legion der Unsterblichen"
232
- },
233
- "races": {
234
- "hyur": "Hyuran",
235
- "elezen": "Elezen",
236
- "lalafell": "Lalafell",
237
- "miqote": "Miqo'te",
238
- "roegadyn": "Roegadyn",
239
- "auRa": "Au Ra",
240
- "hrothgar": "Hrothgar",
241
- "viera": "Viera"
242
- },
243
- "clans": {
244
- "midlander": "Wiesländer",
245
- "highlander": "Hochländer",
246
- "wildwood": "Erlschatten",
247
- "duskwight": "Dunkelalb",
248
- "plainsfolk": "Halmling",
249
- "dunesfolk": "Sandling",
250
- "seekerOfTheSun": "Goldtatze",
251
- "keeperOfTheMoon": "Mondstreuner",
252
- "seaWolf": "Seewolf",
253
- "hellsguard": "Lohengarde",
254
- "raen": "Auri-Raen",
255
- "xaela": "Auri-Xaela",
256
- "helion": "Helion",
257
- "theLost": "Losgesagter",
258
- "rava": "Rava-Viera",
259
- "veena": "Veena-Viera"
260
- }
1
+ {
2
+ "locale": "de",
3
+ "meta": {
4
+ "version": "1.0.0",
5
+ "generated": "2026-02-05T05:26:22.116Z",
6
+ "dyeCount": 125
7
+ },
8
+ "labels": {
9
+ "dye": "Farbstoff",
10
+ "dark": "Dunkel",
11
+ "metallic": "Metallic",
12
+ "pastel": "Pastell",
13
+ "cosmic": "Kosmo",
14
+ "cosmicExploration": "Kosmo-Erkundung",
15
+ "cosmicFortunes": "Kosmo-Glück"
16
+ },
17
+ "dyeNames": {
18
+ "5729": "Schneeweißer",
19
+ "5730": "Aschgrauer",
20
+ "5731": "Goobbuegrauer",
21
+ "5732": "Schiefergrauer",
22
+ "5733": "Anthraziter",
23
+ "5734": "Rußschwarzer",
24
+ "5735": "Rosaroter",
25
+ "5736": "Altrosa",
26
+ "5737": "Rolanbeerenroter",
27
+ "5738": "Dalamudroter",
28
+ "5739": "Rostroter",
29
+ "5740": "Weinroter",
30
+ "5741": "Korallenrosa",
31
+ "5742": "Blutroter",
32
+ "5743": "Lachsrosa",
33
+ "5744": "Abendroter",
34
+ "5745": "Tafelbergroter",
35
+ "5746": "Borkenbrauner",
36
+ "5747": "Schokoladenbrauner",
37
+ "5748": "Rotbrauner",
38
+ "5749": "Koboldbrauner",
39
+ "5750": "Korkbrauner",
40
+ "5751": "Qiqirnbrauner",
41
+ "5752": "Opo-Opobrauner",
42
+ "5753": "Steinbockbrauner",
43
+ "5754": "Kürbisoranger",
44
+ "5755": "Eichelbrauner",
45
+ "5756": "Obstbrauner",
46
+ "5757": "Kastanienbrauner",
47
+ "5758": "Kartonbrauner",
48
+ "5759": "Schieferbrauner",
49
+ "5760": "Maulwurfsbrauner",
50
+ "5761": "Lehmbrauner",
51
+ "5762": "Knochenweißer",
52
+ "5763": "Ul'dahbrauner",
53
+ "5764": "Wüstengelber",
54
+ "5765": "Honiggelber",
55
+ "5766": "Maisgelber",
56
+ "5767": "Coeurlgelber",
57
+ "5768": "Cremegelber",
58
+ "5769": "Halataligelber",
59
+ "5770": "Rosinenbrauner",
60
+ "5771": "Schlammgrüner",
61
+ "5772": "Sylphengrüner",
62
+ "5773": "Limettengrüner",
63
+ "5774": "Moosgrüner",
64
+ "5775": "Grasgrüner",
65
+ "5776": "Olivgrüner",
66
+ "5777": "Sumpfgrüner",
67
+ "5778": "Apfelgrüner",
68
+ "5779": "Kaktusgrüner",
69
+ "5780": "Jägergrüner",
70
+ "5781": "Ochugrüner",
71
+ "5782": "Adaman-Taimaigrüner",
72
+ "5783": "Nophicagrüner",
73
+ "5784": "Waldgrüner",
74
+ "5785": "Mintgrüner",
75
+ "5786": "Türkiser",
76
+ "5787": "Morbolgrüner",
77
+ "5788": "Eisblauer",
78
+ "5789": "Himmelblauer",
79
+ "5790": "Seenebelblauer",
80
+ "5791": "Pfauenblauer",
81
+ "5792": "Rhotanoblauer",
82
+ "5793": "Leichenblauer",
83
+ "5794": "Erdseimblauer",
84
+ "5795": "Indigoblauer",
85
+ "5796": "Tintenblauer",
86
+ "5797": "Raptorenblauer",
87
+ "5798": "Othardblauer",
88
+ "5799": "Sturmblauer",
89
+ "5800": "Nichtsblauer",
90
+ "5801": "Königsblauer",
91
+ "5802": "Mitternachtsblauer",
92
+ "5803": "Schattenblauer",
93
+ "5804": "Tiefblauer",
94
+ "5805": "Lavendelblauer",
95
+ "5806": "Düstervioletter",
96
+ "5807": "Johannisbeerenvioletter",
97
+ "5808": "Irisvioletter",
98
+ "5809": "Weintraubenvioletter",
99
+ "5810": "Lotusrosa",
100
+ "5811": "Kolibrirosa",
101
+ "5812": "Pflaumenvioletter",
102
+ "5813": "Königsvioletter",
103
+ "13114": "Wolkenweißer",
104
+ "13115": "Rabenschwarzer",
105
+ "13116": "Metallic silberner",
106
+ "13117": "Metallic goldener",
107
+ "13708": "Pastellrosa",
108
+ "13709": "Dunkelroter",
109
+ "13710": "Dunkelbrauner",
110
+ "13711": "Pastellgrüner",
111
+ "13712": "Dunkelgrüner",
112
+ "13713": "Pastellblauer",
113
+ "13714": "Dunkelblauer",
114
+ "13715": "Pastellvioletter",
115
+ "13716": "Dunkelvioletter",
116
+ "13717": "Metallic roter",
117
+ "13718": "Metallic orangefarbener",
118
+ "13719": "Metallic gelber",
119
+ "13720": "Metallic grüner",
120
+ "13721": "Metallic himmelblauer",
121
+ "13722": "Metallic blauer",
122
+ "13723": "Metallic violetter",
123
+ "30116": "Rubinroter",
124
+ "30117": "Kirschpinker",
125
+ "30118": "Kanariengelber",
126
+ "30119": "Vanillegelber",
127
+ "30120": "Dragoonblauer",
128
+ "30121": "Cyanblauer",
129
+ "30122": "Cermetgrauer",
130
+ "30123": "Perlmutt-",
131
+ "30124": "Metallic messingfarbener",
132
+ "48163": "Neonpinker",
133
+ "48164": "Knalloranger",
134
+ "48165": "Neongrüner",
135
+ "48166": "Neongelber",
136
+ "48167": "Purpurvioletter",
137
+ "48168": "Azurblauer",
138
+ "48169": "Metallic pinker",
139
+ "48170": "Metallic rubinroter",
140
+ "48171": "Metallic kobaltgrüner",
141
+ "48172": "Metallic dunkelblauer",
142
+ "48227": "Karmesinroter"
143
+ },
144
+ "categories": {
145
+ "Neutral": "Neutral",
146
+ "Reds": "Rot",
147
+ "Blues": "Blau",
148
+ "Browns": "Braun",
149
+ "Greens": "Grün",
150
+ "Yellows": "Gelb",
151
+ "Purples": "Violett",
152
+ "Special": "Spezial",
153
+ "Facewear": "Gesichtsschmuck"
154
+ },
155
+ "acquisitions": {
156
+ "Dye Vendor": "Farbstoffverkäufer",
157
+ "Crafting": "Handwerker",
158
+ "Ixali Vendor": "Ixal-Händler",
159
+ "Sylphic Vendor": "Sylphen-Händlerin",
160
+ "Amalj'aa Vendor": "Amalj'aa-Händler",
161
+ "Sahagin Vendor": "Sahagin-Händler",
162
+ "Kobold Vendor": "Kobold-Händler",
163
+ "Cosmic Exploration": "Kosmo-Erkundung",
164
+ "Cosmic Fortunes": "Kosmo-Glück",
165
+ "Venture Coffers": "Gehilfen-Schatzkiste",
166
+ "Facewear Collection": "Gesichtsschmuck-Sammlung"
167
+ },
168
+ "metallicDyeIds": [
169
+ 13116,
170
+ 13117,
171
+ 13717,
172
+ 13718,
173
+ 13719,
174
+ 13720,
175
+ 13721,
176
+ 13722,
177
+ 13723,
178
+ 30122,
179
+ 30123,
180
+ 30124,
181
+ 48169,
182
+ 48170,
183
+ 48171,
184
+ 48172
185
+ ],
186
+ "harmonyTypes": {
187
+ "complementary": "Komplementär",
188
+ "analogous": "Analog",
189
+ "triadic": "Triadisch",
190
+ "splitComplementary": "Geteiltes Komplement",
191
+ "tetradic": "Tetradisch",
192
+ "square": "Quadrat",
193
+ "monochromatic": "Monochromatisch",
194
+ "compound": "Zusammengesetzt",
195
+ "shades": "Schattierungen"
196
+ },
197
+ "visionTypes": {
198
+ "normal": "Normales Sehen",
199
+ "deuteranopia": "Deuteranopie (Rot-Grün-Farbenblindheit)",
200
+ "protanopia": "Protanopie (Rot-Grün-Farbenblindheit)",
201
+ "tritanopia": "Tritanopie (Blau-Gelb-Farbenblindheit)",
202
+ "achromatopsia": "Achromatopsie (Totale Farbenblindheit)"
203
+ },
204
+ "jobNames": {
205
+ "paladin": "Paladin",
206
+ "warrior": "Krieger",
207
+ "darkKnight": "Dunkelritter",
208
+ "gunbreaker": "Revolverklinge",
209
+ "whiteMage": "Weißmagier",
210
+ "scholar": "Gelehrter",
211
+ "astrologian": "Astrologe",
212
+ "sage": "Weiser",
213
+ "monk": "Mönch",
214
+ "dragoon": "Dragoon",
215
+ "ninja": "Ninja",
216
+ "samurai": "Samurai",
217
+ "reaper": "Schnitter",
218
+ "viper": "Viper",
219
+ "bard": "Barde",
220
+ "machinist": "Maschinist",
221
+ "dancer": "Tänzer",
222
+ "blackMage": "Schwarzmagier",
223
+ "summoner": "Beschwörer",
224
+ "redMage": "Rotmagier",
225
+ "pictomancer": "Piktomant",
226
+ "blueMage": "Blaumagier"
227
+ },
228
+ "grandCompanyNames": {
229
+ "maelstrom": "Der Mahlstrom",
230
+ "twinAdder": "Die Bruderschaft der Morgenviper",
231
+ "immortalFlames": "Die Legion der Unsterblichen"
232
+ },
233
+ "races": {
234
+ "hyur": "Hyuran",
235
+ "elezen": "Elezen",
236
+ "lalafell": "Lalafell",
237
+ "miqote": "Miqo'te",
238
+ "roegadyn": "Roegadyn",
239
+ "auRa": "Au Ra",
240
+ "hrothgar": "Hrothgar",
241
+ "viera": "Viera"
242
+ },
243
+ "clans": {
244
+ "midlander": "Wiesländer",
245
+ "highlander": "Hochländer",
246
+ "wildwood": "Erlschatten",
247
+ "duskwight": "Dunkelalb",
248
+ "plainsfolk": "Halmling",
249
+ "dunesfolk": "Sandling",
250
+ "seekerOfTheSun": "Goldtatze",
251
+ "keeperOfTheMoon": "Mondstreuner",
252
+ "seaWolf": "Seewolf",
253
+ "hellsguard": "Lohengarde",
254
+ "raen": "Auri-Raen",
255
+ "xaela": "Auri-Xaela",
256
+ "helion": "Helion",
257
+ "theLost": "Losgesagter",
258
+ "rava": "Rava-Viera",
259
+ "veena": "Veena-Viera"
260
+ }
261
261
  }