//
// Klarna (klarna@1.0.0)
// Palette: klarna@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 {
    /// Klarna Pink — Signature pastel pink — the defining brand color, used as background fields and primary brand surface.
    public static let klarnaPink = Color(.sRGB, red: 1.0000, green: 0.6588, blue: 0.8039, opacity: 1.0000)
    /// Klarna Pink Deep — Authored deeper pink for hover/pressed states on the primary pink action.
    public static let klarnaPinkDeep = Color(.sRGB, red: 0.9020, green: 0.4510, blue: 0.6157, opacity: 1.0000)
    /// Klarna Black — Klarna Black — warm near-black used for the wordmark, body text, and high-contrast type on pink fields.
    public static let klarnaBlack = Color(.sRGB, red: 0.0902, green: 0.0706, blue: 0.0588, opacity: 1.0000)
    /// Klarna White — Canonical light canvas paired with the pink fields.
    public static let klarnaWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Klarna Cream — Warm off-white used as a secondary surface — softer than pure white, often paired with pink on marketing.
    public static let klarnaCream = Color(.sRGB, red: 0.9608, green: 0.9216, blue: 0.8784, opacity: 1.0000)
    /// Klarna Graphite — Secondary text on light surfaces; a warm graphite that holds the same warmth as Klarna Black.
    public static let klarnaGraphite = Color(.sRGB, red: 0.2353, green: 0.2157, blue: 0.2000, opacity: 1.0000)
    /// Klarna Gray — Tertiary text and metadata.
    public static let klarnaGray = Color(.sRGB, red: 0.4784, green: 0.4431, blue: 0.4157, opacity: 1.0000)
    /// Klarna Divider — Authored hairline divider tone that respects the warm palette.
    public static let klarnaDivider = Color(.sRGB, red: 0.8980, green: 0.8667, blue: 0.8314, opacity: 1.0000)
    /// Klarna Canvas Dark — Authored dark-mode canvas — Klarna is light-first; this is an authored inversion.
    public static let klarnaCanvasDark = Color(.sRGB, red: 0.1020, green: 0.0784, blue: 0.0627, opacity: 1.0000)
    /// Klarna Surface Dark — Authored elevated surface on dark mode.
    public static let klarnaSurfaceDark = Color(.sRGB, red: 0.1647, green: 0.1294, blue: 0.1098, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.klarnaWhite
    public static let surface = BrandSwatch.klarnaCream
    public static let surfaceElevated = BrandSwatch.klarnaWhite
    public static let textPrimary = BrandSwatch.klarnaBlack
    public static let textSecondary = BrandSwatch.klarnaGraphite
    public static let textTertiary = BrandSwatch.klarnaGray
    public static let primary = BrandSwatch.klarnaPink
    public static let primaryHover = BrandSwatch.klarnaPinkDeep
    public static let accent = BrandSwatch.klarnaPink
    public static let accentHover = BrandSwatch.klarnaPinkDeep
    public static let warning = BrandSwatch.klarnaPinkDeep
    public static let warningHover = BrandSwatch.klarnaPink
    public static let error = BrandSwatch.klarnaBlack
    public static let success = BrandSwatch.klarnaPink
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.klarnaCanvasDark
    public static let surface = BrandSwatch.klarnaSurfaceDark
    public static let surfaceElevated = BrandSwatch.klarnaSurfaceDark
    public static let textPrimary = BrandSwatch.klarnaWhite
    public static let textSecondary = BrandSwatch.klarnaCream
    public static let textTertiary = BrandSwatch.klarnaGray
    public static let primary = BrandSwatch.klarnaPink
    public static let primaryHover = BrandSwatch.klarnaPinkDeep
    public static let accent = BrandSwatch.klarnaPink
    public static let accentHover = BrandSwatch.klarnaPinkDeep
    public static let warning = BrandSwatch.klarnaPinkDeep
    public static let warningHover = BrandSwatch.klarnaPink
    public static let error = BrandSwatch.klarnaWhite
    public static let success = BrandSwatch.klarnaPink
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.klarnaPink
    public static let onIdentity = BrandSwatch.klarnaBlack
    public static let primary = BrandSwatch.klarnaPink
    public static let primaryHover = BrandSwatch.klarnaPinkDeep
    public static let accent = BrandSwatch.klarnaPink
    public static let accentHover = BrandSwatch.klarnaPinkDeep
    public static let mark = BrandSwatch.klarnaBlack
    public static let textPrimaryLight = BrandSwatch.klarnaBlack
    public static let textPrimaryDark = BrandSwatch.klarnaWhite
    public static let textSecondaryLight = BrandSwatch.klarnaGraphite
    public static let backgroundLight = BrandSwatch.klarnaWhite
    public static let backgroundDark = BrandSwatch.klarnaCanvasDark
    public static let surfaceLight = BrandSwatch.klarnaCream
    public static let surfaceDark = BrandSwatch.klarnaSurfaceDark
    public static let divider = BrandSwatch.klarnaDivider
}

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