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 children: Children,
#[prop_or_default]
pub classes: Classes,
#[prop_or(AttrValue::from("div"))]
pub component: AttrValue,
#[prop_or(false)]
pub invisible: bool,
#[prop_or(false)]
pub open: bool,
#[prop_or_default]
pub style: AttrValue,
#[prop_or_default]
pub transition_component: Option<Html>,
#[prop_or_default]
pub transition_duration: Option<i32>,
}
#[function_component(Backdrop)]
pub fn backdrop(props: &Props) -> Html {
let root_cls = classes!(
"ZuBackdrop-root",
if props.invisible {
"ZuBackdrop-invisible"
} else {
""
},
props.classes.clone(),
);
html! {
<@{props.component.to_string()}
class={root_cls}
style={props.style.to_attr()}>
{for props.children.iter()}
</@>
}
}