// Small labels. Color only means something: green is online, blue is age verified or adult, red is banned. import type { Link } from "@/lib/api"; import { cn } from "@/lib/utils"; const tones = { neutral: "border-border bg-muted/60 text-muted-foreground", strong: "border-foreground/15 bg-foreground/5 text-foreground", online: "border-emerald-600/20 bg-emerald-500/10 text-emerald-700 dark:text-emerald-400", adult: "border-sky-600/20 bg-sky-500/10 text-sky-700 dark:text-sky-400", danger: "border-red-600/20 bg-red-500/10 text-red-700 dark:text-red-400", }; export function Tag({ tone = "neutral", dot = false, className, children, }: { tone?: keyof typeof tones; dot?: boolean; className?: string; children: React.ReactNode; }) { return ( {dot && } {children} ); } /** A round initial standing in for an avatar picture. */ export function Initial({ name }: { name: string }) { return ( {name.slice(0, 1)} ); } /** The community products an account wears. */ export function Outfit({ items }: { items: { id: string; name: string }[] }) { if (items.length === 0) return null; return (