//
// Notion (notion@1.0.0)
// Palette: notion@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 {
    /// Notion Black — Signature mark and wordmark color on light surfaces. Verified brand mark hex.
    public static let notionBlack = Color(.sRGB, red: 0.0000, green: 0.0000, blue: 0.0000, opacity: 1.0000)
    /// Notion White — Canvas on light mode; wordmark fill on dark mode.
    public static let notionWhite = Color(.sRGB, red: 1.0000, green: 1.0000, blue: 1.0000, opacity: 1.0000)
    /// Notion Canvas Dark — Authored dark-mode canvas (near-black). Notion's product dark theme is uniformly described as a near-black canvas; this value is an authored inversion, not a published brand hex.

    public static let notionCanvasDark = Color(.sRGB, red: 0.0980, green: 0.0980, blue: 0.0980, opacity: 1.0000)
    /// Notion Surface Dark — Authored elevated surface for dark mode.
    public static let notionSurfaceDark = Color(.sRGB, red: 0.1843, green: 0.1843, blue: 0.1843, opacity: 1.0000)
    /// Notion Text Secondary (Light) — Authored secondary text — neutral mid-gray on light canvas.
    public static let notionTextSecondaryLight = Color(.sRGB, red: 0.4706, green: 0.4706, blue: 0.4706, opacity: 1.0000)
    /// Notion Text Tertiary (Light) — Authored tertiary / muted text on light.
    public static let notionTextTertiaryLight = Color(.sRGB, red: 0.6275, green: 0.6275, blue: 0.6275, opacity: 1.0000)
    /// Notion Text Secondary (Dark) — Authored secondary text on dark canvas.
    public static let notionTextSecondaryDark = Color(.sRGB, red: 0.6275, green: 0.6275, blue: 0.6275, opacity: 1.0000)
}

/// Semantic color roles for light mode.
public enum BrandLight {
    public static let background = BrandSwatch.notionWhite
    public static let surface = BrandSwatch.notionWhite
    public static let surfaceElevated = BrandSwatch.notionWhite
    public static let textPrimary = BrandSwatch.notionBlack
    public static let textSecondary = BrandSwatch.notionTextSecondaryLight
    public static let textTertiary = BrandSwatch.notionTextTertiaryLight
    public static let primary = BrandSwatch.notionBlack
    public static let primaryHover = BrandSwatch.notionTextSecondaryLight
    public static let accent = BrandSwatch.notionBlack
    public static let accentHover = BrandSwatch.notionTextSecondaryLight
    public static let warning = BrandSwatch.notionBlack
    public static let warningHover = BrandSwatch.notionTextSecondaryLight
    public static let error = BrandSwatch.notionBlack
    public static let success = BrandSwatch.notionBlack
}

/// Semantic color roles for dark mode.
public enum BrandDark {
    public static let background = BrandSwatch.notionCanvasDark
    public static let surface = BrandSwatch.notionSurfaceDark
    public static let surfaceElevated = BrandSwatch.notionSurfaceDark
    public static let textPrimary = BrandSwatch.notionWhite
    public static let textSecondary = BrandSwatch.notionTextSecondaryDark
    public static let textTertiary = BrandSwatch.notionTextTertiaryLight
    public static let primary = BrandSwatch.notionWhite
    public static let primaryHover = BrandSwatch.notionTextSecondaryDark
    public static let accent = BrandSwatch.notionWhite
    public static let accentHover = BrandSwatch.notionTextSecondaryDark
    public static let warning = BrandSwatch.notionWhite
    public static let warningHover = BrandSwatch.notionTextSecondaryDark
    public static let error = BrandSwatch.notionWhite
    public static let success = BrandSwatch.notionWhite
}

/// Brand-level color role overrides.
public enum BrandColor {
    public static let identity = BrandSwatch.notionBlack
    public static let onIdentity = BrandSwatch.notionWhite
    public static let primary = BrandSwatch.notionBlack
    public static let primaryHover = BrandSwatch.notionTextSecondaryLight
    public static let accent = BrandSwatch.notionBlack
    public static let accentHover = BrandSwatch.notionTextSecondaryLight
    public static let success = BrandSwatch.notionBlack
    public static let warning = BrandSwatch.notionBlack
    public static let error = BrandSwatch.notionBlack
    public static let backgroundLight = BrandSwatch.notionWhite
    public static let backgroundDark = BrandSwatch.notionCanvasDark
    public static let surfaceLight = BrandSwatch.notionWhite
    public static let surfaceDark = BrandSwatch.notionSurfaceDark
    public static let textPrimaryLight = BrandSwatch.notionBlack
    public static let textPrimaryDark = BrandSwatch.notionWhite
}

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