From 0369f238f21de1fb79418cfbaed7bf3ea7783764 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BE=90=E6=B6=9B?= Date: Sat, 8 Feb 2025 16:38:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86M3=20Scheme=E7=9A=84=E9=A2=9C=E8=89=B2?= =?UTF-8?q?=E7=94=9F=E6=88=90=E4=BB=8ECam16Jch=E9=87=8D=E6=9E=84=E4=B8=BAL?= =?UTF-8?q?ch=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- color-module/src/convert/mod.rs | 29 ++- .../src/schemes/material_design_3/baseline.rs | 10 +- .../schemes/material_design_3/color_set.rs | 40 +-- .../src/schemes/material_design_3/mod.rs | 42 ++- .../src/schemes/material_design_3/surface.rs | 50 ++-- .../material_design_3/tonal_palette.rs | 28 +- src/color_functions/color_module.d.ts | 76 +++--- src/color_functions/color_module.js | 246 +++++++++--------- src/color_functions/color_module_bg.wasm | Bin 698970 -> 698867 bytes src/color_functions/color_module_bg.wasm.d.ts | 60 ++--- 10 files changed, 296 insertions(+), 285 deletions(-) diff --git a/color-module/src/convert/mod.rs b/color-module/src/convert/mod.rs index e365909..b1429fb 100644 --- a/color-module/src/convert/mod.rs +++ b/color-module/src/convert/mod.rs @@ -2,9 +2,10 @@ use palette::{ cam16::{Cam16Jch, Parameters}, convert::FromColorUnclamped, luma::Luma, - Hsl, IntoColor, IsWithinBounds, Lchuv, Oklab, Oklch, Srgb, + Hsl, IntoColor, IsWithinBounds, Lch, Lchuv, Oklab, Oklch, Srgb, }; +#[allow(dead_code)] pub fn map_cam16jch_to_srgb(origin: &Cam16Jch) -> Srgb { let original_xyz = origin.into_xyz(Parameters::default_static_wp(40.0)); let mut new_srgb = Srgb::from_color_unclamped(original_xyz); @@ -28,10 +29,36 @@ pub fn map_cam16jch_to_srgb(origin: &Cam16Jch) -> Srgb { } } +#[allow(dead_code)] pub fn map_cam16jch_to_srgb_hex(origin: &Cam16Jch) -> String { format!("{:x}", map_cam16jch_to_srgb(origin).into_format::()) } +pub fn map_lch_to_srgb(origin: &Lch) -> Srgb { + let mut new_srgb: Srgb = (*origin).into_color(); + if new_srgb.is_within_bounds() { + return new_srgb; + } + + let mut c: f32 = origin.chroma; + let original_c = c; + let h = origin.hue; + let l = origin.l; + + loop { + let new_lch = Lch::new(l, c, h); + new_srgb = new_lch.into_color(); + c -= original_c / 1000.0; + if c > 0.0 && (new_srgb.is_within_bounds()) { + break new_srgb; + } + } +} + +pub fn map_lch_to_srgb_hex(origin: &Lch) -> String { + format!("{:x}", map_lch_to_srgb(origin).into_format::()) +} + pub fn map_hsl_to_srgb(origin: &Hsl) -> Srgb { let mut new_original = Hsl::new(origin.hue, origin.saturation, origin.lightness); const FACTOR: f32 = 0.99; diff --git a/color-module/src/schemes/material_design_3/baseline.rs b/color-module/src/schemes/material_design_3/baseline.rs index e8555f6..92b643b 100644 --- a/color-module/src/schemes/material_design_3/baseline.rs +++ b/color-module/src/schemes/material_design_3/baseline.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use serde::Serialize; -use crate::convert::map_cam16jch_to_srgb_hex; +use crate::convert::map_lch_to_srgb_hex; use super::{color_set::M3ColorSet, surface::M3SurfaceSet, tonal_palette::TonalPalette}; @@ -62,10 +62,10 @@ impl M3BaselineColors { tertiary, error, surface, - outline: map_cam16jch_to_srgb_hex(&outline), - outline_variant: map_cam16jch_to_srgb_hex(&outline_variant), - scrim: map_cam16jch_to_srgb_hex(&scrim), - shadow: map_cam16jch_to_srgb_hex(&shadow), + outline: map_lch_to_srgb_hex(&outline), + outline_variant: map_lch_to_srgb_hex(&outline_variant), + scrim: map_lch_to_srgb_hex(&scrim), + shadow: map_lch_to_srgb_hex(&shadow), customs: HashMap::new(), dark_set, } diff --git a/color-module/src/schemes/material_design_3/color_set.rs b/color-module/src/schemes/material_design_3/color_set.rs index 1f8f0f7..da9f1fa 100644 --- a/color-module/src/schemes/material_design_3/color_set.rs +++ b/color-module/src/schemes/material_design_3/color_set.rs @@ -1,6 +1,6 @@ use serde::Serialize; -use crate::convert::map_cam16jch_to_srgb_hex; +use crate::convert::map_lch_to_srgb_hex; use super::tonal_palette::TonalPalette; @@ -22,7 +22,7 @@ impl M3ColorSet { let root = palette.tone(40.0); let on_root = palette.tone(100.0); let container = palette.tone(90.0); - let on_container = palette.tone(10.0); + let on_container = palette.tone(30.0); let fixed = palette.tone(90.0); let fixed_dim = palette.tone(80.0); let on_fixed = palette.tone(10.0); @@ -30,15 +30,15 @@ impl M3ColorSet { let inverse = palette.tone(80.0); Self { - root: map_cam16jch_to_srgb_hex(&root), - on_root: map_cam16jch_to_srgb_hex(&on_root), - container: map_cam16jch_to_srgb_hex(&container), - on_conatiner: map_cam16jch_to_srgb_hex(&on_container), - fixed: map_cam16jch_to_srgb_hex(&fixed), - fixed_dim: map_cam16jch_to_srgb_hex(&fixed_dim), - on_fixed: map_cam16jch_to_srgb_hex(&on_fixed), - fixed_variant: map_cam16jch_to_srgb_hex(&fixed_variant), - inverse: map_cam16jch_to_srgb_hex(&inverse), + root: map_lch_to_srgb_hex(&root), + on_root: map_lch_to_srgb_hex(&on_root), + container: map_lch_to_srgb_hex(&container), + on_conatiner: map_lch_to_srgb_hex(&on_container), + fixed: map_lch_to_srgb_hex(&fixed), + fixed_dim: map_lch_to_srgb_hex(&fixed_dim), + on_fixed: map_lch_to_srgb_hex(&on_fixed), + fixed_variant: map_lch_to_srgb_hex(&fixed_variant), + inverse: map_lch_to_srgb_hex(&inverse), } } @@ -54,15 +54,15 @@ impl M3ColorSet { let inverse = palette.tone(40.0); Self { - root: map_cam16jch_to_srgb_hex(&root), - on_root: map_cam16jch_to_srgb_hex(&on_root), - container: map_cam16jch_to_srgb_hex(&container), - on_conatiner: map_cam16jch_to_srgb_hex(&on_container), - fixed: map_cam16jch_to_srgb_hex(&fixed), - fixed_dim: map_cam16jch_to_srgb_hex(&fixed_dim), - on_fixed: map_cam16jch_to_srgb_hex(&on_fixed), - fixed_variant: map_cam16jch_to_srgb_hex(&fixed_variant), - inverse: map_cam16jch_to_srgb_hex(&inverse), + root: map_lch_to_srgb_hex(&root), + on_root: map_lch_to_srgb_hex(&on_root), + container: map_lch_to_srgb_hex(&container), + on_conatiner: map_lch_to_srgb_hex(&on_container), + fixed: map_lch_to_srgb_hex(&fixed), + fixed_dim: map_lch_to_srgb_hex(&fixed_dim), + on_fixed: map_lch_to_srgb_hex(&on_fixed), + fixed_variant: map_lch_to_srgb_hex(&fixed_variant), + inverse: map_lch_to_srgb_hex(&inverse), } } diff --git a/color-module/src/schemes/material_design_3/mod.rs b/color-module/src/schemes/material_design_3/mod.rs index d3cbc2c..d590326 100644 --- a/color-module/src/schemes/material_design_3/mod.rs +++ b/color-module/src/schemes/material_design_3/mod.rs @@ -1,12 +1,11 @@ use std::str::FromStr; use baseline::M3BaselineColors; -use palette::cam16::{Cam16Jch, Parameters}; -use palette::{IntoColor, Srgb}; +use palette::{IntoColor, Lch, Srgb}; use serde::Serialize; use tonal_palette::TonalPalette; -use crate::convert::map_cam16jch_to_srgb_hex; +use crate::convert::map_lch_to_srgb_hex; use crate::errors; use super::SchemeExport; @@ -26,20 +25,14 @@ pub struct MaterialDesign3Scheme { impl MaterialDesign3Scheme { pub fn new(source_color: &str, error_color: &str) -> Result { - let source = Cam16Jch::from_xyz( - Srgb::from_str(source_color) - .map_err(|_| errors::ColorError::UnrecogniazedRGB(source_color.to_string()))? - .into_format::() - .into_color(), - Parameters::default_static_wp(40.0), - ); - let error = Cam16Jch::from_xyz( - Srgb::from_str(error_color) - .map_err(|_| errors::ColorError::UnrecogniazedRGB(error_color.to_string()))? - .into_format::() - .into_color(), - Parameters::default_static_wp(40.0), - ); + let source: Lch = Srgb::from_str(source_color) + .map_err(|_| errors::ColorError::UnrecogniazedRGB(source_color.to_string()))? + .into_format::() + .into_color(); + let error: Lch = Srgb::from_str(error_color) + .map_err(|_| errors::ColorError::UnrecogniazedRGB(error_color.to_string()))? + .into_format::() + .into_color(); let source_hue = source.hue.into_positive_degrees(); let p = TonalPalette::from_hue_and_chroma(source_hue, source.chroma); let s = TonalPalette::from_hue_and_chroma(source_hue, source.chroma / 3.0); @@ -49,8 +42,8 @@ impl MaterialDesign3Scheme { let e = TonalPalette::from_hue_and_chroma(error.hue.into_positive_degrees(), 84.0); Ok(Self { - white: map_cam16jch_to_srgb_hex(&Cam16Jch::new(100.0, 0.0, 0.0)), - black: map_cam16jch_to_srgb_hex(&Cam16Jch::new(0.0, 0.0, 0.0)), + white: map_lch_to_srgb_hex(&Lch::new(100.0, 0.0, 0.0)), + black: map_lch_to_srgb_hex(&Lch::new(0.0, 0.0, 0.0)), light_baseline: M3BaselineColors::new(&p, &s, &t, &n, &nv, &e, false), dark_baseline: M3BaselineColors::new(&p, &s, &t, &n, &nv, &e, true), }) @@ -61,13 +54,10 @@ impl MaterialDesign3Scheme { name: String, color: String, ) -> Result<(), errors::ColorError> { - let custom_color = Cam16Jch::from_xyz( - Srgb::from_str(&color) - .map_err(|_| errors::ColorError::UnrecogniazedRGB(color.clone()))? - .into_format::() - .into_color(), - Parameters::default_static_wp(40.0), - ); + let custom_color: Lch = Srgb::from_str(&color) + .map_err(|_| errors::ColorError::UnrecogniazedRGB(color.clone()))? + .into_format::() + .into_color(); let hue = custom_color.hue.into_positive_degrees(); let palette = TonalPalette::from_hue_and_chroma(hue, custom_color.chroma); self.light_baseline.add_custom_set(name.clone(), &palette); diff --git a/color-module/src/schemes/material_design_3/surface.rs b/color-module/src/schemes/material_design_3/surface.rs index 55874f8..ad62315 100644 --- a/color-module/src/schemes/material_design_3/surface.rs +++ b/color-module/src/schemes/material_design_3/surface.rs @@ -1,6 +1,6 @@ use serde::Serialize; -use crate::convert::map_cam16jch_to_srgb_hex; +use crate::convert::map_lch_to_srgb_hex; use super::tonal_palette::TonalPalette; @@ -36,18 +36,18 @@ impl M3SurfaceSet { let on_inverse = neutral_variant.tone(95.0); Self { - root: map_cam16jch_to_srgb_hex(&root), - dim: map_cam16jch_to_srgb_hex(&dim), - bright: map_cam16jch_to_srgb_hex(&bright), - container: map_cam16jch_to_srgb_hex(&container), - container_lowest: map_cam16jch_to_srgb_hex(&container_lowest), - container_low: map_cam16jch_to_srgb_hex(&container_low), - container_high: map_cam16jch_to_srgb_hex(&container_high), - container_highest: map_cam16jch_to_srgb_hex(&container_highest), - on_root: map_cam16jch_to_srgb_hex(&on_root), - on_root_variant: map_cam16jch_to_srgb_hex(&on_root_variant), - inverse: map_cam16jch_to_srgb_hex(&inverse), - on_inverse: map_cam16jch_to_srgb_hex(&on_inverse), + root: map_lch_to_srgb_hex(&root), + dim: map_lch_to_srgb_hex(&dim), + bright: map_lch_to_srgb_hex(&bright), + container: map_lch_to_srgb_hex(&container), + container_lowest: map_lch_to_srgb_hex(&container_lowest), + container_low: map_lch_to_srgb_hex(&container_low), + container_high: map_lch_to_srgb_hex(&container_high), + container_highest: map_lch_to_srgb_hex(&container_highest), + on_root: map_lch_to_srgb_hex(&on_root), + on_root_variant: map_lch_to_srgb_hex(&on_root_variant), + inverse: map_lch_to_srgb_hex(&inverse), + on_inverse: map_lch_to_srgb_hex(&on_inverse), } } @@ -66,18 +66,18 @@ impl M3SurfaceSet { let on_inverse = neutral_variant.tone(20.0); Self { - root: map_cam16jch_to_srgb_hex(&root), - dim: map_cam16jch_to_srgb_hex(&dim), - bright: map_cam16jch_to_srgb_hex(&bright), - container: map_cam16jch_to_srgb_hex(&container), - container_lowest: map_cam16jch_to_srgb_hex(&container_lowest), - container_low: map_cam16jch_to_srgb_hex(&container_low), - container_high: map_cam16jch_to_srgb_hex(&container_high), - container_highest: map_cam16jch_to_srgb_hex(&container_highest), - on_root: map_cam16jch_to_srgb_hex(&on_root), - on_root_variant: map_cam16jch_to_srgb_hex(&on_root_variant), - inverse: map_cam16jch_to_srgb_hex(&inverse), - on_inverse: map_cam16jch_to_srgb_hex(&on_inverse), + root: map_lch_to_srgb_hex(&root), + dim: map_lch_to_srgb_hex(&dim), + bright: map_lch_to_srgb_hex(&bright), + container: map_lch_to_srgb_hex(&container), + container_lowest: map_lch_to_srgb_hex(&container_lowest), + container_low: map_lch_to_srgb_hex(&container_low), + container_high: map_lch_to_srgb_hex(&container_high), + container_highest: map_lch_to_srgb_hex(&container_highest), + on_root: map_lch_to_srgb_hex(&on_root), + on_root_variant: map_lch_to_srgb_hex(&on_root_variant), + inverse: map_lch_to_srgb_hex(&inverse), + on_inverse: map_lch_to_srgb_hex(&on_inverse), } } diff --git a/color-module/src/schemes/material_design_3/tonal_palette.rs b/color-module/src/schemes/material_design_3/tonal_palette.rs index 9f5ed2f..aa26b28 100644 --- a/color-module/src/schemes/material_design_3/tonal_palette.rs +++ b/color-module/src/schemes/material_design_3/tonal_palette.rs @@ -1,15 +1,12 @@ use std::str::FromStr; -use palette::{ - cam16::{Cam16Jch, Parameters}, - IntoColor, Srgb, -}; +use palette::{cam16::Cam16Jch, IntoColor, Lch, Srgb}; use crate::errors; #[derive(Debug, Clone)] pub struct TonalPalette { - pub key_color: Cam16Jch, + pub key_color: Lch, } #[inline] @@ -30,7 +27,7 @@ fn find_max_chroma(cache: &mut Vec<(f32, f32)>, hue: f32, tone: f32) -> f32 { chroma } -fn from_hue_and_chroma(hue: f32, chroma: f32) -> Cam16Jch { +fn from_hue_and_chroma(hue: f32, chroma: f32) -> Lch { let mut max_chroma_cache = Vec::new(); let hue = if hue >= 360.0 { hue - 360.0 } else { hue }; const PIVOT_TONE: f32 = 50.0; @@ -51,7 +48,7 @@ fn from_hue_and_chroma(hue: f32, chroma: f32) -> Cam16Jch { upper_tone = mid_tone; } else { if approximately_equal(lower_tone, mid_tone) { - return Cam16Jch::new(lower_tone, chroma, hue); + return Lch::new(lower_tone, chroma, hue); } lower_tone = mid_tone; } @@ -63,20 +60,17 @@ fn from_hue_and_chroma(hue: f32, chroma: f32) -> Cam16Jch { } } } - Cam16Jch::new(lower_tone, chroma, hue) + Lch::new(lower_tone, chroma, hue) } impl TryFrom for TonalPalette { type Error = errors::ColorError; fn try_from(value: String) -> Result { - let key_color = Cam16Jch::from_xyz( - Srgb::from_str(&value) - .map_err(|_| errors::ColorError::UnrecogniazedRGB(value))? - .into_format::() - .into_color(), - Parameters::default_static_wp(40.0), - ); + let key_color: Lch = Srgb::from_str(&value) + .map_err(|_| errors::ColorError::UnrecogniazedRGB(value))? + .into_format::() + .into_color(); Ok(TonalPalette { key_color }) } } @@ -87,8 +81,8 @@ impl TonalPalette { TonalPalette { key_color } } - pub fn tone(&self, tone: f32) -> Cam16Jch { - let toned_color = Cam16Jch::new(tone, self.key_color.chroma, self.key_color.hue); + pub fn tone(&self, tone: f32) -> Lch { + let toned_color = Lch::new(tone, self.key_color.chroma, self.key_color.hue); toned_color } diff --git a/src/color_functions/color_module.d.ts b/src/color_functions/color_module.d.ts index 1f025e4..71ef8ea 100644 --- a/src/color_functions/color_module.d.ts +++ b/src/color_functions/color_module.d.ts @@ -24,6 +24,14 @@ 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 function q_scheme_color_expanding_methods(): any; +export function q_scheme_wacg_settings(): any; +export function q_scheme_default_settings(): SchemeSetting; export function shift_hue(color: string, degree: number): string; export function analogous_30(color: string): string[]; export function analogous_60(color: string): string[]; @@ -42,14 +50,6 @@ export function oklch_to_hex(l: number, c: number, h: number): string; export function represent_hct(color: string): Float32Array; export function hct_to_hex(hue: number, chroma: number, tone: number): string; export function wacg_relative_contrast(fg_color: string, bg_color: string): number; -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 q_scheme_color_expanding_methods(): any; -export function q_scheme_wacg_settings(): any; -export function q_scheme_default_settings(): SchemeSetting; export enum ColorExpand { Complementary = 0, Analogous = 1, @@ -210,36 +210,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_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 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_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 __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; @@ -249,6 +219,18 @@ 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 __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_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 __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; @@ -284,6 +266,24 @@ export interface InitOutput { readonly q_scheme_color_expanding_methods: () => [number, number, number]; readonly q_scheme_wacg_settings: () => [number, number, number]; readonly q_scheme_default_settings: () => 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 __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; diff --git a/src/color_functions/color_module.js b/src/color_functions/color_module.js index ad01a7c..97a911d 100644 --- a/src/color_functions/color_module.js +++ b/src/color_functions/color_module.js @@ -704,6 +704,129 @@ export function shade(color, percent) { } } +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; +} + +/** + * @returns {any} + */ +export function q_scheme_color_expanding_methods() { + const ret = wasm.q_scheme_color_expanding_methods(); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); +} + +/** + * @returns {any} + */ +export function q_scheme_wacg_settings() { + const ret = wasm.q_scheme_wacg_settings(); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return takeFromExternrefTable0(ret[0]); +} + +/** + * @returns {SchemeSetting} + */ +export function q_scheme_default_settings() { + const ret = wasm.q_scheme_default_settings(); + return SchemeSetting.__wrap(ret); +} + /** * @param {string} color * @param {number} degree @@ -730,16 +853,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[]} @@ -1084,119 +1197,6 @@ export function wacg_relative_contrast(fg_color, bg_color) { return ret[0]; } -/** - * @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; -} - -/** - * @returns {any} - */ -export function q_scheme_color_expanding_methods() { - const ret = wasm.q_scheme_color_expanding_methods(); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); -} - -/** - * @returns {any} - */ -export function q_scheme_wacg_settings() { - const ret = wasm.q_scheme_wacg_settings(); - if (ret[2]) { - throw takeFromExternrefTable0(ret[1]); - } - return takeFromExternrefTable0(ret[0]); -} - -/** - * @returns {SchemeSetting} - */ -export function q_scheme_default_settings() { - const ret = wasm.q_scheme_default_settings(); - return SchemeSetting.__wrap(ret); -} - /** * @enum {0 | 1 | 2 | 3 | 4 | 5 | 6} */ diff --git a/src/color_functions/color_module_bg.wasm b/src/color_functions/color_module_bg.wasm index b7e804314e6648f1bc5f6cb73fd472ead30dad90..4807c3a7d5e83fe1218f555750ea618bef42fa6d 100644 GIT binary patch delta 75007 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 Ab^rhX delta 75686 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 diff --git a/src/color_functions/color_module_bg.wasm.d.ts b/src/color_functions/color_module_bg.wasm.d.ts index 4a8a549..1de2131 100644 --- a/src/color_functions/color_module_bg.wasm.d.ts +++ b/src/color_functions/color_module_bg.wasm.d.ts @@ -63,36 +63,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_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 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_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 __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; @@ -102,6 +72,18 @@ 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_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_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 __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; @@ -137,6 +119,24 @@ export const tonal_darken_series: (a: number, b: number, c: number, d: 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; +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 __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;