'use client'; import React, { useState } from 'react'; import Link from 'next/link'; import { ChevronDown } from 'lucide-react'; import type { FaqCategory, FaqItem, FaqPageData } from '@/lib/faqDefaults'; export function FaqAccordionList({ faqs }: { faqs: FaqItem[] }) { const [openIdx, setOpenIdx] = useState(null); if (faqs.length === 0) { return (

No questions in this category yet.

); } return (
{faqs.map((faq, idx) => { const isOpen = openIdx === idx; const collapsed = faq.answer.length > 180 ? `${faq.answer.slice(0, 180).trim()}…` : faq.answer; return (

Answer:

{isOpen ? faq.answer : collapsed}

{faq.answer.length > 180 ? ( ) : null}
); })}
); } export function FaqCategoryNav({ categories, activeSlug, }: { categories: FaqCategory[]; activeSlug?: string; }) { return ( ); } export function FaqHub({ data }: { data: FaqPageData }) { return (

{data.title}

{data.subtitle ? (

{data.subtitle}

) : null}
{data.categories.map((cat) => (

{cat.title}

{cat.description ? (

{cat.description}

) : null}

{cat.faqs.length} question{cat.faqs.length === 1 ? '' : 's'} →

))}
); } export function FaqCategoryPage({ data, category, }: { data: FaqPageData; category: FaqCategory; }) { return (

{category.title}

{category.description ? (

{category.description}

) : (
)}
); }