"use client"; import { useState } from "react"; import { AnimatePresence, motion } from "framer-motion"; import { ChevronDown } from "lucide-react"; type StackListItem = { icon: React.ReactNode; title: string; subtitle: string; date: string; }; type StackListProps = { items: StackListItem[]; initialVisible?: number; className?: string; // allows custom responsive width/styling }; export default function StackList({ items, initialVisible = 1, className = "", }: StackListProps) { const [expanded, setExpanded] = useState(false); const visibleItems = expanded ? items : items.slice(0, initialVisible); return (
{visibleItems.map((item, index) => (
{item.icon}
{item.title}
{item.subtitle}
{item.date}
))}
{items.length > initialVisible && ( )}
); }