package main // partnerLogosComponent renders a grayscale logo grid that restores colour on hover. templ partnerLogosComponent(data PartnerLogosData) {
if data.Title != "" {

{ data.Title }

} if len(data.Logos) > 0 {
for _, logo := range data.Logos {
@partnerLogoTile(logo)
}
} else {

Add partner logos to fill this grid.

}
} templ partnerLogoTile(logo PartnerLogo) { if logo.URL != "" { @partnerLogoImage(logo) } else { } } templ partnerLogoImage(logo PartnerLogo) { if logo.Image != "" { { } else {
{ partnerInitials(logo.Name) }
} } // partnerInitials returns up to two initials for an initials-only fallback tile. func partnerInitials(name string) string { if name == "" { return "?" } letters := []rune{} prevSpace := true for _, r := range name { if r == ' ' || r == '-' || r == '_' { prevSpace = true continue } if prevSpace { letters = append(letters, r) prevSpace = false if len(letters) >= 2 { break } } } if len(letters) == 0 { return "?" } return string(letters) }