@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.
- package/LICENSE +37 -0
- package/README.md +400 -0
- package/dist/constants/index.d.ts +56 -0
- package/dist/constants/index.d.ts.map +1 -0
- package/dist/constants/index.js +103 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/data/colors_xiv.json +3130 -0
- package/dist/data/locales/de.json +231 -0
- package/dist/data/locales/en.json +231 -0
- package/dist/data/locales/fr.json +231 -0
- package/dist/data/locales/ja.json +231 -0
- package/dist/data/locales/ko.json +233 -0
- package/dist/data/locales/zh.json +233 -0
- package/dist/data/presets.json +390 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/services/APIService.d.ts +246 -0
- package/dist/services/APIService.d.ts.map +1 -0
- package/dist/services/APIService.js +499 -0
- package/dist/services/APIService.js.map +1 -0
- package/dist/services/ColorService.d.ts +146 -0
- package/dist/services/ColorService.d.ts.map +1 -0
- package/dist/services/ColorService.js +209 -0
- package/dist/services/ColorService.js.map +1 -0
- package/dist/services/DyeService.d.ts +230 -0
- package/dist/services/DyeService.d.ts.map +1 -0
- package/dist/services/DyeService.js +326 -0
- package/dist/services/DyeService.js.map +1 -0
- package/dist/services/LocalizationService.d.ts +338 -0
- package/dist/services/LocalizationService.d.ts.map +1 -0
- package/dist/services/LocalizationService.js +449 -0
- package/dist/services/LocalizationService.js.map +1 -0
- package/dist/services/PaletteService.d.ts +137 -0
- package/dist/services/PaletteService.d.ts.map +1 -0
- package/dist/services/PaletteService.js +349 -0
- package/dist/services/PaletteService.js.map +1 -0
- package/dist/services/PresetService.d.ts +196 -0
- package/dist/services/PresetService.d.ts.map +1 -0
- package/dist/services/PresetService.js +261 -0
- package/dist/services/PresetService.js.map +1 -0
- package/dist/services/color/ColorAccessibility.d.ts +39 -0
- package/dist/services/color/ColorAccessibility.d.ts.map +1 -0
- package/dist/services/color/ColorAccessibility.js +71 -0
- package/dist/services/color/ColorAccessibility.js.map +1 -0
- package/dist/services/color/ColorConverter.d.ts +146 -0
- package/dist/services/color/ColorConverter.d.ts.map +1 -0
- package/dist/services/color/ColorConverter.js +393 -0
- package/dist/services/color/ColorConverter.js.map +1 -0
- package/dist/services/color/ColorManipulator.d.ts +36 -0
- package/dist/services/color/ColorManipulator.d.ts.map +1 -0
- package/dist/services/color/ColorManipulator.js +56 -0
- package/dist/services/color/ColorManipulator.js.map +1 -0
- package/dist/services/color/ColorblindnessSimulator.d.ts +35 -0
- package/dist/services/color/ColorblindnessSimulator.d.ts.map +1 -0
- package/dist/services/color/ColorblindnessSimulator.js +110 -0
- package/dist/services/color/ColorblindnessSimulator.js.map +1 -0
- package/dist/services/dye/DyeDatabase.d.ts +131 -0
- package/dist/services/dye/DyeDatabase.d.ts.map +1 -0
- package/dist/services/dye/DyeDatabase.js +367 -0
- package/dist/services/dye/DyeDatabase.js.map +1 -0
- package/dist/services/dye/DyeSearch.d.ts +55 -0
- package/dist/services/dye/DyeSearch.d.ts.map +1 -0
- package/dist/services/dye/DyeSearch.js +196 -0
- package/dist/services/dye/DyeSearch.js.map +1 -0
- package/dist/services/dye/HarmonyGenerator.d.ts +110 -0
- package/dist/services/dye/HarmonyGenerator.d.ts.map +1 -0
- package/dist/services/dye/HarmonyGenerator.js +221 -0
- package/dist/services/dye/HarmonyGenerator.js.map +1 -0
- package/dist/services/localization/LocaleLoader.d.ts +38 -0
- package/dist/services/localization/LocaleLoader.d.ts.map +1 -0
- package/dist/services/localization/LocaleLoader.js +83 -0
- package/dist/services/localization/LocaleLoader.js.map +1 -0
- package/dist/services/localization/LocaleRegistry.d.ts +73 -0
- package/dist/services/localization/LocaleRegistry.d.ts.map +1 -0
- package/dist/services/localization/LocaleRegistry.js +84 -0
- package/dist/services/localization/LocaleRegistry.js.map +1 -0
- package/dist/services/localization/TranslationProvider.d.ts +157 -0
- package/dist/services/localization/TranslationProvider.d.ts.map +1 -0
- package/dist/services/localization/TranslationProvider.js +289 -0
- package/dist/services/localization/TranslationProvider.js.map +1 -0
- package/dist/types/index.d.ts +409 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +87 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/logger.d.ts +84 -0
- package/dist/types/logger.d.ts.map +1 -0
- package/dist/types/logger.js +54 -0
- package/dist/types/logger.js.map +1 -0
- package/dist/utils/index.d.ts +441 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +577 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/kd-tree.d.ts +76 -0
- package/dist/utils/kd-tree.d.ts.map +1 -0
- package/dist/utils/kd-tree.js +195 -0
- package/dist/utils/kd-tree.js.map +1 -0
- package/dist/version.d.ts +11 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +11 -0
- package/dist/version.js.map +1 -0
- 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
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -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"}
|