mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-02 20:32:39 +02:00
feat: integrate SVGR for SVG handling in webpack and add new provider icons
This commit is contained in:
parent
efe8755132
commit
8dd2b15796
38 changed files with 2105 additions and 105 deletions
|
|
@ -1,18 +1,39 @@
|
|||
import {
|
||||
Bot,
|
||||
Cloud,
|
||||
Cpu,
|
||||
Database,
|
||||
Globe,
|
||||
Layers,
|
||||
Server,
|
||||
Settings2,
|
||||
Shuffle,
|
||||
Sparkles,
|
||||
Wand2,
|
||||
Zap,
|
||||
} 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.
|
||||
|
|
@ -30,72 +51,74 @@ export function getProviderIcon(
|
|||
}
|
||||
|
||||
switch (provider?.toUpperCase()) {
|
||||
case "OPENAI":
|
||||
return <Sparkles className={cn(className, "text-emerald-500")} />;
|
||||
case "ANTHROPIC":
|
||||
return <Bot className={cn(className, "text-amber-600")} />;
|
||||
case "GOOGLE":
|
||||
return <Cloud className={cn(className, "text-blue-500")} />;
|
||||
case "AZURE_OPENAI":
|
||||
return <Sparkles className={cn(className, "text-sky-500")} />;
|
||||
case "GROQ":
|
||||
return <Zap className={cn(className, "text-orange-500")} />;
|
||||
case "OLLAMA":
|
||||
return <Settings2 className={cn(className, "text-gray-500")} />;
|
||||
case "XAI":
|
||||
return <Bot className={cn(className, "text-violet-500")} />;
|
||||
case "MISTRAL":
|
||||
return <Wand2 className={cn(className, "text-orange-400")} />;
|
||||
case "DEEPSEEK":
|
||||
return <Layers className={cn(className, "text-blue-400")} />;
|
||||
case "COHERE":
|
||||
return <Globe className={cn(className, "text-rose-500")} />;
|
||||
case "BEDROCK":
|
||||
return <Server className={cn(className, "text-amber-500")} />;
|
||||
case "VERTEX_AI":
|
||||
return <Cloud className={cn(className, "text-red-400")} />;
|
||||
case "OPENROUTER":
|
||||
return <Globe className={cn(className, "text-indigo-500")} />;
|
||||
case "TOGETHER_AI":
|
||||
return <Cpu className={cn(className, "text-teal-500")} />;
|
||||
case "FIREWORKS_AI":
|
||||
return <Zap className={cn(className, "text-red-500")} />;
|
||||
case "PERPLEXITY":
|
||||
return <Sparkles className={cn(className, "text-cyan-500")} />;
|
||||
case "CEREBRAS":
|
||||
return <Cpu className={cn(className, "text-purple-500")} />;
|
||||
case "RECRAFT":
|
||||
return <Wand2 className={cn(className, "text-teal-500")} />;
|
||||
case "REPLICATE":
|
||||
return <Database className={cn(className, "text-blue-500")} />;
|
||||
case "ALIBABA_QWEN":
|
||||
return <Bot className={cn(className, "text-orange-500")} />;
|
||||
case "MOONSHOT":
|
||||
return <Bot className={cn(className, "text-indigo-400")} />;
|
||||
case "ZHIPU":
|
||||
return <Bot className={cn(className, "text-green-500")} />;
|
||||
case "ANYSCALE":
|
||||
return <Bot className={cn(className, "text-sky-400")} />;
|
||||
case "DEEPINFRA":
|
||||
return <Bot className={cn(className, "text-pink-500")} />;
|
||||
case "SAMBANOVA":
|
||||
return <Bot className={cn(className, "text-lime-500")} />;
|
||||
case "AI21":
|
||||
return <Bot className={cn(className, "text-blue-600")} />;
|
||||
return <Ai21Icon className={cn(className)} />;
|
||||
case "ALIBABA_QWEN":
|
||||
return <QwenIcon className={cn(className)} />;
|
||||
case "ANTHROPIC":
|
||||
return <AnthropicIcon className={cn(className)} />;
|
||||
case "ANYSCALE":
|
||||
return <AnyscaleIcon className={cn(className)} />;
|
||||
case "AZURE":
|
||||
case "AZURE_OPENAI":
|
||||
return <OpenaiIcon className={cn(className)} />;
|
||||
case "AWS_BEDROCK":
|
||||
case "BEDROCK":
|
||||
return <BedrockIcon className={cn(className)} />;
|
||||
case "CEREBRAS":
|
||||
return <CerebrasIcon className={cn(className)} />;
|
||||
case "CLOUDFLARE":
|
||||
return <Bot className={cn(className, "text-orange-400")} />;
|
||||
case "DATABRICKS":
|
||||
return <Bot className={cn(className, "text-red-600")} />;
|
||||
return <CloudflareIcon className={cn(className)} />;
|
||||
case "COHERE":
|
||||
return <CohereIcon className={cn(className)} />;
|
||||
case "COMETAPI":
|
||||
return <Bot className={cn(className, "text-yellow-500")} />;
|
||||
case "HUGGINGFACE":
|
||||
return <Bot className={cn(className, "text-yellow-400")} />;
|
||||
return <CometApiIcon className={cn(className)} />;
|
||||
case "CUSTOM":
|
||||
return <Bot className={cn(className, "text-gray-400")} />;
|
||||
case "XINFERENCE":
|
||||
return <Bot className={cn(className, "text-teal-400")} />;
|
||||
case "DATABRICKS":
|
||||
return <DatabricksIcon className={cn(className)} />;
|
||||
case "DEEPINFRA":
|
||||
return <DeepInfraIcon className={cn(className)} />;
|
||||
case "DEEPSEEK":
|
||||
return <DeepSeekIcon className={cn(className)} />;
|
||||
case "FIREWORKS_AI":
|
||||
return <FireworksAiIcon className={cn(className)} />;
|
||||
case "GOOGLE":
|
||||
return <GeminiIcon className={cn(className)} />;
|
||||
case "GROQ":
|
||||
return <GroqIcon className={cn(className)} />;
|
||||
case "HUGGINGFACE":
|
||||
return <HuggingFaceIcon className={cn(className)} />;
|
||||
case "MISTRAL":
|
||||
return <MistralIcon className={cn(className)} />;
|
||||
case "MOONSHOT":
|
||||
return <MoonshotIcon className={cn(className)} />;
|
||||
case "NSCALE":
|
||||
return <Bot className={cn(className, "text-cyan-400")} />;
|
||||
return <NscaleIcon className={cn(className)} />;
|
||||
case "OLLAMA":
|
||||
return <OllamaIcon className={cn(className)} />;
|
||||
case "OPENAI":
|
||||
return <OpenaiIcon className={cn(className)} />;
|
||||
case "OPENROUTER":
|
||||
return <OpenRouterIcon className={cn(className)} />;
|
||||
case "PERPLEXITY":
|
||||
return <PerplexityIcon className={cn(className)} />;
|
||||
case "RECRAFT":
|
||||
return <RecraftIcon className={cn(className)} />;
|
||||
case "REPLICATE":
|
||||
return <ReplicateIcon className={cn(className)} />;
|
||||
case "SAMBANOVA":
|
||||
return <SambaNovaIcon className={cn(className)} />;
|
||||
case "TOGETHER_AI":
|
||||
return <TogetherAiIcon className={cn(className)} />;
|
||||
case "VERTEX_AI":
|
||||
return <VertexAiIcon className={cn(className)} />;
|
||||
case "XAI":
|
||||
return <XaiIcon className={cn(className)} />;
|
||||
case "XINFERENCE":
|
||||
return <XinferenceIcon className={cn(className)} />;
|
||||
case "ZHIPU":
|
||||
return <ZhipuIcon className={cn(className)} />;
|
||||
default:
|
||||
return <Bot className={cn(className, "text-muted-foreground")} />;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue