export const METHOD_CONFIG: Record = { starter: { label: 'Starter', color: 'bg-yellow-100 text-yellow-800 dark:bg-yellow-900/40 dark:text-yellow-300', }, gift: { label: 'Gift', color: 'bg-pink-100 text-pink-800 dark:bg-pink-900/40 dark:text-pink-300', }, fossil: { label: 'Fossil', color: 'bg-amber-100 text-amber-800 dark:bg-amber-900/40 dark:text-amber-300', }, trade: { label: 'Trade', color: 'bg-emerald-100 text-emerald-800 dark:bg-emerald-900/40 dark:text-emerald-300', }, walk: { label: 'Grass', color: 'bg-green-100 text-green-800 dark:bg-green-900/40 dark:text-green-300', }, headbutt: { label: 'Headbutt', color: 'bg-lime-100 text-lime-800 dark:bg-lime-900/40 dark:text-lime-300', }, surf: { label: 'Surfing', color: 'bg-blue-100 text-blue-800 dark:bg-blue-900/40 dark:text-blue-300', }, 'rock-smash': { label: 'Rock Smash', color: 'bg-orange-100 text-orange-800 dark:bg-orange-900/40 dark:text-orange-300', }, 'old-rod': { label: 'Old Rod', color: 'bg-cyan-100 text-cyan-800 dark:bg-cyan-900/40 dark:text-cyan-300', }, 'good-rod': { label: 'Good Rod', color: 'bg-sky-100 text-sky-800 dark:bg-sky-900/40 dark:text-sky-300', }, 'super-rod': { label: 'Super Rod', color: 'bg-indigo-100 text-indigo-800 dark:bg-indigo-900/40 dark:text-indigo-300', }, } /** Display order for encounter method groups */ export const METHOD_ORDER = [ 'starter', 'gift', 'fossil', 'trade', 'walk', 'headbutt', 'surf', 'rock-smash', 'old-rod', 'good-rod', 'super-rod', ] export function getMethodLabel(method: string): string { return ( METHOD_CONFIG[method]?.label ?? method .replace(/-/g, ' ') .replace(/\b\w/g, (c) => c.toUpperCase()) ) } export function getMethodColor(method: string): string { return METHOD_CONFIG[method]?.color ?? 'bg-gray-100 text-gray-800 dark:bg-gray-700 dark:text-gray-300' } export function EncounterMethodBadge({ method, size = 'sm', }: { method: string size?: 'sm' | 'xs' }) { const config = METHOD_CONFIG[method] if (!config) return null const sizeClass = size === 'xs' ? 'text-[8px] px-1 py-0' : 'text-[9px] px-1.5 py-0.5' return ( {config.label} ) }