/* Talks, News, Careers, Contact, Footer */
function Talks({ accentVar }) {
const talks = window.LB_DATA.talks;
return (
VIDEO TALKS
Guest lectures & technical deep-dives.
Selected talks from the team on geometric deep learning, manifold methods, and translation into life sciences.
);
}
window.Talks = Talks;
function News({ accentVar }) {
const items = window.LB_DATA.news;
return (
{items.map(n => (
{n.tag} · {n.date}
{n.title}
{n.body}
Read more →
))}
);
}
window.News = News;
function Careers({ accentVar }) {
const d = window.LB_DATA.careers;
return (
);
}
window.Careers = Careers;
function Contact({ accentVar }) {
const [status, setStatus] = React.useState('idle'); // idle | sending | sent | error
const [errorMsg, setErrorMsg] = React.useState('');
const [form, setForm] = React.useState({ name:'', email:'', org:'', interest:'Partnership', message:'', botcheck:'' });
const upd = k => e => setForm(f => ({ ...f, [k]: e.target.value }));
const sent = status === 'sent';
const submit = async e => {
e.preventDefault();
if (status === 'sending') return;
setStatus('sending');
setErrorMsg('');
try {
const res = await fetch('https://api.web3forms.com/submit', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },
body: JSON.stringify({
access_key: 'ef80ac89-72dc-4418-9653-acfac3e558ce',
subject: `Latent Bio website — ${form.interest} inquiry from ${form.name || form.email || 'unknown'}`,
from_name: form.name || 'Latent Bio website',
replyto: form.email,
name: form.name,
email: form.email,
organization: form.org,
interest: form.interest,
message: form.message,
botcheck: form.botcheck,
}),
});
const data = await res.json();
if (data.success) setStatus('sent');
else { setStatus('error'); setErrorMsg(data.message || 'Something went wrong. Please try again.'); }
} catch (err) {
setStatus('error');
setErrorMsg('Network error. Please try again or email us directly.');
}
};
return (
);
}
const fieldLabelStyle = { display:'block', fontFamily:'var(--font-display)', fontSize: 11, fontWeight:700, letterSpacing:'.12em', textTransform:'uppercase', color:'var(--lb-silver)', marginBottom: 6 };
function Field({ label, value, onChange, type, textarea }) {
const common = {
width:'100%', background: 'rgba(255,255,255,0.06)', border: '1px solid rgba(255,255,255,0.15)',
borderRadius: 8, padding: '12px 14px', color:'#fff', fontFamily:'var(--font-sans)', fontSize: 15,
outline:'none', transition:'border-color 160ms',
};
return (
{textarea
?
: }
);
}
window.Contact = Contact;
function Footer() {
return (
);
}
window.Footer = Footer;