import Button from "@/components/ui/Button"; import TextAnimation from "@/components/ui/TextAnimation"; import ImageOrVideo from "@/components/ui/ImageOrVideo"; import ScrollReveal from "@/components/ui/ScrollReveal"; import { resolveIcon } from "@/utils/resolve-icon"; import type { LucideIcon } from "lucide-react"; type AttributeDetail = { icon: string | LucideIcon; label: string; value: string | number; }; type FeatureItem = { title: string; tags: string; badge?: string | null; details: AttributeDetail[]; } & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }); interface FeaturesAttributeCardsProps { tag: string; title: string; description: string; primaryButton?: { text: string; href: string }; secondaryButton?: { text: string; href: string }; items: FeatureItem[]; } const FeaturesAttributeCards = ({ tag, title, description, primaryButton, secondaryButton, items }: FeaturesAttributeCardsProps) => { return (

{tag}

{(primaryButton || secondaryButton) && (
{primaryButton &&
)}
{items.map((item) => (
{item.badge && ( {item.badge} )}

{item.title}

{item.tags}

{item.details.map((detail) => { const IconComponent = resolveIcon(detail.icon); return ( {detail.label}: {detail.value} ); })}
))}
); }; export default FeaturesAttributeCards;