leptos-bootstrap 0.0.3

Bootstrap styled components for leptos.
Documentation
use leptos::prelude::*;
use uuid::Uuid;

#[component]
pub fn Accordion<'a>(#[prop(optional, into)] class: &'a str, children: Children) -> impl IntoView {
    let class = format!("accordion {}", class);
    view! { <div class=class>{children()}</div> }
}

#[component]
pub fn AccordionItem<'a>(
    header: &'a str,
    #[prop(optional)] class: &'a str,
    children: Children,
) -> impl IntoView {
    let class = format!("accordion-item {}", class);
    let id = Uuid::new_v4();
    let hash_id = format!("#{}", id);
    view! {
        <div class=class>
            <h2 class="accordion-header">
                <button
                    class="accordion-button collapsed"
                    type="button"
                    data-bs-toggle="collapse"
                    data-bs-target=hash_id
                >
                    {header}
                </button>
            </h2>
            <div id=id.to_string() class="accordion-collapse collapse">
                <div class="accordion-body">{children()}</div>
            </div>
        </div>
    }
}