PageSourceSearch

https://kikkfestival.be/assets/SchedulePage-CkGb5qQ5.js

js kikkfestival.be collected 2026-09-30 05:45:51 UTC 9,900 bytes, 1 lines download raw bytes

1import{u as Q,C as J,r as i,b as E,j as s,f as Z,H as ee,i as te,c as L,X as se,d as re,D as ae,S as ne,g as M}from"./index-ifFCWbr-.js";import{b as G,B as le,o as ie}from"./venues-z4j89qr4.js";import{P as oe}from"./panels-CLsnQJl_.js";const de=["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],ce=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],f=7,P=40,p=13*60,A=14*60,$=1.5,o=a=>a<=p?a*f:a<=A?p*f+(a-p)*$:p*f+(A-p)*$+(a-A)*f,me=a=>{const r=new Date(a+"T00:00:00");return{dayLabel:de[r.getDay()],dayLabelEn:ce[r.getDay()],dateNum:String(r.getDate())}},u=a=>{if(!a)return null;const r=a.split(":"),x=parseInt(r[0],10),b=parseInt(r[1]||"0",10);return Number.isNaN(x)?null:x*60+(Number.isNaN(b)?0:b)},ue=a=>`${String(Math.floor(a/60)).padStart(2,"0")}:${String(a%60).padStart(2,"0")}`,xe=a=>a==="delegation_panel"?"DELEGATION":a==="aquamotion_room"?"AQUAMOTION ROOM":a==="kikk_live_industrie"?"KIKK LIVE INDUSTRIE":a==="wake_room"?"WAKE!ROOM":String(oe[a]||"PANEL").toUpperCase(),fe=()=>{var C;const{language:a}=Q(),r=a==="fr",[x,b]=J(),[d,I]=i.useState([]),[g,D]=i.useState([]),{data:v}=E({queryKey:["conferences"],queryFn:async()=>{const{data:t}=await M.from("conferences").select("*").eq("status","published").order("created_at",{ascending:!0});return t||[]}}),{data:S}=E({queryKey:["by_night_events"],queryFn:async()=>{const{data:t}=await M.from("by_night_events").select("*").eq("status","published").order("created_at",{ascending:!0});return t||[]}}),{data:w}=E({queryKey:["panels","published"],queryFn:async()=>{const{data:t}=await M.from("panels").select("*").eq("status","published").order("created_at",{ascending:!0});return t||[]}}),N=i.useMemo(()=>{const t=[];return(v||[]).forEach(e=>{var n;!e.date||!e.slug||t.push({id:e.id,href:`/talks/${e.slug}`,date:e.date,startTime:e.start_time,endTime:e.end_time,title:e.speaker_name||e.title,subtitle:e.speaker_name?e.title:null,image:e.image_url||((n=e.gallery_images)==null?void 0:n[0])||e.hero_image_url||"",venue:e.room_name||e.location||null,label:"TALK",kind:"talk"})}),(S||[]).forEach(e=>{var n;!e.event_date||!e.slug||t.push({id:e.id,href:`/parties/${e.slug}`,date:e.event_date,startTime:e.start_time,endTime:e.end_time,title:e.artist_name||e.title,subtitle:e.artist_name?e.title:null,image:e.image_url||((n=e.gallery_images)==null?void 0:n[0])||e.hero_image_url||"",venue:e.room_name||e.venue||null,label:r?"SOIRÉE":"PARTY",kind:"party"})}),(w||[]).forEach(e=>{var n;!e.event_date||!e.slug||t.push({id:e.id,href:`/panels/${e.slug}`,date:e.event_date,startTime:e.start_time,endTime:e.end_time,title:e.title,subtitle:null,image:e.image_url||((n=e.gallery_images)==null?void 0:n[0])||e.hero_image_url||"",venue:e.room_name||e.location||null,label:xe(e.room),kind:"panel"})}),t.sort((e,n)=>{const m=e.date.localeCompare(n.date);return m!==0?m:(e.startTime||"").localeCompare(n.startTime||"")})},[v,S,w,r]),T=i.useMemo(()=>Array.from(new Set(N.map(e=>e.date))).sort().map(e=>({date:e,...me(e)})),[N]),k=x.get("day"),_=k&&T.some(t=>t.date===k)?k:(C=T[0])==null?void 0:C.date,H=t=>{const e=new URLSearchParams(x);e.set("day",t),b(e,{replace:!0})},h=i.useMemo(()=>N.filter(t=>t.date===_),[N,_]),K=i.useMemo(()=>{const t=new Set(h.map(e=>G(e.venue)).filter(Boolean));return le.filter(e=>t.has(e.key))},[h]),c=i.useMemo(()=>h.filter(t=>{if(g.length>0&&!g.includes(t.kind))return!1;if(d.length===0)return!0;const e=G(t.venue);return e!==null&&d.includes(e)}),[h,d,g]),U=i.useMemo(()=>{const t=Array.from(new Set(c.map(e=>e.venue||(r?"Autre":"Other"))));return ie(t)},[c,r]),j=c.filter(t=>u(t.startTime)!==null),O=c.filter(t=>u(t.startTime)===null),l=i.useMemo(()=>{if(j.length===0)return null;let t=24*60,e=0;j.forEach(y=>{const q=u(y.startTime),Y=u(y.endTime)??q+P;t=Math.min(t,q),e=Math.max(e,Y)});const n=Math.floor(t/60)*60,m=Math.ceil(e/60)*60;return{start:n,end:m}},[j]),F=i.useMemo(()=>{if(!l)return[];const t=[];for(let e=l.start;e<=l.end;e+=60)t.push(e);return t},[l]),V=l?o(l.end)-o(l.start):0,R=14,W=t=>I(e=>e.includes(t)?e.filter(n=>n!==t):[...e,t]),z=t=>D(e=>e.includes(t)?e.filter(n=>n!==t):[...e,t]),X=!v||!S||!w,B=(t,e)=>s.jsxs(ae,{to:t.href,style:e,className:"group flex flex-col card-festival overflow-hidden hover:bg-card-hover transition-colors",children:[s.jsx("div",{className:"flex-1 min-h-[150px] overflow-hidden bg-muted",children:s.jsx(ne,{src:t.image,alt:"",className:"h-full w-full object-cover transition-transform duration-500 group-hover:scale-105",renderWidth:640,responsiveWidths:[320,480,640],sizes:"(max-width: 768px) 240px, 20vw"})}),s.jsxs("div",{className:"p-3 shrink-0",children:[s.jsxs("div",{className:"flex items-center gap-2 mb-1 flex-wrap",children:[s.jsx("span",{className:"tag",children:t.label}),t.startTime&&s.jsxs("span",{className:"text-[10px] tabular-nums text-muted-foreground",children:[t.startTime.slice(0,5),t.endTime?` – ${t.endTime.slice(0,5)}`:""]})]}),s.jsx("h3",{className:"text-sm font-semibold leading-tight line-clamp-2",style:{fontFamily:"'Suisse Int\\'l', sans-serif",textTransform:"none",letterSpacing:"0"},children:t.title}),t.subtitle&&s.jsx("p",{className:"text-xs text-muted-foreground line-clamp-2 mt-1",children:t.subtitle}),t.venue&&s.jsx("p",{className:"text-[11px] text-muted-foreground mt-1.5 uppercase tracking-wider",children:t.venue})]})]},t.id);return s.jsxs("div",{className:"min-h-screen bg-background",children:[s.jsx(Z,{title:"Festival Schedule — KIKK 202
16 (22-25 October, Namur)",description:"Full schedule of KIKK Festival 2026: talks, art trail, workshops and parties across Namur from 22 to 25 October.",path:"/schedule"}),s.jsx(ee,{}),s.jsx("main",{className:"pt-32 pb-16",children:s.jsxs("div",{className:"container mx-auto px-4",children:[s.jsxs("div",{className:"mb-20 pb-12 border-b border-border",children:[s.jsx("span",{className:"section-label",children:r?"Programmation":"Schedule"}),s.jsx("h1",{className:"text-6xl md:text-[8rem] lg:text-[12rem] font-bold tracking-[-0.06em] leading-[0.8] mb-8",children:r?"Programme":"Program"}),s.jsx("p",{className:"text-muted-foreground text-sm max-w-md",children:r?"Découvrez l'ensemble de la programmation du festival, conférences et soirées.":"Explore the complete festival program with talks and parties."})]}),X?s.jsx("div",{className:"flex items-center justify-center py-12",children:s.jsx(te,{className:"w-8 h-8 animate-spin text-muted-foreground"})}):s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"flex flex-wrap gap-2 mb-8",children:T.map(t=>s.jsxs("button",{onClick:()=>H(t.date),className:L("flex flex-col items-center px-5 py-3 border transition-all duration-200 min-w-[72px]",_===t.date?"bg-foreground text-background border-foreground":"border-border hover:border-foreground
1/60"),style:{clipPath:_===t.date?"polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 0 100%)":"none"},children:[s.jsx("span",{className:"text-xs uppercase tracking-wider opacity-70",children:r?t.dayLabel:t.dayLabelEn}),s.jsx("span",{className:"text-2xl font-bold leading-none mt-1",children:t.dateNum})]},t.date))}),s.jsxs("div",{className:"flex flex-wrap items-center gap-3 mb-4 pb-6 border-b border-border",children:[s.jsx("span",{className:"text-xs uppercase tracking-wider text-muted-foreground mr-1",children:"Type"}),["talk","panel","party"].map(t=>s.jsx("button",{onClick:()=>z(t),className:L("filter-btn",g.includes(t)&&"filter-btn-active"),children:t==="talk"?r?"Conférences":"Talks":t==="panel"?"Panels":r?"Soirées":"Parties"},t)),K.length>0&&s.jsxs(s.Fragment,{children:[s.jsx("span",{className:"w-px h-6 bg-border mx-2 hidden sm:block"}),s.jsx("span",{className:"text-xs uppercase tracking-wider text-muted-foreground mr-1",children:r?"Lieu":"Venue"}),K.map(t=>s.jsx("button",{onClick:()=>W(t.key),className:L("filter-btn",d.includes(t.key)&&"filter-btn-active"),children:t.label},t.key)),(d.length>0||g.length>0)&&s.jsxs("button",{onClick:()=>{I([]),D([])},className:"ml-2 flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors",children:[s.jsx(se,{className:"w-3 h-3"}),r?"Effacer":"Clear"]})]})]}),s.jsx("p",{className:"text-xs text-muted-foreground italic mb-8",children:r?"Les horaires sont susceptibles d'évoluer. D'autres artistes et sessions seront annoncés prochainement.":"Schedule subject to change. More artists and sessions will be announced soon."}),c.length===0?s.jsx("div",{className:"text-center py-16 text-muted-foreground",children:r?"Aucun événement trouvé":"No events found"}):s.jsx("div",{className:"overflow-x-auto -mx-4 px-4 pb-4",children:s.jsx("div",{className:"min-w-[800px] w-full",children:l&&s.jsxs("div",{className:"flex",style:{height:V+R,paddingTop:R},children:[s.jsx("div",{className:"w-20 md:w-24 shrink-0 relative",children:F.map(t=>s.jsx("span",{className:"absolute right-2 -translate-y-1/2 z-10 bg-background px-1 text-xs md:text-sm tabular-nums text-foreground/40",style:{top:o(t)-o(l.start)},children:ue(t)},t))}),U.map(t=>s.jsxs("div",{className:"min-w-[220px] flex-1 relative",children:[F.map(e=>s.jsx("div",{className:"absolute left-0 right-0 border-t border-border/50",style:{to
1p:o(e)-o(l.start)}},e)),j.filter(e=>(e.venue||(r?"Autre":"Other"))===t).map(e=>{const n=u(e.startTime),m=u(e.endTime)??n+P,y=Math.max(o(m)-o(n),P*f);return B(e,{position:"absolute",top:o(n)-o(l.start),left:6,right:6,height:y})})]},t))]})})}),O.length>0&&s.jsxs("div",{className:"mt-10 pt-8 border-t border-border",children:[s.jsx("span",{className:"text-xs uppercase tracking-wider text-muted-foreground block mb-4",children:r?"Horaire à confirmer":"Time to be confirmed"}),s.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3",children:O.map(t=>B(t))})]}),s.jsxs("div",{className:"mt-8 text-center text-sm text-muted-foreground",children:[c.length," ",r?"événement(s)":"event(s)",d.length>0&&s.jsxs("span",{children:[" / ",h.length," ",r?"au total":"total"]})]})]})]})}),s.jsx(re,{})]})};export{fe as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.