diff --git a/src/color_functions/color_module.d.ts b/src/color_functions/color_module.d.ts index 25c1dd1..c5f8eac 100644 --- a/src/color_functions/color_module.d.ts +++ b/src/color_functions/color_module.d.ts @@ -30,6 +30,44 @@ export function tonal_lighten_series(color: string, expand_amount: number, step: export function tonal_darken_series(color: string, expand_amount: number, step: number): (string)[]; export function color_categories(): any; export function search_color_cards(tag: string, category?: string): any; +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 class Differ { + private constructor(); + free(): void; + delta: number; + percent: number; +} +export class HSLDifference { + private constructor(); + free(): void; + hue: Differ; + saturation: Differ; + lightness: Differ; +} +export class HctDiffference { + private constructor(); + free(): void; + hue: Differ; + chroma: Differ; + lightness: Differ; +} +export class OklchDifference { + private constructor(); + free(): void; + hue: Differ; + chroma: Differ; + lightness: Differ; +} +export class RGBDifference { + private constructor(); + free(): void; + r: Differ; + g: Differ; + b: Differ; +} export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; @@ -65,6 +103,43 @@ export interface InitOutput { readonly tonal_darken_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; readonly color_categories: () => [number, number, number]; readonly search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; + readonly 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 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 __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 __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 __wbindgen_malloc: (a: number, b: number) => number; readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; readonly __wbindgen_export_2: WebAssembly.Table; diff --git a/src/color_functions/color_module.js b/src/color_functions/color_module.js index 8b9074d..18095af 100644 --- a/src/color_functions/color_module.js +++ b/src/color_functions/color_module.js @@ -739,6 +739,421 @@ export function search_color_cards(tag, category) { return takeFromExternrefTable0(ret[0]); } +/** + * @param {string} color + * @param {string} other + * @returns {RGBDifference} + */ +export function differ_in_rgb(color, other) { + const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(other, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.differ_in_rgb(ptr0, len0, ptr1, len1); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return RGBDifference.__wrap(ret[0]); +} + +/** + * @param {string} color + * @param {string} other + * @returns {HSLDifference} + */ +export function differ_in_hsl(color, other) { + const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(other, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.differ_in_hsl(ptr0, len0, ptr1, len1); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return HSLDifference.__wrap(ret[0]); +} + +/** + * @param {string} color + * @param {string} other + * @returns {HctDiffference} + */ +export function differ_in_hct(color, other) { + const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(other, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.differ_in_hct(ptr0, len0, ptr1, len1); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return HctDiffference.__wrap(ret[0]); +} + +/** + * @param {string} color + * @param {string} other + * @returns {OklchDifference} + */ +export function differ_in_oklch(color, other) { + const ptr0 = passStringToWasm0(color, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(other, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.differ_in_oklch(ptr0, len0, ptr1, len1); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return OklchDifference.__wrap(ret[0]); +} + +function _assertClass(instance, klass) { + if (!(instance instanceof klass)) { + throw new Error(`expected instance of ${klass.name}`); + } +} + +const DifferFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_differ_free(ptr >>> 0, 1)); + +export class Differ { + + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(Differ.prototype); + obj.__wbg_ptr = ptr; + DifferFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + DifferFinalization.unregister(this); + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_differ_free(ptr, 0); + } + /** + * @returns {number} + */ + get delta() { + const ret = wasm.__wbg_get_differ_delta(this.__wbg_ptr); + return ret; + } + /** + * @param {number} arg0 + */ + set delta(arg0) { + wasm.__wbg_set_differ_delta(this.__wbg_ptr, arg0); + } + /** + * @returns {number} + */ + get percent() { + const ret = wasm.__wbg_get_differ_percent(this.__wbg_ptr); + return ret; + } + /** + * @param {number} arg0 + */ + set percent(arg0) { + wasm.__wbg_set_differ_percent(this.__wbg_ptr, arg0); + } +} + +const HSLDifferenceFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_hsldifference_free(ptr >>> 0, 1)); + +export class HSLDifference { + + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(HSLDifference.prototype); + obj.__wbg_ptr = ptr; + HSLDifferenceFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + HSLDifferenceFinalization.unregister(this); + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_hsldifference_free(ptr, 0); + } + /** + * @returns {Differ} + */ + get hue() { + const ret = wasm.__wbg_get_hsldifference_hue(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set hue(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_hsldifference_hue(this.__wbg_ptr, ptr0); + } + /** + * @returns {Differ} + */ + get saturation() { + const ret = wasm.__wbg_get_hsldifference_saturation(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set saturation(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_hsldifference_saturation(this.__wbg_ptr, ptr0); + } + /** + * @returns {Differ} + */ + get lightness() { + const ret = wasm.__wbg_get_hsldifference_lightness(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set lightness(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_hsldifference_lightness(this.__wbg_ptr, ptr0); + } +} + +const HctDiffferenceFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_hctdiffference_free(ptr >>> 0, 1)); + +export class HctDiffference { + + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(HctDiffference.prototype); + obj.__wbg_ptr = ptr; + HctDiffferenceFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + HctDiffferenceFinalization.unregister(this); + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_hctdiffference_free(ptr, 0); + } + /** + * @returns {Differ} + */ + get hue() { + const ret = wasm.__wbg_get_hctdiffference_hue(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set hue(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_hctdiffference_hue(this.__wbg_ptr, ptr0); + } + /** + * @returns {Differ} + */ + get chroma() { + const ret = wasm.__wbg_get_hctdiffference_chroma(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set chroma(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_hctdiffference_chroma(this.__wbg_ptr, ptr0); + } + /** + * @returns {Differ} + */ + get lightness() { + const ret = wasm.__wbg_get_hctdiffference_lightness(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set lightness(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_hctdiffference_lightness(this.__wbg_ptr, ptr0); + } +} + +const OklchDifferenceFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_oklchdifference_free(ptr >>> 0, 1)); + +export class OklchDifference { + + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(OklchDifference.prototype); + obj.__wbg_ptr = ptr; + OklchDifferenceFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + OklchDifferenceFinalization.unregister(this); + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_oklchdifference_free(ptr, 0); + } + /** + * @returns {Differ} + */ + get hue() { + const ret = wasm.__wbg_get_oklchdifference_hue(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set hue(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_oklchdifference_hue(this.__wbg_ptr, ptr0); + } + /** + * @returns {Differ} + */ + get chroma() { + const ret = wasm.__wbg_get_oklchdifference_chroma(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set chroma(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_oklchdifference_chroma(this.__wbg_ptr, ptr0); + } + /** + * @returns {Differ} + */ + get lightness() { + const ret = wasm.__wbg_get_oklchdifference_lightness(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set lightness(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_oklchdifference_lightness(this.__wbg_ptr, ptr0); + } +} + +const RGBDifferenceFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_rgbdifference_free(ptr >>> 0, 1)); + +export class RGBDifference { + + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(RGBDifference.prototype); + obj.__wbg_ptr = ptr; + RGBDifferenceFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + RGBDifferenceFinalization.unregister(this); + return ptr; + } + + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_rgbdifference_free(ptr, 0); + } + /** + * @returns {Differ} + */ + get r() { + const ret = wasm.__wbg_get_rgbdifference_r(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set r(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_rgbdifference_r(this.__wbg_ptr, ptr0); + } + /** + * @returns {Differ} + */ + get g() { + const ret = wasm.__wbg_get_rgbdifference_g(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set g(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_rgbdifference_g(this.__wbg_ptr, ptr0); + } + /** + * @returns {Differ} + */ + get b() { + const ret = wasm.__wbg_get_rgbdifference_b(this.__wbg_ptr); + return Differ.__wrap(ret); + } + /** + * @param {Differ} arg0 + */ + set b(arg0) { + _assertClass(arg0, Differ); + var ptr0 = arg0.__destroy_into_raw(); + wasm.__wbg_set_rgbdifference_b(this.__wbg_ptr, ptr0); + } +} + async function __wbg_load(module, imports) { if (typeof Response === 'function' && module instanceof Response) { if (typeof WebAssembly.instantiateStreaming === 'function') { diff --git a/src/color_functions/color_module_bg.wasm b/src/color_functions/color_module_bg.wasm index 5ffe623..46293de 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 911af20..3afd24c 100644 --- a/src/color_functions/color_module_bg.wasm.d.ts +++ b/src/color_functions/color_module_bg.wasm.d.ts @@ -31,6 +31,43 @@ export const tonal_lighten_series: (a: number, b: number, c: number, d: number) export const tonal_darken_series: (a: number, b: number, c: number, d: number) => [number, number, number, number]; export const color_categories: () => [number, number, number]; export const search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; +export const 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 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 __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 __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 __wbindgen_malloc: (a: number, b: number) => number; export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; export const __wbindgen_export_2: WebAssembly.Table;