@xivdyetools/core 1.3.7

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 (103) hide show
  1. package/LICENSE +37 -0
  2. package/README.md +400 -0
  3. package/dist/constants/index.d.ts +56 -0
  4. package/dist/constants/index.d.ts.map +1 -0
  5. package/dist/constants/index.js +103 -0
  6. package/dist/constants/index.js.map +1 -0
  7. package/dist/data/colors_xiv.json +3130 -0
  8. package/dist/data/locales/de.json +231 -0
  9. package/dist/data/locales/en.json +231 -0
  10. package/dist/data/locales/fr.json +231 -0
  11. package/dist/data/locales/ja.json +231 -0
  12. package/dist/data/locales/ko.json +233 -0
  13. package/dist/data/locales/zh.json +233 -0
  14. package/dist/data/presets.json +390 -0
  15. package/dist/index.d.ts +16 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +18 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/services/APIService.d.ts +246 -0
  20. package/dist/services/APIService.d.ts.map +1 -0
  21. package/dist/services/APIService.js +499 -0
  22. package/dist/services/APIService.js.map +1 -0
  23. package/dist/services/ColorService.d.ts +146 -0
  24. package/dist/services/ColorService.d.ts.map +1 -0
  25. package/dist/services/ColorService.js +209 -0
  26. package/dist/services/ColorService.js.map +1 -0
  27. package/dist/services/DyeService.d.ts +230 -0
  28. package/dist/services/DyeService.d.ts.map +1 -0
  29. package/dist/services/DyeService.js +326 -0
  30. package/dist/services/DyeService.js.map +1 -0
  31. package/dist/services/LocalizationService.d.ts +338 -0
  32. package/dist/services/LocalizationService.d.ts.map +1 -0
  33. package/dist/services/LocalizationService.js +449 -0
  34. package/dist/services/LocalizationService.js.map +1 -0
  35. package/dist/services/PaletteService.d.ts +137 -0
  36. package/dist/services/PaletteService.d.ts.map +1 -0
  37. package/dist/services/PaletteService.js +349 -0
  38. package/dist/services/PaletteService.js.map +1 -0
  39. package/dist/services/PresetService.d.ts +196 -0
  40. package/dist/services/PresetService.d.ts.map +1 -0
  41. package/dist/services/PresetService.js +261 -0
  42. package/dist/services/PresetService.js.map +1 -0
  43. package/dist/services/color/ColorAccessibility.d.ts +39 -0
  44. package/dist/services/color/ColorAccessibility.d.ts.map +1 -0
  45. package/dist/services/color/ColorAccessibility.js +71 -0
  46. package/dist/services/color/ColorAccessibility.js.map +1 -0
  47. package/dist/services/color/ColorConverter.d.ts +146 -0
  48. package/dist/services/color/ColorConverter.d.ts.map +1 -0
  49. package/dist/services/color/ColorConverter.js +393 -0
  50. package/dist/services/color/ColorConverter.js.map +1 -0
  51. package/dist/services/color/ColorManipulator.d.ts +36 -0
  52. package/dist/services/color/ColorManipulator.d.ts.map +1 -0
  53. package/dist/services/color/ColorManipulator.js +56 -0
  54. package/dist/services/color/ColorManipulator.js.map +1 -0
  55. package/dist/services/color/ColorblindnessSimulator.d.ts +35 -0
  56. package/dist/services/color/ColorblindnessSimulator.d.ts.map +1 -0
  57. package/dist/services/color/ColorblindnessSimulator.js +110 -0
  58. package/dist/services/color/ColorblindnessSimulator.js.map +1 -0
  59. package/dist/services/dye/DyeDatabase.d.ts +131 -0
  60. package/dist/services/dye/DyeDatabase.d.ts.map +1 -0
  61. package/dist/services/dye/DyeDatabase.js +367 -0
  62. package/dist/services/dye/DyeDatabase.js.map +1 -0
  63. package/dist/services/dye/DyeSearch.d.ts +55 -0
  64. package/dist/services/dye/DyeSearch.d.ts.map +1 -0
  65. package/dist/services/dye/DyeSearch.js +196 -0
  66. package/dist/services/dye/DyeSearch.js.map +1 -0
  67. package/dist/services/dye/HarmonyGenerator.d.ts +110 -0
  68. package/dist/services/dye/HarmonyGenerator.d.ts.map +1 -0
  69. package/dist/services/dye/HarmonyGenerator.js +221 -0
  70. package/dist/services/dye/HarmonyGenerator.js.map +1 -0
  71. package/dist/services/localization/LocaleLoader.d.ts +38 -0
  72. package/dist/services/localization/LocaleLoader.d.ts.map +1 -0
  73. package/dist/services/localization/LocaleLoader.js +83 -0
  74. package/dist/services/localization/LocaleLoader.js.map +1 -0
  75. package/dist/services/localization/LocaleRegistry.d.ts +73 -0
  76. package/dist/services/localization/LocaleRegistry.d.ts.map +1 -0
  77. package/dist/services/localization/LocaleRegistry.js +84 -0
  78. package/dist/services/localization/LocaleRegistry.js.map +1 -0
  79. package/dist/services/localization/TranslationProvider.d.ts +157 -0
  80. package/dist/services/localization/TranslationProvider.d.ts.map +1 -0
  81. package/dist/services/localization/TranslationProvider.js +289 -0
  82. package/dist/services/localization/TranslationProvider.js.map +1 -0
  83. package/dist/types/index.d.ts +409 -0
  84. package/dist/types/index.d.ts.map +1 -0
  85. package/dist/types/index.js +87 -0
  86. package/dist/types/index.js.map +1 -0
  87. package/dist/types/logger.d.ts +84 -0
  88. package/dist/types/logger.d.ts.map +1 -0
  89. package/dist/types/logger.js +54 -0
  90. package/dist/types/logger.js.map +1 -0
  91. package/dist/utils/index.d.ts +441 -0
  92. package/dist/utils/index.d.ts.map +1 -0
  93. package/dist/utils/index.js +577 -0
  94. package/dist/utils/index.js.map +1 -0
  95. package/dist/utils/kd-tree.d.ts +76 -0
  96. package/dist/utils/kd-tree.d.ts.map +1 -0
  97. package/dist/utils/kd-tree.js +195 -0
  98. package/dist/utils/kd-tree.js.map +1 -0
  99. package/dist/version.d.ts +11 -0
  100. package/dist/version.d.ts.map +1 -0
  101. package/dist/version.js +11 -0
  102. package/dist/version.js.map +1 -0
  103. package/package.json +84 -0
@@ -0,0 +1,233 @@
1
+ {
2
+ "locale": "zh",
3
+ "meta": {
4
+ "version": "1.0.0",
5
+ "generated": "2025-11-27T18:00:00.000Z",
6
+ "dyeCount": 125
7
+ },
8
+ "labels": {
9
+ "dye": "染剂",
10
+ "dark": "黑暗",
11
+ "metallic": "金属",
12
+ "pastel": "柔彩",
13
+ "cosmic": "宇宙",
14
+ "cosmicExploration": "宇宙探索",
15
+ "cosmicFortunes": "宇宙幸运"
16
+ },
17
+ "dyeNames": {
18
+ "5729": "素雪白",
19
+ "5730": "苍白灰",
20
+ "5731": "古菩灰",
21
+ "5732": "石板灰",
22
+ "5733": "木炭灰",
23
+ "5734": "煤烟黑",
24
+ "5735": "玫瑰粉",
25
+ "5736": "丁香紫",
26
+ "5737": "罗兰莓",
27
+ "5738": "卫月红",
28
+ "5739": "铁锈红",
29
+ "5740": "果酒红",
30
+ "5741": "珊瑚粉",
31
+ "5742": "鲜血红",
32
+ "5743": "鲑鱼粉",
33
+ "5744": "日落橙",
34
+ "5745": "台地红",
35
+ "5746": "树皮棕",
36
+ "5747": "巧克力",
37
+ "5748": "铁锈棕",
38
+ "5749": "钴铁棕",
39
+ "5750": "软木棕",
40
+ "5751": "卢恩棕",
41
+ "5752": "奥猴棕",
42
+ "5753": "山羊棕",
43
+ "5754": "南瓜橙",
44
+ "5755": "橡果棕",
45
+ "5756": "果园棕",
46
+ "5757": "山栗棕",
47
+ "5758": "哥布林",
48
+ "5759": "页岩棕",
49
+ "5760": "鼹鼠棕",
50
+ "5761": "沃土棕",
51
+ "5762": "骸骨白",
52
+ "5763": "黄沙棕",
53
+ "5764": "沙漠黄",
54
+ "5765": "蜂蜜黄",
55
+ "5766": "玉米黄",
56
+ "5767": "猛豹黄",
57
+ "5768": "奶油黄",
58
+ "5769": "日影黄",
59
+ "5770": "萄干棕",
60
+ "5771": "泥沼绿",
61
+ "5772": "妖精绿",
62
+ "5773": "青柠绿",
63
+ "5774": "苔藓绿",
64
+ "5775": "牧草绿",
65
+ "5776": "橄榄绿",
66
+ "5777": "沼泽绿",
67
+ "5778": "苹果绿",
68
+ "5779": "仙人掌",
69
+ "5780": "猎人绿",
70
+ "5781": "口花绿",
71
+ "5782": "金龟绿",
72
+ "5783": "地神绿",
73
+ "5784": "深林绿",
74
+ "5785": "天上蓝",
75
+ "5786": "绿松蓝",
76
+ "5787": "魔花绿",
77
+ "5788": "寒冰蓝",
78
+ "5789": "天空蓝",
79
+ "5790": "海雾蓝",
80
+ "5791": "孔雀蓝",
81
+ "5792": "罗海蓝",
82
+ "5793": "腐尸蓝",
83
+ "5794": "青磷蓝",
84
+ "5795": "靛青蓝",
85
+ "5796": "油墨蓝",
86
+ "5797": "盗龙蓝",
87
+ "5798": "东洲蓝",
88
+ "5799": "风暴蓝",
89
+ "5800": "虚空蓝",
90
+ "5801": "皇室蓝",
91
+ "5802": "午夜蓝",
92
+ "5803": "阴影蓝",
93
+ "5804": "深渊蓝",
94
+ "5805": "薰衣草",
95
+ "5806": "忧郁紫",
96
+ "5807": "醋栗紫",
97
+ "5808": "鸢尾紫",
98
+ "5809": "葡萄紫",
99
+ "5810": "莲花粉",
100
+ "5811": "蜂鸟粉",
101
+ "5812": "仙子梅",
102
+ "5813": "帝王紫",
103
+ "13114": "无瑕白",
104
+ "13115": "煤玉黑",
105
+ "13116": "闪耀银",
106
+ "13117": "闪耀金",
107
+ "13708": "柔彩粉",
108
+ "13709": "黑暗红",
109
+ "13710": "黑暗棕",
110
+ "13711": "柔彩绿",
111
+ "13712": "黑暗绿",
112
+ "13713": "柔彩蓝",
113
+ "13714": "黑暗蓝",
114
+ "13715": "柔彩紫",
115
+ "13716": "黑暗紫",
116
+ "13717": "金属红",
117
+ "13718": "金属橙",
118
+ "13719": "金属黄",
119
+ "13720": "金属绿",
120
+ "13721": "金属蓝",
121
+ "13722": "金属靛",
122
+ "13723": "金属紫",
123
+ "30116": "宝石红",
124
+ "30117": "樱桃粉",
125
+ "30118": "丝雀黄",
126
+ "30119": "香草黄",
127
+ "30120": "龙骑蓝",
128
+ "30121": "松石蓝",
129
+ "30122": "炮铜黑",
130
+ "30123": "珍珠白",
131
+ "30124": "金属铜",
132
+ "48163": "霓虹粉",
133
+ "48164": "明亮橙",
134
+ "48165": "霓虹绿",
135
+ "48166": "霓虹黄",
136
+ "48167": "罗兰紫",
137
+ "48168": "碧空蓝",
138
+ "48169": "金属粉",
139
+ "48170": "金属宝石红",
140
+ "48171": "金属钴铁绿",
141
+ "48172": "金属黑暗蓝",
142
+ "48227": "胭脂红"
143
+ },
144
+ "categories": {
145
+ "Neutral": "无彩色",
146
+ "Reds": "红色系",
147
+ "Blues": "蓝色系",
148
+ "Browns": "棕色系",
149
+ "Greens": "绿色系",
150
+ "Yellows": "黄色系",
151
+ "Purples": "紫色系",
152
+ "Special": "特殊",
153
+ "Facewear": "面部饰品"
154
+ },
155
+ "acquisitions": {
156
+ "Dye Vendor": "染剂商人",
157
+ "Crafting": "制作",
158
+ "Ixali Vendor": "鸟人商人",
159
+ "Sylphic Vendor": "妖精商人",
160
+ "Amalj'aa Vendor": "阿马尔贾商人",
161
+ "Sahagin Vendor": "鱼人商人",
162
+ "Kobold Vendor": "钴铁商人",
163
+ "Cosmic Exploration": "宇宙探索",
164
+ "Cosmic Fortunes": "宇宙幸运",
165
+ "Venture Coffers": "雇员宝箱",
166
+ "Facewear Collection": "面部饰品收藏"
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": "互补色",
188
+ "analogous": "类似色",
189
+ "triadic": "三角配色",
190
+ "splitComplementary": "分裂互补色",
191
+ "tetradic": "四角配色",
192
+ "square": "正方形配色",
193
+ "monochromatic": "单色",
194
+ "compound": "复合配色",
195
+ "shades": "明暗"
196
+ },
197
+ "visionTypes": {
198
+ "normal": "正常视觉",
199
+ "deuteranopia": "绿色盲(红绿色盲)",
200
+ "protanopia": "红色盲(红绿色盲)",
201
+ "tritanopia": "蓝色盲(蓝黄色盲)",
202
+ "achromatopsia": "全色盲"
203
+ },
204
+ "jobNames": {
205
+ "paladin": "騎士",
206
+ "warrior": "戰士",
207
+ "darkKnight": "暗黑騎士",
208
+ "gunbreaker": "絕槍戰士",
209
+ "whiteMage": "白魔道士",
210
+ "scholar": "學者",
211
+ "astrologian": "占星術師",
212
+ "sage": "賢者",
213
+ "monk": "武僧",
214
+ "dragoon": "龍騎士",
215
+ "ninja": "忍者",
216
+ "samurai": "武士",
217
+ "reaper": "奪魂者",
218
+ "viper": "毒蛇劍士",
219
+ "bard": "吟遊詩人",
220
+ "machinist": "機工士",
221
+ "dancer": "舞者",
222
+ "blackMage": "黑魔道士",
223
+ "summoner": "召喚士",
224
+ "redMage": "赤魔道士",
225
+ "pictomancer": "繪靈法師",
226
+ "blueMage": "青魔道士"
227
+ },
228
+ "grandCompanyNames": {
229
+ "maelstrom": "黑涡团",
230
+ "twinAdder": "双蛇党",
231
+ "immortalFlames": "恒辉队"
232
+ }
233
+ }
@@ -0,0 +1,390 @@
1
+ {
2
+ "version": "1.0.0",
3
+ "lastUpdated": "2025-12-05",
4
+ "categories": {
5
+ "jobs": {
6
+ "name": "FFXIV Jobs",
7
+ "description": "Color schemes inspired by job identities",
8
+ "icon": "⚔️"
9
+ },
10
+ "grand-companies": {
11
+ "name": "Grand Companies",
12
+ "description": "Official Grand Company colors",
13
+ "icon": "🏛️"
14
+ },
15
+ "seasons": {
16
+ "name": "Seasons",
17
+ "description": "Seasonal color palettes",
18
+ "icon": "🍂"
19
+ },
20
+ "events": {
21
+ "name": "FFXIV Events",
22
+ "description": "Colors for in-game seasonal events",
23
+ "icon": "🎉"
24
+ },
25
+ "aesthetics": {
26
+ "name": "Aesthetics",
27
+ "description": "General aesthetic themes",
28
+ "icon": "🎨"
29
+ },
30
+ "community": {
31
+ "name": "Community",
32
+ "description": "Community-submitted palettes",
33
+ "icon": "👥"
34
+ }
35
+ },
36
+ "palettes": [
37
+ {
38
+ "id": "job-rdm",
39
+ "name": "Red Mage",
40
+ "category": "jobs",
41
+ "description": "The crimson elegance of the Red Mage",
42
+ "dyes": [5738, 13115, 13117, 5729],
43
+ "tags": ["red mage", "rdm", "caster", "melee", "crimson"]
44
+ },
45
+ {
46
+ "id": "job-blm",
47
+ "name": "Black Mage",
48
+ "category": "jobs",
49
+ "description": "Dark arcane power",
50
+ "dyes": [5813, 13115, 13117],
51
+ "tags": ["black mage", "blm", "caster", "magic", "dark"]
52
+ },
53
+ {
54
+ "id": "job-whm",
55
+ "name": "White Mage",
56
+ "category": "jobs",
57
+ "description": "Pure healing light",
58
+ "dyes": [5729, 5785, 5746],
59
+ "tags": ["white mage", "whm", "healer", "pure", "nature"]
60
+ },
61
+ {
62
+ "id": "job-pld",
63
+ "name": "Paladin",
64
+ "category": "jobs",
65
+ "description": "Noble defender of the realm",
66
+ "dyes": [5801, 13116, 5729],
67
+ "tags": ["paladin", "pld", "tank", "holy", "knight"]
68
+ },
69
+ {
70
+ "id": "job-war",
71
+ "name": "Warrior",
72
+ "category": "jobs",
73
+ "description": "Fury of the inner beast",
74
+ "dyes": [5740, 5734, 5746],
75
+ "tags": ["warrior", "war", "tank", "rage", "beast"]
76
+ },
77
+ {
78
+ "id": "job-drk",
79
+ "name": "Dark Knight",
80
+ "category": "jobs",
81
+ "description": "Darkness within",
82
+ "dyes": [13115, 5809, 5742],
83
+ "tags": ["dark knight", "drk", "tank", "darkness", "shadow"]
84
+ },
85
+ {
86
+ "id": "job-gnb",
87
+ "name": "Gunbreaker",
88
+ "category": "jobs",
89
+ "description": "Modern gunblade warrior",
90
+ "dyes": [30121, 5730, 5734],
91
+ "tags": ["gunbreaker", "gnb", "tank", "gunblade", "modern"]
92
+ },
93
+ {
94
+ "id": "job-drg",
95
+ "name": "Dragoon",
96
+ "category": "jobs",
97
+ "description": "Azure dragoon legacy",
98
+ "dyes": [30120, 30116, 13116],
99
+ "tags": ["dragoon", "drg", "melee", "dragon", "jump"]
100
+ },
101
+ {
102
+ "id": "job-mnk",
103
+ "name": "Monk",
104
+ "category": "jobs",
105
+ "description": "Fists of enlightenment",
106
+ "dyes": [5763, 5744, 5764],
107
+ "tags": ["monk", "mnk", "melee", "martial arts", "fist"]
108
+ },
109
+ {
110
+ "id": "job-nin",
111
+ "name": "Ninja",
112
+ "category": "jobs",
113
+ "description": "Shadow assassin",
114
+ "dyes": [13115, 5742, 5809],
115
+ "tags": ["ninja", "nin", "melee", "shadow", "stealth"]
116
+ },
117
+ {
118
+ "id": "job-sam",
119
+ "name": "Samurai",
120
+ "category": "jobs",
121
+ "description": "Wandering swordsman",
122
+ "dyes": [5740, 5729, 13115],
123
+ "tags": ["samurai", "sam", "melee", "sword", "bushido"]
124
+ },
125
+ {
126
+ "id": "job-rpr",
127
+ "name": "Reaper",
128
+ "category": "jobs",
129
+ "description": "Harbinger of death",
130
+ "dyes": [5807, 13115, 5742],
131
+ "tags": ["reaper", "rpr", "melee", "death", "scythe"]
132
+ },
133
+ {
134
+ "id": "job-vpr",
135
+ "name": "Viper",
136
+ "category": "jobs",
137
+ "description": "Venomous dual-blade striker",
138
+ "dyes": [5780, 5807, 13115],
139
+ "tags": ["viper", "vpr", "melee", "poison", "dual blade"]
140
+ },
141
+ {
142
+ "id": "job-brd",
143
+ "name": "Bard",
144
+ "category": "jobs",
145
+ "description": "Songs of the forest",
146
+ "dyes": [5774, 5746, 5764],
147
+ "tags": ["bard", "brd", "ranged", "music", "nature"]
148
+ },
149
+ {
150
+ "id": "job-mch",
151
+ "name": "Machinist",
152
+ "category": "jobs",
153
+ "description": "Industrial precision",
154
+ "dyes": [30122, 5788, 5734],
155
+ "tags": ["machinist", "mch", "ranged", "technology", "guns"]
156
+ },
157
+ {
158
+ "id": "job-dnc",
159
+ "name": "Dancer",
160
+ "category": "jobs",
161
+ "description": "Graceful performance",
162
+ "dyes": [5810, 5729, 13117],
163
+ "tags": ["dancer", "dnc", "ranged", "graceful", "support"]
164
+ },
165
+ {
166
+ "id": "job-smn",
167
+ "name": "Summoner",
168
+ "category": "jobs",
169
+ "description": "Primal summoner",
170
+ "dyes": [5786, 30118, 5746],
171
+ "tags": ["summoner", "smn", "caster", "primal", "egi"]
172
+ },
173
+ {
174
+ "id": "job-sch",
175
+ "name": "Scholar",
176
+ "category": "jobs",
177
+ "description": "Tactical healer",
178
+ "dyes": [5808, 5729, 13117],
179
+ "tags": ["scholar", "sch", "healer", "fairy", "tactics"]
180
+ },
181
+ {
182
+ "id": "job-ast",
183
+ "name": "Astrologian",
184
+ "category": "jobs",
185
+ "description": "Star-gazing healer",
186
+ "dyes": [5802, 5805, 13117],
187
+ "tags": ["astrologian", "ast", "healer", "stars", "cards"]
188
+ },
189
+ {
190
+ "id": "job-sge",
191
+ "name": "Sage",
192
+ "category": "jobs",
193
+ "description": "Barrier healer of science",
194
+ "dyes": [30123, 5788, 13116],
195
+ "tags": ["sage", "sge", "healer", "barrier", "nouliths"]
196
+ },
197
+ {
198
+ "id": "job-pct",
199
+ "name": "Pictomancer",
200
+ "category": "jobs",
201
+ "description": "Artistic magic",
202
+ "dyes": [13708, 13713, 13711, 5729],
203
+ "tags": ["pictomancer", "pct", "caster", "art", "paint"]
204
+ },
205
+ {
206
+ "id": "gc-maelstrom",
207
+ "name": "Maelstrom",
208
+ "category": "grand-companies",
209
+ "description": "Limsa Lominsa's naval forces",
210
+ "dyes": [5738, 13115, 5729],
211
+ "tags": ["maelstrom", "limsa lominsa", "navy", "storm"]
212
+ },
213
+ {
214
+ "id": "gc-adders",
215
+ "name": "Twin Adders",
216
+ "category": "grand-companies",
217
+ "description": "Gridania's forest guardians",
218
+ "dyes": [30118, 5774, 5746],
219
+ "tags": ["twin adders", "gridania", "forest", "nature"]
220
+ },
221
+ {
222
+ "id": "gc-flames",
223
+ "name": "Immortal Flames",
224
+ "category": "grand-companies",
225
+ "description": "Ul'dah's desert warriors",
226
+ "dyes": [5734, 13117, 5740],
227
+ "tags": ["immortal flames", "uldah", "desert", "fire"]
228
+ },
229
+ {
230
+ "id": "season-spring",
231
+ "name": "Spring",
232
+ "category": "seasons",
233
+ "description": "Fresh blooms and new beginnings",
234
+ "dyes": [5810, 5785, 5768],
235
+ "tags": ["spring", "flowers", "fresh", "bloom"]
236
+ },
237
+ {
238
+ "id": "season-summer",
239
+ "name": "Summer",
240
+ "category": "seasons",
241
+ "description": "Warm beaches and sunny skies",
242
+ "dyes": [5794, 30118, 5744],
243
+ "tags": ["summer", "beach", "sun", "warm"]
244
+ },
245
+ {
246
+ "id": "season-autumn",
247
+ "name": "Autumn",
248
+ "category": "seasons",
249
+ "description": "Falling leaves and harvest time",
250
+ "dyes": [5754, 5746, 5740],
251
+ "tags": ["autumn", "fall", "leaves", "harvest"]
252
+ },
253
+ {
254
+ "id": "season-winter",
255
+ "name": "Winter",
256
+ "category": "seasons",
257
+ "description": "Frost and snow",
258
+ "dyes": [5729, 5788, 13116],
259
+ "tags": ["winter", "snow", "frost", "cold"]
260
+ },
261
+ {
262
+ "id": "event-starlight",
263
+ "name": "Starlight Celebration",
264
+ "category": "events",
265
+ "description": "Winter holiday cheer",
266
+ "dyes": [5738, 5780, 5729],
267
+ "tags": ["starlight", "christmas", "holiday", "winter"]
268
+ },
269
+ {
270
+ "id": "event-moonfire",
271
+ "name": "Moonfire Faire",
272
+ "category": "events",
273
+ "description": "Summer festival by the sea",
274
+ "dyes": [5794, 5729, 13117],
275
+ "tags": ["moonfire", "summer", "beach", "festival"]
276
+ },
277
+ {
278
+ "id": "event-rising",
279
+ "name": "The Rising",
280
+ "category": "events",
281
+ "description": "Anniversary celebration",
282
+ "dyes": [13117, 5813, 30123],
283
+ "tags": ["rising", "anniversary", "celebration"]
284
+ },
285
+ {
286
+ "id": "event-hatching",
287
+ "name": "Hatching-tide",
288
+ "category": "events",
289
+ "description": "Spring egg festival",
290
+ "dyes": [13708, 13711, 5768],
291
+ "tags": ["hatching", "easter", "spring", "eggs"]
292
+ },
293
+ {
294
+ "id": "event-valentione",
295
+ "name": "Valentione's Day",
296
+ "category": "events",
297
+ "description": "Day of love and affection",
298
+ "dyes": [5738, 5810, 5729],
299
+ "tags": ["valentione", "valentine", "love", "romance"]
300
+ },
301
+ {
302
+ "id": "event-heavensturn",
303
+ "name": "Heavensturn",
304
+ "category": "events",
305
+ "description": "New year celebration",
306
+ "dyes": [5740, 13117, 13115],
307
+ "tags": ["heavensturn", "new year", "celebration"]
308
+ },
309
+ {
310
+ "id": "aesthetic-gothic",
311
+ "name": "Gothic",
312
+ "category": "aesthetics",
313
+ "description": "Dark and mysterious",
314
+ "dyes": [13115, 5809, 5742],
315
+ "tags": ["gothic", "dark", "mysterious", "elegant"]
316
+ },
317
+ {
318
+ "id": "aesthetic-pastel",
319
+ "name": "Pastel Dream",
320
+ "category": "aesthetics",
321
+ "description": "Soft and dreamy colors",
322
+ "dyes": [13708, 13713, 13711],
323
+ "tags": ["pastel", "soft", "dreamy", "cute"]
324
+ },
325
+ {
326
+ "id": "aesthetic-military",
327
+ "name": "Military",
328
+ "category": "aesthetics",
329
+ "description": "Tactical and rugged",
330
+ "dyes": [5776, 5746, 5730],
331
+ "tags": ["military", "tactical", "camo", "rugged"]
332
+ },
333
+ {
334
+ "id": "aesthetic-royal",
335
+ "name": "Royal",
336
+ "category": "aesthetics",
337
+ "description": "Regal and luxurious",
338
+ "dyes": [13117, 5813, 30123],
339
+ "tags": ["royal", "regal", "luxury", "noble"]
340
+ },
341
+ {
342
+ "id": "aesthetic-cyberpunk",
343
+ "name": "Cyberpunk",
344
+ "category": "aesthetics",
345
+ "description": "Neon future vibes",
346
+ "dyes": [48169, 30121, 13115],
347
+ "tags": ["cyberpunk", "neon", "future", "tech"]
348
+ },
349
+ {
350
+ "id": "aesthetic-nature",
351
+ "name": "Natural",
352
+ "category": "aesthetics",
353
+ "description": "Earth tones and greenery",
354
+ "dyes": [5774, 5746, 5768],
355
+ "tags": ["natural", "earth", "green", "organic"]
356
+ },
357
+ {
358
+ "id": "aesthetic-monochrome",
359
+ "name": "Monochrome",
360
+ "category": "aesthetics",
361
+ "description": "Classic black and white",
362
+ "dyes": [13115, 5730, 5729],
363
+ "tags": ["monochrome", "black", "white", "classic"]
364
+ },
365
+ {
366
+ "id": "aesthetic-ocean",
367
+ "name": "Ocean",
368
+ "category": "aesthetics",
369
+ "description": "Deep sea colors",
370
+ "dyes": [5794, 30121, 30123],
371
+ "tags": ["ocean", "sea", "blue", "water"]
372
+ },
373
+ {
374
+ "id": "aesthetic-sunset",
375
+ "name": "Sunset",
376
+ "category": "aesthetics",
377
+ "description": "Warm evening hues",
378
+ "dyes": [5744, 5741, 5805],
379
+ "tags": ["sunset", "warm", "orange", "evening"]
380
+ },
381
+ {
382
+ "id": "aesthetic-forest",
383
+ "name": "Forest",
384
+ "category": "aesthetics",
385
+ "description": "Deep woodland colors",
386
+ "dyes": [5780, 5746, 13117],
387
+ "tags": ["forest", "woodland", "green", "nature"]
388
+ }
389
+ ]
390
+ }
@@ -0,0 +1,16 @@
1
+ export { ColorService } from './services/ColorService.js';
2
+ export { DyeService } from './services/DyeService.js';
3
+ export { APIService, MemoryCacheBackend } from './services/APIService.js';
4
+ export type { ICacheBackend, APIServiceOptions } from './services/APIService.js';
5
+ export { LocalizationService } from './services/LocalizationService.js';
6
+ export { PresetService } from './services/PresetService.js';
7
+ export { PaletteService } from './services/PaletteService.js';
8
+ export type { PaletteExtractionOptions, ExtractedColor, PaletteMatch, PaletteServiceOptions, } from './services/PaletteService.js';
9
+ export type { Dye, LocalizedDye, RGB, HSV, HexColor, VisionType, Matrix3x3, ColorblindMatrices, ErrorSeverity, PriceData, CachedData, LocaleCode, TranslationKey, HarmonyTypeKey, JobKey, GrandCompanyKey, LocaleData, LocalePreference, Logger, PresetCategory, CategoryMeta, PresetPalette, ResolvedPreset, PresetData, PresetStatus, CommunityPreset, PresetSubmission, PresetListResponse, PresetSubmitResponse, VoteResponse, PresetFilters, } from './types/index.js';
10
+ export { AppError, ErrorCode, createHexColor, NoOpLogger, ConsoleLogger } from './types/index.js';
11
+ export { RGB_MIN, RGB_MAX, HUE_MIN, HUE_MAX, SATURATION_MIN, SATURATION_MAX, VALUE_MIN, VALUE_MAX, COLOR_DISTANCE_MAX, VISION_TYPES, VISION_TYPE_LABELS, BRETTEL_MATRICES, PATTERNS, UNIVERSALIS_API_BASE, UNIVERSALIS_API_TIMEOUT, UNIVERSALIS_API_RETRY_COUNT, UNIVERSALIS_API_RETRY_DELAY, API_CACHE_TTL, API_DEBOUNCE_DELAY, API_CACHE_VERSION, API_MAX_RESPONSE_SIZE, API_RATE_LIMIT_DELAY, } from './constants/index.js';
12
+ export { clamp, lerp, round, distance, unique, groupBy, sortByProperty, filterNulls, isValidHexColor, isValidRGB, isValidHSV, isString, isNumber, isArray, isObject, isNullish, sleep, retry, isAbortError, generateChecksum, } from './utils/index.js';
13
+ export { default as dyeDatabase } from './data/colors_xiv.json';
14
+ export { default as presetData } from './data/presets.json';
15
+ export { VERSION } from './version.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC1E,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,YAAY,EACV,wBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EACV,GAAG,EACH,YAAY,EACZ,GAAG,EACH,GAAG,EACH,QAAQ,EACR,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,SAAS,EACT,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,MAAM,EACN,eAAe,EACf,UAAU,EACV,gBAAgB,EAChB,MAAM,EAEN,cAAc,EACd,YAAY,EACZ,aAAa,EACb,cAAc,EACd,UAAU,EAEV,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGlG,OAAO,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAuB;AACtF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAuB;AAGlF,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ // Services
2
+ export { ColorService } from './services/ColorService.js';
3
+ export { DyeService } from './services/DyeService.js';
4
+ export { APIService, MemoryCacheBackend } from './services/APIService.js';
5
+ export { LocalizationService } from './services/LocalizationService.js';
6
+ export { PresetService } from './services/PresetService.js';
7
+ export { PaletteService } from './services/PaletteService.js';
8
+ export { AppError, ErrorCode, createHexColor, NoOpLogger, ConsoleLogger } from './types/index.js';
9
+ // Constants
10
+ export { RGB_MIN, RGB_MAX, HUE_MIN, HUE_MAX, SATURATION_MIN, SATURATION_MAX, VALUE_MIN, VALUE_MAX, COLOR_DISTANCE_MAX, VISION_TYPES, VISION_TYPE_LABELS, BRETTEL_MATRICES, PATTERNS, UNIVERSALIS_API_BASE, UNIVERSALIS_API_TIMEOUT, UNIVERSALIS_API_RETRY_COUNT, UNIVERSALIS_API_RETRY_DELAY, API_CACHE_TTL, API_DEBOUNCE_DELAY, API_CACHE_VERSION, API_MAX_RESPONSE_SIZE, API_RATE_LIMIT_DELAY, } from './constants/index.js';
11
+ // Utils
12
+ export { clamp, lerp, round, distance, unique, groupBy, sortByProperty, filterNulls, isValidHexColor, isValidRGB, isValidHSV, isString, isNumber, isArray, isObject, isNullish, sleep, retry, isAbortError, generateChecksum, } from './utils/index.js';
13
+ // Data (for browser environments - to be injected)
14
+ export { default as dyeDatabase } from './data/colors_xiv.json' with { type: 'json' };
15
+ export { default as presetData } from './data/presets.json' with { type: 'json' };
16
+ // Version (auto-generated from package.json during build)
17
+ export { VERSION } from './version.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AA4C9D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAElG,YAAY;AACZ,OAAO,EACL,OAAO,EACP,OAAO,EACP,OAAO,EACP,OAAO,EACP,cAAc,EACd,cAAc,EACd,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,oBAAoB,EACpB,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAE9B,QAAQ;AACR,OAAO,EACL,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,EACX,eAAe,EACf,UAAU,EACV,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,KAAK,EACL,KAAK,EACL,YAAY,EACZ,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAE1B,mDAAmD;AACnD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,wBAAwB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AACtF,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAElF,0DAA0D;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}