//
// xAI (xai@1.0.0)
// Palette: xai@1.0.0
// Fonts:   heading=geist@1.0.0, body=geist@1.0.0, mono=geist-mono@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 {
    /// Void — Primary dark canvas — xAI's documented near-black.
    public static let void = Color(.sRGB, red: 0.0392, green: 0.0392, blue: 0.0392, opacity: 1.0000)
    /// Void Deep — Deepest near-black — gradient endpoint.
    public static let voidDeep = Color(.sRGB, red: 0.0471, green: 0.0471, blue: 0.0431, opacity: 1.0000)
    /// Void Pure — Pure black for hero artwork and the X mark ground.
    public static let voidPure = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Ash 100 — Subtle elevated surface on Void canvas.
    public static let ash100 = Color(.sRGB, red: 0.0902, green: 0.0902, blue: 0.0902, opacity: 1.0000)
    /// Ash 200 — Borders / quiet dividers on Void canvas.
    public static let ash200 = Color(.sRGB, red: 0.0941, green: 0.0941, blue: 0.1059, opacity: 1.0000)
    /// Ash 300 — Mid surface — card background on Void.
    public static let ash300 = Color(.sRGB, red: 0.1490, green: 0.1490, blue: 0.1490, opacity: 1.0000)
    /// Ash 400 — Hover surface on Void canvas.
    public static let ash400 = Color(.sRGB, red: 0.1529, green: 0.1529, blue: 0.1647, opacity: 1.0000)
    /// Ash 500 — Elevated card surface.
    public static let ash500 = Color(.sRGB, red: 0.1686, green: 0.1686, blue: 0.1686, opacity: 1.0000)
    /// Ash 600 — Tertiary text on Void canvas.
    public static let ash600 = Color(.sRGB, red: 0.2510, green: 0.2510, blue: 0.2510, opacity: 1.0000)
    /// Ash 700 — Secondary text on Void canvas.
    public static let ash700 = Color(.sRGB, red: 0.3216, green: 0.3216, blue: 0.3216, opacity: 1.0000)
    /// Ash 800 — Mid-tone neutral.
    public static let ash800 = Color(.sRGB, red: 0.3294, green: 0.3294, blue: 0.3294, opacity: 1.0000)
    /// Ash 900 — Tertiary text — quietest readable on Void.
    public static let ash900 = Color(.sRGB, red: 0.4118, green: 0.4118, blue: 0.4118, opacity: 1.0000)
    /// Paper Pure — Pure white — light canvas and on-Void foreground.
    public static let paperPure = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Paper Warm — Near-white — soft inverse.
    public static let paperWarm = Color(.sRGB, red: 0.9961, green: 0.9961, blue: 0.9961, opacity: 1.0000)
    /// Paper Cream — Warm cream — quiet surface on light canvas.
    public static let paperCream = Color(.sRGB, red: 0.9725, green: 0.9686, blue: 0.9608, opacity: 1.0000)
    /// Spark — Bright lime spark — active state and live-data accent.
    public static let spark = Color(.sRGB, red: 0.4588, green: 0.9843, blue: 0.6510, opacity: 1.0000)
    /// Pulse — Ember orange — Grok mark and high-attention accent.
    public static let pulse = Color(.sRGB, red: 1.0000, green: 0.3882, blue: 0.0314, opacity: 1.0000)
    /// Pulse Soft — Soft ember tint for hover states.
    public static let pulseSoft = Color(.sRGB, red: 1.0000, green: 0.6275, blue: 0.4784, opacity: 1.0000)
    /// Link Blue — Documented link color in long-form prose.
    public static let linkBlue = Color(.sRGB, red: 0.1451, green: 0.3882, blue: 0.9216, opacity: 1.0000)
    /// Ember Warning — Marigold warning state.
    public static let emberWarning = Color(.sRGB, red: 0.9608, green: 0.6706, blue: 0.2078, opacity: 1.0000)
    /// Ember Error — Deep red error state.
    public static let emberError = Color(.sRGB, red: 0.8510, green: 0.1176, blue: 0.0941, opacity: 1.0000)
    /// Ink Body — Body text on Paper canvas — prose-body token.
    public static let inkBody = Color(.sRGB, red: 0.2157, green: 0.2549, blue: 0.3176, opacity: 1.0000)
    /// Ink Heading — Heading text on Paper canvas.
    public static let inkHeading = Color(.sRGB, red: 0.0667, green: 0.0941, blue: 0.1529, opacity: 1.0000)
    /// Ink Quiet — Tertiary text on Paper canvas.
    public static let inkQuiet = Color(.sRGB, red: 0.4196, green: 0.4471, blue: 0.5020, opacity: 1.0000)
    /// Ink Border — Border on Paper canvas.
    public static let inkBorder = Color(.sRGB, red: 0.8980, green: 0.9059, blue: 0.9216, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.paperPure
    public static let surface = BrandSwatch.paperCream
    public static let surfaceElevated = BrandSwatch.paperPure
    public static let textPrimary = BrandSwatch.inkHeading
    public static let textSecondary = BrandSwatch.inkBody
    public static let textTertiary = BrandSwatch.inkQuiet
    public static let primary = BrandSwatch.void
    public static let primaryHover = BrandSwatch.ash300
    public static let accent = BrandSwatch.linkBlue
    public static let accentHover = BrandSwatch.linkBlue
    public static let warning = BrandSwatch.emberWarning
    public static let warningHover = BrandSwatch.pulse
    public static let error = BrandSwatch.emberError
    public static let success = BrandSwatch.spark
    public static let border = BrandSwatch.inkBorder
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.void
    public static let surface = BrandSwatch.ash100
    public static let surfaceElevated = BrandSwatch.ash300
    public static let textPrimary = BrandSwatch.paperPure
    public static let textSecondary = BrandSwatch.ash900
    public static let textTertiary = BrandSwatch.ash700
    public static let primary = BrandSwatch.paperPure
    public static let primaryHover = BrandSwatch.ash600
    public static let accent = BrandSwatch.spark
    public static let accentHover = BrandSwatch.spark
    public static let warning = BrandSwatch.emberWarning
    public static let warningHover = BrandSwatch.pulse
    public static let error = BrandSwatch.emberError
    public static let success = BrandSwatch.spark
    public static let border = BrandSwatch.ash200
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.void
    public static let onIdentity = BrandSwatch.paperPure
    public static let primary = BrandSwatch.paperPure
    public static let primaryHover = BrandSwatch.ash600
    public static let accent = BrandSwatch.spark
    public static let accentHover = BrandSwatch.spark
    public static let mark = BrandSwatch.paperPure
    public static let success = BrandSwatch.spark
    public static let warning = BrandSwatch.emberWarning
    public static let error = BrandSwatch.emberError
    public static let textPrimaryLight = BrandSwatch.inkHeading
    public static let textPrimaryDark = BrandSwatch.paperPure
    public static let backgroundLight = BrandSwatch.paperPure
    public static let backgroundDark = BrandSwatch.void
    public static let surfaceLight = BrandSwatch.paperCream
    public static let surfaceDark = BrandSwatch.ash100
    public static let textSecondaryLight = BrandSwatch.inkBody
    public static let textTertiaryLight = BrandSwatch.inkQuiet
    public static let borderLight = BrandSwatch.inkBorder
    public static let borderDark = BrandSwatch.ash200
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Geist Sans (geist@1.0.0)
    public static let heading = "Geist"
    /// Geist Sans (geist@1.0.0)
    public static let body = "Geist"
    /// Geist Mono (geist-mono@1.0.0)
    public static let mono = "Geist Mono"
}
