orbital_base_components/material/
base.rs1use leptos::prelude::*;
2
3use super::types::{MaterialCorners, MaterialElevation, MaterialVariant};
4
5#[component]
7pub fn BaseMaterial(
8 #[prop(optional, into)] class: MaybeProp<String>,
9 #[prop(default = MaterialVariant::Solid)] variant: MaterialVariant,
10 #[prop(default = MaterialElevation::Resting)] elevation: MaterialElevation,
11 #[prop(default = MaterialCorners::Rounded)] corners: MaterialCorners,
12 #[prop(optional, into)] role: MaybeProp<String>,
13 children: Children,
14) -> impl IntoView {
15 view! {
16 <div
17 class=move || {
18 let extra = class.get().unwrap_or_default();
19 if extra.is_empty() {
20 "orbital-material".to_string()
21 } else {
22 format!("orbital-material {extra}")
23 }
24 }
25 data-material-variant=variant.as_data()
26 data-material-elevation=elevation.as_data()
27 data-material-corners=corners.as_data()
28 role=move || role.get().unwrap_or_else(|| "group".to_string())
29 >
30 {children()}
31 </div>
32 }
33}