import type { CSSProperties, ElementType } from "react";

import Ai21MonoIcon from "@lobehub/icons/es/Ai21/components/Mono";
import AlibabaColorIcon from "@lobehub/icons/es/Alibaba/components/Color";
import AlibabaMonoIcon from "@lobehub/icons/es/Alibaba/components/Mono";
import AnthropicMonoIcon from "@lobehub/icons/es/Anthropic/components/Mono";
import AntigravityColorIcon from "@lobehub/icons/es/Antigravity/components/Color";
import AntigravityMonoIcon from "@lobehub/icons/es/Antigravity/components/Mono";
import ArceeColorIcon from "@lobehub/icons/es/Arcee/components/Color";
import ArceeMonoIcon from "@lobehub/icons/es/Arcee/components/Mono";
import AssemblyAIColorIcon from "@lobehub/icons/es/AssemblyAI/components/Color";
import AssemblyAIMonoIcon from "@lobehub/icons/es/AssemblyAI/components/Mono";
import AutomaticColorIcon from "@lobehub/icons/es/Automatic/components/Color";
import AutomaticMonoIcon from "@lobehub/icons/es/Automatic/components/Mono";
import AwsColorIcon from "@lobehub/icons/es/Aws/components/Color";
import AwsMonoIcon from "@lobehub/icons/es/Aws/components/Mono";
import AzureColorIcon from "@lobehub/icons/es/Azure/components/Color";
import AzureMonoIcon from "@lobehub/icons/es/Azure/components/Mono";
import AzureAIColorIcon from "@lobehub/icons/es/AzureAI/components/Color";
import AzureAIMonoIcon from "@lobehub/icons/es/AzureAI/components/Mono";
import BaichuanColorIcon from "@lobehub/icons/es/Baichuan/components/Color";
import BaichuanMonoIcon from "@lobehub/icons/es/Baichuan/components/Mono";
import BaiduColorIcon from "@lobehub/icons/es/Baidu/components/Color";
import BaiduMonoIcon from "@lobehub/icons/es/Baidu/components/Mono";
import BailianColorIcon from "@lobehub/icons/es/Bailian/components/Color";
import BailianMonoIcon from "@lobehub/icons/es/Bailian/components/Mono";
import BasetenMonoIcon from "@lobehub/icons/es/Baseten/components/Mono";
import BedrockColorIcon from "@lobehub/icons/es/Bedrock/components/Color";
import BedrockMonoIcon from "@lobehub/icons/es/Bedrock/components/Mono";
import BflMonoIcon from "@lobehub/icons/es/Bfl/components/Mono";
import CerebrasColorIcon from "@lobehub/icons/es/Cerebras/components/Color";
import CerebrasMonoIcon from "@lobehub/icons/es/Cerebras/components/Mono";
import ClaudeCodeColorIcon from "@lobehub/icons/es/ClaudeCode/components/Color";
import ClaudeCodeMonoIcon from "@lobehub/icons/es/ClaudeCode/components/Mono";
import ClineMonoIcon from "@lobehub/icons/es/Cline/components/Mono";
import CloudflareColorIcon from "@lobehub/icons/es/Cloudflare/components/Color";
import CloudflareMonoIcon from "@lobehub/icons/es/Cloudflare/components/Mono";
import CodexColorIcon from "@lobehub/icons/es/Codex/components/Color";
import CodexMonoIcon from "@lobehub/icons/es/Codex/components/Mono";
import CohereColorIcon from "@lobehub/icons/es/Cohere/components/Color";
import CohereMonoIcon from "@lobehub/icons/es/Cohere/components/Mono";
import ComfyUIColorIcon from "@lobehub/icons/es/ComfyUI/components/Color";
import ComfyUIMonoIcon from "@lobehub/icons/es/ComfyUI/components/Mono";
import CursorMonoIcon from "@lobehub/icons/es/Cursor/components/Mono";
import DbrxColorIcon from "@lobehub/icons/es/Dbrx/components/Color";
import CozeMonoIcon from "@lobehub/icons/es/Coze/components/Mono";
import DbrxMonoIcon from "@lobehub/icons/es/Dbrx/components/Mono";
import DeepInfraColorIcon from "@lobehub/icons/es/DeepInfra/components/Color";
import DeepInfraMonoIcon from "@lobehub/icons/es/DeepInfra/components/Mono";
import DeepSeekColorIcon from "@lobehub/icons/es/DeepSeek/components/Color";
import DeepSeekMonoIcon from "@lobehub/icons/es/DeepSeek/components/Mono";
import DifyColorIcon from "@lobehub/icons/es/Dify/components/Color";
import DifyMonoIcon from "@lobehub/icons/es/Dify/components/Mono";
import DoubaoColorIcon from "@lobehub/icons/es/Doubao/components/Color";
import DoubaoMonoIcon from "@lobehub/icons/es/Doubao/components/Mono";
import ElevenLabsMonoIcon from "@lobehub/icons/es/ElevenLabs/components/Mono";
import ExaColorIcon from "@lobehub/icons/es/Exa/components/Color";
import ExaMonoIcon from "@lobehub/icons/es/Exa/components/Mono";
import FalColorIcon from "@lobehub/icons/es/Fal/components/Color";
import FalMonoIcon from "@lobehub/icons/es/Fal/components/Mono";
import FeatherlessColorIcon from "@lobehub/icons/es/Featherless/components/Color";
import FeatherlessMonoIcon from "@lobehub/icons/es/Featherless/components/Mono";
import FireworksColorIcon from "@lobehub/icons/es/Fireworks/components/Color";
import FireworksMonoIcon from "@lobehub/icons/es/Fireworks/components/Mono";
import FriendliMonoIcon from "@lobehub/icons/es/Friendli/components/Mono";
import GeminiColorIcon from "@lobehub/icons/es/Gemini/components/Color";
import GeminiMonoIcon from "@lobehub/icons/es/Gemini/components/Mono";
import GeminiCLIColorIcon from "@lobehub/icons/es/GeminiCLI/components/Color";
import GeminiCLIMonoIcon from "@lobehub/icons/es/GeminiCLI/components/Mono";
import GithubCopilotMonoIcon from "@lobehub/icons/es/GithubCopilot/components/Mono";
import GoogleColorIcon from "@lobehub/icons/es/Google/components/Color";
import GoogleMonoIcon from "@lobehub/icons/es/Google/components/Mono";
import GrokMonoIcon from "@lobehub/icons/es/Grok/components/Mono";
import GroqMonoIcon from "@lobehub/icons/es/Groq/components/Mono";
import HuggingFaceColorIcon from "@lobehub/icons/es/HuggingFace/components/Color";
import HuggingFaceMonoIcon from "@lobehub/icons/es/HuggingFace/components/Mono";
import HyperbolicColorIcon from "@lobehub/icons/es/Hyperbolic/components/Color";
import HyperbolicMonoIcon from "@lobehub/icons/es/Hyperbolic/components/Mono";
import IBMMonoIcon from "@lobehub/icons/es/IBM/components/Mono";
import InferenceMonoIcon from "@lobehub/icons/es/Inference/components/Mono";
import JinaMonoIcon from "@lobehub/icons/es/Jina/components/Mono";
import KiloCodeMonoIcon from "@lobehub/icons/es/KiloCode/components/Mono";
import KimiColorIcon from "@lobehub/icons/es/Kimi/components/Color";
import KimiMonoIcon from "@lobehub/icons/es/Kimi/components/Mono";
import LambdaMonoIcon from "@lobehub/icons/es/Lambda/components/Mono";
import LiquidMonoIcon from "@lobehub/icons/es/Liquid/components/Mono";
import LmStudioMonoIcon from "@lobehub/icons/es/LmStudio/components/Mono";
import LongCatColorIcon from "@lobehub/icons/es/LongCat/components/Color";
import LongCatMonoIcon from "@lobehub/icons/es/LongCat/components/Mono";
import MetaColorIcon from "@lobehub/icons/es/Meta/components/Color";
import MetaMonoIcon from "@lobehub/icons/es/Meta/components/Mono";
import MetaAIColorIcon from "@lobehub/icons/es/MetaAI/components/Color";
import MetaAIMonoIcon from "@lobehub/icons/es/MetaAI/components/Mono";
import MinimaxColorIcon from "@lobehub/icons/es/Minimax/components/Color";
import MinimaxMonoIcon from "@lobehub/icons/es/Minimax/components/Mono";
import MistralColorIcon from "@lobehub/icons/es/Mistral/components/Color";
import MistralMonoIcon from "@lobehub/icons/es/Mistral/components/Mono";
import MoonshotMonoIcon from "@lobehub/icons/es/Moonshot/components/Mono";
import MorphColorIcon from "@lobehub/icons/es/Morph/components/Color";
import MorphMonoIcon from "@lobehub/icons/es/Morph/components/Mono";
import NanoBananaColorIcon from "@lobehub/icons/es/NanoBanana/components/Color";
import NanoBananaMonoIcon from "@lobehub/icons/es/NanoBanana/components/Mono";
import NebiusMonoIcon from "@lobehub/icons/es/Nebius/components/Mono";
import NousResearchMonoIcon from "@lobehub/icons/es/NousResearch/components/Mono";
import NovitaColorIcon from "@lobehub/icons/es/Novita/components/Color";
import NovitaMonoIcon from "@lobehub/icons/es/Novita/components/Mono";
import NvidiaColorIcon from "@lobehub/icons/es/Nvidia/components/Color";
import NvidiaMonoIcon from "@lobehub/icons/es/Nvidia/components/Mono";
import OllamaMonoIcon from "@lobehub/icons/es/Ollama/components/Mono";
import OpenAIMonoIcon from "@lobehub/icons/es/OpenAI/components/Mono";
import OpenClawColorIcon from "@lobehub/icons/es/OpenClaw/components/Color";
import OpenClawMonoIcon from "@lobehub/icons/es/OpenClaw/components/Mono";
import OpenCodeMonoIcon from "@lobehub/icons/es/OpenCode/components/Mono";
import OpenRouterMonoIcon from "@lobehub/icons/es/OpenRouter/components/Mono";
import PerplexityColorIcon from "@lobehub/icons/es/Perplexity/components/Color";
import PerplexityMonoIcon from "@lobehub/icons/es/Perplexity/components/Mono";
import PhindMonoIcon from "@lobehub/icons/es/Phind/components/Mono";
import PoeColorIcon from "@lobehub/icons/es/Poe/components/Color";
import PoeMonoIcon from "@lobehub/icons/es/Poe/components/Mono";
import PollinationsMonoIcon from "@lobehub/icons/es/Pollinations/components/Mono";
import QoderColorIcon from "@lobehub/icons/es/Qoder/components/Color";
import QoderMonoIcon from "@lobehub/icons/es/Qoder/components/Mono";
import QwenColorIcon from "@lobehub/icons/es/Qwen/components/Color";
import QwenMonoIcon from "@lobehub/icons/es/Qwen/components/Mono";
import RecraftMonoIcon from "@lobehub/icons/es/Recraft/components/Mono";
import ReplicateMonoIcon from "@lobehub/icons/es/Replicate/components/Mono";
import RooCodeMonoIcon from "@lobehub/icons/es/RooCode/components/Mono";
import RunwayMonoIcon from "@lobehub/icons/es/Runway/components/Mono";
import SambaNovaColorIcon from "@lobehub/icons/es/SambaNova/components/Color";
import SambaNovaMonoIcon from "@lobehub/icons/es/SambaNova/components/Mono";
import SearchApiMonoIcon from "@lobehub/icons/es/SearchApi/components/Mono";
import SiliconCloudColorIcon from "@lobehub/icons/es/SiliconCloud/components/Color";
import SiliconCloudMonoIcon from "@lobehub/icons/es/SiliconCloud/components/Mono";
import SnowflakeColorIcon from "@lobehub/icons/es/Snowflake/components/Color";
import SnowflakeMonoIcon from "@lobehub/icons/es/Snowflake/components/Mono";
import SenseNovaColorIcon from "@lobehub/icons/es/SenseNova/components/Color";
import SenseNovaMonoIcon from "@lobehub/icons/es/SenseNova/components/Mono";
import StabilityColorIcon from "@lobehub/icons/es/Stability/components/Color";
import StabilityMonoIcon from "@lobehub/icons/es/Stability/components/Mono";
import StepfunColorIcon from "@lobehub/icons/es/Stepfun/components/Color";
import StepfunMonoIcon from "@lobehub/icons/es/Stepfun/components/Mono";
import TavilyColorIcon from "@lobehub/icons/es/Tavily/components/Color";
import TavilyMonoIcon from "@lobehub/icons/es/Tavily/components/Mono";
import TogetherColorIcon from "@lobehub/icons/es/Together/components/Color";
import TencentColorIcon from "@lobehub/icons/es/Tencent/components/Color";
import TencentMonoIcon from "@lobehub/icons/es/Tencent/components/Mono";
import TogetherMonoIcon from "@lobehub/icons/es/Together/components/Mono";
import TopazLabsMonoIcon from "@lobehub/icons/es/TopazLabs/components/Mono";
import TraeColorIcon from "@lobehub/icons/es/Trae/components/Color";
import TraeMonoIcon from "@lobehub/icons/es/Trae/components/Mono";
import UpstageColorIcon from "@lobehub/icons/es/Upstage/components/Color";
import UpstageMonoIcon from "@lobehub/icons/es/Upstage/components/Mono";
import YiColorIcon from "@lobehub/icons/es/Yi/components/Color";
import YiMonoIcon from "@lobehub/icons/es/Yi/components/Mono";
import V0MonoIcon from "@lobehub/icons/es/V0/components/Mono";
import VeniceColorIcon from "@lobehub/icons/es/Venice/components/Color";
import VeniceMonoIcon from "@lobehub/icons/es/Venice/components/Mono";
import VercelMonoIcon from "@lobehub/icons/es/Vercel/components/Mono";
import VertexAIColorIcon from "@lobehub/icons/es/VertexAI/components/Color";
import VertexAIMonoIcon from "@lobehub/icons/es/VertexAI/components/Mono";
import VllmColorIcon from "@lobehub/icons/es/Vllm/components/Color";
import VllmMonoIcon from "@lobehub/icons/es/Vllm/components/Mono";
import VolcengineColorIcon from "@lobehub/icons/es/Volcengine/components/Color";
import VolcengineMonoIcon from "@lobehub/icons/es/Volcengine/components/Mono";
import VoyageColorIcon from "@lobehub/icons/es/Voyage/components/Color";
import VoyageMonoIcon from "@lobehub/icons/es/Voyage/components/Mono";
import WindsurfMonoIcon from "@lobehub/icons/es/Windsurf/components/Mono";
import WorkersAIColorIcon from "@lobehub/icons/es/WorkersAI/components/Color";
import WorkersAIMonoIcon from "@lobehub/icons/es/WorkersAI/components/Mono";
import XAIMonoIcon from "@lobehub/icons/es/XAI/components/Mono";
import XiaomiMiMoMonoIcon from "@lobehub/icons/es/XiaomiMiMo/components/Mono";
import XinferenceColorIcon from "@lobehub/icons/es/Xinference/components/Color";
import XinferenceMonoIcon from "@lobehub/icons/es/Xinference/components/Mono";
import ZAIMonoIcon from "@lobehub/icons/es/ZAI/components/Mono";
import ZhipuColorIcon from "@lobehub/icons/es/Zhipu/components/Color";
import ZhipuMonoIcon from "@lobehub/icons/es/Zhipu/components/Mono";

type LobeIconComponent = ElementType<{
  "aria-label"?: string;
  className?: string;
  size?: number | string;
  style?: CSSProperties;
}>;

type LobeIconEntry = {
  color?: LobeIconComponent;
  mono: LobeIconComponent;
};

const LOBE_ICON_COMPONENTS = {
  Ai21: { mono: Ai21MonoIcon },
  Alibaba: { mono: AlibabaMonoIcon, color: AlibabaColorIcon },
  Anthropic: { mono: AnthropicMonoIcon },
  Antigravity: { mono: AntigravityMonoIcon, color: AntigravityColorIcon },
  Arcee: { mono: ArceeMonoIcon, color: ArceeColorIcon },
  AssemblyAI: { mono: AssemblyAIMonoIcon, color: AssemblyAIColorIcon },
  Automatic: { mono: AutomaticMonoIcon, color: AutomaticColorIcon },
  Aws: { mono: AwsMonoIcon, color: AwsColorIcon },
  Azure: { mono: AzureMonoIcon, color: AzureColorIcon },
  AzureAI: { mono: AzureAIMonoIcon, color: AzureAIColorIcon },
  Baichuan: { mono: BaichuanMonoIcon, color: BaichuanColorIcon },
  Baidu: { mono: BaiduMonoIcon, color: BaiduColorIcon },
  Bailian: { mono: BailianMonoIcon, color: BailianColorIcon },
  Baseten: { mono: BasetenMonoIcon },
  Bedrock: { mono: BedrockMonoIcon, color: BedrockColorIcon },
  Bfl: { mono: BflMonoIcon },
  Cerebras: { mono: CerebrasMonoIcon, color: CerebrasColorIcon },
  ClaudeCode: { mono: ClaudeCodeMonoIcon, color: ClaudeCodeColorIcon },
  Cline: { mono: ClineMonoIcon },
  Cloudflare: { mono: CloudflareMonoIcon, color: CloudflareColorIcon },
  Codex: { mono: CodexMonoIcon, color: CodexColorIcon },
  Cohere: { mono: CohereMonoIcon, color: CohereColorIcon },
  ComfyUI: { mono: ComfyUIMonoIcon, color: ComfyUIColorIcon },
  Coze: { mono: CozeMonoIcon },
  Cursor: { mono: CursorMonoIcon },
  Dbrx: { mono: DbrxMonoIcon, color: DbrxColorIcon },
  DeepInfra: { mono: DeepInfraMonoIcon, color: DeepInfraColorIcon },
  DeepSeek: { mono: DeepSeekMonoIcon, color: DeepSeekColorIcon },
  Dify: { mono: DifyMonoIcon, color: DifyColorIcon },
  Doubao: { mono: DoubaoMonoIcon, color: DoubaoColorIcon },
  ElevenLabs: { mono: ElevenLabsMonoIcon },
  Exa: { mono: ExaMonoIcon, color: ExaColorIcon },
  Fal: { mono: FalMonoIcon, color: FalColorIcon },
  Featherless: { mono: FeatherlessMonoIcon, color: FeatherlessColorIcon },
  Fireworks: { mono: FireworksMonoIcon, color: FireworksColorIcon },
  Friendli: { mono: FriendliMonoIcon },
  Gemini: { mono: GeminiMonoIcon, color: GeminiColorIcon },
  GeminiCLI: { mono: GeminiCLIMonoIcon, color: GeminiCLIColorIcon },
  GithubCopilot: { mono: GithubCopilotMonoIcon },
  Google: { mono: GoogleMonoIcon, color: GoogleColorIcon },
  Grok: { mono: GrokMonoIcon },
  Groq: { mono: GroqMonoIcon },
  HuggingFace: { mono: HuggingFaceMonoIcon, color: HuggingFaceColorIcon },
  Hyperbolic: { mono: HyperbolicMonoIcon, color: HyperbolicColorIcon },
  IBM: { mono: IBMMonoIcon },
  Inference: { mono: InferenceMonoIcon },
  Jina: { mono: JinaMonoIcon },
  KiloCode: { mono: KiloCodeMonoIcon },
  Kimi: { mono: KimiMonoIcon, color: KimiColorIcon },
  Lambda: { mono: LambdaMonoIcon },
  Liquid: { mono: LiquidMonoIcon },
  LmStudio: { mono: LmStudioMonoIcon },
  LongCat: { mono: LongCatMonoIcon, color: LongCatColorIcon },
  Meta: { mono: MetaMonoIcon, color: MetaColorIcon },
  MetaAI: { mono: MetaAIMonoIcon, color: MetaAIColorIcon },
  Minimax: { mono: MinimaxMonoIcon, color: MinimaxColorIcon },
  Mistral: { mono: MistralMonoIcon, color: MistralColorIcon },
  Moonshot: { mono: MoonshotMonoIcon },
  Morph: { mono: MorphMonoIcon, color: MorphColorIcon },
  NanoBanana: { mono: NanoBananaMonoIcon, color: NanoBananaColorIcon },
  Nebius: { mono: NebiusMonoIcon },
  NousResearch: { mono: NousResearchMonoIcon },
  Novita: { mono: NovitaMonoIcon, color: NovitaColorIcon },
  Nvidia: { mono: NvidiaMonoIcon, color: NvidiaColorIcon },
  Ollama: { mono: OllamaMonoIcon },
  OpenAI: { mono: OpenAIMonoIcon },
  OpenClaw: { mono: OpenClawMonoIcon, color: OpenClawColorIcon },
  OpenCode: { mono: OpenCodeMonoIcon },
  OpenRouter: { mono: OpenRouterMonoIcon },
  Perplexity: { mono: PerplexityMonoIcon, color: PerplexityColorIcon },
  Phind: { mono: PhindMonoIcon },
  Poe: { mono: PoeMonoIcon, color: PoeColorIcon },
  Pollinations: { mono: PollinationsMonoIcon },
  Qoder: { mono: QoderMonoIcon, color: QoderColorIcon },
  Qwen: { mono: QwenMonoIcon, color: QwenColorIcon },
  Recraft: { mono: RecraftMonoIcon },
  Replicate: { mono: ReplicateMonoIcon },
  RooCode: { mono: RooCodeMonoIcon },
  Runway: { mono: RunwayMonoIcon },
  SambaNova: { mono: SambaNovaMonoIcon, color: SambaNovaColorIcon },
  SearchApi: { mono: SearchApiMonoIcon },
  SiliconCloud: { mono: SiliconCloudMonoIcon, color: SiliconCloudColorIcon },
  SenseNova: { mono: SenseNovaMonoIcon, color: SenseNovaColorIcon },
  Snowflake: { mono: SnowflakeMonoIcon, color: SnowflakeColorIcon },
  Stability: { mono: StabilityMonoIcon, color: StabilityColorIcon },
  Stepfun: { mono: StepfunMonoIcon, color: StepfunColorIcon },
  Tavily: { mono: TavilyMonoIcon, color: TavilyColorIcon },
  Tencent: { mono: TencentMonoIcon, color: TencentColorIcon },
  Together: { mono: TogetherMonoIcon, color: TogetherColorIcon },
  TopazLabs: { mono: TopazLabsMonoIcon },
  Trae: { mono: TraeMonoIcon, color: TraeColorIcon },
  Upstage: { mono: UpstageMonoIcon, color: UpstageColorIcon },
  V0: { mono: V0MonoIcon },
  Venice: { mono: VeniceMonoIcon, color: VeniceColorIcon },
  Vercel: { mono: VercelMonoIcon },
  VertexAI: { mono: VertexAIMonoIcon, color: VertexAIColorIcon },
  Vllm: { mono: VllmMonoIcon, color: VllmColorIcon },
  Volcengine: { mono: VolcengineMonoIcon, color: VolcengineColorIcon },
  Voyage: { mono: VoyageMonoIcon, color: VoyageColorIcon },
  Windsurf: { mono: WindsurfMonoIcon },
  WorkersAI: { mono: WorkersAIMonoIcon, color: WorkersAIColorIcon },
  XAI: { mono: XAIMonoIcon },
  XiaomiMiMo: { mono: XiaomiMiMoMonoIcon },
  Xinference: { mono: XinferenceMonoIcon, color: XinferenceColorIcon },
  Yi: { mono: YiMonoIcon, color: YiColorIcon },
  ZAI: { mono: ZAIMonoIcon },
  Zhipu: { mono: ZhipuMonoIcon, color: ZhipuColorIcon },
} satisfies Record<string, LobeIconEntry>;

const LOBE_PROVIDER_ALIASES = {
  ai21: "Ai21",
  alibaba: "Alibaba",
  "alibaba-cn": "Alibaba",
  "amazon-q": "Aws",
  anthropic: "Anthropic",
  antigravity: "Antigravity",
  agy: "Antigravity", // Antigravity CLI — same brand icon as the antigravity provider
  assemblyai: "AssemblyAI",
  "aws-polly": "Aws",
  azure: "Azure",
  "azure-ai": "AzureAI",
  "azure-openai": "AzureAI",
  baidu: "Baidu",
  "bailian-coding-plan": "Bailian",
  baseten: "Baseten",
  bedrock: "Bedrock",
  bfl: "Bfl",
  "black-forest-labs": "Bfl",
  cerebras: "Cerebras",
  "chatgpt-web": "OpenAI",
  claude: "ClaudeCode",
  "claude-web": "HuggingFace",
  cline: "Cline",
  cloudflare: "Cloudflare",
  "cloudflare-ai": "WorkersAI",
  codestral: "Mistral",
  codex: "Codex",
  "codex-cloud": "Codex",
  cohere: "Cohere",
  comfyui: "ComfyUI",
  copilot: "GithubCopilot",
  coze: "Coze",
  cursor: "Cursor",
  databricks: "Dbrx",
  deepinfra: "DeepInfra",
  deepseek: "DeepSeek",
  "deepseek-web": "DeepSeek",
  elevenlabs: "ElevenLabs",
  exa: "Exa",
  "exa-search": "Exa",
  fal: "Fal",
  "fal-ai": "Fal",
  featherless: "Featherless",
  "featherless-ai": "Featherless",
  fireworks: "Fireworks",
  "fireworks-ai": "Fireworks",
  friendli: "Friendli",
  friendliai: "Friendli",
  gemini: "Gemini",
  "gemini-cli": "GeminiCLI",
  github: "GithubCopilot",
  "github-copilot": "GithubCopilot",
  glm: "Zhipu",
  "glm-cn": "Zhipu",
  glmt: "Zhipu",
  "google-pse-search": "Google",
  grok: "Grok",
  "grok-web": "Grok",
  groq: "Groq",
  "hugging-face": "HuggingFace",
  huggingface: "HuggingFace",
  hyperbolic: "Hyperbolic",
  ibm: "IBM",
  "inference-net": "Inference",
  jina: "Jina",
  "jina-ai": "Jina",
  kilocode: "KiloCode",
  kimi: "Kimi",
  "kimi-coding": "Kimi",
  "kimi-coding-apikey": "Kimi",
  lambda: "Lambda",
  "lambda-ai": "Lambda",
  liquid: "Liquid",
  "lm-studio": "LmStudio",
  lmstudio: "LmStudio",
  longcat: "LongCat",
  "meta-llama": "Meta",
  minimax: "Minimax",
  "minimax-cn": "Minimax",
  mistral: "Mistral",
  mistralai: "Mistral",
  moonshot: "Moonshot",
  morph: "Morph",
  "muse-spark-web": "MetaAI",
  nanobanana: "NanoBanana",
  nebius: "Nebius",
  "nous-research": "NousResearch",
  nousresearch: "NousResearch",
  novita: "Novita",
  nvidia: "Nvidia",
  ollama: "Ollama",
  "ollama-cloud": "Ollama",
  "ollama-search": "Ollama",
  openai: "OpenAI",
  openclaw: "OpenClaw",
  opencode: "OpenCode",
  "opencode-go": "OpenCode",
  "opencode-zen": "OpenCode",
  "open-router": "OpenRouter",
  openrouter: "OpenRouter",
  perplexity: "Perplexity",
  "perplexity-search": "Perplexity",
  "perplexity-web": "Perplexity",
  poe: "Poe",
  phind: "Phind",
  pollinations: "Pollinations",
  qoder: "Qoder",
  qwen: "Qwen",
  recraft: "Recraft",
  replicate: "Replicate",
  roo: "RooCode",
  runwayml: "Runway",
  sambanova: "SambaNova",
  sdwebui: "Automatic",
  searchapi: "SearchApi",
  "searchapi-search": "SearchApi",
  siliconflow: "SiliconCloud",
  snowflake: "Snowflake",
  stepfun: "Stepfun",
  stability: "Stability",
  "stability-ai": "Stability",
  tavily: "Tavily",
  "tavily-search": "Tavily",
  tencent: "Tencent",
  together: "Together",
  topaz: "TopazLabs",
  trae: "Trae",
  triton: "Nvidia",
  upstage: "Upstage",
  v0: "V0",
  "v0-vercel": "V0",
  venice: "Venice",
  "vercel-ai-gateway": "Vercel",
  vertex: "VertexAI",
  "vertex-partner": "VertexAI",
  vertexai: "VertexAI",
  vllm: "Vllm",
  volcengine: "Volcengine",
  voyage: "Voyage",
  "voyage-ai": "Voyage",
  watsonx: "IBM",
  windsurf: "Windsurf",
  "workers-ai": "WorkersAI",
  workersai: "WorkersAI",
  xai: "XAI",
  "xiaomi-mimo": "XiaomiMiMo",
  xiaomimimo: "XiaomiMiMo",
  xinference: "Xinference",
  zai: "ZAI",
  yi: "Yi",
  zhipu: "Zhipu",
} satisfies Record<string, keyof typeof LOBE_ICON_COMPONENTS>;

export function getLobeProviderIcon(
  providerId: string,
  type: "mono" | "color" = "color"
): LobeIconComponent | null {
  const iconKey = LOBE_PROVIDER_ALIASES[providerId.toLowerCase()];
  if (!iconKey) return null;

  const entry = LOBE_ICON_COMPONENTS[iconKey];
  return type === "color" && entry.color ? entry.color : entry.mono;
}
