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 2ec45bb..7258ea0 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 a5c45db..82ddf49 100644 --- a/src/color_functions/color_module_bg.wasm.d.ts +++ b/src/color_functions/color_module_bg.wasm.d.ts @@ -39,6 +39,7 @@ 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 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;