leptos-bootstrap 0.0.2

Bootstrap styled components for leptos.
Documentation
use leptos::prelude::*;
use std::fmt;

pub enum IconKind {
    Circle0,
    Circle0Fill,
    BoxArrowRight,
    BoxArrowInRight,
    CupHot,
    CupHotFill,
    Git,
    Github,
    Heart,
    HeartFill,
    HouseFill,
    PersonFill,
    UiChecks,
    TelephoneOutbound,
    FileEarmarkRichtext,
    People,
}

impl fmt::Display for IconKind {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        let s = match self {
            Self::Circle0 => "bi-0-circle",
            Self::Circle0Fill => "bi-0-circle-fill",
            Self::BoxArrowRight => "bi-box-arrow-right",
            Self::BoxArrowInRight => "bi-box-arrow-in-right",
            Self::CupHot => "bi-cup-hot",
            Self::CupHotFill => "bi-cup-hot-fill",
            Self::Git => "bi-git",
            Self::Github => "bi-github",
            Self::Heart => "bi-heart",
            Self::HeartFill => "bi-heart-fill",
            Self::HouseFill => "bi-house-fill",
            Self::PersonFill => "bi-person-fill",
            Self::UiChecks => "bi-ui-checks",
            Self::TelephoneOutbound => "bi-telephone-outbound",
            Self::FileEarmarkRichtext => "bi-file-earmark-richtext",
            Self::People => "bi-people",
        };
        write!(f, "{}", s)
    }
}

#[component]
pub fn Icon<'a>(kind: IconKind, #[prop(optional, into)] class: &'a str) -> impl IntoView {
    let class = format!("bi {} {}", kind, class);
    view! {
        <i class=class></i>
    }
}