import { secondaryButtonLight, textLink } from "@/app/components/button-styles"; import HoverPrefetchLink from "@/app/components/HoverPrefetchLink"; import { buttonLabels, caseStudies, type ServiceOffer, } from "@/lib/site-content"; function OfferCard({ offer, className, }: { offer: ServiceOffer; className: string; }) { const proofCases = offer.proof.caseIds.flatMap((id) => { const caseStudy = caseStudies.find((item) => item.id === id); return caseStudy ? [caseStudy] : []; }); return (

{offer.name}

{offer.summary}

{offer.proof.label}

{proofCases.length > 0 ? ( ) : null} {offer.proof.note ? (

{offer.proof.note}

) : null}
{buttonLabels.service} {offer.name}
); } /** * Largura de cada cartão na grade de 6 colunas: três por linha (2 colunas cada), e a última linha incompleta se divide * por inteiro, sem célula vazia (dois cartões: 3 colunas cada; um: a linha toda). */ function offerSpan(index: number, total: number) { const rest = total % 3; if (index < total - rest) return "lg:col-span-2"; return rest === 2 ? "lg:col-span-3" : "lg:col-span-6"; } /** As ofertas lado a lado no computador, três por linha: nome, o que a pessoa recebe, onde ver funcionando e o link da página certa. */ export function ServiceOfferCards({ offers, }: { offers: readonly ServiceOffer[]; }) { return (
{offers.map((offer, index) => ( ))}
); }