Files
zeekay e4a276e409 brand: no upstream art, no third-party image hosts, the SDK is ours everywhere
Workflow template cards, the template choosers, the auth wallpaper, insight
previews, partner pages, SDK logos and every fixture stop pulling posthog's
cloudinary; the CSP stops allowing it. The mascot easter egg leaves with its
sprite package. insights-js resolves to @hanzo/insights for every consumer —
the react wrapper's peer included, via a workspace package that carries the
name — and its rrweb siblings map to our published forks. Icon names that
outran our icon release alias to shipped glyphs.
2026-08-06 11:21:45 -07:00

55 lines
1.6 KiB
TypeScript

import { AnthropicLogo } from 'scenes/onboarding/shared/logos/AnthropicLogo'
import geminiImage from 'scenes/onboarding/shared/logos/gemini.svg'
import { OpenAILogo } from 'scenes/onboarding/shared/logos/OpenAILogo'
import { OpenRouterLogo } from 'scenes/onboarding/shared/logos/OpenRouterLogo'
import zeaburImage from 'scenes/onboarding/shared/logos/zeabur.svg'
import azureImage from 'public/services/azure.png'
import { LLMProvider, LLM_PROVIDER_LABELS } from './settings/llmProviderKeysLogic'
const PROVIDER_IMAGES: Partial<Record<LLMProvider, string>> = {
gemini: geminiImage,
together_ai: '',
fireworks: '',
minimax: '',
zeabur: zeaburImage,
azure_openai: azureImage,
}
const PROVIDER_COMPONENTS: Partial<Record<LLMProvider, React.ComponentType>> = {
openai: OpenAILogo,
openrouter: OpenRouterLogo,
anthropic: AnthropicLogo,
}
export function LLMProviderIcon({
provider,
className = 'size-4',
}: {
provider: LLMProvider
className?: string
}): JSX.Element | null {
const imageUrl = PROVIDER_IMAGES[provider]
if (imageUrl) {
return <img src={imageUrl} className={className} alt={provider} />
}
const Component = PROVIDER_COMPONENTS[provider]
if (Component) {
return (
<span className={`${className} inline-flex items-center justify-center overflow-hidden`}>
<Component />
</span>
)
}
return null
}
export const LLM_PROVIDER_SELECT_OPTIONS = (Object.keys(LLM_PROVIDER_LABELS) as LLMProvider[]).map((provider) => ({
value: provider,
label: LLM_PROVIDER_LABELS[provider],
icon: <LLMProviderIcon provider={provider} />,
}))