//
// OpenAI (openai@1.0.0)
// Palette: openai@1.0.0
// Fonts:   heading=inter@1.0.0, body=inter@1.0.0, mono=jetbrainsmono-nerdfont@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 {
    /// OpenAI Black — Canvas in dark mode; foreground in light mode.
    public static let openaiBlack = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// OpenAI White — Canvas in light mode; foreground in dark mode.
    public static let openaiWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Primary Solid 4 — Subtle elevated surface on dark canvas.
    public static let primarySolid4 = Color(.sRGB, red: 0.1216, green: 0.1216, blue: 0.1216, opacity: 1.0000)
    /// Primary Solid 12 — Borders / quiet dividers on dark canvas.
    public static let primarySolid12 = Color(.sRGB, red: 0.2000, green: 0.2000, blue: 0.2000, opacity: 1.0000)
    /// Primary Solid 44 — Tertiary text on dark canvas.
    public static let primarySolid44 = Color(.sRGB, red: 0.4392, green: 0.4392, blue: 0.4392, opacity: 1.0000)
    /// Primary Solid 60 — Secondary text on dark canvas.
    public static let primarySolid60 = Color(.sRGB, red: 0.6000, green: 0.6000, blue: 0.6000, opacity: 1.0000)
    /// Primary Solid 80 — Primary muted text on dark canvas.
    public static let primarySolid80 = Color(.sRGB, red: 0.8000, green: 0.8000, blue: 0.8000, opacity: 1.0000)
    /// Secondary Solid 4 — Subtle elevated surface on light canvas.
    public static let secondarySolid4 = Color(.sRGB, red: 0.9608, green: 0.9608, blue: 0.9608, opacity: 1.0000)
    /// Secondary Solid 12 — Borders / quiet dividers on light canvas.
    public static let secondarySolid12 = Color(.sRGB, red: 0.8784, green: 0.8784, blue: 0.8784, opacity: 1.0000)
    /// Secondary Solid 44 — Tertiary text on light canvas.
    public static let secondarySolid44 = Color(.sRGB, red: 0.5608, green: 0.5608, blue: 0.5608, opacity: 1.0000)
    /// Secondary Solid 60 — Secondary text on light canvas.
    public static let secondarySolid60 = Color(.sRGB, red: 0.4000, green: 0.4000, blue: 0.4000, opacity: 1.0000)
    /// Secondary Solid 80 — Body text on light canvas.
    public static let secondarySolid80 = Color(.sRGB, red: 0.2000, green: 0.2000, blue: 0.2000, opacity: 1.0000)
    /// Tertiary Solid 60 — Mid-tone neutral.
    public static let tertiarySolid60 = Color(.sRGB, red: 0.5333, green: 0.5333, blue: 0.5333, opacity: 1.0000)
    /// Tertiary Solid 80 — Deep neutral.
    public static let tertiarySolid80 = Color(.sRGB, red: 0.3608, green: 0.3608, blue: 0.3608, opacity: 1.0000)
    /// Tertiary Solid 100 — Near-black accent.
    public static let tertiarySolid100 = Color(.sRGB, red: 0.1216, green: 0.1216, blue: 0.1216, opacity: 1.0000)
    /// OpenAI Hue Red — Hue ramp red — used in data viz and code syntax.
    public static let openaiHueRed = Color(.sRGB, red: 0.9294, green: 0.3765, blue: 0.4745, opacity: 1.0000)
    /// OpenAI Hue Lime
    public static let openaiHueLime = Color(.sRGB, red: 0.5608, green: 0.6745, blue: 0.2235, opacity: 1.0000)
    /// OpenAI Hue Magenta
    public static let openaiHueMagenta = Color(.sRGB, red: 0.7804, green: 0.3490, blue: 0.6706, opacity: 1.0000)
    /// OpenAI Hue Blue
    public static let openaiHueBlue = Color(.sRGB, red: 0.2118, green: 0.6510, blue: 0.8431, opacity: 1.0000)
    /// OpenAI Hue Yellow
    public static let openaiHueYellow = Color(.sRGB, red: 0.8863, green: 0.6549, blue: 0.1529, opacity: 1.0000)
    /// OpenAI Accent Blue — Documented `--color-supply-accent-color` — link / interactive blue.
    public static let openaiAccentBlue = Color(.sRGB, red: 0.3020, green: 0.6392, blue: 1.0000, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.openaiWhite
    public static let surface = BrandSwatch.secondarySolid4
    public static let surfaceElevated = BrandSwatch.openaiWhite
    public static let textPrimary = BrandSwatch.openaiBlack
    public static let textSecondary = BrandSwatch.secondarySolid60
    public static let textTertiary = BrandSwatch.secondarySolid44
    public static let primary = BrandSwatch.openaiBlack
    public static let primaryHover = BrandSwatch.secondarySolid80
    public static let accent = BrandSwatch.openaiAccentBlue
    public static let accentHover = BrandSwatch.openaiHueBlue
    public static let warning = BrandSwatch.openaiHueYellow
    public static let warningHover = BrandSwatch.openaiHueYellow
    public static let error = BrandSwatch.openaiHueRed
    public static let success = BrandSwatch.openaiHueLime
    public static let border = BrandSwatch.secondarySolid12
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.openaiBlack
    public static let surface = BrandSwatch.primarySolid4
    public static let surfaceElevated = BrandSwatch.primarySolid12
    public static let textPrimary = BrandSwatch.openaiWhite
    public static let textSecondary = BrandSwatch.primarySolid80
    public static let textTertiary = BrandSwatch.primarySolid60
    public static let primary = BrandSwatch.openaiWhite
    public static let primaryHover = BrandSwatch.primarySolid80
    public static let accent = BrandSwatch.openaiAccentBlue
    public static let accentHover = BrandSwatch.openaiHueBlue
    public static let warning = BrandSwatch.openaiHueYellow
    public static let warningHover = BrandSwatch.openaiHueYellow
    public static let error = BrandSwatch.openaiHueRed
    public static let success = BrandSwatch.openaiHueLime
    public static let border = BrandSwatch.primarySolid12
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.openaiBlack
    public static let onIdentity = BrandSwatch.openaiWhite
    public static let primary = BrandSwatch.openaiBlack
    public static let primaryHover = BrandSwatch.secondarySolid80
    public static let accent = BrandSwatch.openaiAccentBlue
    public static let accentHover = BrandSwatch.openaiHueBlue
    public static let success = BrandSwatch.openaiHueLime
    public static let warning = BrandSwatch.openaiHueYellow
    public static let error = BrandSwatch.openaiHueRed
    public static let textPrimaryLight = BrandSwatch.openaiBlack
    public static let textPrimaryDark = BrandSwatch.openaiWhite
    public static let backgroundLight = BrandSwatch.openaiWhite
    public static let backgroundDark = BrandSwatch.openaiBlack
    public static let surfaceLight = BrandSwatch.secondarySolid4
    public static let surfaceDark = BrandSwatch.primarySolid4
}

/// 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"
    /// JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)
    public static let mono = "JetBrainsMono Nerd Font"
}
