"use client"; import TimelinePhoneView from "@/components/cardStack/layouts/timelines/TimelinePhoneView"; import Button from "@/components/button/Button"; import { cls } from "@/lib/utils"; import { getButtonProps } from "@/lib/buttonUtils"; import { useTheme } from "@/providers/themeProvider/ThemeProvider"; import type { LucideIcon } from "lucide-react"; import type { ButtonConfig, ButtonAnimationType, TitleSegment, CardAnimationType } from "@/components/cardStack/types"; import type { TimelinePhoneViewItem } from "@/components/cardStack/hooks/usePhoneAnimations"; import type { TextboxLayout, InvertedBackground } from "@/providers/themeProvider/config/constants"; type FeaturePhone = { imageAlt?: string; videoAriaLabel?: string; } & ( | { imageSrc: string; videoSrc?: never } | { videoSrc: string; imageSrc?: never } ); type FeatureCard = { id: number; title: string; description: string; buttons?: ButtonConfig[]; phoneOne: FeaturePhone; phoneTwo: FeaturePhone; }; interface FeatureCardNineProps { features: FeatureCard[]; showStepNumbers: boolean; title: string; titleSegments?: TitleSegment[]; description: string; tag?: string; tagIcon?: LucideIcon; tagAnimation?: ButtonAnimationType; buttons?: ButtonConfig[]; buttonAnimation?: ButtonAnimationType; animationType: CardAnimationType; textboxLayout: TextboxLayout; useInvertedBackground: InvertedBackground; ariaLabel?: string; className?: string; containerClassName?: string; textBoxTitleClassName?: string; textBoxDescriptionClassName?: string; textBoxClassName?: string; textBoxTagClassName?: string; textBoxButtonContainerClassName?: string; textBoxButtonClassName?: string; textBoxButtonTextClassName?: string; titleImageWrapperClassName?: string; titleImageClassName?: string; desktopContainerClassName?: string; mobileContainerClassName?: string; desktopContentClassName?: string; desktopWrapperClassName?: string; mobileWrapperClassName?: string; phoneFrameClassName?: string; mobilePhoneFrameClassName?: string; featureContentClassName?: string; stepNumberClassName?: string; featureTitleClassName?: string; featureDescriptionClassName?: string; cardButtonClassName?: string; cardButtonTextClassName?: string; } interface FeatureContentProps { feature: FeatureCard; showStepNumbers: boolean; useInvertedBackground: InvertedBackground; featureContentClassName: string; stepNumberClassName: string; featureTitleClassName: string; featureDescriptionClassName: string; cardButtonClassName: string; cardButtonTextClassName: string; } const FeatureContent = ({ feature, showStepNumbers, useInvertedBackground, featureContentClassName, stepNumberClassName, featureTitleClassName, featureDescriptionClassName, cardButtonClassName, cardButtonTextClassName, }: FeatureContentProps) => { const theme = useTheme(); return (
{feature.id}
{feature.description}
{feature.buttons && feature.buttons.length > 0 && (