"use client"; import CardStackTextBox from "@/components/cardStack/CardStackTextBox"; import PricingFeatureList from "@/components/shared/PricingFeatureList"; import MediaContent from "@/components/shared/MediaContent"; import { useCardAnimation } from "@/components/cardStack/hooks/useCardAnimation"; import { Check, X } from "lucide-react"; import { cls, shouldUseInvertedText } from "@/lib/utils"; import { useTheme } from "@/providers/themeProvider/ThemeProvider"; import type { LucideIcon } from "lucide-react"; import type { ButtonConfig, CardAnimationType, TitleSegment } from "@/components/cardStack/types"; import type { TextboxLayout, InvertedBackground } from "@/providers/themeProvider/config/constants"; type ComparisonItem = { title: string; items: string[]; imageSrc?: string; videoSrc?: string; imageAlt?: string; videoAriaLabel?: string; }; interface FeatureCardEighteenProps { negativeCard: ComparisonItem; positiveCard: ComparisonItem; animationType: CardAnimationType; title: string; titleSegments?: TitleSegment[]; description: string; textboxLayout: TextboxLayout; useInvertedBackground: InvertedBackground; tag?: string; tagIcon?: LucideIcon; buttons?: ButtonConfig[]; ariaLabel?: string; className?: string; containerClassName?: string; textBoxTitleClassName?: string; titleImageWrapperClassName?: string; titleImageClassName?: string; textBoxDescriptionClassName?: string; textBoxClassName?: string; textBoxTagClassName?: string; textBoxButtonContainerClassName?: string; textBoxButtonClassName?: string; textBoxButtonTextClassName?: string; gridClassName?: string; cardClassName?: string; cardMediaWrapperClassName?: string; cardMediaClassName?: string; cardTitleClassName?: string; itemsListClassName?: string; itemClassName?: string; itemIconClassName?: string; itemTextClassName?: string; } const FeatureCardEighteen = ({ negativeCard, positiveCard, animationType, title, titleSegments, description, textboxLayout, useInvertedBackground, tag, tagIcon, buttons, ariaLabel = "Feature comparison section", className = "", containerClassName = "", textBoxTitleClassName = "", titleImageWrapperClassName = "", titleImageClassName = "", textBoxDescriptionClassName = "", textBoxClassName = "", textBoxTagClassName = "", textBoxButtonContainerClassName = "", textBoxButtonClassName = "", textBoxButtonTextClassName = "", gridClassName = "", cardClassName = "", cardMediaWrapperClassName = "", cardMediaClassName = "", cardTitleClassName = "", itemsListClassName = "", itemClassName = "", itemIconClassName = "", itemTextClassName = "", }: FeatureCardEighteenProps) => { const theme = useTheme(); const shouldCardUseLightText = shouldUseInvertedText("invertDefault", theme.cardStyle) || shouldUseInvertedText("invertCard", theme.cardStyle); const { itemRefs } = useCardAnimation({ animationType, itemCount: 2 }); const cards = [ { ...negativeCard, variant: "negative" as const }, { ...positiveCard, variant: "positive" as const }, ]; return (
= 2 ? "md:grid-cols-2" : "md:grid-cols-1", gridClassName )}> {cards.map((card, index) => (
{ itemRefs.current[index] = el; }} className={cls( "relative h-full card rounded-theme-capped p-6", cardClassName )} >

{card.title}

))}
); }; FeatureCardEighteen.displayName = "FeatureCardEighteen"; export default FeatureCardEighteen;