"use client"; import type { ElementType, ReactNode } from "react"; import { Search, X } from "lucide-react"; export function WorkspaceSearch({ value, onChange, placeholder, }: { value: string; onChange: (value: string) => void; placeholder: string; }) { return ( {placeholder} onChange(event.target.value)} placeholder={placeholder} className="min-w-0 flex-1 bg-transparent text-sm text-white outline-none placeholder:text-white/30" /> {value ? ( onChange("")} aria-label="Clear search" className="grid size-5 shrink-0 place-items-center rounded-full text-white/40 transition hover:bg-white/10 hover:text-white" > ) : null} ); } export function ToolCard({ icon: Icon, label, description, onClick, disabled, }: { icon: ElementType; label: string; description: string; onClick: () => void; disabled?: boolean; }) { return ( {label} {description} ); } export function PanelBlock({ title, children, actionLabel, onAction, }: { title: string; children: ReactNode; actionLabel?: string; onAction?: () => void; }) { return ( {title} {actionLabel && onAction ? ( {actionLabel} ) : null} {children} ); }
{title}