// Site header — sticky, wordmark + nav + theme toggle.

const SiteHeader = ({ active, onNavigate, theme, onToggleTheme }) => {
  const [scrolled, setScrolled] = React.useState(false);
  React.useEffect(() => {
    const onScroll = () => setScrolled(window.scrollY > 16);
    window.addEventListener('scroll', onScroll, { passive: true });
    return () => window.removeEventListener('scroll', onScroll);
  }, []);

  const NavLink = ({ id, children }) => (
    <a
      href={`#${id}`}
      onClick={(e) => { e.preventDefault(); onNavigate(id); }}
      style={{
        color: active === id ? 'var(--ink)' : 'var(--ink-3)',
        textDecoration: 'none',
        fontSize: 14,
        padding: '6px 0',
        borderBottom: active === id ? '1px solid var(--ink)' : '1px solid transparent',
        transition: 'color 120ms var(--ease-out), border-color 120ms var(--ease-out)',
        whiteSpace: 'nowrap',
      }}
      onMouseEnter={(e) => { if (active !== id) e.currentTarget.style.color = 'var(--ink)'; }}
      onMouseLeave={(e) => { if (active !== id) e.currentTarget.style.color = 'var(--ink-3)'; }}
    >
      {children}
    </a>
  );

  return (
    <header className={`site-header ${scrolled ? 'is-scrolled' : ''}`}>
      <div className="container" style={{ display: 'flex', alignItems: 'center', gap: 24, padding: '18px var(--gutter)' }}>
        <a href="#" onClick={(e) => { e.preventDefault(); onNavigate('top'); }}
           style={{ display: 'flex', alignItems: 'center', gap: 14, textDecoration: 'none', color: 'inherit' }}>
          <span style={{
            fontFamily: 'var(--font-display)', fontStyle: 'italic',
            fontSize: 22, letterSpacing: '-0.01em', color: 'var(--ink)',
            whiteSpace: 'nowrap', lineHeight: 1,
          }}>
            Commonwork <span style={{ color: 'var(--accent)' }}>Lab</span>
          </span>
          <span className="meta" style={{
            display: 'inline-flex', alignItems: 'center', gap: 6,
            padding: '2px 8px', border: '1px solid var(--rule)', borderRadius: 999,
            color: 'var(--ink-3)', fontSize: 10, letterSpacing: '0.14em', textTransform: 'uppercase',
            marginLeft: 4,
          }}>
            EST. 2025
          </span>
        </a>

        <nav style={{ display: 'flex', alignItems: 'center', gap: 28, marginLeft: 28 }}>
          {window.CWL_DATA.NAV.map((n) => (
            <NavLink key={n.id} id={n.id}>{n.label}</NavLink>
          ))}
        </nav>

        <div style={{ marginLeft: 'auto', display: 'flex', alignItems: 'center', gap: 8 }}>
          <button className="icon-btn" aria-label="Search" onClick={(e) => e.preventDefault()}>
            <Icon name="search" size={16} />
          </button>
          <button className="icon-btn" aria-label="Toggle theme" onClick={onToggleTheme}>
            <Icon name={theme === 'dark' ? 'sun' : 'moon'} size={16} />
          </button>
          <a className="icon-btn" href="#" aria-label="RSS" onClick={(e) => e.preventDefault()}>
            <Icon name="rss" size={15} />
          </a>
        </div>
      </div>
    </header>
  );
};

window.SiteHeader = SiteHeader;
