diff --git a/color-module/src/schemes/q_style/scheme_setting.rs b/color-module/src/schemes/q_style/scheme_setting.rs index f405a16..aad1ec7 100644 --- a/color-module/src/schemes/q_style/scheme_setting.rs +++ b/color-module/src/schemes/q_style/scheme_setting.rs @@ -13,6 +13,14 @@ pub struct ColorShifting { pub lightness: f32, } +#[wasm_bindgen] +impl ColorShifting { + #[wasm_bindgen(constructor)] + pub fn new(chroma: f32, lightness: f32) -> Self { + ColorShifting { chroma, lightness } + } +} + impl Mul for Oklch { type Output = Oklch; @@ -143,3 +151,27 @@ impl Default for SchemeSetting { } } } + +#[wasm_bindgen] +impl SchemeSetting { + #[wasm_bindgen(constructor)] + pub fn new( + hover: ColorShifting, + active: ColorShifting, + focus: ColorShifting, + disabled: ColorShifting, + dark_convert: ColorShifting, + expand_method: ColorExpand, + wacg_follows: WACGSetting, + ) -> Self { + SchemeSetting { + hover, + active, + focus, + disabled, + dark_convert, + expand_method, + wacg_follows, + } + } +} diff --git a/src/color_functions/color_module.d.ts b/src/color_functions/color_module.d.ts index d09db1a..7fa0a0e 100644 --- a/src/color_functions/color_module.d.ts +++ b/src/color_functions/color_module.d.ts @@ -64,8 +64,8 @@ export enum WACGSetting { AutomaticAAA = 2, } export class ColorShifting { - private constructor(); free(): void; + constructor(chroma: number, lightness: number); chroma: number; lightness: number; } @@ -112,8 +112,8 @@ export class RGBDifference { b: Differ; } export class SchemeSetting { - private constructor(); free(): void; + constructor(hover: ColorShifting, active: ColorShifting, focus: ColorShifting, disabled: ColorShifting, dark_convert: ColorShifting, expand_method: ColorExpand, wacg_follows: WACGSetting); hover: ColorShifting; active: ColorShifting; focus: ColorShifting; @@ -182,15 +182,6 @@ 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 __wbg_mixreversing_free: (a: number, b: number) => void; - readonly __wbg_get_mixreversing_r_factor: (a: number) => number; - readonly __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; - readonly __wbg_get_mixreversing_g_factor: (a: number) => number; - readonly __wbg_set_mixreversing_g_factor: (a: number, b: number) => void; - readonly __wbg_get_mixreversing_b_factor: (a: number) => number; - readonly __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; - readonly __wbg_get_mixreversing_average: (a: number) => number; - readonly __wbg_set_mixreversing_average: (a: number, b: number) => void; readonly color_categories: () => [number, number, number]; readonly search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; readonly __wbg_colorshifting_free: (a: number, b: number) => void; @@ -198,6 +189,7 @@ export interface InitOutput { readonly __wbg_set_colorshifting_chroma: (a: number, b: number) => void; readonly __wbg_get_colorshifting_lightness: (a: number) => number; readonly __wbg_set_colorshifting_lightness: (a: number, b: number) => void; + readonly colorshifting_new: (a: number, b: number) => number; readonly __wbg_schemesetting_free: (a: number, b: number) => void; readonly __wbg_get_schemesetting_hover: (a: number) => number; readonly __wbg_set_schemesetting_hover: (a: number, b: number) => void; @@ -213,11 +205,21 @@ export interface InitOutput { readonly __wbg_set_schemesetting_expand_method: (a: number, b: number) => void; readonly __wbg_get_schemesetting_wacg_follows: (a: number) => number; readonly __wbg_set_schemesetting_wacg_follows: (a: number, b: number) => void; + readonly schemesetting_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number; readonly generate_material_design_3_scheme: (a: number, b: number, c: number, d: number, e: any) => [number, number, number]; readonly generate_material_design_2_scheme: (a: number, b: number, c: number, d: number, e: number, f: number, g: any) => [number, number, number]; readonly generate_q_scheme_automatically: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number, number]; readonly generate_q_scheme_manually: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number) => [number, number, number]; readonly generate_swatch_scheme: (a: number, b: number, c: number) => [number, number, number]; + readonly __wbg_mixreversing_free: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_r_factor: (a: number) => number; + readonly __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_g_factor: (a: number) => number; + readonly __wbg_set_mixreversing_g_factor: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_b_factor: (a: number) => number; + readonly __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; + readonly __wbg_get_mixreversing_average: (a: number) => number; + readonly __wbg_set_mixreversing_average: (a: number, b: number) => void; readonly __wbg_hsldifference_free: (a: number, b: number) => void; readonly __wbg_get_hsldifference_hue: (a: number) => number; readonly __wbg_set_hsldifference_hue: (a: number, b: number) => void; diff --git a/src/color_functions/color_module.js b/src/color_functions/color_module.js index 547465b..0f408ba 100644 --- a/src/color_functions/color_module.js +++ b/src/color_functions/color_module.js @@ -1261,6 +1261,16 @@ export class ColorShifting { set lightness(arg0) { wasm.__wbg_set_colorshifting_lightness(this.__wbg_ptr, arg0); } + /** + * @param {number} chroma + * @param {number} lightness + */ + constructor(chroma, lightness) { + const ret = wasm.colorshifting_new(chroma, lightness); + this.__wbg_ptr = ret >>> 0; + ColorShiftingFinalization.register(this, this.__wbg_ptr, this); + return this; + } } const DifferFinalization = (typeof FinalizationRegistry === 'undefined') @@ -1809,6 +1819,31 @@ export class SchemeSetting { set wacg_follows(arg0) { wasm.__wbg_set_schemesetting_wacg_follows(this.__wbg_ptr, arg0); } + /** + * @param {ColorShifting} hover + * @param {ColorShifting} active + * @param {ColorShifting} focus + * @param {ColorShifting} disabled + * @param {ColorShifting} dark_convert + * @param {ColorExpand} expand_method + * @param {WACGSetting} wacg_follows + */ + constructor(hover, active, focus, disabled, dark_convert, expand_method, wacg_follows) { + _assertClass(hover, ColorShifting); + var ptr0 = hover.__destroy_into_raw(); + _assertClass(active, ColorShifting); + var ptr1 = active.__destroy_into_raw(); + _assertClass(focus, ColorShifting); + var ptr2 = focus.__destroy_into_raw(); + _assertClass(disabled, ColorShifting); + var ptr3 = disabled.__destroy_into_raw(); + _assertClass(dark_convert, ColorShifting); + var ptr4 = dark_convert.__destroy_into_raw(); + const ret = wasm.schemesetting_new(ptr0, ptr1, ptr2, ptr3, ptr4, expand_method, wacg_follows); + this.__wbg_ptr = ret >>> 0; + SchemeSettingFinalization.register(this, this.__wbg_ptr, this); + return this; + } } const SwatchEntryFinalization = (typeof FinalizationRegistry === 'undefined') diff --git a/src/color_functions/color_module_bg.wasm b/src/color_functions/color_module_bg.wasm index 7e39eb4..28dc56b 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 02d67f7..22688f0 100644 --- a/src/color_functions/color_module_bg.wasm.d.ts +++ b/src/color_functions/color_module_bg.wasm.d.ts @@ -41,15 +41,6 @@ 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_mixreversing_free: (a: number, b: number) => void; -export const __wbg_get_mixreversing_r_factor: (a: number) => number; -export const __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; -export const __wbg_get_mixreversing_g_factor: (a: number) => number; -export const __wbg_set_mixreversing_g_factor: (a: number, b: number) => void; -export const __wbg_get_mixreversing_b_factor: (a: number) => number; -export const __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; -export const __wbg_get_mixreversing_average: (a: number) => number; -export const __wbg_set_mixreversing_average: (a: number, b: number) => void; export const color_categories: () => [number, number, number]; export const search_color_cards: (a: number, b: number, c: number, d: number) => [number, number, number]; export const __wbg_colorshifting_free: (a: number, b: number) => void; @@ -57,6 +48,7 @@ export const __wbg_get_colorshifting_chroma: (a: number) => number; export const __wbg_set_colorshifting_chroma: (a: number, b: number) => void; export const __wbg_get_colorshifting_lightness: (a: number) => number; export const __wbg_set_colorshifting_lightness: (a: number, b: number) => void; +export const colorshifting_new: (a: number, b: number) => number; export const __wbg_schemesetting_free: (a: number, b: number) => void; export const __wbg_get_schemesetting_hover: (a: number) => number; export const __wbg_set_schemesetting_hover: (a: number, b: number) => void; @@ -72,11 +64,21 @@ export const __wbg_get_schemesetting_expand_method: (a: number) => number; export const __wbg_set_schemesetting_expand_method: (a: number, b: number) => void; export const __wbg_get_schemesetting_wacg_follows: (a: number) => number; export const __wbg_set_schemesetting_wacg_follows: (a: number, b: number) => void; +export const schemesetting_new: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => number; export const generate_material_design_3_scheme: (a: number, b: number, c: number, d: number, e: any) => [number, number, number]; export const generate_material_design_2_scheme: (a: number, b: number, c: number, d: number, e: number, f: number, g: any) => [number, number, number]; export const generate_q_scheme_automatically: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number) => [number, number, number]; export const generate_q_scheme_manually: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number, t: number, u: number) => [number, number, number]; export const generate_swatch_scheme: (a: number, b: number, c: number) => [number, number, number]; +export const __wbg_mixreversing_free: (a: number, b: number) => void; +export const __wbg_get_mixreversing_r_factor: (a: number) => number; +export const __wbg_set_mixreversing_r_factor: (a: number, b: number) => void; +export const __wbg_get_mixreversing_g_factor: (a: number) => number; +export const __wbg_set_mixreversing_g_factor: (a: number, b: number) => void; +export const __wbg_get_mixreversing_b_factor: (a: number) => number; +export const __wbg_set_mixreversing_b_factor: (a: number, b: number) => void; +export const __wbg_get_mixreversing_average: (a: number) => number; +export const __wbg_set_mixreversing_average: (a: number, b: number) => void; export const __wbg_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; diff --git a/src/q-scheme.ts b/src/q-scheme.ts index addcef2..9cc001b 100644 --- a/src/q-scheme.ts +++ b/src/q-scheme.ts @@ -1,3 +1,4 @@ +import { SchemeSetting } from './color_functions/color_module'; import { ColorShifting } from './models'; export type ColorSet = { @@ -54,7 +55,7 @@ export type QSchemeSource = { info: string | null; foreground: string | null; background: strin | nullg; - setting: QSchemeSetting | null; + setting: SchemeSetting | null; }; export type QSchemeStorage = {