import type { LucideIcon } from "lucide-react"; import TextAnimation from "@/components/ui/TextAnimation"; import ImageOrVideo from "@/components/ui/ImageOrVideo"; import LoopCarousel from "@/components/ui/LoopCarousel"; import Button from "@/components/ui/Button"; import { useButtonClick } from "@/hooks/useButtonClick"; import { resolveIcon } from "@/utils/resolve-icon"; type FeatureItem = { title: string; description: string; buttonIcon: string | LucideIcon; buttonHref?: string; buttonOnClick?: () => void; } & ({ imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never }); interface FeaturesMediaCarouselProps { tag: string; title: string; description: string; primaryButton?: { text: string; href: string }; secondaryButton?: { text: string; href: string }; items: FeatureItem[]; } const FeatureMediaCarouselCard = ({ item }: { item: FeatureItem }) => { const handleClick = useButtonClick(item.buttonHref, item.buttonOnClick); const Icon = resolveIcon(item.buttonIcon); return (
{item.description}