import { Bot, Shuffle } from "lucide-react"; import { Ai21Icon, AnthropicIcon, AnyscaleIcon, BedrockIcon, CerebrasIcon, CloudflareIcon, CohereIcon, CometApiIcon, DatabricksIcon, DeepInfraIcon, DeepSeekIcon, FireworksAiIcon, GeminiIcon, GroqIcon, HuggingFaceIcon, MiniMaxIcon, MistralIcon, MoonshotIcon, NscaleIcon, OllamaIcon, OpenaiIcon, OpenRouterIcon, PerplexityIcon, QwenIcon, RecraftIcon, ReplicateIcon, SambaNovaIcon, TogetherAiIcon, VertexAiIcon, XaiIcon, XinferenceIcon, ZhipuIcon, } from "@/components/icons/providers"; import { cn } from "@/lib/utils"; /** * Returns a Lucide icon element for the given LLM / image-gen provider. * Accepts an optional `className` override for the icon size. */ export function getProviderIcon( provider: string, { isAutoMode, className = "size-4" }: { isAutoMode?: boolean; className?: string } = {} ) { if (isAutoMode || provider?.toUpperCase() === "AUTO") { return ; } switch (provider?.toUpperCase()) { case "AI21": return ; case "ALIBABA_QWEN": return ; case "ANTHROPIC": return ; case "ANYSCALE": return ; case "AZURE": case "AZURE_OPENAI": return ; case "AWS_BEDROCK": case "BEDROCK": return ; case "CEREBRAS": return ; case "CLOUDFLARE": return ; case "COHERE": return ; case "COMETAPI": return ; case "CUSTOM": return ; case "DATABRICKS": return ; case "DEEPINFRA": return ; case "DEEPSEEK": return ; case "FIREWORKS_AI": return ; case "GOOGLE": return ; case "GROQ": return ; case "HUGGINGFACE": return ; case "MINIMAX": return ; case "MISTRAL": return ; case "MOONSHOT": return ; case "NSCALE": return ; case "OLLAMA": return ; case "OPENAI": return ; case "OPENROUTER": return ; case "PERPLEXITY": return ; case "RECRAFT": return ; case "REPLICATE": return ; case "SAMBANOVA": return ; case "TOGETHER_AI": return ; case "VERTEX_AI": return ; case "XAI": return ; case "XINFERENCE": return ; case "ZHIPU": return ; default: return ; } }