Skip to main content

orbital_base_components/stack/
base.rs

1use leptos::prelude::*;
2
3use crate::flex::{BaseFlex, FlexAlign, FlexGap, FlexJustify};
4
5/// Headless vertical/horizontal stack — composes [`BaseFlex`] with full width.
6#[component]
7pub fn BaseStack(
8    #[prop(optional, into)] class: MaybeProp<String>,
9    #[prop(optional, into)] style: MaybeProp<String>,
10    #[prop(default = FlexGap::Medium)] gap: FlexGap,
11    #[prop(default = false)] horizontal: bool,
12    #[prop(optional, into)] align: MaybeProp<FlexAlign>,
13    #[prop(optional, into)] justify: MaybeProp<FlexJustify>,
14    children: Children,
15) -> impl IntoView {
16    view! {
17        <div class=class style=style>
18            <BaseFlex
19                gap=gap
20                vertical=!horizontal
21                align=align
22                justify=justify
23                full_width=true
24            >
25                {children()}
26            </BaseFlex>
27        </div>
28    }
29}