import type { ReactElement } from "react"; /** * The T-HUB mark, inline: three dome tents in a circle, each with a cable * out of its door into a switch with an antenna. Drawn in the hand-inked * style of the acampada26s.net mark, ink in `currentColor` over a neon * offset copy. Source: docs/brand/t-hub.svg (same 400×400 geometry). */ const TENTS: ReadonlyArray = [[105, 150], [295, 150], [200, 340]]; function Tent({ x, y }: { x: number; y: number }): ReactElement { return ( ); } function Mark({ paper }: { paper: string }): ReactElement { return ( <> {TENTS.map(([x, y]) => )} ); } export function LogoMark({ size = 32, className = "text-text", title = "T-HUB", }: { size?: number; className?: string; title?: string; }): ReactElement { return ( ); } /** * The quiet version of the mark: just the circle-A outline, no arrowheads. * Used wherever the brand needs to whisper — empty states, placeholders. */ export function CircleA({ size = 64, className = "text-accent", }: { size?: number; className?: string; }): ReactElement { return ( ); } /** * A single arrowhead lifted from the mark — the brand's bullet point. * Points the same way the right-hand barb of the circle-A does. */ export function ArrowGlyph({ size = 12, className = "text-accent", }: { size?: number; className?: string; }): ReactElement { return ( ); } /** * Mark + wordmark. Inline below ~96px (sidebar, palette); stacked above it * (onboarding hero) so the wordmark never gets dwarfed by the mark. */ export function Logo({ size = 32, withText = true }: { size?: number; withText?: boolean }): ReactElement { if (!withText) return ; const stacked = size >= 96; return ( T-HUB ); }