//
// npm (npm@1.0.0)
// Palette: npm@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 {
    /// npm Red — Primary brand color — the fill of the red-square npm mark. Source: simple-icons canonical entry for "npm".

    public static let npmRed = Color(.sRGB, red: 0.7961, green: 0.2196, blue: 0.2157, opacity: 1.0000)
    /// npm Red Dark — Pressed / active variant of npm Red for hover states.
    public static let npmRedDark = Color(.sRGB, red: 0.6275, green: 0.1686, blue: 0.1647, opacity: 1.0000)
    /// npm Black — Wordmark color when rendered outside the red square; the "npm" lowercase letterform when set in solid color.

    public static let npmBlack = Color(.sRGB, red: 0.1373, green: 0.1216, blue: 0.1255, opacity: 1.0000)
    /// npm Charcoal — Elevated dark surface for cards and panels.
    public static let npmCharcoal = Color(.sRGB, red: 0.1765, green: 0.1647, blue: 0.1686, opacity: 1.0000)
    /// npm Slate — Body text on light canvas; secondary copy.
    public static let npmSlate = Color(.sRGB, red: 0.2902, green: 0.2627, blue: 0.2667, opacity: 1.0000)
    /// npm Gray — Tertiary text and quiet UI; muted divider tone.
    public static let npmGray = Color(.sRGB, red: 0.5490, green: 0.5137, blue: 0.5216, opacity: 1.0000)
    /// npm Light Gray — Hairline borders on light canvas.
    public static let npmLightGray = Color(.sRGB, red: 0.8784, green: 0.8706, blue: 0.8745, opacity: 1.0000)
    /// npm Off-White — Subtle layered surface on light canvas.
    public static let npmOffWhite = Color(.sRGB, red: 0.9804, green: 0.9725, blue: 0.9725, opacity: 1.0000)
    /// npm White — Page canvas in light mode; lowercase wordmark fill inside the red square.
    public static let npmWhite = 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.npmWhite
    public static let surface = BrandSwatch.npmOffWhite
    public static let surfaceElevated = BrandSwatch.npmWhite
    public static let textPrimary = BrandSwatch.npmBlack
    public static let textSecondary = BrandSwatch.npmSlate
    public static let textTertiary = BrandSwatch.npmGray
    public static let primary = BrandSwatch.npmRed
    public static let primaryHover = BrandSwatch.npmRedDark
    public static let accent = BrandSwatch.npmRed
    public static let accentHover = BrandSwatch.npmRedDark
    public static let warning = BrandSwatch.npmRed
    public static let warningHover = BrandSwatch.npmRedDark
    public static let error = BrandSwatch.npmRedDark
    public static let success = BrandSwatch.npmSlate
    public static let border = BrandSwatch.npmLightGray
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.npmBlack
    public static let surface = BrandSwatch.npmCharcoal
    public static let surfaceElevated = BrandSwatch.npmCharcoal
    public static let textPrimary = BrandSwatch.npmWhite
    public static let textSecondary = BrandSwatch.npmLightGray
    public static let textTertiary = BrandSwatch.npmGray
    public static let primary = BrandSwatch.npmRed
    public static let primaryHover = BrandSwatch.npmRedDark
    public static let accent = BrandSwatch.npmRed
    public static let accentHover = BrandSwatch.npmRedDark
    public static let warning = BrandSwatch.npmRed
    public static let warningHover = BrandSwatch.npmRedDark
    public static let error = BrandSwatch.npmRedDark
    public static let success = BrandSwatch.npmLightGray
    public static let border = BrandSwatch.npmSlate
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.npmRed
    public static let onIdentity = BrandSwatch.npmWhite
    public static let primary = BrandSwatch.npmRed
    public static let primaryHover = BrandSwatch.npmRedDark
    public static let accent = BrandSwatch.npmRed
    public static let accentHover = BrandSwatch.npmRedDark
    public static let mark = BrandSwatch.npmRed
    public static let background = BrandSwatch.npmWhite
    public static let surface = BrandSwatch.npmOffWhite
    public static let textPrimary = BrandSwatch.npmBlack
    public static let textSecondary = BrandSwatch.npmSlate
    public static let error = BrandSwatch.npmRedDark
    public static let success = BrandSwatch.npmSlate
    public static let border = BrandSwatch.npmLightGray
}

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