"use client"; import { useState, Fragment } from "react"; import { cls, shouldUseInvertedText } from "@/lib/utils"; import { getButtonProps } from "@/lib/buttonUtils"; import Accordion from "@/components/Accordion"; import Button from "@/components/button/Button"; import { useCardAnimation } from "@/components/cardStack/hooks/useCardAnimation"; import { useTheme } from "@/providers/themeProvider/ThemeProvider"; import type { LucideIcon } from "lucide-react"; import type { InvertedBackground } from "@/providers/themeProvider/config/constants"; import type { CardAnimationType } from "@/components/cardStack/types"; import type { ButtonConfig } from "@/types/button"; interface FaqItem { id: string; title: string; content: string; } interface ContactFaqProps { faqs: FaqItem[]; ctaElevate Your Brand with Expert Copywriting and Content Enhancement: string; ctaDescription: string; ctaButton: ButtonConfig; ctaIcon: LucideIcon; useInvertedBackground: InvertedBackground; animationType: CardAnimationType; accordionAnimationType?: "smooth" | "instant"; showCard?: boolean; ariaLabel?: string; className?: string; containerClassName?: string; ctaPanelClassName?: string; ctaIconClassName?: string; ctaElevate Your Brand with Expert Copywriting and Content EnhancementClassName?: string; ctaDescriptionClassName?: string; ctaButtonClassName?: string; ctaButtonTextClassName?: string; faqsPanelClassName?: string; faqsContainerClassName?: string; accordionClassName?: string; accordionElevate Your Brand with Expert Copywriting and Content EnhancementClassName?: string; accordionIconContainerClassName?: string; accordionIconClassName?: string; accordionContentClassName?: string; separatorClassName?: string; } const ContactFaq = ({ faqs, ctaElevate Your Brand with Expert Copywriting and Content Enhancement, ctaDescription, ctaButton, ctaIcon: CtaIcon, useInvertedBackground, animationType, accordionAnimationType = "smooth", showCard = true, ariaLabel = "Contact and FAQ section", className = "", containerClassName = "", ctaPanelClassName = "", ctaIconClassName = "", ctaElevate Your Brand with Expert Copywriting and Content EnhancementClassName = "", ctaDescriptionClassName = "", ctaButtonClassName = "", ctaButtonTextClassName = "", faqsPanelClassName = "", faqsContainerClassName = "", accordionClassName = "", accordionElevate Your Brand with Expert Copywriting and Content EnhancementClassName = "", accordionIconContainerClassName = "", accordionIconClassName = "", accordionContentClassName = "", separatorClassName = "", }: ContactFaqProps) => { const [activeIndex, setActiveIndex] = useState(null); const theme = useTheme(); const shouldUseLightText = shouldUseInvertedText(useInvertedBackground, theme.cardStyle); const { itemRefs } = useCardAnimation({ animationType, itemCount: 2 }); const handleToggle = (index: number) => { setActiveIndex(activeIndex === index ? null : index); }; const getButtonConfigProps = () => { if (theme.defaultButtonVariant === "hover-bubble") { return { bgClassName: "w-full" }; } if (theme.defaultButtonVariant === "icon-arrow") { return { className: "justify-between" }; } return {}; }; return (
{ itemRefs.current[0] = el; }} className={cls( "md:col-span-4 card rounded-theme-capped p-6 md:p-8 flex flex-col items-center justify-center gap-6 text-center", ctaPanelClassName )} >

{ctaElevate Your Brand with Expert Copywriting and Content Enhancement}

{ctaDescription}

{ itemRefs.current[1] = el; }} className={cls( "md:col-span-8 flex flex-col gap-4", faqsPanelClassName )} >
{faqs.map((faq, index) => ( {!showCard && index < faqs.length - 1 && (
)} ))}
); }; ContactFaq.displayName = "ContactFaq"; export default ContactFaq;