// TEST-ONLY scaffolding — NOT exported from the public barrel.
import type { ColorTokens, ShapeTokens, PaletteSet } from './types'

const LIGHT: ColorTokens = {
  fg: '#000000', 'fg-muted': '#1a1a1a', 'fg-subtle': '#595959',
  bg: '#ffffff', surface: '#ffffff', 'surface-raised': '#ffffff',
  border: '#e2e2e2', 'border-strong': '#595959',
  accent: '#1a3a8f', 'accent-fg': '#ffffff',
  success: '#1b5e20', warning: '#8a4b00', danger: '#b00020', info: '#0d47a1',
  'success-fg': '#ffffff', 'warning-fg': '#ffffff', 'danger-fg': '#ffffff', 'info-fg': '#ffffff',
}

const DARK: ColorTokens = {
  fg: '#f5f5f5', 'fg-muted': '#d4d4d4', 'fg-subtle': '#9a9a9a',
  bg: '#121212', surface: '#1e1e1e', 'surface-raised': '#2a2a2a',
  border: '#333333', 'border-strong': '#9a9a9a',
  accent: '#9bb8ff', 'accent-fg': '#0a0a0a',
  success: '#7bdd8e', warning: '#f0c674', danger: '#ff8a8a', info: '#8fb8ff',
  'success-fg': '#0a0a0a', 'warning-fg': '#0a0a0a', 'danger-fg': '#0a0a0a', 'info-fg': '#0a0a0a',
}

const SHAPE: ShapeTokens = {
  'radius-none': '0', 'radius-sm': '0.125rem', 'radius-md': '0.375rem',
  'radius-lg': '0.5rem', 'radius-xl': '0.75rem', 'radius-full': '9999px',
  'font-size-xs': '0.75rem', 'font-size-sm': '0.875rem', 'font-size-base': '1rem',
  'font-size-lg': '1.125rem', 'font-size-xl': '1.25rem', 'font-size-2xl': '1.5rem', 'font-size-3xl': '1.875rem',
  'font-weight-normal': '400', 'font-weight-medium': '500',
  'font-weight-semibold': '600', 'font-weight-bold': '700',
}

/** A complete, AA-clean PaletteSet for tests. Deep-clones so callers may mutate freely. */
export function makeValidPaletteSet(): PaletteSet {
  return structuredClone({
    id: 'fixture-theme',
    name: 'Fixture Theme',
    palettes: [{ id: 'fixture-palette', name: 'Fixture Palette', colors: { light: LIGHT, dark: DARK } }],
    defaultPaletteId: 'fixture-palette',
    shape: { light: SHAPE, dark: SHAPE },
  })
}
