@xivdyetools/core 1.12.4 → 1.12.6
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 +3 -2
- 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/data/locales/ko.json +1 -1
- package/dist/data/locales/zh.json +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/services/ColorService.d.ts +210 -1
- package/dist/services/ColorService.d.ts.map +1 -1
- package/dist/services/ColorService.js +330 -1
- package/dist/services/ColorService.js.map +1 -1
- package/dist/services/color/ColorConverter.d.ts +311 -4
- package/dist/services/color/ColorConverter.d.ts.map +1 -1
- package/dist/services/color/ColorConverter.js +589 -5
- package/dist/services/color/ColorConverter.js.map +1 -1
- package/dist/services/color/SpectralMixer.d.ts +77 -0
- package/dist/services/color/SpectralMixer.d.ts.map +1 -0
- package/dist/services/color/SpectralMixer.js +133 -0
- package/dist/services/color/SpectralMixer.js.map +1 -0
- package/dist/services/dye/DyeSearch.d.ts +53 -4
- package/dist/services/dye/DyeSearch.d.ts.map +1 -1
- package/dist/services/dye/DyeSearch.js +105 -13
- package/dist/services/dye/DyeSearch.js.map +1 -1
- package/dist/types/index.d.ts +62 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +13 -0
- package/dist/types/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -8,9 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
11
|
-
✨ **Color Conversion** - RGB ↔ HSV ↔ Hex ↔ LAB ↔ RYB
|
|
11
|
+
✨ **Color Conversion** - RGB ↔ HSV ↔ Hex ↔ LAB ↔ RYB ↔ OKLAB ↔ OKLCH ↔ LCH ↔ HSL
|
|
12
12
|
🎨 **136 FFXIV Dyes** - Complete database with RGB/HSV/metadata
|
|
13
|
-
🖌️ **
|
|
13
|
+
🖌️ **Advanced Color Mixing** - RYB, OKLAB, HSL, and Spectral (Kubelka-Munk)
|
|
14
|
+
🔬 **Spectral.js Integration** - Physics-based paint mixing (Blue + Yellow = Green!)
|
|
14
15
|
🎯 **Dye Matching** - Find closest dyes to any color
|
|
15
16
|
🌈 **Color Harmonies** - Triadic, complementary, analogous, and more
|
|
16
17
|
🖼️ **Palette Extraction** - K-means++ clustering for multi-color extraction from images
|
package/dist/index.d.ts
CHANGED
|
@@ -7,11 +7,12 @@ export { PresetService } from './services/PresetService.js';
|
|
|
7
7
|
export { PaletteService } from './services/PaletteService.js';
|
|
8
8
|
export type { PaletteExtractionOptions, ExtractedColor, PaletteMatch, PaletteServiceOptions, } from './services/PaletteService.js';
|
|
9
9
|
export { CharacterColorService } from './services/CharacterColorService.js';
|
|
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';
|
|
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, MatchingMethod, OklchWeights, MatchingConfig, } 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
13
|
export type { RYB } from './services/ColorService.js';
|
|
14
|
-
export {
|
|
14
|
+
export type { FindClosestOptions, FindWithinDistanceOptions } from './services/dye/DyeSearch.js';
|
|
15
|
+
export { AppError, ErrorCode, createHexColor, NoOpLogger, ConsoleLogger, RACE_SUBRACES, SUBRACE_TO_RACE, COLOR_GRID_DIMENSIONS, MATCHING_PRESETS, } from './types/index.js';
|
|
15
16
|
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';
|
|
16
17
|
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';
|
|
17
18
|
export { default as dyeDatabase } from './data/colors_xiv.json';
|
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,
|
|
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,EAEJ,cAAc,EACd,YAAY,EACZ,cAAc,GACf,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;AAGtD,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACjG,OAAO,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa,EAEb,aAAa,EACb,eAAe,EACf,qBAAqB,EAErB,gBAAgB,GACjB,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
CHANGED
|
@@ -8,7 +8,9 @@ export { PaletteService } from './services/PaletteService.js';
|
|
|
8
8
|
export { CharacterColorService } from './services/CharacterColorService.js';
|
|
9
9
|
export { AppError, ErrorCode, createHexColor, NoOpLogger, ConsoleLogger,
|
|
10
10
|
// Character constants
|
|
11
|
-
RACE_SUBRACES, SUBRACE_TO_RACE, COLOR_GRID_DIMENSIONS,
|
|
11
|
+
RACE_SUBRACES, SUBRACE_TO_RACE, COLOR_GRID_DIMENSIONS,
|
|
12
|
+
// Color matching presets
|
|
13
|
+
MATCHING_PRESETS, } from './types/index.js';
|
|
12
14
|
// Constants
|
|
13
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';
|
|
14
16
|
// Utils
|
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;AA2D5E,OAAO,EACL,QAAQ,EACR,SAAS,EACT,cAAc,EACd,UAAU,EACV,aAAa;AACb,sBAAsB;AACtB,aAAa,EACb,eAAe,EACf,qBAAqB;AACrB,yBAAyB;AACzB,gBAAgB,GACjB,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"}
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
* const distance = ColorService.getColorDistance('#FF0000', '#00FF00');
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
|
-
import type { RGB, HSV, HexColor, VisionType, LAB } from '../types/index.js';
|
|
28
|
+
import type { RGB, HSV, HexColor, VisionType, LAB, OKLAB, OKLCH, LCH, HSL } from '../types/index.js';
|
|
29
29
|
import { type DeltaEFormula } from './color/ColorConverter.js';
|
|
30
30
|
import { type RYB } from './color/RybColorMixer.js';
|
|
31
31
|
/**
|
|
@@ -172,6 +172,88 @@ export declare class ColorService {
|
|
|
172
172
|
* @example labToHex(53.23, 80.11, 67.22) -> "#FF0000"
|
|
173
173
|
*/
|
|
174
174
|
static labToHex(L: number, a: number, b: number): HexColor;
|
|
175
|
+
/**
|
|
176
|
+
* Convert RGB to OKLAB color space
|
|
177
|
+
*
|
|
178
|
+
* OKLAB is a modern perceptually uniform color space that fixes issues
|
|
179
|
+
* with CIELAB, particularly for blue colors. Blue + Yellow = Green in OKLAB.
|
|
180
|
+
*
|
|
181
|
+
* @example rgbToOklab(255, 0, 0) -> { L: 0.628, a: 0.225, b: 0.126 }
|
|
182
|
+
*/
|
|
183
|
+
static rgbToOklab(r: number, g: number, b: number): OKLAB;
|
|
184
|
+
/**
|
|
185
|
+
* Convert hex color to OKLAB
|
|
186
|
+
*/
|
|
187
|
+
static hexToOklab(hex: string): OKLAB;
|
|
188
|
+
/**
|
|
189
|
+
* Convert OKLAB to RGB
|
|
190
|
+
*/
|
|
191
|
+
static oklabToRgb(L: number, a: number, b: number): RGB;
|
|
192
|
+
/**
|
|
193
|
+
* Convert OKLAB to hex color
|
|
194
|
+
*/
|
|
195
|
+
static oklabToHex(L: number, a: number, b: number): HexColor;
|
|
196
|
+
/**
|
|
197
|
+
* Convert RGB to OKLCH (cylindrical OKLAB)
|
|
198
|
+
*
|
|
199
|
+
* OKLCH expresses OKLAB in cylindrical coordinates for intuitive
|
|
200
|
+
* hue manipulation. Ideal for gradient interpolation.
|
|
201
|
+
*/
|
|
202
|
+
static rgbToOklch(r: number, g: number, b: number): OKLCH;
|
|
203
|
+
/**
|
|
204
|
+
* Convert hex color to OKLCH
|
|
205
|
+
*/
|
|
206
|
+
static hexToOklch(hex: string): OKLCH;
|
|
207
|
+
/**
|
|
208
|
+
* Convert OKLCH to RGB
|
|
209
|
+
*/
|
|
210
|
+
static oklchToRgb(L: number, C: number, h: number): RGB;
|
|
211
|
+
/**
|
|
212
|
+
* Convert OKLCH to hex color
|
|
213
|
+
*/
|
|
214
|
+
static oklchToHex(L: number, C: number, h: number): HexColor;
|
|
215
|
+
/**
|
|
216
|
+
* Convert CIE LAB to LCH (cylindrical LAB)
|
|
217
|
+
*/
|
|
218
|
+
static labToLch(L: number, a: number, b: number): LCH;
|
|
219
|
+
/**
|
|
220
|
+
* Convert LCH to CIE LAB
|
|
221
|
+
*/
|
|
222
|
+
static lchToLab(L: number, C: number, h: number): LAB;
|
|
223
|
+
/**
|
|
224
|
+
* Convert RGB to LCH
|
|
225
|
+
*/
|
|
226
|
+
static rgbToLch(r: number, g: number, b: number): LCH;
|
|
227
|
+
/**
|
|
228
|
+
* Convert hex color to LCH
|
|
229
|
+
*/
|
|
230
|
+
static hexToLch(hex: string): LCH;
|
|
231
|
+
/**
|
|
232
|
+
* Convert LCH to RGB
|
|
233
|
+
*/
|
|
234
|
+
static lchToRgb(L: number, C: number, h: number): RGB;
|
|
235
|
+
/**
|
|
236
|
+
* Convert LCH to hex color
|
|
237
|
+
*/
|
|
238
|
+
static lchToHex(L: number, C: number, h: number): HexColor;
|
|
239
|
+
/**
|
|
240
|
+
* Convert RGB to HSL
|
|
241
|
+
* @example rgbToHsl(255, 0, 0) -> { h: 0, s: 100, l: 50 }
|
|
242
|
+
*/
|
|
243
|
+
static rgbToHsl(r: number, g: number, b: number): HSL;
|
|
244
|
+
/**
|
|
245
|
+
* Convert hex color to HSL
|
|
246
|
+
*/
|
|
247
|
+
static hexToHsl(hex: string): HSL;
|
|
248
|
+
/**
|
|
249
|
+
* Convert HSL to RGB
|
|
250
|
+
* @example hslToRgb(0, 100, 50) -> { r: 255, g: 0, b: 0 }
|
|
251
|
+
*/
|
|
252
|
+
static hslToRgb(h: number, s: number, l: number): RGB;
|
|
253
|
+
/**
|
|
254
|
+
* Convert HSL to hex color
|
|
255
|
+
*/
|
|
256
|
+
static hslToHex(h: number, s: number, l: number): HexColor;
|
|
175
257
|
/**
|
|
176
258
|
* Mix two colors using RGB additive mixing (averaging)
|
|
177
259
|
*
|
|
@@ -236,6 +318,133 @@ export declare class ColorService {
|
|
|
236
318
|
* Convert RYB to hex color
|
|
237
319
|
*/
|
|
238
320
|
static rybToHex(r: number, y: number, b: number): HexColor;
|
|
321
|
+
/**
|
|
322
|
+
* Mix two colors using OKLAB perceptually uniform mixing
|
|
323
|
+
*
|
|
324
|
+
* OKLAB produces more intuitive results than LAB for complementary colors:
|
|
325
|
+
* - Blue + Yellow = Green (not pink like LAB)
|
|
326
|
+
* - Smooth, vibrant gradients without muddy midpoints
|
|
327
|
+
*
|
|
328
|
+
* @param hex1 First hex color
|
|
329
|
+
* @param hex2 Second hex color
|
|
330
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
331
|
+
* @returns Mixed color as hex
|
|
332
|
+
*
|
|
333
|
+
* @example
|
|
334
|
+
* // Mix blue and yellow to get green (not pink like LAB)
|
|
335
|
+
* ColorService.mixColorsOklab('#0000FF', '#FFFF00') // Returns green-ish color
|
|
336
|
+
*/
|
|
337
|
+
static mixColorsOklab(hex1: string, hex2: string, ratio?: number): HexColor;
|
|
338
|
+
/**
|
|
339
|
+
* Hue interpolation method for cylindrical color spaces
|
|
340
|
+
* - 'shorter': Take the shorter arc around the hue wheel (default)
|
|
341
|
+
* - 'longer': Take the longer arc around the hue wheel
|
|
342
|
+
* - 'increasing': Always go clockwise (increasing hue values)
|
|
343
|
+
* - 'decreasing': Always go counter-clockwise (decreasing hue values)
|
|
344
|
+
*/
|
|
345
|
+
static interpolateHue(h1: number, h2: number, ratio: number, method?: 'shorter' | 'longer' | 'increasing' | 'decreasing'): number;
|
|
346
|
+
/**
|
|
347
|
+
* Mix two colors using OKLCH cylindrical mixing
|
|
348
|
+
*
|
|
349
|
+
* OKLCH provides control over hue interpolation direction,
|
|
350
|
+
* useful for creating gradients that go "through" specific colors.
|
|
351
|
+
*
|
|
352
|
+
* @param hex1 First hex color
|
|
353
|
+
* @param hex2 Second hex color
|
|
354
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
355
|
+
* @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
|
|
356
|
+
* @returns Mixed color as hex
|
|
357
|
+
*/
|
|
358
|
+
static mixColorsOklch(hex1: string, hex2: string, ratio?: number, hueMethod?: 'shorter' | 'longer' | 'increasing' | 'decreasing'): HexColor;
|
|
359
|
+
/**
|
|
360
|
+
* Mix two colors using LCH cylindrical mixing
|
|
361
|
+
*
|
|
362
|
+
* LCH is the cylindrical form of CIE LAB, providing hue control
|
|
363
|
+
* for perceptual mixing. Note: May produce unexpected hues for
|
|
364
|
+
* blue+yellow due to LAB's red bias (use OKLCH for better results).
|
|
365
|
+
*
|
|
366
|
+
* @param hex1 First hex color
|
|
367
|
+
* @param hex2 Second hex color
|
|
368
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
369
|
+
* @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
|
|
370
|
+
* @returns Mixed color as hex
|
|
371
|
+
*/
|
|
372
|
+
static mixColorsLch(hex1: string, hex2: string, ratio?: number, hueMethod?: 'shorter' | 'longer' | 'increasing' | 'decreasing'): HexColor;
|
|
373
|
+
/**
|
|
374
|
+
* Mix two colors using HSL hue averaging
|
|
375
|
+
*
|
|
376
|
+
* Simple and intuitive mixing based on hue wheel position.
|
|
377
|
+
* Blue + Yellow = Spring Green (hue ~150°).
|
|
378
|
+
* Results may be over-saturated compared to perceptual methods.
|
|
379
|
+
*
|
|
380
|
+
* @param hex1 First hex color
|
|
381
|
+
* @param hex2 Second hex color
|
|
382
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
383
|
+
* @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
|
|
384
|
+
* @returns Mixed color as hex
|
|
385
|
+
*/
|
|
386
|
+
static mixColorsHsl(hex1: string, hex2: string, ratio?: number, hueMethod?: 'shorter' | 'longer' | 'increasing' | 'decreasing'): HexColor;
|
|
387
|
+
/**
|
|
388
|
+
* Mix two colors using HSV hue averaging
|
|
389
|
+
*
|
|
390
|
+
* Similar to HSL but uses Value instead of Lightness.
|
|
391
|
+
* Useful when working with existing HSV-based workflows.
|
|
392
|
+
*
|
|
393
|
+
* @param hex1 First hex color
|
|
394
|
+
* @param hex2 Second hex color
|
|
395
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
396
|
+
* @param hueMethod Hue interpolation method ('shorter' | 'longer' | 'increasing' | 'decreasing')
|
|
397
|
+
* @returns Mixed color as hex
|
|
398
|
+
*/
|
|
399
|
+
static mixColorsHsv(hex1: string, hex2: string, ratio?: number, hueMethod?: 'shorter' | 'longer' | 'increasing' | 'decreasing'): HexColor;
|
|
400
|
+
/**
|
|
401
|
+
* Mix two colors using Kubelka-Munk spectral mixing
|
|
402
|
+
*
|
|
403
|
+
* This is the most physically accurate color mixing method available,
|
|
404
|
+
* simulating how real pigments and paints interact with light.
|
|
405
|
+
*
|
|
406
|
+
* Key characteristics:
|
|
407
|
+
* - Based on light absorption and scattering theory
|
|
408
|
+
* - Blue + Yellow = Green (like real paint!)
|
|
409
|
+
* - More realistic tinting and shading
|
|
410
|
+
* - Uses spectral reflectance curves (380-750nm)
|
|
411
|
+
*
|
|
412
|
+
* @param hex1 First hex color
|
|
413
|
+
* @param hex2 Second hex color
|
|
414
|
+
* @param ratio Mix ratio (0 = all hex1, 0.5 = equal mix, 1 = all hex2). Default: 0.5
|
|
415
|
+
* @returns Mixed color as hex
|
|
416
|
+
*
|
|
417
|
+
* @example
|
|
418
|
+
* // Mix blue and yellow to get green (like real paint)
|
|
419
|
+
* ColorService.mixColorsSpectral('#0000FF', '#FFFF00')
|
|
420
|
+
*/
|
|
421
|
+
static mixColorsSpectral(hex1: string, hex2: string, ratio?: number): HexColor;
|
|
422
|
+
/**
|
|
423
|
+
* Mix multiple colors using Kubelka-Munk spectral mixing
|
|
424
|
+
*
|
|
425
|
+
* @param colors Array of hex colors to mix
|
|
426
|
+
* @param weights Optional array of weights (defaults to equal weights)
|
|
427
|
+
* @returns Mixed color as hex
|
|
428
|
+
*/
|
|
429
|
+
static mixMultipleSpectral(colors: string[], weights?: number[]): HexColor;
|
|
430
|
+
/**
|
|
431
|
+
* Generate a gradient using spectral mixing
|
|
432
|
+
*
|
|
433
|
+
* Creates a series of colors that transition smoothly using
|
|
434
|
+
* Kubelka-Munk theory for realistic blending.
|
|
435
|
+
*
|
|
436
|
+
* @param hex1 Starting color
|
|
437
|
+
* @param hex2 Ending color
|
|
438
|
+
* @param steps Number of colors in the gradient
|
|
439
|
+
* @returns Array of hex colors
|
|
440
|
+
*/
|
|
441
|
+
static gradientSpectral(hex1: string, hex2: string, steps: number): HexColor[];
|
|
442
|
+
/**
|
|
443
|
+
* Check if spectral mixing is available
|
|
444
|
+
*
|
|
445
|
+
* @returns true if spectral.js is loaded and functional
|
|
446
|
+
*/
|
|
447
|
+
static isSpectralAvailable(): boolean;
|
|
239
448
|
}
|
|
240
449
|
export type { RYB } from './color/RybColorMixer.js';
|
|
241
450
|
//# 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,
|
|
1
|
+
{"version":3,"file":"ColorService.d.ts","sourceRoot":"","sources":["../../src/services/ColorService.ts"],"names":[],"mappings":"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"}
|