//
// Square (square@1.0.0)
// Palette: square@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 {
    /// Square Blue — Primary brand blue — the Square interactive color, primary CTAs, and merchant accents.
    public static let squareBlue = Color(.sRGB, red: 0.0000, green: 0.4157, blue: 1.0000, opacity: 1.0000)
    /// Square Blue Hover — Authored darker blue for hover/pressed states on the primary action.
    public static let squareBlueHover = Color(.sRGB, red: 0.0000, green: 0.3451, blue: 0.8392, opacity: 1.0000)
    /// Square Black — The Square mark itself — solid black on light canvas. Also the wordmark color.
    public static let squareBlack = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Square Near-Black — Authored dark canvas — slightly lifted from pure black for dark-mode comfort.
    public static let squareNearBlack = Color(.sRGB, red: 0.1020, green: 0.1020, blue: 0.1020, opacity: 1.0000)
    /// Square Ink — Body text on light surfaces.
    public static let squareInk = Color(.sRGB, red: 0.1294, green: 0.1294, blue: 0.1294, opacity: 1.0000)
    /// Square Graphite — Secondary text on light backgrounds.
    public static let squareGraphite = Color(.sRGB, red: 0.3098, green: 0.3098, blue: 0.3098, opacity: 1.0000)
    /// Square Gray — Tertiary text and metadata.
    public static let squareGray = Color(.sRGB, red: 0.4824, green: 0.4824, blue: 0.4824, opacity: 1.0000)
    /// Square Divider — Authored hairline divider tone.
    public static let squareDivider = Color(.sRGB, red: 0.8980, green: 0.8980, blue: 0.8980, opacity: 1.0000)
    /// Square White — Canonical light canvas.
    public static let squareWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Square Fog — Authored surface tone for cards and panels.
    public static let squareFog = Color(.sRGB, red: 0.9686, green: 0.9686, blue: 0.9686, opacity: 1.0000)
    /// Square Surface Dark — Authored elevated surface on dark mode.
    public static let squareSurfaceDark = Color(.sRGB, red: 0.1686, green: 0.1686, blue: 0.1686, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.squareWhite
    public static let surface = BrandSwatch.squareFog
    public static let surfaceElevated = BrandSwatch.squareWhite
    public static let textPrimary = BrandSwatch.squareInk
    public static let textSecondary = BrandSwatch.squareGraphite
    public static let textTertiary = BrandSwatch.squareGray
    public static let primary = BrandSwatch.squareBlue
    public static let primaryHover = BrandSwatch.squareBlueHover
    public static let accent = BrandSwatch.squareBlue
    public static let accentHover = BrandSwatch.squareBlueHover
    public static let warning = BrandSwatch.squareBlueHover
    public static let warningHover = BrandSwatch.squareBlue
    public static let error = BrandSwatch.squareBlack
    public static let success = BrandSwatch.squareBlue
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.squareNearBlack
    public static let surface = BrandSwatch.squareSurfaceDark
    public static let surfaceElevated = BrandSwatch.squareSurfaceDark
    public static let textPrimary = BrandSwatch.squareWhite
    public static let textSecondary = BrandSwatch.squareGray
    public static let textTertiary = BrandSwatch.squareGraphite
    public static let primary = BrandSwatch.squareBlue
    public static let primaryHover = BrandSwatch.squareBlueHover
    public static let accent = BrandSwatch.squareBlue
    public static let accentHover = BrandSwatch.squareBlueHover
    public static let warning = BrandSwatch.squareBlueHover
    public static let warningHover = BrandSwatch.squareBlue
    public static let error = BrandSwatch.squareWhite
    public static let success = BrandSwatch.squareBlue
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.squareBlack
    public static let onIdentity = BrandSwatch.squareWhite
    public static let primary = BrandSwatch.squareBlue
    public static let primaryHover = BrandSwatch.squareBlueHover
    public static let accent = BrandSwatch.squareBlue
    public static let accentHover = BrandSwatch.squareBlueHover
    public static let mark = BrandSwatch.squareBlack
    public static let textPrimaryLight = BrandSwatch.squareInk
    public static let textPrimaryDark = BrandSwatch.squareWhite
    public static let textSecondaryLight = BrandSwatch.squareGraphite
    public static let backgroundLight = BrandSwatch.squareWhite
    public static let backgroundDark = BrandSwatch.squareNearBlack
    public static let surfaceLight = BrandSwatch.squareFog
    public static let surfaceDark = BrandSwatch.squareSurfaceDark
    public static let divider = BrandSwatch.squareDivider
}

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