use crate::types::Validation;
use leptos::prelude::*;
use std::process;
#[component]
pub fn FilledDiamond(color: &'static str, size: u32) -> impl IntoView {
let Ok(_) = color.validate_color_code() else {
eprintln!("Spux Error - Color should be in the #hex format (e.g #000000) for black");
process::exit(1);
};
let half_size = size / 2;
let margin_size = size / 8;
let style = format!(
"
.spux-filled-diamond {{
display:flex;
width: {size}px;
height: {size}px;
margin-top:0px;
margin-left:0px;
transform: rotate(45deg);
animation: spux-filled-diamond 1400ms ease-in-out forwards;
animation-iteration-count: infinite;
}}
@keyframes spux-filled-diamond {{
0% {{
width:{size}px;
height:{size}px;
margin-top:0px;
margin-left:0px;
}}
50% {{
width:{half_size}px;
height:{half_size}px;
margin-top:{margin_size}px;
margin-left:{margin_size}px;
}}
100% {{
width:{size}px;
height:{size}px;
margin-top:0px;
margin-left:0px;
}}
}}
"
);
view! {
<style>
{style}
</style>
<div class="spux-filled-diamond"
style:background-color=color
></div>
}
}