canonrs-server 0.1.0

CanonRS server-side rendering support
#![allow(unreachable_pub, dead_code)]
use leptos::prelude::*;
use canonrs_core::meta::{DisabledState, LoadingState, ToggleState};
use canonrs_core::primitives::IconButtonPrimitive;
pub use canonrs_core::primitives::{IconButtonSize, IconButtonVariant};

#[component]
pub fn IconButton(
    children: Children,
    aria_label: String,
    #[prop(default = IconButtonSize::Md)] size: IconButtonSize,
    #[prop(default = IconButtonVariant::Default)] variant: IconButtonVariant,
    #[prop(default = DisabledState::Enabled)] disabled: DisabledState,
    #[prop(default = LoadingState::Idle)] loading: LoadingState,
    #[prop(optional)] pressed: Option<ToggleState>,
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! {
        <IconButtonPrimitive
            aria_label=aria_label
            size=size
            variant=variant
            disabled=disabled
            loading=loading
            pressed=pressed.unwrap_or_default()
            class=class
        >
            {children()}
        </IconButtonPrimitive>
    }
}