use super::dtcg::ColorValue;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct MacAppearanceColors {
pub window_background: ColorValue,
pub control_background: ColorValue,
pub control: ColorValue,
pub control_accent: ColorValue,
pub selected_control: ColorValue,
pub selected_control_inactive: ColorValue,
pub separator: ColorValue,
pub placeholder_text: ColorValue,
pub keyboard_focus_indicator: ColorValue,
#[serde(default = "default_label_color")]
pub label: ColorValue,
#[serde(default = "default_secondary_label_color")]
pub secondary_label: ColorValue,
#[serde(default = "default_system_green")]
pub system_green: ColorValue,
#[serde(default = "default_traffic_light_close")]
pub traffic_light_close: ColorValue,
#[serde(default = "default_traffic_light_close_border")]
pub traffic_light_close_border: ColorValue,
#[serde(default = "default_traffic_light_minimize")]
pub traffic_light_minimize: ColorValue,
#[serde(default = "default_traffic_light_minimize_border")]
pub traffic_light_minimize_border: ColorValue,
#[serde(default = "default_traffic_light_zoom")]
pub traffic_light_zoom: ColorValue,
#[serde(default = "default_traffic_light_zoom_border")]
pub traffic_light_zoom_border: ColorValue,
}
fn default_label_color() -> ColorValue {
ColorValue {
value: "#262626".to_string(),
token_type: Some("color".to_string()),
description: None,
}
}
fn default_secondary_label_color() -> ColorValue {
ColorValue {
value: "#8E8E93".to_string(),
token_type: Some("color".to_string()),
description: None,
}
}
fn default_system_green() -> ColorValue {
ColorValue {
value: "#34C759".to_string(),
token_type: Some("color".to_string()),
description: None,
}
}
fn default_traffic_light_close() -> ColorValue {
ColorValue {
value: "#FF5F56".to_string(),
token_type: Some("color".to_string()),
description: None,
}
}
fn default_traffic_light_close_border() -> ColorValue {
ColorValue {
value: "#E0443E".to_string(),
token_type: Some("color".to_string()),
description: None,
}
}
fn default_traffic_light_minimize() -> ColorValue {
ColorValue {
value: "#FFBD2E".to_string(),
token_type: Some("color".to_string()),
description: None,
}
}
fn default_traffic_light_minimize_border() -> ColorValue {
ColorValue {
value: "#D69A1E".to_string(),
token_type: Some("color".to_string()),
description: None,
}
}
fn default_traffic_light_zoom() -> ColorValue {
ColorValue {
value: "#27C93F".to_string(),
token_type: Some("color".to_string()),
description: None,
}
}
fn default_traffic_light_zoom_border() -> ColorValue {
ColorValue {
value: "#1BA931".to_string(),
token_type: Some("color".to_string()),
description: None,
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct MacColorTokens {
pub aqua: MacAppearanceColors,
pub dark_aqua: MacAppearanceColors,
}