// DdsTokens.swift
// Hand-mirrored from shared/design/dot-tokens.yaml (DDS 1.1.0). Do not auto-generate.

import SwiftUI

enum DdsBase {
  static let darkBg        = Color(hex: 0x000000)
  static let darkSurface   = Color(hex: 0x0B0B0B)
  static let darkSurface2  = Color(hex: 0x141414)
  static let darkBorder    = Color(hex: 0x1F1F1F)
  static let darkText      = Color(hex: 0xFFFFFF)
  static let darkText2     = Color(hex: 0x777777)
  static let darkText3     = Color(hex: 0x444444)

  static let lightBg       = Color(hex: 0xF7F7F7)
  static let lightSurface  = Color(hex: 0xFFFFFF)
  static let lightSurface2 = Color(hex: 0xF0F0F0)
  static let lightBorder   = Color(hex: 0xE0E0E0)
  static let lightText     = Color(hex: 0x111111)
  static let lightText2    = Color(hex: 0x666666)
  static let lightText3    = Color(hex: 0xAAAAAA)
}

enum DdsUiAccent {
  // Dot Red — same for all products
  static let dark  = Color(hex: 0xFF2D2D)
  static let light = Color(hex: 0xE80000)
  static let onAccent = Color(hex: 0xFFFFFF)
}

enum DdsRadii {
  static let xs: CGFloat = 2   // phone screens
  static let sm: CGFloat = 4   // all controls
  static let md: CGFloat = 8   // phone frame
}

enum DdsSpacing {
  static let xs: CGFloat = 4
  static let sm: CGFloat = 8
  static let md: CGFloat = 12
  static let lg: CGFloat = 16
  static let xl: CGFloat = 20
  static let xxl: CGFloat = 24

  static let screenPaddingX: CGFloat = 16
  static let cardPadding: CGFloat = 18
  static let cardGap: CGFloat = 14
  static let sectionGap: CGFloat = 24
  static let hitAreaMin: CGFloat = 44
}

enum DdsBorders {
  static let hairline: CGFloat = 1
  static let strong: CGFloat = 2
  // No drop shadows. Ever.
}

enum DdsMotion {
  static let instant: Double = 0.1
  static let normal: Double = 0.2
  static let easing: Animation = .easeOut(duration: 0.2)
}

enum DdsType {
  static let ui = "SpaceGrotesk"
  static let data = "SpaceMono"

  static let display = Font.custom(ui, size: 28).weight(.semibold)
  static let title   = Font.custom(ui, size: 20).weight(.semibold)
  static let heading = Font.custom(ui, size: 18).weight(.semibold)
  static let body    = Font.custom(ui, size: 15).weight(.medium)
  static let bodySm  = Font.custom(ui, size: 13).weight(.medium)
  static let amount  = Font.custom(data, size: 36).weight(.bold)
  static let dataLg  = Font.custom(data, size: 12).weight(.bold)
  static let label   = Font.custom(data, size: 9).weight(.bold)
  static let micro   = Font.custom(data, size: 8).weight(.bold)
}
