@xivdyetools/core 1.9.0 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -1
- package/dist/data/locales/de.json +1 -1
- package/dist/data/locales/en.json +1 -1
- package/dist/data/locales/fr.json +1 -1
- package/dist/data/locales/ja.json +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/services/ColorService.d.ts +58 -0
- package/dist/services/ColorService.d.ts.map +1 -1
- package/dist/services/ColorService.js +74 -0
- package/dist/services/ColorService.js.map +1 -1
- package/dist/services/color/ColorConverter.d.ts +24 -0
- package/dist/services/color/ColorConverter.d.ts.map +1 -1
- package/dist/services/color/ColorConverter.js +68 -0
- package/dist/services/color/ColorConverter.js.map +1 -1
- package/dist/services/color/RybColorMixer.d.ts +125 -0
- package/dist/services/color/RybColorMixer.d.ts.map +1 -0
- package/dist/services/color/RybColorMixer.js +244 -0
- package/dist/services/color/RybColorMixer.js.map +1 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -8,8 +8,9 @@
|
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
11
|
-
✨ **Color Conversion** - RGB ↔ HSV ↔ Hex with full validation
|
|
11
|
+
✨ **Color Conversion** - RGB ↔ HSV ↔ Hex ↔ LAB ↔ RYB with full validation
|
|
12
12
|
🎨 **136 FFXIV Dyes** - Complete database with RGB/HSV/metadata
|
|
13
|
+
🖌️ **RYB Paint Mixing** - Subtractive color mixing (Blue + Yellow = Green!)
|
|
13
14
|
🎯 **Dye Matching** - Find closest dyes to any color
|
|
14
15
|
🌈 **Color Harmonies** - Triadic, complementary, analogous, and more
|
|
15
16
|
🖼️ **Palette Extraction** - K-means++ clustering for multi-color extraction from images
|
|
@@ -113,6 +114,16 @@ const inverted = ColorService.invert('#FF6B6B');
|
|
|
113
114
|
// Cache management (for memory-constrained environments)
|
|
114
115
|
ColorService.clearCaches();
|
|
115
116
|
const cacheStats = ColorService.getCacheStats();
|
|
117
|
+
|
|
118
|
+
// RYB Subtractive Color Mixing (paint-like mixing)
|
|
119
|
+
// Blue + Yellow = Green (not gray like RGB!)
|
|
120
|
+
const mixed = ColorService.mixColorsRyb('#0000FF', '#FFFF00');
|
|
121
|
+
const partialMix = ColorService.mixColorsRyb('#FF0000', '#FFFF00', 0.3); // 30% yellow
|
|
122
|
+
|
|
123
|
+
// RYB ↔ RGB conversions
|
|
124
|
+
const ryb = ColorService.hexToRyb('#00FF00');
|
|
125
|
+
const rgb = ColorService.rybToRgb(0, 255, 255); // Yellow+Blue = Green
|
|
126
|
+
const hex = ColorService.rybToHex(255, 255, 0); // Red+Yellow = Orange
|
|
116
127
|
```
|
|
117
128
|
|
|
118
129
|
### DyeService
|
|
@@ -274,6 +285,7 @@ import type {
|
|
|
274
285
|
RGB,
|
|
275
286
|
HSV,
|
|
276
287
|
LAB,
|
|
288
|
+
RYB,
|
|
277
289
|
HexColor,
|
|
278
290
|
PriceData,
|
|
279
291
|
CachedData,
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export { CharacterColorService } from './services/CharacterColorService.js';
|
|
|
10
10
|
export type { Dye, LocalizedDye, RGB, HSV, LAB, 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, CharacterColor, CharacterColorMatch, SubRace, Gender, Race, } from './types/index.js';
|
|
11
11
|
export type { HarmonyOptions, HarmonyMatchingAlgorithm } from './services/dye/HarmonyGenerator.js';
|
|
12
12
|
export type { DeltaEFormula } from './services/color/ColorConverter.js';
|
|
13
|
+
export type { RYB } from './services/ColorService.js';
|
|
13
14
|
export { AppError, ErrorCode, createHexColor, NoOpLogger, ConsoleLogger, RACE_SUBRACES, SUBRACE_TO_RACE, COLOR_GRID_DIMENSIONS, } from './types/index.js';
|
|
14
15
|
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';
|
|
15
16
|
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +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;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,YAAY,EACV,GAAG,EACH,YAAY,EACZ,GAAG,EACH,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,EAEb,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,MAAM,EACN,IAAI,GACL,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAGnG,YAAY,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa,EAEb,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,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;AAClF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAuB;AAGnG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
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;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAG5E,YAAY,EACV,GAAG,EACH,YAAY,EACZ,GAAG,EACH,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,EAEb,cAAc,EACd,mBAAmB,EACnB,OAAO,EACP,MAAM,EACN,IAAI,GACL,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAGnG,YAAY,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACxE,YAAY,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa,EAEb,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAG1B,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;AAClF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAuB;AAGnG,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +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;AAO9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;
|
|
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;AAO9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAoD5E,OAAO,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa;AACb,sBAAsB;AACtB,aAAa,EACb,eAAe,EACf,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAE1B,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;AAClF,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAEnG,0DAA0D;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -27,6 +27,7 @@
|
|
|
27
27
|
*/
|
|
28
28
|
import type { RGB, HSV, HexColor, VisionType, LAB } from '../types/index.js';
|
|
29
29
|
import { type DeltaEFormula } from './color/ColorConverter.js';
|
|
30
|
+
import { type RYB } from './color/RybColorMixer.js';
|
|
30
31
|
/**
|
|
31
32
|
* Color conversion and manipulation service (Facade)
|
|
32
33
|
* Per R-4: Delegates to focused service classes for better separation of concerns
|
|
@@ -161,5 +162,62 @@ export declare class ColorService {
|
|
|
161
162
|
* @returns DeltaE value (0 = identical, <1 imperceptible, <3 barely noticeable, >5 clearly different)
|
|
162
163
|
*/
|
|
163
164
|
static getDeltaE(hex1: string, hex2: string, formula?: DeltaEFormula): number;
|
|
165
|
+
/**
|
|
166
|
+
* Convert CIE LAB to RGB
|
|
167
|
+
* @example labToRgb(53.23, 80.11, 67.22) -> { r: 255, g: 0, b: 0 }
|
|
168
|
+
*/
|
|
169
|
+
static labToRgb(L: number, a: number, b: number): RGB;
|
|
170
|
+
/**
|
|
171
|
+
* Convert CIE LAB to hex color
|
|
172
|
+
* @example labToHex(53.23, 80.11, 67.22) -> "#FF0000"
|
|
173
|
+
*/
|
|
174
|
+
static labToHex(L: number, a: number, b: number): HexColor;
|
|
175
|
+
/**
|
|
176
|
+
* Mix two colors using RYB (Red-Yellow-Blue) subtractive color mixing
|
|
177
|
+
*
|
|
178
|
+
* This produces results similar to mixing physical paints:
|
|
179
|
+
* - Blue + Yellow = Green (not gray like in RGB)
|
|
180
|
+
* - Red + Yellow = Orange
|
|
181
|
+
* - Red + Blue = Violet
|
|
182
|
+
*
|
|
183
|
+
* @param hex1 First hex color
|
|
184
|
+
* @param hex2 Second hex color
|
|
185
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
186
|
+
* @returns Mixed color as hex
|
|
187
|
+
*
|
|
188
|
+
* @example
|
|
189
|
+
* // Mix blue and yellow to get green
|
|
190
|
+
* ColorService.mixColorsRyb('#0000FF', '#FFFF00') // Returns greenish color
|
|
191
|
+
*/
|
|
192
|
+
static mixColorsRyb(hex1: string, hex2: string, ratio?: number): HexColor;
|
|
193
|
+
/**
|
|
194
|
+
* Convert RYB (Red-Yellow-Blue) to RGB
|
|
195
|
+
* Uses trilinear interpolation in the Gossett-Chen color cube
|
|
196
|
+
*
|
|
197
|
+
* @param r Red component (0-255)
|
|
198
|
+
* @param y Yellow component (0-255)
|
|
199
|
+
* @param b Blue component (0-255)
|
|
200
|
+
* @returns RGB color
|
|
201
|
+
*/
|
|
202
|
+
static rybToRgb(r: number, y: number, b: number): RGB;
|
|
203
|
+
/**
|
|
204
|
+
* Convert RGB to RYB (Red-Yellow-Blue)
|
|
205
|
+
* Uses Newton-Raphson iterative approximation
|
|
206
|
+
*
|
|
207
|
+
* @param r Red component (0-255)
|
|
208
|
+
* @param g Green component (0-255)
|
|
209
|
+
* @param b Blue component (0-255)
|
|
210
|
+
* @returns RYB color
|
|
211
|
+
*/
|
|
212
|
+
static rgbToRyb(r: number, g: number, b: number): RYB;
|
|
213
|
+
/**
|
|
214
|
+
* Convert hex color to RYB
|
|
215
|
+
*/
|
|
216
|
+
static hexToRyb(hex: string): RYB;
|
|
217
|
+
/**
|
|
218
|
+
* Convert RYB to hex color
|
|
219
|
+
*/
|
|
220
|
+
static rybToHex(r: number, y: number, b: number): HexColor;
|
|
164
221
|
}
|
|
222
|
+
export type { RYB } from './color/RybColorMixer.js';
|
|
165
223
|
//# sourceMappingURL=ColorService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorService.d.ts","sourceRoot":"","sources":["../../src/services/ColorService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAkB,KAAK,aAAa,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"ColorService.d.ts","sourceRoot":"","sources":["../../src/services/ColorService.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,7 @@ import { ColorConverter } from './color/ColorConverter.js';
|
|
|
29
29
|
import { ColorblindnessSimulator } from './color/ColorblindnessSimulator.js';
|
|
30
30
|
import { ColorAccessibility } from './color/ColorAccessibility.js';
|
|
31
31
|
import { ColorManipulator } from './color/ColorManipulator.js';
|
|
32
|
+
import { RybColorMixer } from './color/RybColorMixer.js';
|
|
32
33
|
/**
|
|
33
34
|
* Color conversion and manipulation service (Facade)
|
|
34
35
|
* Per R-4: Delegates to focused service classes for better separation of concerns
|
|
@@ -232,5 +233,78 @@ export class ColorService {
|
|
|
232
233
|
static getDeltaE(hex1, hex2, formula = 'cie76') {
|
|
233
234
|
return ColorConverter.getDeltaE(hex1, hex2, formula);
|
|
234
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* Convert CIE LAB to RGB
|
|
238
|
+
* @example labToRgb(53.23, 80.11, 67.22) -> { r: 255, g: 0, b: 0 }
|
|
239
|
+
*/
|
|
240
|
+
static labToRgb(L, a, b) {
|
|
241
|
+
return ColorConverter.labToRgb(L, a, b);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Convert CIE LAB to hex color
|
|
245
|
+
* @example labToHex(53.23, 80.11, 67.22) -> "#FF0000"
|
|
246
|
+
*/
|
|
247
|
+
static labToHex(L, a, b) {
|
|
248
|
+
return ColorConverter.labToHex(L, a, b);
|
|
249
|
+
}
|
|
250
|
+
// ============================================================================
|
|
251
|
+
// RYB Color Mixing (delegated to RybColorMixer)
|
|
252
|
+
// ============================================================================
|
|
253
|
+
/**
|
|
254
|
+
* Mix two colors using RYB (Red-Yellow-Blue) subtractive color mixing
|
|
255
|
+
*
|
|
256
|
+
* This produces results similar to mixing physical paints:
|
|
257
|
+
* - Blue + Yellow = Green (not gray like in RGB)
|
|
258
|
+
* - Red + Yellow = Orange
|
|
259
|
+
* - Red + Blue = Violet
|
|
260
|
+
*
|
|
261
|
+
* @param hex1 First hex color
|
|
262
|
+
* @param hex2 Second hex color
|
|
263
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
264
|
+
* @returns Mixed color as hex
|
|
265
|
+
*
|
|
266
|
+
* @example
|
|
267
|
+
* // Mix blue and yellow to get green
|
|
268
|
+
* ColorService.mixColorsRyb('#0000FF', '#FFFF00') // Returns greenish color
|
|
269
|
+
*/
|
|
270
|
+
static mixColorsRyb(hex1, hex2, ratio = 0.5) {
|
|
271
|
+
return RybColorMixer.mixColors(hex1, hex2, ratio);
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Convert RYB (Red-Yellow-Blue) to RGB
|
|
275
|
+
* Uses trilinear interpolation in the Gossett-Chen color cube
|
|
276
|
+
*
|
|
277
|
+
* @param r Red component (0-255)
|
|
278
|
+
* @param y Yellow component (0-255)
|
|
279
|
+
* @param b Blue component (0-255)
|
|
280
|
+
* @returns RGB color
|
|
281
|
+
*/
|
|
282
|
+
static rybToRgb(r, y, b) {
|
|
283
|
+
return RybColorMixer.rybToRgb(r, y, b);
|
|
284
|
+
}
|
|
285
|
+
/**
|
|
286
|
+
* Convert RGB to RYB (Red-Yellow-Blue)
|
|
287
|
+
* Uses Newton-Raphson iterative approximation
|
|
288
|
+
*
|
|
289
|
+
* @param r Red component (0-255)
|
|
290
|
+
* @param g Green component (0-255)
|
|
291
|
+
* @param b Blue component (0-255)
|
|
292
|
+
* @returns RYB color
|
|
293
|
+
*/
|
|
294
|
+
static rgbToRyb(r, g, b) {
|
|
295
|
+
return RybColorMixer.rgbToRyb(r, g, b);
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Convert hex color to RYB
|
|
299
|
+
*/
|
|
300
|
+
static hexToRyb(hex) {
|
|
301
|
+
return RybColorMixer.hexToRyb(hex);
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Convert RYB to hex color
|
|
305
|
+
*/
|
|
306
|
+
static rybToHex(r, y, b) {
|
|
307
|
+
return RybColorMixer.rybToHex(r, y, b);
|
|
308
|
+
}
|
|
235
309
|
}
|
|
236
310
|
//# sourceMappingURL=ColorService.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorService.js","sourceRoot":"","sources":["../../src/services/ColorService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,EAAE,cAAc,EAAsB,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"ColorService.js","sourceRoot":"","sources":["../../src/services/ColorService.ts"],"names":[],"mappings":"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"}
|
|
@@ -176,6 +176,30 @@ export declare class ColorConverter {
|
|
|
176
176
|
* Static method: Convert hex to LAB using default instance
|
|
177
177
|
*/
|
|
178
178
|
static hexToLab(hex: string): LAB;
|
|
179
|
+
/**
|
|
180
|
+
* Convert CIE XYZ to RGB
|
|
181
|
+
* Uses sRGB matrix and gamma companding (D65 illuminant)
|
|
182
|
+
* @internal
|
|
183
|
+
*/
|
|
184
|
+
private xyzToRgb;
|
|
185
|
+
/**
|
|
186
|
+
* Convert CIE LAB to RGB
|
|
187
|
+
* @example labToRgb(53.23, 80.11, 67.22) -> { r: 255, g: 0, b: 0 }
|
|
188
|
+
*/
|
|
189
|
+
labToRgb(L: number, a: number, b: number): RGB;
|
|
190
|
+
/**
|
|
191
|
+
* Static method: Convert LAB to RGB using default instance
|
|
192
|
+
*/
|
|
193
|
+
static labToRgb(L: number, a: number, b: number): RGB;
|
|
194
|
+
/**
|
|
195
|
+
* Convert CIE LAB to hex color
|
|
196
|
+
* @example labToHex(53.23, 80.11, 67.22) -> "#FF0000"
|
|
197
|
+
*/
|
|
198
|
+
labToHex(L: number, a: number, b: number): HexColor;
|
|
199
|
+
/**
|
|
200
|
+
* Static method: Convert LAB to hex using default instance
|
|
201
|
+
*/
|
|
202
|
+
static labToHex(L: number, a: number, b: number): HexColor;
|
|
179
203
|
/**
|
|
180
204
|
* Calculate DeltaE (CIE76) between two LAB colors
|
|
181
205
|
* Simple Euclidean distance in LAB space
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorConverter.d.ts","sourceRoot":"","sources":["../../../src/services/color/ColorConverter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ColorConverter.d.ts","sourceRoot":"","sources":["../../../src/services/color/ColorConverter.ts"],"names":[],"mappings":"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"}
|
|
@@ -429,6 +429,74 @@ export class ColorConverter {
|
|
|
429
429
|
static hexToLab(hex) {
|
|
430
430
|
return this.getDefault().hexToLab(hex);
|
|
431
431
|
}
|
|
432
|
+
/**
|
|
433
|
+
* Convert CIE XYZ to RGB
|
|
434
|
+
* Uses sRGB matrix and gamma companding (D65 illuminant)
|
|
435
|
+
* @internal
|
|
436
|
+
*/
|
|
437
|
+
xyzToRgb(x, y, z) {
|
|
438
|
+
// XYZ to sRGB matrix (D65 illuminant)
|
|
439
|
+
let rLinear = x * 3.2404542 + y * -1.5371385 + z * -0.4985314;
|
|
440
|
+
let gLinear = x * -0.969266 + y * 1.8760108 + z * 0.041556;
|
|
441
|
+
let bLinear = x * 0.0556434 + y * -0.2040259 + z * 1.0572252;
|
|
442
|
+
// sRGB gamma companding
|
|
443
|
+
rLinear =
|
|
444
|
+
rLinear > 0.0031308 ? 1.055 * Math.pow(rLinear, 1 / 2.4) - 0.055 : 12.92 * rLinear;
|
|
445
|
+
gLinear =
|
|
446
|
+
gLinear > 0.0031308 ? 1.055 * Math.pow(gLinear, 1 / 2.4) - 0.055 : 12.92 * gLinear;
|
|
447
|
+
bLinear =
|
|
448
|
+
bLinear > 0.0031308 ? 1.055 * Math.pow(bLinear, 1 / 2.4) - 0.055 : 12.92 * bLinear;
|
|
449
|
+
return {
|
|
450
|
+
r: clamp(Math.round(rLinear * 255), RGB_MIN, RGB_MAX),
|
|
451
|
+
g: clamp(Math.round(gLinear * 255), RGB_MIN, RGB_MAX),
|
|
452
|
+
b: clamp(Math.round(bLinear * 255), RGB_MIN, RGB_MAX),
|
|
453
|
+
};
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Convert CIE LAB to RGB
|
|
457
|
+
* @example labToRgb(53.23, 80.11, 67.22) -> { r: 255, g: 0, b: 0 }
|
|
458
|
+
*/
|
|
459
|
+
labToRgb(L, a, b) {
|
|
460
|
+
// D65 reference white point
|
|
461
|
+
const refX = 0.95047;
|
|
462
|
+
const refY = 1.0;
|
|
463
|
+
const refZ = 1.08883;
|
|
464
|
+
// LAB to XYZ
|
|
465
|
+
let y = (L + 16) / 116;
|
|
466
|
+
let x = a / 500 + y;
|
|
467
|
+
let z = y - b / 200;
|
|
468
|
+
// Reverse LAB transformation
|
|
469
|
+
const epsilon = 0.008856; // (6/29)^3
|
|
470
|
+
const kappa = 903.3; // (29/3)^3
|
|
471
|
+
const x3 = x * x * x;
|
|
472
|
+
const y3 = y * y * y;
|
|
473
|
+
const z3 = z * z * z;
|
|
474
|
+
x = x3 > epsilon ? x3 : (116 * x - 16) / kappa;
|
|
475
|
+
y = L > kappa * epsilon ? y3 : L / kappa;
|
|
476
|
+
z = z3 > epsilon ? z3 : (116 * z - 16) / kappa;
|
|
477
|
+
// Apply reference white
|
|
478
|
+
return this.xyzToRgb(x * refX, y * refY, z * refZ);
|
|
479
|
+
}
|
|
480
|
+
/**
|
|
481
|
+
* Static method: Convert LAB to RGB using default instance
|
|
482
|
+
*/
|
|
483
|
+
static labToRgb(L, a, b) {
|
|
484
|
+
return this.getDefault().labToRgb(L, a, b);
|
|
485
|
+
}
|
|
486
|
+
/**
|
|
487
|
+
* Convert CIE LAB to hex color
|
|
488
|
+
* @example labToHex(53.23, 80.11, 67.22) -> "#FF0000"
|
|
489
|
+
*/
|
|
490
|
+
labToHex(L, a, b) {
|
|
491
|
+
const rgb = this.labToRgb(L, a, b);
|
|
492
|
+
return this.rgbToHex(rgb.r, rgb.g, rgb.b);
|
|
493
|
+
}
|
|
494
|
+
/**
|
|
495
|
+
* Static method: Convert LAB to hex using default instance
|
|
496
|
+
*/
|
|
497
|
+
static labToHex(L, a, b) {
|
|
498
|
+
return this.getDefault().labToHex(L, a, b);
|
|
499
|
+
}
|
|
432
500
|
// ============================================================================
|
|
433
501
|
// DeltaE Color Difference Calculations
|
|
434
502
|
// ============================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColorConverter.js","sourceRoot":"","sources":["../../../src/services/color/ColorConverter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ColorConverter.js","sourceRoot":"","sources":["../../../src/services/color/ColorConverter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAQ3D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,KAAK,EACL,KAAK,EACL,eAAe,EACf,UAAU,EACV,UAAU,EACV,QAAQ,GACT,MAAM,sBAAsB,CAAC;AAS9B;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IAazB;;;OAGG;IACH,YAAY,SAA+B,EAAE;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,aAAa,GAAG,IAAI,QAAQ,CAAc,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,QAAQ,CAAmB,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,IAAI,QAAQ,CAAc,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,QAAQ,CAAc,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,QAAQ,CAAc,SAAS,CAAC,CAAC;QAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,QAAQ,CAAc,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACK,MAAM,CAAC,UAAU;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,WAAW;QACT,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,aAAa;QAQX,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;YACjC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;YACjC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;YACjC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;YACjC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;YACjC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI;SAClC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa;QAQlB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,EAAE,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,GAAW;QAClB,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,iBAAiB,EAC3B,sBAAsB,GAAG,8BAA8B,EACvD,OAAO,CACR,CAAC;QACJ,CAAC;QAED,8BAA8B;QAC9B,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,WAAW,GAAG,WAAW;iBACtB,KAAK,CAAC,EAAE,CAAC;iBACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;iBACjB,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,WAAW,CAAC;QAE7B,cAAc;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,kDAAkD;QAClD,IAAI,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,aAAa,GAAG,aAAa;iBAC1B,KAAK,CAAC,EAAE,CAAC;iBACT,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;iBAC1B,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QAED,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACtD,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC3B,eAAe;QACf,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACtC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,iBAAiB,EAC3B,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAClE,OAAO,CACR,CAAC;QACJ,CAAC;QAED,mBAAmB;QACnB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAElC,cAAc;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,KAAa,EAAU,EAAE;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC3C,OAAO,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5C,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,cAAc,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QAClF,eAAe;QACf,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACtC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,iBAAiB,EAC3B,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5C,OAAO,CACR,CAAC;QACJ,CAAC;QAED,mBAAmB;QACnB,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAElC,cAAc;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,qDAAqD;QACrD,6BAA6B;QAC7B,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;QAEtB,kCAAkC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QAC1C,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC;QAExB,+BAA+B;QAC/B,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QAEpB,uBAAuB;QACvB,MAAM,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAE9C,gBAAgB;QAChB,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAChB,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBAClB,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;YAC/D,CAAC;iBAAM,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;gBACzB,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAClE,eAAe;QACf,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;OAKG;IACK,YAAY,CAAC,CAAS;QAC5B,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACtC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,iBAAiB,EAC3B,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAC5C,OAAO,CACR,CAAC;QACJ,CAAC;QAED,wDAAwD;QACxD,qEAAqE;QACrE,mEAAmE;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEzC,gEAAgE;QAChE,sEAAsE;QACtE,MAAM,QAAQ,GAAG,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAE1E,cAAc;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,6CAA6C;QAC7C,MAAM,KAAK,GAAG,WAAW,GAAG,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;QACtB,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC;QAEtB,MAAM,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;QACxB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAEpB,IAAI,KAAK,GAAG,CAAC,EACX,KAAK,GAAG,CAAC,EACT,KAAK,GAAG,CAAC,CAAC;QAEZ,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YAC5B,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACnC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACnC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACnC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACnC,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;aAAM,CAAC;YACN,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpC,CAAC;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QAExC,MAAM,MAAM,GAAG;YACb,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YAC7B,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YAC7B,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;SAC9B,CAAC;QACF,eAAe;QACf,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,GAAW;QAClB,8BAA8B;QAC9B,IAAI,WAAW,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,WAAW,GAAG,WAAW;iBACtB,KAAK,CAAC,EAAE,CAAC;iBACT,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;iBACjB,IAAI,CAAC,EAAE,CAAC,CAAC;QACd,CAAC;QACD,MAAM,QAAQ,GAAG,WAAW,CAAC;QAE7B,cAAc;QACd,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,eAAe;QACf,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,GAAW;QACtB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,GAAW;QAC7B,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,IAAY,EAAE,IAAY;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEjC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAE3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAY,EAAE,IAAY;QAChD,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,+EAA+E;IAC/E,6BAA6B;IAC7B,+EAA+E;IAE/E;;;;OAIG;IACK,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC9C,kDAAkD;QAClD,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC;QACtB,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC;QACtB,IAAI,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC;QAEtB,4CAA4C;QAC5C,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;QACzF,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;QACzF,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC,GAAG,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;QAEzF,sCAAsC;QACtC,OAAO;YACL,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS;YAClE,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ;YACjE,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS;SAClE,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACtC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,QAAQ,CAChB,SAAS,CAAC,iBAAiB,EAC3B,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,EAClE,OAAO,CACR,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,4BAA4B;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC;QACrB,MAAM,IAAI,GAAG,GAAG,CAAC;QACjB,MAAM,IAAI,GAAG,OAAO,CAAC;QAErB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEnC,+BAA+B;QAC/B,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;QAErB,2EAA2E;QAC3E,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,WAAW;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW;QAEhC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC9D,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAC9D,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QAE9D,MAAM,MAAM,GAAQ;YAClB,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACzB,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3B,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,GAAW;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACK,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC9C,sCAAsC;QACtC,IAAI,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC;QAC9D,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,QAAQ,CAAC;QAC3D,IAAI,OAAO,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC;QAE7D,wBAAwB;QACxB,OAAO;YACL,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;QACrF,OAAO;YACL,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;QACrF,OAAO;YACL,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC;QAErF,OAAO;YACL,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACrD,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;YACrD,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;SACtD,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACtC,4BAA4B;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC;QACrB,MAAM,IAAI,GAAG,GAAG,CAAC;QACjB,MAAM,IAAI,GAAG,OAAO,CAAC;QAErB,aAAa;QACb,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;QAEpB,6BAA6B;QAC7B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,WAAW;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,WAAW;QAEhC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErB,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;QAC/C,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QACzC,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;QAE/C,wBAAwB;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACnC,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;QAC7C,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC;IAED,+EAA+E;IAC/E,uCAAuC;IACvC,+EAA+E;IAE/E;;;;;OAKG;IACH,WAAW,CAAC,IAAS,EAAE,IAAS;QAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3B,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,IAAS,EAAE,IAAS;QACrC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACH,aAAa,CAAC,IAAS,EAAE,IAAS;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,EACf,EAAE,GAAG,IAAI,CAAC,CAAC,EACX,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QACd,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,EACf,EAAE,GAAG,IAAI,CAAC,CAAC,EACX,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAEd,2DAA2D;QAC3D,MAAM,EAAE,GAAG,CAAC,EACV,EAAE,GAAG,CAAC,EACN,EAAE,GAAG,CAAC,CAAC;QAET,sCAAsC;QACtC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QACxC,MAAM,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QAE1B,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEzF,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAEzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;QAE3C,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAEnC,mBAAmB;QACnB,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC;QACpB,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAEtB,IAAI,GAAW,CAAC;QAChB,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,GAAG,GAAG,CAAC,CAAC;QACV,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YACtC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QAClB,CAAC;aAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;YAC3B,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;QACxB,CAAC;QAED,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QAEvE,iCAAiC;QACjC,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACzB,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,EAAU,CAAC;QACf,IAAI,GAAG,GAAG,GAAG,KAAK,CAAC,EAAE,CAAC;YACpB,EAAE,GAAG,GAAG,GAAG,GAAG,CAAC;QACjB,CAAC;aAAM,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;YACtC,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;aAAM,IAAI,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC;YAC3B,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,EAAE,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,CAAC,GACL,CAAC;YACD,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAC5C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YACzC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC;YAC/C,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC;QAElD,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAE5D,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhF,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACrF,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,GAAG,CAAC,CAAC;QAE9B,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC;QAExD,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAClB,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAC7C,CAAC;QAEF,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACK,QAAQ,CAAC,EAAU,EAAE,EAAU;QACrC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAS,EAAE,IAAS;QACvC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,IAAY,EAAE,IAAY,EAAE,UAAyB,OAAO;QACpE,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEjC,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/F,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAY,EAAE,IAAY,EAAE,UAAyB,OAAO;QAC3E,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;;AAjvBD,0DAA0D;AAC1D,sFAAsF;AACvE,8BAAe,GAAmB,IAAI,cAAc,EAAE,CAAC"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RYB (Red-Yellow-Blue) Subtractive Color Mixing
|
|
3
|
+
*
|
|
4
|
+
* Implements the Gossett-Chen algorithm from their 2006 paper
|
|
5
|
+
* "Paint Inspired Color Mixing and Compositing for Visualization"
|
|
6
|
+
*
|
|
7
|
+
* Uses trilinear interpolation in a 3D color cube to convert between
|
|
8
|
+
* RYB and RGB color spaces, enabling intuitive "paint-like" color mixing.
|
|
9
|
+
*
|
|
10
|
+
* Key insight: In RYB (subtractive mixing):
|
|
11
|
+
* - Red + Yellow = Orange
|
|
12
|
+
* - Yellow + Blue = Green
|
|
13
|
+
* - Red + Blue = Violet
|
|
14
|
+
*
|
|
15
|
+
* This differs from RGB (additive mixing) where Blue + Yellow = Gray.
|
|
16
|
+
*
|
|
17
|
+
* @module services/color/RybColorMixer
|
|
18
|
+
*/
|
|
19
|
+
import type { RGB, HexColor } from '../../types/index.js';
|
|
20
|
+
/**
|
|
21
|
+
* RYB color type (Red, Yellow, Blue) with values 0-255
|
|
22
|
+
*/
|
|
23
|
+
export interface RYB {
|
|
24
|
+
r: number;
|
|
25
|
+
y: number;
|
|
26
|
+
b: number;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* RYB Color Mixer
|
|
30
|
+
*
|
|
31
|
+
* Provides methods for RYB ↔ RGB conversion and paint-like color mixing.
|
|
32
|
+
*/
|
|
33
|
+
export declare class RybColorMixer {
|
|
34
|
+
/**
|
|
35
|
+
* Mix two colors using RYB subtractive color mixing
|
|
36
|
+
*
|
|
37
|
+
* This produces results similar to mixing physical paints:
|
|
38
|
+
* - Blue + Yellow = Green (not gray like in RGB)
|
|
39
|
+
* - Red + Yellow = Orange
|
|
40
|
+
* - Red + Blue = Violet
|
|
41
|
+
*
|
|
42
|
+
* @param hex1 First hex color
|
|
43
|
+
* @param hex2 Second hex color
|
|
44
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
45
|
+
* @returns Mixed color as hex
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* // Mix blue and yellow to get green
|
|
49
|
+
* RybColorMixer.mixColors('#0000FF', '#FFFF00') // Returns greenish color
|
|
50
|
+
*/
|
|
51
|
+
static mixColors(hex1: string, hex2: string, ratio?: number): HexColor;
|
|
52
|
+
/**
|
|
53
|
+
* Convert RYB to RGB using trilinear interpolation
|
|
54
|
+
*
|
|
55
|
+
* Uses the Gossett-Chen cube corner values to interpolate
|
|
56
|
+
* any point within the RYB color space to its RGB equivalent.
|
|
57
|
+
*
|
|
58
|
+
* @param r Red component (0-255)
|
|
59
|
+
* @param y Yellow component (0-255)
|
|
60
|
+
* @param b Blue component (0-255)
|
|
61
|
+
* @returns RGB color
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* // Convert RYB yellow+blue (green) to RGB
|
|
65
|
+
* RybColorMixer.rybToRgb(0, 255, 255) // Returns { r: 0, g: 255, b: 89 }
|
|
66
|
+
*/
|
|
67
|
+
static rybToRgb(r: number, y: number, b: number): RGB;
|
|
68
|
+
/**
|
|
69
|
+
* Convert RGB to RYB using Newton-Raphson iterative approximation
|
|
70
|
+
*
|
|
71
|
+
* Since RYB→RGB is non-linear, there's no closed-form inverse.
|
|
72
|
+
* This method uses gradient descent to find the RYB values that
|
|
73
|
+
* produce the target RGB color.
|
|
74
|
+
*
|
|
75
|
+
* @param r Red component (0-255)
|
|
76
|
+
* @param g Green component (0-255)
|
|
77
|
+
* @param b Blue component (0-255)
|
|
78
|
+
* @returns RYB color
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* // Convert RGB green to RYB
|
|
82
|
+
* RybColorMixer.rgbToRyb(0, 255, 0) // Returns approximately { r: 0, y: ~200, b: ~200 }
|
|
83
|
+
*/
|
|
84
|
+
static rgbToRyb(r: number, g: number, b: number): RYB;
|
|
85
|
+
/**
|
|
86
|
+
* Convert hex color to RYB
|
|
87
|
+
*
|
|
88
|
+
* @param hex Hex color string
|
|
89
|
+
* @returns RYB color
|
|
90
|
+
*/
|
|
91
|
+
static hexToRyb(hex: string): RYB;
|
|
92
|
+
/**
|
|
93
|
+
* Convert RYB to hex color
|
|
94
|
+
*
|
|
95
|
+
* @param r Red component (0-255)
|
|
96
|
+
* @param y Yellow component (0-255)
|
|
97
|
+
* @param b Blue component (0-255)
|
|
98
|
+
* @returns Hex color string
|
|
99
|
+
*/
|
|
100
|
+
static rybToHex(r: number, y: number, b: number): HexColor;
|
|
101
|
+
/**
|
|
102
|
+
* Trilinear interpolation within the RYB color cube
|
|
103
|
+
*
|
|
104
|
+
* Given normalized RYB coordinates (0-1), interpolates between
|
|
105
|
+
* the 8 corner RGB values to produce the output RGB color.
|
|
106
|
+
*
|
|
107
|
+
* @param r Normalized red (0-1)
|
|
108
|
+
* @param y Normalized yellow (0-1)
|
|
109
|
+
* @param b Normalized blue (0-1)
|
|
110
|
+
* @returns Normalized RGB (0-1)
|
|
111
|
+
* @internal
|
|
112
|
+
*/
|
|
113
|
+
private static trilinearInterpolate;
|
|
114
|
+
/**
|
|
115
|
+
* Linear interpolation between two RGB colors
|
|
116
|
+
*
|
|
117
|
+
* @param a First color
|
|
118
|
+
* @param b Second color
|
|
119
|
+
* @param t Interpolation factor (0 = a, 1 = b)
|
|
120
|
+
* @returns Interpolated color
|
|
121
|
+
* @internal
|
|
122
|
+
*/
|
|
123
|
+
private static lerpRgb;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=RybColorMixer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RybColorMixer.d.ts","sourceRoot":"","sources":["../../../src/services/color/RybColorMixer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAI1D;;GAEG;AACH,MAAM,WAAW,GAAG;IAClB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAgCD;;;;GAIG;AACH,qBAAa,aAAa;IAKxB;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAY,GAAG,QAAQ;IAsB3E;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG;IAerD;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,GAAG;IAqDrD;;;;;OAKG;IACH,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG;IAKjC;;;;;;;OAOG;IACH,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,QAAQ;IAS1D;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,MAAM,CAAC,oBAAoB;IAyBnC;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO;CAOvB"}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RYB (Red-Yellow-Blue) Subtractive Color Mixing
|
|
3
|
+
*
|
|
4
|
+
* Implements the Gossett-Chen algorithm from their 2006 paper
|
|
5
|
+
* "Paint Inspired Color Mixing and Compositing for Visualization"
|
|
6
|
+
*
|
|
7
|
+
* Uses trilinear interpolation in a 3D color cube to convert between
|
|
8
|
+
* RYB and RGB color spaces, enabling intuitive "paint-like" color mixing.
|
|
9
|
+
*
|
|
10
|
+
* Key insight: In RYB (subtractive mixing):
|
|
11
|
+
* - Red + Yellow = Orange
|
|
12
|
+
* - Yellow + Blue = Green
|
|
13
|
+
* - Red + Blue = Violet
|
|
14
|
+
*
|
|
15
|
+
* This differs from RGB (additive mixing) where Blue + Yellow = Gray.
|
|
16
|
+
*
|
|
17
|
+
* @module services/color/RybColorMixer
|
|
18
|
+
*/
|
|
19
|
+
import { clamp } from '../../utils/index.js';
|
|
20
|
+
import { ColorConverter } from './ColorConverter.js';
|
|
21
|
+
/**
|
|
22
|
+
* RYB Cube Corner Values (Gossett-Chen)
|
|
23
|
+
*
|
|
24
|
+
* These define the 8 corners of the RYB color cube and their
|
|
25
|
+
* corresponding RGB values. The cube is indexed by [R,Y,B] coordinates.
|
|
26
|
+
*
|
|
27
|
+
* The blue corner is adjusted (r=0.165) to shift the hue and prevent
|
|
28
|
+
* "flat spots" in the spectrum. Similarly, green and violet primaries
|
|
29
|
+
* are tuned for more intuitive color mixing.
|
|
30
|
+
*/
|
|
31
|
+
const RYB_CORNERS = {
|
|
32
|
+
'0,0,0': { r: 0.0, g: 0.0, b: 0.0 }, // Black
|
|
33
|
+
'1,0,0': { r: 1.0, g: 0.0, b: 0.0 }, // Red
|
|
34
|
+
'0,1,0': { r: 1.0, g: 1.0, b: 0.0 }, // Yellow
|
|
35
|
+
'0,0,1': { r: 0.165, g: 0.0, b: 1.0 }, // Blue (hue-shifted)
|
|
36
|
+
'1,1,0': { r: 1.0, g: 0.647, b: 0.0 }, // Orange (R+Y)
|
|
37
|
+
'1,0,1': { r: 0.757, g: 0.0, b: 1.0 }, // Violet (R+B)
|
|
38
|
+
'0,1,1': { r: 0.0, g: 1.0, b: 0.349 }, // Green (Y+B)
|
|
39
|
+
'1,1,1': { r: 1.0, g: 1.0, b: 1.0 }, // White
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* RYB Color Mixer
|
|
43
|
+
*
|
|
44
|
+
* Provides methods for RYB ↔ RGB conversion and paint-like color mixing.
|
|
45
|
+
*/
|
|
46
|
+
export class RybColorMixer {
|
|
47
|
+
// ============================================================================
|
|
48
|
+
// Public API
|
|
49
|
+
// ============================================================================
|
|
50
|
+
/**
|
|
51
|
+
* Mix two colors using RYB subtractive color mixing
|
|
52
|
+
*
|
|
53
|
+
* This produces results similar to mixing physical paints:
|
|
54
|
+
* - Blue + Yellow = Green (not gray like in RGB)
|
|
55
|
+
* - Red + Yellow = Orange
|
|
56
|
+
* - Red + Blue = Violet
|
|
57
|
+
*
|
|
58
|
+
* @param hex1 First hex color
|
|
59
|
+
* @param hex2 Second hex color
|
|
60
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
61
|
+
* @returns Mixed color as hex
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* // Mix blue and yellow to get green
|
|
65
|
+
* RybColorMixer.mixColors('#0000FF', '#FFFF00') // Returns greenish color
|
|
66
|
+
*/
|
|
67
|
+
static mixColors(hex1, hex2, ratio = 0.5) {
|
|
68
|
+
ratio = clamp(ratio, 0, 1);
|
|
69
|
+
// Convert hex → RGB → RYB
|
|
70
|
+
const rgb1 = ColorConverter.hexToRgb(hex1);
|
|
71
|
+
const rgb2 = ColorConverter.hexToRgb(hex2);
|
|
72
|
+
const ryb1 = this.rgbToRyb(rgb1.r, rgb1.g, rgb1.b);
|
|
73
|
+
const ryb2 = this.rgbToRyb(rgb2.r, rgb2.g, rgb2.b);
|
|
74
|
+
// Linear interpolation in RYB space
|
|
75
|
+
const mixedRyb = {
|
|
76
|
+
r: Math.round(ryb1.r + (ryb2.r - ryb1.r) * ratio),
|
|
77
|
+
y: Math.round(ryb1.y + (ryb2.y - ryb1.y) * ratio),
|
|
78
|
+
b: Math.round(ryb1.b + (ryb2.b - ryb1.b) * ratio),
|
|
79
|
+
};
|
|
80
|
+
// Convert RYB → RGB → hex
|
|
81
|
+
const mixedRgb = this.rybToRgb(mixedRyb.r, mixedRyb.y, mixedRyb.b);
|
|
82
|
+
return ColorConverter.rgbToHex(mixedRgb.r, mixedRgb.g, mixedRgb.b);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Convert RYB to RGB using trilinear interpolation
|
|
86
|
+
*
|
|
87
|
+
* Uses the Gossett-Chen cube corner values to interpolate
|
|
88
|
+
* any point within the RYB color space to its RGB equivalent.
|
|
89
|
+
*
|
|
90
|
+
* @param r Red component (0-255)
|
|
91
|
+
* @param y Yellow component (0-255)
|
|
92
|
+
* @param b Blue component (0-255)
|
|
93
|
+
* @returns RGB color
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* // Convert RYB yellow+blue (green) to RGB
|
|
97
|
+
* RybColorMixer.rybToRgb(0, 255, 255) // Returns { r: 0, g: 255, b: 89 }
|
|
98
|
+
*/
|
|
99
|
+
static rybToRgb(r, y, b) {
|
|
100
|
+
// Normalize to 0-1 range
|
|
101
|
+
const rNorm = clamp(r / 255, 0, 1);
|
|
102
|
+
const yNorm = clamp(y / 255, 0, 1);
|
|
103
|
+
const bNorm = clamp(b / 255, 0, 1);
|
|
104
|
+
const result = this.trilinearInterpolate(rNorm, yNorm, bNorm);
|
|
105
|
+
return {
|
|
106
|
+
r: Math.round(clamp(result.r * 255, 0, 255)),
|
|
107
|
+
g: Math.round(clamp(result.g * 255, 0, 255)),
|
|
108
|
+
b: Math.round(clamp(result.b * 255, 0, 255)),
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Convert RGB to RYB using Newton-Raphson iterative approximation
|
|
113
|
+
*
|
|
114
|
+
* Since RYB→RGB is non-linear, there's no closed-form inverse.
|
|
115
|
+
* This method uses gradient descent to find the RYB values that
|
|
116
|
+
* produce the target RGB color.
|
|
117
|
+
*
|
|
118
|
+
* @param r Red component (0-255)
|
|
119
|
+
* @param g Green component (0-255)
|
|
120
|
+
* @param b Blue component (0-255)
|
|
121
|
+
* @returns RYB color
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* // Convert RGB green to RYB
|
|
125
|
+
* RybColorMixer.rgbToRyb(0, 255, 0) // Returns approximately { r: 0, y: ~200, b: ~200 }
|
|
126
|
+
*/
|
|
127
|
+
static rgbToRyb(r, g, b) {
|
|
128
|
+
// Normalize target RGB to 0-1
|
|
129
|
+
const targetR = clamp(r / 255, 0, 1);
|
|
130
|
+
const targetG = clamp(g / 255, 0, 1);
|
|
131
|
+
const targetB = clamp(b / 255, 0, 1);
|
|
132
|
+
// Initial guess: use input values as starting point
|
|
133
|
+
let rybR = targetR;
|
|
134
|
+
let rybY = targetG;
|
|
135
|
+
let rybB = targetB;
|
|
136
|
+
// Iterative refinement using gradient descent
|
|
137
|
+
const maxIterations = 50;
|
|
138
|
+
const tolerance = 0.001;
|
|
139
|
+
const learningRate = 0.5;
|
|
140
|
+
for (let i = 0; i < maxIterations; i++) {
|
|
141
|
+
// Convert current RYB guess to RGB
|
|
142
|
+
const currentRgb = this.trilinearInterpolate(rybR, rybY, rybB);
|
|
143
|
+
// Calculate error
|
|
144
|
+
const errorR = targetR - currentRgb.r;
|
|
145
|
+
const errorG = targetG - currentRgb.g;
|
|
146
|
+
const errorB = targetB - currentRgb.b;
|
|
147
|
+
// Check convergence
|
|
148
|
+
if (Math.abs(errorR) < tolerance &&
|
|
149
|
+
Math.abs(errorG) < tolerance &&
|
|
150
|
+
Math.abs(errorB) < tolerance) {
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
// Gradient descent step
|
|
154
|
+
// The mapping from RYB to RGB is approximately:
|
|
155
|
+
// - Increasing RYB Red increases RGB Red
|
|
156
|
+
// - Increasing RYB Yellow increases RGB Red and Green
|
|
157
|
+
// - Increasing RYB Blue increases RGB Blue
|
|
158
|
+
// Update RYB values based on error (simplified Jacobian)
|
|
159
|
+
rybR = clamp(rybR + errorR * learningRate, 0, 1);
|
|
160
|
+
rybY = clamp(rybY + errorG * learningRate, 0, 1);
|
|
161
|
+
rybB = clamp(rybB + errorB * learningRate, 0, 1);
|
|
162
|
+
}
|
|
163
|
+
return {
|
|
164
|
+
r: Math.round(rybR * 255),
|
|
165
|
+
y: Math.round(rybY * 255),
|
|
166
|
+
b: Math.round(rybB * 255),
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Convert hex color to RYB
|
|
171
|
+
*
|
|
172
|
+
* @param hex Hex color string
|
|
173
|
+
* @returns RYB color
|
|
174
|
+
*/
|
|
175
|
+
static hexToRyb(hex) {
|
|
176
|
+
const rgb = ColorConverter.hexToRgb(hex);
|
|
177
|
+
return this.rgbToRyb(rgb.r, rgb.g, rgb.b);
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Convert RYB to hex color
|
|
181
|
+
*
|
|
182
|
+
* @param r Red component (0-255)
|
|
183
|
+
* @param y Yellow component (0-255)
|
|
184
|
+
* @param b Blue component (0-255)
|
|
185
|
+
* @returns Hex color string
|
|
186
|
+
*/
|
|
187
|
+
static rybToHex(r, y, b) {
|
|
188
|
+
const rgb = this.rybToRgb(r, y, b);
|
|
189
|
+
return ColorConverter.rgbToHex(rgb.r, rgb.g, rgb.b);
|
|
190
|
+
}
|
|
191
|
+
// ============================================================================
|
|
192
|
+
// Private Helpers
|
|
193
|
+
// ============================================================================
|
|
194
|
+
/**
|
|
195
|
+
* Trilinear interpolation within the RYB color cube
|
|
196
|
+
*
|
|
197
|
+
* Given normalized RYB coordinates (0-1), interpolates between
|
|
198
|
+
* the 8 corner RGB values to produce the output RGB color.
|
|
199
|
+
*
|
|
200
|
+
* @param r Normalized red (0-1)
|
|
201
|
+
* @param y Normalized yellow (0-1)
|
|
202
|
+
* @param b Normalized blue (0-1)
|
|
203
|
+
* @returns Normalized RGB (0-1)
|
|
204
|
+
* @internal
|
|
205
|
+
*/
|
|
206
|
+
static trilinearInterpolate(r, y, b) {
|
|
207
|
+
// Get the 8 corner values
|
|
208
|
+
const c000 = RYB_CORNERS['0,0,0'];
|
|
209
|
+
const c100 = RYB_CORNERS['1,0,0'];
|
|
210
|
+
const c010 = RYB_CORNERS['0,1,0'];
|
|
211
|
+
const c110 = RYB_CORNERS['1,1,0'];
|
|
212
|
+
const c001 = RYB_CORNERS['0,0,1'];
|
|
213
|
+
const c101 = RYB_CORNERS['1,0,1'];
|
|
214
|
+
const c011 = RYB_CORNERS['0,1,1'];
|
|
215
|
+
const c111 = RYB_CORNERS['1,1,1'];
|
|
216
|
+
// Interpolate along R axis (between r=0 and r=1 planes)
|
|
217
|
+
const c00 = this.lerpRgb(c000, c100, r);
|
|
218
|
+
const c01 = this.lerpRgb(c001, c101, r);
|
|
219
|
+
const c10 = this.lerpRgb(c010, c110, r);
|
|
220
|
+
const c11 = this.lerpRgb(c011, c111, r);
|
|
221
|
+
// Interpolate along Y axis
|
|
222
|
+
const c0 = this.lerpRgb(c00, c10, y);
|
|
223
|
+
const c1 = this.lerpRgb(c01, c11, y);
|
|
224
|
+
// Interpolate along B axis (final result)
|
|
225
|
+
return this.lerpRgb(c0, c1, b);
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Linear interpolation between two RGB colors
|
|
229
|
+
*
|
|
230
|
+
* @param a First color
|
|
231
|
+
* @param b Second color
|
|
232
|
+
* @param t Interpolation factor (0 = a, 1 = b)
|
|
233
|
+
* @returns Interpolated color
|
|
234
|
+
* @internal
|
|
235
|
+
*/
|
|
236
|
+
static lerpRgb(a, b, t) {
|
|
237
|
+
return {
|
|
238
|
+
r: a.r + (b.r - a.r) * t,
|
|
239
|
+
g: a.g + (b.g - a.g) * t,
|
|
240
|
+
b: a.b + (b.b - a.b) * t,
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
//# sourceMappingURL=RybColorMixer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RybColorMixer.js","sourceRoot":"","sources":["../../../src/services/color/RybColorMixer.ts"],"names":[],"mappings":"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"}
|
package/dist/version.d.ts
CHANGED
package/dist/version.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,eAAO,MAAM,OAAO,WAAW,CAAC"}
|
package/dist/version.js
CHANGED
package/dist/version.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,QAAQ,CAAC"}
|