canonrs-server 0.1.0

CanonRS server-side rendering support
use leptos::prelude::*;
use super::select_boundary::{Select, SelectTrigger, SelectValue, SelectContent, SelectItem};
use canonrs_core::meta::{DisabledState, SelectionState};
use canonrs_core::primitives::layout::stack::{StackPrimitive as Stack, StackDirection, StackGap};
use canonrs_core::primitives::layout::container::{ContainerPrimitive as Container, ContainerSize};

#[component]
pub fn SelectShowcasePreview() -> impl IntoView {
    view! {
        <Container size=ContainerSize::Sm>
        <Stack direction=StackDirection::Vertical gap=StackGap::Lg>
            <p data-rs-showcase-preview-anchor="">
                "Selection, visibility and interaction fully governed by structure."
            </p>
            <Select>
                <SelectTrigger>
                    <SelectValue placeholder="Choose a framework...">{""}</SelectValue>
                </SelectTrigger>
                <SelectContent>
                    <SelectItem value="leptos">"Leptos"</SelectItem>
                    <SelectItem value="dioxus">"Dioxus"</SelectItem>
                    <SelectItem value="yew" disabled=DisabledState::Disabled>"Yew (disabled)"</SelectItem>
                </SelectContent>
            </Select>
            <Stack direction=StackDirection::Vertical gap=StackGap::Sm>
                <span data-rs-showcase-preview-label="">"Pre-selected"</span>
                <Select>
                    <SelectTrigger>
                        <SelectValue placeholder="Select size...">"Medium"</SelectValue>
                    </SelectTrigger>
                    <SelectContent>
                        <SelectItem value="sm">"Small"</SelectItem>
                        <SelectItem value="md" selected=SelectionState::Selected>"Medium"</SelectItem>
                        <SelectItem value="lg">"Large"</SelectItem>
                    </SelectContent>
                </Select>
            </Stack>
            <Stack direction=StackDirection::Vertical gap=StackGap::Sm>
                <span data-rs-showcase-preview-label="">"With disabled options"</span>
                <Select>
                    <SelectTrigger>
                        <SelectValue placeholder="Select plan...">{""}</SelectValue>
                    </SelectTrigger>
                    <SelectContent>
                        <SelectItem value="free">"Free"</SelectItem>
                        <SelectItem value="pro">"Pro"</SelectItem>
                        <SelectItem value="enterprise" disabled=DisabledState::Disabled>"Enterprise (disabled)"</SelectItem>
                        <SelectItem value="custom" disabled=DisabledState::Disabled>"Custom (disabled)"</SelectItem>
                    </SelectContent>
                </Select>
            </Stack>
            <Stack direction=StackDirection::Vertical gap=StackGap::Sm>
                <span data-rs-showcase-preview-label="">"Many options — keyboard nav"</span>
                <Select>
                    <SelectTrigger>
                        <SelectValue placeholder="Select country...">{""}</SelectValue>
                    </SelectTrigger>
                    <SelectContent>
                        <SelectItem value="br">"Brazil"</SelectItem>
                        <SelectItem value="us">"United States"</SelectItem>
                        <SelectItem value="de">"Germany"</SelectItem>
                        <SelectItem value="jp">"Japan"</SelectItem>
                        <SelectItem value="fr">"France"</SelectItem>
                        <SelectItem value="uk">"United Kingdom"</SelectItem>
                    </SelectContent>
                </Select>
            </Stack>
            <Stack direction=StackDirection::Vertical gap=StackGap::Sm>
                <span data-rs-showcase-preview-label="">"Disabled"</span>
                <Select disabled=DisabledState::Disabled>
                    <SelectTrigger disabled=DisabledState::Disabled>
                        <SelectValue placeholder="Disabled...">{""}</SelectValue>
                    </SelectTrigger>
                    <SelectContent>
                        <SelectItem value="a">"Option A"</SelectItem>
                    </SelectContent>
                </Select>
            </Stack>
        </Stack>
        </Container>
    }
}