"use client"; import { ChevronRight } from "lucide-react"; import { useState } from "react"; import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"; import { cn } from "@/lib/utils"; interface SidebarSectionProps { title: string; defaultOpen?: boolean; children: React.ReactNode; action?: React.ReactNode; persistentAction?: React.ReactNode; className?: string; fillHeight?: boolean; } export function SidebarSection({ title, defaultOpen = true, children, action, persistentAction, className, fillHeight = false, }: SidebarSectionProps) { const [isOpen, setIsOpen] = useState(defaultOpen); return (
{title} {/* Action button - visible on hover (always visible on mobile) */} {action && (
{action}
)} {/* Persistent action - always visible */} {persistentAction && (
{persistentAction}
)}
{children}
); }