@yelbolt/engine-ui-color-palette 1.10.2
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 +21 -0
- package/README.md +430 -0
- package/dist/color-DTr3No_G.js +540 -0
- package/dist/color-DTr3No_G.js.map +1 -0
- package/dist/formats/primitives/makeCompose.d.ts +4 -0
- package/dist/formats/primitives/makeCompose.d.ts.map +1 -0
- package/dist/formats/primitives/makeCssCustomProps.d.ts +5 -0
- package/dist/formats/primitives/makeCssCustomProps.d.ts.map +1 -0
- package/dist/formats/primitives/makeCsv.d.ts +13 -0
- package/dist/formats/primitives/makeCsv.d.ts.map +1 -0
- package/dist/formats/primitives/makeDtcgTokens.d.ts +5 -0
- package/dist/formats/primitives/makeDtcgTokens.d.ts.map +1 -0
- package/dist/formats/primitives/makeLessVariables.d.ts +5 -0
- package/dist/formats/primitives/makeLessVariables.d.ts.map +1 -0
- package/dist/formats/primitives/makeNativeTokens.d.ts +4 -0
- package/dist/formats/primitives/makeNativeTokens.d.ts.map +1 -0
- package/dist/formats/primitives/makeResources.d.ts +4 -0
- package/dist/formats/primitives/makeResources.d.ts.map +1 -0
- package/dist/formats/primitives/makeScssVariables.d.ts +5 -0
- package/dist/formats/primitives/makeScssVariables.d.ts.map +1 -0
- package/dist/formats/primitives/makeStyleDictionaryV3Tokens.d.ts +4 -0
- package/dist/formats/primitives/makeStyleDictionaryV3Tokens.d.ts.map +1 -0
- package/dist/formats/primitives/makeSwiftUI.d.ts +4 -0
- package/dist/formats/primitives/makeSwiftUI.d.ts.map +1 -0
- package/dist/formats/primitives/makeTailwindV3Config.d.ts +4 -0
- package/dist/formats/primitives/makeTailwindV3Config.d.ts.map +1 -0
- package/dist/formats/primitives/makeTailwindV4Config.d.ts +4 -0
- package/dist/formats/primitives/makeTailwindV4Config.d.ts.map +1 -0
- package/dist/formats/primitives/makeUIKit.d.ts +4 -0
- package/dist/formats/primitives/makeUIKit.d.ts.map +1 -0
- package/dist/formats/primitives/makeUniversalTokens.d.ts +4 -0
- package/dist/formats/primitives/makeUniversalTokens.d.ts.map +1 -0
- package/dist/formats/semantics/_helpers.d.ts +26 -0
- package/dist/formats/semantics/_helpers.d.ts.map +1 -0
- package/dist/formats/semantics/makeComposeSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeComposeSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeCssSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeCssSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeCsvSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeCsvSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeDtcgSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeDtcgSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeLessSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeLessSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeNativeSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeNativeSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeResourcesSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeResourcesSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeScssSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeScssSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeStyleDictionaryV3Semantics.d.ts +5 -0
- package/dist/formats/semantics/makeStyleDictionaryV3Semantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeSwiftUISemantics.d.ts +5 -0
- package/dist/formats/semantics/makeSwiftUISemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeTailwindV3Semantics.d.ts +5 -0
- package/dist/formats/semantics/makeTailwindV3Semantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeTailwindV4Semantics.d.ts +5 -0
- package/dist/formats/semantics/makeTailwindV4Semantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeUIKitSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeUIKitSemantics.d.ts.map +1 -0
- package/dist/formats/semantics/makeUniversalSemantics.d.ts +5 -0
- package/dist/formats/semantics/makeUniversalSemantics.d.ts.map +1 -0
- package/dist/index-Beb8qoyd.js +1403 -0
- package/dist/index-Beb8qoyd.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/code/code.d.ts +28 -0
- package/dist/modules/code/code.d.ts.map +1 -0
- package/dist/modules/code/code.js +1312 -0
- package/dist/modules/code/code.js.map +1 -0
- package/dist/modules/color/color.d.ts +49 -0
- package/dist/modules/color/color.d.ts.map +1 -0
- package/dist/modules/color/color.js +6 -0
- package/dist/modules/color/color.js.map +1 -0
- package/dist/modules/color-harmony/color-harmony.d.ts +25 -0
- package/dist/modules/color-harmony/color-harmony.d.ts.map +1 -0
- package/dist/modules/color-harmony/color-harmony.js +147 -0
- package/dist/modules/color-harmony/color-harmony.js.map +1 -0
- package/dist/modules/contrast/contrast.d.ts +19 -0
- package/dist/modules/contrast/contrast.d.ts.map +1 -0
- package/dist/modules/contrast/contrast.js +187 -0
- package/dist/modules/contrast/contrast.js.map +1 -0
- package/dist/modules/data/data.d.ts +17 -0
- package/dist/modules/data/data.d.ts.map +1 -0
- package/dist/modules/data/data.js +461 -0
- package/dist/modules/data/data.js.map +1 -0
- package/dist/modules/dominant-colors/dominant-colors.d.ts +39 -0
- package/dist/modules/dominant-colors/dominant-colors.d.ts.map +1 -0
- package/dist/modules/dominant-colors/dominant-colors.js +198 -0
- package/dist/modules/dominant-colors/dominant-colors.js.map +1 -0
- package/dist/modules/system/system.d.ts +17 -0
- package/dist/modules/system/system.d.ts.map +1 -0
- package/dist/modules/system/system.js +78 -0
- package/dist/modules/system/system.js.map +1 -0
- package/dist/types/code.types.d.ts +6 -0
- package/dist/types/code.types.d.ts.map +1 -0
- package/dist/types/color.types.d.ts +45 -0
- package/dist/types/color.types.d.ts.map +1 -0
- package/dist/types/configuration.types.d.ts +154 -0
- package/dist/types/configuration.types.d.ts.map +1 -0
- package/dist/types/data.types.d.ts +135 -0
- package/dist/types/data.types.d.ts.map +1 -0
- package/dist/types/model.types.d.ts +3 -0
- package/dist/types/model.types.d.ts.map +1 -0
- package/dist/types/system.types.d.ts +40 -0
- package/dist/types/system.types.d.ts.map +1 -0
- package/package.json +65 -0
|
@@ -0,0 +1,461 @@
|
|
|
1
|
+
var N = Object.defineProperty;
|
|
2
|
+
var B = (C, e, c) => e in C ? N(C, e, { enumerable: !0, configurable: !0, writable: !0, value: c }) : C[e] = c;
|
|
3
|
+
var g = (C, e, c) => B(C, typeof e != "symbol" ? e + "" : e, c);
|
|
4
|
+
import { C as x, H as T } from "../../color-DTr3No_G.js";
|
|
5
|
+
import { c as s } from "../../index-Beb8qoyd.js";
|
|
6
|
+
import p from "../contrast/contrast.js";
|
|
7
|
+
var k = 256, R = [], H = 256, F;
|
|
8
|
+
for (; k--; ) R[k] = (k + 256).toString(16).substring(1);
|
|
9
|
+
function O(C) {
|
|
10
|
+
var e = 0, c = 11;
|
|
11
|
+
if (!F || k + c > H * 2)
|
|
12
|
+
for (F = "", k = 0; e < H; e++)
|
|
13
|
+
F += R[Math.random() * 256 | 0];
|
|
14
|
+
return F.substring(k, k++ + c);
|
|
15
|
+
}
|
|
16
|
+
const U = (/* @__PURE__ */ new Date()).toISOString(), V = {
|
|
17
|
+
id: O(),
|
|
18
|
+
dates: {
|
|
19
|
+
createdAt: U,
|
|
20
|
+
updatedAt: U,
|
|
21
|
+
publishedAt: "",
|
|
22
|
+
openedAt: ""
|
|
23
|
+
},
|
|
24
|
+
publicationStatus: {
|
|
25
|
+
isPublished: !1,
|
|
26
|
+
isShared: !1
|
|
27
|
+
},
|
|
28
|
+
creatorIdentity: {
|
|
29
|
+
creatorFullName: "",
|
|
30
|
+
creatorAvatar: "",
|
|
31
|
+
creatorId: ""
|
|
32
|
+
}
|
|
33
|
+
}, G = (C, e, c) => {
|
|
34
|
+
const t = C / 255, S = e / 255, n = c / 255, o = 1 - Math.max(t, S, n);
|
|
35
|
+
return o === 1 ? [0, 0, 0, 1] : [
|
|
36
|
+
(1 - t - o) / (1 - o),
|
|
37
|
+
(1 - S - o) / (1 - o),
|
|
38
|
+
(1 - n - o) / (1 - o),
|
|
39
|
+
o
|
|
40
|
+
];
|
|
41
|
+
};
|
|
42
|
+
class Y {
|
|
43
|
+
constructor({
|
|
44
|
+
base: e,
|
|
45
|
+
themes: c,
|
|
46
|
+
meta: t
|
|
47
|
+
}) {
|
|
48
|
+
g(this, "base");
|
|
49
|
+
g(this, "themes");
|
|
50
|
+
g(this, "meta");
|
|
51
|
+
g(this, "paletteData");
|
|
52
|
+
g(this, "makePaletteData", () => (this.themes.forEach((e) => {
|
|
53
|
+
const c = {
|
|
54
|
+
id: e.id,
|
|
55
|
+
name: e.name,
|
|
56
|
+
description: e.description,
|
|
57
|
+
colors: [],
|
|
58
|
+
textColorsTheme: e.textColorsTheme,
|
|
59
|
+
type: e.type
|
|
60
|
+
};
|
|
61
|
+
this.base.colors.forEach((t) => {
|
|
62
|
+
const S = Object.entries(e.scale).reverse().map((a) => {
|
|
63
|
+
if (t.alpha.isEnabled) {
|
|
64
|
+
const r = new x({
|
|
65
|
+
render: "RGB",
|
|
66
|
+
sourceColor: [
|
|
67
|
+
t.rgb.r * 255,
|
|
68
|
+
t.rgb.g * 255,
|
|
69
|
+
t.rgb.b * 255
|
|
70
|
+
],
|
|
71
|
+
alpha: parseFloat((a[1] / 100).toFixed(2)),
|
|
72
|
+
hueShifting: t.hue.shift !== void 0 ? t.hue.shift : 0,
|
|
73
|
+
chromaShifting: t.chroma.shift !== void 0 ? t.chroma.shift : 100,
|
|
74
|
+
algorithmVersion: this.base.algorithmVersion,
|
|
75
|
+
visionSimulationMode: e.visionSimulationMode
|
|
76
|
+
}), h = new x({
|
|
77
|
+
render: "RGB",
|
|
78
|
+
sourceColor: s(t.alpha.backgroundColor).rgb(),
|
|
79
|
+
algorithmVersion: this.base.algorithmVersion,
|
|
80
|
+
visionSimulationMode: e.visionSimulationMode
|
|
81
|
+
});
|
|
82
|
+
switch (this.base.colorSpace) {
|
|
83
|
+
case "LCH":
|
|
84
|
+
return this.base.areSourceColorsLocked ? [
|
|
85
|
+
a,
|
|
86
|
+
r.setColorWithAlpha(),
|
|
87
|
+
h.setColorWithAlpha()
|
|
88
|
+
] : [
|
|
89
|
+
a,
|
|
90
|
+
r.lcha(),
|
|
91
|
+
h.lcha()
|
|
92
|
+
];
|
|
93
|
+
case "OKLCH":
|
|
94
|
+
return this.base.areSourceColorsLocked ? [
|
|
95
|
+
a,
|
|
96
|
+
r.setColorWithAlpha(),
|
|
97
|
+
h.setColorWithAlpha()
|
|
98
|
+
] : [
|
|
99
|
+
a,
|
|
100
|
+
r.oklcha(),
|
|
101
|
+
h.oklcha()
|
|
102
|
+
];
|
|
103
|
+
case "LAB":
|
|
104
|
+
return this.base.areSourceColorsLocked ? [
|
|
105
|
+
a,
|
|
106
|
+
r.setColorWithAlpha(),
|
|
107
|
+
h.setColorWithAlpha()
|
|
108
|
+
] : [
|
|
109
|
+
a,
|
|
110
|
+
r.laba(),
|
|
111
|
+
h.laba()
|
|
112
|
+
];
|
|
113
|
+
case "OKLAB":
|
|
114
|
+
return this.base.areSourceColorsLocked ? [
|
|
115
|
+
a,
|
|
116
|
+
r.setColorWithAlpha(),
|
|
117
|
+
h.setColorWithAlpha()
|
|
118
|
+
] : [
|
|
119
|
+
a,
|
|
120
|
+
r.oklaba(),
|
|
121
|
+
h.oklaba()
|
|
122
|
+
];
|
|
123
|
+
case "HSL":
|
|
124
|
+
return this.base.areSourceColorsLocked ? [
|
|
125
|
+
a,
|
|
126
|
+
r.setColorWithAlpha(),
|
|
127
|
+
h.setColorWithAlpha()
|
|
128
|
+
] : [
|
|
129
|
+
a,
|
|
130
|
+
r.hsla(),
|
|
131
|
+
h.hsla()
|
|
132
|
+
];
|
|
133
|
+
case "HSLUV":
|
|
134
|
+
return this.base.areSourceColorsLocked ? [
|
|
135
|
+
a,
|
|
136
|
+
r.setColorWithAlpha(),
|
|
137
|
+
h.setColorWithAlpha()
|
|
138
|
+
] : [
|
|
139
|
+
a,
|
|
140
|
+
r.hsluva(),
|
|
141
|
+
h.hsluva()
|
|
142
|
+
];
|
|
143
|
+
case "HSV":
|
|
144
|
+
return this.base.areSourceColorsLocked ? [
|
|
145
|
+
a,
|
|
146
|
+
r.setColorWithAlpha(),
|
|
147
|
+
h.setColorWithAlpha()
|
|
148
|
+
] : [
|
|
149
|
+
a,
|
|
150
|
+
r.hsva(),
|
|
151
|
+
h.hsva()
|
|
152
|
+
];
|
|
153
|
+
case "CMYK":
|
|
154
|
+
return this.base.areSourceColorsLocked ? [
|
|
155
|
+
a,
|
|
156
|
+
r.setColorWithAlpha(),
|
|
157
|
+
h.setColorWithAlpha()
|
|
158
|
+
] : [
|
|
159
|
+
a,
|
|
160
|
+
r.cmyka(),
|
|
161
|
+
h.cmyka()
|
|
162
|
+
];
|
|
163
|
+
default:
|
|
164
|
+
return [a, [0, 0, 0], [255, 255, 255]];
|
|
165
|
+
}
|
|
166
|
+
} else {
|
|
167
|
+
const r = new x({
|
|
168
|
+
render: "RGB",
|
|
169
|
+
sourceColor: [
|
|
170
|
+
t.rgb.r * 255,
|
|
171
|
+
t.rgb.g * 255,
|
|
172
|
+
t.rgb.b * 255
|
|
173
|
+
],
|
|
174
|
+
lightness: a[1],
|
|
175
|
+
hueShifting: t.hue.shift !== void 0 ? t.hue.shift : 0,
|
|
176
|
+
chromaShifting: t.chroma.shift !== void 0 ? t.chroma.shift : 100,
|
|
177
|
+
algorithmVersion: this.base.algorithmVersion,
|
|
178
|
+
visionSimulationMode: e.visionSimulationMode
|
|
179
|
+
});
|
|
180
|
+
switch (this.base.colorSpace) {
|
|
181
|
+
case "LCH":
|
|
182
|
+
return [a, r.lch()];
|
|
183
|
+
case "OKLCH":
|
|
184
|
+
return [a, r.oklch()];
|
|
185
|
+
case "LAB":
|
|
186
|
+
return [a, r.lab()];
|
|
187
|
+
case "OKLAB":
|
|
188
|
+
return [a, r.oklab()];
|
|
189
|
+
case "HSL":
|
|
190
|
+
return [a, r.hsl()];
|
|
191
|
+
case "HSLUV":
|
|
192
|
+
return [a, r.hsluv()];
|
|
193
|
+
case "HSV":
|
|
194
|
+
return [a, r.hsv()];
|
|
195
|
+
case "CMYK":
|
|
196
|
+
return [a, r.cmyk()];
|
|
197
|
+
default:
|
|
198
|
+
return [a, [0, 0, 0]];
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}), n = {
|
|
202
|
+
id: t.id,
|
|
203
|
+
name: t.name,
|
|
204
|
+
description: t.description,
|
|
205
|
+
shades: [],
|
|
206
|
+
type: "color"
|
|
207
|
+
}, o = [
|
|
208
|
+
t.rgb.r * 255,
|
|
209
|
+
t.rgb.g * 255,
|
|
210
|
+
t.rgb.b * 255
|
|
211
|
+
], d = new T();
|
|
212
|
+
d.rgb_r = t.rgb.r, d.rgb_g = t.rgb.g, d.rgb_b = t.rgb.b, d.rgbToHsluv();
|
|
213
|
+
const m = new p({
|
|
214
|
+
backgroundColor: o,
|
|
215
|
+
textColor: e.paletteBackground
|
|
216
|
+
}), l = e.textColorsTheme ? (() => {
|
|
217
|
+
const a = new p({
|
|
218
|
+
backgroundColor: o,
|
|
219
|
+
textColor: e.textColorsTheme.lightColor
|
|
220
|
+
}), r = new p({
|
|
221
|
+
backgroundColor: o,
|
|
222
|
+
textColor: e.textColorsTheme.darkColor
|
|
223
|
+
});
|
|
224
|
+
return {
|
|
225
|
+
wcag: {
|
|
226
|
+
light: {
|
|
227
|
+
ratio: parseFloat(
|
|
228
|
+
a.getWCAGContrast().toFixed(2)
|
|
229
|
+
),
|
|
230
|
+
score: a.getWCAGScore()
|
|
231
|
+
},
|
|
232
|
+
dark: {
|
|
233
|
+
ratio: parseFloat(
|
|
234
|
+
r.getWCAGContrast().toFixed(2)
|
|
235
|
+
),
|
|
236
|
+
score: r.getWCAGScore()
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
apca: {
|
|
240
|
+
light: {
|
|
241
|
+
lc: parseFloat(a.getAPCAContrast().toFixed(2)),
|
|
242
|
+
recommendedUsage: a.getRecommendedUsage()
|
|
243
|
+
},
|
|
244
|
+
dark: {
|
|
245
|
+
lc: parseFloat(r.getAPCAContrast().toFixed(2)),
|
|
246
|
+
recommendedUsage: r.getRecommendedUsage()
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
};
|
|
250
|
+
})() : void 0;
|
|
251
|
+
n.shades.push({
|
|
252
|
+
name: "source",
|
|
253
|
+
description: "Source color",
|
|
254
|
+
hex: s(o).hex(),
|
|
255
|
+
rgb: o,
|
|
256
|
+
gl: s(o).gl(),
|
|
257
|
+
lch: s(o).lch(),
|
|
258
|
+
oklch: s(o).oklch(),
|
|
259
|
+
lab: s(o).lab(),
|
|
260
|
+
oklab: s(o).oklab(),
|
|
261
|
+
hsl: s(o).hsl(),
|
|
262
|
+
hsluv: [
|
|
263
|
+
d.hsluv_h,
|
|
264
|
+
d.hsluv_s,
|
|
265
|
+
d.hsluv_l
|
|
266
|
+
],
|
|
267
|
+
hsv: s(o).hsv(),
|
|
268
|
+
cmyk: G(...o),
|
|
269
|
+
contrast: {
|
|
270
|
+
wcag: {
|
|
271
|
+
ratio: m.getWCAGContrast(),
|
|
272
|
+
score: m.getWCAGScore()
|
|
273
|
+
},
|
|
274
|
+
apca: {
|
|
275
|
+
lc: m.getAPCAContrast(),
|
|
276
|
+
recommendedUsage: m.getRecommendedUsage()
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
textContrast: l,
|
|
280
|
+
type: "source color"
|
|
281
|
+
});
|
|
282
|
+
const v = S.map(
|
|
283
|
+
(a) => s.distance(
|
|
284
|
+
s(o).hex(),
|
|
285
|
+
s(a[1]).hex(),
|
|
286
|
+
"rgb"
|
|
287
|
+
)
|
|
288
|
+
), i = v.indexOf(Math.min(...v));
|
|
289
|
+
S.forEach((a, r) => {
|
|
290
|
+
const h = s.distance(
|
|
291
|
+
s(o).hex(),
|
|
292
|
+
s(a[1]).hex(),
|
|
293
|
+
"rgb"
|
|
294
|
+
), P = Object.keys(e.scale).find((A) => A === a[0][0]) ?? "0", b = new T(), W = new x({
|
|
295
|
+
render: "RGB",
|
|
296
|
+
sourceColor: s(o).rgb(),
|
|
297
|
+
visionSimulationMode: e.visionSimulationMode
|
|
298
|
+
}).setColor(), u = new x({
|
|
299
|
+
render: "HEX",
|
|
300
|
+
sourceColor: s(o).rgb(),
|
|
301
|
+
visionSimulationMode: e.visionSimulationMode
|
|
302
|
+
}).setColor(), w = t.alpha.isEnabled && t.alpha.backgroundColor ? new x({
|
|
303
|
+
visionSimulationMode: e.visionSimulationMode
|
|
304
|
+
}).mixColorsRgb(
|
|
305
|
+
[
|
|
306
|
+
...a[1],
|
|
307
|
+
parseFloat(
|
|
308
|
+
(a[0][1] / 100).toFixed(2)
|
|
309
|
+
)
|
|
310
|
+
],
|
|
311
|
+
[...a[2], 1]
|
|
312
|
+
) : void 0;
|
|
313
|
+
r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled ? (b.rgb_r = Number(W[0]) / 255, b.rgb_g = Number(W[1]) / 255, b.rgb_b = Number(W[2]) / 255) : (b.rgb_r = Number(a[1][0]) / 255, b.rgb_g = Number(a[1][1]) / 255, b.rgb_b = Number(a[1][2]) / 255), b.rgbToHsluv();
|
|
314
|
+
const E = new p({
|
|
315
|
+
backgroundColor: t.alpha.isEnabled ? w : a[1],
|
|
316
|
+
textColor: e.paletteBackground
|
|
317
|
+
}), _ = E.getWCAGContrast(), y = E.getWCAGScore(), D = E.getAPCAContrast(), M = E.getRecommendedUsage(), I = e.textColorsTheme ? (() => {
|
|
318
|
+
const A = t.alpha.isEnabled ? w : a[1], L = new p({
|
|
319
|
+
backgroundColor: A,
|
|
320
|
+
textColor: e.textColorsTheme.lightColor
|
|
321
|
+
}), f = new p({
|
|
322
|
+
backgroundColor: A,
|
|
323
|
+
textColor: e.textColorsTheme.darkColor
|
|
324
|
+
});
|
|
325
|
+
return {
|
|
326
|
+
wcag: {
|
|
327
|
+
light: {
|
|
328
|
+
ratio: parseFloat(
|
|
329
|
+
L.getWCAGContrast().toFixed(2)
|
|
330
|
+
),
|
|
331
|
+
score: L.getWCAGScore()
|
|
332
|
+
},
|
|
333
|
+
dark: {
|
|
334
|
+
ratio: parseFloat(
|
|
335
|
+
f.getWCAGContrast().toFixed(2)
|
|
336
|
+
),
|
|
337
|
+
score: f.getWCAGScore()
|
|
338
|
+
}
|
|
339
|
+
},
|
|
340
|
+
apca: {
|
|
341
|
+
light: {
|
|
342
|
+
lc: parseFloat(
|
|
343
|
+
L.getAPCAContrast().toFixed(2)
|
|
344
|
+
),
|
|
345
|
+
recommendedUsage: L.getRecommendedUsage()
|
|
346
|
+
},
|
|
347
|
+
dark: {
|
|
348
|
+
lc: parseFloat(f.getAPCAContrast().toFixed(2)),
|
|
349
|
+
recommendedUsage: f.getRecommendedUsage()
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
};
|
|
353
|
+
})() : void 0;
|
|
354
|
+
n.shades.push({
|
|
355
|
+
name: P,
|
|
356
|
+
description: `Shade/Tint color with ${typeof a[0][1] == "number" ? a[0][1].toFixed(1) : a[0][1]}% of ${t.alpha.isEnabled ? "opacity" : "lightness"} — WCAG ${_.toFixed(2)}:1 (${y}) · APCA Lc ${D.toFixed(1)} (${M.replace(/_/g, " ").toLowerCase()})`,
|
|
357
|
+
hex: r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled ? s(u).hex() : s(a[1]).hex(),
|
|
358
|
+
rgb: r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled ? s(u).rgb() : s(a[1]).rgb(),
|
|
359
|
+
gl: r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled ? s(u).gl() : s(a[1]).gl(),
|
|
360
|
+
lch: r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled ? s(u).lch() : s(a[1]).lch(),
|
|
361
|
+
oklch: r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled ? s(u).oklch() : s(a[1]).oklch(),
|
|
362
|
+
lab: r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled ? s(u).lab() : s(a[1]).lab(),
|
|
363
|
+
oklab: r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled ? s(u).oklab() : s(a[1]).oklab(),
|
|
364
|
+
hsl: r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled ? s(u).hsl() : s(a[1]).hsl(),
|
|
365
|
+
hsluv: [b.hsluv_h, b.hsluv_s, b.hsluv_l],
|
|
366
|
+
hsv: (r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled ? s(u) : s(a[1])).hsv(),
|
|
367
|
+
cmyk: (() => {
|
|
368
|
+
const [A, L, f] = (r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled ? s(u) : s(a[1])).rgb();
|
|
369
|
+
return G(A, L, f);
|
|
370
|
+
})(),
|
|
371
|
+
alpha: t.alpha.isEnabled ? parseFloat((a[0][1] / 100).toFixed(2)) : void 0,
|
|
372
|
+
backgroundColor: t.alpha.isEnabled && t.alpha.backgroundColor ? s(a[2]).rgb() : void 0,
|
|
373
|
+
mixedColor: w,
|
|
374
|
+
contrast: {
|
|
375
|
+
wcag: {
|
|
376
|
+
ratio: _,
|
|
377
|
+
score: y
|
|
378
|
+
},
|
|
379
|
+
apca: {
|
|
380
|
+
lc: D,
|
|
381
|
+
recommendedUsage: M
|
|
382
|
+
}
|
|
383
|
+
},
|
|
384
|
+
textContrast: I,
|
|
385
|
+
isClosestToRef: h < 4 && !this.base.areSourceColorsLocked,
|
|
386
|
+
isSourceColorLocked: r === i && this.base.areSourceColorsLocked && !t.alpha.isEnabled,
|
|
387
|
+
isTransparent: t.alpha.isEnabled,
|
|
388
|
+
type: "color shade/tint"
|
|
389
|
+
});
|
|
390
|
+
}), c.colors.push(n);
|
|
391
|
+
}), this.paletteData.themes.push(c);
|
|
392
|
+
}), this.paletteData));
|
|
393
|
+
g(this, "makeLibraryData", (e, c) => {
|
|
394
|
+
const t = this.makePaletteData();
|
|
395
|
+
return t.themes.flatMap(
|
|
396
|
+
(n) => n.colors.flatMap(
|
|
397
|
+
(o) => o.shades.flatMap((d) => {
|
|
398
|
+
const m = `${n.id}:${o.id}:${d.name}`, l = c == null ? void 0 : c.find(
|
|
399
|
+
(v) => v.id === m
|
|
400
|
+
);
|
|
401
|
+
return {
|
|
402
|
+
id: m,
|
|
403
|
+
paletteName: t.name,
|
|
404
|
+
themeName: n.name,
|
|
405
|
+
colorName: o.name,
|
|
406
|
+
shadeName: d.name,
|
|
407
|
+
...(e == null ? void 0 : e.includes("alpha")) && { alpha: d.alpha ?? 1 },
|
|
408
|
+
...(e == null ? void 0 : e.includes("hex")) && { hex: d.hex },
|
|
409
|
+
...(e == null ? void 0 : e.includes("gl")) && { gl: d.gl },
|
|
410
|
+
...(e == null ? void 0 : e.includes("description")) && {
|
|
411
|
+
description: o.description
|
|
412
|
+
},
|
|
413
|
+
...(e == null ? void 0 : e.includes("collection_id")) && {
|
|
414
|
+
collectionId: l == null ? void 0 : l.collectionId
|
|
415
|
+
},
|
|
416
|
+
...(e == null ? void 0 : e.includes("mode_id")) && {
|
|
417
|
+
modeId: l == null ? void 0 : l.modeId
|
|
418
|
+
},
|
|
419
|
+
...(e == null ? void 0 : e.includes("variable_id")) && {
|
|
420
|
+
variableId: l == null ? void 0 : l.variableId
|
|
421
|
+
},
|
|
422
|
+
...(e == null ? void 0 : e.includes("style_id")) && {
|
|
423
|
+
styleId: l == null ? void 0 : l.styleId
|
|
424
|
+
},
|
|
425
|
+
...(e == null ? void 0 : e.includes("catalog_id")) && {
|
|
426
|
+
catalogId: l == null ? void 0 : l.catalogId
|
|
427
|
+
},
|
|
428
|
+
...(e == null ? void 0 : e.includes("theme_id")) && {
|
|
429
|
+
themeId: l == null ? void 0 : l.themeId
|
|
430
|
+
},
|
|
431
|
+
...(e == null ? void 0 : e.includes("set_id")) && {
|
|
432
|
+
setId: l == null ? void 0 : l.setId
|
|
433
|
+
},
|
|
434
|
+
...(e == null ? void 0 : e.includes("token_id")) && {
|
|
435
|
+
tokenId: l == null ? void 0 : l.tokenId
|
|
436
|
+
}
|
|
437
|
+
};
|
|
438
|
+
})
|
|
439
|
+
)
|
|
440
|
+
);
|
|
441
|
+
});
|
|
442
|
+
g(this, "makePaletteFullData", () => ({
|
|
443
|
+
base: this.base,
|
|
444
|
+
themes: this.themes,
|
|
445
|
+
libraryData: this.makeLibraryData(),
|
|
446
|
+
meta: this.meta,
|
|
447
|
+
version: "2025.06",
|
|
448
|
+
type: "UI_COLOR_PALETTE"
|
|
449
|
+
}));
|
|
450
|
+
this.base = e, this.themes = c, this.meta = t ?? V, this.paletteData = {
|
|
451
|
+
name: e.name ?? "UI Color Palette",
|
|
452
|
+
description: e.description,
|
|
453
|
+
themes: [],
|
|
454
|
+
type: "palette"
|
|
455
|
+
};
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
export {
|
|
459
|
+
Y as default
|
|
460
|
+
};
|
|
461
|
+
//# sourceMappingURL=data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.js","sources":["../../../node_modules/uid/dist/index.mjs","../../../src/modules/data/data.ts"],"sourcesContent":["var IDX=256, HEX=[], SIZE=256, BUFFER;\nwhile (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);\n\nexport function uid(len) {\n\tvar i=0, tmp=(len || 11);\n\tif (!BUFFER || ((IDX + tmp) > SIZE*2)) {\n\t\tfor (BUFFER='',IDX=0; i < SIZE; i++) {\n\t\t\tBUFFER += HEX[Math.random() * 256 | 0];\n\t\t}\n\t}\n\n\treturn BUFFER.substring(IDX, IDX++ + tmp);\n}\n","import { uid } from 'uid'\nimport { Hsluv } from 'hsluv'\nimport chroma from 'chroma-js'\nimport {\n LibraryData,\n PaletteData,\n PaletteDataColorItem,\n PaletteDataThemeItem,\n} from '@tps/data.types'\nimport {\n MetaConfiguration,\n BaseConfiguration,\n ThemeConfiguration,\n FullConfiguration,\n} from '@tps/configuration.types'\nimport { Channel, ChannelWithAlpha, HexModel } from '@tps/color.types'\nimport Contrast from '@modules/contrast/contrast'\nimport Color from '@modules/color/color'\n\nconst now = new Date().toISOString()\nconst DEFAULT_META: MetaConfiguration = {\n id: uid(),\n dates: {\n createdAt: now,\n updatedAt: now,\n publishedAt: '',\n openedAt: '',\n },\n publicationStatus: {\n isPublished: false,\n isShared: false,\n },\n creatorIdentity: {\n creatorFullName: '',\n creatorAvatar: '',\n creatorId: '',\n },\n}\n\nconst rgbToCmyk = (r: number, g: number, b: number): ChannelWithAlpha => {\n const r1 = r / 255,\n g1 = g / 255,\n b1 = b / 255\n const k = 1 - Math.max(r1, g1, b1)\n\n if (k === 1) return [0, 0, 0, 1]\n\n return [\n (1 - r1 - k) / (1 - k),\n (1 - g1 - k) / (1 - k),\n (1 - b1 - k) / (1 - k),\n k,\n ]\n}\n\nexport default class Data {\n private base: BaseConfiguration\n private themes: Array<ThemeConfiguration>\n private meta: MetaConfiguration\n private paletteData: PaletteData\n\n constructor({\n base,\n themes,\n meta,\n }: {\n base: BaseConfiguration\n themes: Array<ThemeConfiguration>\n meta?: MetaConfiguration\n }) {\n this.base = base\n this.themes = themes\n this.meta = meta ?? DEFAULT_META\n this.paletteData = {\n name: base.name ?? 'UI Color Palette',\n description: base.description,\n themes: [],\n type: 'palette',\n }\n }\n\n makePaletteData = () => {\n this.themes.forEach((theme) => {\n const paletteDataThemeItem: PaletteDataThemeItem = {\n id: theme.id,\n name: theme.name,\n description: theme.description,\n colors: [],\n textColorsTheme: theme.textColorsTheme,\n type: theme.type,\n }\n this.base.colors.forEach((color) => {\n const scaledColors = Object.entries(theme.scale)\n .reverse()\n .map((lightness) => {\n if (color.alpha.isEnabled) {\n const foregroundColorData = new Color({\n render: 'RGB',\n sourceColor: [\n color.rgb.r * 255,\n color.rgb.g * 255,\n color.rgb.b * 255,\n ],\n alpha: parseFloat((lightness[1] / 100).toFixed(2)),\n hueShifting:\n color.hue.shift !== undefined ? color.hue.shift : 0,\n chromaShifting:\n color.chroma.shift !== undefined ? color.chroma.shift : 100,\n algorithmVersion: this.base.algorithmVersion,\n visionSimulationMode: theme.visionSimulationMode,\n })\n const backgroundColorData = new Color({\n render: 'RGB',\n sourceColor: chroma(color.alpha.backgroundColor).rgb(),\n algorithmVersion: this.base.algorithmVersion,\n visionSimulationMode: theme.visionSimulationMode,\n })\n\n switch (this.base.colorSpace) {\n case 'LCH':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.lcha(),\n backgroundColorData.lcha(),\n ]\n case 'OKLCH':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.oklcha(),\n backgroundColorData.oklcha(),\n ]\n case 'LAB':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.laba(),\n backgroundColorData.laba(),\n ]\n case 'OKLAB':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.oklaba(),\n backgroundColorData.oklaba(),\n ]\n case 'HSL':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.hsla(),\n backgroundColorData.hsla(),\n ]\n case 'HSLUV':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.hsluva(),\n backgroundColorData.hsluva(),\n ]\n case 'HSV':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.hsva(),\n backgroundColorData.hsva(),\n ]\n case 'CMYK':\n return this.base.areSourceColorsLocked\n ? [\n lightness,\n foregroundColorData.setColorWithAlpha(),\n backgroundColorData.setColorWithAlpha(),\n ]\n : [\n lightness,\n foregroundColorData.cmyka(),\n backgroundColorData.cmyka(),\n ]\n default:\n return [lightness, [0, 0, 0], [255, 255, 255]]\n }\n } else {\n const colorData = new Color({\n render: 'RGB',\n sourceColor: [\n color.rgb.r * 255,\n color.rgb.g * 255,\n color.rgb.b * 255,\n ],\n lightness: lightness[1],\n hueShifting:\n color.hue.shift !== undefined ? color.hue.shift : 0,\n chromaShifting:\n color.chroma.shift !== undefined ? color.chroma.shift : 100,\n algorithmVersion: this.base.algorithmVersion,\n visionSimulationMode: theme.visionSimulationMode,\n })\n\n switch (this.base.colorSpace) {\n case 'LCH':\n return [lightness, colorData.lch()]\n case 'OKLCH':\n return [lightness, colorData.oklch()]\n case 'LAB':\n return [lightness, colorData.lab()]\n case 'OKLAB':\n return [lightness, colorData.oklab()]\n case 'HSL':\n return [lightness, colorData.hsl()]\n case 'HSLUV':\n return [lightness, colorData.hsluv()]\n case 'HSV':\n return [lightness, colorData.hsv()]\n case 'CMYK':\n return [lightness, colorData.cmyk()]\n default:\n return [lightness, [0, 0, 0]]\n }\n }\n })\n\n const paletteDataColorItem: PaletteDataColorItem = {\n id: color.id,\n name: color.name,\n description: color.description,\n shades: [],\n type: 'color',\n },\n sourceColor: Channel = [\n color.rgb.r * 255,\n color.rgb.g * 255,\n color.rgb.b * 255,\n ]\n\n const sourceHsluv = new Hsluv()\n sourceHsluv.rgb_r = color.rgb.r\n sourceHsluv.rgb_g = color.rgb.g\n sourceHsluv.rgb_b = color.rgb.b\n sourceHsluv.rgbToHsluv()\n const sourceContrastChecker = new Contrast({\n backgroundColor: sourceColor,\n textColor: theme.paletteBackground,\n })\n\n const sourceTextContrast = theme.textColorsTheme\n ? (() => {\n const lightContrast = new Contrast({\n backgroundColor: sourceColor,\n textColor: theme.textColorsTheme.lightColor,\n })\n const darkContrast = new Contrast({\n backgroundColor: sourceColor,\n textColor: theme.textColorsTheme.darkColor,\n })\n return {\n wcag: {\n light: {\n ratio: parseFloat(\n lightContrast.getWCAGContrast().toFixed(2)\n ),\n score: lightContrast.getWCAGScore(),\n },\n dark: {\n ratio: parseFloat(\n darkContrast.getWCAGContrast().toFixed(2)\n ),\n score: darkContrast.getWCAGScore(),\n },\n },\n apca: {\n light: {\n lc: parseFloat(lightContrast.getAPCAContrast().toFixed(2)),\n recommendedUsage: lightContrast.getRecommendedUsage(),\n },\n dark: {\n lc: parseFloat(darkContrast.getAPCAContrast().toFixed(2)),\n recommendedUsage: darkContrast.getRecommendedUsage(),\n },\n },\n }\n })()\n : undefined\n\n paletteDataColorItem.shades.push({\n name: 'source',\n description: 'Source color',\n hex: chroma(sourceColor).hex(),\n rgb: sourceColor,\n gl: chroma(sourceColor).gl(),\n lch: chroma(sourceColor).lch(),\n oklch: chroma(sourceColor).oklch(),\n lab: chroma(sourceColor).lab(),\n oklab: chroma(sourceColor).oklab(),\n hsl: chroma(sourceColor).hsl(),\n hsluv: [\n sourceHsluv.hsluv_h,\n sourceHsluv.hsluv_s,\n sourceHsluv.hsluv_l,\n ],\n hsv: chroma(sourceColor).hsv() as Channel,\n cmyk: rgbToCmyk(...sourceColor),\n contrast: {\n wcag: {\n ratio: sourceContrastChecker.getWCAGContrast(),\n score: sourceContrastChecker.getWCAGScore(),\n },\n apca: {\n lc: sourceContrastChecker.getAPCAContrast(),\n recommendedUsage: sourceContrastChecker.getRecommendedUsage(),\n },\n },\n textContrast: sourceTextContrast,\n type: 'source color',\n })\n\n const distances = scaledColors.map((shade) =>\n chroma.distance(\n chroma(sourceColor).hex(),\n chroma(shade[1] as Channel).hex(),\n 'rgb'\n )\n )\n const minDistanceIndex = distances.indexOf(Math.min(...distances))\n\n scaledColors.forEach((scaledColor, index) => {\n const distance: number = chroma.distance(\n chroma(sourceColor).hex(),\n chroma(scaledColor[1] as Channel).hex(),\n 'rgb'\n )\n const scaleName: string =\n Object.keys(theme.scale).find((key) => key === scaledColor[0][0]) ??\n '0'\n const newHsluv = new Hsluv()\n const simulatedSourceColorRgb = new Color({\n render: 'RGB',\n sourceColor: chroma(sourceColor).rgb(),\n visionSimulationMode: theme.visionSimulationMode,\n }).setColor() as Channel\n const simulatedSourceColorHex = new Color({\n render: 'HEX',\n sourceColor: chroma(sourceColor).rgb(),\n visionSimulationMode: theme.visionSimulationMode,\n }).setColor() as HexModel\n const mixedColor =\n color.alpha.isEnabled && color.alpha.backgroundColor\n ? new Color({\n visionSimulationMode: theme.visionSimulationMode,\n }).mixColorsRgb(\n [\n ...(scaledColor[1] as Channel),\n parseFloat(\n ((scaledColor[0][1] as number) / 100).toFixed(2)\n ),\n ],\n [...(scaledColor[2] as Channel), 1]\n )\n : undefined\n\n if (\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ) {\n newHsluv.rgb_r = Number(simulatedSourceColorRgb[0]) / 255\n newHsluv.rgb_g = Number(simulatedSourceColorRgb[1]) / 255\n newHsluv.rgb_b = Number(simulatedSourceColorRgb[2]) / 255\n } else {\n newHsluv.rgb_r = Number(scaledColor[1][0]) / 255\n newHsluv.rgb_g = Number(scaledColor[1][1]) / 255\n newHsluv.rgb_b = Number(scaledColor[1][2]) / 255\n }\n newHsluv.rgbToHsluv()\n\n const contrastChecker = new Contrast({\n backgroundColor: color.alpha.isEnabled\n ? mixedColor\n : (scaledColor[1] as Channel),\n textColor: theme.paletteBackground,\n })\n const wcagRatio = contrastChecker.getWCAGContrast()\n const wcagScore = contrastChecker.getWCAGScore()\n const apcaLc = contrastChecker.getAPCAContrast()\n const apcaUsage = contrastChecker.getRecommendedUsage()\n\n const shadeTextContrast = theme.textColorsTheme\n ? (() => {\n const bgColor = color.alpha.isEnabled\n ? mixedColor\n : (scaledColor[1] as Channel)\n const lightContrast = new Contrast({\n backgroundColor: bgColor,\n textColor: theme.textColorsTheme.lightColor,\n })\n const darkContrast = new Contrast({\n backgroundColor: bgColor,\n textColor: theme.textColorsTheme.darkColor,\n })\n return {\n wcag: {\n light: {\n ratio: parseFloat(\n lightContrast.getWCAGContrast().toFixed(2)\n ),\n score: lightContrast.getWCAGScore(),\n },\n dark: {\n ratio: parseFloat(\n darkContrast.getWCAGContrast().toFixed(2)\n ),\n score: darkContrast.getWCAGScore(),\n },\n },\n apca: {\n light: {\n lc: parseFloat(\n lightContrast.getAPCAContrast().toFixed(2)\n ),\n recommendedUsage: lightContrast.getRecommendedUsage(),\n },\n dark: {\n lc: parseFloat(darkContrast.getAPCAContrast().toFixed(2)),\n recommendedUsage: darkContrast.getRecommendedUsage(),\n },\n },\n }\n })()\n : undefined\n\n paletteDataColorItem.shades.push({\n name: scaleName,\n description: `Shade/Tint color with ${typeof scaledColor[0][1] === 'number' ? scaledColor[0][1].toFixed(1) : scaledColor[0][1]}% of ${\n color.alpha.isEnabled ? 'opacity' : 'lightness'\n } — WCAG ${wcagRatio.toFixed(2)}:1 (${wcagScore}) · APCA Lc ${apcaLc.toFixed(1)} (${apcaUsage.replace(/_/g, ' ').toLowerCase()})`,\n hex:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).hex()\n : chroma(scaledColor[1] as Channel).hex(),\n rgb:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).rgb()\n : chroma(scaledColor[1] as Channel).rgb(),\n gl:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).gl()\n : chroma(scaledColor[1] as Channel).gl(),\n lch:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).lch()\n : chroma(scaledColor[1] as Channel).lch(),\n oklch:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).oklch()\n : chroma(scaledColor[1] as Channel).oklch(),\n lab:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).lab()\n : chroma(scaledColor[1] as Channel).lab(),\n oklab:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).oklab()\n : chroma(scaledColor[1] as Channel).oklab(),\n hsl:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex).hsl()\n : chroma(scaledColor[1] as Channel).hsl(),\n hsluv: [newHsluv.hsluv_h, newHsluv.hsluv_s, newHsluv.hsluv_l],\n hsv: (index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex)\n : chroma(scaledColor[1] as Channel)\n ).hsv() as Channel,\n cmyk: (() => {\n const [r, g, b] = (\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled\n ? chroma(simulatedSourceColorHex)\n : chroma(scaledColor[1] as Channel)\n ).rgb()\n return rgbToCmyk(r, g, b)\n })(),\n alpha: color.alpha.isEnabled\n ? parseFloat(((scaledColor[0][1] as number) / 100).toFixed(2))\n : undefined,\n backgroundColor:\n color.alpha.isEnabled && color.alpha.backgroundColor\n ? chroma(scaledColor[2] as Channel).rgb()\n : undefined,\n mixedColor: mixedColor,\n contrast: {\n wcag: {\n ratio: wcagRatio,\n score: wcagScore,\n },\n apca: {\n lc: apcaLc,\n recommendedUsage: apcaUsage,\n },\n },\n textContrast: shadeTextContrast,\n isClosestToRef: distance < 4 && !this.base.areSourceColorsLocked,\n isSourceColorLocked:\n index === minDistanceIndex &&\n this.base.areSourceColorsLocked &&\n !color.alpha.isEnabled,\n isTransparent: color.alpha.isEnabled,\n type: 'color shade/tint',\n })\n })\n\n paletteDataThemeItem.colors.push(paletteDataColorItem)\n })\n this.paletteData.themes.push(paletteDataThemeItem)\n })\n\n return this.paletteData\n }\n\n makeLibraryData = (\n options?: Array<\n | 'collection_id'\n | 'mode_id'\n | 'variable_id'\n | 'style_id'\n | 'catalog_id'\n | 'theme_id'\n | 'set_id'\n | 'token_id'\n | 'gl'\n | 'hex'\n | 'description'\n | 'alpha'\n >,\n previousData?: Array<LibraryData>\n ) => {\n const paletteData = this.makePaletteData()\n\n const libraryData: Array<LibraryData> = paletteData.themes.flatMap(\n (theme) => {\n return theme.colors.flatMap((color) =>\n color.shades.flatMap((shade) => {\n const generatedId = `${theme.id}:${color.id}:${shade.name}`\n const previousItem = previousData?.find(\n (item) => item.id === generatedId\n )\n\n return {\n id: generatedId,\n paletteName: paletteData.name,\n themeName: theme.name,\n colorName: color.name,\n shadeName: shade.name,\n ...(options?.includes('alpha') && { alpha: shade.alpha ?? 1 }),\n ...(options?.includes('hex') && { hex: shade.hex }),\n ...(options?.includes('gl') && { gl: shade.gl }),\n ...(options?.includes('description') && {\n description: color.description,\n }),\n ...(options?.includes('collection_id') && {\n collectionId: previousItem?.collectionId,\n }),\n ...(options?.includes('mode_id') && {\n modeId: previousItem?.modeId,\n }),\n ...(options?.includes('variable_id') && {\n variableId: previousItem?.variableId,\n }),\n ...(options?.includes('style_id') && {\n styleId: previousItem?.styleId,\n }),\n ...(options?.includes('catalog_id') && {\n catalogId: previousItem?.catalogId,\n }),\n ...(options?.includes('theme_id') && {\n themeId: previousItem?.themeId,\n }),\n ...(options?.includes('set_id') && {\n setId: previousItem?.setId,\n }),\n ...(options?.includes('token_id') && {\n tokenId: previousItem?.tokenId,\n }),\n }\n })\n )\n }\n )\n\n return libraryData\n }\n\n makePaletteFullData = () => {\n const fullPaletteData = {\n base: this.base,\n themes: this.themes,\n libraryData: this.makeLibraryData(),\n meta: this.meta,\n version: '2025.06',\n type: 'UI_COLOR_PALETTE',\n } as FullConfiguration\n\n return fullPaletteData\n }\n}\n"],"names":["IDX","HEX","SIZE","BUFFER","uid","len","i","tmp","now","DEFAULT_META","rgbToCmyk","r","g","b","r1","g1","b1","k","Data","base","themes","meta","__publicField","theme","paletteDataThemeItem","color","scaledColors","lightness","foregroundColorData","Color","backgroundColorData","chroma","colorData","paletteDataColorItem","sourceColor","sourceHsluv","Hsluv","sourceContrastChecker","Contrast","sourceTextContrast","lightContrast","darkContrast","distances","shade","minDistanceIndex","scaledColor","index","distance","scaleName","key","newHsluv","simulatedSourceColorRgb","simulatedSourceColorHex","mixedColor","contrastChecker","wcagRatio","wcagScore","apcaLc","apcaUsage","shadeTextContrast","bgColor","options","previousData","paletteData","generatedId","previousItem","item"],"mappings":";;;;;;AAAA,IAAIA,IAAI,KAAKC,IAAI,CAAA,GAAIC,IAAK,KAAKC;AAC/B,OAAOH,MAAO,CAAAC,EAAID,CAAG,KAAKA,IAAM,KAAK,SAAS,EAAE,EAAE,UAAU,CAAC;AAEtD,SAASI,EAAIC,GAAK;AACxB,MAAIC,IAAE,GAAGC,IAAY;AACrB,MAAI,CAACJ,KAAYH,IAAMO,IAAOL,IAAK;AAClC,SAAKC,IAAO,IAAGH,IAAI,GAAGM,IAAIJ,GAAMI;AAC/B,MAAAH,KAAUF,EAAI,KAAK,OAAM,IAAK,MAAM,CAAC;AAIvC,SAAOE,EAAO,UAAUH,GAAKA,MAAQO,CAAG;AACzC;ACOA,MAAMC,KAAM,oBAAI,KAAA,GAAO,YAAA,GACjBC,IAAkC;AAAA,EACtC,IAAIL,EAAA;AAAA,EACJ,OAAO;AAAA,IACL,WAAWI;AAAA,IACX,WAAWA;AAAA,IACX,aAAa;AAAA,IACb,UAAU;AAAA,EAAA;AAAA,EAEZ,mBAAmB;AAAA,IACjB,aAAa;AAAA,IACb,UAAU;AAAA,EAAA;AAAA,EAEZ,iBAAiB;AAAA,IACf,iBAAiB;AAAA,IACjB,eAAe;AAAA,IACf,WAAW;AAAA,EAAA;AAEf,GAEME,IAAY,CAACC,GAAWC,GAAWC,MAAgC;AACvE,QAAMC,IAAKH,IAAI,KACbI,IAAKH,IAAI,KACTI,IAAKH,IAAI,KACLI,IAAI,IAAI,KAAK,IAAIH,GAAIC,GAAIC,CAAE;AAEjC,SAAIC,MAAM,IAAU,CAAC,GAAG,GAAG,GAAG,CAAC,IAExB;AAAA,KACJ,IAAIH,IAAKG,MAAM,IAAIA;AAAA,KACnB,IAAIF,IAAKE,MAAM,IAAIA;AAAA,KACnB,IAAID,IAAKC,MAAM,IAAIA;AAAA,IACpBA;AAAA,EAAA;AAEJ;AAEA,MAAqBC,EAAK;AAAA,EAMxB,YAAY;AAAA,IACV,MAAAC;AAAA,IACA,QAAAC;AAAA,IACA,MAAAC;AAAA,EAAA,GAKC;AAbK,IAAAC,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AACA,IAAAA,EAAA;AAsBR,IAAAA,EAAA,yBAAkB,OAChB,KAAK,OAAO,QAAQ,CAACC,MAAU;AAC7B,YAAMC,IAA6C;AAAA,QACjD,IAAID,EAAM;AAAA,QACV,MAAMA,EAAM;AAAA,QACZ,aAAaA,EAAM;AAAA,QACnB,QAAQ,CAAA;AAAA,QACR,iBAAiBA,EAAM;AAAA,QACvB,MAAMA,EAAM;AAAA,MAAA;AAEd,WAAK,KAAK,OAAO,QAAQ,CAACE,MAAU;AAClC,cAAMC,IAAe,OAAO,QAAQH,EAAM,KAAK,EAC5C,QAAA,EACA,IAAI,CAACI,MAAc;AAClB,cAAIF,EAAM,MAAM,WAAW;AACzB,kBAAMG,IAAsB,IAAIC,EAAM;AAAA,cACpC,QAAQ;AAAA,cACR,aAAa;AAAA,gBACXJ,EAAM,IAAI,IAAI;AAAA,gBACdA,EAAM,IAAI,IAAI;AAAA,gBACdA,EAAM,IAAI,IAAI;AAAA,cAAA;AAAA,cAEhB,OAAO,YAAYE,EAAU,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;AAAA,cACjD,aACEF,EAAM,IAAI,UAAU,SAAYA,EAAM,IAAI,QAAQ;AAAA,cACpD,gBACEA,EAAM,OAAO,UAAU,SAAYA,EAAM,OAAO,QAAQ;AAAA,cAC1D,kBAAkB,KAAK,KAAK;AAAA,cAC5B,sBAAsBF,EAAM;AAAA,YAAA,CAC7B,GACKO,IAAsB,IAAID,EAAM;AAAA,cACpC,QAAQ;AAAA,cACR,aAAaE,EAAON,EAAM,MAAM,eAAe,EAAE,IAAA;AAAA,cACjD,kBAAkB,KAAK,KAAK;AAAA,cAC5B,sBAAsBF,EAAM;AAAA,YAAA,CAC7B;AAED,oBAAQ,KAAK,KAAK,YAAA;AAAA,cAChB,KAAK;AACH,uBAAO,KAAK,KAAK,wBACb;AAAA,kBACEI;AAAA,kBACAC,EAAoB,kBAAA;AAAA,kBACpBE,EAAoB,kBAAA;AAAA,gBAAkB,IAExC;AAAA,kBACEH;AAAA,kBACAC,EAAoB,KAAA;AAAA,kBACpBE,EAAoB,KAAA;AAAA,gBAAK;AAAA,cAEjC,KAAK;AACH,uBAAO,KAAK,KAAK,wBACb;AAAA,kBACEH;AAAA,kBACAC,EAAoB,kBAAA;AAAA,kBACpBE,EAAoB,kBAAA;AAAA,gBAAkB,IAExC;AAAA,kBACEH;AAAA,kBACAC,EAAoB,OAAA;AAAA,kBACpBE,EAAoB,OAAA;AAAA,gBAAO;AAAA,cAEnC,KAAK;AACH,uBAAO,KAAK,KAAK,wBACb;AAAA,kBACEH;AAAA,kBACAC,EAAoB,kBAAA;AAAA,kBACpBE,EAAoB,kBAAA;AAAA,gBAAkB,IAExC;AAAA,kBACEH;AAAA,kBACAC,EAAoB,KAAA;AAAA,kBACpBE,EAAoB,KAAA;AAAA,gBAAK;AAAA,cAEjC,KAAK;AACH,uBAAO,KAAK,KAAK,wBACb;AAAA,kBACEH;AAAA,kBACAC,EAAoB,kBAAA;AAAA,kBACpBE,EAAoB,kBAAA;AAAA,gBAAkB,IAExC;AAAA,kBACEH;AAAA,kBACAC,EAAoB,OAAA;AAAA,kBACpBE,EAAoB,OAAA;AAAA,gBAAO;AAAA,cAEnC,KAAK;AACH,uBAAO,KAAK,KAAK,wBACb;AAAA,kBACEH;AAAA,kBACAC,EAAoB,kBAAA;AAAA,kBACpBE,EAAoB,kBAAA;AAAA,gBAAkB,IAExC;AAAA,kBACEH;AAAA,kBACAC,EAAoB,KAAA;AAAA,kBACpBE,EAAoB,KAAA;AAAA,gBAAK;AAAA,cAEjC,KAAK;AACH,uBAAO,KAAK,KAAK,wBACb;AAAA,kBACEH;AAAA,kBACAC,EAAoB,kBAAA;AAAA,kBACpBE,EAAoB,kBAAA;AAAA,gBAAkB,IAExC;AAAA,kBACEH;AAAA,kBACAC,EAAoB,OAAA;AAAA,kBACpBE,EAAoB,OAAA;AAAA,gBAAO;AAAA,cAEnC,KAAK;AACH,uBAAO,KAAK,KAAK,wBACb;AAAA,kBACEH;AAAA,kBACAC,EAAoB,kBAAA;AAAA,kBACpBE,EAAoB,kBAAA;AAAA,gBAAkB,IAExC;AAAA,kBACEH;AAAA,kBACAC,EAAoB,KAAA;AAAA,kBACpBE,EAAoB,KAAA;AAAA,gBAAK;AAAA,cAEjC,KAAK;AACH,uBAAO,KAAK,KAAK,wBACb;AAAA,kBACEH;AAAA,kBACAC,EAAoB,kBAAA;AAAA,kBACpBE,EAAoB,kBAAA;AAAA,gBAAkB,IAExC;AAAA,kBACEH;AAAA,kBACAC,EAAoB,MAAA;AAAA,kBACpBE,EAAoB,MAAA;AAAA,gBAAM;AAAA,cAElC;AACE,uBAAO,CAACH,GAAW,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC;AAAA,YAAA;AAAA,UAEnD,OAAO;AACL,kBAAMK,IAAY,IAAIH,EAAM;AAAA,cAC1B,QAAQ;AAAA,cACR,aAAa;AAAA,gBACXJ,EAAM,IAAI,IAAI;AAAA,gBACdA,EAAM,IAAI,IAAI;AAAA,gBACdA,EAAM,IAAI,IAAI;AAAA,cAAA;AAAA,cAEhB,WAAWE,EAAU,CAAC;AAAA,cACtB,aACEF,EAAM,IAAI,UAAU,SAAYA,EAAM,IAAI,QAAQ;AAAA,cACpD,gBACEA,EAAM,OAAO,UAAU,SAAYA,EAAM,OAAO,QAAQ;AAAA,cAC1D,kBAAkB,KAAK,KAAK;AAAA,cAC5B,sBAAsBF,EAAM;AAAA,YAAA,CAC7B;AAED,oBAAQ,KAAK,KAAK,YAAA;AAAA,cAChB,KAAK;AACH,uBAAO,CAACI,GAAWK,EAAU,KAAK;AAAA,cACpC,KAAK;AACH,uBAAO,CAACL,GAAWK,EAAU,OAAO;AAAA,cACtC,KAAK;AACH,uBAAO,CAACL,GAAWK,EAAU,KAAK;AAAA,cACpC,KAAK;AACH,uBAAO,CAACL,GAAWK,EAAU,OAAO;AAAA,cACtC,KAAK;AACH,uBAAO,CAACL,GAAWK,EAAU,KAAK;AAAA,cACpC,KAAK;AACH,uBAAO,CAACL,GAAWK,EAAU,OAAO;AAAA,cACtC,KAAK;AACH,uBAAO,CAACL,GAAWK,EAAU,KAAK;AAAA,cACpC,KAAK;AACH,uBAAO,CAACL,GAAWK,EAAU,MAAM;AAAA,cACrC;AACE,uBAAO,CAACL,GAAW,CAAC,GAAG,GAAG,CAAC,CAAC;AAAA,YAAA;AAAA,UAElC;AAAA,QACF,CAAC,GAEGM,IAA6C;AAAA,UAC/C,IAAIR,EAAM;AAAA,UACV,MAAMA,EAAM;AAAA,UACZ,aAAaA,EAAM;AAAA,UACnB,QAAQ,CAAA;AAAA,UACR,MAAM;AAAA,QAAA,GAERS,IAAuB;AAAA,UACrBT,EAAM,IAAI,IAAI;AAAA,UACdA,EAAM,IAAI,IAAI;AAAA,UACdA,EAAM,IAAI,IAAI;AAAA,QAAA,GAGZU,IAAc,IAAIC,EAAA;AACxB,QAAAD,EAAY,QAAQV,EAAM,IAAI,GAC9BU,EAAY,QAAQV,EAAM,IAAI,GAC9BU,EAAY,QAAQV,EAAM,IAAI,GAC9BU,EAAY,WAAA;AACZ,cAAME,IAAwB,IAAIC,EAAS;AAAA,UACzC,iBAAiBJ;AAAA,UACjB,WAAWX,EAAM;AAAA,QAAA,CAClB,GAEKgB,IAAqBhB,EAAM,mBAC5B,MAAM;AACL,gBAAMiB,IAAgB,IAAIF,EAAS;AAAA,YACjC,iBAAiBJ;AAAA,YACjB,WAAWX,EAAM,gBAAgB;AAAA,UAAA,CAClC,GACKkB,IAAe,IAAIH,EAAS;AAAA,YAChC,iBAAiBJ;AAAA,YACjB,WAAWX,EAAM,gBAAgB;AAAA,UAAA,CAClC;AACD,iBAAO;AAAA,YACL,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,OAAO;AAAA,kBACLiB,EAAc,kBAAkB,QAAQ,CAAC;AAAA,gBAAA;AAAA,gBAE3C,OAAOA,EAAc,aAAA;AAAA,cAAa;AAAA,cAEpC,MAAM;AAAA,gBACJ,OAAO;AAAA,kBACLC,EAAa,kBAAkB,QAAQ,CAAC;AAAA,gBAAA;AAAA,gBAE1C,OAAOA,EAAa,aAAA;AAAA,cAAa;AAAA,YACnC;AAAA,YAEF,MAAM;AAAA,cACJ,OAAO;AAAA,gBACL,IAAI,WAAWD,EAAc,kBAAkB,QAAQ,CAAC,CAAC;AAAA,gBACzD,kBAAkBA,EAAc,oBAAA;AAAA,cAAoB;AAAA,cAEtD,MAAM;AAAA,gBACJ,IAAI,WAAWC,EAAa,kBAAkB,QAAQ,CAAC,CAAC;AAAA,gBACxD,kBAAkBA,EAAa,oBAAA;AAAA,cAAoB;AAAA,YACrD;AAAA,UACF;AAAA,QAEJ,OACA;AAEJ,QAAAR,EAAqB,OAAO,KAAK;AAAA,UAC/B,MAAM;AAAA,UACN,aAAa;AAAA,UACb,KAAKF,EAAOG,CAAW,EAAE,IAAA;AAAA,UACzB,KAAKA;AAAA,UACL,IAAIH,EAAOG,CAAW,EAAE,GAAA;AAAA,UACxB,KAAKH,EAAOG,CAAW,EAAE,IAAA;AAAA,UACzB,OAAOH,EAAOG,CAAW,EAAE,MAAA;AAAA,UAC3B,KAAKH,EAAOG,CAAW,EAAE,IAAA;AAAA,UACzB,OAAOH,EAAOG,CAAW,EAAE,MAAA;AAAA,UAC3B,KAAKH,EAAOG,CAAW,EAAE,IAAA;AAAA,UACzB,OAAO;AAAA,YACLC,EAAY;AAAA,YACZA,EAAY;AAAA,YACZA,EAAY;AAAA,UAAA;AAAA,UAEd,KAAKJ,EAAOG,CAAW,EAAE,IAAA;AAAA,UACzB,MAAMxB,EAAU,GAAGwB,CAAW;AAAA,UAC9B,UAAU;AAAA,YACR,MAAM;AAAA,cACJ,OAAOG,EAAsB,gBAAA;AAAA,cAC7B,OAAOA,EAAsB,aAAA;AAAA,YAAa;AAAA,YAE5C,MAAM;AAAA,cACJ,IAAIA,EAAsB,gBAAA;AAAA,cAC1B,kBAAkBA,EAAsB,oBAAA;AAAA,YAAoB;AAAA,UAC9D;AAAA,UAEF,cAAcE;AAAA,UACd,MAAM;AAAA,QAAA,CACP;AAED,cAAMG,IAAYhB,EAAa;AAAA,UAAI,CAACiB,MAClCZ,EAAO;AAAA,YACLA,EAAOG,CAAW,EAAE,IAAA;AAAA,YACpBH,EAAOY,EAAM,CAAC,CAAY,EAAE,IAAA;AAAA,YAC5B;AAAA,UAAA;AAAA,QACF,GAEIC,IAAmBF,EAAU,QAAQ,KAAK,IAAI,GAAGA,CAAS,CAAC;AAEjE,QAAAhB,EAAa,QAAQ,CAACmB,GAAaC,MAAU;AAC3C,gBAAMC,IAAmBhB,EAAO;AAAA,YAC9BA,EAAOG,CAAW,EAAE,IAAA;AAAA,YACpBH,EAAOc,EAAY,CAAC,CAAY,EAAE,IAAA;AAAA,YAClC;AAAA,UAAA,GAEIG,IACJ,OAAO,KAAKzB,EAAM,KAAK,EAAE,KAAK,CAAC0B,MAAQA,MAAQJ,EAAY,CAAC,EAAE,CAAC,CAAC,KAChE,KACIK,IAAW,IAAId,EAAA,GACfe,IAA0B,IAAItB,EAAM;AAAA,YACxC,QAAQ;AAAA,YACR,aAAaE,EAAOG,CAAW,EAAE,IAAA;AAAA,YACjC,sBAAsBX,EAAM;AAAA,UAAA,CAC7B,EAAE,SAAA,GACG6B,IAA0B,IAAIvB,EAAM;AAAA,YACxC,QAAQ;AAAA,YACR,aAAaE,EAAOG,CAAW,EAAE,IAAA;AAAA,YACjC,sBAAsBX,EAAM;AAAA,UAAA,CAC7B,EAAE,SAAA,GACG8B,IACJ5B,EAAM,MAAM,aAAaA,EAAM,MAAM,kBACjC,IAAII,EAAM;AAAA,YACR,sBAAsBN,EAAM;AAAA,UAAA,CAC7B,EAAE;AAAA,YACD;AAAA,cACE,GAAIsB,EAAY,CAAC;AAAA,cACjB;AAAA,iBACIA,EAAY,CAAC,EAAE,CAAC,IAAe,KAAK,QAAQ,CAAC;AAAA,cAAA;AAAA,YACjD;AAAA,YAEF,CAAC,GAAIA,EAAY,CAAC,GAAe,CAAC;AAAA,UAAA,IAEpC;AAEN,UACEC,MAAUF,KACV,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM,aAEbyB,EAAS,QAAQ,OAAOC,EAAwB,CAAC,CAAC,IAAI,KACtDD,EAAS,QAAQ,OAAOC,EAAwB,CAAC,CAAC,IAAI,KACtDD,EAAS,QAAQ,OAAOC,EAAwB,CAAC,CAAC,IAAI,QAEtDD,EAAS,QAAQ,OAAOL,EAAY,CAAC,EAAE,CAAC,CAAC,IAAI,KAC7CK,EAAS,QAAQ,OAAOL,EAAY,CAAC,EAAE,CAAC,CAAC,IAAI,KAC7CK,EAAS,QAAQ,OAAOL,EAAY,CAAC,EAAE,CAAC,CAAC,IAAI,MAE/CK,EAAS,WAAA;AAET,gBAAMI,IAAkB,IAAIhB,EAAS;AAAA,YACnC,iBAAiBb,EAAM,MAAM,YACzB4B,IACCR,EAAY,CAAC;AAAA,YAClB,WAAWtB,EAAM;AAAA,UAAA,CAClB,GACKgC,IAAYD,EAAgB,gBAAA,GAC5BE,IAAYF,EAAgB,aAAA,GAC5BG,IAASH,EAAgB,gBAAA,GACzBI,IAAYJ,EAAgB,oBAAA,GAE5BK,IAAoBpC,EAAM,mBAC3B,MAAM;AACL,kBAAMqC,IAAUnC,EAAM,MAAM,YACxB4B,IACCR,EAAY,CAAC,GACZL,IAAgB,IAAIF,EAAS;AAAA,cACjC,iBAAiBsB;AAAA,cACjB,WAAWrC,EAAM,gBAAgB;AAAA,YAAA,CAClC,GACKkB,IAAe,IAAIH,EAAS;AAAA,cAChC,iBAAiBsB;AAAA,cACjB,WAAWrC,EAAM,gBAAgB;AAAA,YAAA,CAClC;AACD,mBAAO;AAAA,cACL,MAAM;AAAA,gBACJ,OAAO;AAAA,kBACL,OAAO;AAAA,oBACLiB,EAAc,kBAAkB,QAAQ,CAAC;AAAA,kBAAA;AAAA,kBAE3C,OAAOA,EAAc,aAAA;AAAA,gBAAa;AAAA,gBAEpC,MAAM;AAAA,kBACJ,OAAO;AAAA,oBACLC,EAAa,kBAAkB,QAAQ,CAAC;AAAA,kBAAA;AAAA,kBAE1C,OAAOA,EAAa,aAAA;AAAA,gBAAa;AAAA,cACnC;AAAA,cAEF,MAAM;AAAA,gBACJ,OAAO;AAAA,kBACL,IAAI;AAAA,oBACFD,EAAc,kBAAkB,QAAQ,CAAC;AAAA,kBAAA;AAAA,kBAE3C,kBAAkBA,EAAc,oBAAA;AAAA,gBAAoB;AAAA,gBAEtD,MAAM;AAAA,kBACJ,IAAI,WAAWC,EAAa,kBAAkB,QAAQ,CAAC,CAAC;AAAA,kBACxD,kBAAkBA,EAAa,oBAAA;AAAA,gBAAoB;AAAA,cACrD;AAAA,YACF;AAAA,UAEJ,OACA;AAEJ,UAAAR,EAAqB,OAAO,KAAK;AAAA,YAC/B,MAAMe;AAAA,YACN,aAAa,yBAAyB,OAAOH,EAAY,CAAC,EAAE,CAAC,KAAM,WAAWA,EAAY,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,IAAIA,EAAY,CAAC,EAAE,CAAC,CAAC,QAC5HpB,EAAM,MAAM,YAAY,YAAY,WACtC,WAAW8B,EAAU,QAAQ,CAAC,CAAC,OAAOC,CAAS,eAAeC,EAAO,QAAQ,CAAC,CAAC,KAAKC,EAAU,QAAQ,MAAM,GAAG,EAAE,YAAA,CAAa;AAAA,YAC9H,KACEZ,MAAUF,KACV,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM,YACTM,EAAOqB,CAAuB,EAAE,QAChCrB,EAAOc,EAAY,CAAC,CAAY,EAAE,IAAA;AAAA,YACxC,KACEC,MAAUF,KACV,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM,YACTM,EAAOqB,CAAuB,EAAE,QAChCrB,EAAOc,EAAY,CAAC,CAAY,EAAE,IAAA;AAAA,YACxC,IACEC,MAAUF,KACV,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM,YACTM,EAAOqB,CAAuB,EAAE,OAChCrB,EAAOc,EAAY,CAAC,CAAY,EAAE,GAAA;AAAA,YACxC,KACEC,MAAUF,KACV,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM,YACTM,EAAOqB,CAAuB,EAAE,QAChCrB,EAAOc,EAAY,CAAC,CAAY,EAAE,IAAA;AAAA,YACxC,OACEC,MAAUF,KACV,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM,YACTM,EAAOqB,CAAuB,EAAE,UAChCrB,EAAOc,EAAY,CAAC,CAAY,EAAE,MAAA;AAAA,YACxC,KACEC,MAAUF,KACV,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM,YACTM,EAAOqB,CAAuB,EAAE,QAChCrB,EAAOc,EAAY,CAAC,CAAY,EAAE,IAAA;AAAA,YACxC,OACEC,MAAUF,KACV,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM,YACTM,EAAOqB,CAAuB,EAAE,UAChCrB,EAAOc,EAAY,CAAC,CAAY,EAAE,MAAA;AAAA,YACxC,KACEC,MAAUF,KACV,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM,YACTM,EAAOqB,CAAuB,EAAE,QAChCrB,EAAOc,EAAY,CAAC,CAAY,EAAE,IAAA;AAAA,YACxC,OAAO,CAACK,EAAS,SAASA,EAAS,SAASA,EAAS,OAAO;AAAA,YAC5D,MAAMJ,MAAUF,KAChB,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM,YACTM,EAAOqB,CAAuB,IAC9BrB,EAAOc,EAAY,CAAC,CAAY,GAClC,IAAA;AAAA,YACF,OAAO,MAAM;AACX,oBAAM,CAAClC,GAAGC,GAAGC,CAAC,KACZiC,MAAUF,KACV,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM,YACTM,EAAOqB,CAAuB,IAC9BrB,EAAOc,EAAY,CAAC,CAAY,GACpC,IAAA;AACF,qBAAOnC,EAAUC,GAAGC,GAAGC,CAAC;AAAA,YAC1B,GAAA;AAAA,YACA,OAAOY,EAAM,MAAM,YACf,YAAaoB,EAAY,CAAC,EAAE,CAAC,IAAe,KAAK,QAAQ,CAAC,CAAC,IAC3D;AAAA,YACJ,iBACEpB,EAAM,MAAM,aAAaA,EAAM,MAAM,kBACjCM,EAAOc,EAAY,CAAC,CAAY,EAAE,QAClC;AAAA,YACN,YAAAQ;AAAA,YACA,UAAU;AAAA,cACR,MAAM;AAAA,gBACJ,OAAOE;AAAA,gBACP,OAAOC;AAAA,cAAA;AAAA,cAET,MAAM;AAAA,gBACJ,IAAIC;AAAA,gBACJ,kBAAkBC;AAAA,cAAA;AAAA,YACpB;AAAA,YAEF,cAAcC;AAAA,YACd,gBAAgBZ,IAAW,KAAK,CAAC,KAAK,KAAK;AAAA,YAC3C,qBACED,MAAUF,KACV,KAAK,KAAK,yBACV,CAACnB,EAAM,MAAM;AAAA,YACf,eAAeA,EAAM,MAAM;AAAA,YAC3B,MAAM;AAAA,UAAA,CACP;AAAA,QACH,CAAC,GAEDD,EAAqB,OAAO,KAAKS,CAAoB;AAAA,MACvD,CAAC,GACD,KAAK,YAAY,OAAO,KAAKT,CAAoB;AAAA,IACnD,CAAC,GAEM,KAAK;AAGd,IAAAF,EAAA,yBAAkB,CAChBuC,GAcAC,MACG;AACH,YAAMC,IAAc,KAAK,gBAAA;AAqDzB,aAnDwCA,EAAY,OAAO;AAAA,QACzD,CAACxC,MACQA,EAAM,OAAO;AAAA,UAAQ,CAACE,MAC3BA,EAAM,OAAO,QAAQ,CAACkB,MAAU;AAC9B,kBAAMqB,IAAc,GAAGzC,EAAM,EAAE,IAAIE,EAAM,EAAE,IAAIkB,EAAM,IAAI,IACnDsB,IAAeH,KAAA,gBAAAA,EAAc;AAAA,cACjC,CAACI,MAASA,EAAK,OAAOF;AAAA;AAGxB,mBAAO;AAAA,cACL,IAAIA;AAAA,cACJ,aAAaD,EAAY;AAAA,cACzB,WAAWxC,EAAM;AAAA,cACjB,WAAWE,EAAM;AAAA,cACjB,WAAWkB,EAAM;AAAA,cACjB,IAAIkB,KAAA,gBAAAA,EAAS,SAAS,aAAY,EAAE,OAAOlB,EAAM,SAAS,EAAA;AAAA,cAC1D,IAAIkB,KAAA,gBAAAA,EAAS,SAAS,WAAU,EAAE,KAAKlB,EAAM,IAAA;AAAA,cAC7C,IAAIkB,KAAA,gBAAAA,EAAS,SAAS,UAAS,EAAE,IAAIlB,EAAM,GAAA;AAAA,cAC3C,IAAIkB,KAAA,gBAAAA,EAAS,SAAS,mBAAkB;AAAA,gBACtC,aAAapC,EAAM;AAAA,cAAA;AAAA,cAErB,IAAIoC,KAAA,gBAAAA,EAAS,SAAS,qBAAoB;AAAA,gBACxC,cAAcI,KAAA,gBAAAA,EAAc;AAAA,cAAA;AAAA,cAE9B,IAAIJ,KAAA,gBAAAA,EAAS,SAAS,eAAc;AAAA,gBAClC,QAAQI,KAAA,gBAAAA,EAAc;AAAA,cAAA;AAAA,cAExB,IAAIJ,KAAA,gBAAAA,EAAS,SAAS,mBAAkB;AAAA,gBACtC,YAAYI,KAAA,gBAAAA,EAAc;AAAA,cAAA;AAAA,cAE5B,IAAIJ,KAAA,gBAAAA,EAAS,SAAS,gBAAe;AAAA,gBACnC,SAASI,KAAA,gBAAAA,EAAc;AAAA,cAAA;AAAA,cAEzB,IAAIJ,KAAA,gBAAAA,EAAS,SAAS,kBAAiB;AAAA,gBACrC,WAAWI,KAAA,gBAAAA,EAAc;AAAA,cAAA;AAAA,cAE3B,IAAIJ,KAAA,gBAAAA,EAAS,SAAS,gBAAe;AAAA,gBACnC,SAASI,KAAA,gBAAAA,EAAc;AAAA,cAAA;AAAA,cAEzB,IAAIJ,KAAA,gBAAAA,EAAS,SAAS,cAAa;AAAA,gBACjC,OAAOI,KAAA,gBAAAA,EAAc;AAAA,cAAA;AAAA,cAEvB,IAAIJ,KAAA,gBAAAA,EAAS,SAAS,gBAAe;AAAA,gBACnC,SAASI,KAAA,gBAAAA,EAAc;AAAA,cAAA;AAAA,YACzB;AAAA,UAEJ,CAAC;AAAA,QAAA;AAAA,MAEL;AAAA,IAIJ;AAEA,IAAA3C,EAAA,6BAAsB,OACI;AAAA,MACtB,MAAM,KAAK;AAAA,MACX,QAAQ,KAAK;AAAA,MACb,aAAa,KAAK,gBAAA;AAAA,MAClB,MAAM,KAAK;AAAA,MACX,SAAS;AAAA,MACT,MAAM;AAAA,IAAA;AAvkBR,SAAK,OAAOH,GACZ,KAAK,SAASC,GACd,KAAK,OAAOC,KAAQZ,GACpB,KAAK,cAAc;AAAA,MACjB,MAAMU,EAAK,QAAQ;AAAA,MACnB,aAAaA,EAAK;AAAA,MAClB,QAAQ,CAAA;AAAA,MACR,MAAM;AAAA,IAAA;AAAA,EAEV;AAmkBF;","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ImageData, DominantColorResult, DominantColorsOptions } from '../../types/color.types';
|
|
2
|
+
interface DominantColorsInput extends DominantColorsOptions {
|
|
3
|
+
imageData?: ImageData;
|
|
4
|
+
arrayBuffer?: ArrayBuffer;
|
|
5
|
+
maxImageSize?: number;
|
|
6
|
+
}
|
|
7
|
+
export default class DominantColors {
|
|
8
|
+
private imageData;
|
|
9
|
+
private colorCount;
|
|
10
|
+
private maxIterations;
|
|
11
|
+
private tolerance;
|
|
12
|
+
private skipTransparent;
|
|
13
|
+
private maxImageSize;
|
|
14
|
+
constructor({ imageData, arrayBuffer, colorCount, maxIterations, tolerance, skipTransparent, maxImageSize, }: DominantColorsInput);
|
|
15
|
+
private arrayBuffer?;
|
|
16
|
+
private ensureImageData;
|
|
17
|
+
private decodeImageFromArrayBuffer;
|
|
18
|
+
/** Synchronous extraction for ImageData (backward compatibility) */
|
|
19
|
+
extractDominantColors: () => DominantColorResult[];
|
|
20
|
+
/** Asynchronous extraction for ArrayBuffer */
|
|
21
|
+
extractDominantColorsAsync: () => Promise<DominantColorResult[]>;
|
|
22
|
+
private extractPixels;
|
|
23
|
+
private performKMeans;
|
|
24
|
+
private initializeCentroids;
|
|
25
|
+
private findClosestCentroid;
|
|
26
|
+
private calculateDistance;
|
|
27
|
+
private calculateCentroid;
|
|
28
|
+
private hasConverged;
|
|
29
|
+
private calculateColorFrequencies;
|
|
30
|
+
setColorCount: (count: number) => void;
|
|
31
|
+
updateOptions: (options: Partial<DominantColorsOptions>) => void;
|
|
32
|
+
getOptions: () => DominantColorsOptions;
|
|
33
|
+
/** Static method for simplified ArrayBuffer usage */
|
|
34
|
+
static fromArrayBuffer(arrayBuffer: ArrayBuffer, options?: Omit<DominantColorsInput, 'arrayBuffer' | 'imageData'>): Promise<DominantColorResult[]>;
|
|
35
|
+
/** Simplified static method for quick color extraction */
|
|
36
|
+
static extract(arrayBuffer: ArrayBuffer, colorCount?: number): Promise<DominantColorResult[]>;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=dominant-colors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dominant-colors.d.ts","sourceRoot":"","sources":["../../../src/modules/dominant-colors/dominant-colors.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,kBAAkB,CAAA;AAEzB,UAAU,mBAAoB,SAAQ,qBAAqB;IACzD,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,YAAY,CAAQ;gBAEhB,EACV,SAAS,EACT,WAAW,EACX,UAAc,EACd,aAAkB,EAClB,SAAgB,EAChB,eAAsB,EACtB,YAAkB,GACnB,EAAE,mBAAmB;IAiBtB,OAAO,CAAC,WAAW,CAAC,CAAa;YAEnB,eAAe;YAMf,0BAA0B;IA2ExC,oEAAoE;IACpE,qBAAqB,QAAO,mBAAmB,EAAE,CAchD;IAED,8CAA8C;IAC9C,0BAA0B,QAAa,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAgBpE;IAED,OAAO,CAAC,aAAa,CAoBpB;IAED,OAAO,CAAC,aAAa,CA+BpB;IAED,OAAO,CAAC,mBAAmB,CA8B1B;IAED,OAAO,CAAC,mBAAmB,CAgB1B;IAED,OAAO,CAAC,iBAAiB,CAOxB;IAED,OAAO,CAAC,iBAAiB,CAWxB;IAED,OAAO,CAAC,YAAY,CAUnB;IAED,OAAO,CAAC,yBAAyB,CAmBhC;IAED,aAAa,UAAW,MAAM,KAAG,IAAI,CAEpC;IAED,aAAa,YAAa,OAAO,CAAC,qBAAqB,CAAC,KAAG,IAAI,CAO9D;IAED,UAAU,QAAO,qBAAqB,CAKpC;IAEF,qDAAqD;WACxC,eAAe,CAC1B,WAAW,EAAE,WAAW,EACxB,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,aAAa,GAAG,WAAW,CAAM,GACnE,OAAO,CAAC,mBAAmB,EAAE,CAAC;IASjC,0DAA0D;WAC7C,OAAO,CAClB,WAAW,EAAE,WAAW,EACxB,UAAU,GAAE,MAAU,GACrB,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAGlC"}
|