use crate::prelude::ChildrenProperties;
use yew::prelude::*;
#[derive(Clone, PartialEq, Properties)]
pub struct InputGroupProperties {
#[prop_or_default]
pub class: Classes,
#[prop_or_default]
pub id: Option<AttrValue>,
#[prop_or_default]
pub style: Option<AttrValue>,
#[prop_or_default]
pub children: Html,
#[prop_or_default]
pub plain: bool,
#[prop_or_default]
pub aria_label: AttrValue,
}
#[function_component(InputGroup)]
pub fn input_group(props: &InputGroupProperties) -> Html {
let mut class = classes!("pf-v5-c-input-group");
class.extend(props.class.clone());
if props.plain {
class.push(classes!("pf-m-plain"));
}
html! (
<div
{class}
aria-label={&props.aria_label}
style={&props.style}
id={&props.id}
>
{ props.children.clone() }
</div>
)
}
#[function_component(InputGroupText)]
pub fn input_group_text(props: &ChildrenProperties) -> Html {
html!(
<span class={"pf-v5-c-input-group__text"}>
{ props.children.clone() }
</span>
)
}
#[derive(Clone, Debug, PartialEq, Properties)]
pub struct InputGroupItemProperties {
#[prop_or_default]
pub id: Option<AttrValue>,
#[prop_or_default]
pub class: Classes,
#[prop_or_default]
pub style: Option<AttrValue>,
#[prop_or_default]
pub plain: bool,
#[prop_or_default]
pub fill: bool,
#[prop_or_default]
pub r#box: bool,
#[prop_or_default]
pub disabled: bool,
#[prop_or_default]
pub children: Html,
}
#[function_component(InputGroupItem)]
pub fn input_group_item(props: &InputGroupItemProperties) -> Html {
let mut class = classes!("pf-v5-c-input-group__item");
if props.plain {
class.push(classes!("pf-m-plain"));
}
if props.fill {
class.push(classes!("pf-m-fill"));
}
if props.r#box {
class.push(classes!("pf-m-box"));
}
if props.disabled {
class.push(classes!("pf-m-disabled"));
}
class.extend(props.class.clone());
html!(
<div {class} id={&props.id} style={&props.style}>
{ props.children.clone() }
</div>
)
}