//
// TypeScript (typescript@1.0.0)
// Palette: typescript@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 {
    /// TypeScript Blue — Primary brand color — the rounded-square mark fill. The "TS" lettermark sits on this blue in white.

    public static let tsBlue = Color(.sRGB, red: 0.1922, green: 0.4706, blue: 0.7765, opacity: 1.0000)
    /// TypeScript Blue Bright — Brighter variant used on dark backgrounds for legibility.
    public static let tsBlueBright = Color(.sRGB, red: 0.3098, green: 0.5412, blue: 0.8157, opacity: 1.0000)
    /// TypeScript Blue Dark — Darker variant used for hover states and shadows.
    public static let tsBlueDark = Color(.sRGB, red: 0.1373, green: 0.3529, blue: 0.6196, opacity: 1.0000)
    /// TypeScript Black — Dark-mode page canvas.
    public static let tsBlack = Color(.sRGB, red: 0.0549, green: 0.0706, blue: 0.0902, opacity: 1.0000)
    /// TypeScript Charcoal — Elevated dark surface for cards and panels.
    public static let tsCharcoal = Color(.sRGB, red: 0.1098, green: 0.1373, blue: 0.1725, opacity: 1.0000)
    /// TypeScript Gray — Mid neutral for body text and dividers.
    public static let tsGray = Color(.sRGB, red: 0.3608, green: 0.3608, blue: 0.3608, opacity: 1.0000)
    /// TypeScript Light Gray — Hairline borders on light canvas.
    public static let tsLightGray = Color(.sRGB, red: 0.8353, green: 0.8353, blue: 0.8353, opacity: 1.0000)
    /// TypeScript Off-White — Subtle layered surface on the light canvas.
    public static let tsOffWhite = Color(.sRGB, red: 0.9569, green: 0.9569, blue: 0.9569, opacity: 1.0000)
    /// TypeScript White — Page canvas in light mode; reversed letter color on the mark.
    public static let tsWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// TypeScript Success — Status success color.
    public static let tsSuccess = Color(.sRGB, red: 0.1804, green: 0.6275, blue: 0.2627, opacity: 1.0000)
    /// TypeScript Warning — Status warning color.
    public static let tsWarning = Color(.sRGB, red: 0.8235, green: 0.6000, blue: 0.1333, opacity: 1.0000)
    /// TypeScript Error — Status error color.
    public static let tsError = Color(.sRGB, red: 0.8118, green: 0.1333, blue: 0.1804, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.tsWhite
    public static let surface = BrandSwatch.tsOffWhite
    public static let surfaceElevated = BrandSwatch.tsWhite
    public static let textPrimary = BrandSwatch.tsBlack
    public static let textSecondary = BrandSwatch.tsGray
    public static let textTertiary = BrandSwatch.tsBlueDark
    public static let primary = BrandSwatch.tsBlue
    public static let primaryHover = BrandSwatch.tsBlueDark
    public static let accent = BrandSwatch.tsBlueDark
    public static let accentHover = BrandSwatch.tsBlue
    public static let warning = BrandSwatch.tsWarning
    public static let warningHover = BrandSwatch.tsWarning
    public static let error = BrandSwatch.tsError
    public static let success = BrandSwatch.tsSuccess
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.tsBlack
    public static let surface = BrandSwatch.tsCharcoal
    public static let surfaceElevated = BrandSwatch.tsCharcoal
    public static let textPrimary = BrandSwatch.tsWhite
    public static let textSecondary = BrandSwatch.tsLightGray
    public static let textTertiary = BrandSwatch.tsBlueBright
    public static let primary = BrandSwatch.tsBlueBright
    public static let primaryHover = BrandSwatch.tsBlue
    public static let accent = BrandSwatch.tsBlue
    public static let accentHover = BrandSwatch.tsBlueBright
    public static let warning = BrandSwatch.tsWarning
    public static let warningHover = BrandSwatch.tsWarning
    public static let error = BrandSwatch.tsError
    public static let success = BrandSwatch.tsSuccess
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.tsBlue
    public static let onIdentity = BrandSwatch.tsWhite
    public static let primary = BrandSwatch.tsBlue
    public static let primaryHover = BrandSwatch.tsBlueDark
    public static let accent = BrandSwatch.tsBlueDark
    public static let accentHover = BrandSwatch.tsBlue
    public static let background = BrandSwatch.tsWhite
    public static let surface = BrandSwatch.tsOffWhite
    public static let textPrimary = BrandSwatch.tsBlack
    public static let textSecondary = BrandSwatch.tsGray
}

/// 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"
}
