svg-scroll-draw 2.26.0 → 2.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist/angular/index.cjs +2 -2
- package/dist/angular/index.mjs +1 -1
- package/dist/astro/index.cjs +2 -2
- package/dist/astro/index.mjs +1 -1
- package/dist/cdn/svg-scroll-draw.dev.global.js +2 -3
- package/dist/cdn/svg-scroll-draw.global.js +2 -2
- package/dist/chunk-IJPLLT7E.mjs +1 -0
- package/dist/chunk-OGFXZCKC.mjs +1 -0
- package/dist/index.cjs +3 -3
- package/dist/index.mjs +1 -1
- package/dist/nuxt/index.cjs +2 -2
- package/dist/nuxt/index.mjs +1 -1
- package/dist/react/index.cjs +2 -2
- package/dist/react/index.mjs +1 -1
- package/dist/solid/index.cjs +2 -2
- package/dist/solid/index.mjs +1 -1
- package/dist/svelte/index.cjs +2 -2
- package/dist/svelte/index.mjs +1 -1
- package/dist/vue/index.cjs +2 -2
- package/dist/vue/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-5SJE7725.mjs +0 -1
- package/dist/chunk-Z72TVDHY.mjs +0 -1
package/dist/nuxt/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var vue=require('vue');var Xe=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function
|
|
1
|
+
'use strict';var vue=require('vue');var Xe=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function A(e,...t){Xe&&console.warn(`[svg-scroll-draw] ${e}`,...t);}function Vr({tension:e=2.5,friction:t=2.2}={}){return r=>1-Math.cos(r*Math.PI*e)*Math.pow(1-r,t)}function _r({bounces:e=3,decay:t=.5}={}){let r=Math.max(1,Math.round(e)),n=Math.max(.01,Math.min(.99,t)),o=Math.sqrt(n),s=0,i=[];for(let g=0;g<r;g++){let w=Math.pow(o,g);i.push(w),s+=w;}let c=[0],m=0;for(let g=0;g<r;g++)m+=i[g]/s,c.push(m);return g=>{if(g<=0)return 0;if(g>=1)return 1;for(let w=0;w<r;w++)if(g<=c[w+1]){let P=(g-c[w])/(c[w+1]-c[w]);if(w===0)return P*(2-P);let x=1-Math.pow(n,w);return x+(1-x)*(2*P-1)*(2*P-1)}return 1}}function zr({amplitude:e=1,period:t=.4}={}){let r=Math.max(1,e),n=Math.max(.1,t),o=r<=1?n/4:n/(2*Math.PI)*Math.asin(1/r);return s=>s<=0?0:s>=1?1:r*Math.pow(2,-10*s)*Math.sin((s-o)*(2*Math.PI)/n)+1}var Je={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:Vr(),bounce:_r(),elastic:zr()};function Wr(e,t,r,n){let o=(s,i,c)=>((1+3*s-3*i)*c+3*i-6*s)*c*c+3*s*c;return s=>{if(s<=0||s>=1)return +(s>0);let i=s;for(let c=0;c<8;c++)i-=(o(e,r,i)-s)/((3*(1+3*e-3*r)*i+6*r-12*e)*i+3*e);if(!(i>=0&&i<=1&&Math.abs(o(e,r,i)-s)<1e-9))for(let c=0,m=0,g=1;c<30;c++)i=(m+g)/2,o(e,r,i)<s?m=i:g=i;return o(t,n,i)}}function Mt(e){let t=/^cubic-bezier\((.*)\)$/.exec(e==="ease"?"cubic-bezier(.25,.1,.25,1)":e.trim()),r=t?t[1].split(",").map(parseFloat):[];if(r.length===4&&r.every(Number.isFinite)&&r[0]*(1-r[0])>=0&&r[2]*(1-r[2])>=0)return [Wr(r[0],r[1],r[2],r[3]),`cubic-bezier(${r})`]}var Zt=new Set;function De(e,t="linear"){if(typeof e=="function")return e;if(e==null)return Je[t];if({}.hasOwnProperty.call(Je,e))return Je[e];let r=Mt(String(e));return r?r[0]:(!Zt.has(e)&&Zt.add(e)&&A(`Unknown easing ${JSON.stringify(e)}: use a name, cubic-bezier() or a function.`),Je[t])}function it(e,t,r){return Math.min(r,Math.max(t,e))}function ae(e="top bottom"){let t=e.trim();if(/^\d+(\.\d+)?%$/.test(t))return {element:"top",viewport:t};let[r="top",n="bottom"]=t.split(/\s+/).filter(Boolean);return {element:r,viewport:n}}var rr=(e,t)=>e==="top"?0:e==="center"?.5:e==="bottom"?1:t;function er(e,t,r,n){return e+r+t*rr(n,0)}function tr(e,t){return t*(/^\d+(\.\d+)?%$/.test(e)?parseFloat(e)/100:rr(e,1))}function Q(e,t,r,n){return r===t?0:it((e-t)/(r-t)*n,0,1)}function Le(e,t,r,n,o){let s=er(e.top,e.height,t,n.element)-tr(n.viewport,r),i=er(e.top,e.height,t,o.element)-tr(o.viewport,r);return {tStart:s,tEnd:i}}function mt(e,t,r){let n=e.getBoundingClientRect(),o=r==="x"?n.width:n.height;return t?{top:r==="x"?n.left-t.getBoundingClientRect().left-t.clientLeft+t.scrollLeft:n.top-t.getBoundingClientRect().top-t.clientTop+t.scrollTop,height:o,scroll:0}:{top:r==="x"?n.left:n.top,height:o,scroll:r==="x"?window.scrollX:window.scrollY}}function pt(e){let t=parseFloat(e.getAttribute("pathLength")??"");if(t>0)return t;let r=e.tagName.toLowerCase();if(r==="rect"){let n=parseFloat(e.getAttribute("width")??"0"),o=parseFloat(e.getAttribute("height")??"0");return 2*(n+o)}if(r==="circle"){let n=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*n}return e.getTotalLength()}function dt(e){return `${e} ${e*2}`}function nr(e){let t=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(t)return [parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)];let r=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(r)return [parseInt(r[1],16),parseInt(r[2],16),parseInt(r[3],16)];let n=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return n?[parseInt(n[1]),parseInt(n[2]),parseInt(n[3])]:null}function gt(e,t,r){let n=nr(e),o=nr(t);return !n||!o?e:`rgb(${Math.round(n[0]+(o[0]-n[0])*r)},${Math.round(n[1]+(o[1]-n[1])*r)},${Math.round(n[2]+(o[2]-n[2])*r)})`}var or={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var Br="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Gr="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",sr=33;function jr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function qr(e){let t=[];for(let r=0;r<sr;r++){let n=r/(sr-1);t.push(String(Math.round(e(n)*1e5)/1e5));}return `linear(${t.join(",")})`}function yt(e){switch(e){case "linear":return "linear";case "ease-in":return Br;case "ease-out":return Gr;case "ease-in-out":return jr()?qr(Je["ease-in-out"]):null;default:return Mt(e)?.[1]??null}}var ir=Symbol.for("svg-scroll-draw.registry");function ar(){let e=globalThis;return e[ir]||(e[ir]=new Map)}function Pe(e,t){ar().set(e,t);}function ke(e){ar().delete(e);}function Ze(e){if(typeof window>"u"||typeof window.matchMedia!="function")return ()=>{};let t=window.matchMedia("(prefers-reduced-motion: reduce)"),r=o=>e(!!o.matches);if(typeof t.addEventListener=="function")return t.addEventListener("change",r),()=>t.removeEventListener("change",r);let n=t;return n.addListener?.(r),()=>n.removeListener?.(r)}function qe(e,t){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t(e,true);let r=t(e,false),n=Ze(s=>{if(!s)return;n();let i=(r.getProgress?.()??0)>=1;r.destroy(),r=t(i?{...e,onComplete:void 0}:e,true);}),o={};for(let s of Object.keys(r))o[s]=(...i)=>r[s]?.(...i);return o.destroy=()=>{n(),r.destroy();},o}var at,ht=new Set,bt=new WeakMap,lt=new Map,lr=e=>{let t=e.getBoundingClientRect();return t.width+" "+t.height};function Yr(e){let t=new Set;for(let r of e)for(;r&&r!==document.body;r=r.parentElement)for(let n=r;n;n=n.previousElementSibling)t.add(n);return t}function cr(e,t){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let r=()=>t();at??(at=new ResizeObserver(o=>{let s=false;for(let{target:i}of o)bt.get(i)!==lr(i)&&(s=true),bt.set(i,"");s&&ht.forEach(i=>i());})),ht.add(r);let n=Yr(e);return [document.body,document.documentElement].forEach(o=>o&&n.add(o)),n.forEach(o=>{bt.has(o)||bt.set(o,lr(o)),lt.set(o,(lt.get(o)??0)+1),at.observe(o);}),()=>{ht.delete(r)&&(n.forEach(o=>{let s=(lt.get(o)??1)-1;if(s)return void lt.set(o,s);lt.delete(o),at?.unobserve(o);}),ht.size||(at?.disconnect(),at=void 0));}}function Ie(e,t,r,n,o){let s,i=NaN,c,m,g=()=>{s=0,n(),!c&&!s&&(i=r())>0&&i<1&&(s=requestAnimationFrame(g));},w=()=>{!s&&!c&&r()!==i&&(s=requestAnimationFrame(g));},P=j=>{c=j,cancelAnimationFrame(s),s=i=NaN,w();},x=()=>{clearTimeout(m),o(),w();},k=()=>{clearTimeout(m),m=setTimeout(x,150);},z=cr(t,k),T=j=>{e[j]("scroll",w,{passive:true}),window[j]("resize",k),window[j]("orientationchange",k);};return T("addEventListener"),w(),{hold:P,remeasure:x,off(){P(true),T("removeEventListener"),z(),clearTimeout(m);}}}var Ur=0;function Qr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function ur(e,t){let r="";try{r=getComputedStyle(e).getPropertyValue(t).trim();}catch{}return r||(e.getAttribute(t)??"").trim()}var fr=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function Kr(e){if(!Xe)return;let t=ur(e,"stroke");if(!t||t==="none"){A("Element has no stroke \u2014 path will not be visible.",e);return}let r=(e.getAttribute("fill")??"").trim();r&&!fr.has(r)&&!fr.has(ur(e,"fill"))&&A("Element has a fill \u2014 it may obscure the stroke animation.",e);}function Xr(e,t,r){let n=document.createElement("div");n.setAttribute("data-svg-scroll-draw-debug",""),n.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function o(){let s=r==="x"?window.scrollX:window.scrollY,i=e-s,c=t-s,m=r==="x";n.innerHTML=`
|
|
2
2
|
<div style="position:absolute;${m?`left:${i}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${i}px;left:0;right:0;border-top:2px dashed #22c55e;`}padding:2px 6px;color:#22c55e;background:rgba(0,0,0,.6)">\u25B6 start</div>
|
|
3
|
-
<div style="position:absolute;${m?`left:${c}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${c}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(n),window.addEventListener("scroll",o,{passive:true}),o(),{el:n,destroy(){window.removeEventListener("scroll",o),n.remove();}}}var mr=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,pr=/[MmLlHhVvCcSsQqTtAaZz]/g;function Kr(e,r,t){if(!Xe)return;let n=(e.match(pr)??[]).join("").toUpperCase(),o=(r.match(pr)??[]).join("").toUpperCase(),s=(e.match(mr)??[]).length,i=(r.match(mr)??[]).length;if(n!==o){k(`morphTo: command sequence differs (${n||"\u2205"} \u2192 ${o||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,t);return}s!==i&&k(`morphTo: coordinate count differs (${s} \u2192 ${i}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,t);}function Xr(e,r,t){let n=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),o=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let i=parseFloat(s),c=n[o++]??i;return String(+(i+(c-i)*t).toFixed(4))})}function Lt(e,r={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:qe(r,(t,n)=>Jr(e,t,n))}function Jr(e,r,t){let{preset:n,...o}=r,s=n?{...or[n],...o}:o,{selector:i="path, polyline, line, polygon, rect, circle",speed:c=1,fade:m=false,easing:g="linear",trigger:w={},stagger:A=0,direction:E="forward",once:B=false,debug:Q=false,axis:v="y",scrollContainer:z,autoReverse:Z=false,delay:P=0,strokeColor:O,strokeWidth:L,fillOpacity:R,waypoints:y,velocityScale:$=false,threshold:W=0,rootMargin:se="0px",repeat:K=0,repeatDelay:V=0,morphTo:D,clip:T,autoplay:X=false,duration:S=1e3,native:C=true,onProgress:ye,onStart:I,onComplete:j,onEnter:ue,onLeave:Se,onEnterBack:fe,onLeaveBack:ie}=s,x=T===true?"left":typeof T=="string"?T:false,M=De(g),re=ae(w.start||"top bottom"),Re=ae(w.end||"bottom top"),J=typeof z=="string"?document.querySelector(z):z??null,$e=Array.isArray(O)?O[0]:null,Ee=Array.isArray(O)?O[1]:typeof O=="string"?O:null,he=Array.isArray(L)?L[0]:null,ze=Array.isArray(L)?L[1]:typeof L=="number"?L:null,Fe=Array.isArray(R)?R[0]:null,Te=Array.isArray(R)?R[1]:typeof R=="number"?R:null;function Ce(a){let f=a*100;switch(x){case "right":return `inset(0 0 0 ${100-f}%)`;case "top":return `inset(0 0 ${100-f}% 0)`;case "bottom":return `inset(${100-f}% 0 0 0)`;case "center":return `circle(${a*150}% at 50% 50%)`;default:return `inset(0 ${100-f}% 0 0)`}}let l=x?[]:Array.from(e.querySelectorAll(i)),d=[],ne=[],F=0,_=0,G=A,q=0,_e=0,oe=false,He=false,be=0,Qe=-1,Ye=[],Ue=-1,me=false,u=0,p=0,b,le=false,we=null;function We(){we?.destroy(),we=null;}let Oe=new Set,Be=NaN,Ge=true,ut=-1,Wt=performance.now(),Ke=NaN;function ft(){return J?v==="x"?J.scrollLeft:J.scrollTop:v==="x"?window.scrollX:window.scrollY}function Bt(){return J?v==="x"?J.clientWidth:J.clientHeight:v==="x"?window.innerWidth:window.innerHeight}function Gt(){let a=mt(e,J,v);return Le(a,a.scroll,Bt(),re,Re)}function Pr(){let a=_-F,f=l.length-1,h=J??document.documentElement,N=v==="x"?"Width":"Height";if(G=A,A>0&&f>0&&a>0){let pe=h[`scroll${N}`]-h[`client${N}`]-1-F-a/c;pe>=0&&(G=Math.min(A,pe/(f*a)));}let ce=Math.max(0,f)*G*a,xe=a/Math.min(c,1);q=F+Math.min(0,ce,xe,ce+xe),_e=F+Math.max(0,ce,xe,ce+xe);}function jt(){(({tStart:F,tEnd:_}=Gt())),Pr(),Q&&Xe&&(We(),we=Qr(F,_,v));}function St(a,f=Gt){Pe(e,{type:"draw",getProgress:()=>a.getProgress(),getTrigger:f});let h=a.destroy;return a.destroy=()=>{h.call(a),ke(e);},a}function qt(a,f){return B&&!Z?Math.max(Qe,M(Ye[a]=Math.max(Ye[a]??0,f))):M(f)}function kr(a,f){if(e.style.setProperty("--scroll-draw-progress",String(a)),x){let h=f==="reverse"?1-a:a;e.style.clipPath=Ce(h);return}l.forEach((h,N)=>Et(h,N,a,f));}function Et(a,f,h,N){a.style.strokeDashoffset=N==="reverse"?`${d[f]*h}`:`${d[f]*(1-h)}`,m&&(a.style.opacity=N==="reverse"?`${1-h}`:`${h}`),$e&&Ee?a.style.stroke=gt($e,Ee,h):Ee&&(a.style.stroke=Ee),he!==null&&ze!==null?a.style.strokeWidth=`${he+(ze-he)*h}`:ze!==null&&(a.style.strokeWidth=`${ze}`),Fe!==null&&Te!==null?a.style.fillOpacity=`${Fe+(Te-Fe)*h}`:Te!==null&&(a.style.fillOpacity=`${Te}`),D&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",Xr(ne[f],D,h));}function Tt(){if(e.style.setProperty("--scroll-draw-progress","0"),x){e.style.clipPath=Ce(E==="reverse"?1:0);return}l.forEach((a,f)=>{a.style.strokeDasharray=dt(d[f]),a.style.strokeDashoffset=E==="reverse"?"0":`${d[f]}`,m?a.style.opacity=E==="reverse"?"1":"0":a.style.opacity="",$e&&(a.style.stroke=$e),he!==null&&(a.style.strokeWidth=`${he}`),Fe!==null&&(a.style.fillOpacity=`${Fe}`),D&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",ne[f]);});}function nt(a,f){let h=a.getAttribute("d"),N=pt(a);if(D&&ne[f]){a.setAttribute("d",D);let ce=pt(a);a.setAttribute("d",ne[f]),N=Math.max(pt(a),ce),a.setAttribute("d",h);}d[f]=N,a.style.strokeDasharray=dt(N);}if(l.forEach((a,f)=>{Ur(a);let h=a.tagName.toLowerCase()==="path";h?ne.push(a.getAttribute("d")??""):ne.push(""),nt(a,f);let N=d[f];D&&(h?Kr(ne[ne.length-1],D,a):k(`morphTo only applies to <path> elements \u2014 ignored on <${a.tagName}>.`,a)),t?(a.style.strokeDashoffset=E==="reverse"?`${N}`:"0",m&&(a.style.opacity="1"),Ee&&(a.style.stroke=Ee),ze!==null&&(a.style.strokeWidth=`${ze}`),Te!==null&&(a.style.fillOpacity=`${Te}`),D&&a.tagName.toLowerCase()==="path"&&a.setAttribute("d",D)):(a.style.strokeDashoffset=E==="reverse"?"0":`${N}`,m?a.style.opacity=E==="reverse"?"1":"0":a.style.opacity="",$e&&(a.style.stroke=$e),he!==null&&(a.style.strokeWidth=`${he}`),Fe!==null&&(a.style.fillOpacity=`${Fe}`));}),t)return x&&(e.style.clipPath=Ce(1)),j?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};x&&(e.style.clipPath=Ce(E==="reverse"?1:0));let Yt=typeof g=="string"?yt(g):null;function Rr(){return !(C===false||X||Q&&Xe||!Yr()||!l.length||!Yt||x||v!=="y"||J||c!==1||A!==0||B||Z||$!==false||D||y||K||P>0||ye||I||j||ue||Se||fe||ie||O!=null||L!=null||R!=null||(w.start||"top bottom").trim()!=="top bottom"||(w.end||"bottom top").trim()!=="bottom top")}function $r(){let a=++qr,f=`svg-scroll-draw-${a}`,h=`svg-scroll-draw-host-${a}`,N=`--svg-scroll-draw-${a}`,ce=E==="reverse"?"0":"var(--ssd-len)",xe=E==="reverse"?"var(--ssd-len)":"0",pe=`stroke-dashoffset:${ce};`,ee=`stroke-dashoffset:${xe};`;m&&(pe+=`opacity:${E==="reverse"?1:0};`,ee+=`opacity:${E==="reverse"?0:1};`);let te=document.createElement("style");te.setAttribute("data-svg-scroll-draw",""),te.textContent=`@keyframes ${f}{from{${pe}}to{${ee}}}.${h}{view-timeline-name:${N};view-timeline-axis:block;}.${f}{animation-name:${f};animation-duration:auto;animation-timing-function:${Yt};animation-fill-mode:both;animation-timeline:${N};animation-range:cover 0% cover 100%;}`,document.head.appendChild(te),e.classList.add(h);function ve(H,Y){H.style.setProperty("--ssd-len",String(d[Y])),H.style.strokeDasharray=dt(d[Y]),H.style.strokeDashoffset="",H.style.opacity="",H.style.animationPlayState="",H.classList.add(f);}l.forEach(ve);let de=false,Me=-1;function Ae(){if(Me>=0)return Me;let H=e.getBoundingClientRect(),{tStart:Y,tEnd:ge}=Le({top:H.top,height:H.height},ft(),Bt(),re,Re);return M(U(ft(),Y,ge,c))}return {destroy(){e.classList.remove(h),l.forEach(H=>{H.classList.remove(f),H.style.removeProperty("--ssd-len"),H.style.animationPlayState="";}),te.remove();},replay(){de=false,Me=-1,l.forEach(ve);},pause(){de=true,l.forEach(H=>{H.style.animationPlayState="paused";});},resume(){de&&(de=false,l.forEach(H=>{H.style.animationPlayState="running";}));},seek(H){let Y=Math.min(1,Math.max(0,H));Me=Y,de=true,l.forEach((ge,je)=>{ge.classList.remove(f),ge.style.strokeDashoffset=E==="reverse"?`${d[je]*Y}`:`${d[je]*(1-Y)}`,m&&(ge.style.opacity=E==="reverse"?`${1-Y}`:`${Y}`);});},getProgress(){return Ae()},refresh(){l.forEach((H,Y)=>{nt(H,Y),H.style.setProperty("--ssd-len",String(d[Y]));});}}}if(Rr())return St($r());function Fr(){let a=Math.max(1,S),f=x?a:a*(1+Math.max(0,l.length-1)*A),h=0,N=0,ce=false;function xe(Me){let Ae=true,H=Math.min(1,Math.max(0,Me/f));if(x){let Y=Math.min(1,Math.max(0,Me/a)),ge=M(Y);u=ge,e.style.setProperty("--scroll-draw-progress",String(ge)),e.style.clipPath=Ce(E==="reverse"?1-ge:ge),ye?.(ge),Y<1&&(Ae=false);}else {l.forEach((ge,je)=>{let Dr=je*A*a,Jt=Math.min(1,Math.max(0,(Me-Dr)/a));Et(ge,je,M(Jt),E),Jt<1&&(Ae=false);});let Y=M(H);u=Y,ye?.(Y),e.style.setProperty("--scroll-draw-progress",String(Y));}if(y){let Y=M(H);for(let ge in y){let je=parseFloat(ge);Y>=je&&!Oe.has(je)&&(Oe.add(je),y[ge]?.());}}return Ae}function pe(Me){if(me)return;let Ae=Me-h;He||(He=true,I?.());let H=xe(Ae);if(H&&!oe){oe=true,xe(f),j?.(),p<(K==="infinite"?1/0:K??0)&&(p++,b=setTimeout(()=>{h=performance.now(),He=false,oe=false,Oe.clear(),Tt(),be=requestAnimationFrame(pe);},V));return}H||(be=requestAnimationFrame(pe));}function ee(){cancelAnimationFrame(be),clearTimeout(b),h=performance.now(),N=0,me=false,He=false,oe=false,p=0,ce=true,u=0,Oe.clear(),Tt(),be=requestAnimationFrame(pe);}let te=new IntersectionObserver(Me=>{Me.forEach(Ae=>{Ae.isIntersecting&&!(B&&oe)?ee():!Ae.isIntersecting&&!B&&!oe&&(cancelAnimationFrame(be),clearTimeout(b),ce=false);});},{root:J??null,threshold:W,rootMargin:se}),ve;function de(){clearTimeout(ve),ve=setTimeout(()=>l.forEach(nt),150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),P>0?setTimeout(()=>te.observe(e),P):te.observe(e),{destroy(){cancelAnimationFrame(be),clearTimeout(b),te.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),clearTimeout(ve);},replay(){p=0,ee();},pause(){me||!ce||(me=true,N=performance.now()-h,cancelAnimationFrame(be));},resume(){me&&(me=false,ce=true,h=performance.now()-N,be=requestAnimationFrame(pe));},seek(Me){let Ae=Math.min(1,Math.max(0,Me));u=Ae,me=true,N=Ae*f,h=performance.now()-N,cancelAnimationFrame(be),xe(N);},getProgress(){return u},refresh(){clearTimeout(ve),l.forEach(nt);}}}if(X)return St(Fr());jt();let Ut=()=>U(ft(),q,_e,1);function Qt(){oe=true,j?.(),p<(K==="infinite"?1/0:K)&&(p++,b=setTimeout(()=>{le=true;},V));}function Kt(){Qe=-1,Ye=[],He=false,oe=false,le=false,Oe.clear(),Tt(),Ge=true;}function Hr(){let a=performance.now(),f=ft();if(le&&Ut()%1&&Kt(),!Ge&&$===false&&f===Be)return;Ge=false,Be=f;let h=c;if($!==false){let ee=a-Wt,te=ee>0?Math.abs(f-(ut<0?f:ut))/ee:0;h=c*Math.max(.2,1+te*(typeof $=="number"?$:1)*.04);}ut=f,Wt=a;let N=Z?Ue===-1||f>=Ue?"forward":"reverse":E;Ue=f;let ce=_-F,xe=true,pe=ce===0?0:(f-F)/ce;if(isNaN(Ke)||(Ke<=0&&pe>0&&ue?.(),Ke<1&&pe>=1&&Se?.(),Ke>=1&&pe<1&&fe?.(),Ke>0&&pe<=0&&ie?.()),Ke=pe,x){let ee=qt(0,U(f,F,_,h));u=ee,e.style.setProperty("--scroll-draw-progress",String(ee));let te=N==="reverse"?1-ee:ee;e.style.clipPath=Ce(te),ye?.(ee),!He&&U(f,F,_,h)>0&&(He=true,I?.()),ee>=1&&!oe?Qt():ee<1&&!B&&(oe=false);return}if(l.forEach((ee,te)=>{let ve=te*G*ce,de=qt(te,U(f,F+ve,_+ve,h));Et(ee,te,de,N),te===0&&(u=de,ye?.(de),e.style.setProperty("--scroll-draw-progress",String(de))),de<1&&(xe=false);}),y){let ee=M(U(f,F,_,h));for(let te in y){let ve=parseFloat(te);ee>=ve&&!Oe.has(ve)&&(Oe.add(ve),y[te]?.());}}!He&&U(f,F,_,h)>0&&(He=true,I?.()),xe&&!oe?Qt():!xe&&!B&&(oe=false);}let ot=Ie(J??window,[e],Ut,Hr,()=>{let a=d.join();l.forEach(nt),jt(),Ge=true,d.join()!==a&&st();}),xt=P>0;function st(){ot.hold(me||xt);}let Xt;return xt&&(Xt=setTimeout(()=>{xt=false,st();},P)),st(),St({destroy(){clearTimeout(b),clearTimeout(Xt),ot.off(),We();},replay(){Kt(),Ue=-1,ut=-1,p=0,me=false,u=0,clearTimeout(b),st();},pause(){me=true,ot.hold(true);},resume(){me&&(me=false,Ge=true,st());},seek(a){let f=Math.min(1,Math.max(0,a));u=f,Qe=f,Ye=[],me=true,ot.hold(true),kr(f,E),Ge=true;},getProgress(){return u},refresh:ot.remeasure},()=>({tStart:F,tEnd:_}))}var dr=new WeakMap,Zr=0;function ct(e){return JSON.stringify(e,(r,t)=>{if(typeof t=="function")return "\u0192";if(typeof Element<"u"&&t instanceof Element){let n=dr.get(t);return n===void 0&&dr.set(t,n=++Zr),`el#${n}`}return t})}function gr(e,r){let t={...e};for(let n of Object.keys(t))typeof t[n]=="function"&&(t[n]=(...o)=>r()[n]?.(...o));return t}function en(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function yr(e){let r=[],t=/([\w]+)\(([^)]*)\)/g,n;for(;(n=t.exec(e))!==null;){let o=[],s=[],i=n[2].trim();if(i)for(let c of i.split(/[\s,]+/)){let m=c.match(/^([-+]?[\d.eE]+)(.*)$/);o.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}r.push({fn:n[1],nums:o,units:s});}return r}function tn(e,r,t){let n=yr(e),o=yr(r);return n.length===0||n.length!==o.length?t<1?e:r:n.map((s,i)=>{let c=o[i];return s.fn!==c.fn||s.nums.length!==c.nums.length?t<1?`${s.fn}(${s.nums.map((m,g)=>`${m}${s.units[g]}`).join(", ")})`:`${c.fn}(${c.nums.map((m,g)=>`${m}${c.units[g]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,g)=>`${m+(c.nums[g]-m)*t}${s.units[g]}`).join(", ")})`}).join(" ")}function hr(e,r,t){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*t);let n=String(e),o=String(r);if(en(n))return gt(n,o,t);if(n.includes("("))return tn(n,o,t);let s=n.match(/^([-+]?[\d.]+)(.*)$/),i=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&i){let c=parseFloat(s[1]),m=parseFloat(i[1]);return `${c+(m-c)*t}${s[2]||i[2]}`}return t<1?n:o}function rn(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var nn=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),on=0,br="--scroll-draw-progress";function sn(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var vr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,r){return typeof window>"u"?vr:r.respectReducedMotion===false?wr(e,r,false):qe(r,(t,n)=>wr(e,t,n))}function wr(e,r,t){let{props:n,trigger:o={},easing:s="ease-out",speed:i=1,once:c=false,axis:m="y",scrollContainer:g,native:w=true,velocityScale:A=false,triggerElement:E,onProgress:B,onComplete:Q,onEnter:v,onLeave:z,onEnterBack:Z,onLeaveBack:P}=r,O=De(s,"ease-out"),L=ae(o.start||"top bottom"),R=ae(o.end||"bottom top"),y=E??e,$=typeof g=="string"?document.querySelector(g):g??null,W=Object.entries(n).map(([l,d])=>({prop:rn(l),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function se(){let l=window.getComputedStyle(e);for(let d of W)d.from===""&&(d.from=l.getPropertyValue(d.prop).trim()||"0");}function K(){for(let l of W)e.style.setProperty(l.prop,String(l.to));}let V=new Map;for(let l of [...W.map(d=>d.prop),br])V.set(l,e.style.getPropertyValue(l));function D(){for(let[l,d]of V)d?e.style.setProperty(l,d):e.style.removeProperty(l);}if(t)return K(),Q?.(),{...vr,destroy:D,getProgress:()=>1};se();let T=()=>$?m==="x"?$.scrollLeft:$.scrollTop:m==="x"?window.scrollX:window.scrollY,X=()=>$?m==="x"?$.clientWidth:$.clientHeight:m==="x"?window.innerWidth:window.innerHeight,S=typeof s=="string"?yt(s):null;function C(){if(!w||!sn()||!S||m!=="y"||$||y!==e||c||i!==1||B||Q||v||z||Z||P||A!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let l of W)if(!nn.has(l.prop))return false;return true}function ye(){let l=`ssd-a-${++on}`,d=W.map(q=>`${q.prop}:${q.from}`).join(";"),ne=W.map(q=>`${q.prop}:${q.to}`).join(";"),F=document.createElement("style");F.setAttribute("data-ssd-animate",""),F.textContent=`@keyframes ${l}{from{${d}}to{${ne}}}.${l}{animation-name:${l};animation-duration:auto;animation-timing-function:${S};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(l);let _=()=>{let q=e.getBoundingClientRect();return Le({top:q.top,height:q.height},T(),X(),L,R)};Pe(e,{type:"animate",getProgress:()=>G.getProgress(),getTrigger:_});let G={refresh(){},destroy(){e.classList.remove(l),F.remove(),e.style.animationPlayState="",D(),ke(e);},replay(){e.classList.remove(l),e.offsetWidth,e.classList.add(l);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(q){let _e=Math.min(1,Math.max(0,q));e.classList.remove(l);for(let oe of W)e.style.setProperty(oe.prop,hr(oe.from,oe.to,_e));},getProgress(){let{tStart:q,tEnd:_e}=_();return O(U(T(),q,_e,i))}};return G}if(C())return ye();let I=0,j=0,ue=false,Se=-1,fe=0,ie=0,x=false,M=NaN,re=-1,Re=0,J=y===e?W:[],$e=false;function Ee(){let l=e.style,d=J.map(G=>l.getPropertyValue(G.prop)),ne=l.transition;J.length&&(l.transition="none"),J.forEach(G=>l.setProperty(G.prop,V.get(G.prop)??""));let F=mt(y,$,m);J.forEach((G,q)=>l.setProperty(G.prop,d[q])),J.length&&(e.offsetWidth,l.transition=ne);let _=Le(F,F.scroll,X(),L,R);$e&&Math.abs(_.tStart-I)<1&&Math.abs(_.tEnd-j)<1||($e=true,I=_.tStart,j=_.tEnd);}function he(l){e.style.setProperty(br,String(l));for(let d of W)e.style.setProperty(d.prop,hr(d.from,d.to,l));B?.(l);}function ze(l){if(isNaN(M)){M=l;return}M<=0&&l>0&&v?.(),M<1&&l>=1&&z?.(),M>=1&&l<1&&Z?.(),M>0&&l<=0&&P?.(),M=l;}function Fe(){if(ue)return;let l=performance.now(),d=T(),ne=i;if(A!==false){let q=l-Re,_e=q>0?Math.abs(d-(re<0?d:re))/q:0;ne=i*Math.max(.2,1+_e*(typeof A=="number"?A:1)*.04);}re=d,Re=l;let F=j===I?0:(d-I)/(j-I);ze(F);let _=U(d,I,j,ne),G=c?Math.max(Se,O(fe=Math.max(fe,_))):O(_);ie=G,he(G),G>=1&&!x?(x=true,Q?.()):G<1&&!c&&(x=false);}let Te=Ie($??window,[y],()=>U(T(),I,j,Math.min(i,1)),Fe,Ee);Ee(),j===I&&k("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),fe=U(T(),I,j,i),ie=O(fe),he(ie),Pe(e,{type:"animate",getProgress:()=>ie,getTrigger:()=>({tStart:I,tEnd:j})});function Ce(){ue=true,Te.hold(true);}return {destroy(){ue=true,Te.off(),D(),ke(e);},replay(){Se=-1,fe=0,x=false,ie=0,ue=false,he(0),Te.hold(false);},pause:Ce,resume(){ue&&(ue=false,Te.hold(false));},seek(l){let d=Math.min(1,Math.max(0,l));ie=d,Se=d,fe=0,Ce(),he(d);},getProgress(){return ie},refresh:Te.remeasure}}var Ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function At(e,r){if(typeof window>"u")return Ot;let t=typeof e=="string"?document.querySelector(e):e;return t?qe(r,(n,o)=>an(t,n,o)):(k("scrollCounter: element not found:",e),Ot)}function an(e,r,t){let{from:n=0,to:o,format:s,easing:i="ease-out",trigger:c={},once:m=true,decimals:g,onComplete:w}=r,A=g!==void 0?S=>S.toFixed(g):s??(S=>String(Math.round(S))),E=De(i,"ease-out"),B=ae(c.start||"top 80%"),Q=ae(c.end||"top 20%");if(t)return e.textContent=A(o),w?.(),{...Ot,getProgress:()=>1};let v=0,z=0,Z=false,P=-1,O=0,L=0,R=false,y=()=>window.scrollY,$=()=>window.innerHeight;function W(){let S=e.getBoundingClientRect(),C=Le({top:S.top,height:S.height},y(),$(),B,Q);Z&&Math.abs(C.tStart-v)<1&&Math.abs(C.tEnd-z)<1||(Z=true,v=C.tStart,z=C.tEnd);}let se=e.style.getPropertyValue("--scroll-draw-progress");function K(S){e.textContent=A(n+(o-n)*S),e.style.setProperty("--scroll-draw-progress",String(S));}let V=()=>U(y(),v,z,1);function D(){let S=V(),C=m?Math.max(P,E(O=Math.max(O,S))):E(S);L=C,K(C),C>=1&&!R?(R=true,w?.()):C<1&&!m&&(R=false);}W();{O=U(y(),v,z,1);let S=E(O);L=S,K(S);}let T=Ie(window,[e],V,D,W);Pe(e,{type:"counter",getProgress:()=>L,getTrigger:()=>({tStart:v,tEnd:z})});let X=()=>T.hold(false);return {destroy(){T.off(),e.style.setProperty("--scroll-draw-progress",se),ke(e);},replay(){P=-1,O=0,R=false,L=0,K(0),X();},pause:()=>T.hold(true),resume:X,seek(S){let C=Math.min(1,Math.max(0,S));L=C,P=C,O=0,T.hold(true),K(C);},getProgress(){return L}}}var Sr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Pt(e,r={}){if(typeof window>"u")return Sr;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="video")return k("scrollVideo: <video> element not found:",e),Sr;let n=t,{trigger:o={},easing:s="linear",once:i=false,axis:c="y",preload:m="auto",triggerElement:g,onReady:w,onComplete:A,onProgress:E}=r,B=g??n,Q=window.matchMedia("(prefers-reduced-motion: reduce)").matches,v=De(s),z=ae(o.start||"top top"),Z=ae(o.end||"bottom top");n.pause(),n.hasAttribute("preload")||(n.preload=m);let P=r.from??0,O=r.to,L=0,R=0,y=false,$=-1,W=0,se=0,K=false,V=false,D=()=>c==="x"?window.scrollX:window.scrollY,T=()=>c==="x"?window.innerWidth:window.innerHeight;function X(){let x=B.getBoundingClientRect(),M=c==="x"?x.left:x.top,re=c==="x"?x.width:x.height,Re=Le({top:M,height:re},D(),T(),z,Z);L=Re.tStart,R=Re.tEnd,V&&R===L&&k("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n);}let S=NaN;function C(x){if(!V)return;let M=O??n.duration??0,re=P+(M-P)*x;re!==S&&(S=re,n.currentTime=re),n.style.setProperty("--scroll-draw-progress",String(x)),E?.(x);}let ye=()=>U(D(),L,R,1);function I(){if(!V||Q)return;let x=ye(),M=i?Math.max($,v(W=Math.max(W,x))):v(x);se=M,C(M),M>=1&&!K?(K=true,A?.()):M<1&&!i&&(K=false);}let j=Ie(window,[B],ye,I,X),ue=()=>j.hold(y||!V||Q);ue();function Se(){if(V=true,O===void 0&&(O=n.duration),Q){C(1),w?.();return}X(),w?.(),y?C(se):ue();}n.readyState>=1?Se():n.addEventListener("loadedmetadata",Se,{once:true}),V||X();let fe=Q?()=>{}:Ze(x=>{x&&(fe(),Q=true,j.hold(true),C(1));});Pe(n,{type:"video",getProgress:()=>se,getTrigger:()=>({tStart:L,tEnd:R})});function ie(){y&&(y=false,ue());}return {destroy(){j.off(),n.removeEventListener("loadedmetadata",Se),fe(),ke(n);},replay(){$=-1,W=0,K=false,se=0,S=NaN,C(0),ie();},pause(){y=true,j.hold(true);},resume:ie,seek(x){let M=Math.min(1,Math.max(0,x));se=M,$=M,W=0,y=true,j.hold(true),S=NaN,C(M);},getProgress(){return se}}}var ln=1e4;function kt(e){let{frames:r,count:t}=e;if(typeof r!="function")return ct(e);let n=Number.isFinite(t)?Math.min(Math.max(Math.floor(t),0),ln):0,o;try{o=Array.from({length:n},(s,i)=>r(i));}catch{o=["throws"];}return ct({...e,frames:o})}function Er(e,r="<ScrollFrames>"){if(!e||e.getAttribute("aria-hidden")==="true")return;let t=e.getAttribute("role");t==="presentation"||t==="none"||e.getAttribute("aria-label")||e.getAttribute("aria-labelledby")||k(`${r}: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.`,e);}var wt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function cn(e){let r=e>1?[0,e-1]:[0],t=[[0,e-1]];for(let n=0;n<t.length;n++){let[o,s]=t[n];if(s-o<2)continue;let i=o+s>>1;r.push(i),t.push([o,i],[i,s]);}return r}function Tr(e,r){if(typeof window>"u")return wt;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="canvas")return k("scrollFrames: <canvas> element not found:",e),wt;let n=t,{frames:o,trigger:s={},easing:i="linear",once:c=false,axis:m="y",fit:g="cover",triggerElement:w,onReady:A,onLoad:E,onComplete:B,onProgress:Q}=r||{},v=Array.isArray(o)?o:null,z=r?.count,Z=Math.floor(v?Math.min(z??v.length,v.length):z??NaN);if(!(v||typeof o=="function")||!Number.isFinite(Z)||Z<1)return k("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",n),wt;let P=r.concurrency??6;(!Number.isFinite(P)||P<1)&&(k("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",r.concurrency),P=6),P=Math.floor(P);let O=n.getContext("2d");if(!O)return k("scrollFrames: the canvas has no 2D context.",n),wt;let L=Z-1,R=w??n,y=window.matchMedia("(prefers-reduced-motion: reduce)").matches,$=De(i),W=u=>{let p=$(u);return p===p?p:0},se=ae(s.start||"top top"),K=ae(s.end||"bottom top"),V=0,D=0,T=false,X=-1,S=0,C=0,ye=false,I=false,j=false,ue=false,Se=0,fe=-1,ie=new Array(Z),x=new Uint8Array(Z),M=new Set,re=y?[L]:cn(Z),Re=0,J=0,$e=false,Ee=(u,...p)=>{if(u)try{u(...p);}catch(b){typeof reportError=="function"?reportError(b):setTimeout(()=>{throw b});}},he=false,ze=u=>{let p;try{p=v?v[u]:o(u);}catch(b){p=b;}return typeof p=="string"&&p?p:(he||(he=true,k(`scrollFrames: no URL for frame ${u}; it is skipped for its nearest neighbour.`,p)),null)},Fe=()=>m==="x"?window.scrollX:window.scrollY,Te=()=>m==="x"?window.innerWidth:window.innerHeight;function Ce(){!$e&&J===re.length&&($e=true,Ee(E));}function l(){for(;!I&&M.size<P&&Re<re.length;){let u=re[Re++];x[u]||d(u);}}function d(u){x[u]=1;let p=ze(u);if(p===null){J++,queueMicrotask(()=>{I||Ce();});return}let b=new Image,le=false,we=We=>{le||I||(le=true,b.onload=b.onerror=null,M.delete(b),We?ie[u]=b:k("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",p),J++,l(),_(),Ce());};M.add(b),b.decoding="async",b.onerror=()=>we(false),b.src=p,typeof b.decode=="function"?b.decode().then(()=>we(true),()=>{b.complete?we(b.naturalWidth>0):b.onload=()=>we(true);}):b.onload=()=>we(true);}function ne(u){for(let p=0;p<=L;p++){if(ie[u-p])return u-p;if(ie[u+p])return u+p}return -1}function F(){let u=n.clientWidth,p=n.clientHeight;if(!u||!p)return;let b=Math.min(window.devicePixelRatio||1,2),le=Math.round(u*b),we=Math.round(p*b);if(Math.abs(n.width-le)<=1&&Math.abs(n.height-we)<=1)return;n.width=le,n.height=we,fe=-1;let We=n.clientWidth,Oe=n.clientHeight;if(We!==u||Oe!==p){let Be=n.style;We!==u&&Oe!==p?(Be.width=`${u}px`,Be.height=`${p}px`):Be.aspectRatio=`${u} / ${p}`;}}function _(){let u=ne(Se);if(u<0||u===fe)return;let p=ie[u],b=n.width,le=n.height,we=p.naturalWidth||b,We=p.naturalHeight||le,Oe=(g==="contain"?Math.min:Math.max)(b/we,le/We),Be=we*Oe,Ge=We*Oe;O.clearRect(0,0,b,le),O.drawImage(p,(b-Be)/2,(le-Ge)/2,Be,Ge),fe=u,j||(j=true,Ee(A));}function G(u){Se=Math.min(L,Math.max(0,Math.round(u*L))),n.style.setProperty("--scroll-draw-progress",String(u)),_(),Ee(Q,u,Se);}function q(){let u=R.getBoundingClientRect(),p=m==="x"?u.left:u.top,b=m==="x"?u.width:u.height,le=Le({top:p,height:b},Fe(),Te(),se,K);V=le.tStart,D=le.tEnd,D===V&&b>0&&!y&&!ue&&(ue=true,k("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n));}let _e=()=>U(Fe(),V,D,1);function oe(){if(y)return;let u=_e(),p=c?Math.max(X,W(S=Math.max(S,u))):W(u);C=p,G(p),p>=1&&!ye?(ye=true,Ee(B)):p<1&&!c&&(ye=false);}function He(){C=1,G(1);}F(),y||q();let be=Ie(window,[R],_e,oe,()=>{F(),y||q(),_();}),Qe=()=>be.hold(T||y);Qe(),y&&He(),l();let Ye=typeof ResizeObserver=="function"?new ResizeObserver(()=>{F(),_();}):null;Ye?.observe(n);let Ue=y?()=>{}:Ze(u=>{u&&(Ue(),y=true,be.hold(true),re=re.slice(0,Re),x[L]||re.push(L),Ce(),He(),l());});Pe(n,{type:"frames",getProgress:()=>C,getTrigger:()=>({tStart:V,tEnd:D})});function me(){I||!T||(T=false,Qe());}return {destroy(){if(!I){I=true,be.off(),Ye?.disconnect(),Ue();for(let u of M)u.onload=u.onerror=null,u.src="";M.clear(),ke(n);}},replay(){I||(X=-1,S=0,ye=false,C=0,G(0),me());},pause(){I||(T=true,be.hold(true));},resume:me,seek(u){if(I)return;let p=Math.min(1,Math.max(0,u===u?u:0));C=p,X=p,S=0,T=true,be.hold(true),G(p);},getProgress(){return C}}}function Rt(e,{triggerElement:r,...t},n){let o=r;return typeof r=="string"&&typeof document<"u"&&(o=document.querySelector(r),o||k(`scrollFrames: triggerElement "${r}" matches nothing; measuring the canvas.`)),Tr(e,{...t,frames:n.frames,triggerElement:o??void 0})}function xr(e,r){let t=document.createElement("span");t.textContent=r,t.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;user-select:none",e.appendChild(t);}function vt(e=""){let r=document.createElement("span");return r.setAttribute("aria-hidden","true"),r.textContent=e,r}function Lr(e){let r=e.textContent??"";return e.textContent="",r.split(/(\s+)/).filter(Boolean).map(t=>{let n=e.appendChild(vt(t)),o=/^\s+$/.test(t);return o?n.style.whiteSpace="pre":n.style.display="inline-block",o?null:n}).filter(t=>t!==null)}function un(e){let r=e.textContent??"";e.textContent="";let t=[],n=null;for(let o of r){let s=vt(o),i=o===" ";i?s.style.whiteSpace="pre":(s.style.display="inline-block",t.push(s)),i||o>"\u0DFF"?n=null:n||(n=e.appendChild(vt()),n.style.cssText="display:inline-block;white-space:nowrap"),(n??e).appendChild(s);}return t}function Mr(e){let r=Lr(e),t=new Map;for(let s of r){let i=s.offsetTop;t.has(i)||t.set(i,[]),t.get(i).push(s);}let n=[],o=Array.from(t.keys()).sort((s,i)=>s-i);for(let s of o){let i=t.get(s),c=vt();c.style.display="inline-block",i.forEach((m,g)=>{let w=m.nextElementSibling;c.appendChild(m),g<i.length-1&&w&&w.style.whiteSpace==="pre"&&c.appendChild(w);}),n.push(c);}return e.textContent="",n.forEach((s,i)=>{e.appendChild(s),i<n.length-1&&e.appendChild(document.createTextNode(" "));}),n}function fn(e,r,t,n){if(t<=1||n===0)return e;n=Math.min(n,1/t);let o=(t-1)*n,s=r*n,i=s+(1-o);return i<=s?e>=s?1:0:it((e-s)/(i-s),0,1)}function mn(e,r){let t=[];if(r?.y!==void 0&&t.push(`translateY(${r.y*(1-e)}px)`),r?.x!==void 0&&t.push(`translateX(${r.x*(1-e)}px)`),r?.rotate!==void 0&&t.push(`rotate(${r.rotate*(1-e)}deg)`),r?.scale!==void 0){let n=r.scale+(1-r.scale)*e;t.push(`scale(${n})`);}return t.join(" ")}var $t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ft(e,r={}){if(typeof window>"u")return $t;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return k("scrollText: element not found:",e),$t;let n=t;return qe(r,(o,s)=>pn(n,o,s))}function pn(e,r,t){let{split:n="words",stagger:o=.04,easing:s="ease-out",from:i={opacity:0,y:24},trigger:c={},once:m=true,onComplete:g}=r,w=De(s,"ease-out"),A=ae(c.start||"top 85%"),E=ae(c.end||"top 40%"),B=e.innerHTML,Q=e.textContent??"",v;n==="chars"?v=un(e):n==="lines"?v=Mr(e):v=Lr(e),xr(e,Q);let z=v.length;function Z(T,X){i?.opacity!==void 0&&(T.style.opacity=String(i.opacity+(1-i.opacity)*X));let S=mn(X,i);S&&(T.style.transform=S);}function P(T){e.style.setProperty("--scroll-draw-progress",String(T)),v.forEach((X,S)=>{let C=w(fn(T,S,z,o));Z(X,C);});}if(t)return P(1),g?.(),{...$t,destroy:()=>{e.innerHTML=B;},getProgress:()=>1};P(0);let O=0,L=0,R=-1,y=0,$=false;function W(){({tStart:O,tEnd:L}=Le(e.getBoundingClientRect(),window.scrollY,window.innerHeight,A,E));}let se=()=>U(window.scrollY,O,L,1);function K(){let T=m?R=Math.max(R,se()):se();y=T,P(T),T>=1&&!$?($=true,g?.()):T<1&&!m&&($=false);}W();let V=Ie(window,[e],se,K,()=>{n==="lines"&&(e.innerHTML=B,v=Mr(e),xr(e,Q),P(y)),W();});Pe(e,{type:"text",getProgress:()=>y,getTrigger:()=>({tStart:O,tEnd:L})});let D=()=>V.hold(false);return {destroy(){V.off(),e.innerHTML=B,ke(e);},replay(){R=-1,$=false,y=0,P(0),D();},pause:()=>V.hold(true),resume:D,seek(T){V.hold(true),P(y=R=it(T,0,1));},getProgress(){return y}}}var rt=e=>typeof e=="function"?e():vue.unref(e);function Ve(e,r,t,n=ct){let o=null,s=r(),i=()=>{o?.destroy(),o=e.value?t(e.value,gr(s,()=>s),s):null;};vue.onMounted(i),vue.watch(()=>n(s=r()),i),vue.onUnmounted(()=>{o?.destroy(),o=null;});}function hn(e={}){let r=vue.ref(null);return Ve(r,()=>rt(e),Lt),r}var Cr={preset:0,selector:0,speed:0,fade:1,easing:0,trigger:0,stagger:0,direction:0,once:1,debug:1,axis:0,scrollContainer:0,autoReverse:1,delay:0,strokeColor:0,strokeWidth:0,fillOpacity:0,clip:2,waypoints:0,velocityScale:3,threshold:0,rootMargin:0,repeat:0,repeatDelay:0,morphTo:0,onProgress:0,onStart:0,onComplete:0,onEnter:0,onLeave:0,onEnterBack:0,onLeaveBack:0,autoplay:1,duration:0,native:1},bn=[null,Boolean,[Boolean,String],[Boolean,Number]],Ht=e=>({type:e,default:void 0}),Dt=vue.defineComponent({name:"ScrollDraw",props:Object.fromEntries(Object.entries(Cr).map(([e,r])=>[e,r?Ht(bn[r]):null])),setup(e,{slots:r}){let t=vue.ref(null);return Ve(t,()=>{let n={};for(let o in Cr){let s=e[o];s!=null&&(n[o]=s);}return n},Lt),()=>vue.h("div",{ref:t},r.default?.())}});function wn(e){let r=vue.ref(null);return Ve(r,()=>rt(e),Ct),r}var It=vue.defineComponent({name:"ScrollAnimate",props:{options:{type:Object,required:true}},setup(e,{slots:r}){let t=vue.ref(null);return Ve(t,()=>e.options,Ct),()=>vue.h("div",{ref:t},r.default?.())}});function vn(e){let r=vue.ref(null);return Ve(r,()=>rt(e),At),r}var Nt=vue.defineComponent({name:"ScrollCounter",props:{to:{type:Number,required:true},from:{type:Number},format:{type:Function},easing:{type:[String,Function]},trigger:{type:Object},once:Ht(Boolean),decimals:{type:Number},onComplete:{type:Function}},setup(e){let r=vue.ref(null);return Ve(r,()=>{let t={to:e.to};return e.from!=null&&(t.from=e.from),e.format!=null&&(t.format=e.format),e.easing!=null&&(t.easing=e.easing),e.trigger!=null&&(t.trigger=e.trigger),e.once!=null&&(t.once=e.once),e.decimals!=null&&(t.decimals=e.decimals),e.onComplete!=null&&(t.onComplete=e.onComplete),t},At),()=>vue.h("span",{ref:r})}});function Sn(e={}){let r=vue.ref(null);return Ve(r,()=>rt(e),Pt),r}var Vt=vue.defineComponent({name:"ScrollVideo",props:{src:{type:String,required:true},options:{type:Object},muted:{type:Boolean,default:true},playsInline:{type:Boolean,default:true},class:{type:String}},setup(e){let r=vue.ref(null);return Ve(r,()=>e.options??{},Pt),()=>vue.h("video",{ref:r,src:e.src,muted:e.muted,playsinline:e.playsInline,preload:"auto",class:e.class})}});function En(e){let r=vue.ref(null);return Ve(r,()=>rt(e),Rt,kt),r}var Or={frames:0,count:0,trigger:0,easing:0,once:1,axis:0,triggerElement:0,fit:0,concurrency:0,onReady:0,onLoad:0,onComplete:0,onProgress:0},_t=vue.defineComponent({name:"ScrollFrames",props:Object.fromEntries(Object.entries(Or).map(([e,r])=>[e,r?Ht(Boolean):e==="frames"?{required:true}:null])),setup(e){let r=vue.ref(null);return Ve(r,()=>{let t={};for(let n in Or){let o=e[n];o!=null&&(t[n]=o);}return t},Rt,kt),vue.onMounted(()=>Er(r.value)),()=>vue.h("canvas",{ref:r,role:"img"})}});function Tn(e={}){let r=vue.ref(null);return Ve(r,()=>rt(e),Ft),r}var zt=vue.defineComponent({name:"ScrollText",props:{options:{type:Object},tag:{type:String,default:"p"}},setup(e,{slots:r}){let t=vue.ref(null);return Ve(t,()=>e.options??{},Ft),()=>vue.h(e.tag,{ref:t},r.default?.())}});function as(){return {install(e){e.component("ScrollDraw",Dt),e.component("ScrollAnimate",It),e.component("ScrollCounter",Nt),e.component("ScrollVideo",Vt),e.component("ScrollFrames",_t),e.component("ScrollText",zt);}}}exports.ScrollAnimate=It;exports.ScrollCounter=Nt;exports.ScrollDraw=Dt;exports.ScrollFrames=_t;exports.ScrollText=zt;exports.ScrollVideo=Vt;exports.createScrollDrawPlugin=as;exports.useScrollAnimate=wn;exports.useScrollCounter=vn;exports.useScrollDraw=hn;exports.useScrollFrames=En;exports.useScrollText=Tn;exports.useScrollVideo=Sn;
|
|
3
|
+
<div style="position:absolute;${m?`left:${c}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${c}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(n),window.addEventListener("scroll",o,{passive:true}),o(),{el:n,destroy(){window.removeEventListener("scroll",o),n.remove();}}}var mr=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,pr=/[MmLlHhVvCcSsQqTtAaZz]/g;function Jr(e,t,r){if(!Xe)return;let n=(e.match(pr)??[]).join("").toUpperCase(),o=(t.match(pr)??[]).join("").toUpperCase(),s=(e.match(mr)??[]).length,i=(t.match(mr)??[]).length;if(n!==o){A(`morphTo: command sequence differs (${n||"\u2205"} \u2192 ${o||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,r);return}s!==i&&A(`morphTo: coordinate count differs (${s} \u2192 ${i}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,r);}function Zr(e,t,r){let n=(t.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),o=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let i=parseFloat(s),c=n[o++]??i;return String(+(i+(c-i)*r).toFixed(4))})}function Lt(e,t={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:qe(t,(r,n)=>en(e,r,n))}function en(e,t,r){let{preset:n,...o}=t,s=n?{...or[n],...o}:o,{selector:i="path, polyline, line, polygon, rect, circle",speed:c=1,fade:m=false,easing:g="linear",trigger:w={},stagger:P=0,direction:x="forward",once:k=false,debug:z=false,axis:T="y",scrollContainer:j,autoReverse:B=false,delay:M=0,strokeColor:O,strokeWidth:C,fillOpacity:W,waypoints:b,velocityScale:R=false,threshold:I=0,rootMargin:Z="0px",repeat:se=0,repeatDelay:$=0,morphTo:F,clip:y,autoplay:L=false,duration:ee=1e3,native:te=true,onProgress:ye,onStart:N,onComplete:q,onEnter:ue,onLeave:Se,onEnterBack:fe,onLeaveBack:ie}=s,S=y===true?"left":typeof y=="string"?y:false,E=De(g),re=ae(w.start||"top bottom"),Re=ae(w.end||"bottom top"),K=typeof j=="string"?document.querySelector(j):j??null,$e=Array.isArray(O)?O[0]:null,Ee=Array.isArray(O)?O[1]:typeof O=="string"?O:null,he=Array.isArray(C)?C[0]:null,ze=Array.isArray(C)?C[1]:typeof C=="number"?C:null,Fe=Array.isArray(W)?W[0]:null,Te=Array.isArray(W)?W[1]:typeof W=="number"?W:null;function Ce(a){let f=a*100;switch(S){case "right":return `inset(0 0 0 ${100-f}%)`;case "top":return `inset(0 0 ${100-f}% 0)`;case "bottom":return `inset(${100-f}% 0 0 0)`;case "center":return `circle(${a*150}% at 50% 50%)`;default:return `inset(0 ${100-f}% 0 0)`}}let l=S?[]:Array.from(e.querySelectorAll(i)),d=[],ne=[],H=0,_=0,G=P,Y=0,_e=0,oe=false,He=false,be=0,Qe=-1,Ye=[],Ue=-1,me=false,u=0,p=0,v,le=false,we=null;function We(){we?.destroy(),we=null;}let Oe=new Set,Be=NaN,Ge=true,ut=-1,Wt=performance.now(),Ke=NaN;function ft(){return K?T==="x"?K.scrollLeft:K.scrollTop:T==="x"?window.scrollX:window.scrollY}function Bt(){return K?T==="x"?K.clientWidth:K.clientHeight:T==="x"?window.innerWidth:window.innerHeight}function Gt(){let a=mt(e,K,T);return Le(a,a.scroll,Bt(),re,Re)}function Rr(){let a=_-H,f=l.length-1,h=K??document.documentElement,V=T==="x"?"Width":"Height";if(G=P,P>0&&f>0&&a>0){let pe=h[`scroll${V}`]-h[`client${V}`]-1-H-a/c;pe>=0&&(G=Math.min(P,pe/(f*a)));}let ce=Math.max(0,f)*G*a,xe=a/Math.min(c,1);Y=H+Math.min(0,ce,xe,ce+xe),_e=H+Math.max(0,ce,xe,ce+xe);}function jt(){(({tStart:H,tEnd:_}=Gt())),Rr(),z&&Xe&&(We(),we=Xr(H,_,T));}function St(a,f=Gt){Pe(e,{type:"draw",getProgress:()=>a.getProgress(),getTrigger:f});let h=a.destroy;return a.destroy=()=>{h.call(a),ke(e);},a}function qt(a,f){return k&&!B?Math.max(Qe,E(Ye[a]=Math.max(Ye[a]??0,f))):E(f)}function $r(a,f){if(e.style.setProperty("--scroll-draw-progress",String(a)),S){let h=f==="reverse"?1-a:a;e.style.clipPath=Ce(h);return}l.forEach((h,V)=>Et(h,V,a,f));}function Et(a,f,h,V){a.style.strokeDashoffset=V==="reverse"?`${d[f]*h}`:`${d[f]*(1-h)}`,m&&(a.style.opacity=V==="reverse"?`${1-h}`:`${h}`),$e&&Ee?a.style.stroke=gt($e,Ee,h):Ee&&(a.style.stroke=Ee),he!==null&&ze!==null?a.style.strokeWidth=`${he+(ze-he)*h}`:ze!==null&&(a.style.strokeWidth=`${ze}`),Fe!==null&&Te!==null?a.style.fillOpacity=`${Fe+(Te-Fe)*h}`:Te!==null&&(a.style.fillOpacity=`${Te}`),F&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",Zr(ne[f],F,h));}function Tt(){if(e.style.setProperty("--scroll-draw-progress","0"),S){e.style.clipPath=Ce(x==="reverse"?1:0);return}l.forEach((a,f)=>{a.style.strokeDasharray=dt(d[f]),a.style.strokeDashoffset=x==="reverse"?"0":`${d[f]}`,m?a.style.opacity=x==="reverse"?"1":"0":a.style.opacity="",$e&&(a.style.stroke=$e),he!==null&&(a.style.strokeWidth=`${he}`),Fe!==null&&(a.style.fillOpacity=`${Fe}`),F&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",ne[f]);});}function nt(a,f){let h=a.getAttribute("d"),V=pt(a);if(F&&ne[f]){a.setAttribute("d",F);let ce=pt(a);a.setAttribute("d",ne[f]),V=Math.max(pt(a),ce),a.setAttribute("d",h);}d[f]=V,a.style.strokeDasharray=dt(V);}if(l.forEach((a,f)=>{Kr(a);let h=a.tagName.toLowerCase()==="path";h?ne.push(a.getAttribute("d")??""):ne.push(""),nt(a,f);let V=d[f];F&&(h?Jr(ne[ne.length-1],F,a):A(`morphTo only applies to <path> elements \u2014 ignored on <${a.tagName}>.`,a)),r?(a.style.strokeDashoffset=x==="reverse"?`${V}`:"0",m&&(a.style.opacity="1"),Ee&&(a.style.stroke=Ee),ze!==null&&(a.style.strokeWidth=`${ze}`),Te!==null&&(a.style.fillOpacity=`${Te}`),F&&a.tagName.toLowerCase()==="path"&&a.setAttribute("d",F)):(a.style.strokeDashoffset=x==="reverse"?"0":`${V}`,m?a.style.opacity=x==="reverse"?"1":"0":a.style.opacity="",$e&&(a.style.stroke=$e),he!==null&&(a.style.strokeWidth=`${he}`),Fe!==null&&(a.style.fillOpacity=`${Fe}`));}),r)return S&&(e.style.clipPath=Ce(1)),q?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};S&&(e.style.clipPath=Ce(x==="reverse"?1:0));let Yt=typeof g=="string"?yt(g):null;function Fr(){return !(te===false||L||z&&Xe||!Qr()||!l.length||!Yt||S||T!=="y"||K||c!==1||P!==0||k||B||R!==false||F||b||se||M>0||ye||N||q||ue||Se||fe||ie||O!=null||C!=null||W!=null||(w.start||"top bottom").trim()!=="top bottom"||(w.end||"bottom top").trim()!=="bottom top")}function Hr(){let a=++Ur,f=`svg-scroll-draw-${a}`,h=`svg-scroll-draw-host-${a}`,V=`--svg-scroll-draw-${a}`,ce=x==="reverse"?"0":"var(--ssd-len)",xe=x==="reverse"?"var(--ssd-len)":"0",pe=`stroke-dashoffset:${ce};`,X=`stroke-dashoffset:${xe};`;m&&(pe+=`opacity:${x==="reverse"?1:0};`,X+=`opacity:${x==="reverse"?0:1};`);let J=document.createElement("style");J.setAttribute("data-svg-scroll-draw",""),J.textContent=`@keyframes ${f}{from{${pe}}to{${X}}}.${h}{view-timeline-name:${V};view-timeline-axis:block;}.${f}{animation-name:${f};animation-duration:auto;animation-timing-function:${Yt};animation-fill-mode:both;animation-timeline:${V};animation-range:cover 0% cover 100%;}`,document.head.appendChild(J),e.classList.add(h);function ve(D,U){D.style.setProperty("--ssd-len",String(d[U])),D.style.strokeDasharray=dt(d[U]),D.style.strokeDashoffset="",D.style.opacity="",D.style.animationPlayState="",D.classList.add(f);}l.forEach(ve);let de=false,Me=-1;function Ae(){if(Me>=0)return Me;let D=e.getBoundingClientRect(),{tStart:U,tEnd:ge}=Le({top:D.top,height:D.height},ft(),Bt(),re,Re);return E(Q(ft(),U,ge,c))}return {destroy(){e.classList.remove(h),l.forEach(D=>{D.classList.remove(f),D.style.removeProperty("--ssd-len"),D.style.animationPlayState="";}),J.remove();},replay(){de=false,Me=-1,l.forEach(ve);},pause(){de=true,l.forEach(D=>{D.style.animationPlayState="paused";});},resume(){de&&(de=false,l.forEach(D=>{D.style.animationPlayState="running";}));},seek(D){let U=Math.min(1,Math.max(0,D));Me=U,de=true,l.forEach((ge,je)=>{ge.classList.remove(f),ge.style.strokeDashoffset=x==="reverse"?`${d[je]*U}`:`${d[je]*(1-U)}`,m&&(ge.style.opacity=x==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return Ae()},refresh(){l.forEach((D,U)=>{nt(D,U),D.style.setProperty("--ssd-len",String(d[U]));});}}}if(Fr())return St(Hr());function Dr(){let a=Math.max(1,ee),f=S?a:a*(1+Math.max(0,l.length-1)*P),h=0,V=0,ce=false;function xe(Me){let Ae=true,D=Math.min(1,Math.max(0,Me/f));if(S){let U=Math.min(1,Math.max(0,Me/a)),ge=E(U);u=ge,e.style.setProperty("--scroll-draw-progress",String(ge)),e.style.clipPath=Ce(x==="reverse"?1-ge:ge),ye?.(ge),U<1&&(Ae=false);}else {l.forEach((ge,je)=>{let Nr=je*P*a,Jt=Math.min(1,Math.max(0,(Me-Nr)/a));Et(ge,je,E(Jt),x),Jt<1&&(Ae=false);});let U=E(D);u=U,ye?.(U),e.style.setProperty("--scroll-draw-progress",String(U));}if(b){let U=E(D);for(let ge in b){let je=parseFloat(ge);U>=je&&!Oe.has(je)&&(Oe.add(je),b[ge]?.());}}return Ae}function pe(Me){if(me)return;let Ae=Me-h;He||(He=true,N?.());let D=xe(Ae);if(D&&!oe){oe=true,xe(f),q?.(),p<(se==="infinite"?1/0:se??0)&&(p++,v=setTimeout(()=>{h=performance.now(),He=false,oe=false,Oe.clear(),Tt(),be=requestAnimationFrame(pe);},$));return}D||(be=requestAnimationFrame(pe));}function X(){cancelAnimationFrame(be),clearTimeout(v),h=performance.now(),V=0,me=false,He=false,oe=false,p=0,ce=true,u=0,Oe.clear(),Tt(),be=requestAnimationFrame(pe);}let J=new IntersectionObserver(Me=>{Me.forEach(Ae=>{Ae.isIntersecting&&!(k&&oe)?X():!Ae.isIntersecting&&!k&&!oe&&(cancelAnimationFrame(be),clearTimeout(v),ce=false);});},{root:K??null,threshold:I,rootMargin:Z}),ve;function de(){clearTimeout(ve),ve=setTimeout(()=>l.forEach(nt),150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),M>0?setTimeout(()=>J.observe(e),M):J.observe(e),{destroy(){cancelAnimationFrame(be),clearTimeout(v),J.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),clearTimeout(ve);},replay(){p=0,X();},pause(){me||!ce||(me=true,V=performance.now()-h,cancelAnimationFrame(be));},resume(){me&&(me=false,ce=true,h=performance.now()-V,be=requestAnimationFrame(pe));},seek(Me){let Ae=Math.min(1,Math.max(0,Me));u=Ae,me=true,V=Ae*f,h=performance.now()-V,cancelAnimationFrame(be),xe(V);},getProgress(){return u},refresh(){clearTimeout(ve),l.forEach(nt);}}}if(L)return St(Dr());jt();let Ut=()=>Q(ft(),Y,_e,1);function Qt(){oe=true,q?.(),p<(se==="infinite"?1/0:se)&&(p++,v=setTimeout(()=>{le=true;},$));}function Kt(){Qe=-1,Ye=[],He=false,oe=false,le=false,Oe.clear(),Tt(),Ge=true;}function Ir(){let a=performance.now(),f=ft();if(le&&Ut()%1&&Kt(),!Ge&&R===false&&f===Be)return;Ge=false,Be=f;let h=c;if(R!==false){let X=a-Wt,J=X>0?Math.abs(f-(ut<0?f:ut))/X:0;h=c*Math.max(.2,1+J*(typeof R=="number"?R:1)*.04);}ut=f,Wt=a;let V=B?Ue===-1||f>=Ue?"forward":"reverse":x;Ue=f;let ce=_-H,xe=true,pe=ce===0?0:(f-H)/ce;if(isNaN(Ke)||(Ke<=0&&pe>0&&ue?.(),Ke<1&&pe>=1&&Se?.(),Ke>=1&&pe<1&&fe?.(),Ke>0&&pe<=0&&ie?.()),Ke=pe,S){let X=qt(0,Q(f,H,_,h));u=X,e.style.setProperty("--scroll-draw-progress",String(X));let J=V==="reverse"?1-X:X;e.style.clipPath=Ce(J),ye?.(X),!He&&Q(f,H,_,h)>0&&(He=true,N?.()),X>=1&&!oe?Qt():X<1&&!k&&(oe=false);return}if(l.forEach((X,J)=>{let ve=J*G*ce,de=qt(J,Q(f,H+ve,_+ve,h));Et(X,J,de,V),J===0&&(u=de,ye?.(de),e.style.setProperty("--scroll-draw-progress",String(de))),de<1&&(xe=false);}),b){let X=E(Q(f,H,_,h));for(let J in b){let ve=parseFloat(J);X>=ve&&!Oe.has(ve)&&(Oe.add(ve),b[J]?.());}}!He&&Q(f,H,_,h)>0&&(He=true,N?.()),xe&&!oe?Qt():!xe&&!k&&(oe=false);}let ot=Ie(K??window,[e],Ut,Ir,()=>{let a=d.join();l.forEach(nt),jt(),Ge=true,d.join()!==a&&st();}),xt=M>0;function st(){ot.hold(me||xt);}let Xt;return xt&&(Xt=setTimeout(()=>{xt=false,st();},M)),st(),St({destroy(){clearTimeout(v),clearTimeout(Xt),ot.off(),We();},replay(){Kt(),Ue=-1,ut=-1,p=0,me=false,u=0,clearTimeout(v),st();},pause(){me=true,ot.hold(true);},resume(){me&&(me=false,Ge=true,st());},seek(a){let f=Math.min(1,Math.max(0,a));u=f,Qe=f,Ye=[],me=true,ot.hold(true),$r(f,x),Ge=true;},getProgress(){return u},refresh:ot.remeasure},()=>({tStart:H,tEnd:_}))}var dr=new WeakMap,tn=0;function ct(e){return JSON.stringify(e,(t,r)=>{if(typeof r=="function")return "\u0192";if(typeof Element<"u"&&r instanceof Element){let n=dr.get(r);return n===void 0&&dr.set(r,n=++tn),`el#${n}`}return r})}function gr(e,t){let r={...e};for(let n of Object.keys(r))typeof r[n]=="function"&&(r[n]=(...o)=>t()[n]?.(...o));return r}function rn(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function yr(e){let t=[],r=/([\w]+)\(([^)]*)\)/g,n;for(;(n=r.exec(e))!==null;){let o=[],s=[],i=n[2].trim();if(i)for(let c of i.split(/[\s,]+/)){let m=c.match(/^([-+]?[\d.eE]+)(.*)$/);o.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}t.push({fn:n[1],nums:o,units:s});}return t}function nn(e,t,r){let n=yr(e),o=yr(t);return n.length===0||n.length!==o.length?r<1?e:t:n.map((s,i)=>{let c=o[i];return s.fn!==c.fn||s.nums.length!==c.nums.length?r<1?`${s.fn}(${s.nums.map((m,g)=>`${m}${s.units[g]}`).join(", ")})`:`${c.fn}(${c.nums.map((m,g)=>`${m}${c.units[g]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,g)=>`${m+(c.nums[g]-m)*r}${s.units[g]}`).join(", ")})`}).join(" ")}function hr(e,t,r){if(typeof e=="number"&&typeof t=="number")return String(e+(t-e)*r);let n=String(e),o=String(t);if(rn(n))return gt(n,o,r);if(n.includes("("))return nn(n,o,r);let s=n.match(/^([-+]?[\d.]+)(.*)$/),i=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&i){let c=parseFloat(s[1]),m=parseFloat(i[1]);return `${c+(m-c)*r}${s[2]||i[2]}`}return r<1?n:o}function on(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}var sn=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),an=0,br="--scroll-draw-progress";function ln(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var vr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,t){return typeof window>"u"?vr:t.respectReducedMotion===false?wr(e,t,false):qe(t,(r,n)=>wr(e,r,n))}function wr(e,t,r){let{props:n,trigger:o={},easing:s="ease-out",speed:i=1,once:c=false,axis:m="y",scrollContainer:g,native:w=true,velocityScale:P=false,triggerElement:x,onProgress:k,onComplete:z,onEnter:T,onLeave:j,onEnterBack:B,onLeaveBack:M}=t,O=De(s,"ease-out"),C=ae(o.start||"top bottom"),W=ae(o.end||"bottom top"),b=x??e,R=typeof g=="string"?document.querySelector(g):g??null,I=Object.entries(n).map(([l,d])=>({prop:on(l),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function Z(){let l=window.getComputedStyle(e);for(let d of I)d.from===""&&(d.from=l.getPropertyValue(d.prop).trim()||"0");}function se(){for(let l of I)e.style.setProperty(l.prop,String(l.to));}let $=new Map;for(let l of [...I.map(d=>d.prop),br])$.set(l,e.style.getPropertyValue(l));function F(){for(let[l,d]of $)d?e.style.setProperty(l,d):e.style.removeProperty(l);}if(r)return se(),z?.(),{...vr,destroy:F,getProgress:()=>1};Z();let y=()=>R?m==="x"?R.scrollLeft:R.scrollTop:m==="x"?window.scrollX:window.scrollY,L=()=>R?m==="x"?R.clientWidth:R.clientHeight:m==="x"?window.innerWidth:window.innerHeight,ee=typeof s=="string"?yt(s):null;function te(){if(!w||!ln()||!ee||m!=="y"||R||b!==e||c||i!==1||k||z||T||j||B||M||P!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let l of I)if(!sn.has(l.prop))return false;return true}function ye(){let l=`ssd-a-${++an}`,d=I.map(Y=>`${Y.prop}:${Y.from}`).join(";"),ne=I.map(Y=>`${Y.prop}:${Y.to}`).join(";"),H=document.createElement("style");H.setAttribute("data-ssd-animate",""),H.textContent=`@keyframes ${l}{from{${d}}to{${ne}}}.${l}{animation-name:${l};animation-duration:auto;animation-timing-function:${ee};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(H),e.classList.add(l);let _=()=>{let Y=e.getBoundingClientRect();return Le({top:Y.top,height:Y.height},y(),L(),C,W)};Pe(e,{type:"animate",getProgress:()=>G.getProgress(),getTrigger:_});let G={refresh(){},destroy(){e.classList.remove(l),H.remove(),e.style.animationPlayState="",F(),ke(e);},replay(){e.classList.remove(l),e.offsetWidth,e.classList.add(l);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(Y){let _e=Math.min(1,Math.max(0,Y));e.classList.remove(l);for(let oe of I)e.style.setProperty(oe.prop,hr(oe.from,oe.to,_e));},getProgress(){let{tStart:Y,tEnd:_e}=_();return O(Q(y(),Y,_e,i))}};return G}if(te())return ye();let N=0,q=0,ue=false,Se=-1,fe=0,ie=0,S=false,E=NaN,re=-1,Re=0,K=b===e?I:[],$e=false;function Ee(){let l=e.style,d=K.map(G=>l.getPropertyValue(G.prop)),ne=l.transition;K.length&&(l.transition="none"),K.forEach(G=>l.setProperty(G.prop,$.get(G.prop)??""));let H=mt(b,R,m);K.forEach((G,Y)=>l.setProperty(G.prop,d[Y])),K.length&&(e.offsetWidth,l.transition=ne);let _=Le(H,H.scroll,L(),C,W);$e&&Math.abs(_.tStart-N)<1&&Math.abs(_.tEnd-q)<1||($e=true,N=_.tStart,q=_.tEnd);}function he(l){e.style.setProperty(br,String(l));for(let d of I)e.style.setProperty(d.prop,hr(d.from,d.to,l));k?.(l);}function ze(l){if(isNaN(E)){E=l;return}E<=0&&l>0&&T?.(),E<1&&l>=1&&j?.(),E>=1&&l<1&&B?.(),E>0&&l<=0&&M?.(),E=l;}function Fe(){if(ue)return;let l=performance.now(),d=y(),ne=i;if(P!==false){let Y=l-Re,_e=Y>0?Math.abs(d-(re<0?d:re))/Y:0;ne=i*Math.max(.2,1+_e*(typeof P=="number"?P:1)*.04);}re=d,Re=l;let H=q===N?0:(d-N)/(q-N);ze(H);let _=Q(d,N,q,ne),G=c?Math.max(Se,O(fe=Math.max(fe,_))):O(_);ie=G,he(G),G>=1&&!S?(S=true,z?.()):G<1&&!c&&(S=false);}let Te=Ie(R??window,[b],()=>Q(y(),N,q,Math.min(i,1)),Fe,Ee);Ee(),q===N&&A("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),fe=Q(y(),N,q,i),ie=O(fe),he(ie),Pe(e,{type:"animate",getProgress:()=>ie,getTrigger:()=>({tStart:N,tEnd:q})});function Ce(){ue=true,Te.hold(true);}return {destroy(){ue=true,Te.off(),F(),ke(e);},replay(){Se=-1,fe=0,S=false,ie=0,ue=false,he(0),Te.hold(false);},pause:Ce,resume(){ue&&(ue=false,Te.hold(false));},seek(l){let d=Math.min(1,Math.max(0,l));ie=d,Se=d,fe=0,Ce(),he(d);},getProgress(){return ie},refresh:Te.remeasure}}var Sr=({decimals:e,format:t})=>e!==void 0?r=>r.toFixed(e):t??(r=>String(Math.round(r))),Er=e=>Sr(e)(e.to),Ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function At(e,t){if(typeof window>"u")return Ot;let r=typeof e=="string"?document.querySelector(e):e;return r?qe(t,(n,o)=>cn(r,n,o)):(A("scrollCounter: element not found:",e),Ot)}function cn(e,t,r){let{from:n=0,to:o,easing:s="ease-out",trigger:i={},once:c=true,onComplete:m}=t,g=Sr(t),w=De(s,"ease-out"),P=ae(i.start||"top 80%"),x=ae(i.end||"top 20%");if(r)return e.textContent=g(o),m?.(),{...Ot,getProgress:()=>1};let k=0,z=0,T=false,j=-1,B=0,M=0,O=false,C=()=>window.scrollY,W=()=>window.innerHeight;function b(){let y=e.getBoundingClientRect(),L=Le({top:y.top,height:y.height},C(),W(),P,x);T&&Math.abs(L.tStart-k)<1&&Math.abs(L.tEnd-z)<1||(T=true,k=L.tStart,z=L.tEnd);}let R=e.style.getPropertyValue("--scroll-draw-progress");function I(y){e.textContent=g(n+(o-n)*y),e.style.setProperty("--scroll-draw-progress",String(y));}let Z=()=>Q(C(),k,z,1);function se(){let y=Z(),L=c?Math.max(j,w(B=Math.max(B,y))):w(y);M=L,I(L),L>=1&&!O?(O=true,m?.()):L<1&&!c&&(O=false);}b();{B=Q(C(),k,z,1);let y=w(B);M=y,I(y);}let $=Ie(window,[e],Z,se,b);Pe(e,{type:"counter",getProgress:()=>M,getTrigger:()=>({tStart:k,tEnd:z})});let F=()=>$.hold(false);return {destroy(){$.off(),e.style.setProperty("--scroll-draw-progress",R),ke(e);},replay(){j=-1,B=0,O=false,M=0,I(0),F();},pause:()=>$.hold(true),resume:F,seek(y){let L=Math.min(1,Math.max(0,y));M=L,j=L,B=0,$.hold(true),I(L);},getProgress(){return M}}}var Tr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Pt(e,t={}){if(typeof window>"u")return Tr;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return A("scrollVideo: <video> element not found:",e),Tr;let n=r,{trigger:o={},easing:s="linear",once:i=false,axis:c="y",preload:m="auto",triggerElement:g,onReady:w,onComplete:P,onProgress:x}=t,k=g??n,z=window.matchMedia("(prefers-reduced-motion: reduce)").matches,T=De(s),j=ae(o.start||"top top"),B=ae(o.end||"bottom top");n.pause(),n.hasAttribute("preload")||(n.preload=m);let M=t.from??0,O=t.to,C=0,W=0,b=false,R=-1,I=0,Z=0,se=false,$=false,F=()=>c==="x"?window.scrollX:window.scrollY,y=()=>c==="x"?window.innerWidth:window.innerHeight;function L(){let S=k.getBoundingClientRect(),E=c==="x"?S.left:S.top,re=c==="x"?S.width:S.height,Re=Le({top:E,height:re},F(),y(),j,B);C=Re.tStart,W=Re.tEnd,$&&W===C&&A("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n);}let ee=NaN;function te(S){if(!$)return;let E=O??n.duration??0,re=M+(E-M)*S;re!==ee&&(ee=re,n.currentTime=re),n.style.setProperty("--scroll-draw-progress",String(S)),x?.(S);}let ye=()=>Q(F(),C,W,1);function N(){if(!$||z)return;let S=ye(),E=i?Math.max(R,T(I=Math.max(I,S))):T(S);Z=E,te(E),E>=1&&!se?(se=true,P?.()):E<1&&!i&&(se=false);}let q=Ie(window,[k],ye,N,L),ue=()=>q.hold(b||!$||z);ue();function Se(){if($=true,O===void 0&&(O=n.duration),z){te(1),w?.();return}L(),w?.(),b?te(Z):ue();}n.readyState>=1?Se():n.addEventListener("loadedmetadata",Se,{once:true}),$||L();let fe=z?()=>{}:Ze(S=>{S&&(fe(),z=true,q.hold(true),te(1));});Pe(n,{type:"video",getProgress:()=>Z,getTrigger:()=>({tStart:C,tEnd:W})});function ie(){b&&(b=false,ue());}return {destroy(){q.off(),n.removeEventListener("loadedmetadata",Se),fe(),ke(n);},replay(){R=-1,I=0,se=false,Z=0,ee=NaN,te(0),ie();},pause(){b=true,q.hold(true);},resume:ie,seek(S){let E=Math.min(1,Math.max(0,S));Z=E,R=E,I=0,b=true,q.hold(true),ee=NaN,te(E);},getProgress(){return Z}}}var un=1e4;function kt(e){let{frames:t,count:r}=e;if(typeof t!="function")return ct(e);let n=Number.isFinite(r)?Math.min(Math.max(Math.floor(r),0),un):0,o;try{o=Array.from({length:n},(s,i)=>t(i));}catch{o=["throws"];}return ct({...e,frames:o})}function xr(e,t="<ScrollFrames>"){if(!e||e.getAttribute("aria-hidden")==="true")return;let r=e.getAttribute("role");r==="presentation"||r==="none"||e.getAttribute("aria-label")||e.getAttribute("aria-labelledby")||A(`${t}: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.`,e);}var wt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function fn(e){let t=e>1?[0,e-1]:[0],r=[[0,e-1]];for(let n=0;n<r.length;n++){let[o,s]=r[n];if(s-o<2)continue;let i=o+s>>1;t.push(i),r.push([o,i],[i,s]);}return t}function Mr(e,t){if(typeof window>"u")return wt;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="canvas")return A("scrollFrames: <canvas> element not found:",e),wt;let n=r,{frames:o,trigger:s={},easing:i="linear",once:c=false,axis:m="y",fit:g="cover",triggerElement:w,onReady:P,onLoad:x,onComplete:k,onProgress:z}=t||{},T=Array.isArray(o)?o:null,j=t?.count,B=Math.floor(T?Math.min(j??T.length,T.length):j??NaN);if(!(T||typeof o=="function")||!Number.isFinite(B)||B<1)return A("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",n),wt;let M=t.concurrency??6;(!Number.isFinite(M)||M<1)&&(A("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",t.concurrency),M=6),M=Math.floor(M);let O=n.getContext("2d");if(!O)return A("scrollFrames: the canvas has no 2D context.",n),wt;let C=B-1,W=w??n,b=window.matchMedia("(prefers-reduced-motion: reduce)").matches,R=De(i),I=u=>{let p=R(u);return p===p?p:0},Z=ae(s.start||"top top"),se=ae(s.end||"bottom top"),$=0,F=0,y=false,L=-1,ee=0,te=0,ye=false,N=false,q=false,ue=false,Se=0,fe=-1,ie=new Array(B),S=new Uint8Array(B),E=new Set,re=b?[C]:fn(B),Re=0,K=0,$e=false,Ee=(u,...p)=>{if(u)try{u(...p);}catch(v){typeof reportError=="function"?reportError(v):setTimeout(()=>{throw v});}},he=false,ze=u=>{let p;try{p=T?T[u]:o(u);}catch(v){p=v;}return typeof p=="string"&&p?p:(he||(he=true,A(`scrollFrames: no URL for frame ${u}; it is skipped for its nearest neighbour.`,p)),null)},Fe=()=>m==="x"?window.scrollX:window.scrollY,Te=()=>m==="x"?window.innerWidth:window.innerHeight;function Ce(){!$e&&K===re.length&&($e=true,Ee(x));}function l(){for(;!N&&E.size<M&&Re<re.length;){let u=re[Re++];S[u]||d(u);}}function d(u){S[u]=1;let p=ze(u);if(p===null){K++,queueMicrotask(()=>{N||Ce();});return}let v=new Image,le=false,we=We=>{le||N||(le=true,v.onload=v.onerror=null,E.delete(v),We?ie[u]=v:A("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",p),K++,l(),_(),Ce());};E.add(v),v.decoding="async",v.onerror=()=>we(false),v.src=p,typeof v.decode=="function"?v.decode().then(()=>we(true),()=>{v.complete?we(v.naturalWidth>0):v.onload=()=>we(true);}):v.onload=()=>we(true);}function ne(u){for(let p=0;p<=C;p++){if(ie[u-p])return u-p;if(ie[u+p])return u+p}return -1}function H(){let u=n.clientWidth,p=n.clientHeight;if(!u||!p)return;let v=Math.min(window.devicePixelRatio||1,2),le=Math.round(u*v),we=Math.round(p*v);if(Math.abs(n.width-le)<=1&&Math.abs(n.height-we)<=1)return;n.width=le,n.height=we,fe=-1;let We=n.clientWidth,Oe=n.clientHeight;if(We!==u||Oe!==p){let Be=n.style;We!==u&&Oe!==p?(Be.width=`${u}px`,Be.height=`${p}px`):Be.aspectRatio=`${u} / ${p}`;}}function _(){let u=ne(Se);if(u<0||u===fe)return;let p=ie[u],v=n.width,le=n.height,we=p.naturalWidth||v,We=p.naturalHeight||le,Oe=(g==="contain"?Math.min:Math.max)(v/we,le/We),Be=we*Oe,Ge=We*Oe;O.clearRect(0,0,v,le),O.drawImage(p,(v-Be)/2,(le-Ge)/2,Be,Ge),fe=u,q||(q=true,Ee(P));}function G(u){Se=Math.min(C,Math.max(0,Math.round(u*C))),n.style.setProperty("--scroll-draw-progress",String(u)),_(),Ee(z,u,Se);}function Y(){let u=W.getBoundingClientRect(),p=m==="x"?u.left:u.top,v=m==="x"?u.width:u.height,le=Le({top:p,height:v},Fe(),Te(),Z,se);$=le.tStart,F=le.tEnd,F===$&&v>0&&!b&&!ue&&(ue=true,A("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n));}let _e=()=>Q(Fe(),$,F,1);function oe(){if(b)return;let u=_e(),p=c?Math.max(L,I(ee=Math.max(ee,u))):I(u);te=p,G(p),p>=1&&!ye?(ye=true,Ee(k)):p<1&&!c&&(ye=false);}function He(){te=1,G(1);}H(),b||Y();let be=Ie(window,[W],_e,oe,()=>{H(),b||Y(),_();}),Qe=()=>be.hold(y||b);Qe(),b&&He(),l();let Ye=typeof ResizeObserver=="function"?new ResizeObserver(()=>{H(),_();}):null;Ye?.observe(n);let Ue=b?()=>{}:Ze(u=>{u&&(Ue(),b=true,be.hold(true),re=re.slice(0,Re),S[C]||re.push(C),Ce(),He(),l());});Pe(n,{type:"frames",getProgress:()=>te,getTrigger:()=>({tStart:$,tEnd:F})});function me(){N||!y||(y=false,Qe());}return {destroy(){if(!N){N=true,be.off(),Ye?.disconnect(),Ue();for(let u of E)u.onload=u.onerror=null,u.src="";E.clear(),ke(n);}},replay(){N||(L=-1,ee=0,ye=false,te=0,G(0),me());},pause(){N||(y=true,be.hold(true));},resume:me,seek(u){if(N)return;let p=Math.min(1,Math.max(0,u===u?u:0));te=p,L=p,ee=0,y=true,be.hold(true),G(p);},getProgress(){return te}}}function Rt(e,{triggerElement:t,...r},n){let o=t;return typeof t=="string"&&typeof document<"u"&&(o=document.querySelector(t),o||A(`scrollFrames: triggerElement "${t}" matches nothing; measuring the canvas.`)),Mr(e,{...r,frames:n.frames,triggerElement:o??void 0})}function Lr(e,t){let r=document.createElement("span");r.textContent=t,r.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;user-select:none",e.appendChild(r);}function vt(e=""){let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=e,t}function Or(e){let t=e.textContent??"";return e.textContent="",t.split(/(\s+)/).filter(Boolean).map(r=>{let n=e.appendChild(vt(r)),o=/^\s+$/.test(r);return o?n.style.whiteSpace="pre":n.style.display="inline-block",o?null:n}).filter(r=>r!==null)}function mn(e){let t=e.textContent??"";e.textContent="";let r=[],n=null;for(let o of t){let s=vt(o),i=o===" ";i?s.style.whiteSpace="pre":(s.style.display="inline-block",r.push(s)),i||o>"\u0DFF"?n=null:n||(n=e.appendChild(vt()),n.style.cssText="display:inline-block;white-space:nowrap"),(n??e).appendChild(s);}return r}function Cr(e){let t=Or(e),r=new Map;for(let s of t){let i=s.offsetTop;r.has(i)||r.set(i,[]),r.get(i).push(s);}let n=[],o=Array.from(r.keys()).sort((s,i)=>s-i);for(let s of o){let i=r.get(s),c=vt();c.style.display="inline-block",i.forEach((m,g)=>{let w=m.nextElementSibling;c.appendChild(m),g<i.length-1&&w&&w.style.whiteSpace==="pre"&&c.appendChild(w);}),n.push(c);}return e.textContent="",n.forEach((s,i)=>{e.appendChild(s),i<n.length-1&&e.appendChild(document.createTextNode(" "));}),n}function pn(e,t,r,n){if(r<=1||n===0)return e;n=Math.min(n,1/r);let o=(r-1)*n,s=t*n,i=s+(1-o);return i<=s?e>=s?1:0:it((e-s)/(i-s),0,1)}function dn(e,t){let r=[];if(t?.y!==void 0&&r.push(`translateY(${t.y*(1-e)}px)`),t?.x!==void 0&&r.push(`translateX(${t.x*(1-e)}px)`),t?.rotate!==void 0&&r.push(`rotate(${t.rotate*(1-e)}deg)`),t?.scale!==void 0){let n=t.scale+(1-t.scale)*e;r.push(`scale(${n})`);}return r.join(" ")}var $t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ft(e,t={}){if(typeof window>"u")return $t;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return A("scrollText: element not found:",e),$t;let n=r;return qe(t,(o,s)=>gn(n,o,s))}function gn(e,t,r){let{split:n="words",stagger:o=.04,easing:s="ease-out",from:i={opacity:0,y:24},trigger:c={},once:m=true,onComplete:g}=t,w=De(s,"ease-out"),P=ae(c.start||"top 85%"),x=ae(c.end||"top 40%"),k=e.innerHTML,z=e.textContent??"",T;n==="chars"?T=mn(e):n==="lines"?T=Cr(e):T=Or(e),Lr(e,z);let j=T.length;function B(y,L){i?.opacity!==void 0&&(y.style.opacity=String(i.opacity+(1-i.opacity)*L));let ee=dn(L,i);ee&&(y.style.transform=ee);}function M(y){e.style.setProperty("--scroll-draw-progress",String(y)),T.forEach((L,ee)=>{let te=w(pn(y,ee,j,o));B(L,te);});}if(r)return M(1),g?.(),{...$t,destroy:()=>{e.innerHTML=k;},getProgress:()=>1};M(0);let O=0,C=0,W=-1,b=0,R=false;function I(){({tStart:O,tEnd:C}=Le(e.getBoundingClientRect(),window.scrollY,window.innerHeight,P,x));}let Z=()=>Q(window.scrollY,O,C,1);function se(){let y=m?W=Math.max(W,Z()):Z();b=y,M(y),y>=1&&!R?(R=true,g?.()):y<1&&!m&&(R=false);}I();let $=Ie(window,[e],Z,se,()=>{n==="lines"&&(e.innerHTML=k,T=Cr(e),Lr(e,z),M(b)),I();});Pe(e,{type:"text",getProgress:()=>b,getTrigger:()=>({tStart:O,tEnd:C})});let F=()=>$.hold(false);return {destroy(){$.off(),e.innerHTML=k,ke(e);},replay(){W=-1,R=false,b=0,M(0),F();},pause:()=>$.hold(true),resume:F,seek(y){$.hold(true),M(b=W=it(y,0,1));},getProgress(){return b}}}var rt=e=>typeof e=="function"?e():vue.unref(e);function Ve(e,t,r,n=ct){let o=null,s=t(),i=()=>{o?.destroy(),o=e.value?r(e.value,gr(s,()=>s),s):null;};vue.onMounted(i),vue.watch(()=>n(s=t()),i),vue.onUnmounted(()=>{o?.destroy(),o=null;});}function wn(e={}){let t=vue.ref(null);return Ve(t,()=>rt(e),Lt),t}var Ar={preset:0,selector:0,speed:0,fade:1,easing:0,trigger:0,stagger:0,direction:0,once:1,debug:1,axis:0,scrollContainer:0,autoReverse:1,delay:0,strokeColor:0,strokeWidth:0,fillOpacity:0,clip:2,waypoints:0,velocityScale:3,threshold:0,rootMargin:0,repeat:0,repeatDelay:0,morphTo:0,onProgress:0,onStart:0,onComplete:0,onEnter:0,onLeave:0,onEnterBack:0,onLeaveBack:0,autoplay:1,duration:0,native:1},vn=[null,Boolean,[Boolean,String],[Boolean,Number]],Ht=e=>({type:e,default:void 0}),Dt=vue.defineComponent({name:"ScrollDraw",props:Object.fromEntries(Object.entries(Ar).map(([e,t])=>[e,t?Ht(vn[t]):null])),setup(e,{slots:t}){let r=vue.ref(null);return Ve(r,()=>{let n={};for(let o in Ar){let s=e[o];s!=null&&(n[o]=s);}return n},Lt),()=>vue.h("div",{ref:r},t.default?.())}});function Sn(e){let t=vue.ref(null);return Ve(t,()=>rt(e),Ct),t}var It=vue.defineComponent({name:"ScrollAnimate",props:{options:{type:Object,required:true}},setup(e,{slots:t}){let r=vue.ref(null);return Ve(r,()=>e.options,Ct),()=>vue.h("div",{ref:r},t.default?.())}});function En(e){let t=vue.ref(null);return Ve(t,()=>rt(e),At),t}var Nt=vue.defineComponent({name:"ScrollCounter",props:{to:{type:Number,required:true},from:{type:Number},format:{type:Function},easing:{type:[String,Function]},trigger:{type:Object},once:Ht(Boolean),decimals:{type:Number},onComplete:{type:Function}},setup(e){let t=vue.ref(null);Ve(t,()=>{let n={to:e.to};return e.from!=null&&(n.from=e.from),e.format!=null&&(n.format=e.format),e.easing!=null&&(n.easing=e.easing),e.trigger!=null&&(n.trigger=e.trigger),e.once!=null&&(n.once=e.once),e.decimals!=null&&(n.decimals=e.decimals),e.onComplete!=null&&(n.onComplete=e.onComplete),n},At);let r=Er({to:e.to,decimals:e.decimals,format:e.format});return ()=>vue.h("span",{ref:t},r)}});function Tn(e={}){let t=vue.ref(null);return Ve(t,()=>rt(e),Pt),t}var Vt=vue.defineComponent({name:"ScrollVideo",props:{src:{type:String,required:true},options:{type:Object},muted:{type:Boolean,default:true},playsInline:{type:Boolean,default:true},class:{type:String}},setup(e){let t=vue.ref(null);return Ve(t,()=>e.options??{},Pt),()=>vue.h("video",{ref:t,src:e.src,muted:e.muted,playsinline:e.playsInline,preload:"auto",class:e.class})}});function xn(e){let t=vue.ref(null);return Ve(t,()=>rt(e),Rt,kt),t}var Pr={frames:0,count:0,trigger:0,easing:0,once:1,axis:0,triggerElement:0,fit:0,concurrency:0,onReady:0,onLoad:0,onComplete:0,onProgress:0},_t=vue.defineComponent({name:"ScrollFrames",props:Object.fromEntries(Object.entries(Pr).map(([e,t])=>[e,t?Ht(Boolean):e==="frames"?{required:true}:null])),setup(e){let t=vue.ref(null);return Ve(t,()=>{let r={};for(let n in Pr){let o=e[n];o!=null&&(r[n]=o);}return r},Rt,kt),vue.onMounted(()=>xr(t.value)),()=>vue.h("canvas",{ref:t,role:"img"})}});function Mn(e={}){let t=vue.ref(null);return Ve(t,()=>rt(e),Ft),t}var zt=vue.defineComponent({name:"ScrollText",props:{options:{type:Object},tag:{type:String,default:"p"}},setup(e,{slots:t}){let r=vue.ref(null);return Ve(r,()=>e.options??{},Ft),()=>vue.h(e.tag,{ref:r},t.default?.())}});function cs(){return {install(e){e.component("ScrollDraw",Dt),e.component("ScrollAnimate",It),e.component("ScrollCounter",Nt),e.component("ScrollVideo",Vt),e.component("ScrollFrames",_t),e.component("ScrollText",zt);}}}exports.ScrollAnimate=It;exports.ScrollCounter=Nt;exports.ScrollDraw=Dt;exports.ScrollFrames=_t;exports.ScrollText=zt;exports.ScrollVideo=Vt;exports.createScrollDrawPlugin=cs;exports.useScrollAnimate=Sn;exports.useScrollCounter=En;exports.useScrollDraw=wn;exports.useScrollFrames=xn;exports.useScrollText=Mn;exports.useScrollVideo=Tn;
|
package/dist/nuxt/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {b,d,f,h,j,l}from'../chunk-
|
|
1
|
+
import {b,d,f,h,j,l}from'../chunk-IJPLLT7E.mjs';export{d as ScrollAnimate,f as ScrollCounter,b as ScrollDraw,j as ScrollFrames,l as ScrollText,h as ScrollVideo,c as useScrollAnimate,e as useScrollCounter,a as useScrollDraw,i as useScrollFrames,k as useScrollText,g as useScrollVideo}from'../chunk-IJPLLT7E.mjs';import'../chunk-NJV6S5LD.mjs';import'../chunk-KN2YB54Z.mjs';import'../chunk-HJTHOZK5.mjs';import'../chunk-GBFWTY5L.mjs';import'../chunk-UF3MO5XQ.mjs';import'../chunk-OGFXZCKC.mjs';import'../chunk-HAGTU5EX.mjs';import'../chunk-XLXVGQ3P.mjs';import'../chunk-7LDSB4FT.mjs';import'../chunk-UPWWULKI.mjs';import'../chunk-XC5NR2MU.mjs';import'../chunk-YOOPMYT6.mjs';import'../chunk-2PYLM3E7.mjs';import'../chunk-NV6YTPHI.mjs';import'../chunk-IXR6RML7.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-5PJEKEEP.mjs';import'../chunk-EBU6E26L.mjs';import'../chunk-LFSU6LR3.mjs';function x(){return {install(o){o.component("ScrollDraw",b),o.component("ScrollAnimate",d),o.component("ScrollCounter",f),o.component("ScrollVideo",h),o.component("ScrollFrames",j),o.component("ScrollText",l);}}}export{x as createScrollDrawPlugin};
|
package/dist/react/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
'use strict';var
|
|
2
|
+
'use strict';var cn=require('react'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var cn__default=/*#__PURE__*/_interopDefault(cn);var Ke=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function z(e,...n){Ke&&console.warn(`[svg-scroll-draw] ${e}`,...n);}function Ar({tension:e=2.5,friction:n=2.2}={}){return t=>1-Math.cos(t*Math.PI*e)*Math.pow(1-t,n)}function Or({bounces:e=3,decay:n=.5}={}){let t=Math.max(1,Math.round(e)),r=Math.max(.01,Math.min(.99,n)),o=Math.sqrt(r),s=0,i=[];for(let p=0;p<t;p++){let b=Math.pow(o,p);i.push(b),s+=b;}let l=[0],c=0;for(let p=0;p<t;p++)c+=i[p]/s,l.push(c);return p=>{if(p<=0)return 0;if(p>=1)return 1;for(let b=0;b<t;b++)if(p<=l[b+1]){let S=(p-l[b])/(l[b+1]-l[b]);if(b===0)return S*(2-S);let T=1-Math.pow(r,b);return T+(1-T)*(2*S-1)*(2*S-1)}return 1}}function kr({amplitude:e=1,period:n=.4}={}){let t=Math.max(1,e),r=Math.max(.1,n),o=t<=1?r/4:r/(2*Math.PI)*Math.asin(1/t);return s=>s<=0?0:s>=1?1:t*Math.pow(2,-10*s)*Math.sin((s-o)*(2*Math.PI)/r)+1}var Je={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:Ar(),bounce:Or(),elastic:kr()};function $r(e,n,t,r){let o=(s,i,l)=>((1+3*s-3*i)*l+3*i-6*s)*l*l+3*s*l;return s=>{if(s<=0||s>=1)return +(s>0);let i=s;for(let l=0;l<8;l++)i-=(o(e,t,i)-s)/((3*(1+3*e-3*t)*i+6*t-12*e)*i+3*e);if(!(i>=0&&i<=1&&Math.abs(o(e,t,i)-s)<1e-9))for(let l=0,c=0,p=1;l<30;l++)i=(c+p)/2,o(e,t,i)<s?c=i:p=i;return o(n,r,i)}}function xt(e){let n=/^cubic-bezier\((.*)\)$/.exec(e==="ease"?"cubic-bezier(.25,.1,.25,1)":e.trim()),t=n?n[1].split(",").map(parseFloat):[];if(t.length===4&&t.every(Number.isFinite)&&t[0]*(1-t[0])>=0&&t[2]*(1-t[2])>=0)return [$r(t[0],t[1],t[2],t[3]),`cubic-bezier(${t})`]}var It=new Set;function Le(e,n="linear"){if(typeof e=="function")return e;if(e==null)return Je[n];if({}.hasOwnProperty.call(Je,e))return Je[e];let t=xt(String(e));return t?t[0]:(!It.has(e)&&It.add(e)&&z(`Unknown easing ${JSON.stringify(e)}: use a name, cubic-bezier() or a function.`),Je[n])}function st(e,n,t){return Math.min(t,Math.max(n,e))}function Z(e="top bottom"){let n=e.trim();if(/^\d+(\.\d+)?%$/.test(n))return {element:"top",viewport:n};let[t="top",r="bottom"]=n.split(/\s+/).filter(Boolean);return {element:t,viewport:r}}var zt=(e,n)=>e==="top"?0:e==="center"?.5:e==="bottom"?1:n;function _t(e,n,t,r){return e+t+n*zt(r,0)}function Vt(e,n){return n*(/^\d+(\.\d+)?%$/.test(e)?parseFloat(e)/100:zt(e,1))}function j(e,n,t,r){return t===n?0:st((e-n)/(t-n)*r,0,1)}function he(e,n,t,r,o){let s=_t(e.top,e.height,n,r.element)-Vt(r.viewport,t),i=_t(e.top,e.height,n,o.element)-Vt(o.viewport,t);return {tStart:s,tEnd:i}}function Ze(e,n,t){let r=e.getBoundingClientRect(),o=t==="x"?r.width:r.height;return n?{top:t==="x"?r.left-n.getBoundingClientRect().left-n.clientLeft+n.scrollLeft:r.top-n.getBoundingClientRect().top-n.clientTop+n.scrollTop,height:o,scroll:0}:{top:t==="x"?r.left:r.top,height:o,scroll:t==="x"?window.scrollX:window.scrollY}}function mt(e){let n=parseFloat(e.getAttribute("pathLength")??"");if(n>0)return n;let t=e.tagName.toLowerCase();if(t==="rect"){let r=parseFloat(e.getAttribute("width")??"0"),o=parseFloat(e.getAttribute("height")??"0");return 2*(r+o)}if(t==="circle"){let r=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*r}return e.getTotalLength()}function pt(e){return `${e} ${e*2}`}function Wt(e){let n=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(n)return [parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16),parseInt(n[3]+n[3],16)];let t=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(t)return [parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)];let r=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return r?[parseInt(r[1]),parseInt(r[2]),parseInt(r[3])]:null}function dt(e,n,t){let r=Wt(e),o=Wt(n);return !r||!o?e:`rgb(${Math.round(r[0]+(o[0]-r[0])*t)},${Math.round(r[1]+(o[1]-r[1])*t)},${Math.round(r[2]+(o[2]-r[2])*t)})`}var Gt={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var Rr="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Fr="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Bt=33;function Hr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function Nr(e){let n=[];for(let t=0;t<Bt;t++){let r=t/(Bt-1);n.push(String(Math.round(e(r)*1e5)/1e5));}return `linear(${n.join(",")})`}function gt(e){switch(e){case "linear":return "linear";case "ease-in":return Rr;case "ease-out":return Fr;case "ease-in-out":return Hr()?Nr(Je["ease-in-out"]):null;default:return xt(e)?.[1]??null}}var jt=Symbol.for("svg-scroll-draw.registry");function qt(){let e=globalThis;return e[jt]||(e[jt]=new Map)}function $e(e,n){qt().set(e,n);}function Re(e){qt().delete(e);}function Be(e){if(typeof window>"u"||typeof window.matchMedia!="function")return ()=>{};let n=window.matchMedia("(prefers-reduced-motion: reduce)"),t=o=>e(!!o.matches);if(typeof n.addEventListener=="function")return n.addEventListener("change",t),()=>n.removeEventListener("change",t);let r=n;return r.addListener?.(t),()=>r.removeListener?.(t)}function je(e,n){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return n(e,true);let t=n(e,false),r=Be(s=>{if(!s)return;r();let i=(t.getProgress?.()??0)>=1;t.destroy(),t=n(i?{...e,onComplete:void 0}:e,true);}),o={};for(let s of Object.keys(t))o[s]=(...i)=>t[s]?.(...i);return o.destroy=()=>{r(),t.destroy();},o}var it,ht=new Set,yt=new WeakMap,at=new Map,Ut=e=>{let n=e.getBoundingClientRect();return n.width+" "+n.height};function Dr(e){let n=new Set;for(let t of e)for(;t&&t!==document.body;t=t.parentElement)for(let r=t;r;r=r.previousElementSibling)n.add(r);return n}function Yt(e,n){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let t=()=>n();it??(it=new ResizeObserver(o=>{let s=false;for(let{target:i}of o)yt.get(i)!==Ut(i)&&(s=true),yt.set(i,"");s&&ht.forEach(i=>i());})),ht.add(t);let r=Dr(e);return [document.body,document.documentElement].forEach(o=>o&&r.add(o)),r.forEach(o=>{yt.has(o)||yt.set(o,Ut(o)),at.set(o,(at.get(o)??0)+1),it.observe(o);}),()=>{ht.delete(t)&&(r.forEach(o=>{let s=(at.get(o)??1)-1;if(s)return void at.set(o,s);at.delete(o),it?.unobserve(o);}),ht.size||(it?.disconnect(),it=void 0));}}function Ce(e,n,t,r,o){let s,i=NaN,l,c,p=()=>{s=0,r(),!l&&!s&&(i=t())>0&&i<1&&(s=requestAnimationFrame(p));},b=()=>{!s&&!l&&t()!==i&&(s=requestAnimationFrame(p));},S=W=>{l=W,cancelAnimationFrame(s),s=i=NaN,b();},T=()=>{clearTimeout(c),o(),b();},O=()=>{clearTimeout(c),c=setTimeout(T,150);},R=Yt(n,O),v=W=>{e[W]("scroll",b,{passive:true}),window[W]("resize",O),window[W]("orientationchange",O);};return v("addEventListener"),b(),{hold:S,remeasure:T,off(){S(true),v("removeEventListener"),R(),clearTimeout(c);}}}var Ir=0;function _r(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Qt(e,n){let t="";try{t=getComputedStyle(e).getPropertyValue(n).trim();}catch{}return t||(e.getAttribute(n)??"").trim()}var Xt=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function Vr(e){if(!Ke)return;let n=Qt(e,"stroke");if(!n||n==="none"){z("Element has no stroke \u2014 path will not be visible.",e);return}let t=(e.getAttribute("fill")??"").trim();t&&!Xt.has(t)&&!Xt.has(Qt(e,"fill"))&&z("Element has a fill \u2014 it may obscure the stroke animation.",e);}function zr(e,n,t){let r=document.createElement("div");r.setAttribute("data-svg-scroll-draw-debug",""),r.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function o(){let s=t==="x"?window.scrollX:window.scrollY,i=e-s,l=n-s,c=t==="x";r.innerHTML=`
|
|
3
3
|
<div style="position:absolute;${c?`left:${i}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${i}px;left:0;right:0;border-top:2px dashed #22c55e;`}padding:2px 6px;color:#22c55e;background:rgba(0,0,0,.6)">\u25B6 start</div>
|
|
4
|
-
<div style="position:absolute;${c?`left:${l}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${l}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(r),window.addEventListener("scroll",o,{passive:true}),o(),{el:r,destroy(){window.removeEventListener("scroll",o),r.remove();}}}var Kt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,Jt=/[MmLlHhVvCcSsQqTtAaZz]/g;function Vr(e,n,t){if(!Ke)return;let r=(e.match(Jt)??[]).join("").toUpperCase(),o=(n.match(Jt)??[]).join("").toUpperCase(),s=(e.match(Kt)??[]).length,i=(n.match(Kt)??[]).length;if(r!==o){z(`morphTo: command sequence differs (${r||"\u2205"} \u2192 ${o||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,t);return}s!==i&&z(`morphTo: coordinate count differs (${s} \u2192 ${i}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,t);}function zr(e,n,t){let r=(n.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),o=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let i=parseFloat(s),l=r[o++]??i;return String(+(i+(l-i)*t).toFixed(4))})}function Zt(e,n={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:je(n,(t,r)=>Wr(e,t,r))}function Wr(e,n,t){let{preset:r,...o}=n,s=r?{...Gt[r],...o}:o,{selector:i="path, polyline, line, polygon, rect, circle",speed:l=1,fade:c=false,easing:p="linear",trigger:y={},stagger:v=0,direction:S="forward",once:W=false,debug:B=false,axis:b="y",scrollContainer:R,autoReverse:K=false,delay:k=0,strokeColor:C,strokeWidth:x,fillOpacity:O,waypoints:h,velocityScale:$=false,threshold:D=0,rootMargin:te="0px",repeat:q=0,repeatDelay:F=0,morphTo:I,clip:M,autoplay:J=false,duration:T=1e3,native:A=true,onProgress:ye,onStart:_,onComplete:Y,onEnter:ue,onLeave:Se,onEnterBack:fe,onLeaveBack:ae}=s,P=M===true?"left":typeof M=="string"?M:false,L=Le(p),oe=ee(y.start||"top bottom"),Fe=ee(y.end||"bottom top"),Z=typeof R=="string"?document.querySelector(R):R??null,He=Array.isArray(C)?C[0]:null,Te=Array.isArray(C)?C[1]:typeof C=="string"?C:null,be=Array.isArray(x)?x[0]:null,_e=Array.isArray(x)?x[1]:typeof x=="number"?x:null,Ne=Array.isArray(O)?O[0]:null,xe=Array.isArray(O)?O[1]:typeof O=="number"?O:null;function Ae(a){let m=a*100;switch(P){case "right":return `inset(0 0 0 ${100-m}%)`;case "top":return `inset(0 0 ${100-m}% 0)`;case "bottom":return `inset(${100-m}% 0 0 0)`;case "center":return `circle(${a*150}% at 50% 50%)`;default:return `inset(0 ${100-m}% 0 0)`}}let u=P?[]:Array.from(e.querySelectorAll(i)),g=[],se=[],H=0,G=0,U=v,Q=0,Ie=0,ie=false,De=false,we=0,Qe=-1,qe=[],Ue=-1,me=false,f=0,d=0,E,le=false,ve=null;function Ve(){ve?.destroy(),ve=null;}let ke=new Set,ze=NaN,We=true,ut=-1,Lt=performance.now(),Xe=NaN;function ft(){return Z?b==="x"?Z.scrollLeft:Z.scrollTop:b==="x"?window.scrollX:window.scrollY}function Ct(){return Z?b==="x"?Z.clientWidth:Z.clientHeight:b==="x"?window.innerWidth:window.innerHeight}function At(){let a=Ze(e,Z,b);return he(a,a.scroll,Ct(),oe,Fe)}function vr(){let a=G-H,m=u.length-1,w=Z??document.documentElement,V=b==="x"?"Width":"Height";if(U=v,v>0&&m>0&&a>0){let pe=w[`scroll${V}`]-w[`client${V}`]-1-H-a/l;pe>=0&&(U=Math.min(v,pe/(m*a)));}let ce=Math.max(0,m)*U*a,Me=a/Math.min(l,1);Q=H+Math.min(0,ce,Me,ce+Me),Ie=H+Math.max(0,ce,Me,ce+Me);}function kt(){(({tStart:H,tEnd:G}=At())),vr(),B&&Ke&&(Ve(),ve=_r(H,G,b));}function vt(a,m=At){$e(e,{type:"draw",getProgress:()=>a.getProgress(),getTrigger:m});let w=a.destroy;return a.destroy=()=>{w.call(a),Re(e);},a}function Ot(a,m){return W&&!K?Math.max(Qe,L(qe[a]=Math.max(qe[a]??0,m))):L(m)}function Er(a,m){if(e.style.setProperty("--scroll-draw-progress",String(a)),P){let w=m==="reverse"?1-a:a;e.style.clipPath=Ae(w);return}u.forEach((w,V)=>Et(w,V,a,m));}function Et(a,m,w,V){a.style.strokeDashoffset=V==="reverse"?`${g[m]*w}`:`${g[m]*(1-w)}`,c&&(a.style.opacity=V==="reverse"?`${1-w}`:`${w}`),He&&Te?a.style.stroke=dt(He,Te,w):Te&&(a.style.stroke=Te),be!==null&&_e!==null?a.style.strokeWidth=`${be+(_e-be)*w}`:_e!==null&&(a.style.strokeWidth=`${_e}`),Ne!==null&&xe!==null?a.style.fillOpacity=`${Ne+(xe-Ne)*w}`:xe!==null&&(a.style.fillOpacity=`${xe}`),I&&a.tagName.toLowerCase()==="path"&&se[m]&&a.setAttribute("d",zr(se[m],I,w));}function St(){if(e.style.setProperty("--scroll-draw-progress","0"),P){e.style.clipPath=Ae(S==="reverse"?1:0);return}u.forEach((a,m)=>{a.style.strokeDasharray=pt(g[m]),a.style.strokeDashoffset=S==="reverse"?"0":`${g[m]}`,c?a.style.opacity=S==="reverse"?"1":"0":a.style.opacity="",He&&(a.style.stroke=He),be!==null&&(a.style.strokeWidth=`${be}`),Ne!==null&&(a.style.fillOpacity=`${Ne}`),I&&a.tagName.toLowerCase()==="path"&&se[m]&&a.setAttribute("d",se[m]);});}function rt(a,m){let w=a.getAttribute("d"),V=mt(a);if(I&&se[m]){a.setAttribute("d",I);let ce=mt(a);a.setAttribute("d",se[m]),V=Math.max(mt(a),ce),a.setAttribute("d",w);}g[m]=V,a.style.strokeDasharray=pt(V);}if(u.forEach((a,m)=>{Ir(a);let w=a.tagName.toLowerCase()==="path";w?se.push(a.getAttribute("d")??""):se.push(""),rt(a,m);let V=g[m];I&&(w?Vr(se[se.length-1],I,a):z(`morphTo only applies to <path> elements \u2014 ignored on <${a.tagName}>.`,a)),t?(a.style.strokeDashoffset=S==="reverse"?`${V}`:"0",c&&(a.style.opacity="1"),Te&&(a.style.stroke=Te),_e!==null&&(a.style.strokeWidth=`${_e}`),xe!==null&&(a.style.fillOpacity=`${xe}`),I&&a.tagName.toLowerCase()==="path"&&a.setAttribute("d",I)):(a.style.strokeDashoffset=S==="reverse"?"0":`${V}`,c?a.style.opacity=S==="reverse"?"1":"0":a.style.opacity="",He&&(a.style.stroke=He),be!==null&&(a.style.strokeWidth=`${be}`),Ne!==null&&(a.style.fillOpacity=`${Ne}`));}),t)return P&&(e.style.clipPath=Ae(1)),Y?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};P&&(e.style.clipPath=Ae(S==="reverse"?1:0));let $t=typeof p=="string"?gt(p):null;function Sr(){return !(A===false||J||B&&Ke||!Dr()||!u.length||!$t||P||b!=="y"||Z||l!==1||v!==0||W||K||$!==false||I||h||q||k>0||ye||_||Y||ue||Se||fe||ae||C!=null||x!=null||O!=null||(y.start||"top bottom").trim()!=="top bottom"||(y.end||"bottom top").trim()!=="bottom top")}function Tr(){let a=++Nr,m=`svg-scroll-draw-${a}`,w=`svg-scroll-draw-host-${a}`,V=`--svg-scroll-draw-${a}`,ce=S==="reverse"?"0":"var(--ssd-len)",Me=S==="reverse"?"var(--ssd-len)":"0",pe=`stroke-dashoffset:${ce};`,re=`stroke-dashoffset:${Me};`;c&&(pe+=`opacity:${S==="reverse"?1:0};`,re+=`opacity:${S==="reverse"?0:1};`);let ne=document.createElement("style");ne.setAttribute("data-svg-scroll-draw",""),ne.textContent=`@keyframes ${m}{from{${pe}}to{${re}}}.${w}{view-timeline-name:${V};view-timeline-axis:block;}.${m}{animation-name:${m};animation-duration:auto;animation-timing-function:${$t};animation-fill-mode:both;animation-timeline:${V};animation-range:cover 0% cover 100%;}`,document.head.appendChild(ne),e.classList.add(w);function Ee(N,X){N.style.setProperty("--ssd-len",String(g[X])),N.style.strokeDasharray=pt(g[X]),N.style.strokeDashoffset="",N.style.opacity="",N.style.animationPlayState="",N.classList.add(m);}u.forEach(Ee);let de=false,Pe=-1;function Oe(){if(Pe>=0)return Pe;let N=e.getBoundingClientRect(),{tStart:X,tEnd:ge}=he({top:N.top,height:N.height},ft(),Ct(),oe,Fe);return L(j(ft(),X,ge,l))}return {destroy(){e.classList.remove(w),u.forEach(N=>{N.classList.remove(m),N.style.removeProperty("--ssd-len"),N.style.animationPlayState="";}),ne.remove();},replay(){de=false,Pe=-1,u.forEach(Ee);},pause(){de=true,u.forEach(N=>{N.style.animationPlayState="paused";});},resume(){de&&(de=false,u.forEach(N=>{N.style.animationPlayState="running";}));},seek(N){let X=Math.min(1,Math.max(0,N));Pe=X,de=true,u.forEach((ge,Ge)=>{ge.classList.remove(m),ge.style.strokeDashoffset=S==="reverse"?`${g[Ge]*X}`:`${g[Ge]*(1-X)}`,c&&(ge.style.opacity=S==="reverse"?`${1-X}`:`${X}`);});},getProgress(){return Oe()},refresh(){u.forEach((N,X)=>{rt(N,X),N.style.setProperty("--ssd-len",String(g[X]));});}}}if(Sr())return vt(Tr());function xr(){let a=Math.max(1,T),m=P?a:a*(1+Math.max(0,u.length-1)*v),w=0,V=0,ce=false;function Me(Pe){let Oe=true,N=Math.min(1,Math.max(0,Pe/m));if(P){let X=Math.min(1,Math.max(0,Pe/a)),ge=L(X);f=ge,e.style.setProperty("--scroll-draw-progress",String(ge)),e.style.clipPath=Ae(S==="reverse"?1-ge:ge),ye?.(ge),X<1&&(Oe=false);}else {u.forEach((ge,Ge)=>{let Pr=Ge*v*a,Dt=Math.min(1,Math.max(0,(Pe-Pr)/a));Et(ge,Ge,L(Dt),S),Dt<1&&(Oe=false);});let X=L(N);f=X,ye?.(X),e.style.setProperty("--scroll-draw-progress",String(X));}if(h){let X=L(N);for(let ge in h){let Ge=parseFloat(ge);X>=Ge&&!ke.has(Ge)&&(ke.add(Ge),h[ge]?.());}}return Oe}function pe(Pe){if(me)return;let Oe=Pe-w;De||(De=true,_?.());let N=Me(Oe);if(N&&!ie){ie=true,Me(m),Y?.(),d<(q==="infinite"?1/0:q??0)&&(d++,E=setTimeout(()=>{w=performance.now(),De=false,ie=false,ke.clear(),St(),we=requestAnimationFrame(pe);},F));return}N||(we=requestAnimationFrame(pe));}function re(){cancelAnimationFrame(we),clearTimeout(E),w=performance.now(),V=0,me=false,De=false,ie=false,d=0,ce=true,f=0,ke.clear(),St(),we=requestAnimationFrame(pe);}let ne=new IntersectionObserver(Pe=>{Pe.forEach(Oe=>{Oe.isIntersecting&&!(W&&ie)?re():!Oe.isIntersecting&&!W&&!ie&&(cancelAnimationFrame(we),clearTimeout(E),ce=false);});},{root:Z??null,threshold:D,rootMargin:te}),Ee;function de(){clearTimeout(Ee),Ee=setTimeout(()=>u.forEach(rt),150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),k>0?setTimeout(()=>ne.observe(e),k):ne.observe(e),{destroy(){cancelAnimationFrame(we),clearTimeout(E),ne.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),clearTimeout(Ee);},replay(){d=0,re();},pause(){me||!ce||(me=true,V=performance.now()-w,cancelAnimationFrame(we));},resume(){me&&(me=false,ce=true,w=performance.now()-V,we=requestAnimationFrame(pe));},seek(Pe){let Oe=Math.min(1,Math.max(0,Pe));f=Oe,me=true,V=Oe*m,w=performance.now()-V,cancelAnimationFrame(we),Me(V);},getProgress(){return f},refresh(){clearTimeout(Ee),u.forEach(rt);}}}if(J)return vt(xr());kt();let Rt=()=>j(ft(),Q,Ie,1);function Ft(){ie=true,Y?.(),d<(q==="infinite"?1/0:q)&&(d++,E=setTimeout(()=>{le=true;},F));}function Ht(){Qe=-1,qe=[],De=false,ie=false,le=false,ke.clear(),St(),We=true;}function Mr(){let a=performance.now(),m=ft();if(le&&Rt()%1&&Ht(),!We&&$===false&&m===ze)return;We=false,ze=m;let w=l;if($!==false){let re=a-Lt,ne=re>0?Math.abs(m-(ut<0?m:ut))/re:0;w=l*Math.max(.2,1+ne*(typeof $=="number"?$:1)*.04);}ut=m,Lt=a;let V=K?Ue===-1||m>=Ue?"forward":"reverse":S;Ue=m;let ce=G-H,Me=true,pe=ce===0?0:(m-H)/ce;if(isNaN(Xe)||(Xe<=0&&pe>0&&ue?.(),Xe<1&&pe>=1&&Se?.(),Xe>=1&&pe<1&&fe?.(),Xe>0&&pe<=0&&ae?.()),Xe=pe,P){let re=Ot(0,j(m,H,G,w));f=re,e.style.setProperty("--scroll-draw-progress",String(re));let ne=V==="reverse"?1-re:re;e.style.clipPath=Ae(ne),ye?.(re),!De&&j(m,H,G,w)>0&&(De=true,_?.()),re>=1&&!ie?Ft():re<1&&!W&&(ie=false);return}if(u.forEach((re,ne)=>{let Ee=ne*U*ce,de=Ot(ne,j(m,H+Ee,G+Ee,w));Et(re,ne,de,V),ne===0&&(f=de,ye?.(de),e.style.setProperty("--scroll-draw-progress",String(de))),de<1&&(Me=false);}),h){let re=L(j(m,H,G,w));for(let ne in h){let Ee=parseFloat(ne);re>=Ee&&!ke.has(Ee)&&(ke.add(Ee),h[ne]?.());}}!De&&j(m,H,G,w)>0&&(De=true,_?.()),Me&&!ie?Ft():!Me&&!W&&(ie=false);}let nt=Ce(Z??window,[e],Rt,Mr,()=>{let a=g.join();u.forEach(rt),kt(),We=true,g.join()!==a&&ot();}),Tt=k>0;function ot(){nt.hold(me||Tt);}let Nt;return Tt&&(Nt=setTimeout(()=>{Tt=false,ot();},k)),ot(),vt({destroy(){clearTimeout(E),clearTimeout(Nt),nt.off(),Ve();},replay(){Ht(),Ue=-1,ut=-1,d=0,me=false,f=0,clearTimeout(E),ot();},pause(){me=true,nt.hold(true);},resume(){me&&(me=false,We=true,ot());},seek(a){let m=Math.min(1,Math.max(0,a));f=m,Qe=m,qe=[],me=true,nt.hold(true),Er(m,S),We=true;},getProgress(){return f},refresh:nt.remeasure},()=>({tStart:H,tEnd:G}))}var er=new WeakMap,Gr=0;function lt(e){return JSON.stringify(e,(n,t)=>{if(typeof t=="function")return "\u0192";if(typeof Element<"u"&&t instanceof Element){let r=er.get(t);return r===void 0&&er.set(t,r=++Gr),`el#${r}`}return t})}function tr(e,n){let t={...e};for(let r of Object.keys(t))typeof t[r]=="function"&&(t[r]=(...o)=>n()[r]?.(...o));return t}function Br(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function rr(e){let n=[],t=/([\w]+)\(([^)]*)\)/g,r;for(;(r=t.exec(e))!==null;){let o=[],s=[],i=r[2].trim();if(i)for(let l of i.split(/[\s,]+/)){let c=l.match(/^([-+]?[\d.eE]+)(.*)$/);o.push(c?parseFloat(c[1]):0),s.push(c?c[2]:"");}n.push({fn:r[1],nums:o,units:s});}return n}function jr(e,n,t){let r=rr(e),o=rr(n);return r.length===0||r.length!==o.length?t<1?e:n:r.map((s,i)=>{let l=o[i];return s.fn!==l.fn||s.nums.length!==l.nums.length?t<1?`${s.fn}(${s.nums.map((c,p)=>`${c}${s.units[p]}`).join(", ")})`:`${l.fn}(${l.nums.map((c,p)=>`${c}${l.units[p]}`).join(", ")})`:`${s.fn}(${s.nums.map((c,p)=>`${c+(l.nums[p]-c)*t}${s.units[p]}`).join(", ")})`}).join(" ")}function nr(e,n,t){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*t);let r=String(e),o=String(n);if(Br(r))return dt(r,o,t);if(r.includes("("))return jr(r,o,t);let s=r.match(/^([-+]?[\d.]+)(.*)$/),i=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&i){let l=parseFloat(s[1]),c=parseFloat(i[1]);return `${l+(c-l)*t}${s[2]||i[2]}`}return t<1?r:o}function qr(e){return e.replace(/([A-Z])/g,n=>`-${n.toLowerCase()}`)}var Ur=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),Yr=0,or="--scroll-draw-progress";function Qr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var ir={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function ar(e,n){return typeof window>"u"?ir:n.respectReducedMotion===false?sr(e,n,false):je(n,(t,r)=>sr(e,t,r))}function sr(e,n,t){let{props:r,trigger:o={},easing:s="ease-out",speed:i=1,once:l=false,axis:c="y",scrollContainer:p,native:y=true,velocityScale:v=false,triggerElement:S,onProgress:W,onComplete:B,onEnter:b,onLeave:R,onEnterBack:K,onLeaveBack:k}=n,C=Le(s,"ease-out"),x=ee(o.start||"top bottom"),O=ee(o.end||"bottom top"),h=S??e,$=typeof p=="string"?document.querySelector(p):p??null,D=Object.entries(r).map(([u,g])=>({prop:qr(u),from:Array.isArray(g)?g[0]:"",to:Array.isArray(g)?g[1]:g}));function te(){let u=window.getComputedStyle(e);for(let g of D)g.from===""&&(g.from=u.getPropertyValue(g.prop).trim()||"0");}function q(){for(let u of D)e.style.setProperty(u.prop,String(u.to));}let F=new Map;for(let u of [...D.map(g=>g.prop),or])F.set(u,e.style.getPropertyValue(u));function I(){for(let[u,g]of F)g?e.style.setProperty(u,g):e.style.removeProperty(u);}if(t)return q(),B?.(),{...ir,destroy:I,getProgress:()=>1};te();let M=()=>$?c==="x"?$.scrollLeft:$.scrollTop:c==="x"?window.scrollX:window.scrollY,J=()=>$?c==="x"?$.clientWidth:$.clientHeight:c==="x"?window.innerWidth:window.innerHeight,T=typeof s=="string"?gt(s):null;function A(){if(!y||!Qr()||!T||c!=="y"||$||h!==e||l||i!==1||W||B||b||R||K||k||v!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let u of D)if(!Ur.has(u.prop))return false;return true}function ye(){let u=`ssd-a-${++Yr}`,g=D.map(Q=>`${Q.prop}:${Q.from}`).join(";"),se=D.map(Q=>`${Q.prop}:${Q.to}`).join(";"),H=document.createElement("style");H.setAttribute("data-ssd-animate",""),H.textContent=`@keyframes ${u}{from{${g}}to{${se}}}.${u}{animation-name:${u};animation-duration:auto;animation-timing-function:${T};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(H),e.classList.add(u);let G=()=>{let Q=e.getBoundingClientRect();return he({top:Q.top,height:Q.height},M(),J(),x,O)};$e(e,{type:"animate",getProgress:()=>U.getProgress(),getTrigger:G});let U={refresh(){},destroy(){e.classList.remove(u),H.remove(),e.style.animationPlayState="",I(),Re(e);},replay(){e.classList.remove(u),e.offsetWidth,e.classList.add(u);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(Q){let Ie=Math.min(1,Math.max(0,Q));e.classList.remove(u);for(let ie of D)e.style.setProperty(ie.prop,nr(ie.from,ie.to,Ie));},getProgress(){let{tStart:Q,tEnd:Ie}=G();return C(j(M(),Q,Ie,i))}};return U}if(A())return ye();let _=0,Y=0,ue=false,Se=-1,fe=0,ae=0,P=false,L=NaN,oe=-1,Fe=0,Z=h===e?D:[],He=false;function Te(){let u=e.style,g=Z.map(U=>u.getPropertyValue(U.prop)),se=u.transition;Z.length&&(u.transition="none"),Z.forEach(U=>u.setProperty(U.prop,F.get(U.prop)??""));let H=Ze(h,$,c);Z.forEach((U,Q)=>u.setProperty(U.prop,g[Q])),Z.length&&(e.offsetWidth,u.transition=se);let G=he(H,H.scroll,J(),x,O);He&&Math.abs(G.tStart-_)<1&&Math.abs(G.tEnd-Y)<1||(He=true,_=G.tStart,Y=G.tEnd);}function be(u){e.style.setProperty(or,String(u));for(let g of D)e.style.setProperty(g.prop,nr(g.from,g.to,u));W?.(u);}function _e(u){if(isNaN(L)){L=u;return}L<=0&&u>0&&b?.(),L<1&&u>=1&&R?.(),L>=1&&u<1&&K?.(),L>0&&u<=0&&k?.(),L=u;}function Ne(){if(ue)return;let u=performance.now(),g=M(),se=i;if(v!==false){let Q=u-Fe,Ie=Q>0?Math.abs(g-(oe<0?g:oe))/Q:0;se=i*Math.max(.2,1+Ie*(typeof v=="number"?v:1)*.04);}oe=g,Fe=u;let H=Y===_?0:(g-_)/(Y-_);_e(H);let G=j(g,_,Y,se),U=l?Math.max(Se,C(fe=Math.max(fe,G))):C(G);ae=U,be(U),U>=1&&!P?(P=true,B?.()):U<1&&!l&&(P=false);}let xe=Ce($??window,[h],()=>j(M(),_,Y,Math.min(i,1)),Ne,Te);Te(),Y===_&&z("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),fe=j(M(),_,Y,i),ae=C(fe),be(ae),$e(e,{type:"animate",getProgress:()=>ae,getTrigger:()=>({tStart:_,tEnd:Y})});function Ae(){ue=true,xe.hold(true);}return {destroy(){ue=true,xe.off(),I(),Re(e);},replay(){Se=-1,fe=0,P=false,ae=0,ue=false,be(0),xe.hold(false);},pause:Ae,resume(){ue&&(ue=false,xe.hold(false));},seek(u){let g=Math.min(1,Math.max(0,u));ae=g,Se=g,fe=0,Ae(),be(g);},getProgress(){return ae},refresh:xe.remeasure}}var Mt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function lr(e,n){if(typeof window>"u")return Mt;let t=typeof e=="string"?document.querySelector(e):e;return t?je(n,(r,o)=>Xr(t,r,o)):(z("scrollCounter: element not found:",e),Mt)}function Xr(e,n,t){let{from:r=0,to:o,format:s,easing:i="ease-out",trigger:l={},once:c=true,decimals:p,onComplete:y}=n,v=p!==void 0?T=>T.toFixed(p):s??(T=>String(Math.round(T))),S=Le(i,"ease-out"),W=ee(l.start||"top 80%"),B=ee(l.end||"top 20%");if(t)return e.textContent=v(o),y?.(),{...Mt,getProgress:()=>1};let b=0,R=0,K=false,k=-1,C=0,x=0,O=false,h=()=>window.scrollY,$=()=>window.innerHeight;function D(){let T=e.getBoundingClientRect(),A=he({top:T.top,height:T.height},h(),$(),W,B);K&&Math.abs(A.tStart-b)<1&&Math.abs(A.tEnd-R)<1||(K=true,b=A.tStart,R=A.tEnd);}let te=e.style.getPropertyValue("--scroll-draw-progress");function q(T){e.textContent=v(r+(o-r)*T),e.style.setProperty("--scroll-draw-progress",String(T));}let F=()=>j(h(),b,R,1);function I(){let T=F(),A=c?Math.max(k,S(C=Math.max(C,T))):S(T);x=A,q(A),A>=1&&!O?(O=true,y?.()):A<1&&!c&&(O=false);}D();{C=j(h(),b,R,1);let T=S(C);x=T,q(T);}let M=Ce(window,[e],F,I,D);$e(e,{type:"counter",getProgress:()=>x,getTrigger:()=>({tStart:b,tEnd:R})});let J=()=>M.hold(false);return {destroy(){M.off(),e.style.setProperty("--scroll-draw-progress",te),Re(e);},replay(){k=-1,C=0,O=false,x=0,q(0),J();},pause:()=>M.hold(true),resume:J,seek(T){let A=Math.min(1,Math.max(0,T));x=A,k=A,C=0,M.hold(true),q(A);},getProgress(){return x}}}var cr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function ur(e,n={}){if(typeof window>"u")return cr;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="video")return z("scrollVideo: <video> element not found:",e),cr;let r=t,{trigger:o={},easing:s="linear",once:i=false,axis:l="y",preload:c="auto",triggerElement:p,onReady:y,onComplete:v,onProgress:S}=n,W=p??r,B=window.matchMedia("(prefers-reduced-motion: reduce)").matches,b=Le(s),R=ee(o.start||"top top"),K=ee(o.end||"bottom top");r.pause(),r.hasAttribute("preload")||(r.preload=c);let k=n.from??0,C=n.to,x=0,O=0,h=false,$=-1,D=0,te=0,q=false,F=false,I=()=>l==="x"?window.scrollX:window.scrollY,M=()=>l==="x"?window.innerWidth:window.innerHeight;function J(){let P=W.getBoundingClientRect(),L=l==="x"?P.left:P.top,oe=l==="x"?P.width:P.height,Fe=he({top:L,height:oe},I(),M(),R,K);x=Fe.tStart,O=Fe.tEnd,F&&O===x&&z("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",r);}let T=NaN;function A(P){if(!F)return;let L=C??r.duration??0,oe=k+(L-k)*P;oe!==T&&(T=oe,r.currentTime=oe),r.style.setProperty("--scroll-draw-progress",String(P)),S?.(P);}let ye=()=>j(I(),x,O,1);function _(){if(!F||B)return;let P=ye(),L=i?Math.max($,b(D=Math.max(D,P))):b(P);te=L,A(L),L>=1&&!q?(q=true,v?.()):L<1&&!i&&(q=false);}let Y=Ce(window,[W],ye,_,J),ue=()=>Y.hold(h||!F||B);ue();function Se(){if(F=true,C===void 0&&(C=r.duration),B){A(1),y?.();return}J(),y?.(),h?A(te):ue();}r.readyState>=1?Se():r.addEventListener("loadedmetadata",Se,{once:true}),F||J();let fe=B?()=>{}:Be(P=>{P&&(fe(),B=true,Y.hold(true),A(1));});$e(r,{type:"video",getProgress:()=>te,getTrigger:()=>({tStart:x,tEnd:O})});function ae(){h&&(h=false,ue());}return {destroy(){Y.off(),r.removeEventListener("loadedmetadata",Se),fe(),Re(r);},replay(){$=-1,D=0,q=false,te=0,T=NaN,A(0),ae();},pause(){h=true,Y.hold(true);},resume:ae,seek(P){let L=Math.min(1,Math.max(0,P));te=L,$=L,D=0,h=true,Y.hold(true),T=NaN,A(L);},getProgress(){return te}}}var bt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Kr(e){let n=e>1?[0,e-1]:[0],t=[[0,e-1]];for(let r=0;r<t.length;r++){let[o,s]=t[r];if(s-o<2)continue;let i=o+s>>1;n.push(i),t.push([o,i],[i,s]);}return n}function fr(e,n){if(typeof window>"u")return bt;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="canvas")return z("scrollFrames: <canvas> element not found:",e),bt;let r=t,{frames:o,trigger:s={},easing:i="linear",once:l=false,axis:c="y",fit:p="cover",triggerElement:y,onReady:v,onLoad:S,onComplete:W,onProgress:B}=n||{},b=Array.isArray(o)?o:null,R=n?.count,K=Math.floor(b?Math.min(R??b.length,b.length):R??NaN);if(!(b||typeof o=="function")||!Number.isFinite(K)||K<1)return z("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",r),bt;let k=n.concurrency??6;(!Number.isFinite(k)||k<1)&&(z("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",n.concurrency),k=6),k=Math.floor(k);let C=r.getContext("2d");if(!C)return z("scrollFrames: the canvas has no 2D context.",r),bt;let x=K-1,O=y??r,h=window.matchMedia("(prefers-reduced-motion: reduce)").matches,$=Le(i),D=f=>{let d=$(f);return d===d?d:0},te=ee(s.start||"top top"),q=ee(s.end||"bottom top"),F=0,I=0,M=false,J=-1,T=0,A=0,ye=false,_=false,Y=false,ue=false,Se=0,fe=-1,ae=new Array(K),P=new Uint8Array(K),L=new Set,oe=h?[x]:Kr(K),Fe=0,Z=0,He=false,Te=(f,...d)=>{if(f)try{f(...d);}catch(E){typeof reportError=="function"?reportError(E):setTimeout(()=>{throw E});}},be=false,_e=f=>{let d;try{d=b?b[f]:o(f);}catch(E){d=E;}return typeof d=="string"&&d?d:(be||(be=true,z(`scrollFrames: no URL for frame ${f}; it is skipped for its nearest neighbour.`,d)),null)},Ne=()=>c==="x"?window.scrollX:window.scrollY,xe=()=>c==="x"?window.innerWidth:window.innerHeight;function Ae(){!He&&Z===oe.length&&(He=true,Te(S));}function u(){for(;!_&&L.size<k&&Fe<oe.length;){let f=oe[Fe++];P[f]||g(f);}}function g(f){P[f]=1;let d=_e(f);if(d===null){Z++,queueMicrotask(()=>{_||Ae();});return}let E=new Image,le=false,ve=Ve=>{le||_||(le=true,E.onload=E.onerror=null,L.delete(E),Ve?ae[f]=E:z("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",d),Z++,u(),G(),Ae());};L.add(E),E.decoding="async",E.onerror=()=>ve(false),E.src=d,typeof E.decode=="function"?E.decode().then(()=>ve(true),()=>{E.complete?ve(E.naturalWidth>0):E.onload=()=>ve(true);}):E.onload=()=>ve(true);}function se(f){for(let d=0;d<=x;d++){if(ae[f-d])return f-d;if(ae[f+d])return f+d}return -1}function H(){let f=r.clientWidth,d=r.clientHeight;if(!f||!d)return;let E=Math.min(window.devicePixelRatio||1,2),le=Math.round(f*E),ve=Math.round(d*E);if(Math.abs(r.width-le)<=1&&Math.abs(r.height-ve)<=1)return;r.width=le,r.height=ve,fe=-1;let Ve=r.clientWidth,ke=r.clientHeight;if(Ve!==f||ke!==d){let ze=r.style;Ve!==f&&ke!==d?(ze.width=`${f}px`,ze.height=`${d}px`):ze.aspectRatio=`${f} / ${d}`;}}function G(){let f=se(Se);if(f<0||f===fe)return;let d=ae[f],E=r.width,le=r.height,ve=d.naturalWidth||E,Ve=d.naturalHeight||le,ke=(p==="contain"?Math.min:Math.max)(E/ve,le/Ve),ze=ve*ke,We=Ve*ke;C.clearRect(0,0,E,le),C.drawImage(d,(E-ze)/2,(le-We)/2,ze,We),fe=f,Y||(Y=true,Te(v));}function U(f){Se=Math.min(x,Math.max(0,Math.round(f*x))),r.style.setProperty("--scroll-draw-progress",String(f)),G(),Te(B,f,Se);}function Q(){let f=O.getBoundingClientRect(),d=c==="x"?f.left:f.top,E=c==="x"?f.width:f.height,le=he({top:d,height:E},Ne(),xe(),te,q);F=le.tStart,I=le.tEnd,I===F&&E>0&&!h&&!ue&&(ue=true,z("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",r));}let Ie=()=>j(Ne(),F,I,1);function ie(){if(h)return;let f=Ie(),d=l?Math.max(J,D(T=Math.max(T,f))):D(f);A=d,U(d),d>=1&&!ye?(ye=true,Te(W)):d<1&&!l&&(ye=false);}function De(){A=1,U(1);}H(),h||Q();let we=Ce(window,[O],Ie,ie,()=>{H(),h||Q(),G();}),Qe=()=>we.hold(M||h);Qe(),h&&De(),u();let qe=typeof ResizeObserver=="function"?new ResizeObserver(()=>{H(),G();}):null;qe?.observe(r);let Ue=h?()=>{}:Be(f=>{f&&(Ue(),h=true,we.hold(true),oe=oe.slice(0,Fe),P[x]||oe.push(x),Ae(),De(),u());});$e(r,{type:"frames",getProgress:()=>A,getTrigger:()=>({tStart:F,tEnd:I})});function me(){_||!M||(M=false,Qe());}return {destroy(){if(!_){_=true,we.off(),qe?.disconnect(),Ue();for(let f of L)f.onload=f.onerror=null,f.src="";L.clear(),Re(r);}},replay(){_||(J=-1,T=0,ye=false,A=0,U(0),me());},pause(){_||(M=true,we.hold(true));},resume:me,seek(f){if(_)return;let d=Math.min(1,Math.max(0,f===f?f:0));A=d,J=d,T=0,M=true,we.hold(true),U(d);},getProgress(){return A}}}var Jr=1e4;function mr(e){let{frames:n,count:t}=e;if(typeof n!="function")return lt(e);let r=Number.isFinite(t)?Math.min(Math.max(Math.floor(t),0),Jr):0,o;try{o=Array.from({length:r},(s,i)=>n(i));}catch{o=["throws"];}return lt({...e,frames:o})}function pr(e,n="<ScrollFrames>"){if(!e||e.getAttribute("aria-hidden")==="true")return;let t=e.getAttribute("role");t==="presentation"||t==="none"||e.getAttribute("aria-label")||e.getAttribute("aria-labelledby")||z(`${n}: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.`,e);}function dr(e,n){let t=document.createElement("span");t.textContent=n,t.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;user-select:none",e.appendChild(t);}function wt(e=""){let n=document.createElement("span");return n.setAttribute("aria-hidden","true"),n.textContent=e,n}function hr(e){let n=e.textContent??"";return e.textContent="",n.split(/(\s+)/).filter(Boolean).map(t=>{let r=e.appendChild(wt(t)),o=/^\s+$/.test(t);return o?r.style.whiteSpace="pre":r.style.display="inline-block",o?null:r}).filter(t=>t!==null)}function Zr(e){let n=e.textContent??"";e.textContent="";let t=[],r=null;for(let o of n){let s=wt(o),i=o===" ";i?s.style.whiteSpace="pre":(s.style.display="inline-block",t.push(s)),i||o>"\u0DFF"?r=null:r||(r=e.appendChild(wt()),r.style.cssText="display:inline-block;white-space:nowrap"),(r??e).appendChild(s);}return t}function gr(e){let n=hr(e),t=new Map;for(let s of n){let i=s.offsetTop;t.has(i)||t.set(i,[]),t.get(i).push(s);}let r=[],o=Array.from(t.keys()).sort((s,i)=>s-i);for(let s of o){let i=t.get(s),l=wt();l.style.display="inline-block",i.forEach((c,p)=>{let y=c.nextElementSibling;l.appendChild(c),p<i.length-1&&y&&y.style.whiteSpace==="pre"&&l.appendChild(y);}),r.push(l);}return e.textContent="",r.forEach((s,i)=>{e.appendChild(s),i<r.length-1&&e.appendChild(document.createTextNode(" "));}),r}function en(e,n,t,r){if(t<=1||r===0)return e;r=Math.min(r,1/t);let o=(t-1)*r,s=n*r,i=s+(1-o);return i<=s?e>=s?1:0:st((e-s)/(i-s),0,1)}function tn(e,n){let t=[];if(n?.y!==void 0&&t.push(`translateY(${n.y*(1-e)}px)`),n?.x!==void 0&&t.push(`translateX(${n.x*(1-e)}px)`),n?.rotate!==void 0&&t.push(`rotate(${n.rotate*(1-e)}deg)`),n?.scale!==void 0){let r=n.scale+(1-n.scale)*e;t.push(`scale(${r})`);}return t.join(" ")}var Pt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function yr(e,n={}){if(typeof window>"u")return Pt;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return z("scrollText: element not found:",e),Pt;let r=t;return je(n,(o,s)=>rn(r,o,s))}function rn(e,n,t){let{split:r="words",stagger:o=.04,easing:s="ease-out",from:i={opacity:0,y:24},trigger:l={},once:c=true,onComplete:p}=n,y=Le(s,"ease-out"),v=ee(l.start||"top 85%"),S=ee(l.end||"top 40%"),W=e.innerHTML,B=e.textContent??"",b;r==="chars"?b=Zr(e):r==="lines"?b=gr(e):b=hr(e),dr(e,B);let R=b.length;function K(M,J){i?.opacity!==void 0&&(M.style.opacity=String(i.opacity+(1-i.opacity)*J));let T=tn(J,i);T&&(M.style.transform=T);}function k(M){e.style.setProperty("--scroll-draw-progress",String(M)),b.forEach((J,T)=>{let A=y(en(M,T,R,o));K(J,A);});}if(t)return k(1),p?.(),{...Pt,destroy:()=>{e.innerHTML=W;},getProgress:()=>1};k(0);let C=0,x=0,O=-1,h=0,$=false;function D(){({tStart:C,tEnd:x}=he(e.getBoundingClientRect(),window.scrollY,window.innerHeight,v,S));}let te=()=>j(window.scrollY,C,x,1);function q(){let M=c?O=Math.max(O,te()):te();h=M,k(M),M>=1&&!$?($=true,p?.()):M<1&&!c&&($=false);}D();let F=Ce(window,[e],te,q,()=>{r==="lines"&&(e.innerHTML=W,b=gr(e),dr(e,B),k(h)),D();});$e(e,{type:"text",getProgress:()=>h,getTrigger:()=>({tStart:C,tEnd:x})});let I=()=>F.hold(false);return {destroy(){F.off(),e.innerHTML=W,Re(e);},replay(){O=-1,$=false,h=0,k(0),I();},pause:()=>F.hold(true),resume:I,seek(M){F.hold(true),k(h=O=st(M,0,1));},getProgress(){return h}}}function sn(e,n={}){let[t,r]=an.useState(0),o=an.useRef(n);o.current=n;let s=an.useRef(0);return an.useEffect(()=>{if(typeof window>"u")return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){r(1);return}let i=typeof e=="string"?document.querySelector(e):e.current;if(!i)return;let l=i,{axis:c="y",scrollContainer:p,trigger:y={}}=o.current,v=typeof p=="string"?document.querySelector(p):p??null,S=ee(y.start||"top bottom"),W=ee(y.end||"bottom top"),B=0,b=0;function R(){return v?c==="x"?v.scrollLeft:v.scrollTop:c==="x"?window.scrollX:window.scrollY}function K(){return v?c==="x"?v.clientWidth:v.clientHeight:c==="x"?window.innerWidth:window.innerHeight}function k(){let h=Ze(l,v,c);({tStart:B,tEnd:b}=he(h,h.scroll,K(),S,W));}function C(){let{speed:h=1,easing:$="linear",once:D=false}=o.current,te=Le($),q=j(R(),B,b,h),F=te(D?s.current=Math.max(s.current,q):q);r(F);}k();let x=Ce(v??window,[l],()=>j(R(),B,b,Math.min(o.current.speed??1,1)),C,k),O=Be(h=>{h&&(O(),x.off(),r(1));});return ()=>{O(),x.off();}},[]),t}function et(e,n,t,r=lt(n)){let o=an.useRef(n);o.current=n,an.useEffect(()=>{if(!e.current)return;let s=t(e.current,tr(o.current,()=>o.current));return ()=>s.destroy()},[r]);}var ln=/^(data-|aria-)|^(id|role|title|tabIndex|lang|dir|hidden)$/;function tt(e){let n={},t={};for(let[r,o]of Object.entries(e))(ln.test(r)?t:n)[r]=o;return [n,t]}function Yo({children:e,className:n,style:t,...r}){let o=an.useRef(null),[s,i]=tt(r);return et(o,s,Zt),jsxRuntime.jsx("div",{ref:o,className:n,style:t,...i,children:e})}function Qo({children:e,className:n,style:t,...r}){let o=an.useRef(null),[s,i]=tt(r);return et(o,s,ar),jsxRuntime.jsx("div",{ref:o,className:n,style:t,...i,children:e})}function Xo({className:e,style:n,...t}){let r=an.useRef(null),[o,s]=tt(t);return et(r,o,lr),jsxRuntime.jsx("span",{ref:r,className:e,style:n,...s})}function Ko({src:e,poster:n,className:t,style:r,muted:o=true,playsInline:s=true,...i}){let l=an.useRef(null),[c,p]=tt(i);return et(l,c,ur),jsxRuntime.jsx("video",{...p,ref:l,src:e,poster:n,className:t,style:r,muted:o,playsInline:s,preload:c.preload??"auto"})}function Jo({className:e,style:n,role:t="img",triggerElement:r,...o}){let s=an.useRef(null),[i,l]=tt(o),c=r&&"current"in r?r:null;return !c&&r&&(i.triggerElement=r),et(s,i,(p,y)=>fr(p,{...y,frames:i.frames,...c&&{triggerElement:c.current??void 0}}),mr(i)+(c?"+ref":"")),an.useEffect(()=>pr(s.current),[]),jsxRuntime.jsx("canvas",{...l,ref:s,role:t,className:e,style:n})}function Zo({children:e,as:n="p",className:t,style:r,...o}){let s=an.useRef(null),[i,l]=tt(o);return et(s,i,yr),an__default.default.createElement(n,{...l,ref:s,className:t,style:r},e)}exports.ScrollAnimate=Qo;exports.ScrollCounter=Xo;exports.ScrollDraw=Yo;exports.ScrollFrames=Jo;exports.ScrollText=Zo;exports.ScrollVideo=Ko;exports.useScrollDrawProgress=sn;
|
|
4
|
+
<div style="position:absolute;${c?`left:${l}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${l}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(r),window.addEventListener("scroll",o,{passive:true}),o(),{el:r,destroy(){window.removeEventListener("scroll",o),r.remove();}}}var Kt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,Jt=/[MmLlHhVvCcSsQqTtAaZz]/g;function Wr(e,n,t){if(!Ke)return;let r=(e.match(Jt)??[]).join("").toUpperCase(),o=(n.match(Jt)??[]).join("").toUpperCase(),s=(e.match(Kt)??[]).length,i=(n.match(Kt)??[]).length;if(r!==o){z(`morphTo: command sequence differs (${r||"\u2205"} \u2192 ${o||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,t);return}s!==i&&z(`morphTo: coordinate count differs (${s} \u2192 ${i}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,t);}function Gr(e,n,t){let r=(n.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),o=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let i=parseFloat(s),l=r[o++]??i;return String(+(i+(l-i)*t).toFixed(4))})}function Zt(e,n={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:je(n,(t,r)=>Br(e,t,r))}function Br(e,n,t){let{preset:r,...o}=n,s=r?{...Gt[r],...o}:o,{selector:i="path, polyline, line, polygon, rect, circle",speed:l=1,fade:c=false,easing:p="linear",trigger:b={},stagger:S=0,direction:T="forward",once:O=false,debug:R=false,axis:v="y",scrollContainer:W,autoReverse:G=false,delay:x=0,strokeColor:A,strokeWidth:L,fillOpacity:H,waypoints:h,velocityScale:k=false,threshold:F=0,rootMargin:X="0px",repeat:K=0,repeatDelay:$=0,morphTo:N,clip:y,autoplay:C=false,duration:re=1e3,native:ne=true,onProgress:ye,onStart:_,onComplete:U,onEnter:ue,onLeave:Se,onEnterBack:fe,onLeaveBack:ae}=s,M=y===true?"left":typeof y=="string"?y:false,P=Le(p),oe=Z(b.start||"top bottom"),Fe=Z(b.end||"bottom top"),J=typeof W=="string"?document.querySelector(W):W??null,He=Array.isArray(A)?A[0]:null,Te=Array.isArray(A)?A[1]:typeof A=="string"?A:null,be=Array.isArray(L)?L[0]:null,_e=Array.isArray(L)?L[1]:typeof L=="number"?L:null,Ne=Array.isArray(H)?H[0]:null,xe=Array.isArray(H)?H[1]:typeof H=="number"?H:null;function Ae(a){let m=a*100;switch(M){case "right":return `inset(0 0 0 ${100-m}%)`;case "top":return `inset(0 0 ${100-m}% 0)`;case "bottom":return `inset(${100-m}% 0 0 0)`;case "center":return `circle(${a*150}% at 50% 50%)`;default:return `inset(0 ${100-m}% 0 0)`}}let u=M?[]:Array.from(e.querySelectorAll(i)),g=[],se=[],D=0,B=0,q=S,Y=0,Ie=0,ie=false,De=false,we=0,Qe=-1,Ue=[],Ye=-1,me=false,f=0,d=0,E,le=false,ve=null;function Ve(){ve?.destroy(),ve=null;}let Oe=new Set,ze=NaN,We=true,ut=-1,Lt=performance.now(),Xe=NaN;function ft(){return J?v==="x"?J.scrollLeft:J.scrollTop:v==="x"?window.scrollX:window.scrollY}function Ct(){return J?v==="x"?J.clientWidth:J.clientHeight:v==="x"?window.innerWidth:window.innerHeight}function At(){let a=Ze(e,J,v);return he(a,a.scroll,Ct(),oe,Fe)}function Sr(){let a=B-D,m=u.length-1,w=J??document.documentElement,V=v==="x"?"Width":"Height";if(q=S,S>0&&m>0&&a>0){let pe=w[`scroll${V}`]-w[`client${V}`]-1-D-a/l;pe>=0&&(q=Math.min(S,pe/(m*a)));}let ce=Math.max(0,m)*q*a,Me=a/Math.min(l,1);Y=D+Math.min(0,ce,Me,ce+Me),Ie=D+Math.max(0,ce,Me,ce+Me);}function Ot(){(({tStart:D,tEnd:B}=At())),Sr(),R&&Ke&&(Ve(),ve=zr(D,B,v));}function vt(a,m=At){$e(e,{type:"draw",getProgress:()=>a.getProgress(),getTrigger:m});let w=a.destroy;return a.destroy=()=>{w.call(a),Re(e);},a}function kt(a,m){return O&&!G?Math.max(Qe,P(Ue[a]=Math.max(Ue[a]??0,m))):P(m)}function Tr(a,m){if(e.style.setProperty("--scroll-draw-progress",String(a)),M){let w=m==="reverse"?1-a:a;e.style.clipPath=Ae(w);return}u.forEach((w,V)=>Et(w,V,a,m));}function Et(a,m,w,V){a.style.strokeDashoffset=V==="reverse"?`${g[m]*w}`:`${g[m]*(1-w)}`,c&&(a.style.opacity=V==="reverse"?`${1-w}`:`${w}`),He&&Te?a.style.stroke=dt(He,Te,w):Te&&(a.style.stroke=Te),be!==null&&_e!==null?a.style.strokeWidth=`${be+(_e-be)*w}`:_e!==null&&(a.style.strokeWidth=`${_e}`),Ne!==null&&xe!==null?a.style.fillOpacity=`${Ne+(xe-Ne)*w}`:xe!==null&&(a.style.fillOpacity=`${xe}`),N&&a.tagName.toLowerCase()==="path"&&se[m]&&a.setAttribute("d",Gr(se[m],N,w));}function St(){if(e.style.setProperty("--scroll-draw-progress","0"),M){e.style.clipPath=Ae(T==="reverse"?1:0);return}u.forEach((a,m)=>{a.style.strokeDasharray=pt(g[m]),a.style.strokeDashoffset=T==="reverse"?"0":`${g[m]}`,c?a.style.opacity=T==="reverse"?"1":"0":a.style.opacity="",He&&(a.style.stroke=He),be!==null&&(a.style.strokeWidth=`${be}`),Ne!==null&&(a.style.fillOpacity=`${Ne}`),N&&a.tagName.toLowerCase()==="path"&&se[m]&&a.setAttribute("d",se[m]);});}function rt(a,m){let w=a.getAttribute("d"),V=mt(a);if(N&&se[m]){a.setAttribute("d",N);let ce=mt(a);a.setAttribute("d",se[m]),V=Math.max(mt(a),ce),a.setAttribute("d",w);}g[m]=V,a.style.strokeDasharray=pt(V);}if(u.forEach((a,m)=>{Vr(a);let w=a.tagName.toLowerCase()==="path";w?se.push(a.getAttribute("d")??""):se.push(""),rt(a,m);let V=g[m];N&&(w?Wr(se[se.length-1],N,a):z(`morphTo only applies to <path> elements \u2014 ignored on <${a.tagName}>.`,a)),t?(a.style.strokeDashoffset=T==="reverse"?`${V}`:"0",c&&(a.style.opacity="1"),Te&&(a.style.stroke=Te),_e!==null&&(a.style.strokeWidth=`${_e}`),xe!==null&&(a.style.fillOpacity=`${xe}`),N&&a.tagName.toLowerCase()==="path"&&a.setAttribute("d",N)):(a.style.strokeDashoffset=T==="reverse"?"0":`${V}`,c?a.style.opacity=T==="reverse"?"1":"0":a.style.opacity="",He&&(a.style.stroke=He),be!==null&&(a.style.strokeWidth=`${be}`),Ne!==null&&(a.style.fillOpacity=`${Ne}`));}),t)return M&&(e.style.clipPath=Ae(1)),U?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};M&&(e.style.clipPath=Ae(T==="reverse"?1:0));let $t=typeof p=="string"?gt(p):null;function xr(){return !(ne===false||C||R&&Ke||!_r()||!u.length||!$t||M||v!=="y"||J||l!==1||S!==0||O||G||k!==false||N||h||K||x>0||ye||_||U||ue||Se||fe||ae||A!=null||L!=null||H!=null||(b.start||"top bottom").trim()!=="top bottom"||(b.end||"bottom top").trim()!=="bottom top")}function Mr(){let a=++Ir,m=`svg-scroll-draw-${a}`,w=`svg-scroll-draw-host-${a}`,V=`--svg-scroll-draw-${a}`,ce=T==="reverse"?"0":"var(--ssd-len)",Me=T==="reverse"?"var(--ssd-len)":"0",pe=`stroke-dashoffset:${ce};`,ee=`stroke-dashoffset:${Me};`;c&&(pe+=`opacity:${T==="reverse"?1:0};`,ee+=`opacity:${T==="reverse"?0:1};`);let te=document.createElement("style");te.setAttribute("data-svg-scroll-draw",""),te.textContent=`@keyframes ${m}{from{${pe}}to{${ee}}}.${w}{view-timeline-name:${V};view-timeline-axis:block;}.${m}{animation-name:${m};animation-duration:auto;animation-timing-function:${$t};animation-fill-mode:both;animation-timeline:${V};animation-range:cover 0% cover 100%;}`,document.head.appendChild(te),e.classList.add(w);function Ee(I,Q){I.style.setProperty("--ssd-len",String(g[Q])),I.style.strokeDasharray=pt(g[Q]),I.style.strokeDashoffset="",I.style.opacity="",I.style.animationPlayState="",I.classList.add(m);}u.forEach(Ee);let de=false,Pe=-1;function ke(){if(Pe>=0)return Pe;let I=e.getBoundingClientRect(),{tStart:Q,tEnd:ge}=he({top:I.top,height:I.height},ft(),Ct(),oe,Fe);return P(j(ft(),Q,ge,l))}return {destroy(){e.classList.remove(w),u.forEach(I=>{I.classList.remove(m),I.style.removeProperty("--ssd-len"),I.style.animationPlayState="";}),te.remove();},replay(){de=false,Pe=-1,u.forEach(Ee);},pause(){de=true,u.forEach(I=>{I.style.animationPlayState="paused";});},resume(){de&&(de=false,u.forEach(I=>{I.style.animationPlayState="running";}));},seek(I){let Q=Math.min(1,Math.max(0,I));Pe=Q,de=true,u.forEach((ge,Ge)=>{ge.classList.remove(m),ge.style.strokeDashoffset=T==="reverse"?`${g[Ge]*Q}`:`${g[Ge]*(1-Q)}`,c&&(ge.style.opacity=T==="reverse"?`${1-Q}`:`${Q}`);});},getProgress(){return ke()},refresh(){u.forEach((I,Q)=>{rt(I,Q),I.style.setProperty("--ssd-len",String(g[Q]));});}}}if(xr())return vt(Mr());function Pr(){let a=Math.max(1,re),m=M?a:a*(1+Math.max(0,u.length-1)*S),w=0,V=0,ce=false;function Me(Pe){let ke=true,I=Math.min(1,Math.max(0,Pe/m));if(M){let Q=Math.min(1,Math.max(0,Pe/a)),ge=P(Q);f=ge,e.style.setProperty("--scroll-draw-progress",String(ge)),e.style.clipPath=Ae(T==="reverse"?1-ge:ge),ye?.(ge),Q<1&&(ke=false);}else {u.forEach((ge,Ge)=>{let Cr=Ge*S*a,Dt=Math.min(1,Math.max(0,(Pe-Cr)/a));Et(ge,Ge,P(Dt),T),Dt<1&&(ke=false);});let Q=P(I);f=Q,ye?.(Q),e.style.setProperty("--scroll-draw-progress",String(Q));}if(h){let Q=P(I);for(let ge in h){let Ge=parseFloat(ge);Q>=Ge&&!Oe.has(Ge)&&(Oe.add(Ge),h[ge]?.());}}return ke}function pe(Pe){if(me)return;let ke=Pe-w;De||(De=true,_?.());let I=Me(ke);if(I&&!ie){ie=true,Me(m),U?.(),d<(K==="infinite"?1/0:K??0)&&(d++,E=setTimeout(()=>{w=performance.now(),De=false,ie=false,Oe.clear(),St(),we=requestAnimationFrame(pe);},$));return}I||(we=requestAnimationFrame(pe));}function ee(){cancelAnimationFrame(we),clearTimeout(E),w=performance.now(),V=0,me=false,De=false,ie=false,d=0,ce=true,f=0,Oe.clear(),St(),we=requestAnimationFrame(pe);}let te=new IntersectionObserver(Pe=>{Pe.forEach(ke=>{ke.isIntersecting&&!(O&&ie)?ee():!ke.isIntersecting&&!O&&!ie&&(cancelAnimationFrame(we),clearTimeout(E),ce=false);});},{root:J??null,threshold:F,rootMargin:X}),Ee;function de(){clearTimeout(Ee),Ee=setTimeout(()=>u.forEach(rt),150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),x>0?setTimeout(()=>te.observe(e),x):te.observe(e),{destroy(){cancelAnimationFrame(we),clearTimeout(E),te.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),clearTimeout(Ee);},replay(){d=0,ee();},pause(){me||!ce||(me=true,V=performance.now()-w,cancelAnimationFrame(we));},resume(){me&&(me=false,ce=true,w=performance.now()-V,we=requestAnimationFrame(pe));},seek(Pe){let ke=Math.min(1,Math.max(0,Pe));f=ke,me=true,V=ke*m,w=performance.now()-V,cancelAnimationFrame(we),Me(V);},getProgress(){return f},refresh(){clearTimeout(Ee),u.forEach(rt);}}}if(C)return vt(Pr());Ot();let Rt=()=>j(ft(),Y,Ie,1);function Ft(){ie=true,U?.(),d<(K==="infinite"?1/0:K)&&(d++,E=setTimeout(()=>{le=true;},$));}function Ht(){Qe=-1,Ue=[],De=false,ie=false,le=false,Oe.clear(),St(),We=true;}function Lr(){let a=performance.now(),m=ft();if(le&&Rt()%1&&Ht(),!We&&k===false&&m===ze)return;We=false,ze=m;let w=l;if(k!==false){let ee=a-Lt,te=ee>0?Math.abs(m-(ut<0?m:ut))/ee:0;w=l*Math.max(.2,1+te*(typeof k=="number"?k:1)*.04);}ut=m,Lt=a;let V=G?Ye===-1||m>=Ye?"forward":"reverse":T;Ye=m;let ce=B-D,Me=true,pe=ce===0?0:(m-D)/ce;if(isNaN(Xe)||(Xe<=0&&pe>0&&ue?.(),Xe<1&&pe>=1&&Se?.(),Xe>=1&&pe<1&&fe?.(),Xe>0&&pe<=0&&ae?.()),Xe=pe,M){let ee=kt(0,j(m,D,B,w));f=ee,e.style.setProperty("--scroll-draw-progress",String(ee));let te=V==="reverse"?1-ee:ee;e.style.clipPath=Ae(te),ye?.(ee),!De&&j(m,D,B,w)>0&&(De=true,_?.()),ee>=1&&!ie?Ft():ee<1&&!O&&(ie=false);return}if(u.forEach((ee,te)=>{let Ee=te*q*ce,de=kt(te,j(m,D+Ee,B+Ee,w));Et(ee,te,de,V),te===0&&(f=de,ye?.(de),e.style.setProperty("--scroll-draw-progress",String(de))),de<1&&(Me=false);}),h){let ee=P(j(m,D,B,w));for(let te in h){let Ee=parseFloat(te);ee>=Ee&&!Oe.has(Ee)&&(Oe.add(Ee),h[te]?.());}}!De&&j(m,D,B,w)>0&&(De=true,_?.()),Me&&!ie?Ft():!Me&&!O&&(ie=false);}let nt=Ce(J??window,[e],Rt,Lr,()=>{let a=g.join();u.forEach(rt),Ot(),We=true,g.join()!==a&&ot();}),Tt=x>0;function ot(){nt.hold(me||Tt);}let Nt;return Tt&&(Nt=setTimeout(()=>{Tt=false,ot();},x)),ot(),vt({destroy(){clearTimeout(E),clearTimeout(Nt),nt.off(),Ve();},replay(){Ht(),Ye=-1,ut=-1,d=0,me=false,f=0,clearTimeout(E),ot();},pause(){me=true,nt.hold(true);},resume(){me&&(me=false,We=true,ot());},seek(a){let m=Math.min(1,Math.max(0,a));f=m,Qe=m,Ue=[],me=true,nt.hold(true),Tr(m,T),We=true;},getProgress(){return f},refresh:nt.remeasure},()=>({tStart:D,tEnd:B}))}var er=new WeakMap,jr=0;function lt(e){return JSON.stringify(e,(n,t)=>{if(typeof t=="function")return "\u0192";if(typeof Element<"u"&&t instanceof Element){let r=er.get(t);return r===void 0&&er.set(t,r=++jr),`el#${r}`}return t})}function tr(e,n){let t={...e};for(let r of Object.keys(t))typeof t[r]=="function"&&(t[r]=(...o)=>n()[r]?.(...o));return t}function qr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function rr(e){let n=[],t=/([\w]+)\(([^)]*)\)/g,r;for(;(r=t.exec(e))!==null;){let o=[],s=[],i=r[2].trim();if(i)for(let l of i.split(/[\s,]+/)){let c=l.match(/^([-+]?[\d.eE]+)(.*)$/);o.push(c?parseFloat(c[1]):0),s.push(c?c[2]:"");}n.push({fn:r[1],nums:o,units:s});}return n}function Ur(e,n,t){let r=rr(e),o=rr(n);return r.length===0||r.length!==o.length?t<1?e:n:r.map((s,i)=>{let l=o[i];return s.fn!==l.fn||s.nums.length!==l.nums.length?t<1?`${s.fn}(${s.nums.map((c,p)=>`${c}${s.units[p]}`).join(", ")})`:`${l.fn}(${l.nums.map((c,p)=>`${c}${l.units[p]}`).join(", ")})`:`${s.fn}(${s.nums.map((c,p)=>`${c+(l.nums[p]-c)*t}${s.units[p]}`).join(", ")})`}).join(" ")}function nr(e,n,t){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*t);let r=String(e),o=String(n);if(qr(r))return dt(r,o,t);if(r.includes("("))return Ur(r,o,t);let s=r.match(/^([-+]?[\d.]+)(.*)$/),i=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&i){let l=parseFloat(s[1]),c=parseFloat(i[1]);return `${l+(c-l)*t}${s[2]||i[2]}`}return t<1?r:o}function Yr(e){return e.replace(/([A-Z])/g,n=>`-${n.toLowerCase()}`)}var Qr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),Xr=0,or="--scroll-draw-progress";function Kr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var ir={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function ar(e,n){return typeof window>"u"?ir:n.respectReducedMotion===false?sr(e,n,false):je(n,(t,r)=>sr(e,t,r))}function sr(e,n,t){let{props:r,trigger:o={},easing:s="ease-out",speed:i=1,once:l=false,axis:c="y",scrollContainer:p,native:b=true,velocityScale:S=false,triggerElement:T,onProgress:O,onComplete:R,onEnter:v,onLeave:W,onEnterBack:G,onLeaveBack:x}=n,A=Le(s,"ease-out"),L=Z(o.start||"top bottom"),H=Z(o.end||"bottom top"),h=T??e,k=typeof p=="string"?document.querySelector(p):p??null,F=Object.entries(r).map(([u,g])=>({prop:Yr(u),from:Array.isArray(g)?g[0]:"",to:Array.isArray(g)?g[1]:g}));function X(){let u=window.getComputedStyle(e);for(let g of F)g.from===""&&(g.from=u.getPropertyValue(g.prop).trim()||"0");}function K(){for(let u of F)e.style.setProperty(u.prop,String(u.to));}let $=new Map;for(let u of [...F.map(g=>g.prop),or])$.set(u,e.style.getPropertyValue(u));function N(){for(let[u,g]of $)g?e.style.setProperty(u,g):e.style.removeProperty(u);}if(t)return K(),R?.(),{...ir,destroy:N,getProgress:()=>1};X();let y=()=>k?c==="x"?k.scrollLeft:k.scrollTop:c==="x"?window.scrollX:window.scrollY,C=()=>k?c==="x"?k.clientWidth:k.clientHeight:c==="x"?window.innerWidth:window.innerHeight,re=typeof s=="string"?gt(s):null;function ne(){if(!b||!Kr()||!re||c!=="y"||k||h!==e||l||i!==1||O||R||v||W||G||x||S!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let u of F)if(!Qr.has(u.prop))return false;return true}function ye(){let u=`ssd-a-${++Xr}`,g=F.map(Y=>`${Y.prop}:${Y.from}`).join(";"),se=F.map(Y=>`${Y.prop}:${Y.to}`).join(";"),D=document.createElement("style");D.setAttribute("data-ssd-animate",""),D.textContent=`@keyframes ${u}{from{${g}}to{${se}}}.${u}{animation-name:${u};animation-duration:auto;animation-timing-function:${re};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(D),e.classList.add(u);let B=()=>{let Y=e.getBoundingClientRect();return he({top:Y.top,height:Y.height},y(),C(),L,H)};$e(e,{type:"animate",getProgress:()=>q.getProgress(),getTrigger:B});let q={refresh(){},destroy(){e.classList.remove(u),D.remove(),e.style.animationPlayState="",N(),Re(e);},replay(){e.classList.remove(u),e.offsetWidth,e.classList.add(u);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(Y){let Ie=Math.min(1,Math.max(0,Y));e.classList.remove(u);for(let ie of F)e.style.setProperty(ie.prop,nr(ie.from,ie.to,Ie));},getProgress(){let{tStart:Y,tEnd:Ie}=B();return A(j(y(),Y,Ie,i))}};return q}if(ne())return ye();let _=0,U=0,ue=false,Se=-1,fe=0,ae=0,M=false,P=NaN,oe=-1,Fe=0,J=h===e?F:[],He=false;function Te(){let u=e.style,g=J.map(q=>u.getPropertyValue(q.prop)),se=u.transition;J.length&&(u.transition="none"),J.forEach(q=>u.setProperty(q.prop,$.get(q.prop)??""));let D=Ze(h,k,c);J.forEach((q,Y)=>u.setProperty(q.prop,g[Y])),J.length&&(e.offsetWidth,u.transition=se);let B=he(D,D.scroll,C(),L,H);He&&Math.abs(B.tStart-_)<1&&Math.abs(B.tEnd-U)<1||(He=true,_=B.tStart,U=B.tEnd);}function be(u){e.style.setProperty(or,String(u));for(let g of F)e.style.setProperty(g.prop,nr(g.from,g.to,u));O?.(u);}function _e(u){if(isNaN(P)){P=u;return}P<=0&&u>0&&v?.(),P<1&&u>=1&&W?.(),P>=1&&u<1&&G?.(),P>0&&u<=0&&x?.(),P=u;}function Ne(){if(ue)return;let u=performance.now(),g=y(),se=i;if(S!==false){let Y=u-Fe,Ie=Y>0?Math.abs(g-(oe<0?g:oe))/Y:0;se=i*Math.max(.2,1+Ie*(typeof S=="number"?S:1)*.04);}oe=g,Fe=u;let D=U===_?0:(g-_)/(U-_);_e(D);let B=j(g,_,U,se),q=l?Math.max(Se,A(fe=Math.max(fe,B))):A(B);ae=q,be(q),q>=1&&!M?(M=true,R?.()):q<1&&!l&&(M=false);}let xe=Ce(k??window,[h],()=>j(y(),_,U,Math.min(i,1)),Ne,Te);Te(),U===_&&z("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),fe=j(y(),_,U,i),ae=A(fe),be(ae),$e(e,{type:"animate",getProgress:()=>ae,getTrigger:()=>({tStart:_,tEnd:U})});function Ae(){ue=true,xe.hold(true);}return {destroy(){ue=true,xe.off(),N(),Re(e);},replay(){Se=-1,fe=0,M=false,ae=0,ue=false,be(0),xe.hold(false);},pause:Ae,resume(){ue&&(ue=false,xe.hold(false));},seek(u){let g=Math.min(1,Math.max(0,u));ae=g,Se=g,fe=0,Ae(),be(g);},getProgress(){return ae},refresh:xe.remeasure}}var lr=({decimals:e,format:n})=>e!==void 0?t=>t.toFixed(e):n??(t=>String(Math.round(t))),cr=e=>lr(e)(e.to),Mt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function ur(e,n){if(typeof window>"u")return Mt;let t=typeof e=="string"?document.querySelector(e):e;return t?je(n,(r,o)=>Jr(t,r,o)):(z("scrollCounter: element not found:",e),Mt)}function Jr(e,n,t){let{from:r=0,to:o,easing:s="ease-out",trigger:i={},once:l=true,onComplete:c}=n,p=lr(n),b=Le(s,"ease-out"),S=Z(i.start||"top 80%"),T=Z(i.end||"top 20%");if(t)return e.textContent=p(o),c?.(),{...Mt,getProgress:()=>1};let O=0,R=0,v=false,W=-1,G=0,x=0,A=false,L=()=>window.scrollY,H=()=>window.innerHeight;function h(){let y=e.getBoundingClientRect(),C=he({top:y.top,height:y.height},L(),H(),S,T);v&&Math.abs(C.tStart-O)<1&&Math.abs(C.tEnd-R)<1||(v=true,O=C.tStart,R=C.tEnd);}let k=e.style.getPropertyValue("--scroll-draw-progress");function F(y){e.textContent=p(r+(o-r)*y),e.style.setProperty("--scroll-draw-progress",String(y));}let X=()=>j(L(),O,R,1);function K(){let y=X(),C=l?Math.max(W,b(G=Math.max(G,y))):b(y);x=C,F(C),C>=1&&!A?(A=true,c?.()):C<1&&!l&&(A=false);}h();{G=j(L(),O,R,1);let y=b(G);x=y,F(y);}let $=Ce(window,[e],X,K,h);$e(e,{type:"counter",getProgress:()=>x,getTrigger:()=>({tStart:O,tEnd:R})});let N=()=>$.hold(false);return {destroy(){$.off(),e.style.setProperty("--scroll-draw-progress",k),Re(e);},replay(){W=-1,G=0,A=false,x=0,F(0),N();},pause:()=>$.hold(true),resume:N,seek(y){let C=Math.min(1,Math.max(0,y));x=C,W=C,G=0,$.hold(true),F(C);},getProgress(){return x}}}var fr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function mr(e,n={}){if(typeof window>"u")return fr;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="video")return z("scrollVideo: <video> element not found:",e),fr;let r=t,{trigger:o={},easing:s="linear",once:i=false,axis:l="y",preload:c="auto",triggerElement:p,onReady:b,onComplete:S,onProgress:T}=n,O=p??r,R=window.matchMedia("(prefers-reduced-motion: reduce)").matches,v=Le(s),W=Z(o.start||"top top"),G=Z(o.end||"bottom top");r.pause(),r.hasAttribute("preload")||(r.preload=c);let x=n.from??0,A=n.to,L=0,H=0,h=false,k=-1,F=0,X=0,K=false,$=false,N=()=>l==="x"?window.scrollX:window.scrollY,y=()=>l==="x"?window.innerWidth:window.innerHeight;function C(){let M=O.getBoundingClientRect(),P=l==="x"?M.left:M.top,oe=l==="x"?M.width:M.height,Fe=he({top:P,height:oe},N(),y(),W,G);L=Fe.tStart,H=Fe.tEnd,$&&H===L&&z("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",r);}let re=NaN;function ne(M){if(!$)return;let P=A??r.duration??0,oe=x+(P-x)*M;oe!==re&&(re=oe,r.currentTime=oe),r.style.setProperty("--scroll-draw-progress",String(M)),T?.(M);}let ye=()=>j(N(),L,H,1);function _(){if(!$||R)return;let M=ye(),P=i?Math.max(k,v(F=Math.max(F,M))):v(M);X=P,ne(P),P>=1&&!K?(K=true,S?.()):P<1&&!i&&(K=false);}let U=Ce(window,[O],ye,_,C),ue=()=>U.hold(h||!$||R);ue();function Se(){if($=true,A===void 0&&(A=r.duration),R){ne(1),b?.();return}C(),b?.(),h?ne(X):ue();}r.readyState>=1?Se():r.addEventListener("loadedmetadata",Se,{once:true}),$||C();let fe=R?()=>{}:Be(M=>{M&&(fe(),R=true,U.hold(true),ne(1));});$e(r,{type:"video",getProgress:()=>X,getTrigger:()=>({tStart:L,tEnd:H})});function ae(){h&&(h=false,ue());}return {destroy(){U.off(),r.removeEventListener("loadedmetadata",Se),fe(),Re(r);},replay(){k=-1,F=0,K=false,X=0,re=NaN,ne(0),ae();},pause(){h=true,U.hold(true);},resume:ae,seek(M){let P=Math.min(1,Math.max(0,M));X=P,k=P,F=0,h=true,U.hold(true),re=NaN,ne(P);},getProgress(){return X}}}var bt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Zr(e){let n=e>1?[0,e-1]:[0],t=[[0,e-1]];for(let r=0;r<t.length;r++){let[o,s]=t[r];if(s-o<2)continue;let i=o+s>>1;n.push(i),t.push([o,i],[i,s]);}return n}function pr(e,n){if(typeof window>"u")return bt;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="canvas")return z("scrollFrames: <canvas> element not found:",e),bt;let r=t,{frames:o,trigger:s={},easing:i="linear",once:l=false,axis:c="y",fit:p="cover",triggerElement:b,onReady:S,onLoad:T,onComplete:O,onProgress:R}=n||{},v=Array.isArray(o)?o:null,W=n?.count,G=Math.floor(v?Math.min(W??v.length,v.length):W??NaN);if(!(v||typeof o=="function")||!Number.isFinite(G)||G<1)return z("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",r),bt;let x=n.concurrency??6;(!Number.isFinite(x)||x<1)&&(z("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",n.concurrency),x=6),x=Math.floor(x);let A=r.getContext("2d");if(!A)return z("scrollFrames: the canvas has no 2D context.",r),bt;let L=G-1,H=b??r,h=window.matchMedia("(prefers-reduced-motion: reduce)").matches,k=Le(i),F=f=>{let d=k(f);return d===d?d:0},X=Z(s.start||"top top"),K=Z(s.end||"bottom top"),$=0,N=0,y=false,C=-1,re=0,ne=0,ye=false,_=false,U=false,ue=false,Se=0,fe=-1,ae=new Array(G),M=new Uint8Array(G),P=new Set,oe=h?[L]:Zr(G),Fe=0,J=0,He=false,Te=(f,...d)=>{if(f)try{f(...d);}catch(E){typeof reportError=="function"?reportError(E):setTimeout(()=>{throw E});}},be=false,_e=f=>{let d;try{d=v?v[f]:o(f);}catch(E){d=E;}return typeof d=="string"&&d?d:(be||(be=true,z(`scrollFrames: no URL for frame ${f}; it is skipped for its nearest neighbour.`,d)),null)},Ne=()=>c==="x"?window.scrollX:window.scrollY,xe=()=>c==="x"?window.innerWidth:window.innerHeight;function Ae(){!He&&J===oe.length&&(He=true,Te(T));}function u(){for(;!_&&P.size<x&&Fe<oe.length;){let f=oe[Fe++];M[f]||g(f);}}function g(f){M[f]=1;let d=_e(f);if(d===null){J++,queueMicrotask(()=>{_||Ae();});return}let E=new Image,le=false,ve=Ve=>{le||_||(le=true,E.onload=E.onerror=null,P.delete(E),Ve?ae[f]=E:z("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",d),J++,u(),B(),Ae());};P.add(E),E.decoding="async",E.onerror=()=>ve(false),E.src=d,typeof E.decode=="function"?E.decode().then(()=>ve(true),()=>{E.complete?ve(E.naturalWidth>0):E.onload=()=>ve(true);}):E.onload=()=>ve(true);}function se(f){for(let d=0;d<=L;d++){if(ae[f-d])return f-d;if(ae[f+d])return f+d}return -1}function D(){let f=r.clientWidth,d=r.clientHeight;if(!f||!d)return;let E=Math.min(window.devicePixelRatio||1,2),le=Math.round(f*E),ve=Math.round(d*E);if(Math.abs(r.width-le)<=1&&Math.abs(r.height-ve)<=1)return;r.width=le,r.height=ve,fe=-1;let Ve=r.clientWidth,Oe=r.clientHeight;if(Ve!==f||Oe!==d){let ze=r.style;Ve!==f&&Oe!==d?(ze.width=`${f}px`,ze.height=`${d}px`):ze.aspectRatio=`${f} / ${d}`;}}function B(){let f=se(Se);if(f<0||f===fe)return;let d=ae[f],E=r.width,le=r.height,ve=d.naturalWidth||E,Ve=d.naturalHeight||le,Oe=(p==="contain"?Math.min:Math.max)(E/ve,le/Ve),ze=ve*Oe,We=Ve*Oe;A.clearRect(0,0,E,le),A.drawImage(d,(E-ze)/2,(le-We)/2,ze,We),fe=f,U||(U=true,Te(S));}function q(f){Se=Math.min(L,Math.max(0,Math.round(f*L))),r.style.setProperty("--scroll-draw-progress",String(f)),B(),Te(R,f,Se);}function Y(){let f=H.getBoundingClientRect(),d=c==="x"?f.left:f.top,E=c==="x"?f.width:f.height,le=he({top:d,height:E},Ne(),xe(),X,K);$=le.tStart,N=le.tEnd,N===$&&E>0&&!h&&!ue&&(ue=true,z("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",r));}let Ie=()=>j(Ne(),$,N,1);function ie(){if(h)return;let f=Ie(),d=l?Math.max(C,F(re=Math.max(re,f))):F(f);ne=d,q(d),d>=1&&!ye?(ye=true,Te(O)):d<1&&!l&&(ye=false);}function De(){ne=1,q(1);}D(),h||Y();let we=Ce(window,[H],Ie,ie,()=>{D(),h||Y(),B();}),Qe=()=>we.hold(y||h);Qe(),h&&De(),u();let Ue=typeof ResizeObserver=="function"?new ResizeObserver(()=>{D(),B();}):null;Ue?.observe(r);let Ye=h?()=>{}:Be(f=>{f&&(Ye(),h=true,we.hold(true),oe=oe.slice(0,Fe),M[L]||oe.push(L),Ae(),De(),u());});$e(r,{type:"frames",getProgress:()=>ne,getTrigger:()=>({tStart:$,tEnd:N})});function me(){_||!y||(y=false,Qe());}return {destroy(){if(!_){_=true,we.off(),Ue?.disconnect(),Ye();for(let f of P)f.onload=f.onerror=null,f.src="";P.clear(),Re(r);}},replay(){_||(C=-1,re=0,ye=false,ne=0,q(0),me());},pause(){_||(y=true,we.hold(true));},resume:me,seek(f){if(_)return;let d=Math.min(1,Math.max(0,f===f?f:0));ne=d,C=d,re=0,y=true,we.hold(true),q(d);},getProgress(){return ne}}}var en=1e4;function dr(e){let{frames:n,count:t}=e;if(typeof n!="function")return lt(e);let r=Number.isFinite(t)?Math.min(Math.max(Math.floor(t),0),en):0,o;try{o=Array.from({length:r},(s,i)=>n(i));}catch{o=["throws"];}return lt({...e,frames:o})}function gr(e,n="<ScrollFrames>"){if(!e||e.getAttribute("aria-hidden")==="true")return;let t=e.getAttribute("role");t==="presentation"||t==="none"||e.getAttribute("aria-label")||e.getAttribute("aria-labelledby")||z(`${n}: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.`,e);}function hr(e,n){let t=document.createElement("span");t.textContent=n,t.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;user-select:none",e.appendChild(t);}function wt(e=""){let n=document.createElement("span");return n.setAttribute("aria-hidden","true"),n.textContent=e,n}function br(e){let n=e.textContent??"";return e.textContent="",n.split(/(\s+)/).filter(Boolean).map(t=>{let r=e.appendChild(wt(t)),o=/^\s+$/.test(t);return o?r.style.whiteSpace="pre":r.style.display="inline-block",o?null:r}).filter(t=>t!==null)}function tn(e){let n=e.textContent??"";e.textContent="";let t=[],r=null;for(let o of n){let s=wt(o),i=o===" ";i?s.style.whiteSpace="pre":(s.style.display="inline-block",t.push(s)),i||o>"\u0DFF"?r=null:r||(r=e.appendChild(wt()),r.style.cssText="display:inline-block;white-space:nowrap"),(r??e).appendChild(s);}return t}function yr(e){let n=br(e),t=new Map;for(let s of n){let i=s.offsetTop;t.has(i)||t.set(i,[]),t.get(i).push(s);}let r=[],o=Array.from(t.keys()).sort((s,i)=>s-i);for(let s of o){let i=t.get(s),l=wt();l.style.display="inline-block",i.forEach((c,p)=>{let b=c.nextElementSibling;l.appendChild(c),p<i.length-1&&b&&b.style.whiteSpace==="pre"&&l.appendChild(b);}),r.push(l);}return e.textContent="",r.forEach((s,i)=>{e.appendChild(s),i<r.length-1&&e.appendChild(document.createTextNode(" "));}),r}function rn(e,n,t,r){if(t<=1||r===0)return e;r=Math.min(r,1/t);let o=(t-1)*r,s=n*r,i=s+(1-o);return i<=s?e>=s?1:0:st((e-s)/(i-s),0,1)}function nn(e,n){let t=[];if(n?.y!==void 0&&t.push(`translateY(${n.y*(1-e)}px)`),n?.x!==void 0&&t.push(`translateX(${n.x*(1-e)}px)`),n?.rotate!==void 0&&t.push(`rotate(${n.rotate*(1-e)}deg)`),n?.scale!==void 0){let r=n.scale+(1-n.scale)*e;t.push(`scale(${r})`);}return t.join(" ")}var Pt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function wr(e,n={}){if(typeof window>"u")return Pt;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return z("scrollText: element not found:",e),Pt;let r=t;return je(n,(o,s)=>on(r,o,s))}function on(e,n,t){let{split:r="words",stagger:o=.04,easing:s="ease-out",from:i={opacity:0,y:24},trigger:l={},once:c=true,onComplete:p}=n,b=Le(s,"ease-out"),S=Z(l.start||"top 85%"),T=Z(l.end||"top 40%"),O=e.innerHTML,R=e.textContent??"",v;r==="chars"?v=tn(e):r==="lines"?v=yr(e):v=br(e),hr(e,R);let W=v.length;function G(y,C){i?.opacity!==void 0&&(y.style.opacity=String(i.opacity+(1-i.opacity)*C));let re=nn(C,i);re&&(y.style.transform=re);}function x(y){e.style.setProperty("--scroll-draw-progress",String(y)),v.forEach((C,re)=>{let ne=b(rn(y,re,W,o));G(C,ne);});}if(t)return x(1),p?.(),{...Pt,destroy:()=>{e.innerHTML=O;},getProgress:()=>1};x(0);let A=0,L=0,H=-1,h=0,k=false;function F(){({tStart:A,tEnd:L}=he(e.getBoundingClientRect(),window.scrollY,window.innerHeight,S,T));}let X=()=>j(window.scrollY,A,L,1);function K(){let y=c?H=Math.max(H,X()):X();h=y,x(y),y>=1&&!k?(k=true,p?.()):y<1&&!c&&(k=false);}F();let $=Ce(window,[e],X,K,()=>{r==="lines"&&(e.innerHTML=O,v=yr(e),hr(e,R),x(h)),F();});$e(e,{type:"text",getProgress:()=>h,getTrigger:()=>({tStart:A,tEnd:L})});let N=()=>$.hold(false);return {destroy(){$.off(),e.innerHTML=O,Re(e);},replay(){H=-1,k=false,h=0,x(0),N();},pause:()=>$.hold(true),resume:N,seek(y){$.hold(true),x(h=H=st(y,0,1));},getProgress(){return h}}}function ln(e,n={}){let[t,r]=cn.useState(0),o=cn.useRef(n);o.current=n;let s=cn.useRef(0);return cn.useEffect(()=>{if(typeof window>"u")return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){r(1);return}let i=typeof e=="string"?document.querySelector(e):e.current;if(!i)return;let l=i,{axis:c="y",scrollContainer:p,trigger:b={}}=o.current,S=typeof p=="string"?document.querySelector(p):p??null,T=Z(b.start||"top bottom"),O=Z(b.end||"bottom top"),R=0,v=0;function W(){return S?c==="x"?S.scrollLeft:S.scrollTop:c==="x"?window.scrollX:window.scrollY}function G(){return S?c==="x"?S.clientWidth:S.clientHeight:c==="x"?window.innerWidth:window.innerHeight}function x(){let h=Ze(l,S,c);({tStart:R,tEnd:v}=he(h,h.scroll,G(),T,O));}function A(){let{speed:h=1,easing:k="linear",once:F=false}=o.current,X=Le(k),K=j(W(),R,v,h),$=X(F?s.current=Math.max(s.current,K):K);r($);}x();let L=Ce(S??window,[l],()=>j(W(),R,v,Math.min(o.current.speed??1,1)),A,x),H=Be(h=>{h&&(H(),L.off(),r(1));});return ()=>{H(),L.off();}},[]),t}function et(e,n,t,r=lt(n)){let o=cn.useRef(n);o.current=n,cn.useEffect(()=>{if(!e.current)return;let s=t(e.current,tr(o.current,()=>o.current));return ()=>s.destroy()},[r]);}var un=/^(data-|aria-)|^(id|role|title|tabIndex|lang|dir|hidden)$/;function tt(e){let n={},t={};for(let[r,o]of Object.entries(e))(un.test(r)?t:n)[r]=o;return [n,t]}function Xo({children:e,className:n,style:t,...r}){let o=cn.useRef(null),[s,i]=tt(r);return et(o,s,Zt),jsxRuntime.jsx("div",{ref:o,className:n,style:t,...i,children:e})}function Ko({children:e,className:n,style:t,...r}){let o=cn.useRef(null),[s,i]=tt(r);return et(o,s,ar),jsxRuntime.jsx("div",{ref:o,className:n,style:t,...i,children:e})}function Jo({className:e,style:n,...t}){let r=cn.useRef(null),[o,s]=tt(t);et(r,o,ur);let i=cn.useRef(cr(o)).current;return jsxRuntime.jsx("span",{ref:r,className:e,style:n,...s,children:i})}function Zo({src:e,poster:n,className:t,style:r,muted:o=true,playsInline:s=true,...i}){let l=cn.useRef(null),[c,p]=tt(i);return et(l,c,mr),jsxRuntime.jsx("video",{...p,ref:l,src:e,poster:n,className:t,style:r,muted:o,playsInline:s,preload:c.preload??"auto"})}function es({className:e,style:n,role:t="img",triggerElement:r,...o}){let s=cn.useRef(null),[i,l]=tt(o),c=r&&"current"in r?r:null;return !c&&r&&(i.triggerElement=r),et(s,i,(p,b)=>pr(p,{...b,frames:i.frames,...c&&{triggerElement:c.current??void 0}}),dr(i)+(c?"+ref":"")),cn.useEffect(()=>gr(s.current),[]),jsxRuntime.jsx("canvas",{...l,ref:s,role:t,className:e,style:n})}function ts({children:e,as:n="p",className:t,style:r,...o}){let s=cn.useRef(null),[i,l]=tt(o);return et(s,i,wr),cn__default.default.createElement(n,{...l,ref:s,className:t,style:r},e)}exports.ScrollAnimate=Ko;exports.ScrollCounter=Jo;exports.ScrollDraw=Xo;exports.ScrollFrames=es;exports.ScrollText=ts;exports.ScrollVideo=Zo;exports.useScrollDrawProgress=ln;
|
package/dist/react/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {c,d as d$1,b as b$1,a as a$
|
|
2
|
+
import {c,d as d$1,b as b$1,a as a$5}from'../chunk-KN2YB54Z.mjs';import {a as a$7}from'../chunk-HJTHOZK5.mjs';import {a as a$3}from'../chunk-GBFWTY5L.mjs';import {a as a$8}from'../chunk-UF3MO5XQ.mjs';import {a as a$2,b as b$3}from'../chunk-OGFXZCKC.mjs';import {a as a$6}from'../chunk-HAGTU5EX.mjs';import {b as b$2}from'../chunk-XLXVGQ3P.mjs';import'../chunk-7LDSB4FT.mjs';import {a as a$4}from'../chunk-UPWWULKI.mjs';import'../chunk-XC5NR2MU.mjs';import'../chunk-YOOPMYT6.mjs';import'../chunk-2PYLM3E7.mjs';import {a,e,b,c as c$1}from'../chunk-NV6YTPHI.mjs';import {f as f$1}from'../chunk-IXR6RML7.mjs';import'../chunk-4DOJSIEQ.mjs';import {a as a$1}from'../chunk-5PJEKEEP.mjs';import'../chunk-EBU6E26L.mjs';import'../chunk-LFSU6LR3.mjs';import te,{useState,useRef,useEffect}from'react';import {jsx}from'react/jsx-runtime';function ee(o,r={}){let[s,e$1]=useState(0),t=useRef(r);t.current=r;let n=useRef(0);return useEffect(()=>{if(typeof window>"u")return;if(window.matchMedia("(prefers-reduced-motion: reduce)").matches){e$1(1);return}let l=typeof o=="string"?document.querySelector(o):o.current;if(!l)return;let c=l,{axis:i="y",scrollContainer:p,trigger:g={}}=t.current,a$2=typeof p=="string"?document.querySelector(p):p??null,W=a(g.start||"top bottom"),X=a(g.end||"bottom top"),y=0,E=0;function x(){return a$2?i==="x"?a$2.scrollLeft:a$2.scrollTop:i==="x"?window.scrollX:window.scrollY}function $(){return a$2?i==="x"?a$2.clientWidth:a$2.clientHeight:i==="x"?window.innerWidth:window.innerHeight}function R(){let u=a$4(c,a$2,i);({tStart:y,tEnd:E}=c$1(u,u.scroll,$(),W,X));}function G(){let{speed:u=1,easing:J="linear",once:Y=false}=t.current,B=f$1(J),b$1=b(x(),y,E,u),Q=B(Y?n.current=Math.max(n.current,b$1):b$1);e$1(Q);}R();let P=e(a$2??window,[c],()=>b(x(),y,E,Math.min(t.current.speed??1,1)),G,R),T=a$1(u=>{u&&(T(),P.off(),e$1(1));});return ()=>{T(),P.off();}},[]),s}function f(o,r,s,e=a$5(r)){let t=useRef(r);t.current=r,useEffect(()=>{if(!o.current)return;let n=s(o.current,b$1(t.current,()=>t.current));return ()=>n.destroy()},[e]);}var re=/^(data-|aria-)|^(id|role|title|tabIndex|lang|dir|hidden)$/;function d(o){let r={},s={};for(let[e,t]of Object.entries(o))(re.test(e)?s:r)[e]=t;return [r,s]}function Oe({children:o,className:r,style:s,...e}){let t=useRef(null),[n,l]=d(e);return f(t,n,b$2),jsx("div",{ref:t,className:r,style:s,...l,children:o})}function we({children:o,className:r,style:s,...e}){let t=useRef(null),[n,l]=d(e);return f(t,n,a$6),jsx("div",{ref:t,className:r,style:s,...l,children:o})}function xe({className:o,style:r,...s}){let e=useRef(null),[t,n]=d(s);f(e,t,b$3);let l=useRef(a$2(t)).current;return jsx("span",{ref:e,className:o,style:r,...n,children:l})}function Re({src:o,poster:r,className:s,style:e,muted:t=true,playsInline:n=true,...l}){let c=useRef(null),[i,p]=d(l);return f(c,i,a$7),jsx("video",{...p,ref:c,src:o,poster:r,className:s,style:e,muted:t,playsInline:n,preload:i.preload??"auto"})}function Pe({className:o,style:r,role:s="img",triggerElement:e,...t}){let n=useRef(null),[l,c$1]=d(t),i=e&&"current"in e?e:null;return !i&&e&&(l.triggerElement=e),f(n,l,(p,g)=>a$3(p,{...g,frames:l.frames,...i&&{triggerElement:i.current??void 0}}),c(l)+(i?"+ref":"")),useEffect(()=>d$1(n.current),[]),jsx("canvas",{...c$1,ref:n,role:s,className:o,style:r})}function Te({children:o,as:r="p",className:s,style:e,...t}){let n=useRef(null),[l,c]=d(t);return f(n,l,a$8),te.createElement(r,{...c,ref:n,className:s,style:e},o)}export{we as ScrollAnimate,xe as ScrollCounter,Oe as ScrollDraw,Pe as ScrollFrames,Te as ScrollText,Re as ScrollVideo,ee as useScrollDrawProgress};
|