import type { ProviderId } from "@/lib/ai/core/types"; import { cn } from "@/lib/utils"; /** Monochrome provider glyphs drawn from scratch (no trademarked logos). */ export function ProviderIcon({ provider, className, size = 16 }: { provider: ProviderId | string | null | undefined; className?: string; size?: number }) { const common = { width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.8, strokeLinecap: "round" as const, strokeLinejoin: "round" as const, "aria-hidden": true }; const color = (p: string) => ({ color: `var(--p-${p})` }); switch (provider) { case "openai": return ( ); case "anthropic": return ( ); case "gemini": return ( ); case "xai": return ( ); case "mistral": // stepped "M" — evokes Mistral's blocky mark without copying it return ( ); case "deepseek": // a whale-like wave arc return ( ); case "kimi": // crescent + spark ("moon"shot) return ( ); case "openrouter": // routes converging into one node return ( ); case "cerebras": // wafer / chip return ( ); case "custom": // plug / socket — a server you bring yourself return ( ); default: return ( ); } }