use crate::primitives::*;
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub enum SpacingSize {
None,
Size20,
Size40,
Size60,
Size80,
Size100,
Size120,
#[default]
Size160,
Size200,
Size240,
Size280,
Size320,
Size360,
Size400,
Size480,
Size520,
Size560,
}
impl SpacingSize {
pub const fn px(self) -> u16 {
match self {
Self::None => 0,
Self::Size20 => 2,
Self::Size40 => 4,
Self::Size60 => 6,
Self::Size80 => 8,
Self::Size100 => 10,
Self::Size120 => 12,
Self::Size160 => 16,
Self::Size200 => 20,
Self::Size240 => 24,
Self::Size280 => 28,
Self::Size320 => 32,
Self::Size360 => 36,
Self::Size400 => 40,
Self::Size480 => 48,
Self::Size520 => 52,
Self::Size560 => 56,
}
}
}
impl std::fmt::Display for SpacingSize {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}px", self.px())
}
}
impl SpacingSize {
pub fn flex_gap(self) -> FlexGap {
FlexGap::Size(self.px())
}
pub fn inset(self) -> orbital_base_components::SpacingInset {
orbital_base_components::SpacingInset::uniform_px(self.px())
}
}
impl From<SpacingSize> for FlexGap {
fn from(s: SpacingSize) -> Self {
s.flex_gap()
}
}