// BioView — full biography: portrait + narrative, appointments, education, // editorial roles, honors, and research interests. const BV = window.WINTELAcademicDesignSystem_045d4f; function InstLogo({ group }) { const [broken, setBroken] = React.useState(false); const R = (typeof window !== 'undefined' && window.__resources) || {}; const logo = (group.logoRes && R[group.logoRes]) || group.logo; const logoDark = (group.logoDarkRes && R[group.logoDarkRes]) || group.logoDark; if (logo && !broken) { const pad = group.noLogoPad ? 0 : 3; const bg = group.noLogoPad ? 'transparent' : '#fff'; const border = group.noLogoPad ? 'none' : '1px solid var(--border-default)'; const base = { width: 48, height: 48, flexShrink: 0, objectFit: 'contain', borderRadius: 'var(--radius-md)', border, background: bg, padding: pad, boxSizing: 'border-box' }; if (logoDark) { return ( {group.org} setBroken(true)} style={base} /> {group.org} setBroken(true)} style={base} /> ); } return ( {group.org} setBroken(true)} style={base} /> ); } return ( ); } function ExperienceGroup({ group }) { const multi = group.roles.length > 1; return (
  • {group.org} {group.location ? {group.location} : null}
    {group.roles.map((r, i) => (
    {multi ? ( {i < group.roles.length - 1 ? : null} ) : null}
    {r.role} {r.period}{r.duration ? ' · ' + r.duration : ''} {r.detail ? {r.detail} : null}
    ))}
  • ); } function BioBlock({ title, children }) { return (

    {title}

    {children}
    ); } function BioView({ data }) { const p = data.person; const b = p.biography || {}; return (
    {(b.intro || []).map((para, i) => (

    {para}

    ))}
    {b.appointments && b.appointments.length ? (
      {b.appointments.map((g, i) => )}
    ) : null} {b.education && b.education.length ? (
      {b.education.map((g, i) => )}
    ) : null}
    ); } Object.assign(window, { BioView });