import { useId, type ComponentProps } from 'react'; import { cn } from '@/lib/utils'; import { BRAND, BRAND_GLYPHS, type BrandGlyphName } from '@/lib/brand'; import { useTheme } from '@/contexts/ThemeContext'; type ImgProps = Omit, 'src' | 'alt'>; export function BrandMark({ className, ...props }: ImgProps) { const { resolvedTheme } = useTheme(); const src = resolvedTheme === 'light' ? BRAND.assets.logoLight : BRAND.assets.logo; return ( {BRAND.name} ); } export function BrandWordmark({ compact = false, className }: { compact?: boolean; className?: string }) { return ( {compact ? BRAND.compactName : BRAND.name} ); } export function BrandGlyph({ name, className, }: { name: BrandGlyphName; className?: string; }) { const glyph = BRAND_GLYPHS[name]; const gradientId = `bt-glyph-${useId().replace(/:/g, '')}`; return ( ); } function BrandGlyphShape({ name, gradientId }: { name: BrandGlyphName; gradientId: string }) { const fill = `url(#${gradientId})`; const commonStroke = 'currentColor'; switch (name) { case 'bills': return ( <> ); case 'calendar': return ( <> ); case 'analytics': return ( <> ); case 'data': return ( <> ); case 'banking': return ( <> ); case 'snowball': return ( <> ); case 'security': return ( <> ); case 'tracker': default: return ( <> ); } }