"use client"; import React, { useMemo } from "react"; import CardList from "@/components/card/CardList"; import type { ButtonAnimationType } from "@/types/animations"; import type { LucideIcon } from "lucide-react"; export interface FeatureCardTwentyFourProps { features?: Array<{ id: string; title: string; description: string; icon?: React.ReactNode; }>; animationType?: ButtonAnimationType; textboxLayout?: "default" | "split" | "split-actions" | "split-description" | "inline-image"; description?: string; tag?: string; tagIcon?: LucideIcon; tagAnimation?: "none" | "opacity" | "slide-up" | "blur-reveal"; buttons?: Array<{ text: string; onClick?: () => void; href?: string }>; buttonAnimation?: "none" | "opacity" | "slide-up" | "blur-reveal"; useInvertedBackground?: boolean; ariaLabel?: string; className?: string; containerClassName?: string; cardClassName?: string; textBoxTitleClassName?: string; textBoxDescriptionClassName?: string; cardTitleClassName?: string; cardDescriptionClassName?: string; cardIconClassName?: string; cardIconWrapperClassName?: string; listClassName?: string; itemClassName?: string; textBoxClassName?: string; textBoxTagClassName?: string; textBoxButtonContainerClassName?: string; textBoxButtonClassName?: string; textBoxButtonTextClassName?: string; } const FeatureCardTwentyFour: React.FC = ({ features = [], animationType = "slide-up", textboxLayout = "default", description = "", tag, tagIcon, tagAnimation, buttons, buttonAnimation, useInvertedBackground = false, ariaLabel = "Feature section", className = "", containerClassName = "", cardClassName = "", textBoxTitleClassName = "", textBoxDescriptionClassName = "", cardTitleClassName = "", cardDescriptionClassName = "", cardIconClassName = "", cardIconWrapperClassName = "", listClassName = "", itemClassName = "", textBoxClassName = "", textBoxTagClassName = "", textBoxButtonContainerClassName = "", textBoxButtonClassName = "", textBoxButtonTextClassName = ""}) => { const listItems = useMemo( () => features.map((feature) => (
{feature.icon && (
{feature.icon}
)}

{feature.title}

{feature.description}

)), [features, itemClassName, cardIconWrapperClassName, cardIconClassName, cardTitleClassName, cardDescriptionClassName] ); return (
{listItems.map((item) => item)}
); }; export default FeatureCardTwentyFour;