// Shared UI primitives used by every gohegan.net UI kit. // Exported to window so other Babel files can pick them up. const HEGAN_LOGO_MARK = (props = {}) => ( ); // Mono wordmark — Geist Mono, medium weight, tight tracking. // `suffix` adds a muted `.net` after the name. const GoheganLogo = ({ size = 22, withWord = true, suffix = false }) => ( {withWord && ( gohegan {suffix && .net} )} ); // Lucide icon — must be called after lucide CDN has loaded. const Icon = ({ name, size = 18, strokeWidth = 1.75, style }) => { const ref = React.useRef(null); React.useEffect(() => { if (!ref.current || !window.lucide) return; ref.current.innerHTML = ''; const i = document.createElement('i'); i.setAttribute('data-lucide', name); ref.current.appendChild(i); window.lucide.createIcons({ icons: window.lucide.icons, nameAttr: 'data-lucide', attrs: { width: size, height: size, 'stroke-width': strokeWidth }, }); }, [name, size, strokeWidth]); return