leptos_components/
level.rs1use components_core::{BASE_CLASS, concat};
2use leptos::prelude::*;
3use leptos::{IntoView, component, view};
4
5#[derive(Default, Debug, PartialEq)]
6pub enum Variant {
7 #[default]
8 N1,
9 N2,
10 N3,
11 OP,
12}
13
14impl ToString for Variant {
15 fn to_string(&self) -> String {
16 match self {
17 Variant::N1 => "N1".into(),
18 Variant::N2 => "N2".into(),
19 Variant::N3 => "N3".into(),
20 Variant::OP => "Op".into(),
21 }
22 }
23}
24
25#[component]
26pub fn Level(
27 #[prop(into, optional)] variant: Variant,
28 #[prop(into, optional)] class: String,
29) -> impl IntoView {
30 let variant = variant.to_string();
31 let class = crate::tw!(
32 concat!(BASE_CLASS, "-level"),
33 format!("{BASE_CLASS}-level--{}", variant.to_lowercase()),
34 class
35 );
36
37 view! {
38 <div class=class>
39 {variant}
40 </div>
41 }
42}