//
// Booking.com (booking@1.0.0)
// Palette: booking@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 {
    /// Booking Blue — Booking.com's signature navy — the wordmark, the nav, and primary chrome.
    public static let bookingBlue = Color(.sRGB, red: 0.0000, green: 0.2078, blue: 0.5020, opacity: 1.0000)
    /// Booking Blue Deep — Pressed / hover variant of Booking Blue for interactive states.
    public static let bookingBlueDeep = Color(.sRGB, red: 0.0000, green: 0.1647, blue: 0.4000, opacity: 1.0000)
    /// Booking Blue Bright — Brighter mid-blue used historically for links and secondary CTAs on booking.com.
    public static let bookingBlueBright = Color(.sRGB, red: 0.0000, green: 0.4431, blue: 0.7608, opacity: 1.0000)
    /// Booking Yellow — Secondary brand yellow — historically the Genius and high-priority CTA accent on booking.com.
    public static let bookingYellow = Color(.sRGB, red: 0.9961, green: 0.7333, blue: 0.0078, opacity: 1.0000)
    /// Booking Ink — Primary text color on light surfaces.
    public static let bookingInk = Color(.sRGB, red: 0.1020, green: 0.1020, blue: 0.1020, opacity: 1.0000)
    /// Booking Charcoal — Secondary text on light; elevated dark surface.
    public static let bookingCharcoal = Color(.sRGB, red: 0.2000, green: 0.2000, blue: 0.2000, opacity: 1.0000)
    /// Booking Graphite — Tertiary text and icon color.
    public static let bookingGraphite = Color(.sRGB, red: 0.4196, green: 0.4196, blue: 0.4196, opacity: 1.0000)
    /// Booking Mist — Border and quiet divider on light canvas.
    public static let bookingMist = Color(.sRGB, red: 0.9020, green: 0.9020, blue: 0.9020, opacity: 1.0000)
    /// Booking Fog — Subtle elevated surface on white.
    public static let bookingFog = Color(.sRGB, red: 0.9608, green: 0.9608, blue: 0.9608, opacity: 1.0000)
    /// Booking White — Primary canvas — booking.com is a white-canvas product surface.
    public static let bookingWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Booking Success — Functional success — confirmed reservation, completion.
    public static let bookingSuccess = Color(.sRGB, red: 0.0000, green: 0.5020, blue: 0.0353, opacity: 1.0000)
    /// Booking Error — Functional error — destructive / unavailable states.
    public static let bookingError = Color(.sRGB, red: 0.7529, green: 0.2235, blue: 0.1686, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.bookingWhite
    public static let surface = BrandSwatch.bookingFog
    public static let surfaceElevated = BrandSwatch.bookingWhite
    public static let textPrimary = BrandSwatch.bookingInk
    public static let textSecondary = BrandSwatch.bookingCharcoal
    public static let textTertiary = BrandSwatch.bookingGraphite
    public static let primary = BrandSwatch.bookingBlue
    public static let primaryHover = BrandSwatch.bookingBlueDeep
    public static let accent = BrandSwatch.bookingYellow
    public static let accentHover = BrandSwatch.bookingYellow
    public static let success = BrandSwatch.bookingSuccess
    public static let warning = BrandSwatch.bookingYellow
    public static let error = BrandSwatch.bookingError
    public static let border = BrandSwatch.bookingMist
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.bookingInk
    public static let surface = BrandSwatch.bookingCharcoal
    public static let surfaceElevated = BrandSwatch.bookingGraphite
    public static let textPrimary = BrandSwatch.bookingWhite
    public static let textSecondary = BrandSwatch.bookingMist
    public static let textTertiary = BrandSwatch.bookingGraphite
    public static let primary = BrandSwatch.bookingBlueBright
    public static let primaryHover = BrandSwatch.bookingBlue
    public static let accent = BrandSwatch.bookingYellow
    public static let accentHover = BrandSwatch.bookingYellow
    public static let success = BrandSwatch.bookingSuccess
    public static let warning = BrandSwatch.bookingYellow
    public static let error = BrandSwatch.bookingError
    public static let border = BrandSwatch.bookingCharcoal
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.bookingBlue
    public static let onIdentity = BrandSwatch.bookingWhite
    public static let primary = BrandSwatch.bookingBlue
    public static let primaryHover = BrandSwatch.bookingBlueDeep
    public static let accent = BrandSwatch.bookingYellow
    public static let accentHover = BrandSwatch.bookingYellow
    public static let mark = BrandSwatch.bookingBlue
    public static let success = BrandSwatch.bookingSuccess
    public static let warning = BrandSwatch.bookingYellow
    public static let error = BrandSwatch.bookingError
    public static let backgroundLight = BrandSwatch.bookingWhite
    public static let backgroundDark = BrandSwatch.bookingInk
    public static let surfaceLight = BrandSwatch.bookingFog
    public static let surfaceDark = BrandSwatch.bookingCharcoal
    public static let textPrimaryLight = BrandSwatch.bookingInk
    public static let textPrimaryDark = BrandSwatch.bookingWhite
    public static let textSecondaryLight = BrandSwatch.bookingCharcoal
    public static let textTertiaryLight = BrandSwatch.bookingGraphite
    public static let borderLight = BrandSwatch.bookingMist
}

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