import { cn } from '@/lib/utils'
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip'
import type { HeatmapMode } from '@/lib/colors'

interface HeatmapModeToggleProps {
  mode: HeatmapMode
  onChange: (mode: HeatmapMode) => void
}

const MODE_LABELS: Record<HeatmapMode, { label: string; tip: string }> = {
  percentile: {
    label: 'Percentil',
    tip: 'Colorea cada actividad según su posición relativa entre todas las actividades del proceso. No se distorsiona por outliers.',
  },
  minmax: {
    label: 'Min-max',
    tip: '(costo − mínimo) / (máximo − mínimo). Refleja valores absolutos, pero se comprime si hay outliers extremos.',
  },
}

export function HeatmapModeToggle({ mode, onChange }: HeatmapModeToggleProps) {
  return (
    <div className="inline-flex rounded-lg border border-slate-200 bg-slate-50 p-0.5 text-xs">
      {(['percentile', 'minmax'] as HeatmapMode[]).map((m) => {
        const { label, tip } = MODE_LABELS[m]
        return (
          <Tooltip key={m}>
            <TooltipTrigger asChild>
              <button
                onClick={() => onChange(m)}
                className={cn(
                  'px-3 py-1.5 rounded-md font-medium transition-all',
                  mode === m
                    ? 'bg-white text-slate-800 shadow-sm'
                    : 'text-slate-500 hover:text-slate-700'
                )}
              >
                {label}
              </button>
            </TooltipTrigger>
            <TooltipContent side="bottom" className="max-w-52 text-xs">
              {tip}
            </TooltipContent>
          </Tooltip>
        )
      })}
    </div>
  )
}
