use crate::IconWeight;
use leptos::*;
#[cfg(any(feature = "communication"))]
#[component]
pub fn EnvelopeSimpleOpen(
#[prop(into, default = MaybeSignal::Static(IconWeight::Regular))] weight: MaybeSignal<
IconWeight,
>,
#[prop(into, default = TextProp::from("1em"))] size: TextProp,
#[prop(into, default = TextProp::from("currentColor"))] color: TextProp,
#[prop(into, default = MaybeSignal::Static(false))] mirrored: MaybeSignal<bool>,
#[prop(into, optional)] id: MaybeProp<TextProp>,
#[prop(into, optional)] class: MaybeProp<TextProp>,
) -> impl IntoView {
let body = Signal::derive(move || {
match weight.get() {
IconWeight::Fill => view! {
<path d="M228.44,89.34l-96-64a8,8,0,0,0-8.88,0l-96,64A8,8,0,0,0,24,96V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V96A8,8,0,0,0,228.44,89.34ZM40,200V111.53l65.9,47a8,8,0,0,0,4.65,1.49h34.9a8,8,0,0,0,4.65-1.49l65.9-47V200Z"></path>
}.into_view(),
IconWeight::Duotone => view! {
<path d="M224,96l-78.55,56h-34.9L32,96l96-64Z" opacity="0.2"></path>
<path d="M228.44,89.34l-96-64a8,8,0,0,0-8.88,0l-96,64A8,8,0,0,0,24,96V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V96A8,8,0,0,0,228.44,89.34ZM128,41.61l81.91,54.61-67,47.78H113.11l-67-47.78ZM40,200V111.53l65.9,47a8,8,0,0,0,4.65,1.49h34.9a8,8,0,0,0,4.65-1.49l65.9-47V200Z"></path>
}.into_view(),
IconWeight::Thin => view! {
<path d="M226.22,92.67l-96-64a4,4,0,0,0-4.44,0l-96,64A4,4,0,0,0,28,96V200a12,12,0,0,0,12,12H216a12,12,0,0,0,12-12V96A4,4,0,0,0,226.22,92.67ZM128,36.81,217,96.11,144.17,148H111.83L39.05,96.11ZM216,204H40a4,4,0,0,1-4-4V103.76l72.22,51.5a4,4,0,0,0,2.33.74h34.9a4,4,0,0,0,2.33-.74L220,103.76V200A4,4,0,0,1,216,204Z"></path>
}.into_view(),
IconWeight::Bold => view! {
<path d="M230.66,86l-96-64a12,12,0,0,0-13.32,0l-96,64A12,12,0,0,0,20,96V200a20,20,0,0,0,20,20H216a20,20,0,0,0,20-20V96A12,12,0,0,0,230.66,86ZM128,46.42l74.86,49.91L141.61,140H114.39L53.14,96.33ZM44,196V119.29l59.58,42.48a12,12,0,0,0,7,2.23h34.9a12,12,0,0,0,7-2.23L212,119.29V196Z"></path>
}.into_view(),
IconWeight::Light => view! {
<path d="M227.33,91l-96-64a6,6,0,0,0-6.66,0l-96,64A6,6,0,0,0,26,96V200a14,14,0,0,0,14,14H216a14,14,0,0,0,14-14V96A6,6,0,0,0,227.33,91ZM128,39.21l85.43,57L143.53,146H112.47L42.57,96.17ZM216,202H40a2,2,0,0,1-2-2V107.65l69.06,49.24a6.06,6.06,0,0,0,3.49,1.11h34.9a6.06,6.06,0,0,0,3.49-1.11L218,107.65V200A2,2,0,0,1,216,202Z"></path>
}.into_view(),
IconWeight::Regular => view! {
<path d="M228.44,89.34l-96-64a8,8,0,0,0-8.88,0l-96,64A8,8,0,0,0,24,96V200a16,16,0,0,0,16,16H216a16,16,0,0,0,16-16V96A8,8,0,0,0,228.44,89.34ZM128,41.61l81.91,54.61-67,47.78H113.11l-67-47.78ZM40,200V111.53l65.9,47a8,8,0,0,0,4.65,1.49h34.9a8,8,0,0,0,4.65-1.49l65.9-47V200Z"></path>
}.into_view()
}
});
let transform = move || if mirrored.get() { "scale(-1, 1)" } else { "" };
let height = size.clone();
view! {
<svg
xmlns="http://www.w3.org/2000/svg"
width=move || size.get()
height=move || height.get()
fill=color
transform=transform
viewBox="0 0 256 256"
id=move || id.get().map(|id| id.get())
class=move || class.get().map(|cls| cls.get())
>
{body}
</svg>
}
}