diff --git a/apps/landing/src/shared/icons/brands.tsx b/apps/landing/src/shared/icons/brands.tsx index 72f90896..8d8fa1de 100644 --- a/apps/landing/src/shared/icons/brands.tsx +++ b/apps/landing/src/shared/icons/brands.tsx @@ -1,6 +1,8 @@ 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 { 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"; import type { ComponentType } from "react"; @@ -106,20 +108,6 @@ function MotherDuckIcon({ size, ...props }: IconSvgProps) { ); } -function GranolaIcon({ size, ...props }: IconSvgProps) { - return ( - - - - ); -} - function E2BIcon({ size, ...props }: IconSvgProps) { return ( - - - - ); -} - function SlackIcon({ size, ...props }: IconSvgProps) { return ( diff --git a/packages/ui/package.json b/packages/ui/package.json index f79365e4..84e939ae 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json @@ -13,7 +13,9 @@ "./components/*": "./src/components/ui/*.tsx", "./icons/codex-icon": "./src/icons/codex-icon.tsx", "./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/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 2b58d12a..260a0e13 100644 --- a/packages/ui/src/data-sources/provider-icons.test.tsx +++ b/packages/ui/src/data-sources/provider-icons.test.tsx @@ -69,6 +69,29 @@ describe("shared provider icon accessibility", () => { expect(markup).toContain("Google Search Console provider"); }); + it("renders SendGrid with the current multicolor brand mark", () => { + const markup = renderProviderIcon("sendgrid", { + title: "SendGrid provider", + }); + + expect(markup).toContain('viewBox="0 0 512 512"'); + expect(markup).toContain('fill="#9DD6E3"'); + expect(markup).toContain('fill="#00A9D1"'); + expect(markup).toContain('fill="#3F72AB"'); + expect(markup).toContain("SendGrid provider"); + }); + + it("renders Granola with the current app icon colors", () => { + const markup = renderProviderIcon("granola", { + title: "Granola provider", + }); + + expect(markup).toContain('viewBox="0 0 550 550"'); + expect(markup).toContain('fill="#B2C248"'); + expect(markup).toContain('stroke="#1E1E1E"'); + expect(markup).toContain("Granola 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 ae9b4053..4905167b 100644 --- a/packages/ui/src/data-sources/provider-icons.tsx +++ b/packages/ui/src/data-sources/provider-icons.tsx @@ -2,7 +2,6 @@ import type { SourceProviderId } from "@onequery/db/source-providers"; import { IconDatabase, IconHelpCircle, - IconNotebook, IconTerminal2, } from "@tabler/icons-react"; import type { ComponentType } from "react"; @@ -34,7 +33,9 @@ import { 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 { SendGridIcon } from "../icons/sendgrid-icon"; import { SimpleIconSvg, SvgIcon, @@ -210,12 +211,6 @@ function TablerProviderIcon({ ); } -function GranolaIcon(props: ProviderIconProps) { - return ( - - ); -} - function HermesIcon(props: ProviderIconProps) { return ; } @@ -272,21 +267,6 @@ function LinkedInAdsIcon({ size = 24, ...props }: ProviderIconProps) { ); } -function SendGridIcon({ size = 24, ...props }: ProviderIconProps) { - return ( - - - - - ); -} - function SlackIcon({ size = 24, ...props }: ProviderIconProps) { return ( diff --git a/packages/ui/src/icons/granola-icon.tsx b/packages/ui/src/icons/granola-icon.tsx new file mode 100644 index 00000000..ff46a8b8 --- /dev/null +++ b/packages/ui/src/icons/granola-icon.tsx @@ -0,0 +1,24 @@ +import { SvgIcon } from "./svg-icon"; +import type { IconSvgProps } from "./svg-icon"; + +export function GranolaIcon({ size = 24, ...props }: IconSvgProps) { + return ( + + + + + + ); +} diff --git a/packages/ui/src/icons/sendgrid-icon.tsx b/packages/ui/src/icons/sendgrid-icon.tsx new file mode 100644 index 00000000..fa588dc1 --- /dev/null +++ b/packages/ui/src/icons/sendgrid-icon.tsx @@ -0,0 +1,22 @@ +import { SvgIcon } from "./svg-icon"; +import type { IconSvgProps } from "./svg-icon"; + +export function SendGridIcon({ size = 24, ...props }: IconSvgProps) { + return ( + + + + + + + + ); +}