11import { Fragment , useEffect , useState } from 'react' ;
2+ import abakaLogo from '../img/abaka-logo.svg' ;
3+ import contraLabsLogo from '../img/contra-labs.png' ;
24import heroImage from '../img/hero.png' ;
5+ import FlameIcon from './components/FlameIcon' ;
36import Navigation from './components/Navigation' ;
47import PersonCard from './components/PersonCard' ;
58import TopicIcon from './components/TopicIcon' ;
69import { getPeopleByRole , PERSON_ROLE } from './data/peopleRepository' ;
710import {
811 advisors ,
912 cfpCategories ,
13+ competitionTeam ,
14+ competitionUrl ,
1015 ethicsNote ,
1116 importantDates ,
1217 neuripsReviewTrack ,
@@ -38,8 +43,20 @@ function Hero() {
3843 < span className = "venue-divider" aria-hidden = "true" > ·</ span >
3944 < span className = "venue-location venue-location--full" > International Convention Centre, Sydney, Australia</ span >
4045 < span className = "venue-location venue-location--short" > ICC Sydney, Australia</ span >
46+ < span className = "venue-divider" aria-hidden = "true" > ·</ span >
4147 < span className = "venue-date" > December 11–12, 2026</ span >
4248 </ div >
49+ < div className = "hero-actions" >
50+ < a className = "hero-btn hero-btn--primary" href = "#cfp" >
51+ < FlameIcon />
52+ Call for Papers
53+ </ a >
54+ < a className = "hero-btn" href = "#competition" >
55+ < FlameIcon />
56+ Join IAB × Glee Competition
57+ </ a >
58+ </ div >
59+ < Countdown variant = "hero" />
4360 </ div >
4461 </ header >
4562 ) ;
@@ -217,7 +234,6 @@ function CallForPapers() {
217234 </ div >
218235
219236 < h3 className = "cfp-heading" > Important Dates</ h3 >
220- < Countdown />
221237 < table className = "dates-table" >
222238 < tbody >
223239 { importantDates . map ( ( { label, value, key } ) => (
@@ -234,6 +250,8 @@ function CallForPapers() {
234250 { ethicsNote . body } { ' ' }
235251 < a href = { ethicsNote . url } target = "_blank" rel = "noopener noreferrer" > { ethicsNote . linkText } </ a > for details.
236252 </ p >
253+
254+ < p className = "lead cfp-note" > Travel grants/paper awards will be available.</ p >
237255 </ div >
238256 </ section >
239257 ) ;
@@ -253,8 +271,9 @@ function timeLeft(deadline) {
253271 } ;
254272}
255273
256- function Countdown ( ) {
274+ function Countdown ( { variant } ) {
257275 const [ left , setLeft ] = useState ( ( ) => timeLeft ( submissionDeadline ) ) ;
276+ const className = `countdown${ variant === 'hero' ? ' countdown--hero' : '' } ` ;
258277
259278 useEffect ( ( ) => {
260279 const timer = setInterval ( ( ) => setLeft ( timeLeft ( submissionDeadline ) ) , 1000 ) ;
@@ -263,15 +282,15 @@ function Countdown() {
263282
264283 if ( ! left ) {
265284 return (
266- < div className = "countdown" >
285+ < div className = { className } >
267286 < div className = "cd-label" > Submissions are closed< strong > The deadline has passed.</ strong > </ div >
268287 </ div >
269288 ) ;
270289 }
271290
272291 return (
273- < div className = "countdown" >
274- < div className = "cd-label" > Submission deadline in < strong > { submissionDeadlineLabel } </ strong > </ div >
292+ < div className = { className } >
293+ < div className = "cd-label" > Paper submission deadline < strong > { submissionDeadlineLabel } </ strong > </ div >
275294 < div className = "cd-units" >
276295 { [ [ 'Days' , left . days ] , [ 'Hours' , left . hours ] , [ 'Minutes' , left . minutes ] , [ 'Seconds' , left . seconds ] ] . map ( ( [ unit , value ] ) => (
277296 < div className = "cd-unit" key = { unit } >
@@ -284,13 +303,31 @@ function Countdown() {
284303 ) ;
285304}
286305
287- function InlinePeople ( { people, linked = false } ) {
288- return people . map ( ( [ name , affiliation , url ] , index ) => (
289- < span key = { name } >
290- { linked && url ? < a href = { url } target = "_blank" rel = "noopener noreferrer" > { name } </ a > : name } ({ affiliation } )
291- { index < people . length - 1 && < span aria-hidden = "true" > · </ span > }
292- </ span >
293- ) ) ;
306+ function Competition ( ) {
307+ return (
308+ < section id = "competition" >
309+ < div className = "container" >
310+ < h2 > Competition</ h2 >
311+ < p className = "lead" > We are preparing a community competition on interpreting agent behavior. Reports written by competition participants can be selected for presentation at the workshop. We will shortly update here on how to attend and how to present it in our workshop. Currently at a glance:</ p >
312+ < p className = "lead" > < a href = { competitionUrl } target = "_blank" rel = "noopener noreferrer" > { competitionUrl } </ a > </ p >
313+ </ div >
314+ </ section >
315+ ) ;
316+ }
317+
318+ function PeopleList ( { people, linked = false } ) {
319+ return (
320+ < ul className = "people-list" >
321+ { people . map ( ( [ name , affiliation , url ] ) => (
322+ < li key = { name } >
323+ < span className = "pl-name" >
324+ { linked && url ? < a href = { url } target = "_blank" rel = "noopener noreferrer" > { name } </ a > : name }
325+ </ span >
326+ < span className = "pl-affil" > { affiliation } </ span >
327+ </ li >
328+ ) ) }
329+ </ ul >
330+ ) ;
294331}
295332
296333function Organizers ( ) {
@@ -304,12 +341,17 @@ function Organizers() {
304341 < div className = "adv" >
305342 < h3 > Advisory Board</ h3 >
306343 < p className = "adv-note" > We thank the faculty and senior researchers who advise and support this workshop.</ p >
307- < p > < InlinePeople people = { advisors } linked /> </ p >
344+ < PeopleList people = { advisors } linked />
345+ </ div >
346+ < div className = "adv" >
347+ < h3 > Competition Organization Team</ h3 >
348+ < p className = "adv-note" > We thank our team members who help us run the competition.</ p >
349+ { competitionTeam . length ? < PeopleList people = { competitionTeam } linked /> : < p > To be announced</ p > }
308350 </ div >
309351 < div className = "adv" >
310352 < h3 > Program Committee</ h3 >
311353 < p className = "adv-note" > We thank our program committee members from the NLP, HCI, and ML systems communities.</ p >
312- < p > < InlinePeople people = { programCommittee } linked /> </ p >
354+ < PeopleList people = { programCommittee } linked />
313355 </ div >
314356 </ div >
315357 </ section >
@@ -321,7 +363,15 @@ function Sponsors() {
321363 < section id = "sponsors" >
322364 < div className = "container" >
323365 < h2 > Sponsors</ h2 >
324- < p className = "muted-note" > To be announced</ p >
366+ < p className = "lead" > We thank our sponsors for supporting the workshop.</ p >
367+ < div className = "sponsor-grid" >
368+ < a className = "sponsor-card" href = "https://www.abaka.ai/" target = "_blank" rel = "noopener noreferrer" >
369+ < img src = { abakaLogo } alt = "Abaka AI" />
370+ </ a >
371+ < a className = "sponsor-card" href = "https://contralabs.com/creative-human-data" target = "_blank" rel = "noopener noreferrer" >
372+ < img className = "sponsor-logo--wordmark" src = { contraLabsLogo } alt = "Contra Labs" />
373+ </ a >
374+ </ div >
325375 </ div >
326376 </ section >
327377 ) ;
@@ -348,6 +398,7 @@ export default function App() {
348398 < News />
349399 < Scope />
350400 < CallForPapers />
401+ < Competition />
351402 < Speakers />
352403 < Schedule />
353404 < Organizers />
0 commit comments