//
// Bloomberg (bloomberg@1.0.0)
// Palette: bloomberg@1.0.0
// Fonts:   heading=source-serif-4@1.0.0, body=source-serif-4@1.0.0, sans=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 {
    /// Black — phx-color-core-black — terminal-black canvas in dark mode.
    public static let black = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Gray 1000 — phx-color-core-gray-1000 — deepest gray ink.
    public static let gray1000 = Color(.sRGB, red: 0.1098, green: 0.1098, blue: 0.1098, opacity: 1.0000)
    /// Gray 900 — phx-color-core-gray-900 — primary body text on light.
    public static let gray900 = Color(.sRGB, red: 0.1490, green: 0.1490, blue: 0.1490, opacity: 1.0000)
    /// Gray 800 — phx-color-core-gray-800 — secondary heading text.
    public static let gray800 = Color(.sRGB, red: 0.2353, green: 0.2353, blue: 0.2353, opacity: 1.0000)
    /// Gray 700 — phx-color-core-gray-700 — secondary body text.
    public static let gray700 = Color(.sRGB, red: 0.3294, green: 0.3294, blue: 0.3294, opacity: 1.0000)
    /// Gray 600 — phx-color-core-gray-600 — tertiary meta text.
    public static let gray600 = Color(.sRGB, red: 0.4627, green: 0.4627, blue: 0.4627, opacity: 1.0000)
    /// Gray 500 — phx-color-core-gray-500 — disabled text on light.
    public static let gray500 = Color(.sRGB, red: 0.6000, green: 0.6000, blue: 0.6000, opacity: 1.0000)
    /// Gray 400 — phx-color-core-gray-400 — border weight.
    public static let gray400 = Color(.sRGB, red: 0.7020, green: 0.7020, blue: 0.7020, opacity: 1.0000)
    /// Gray 300 — phx-color-core-gray-300 — quiet divider.
    public static let gray300 = Color(.sRGB, red: 0.8000, green: 0.8000, blue: 0.8000, opacity: 1.0000)
    /// Gray 200 — phx-color-core-gray-200 — quiet inset surface.
    public static let gray200 = Color(.sRGB, red: 0.9373, green: 0.9373, blue: 0.9373, opacity: 1.0000)
    /// Gray 100 — phx-color-core-gray-100 — lightest surface tint.
    public static let gray100 = Color(.sRGB, red: 0.9725, green: 0.9725, blue: 0.9725, opacity: 1.0000)
    /// White — phx-color-core-white — page canvas.
    public static let white = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Bloomberg Yellow 400 — phx-color-core-yellow-400 — signature Bloomberg yellow; ticker accent.
    public static let yellow400 = Color(.sRGB, red: 1.0000, green: 0.8039, blue: 0.1176, opacity: 1.0000)
    /// Yellow 300 — phx-color-core-yellow-300 — lighter yellow accent.
    public static let yellow300 = Color(.sRGB, red: 1.0000, green: 0.8549, blue: 0.3647, opacity: 1.0000)
    /// Yellow 500 — phx-color-core-yellow-500 — pressed yellow.
    public static let yellow500 = Color(.sRGB, red: 0.9020, green: 0.6941, blue: 0.1255, opacity: 1.0000)
    /// Yellow 600 — phx-color-core-yellow-600 — deepest emphasis yellow.
    public static let yellow600 = Color(.sRGB, red: 0.7686, green: 0.5255, blue: 0.0000, opacity: 1.0000)
    /// Red 500 — phx-color-core-red-500 — alert / breaking-news red.
    public static let red500 = Color(.sRGB, red: 0.8980, green: 0.0824, blue: 0.0118, opacity: 1.0000)
    /// Red 400 — phx-color-core-red-400 — quiet alert state.
    public static let red400 = Color(.sRGB, red: 0.9412, green: 0.3176, blue: 0.2627, opacity: 1.0000)
    /// Red 600 — phx-color-core-red-600 — pressed alert.
    public static let red600 = Color(.sRGB, red: 0.6980, green: 0.0549, blue: 0.0039, opacity: 1.0000)
    /// Green 500 — phx-color-core-green-500 — market-up signal.
    public static let green500 = Color(.sRGB, red: 0.2000, green: 0.5294, blue: 0.2118, opacity: 1.0000)
    /// Green 400 — phx-color-core-green-400 — quiet positive.
    public static let green400 = Color(.sRGB, red: 0.3020, green: 0.6980, blue: 0.3137, opacity: 1.0000)
    /// Green 600 — phx-color-core-green-600 — pressed positive.
    public static let green600 = Color(.sRGB, red: 0.0784, green: 0.4118, blue: 0.0902, opacity: 1.0000)
    /// Opinion Blue 500 — phx-color-secondary-opinion-500 — Bloomberg Opinion link blue.
    public static let opinion500 = Color(.sRGB, red: 0.0000, green: 0.3922, blue: 0.9804, opacity: 1.0000)
    /// Opinion Blue 600 — phx-color-secondary-opinion-600 — pressed Opinion link.
    public static let opinion600 = Color(.sRGB, red: 0.0000, green: 0.3059, blue: 0.7686, opacity: 1.0000)
    /// Opinion Blue 200 — phx-color-secondary-opinion-200 — quiet Opinion surface tint.
    public static let opinion200 = Color(.sRGB, red: 0.8314, green: 0.8980, blue: 1.0000, opacity: 1.0000)
    /// Subscription Violet 500 — phx-color-secondary-subscription-500 — Bloomberg subscription-product accent.
    public static let subscription500 = Color(.sRGB, red: 0.3098, green: 0.3098, blue: 1.0000, opacity: 1.0000)
    /// Subscription Violet 700 — phx-color-secondary-subscription-700 — deep subscription accent.
    public static let subscription700 = Color(.sRGB, red: 0.1569, green: 0.0000, blue: 0.8431, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.white
    public static let surface = BrandSwatch.gray100
    public static let surfaceElevated = BrandSwatch.white
    public static let textPrimary = BrandSwatch.gray1000
    public static let textSecondary = BrandSwatch.gray700
    public static let textTertiary = BrandSwatch.gray600
    public static let primary = BrandSwatch.opinion500
    public static let primaryHover = BrandSwatch.opinion600
    public static let accent = BrandSwatch.yellow400
    public static let accentHover = BrandSwatch.yellow500
    public static let warning = BrandSwatch.yellow600
    public static let error = BrandSwatch.red500
    public static let success = BrandSwatch.green500
    public static let border = BrandSwatch.gray300
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.black
    public static let surface = BrandSwatch.gray1000
    public static let surfaceElevated = BrandSwatch.gray900
    public static let textPrimary = BrandSwatch.white
    public static let textSecondary = BrandSwatch.gray200
    public static let textTertiary = BrandSwatch.gray400
    public static let primary = BrandSwatch.opinion500
    public static let primaryHover = BrandSwatch.opinion200
    public static let accent = BrandSwatch.yellow400
    public static let accentHover = BrandSwatch.yellow300
    public static let warning = BrandSwatch.yellow300
    public static let error = BrandSwatch.red400
    public static let success = BrandSwatch.green400
    public static let border = BrandSwatch.gray700
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.black
    public static let onIdentity = BrandSwatch.yellow400
    public static let primary = BrandSwatch.opinion500
    public static let primaryHover = BrandSwatch.opinion600
    public static let accent = BrandSwatch.yellow400
    public static let accentHover = BrandSwatch.yellow500
    public static let mark = BrandSwatch.yellow400
    public static let success = BrandSwatch.green500
    public static let warning = BrandSwatch.yellow600
    public static let error = BrandSwatch.red500
    public static let textPrimaryLight = BrandSwatch.gray1000
    public static let textPrimaryDark = BrandSwatch.white
    public static let backgroundLight = BrandSwatch.white
    public static let backgroundDark = BrandSwatch.black
    public static let surfaceLight = BrandSwatch.gray100
    public static let surfaceDark = BrandSwatch.gray1000
    public static let textSecondaryLight = BrandSwatch.gray700
    public static let textTertiaryLight = BrandSwatch.gray600
    public static let borderLight = BrandSwatch.gray300
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Source Serif 4 (source-serif-4@1.0.0)
    public static let heading = "Source Serif 4"
    /// Source Serif 4 (source-serif-4@1.0.0)
    public static let body = "Source Serif 4"
    /// Inter (inter@1.0.0)
    public static let sans = "Inter"
    /// JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)
    public static let mono = "JetBrainsMono Nerd Font"
}
