Skip to main content

orbital_base_components/form/button_group/
base.rs

1use leptos::prelude::*;
2
3/// Headless button-group wrapper for adjacent button layouts.
4#[component(transparent)]
5pub fn BaseButtonGroup(
6    #[prop(optional, into)] class: MaybeProp<String>,
7    #[prop(optional)] vertical: bool,
8    children: Children,
9) -> impl IntoView {
10    view! {
11        <div
12            class=move || {
13                let mut parts = vec!["orbital-button-group".to_string()];
14                if vertical {
15                    parts.push("orbital-button-group--vertical".to_string());
16                }
17                if let Some(extra) = class.get() {
18                    if !extra.is_empty() {
19                        parts.push(extra);
20                    }
21                }
22                parts.join(" ")
23            }
24            role="group"
25        >
26            {children()}
27        </div>
28    }
29}