canonrs-server 0.1.0

CanonRS server-side rendering support
#![allow(unreachable_pub, dead_code)]

use leptos::prelude::*;
use canonrs_core::primitives::{SheetPrimitive, SheetTriggerPrimitive, SheetOverlayPrimitive, SheetContentPrimitive, SheetSide};
use canonrs_core::primitives::SheetPortalPrimitive;
use canonrs_core::meta::VisibilityState;

#[component]
pub fn Sheet(
    children: Children,
    #[prop(default = SheetSide::Right)] side: SheetSide,
    #[prop(default = VisibilityState::Closed)] state: VisibilityState,
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! {
        <SheetPrimitive side=side state=state class=class>
            {children()}
        </SheetPrimitive>
    }
}

#[component]
pub fn SheetOverlay(
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! { <SheetOverlayPrimitive class=class /> }
}

#[component]
pub fn SheetContent(
    children: Children,
    #[prop(into)] aria_labelledby: String,
    #[prop(into, default = String::new())] class: String,
    #[prop(optional, into)] aria_describedby: Option<String>,
) -> impl IntoView {
    view! {
        <SheetContentPrimitive
            class=class
            aria_labelledby=aria_labelledby
            aria_describedby=aria_describedby.unwrap_or_default()
        >
            {children()}
        </SheetContentPrimitive>
    }
}


#[component]
pub fn SheetTrigger(
    children: Children,
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! { <SheetTriggerPrimitive class=class>{children()}</SheetTriggerPrimitive> }
}

#[component]
pub fn SheetPortal(
    children: Children,
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    view! { <SheetPortalPrimitive class=class>{children()}</SheetPortalPrimitive> }
}