diff --git a/apps/nextjs/src/app/[locale]/manage/assistant/_components/assistant-configuration.tsx b/apps/nextjs/src/app/[locale]/manage/assistant/_components/assistant-configuration.tsx
index 6a100de9a..e9fe5a983 100644
--- a/apps/nextjs/src/app/[locale]/manage/assistant/_components/assistant-configuration.tsx
+++ b/apps/nextjs/src/app/[locale]/manage/assistant/_components/assistant-configuration.tsx
@@ -64,11 +64,23 @@ type CredentialFlow = "idle" | "replace" | "remove";
type AssistantProviderOption = AssistantProvider | "homarr";
const ProviderIcon = ({ providerId, size = 20 }: { providerId: AssistantProviderOption; size?: number }) => {
- const iconUrl = providerId === "homarr" ? "/logo/logo.png" : assistantProviderPresets[providerId].iconUrl;
- return iconUrl ? (
-
- ) : (
-
+ if (providerId === "homarr") {
+ return ;
+ }
+
+ const preset = assistantProviderPresets[providerId];
+ if (!preset.iconUrl) return ;
+
+ const darkIconUrl = "darkIconUrl" in preset ? preset.darkIconUrl : null;
+ if (!darkIconUrl) {
+ return ;
+ }
+
+ return (
+ <>
+
+
+ >
);
};
diff --git a/packages/api/src/test/assistant-providers.spec.ts b/packages/api/src/test/assistant-providers.spec.ts
index a04bc4ee2..751a2f5db 100644
--- a/packages/api/src/test/assistant-providers.spec.ts
+++ b/packages/api/src/test/assistant-providers.spec.ts
@@ -30,7 +30,7 @@ describe("assistant provider presets", () => {
});
test.each(assistantProviderIds.filter((provider) => provider !== "custom"))(
- "%s has a Dashboard Icons provider mark",
+ "%s has a valid provider mark",
(provider) => {
const iconUrl = assistantProviderPresets[provider].iconUrl;
expect(iconUrl).not.toBeNull();
@@ -38,6 +38,12 @@ describe("assistant provider presets", () => {
},
);
+ test("uses Groq's high-contrast LobeHub mark in dark mode", () => {
+ expect(assistantProviderPresets.groq.darkIconUrl).toBe(
+ "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@latest/dark/groq.png",
+ );
+ });
+
test("keeps the display label separate from the provider model ID", () => {
const model = {
id: "deepseek/deepseek-v4-pro",
diff --git a/packages/definitions/src/assistant.ts b/packages/definitions/src/assistant.ts
index 32fa7de89..0220711a8 100644
--- a/packages/definitions/src/assistant.ts
+++ b/packages/definitions/src/assistant.ts
@@ -39,6 +39,7 @@ interface AssistantProviderPreset {
category: AssistantProviderCategory;
discoveryAuthentication: "bearer" | "anthropic";
iconUrl: string | null;
+ darkIconUrl?: string;
}
export const assistantProviderPresets = {
@@ -89,6 +90,7 @@ export const assistantProviderPresets = {
category: "hosted",
discoveryAuthentication: "bearer",
iconUrl: `${providerIconBaseUrl}/groq.svg`,
+ darkIconUrl: "https://cdn.jsdelivr.net/npm/@lobehub/icons-static-png@latest/dark/groq.png",
},
mistral: {
baseUrl: "https://api.mistral.ai/v1",