use yew::{classes, function_component, html, AttrValue, Children, Classes, Html, Properties};
use zu_util::prop::ToAttr;
#[derive(Debug, Clone, PartialEq, Properties)]
pub struct Props {
#[prop_or_default]
pub aria_label: AttrValue,
#[prop_or_default]
pub aria_labelled_by: AttrValue,
#[prop_or_default]
pub children: Children,
#[prop_or_default]
pub classes: Classes,
#[prop_or(false)]
pub error: bool,
#[prop_or_default]
pub role: AttrValue,
#[prop_or(false)]
pub row: bool,
#[prop_or_default]
pub style: AttrValue,
}
#[function_component(FormGroup)]
pub fn form_group(props: &Props) -> Html {
let root_cls = classes!(
"ZuFormGroup-root",
if props.row { "ZuFormGroup-row" } else { "" },
if props.error { "ZuFormGroup-error" } else { "" },
props.classes.clone(),
);
html! {
<div
aria-label={props.aria_label.to_attr()}
aria-labeledby={props.aria_labelled_by.to_attr()}
class={root_cls}
role={props.role.to_attr()}
style={props.style.to_attr()}>
{for props.children.iter()}
</div>
}
}