1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ConfettiRive.client-DYPPMS7a.js","assets/index-osxy98Py.js","assets/index-DSjMPKiI.css","assets/rive-runtime.client-CjlQOAG_.js","assets/index-Ccc_oOZr.js","assets/HeroButtonRive.client-BLOgwu8G.js","assets/MedalsRive.client-CL2azR6B.js"])))=>i.map(i=>d[i]); 2import{r as i,g as b,j as e,J as f,K as v,_ as g,Q as j,S as y,T as w,U as k,V as R,W as N,Y as C,Z as S,$ as E,a0 as M,a1 as T}from"./index-osxy98Py.js";import{P as _,S as m}from"./PageHero-ukZ_9k7F.js";import"./Reveal-vgiOBWqD.js";const A=i.lazy(()=>g(()=>import("./ConfettiRive.client-DYPPMS7a.js"),__vite__mapDeps([0,1,2,3,4]))),H=i.forwardRef(function({className:t,overlay:r=!0,playOnMount:n=!1},a){const l=b(),d=i.useRef(null);i.useImperativeHandle(a,()=>({play:()=>d.current?.play()}),[]);const o=e.jsx(v,{className:t,overlay:r});return l?o:e.jsx(f,{fallback:o,children:e.jsx(i.Suspense,{fallback:o,children:e.jsx(A,{ref:d,className:t,overlay:r,playOnMount:n})})})}),O=i.lazy(()=>g(()=>import("./HeroButtonRive.client-BLOgwu8G.js"),__vite__mapDeps([5,1,2,3,4]))),B="relative z-[60] inline-flex min-h-11 items-center justify-center rounded-full bg-pink px-8 py-4 font-display text-base font-extrabold text-white no-underline shadow-lg shadow-pink/30 hover:bg-pink/90 focus-visible:outline-hidden focus-visible:ring-3 focus-visible:ring-pink focus-visible:ring-offset-2 focus-visible:ring-offset-background aria-disabled:pointer-events-none aria-disabled:opacity-60";function G({label:s,ariaLabel:t,onClick:r,href:n,width:a,height:l,className:d,disabled:o,lang:x}){const c=s??t??(x==="nl"?"Probeer nu gratis!":"Try for Free"),h=B+" "+(d??""),u={minWidth:a,minHeight:l};return n&&!o?e.jsx("a",{href:n,"aria-label":t??c,onClick:r,className:h,style:u,children:c}):e.jsx("button",{type:"button",disabled:o,onClick:r,"aria-label":t??c,className:h,style:u,children:c})}const I=260/607;function P(s){return Math.round(s*I)}function L({label:s,ariaLabel:t,onClick:r,href:n,width:a=280,height:l,className:d,disabled:o,lang:x}){const c=b(),h=l??P(a);if(c)return e.jsx(G,{label:s,ariaLabel:t,onClick:r,href:n,width:a,height:h,className:d,disabled:o,lang:x});const u=e.jsx(y,{label:s??t??"Start",ariaLabel:t,onClick:r,width:a,height:h,className:d,disabled:o});return e.jsx(f,{fallback:u,children:e.jsx(j,{fallback:u,children:e.jsx(i.Suspense,{fallback:u,children:e.jsx(O,{label:s,ariaLabel:t,onClick:r,width:a,height:l,className:d,disabled:o,lang:x})})})})}const F=i.lazy(()=>g(()=>import("./MedalsRive.client-CL2azR6B.js"),__vite__mapDeps([6,1,2,3,4])));function z({tier:s="gold",size:t=200,className:r,replayKey:n}){const a=b(),l=e.jsx(w,{tier:s,size:t,className:r});return a?l:e.jsx(f,{fallback:l,children:e.jsx(j,{fallback:l,children:e.jsx(i.Suspense,{fallback:l,children:e.jsx(F,{tier:s,size:t,className:r,replayKey:n})})})})}const V=[{id:"professor",label:"Professor BB"},{id:"leonardo",label:"Leonardo da Vinci"},{id:"marie",label:"Marie Curie"},{id:"einstein",label:"Albert Einstein"},{id:"newton",label:"Isaac Newton"},{id:"sally",label:"Sally"},{id:"joanOfArc",label:"Joan of Arc"},{id:"steveIrwin",label:"Steve Irwin"},{id:"stephenHawking",label:"Stephen Hawking"},{id:"queenElizabeth",label:"Queen Elizabeth"},{id:"rembrandt",label:"Rembrandt"},{id:"shakespeare",label:"Shakespeare"},{id:"willemVanOranje",label:"Willem van Oranje"},{id:"yuriGagarin",label:"Yuri Gagarin"},{id:"franklinRoosevelt",label:"Franklin Roosevelt"},{id:"georgeWashington",label:"George Washington"},{id:"gandhi",label:"Mahatma Gandhi"},{id:"marcusAurelius",label:"Marcus Aurelius"},{id:"neilArmstrong",label:"Neil Armstrong"},{id:"alexanderTheGreat",label:"Alexander the Great"},{id:"tokugawa",label:"Tokugawa Ieyasu"},{id:"cleopatra",label:"Cleopatra"},{id:"napoleon",label:"Napoleon"},{id:"galileo",label:"Galileo Galilei"},{id:"greek",label:"Greek philosopher"}];function W({mentor:s,label:t}){const r=i.useRef(null),[n,a]=i.useState("idle");return e.jsxs("div",{className:"rounded-3xl border border-border bg-card p-6 shadow-sm",children:[e.jsx("div",{className:"flex items-center justify-between",children:e.jsx("span",{className:"font-display text-lg font-extrabold",children:t})}),e.jsx("div",{className:"mt-4 grid place-items-center rounded-2xl bg-muted/40 p-6",children:e.jsx(S,{mentor:s,sizePreset:"lg",initialState:n,ref:r})})]})}function p({title:s,description:t,children:r}){return e.jsxs("div",{className:"rounded-3xl border border-border bg-card p-6 shadow-sm",children:[e.jsx("h3",{className:"h3-display mt-1",children:s}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:t}),e.jsx("div",{className:"mt-4 grid place-items-center rounded-2xl bg-muted/40 p-6",children:e.jsx("div",{className:"w-full max-w-xs",children:r})})]})}function D(){const s=i.useRef(null);return e.jsxs("div",{className:"rounded-3xl border border-border bg-card p-6 shadow-sm",children:[e.jsx("h3",{className:"h3-display mt-1",children:"Confetti burst"}),e.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:["Fire-and-forget overlay. Call ",e.jsx("code",{children:"ref.current.play()"})," on success events."]}),e.jsx("div",{className:"mt-4",children:e.jsx("button",{type:"button",onClick:()=>s.current?.play(),className:"rounded-2xl border-b-4 border-pink/70 bg-pink px-5 py-3 font-display font-extrabold text-white shadow-md transition active:translate-y-0.5 active:border-b-2",children:"Trigger confetti"})}),e.jsx(H,{ref:s})]})}function U(){const[s,t]=i.useState("gold"),[r,n]=i.useState(0);return e.jsxs("div",{className:"rounded-3xl border border-border bg-card p-6 shadow-sm",children:[e.jsx("h3",{className:"h3-display mt-1",children:"Medals"}),e.jsx("div",{className:"mt-4 grid place-items-center rounded-2xl bg-muted/40 p-6",children:e.jsx(z,{tier:s,replayKey:r,size:220})})]})}function J(){const[s,t]=i.useState(0);return e.jsxs("div",{className:"rounded-3xl border border-border bg-card p-6 shadow-sm",children:[e.jsx("h3",{className:"h3-display mt-1",children:"Hero button"}),e.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Hover, press and click states wired into Rive."}),e.jsx("div",{className:"mt-4 grid place-items-center rounded-2xl bg-muted/40 p-6",children:e.jsx(L,{label:"Start now",onClick:()=>t(r=>r+1),width:280,height:96})}),e.jsxs("p",{className:"mt-3 text-center text-xs text-muted-foreground",children:["Clicked ",s," time",s===1?"":"s"]})]})}function K(){const[s,t]=i.useState(!1);return e.jsxs("div",{className:"rounded-3xl border border-border bg-card p-6 shadow-sm",children:[e.jsx("h3",{className:"h3-display mt-1",children:"Bouncing loader"}),e.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:["Three shapes: inline ",e.jsx("code",{children:"LoadingRive"}),", full-width ",e.jsx("code",{children:"LoadingBar"}),", and a fullscreen ",e.jsx("code",{children:"LoadingOverlay"}),". The router shows it at the top of every page during navigation."]}
2),e.jsxs("div",{className:"mt-4 flex flex-col gap-4 rounded-2xl bg-muted/40 p-6",children:[e.jsx(E,{width:200,height:40}),e.jsx(M,{})]}),e.jsx("button",{type:"button",onClick:()=>{t(!0),setTimeout(()=>t(!1),1800)},className:"mt-4 rounded-2xl border-b-4 border-teal/70 bg-teal px-5 py-3 font-display font-extrabold text-white shadow-md transition active:translate-y-0.5 active:border-b-2",children:"Show fullscreen overlay"}),s&&e.jsx(T,{label:"Working on it"})]})}function X(){return e.jsxs(e.Fragment,{children:[e.jsx(_,{index:"11",eyebrow:"Animation system",title:"Rive component library",description:"Drop-in animated blocks for mentors, rewards, auth screens and hero CTAs. Every component shares the same prop surface so they're easy to slot into any page."}),e.jsx(m,{index:"01",eyebrow:"Mentors",title:"Twenty-five characters, one contract",description:"Every mentor shares the IdleTalkingLogic state machine. Tier A characters expose all seven states; tier B characters (Einstein, Cleopatra, Napoleon, Galileo, Greek) ship talk + idle only and silently no-op on unsupported triggers.",children:e.jsx("div",{className:"grid gap-6 sm:grid-cols-2 lg:grid-cols-3",children:V.map(s=>e.jsx(W,{mentor:s.id,label:s.label},s.id))})}),e.jsx(m,{variant:"muted",index:"02",eyebrow:"Auth & status scenes",title:"Looping illustrations for every flow",description:"Drop-in scene components for verify-email, password, error and expired-link screens. Each plays the default timeline shipped in the .riv file.",children:e.jsxs("div",{className:"grid gap-6 sm:grid-cols-2",children:[e.jsx(p,{title:"Check your email",description:"Use on verify-email screens.",children:e.jsx(k,{})}),e.jsx(p,{title:"Create password",description:"Use on signup / reset flows.",children:e.jsx(R,{})}),e.jsx(p,{title:"Error page",description:"404 / 500 illustration.",children:e.jsx(N,{})}),e.jsx(p,{title:"Expired link",description:"Magic-link / token expiry.",children:e.jsx(C,{})})]})}),e.jsx(m,{index:"03",eyebrow:"Interactive blocks",title:"Tactile rewards & calls to action",description:"Hero CTA, confetti overlay and medal unlocks - each one auto-detects the state-machine inputs it needs and degrades gracefully if a file ships without them.",children:e.jsxs("div",{className:"grid gap-6 sm:grid-cols-2",children:[e.jsx(J,{}),e.jsx(D,{}),e.jsx(U,{}),e.jsx(K,{})]})})]})}export{X as component};
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.