canonrs-server 0.1.0

CanonRS server-side rendering support
//! Icon Island — Canon Rule #340
//! Passthrough only. Zero logic, zero transformation.

use leptos::prelude::*;
pub use super::icon_ui::{IconSize, IconVariant};
use super::icon_ui::Icon as IconUi;

#[component]
pub fn Icon(
    #[prop(optional)] children:                        Option<Children>,
    #[prop(default = IconSize::Md)] size:              IconSize,
    #[prop(default = IconVariant::Default)] variant:   IconVariant,
    #[prop(default = false)] spin:                     bool,
    #[prop(into, default = String::new())] class:      String,
    #[prop(into, optional)] id:                        Option<String>,
) -> impl IntoView {
    view! {
        <IconUi size=size variant=variant spin=spin class=class id=id.unwrap_or_default()>
            {children.map(|c| c())}
        </IconUi>
    }
}