//
// Apache Software Foundation (apache@1.0.0)
// Palette: apache@1.0.0
// Fonts:   heading=inter@1.0.0, body=inter@1.0.0, mono=source-code-pro@1.0.0
// Generated by brand-atoms converter — do not edit by hand.
//

import SwiftUI

/// Source-of-truth color swatches from the referenced palette.
public enum BrandSwatch {
    /// Apache Red — Primary brand color — the fill of the Apache feather mark. The single most-recognized Apache visual element.

    public static let apacheRed = Color(.sRGB, red: 0.8235, green: 0.1294, blue: 0.1569, opacity: 1.0000)
    /// Apache Red Dark — Pressed / active variant of Apache Red for hover states.
    public static let apacheRedDark = Color(.sRGB, red: 0.6588, green: 0.0980, blue: 0.1255, opacity: 1.0000)
    /// Apache Black — Wordmark color on light canvas; dark-mode page canvas.
    public static let apacheBlack = Color(.sRGB, red: 0.0549, green: 0.0627, blue: 0.0784, opacity: 1.0000)
    /// Apache Charcoal — Elevated dark surface for cards and panels.
    public static let apacheCharcoal = Color(.sRGB, red: 0.1216, green: 0.1373, blue: 0.1686, opacity: 1.0000)
    /// Apache Slate — Body text on light canvas; secondary copy.
    public static let apacheSlate = Color(.sRGB, red: 0.2902, green: 0.3333, blue: 0.4078, opacity: 1.0000)
    /// Apache Gray — Tertiary text and quiet UI; muted divider tone.
    public static let apacheGray = Color(.sRGB, red: 0.4824, green: 0.5294, blue: 0.5804, opacity: 1.0000)
    /// Apache Light Gray — Hairline borders on light canvas.
    public static let apacheLightGray = Color(.sRGB, red: 0.8353, green: 0.8510, blue: 0.8706, opacity: 1.0000)
    /// Apache Off-White — Subtle layered surface on light canvas.
    public static let apacheOffWhite = Color(.sRGB, red: 0.9569, green: 0.9608, blue: 0.9686, opacity: 1.0000)
    /// Apache White — Page canvas in light mode.
    public static let apacheWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.apacheWhite
    public static let surface = BrandSwatch.apacheOffWhite
    public static let surfaceElevated = BrandSwatch.apacheWhite
    public static let textPrimary = BrandSwatch.apacheBlack
    public static let textSecondary = BrandSwatch.apacheSlate
    public static let textTertiary = BrandSwatch.apacheGray
    public static let primary = BrandSwatch.apacheRed
    public static let primaryHover = BrandSwatch.apacheRedDark
    public static let accent = BrandSwatch.apacheRed
    public static let accentHover = BrandSwatch.apacheRedDark
    public static let warning = BrandSwatch.apacheRed
    public static let warningHover = BrandSwatch.apacheRedDark
    public static let error = BrandSwatch.apacheRedDark
    public static let success = BrandSwatch.apacheSlate
    public static let border = BrandSwatch.apacheLightGray
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.apacheBlack
    public static let surface = BrandSwatch.apacheCharcoal
    public static let surfaceElevated = BrandSwatch.apacheCharcoal
    public static let textPrimary = BrandSwatch.apacheWhite
    public static let textSecondary = BrandSwatch.apacheLightGray
    public static let textTertiary = BrandSwatch.apacheGray
    public static let primary = BrandSwatch.apacheRed
    public static let primaryHover = BrandSwatch.apacheRedDark
    public static let accent = BrandSwatch.apacheRed
    public static let accentHover = BrandSwatch.apacheRedDark
    public static let warning = BrandSwatch.apacheRed
    public static let warningHover = BrandSwatch.apacheRedDark
    public static let error = BrandSwatch.apacheRedDark
    public static let success = BrandSwatch.apacheLightGray
    public static let border = BrandSwatch.apacheSlate
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.apacheRed
    public static let onIdentity = BrandSwatch.apacheWhite
    public static let primary = BrandSwatch.apacheRed
    public static let primaryHover = BrandSwatch.apacheRedDark
    public static let accent = BrandSwatch.apacheRed
    public static let accentHover = BrandSwatch.apacheRedDark
    public static let mark = BrandSwatch.apacheRed
    public static let background = BrandSwatch.apacheWhite
    public static let surface = BrandSwatch.apacheOffWhite
    public static let textPrimary = BrandSwatch.apacheBlack
    public static let textSecondary = BrandSwatch.apacheSlate
    public static let error = BrandSwatch.apacheRedDark
    public static let success = BrandSwatch.apacheSlate
    public static let border = BrandSwatch.apacheLightGray
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Inter (inter@1.0.0)
    public static let heading = "Inter"
    /// Inter (inter@1.0.0)
    public static let body = "Inter"
    /// Source Code Pro (source-code-pro@1.0.0)
    public static let mono = "Source Code Pro"
}
