import { Bot, Shuffle } from "lucide-react"; import { cn } from "@/lib/utils"; import { Ai21Icon } from "@/components/icons/providers"; import { AnthropicIcon } from "@/components/icons/providers"; import { AnyscaleIcon } from "@/components/icons/providers"; import { BedrockIcon } from "@/components/icons/providers"; import { CerebrasIcon } from "@/components/icons/providers"; import { CloudflareIcon } from "@/components/icons/providers"; import { CohereIcon } from "@/components/icons/providers"; import { CometApiIcon } from "@/components/icons/providers"; import { DatabricksIcon } from "@/components/icons/providers"; import { DeepInfraIcon } from "@/components/icons/providers"; import { DeepSeekIcon } from "@/components/icons/providers"; import { FireworksAiIcon } from "@/components/icons/providers"; import { GeminiIcon } from "@/components/icons/providers"; import { GroqIcon } from "@/components/icons/providers"; import { HuggingFaceIcon } from "@/components/icons/providers"; import { MistralIcon } from "@/components/icons/providers"; import { MoonshotIcon } from "@/components/icons/providers"; import { NscaleIcon } from "@/components/icons/providers"; import { OllamaIcon } from "@/components/icons/providers"; import { OpenaiIcon } from "@/components/icons/providers"; import { OpenRouterIcon } from "@/components/icons/providers"; import { PerplexityIcon } from "@/components/icons/providers"; import { QwenIcon } from "@/components/icons/providers"; import { RecraftIcon } from "@/components/icons/providers"; import { ReplicateIcon } from "@/components/icons/providers"; import { SambaNovaIcon } from "@/components/icons/providers"; import { TogetherAiIcon } from "@/components/icons/providers"; import { VertexAiIcon } from "@/components/icons/providers"; import { XaiIcon } from "@/components/icons/providers"; import { XinferenceIcon } from "@/components/icons/providers"; import { ZhipuIcon } from "@/components/icons/providers"; /** * 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 "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 ; } }