basecoat_core/props/
badge.rs1use crate::{AttrMap, BasecoatProps, Children};
2use std::borrow::Cow;
3
4#[derive(Clone, Debug, PartialEq, Eq, Default)]
6pub enum BadgeVariant {
7 #[default]
9 Default,
10 Secondary,
11 Destructive,
12 Outline,
13}
14
15impl std::fmt::Display for BadgeVariant {
16 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
17 let s = match self {
18 BadgeVariant::Default => "badge",
19 BadgeVariant::Secondary => "badge-secondary",
20 BadgeVariant::Destructive => "badge-destructive",
21 BadgeVariant::Outline => "badge-outline",
22 };
23 f.write_str(s)
24 }
25}
26
27#[derive(BasecoatProps, Default, Clone, Debug)]
28pub struct BadgeProps {
29 #[prop(default)]
30 pub variant: BadgeVariant,
31 #[prop(optional, into)]
32 pub class: Option<Cow<'static, str>>,
33 #[prop(extend)]
34 pub attrs: AttrMap,
35 pub children: Children,
36}