import type { ReactNode } from "react"; export const OG_SIZE = { width: 1200, height: 630, }; /** The assistant-ui chat bubble logo as JSX for OG images */ export function OgLogo({ size = 64, color = "white", }: { size?: number; color?: string; }) { return ( ); } /** Shared header with logo on left and URL on right */ export function OgHeader({ fontSans = "Geist", fontMono = "GeistMono", subtle = false, }: { fontSans?: string; fontMono?: string; /** Use smaller, more muted branding for sub-projects */ subtle?: boolean; }) { const logoSize = subtle ? 40 : 64; const titleSize = subtle ? 28 : 44; const urlSize = subtle ? 22 : 32; const titleColor = subtle ? "#888888" : "#e5e5e5"; const urlColor = subtle ? "#666666" : "#a3a3a3"; const gap = subtle ? 12 : 20; return (
assistant-ui
assistant-ui.com
); } /** * Reusable OG image template with header, centered content, and optional background decoration. */ export function OgTemplate({ children, backgroundDecoration, subtleBranding = false, }: { children: ReactNode; backgroundDecoration?: ReactNode; /** Use smaller, more muted assistant-ui branding for sub-projects */ subtleBranding?: boolean; }) { return (
{backgroundDecoration && (
{backgroundDecoration}
)}
{children}
); }