canonrs-server 0.1.0

CanonRS server-side rendering support
#![allow(unreachable_pub, dead_code)]
use leptos::prelude::*;
use canonrs_core::primitives::{
    DrawerPrimitive, DrawerTriggerPrimitive, DrawerOverlayPrimitive,
    DrawerContentPrimitive, DrawerPortalPrimitive, DrawerSide,
};
use canonrs_core::meta::VisibilityState;

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

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

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

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

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