"use client"; import { memo } from "react"; import ArrowCarousel from "@/components/cardStack/layouts/carousels/ArrowCarousel"; import MediaContent from "@/components/shared/MediaContent"; import { cls } from "@/lib/utils"; import { useButtonClick } from "@/components/button/useButtonClick"; import type { LucideIcon } from "lucide-react"; import type { ButtonConfig, ButtonAnimationType, TitleSegment, TextboxLayout, InvertedBackground } from "@/components/cardStack/types"; type FeatureItem = { title: string; description: string; imageSrc?: string; videoSrc?: string; imageAlt?: string; videoAriaLabel?: string; buttonIcon: LucideIcon; buttonHref?: string; buttonOnClick?: () => void; }; interface FeatureCardTwentySixProps { features: FeatureItem[]; title: string; titleSegments?: TitleSegment[]; description: string; tag?: string; tagIcon?: LucideIcon; tagAnimation?: ButtonAnimationType; buttons?: ButtonConfig[]; buttonAnimation?: ButtonAnimationType; textboxLayout: TextboxLayout; useInvertedBackground: InvertedBackground; ariaLabel?: string; className?: string; containerClassName?: string; cardClassName?: string; textBoxTitleClassName?: string; textBoxTitleImageWrapperClassName?: string; textBoxTitleImageClassName?: string; textBoxDescriptionClassName?: string; cardTitleClassName?: string; cardDescriptionClassName?: string; cardButtonClassName?: string; carouselClassName?: string; controlsClassName?: string; textBoxClassName?: string; textBoxTagClassName?: string; textBoxButtonContainerClassName?: string; textBoxButtonClassName?: string; textBoxButtonTextClassName?: string; } interface FeatureCardProps { feature: FeatureItem; cardClassName?: string; titleClassName?: string; descriptionClassName?: string; buttonClassName?: string; } const MASK_GRADIENT = "linear-gradient(to bottom, transparent, black 60%)"; const FeatureCard = memo(({ feature, cardClassName = "", titleClassName = "", descriptionClassName = "", buttonClassName = "", }: FeatureCardProps) => { const Icon = feature.buttonIcon; const handleClick = useButtonClick(feature.buttonHref, feature.buttonOnClick); return (