fission-theme 0.3.0

Design tokens, Design System Package codegen output, and component themes for Fission
Documentation
fn main() {
    generate(
        "default",
        "generated_default_design_system.rs",
        "FissionDefaultDesignSystem",
    );
    generate(
        "material3",
        "generated_material3_design_system.rs",
        "FissionMaterialDesign3DesignSystem",
    );
    generate(
        "fluent2",
        "generated_fluent2_design_system.rs",
        "FissionFluent2DesignSystem",
    );
    generate(
        "liquid-glass",
        "generated_liquid_glass_design_system.rs",
        "FissionLiquidGlassDesignSystem",
    );
    generate(
        "cupertino",
        "generated_cupertino_design_system.rs",
        "FissionCupertinoDesignSystem",
    );
}

fn generate(directory: &str, out_file: &str, type_name: &str) {
    println!("cargo:rerun-if-changed=design/{directory}/dsp.json");
    println!("cargo:rerun-if-changed=design/{directory}/tokens.json");
    fission_design_system_codegen::generate(fission_design_system_codegen::Config {
        dsp_path: format!("design/{directory}/dsp.json").into(),
        out_file: out_file.into(),
        type_name: type_name.into(),
        crate_path: "crate".into(),
    })
    .unwrap_or_else(|error| {
        panic!("failed to generate {directory} Fission design system: {error}")
    });
}