diff --git a/apps/landing/src/shared/icons/brands.tsx b/apps/landing/src/shared/icons/brands.tsx
index 6eee4815..5fd2e4a0 100644
--- a/apps/landing/src/shared/icons/brands.tsx
+++ b/apps/landing/src/shared/icons/brands.tsx
@@ -2,6 +2,7 @@ import { CodexIcon } from "@onequery/ui/icons/codex-icon";
import { GoogleSearchConsoleIcon } from "@onequery/ui/icons/google-search-console-icon";
import { GranolaIcon } from "@onequery/ui/icons/granola-icon";
import { HermesAgentIcon } from "@onequery/ui/icons/hermes-agent-icon";
+import { JamIcon } from "@onequery/ui/icons/jam-icon";
import { SendGridIcon } from "@onequery/ui/icons/sendgrid-icon";
import { SimpleIconSvg, SvgIcon } from "@onequery/ui/icons/svg-icon";
import type { IconSvgProps, SimpleIconData } from "@onequery/ui/icons/svg-icon";
@@ -139,26 +140,6 @@ function HermesIcon({ size, ...props }: IconSvgProps) {
return ;
}
-function JamIcon({ size, ...props }: IconSvgProps) {
- return (
-
-
-
- );
-}
-
function CodexAppServerApiIcon(props: IconSvgProps) {
return ;
}
diff --git a/packages/ui/package.json b/packages/ui/package.json
index 84e939ae..6be01222 100644
--- a/packages/ui/package.json
+++ b/packages/ui/package.json
@@ -15,6 +15,7 @@
"./icons/google-search-console-icon": "./src/icons/google-search-console-icon.tsx",
"./icons/granola-icon": "./src/icons/granola-icon.tsx",
"./icons/hermes-agent-icon": "./src/icons/hermes-agent-icon.tsx",
+ "./icons/jam-icon": "./src/icons/jam-icon.tsx",
"./icons/sendgrid-icon": "./src/icons/sendgrid-icon.tsx",
"./hooks/*": "./src/hooks/*.ts",
"./icons/svg-icon": "./src/icons/svg-icon.tsx"
diff --git a/packages/ui/src/data-sources/provider-icons.test.tsx b/packages/ui/src/data-sources/provider-icons.test.tsx
index 260a0e13..f1e91fb9 100644
--- a/packages/ui/src/data-sources/provider-icons.test.tsx
+++ b/packages/ui/src/data-sources/provider-icons.test.tsx
@@ -92,6 +92,18 @@ describe("shared provider icon accessibility", () => {
expect(markup).toContain("
Granola provider");
});
+ it("renders Jam with the official hosted logo", () => {
+ const markup = renderProviderIcon("jam", {
+ title: "Jam provider",
+ });
+
+ expect(markup).toContain('viewBox="0 0 384 384"');
+ expect(markup).toContain(
+ 'href="https://storage.googleapis.com/jam-assets/jam-logo.webp"'
+ );
+ expect(markup).toContain("Jam provider");
+ });
+
it("renders AWS Athena Connector as a monochrome icon", () => {
const markup = renderProviderIcon("aws_athena_connector");
diff --git a/packages/ui/src/data-sources/provider-icons.tsx b/packages/ui/src/data-sources/provider-icons.tsx
index 07b6e0cb..75e6b394 100644
--- a/packages/ui/src/data-sources/provider-icons.tsx
+++ b/packages/ui/src/data-sources/provider-icons.tsx
@@ -3,7 +3,6 @@ import {
IconDatabase,
IconHelpCircle,
IconTerminal2,
- IconVideo,
} from "@tabler/icons-react";
import type { ComponentType } from "react";
import {
@@ -36,6 +35,7 @@ import { CodexIcon } from "../icons/codex-icon";
import { GoogleSearchConsoleIcon } from "../icons/google-search-console-icon";
import { GranolaIcon } from "../icons/granola-icon";
import { HermesAgentIcon } from "../icons/hermes-agent-icon";
+import { JamIcon } from "../icons/jam-icon";
import { SendGridIcon } from "../icons/sendgrid-icon";
import {
SimpleIconSvg,
@@ -226,10 +226,6 @@ function E2BIcon(props: ProviderIconProps) {
);
}
-function JamIcon(props: ProviderIconProps) {
- return ;
-}
-
function MicrosoftClarityIcon({ size = 24, ...props }: ProviderIconProps) {
return (
+
+
+ );
+}