"use client"; import { useState } from "react"; export function LoadingSpinner() { return (

Connecting to MCP servers…

); } export function EmptyState({ message }: { message: string }) { return (

{message}

); } export function ErrorBanner({ errors, }: { errors: { server: string; error: string }[]; }) { if (errors.length === 0) return null; return (
{errors.map((e) => (
{e.server}: {e.error}
))}
); } export function CreateToolForm({ onSubmit, onCancel, }: { onSubmit: (name: string, description: string) => void; onCancel: () => void; }) { const [name, setName] = useState(""); const [desc, setDesc] = useState(""); return (
{ e.preventDefault(); if (!name.trim()) return; onSubmit(name.trim(), desc.trim() || `A tool called ${name.trim()}`); setName(""); setDesc(""); }} className="space-y-2 rounded-xl border border-slate-200 bg-slate-50 p-3" > setName(e.target.value)} placeholder="Tool name (e.g. show_chart)" className="w-full rounded-lg border border-slate-300 bg-white px-3 py-1.5 text-sm text-slate-900 placeholder:text-slate-400 focus:border-slate-400 focus:outline-none" required /> setDesc(e.target.value)} placeholder="Description (optional)" className="w-full rounded-lg border border-slate-300 bg-white px-3 py-1.5 text-sm text-slate-900 placeholder:text-slate-400 focus:border-slate-400 focus:outline-none" />
); }