'use client'; import Link from 'next/link'; import { Compass, Download, Telescope } from 'lucide-react'; type ProductKey = 'universal-links' | 'extension' | 'explore'; type Card = { key: ProductKey; href: string; icon: React.ReactNode; title: string; body: string; }; const CARDS: Card[] = [ { key: 'universal-links', href: '/universal-links', icon: , title: 'Universal links', body: 'Share aturi.to/handle/collection/rkey. Visitors choose which Atmosphere app opens it.', }, { key: 'extension', href: '/extension', icon: , title: 'Browser extension', body: 'Inspect AT URIs on any page and jump between Atmosphere apps.', }, { key: 'explore', href: '/explore', icon: , title: 'Atmosphere Explorer', body: "Browse any account's PDS records, identity history, and backlinks.", }, ]; /** * Bottom-of-page "explore the rest of aturi" cards. Pass `current` to * hide the card for the page you're already on so we don't link a page * to itself. */ export default function CrossLinkCards({ current }: { current?: ProductKey }) { const cards = CARDS.filter((c) => c.key !== current); return (
{cards.map((c) => ( ))}
); } function CrossLinkCard({ icon, title, body, href, }: { icon: React.ReactNode; title: string; body: string; href: string; }) { return ( { e.currentTarget.style.borderColor = 'var(--text-accent)'; e.currentTarget.style.background = 'var(--bg-tertiary)'; }} onMouseLeave={(e) => { e.currentTarget.style.borderColor = 'var(--border-medium)'; e.currentTarget.style.background = 'var(--bg-secondary)'; }} > {icon}

{title}

{body}

); }