From f944d48e1b66506ce3a24b82704f94831137c7dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Mon, 10 Feb 2025 14:31:32 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E9=83=A8=E5=88=86=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E7=9A=84=E6=9E=84=E9=80=A0=E5=87=BD=E6=95=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- color-module/src/color_differ/cam16jch.rs | 12 + color-module/src/color_differ/hsl.rs | 12 + color-module/src/color_differ/mod.rs | 8 + color-module/src/color_differ/oklch.rs | 12 + color-module/src/color_differ/rgb.rs | 8 + color-module/src/reversing.rs | 13 + src/color_functions/color_module.d.ts | 128 ++++---- src/color_functions/color_module.js | 276 ++++++++++++------ src/color_functions/color_module_bg.wasm | Bin 699415 -> 700008 bytes src/color_functions/color_module_bg.wasm.d.ts | 106 +++---- 10 files changed, 371 insertions(+), 204 deletions(-) diff --git a/color-module/src/color_differ/cam16jch.rs b/color-module/src/color_differ/cam16jch.rs index eccadf8..9b3ccb9 100644 --- a/color-module/src/color_differ/cam16jch.rs +++ b/color-module/src/color_differ/cam16jch.rs @@ -12,6 +12,18 @@ pub struct HctDiffference { pub lightness: Differ, } +#[wasm_bindgen] +impl HctDiffference { + #[wasm_bindgen(constructor)] + pub fn new(hue: Differ, chroma: Differ, lightness: Differ) -> Self { + Self { + hue, + chroma, + lightness, + } + } +} + impl ColorDifference for Cam16Jch { type Difference = HctDiffference; diff --git a/color-module/src/color_differ/hsl.rs b/color-module/src/color_differ/hsl.rs index 4a691f9..4923ad3 100644 --- a/color-module/src/color_differ/hsl.rs +++ b/color-module/src/color_differ/hsl.rs @@ -12,6 +12,18 @@ pub struct HSLDifference { pub lightness: Differ, } +#[wasm_bindgen] +impl HSLDifference { + #[wasm_bindgen(constructor)] + pub fn new(hue: Differ, saturation: Differ, lightness: Differ) -> Self { + Self { + hue, + saturation, + lightness, + } + } +} + impl ColorDifference for Hsl { type Difference = HSLDifference; diff --git a/color-module/src/color_differ/mod.rs b/color-module/src/color_differ/mod.rs index b3c76ba..aa5232b 100644 --- a/color-module/src/color_differ/mod.rs +++ b/color-module/src/color_differ/mod.rs @@ -13,6 +13,14 @@ pub struct Differ { pub percent: f32, } +#[wasm_bindgen] +impl Differ { + #[wasm_bindgen(constructor)] + pub fn new(delta: f32, percent: f32) -> Self { + Self { delta, percent } + } +} + pub trait ColorDifference { type Difference; diff --git a/color-module/src/color_differ/oklch.rs b/color-module/src/color_differ/oklch.rs index 92ba3b0..554095f 100644 --- a/color-module/src/color_differ/oklch.rs +++ b/color-module/src/color_differ/oklch.rs @@ -12,6 +12,18 @@ pub struct OklchDifference { pub lightness: Differ, } +#[wasm_bindgen] +impl OklchDifference { + #[wasm_bindgen(constructor)] + pub fn new(hue: Differ, chroma: Differ, lightness: Differ) -> Self { + Self { + hue, + chroma, + lightness, + } + } +} + impl ColorDifference for Oklch { type Difference = OklchDifference; diff --git a/color-module/src/color_differ/rgb.rs b/color-module/src/color_differ/rgb.rs index 3ac4b2d..1d02fe2 100644 --- a/color-module/src/color_differ/rgb.rs +++ b/color-module/src/color_differ/rgb.rs @@ -12,6 +12,14 @@ pub struct RGBDifference { pub b: Differ, } +#[wasm_bindgen] +impl RGBDifference { + #[wasm_bindgen(constructor)] + pub fn new(r: Differ, g: Differ, b: Differ) -> Self { + Self { r, g, b } + } +} + impl ColorDifference for Srgb { type Difference = RGBDifference; diff --git a/color-module/src/reversing.rs b/color-module/src/reversing.rs index be18289..cc5207b 100644 --- a/color-module/src/reversing.rs +++ b/color-module/src/reversing.rs @@ -11,6 +11,19 @@ pub struct MixReversing { pub average: f32, } +#[wasm_bindgen] +impl MixReversing { + #[wasm_bindgen(constructor)] + pub fn new(r_factor: f32, g_factor: f32, b_factor: f32, average: f32) -> Self { + Self { + r_factor, + g_factor, + b_factor, + average, + } + } +} + impl MixReversing { pub fn from_tint_rgb(basic_color: Rgb, mixed_result: Rgb) -> Self { let r_factor = if basic_color.red == 1.0 { diff --git a/src/color_functions/color_module.d.ts b/src/color_functions/color_module.d.ts index a2236b0..0dc04dd 100644 --- a/src/color_functions/color_module.d.ts +++ b/src/color_functions/color_module.d.ts @@ -10,6 +10,11 @@ export function generate_swatch_scheme(colors: SwatchEntry[], setting: SwatchSch export function q_scheme_color_expanding_methods(): any; export function q_scheme_wacg_settings(): any; export function q_scheme_default_settings(): SchemeSetting; +export function generate_palette_from_color(reference_color: string, swatch_amount: number, minimum_lightness: number, maximum_lightness: number, use_reference_color?: boolean | null, reference_color_bias?: number | null): string[]; +export function swatch_scheme_default_settings(): SwatchSchemeSetting; +export function series(color: string, expand_amount: number, step: number): string[]; +export function tonal_lighten_series(color: string, expand_amount: number, step: number): string[]; +export function tonal_darken_series(color: string, expand_amount: number, step: number): string[]; export function shift_hue(color: string, degree: number): string; export function analogous_30(color: string): string[]; export function analogous_60(color: string): string[]; @@ -45,11 +50,6 @@ export function darken_absolute(color: string, value: number): string; export function mix(color1: string, color2: string, percent: number): string; export function tint(color: string, percent: number): string; export function shade(color: string, percent: number): string; -export function generate_palette_from_color(reference_color: string, swatch_amount: number, minimum_lightness: number, maximum_lightness: number, use_reference_color?: boolean | null, reference_color_bias?: number | null): string[]; -export function swatch_scheme_default_settings(): SwatchSchemeSetting; -export function series(color: string, expand_amount: number, step: number): string[]; -export function tonal_lighten_series(color: string, expand_amount: number, step: number): string[]; -export function tonal_darken_series(color: string, expand_amount: number, step: number): string[]; export enum ColorExpand { Complementary = 0, Analogous = 1, @@ -73,43 +73,43 @@ export class ColorShifting { lightness: number; } export class Differ { - private constructor(); free(): void; + constructor(delta: number, percent: number); delta: number; percent: number; } export class HSLDifference { - private constructor(); free(): void; + constructor(hue: Differ, saturation: Differ, lightness: Differ); hue: Differ; saturation: Differ; lightness: Differ; } export class HctDiffference { - private constructor(); free(): void; + constructor(hue: Differ, chroma: Differ, lightness: Differ); hue: Differ; chroma: Differ; lightness: Differ; } export class MixReversing { - private constructor(); free(): void; + constructor(r_factor: number, g_factor: number, b_factor: number, average: number); r_factor: number; g_factor: number; b_factor: number; average: number; } export class OklchDifference { - private constructor(); free(): void; + constructor(hue: Differ, chroma: Differ, lightness: Differ); hue: Differ; chroma: Differ; lightness: Differ; } export class RGBDifference { - private constructor(); free(): void; + constructor(r: Differ, g: Differ, b: Differ); r: Differ; g: Differ; b: Differ; @@ -186,6 +186,7 @@ export interface InitOutput { 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 oklchdifference_new: (a: number, b: number, c: 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; @@ -195,6 +196,7 @@ export interface InitOutput { 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 mixreversing_new: (a: number, b: number, c: number, d: number) => number; readonly q_scheme_color_expanding_methods: () => [number, number, number]; readonly q_scheme_wacg_settings: () => [number, number, number]; readonly q_scheme_default_settings: () => number; @@ -203,24 +205,7 @@ export interface InitOutput { 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 shift_hue: (a: number, b: number, c: number) => [number, number, number, number]; - readonly analogous_30: (a: number, b: number) => [number, number, number, number]; - readonly analogous_60: (a: number, b: number) => [number, number, number, number]; - readonly complementary: (a: number, b: number) => [number, number, number, number]; - readonly split_complementary: (a: number, b: number) => [number, number, number, number]; - readonly tetradic: (a: number, b: number) => [number, number, number, number]; - readonly triadic: (a: number, b: number) => [number, number, number, number]; - readonly represent_rgb: (a: number, b: number) => [number, number, number, number]; - readonly rgb_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; - readonly represent_hsl: (a: number, b: number) => [number, number, number, number]; - readonly hsl_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; - readonly represent_lab: (a: number, b: number) => [number, number, number, number]; - readonly lab_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; - readonly represent_oklch: (a: number, b: number) => [number, number, number, number]; - readonly oklch_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; - readonly represent_hct: (a: number, b: number) => [number, number, number, number]; - readonly hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; - readonly wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number]; + readonly differ_new: (a: number, b: number) => number; 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; @@ -228,37 +213,7 @@ export interface InitOutput { 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 differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number]; - readonly relative_differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number]; - readonly differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number]; - readonly relative_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 relative_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 relative_differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number]; - 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_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; - readonly __wbg_get_hsldifference_saturation: (a: number) => number; - readonly __wbg_set_hsldifference_saturation: (a: number, b: number) => void; - readonly __wbg_get_hsldifference_lightness: (a: number) => number; - readonly __wbg_set_hsldifference_lightness: (a: number, b: number) => void; - readonly lighten: (a: number, b: number, c: number) => [number, number, number, number]; - readonly lighten_absolute: (a: number, b: number, c: number) => [number, number, number, number]; - readonly darken: (a: number, b: number, c: number) => [number, number, number, number]; - readonly darken_absolute: (a: number, b: number, c: number) => [number, number, number, number]; - readonly mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number]; - readonly tint: (a: number, b: number, c: number) => [number, number, number, number]; - readonly shade: (a: number, b: number, c: number) => [number, number, number, number]; - 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; - readonly __wbg_get_rgbdifference_g: (a: number) => number; - 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 hctdiffference_new: (a: number, b: number, c: number) => number; readonly generate_palette_from_color: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number]; readonly __wbg_swatchschemesetting_free: (a: number, b: number) => void; readonly __wbg_get_swatchschemesetting_amount: (a: number) => number; @@ -284,14 +239,65 @@ export interface InitOutput { readonly series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; readonly tonal_lighten_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; readonly tonal_darken_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; + readonly shift_hue: (a: number, b: number, c: number) => [number, number, number, number]; + readonly analogous_30: (a: number, b: number) => [number, number, number, number]; + readonly analogous_60: (a: number, b: number) => [number, number, number, number]; + readonly complementary: (a: number, b: number) => [number, number, number, number]; + readonly split_complementary: (a: number, b: number) => [number, number, number, number]; + readonly tetradic: (a: number, b: number) => [number, number, number, number]; + readonly triadic: (a: number, b: number) => [number, number, number, number]; + readonly represent_rgb: (a: number, b: number) => [number, number, number, number]; + readonly rgb_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; + readonly represent_hsl: (a: number, b: number) => [number, number, number, number]; + readonly hsl_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; + readonly represent_lab: (a: number, b: number) => [number, number, number, number]; + readonly lab_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; + readonly represent_oklch: (a: number, b: number) => [number, number, number, number]; + readonly oklch_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; + readonly represent_hct: (a: number, b: number) => [number, number, number, number]; + readonly hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; + readonly wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number]; + 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; + readonly __wbg_get_rgbdifference_g: (a: number) => number; + 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 rgbdifference_new: (a: number, b: number, c: number) => number; + readonly differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number]; + readonly relative_differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number]; + readonly differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number]; + readonly relative_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 relative_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 relative_differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number]; + 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_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; + readonly __wbg_get_hsldifference_saturation: (a: number) => number; + readonly __wbg_set_hsldifference_saturation: (a: number, b: number) => void; + readonly __wbg_get_hsldifference_lightness: (a: number) => number; + readonly __wbg_set_hsldifference_lightness: (a: number, b: number) => void; + readonly hsldifference_new: (a: number, b: number, c: number) => number; + readonly lighten: (a: number, b: number, c: number) => [number, number, number, number]; + readonly lighten_absolute: (a: number, b: number, c: number) => [number, number, number, number]; + readonly darken: (a: number, b: number, c: number) => [number, number, number, number]; + readonly darken_absolute: (a: number, b: number, c: number) => [number, number, number, number]; + readonly mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number]; + readonly tint: (a: number, b: number, c: number) => [number, number, number, number]; + readonly shade: (a: number, b: number, c: number) => [number, number, number, number]; readonly __wbindgen_malloc: (a: number, b: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; readonly __wbindgen_exn_store: (a: number) => void; readonly __externref_table_alloc: () => number; readonly __wbindgen_export_4: WebAssembly.Table; readonly __externref_table_dealloc: (a: number) => void; - readonly __wbindgen_free: (a: number, b: number, c: number) => void; readonly __externref_drop_slice: (a: number, b: number) => void; + readonly __wbindgen_free: (a: number, b: number, c: number) => void; readonly __wbindgen_start: () => void; } diff --git a/src/color_functions/color_module.js b/src/color_functions/color_module.js index 5db8463..d6e252b 100644 --- a/src/color_functions/color_module.js +++ b/src/color_functions/color_module.js @@ -379,6 +379,99 @@ export function q_scheme_default_settings() { return SchemeSetting.__wrap(ret); } +function getArrayJsValueFromWasm0(ptr, len) { + ptr = ptr >>> 0; + const mem = getDataViewMemory0(); + const result = []; + for (let i = ptr; i < ptr + 4 * len; i += 4) { + result.push(wasm.__wbindgen_export_4.get(mem.getUint32(i, true))); + } + wasm.__externref_drop_slice(ptr, len); + return result; +} +/** + * @param {string} reference_color + * @param {number} swatch_amount + * @param {number} minimum_lightness + * @param {number} maximum_lightness + * @param {boolean | null} [use_reference_color] + * @param {number | null} [reference_color_bias] + * @returns {string[]} + */ +export function generate_palette_from_color(reference_color, swatch_amount, minimum_lightness, maximum_lightness, use_reference_color, reference_color_bias) { + const ptr0 = passStringToWasm0(reference_color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.generate_palette_from_color(ptr0, len0, swatch_amount, minimum_lightness, maximum_lightness, isLikeNone(use_reference_color) ? 0xFFFFFF : use_reference_color ? 1 : 0, isLikeNone(reference_color_bias) ? 0xFFFFFF : reference_color_bias); + if (ret[3]) { + throw takeFromExternrefTable0(ret[2]); + } + var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); + return v2; +} + +/** + * @returns {SwatchSchemeSetting} + */ +export function swatch_scheme_default_settings() { + const ret = wasm.swatch_scheme_default_settings(); + return SwatchSchemeSetting.__wrap(ret); +} + +/** + * @param {string} color + * @param {number} expand_amount + * @param {number} step + * @returns {string[]} + */ +export function series(color, expand_amount, step) { + const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.series(ptr0, len0, expand_amount, step); + if (ret[3]) { + throw takeFromExternrefTable0(ret[2]); + } + var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); + return v2; +} + +/** + * @param {string} color + * @param {number} expand_amount + * @param {number} step + * @returns {string[]} + */ +export function tonal_lighten_series(color, expand_amount, step) { + const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.tonal_lighten_series(ptr0, len0, expand_amount, step); + if (ret[3]) { + throw takeFromExternrefTable0(ret[2]); + } + var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); + return v2; +} + +/** + * @param {string} color + * @param {number} expand_amount + * @param {number} step + * @returns {string[]} + */ +export function tonal_darken_series(color, expand_amount, step) { + const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.tonal_darken_series(ptr0, len0, expand_amount, step); + if (ret[3]) { + throw takeFromExternrefTable0(ret[2]); + } + var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); + return v2; +} + /** * @param {string} color * @param {number} degree @@ -405,16 +498,6 @@ export function shift_hue(color, degree) { } } -function getArrayJsValueFromWasm0(ptr, len) { - ptr = ptr >>> 0; - const mem = getDataViewMemory0(); - const result = []; - for (let i = ptr; i < ptr + 4 * len; i += 4) { - result.push(wasm.__wbindgen_export_4.get(mem.getUint32(i, true))); - } - wasm.__externref_drop_slice(ptr, len); - return result; -} /** * @param {string} color * @returns {string[]} @@ -1114,89 +1197,6 @@ export function shade(color, percent) { } } -/** - * @param {string} reference_color - * @param {number} swatch_amount - * @param {number} minimum_lightness - * @param {number} maximum_lightness - * @param {boolean | null} [use_reference_color] - * @param {number | null} [reference_color_bias] - * @returns {string[]} - */ -export function generate_palette_from_color(reference_color, swatch_amount, minimum_lightness, maximum_lightness, use_reference_color, reference_color_bias) { - const ptr0 = passStringToWasm0(reference_color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.generate_palette_from_color(ptr0, len0, swatch_amount, minimum_lightness, maximum_lightness, isLikeNone(use_reference_color) ? 0xFFFFFF : use_reference_color ? 1 : 0, isLikeNone(reference_color_bias) ? 0xFFFFFF : reference_color_bias); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - return v2; -} - -/** - * @returns {SwatchSchemeSetting} - */ -export function swatch_scheme_default_settings() { - const ret = wasm.swatch_scheme_default_settings(); - return SwatchSchemeSetting.__wrap(ret); -} - -/** - * @param {string} color - * @param {number} expand_amount - * @param {number} step - * @returns {string[]} - */ -export function series(color, expand_amount, step) { - const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.series(ptr0, len0, expand_amount, step); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - return v2; -} - -/** - * @param {string} color - * @param {number} expand_amount - * @param {number} step - * @returns {string[]} - */ -export function tonal_lighten_series(color, expand_amount, step) { - const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.tonal_lighten_series(ptr0, len0, expand_amount, step); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - return v2; -} - -/** - * @param {string} color - * @param {number} expand_amount - * @param {number} step - * @returns {string[]} - */ -export function tonal_darken_series(color, expand_amount, step) { - const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); - const len0 = WASM_VECTOR_LEN; - const ret = wasm.tonal_darken_series(ptr0, len0, expand_amount, step); - if (ret[3]) { - throw takeFromExternrefTable0(ret[2]); - } - var v2 = getArrayJsValueFromWasm0(ret[0], ret[1]).slice(); - wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); - return v2; -} - /** * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6} */ @@ -1343,6 +1343,16 @@ export class Differ { set percent(arg0) { wasm.__wbg_set_differ_percent(this.__wbg_ptr, arg0); } + /** + * @param {number} delta + * @param {number} percent + */ + constructor(delta, percent) { + const ret = wasm.differ_new(delta, percent); + this.__wbg_ptr = ret >>> 0; + DifferFinalization.register(this, this.__wbg_ptr, this); + return this; + } } const HSLDifferenceFinalization = (typeof FinalizationRegistry === 'undefined') @@ -1415,6 +1425,23 @@ export class HSLDifference { var ptr0 = arg0.__destroy_into_raw(); wasm.__wbg_set_hsldifference_lightness(this.__wbg_ptr, ptr0); } + /** + * @param {Differ} hue + * @param {Differ} saturation + * @param {Differ} lightness + */ + constructor(hue, saturation, lightness) { + _assertClass(hue, Differ); + var ptr0 = hue.__destroy_into_raw(); + _assertClass(saturation, Differ); + var ptr1 = saturation.__destroy_into_raw(); + _assertClass(lightness, Differ); + var ptr2 = lightness.__destroy_into_raw(); + const ret = wasm.hsldifference_new(ptr0, ptr1, ptr2); + this.__wbg_ptr = ret >>> 0; + HSLDifferenceFinalization.register(this, this.__wbg_ptr, this); + return this; + } } const HctDiffferenceFinalization = (typeof FinalizationRegistry === 'undefined') @@ -1487,6 +1514,23 @@ export class HctDiffference { var ptr0 = arg0.__destroy_into_raw(); wasm.__wbg_set_hctdiffference_lightness(this.__wbg_ptr, ptr0); } + /** + * @param {Differ} hue + * @param {Differ} chroma + * @param {Differ} lightness + */ + constructor(hue, chroma, lightness) { + _assertClass(hue, Differ); + var ptr0 = hue.__destroy_into_raw(); + _assertClass(chroma, Differ); + var ptr1 = chroma.__destroy_into_raw(); + _assertClass(lightness, Differ); + var ptr2 = lightness.__destroy_into_raw(); + const ret = wasm.hctdiffference_new(ptr0, ptr1, ptr2); + this.__wbg_ptr = ret >>> 0; + HctDiffferenceFinalization.register(this, this.__wbg_ptr, this); + return this; + } } const MixReversingFinalization = (typeof FinalizationRegistry === 'undefined') @@ -1566,6 +1610,18 @@ export class MixReversing { set average(arg0) { wasm.__wbg_set_mixreversing_average(this.__wbg_ptr, arg0); } + /** + * @param {number} r_factor + * @param {number} g_factor + * @param {number} b_factor + * @param {number} average + */ + constructor(r_factor, g_factor, b_factor, average) { + const ret = wasm.mixreversing_new(r_factor, g_factor, b_factor, average); + this.__wbg_ptr = ret >>> 0; + MixReversingFinalization.register(this, this.__wbg_ptr, this); + return this; + } } const OklchDifferenceFinalization = (typeof FinalizationRegistry === 'undefined') @@ -1638,6 +1694,23 @@ export class OklchDifference { var ptr0 = arg0.__destroy_into_raw(); wasm.__wbg_set_oklchdifference_lightness(this.__wbg_ptr, ptr0); } + /** + * @param {Differ} hue + * @param {Differ} chroma + * @param {Differ} lightness + */ + constructor(hue, chroma, lightness) { + _assertClass(hue, Differ); + var ptr0 = hue.__destroy_into_raw(); + _assertClass(chroma, Differ); + var ptr1 = chroma.__destroy_into_raw(); + _assertClass(lightness, Differ); + var ptr2 = lightness.__destroy_into_raw(); + const ret = wasm.oklchdifference_new(ptr0, ptr1, ptr2); + this.__wbg_ptr = ret >>> 0; + OklchDifferenceFinalization.register(this, this.__wbg_ptr, this); + return this; + } } const RGBDifferenceFinalization = (typeof FinalizationRegistry === 'undefined') @@ -1710,6 +1783,23 @@ export class RGBDifference { var ptr0 = arg0.__destroy_into_raw(); wasm.__wbg_set_rgbdifference_b(this.__wbg_ptr, ptr0); } + /** + * @param {Differ} r + * @param {Differ} g + * @param {Differ} b + */ + constructor(r, g, b) { + _assertClass(r, Differ); + var ptr0 = r.__destroy_into_raw(); + _assertClass(g, Differ); + var ptr1 = g.__destroy_into_raw(); + _assertClass(b, Differ); + var ptr2 = b.__destroy_into_raw(); + const ret = wasm.rgbdifference_new(ptr0, ptr1, ptr2); + this.__wbg_ptr = ret >>> 0; + RGBDifferenceFinalization.register(this, this.__wbg_ptr, this); + return this; + } } const SchemeSettingFinalization = (typeof FinalizationRegistry === 'undefined') diff --git a/src/color_functions/color_module_bg.wasm b/src/color_functions/color_module_bg.wasm index 2ec45bb60ed3e1d99f9f0ef5c6f0b3c56eab64dc..7258ea0891b7a950c50ddfff4a226915ff56309f 100644 GIT binary patch delta 52189 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 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 oklchdifference_new: (a: number, b: number, c: 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; @@ -48,6 +49,7 @@ 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 mixreversing_new: (a: number, b: number, c: number, d: number) => number; export const q_scheme_color_expanding_methods: () => [number, number, number]; export const q_scheme_wacg_settings: () => [number, number, number]; export const q_scheme_default_settings: () => number; @@ -56,24 +58,7 @@ 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 shift_hue: (a: number, b: number, c: number) => [number, number, number, number]; -export const analogous_30: (a: number, b: number) => [number, number, number, number]; -export const analogous_60: (a: number, b: number) => [number, number, number, number]; -export const complementary: (a: number, b: number) => [number, number, number, number]; -export const split_complementary: (a: number, b: number) => [number, number, number, number]; -export const tetradic: (a: number, b: number) => [number, number, number, number]; -export const triadic: (a: number, b: number) => [number, number, number, number]; -export const represent_rgb: (a: number, b: number) => [number, number, number, number]; -export const rgb_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; -export const represent_hsl: (a: number, b: number) => [number, number, number, number]; -export const hsl_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; -export const represent_lab: (a: number, b: number) => [number, number, number, number]; -export const lab_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; -export const represent_oklch: (a: number, b: number) => [number, number, number, number]; -export const oklch_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; -export const represent_hct: (a: number, b: number) => [number, number, number, number]; -export const hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; -export const wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number]; +export const differ_new: (a: number, b: number) => number; 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; @@ -81,37 +66,7 @@ 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 differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const relative_differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number]; -export const relative_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 relative_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 relative_differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number]; -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_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; -export const __wbg_get_hsldifference_saturation: (a: number) => number; -export const __wbg_set_hsldifference_saturation: (a: number, b: number) => void; -export const __wbg_get_hsldifference_lightness: (a: number) => number; -export const __wbg_set_hsldifference_lightness: (a: number, b: number) => void; -export const lighten: (a: number, b: number, c: number) => [number, number, number, number]; -export const lighten_absolute: (a: number, b: number, c: number) => [number, number, number, number]; -export const darken: (a: number, b: number, c: number) => [number, number, number, number]; -export const darken_absolute: (a: number, b: number, c: number) => [number, number, number, number]; -export const mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number]; -export const tint: (a: number, b: number, c: number) => [number, number, number, number]; -export const shade: (a: number, b: number, c: number) => [number, number, number, number]; -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; -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 hctdiffference_new: (a: number, b: number, c: number) => number; export const generate_palette_from_color: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number]; export const __wbg_swatchschemesetting_free: (a: number, b: number) => void; export const __wbg_get_swatchschemesetting_amount: (a: number) => number; @@ -137,12 +92,63 @@ export const swatch_scheme_default_settings: () => number; export const series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; export const tonal_lighten_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; export const tonal_darken_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; +export const shift_hue: (a: number, b: number, c: number) => [number, number, number, number]; +export const analogous_30: (a: number, b: number) => [number, number, number, number]; +export const analogous_60: (a: number, b: number) => [number, number, number, number]; +export const complementary: (a: number, b: number) => [number, number, number, number]; +export const split_complementary: (a: number, b: number) => [number, number, number, number]; +export const tetradic: (a: number, b: number) => [number, number, number, number]; +export const triadic: (a: number, b: number) => [number, number, number, number]; +export const represent_rgb: (a: number, b: number) => [number, number, number, number]; +export const rgb_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; +export const represent_hsl: (a: number, b: number) => [number, number, number, number]; +export const hsl_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; +export const represent_lab: (a: number, b: number) => [number, number, number, number]; +export const lab_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; +export const represent_oklch: (a: number, b: number) => [number, number, number, number]; +export const oklch_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; +export const represent_hct: (a: number, b: number) => [number, number, number, number]; +export const hct_to_hex: (a: number, b: number, c: number) => [number, number, number, number]; +export const wacg_relative_contrast: (a: number, b: number, c: number, d: number) => [number, number, number]; +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; +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 rgbdifference_new: (a: number, b: number, c: number) => number; +export const differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number]; +export const relative_differ_in_rgb: (a: number, b: number, c: number, d: number) => [number, number, number]; +export const differ_in_hsl: (a: number, b: number, c: number, d: number) => [number, number, number]; +export const relative_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 relative_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 relative_differ_in_oklch: (a: number, b: number, c: number, d: number) => [number, number, number]; +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_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; +export const __wbg_get_hsldifference_saturation: (a: number) => number; +export const __wbg_set_hsldifference_saturation: (a: number, b: number) => void; +export const __wbg_get_hsldifference_lightness: (a: number) => number; +export const __wbg_set_hsldifference_lightness: (a: number, b: number) => void; +export const hsldifference_new: (a: number, b: number, c: number) => number; +export const lighten: (a: number, b: number, c: number) => [number, number, number, number]; +export const lighten_absolute: (a: number, b: number, c: number) => [number, number, number, number]; +export const darken: (a: number, b: number, c: number) => [number, number, number, number]; +export const darken_absolute: (a: number, b: number, c: number) => [number, number, number, number]; +export const mix: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number]; +export const tint: (a: number, b: number, c: number) => [number, number, number, number]; +export const shade: (a: number, b: number, c: number) => [number, number, number, number]; export const __wbindgen_malloc: (a: number, b: number) => number; export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; export const __wbindgen_exn_store: (a: number) => void; export const __externref_table_alloc: () => number; export const __wbindgen_export_4: WebAssembly.Table; export const __externref_table_dealloc: (a: number) => void; -export const __wbindgen_free: (a: number, b: number, c: number) => void; export const __externref_drop_slice: (a: number, b: number) => void; +export const __wbindgen_free: (a: number, b: number, c: number) => void; export const __wbindgen_start: () => void;