soma-ui 0.1.1

A Leptos 0.8 component library: 160+ accessible UI components, blocks, charts, and a ChartDB-style schema diagram — with a prebuilt stylesheet.
Documentation
use leptos::prelude::*;

#[derive(Debug, Clone, PartialEq, Default)]
pub enum StatusKind {
    #[default]
    Online,
    Offline,
    Away,
    Busy,
}

#[component]
pub fn Status(
    #[prop(default = StatusKind::Online)] kind: StatusKind,
    #[prop(optional)] label: Option<String>,
    #[prop(default = String::new())] class: String,
) -> impl IntoView {
    let dot_class = match kind {
        StatusKind::Online => "bg-success",
        StatusKind::Offline => "bg-muted-foreground",
        StatusKind::Away => "bg-yellow-500",
        StatusKind::Busy => "bg-destructive",
    };
    let combined = format!("inline-flex items-center gap-2 {}", class);
    view! {
        <span class=combined>
            <span class=format!("h-2 w-2 rounded-full {}", dot_class)></span>
            {label.map(|l| view! { <span class="text-sm text-muted-foreground">{l}</span> })}
        </span>
    }
}