import type { ReactNode } from 'react'; import { ChevronDown, ChevronUp, Search, X } from 'lucide-react'; import { Button } from '@/components/ui/button'; import { cn } from '@/lib/utils'; interface SearchFilterPanelProps { title?: string; collapsed?: boolean; onCollapsedChange?: (collapsed: boolean) => void; hasFilters?: boolean; resultLabel?: string; sortLabel?: string; onClear?: () => void; children?: ReactNode; className?: string; variant?: 'default' | 'embedded'; headerActions?: ReactNode; } export default function SearchFilterPanel({ title = 'Search & filters', collapsed, onCollapsedChange, hasFilters, resultLabel, sortLabel, onClear, children, className, variant = 'default', headerActions, }: SearchFilterPanelProps) { const embedded = variant === 'embedded'; const ToggleIcon = collapsed ? ChevronUp : ChevronDown; return (
{hasFilters && onClear && ( )} {headerActions}
{!collapsed && (
{children}
)}
); }