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 { cls } from "@/lib/utils"; type FeatureItem = { title: string; description: string; href?: string; } & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }); interface FeaturesImageBentoProps { tag: string; title: string; description: string; primaryButton?: { text: string; href: string }; secondaryButton?: { text: string; href: string }; items: [FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem, FeatureItem]; } const FeaturesImageBento = ({ tag, title, description, primaryButton, secondaryButton, items }: FeaturesImageBentoProps) => { const gridClasses = [ "md:col-span-2", "md:col-span-4", "md:col-span-3", "md:col-span-3", "md:col-span-2", "md:col-span-2", "md:col-span-2", ]; const staggerDelays = [ 0, 0.1, 0, 0.1, 0, 0.1, 0.2, ]; return (

{tag}

{(primaryButton || secondaryButton) && (
{primaryButton &&
)}
{items.map((item, index) => { const content = (
{item.title} {item.description}
); return ( {item.href ? ( {content} ) : (
{content}
)}
); })}
); }; export default FeaturesImageBento;