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 ;
}
}