import Link from "next/link"; import type { Kid } from "@/app/data/kids"; /** * Colores dinámicos → utilities Tailwind con valores exactos. * El set de pares del mock es cerrado; nunca se usan atributos style. */ const AVATAR_COLORS: Record = { "A9D9E8-1F7A93": "bg-[#A9D9E8] text-[#1F7A93]", "F4B8CC-C44A7A": "bg-[#F4B8CC] text-[#C44A7A]", "B9DEC4-3E8B62": "bg-[#B9DEC4] text-[#3E8B62]", "F4DC8E-9A7B1E": "bg-[#F4DC8E] text-[#9A7B1E]", "C9B6E8-7B5FC0": "bg-[#C9B6E8] text-[#7B5FC0]", }; function avatarClasses(kid: Kid): string { const key = `${kid.avatar.bg.replace("#", "")}-${kid.avatar.text.replace("#", "")}`; return AVATAR_COLORS[key] ?? ""; } /** "2 padres vinculados" | "1 padre vinculado" | "sin padres vinculados". */ function parentsLabel(kid: Kid): string { if (kid.parents.length === 0) return "sin padres vinculados"; return `${kid.parents.length} ${kid.parents.length === 1 ? "padre" : "padres"} vinculados`; } export default function KidCard({ kid }: { kid: Kid }) { return (
{kid.initial}
{kid.name}
{kid.age} años · {parentsLabel(kid)}
{kid.parents.length === 0 ? ( VINCULAR ) : kid.allergies.length > 0 ? ( {kid.allergies[0]} ) : ( )} ); }