// Auto-generated by build_ios_tokens.py — do not edit by hand.
// Source: /Users/marianamejia/Library/CloudStorage/GoogleDrive-mariana@viceversable.com/My Drive/💜 Viceversable/✌🏼 Brand Portal/design-tokens.json
// Generated: 2026-04-20 08:12

import SwiftUI

// MARK: - Palette
public enum VPalette {
    public static let blanco = Color(hex: "#FFFFFF")
    public static let hueso = Color(hex: "#F7F5F3")
    public static let arena = Color(hex: "#DAD6D4")
    public static let malva = Color(hex: "#F3E0FF")
    public static let lila = Color(hex: "#EEE6FF")
    public static let purpura = Color(hex: "#B768EC")
    public static let morado = Color(hex: "#8C56F8")
    public static let real = Color(hex: "#352750")
    public static let violeta = Color(hex: "#120F20")
    public static let street = Color(hex: "#1B1030")
    public static let tealTint = Color(hex: "#E5F8F7")
    public static let tealBase = Color(hex: "#7AE2DB")
    public static let tealMid = Color(hex: "#1CA89F")
    public static let limaTint = Color(hex: "#F0F8D6")
    public static let limaBase = Color(hex: "#C4EA60")
    public static let limaMid = Color(hex: "#91B80E")
    public static let yellowTint = Color(hex: "#FFFFC3")
    public static let yellowBase = Color(hex: "#F6F66E")
    public static let yellowMid = Color(hex: "#C5C53A")
    public static let naranjaTint = Color(hex: "#FFF1E9")
    public static let naranjaBase = Color(hex: "#FF8965")
    public static let naranjaMid = Color(hex: "#E1562C")
    public static let rosaTint = Color(hex: "#FFECF5")
    public static let rosaBase = Color(hex: "#FF729E")
    public static let rosaMid = Color(hex: "#C21D50")
}

// MARK: - UI Tokens (Light / Dark)
public enum VUI {
    public enum Light {
        public static let bg = Color(hex: "#var(--hueso)")
        public static let surface = Color(hex: "#var(--blanco)")
        public static let raised = Color(hex: "#var(--blanco)")
        public static let txtDark = Color(hex: "#120F20")
        public static let txtMid = Color(hex: "#rgba(18,15,32,0.62)")
        public static let txtMuted = Color(hex: "#rgba(18,15,32,0.40)")
        public static let muted = Color(hex: "#rgba(18,15,32,0.40)")
        public static let border = Color(hex: "#rgba(18,15,32,0.07)")
        public static let borderL = Color(hex: "#rgba(18,15,32,0.10)")
        public static let navBg = Color(hex: "#var(--blanco)")
        public static let navText = Color(hex: "#rgba(18,15,32,0.42)")
        public static let navActive = Color(hex: "#var(--violeta)")
        public static let navHover = Color(hex: "#rgba(18,15,32,0.04)")
        public static let topbarBg = Color(hex: "#transparent")
        public static let topbarBorder = Color(hex: "#none")
        public static let clrData = Color(hex: "#var(--purpura)")
    }
    public enum Dark {
        public static let bg = Color(hex: "#var(--violeta)")
        public static let surface = Color(hex: "#1E1A2E")
        public static let raised = Color(hex: "#2A2440")
        public static let txtDark = Color(hex: "#F2EFEC")
        public static let txtMid = Color(hex: "#B5AECA")
        public static let txtMuted = Color(hex: "#rgba(181,174,202,0.75)")
        public static let muted = Color(hex: "#rgba(181,174,202,0.75)")
        public static let border = Color(hex: "#rgba(183,104,236,0.10)")
        public static let borderL = Color(hex: "#rgba(183,104,236,0.16)")
        public static let navBg = Color(hex: "#1E1A2E")
        public static let navText = Color(hex: "#rgba(255,255,255,0.50)")
        public static let navActive = Color(hex: "#F2EFEC")
        public static let navHover = Color(hex: "#rgba(183,104,236,0.08)")
        public static let topbarBg = Color(hex: "#var(--violeta)")
        public static let topbarBorder = Color(hex: "#rgba(183,104,236,0.08)")
        public static let clrData = Color(hex: "#F2EFEC")
    }
}

// MARK: - Semantic (status) Tokens
public enum VSemantic {
    public enum Light {
        public static let semLima = Color(hex: "#var(--lima-mid)")
        public static let semTeal = Color(hex: "#var(--teal-mid)")
        public static let semYellow = Color(hex: "#var(--yellow-mid)")
        public static let semNaranja = Color(hex: "#var(--naranja-mid)")
        public static let semRosa = Color(hex: "#var(--rosa-mid)")
        public static let semLimaBg = Color(hex: "#var(--lima-tint)")
        public static let semLimaBdr = Color(hex: "#rgba(145,184,14,0.30)")
        public static let semYellowBg = Color(hex: "#var(--yellow-tint)")
        public static let semYellowBdr = Color(hex: "#rgba(213,165,53,0.30)")
        public static let semNaranjaBg = Color(hex: "#var(--naranja-tint)")
        public static let semNaranjaBdr = Color(hex: "#rgba(225,86,44,0.25)")
        public static let semRosaBg = Color(hex: "#var(--rosa-tint)")
        public static let semRosaBdr = Color(hex: "#rgba(194,29,80,0.25)")
        public static let semPurpleBg = Color(hex: "#var(--malva)")
        public static let semPurpleBdr = Color(hex: "#rgba(183,104,236,0.30)")
        public static let purpuraSubtle = Color(hex: "#rgba(183,104,236,0.25)")
        public static let purpuraFill = Color(hex: "#rgba(183,104,236,0.45)")
    }
    public enum Dark {
        public static let semLima = Color(hex: "#var(--lima-base)")
        public static let semTeal = Color(hex: "#var(--teal-base)")
        public static let semYellow = Color(hex: "#var(--yellow-base)")
        public static let semNaranja = Color(hex: "#var(--naranja-base)")
        public static let semRosa = Color(hex: "#var(--rosa-base)")
        public static let semLimaBg = Color(hex: "#rgba(196,234,96,0.10)")
        public static let semLimaBdr = Color(hex: "#rgba(196,234,96,0.22)")
        public static let semYellowBg = Color(hex: "#rgba(255,229,80,0.10)")
        public static let semYellowBdr = Color(hex: "#rgba(255,229,80,0.22)")
        public static let semNaranjaBg = Color(hex: "#rgba(255,137,101,0.12)")
        public static let semNaranjaBdr = Color(hex: "#rgba(255,137,101,0.24)")
        public static let semRosaBg = Color(hex: "#rgba(255,114,158,0.12)")
        public static let semRosaBdr = Color(hex: "#rgba(255,114,158,0.24)")
        public static let semPurpleBg = Color(hex: "#rgba(183,104,236,0.10)")
        public static let semPurpleBdr = Color(hex: "#rgba(183,104,236,0.22)")
    }
}

// MARK: - Typography
public enum VTypography {
    public static let fontBody = "'Geist', sans-serif"
    public static let fontDisplay = "'Instrument Serif', serif"
    public static let fontStyleSerif = "normal"
    public static let textSmall = "clamp(0.64rem, 0.612rem + 0.139vw, 0.72rem)"
    public static let textH6 = "clamp(0.8rem, 0.765rem + 0.174vw, 0.9rem)"
    public static let textBody = "clamp(1rem, 0.957rem + 0.217vw, 1.125rem)"
    public static let textH5 = "clamp(1rem, 0.957rem + 0.217vw, 1.125rem)"
    public static let textH4 = "clamp(1.25rem, 1.196rem + 0.272vw, 1.406rem)"
    public static let textH3 = "clamp(1.563rem, 1.495rem + 0.340vw, 1.758rem)"
    public static let textH2 = "clamp(1.953rem, 1.868rem + 0.425vw, 2.197rem)"
    public static let textH1 = "clamp(2.441rem, 2.335rem + 0.531vw, 2.747rem)"
    public static let textDisplay = "clamp(3.052rem, 2.919rem + 0.663vw, 3.433rem)"
    public static let fwLight = "300"
    public static let fwRegular = "400"
    public static let fwMedium = "500"
    public static let fwSemibold = "600"
    public static let fwBold = "700"
    public static let lhDisplay: CGFloat = 1.05
    public static let lhHeading: CGFloat = 1.15
    public static let lhSubhead: CGFloat = 1.3
    public static let lhBody: CGFloat = 1.55
    public static let lsDisplay = "-0.03em"
    public static let lsHeading = "-0.02em"
    public static let lsBadge = "0.14em"
    public static let lsKpi = "0.05em"
    public static let lsOverline = "0.20em"
    public static let lsOverlineCompact = "0.06em"
}

// MARK: - Color(hex:) helper
// Remove this extension if your project already defines Color(hex:) elsewhere.
public extension Color {
    init(hex: String) {
        let cleaned = hex.trimmingCharacters(in: .whitespacesAndNewlines).replacingOccurrences(of: "#", with: "")
        var rgb: UInt64 = 0
        Scanner(string: cleaned).scanHexInt64(&rgb)
        let length = cleaned.count
        let r, g, b, a: Double
        switch length {
        case 3: // RGB (12-bit)
            r = Double((rgb >> 8) & 0xF) / 15.0
            g = Double((rgb >> 4) & 0xF) / 15.0
            b = Double(rgb & 0xF) / 15.0
            a = 1.0
        case 6: // RGB (24-bit)
            r = Double((rgb >> 16) & 0xFF) / 255.0
            g = Double((rgb >> 8) & 0xFF) / 255.0
            b = Double(rgb & 0xFF) / 255.0
            a = 1.0
        case 8: // ARGB (32-bit)
            a = Double((rgb >> 24) & 0xFF) / 255.0
            r = Double((rgb >> 16) & 0xFF) / 255.0
            g = Double((rgb >> 8) & 0xFF) / 255.0
            b = Double(rgb & 0xFF) / 255.0
        default:
            r = 0; g = 0; b = 0; a = 1
        }
        self.init(.sRGB, red: r, green: g, blue: b, opacity: a)
    }
}
