/* FriendlyPhotons — Marketing site UI kit · primitives, nav, footer. Cosmetic recreations of friendlyphotons.ai components. Exported to window. */ // ── Icon (inline Lucide-style line glyphs) ────────────────────────────────── function Icon({ name, size = 24, stroke = "currentColor", width = 2, style }) { const paths = { layers: <>>, search: <>>, "map-pin": <>>, activity: , zap: , waves: <>>, message: , arrow: <>>, menu: <>>, check: , home: <>>, building: <>>, school: <>>, bed: <>>, bulb: <>>, award: <>>, users: <>>, }; return ( {paths[name]} ); } // ── Logo wordmark ──────────────────────────────────────────────────────────── function Wordmark({ size = 18, onDark = false }) { return ( FriendlyPhotons ); } // ── Buttons ────────────────────────────────────────────────────────────────── function Button({ children, variant = "primary", onClick, href }) { const Tag = href ? "a" : "button"; const cls = "fp-btn fp-btn-" + variant; return {children}; } function GhostLink({ children, onClick, href = "#" }) { return {children} →; } // ── Nav ────────────────────────────────────────────────────────────────────── function Nav({ onDownload }) { const [open, setOpen] = React.useState(false); const close = () => setOpen(false); return ( Why it matters The rating How it works Who it's for setOpen(o => !o)}> {open ? ( ) : ( )} Why it matters The rating How it works Who it's for { close(); if (onDownload) onDownload(e); }}>Get early access ); } // ── Footer ───────────────────────────────────────────────────────────────── function Footer({ onContact }) { return ( ); } Object.assign(window, { Icon, Wordmark, Button, GhostLink, Nav, Footer });