use leptos::prelude::*;
use tw_merge::tw_merge;
#[component]
pub fn Accordion(children: Children, #[prop(optional, into)] class: String) -> impl IntoView {
let class = tw_merge!("w-full", class);
view! {
{children()}
}
}
#[component]
pub fn AccordionItem(children: Children, #[prop(optional, into)] class: String) -> impl IntoView {
let class = tw_merge!("border-b", class);
view! { {children()}
}
}
#[component]
pub fn AccordionHeader(children: Children, #[prop(optional, into)] class: String) -> impl IntoView {
let class = tw_merge!("flex", class);
view! { {children()}
}
}
#[component]
pub fn AccordionTrigger(children: Children, #[prop(optional, into)] class: String) -> impl IntoView {
let class = tw_merge!(
"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
class
);
view! {
}
}
#[component]
pub fn AccordionContent(children: Children, #[prop(optional, into)] class: String) -> impl IntoView {
let class = tw_merge!("overflow-hidden text-sm transition-all", class);
view! { {children()}
}
}