use serde::{Deserialize, Serialize};
use serde_repr::{Deserialize_repr, Serialize_repr};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase", default)]
pub struct LiquidGlassConfig {
pub enabled: bool,
pub corner_radius: f64,
pub tint_color: Option<String>,
pub variant: GlassMaterialVariant,
}
impl Default for LiquidGlassConfig {
fn default() -> Self {
Self {
enabled: true,
corner_radius: 0.0,
tint_color: None,
variant: GlassMaterialVariant::default(),
}
}
}
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize_repr, Deserialize_repr)]
#[repr(i64)]
pub enum GlassMaterialVariant {
#[default]
Regular = 0,
Clear = 1,
Dock = 2,
AppIcons = 3,
Widgets = 4,
Text = 5,
Avplayer = 6,
Facetime = 7,
ControlCenter = 8,
NotificationCenter = 9,
Monogram = 10,
Bubbles = 11,
Identity = 12,
FocusBorder = 13,
FocusPlatter = 14,
Keyboard = 15,
Sidebar = 16,
AbuttedSidebar = 17,
Inspector = 18,
Control = 19,
Loupe = 20,
Slider = 21,
Camera = 22,
CartouchePopover = 23,
}