// Auto-generated from bytelyst.tokens.json — do not edit manually.
// Product: actiontrail
// Regenerate: cd packages/design-tokens && tsx scripts/generate.ts

import SwiftUI

enum ActionTrailColors {
    // MARK: - Semantic (Dark Theme)
    static let bgCanvas = Color(hex: 0x06070A)
    static let bgElevated = Color(hex: 0x0E1118)
    static let surfaceCard = Color(hex: 0x121725)
    static let surfaceMuted = Color(hex: 0x1A2335)
    static let textPrimary = Color(hex: 0xEFF4FF)
    static let textSecondary = Color(hex: 0xA5B1C7)
    static let textTertiary = Color(hex: 0x6C7C98)
    static let accentPrimary = Color(hex: 0x5A8CFF)
    static let accentSecondary = Color(hex: 0x2EE6D6)
    static let success = Color(hex: 0x34D399)
    static let warning = Color(hex: 0xF59E0B)
    static let danger = Color(hex: 0xFF6E6E)

    // MARK: - Actiontrail Product Colors
    static let bg = Color(hex: 0x07111F)
    static let surface = Color(hex: 0x0F1B2D)
    static let surfaceElevated = Color(hex: 0x152338)
    static let border = Color(hex: 0x24344D)
    static let text = Color(hex: 0xEFF4FF)
    static let textMuted = Color(hex: 0xA8B4C8)
    static let primary = Color(hex: 0x5A8CFF)
    static let accent = Color(hex: 0x5AE68C)
    static let warning = Color(hex: 0xF59E0B)
    static let danger = Color(hex: 0xFF6E6E)
    static let riskLow = Color(hex: 0x5AE68C)
    static let riskMedium = Color(hex: 0xF59E0B)
    static let riskHigh = Color(hex: 0xFF8C42)
    static let riskCritical = Color(hex: 0xFF6E6E)
    static let statusPending = Color(hex: 0xF59E0B)
    static let statusApplied = Color(hex: 0x5AE68C)
    static let statusRejected = Color(hex: 0xFF6E6E)
    static let statusReverted = Color(hex: 0xA66BFF)

}

enum ActionTrailColorsLight {
    // MARK: - Semantic (Light Theme)
    static let bgCanvas = Color(hex: 0xF6F8FC)
    static let bgElevated = Color(hex: 0xEEF2FA)
    static let surfaceCard = Color(hex: 0xFFFFFF)
    static let surfaceMuted = Color(hex: 0xF3F5FA)
    static let textPrimary = Color(hex: 0x0E1320)
    static let textSecondary = Color(hex: 0x55637A)
    static let textTertiary = Color(hex: 0x6C7C98)
    static let accentPrimary = Color(hex: 0x5A8CFF)
    static let accentSecondary = Color(hex: 0x2EE6D6)
    static let success = Color(hex: 0x13956A)
    static let warning = Color(hex: 0xB87504)
    static let danger = Color(hex: 0xD24242)
}

enum ActionTrailSpacing {
    static let x0:  CGFloat = 0
    static let x1:  CGFloat = 4
    static let x2:  CGFloat = 8
    static let x3:  CGFloat = 12
    static let x4:  CGFloat = 16
    static let x5:  CGFloat = 20
    static let x6:  CGFloat = 24
    static let x7:  CGFloat = 28
    static let x8:  CGFloat = 32
    static let x10: CGFloat = 40
    static let x12: CGFloat = 48
    static let x16: CGFloat = 64
}

enum ActionTrailRadius {
    static let xs: CGFloat = 8
    static let sm: CGFloat = 12
    static let md: CGFloat = 16
    static let lg: CGFloat = 20
    static let xl: CGFloat = 24
    static let pill: CGFloat = 999
}

enum ActionTrailMotion {
    static let instant: Double = 0.07
    static let fast: Double = 0.14
    static let base: Double = 0.22
    static let slow: Double = 0.32
}

// MARK: - Color Hex Extension (import if not already defined)

extension Color {
    init(hex: UInt, alpha: Double = 1.0) {
        self.init(
            .sRGB,
            red:   Double((hex >> 16) & 0xFF) / 255.0,
            green: Double((hex >> 8)  & 0xFF) / 255.0,
            blue:  Double(hex & 0xFF) / 255.0,
            opacity: alpha
        )
    }
}
