//
// Airbnb (airbnb@1.0.0)
// Palette: airbnb@1.0.0
// Fonts:   heading=airbnb-cereal@1.0.0, body=airbnb-cereal@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 {
    /// Airbnb Rausch — Signature pink-red — the primary brand color. Verified hex from the simple-icons brand database citing airbnb.com.

    public static let airbnbRausch = Color(.sRGB, red: 1.0000, green: 0.3529, blue: 0.3725, opacity: 1.0000)
    /// Airbnb Rausch Hover — Authored hover / active state for Rausch.
    public static let airbnbRauschHover = Color(.sRGB, red: 0.9137, green: 0.2902, blue: 0.3098, opacity: 1.0000)
    /// Airbnb White — Canvas on light surfaces.
    public static let airbnbWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Airbnb Near-White — Authored panel surface for light mode.
    public static let airbnbNearWhite = Color(.sRGB, red: 0.9686, green: 0.9686, blue: 0.9686, opacity: 1.0000)
    /// Airbnb Text Primary — Authored body text on light backgrounds — the near-black tone Airbnb's marketing surfaces uniformly read as.

    public static let airbnbTextPrimary = Color(.sRGB, red: 0.1333, green: 0.1333, blue: 0.1333, opacity: 1.0000)
    /// Airbnb Text Secondary — Authored secondary text on light backgrounds.
    public static let airbnbTextSecondary = Color(.sRGB, red: 0.4431, green: 0.4431, blue: 0.4431, opacity: 1.0000)
    /// Airbnb Text Tertiary — Authored tertiary / muted text.
    public static let airbnbTextTertiary = Color(.sRGB, red: 0.6902, green: 0.6902, blue: 0.6902, opacity: 1.0000)
    /// Airbnb Divider — Authored hairline divider tone.
    public static let airbnbDivider = Color(.sRGB, red: 0.9216, green: 0.9216, blue: 0.9216, opacity: 1.0000)
    /// Airbnb Canvas Dark — Authored dark-mode canvas — Airbnb's primary product is light-first; this is an authored inversion.
    public static let airbnbCanvasDark = Color(.sRGB, red: 0.1020, green: 0.1020, blue: 0.1020, opacity: 1.0000)
    /// Airbnb Surface Dark — Authored elevated surface on dark mode.
    public static let airbnbSurfaceDark = Color(.sRGB, red: 0.1686, green: 0.1686, blue: 0.1686, opacity: 1.0000)
    /// Airbnb Success — Authored success accent — leans deep green, consistent with Airbnb's status indicators.
    public static let airbnbSuccess = Color(.sRGB, red: 0.0000, green: 0.5412, blue: 0.0196, opacity: 1.0000)
    /// Airbnb Warning — Authored warning accent — a deeper red used distinctly from Rausch for destructive context.
    public static let airbnbWarning = Color(.sRGB, red: 0.7569, green: 0.2078, blue: 0.0824, opacity: 1.0000)
    /// Airbnb Error — Authored error accent — same deeper red.
    public static let airbnbError = Color(.sRGB, red: 0.7569, green: 0.2078, blue: 0.0824, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.airbnbWhite
    public static let surface = BrandSwatch.airbnbNearWhite
    public static let surfaceElevated = BrandSwatch.airbnbWhite
    public static let textPrimary = BrandSwatch.airbnbTextPrimary
    public static let textSecondary = BrandSwatch.airbnbTextSecondary
    public static let textTertiary = BrandSwatch.airbnbTextTertiary
    public static let primary = BrandSwatch.airbnbRausch
    public static let primaryHover = BrandSwatch.airbnbRauschHover
    public static let accent = BrandSwatch.airbnbRausch
    public static let accentHover = BrandSwatch.airbnbRauschHover
    public static let warning = BrandSwatch.airbnbWarning
    public static let warningHover = BrandSwatch.airbnbWarning
    public static let error = BrandSwatch.airbnbError
    public static let success = BrandSwatch.airbnbSuccess
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.airbnbCanvasDark
    public static let surface = BrandSwatch.airbnbSurfaceDark
    public static let surfaceElevated = BrandSwatch.airbnbSurfaceDark
    public static let textPrimary = BrandSwatch.airbnbWhite
    public static let textSecondary = BrandSwatch.airbnbTextTertiary
    public static let textTertiary = BrandSwatch.airbnbTextSecondary
    public static let primary = BrandSwatch.airbnbRausch
    public static let primaryHover = BrandSwatch.airbnbRauschHover
    public static let accent = BrandSwatch.airbnbRausch
    public static let accentHover = BrandSwatch.airbnbRauschHover
    public static let warning = BrandSwatch.airbnbWarning
    public static let warningHover = BrandSwatch.airbnbWarning
    public static let error = BrandSwatch.airbnbError
    public static let success = BrandSwatch.airbnbSuccess
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.airbnbRausch
    public static let onIdentity = BrandSwatch.airbnbWhite
    public static let primary = BrandSwatch.airbnbRausch
    public static let primaryHover = BrandSwatch.airbnbRauschHover
    public static let accent = BrandSwatch.airbnbRausch
    public static let accentHover = BrandSwatch.airbnbRauschHover
    public static let success = BrandSwatch.airbnbSuccess
    public static let warning = BrandSwatch.airbnbWarning
    public static let error = BrandSwatch.airbnbError
    public static let backgroundLight = BrandSwatch.airbnbWhite
    public static let backgroundDark = BrandSwatch.airbnbCanvasDark
    public static let surfaceLight = BrandSwatch.airbnbNearWhite
    public static let surfaceDark = BrandSwatch.airbnbSurfaceDark
    public static let textPrimaryLight = BrandSwatch.airbnbTextPrimary
    public static let textPrimaryDark = BrandSwatch.airbnbWhite
    public static let textSecondaryLight = BrandSwatch.airbnbTextSecondary
    public static let divider = BrandSwatch.airbnbDivider
}

/// Typography family names by brand role.
public enum BrandFont {
    /// Airbnb Cereal (airbnb-cereal@1.0.0)
    public static let heading = "Airbnb Cereal"
    /// Airbnb Cereal (airbnb-cereal@1.0.0)
    public static let body = "Airbnb Cereal"
    /// JetBrainsMono Nerd Font (jetbrainsmono-nerdfont@1.0.0)
    public static let mono = "JetBrainsMono Nerd Font"
}
