use crate::prelude::{ExtendClasses, Size};
use yew::prelude::*;
#[derive(Clone, Default, PartialEq, Eq, Ord, PartialOrd, Copy, Debug)]
pub enum Level {
#[default]
H1,
H2,
H3,
H4,
H5,
H6,
}
#[derive(Clone, Debug, PartialEq, Properties)]
pub struct TitleProperties {
#[prop_or_default]
pub children: Html,
#[prop_or_default]
pub level: Level,
#[prop_or_default]
pub size: Option<Size>,
}
#[function_component(Title)]
pub fn title(props: &TitleProperties) -> Html {
let mut class = Classes::from("pf-v5-c-title");
class.extend_from(&props.size.unwrap_or(match props.level {
Level::H1 => Size::XXLarge,
Level::H2 => Size::XLarge,
Level::H3 => Size::Large,
Level::H4 => Size::Medium,
Level::H5 => Size::Medium,
Level::H6 => Size::Medium,
}));
let element = match props.level {
Level::H1 => "h1",
Level::H2 => "h2",
Level::H3 => "h3",
Level::H4 => "h4",
Level::H5 => "h5",
Level::H6 => "h6",
};
html! { <@{element} {class}>{ props.children.clone() }</@> }
}