daisy_rsx 0.1.56

Daisy UI components for the Dioxus Rust library.
Documentation
use crate::marketing::motion::MotionSpec;

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct LandingPageSpec {
    pub motion: MotionSpec,
    pub hero: HeroBlock,
    pub proof: Option<ProofBlock>,
    pub feature_blocks: Vec<FeatureBlock>,
    pub problem_solution: Option<ProblemSolutionBlock>,
    pub process: Option<ProcessBlock>,
    pub pricing_or_cta: PricingOrCtaBlock,
    pub testimonials: Option<TestimonialsBlock>,
    pub faq: Option<FaqBlock>,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct HeroBlock {
    pub variant: HeroVariant,
    pub title: String,
    pub subtitle: String,
    pub cta_label: Option<String>,
    pub cta_href: Option<String>,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub enum HeroVariant {
    Basic,
    Image { image: String },
    Video { video_id: String, claim: String },
    SplitVideo { video_src: String },
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct ProofBlock {
    pub title: String,
    pub logos: Vec<LogoItem>,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct LogoItem {
    pub src: String,
    pub alt: String,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub enum FeatureBlock {
    SmallImage(SmallImageFeatureBlock),
    Image(ImageFeatureBlock),
    Quad(QuadFeatureBlock),
    Benefits(BenefitsBlock),
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct SmallImageFeatureBlock {
    pub title: String,
    pub sub_title: String,
    pub text: String,
    pub image: String,
    pub flip: bool,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct ImageFeatureBlock {
    pub title: String,
    pub sub_title: String,
    pub image: String,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct QuadItem {
    pub title: String,
    pub text: String,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct QuadFeatureBlock {
    pub title: String,
    pub sub_title: String,
    pub text: String,
    pub items: [QuadItem; 4],
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct BenefitsBlock {
    pub title: String,
    pub subtitle: String,
    pub items: [BenefitItem; 3],
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct BenefitItem {
    pub title: String,
    pub description: String,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct ProblemSolutionBlock {
    pub title: String,
    pub problem: String,
    pub solution: String,
    pub image: String,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct ProcessBlock {
    pub title: String,
    pub description: String,
    pub items: Vec<ProcessItem>,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct ProcessItem {
    pub title: String,
    pub description: String,
    pub icon: String,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub enum PricingOrCtaBlock {
    Cta {
        title: String,
        subtitle: String,
        button_label: String,
        button_href: String,
    },
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct TestimonialsBlock {
    pub title: String,
    pub items: [TestimonialItem; 2],
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct TestimonialItem {
    pub text: String,
    pub job: String,
    pub person: String,
    pub image: String,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct FaqBlock {
    pub title: String,
    pub items: Vec<FaqItem>,
}

#[derive(Clone, PartialEq, Eq, Debug)]
pub struct FaqItem {
    pub question: String,
    pub answer: String,
}