diff --git a/src/color_functions/color_module.d.ts b/src/color_functions/color_module.d.ts index c5f8eac..c4406ea 100644 --- a/src/color_functions/color_module.d.ts +++ b/src/color_functions/color_module.d.ts @@ -34,6 +34,8 @@ export function differ_in_rgb(color: string, other: string): RGBDifference; export function differ_in_hsl(color: string, other: string): HSLDifference; export function differ_in_hct(color: string, other: string): HctDiffference; export function differ_in_oklch(color: string, other: string): OklchDifference; +export function tint_scale(basic_color: string, mixed_color: string): MixReversing; +export function shade_scale(basic_color: string, mixed_color: string): MixReversing; export class Differ { private constructor(); free(): void; @@ -54,6 +56,14 @@ export class HctDiffference { chroma: Differ; lightness: Differ; } +export class MixReversing { + private constructor(); + free(): void; + r_factor: number; + g_factor: number; + b_factor: number; + average: number; +} export class OklchDifference { private constructor(); free(): void; @@ -107,25 +117,17 @@ export interface InitOutput { readonly differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number]; readonly differ_in_hct: (a: number, b: number, c: number, d: number) => [number, number, number]; readonly differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number]; - readonly __wbg_oklchdifference_free: (a: number, b: number) => void; - readonly __wbg_get_oklchdifference_hue: (a: number) => number; - readonly __wbg_set_oklchdifference_hue: (a: number, b: number) => void; - readonly __wbg_get_oklchdifference_chroma: (a: number) => number; - readonly __wbg_set_oklchdifference_chroma: (a: number, b: number) => void; - readonly __wbg_get_oklchdifference_lightness: (a: number) => number; - readonly __wbg_set_oklchdifference_lightness: (a: number, b: number) => void; - readonly __wbg_differ_free: (a: number, b: number) => void; - readonly __wbg_get_differ_delta: (a: number) => number; - readonly __wbg_set_differ_delta: (a: number, b: number) => void; - readonly __wbg_get_differ_percent: (a: number) => number; - readonly __wbg_set_differ_percent: (a: number, b: number) => void; - readonly __wbg_hctdiffference_free: (a: number, b: number) => void; - readonly __wbg_get_hctdiffference_hue: (a: number) => number; - readonly __wbg_set_hctdiffference_hue: (a: number, b: number) => void; - readonly __wbg_get_hctdiffference_chroma: (a: number) => number; - readonly __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; - readonly __wbg_get_hctdiffference_lightness: (a: number) => number; - readonly __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; + readonly tint_scale: (a: number, b: number, c: number, d: number) => [number, number, number]; + readonly shade_scale: (a: number, b: number, c: number, d: number) => [number, number, number]; + readonly __wbg_mixreversing_free: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_r_factor: (a: number) => number; + readonly __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_g_factor: (a: number) => number; + readonly __wbg_set_mixreversing_g_factor: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_b_factor: (a: number) => number; + readonly __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_average: (a: number) => number; + readonly __wbg_set_mixreversing_average: (a: number, b: number) => void; readonly __wbg_rgbdifference_free: (a: number, b: number) => void; readonly __wbg_get_rgbdifference_r: (a: number) => number; readonly __wbg_set_rgbdifference_r: (a: number, b: number) => void; @@ -133,6 +135,25 @@ export interface InitOutput { readonly __wbg_set_rgbdifference_g: (a: number, b: number) => void; readonly __wbg_get_rgbdifference_b: (a: number) => number; readonly __wbg_set_rgbdifference_b: (a: number, b: number) => void; + readonly __wbg_differ_free: (a: number, b: number) => void; + readonly __wbg_get_differ_delta: (a: number) => number; + readonly __wbg_set_differ_delta: (a: number, b: number) => void; + readonly __wbg_get_differ_percent: (a: number) => number; + readonly __wbg_set_differ_percent: (a: number, b: number) => void; + readonly __wbg_oklchdifference_free: (a: number, b: number) => void; + readonly __wbg_get_oklchdifference_hue: (a: number) => number; + readonly __wbg_set_oklchdifference_hue: (a: number, b: number) => void; + readonly __wbg_get_oklchdifference_chroma: (a: number) => number; + readonly __wbg_set_oklchdifference_chroma: (a: number, b: number) => void; + readonly __wbg_get_oklchdifference_lightness: (a: number) => number; + readonly __wbg_set_oklchdifference_lightness: (a: number, b: number) => void; + readonly __wbg_hctdiffference_free: (a: number, b: number) => void; + readonly __wbg_get_hctdiffference_hue: (a: number) => number; + readonly __wbg_set_hctdiffference_hue: (a: number, b: number) => void; + readonly __wbg_get_hctdiffference_chroma: (a: number) => number; + readonly __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; + readonly __wbg_get_hctdiffference_lightness: (a: number) => number; + readonly __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; readonly __wbg_hsldifference_free: (a: number, b: number) => void; readonly __wbg_get_hsldifference_hue: (a: number) => number; readonly __wbg_set_hsldifference_hue: (a: number, b: number) => void; diff --git a/src/color_functions/color_module.js b/src/color_functions/color_module.js index 18095af..5502430 100644 --- a/src/color_functions/color_module.js +++ b/src/color_functions/color_module.js @@ -807,6 +807,40 @@ export function differ_in_oklch(color, other) { return OklchDifference.__wrap(ret[0]); } +/** + * @param {string} basic_color + * @param {string} mixed_color + * @returns {MixReversing} + */ +export function tint_scale(basic_color, mixed_color) { + const ptr0 = passStringToWasm0(basic_color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(mixed_color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.tint_scale(ptr0, len0, ptr1, len1); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return MixReversing.__wrap(ret[0]); +} + +/** + * @param {string} basic_color + * @param {string} mixed_color + * @returns {MixReversing} + */ +export function shade_scale(basic_color, mixed_color) { + const ptr0 = passStringToWasm0(basic_color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(mixed_color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.shade_scale(ptr0, len0, ptr1, len1); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return MixReversing.__wrap(ret[0]); +} + function _assertClass(instance, klass) { if (!(instance instanceof klass)) { throw new Error(`expected instance of ${klass.name}`); @@ -1010,6 +1044,85 @@ export class HctDiffference { } } +const MixReversingFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_mixreversing_free(ptr >>> 0, 1)); + +export class MixReversing { + + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(MixReversing.prototype); + obj.__wbg_ptr = ptr; + MixReversingFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + MixReversingFinalization.unregister(this); + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_mixreversing_free(ptr, 0); + } + /** + * @returns {number} + */ + get r_factor() { + const ret = wasm.__wbg_get_mixreversing_r_factor(this.__wbg_ptr); + return ret; + } + /** + * @param {number} arg0 + */ + set r_factor(arg0) { + wasm.__wbg_set_mixreversing_r_factor(this.__wbg_ptr, arg0); + } + /** + * @returns {number} + */ + get g_factor() { + const ret = wasm.__wbg_get_mixreversing_g_factor(this.__wbg_ptr); + return ret; + } + /** + * @param {number} arg0 + */ + set g_factor(arg0) { + wasm.__wbg_set_mixreversing_g_factor(this.__wbg_ptr, arg0); + } + /** + * @returns {number} + */ + get b_factor() { + const ret = wasm.__wbg_get_mixreversing_b_factor(this.__wbg_ptr); + return ret; + } + /** + * @param {number} arg0 + */ + set b_factor(arg0) { + wasm.__wbg_set_mixreversing_b_factor(this.__wbg_ptr, arg0); + } + /** + * @returns {number} + */ + get average() { + const ret = wasm.__wbg_get_mixreversing_average(this.__wbg_ptr); + return ret; + } + /** + * @param {number} arg0 + */ + set average(arg0) { + wasm.__wbg_set_mixreversing_average(this.__wbg_ptr, arg0); + } +} + const OklchDifferenceFinalization = (typeof FinalizationRegistry === 'undefined') ? { register: () => {}, unregister: () => {} } : new FinalizationRegistry(ptr => wasm.__wbg_oklchdifference_free(ptr >>> 0, 1)); diff --git a/src/color_functions/color_module_bg.wasm b/src/color_functions/color_module_bg.wasm index 46293de..171d17c 100644 Binary files a/src/color_functions/color_module_bg.wasm and b/src/color_functions/color_module_bg.wasm differ diff --git a/src/color_functions/color_module_bg.wasm.d.ts b/src/color_functions/color_module_bg.wasm.d.ts index 3afd24c..7dc36eb 100644 --- a/src/color_functions/color_module_bg.wasm.d.ts +++ b/src/color_functions/color_module_bg.wasm.d.ts @@ -35,25 +35,17 @@ export const differ_in_rgb: (a: number, b: number, c: number, d: number) => [num export const differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number]; export const differ_in_hct: (a: number, b: number, c: number, d: number) => [number, number, number]; export const differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const __wbg_oklchdifference_free: (a: number, b: number) => void; -export const __wbg_get_oklchdifference_hue: (a: number) => number; -export const __wbg_set_oklchdifference_hue: (a: number, b: number) => void; -export const __wbg_get_oklchdifference_chroma: (a: number) => number; -export const __wbg_set_oklchdifference_chroma: (a: number, b: number) => void; -export const __wbg_get_oklchdifference_lightness: (a: number) => number; -export const __wbg_set_oklchdifference_lightness: (a: number, b: number) => void; -export const __wbg_differ_free: (a: number, b: number) => void; -export const __wbg_get_differ_delta: (a: number) => number; -export const __wbg_set_differ_delta: (a: number, b: number) => void; -export const __wbg_get_differ_percent: (a: number) => number; -export const __wbg_set_differ_percent: (a: number, b: number) => void; -export const __wbg_hctdiffference_free: (a: number, b: number) => void; -export const __wbg_get_hctdiffference_hue: (a: number) => number; -export const __wbg_set_hctdiffference_hue: (a: number, b: number) => void; -export const __wbg_get_hctdiffference_chroma: (a: number) => number; -export const __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; -export const __wbg_get_hctdiffference_lightness: (a: number) => number; -export const __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; +export const tint_scale: (a: number, b: number, c: number, d: number) => [number, number, number]; +export const shade_scale: (a: number, b: number, c: number, d: number) => [number, number, number]; +export const __wbg_mixreversing_free: (a: number, b: number) => void; +export const __wbg_get_mixreversing_r_factor: (a: number) => number; +export const __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; +export const __wbg_get_mixreversing_g_factor: (a: number) => number; +export const __wbg_set_mixreversing_g_factor: (a: number, b: number) => void; +export const __wbg_get_mixreversing_b_factor: (a: number) => number; +export const __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; +export const __wbg_get_mixreversing_average: (a: number) => number; +export const __wbg_set_mixreversing_average: (a: number, b: number) => void; export const __wbg_rgbdifference_free: (a: number, b: number) => void; export const __wbg_get_rgbdifference_r: (a: number) => number; export const __wbg_set_rgbdifference_r: (a: number, b: number) => void; @@ -61,6 +53,25 @@ export const __wbg_get_rgbdifference_g: (a: number) => number; export const __wbg_set_rgbdifference_g: (a: number, b: number) => void; export const __wbg_get_rgbdifference_b: (a: number) => number; export const __wbg_set_rgbdifference_b: (a: number, b: number) => void; +export const __wbg_differ_free: (a: number, b: number) => void; +export const __wbg_get_differ_delta: (a: number) => number; +export const __wbg_set_differ_delta: (a: number, b: number) => void; +export const __wbg_get_differ_percent: (a: number) => number; +export const __wbg_set_differ_percent: (a: number, b: number) => void; +export const __wbg_oklchdifference_free: (a: number, b: number) => void; +export const __wbg_get_oklchdifference_hue: (a: number) => number; +export const __wbg_set_oklchdifference_hue: (a: number, b: number) => void; +export const __wbg_get_oklchdifference_chroma: (a: number) => number; +export const __wbg_set_oklchdifference_chroma: (a: number, b: number) => void; +export const __wbg_get_oklchdifference_lightness: (a: number) => number; +export const __wbg_set_oklchdifference_lightness: (a: number, b: number) => void; +export const __wbg_hctdiffference_free: (a: number, b: number) => void; +export const __wbg_get_hctdiffference_hue: (a: number) => number; +export const __wbg_set_hctdiffference_hue: (a: number, b: number) => void; +export const __wbg_get_hctdiffference_chroma: (a: number) => number; +export const __wbg_set_hctdiffference_chroma: (a: number, b: number) => void; +export const __wbg_get_hctdiffference_lightness: (a: number) => number; +export const __wbg_set_hctdiffference_lightness: (a: number, b: number) => void; export const __wbg_hsldifference_free: (a: number, b: number) => void; export const __wbg_get_hsldifference_hue: (a: number) => number; export const __wbg_set_hsldifference_hue: (a: number, b: number) => void;