canonrs-server 0.1.0

CanonRS server-side rendering support
use leptos::prelude::*;
use super::avatar_boundary::{Avatar, AvatarImage, AvatarFallback};
use super::avatar_boundary::{AvatarSize, AvatarShape, AvatarStatus};
use canonrs_core::primitives::layout::stack::{StackPrimitive as Stack, StackDirection, StackGap};

#[component]
pub fn AvatarShowcasePreview() -> impl IntoView {
    view! {
        <Stack direction=StackDirection::Vertical gap=StackGap::Lg>
            <Stack direction=StackDirection::Horizontal gap=StackGap::Md>
                <Avatar status=AvatarStatus::Online>
                    <AvatarFallback>"AB"</AvatarFallback>
                </Avatar>
                <Avatar shape=AvatarShape::Circle size=AvatarSize::Lg status=AvatarStatus::Online>
                    <AvatarImage src="/assets/avatar_canonrs.webp".to_string() alt="User".to_string() />
                    <AvatarFallback>"CD"</AvatarFallback>
                </Avatar>
            </Stack>
            <p data-rs-showcase-preview-anchor="">
                "Image and fallback visibility controlled by state system."
            </p>
            <Stack direction=StackDirection::Vertical gap=StackGap::Sm>
                <span data-rs-showcase-preview-label="">"Sizes"</span>
                <Stack direction=StackDirection::Horizontal gap=StackGap::Md>
                    <Avatar size=AvatarSize::Xs><AvatarFallback>"XS"</AvatarFallback></Avatar>
                    <Avatar size=AvatarSize::Sm><AvatarFallback>"SM"</AvatarFallback></Avatar>
                    <Avatar size=AvatarSize::Md><AvatarFallback>"MD"</AvatarFallback></Avatar>
                    <Avatar size=AvatarSize::Lg><AvatarFallback>"LG"</AvatarFallback></Avatar>
                    <Avatar size=AvatarSize::Xl><AvatarFallback>"XL"</AvatarFallback></Avatar>
                </Stack>
            </Stack>
            <Stack direction=StackDirection::Vertical gap=StackGap::Sm>
                <span data-rs-showcase-preview-label="">"Shapes"</span>
                <Stack direction=StackDirection::Horizontal gap=StackGap::Md>
                    <Avatar shape=AvatarShape::Circle> <AvatarFallback>"CI"</AvatarFallback></Avatar>
                    <Avatar shape=AvatarShape::Rounded><AvatarFallback>"RO"</AvatarFallback></Avatar>
                    <Avatar shape=AvatarShape::Square> <AvatarFallback>"SQ"</AvatarFallback></Avatar>
                </Stack>
            </Stack>
            <Stack direction=StackDirection::Vertical gap=StackGap::Sm>
                <span data-rs-showcase-preview-label="">"Status"</span>
                <Stack direction=StackDirection::Horizontal gap=StackGap::Md>
                    <Avatar status=AvatarStatus::Online> <AvatarFallback>"ON"</AvatarFallback></Avatar>
                    <Avatar status=AvatarStatus::Busy>   <AvatarFallback>"BU"</AvatarFallback></Avatar>
                    <Avatar status=AvatarStatus::Away>   <AvatarFallback>"AW"</AvatarFallback></Avatar>
                    <Avatar status=AvatarStatus::Offline><AvatarFallback>"OF"</AvatarFallback></Avatar>
                </Stack>
            </Stack>
        </Stack>
    }
}