use crate::tokens::dtcg::DimensionValue;
use crate::tokens::MacDesignTokens;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SearchFieldMetrics {
pub height: DimensionValue,
pub corner_radius: DimensionValue,
pub icon_size: DimensionValue,
pub icon_stroke_width: DimensionValue,
pub padding_horizontal: DimensionValue,
pub clear_button_size: DimensionValue,
pub default_width: DimensionValue,
pub clear_button_icon_padding: DimensionValue,
pub content_spacing: DimensionValue,
pub padding_vertical: DimensionValue,
pub border_width: DimensionValue,
pub glass_radius: DimensionValue,
pub font_size: DimensionValue,
}
impl Default for SearchFieldMetrics {
fn default() -> Self {
MacDesignTokens::default_shared().search_field_metrics().clone()
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct StepperMetrics {
pub width: DimensionValue,
pub height: DimensionValue,
pub corner_radius: DimensionValue,
pub divider_thickness: DimensionValue,
pub arrow_size: DimensionValue,
pub arrow_stroke_width: DimensionValue,
pub arrow_delta: DimensionValue,
pub border_width: DimensionValue,
pub auto_repeat_delay: DimensionValue,
pub auto_repeat_interval: DimensionValue,
pub shift_multiplier: DimensionValue,
pub cmd_multiplier: DimensionValue,
}
impl Default for StepperMetrics {
fn default() -> Self {
MacDesignTokens::default_shared().stepper_metrics().clone()
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ColorWellMetrics {
pub width: DimensionValue,
pub height: DimensionValue,
pub corner_radius: DimensionValue,
pub border_width: DimensionValue,
pub swatch_inset: DimensionValue,
pub swatch_radius: DimensionValue,
pub checker_grid_size: DimensionValue,
pub picker_size: DimensionValue,
pub popup_gap: DimensionValue,
pub popup_corner_radius: DimensionValue,
}
impl Default for ColorWellMetrics {
fn default() -> Self {
MacDesignTokens::default_shared().color_well_metrics().clone()
}
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ToggleMetrics {
pub width: DimensionValue,
pub height: DimensionValue,
pub corner_radius: DimensionValue,
pub knob_size: DimensionValue,
pub knob_offset_off: DimensionValue,
pub knob_offset_on: DimensionValue,
pub border_width: DimensionValue,
pub animation_duration: DimensionValue,
}
impl Default for ToggleMetrics {
fn default() -> Self {
MacDesignTokens::default_shared().toggle_metrics().clone()
}
}