canonrs-server 0.1.0

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

use leptos::prelude::*;
use canonrs_core::primitives::{PopoverPrimitive, PopoverTriggerPrimitive, PopoverContentPrimitive};
use canonrs_core::primitives::PopoverSide;
use canonrs_core::meta::VisibilityState;

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

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

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