"use client"; import { memo } from "react"; import AutoCarousel from "@/components/cardStack/layouts/carousels/AutoCarousel"; import MediaContent from "@/components/shared/MediaContent"; import { cls } from "@/lib/utils"; import type { LucideIcon } from "lucide-react"; import type { CardAnimationType, ButtonConfig, TitleSegment, TextboxLayout, InvertedBackground } from "@/components/cardStack/types"; type Feature = { id: string; title: string; description: string; imageSrc?: string; videoSrc?: string; imageAlt?: string; videoAriaLabel?: string; }; interface FeatureCardFifteenProps { features: Feature[]; animationType: CardAnimationType; title: string; titleSegments?: TitleSegment[]; description: string; textboxLayout: TextboxLayout; useInvertedBackground: InvertedBackground; tag?: string; tagIcon?: LucideIcon; buttons?: ButtonConfig[]; speed?: number; topMarqueeDirection?: "left" | "right"; ariaLabel?: string; className?: string; containerClassName?: string; carouselClassName?: string; bottomCarouselClassName?: string; cardClassName?: string; mediaClassName?: string; featureTitleClassName?: string; featureDescriptionClassName?: string; textBoxClassName?: string; textBoxTitleClassName?: string; textBoxTitleImageWrapperClassName?: string; textBoxTitleImageClassName?: string; textBoxDescriptionClassName?: string; textBoxTagClassName?: string; textBoxButtonContainerClassName?: string; textBoxButtonClassName?: string; textBoxButtonTextClassName?: string; } interface FeatureCardProps { feature: Feature; useInvertedBackground: "noInvert" | "invertDefault" | "invertCard"; cardClassName?: string; mediaClassName?: string; featureTitleClassName?: string; featureDescriptionClassName?: string; } const FeatureCard = memo(({ feature, useInvertedBackground, cardClassName = "", mediaClassName = "", featureTitleClassName = "", featureDescriptionClassName = "", }: FeatureCardProps) => { return (

{feature.title}

{feature.description}

); }); FeatureCard.displayName = "FeatureCard"; const FeatureCardFifteen = ({ features, animationType, title, titleSegments, description, textboxLayout, useInvertedBackground, tag, tagIcon, buttons, speed = 40, topMarqueeDirection = "left", ariaLabel = "Features section", className = "", containerClassName = "", carouselClassName = "", bottomCarouselClassName = "", cardClassName = "", mediaClassName = "", featureTitleClassName = "", featureDescriptionClassName = "", textBoxClassName = "", textBoxTitleClassName = "", textBoxTitleImageWrapperClassName = "", textBoxTitleImageClassName = "", textBoxDescriptionClassName = "", textBoxTagClassName = "", textBoxButtonContainerClassName = "", textBoxButtonClassName = "", textBoxButtonTextClassName = "", }: FeatureCardFifteenProps) => { return ( {features.map((feature, index) => ( ))} ); }; FeatureCardFifteen.displayName = "FeatureCardFifteen"; export default FeatureCardFifteen;