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/solid/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var solidJs=require('solid-js');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
|
|
1
|
+
'use strict';var solidJs=require('solid-js');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 P(e,...n){Ke&&console.warn(`[svg-scroll-draw] ${e}`,...n);}function Tr({tension:e=2.5,friction:n=2.2}={}){return t=>1-Math.cos(t*Math.PI*e)*Math.pow(1-t,n)}function xr({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 g=0;g<t;g++){let w=Math.pow(o,g);i.push(w),s+=w;}let l=[0],m=0;for(let g=0;g<t;g++)m+=i[g]/s,l.push(m);return g=>{if(g<=0)return 0;if(g>=1)return 1;for(let w=0;w<t;w++)if(g<=l[w+1]){let O=(g-l[w])/(l[w+1]-l[w]);if(w===0)return O*(2-O);let T=1-Math.pow(r,w);return T+(1-T)*(2*O-1)*(2*O-1)}return 1}}function Lr({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 Xe={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:Tr(),bounce:xr(),elastic:Lr()};function Ar(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,m=0,g=1;l<30;l++)i=(m+g)/2,o(e,t,i)<s?m=i:g=i;return o(n,r,i)}}function Et(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 [Ar(t[0],t[1],t[2],t[3]),`cubic-bezier(${t})`]}var _t=new Set;function Re(e,n="linear"){if(typeof e=="function")return e;if(e==null)return Xe[n];if({}.hasOwnProperty.call(Xe,e))return Xe[e];let t=Et(String(e));return t?t[0]:(!_t.has(e)&&_t.add(e)&&P(`Unknown easing ${JSON.stringify(e)}: use a name, cubic-bezier() or a function.`),Xe[n])}function rt(e,n,t){return Math.min(t,Math.max(n,e))}function ae(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 Gt=(e,n)=>e==="top"?0:e==="center"?.5:e==="bottom"?1:n;function zt(e,n,t,r){return e+t+n*Gt(r,0)}function Wt(e,n){return n*(/^\d+(\.\d+)?%$/.test(e)?parseFloat(e)/100:Gt(e,1))}function Q(e,n,t,r){return t===n?0:rt((e-n)/(t-n)*r,0,1)}function Le(e,n,t,r,o){let s=zt(e.top,e.height,n,r.element)-Wt(r.viewport,t),i=zt(e.top,e.height,n,o.element)-Wt(o.viewport,t);return {tStart:s,tEnd:i}}function lt(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 ct(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 ut(e){return `${e} ${e*2}`}function Bt(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 ft(e,n,t){let r=Bt(e),o=Bt(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 qt={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 Cr="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Pr="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",jt=33;function Or(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function $r(e){let n=[];for(let t=0;t<jt;t++){let r=t/(jt-1);n.push(String(Math.round(e(r)*1e5)/1e5));}return `linear(${n.join(",")})`}function mt(e){switch(e){case "linear":return "linear";case "ease-in":return Cr;case "ease-out":return Pr;case "ease-in-out":return Or()?$r(Xe["ease-in-out"]):null;default:return Et(e)?.[1]??null}}var Ut=Symbol.for("svg-scroll-draw.registry");function Yt(){let e=globalThis;return e[Ut]||(e[Ut]=new Map)}function Oe(e,n){Yt().set(e,n);}function $e(e){Yt().delete(e);}function Je(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 qe(e,n){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return n(e,true);let t=n(e,false),r=Je(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 nt,pt=new Set,dt=new WeakMap,ot=new Map,Qt=e=>{let n=e.getBoundingClientRect();return n.width+" "+n.height};function kr(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 Kt(e,n){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let t=()=>n();nt??(nt=new ResizeObserver(o=>{let s=false;for(let{target:i}of o)dt.get(i)!==Qt(i)&&(s=true),dt.set(i,"");s&&pt.forEach(i=>i());})),pt.add(t);let r=kr(e);return [document.body,document.documentElement].forEach(o=>o&&r.add(o)),r.forEach(o=>{dt.has(o)||dt.set(o,Qt(o)),ot.set(o,(ot.get(o)??0)+1),nt.observe(o);}),()=>{pt.delete(t)&&(r.forEach(o=>{let s=(ot.get(o)??1)-1;if(s)return void ot.set(o,s);ot.delete(o),nt?.unobserve(o);}),pt.size||(nt?.disconnect(),nt=void 0));}}function De(e,n,t,r,o){let s,i=NaN,l,m,g=()=>{s=0,r(),!l&&!s&&(i=t())>0&&i<1&&(s=requestAnimationFrame(g));},w=()=>{!s&&!l&&t()!==i&&(s=requestAnimationFrame(g));},O=q=>{l=q,cancelAnimationFrame(s),s=i=NaN,w();},T=()=>{clearTimeout(m),o(),w();},$=()=>{clearTimeout(m),m=setTimeout(T,150);},z=Kt(n,$),M=q=>{e[q]("scroll",w,{passive:true}),window[q]("resize",$),window[q]("orientationchange",$);};return M("addEventListener"),w(),{hold:O,remeasure:T,off(){O(true),M("removeEventListener"),z(),clearTimeout(m);}}}var Fr=0;function Hr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Xt(e,n){let t="";try{t=getComputedStyle(e).getPropertyValue(n).trim();}catch{}return t||(e.getAttribute(n)??"").trim()}var Jt=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function Ir(e){if(!Ke)return;let n=Xt(e,"stroke");if(!n||n==="none"){P("Element has no stroke \u2014 path will not be visible.",e);return}let t=(e.getAttribute("fill")??"").trim();t&&!Jt.has(t)&&!Jt.has(Xt(e,"fill"))&&P("Element has a fill \u2014 it may obscure the stroke animation.",e);}function Rr(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,m=t==="x";r.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:${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 Zt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,er=/[MmLlHhVvCcSsQqTtAaZz]/g;function Dr(e,n,t){if(!Ke)return;let r=(e.match(er)??[]).join("").toUpperCase(),o=(n.match(er)??[]).join("").toUpperCase(),s=(e.match(Zt)??[]).length,i=(n.match(Zt)??[]).length;if(r!==o){$(`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&&$(`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 Nr(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 St(e,n={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:qe(n,(t,r)=>Vr(e,t,r))}function Vr(e,n,t){let{preset:r,...o}=n,s=r?{...qt[r],...o}:o,{selector:i="path, polyline, line, polygon, rect, circle",speed:l=1,fade:m=false,easing:g="linear",trigger:w={},stagger:P=0,direction:S="forward",once:G=false,debug:Q=false,axis:v="y",scrollContainer:z,autoReverse:Z=false,delay:O=0,strokeColor:C,strokeWidth:L,fillOpacity:k,waypoints:h,velocityScale:F=false,threshold:W=0,rootMargin:se="0px",repeat:K=0,repeatDelay:V=0,morphTo:R,clip:M,autoplay:X=false,duration:E=1e3,native:A=true,onProgress:he,onStart:D,onComplete:q,onEnter:ue,onLeave:Ee,onEnterBack:fe,onLeaveBack:ie}=s,T=M===true?"left":typeof M=="string"?M:false,x=Re(g),re=ae(w.start||"top bottom"),ke=ae(w.end||"bottom top"),J=typeof z=="string"?document.querySelector(z):z??null,Fe=Array.isArray(C)?C[0]:null,Se=Array.isArray(C)?C[1]:typeof C=="string"?C:null,ye=Array.isArray(L)?L[0]:null,_e=Array.isArray(L)?L[1]:typeof L=="number"?L:null,He=Array.isArray(k)?k[0]:null,Me=Array.isArray(k)?k[1]:typeof k=="number"?k:null;function Ae(a){let f=a*100;switch(T){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 c=T?[]:Array.from(e.querySelectorAll(i)),d=[],ne=[],H=0,_=0,B=P,j=0,Ne=0,oe=false,Ie=false,be=0,Ye=-1,je=[],Ue=-1,me=false,u=0,p=0,b,le=false,we=null;function ze(){we?.destroy(),we=null;}let Ce=new Set,We=NaN,Ge=true,it=-1,Pt=performance.now(),Qe=NaN;function at(){return J?v==="x"?J.scrollLeft:J.scrollTop:v==="x"?window.scrollX:window.scrollY}function Ot(){return J?v==="x"?J.clientWidth:J.clientHeight:v==="x"?window.innerWidth:window.innerHeight}function $t(){let a=lt(e,J,v);return Le(a,a.scroll,Ot(),re,ke)}function yr(){let a=_-H,f=c.length-1,y=J??document.documentElement,N=v==="x"?"Width":"Height";if(B=P,P>0&&f>0&&a>0){let pe=y[`scroll${N}`]-y[`client${N}`]-1-H-a/l;pe>=0&&(B=Math.min(P,pe/(f*a)));}let ce=Math.max(0,f)*B*a,Te=a/Math.min(l,1);j=H+Math.min(0,ce,Te,ce+Te),Ne=H+Math.max(0,ce,Te,ce+Te);}function kt(){(({tStart:H,tEnd:_}=$t())),yr(),Q&&Ke&&(ze(),we=Rr(H,_,v));}function yt(a,f=$t){Oe(e,{type:"draw",getProgress:()=>a.getProgress(),getTrigger:f});let y=a.destroy;return a.destroy=()=>{y.call(a),$e(e);},a}function Ft(a,f){return G&&!Z?Math.max(Ye,x(je[a]=Math.max(je[a]??0,f))):x(f)}function br(a,f){if(e.style.setProperty("--scroll-draw-progress",String(a)),T){let y=f==="reverse"?1-a:a;e.style.clipPath=Ae(y);return}c.forEach((y,N)=>bt(y,N,a,f));}function bt(a,f,y,N){a.style.strokeDashoffset=N==="reverse"?`${d[f]*y}`:`${d[f]*(1-y)}`,m&&(a.style.opacity=N==="reverse"?`${1-y}`:`${y}`),Fe&&Se?a.style.stroke=ft(Fe,Se,y):Se&&(a.style.stroke=Se),ye!==null&&_e!==null?a.style.strokeWidth=`${ye+(_e-ye)*y}`:_e!==null&&(a.style.strokeWidth=`${_e}`),He!==null&&Me!==null?a.style.fillOpacity=`${He+(Me-He)*y}`:Me!==null&&(a.style.fillOpacity=`${Me}`),R&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",Nr(ne[f],R,y));}function wt(){if(e.style.setProperty("--scroll-draw-progress","0"),T){e.style.clipPath=Ae(S==="reverse"?1:0);return}c.forEach((a,f)=>{a.style.strokeDasharray=ut(d[f]),a.style.strokeDashoffset=S==="reverse"?"0":`${d[f]}`,m?a.style.opacity=S==="reverse"?"1":"0":a.style.opacity="",Fe&&(a.style.stroke=Fe),ye!==null&&(a.style.strokeWidth=`${ye}`),He!==null&&(a.style.fillOpacity=`${He}`),R&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",ne[f]);});}function Ze(a,f){let y=a.getAttribute("d"),N=ct(a);if(R&&ne[f]){a.setAttribute("d",R);let ce=ct(a);a.setAttribute("d",ne[f]),N=Math.max(ct(a),ce),a.setAttribute("d",y);}d[f]=N,a.style.strokeDasharray=ut(N);}if(c.forEach((a,f)=>{Ir(a);let y=a.tagName.toLowerCase()==="path";y?ne.push(a.getAttribute("d")??""):ne.push(""),Ze(a,f);let N=d[f];R&&(y?Dr(ne[ne.length-1],R,a):$(`morphTo only applies to <path> elements \u2014 ignored on <${a.tagName}>.`,a)),t?(a.style.strokeDashoffset=S==="reverse"?`${N}`:"0",m&&(a.style.opacity="1"),Se&&(a.style.stroke=Se),_e!==null&&(a.style.strokeWidth=`${_e}`),Me!==null&&(a.style.fillOpacity=`${Me}`),R&&a.tagName.toLowerCase()==="path"&&a.setAttribute("d",R)):(a.style.strokeDashoffset=S==="reverse"?"0":`${N}`,m?a.style.opacity=S==="reverse"?"1":"0":a.style.opacity="",Fe&&(a.style.stroke=Fe),ye!==null&&(a.style.strokeWidth=`${ye}`),He!==null&&(a.style.fillOpacity=`${He}`));}),t)return T&&(e.style.clipPath=Ae(1)),q?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};T&&(e.style.clipPath=Ae(S==="reverse"?1:0));let Ht=typeof g=="string"?mt(g):null;function wr(){return !(A===false||X||Q&&Ke||!Hr()||!c.length||!Ht||T||v!=="y"||J||l!==1||P!==0||G||Z||F!==false||R||h||K||O>0||he||D||q||ue||Ee||fe||ie||C!=null||L!=null||k!=null||(w.start||"top bottom").trim()!=="top bottom"||(w.end||"bottom top").trim()!=="bottom top")}function vr(){let a=++Fr,f=`svg-scroll-draw-${a}`,y=`svg-scroll-draw-host-${a}`,N=`--svg-scroll-draw-${a}`,ce=S==="reverse"?"0":"var(--ssd-len)",Te=S==="reverse"?"var(--ssd-len)":"0",pe=`stroke-dashoffset:${ce};`,ee=`stroke-dashoffset:${Te};`;m&&(pe+=`opacity:${S==="reverse"?1:0};`,ee+=`opacity:${S==="reverse"?0:1};`);let te=document.createElement("style");te.setAttribute("data-svg-scroll-draw",""),te.textContent=`@keyframes ${f}{from{${pe}}to{${ee}}}.${y}{view-timeline-name:${N};view-timeline-axis:block;}.${f}{animation-name:${f};animation-duration:auto;animation-timing-function:${Ht};animation-fill-mode:both;animation-timeline:${N};animation-range:cover 0% cover 100%;}`,document.head.appendChild(te),e.classList.add(y);function ve(I,U){I.style.setProperty("--ssd-len",String(d[U])),I.style.strokeDasharray=ut(d[U]),I.style.strokeDashoffset="",I.style.opacity="",I.style.animationPlayState="",I.classList.add(f);}c.forEach(ve);let de=false,xe=-1;function Pe(){if(xe>=0)return xe;let I=e.getBoundingClientRect(),{tStart:U,tEnd:ge}=Le({top:I.top,height:I.height},at(),Ot(),re,ke);return x(Y(at(),U,ge,l))}return {destroy(){e.classList.remove(y),c.forEach(I=>{I.classList.remove(f),I.style.removeProperty("--ssd-len"),I.style.animationPlayState="";}),te.remove();},replay(){de=false,xe=-1,c.forEach(ve);},pause(){de=true,c.forEach(I=>{I.style.animationPlayState="paused";});},resume(){de&&(de=false,c.forEach(I=>{I.style.animationPlayState="running";}));},seek(I){let U=Math.min(1,Math.max(0,I));xe=U,de=true,c.forEach((ge,Be)=>{ge.classList.remove(f),ge.style.strokeDashoffset=S==="reverse"?`${d[Be]*U}`:`${d[Be]*(1-U)}`,m&&(ge.style.opacity=S==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return Pe()},refresh(){c.forEach((I,U)=>{Ze(I,U),I.style.setProperty("--ssd-len",String(d[U]));});}}}if(wr())return yt(vr());function Er(){let a=Math.max(1,E),f=T?a:a*(1+Math.max(0,c.length-1)*P),y=0,N=0,ce=false;function Te(xe){let Pe=true,I=Math.min(1,Math.max(0,xe/f));if(T){let U=Math.min(1,Math.max(0,xe/a)),ge=x(U);u=ge,e.style.setProperty("--scroll-draw-progress",String(ge)),e.style.clipPath=Ae(S==="reverse"?1-ge:ge),he?.(ge),U<1&&(Pe=false);}else {c.forEach((ge,Be)=>{let Mr=Be*P*a,Vt=Math.min(1,Math.max(0,(xe-Mr)/a));bt(ge,Be,x(Vt),S),Vt<1&&(Pe=false);});let U=x(I);u=U,he?.(U),e.style.setProperty("--scroll-draw-progress",String(U));}if(h){let U=x(I);for(let ge in h){let Be=parseFloat(ge);U>=Be&&!Ce.has(Be)&&(Ce.add(Be),h[ge]?.());}}return Pe}function pe(xe){if(me)return;let Pe=xe-y;Ie||(Ie=true,D?.());let I=Te(Pe);if(I&&!oe){oe=true,Te(f),q?.(),p<(K==="infinite"?1/0:K??0)&&(p++,b=setTimeout(()=>{y=performance.now(),Ie=false,oe=false,Ce.clear(),wt(),be=requestAnimationFrame(pe);},V));return}I||(be=requestAnimationFrame(pe));}function ee(){cancelAnimationFrame(be),clearTimeout(b),y=performance.now(),N=0,me=false,Ie=false,oe=false,p=0,ce=true,u=0,Ce.clear(),wt(),be=requestAnimationFrame(pe);}let te=new IntersectionObserver(xe=>{xe.forEach(Pe=>{Pe.isIntersecting&&!(G&&oe)?ee():!Pe.isIntersecting&&!G&&!oe&&(cancelAnimationFrame(be),clearTimeout(b),ce=false);});},{root:J??null,threshold:W,rootMargin:se}),ve;function de(){clearTimeout(ve),ve=setTimeout(()=>c.forEach(Ze),150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),O>0?setTimeout(()=>te.observe(e),O):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()-y,cancelAnimationFrame(be));},resume(){me&&(me=false,ce=true,y=performance.now()-N,be=requestAnimationFrame(pe));},seek(xe){let Pe=Math.min(1,Math.max(0,xe));u=Pe,me=true,N=Pe*f,y=performance.now()-N,cancelAnimationFrame(be),Te(N);},getProgress(){return u},refresh(){clearTimeout(ve),c.forEach(Ze);}}}if(X)return yt(Er());kt();let It=()=>Y(at(),j,Ne,1);function Rt(){oe=true,q?.(),p<(K==="infinite"?1/0:K)&&(p++,b=setTimeout(()=>{le=true;},V));}function Dt(){Ye=-1,je=[],Ie=false,oe=false,le=false,Ce.clear(),wt(),Ge=true;}function Sr(){let a=performance.now(),f=at();if(le&&It()%1&&Dt(),!Ge&&F===false&&f===We)return;Ge=false,We=f;let y=l;if(F!==false){let ee=a-Pt,te=ee>0?Math.abs(f-(it<0?f:it))/ee:0;y=l*Math.max(.2,1+te*(typeof F=="number"?F:1)*.04);}it=f,Pt=a;let N=Z?Ue===-1||f>=Ue?"forward":"reverse":S;Ue=f;let ce=_-H,Te=true,pe=ce===0?0:(f-H)/ce;if(isNaN(Qe)||(Qe<=0&&pe>0&&ue?.(),Qe<1&&pe>=1&&Ee?.(),Qe>=1&&pe<1&&fe?.(),Qe>0&&pe<=0&&ie?.()),Qe=pe,T){let ee=Ft(0,Y(f,H,_,y));u=ee,e.style.setProperty("--scroll-draw-progress",String(ee));let te=N==="reverse"?1-ee:ee;e.style.clipPath=Ae(te),he?.(ee),!Ie&&Y(f,H,_,y)>0&&(Ie=true,D?.()),ee>=1&&!oe?Rt():ee<1&&!G&&(oe=false);return}if(c.forEach((ee,te)=>{let ve=te*B*ce,de=Ft(te,Y(f,H+ve,_+ve,y));bt(ee,te,de,N),te===0&&(u=de,he?.(de),e.style.setProperty("--scroll-draw-progress",String(de))),de<1&&(Te=false);}),h){let ee=x(Y(f,H,_,y));for(let te in h){let ve=parseFloat(te);ee>=ve&&!Ce.has(ve)&&(Ce.add(ve),h[te]?.());}}!Ie&&Y(f,H,_,y)>0&&(Ie=true,D?.()),Te&&!oe?Rt():!Te&&!G&&(oe=false);}let et=De(J??window,[e],It,Sr,()=>{let a=d.join();c.forEach(Ze),kt(),Ge=true,d.join()!==a&&tt();}),vt=O>0;function tt(){et.hold(me||vt);}let Nt;return vt&&(Nt=setTimeout(()=>{vt=false,tt();},O)),tt(),yt({destroy(){clearTimeout(b),clearTimeout(Nt),et.off(),ze();},replay(){Dt(),Ue=-1,it=-1,p=0,me=false,u=0,clearTimeout(b),tt();},pause(){me=true,et.hold(true);},resume(){me&&(me=false,Ge=true,tt());},seek(a){let f=Math.min(1,Math.max(0,a));u=f,Ye=f,je=[],me=true,et.hold(true),br(f,S),Ge=true;},getProgress(){return u},refresh:et.remeasure},()=>({tStart:H,tEnd:_}))}var tr=new WeakMap,_r=0;function st(e){return JSON.stringify(e,(n,t)=>{if(typeof t=="function")return "\u0192";if(typeof Element<"u"&&t instanceof Element){let r=tr.get(t);return r===void 0&&tr.set(t,r=++_r),`el#${r}`}return t})}function rr(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 zr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function nr(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 m=l.match(/^([-+]?[\d.eE]+)(.*)$/);o.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}n.push({fn:r[1],nums:o,units:s});}return n}function Wr(e,n,t){let r=nr(e),o=nr(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((m,g)=>`${m}${s.units[g]}`).join(", ")})`:`${l.fn}(${l.nums.map((m,g)=>`${m}${l.units[g]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,g)=>`${m+(l.nums[g]-m)*t}${s.units[g]}`).join(", ")})`}).join(" ")}function or(e,n,t){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*t);let r=String(e),o=String(n);if(zr(r))return ft(r,o,t);if(r.includes("("))return Wr(r,o,t);let s=r.match(/^([-+]?[\d.]+)(.*)$/),i=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&i){let l=parseFloat(s[1]),m=parseFloat(i[1]);return `${l+(m-l)*t}${s[2]||i[2]}`}return t<1?r:o}function Gr(e){return e.replace(/([A-Z])/g,n=>`-${n.toLowerCase()}`)}var Br=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),qr=0,sr="--scroll-draw-progress";function jr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var ar={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Mt(e,n){return typeof window>"u"?ar:n.respectReducedMotion===false?ir(e,n,false):qe(n,(t,r)=>ir(e,t,r))}function ir(e,n,t){let{props:r,trigger:o={},easing:s="ease-out",speed:i=1,once:l=false,axis:m="y",scrollContainer:g,native:w=true,velocityScale:P=false,triggerElement:S,onProgress:G,onComplete:Q,onEnter:v,onLeave:z,onEnterBack:Z,onLeaveBack:O}=n,C=Re(s,"ease-out"),L=ae(o.start||"top bottom"),k=ae(o.end||"bottom top"),h=S??e,F=typeof g=="string"?document.querySelector(g):g??null,W=Object.entries(r).map(([c,d])=>({prop:Gr(c),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function se(){let c=window.getComputedStyle(e);for(let d of W)d.from===""&&(d.from=c.getPropertyValue(d.prop).trim()||"0");}function K(){for(let c of W)e.style.setProperty(c.prop,String(c.to));}let V=new Map;for(let c of [...W.map(d=>d.prop),sr])V.set(c,e.style.getPropertyValue(c));function R(){for(let[c,d]of V)d?e.style.setProperty(c,d):e.style.removeProperty(c);}if(t)return K(),Q?.(),{...ar,destroy:R,getProgress:()=>1};se();let M=()=>F?m==="x"?F.scrollLeft:F.scrollTop:m==="x"?window.scrollX:window.scrollY,X=()=>F?m==="x"?F.clientWidth:F.clientHeight:m==="x"?window.innerWidth:window.innerHeight,E=typeof s=="string"?mt(s):null;function A(){if(!w||!jr()||!E||m!=="y"||F||h!==e||l||i!==1||G||Q||v||z||Z||O||P!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let c of W)if(!Br.has(c.prop))return false;return true}function he(){let c=`ssd-a-${++qr}`,d=W.map(j=>`${j.prop}:${j.from}`).join(";"),ne=W.map(j=>`${j.prop}:${j.to}`).join(";"),H=document.createElement("style");H.setAttribute("data-ssd-animate",""),H.textContent=`@keyframes ${c}{from{${d}}to{${ne}}}.${c}{animation-name:${c};animation-duration:auto;animation-timing-function:${E};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(H),e.classList.add(c);let _=()=>{let j=e.getBoundingClientRect();return Le({top:j.top,height:j.height},M(),X(),L,k)};Oe(e,{type:"animate",getProgress:()=>B.getProgress(),getTrigger:_});let B={refresh(){},destroy(){e.classList.remove(c),H.remove(),e.style.animationPlayState="",R(),$e(e);},replay(){e.classList.remove(c),e.offsetWidth,e.classList.add(c);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(j){let Ne=Math.min(1,Math.max(0,j));e.classList.remove(c);for(let oe of W)e.style.setProperty(oe.prop,or(oe.from,oe.to,Ne));},getProgress(){let{tStart:j,tEnd:Ne}=_();return C(Y(M(),j,Ne,i))}};return B}if(A())return he();let D=0,q=0,ue=false,Ee=-1,fe=0,ie=0,T=false,x=NaN,re=-1,ke=0,J=h===e?W:[],Fe=false;function Se(){let c=e.style,d=J.map(B=>c.getPropertyValue(B.prop)),ne=c.transition;J.length&&(c.transition="none"),J.forEach(B=>c.setProperty(B.prop,V.get(B.prop)??""));let H=lt(h,F,m);J.forEach((B,j)=>c.setProperty(B.prop,d[j])),J.length&&(e.offsetWidth,c.transition=ne);let _=Le(H,H.scroll,X(),L,k);Fe&&Math.abs(_.tStart-D)<1&&Math.abs(_.tEnd-q)<1||(Fe=true,D=_.tStart,q=_.tEnd);}function ye(c){e.style.setProperty(sr,String(c));for(let d of W)e.style.setProperty(d.prop,or(d.from,d.to,c));G?.(c);}function _e(c){if(isNaN(x)){x=c;return}x<=0&&c>0&&v?.(),x<1&&c>=1&&z?.(),x>=1&&c<1&&Z?.(),x>0&&c<=0&&O?.(),x=c;}function He(){if(ue)return;let c=performance.now(),d=M(),ne=i;if(P!==false){let j=c-ke,Ne=j>0?Math.abs(d-(re<0?d:re))/j:0;ne=i*Math.max(.2,1+Ne*(typeof P=="number"?P:1)*.04);}re=d,ke=c;let H=q===D?0:(d-D)/(q-D);_e(H);let _=Y(d,D,q,ne),B=l?Math.max(Ee,C(fe=Math.max(fe,_))):C(_);ie=B,ye(B),B>=1&&!T?(T=true,Q?.()):B<1&&!l&&(T=false);}let Me=De(F??window,[h],()=>Y(M(),D,q,Math.min(i,1)),He,Se);Se(),q===D&&$("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),fe=Y(M(),D,q,i),ie=C(fe),ye(ie),Oe(e,{type:"animate",getProgress:()=>ie,getTrigger:()=>({tStart:D,tEnd:q})});function Ae(){ue=true,Me.hold(true);}return {destroy(){ue=true,Me.off(),R(),$e(e);},replay(){Ee=-1,fe=0,T=false,ie=0,ue=false,ye(0),Me.hold(false);},pause:Ae,resume(){ue&&(ue=false,Me.hold(false));},seek(c){let d=Math.min(1,Math.max(0,c));ie=d,Ee=d,fe=0,Ae(),ye(d);},getProgress(){return ie},refresh:Me.remeasure}}var Tt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function xt(e,n){if(typeof window>"u")return Tt;let t=typeof e=="string"?document.querySelector(e):e;return t?qe(n,(r,o)=>Ur(t,r,o)):($("scrollCounter: element not found:",e),Tt)}function Ur(e,n,t){let{from:r=0,to:o,format:s,easing:i="ease-out",trigger:l={},once:m=true,decimals:g,onComplete:w}=n,P=g!==void 0?E=>E.toFixed(g):s??(E=>String(Math.round(E))),S=Re(i,"ease-out"),G=ae(l.start||"top 80%"),Q=ae(l.end||"top 20%");if(t)return e.textContent=P(o),w?.(),{...Tt,getProgress:()=>1};let v=0,z=0,Z=false,O=-1,C=0,L=0,k=false,h=()=>window.scrollY,F=()=>window.innerHeight;function W(){let E=e.getBoundingClientRect(),A=Le({top:E.top,height:E.height},h(),F(),G,Q);Z&&Math.abs(A.tStart-v)<1&&Math.abs(A.tEnd-z)<1||(Z=true,v=A.tStart,z=A.tEnd);}let se=e.style.getPropertyValue("--scroll-draw-progress");function K(E){e.textContent=P(r+(o-r)*E),e.style.setProperty("--scroll-draw-progress",String(E));}let V=()=>Y(h(),v,z,1);function R(){let E=V(),A=m?Math.max(O,S(C=Math.max(C,E))):S(E);L=A,K(A),A>=1&&!k?(k=true,w?.()):A<1&&!m&&(k=false);}W();{C=Y(h(),v,z,1);let E=S(C);L=E,K(E);}let M=De(window,[e],V,R,W);Oe(e,{type:"counter",getProgress:()=>L,getTrigger:()=>({tStart:v,tEnd:z})});let X=()=>M.hold(false);return {destroy(){M.off(),e.style.setProperty("--scroll-draw-progress",se),$e(e);},replay(){O=-1,C=0,k=false,L=0,K(0),X();},pause:()=>M.hold(true),resume:X,seek(E){let A=Math.min(1,Math.max(0,E));L=A,O=A,C=0,M.hold(true),K(A);},getProgress(){return L}}}var lr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Lt(e,n={}){if(typeof window>"u")return lr;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="video")return $("scrollVideo: <video> element not found:",e),lr;let r=t,{trigger:o={},easing:s="linear",once:i=false,axis:l="y",preload:m="auto",triggerElement:g,onReady:w,onComplete:P,onProgress:S}=n,G=g??r,Q=window.matchMedia("(prefers-reduced-motion: reduce)").matches,v=Re(s),z=ae(o.start||"top top"),Z=ae(o.end||"bottom top");r.pause(),r.hasAttribute("preload")||(r.preload=m);let O=n.from??0,C=n.to,L=0,k=0,h=false,F=-1,W=0,se=0,K=false,V=false,R=()=>l==="x"?window.scrollX:window.scrollY,M=()=>l==="x"?window.innerWidth:window.innerHeight;function X(){let T=G.getBoundingClientRect(),x=l==="x"?T.left:T.top,re=l==="x"?T.width:T.height,ke=Le({top:x,height:re},R(),M(),z,Z);L=ke.tStart,k=ke.tEnd,V&&k===L&&$("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",r);}let E=NaN;function A(T){if(!V)return;let x=C??r.duration??0,re=O+(x-O)*T;re!==E&&(E=re,r.currentTime=re),r.style.setProperty("--scroll-draw-progress",String(T)),S?.(T);}let he=()=>Y(R(),L,k,1);function D(){if(!V||Q)return;let T=he(),x=i?Math.max(F,v(W=Math.max(W,T))):v(T);se=x,A(x),x>=1&&!K?(K=true,P?.()):x<1&&!i&&(K=false);}let q=De(window,[G],he,D,X),ue=()=>q.hold(h||!V||Q);ue();function Ee(){if(V=true,C===void 0&&(C=r.duration),Q){A(1),w?.();return}X(),w?.(),h?A(se):ue();}r.readyState>=1?Ee():r.addEventListener("loadedmetadata",Ee,{once:true}),V||X();let fe=Q?()=>{}:Je(T=>{T&&(fe(),Q=true,q.hold(true),A(1));});Oe(r,{type:"video",getProgress:()=>se,getTrigger:()=>({tStart:L,tEnd:k})});function ie(){h&&(h=false,ue());}return {destroy(){q.off(),r.removeEventListener("loadedmetadata",Ee),fe(),$e(r);},replay(){F=-1,W=0,K=false,se=0,E=NaN,A(0),ie();},pause(){h=true,q.hold(true);},resume:ie,seek(T){let x=Math.min(1,Math.max(0,T));se=x,F=x,W=0,h=true,q.hold(true),E=NaN,A(x);},getProgress(){return se}}}var Yr=1e4;function cr(e){let{frames:n,count:t}=e;if(typeof n!="function")return st(e);let r=Number.isFinite(t)?Math.min(Math.max(Math.floor(t),0),Yr):0,o;try{o=Array.from({length:r},(s,i)=>n(i));}catch{o=["throws"];}return st({...e,frames:o})}function ur(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")||$(`${n}: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.`,e);}var gt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Qr(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 gt;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="canvas")return $("scrollFrames: <canvas> element not found:",e),gt;let r=t,{frames:o,trigger:s={},easing:i="linear",once:l=false,axis:m="y",fit:g="cover",triggerElement:w,onReady:P,onLoad:S,onComplete:G,onProgress:Q}=n||{},v=Array.isArray(o)?o:null,z=n?.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 $("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",r),gt;let O=n.concurrency??6;(!Number.isFinite(O)||O<1)&&($("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",n.concurrency),O=6),O=Math.floor(O);let C=r.getContext("2d");if(!C)return $("scrollFrames: the canvas has no 2D context.",r),gt;let L=Z-1,k=w??r,h=window.matchMedia("(prefers-reduced-motion: reduce)").matches,F=Re(i),W=u=>{let p=F(u);return p===p?p:0},se=ae(s.start||"top top"),K=ae(s.end||"bottom top"),V=0,R=0,M=false,X=-1,E=0,A=0,he=false,D=false,q=false,ue=false,Ee=0,fe=-1,ie=new Array(Z),T=new Uint8Array(Z),x=new Set,re=h?[L]:Qr(Z),ke=0,J=0,Fe=false,Se=(u,...p)=>{if(u)try{u(...p);}catch(b){typeof reportError=="function"?reportError(b):setTimeout(()=>{throw b});}},ye=false,_e=u=>{let p;try{p=v?v[u]:o(u);}catch(b){p=b;}return typeof p=="string"&&p?p:(ye||(ye=true,$(`scrollFrames: no URL for frame ${u}; it is skipped for its nearest neighbour.`,p)),null)},He=()=>m==="x"?window.scrollX:window.scrollY,Me=()=>m==="x"?window.innerWidth:window.innerHeight;function Ae(){!Fe&&J===re.length&&(Fe=true,Se(S));}function c(){for(;!D&&x.size<O&&ke<re.length;){let u=re[ke++];T[u]||d(u);}}function d(u){T[u]=1;let p=_e(u);if(p===null){J++,queueMicrotask(()=>{D||Ae();});return}let b=new Image,le=false,we=ze=>{le||D||(le=true,b.onload=b.onerror=null,x.delete(b),ze?ie[u]=b:$("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",p),J++,c(),_(),Ae());};x.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 H(){let u=r.clientWidth,p=r.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(r.width-le)<=1&&Math.abs(r.height-we)<=1)return;r.width=le,r.height=we,fe=-1;let ze=r.clientWidth,Ce=r.clientHeight;if(ze!==u||Ce!==p){let We=r.style;ze!==u&&Ce!==p?(We.width=`${u}px`,We.height=`${p}px`):We.aspectRatio=`${u} / ${p}`;}}function _(){let u=ne(Ee);if(u<0||u===fe)return;let p=ie[u],b=r.width,le=r.height,we=p.naturalWidth||b,ze=p.naturalHeight||le,Ce=(g==="contain"?Math.min:Math.max)(b/we,le/ze),We=we*Ce,Ge=ze*Ce;C.clearRect(0,0,b,le),C.drawImage(p,(b-We)/2,(le-Ge)/2,We,Ge),fe=u,q||(q=true,Se(P));}function B(u){Ee=Math.min(L,Math.max(0,Math.round(u*L))),r.style.setProperty("--scroll-draw-progress",String(u)),_(),Se(Q,u,Ee);}function j(){let u=k.getBoundingClientRect(),p=m==="x"?u.left:u.top,b=m==="x"?u.width:u.height,le=Le({top:p,height:b},He(),Me(),se,K);V=le.tStart,R=le.tEnd,R===V&&b>0&&!h&&!ue&&(ue=true,$("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",r));}let Ne=()=>Y(He(),V,R,1);function oe(){if(h)return;let u=Ne(),p=l?Math.max(X,W(E=Math.max(E,u))):W(u);A=p,B(p),p>=1&&!he?(he=true,Se(G)):p<1&&!l&&(he=false);}function Ie(){A=1,B(1);}H(),h||j();let be=De(window,[k],Ne,oe,()=>{H(),h||j(),_();}),Ye=()=>be.hold(M||h);Ye(),h&&Ie(),c();let je=typeof ResizeObserver=="function"?new ResizeObserver(()=>{H(),_();}):null;je?.observe(r);let Ue=h?()=>{}:Je(u=>{u&&(Ue(),h=true,be.hold(true),re=re.slice(0,ke),T[L]||re.push(L),Ae(),Ie(),c());});Oe(r,{type:"frames",getProgress:()=>A,getTrigger:()=>({tStart:V,tEnd:R})});function me(){D||!M||(M=false,Ye());}return {destroy(){if(!D){D=true,be.off(),je?.disconnect(),Ue();for(let u of x)u.onload=u.onerror=null,u.src="";x.clear(),$e(r);}},replay(){D||(X=-1,E=0,he=false,A=0,B(0),me());},pause(){D||(M=true,be.hold(true));},resume:me,seek(u){if(D)return;let p=Math.min(1,Math.max(0,u===u?u:0));A=p,X=p,E=0,M=true,be.hold(true),B(p);},getProgress(){return A}}}function mr(e,{triggerElement:n,...t},r){let o=n;return typeof n=="string"&&typeof document<"u"&&(o=document.querySelector(n),o||$(`scrollFrames: triggerElement "${n}" matches nothing; measuring the canvas.`)),fr(e,{...t,frames:r.frames,triggerElement:o??void 0})}function pr(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 ht(e=""){let n=document.createElement("span");return n.setAttribute("aria-hidden","true"),n.textContent=e,n}function gr(e){let n=e.textContent??"";return e.textContent="",n.split(/(\s+)/).filter(Boolean).map(t=>{let r=e.appendChild(ht(t)),o=/^\s+$/.test(t);return o?r.style.whiteSpace="pre":r.style.display="inline-block",o?null:r}).filter(t=>t!==null)}function Kr(e){let n=e.textContent??"";e.textContent="";let t=[],r=null;for(let o of n){let s=ht(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(ht()),r.style.cssText="display:inline-block;white-space:nowrap"),(r??e).appendChild(s);}return t}function dr(e){let n=gr(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=ht();l.style.display="inline-block",i.forEach((m,g)=>{let w=m.nextElementSibling;l.appendChild(m),g<i.length-1&&w&&w.style.whiteSpace==="pre"&&l.appendChild(w);}),r.push(l);}return e.textContent="",r.forEach((s,i)=>{e.appendChild(s),i<r.length-1&&e.appendChild(document.createTextNode(" "));}),r}function Xr(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:rt((e-s)/(i-s),0,1)}function Jr(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 At={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,n={}){if(typeof window>"u")return At;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return $("scrollText: element not found:",e),At;let r=t;return qe(n,(o,s)=>Zr(r,o,s))}function Zr(e,n,t){let{split:r="words",stagger:o=.04,easing:s="ease-out",from:i={opacity:0,y:24},trigger:l={},once:m=true,onComplete:g}=n,w=Re(s,"ease-out"),P=ae(l.start||"top 85%"),S=ae(l.end||"top 40%"),G=e.innerHTML,Q=e.textContent??"",v;r==="chars"?v=Kr(e):r==="lines"?v=dr(e):v=gr(e),pr(e,Q);let z=v.length;function Z(M,X){i?.opacity!==void 0&&(M.style.opacity=String(i.opacity+(1-i.opacity)*X));let E=Jr(X,i);E&&(M.style.transform=E);}function O(M){e.style.setProperty("--scroll-draw-progress",String(M)),v.forEach((X,E)=>{let A=w(Xr(M,E,z,o));Z(X,A);});}if(t)return O(1),g?.(),{...At,destroy:()=>{e.innerHTML=G;},getProgress:()=>1};O(0);let C=0,L=0,k=-1,h=0,F=false;function W(){({tStart:C,tEnd:L}=Le(e.getBoundingClientRect(),window.scrollY,window.innerHeight,P,S));}let se=()=>Y(window.scrollY,C,L,1);function K(){let M=m?k=Math.max(k,se()):se();h=M,O(M),M>=1&&!F?(F=true,g?.()):M<1&&!m&&(F=false);}W();let V=De(window,[e],se,K,()=>{r==="lines"&&(e.innerHTML=G,v=dr(e),pr(e,Q),O(h)),W();});Oe(e,{type:"text",getProgress:()=>h,getTrigger:()=>({tStart:C,tEnd:L})});let R=()=>V.hold(false);return {destroy(){V.off(),e.innerHTML=G,$e(e);},replay(){k=-1,F=false,h=0,O(0),R();},pause:()=>V.hold(true),resume:R,seek(M){V.hold(true),O(h=k=rt(M,0,1));},getProgress(){return h}}}function Ve(e,n,t=st){let r,o,s,i;return solidJs.createEffect(()=>{i=typeof e=="function"?e():e;let l=t(i);!r||l===s||(s=l,solidJs.untrack(()=>{o?.destroy(),o=n(r,rr(i,()=>i),i);}));}),solidJs.onCleanup(()=>{o?.destroy(),o=s=void 0;}),{ref:l=>{r=l;},getInstance:()=>o}}function Vo(e={}){return Ve(e,St).ref}function _o(e={}){return Ve(e,St)}function zo(e){return Ve(e,Mt).ref}function Wo(e){return Ve(e,Mt)}function Go(e){return Ve(e,xt).ref}function Bo(e){return Ve(e,xt)}function qo(e={}){return Ve(e,Lt).ref}function jo(e={}){return Ve(e,Lt)}function hr(e,n){let t=false;return Ve(e,(r,o,s)=>(t||ur(r,n),t=true,mr(r,o,s)),cr)}function Uo(e){return hr(e,"useScrollFrames").ref}function Yo(e){return hr(e,"createScrollFrames")}function Qo(e={}){return Ve(e,Ct).ref}function Ko(e={}){return Ve(e,Ct)}exports.createScrollAnimate=Wo;exports.createScrollCounter=Bo;exports.createScrollDraw=_o;exports.createScrollFrames=Yo;exports.createScrollText=Ko;exports.createScrollVideo=jo;exports.useScrollAnimate=zo;exports.useScrollCounter=Go;exports.useScrollDraw=Vo;exports.useScrollFrames=Uo;exports.useScrollText=Qo;exports.useScrollVideo=qo;
|
|
3
|
+
<div style="position:absolute;${m?`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 Zt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,er=/[MmLlHhVvCcSsQqTtAaZz]/g;function Dr(e,n,t){if(!Ke)return;let r=(e.match(er)??[]).join("").toUpperCase(),o=(n.match(er)??[]).join("").toUpperCase(),s=(e.match(Zt)??[]).length,i=(n.match(Zt)??[]).length;if(r!==o){P(`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&&P(`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 Nr(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 St(e,n={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:qe(n,(t,r)=>Vr(e,t,r))}function Vr(e,n,t){let{preset:r,...o}=n,s=r?{...qt[r],...o}:o,{selector:i="path, polyline, line, polygon, rect, circle",speed:l=1,fade:m=false,easing:g="linear",trigger:w={},stagger:O=0,direction:T="forward",once:$=false,debug:z=false,axis:M="y",scrollContainer:q,autoReverse:G=false,delay:x=0,strokeColor:C,strokeWidth:A,fillOpacity:W,waypoints:b,velocityScale:k=false,threshold:D=0,rootMargin:Z="0px",repeat:se=0,repeatDelay:F=0,morphTo:H,clip:h,autoplay:L=false,duration:ee=1e3,native:te=true,onProgress:he,onStart:N,onComplete:j,onEnter:ue,onLeave:Ee,onEnterBack:fe,onLeaveBack:ie}=s,E=h===true?"left":typeof h=="string"?h:false,S=Re(g),re=ae(w.start||"top bottom"),ke=ae(w.end||"bottom top"),K=typeof q=="string"?document.querySelector(q):q??null,Fe=Array.isArray(C)?C[0]:null,Se=Array.isArray(C)?C[1]:typeof C=="string"?C:null,ye=Array.isArray(A)?A[0]:null,_e=Array.isArray(A)?A[1]:typeof A=="number"?A:null,He=Array.isArray(W)?W[0]:null,Me=Array.isArray(W)?W[1]:typeof W=="number"?W:null;function Ae(a){let f=a*100;switch(E){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 c=E?[]:Array.from(e.querySelectorAll(i)),d=[],ne=[],I=0,_=0,B=O,U=0,Ne=0,oe=false,Ie=false,be=0,Ye=-1,je=[],Ue=-1,me=false,u=0,p=0,v,le=false,we=null;function ze(){we?.destroy(),we=null;}let Ce=new Set,We=NaN,Ge=true,it=-1,Pt=performance.now(),Qe=NaN;function at(){return K?M==="x"?K.scrollLeft:K.scrollTop:M==="x"?window.scrollX:window.scrollY}function Ot(){return K?M==="x"?K.clientWidth:K.clientHeight:M==="x"?window.innerWidth:window.innerHeight}function $t(){let a=lt(e,K,M);return Le(a,a.scroll,Ot(),re,ke)}function yr(){let a=_-I,f=c.length-1,y=K??document.documentElement,V=M==="x"?"Width":"Height";if(B=O,O>0&&f>0&&a>0){let pe=y[`scroll${V}`]-y[`client${V}`]-1-I-a/l;pe>=0&&(B=Math.min(O,pe/(f*a)));}let ce=Math.max(0,f)*B*a,Te=a/Math.min(l,1);U=I+Math.min(0,ce,Te,ce+Te),Ne=I+Math.max(0,ce,Te,ce+Te);}function kt(){(({tStart:I,tEnd:_}=$t())),yr(),z&&Ke&&(ze(),we=Rr(I,_,M));}function yt(a,f=$t){Oe(e,{type:"draw",getProgress:()=>a.getProgress(),getTrigger:f});let y=a.destroy;return a.destroy=()=>{y.call(a),$e(e);},a}function Ft(a,f){return $&&!G?Math.max(Ye,S(je[a]=Math.max(je[a]??0,f))):S(f)}function br(a,f){if(e.style.setProperty("--scroll-draw-progress",String(a)),E){let y=f==="reverse"?1-a:a;e.style.clipPath=Ae(y);return}c.forEach((y,V)=>bt(y,V,a,f));}function bt(a,f,y,V){a.style.strokeDashoffset=V==="reverse"?`${d[f]*y}`:`${d[f]*(1-y)}`,m&&(a.style.opacity=V==="reverse"?`${1-y}`:`${y}`),Fe&&Se?a.style.stroke=ft(Fe,Se,y):Se&&(a.style.stroke=Se),ye!==null&&_e!==null?a.style.strokeWidth=`${ye+(_e-ye)*y}`:_e!==null&&(a.style.strokeWidth=`${_e}`),He!==null&&Me!==null?a.style.fillOpacity=`${He+(Me-He)*y}`:Me!==null&&(a.style.fillOpacity=`${Me}`),H&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",Nr(ne[f],H,y));}function wt(){if(e.style.setProperty("--scroll-draw-progress","0"),E){e.style.clipPath=Ae(T==="reverse"?1:0);return}c.forEach((a,f)=>{a.style.strokeDasharray=ut(d[f]),a.style.strokeDashoffset=T==="reverse"?"0":`${d[f]}`,m?a.style.opacity=T==="reverse"?"1":"0":a.style.opacity="",Fe&&(a.style.stroke=Fe),ye!==null&&(a.style.strokeWidth=`${ye}`),He!==null&&(a.style.fillOpacity=`${He}`),H&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",ne[f]);});}function Ze(a,f){let y=a.getAttribute("d"),V=ct(a);if(H&&ne[f]){a.setAttribute("d",H);let ce=ct(a);a.setAttribute("d",ne[f]),V=Math.max(ct(a),ce),a.setAttribute("d",y);}d[f]=V,a.style.strokeDasharray=ut(V);}if(c.forEach((a,f)=>{Ir(a);let y=a.tagName.toLowerCase()==="path";y?ne.push(a.getAttribute("d")??""):ne.push(""),Ze(a,f);let V=d[f];H&&(y?Dr(ne[ne.length-1],H,a):P(`morphTo only applies to <path> elements \u2014 ignored on <${a.tagName}>.`,a)),t?(a.style.strokeDashoffset=T==="reverse"?`${V}`:"0",m&&(a.style.opacity="1"),Se&&(a.style.stroke=Se),_e!==null&&(a.style.strokeWidth=`${_e}`),Me!==null&&(a.style.fillOpacity=`${Me}`),H&&a.tagName.toLowerCase()==="path"&&a.setAttribute("d",H)):(a.style.strokeDashoffset=T==="reverse"?"0":`${V}`,m?a.style.opacity=T==="reverse"?"1":"0":a.style.opacity="",Fe&&(a.style.stroke=Fe),ye!==null&&(a.style.strokeWidth=`${ye}`),He!==null&&(a.style.fillOpacity=`${He}`));}),t)return E&&(e.style.clipPath=Ae(1)),j?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};E&&(e.style.clipPath=Ae(T==="reverse"?1:0));let Ht=typeof g=="string"?mt(g):null;function wr(){return !(te===false||L||z&&Ke||!Hr()||!c.length||!Ht||E||M!=="y"||K||l!==1||O!==0||$||G||k!==false||H||b||se||x>0||he||N||j||ue||Ee||fe||ie||C!=null||A!=null||W!=null||(w.start||"top bottom").trim()!=="top bottom"||(w.end||"bottom top").trim()!=="bottom top")}function vr(){let a=++Fr,f=`svg-scroll-draw-${a}`,y=`svg-scroll-draw-host-${a}`,V=`--svg-scroll-draw-${a}`,ce=T==="reverse"?"0":"var(--ssd-len)",Te=T==="reverse"?"var(--ssd-len)":"0",pe=`stroke-dashoffset:${ce};`,X=`stroke-dashoffset:${Te};`;m&&(pe+=`opacity:${T==="reverse"?1:0};`,X+=`opacity:${T==="reverse"?0:1};`);let J=document.createElement("style");J.setAttribute("data-svg-scroll-draw",""),J.textContent=`@keyframes ${f}{from{${pe}}to{${X}}}.${y}{view-timeline-name:${V};view-timeline-axis:block;}.${f}{animation-name:${f};animation-duration:auto;animation-timing-function:${Ht};animation-fill-mode:both;animation-timeline:${V};animation-range:cover 0% cover 100%;}`,document.head.appendChild(J),e.classList.add(y);function ve(R,Y){R.style.setProperty("--ssd-len",String(d[Y])),R.style.strokeDasharray=ut(d[Y]),R.style.strokeDashoffset="",R.style.opacity="",R.style.animationPlayState="",R.classList.add(f);}c.forEach(ve);let de=false,xe=-1;function Pe(){if(xe>=0)return xe;let R=e.getBoundingClientRect(),{tStart:Y,tEnd:ge}=Le({top:R.top,height:R.height},at(),Ot(),re,ke);return S(Q(at(),Y,ge,l))}return {destroy(){e.classList.remove(y),c.forEach(R=>{R.classList.remove(f),R.style.removeProperty("--ssd-len"),R.style.animationPlayState="";}),J.remove();},replay(){de=false,xe=-1,c.forEach(ve);},pause(){de=true,c.forEach(R=>{R.style.animationPlayState="paused";});},resume(){de&&(de=false,c.forEach(R=>{R.style.animationPlayState="running";}));},seek(R){let Y=Math.min(1,Math.max(0,R));xe=Y,de=true,c.forEach((ge,Be)=>{ge.classList.remove(f),ge.style.strokeDashoffset=T==="reverse"?`${d[Be]*Y}`:`${d[Be]*(1-Y)}`,m&&(ge.style.opacity=T==="reverse"?`${1-Y}`:`${Y}`);});},getProgress(){return Pe()},refresh(){c.forEach((R,Y)=>{Ze(R,Y),R.style.setProperty("--ssd-len",String(d[Y]));});}}}if(wr())return yt(vr());function Er(){let a=Math.max(1,ee),f=E?a:a*(1+Math.max(0,c.length-1)*O),y=0,V=0,ce=false;function Te(xe){let Pe=true,R=Math.min(1,Math.max(0,xe/f));if(E){let Y=Math.min(1,Math.max(0,xe/a)),ge=S(Y);u=ge,e.style.setProperty("--scroll-draw-progress",String(ge)),e.style.clipPath=Ae(T==="reverse"?1-ge:ge),he?.(ge),Y<1&&(Pe=false);}else {c.forEach((ge,Be)=>{let Mr=Be*O*a,Vt=Math.min(1,Math.max(0,(xe-Mr)/a));bt(ge,Be,S(Vt),T),Vt<1&&(Pe=false);});let Y=S(R);u=Y,he?.(Y),e.style.setProperty("--scroll-draw-progress",String(Y));}if(b){let Y=S(R);for(let ge in b){let Be=parseFloat(ge);Y>=Be&&!Ce.has(Be)&&(Ce.add(Be),b[ge]?.());}}return Pe}function pe(xe){if(me)return;let Pe=xe-y;Ie||(Ie=true,N?.());let R=Te(Pe);if(R&&!oe){oe=true,Te(f),j?.(),p<(se==="infinite"?1/0:se??0)&&(p++,v=setTimeout(()=>{y=performance.now(),Ie=false,oe=false,Ce.clear(),wt(),be=requestAnimationFrame(pe);},F));return}R||(be=requestAnimationFrame(pe));}function X(){cancelAnimationFrame(be),clearTimeout(v),y=performance.now(),V=0,me=false,Ie=false,oe=false,p=0,ce=true,u=0,Ce.clear(),wt(),be=requestAnimationFrame(pe);}let J=new IntersectionObserver(xe=>{xe.forEach(Pe=>{Pe.isIntersecting&&!($&&oe)?X():!Pe.isIntersecting&&!$&&!oe&&(cancelAnimationFrame(be),clearTimeout(v),ce=false);});},{root:K??null,threshold:D,rootMargin:Z}),ve;function de(){clearTimeout(ve),ve=setTimeout(()=>c.forEach(Ze),150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),x>0?setTimeout(()=>J.observe(e),x):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()-y,cancelAnimationFrame(be));},resume(){me&&(me=false,ce=true,y=performance.now()-V,be=requestAnimationFrame(pe));},seek(xe){let Pe=Math.min(1,Math.max(0,xe));u=Pe,me=true,V=Pe*f,y=performance.now()-V,cancelAnimationFrame(be),Te(V);},getProgress(){return u},refresh(){clearTimeout(ve),c.forEach(Ze);}}}if(L)return yt(Er());kt();let It=()=>Q(at(),U,Ne,1);function Rt(){oe=true,j?.(),p<(se==="infinite"?1/0:se)&&(p++,v=setTimeout(()=>{le=true;},F));}function Dt(){Ye=-1,je=[],Ie=false,oe=false,le=false,Ce.clear(),wt(),Ge=true;}function Sr(){let a=performance.now(),f=at();if(le&&It()%1&&Dt(),!Ge&&k===false&&f===We)return;Ge=false,We=f;let y=l;if(k!==false){let X=a-Pt,J=X>0?Math.abs(f-(it<0?f:it))/X:0;y=l*Math.max(.2,1+J*(typeof k=="number"?k:1)*.04);}it=f,Pt=a;let V=G?Ue===-1||f>=Ue?"forward":"reverse":T;Ue=f;let ce=_-I,Te=true,pe=ce===0?0:(f-I)/ce;if(isNaN(Qe)||(Qe<=0&&pe>0&&ue?.(),Qe<1&&pe>=1&&Ee?.(),Qe>=1&&pe<1&&fe?.(),Qe>0&&pe<=0&&ie?.()),Qe=pe,E){let X=Ft(0,Q(f,I,_,y));u=X,e.style.setProperty("--scroll-draw-progress",String(X));let J=V==="reverse"?1-X:X;e.style.clipPath=Ae(J),he?.(X),!Ie&&Q(f,I,_,y)>0&&(Ie=true,N?.()),X>=1&&!oe?Rt():X<1&&!$&&(oe=false);return}if(c.forEach((X,J)=>{let ve=J*B*ce,de=Ft(J,Q(f,I+ve,_+ve,y));bt(X,J,de,V),J===0&&(u=de,he?.(de),e.style.setProperty("--scroll-draw-progress",String(de))),de<1&&(Te=false);}),b){let X=S(Q(f,I,_,y));for(let J in b){let ve=parseFloat(J);X>=ve&&!Ce.has(ve)&&(Ce.add(ve),b[J]?.());}}!Ie&&Q(f,I,_,y)>0&&(Ie=true,N?.()),Te&&!oe?Rt():!Te&&!$&&(oe=false);}let et=De(K??window,[e],It,Sr,()=>{let a=d.join();c.forEach(Ze),kt(),Ge=true,d.join()!==a&&tt();}),vt=x>0;function tt(){et.hold(me||vt);}let Nt;return vt&&(Nt=setTimeout(()=>{vt=false,tt();},x)),tt(),yt({destroy(){clearTimeout(v),clearTimeout(Nt),et.off(),ze();},replay(){Dt(),Ue=-1,it=-1,p=0,me=false,u=0,clearTimeout(v),tt();},pause(){me=true,et.hold(true);},resume(){me&&(me=false,Ge=true,tt());},seek(a){let f=Math.min(1,Math.max(0,a));u=f,Ye=f,je=[],me=true,et.hold(true),br(f,T),Ge=true;},getProgress(){return u},refresh:et.remeasure},()=>({tStart:I,tEnd:_}))}var tr=new WeakMap,_r=0;function st(e){return JSON.stringify(e,(n,t)=>{if(typeof t=="function")return "\u0192";if(typeof Element<"u"&&t instanceof Element){let r=tr.get(t);return r===void 0&&tr.set(t,r=++_r),`el#${r}`}return t})}function rr(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 zr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function nr(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 m=l.match(/^([-+]?[\d.eE]+)(.*)$/);o.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}n.push({fn:r[1],nums:o,units:s});}return n}function Wr(e,n,t){let r=nr(e),o=nr(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((m,g)=>`${m}${s.units[g]}`).join(", ")})`:`${l.fn}(${l.nums.map((m,g)=>`${m}${l.units[g]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,g)=>`${m+(l.nums[g]-m)*t}${s.units[g]}`).join(", ")})`}).join(" ")}function or(e,n,t){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*t);let r=String(e),o=String(n);if(zr(r))return ft(r,o,t);if(r.includes("("))return Wr(r,o,t);let s=r.match(/^([-+]?[\d.]+)(.*)$/),i=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&i){let l=parseFloat(s[1]),m=parseFloat(i[1]);return `${l+(m-l)*t}${s[2]||i[2]}`}return t<1?r:o}function Gr(e){return e.replace(/([A-Z])/g,n=>`-${n.toLowerCase()}`)}var Br=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),qr=0,sr="--scroll-draw-progress";function jr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var ar={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Mt(e,n){return typeof window>"u"?ar:n.respectReducedMotion===false?ir(e,n,false):qe(n,(t,r)=>ir(e,t,r))}function ir(e,n,t){let{props:r,trigger:o={},easing:s="ease-out",speed:i=1,once:l=false,axis:m="y",scrollContainer:g,native:w=true,velocityScale:O=false,triggerElement:T,onProgress:$,onComplete:z,onEnter:M,onLeave:q,onEnterBack:G,onLeaveBack:x}=n,C=Re(s,"ease-out"),A=ae(o.start||"top bottom"),W=ae(o.end||"bottom top"),b=T??e,k=typeof g=="string"?document.querySelector(g):g??null,D=Object.entries(r).map(([c,d])=>({prop:Gr(c),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function Z(){let c=window.getComputedStyle(e);for(let d of D)d.from===""&&(d.from=c.getPropertyValue(d.prop).trim()||"0");}function se(){for(let c of D)e.style.setProperty(c.prop,String(c.to));}let F=new Map;for(let c of [...D.map(d=>d.prop),sr])F.set(c,e.style.getPropertyValue(c));function H(){for(let[c,d]of F)d?e.style.setProperty(c,d):e.style.removeProperty(c);}if(t)return se(),z?.(),{...ar,destroy:H,getProgress:()=>1};Z();let h=()=>k?m==="x"?k.scrollLeft:k.scrollTop:m==="x"?window.scrollX:window.scrollY,L=()=>k?m==="x"?k.clientWidth:k.clientHeight:m==="x"?window.innerWidth:window.innerHeight,ee=typeof s=="string"?mt(s):null;function te(){if(!w||!jr()||!ee||m!=="y"||k||b!==e||l||i!==1||$||z||M||q||G||x||O!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let c of D)if(!Br.has(c.prop))return false;return true}function he(){let c=`ssd-a-${++qr}`,d=D.map(U=>`${U.prop}:${U.from}`).join(";"),ne=D.map(U=>`${U.prop}:${U.to}`).join(";"),I=document.createElement("style");I.setAttribute("data-ssd-animate",""),I.textContent=`@keyframes ${c}{from{${d}}to{${ne}}}.${c}{animation-name:${c};animation-duration:auto;animation-timing-function:${ee};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(I),e.classList.add(c);let _=()=>{let U=e.getBoundingClientRect();return Le({top:U.top,height:U.height},h(),L(),A,W)};Oe(e,{type:"animate",getProgress:()=>B.getProgress(),getTrigger:_});let B={refresh(){},destroy(){e.classList.remove(c),I.remove(),e.style.animationPlayState="",H(),$e(e);},replay(){e.classList.remove(c),e.offsetWidth,e.classList.add(c);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(U){let Ne=Math.min(1,Math.max(0,U));e.classList.remove(c);for(let oe of D)e.style.setProperty(oe.prop,or(oe.from,oe.to,Ne));},getProgress(){let{tStart:U,tEnd:Ne}=_();return C(Q(h(),U,Ne,i))}};return B}if(te())return he();let N=0,j=0,ue=false,Ee=-1,fe=0,ie=0,E=false,S=NaN,re=-1,ke=0,K=b===e?D:[],Fe=false;function Se(){let c=e.style,d=K.map(B=>c.getPropertyValue(B.prop)),ne=c.transition;K.length&&(c.transition="none"),K.forEach(B=>c.setProperty(B.prop,F.get(B.prop)??""));let I=lt(b,k,m);K.forEach((B,U)=>c.setProperty(B.prop,d[U])),K.length&&(e.offsetWidth,c.transition=ne);let _=Le(I,I.scroll,L(),A,W);Fe&&Math.abs(_.tStart-N)<1&&Math.abs(_.tEnd-j)<1||(Fe=true,N=_.tStart,j=_.tEnd);}function ye(c){e.style.setProperty(sr,String(c));for(let d of D)e.style.setProperty(d.prop,or(d.from,d.to,c));$?.(c);}function _e(c){if(isNaN(S)){S=c;return}S<=0&&c>0&&M?.(),S<1&&c>=1&&q?.(),S>=1&&c<1&&G?.(),S>0&&c<=0&&x?.(),S=c;}function He(){if(ue)return;let c=performance.now(),d=h(),ne=i;if(O!==false){let U=c-ke,Ne=U>0?Math.abs(d-(re<0?d:re))/U:0;ne=i*Math.max(.2,1+Ne*(typeof O=="number"?O:1)*.04);}re=d,ke=c;let I=j===N?0:(d-N)/(j-N);_e(I);let _=Q(d,N,j,ne),B=l?Math.max(Ee,C(fe=Math.max(fe,_))):C(_);ie=B,ye(B),B>=1&&!E?(E=true,z?.()):B<1&&!l&&(E=false);}let Me=De(k??window,[b],()=>Q(h(),N,j,Math.min(i,1)),He,Se);Se(),j===N&&P("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),fe=Q(h(),N,j,i),ie=C(fe),ye(ie),Oe(e,{type:"animate",getProgress:()=>ie,getTrigger:()=>({tStart:N,tEnd:j})});function Ae(){ue=true,Me.hold(true);}return {destroy(){ue=true,Me.off(),H(),$e(e);},replay(){Ee=-1,fe=0,E=false,ie=0,ue=false,ye(0),Me.hold(false);},pause:Ae,resume(){ue&&(ue=false,Me.hold(false));},seek(c){let d=Math.min(1,Math.max(0,c));ie=d,Ee=d,fe=0,Ae(),ye(d);},getProgress(){return ie},refresh:Me.remeasure}}var Ur=({decimals:e,format:n})=>e!==void 0?t=>t.toFixed(e):n??(t=>String(Math.round(t)));var Tt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function xt(e,n){if(typeof window>"u")return Tt;let t=typeof e=="string"?document.querySelector(e):e;return t?qe(n,(r,o)=>Yr(t,r,o)):(P("scrollCounter: element not found:",e),Tt)}function Yr(e,n,t){let{from:r=0,to:o,easing:s="ease-out",trigger:i={},once:l=true,onComplete:m}=n,g=Ur(n),w=Re(s,"ease-out"),O=ae(i.start||"top 80%"),T=ae(i.end||"top 20%");if(t)return e.textContent=g(o),m?.(),{...Tt,getProgress:()=>1};let $=0,z=0,M=false,q=-1,G=0,x=0,C=false,A=()=>window.scrollY,W=()=>window.innerHeight;function b(){let h=e.getBoundingClientRect(),L=Le({top:h.top,height:h.height},A(),W(),O,T);M&&Math.abs(L.tStart-$)<1&&Math.abs(L.tEnd-z)<1||(M=true,$=L.tStart,z=L.tEnd);}let k=e.style.getPropertyValue("--scroll-draw-progress");function D(h){e.textContent=g(r+(o-r)*h),e.style.setProperty("--scroll-draw-progress",String(h));}let Z=()=>Q(A(),$,z,1);function se(){let h=Z(),L=l?Math.max(q,w(G=Math.max(G,h))):w(h);x=L,D(L),L>=1&&!C?(C=true,m?.()):L<1&&!l&&(C=false);}b();{G=Q(A(),$,z,1);let h=w(G);x=h,D(h);}let F=De(window,[e],Z,se,b);Oe(e,{type:"counter",getProgress:()=>x,getTrigger:()=>({tStart:$,tEnd:z})});let H=()=>F.hold(false);return {destroy(){F.off(),e.style.setProperty("--scroll-draw-progress",k),$e(e);},replay(){q=-1,G=0,C=false,x=0,D(0),H();},pause:()=>F.hold(true),resume:H,seek(h){let L=Math.min(1,Math.max(0,h));x=L,q=L,G=0,F.hold(true),D(L);},getProgress(){return x}}}var lr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Lt(e,n={}){if(typeof window>"u")return lr;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="video")return P("scrollVideo: <video> element not found:",e),lr;let r=t,{trigger:o={},easing:s="linear",once:i=false,axis:l="y",preload:m="auto",triggerElement:g,onReady:w,onComplete:O,onProgress:T}=n,$=g??r,z=window.matchMedia("(prefers-reduced-motion: reduce)").matches,M=Re(s),q=ae(o.start||"top top"),G=ae(o.end||"bottom top");r.pause(),r.hasAttribute("preload")||(r.preload=m);let x=n.from??0,C=n.to,A=0,W=0,b=false,k=-1,D=0,Z=0,se=false,F=false,H=()=>l==="x"?window.scrollX:window.scrollY,h=()=>l==="x"?window.innerWidth:window.innerHeight;function L(){let E=$.getBoundingClientRect(),S=l==="x"?E.left:E.top,re=l==="x"?E.width:E.height,ke=Le({top:S,height:re},H(),h(),q,G);A=ke.tStart,W=ke.tEnd,F&&W===A&&P("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",r);}let ee=NaN;function te(E){if(!F)return;let S=C??r.duration??0,re=x+(S-x)*E;re!==ee&&(ee=re,r.currentTime=re),r.style.setProperty("--scroll-draw-progress",String(E)),T?.(E);}let he=()=>Q(H(),A,W,1);function N(){if(!F||z)return;let E=he(),S=i?Math.max(k,M(D=Math.max(D,E))):M(E);Z=S,te(S),S>=1&&!se?(se=true,O?.()):S<1&&!i&&(se=false);}let j=De(window,[$],he,N,L),ue=()=>j.hold(b||!F||z);ue();function Ee(){if(F=true,C===void 0&&(C=r.duration),z){te(1),w?.();return}L(),w?.(),b?te(Z):ue();}r.readyState>=1?Ee():r.addEventListener("loadedmetadata",Ee,{once:true}),F||L();let fe=z?()=>{}:Je(E=>{E&&(fe(),z=true,j.hold(true),te(1));});Oe(r,{type:"video",getProgress:()=>Z,getTrigger:()=>({tStart:A,tEnd:W})});function ie(){b&&(b=false,ue());}return {destroy(){j.off(),r.removeEventListener("loadedmetadata",Ee),fe(),$e(r);},replay(){k=-1,D=0,se=false,Z=0,ee=NaN,te(0),ie();},pause(){b=true,j.hold(true);},resume:ie,seek(E){let S=Math.min(1,Math.max(0,E));Z=S,k=S,D=0,b=true,j.hold(true),ee=NaN,te(S);},getProgress(){return Z}}}var Qr=1e4;function cr(e){let{frames:n,count:t}=e;if(typeof n!="function")return st(e);let r=Number.isFinite(t)?Math.min(Math.max(Math.floor(t),0),Qr):0,o;try{o=Array.from({length:r},(s,i)=>n(i));}catch{o=["throws"];}return st({...e,frames:o})}function ur(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")||P(`${n}: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.`,e);}var gt={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 gt;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="canvas")return P("scrollFrames: <canvas> element not found:",e),gt;let r=t,{frames:o,trigger:s={},easing:i="linear",once:l=false,axis:m="y",fit:g="cover",triggerElement:w,onReady:O,onLoad:T,onComplete:$,onProgress:z}=n||{},M=Array.isArray(o)?o:null,q=n?.count,G=Math.floor(M?Math.min(q??M.length,M.length):q??NaN);if(!(M||typeof o=="function")||!Number.isFinite(G)||G<1)return P("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",r),gt;let x=n.concurrency??6;(!Number.isFinite(x)||x<1)&&(P("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",n.concurrency),x=6),x=Math.floor(x);let C=r.getContext("2d");if(!C)return P("scrollFrames: the canvas has no 2D context.",r),gt;let A=G-1,W=w??r,b=window.matchMedia("(prefers-reduced-motion: reduce)").matches,k=Re(i),D=u=>{let p=k(u);return p===p?p:0},Z=ae(s.start||"top top"),se=ae(s.end||"bottom top"),F=0,H=0,h=false,L=-1,ee=0,te=0,he=false,N=false,j=false,ue=false,Ee=0,fe=-1,ie=new Array(G),E=new Uint8Array(G),S=new Set,re=b?[A]:Kr(G),ke=0,K=0,Fe=false,Se=(u,...p)=>{if(u)try{u(...p);}catch(v){typeof reportError=="function"?reportError(v):setTimeout(()=>{throw v});}},ye=false,_e=u=>{let p;try{p=M?M[u]:o(u);}catch(v){p=v;}return typeof p=="string"&&p?p:(ye||(ye=true,P(`scrollFrames: no URL for frame ${u}; it is skipped for its nearest neighbour.`,p)),null)},He=()=>m==="x"?window.scrollX:window.scrollY,Me=()=>m==="x"?window.innerWidth:window.innerHeight;function Ae(){!Fe&&K===re.length&&(Fe=true,Se(T));}function c(){for(;!N&&S.size<x&&ke<re.length;){let u=re[ke++];E[u]||d(u);}}function d(u){E[u]=1;let p=_e(u);if(p===null){K++,queueMicrotask(()=>{N||Ae();});return}let v=new Image,le=false,we=ze=>{le||N||(le=true,v.onload=v.onerror=null,S.delete(v),ze?ie[u]=v:P("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",p),K++,c(),_(),Ae());};S.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<=A;p++){if(ie[u-p])return u-p;if(ie[u+p])return u+p}return -1}function I(){let u=r.clientWidth,p=r.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(r.width-le)<=1&&Math.abs(r.height-we)<=1)return;r.width=le,r.height=we,fe=-1;let ze=r.clientWidth,Ce=r.clientHeight;if(ze!==u||Ce!==p){let We=r.style;ze!==u&&Ce!==p?(We.width=`${u}px`,We.height=`${p}px`):We.aspectRatio=`${u} / ${p}`;}}function _(){let u=ne(Ee);if(u<0||u===fe)return;let p=ie[u],v=r.width,le=r.height,we=p.naturalWidth||v,ze=p.naturalHeight||le,Ce=(g==="contain"?Math.min:Math.max)(v/we,le/ze),We=we*Ce,Ge=ze*Ce;C.clearRect(0,0,v,le),C.drawImage(p,(v-We)/2,(le-Ge)/2,We,Ge),fe=u,j||(j=true,Se(O));}function B(u){Ee=Math.min(A,Math.max(0,Math.round(u*A))),r.style.setProperty("--scroll-draw-progress",String(u)),_(),Se(z,u,Ee);}function U(){let u=W.getBoundingClientRect(),p=m==="x"?u.left:u.top,v=m==="x"?u.width:u.height,le=Le({top:p,height:v},He(),Me(),Z,se);F=le.tStart,H=le.tEnd,H===F&&v>0&&!b&&!ue&&(ue=true,P("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",r));}let Ne=()=>Q(He(),F,H,1);function oe(){if(b)return;let u=Ne(),p=l?Math.max(L,D(ee=Math.max(ee,u))):D(u);te=p,B(p),p>=1&&!he?(he=true,Se($)):p<1&&!l&&(he=false);}function Ie(){te=1,B(1);}I(),b||U();let be=De(window,[W],Ne,oe,()=>{I(),b||U(),_();}),Ye=()=>be.hold(h||b);Ye(),b&&Ie(),c();let je=typeof ResizeObserver=="function"?new ResizeObserver(()=>{I(),_();}):null;je?.observe(r);let Ue=b?()=>{}:Je(u=>{u&&(Ue(),b=true,be.hold(true),re=re.slice(0,ke),E[A]||re.push(A),Ae(),Ie(),c());});Oe(r,{type:"frames",getProgress:()=>te,getTrigger:()=>({tStart:F,tEnd:H})});function me(){N||!h||(h=false,Ye());}return {destroy(){if(!N){N=true,be.off(),je?.disconnect(),Ue();for(let u of S)u.onload=u.onerror=null,u.src="";S.clear(),$e(r);}},replay(){N||(L=-1,ee=0,he=false,te=0,B(0),me());},pause(){N||(h=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,h=true,be.hold(true),B(p);},getProgress(){return te}}}function mr(e,{triggerElement:n,...t},r){let o=n;return typeof n=="string"&&typeof document<"u"&&(o=document.querySelector(n),o||P(`scrollFrames: triggerElement "${n}" matches nothing; measuring the canvas.`)),fr(e,{...t,frames:r.frames,triggerElement:o??void 0})}function pr(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 ht(e=""){let n=document.createElement("span");return n.setAttribute("aria-hidden","true"),n.textContent=e,n}function gr(e){let n=e.textContent??"";return e.textContent="",n.split(/(\s+)/).filter(Boolean).map(t=>{let r=e.appendChild(ht(t)),o=/^\s+$/.test(t);return o?r.style.whiteSpace="pre":r.style.display="inline-block",o?null:r}).filter(t=>t!==null)}function Xr(e){let n=e.textContent??"";e.textContent="";let t=[],r=null;for(let o of n){let s=ht(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(ht()),r.style.cssText="display:inline-block;white-space:nowrap"),(r??e).appendChild(s);}return t}function dr(e){let n=gr(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=ht();l.style.display="inline-block",i.forEach((m,g)=>{let w=m.nextElementSibling;l.appendChild(m),g<i.length-1&&w&&w.style.whiteSpace==="pre"&&l.appendChild(w);}),r.push(l);}return e.textContent="",r.forEach((s,i)=>{e.appendChild(s),i<r.length-1&&e.appendChild(document.createTextNode(" "));}),r}function Jr(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:rt((e-s)/(i-s),0,1)}function Zr(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 At={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,n={}){if(typeof window>"u")return At;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return P("scrollText: element not found:",e),At;let r=t;return qe(n,(o,s)=>en(r,o,s))}function en(e,n,t){let{split:r="words",stagger:o=.04,easing:s="ease-out",from:i={opacity:0,y:24},trigger:l={},once:m=true,onComplete:g}=n,w=Re(s,"ease-out"),O=ae(l.start||"top 85%"),T=ae(l.end||"top 40%"),$=e.innerHTML,z=e.textContent??"",M;r==="chars"?M=Xr(e):r==="lines"?M=dr(e):M=gr(e),pr(e,z);let q=M.length;function G(h,L){i?.opacity!==void 0&&(h.style.opacity=String(i.opacity+(1-i.opacity)*L));let ee=Zr(L,i);ee&&(h.style.transform=ee);}function x(h){e.style.setProperty("--scroll-draw-progress",String(h)),M.forEach((L,ee)=>{let te=w(Jr(h,ee,q,o));G(L,te);});}if(t)return x(1),g?.(),{...At,destroy:()=>{e.innerHTML=$;},getProgress:()=>1};x(0);let C=0,A=0,W=-1,b=0,k=false;function D(){({tStart:C,tEnd:A}=Le(e.getBoundingClientRect(),window.scrollY,window.innerHeight,O,T));}let Z=()=>Q(window.scrollY,C,A,1);function se(){let h=m?W=Math.max(W,Z()):Z();b=h,x(h),h>=1&&!k?(k=true,g?.()):h<1&&!m&&(k=false);}D();let F=De(window,[e],Z,se,()=>{r==="lines"&&(e.innerHTML=$,M=dr(e),pr(e,z),x(b)),D();});Oe(e,{type:"text",getProgress:()=>b,getTrigger:()=>({tStart:C,tEnd:A})});let H=()=>F.hold(false);return {destroy(){F.off(),e.innerHTML=$,$e(e);},replay(){W=-1,k=false,b=0,x(0),H();},pause:()=>F.hold(true),resume:H,seek(h){F.hold(true),x(b=W=rt(h,0,1));},getProgress(){return b}}}function Ve(e,n,t=st){let r,o,s,i;return solidJs.createEffect(()=>{i=typeof e=="function"?e():e;let l=t(i);!r||l===s||(s=l,solidJs.untrack(()=>{o?.destroy(),o=n(r,rr(i,()=>i),i);}));}),solidJs.onCleanup(()=>{o?.destroy(),o=s=void 0;}),{ref:l=>{r=l;},getInstance:()=>o}}function _o(e={}){return Ve(e,St).ref}function zo(e={}){return Ve(e,St)}function Wo(e){return Ve(e,Mt).ref}function Go(e){return Ve(e,Mt)}function Bo(e){return Ve(e,xt).ref}function qo(e){return Ve(e,xt)}function jo(e={}){return Ve(e,Lt).ref}function Uo(e={}){return Ve(e,Lt)}function hr(e,n){let t=false;return Ve(e,(r,o,s)=>(t||ur(r,n),t=true,mr(r,o,s)),cr)}function Yo(e){return hr(e,"useScrollFrames").ref}function Qo(e){return hr(e,"createScrollFrames")}function Ko(e={}){return Ve(e,Ct).ref}function Xo(e={}){return Ve(e,Ct)}exports.createScrollAnimate=Go;exports.createScrollCounter=qo;exports.createScrollDraw=zo;exports.createScrollFrames=Qo;exports.createScrollText=Xo;exports.createScrollVideo=Uo;exports.useScrollAnimate=Wo;exports.useScrollCounter=Bo;exports.useScrollDraw=_o;exports.useScrollFrames=Yo;exports.useScrollText=Ko;exports.useScrollVideo=jo;
|
package/dist/solid/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$1}from'../chunk-NJV6S5LD.mjs';import {a,c,d,b}from'../chunk-KN2YB54Z.mjs';import {a as a$
|
|
1
|
+
import {a as a$1}from'../chunk-NJV6S5LD.mjs';import {a,c,d,b}from'../chunk-KN2YB54Z.mjs';import {a as a$3}from'../chunk-HJTHOZK5.mjs';import'../chunk-GBFWTY5L.mjs';import {a as a$4}from'../chunk-UF3MO5XQ.mjs';import {b as b$2}from'../chunk-OGFXZCKC.mjs';import {a as a$2}from'../chunk-HAGTU5EX.mjs';import {b as b$1}from'../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';import {createEffect,onCleanup,untrack}from'solid-js';function r(e,i,c=a){let o,t,n,l;return createEffect(()=>{l=typeof e=="function"?e():e;let s=c(l);!o||s===n||(n=s,untrack(()=>{t?.destroy(),t=i(o,b(l,()=>l),l);}));}),onCleanup(()=>{t?.destroy(),t=n=void 0;}),{ref:s=>{o=s;},getInstance:()=>t}}function g(e={}){return r(e,b$1).ref}function k(e={}){return r(e,b$1)}function v(e){return r(e,a$2).ref}function K(e){return r(e,a$2)}function h(e){return r(e,b$2).ref}function j(e){return r(e,b$2)}function q(e={}){return r(e,a$3).ref}function z(e={}){return r(e,a$3)}function M(e,i){let c$1=false;return r(e,(o,t,n)=>(c$1||d(o,i),c$1=true,a$1(o,t,n)),c)}function B(e){return M(e,"useScrollFrames").ref}function G(e){return M(e,"createScrollFrames")}function J(e={}){return r(e,a$4).ref}function N(e={}){return r(e,a$4)}export{K as createScrollAnimate,j as createScrollCounter,k as createScrollDraw,G as createScrollFrames,N as createScrollText,z as createScrollVideo,v as useScrollAnimate,h as useScrollCounter,g as useScrollDraw,B as useScrollFrames,J as useScrollText,q as useScrollVideo};
|
package/dist/svelte/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var Qe=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 Qe=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function P(e,...t){Qe&&console.warn(`[svg-scroll-draw] ${e}`,...t);}function Tr({tension:e=2.5,friction:t=2.2}={}){return r=>1-Math.cos(r*Math.PI*e)*Math.pow(1-r,t)}function xr({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 l=[0],m=0;for(let g=0;g<r;g++)m+=i[g]/s,l.push(m);return g=>{if(g<=0)return 0;if(g>=1)return 1;for(let w=0;w<r;w++)if(g<=l[w+1]){let $=(g-l[w])/(l[w+1]-l[w]);if(w===0)return $*(2-$);let x=1-Math.pow(n,w);return x+(1-x)*(2*$-1)*(2*$-1)}return 1}}function Mr({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 Ke={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:Tr(),bounce:xr(),elastic:Mr()};function Lr(e,t,r,n){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,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 l=0,m=0,g=1;l<30;l++)i=(m+g)/2,o(e,r,i)<s?m=i:g=i;return o(t,n,i)}}function Et(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 [Lr(r[0],r[1],r[2],r[3]),`cubic-bezier(${r})`]}var Gt=new Set;function Re(e,t="linear"){if(typeof e=="function")return e;if(e==null)return Ke[t];if({}.hasOwnProperty.call(Ke,e))return Ke[e];let r=Et(String(e));return r?r[0]:(!Gt.has(e)&&Gt.add(e)&&P(`Unknown easing ${JSON.stringify(e)}: use a name, cubic-bezier() or a function.`),Ke[t])}function rt(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 jt=(e,t)=>e==="top"?0:e==="center"?.5:e==="bottom"?1:t;function Bt(e,t,r,n){return e+r+t*jt(n,0)}function qt(e,t){return t*(/^\d+(\.\d+)?%$/.test(e)?parseFloat(e)/100:jt(e,1))}function Q(e,t,r,n){return r===t?0:rt((e-t)/(r-t)*n,0,1)}function Le(e,t,r,n,o){let s=Bt(e.top,e.height,t,n.element)-qt(n.viewport,r),i=Bt(e.top,e.height,t,o.element)-qt(o.viewport,r);return {tStart:s,tEnd:i}}function lt(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 ct(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 ut(e){return `${e} ${e*2}`}function Ut(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 ft(e,t,r){let n=Ut(e),o=Ut(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 Yt={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 Cr="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Ar="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Qt=33;function Pr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function $r(e){let t=[];for(let r=0;r<Qt;r++){let n=r/(Qt-1);t.push(String(Math.round(e(n)*1e5)/1e5));}return `linear(${t.join(",")})`}function mt(e){switch(e){case "linear":return "linear";case "ease-in":return Cr;case "ease-out":return Ar;case "ease-in-out":return Pr()?$r(Ke["ease-in-out"]):null;default:return Et(e)?.[1]??null}}var Kt=Symbol.for("svg-scroll-draw.registry");function Xt(){let e=globalThis;return e[Kt]||(e[Kt]=new Map)}function $e(e,t){Xt().set(e,t);}function ke(e){Xt().delete(e);}function Xe(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 Be(e,t){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t(e,true);let r=t(e,false),n=Xe(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 nt,pt=new Set,dt=new WeakMap,ot=new Map,Jt=e=>{let t=e.getBoundingClientRect();return t.width+" "+t.height};function kr(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 Zt(e,t){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let r=()=>t();nt??(nt=new ResizeObserver(o=>{let s=false;for(let{target:i}of o)dt.get(i)!==Jt(i)&&(s=true),dt.set(i,"");s&&pt.forEach(i=>i());})),pt.add(r);let n=kr(e);return [document.body,document.documentElement].forEach(o=>o&&n.add(o)),n.forEach(o=>{dt.has(o)||dt.set(o,Jt(o)),ot.set(o,(ot.get(o)??0)+1),nt.observe(o);}),()=>{pt.delete(r)&&(n.forEach(o=>{let s=(ot.get(o)??1)-1;if(s)return void ot.set(o,s);ot.delete(o),nt?.unobserve(o);}),pt.size||(nt?.disconnect(),nt=void 0));}}function De(e,t,r,n,o){let s,i=NaN,l,m,g=()=>{s=0,n(),!l&&!s&&(i=r())>0&&i<1&&(s=requestAnimationFrame(g));},w=()=>{!s&&!l&&r()!==i&&(s=requestAnimationFrame(g));},$=q=>{l=q,cancelAnimationFrame(s),s=i=NaN,w();},x=()=>{clearTimeout(m),o(),w();},k=()=>{clearTimeout(m),m=setTimeout(x,150);},z=Zt(t,k),T=q=>{e[q]("scroll",w,{passive:true}),window[q]("resize",k),window[q]("orientationchange",k);};return T("addEventListener"),w(),{hold:$,remeasure:x,off(){$(true),T("removeEventListener"),z(),clearTimeout(m);}}}var Or=0;function Fr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function er(e,t){let r="";try{r=getComputedStyle(e).getPropertyValue(t).trim();}catch{}return r||(e.getAttribute(t)??"").trim()}var tr=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function Ir(e){if(!Qe)return;let t=er(e,"stroke");if(!t||t==="none"){P("Element has no stroke \u2014 path will not be visible.",e);return}let r=(e.getAttribute("fill")??"").trim();r&&!tr.has(r)&&!tr.has(er(e,"fill"))&&P("Element has a fill \u2014 it may obscure the stroke animation.",e);}function Hr(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,l=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:${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(n),window.addEventListener("scroll",o,{passive:true}),o(),{el:n,destroy(){window.removeEventListener("scroll",o),n.remove();}}}var rr=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,nr=/[MmLlHhVvCcSsQqTtAaZz]/g;function Rr(e,t,r){if(!Qe)return;let n=(e.match(nr)??[]).join("").toUpperCase(),o=(t.match(nr)??[]).join("").toUpperCase(),s=(e.match(rr)??[]).length,i=(t.match(rr)??[]).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.`,r);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.`,r);}function Dr(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),l=n[o++]??i;return String(+(i+(l-i)*r).toFixed(4))})}function St(e,t={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:Be(t,(r,n)=>Nr(e,r,n))}function Nr(e,t,r){let{preset:n,...o}=t,s=n?{...Yt[n],...o}:o,{selector:i="path, polyline, line, polygon, rect, circle",speed:l=1,fade:m=false,easing:g="linear",trigger:w={},stagger:P=0,direction:S="forward",once:G=false,debug:Q=false,axis:v="y",scrollContainer:z,autoReverse:Z=false,delay:$=0,strokeColor:C,strokeWidth:L,fillOpacity:O,waypoints:h,velocityScale:F=false,threshold:W=0,rootMargin:se="0px",repeat:K=0,repeatDelay:V=0,morphTo:R,clip:T,autoplay:X=false,duration:E=1e3,native:A=true,onProgress:he,onStart:D,onComplete:q,onEnter:ue,onLeave:Ee,onEnterBack:fe,onLeaveBack:ie}=s,M=T===true?"left":typeof T=="string"?T:false,x=Re(g),re=ae(w.start||"top bottom"),Oe=ae(w.end||"bottom top"),J=typeof z=="string"?document.querySelector(z):z??null,Fe=Array.isArray(C)?C[0]:null,Se=Array.isArray(C)?C[1]:typeof C=="string"?C:null,ye=Array.isArray(L)?L[0]:null,Ve=Array.isArray(L)?L[1]:typeof L=="number"?L:null,Ie=Array.isArray(O)?O[0]:null,Te=Array.isArray(O)?O[1]:typeof O=="number"?O:null;function Ae(a){let f=a*100;switch(M){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 c=M?[]:Array.from(e.querySelectorAll(i)),d=[],ne=[],I=0,_=0,B=P,j=0,Ne=0,oe=false,He=false,be=0,Ue=-1,qe=[],je=-1,me=false,u=0,p=0,b,le=false,we=null;function _e(){we?.destroy(),we=null;}let Ce=new Set,ze=NaN,We=true,it=-1,Ot=performance.now(),Ye=NaN;function at(){return J?v==="x"?J.scrollLeft:J.scrollTop:v==="x"?window.scrollX:window.scrollY}function Ft(){return J?v==="x"?J.clientWidth:J.clientHeight:v==="x"?window.innerWidth:window.innerHeight}function It(){let a=lt(e,J,v);return Le(a,a.scroll,Ft(),re,Oe)}function hr(){let a=_-I,f=c.length-1,y=J??document.documentElement,N=v==="x"?"Width":"Height";if(B=P,P>0&&f>0&&a>0){let pe=y[`scroll${N}`]-y[`client${N}`]-1-I-a/l;pe>=0&&(B=Math.min(P,pe/(f*a)));}let ce=Math.max(0,f)*B*a,Me=a/Math.min(l,1);j=I+Math.min(0,ce,Me,ce+Me),Ne=I+Math.max(0,ce,Me,ce+Me);}function Ht(){(({tStart:I,tEnd:_}=It())),hr(),Q&&Qe&&(_e(),we=Hr(I,_,v));}function yt(a,f=It){$e(e,{type:"draw",getProgress:()=>a.getProgress(),getTrigger:f});let y=a.destroy;return a.destroy=()=>{y.call(a),ke(e);},a}function Rt(a,f){return G&&!Z?Math.max(Ue,x(qe[a]=Math.max(qe[a]??0,f))):x(f)}function yr(a,f){if(e.style.setProperty("--scroll-draw-progress",String(a)),M){let y=f==="reverse"?1-a:a;e.style.clipPath=Ae(y);return}c.forEach((y,N)=>bt(y,N,a,f));}function bt(a,f,y,N){a.style.strokeDashoffset=N==="reverse"?`${d[f]*y}`:`${d[f]*(1-y)}`,m&&(a.style.opacity=N==="reverse"?`${1-y}`:`${y}`),Fe&&Se?a.style.stroke=ft(Fe,Se,y):Se&&(a.style.stroke=Se),ye!==null&&Ve!==null?a.style.strokeWidth=`${ye+(Ve-ye)*y}`:Ve!==null&&(a.style.strokeWidth=`${Ve}`),Ie!==null&&Te!==null?a.style.fillOpacity=`${Ie+(Te-Ie)*y}`:Te!==null&&(a.style.fillOpacity=`${Te}`),R&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",Dr(ne[f],R,y));}function wt(){if(e.style.setProperty("--scroll-draw-progress","0"),M){e.style.clipPath=Ae(S==="reverse"?1:0);return}c.forEach((a,f)=>{a.style.strokeDasharray=ut(d[f]),a.style.strokeDashoffset=S==="reverse"?"0":`${d[f]}`,m?a.style.opacity=S==="reverse"?"1":"0":a.style.opacity="",Fe&&(a.style.stroke=Fe),ye!==null&&(a.style.strokeWidth=`${ye}`),Ie!==null&&(a.style.fillOpacity=`${Ie}`),R&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",ne[f]);});}function Ze(a,f){let y=a.getAttribute("d"),N=ct(a);if(R&&ne[f]){a.setAttribute("d",R);let ce=ct(a);a.setAttribute("d",ne[f]),N=Math.max(ct(a),ce),a.setAttribute("d",y);}d[f]=N,a.style.strokeDasharray=ut(N);}if(c.forEach((a,f)=>{Ir(a);let y=a.tagName.toLowerCase()==="path";y?ne.push(a.getAttribute("d")??""):ne.push(""),Ze(a,f);let N=d[f];R&&(y?Rr(ne[ne.length-1],R,a):k(`morphTo only applies to <path> elements \u2014 ignored on <${a.tagName}>.`,a)),r?(a.style.strokeDashoffset=S==="reverse"?`${N}`:"0",m&&(a.style.opacity="1"),Se&&(a.style.stroke=Se),Ve!==null&&(a.style.strokeWidth=`${Ve}`),Te!==null&&(a.style.fillOpacity=`${Te}`),R&&a.tagName.toLowerCase()==="path"&&a.setAttribute("d",R)):(a.style.strokeDashoffset=S==="reverse"?"0":`${N}`,m?a.style.opacity=S==="reverse"?"1":"0":a.style.opacity="",Fe&&(a.style.stroke=Fe),ye!==null&&(a.style.strokeWidth=`${ye}`),Ie!==null&&(a.style.fillOpacity=`${Ie}`));}),r)return M&&(e.style.clipPath=Ae(1)),q?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};M&&(e.style.clipPath=Ae(S==="reverse"?1:0));let Dt=typeof g=="string"?mt(g):null;function br(){return !(A===false||X||Q&&Qe||!Fr()||!c.length||!Dt||M||v!=="y"||J||l!==1||P!==0||G||Z||F!==false||R||h||K||$>0||he||D||q||ue||Ee||fe||ie||C!=null||L!=null||O!=null||(w.start||"top bottom").trim()!=="top bottom"||(w.end||"bottom top").trim()!=="bottom top")}function wr(){let a=++Or,f=`svg-scroll-draw-${a}`,y=`svg-scroll-draw-host-${a}`,N=`--svg-scroll-draw-${a}`,ce=S==="reverse"?"0":"var(--ssd-len)",Me=S==="reverse"?"var(--ssd-len)":"0",pe=`stroke-dashoffset:${ce};`,ee=`stroke-dashoffset:${Me};`;m&&(pe+=`opacity:${S==="reverse"?1:0};`,ee+=`opacity:${S==="reverse"?0:1};`);let te=document.createElement("style");te.setAttribute("data-svg-scroll-draw",""),te.textContent=`@keyframes ${f}{from{${pe}}to{${ee}}}.${y}{view-timeline-name:${N};view-timeline-axis:block;}.${f}{animation-name:${f};animation-duration:auto;animation-timing-function:${Dt};animation-fill-mode:both;animation-timeline:${N};animation-range:cover 0% cover 100%;}`,document.head.appendChild(te),e.classList.add(y);function ve(H,U){H.style.setProperty("--ssd-len",String(d[U])),H.style.strokeDasharray=ut(d[U]),H.style.strokeDashoffset="",H.style.opacity="",H.style.animationPlayState="",H.classList.add(f);}c.forEach(ve);let de=false,xe=-1;function Pe(){if(xe>=0)return xe;let H=e.getBoundingClientRect(),{tStart:U,tEnd:ge}=Le({top:H.top,height:H.height},at(),Ft(),re,Oe);return x(Y(at(),U,ge,l))}return {destroy(){e.classList.remove(y),c.forEach(H=>{H.classList.remove(f),H.style.removeProperty("--ssd-len"),H.style.animationPlayState="";}),te.remove();},replay(){de=false,xe=-1,c.forEach(ve);},pause(){de=true,c.forEach(H=>{H.style.animationPlayState="paused";});},resume(){de&&(de=false,c.forEach(H=>{H.style.animationPlayState="running";}));},seek(H){let U=Math.min(1,Math.max(0,H));xe=U,de=true,c.forEach((ge,Ge)=>{ge.classList.remove(f),ge.style.strokeDashoffset=S==="reverse"?`${d[Ge]*U}`:`${d[Ge]*(1-U)}`,m&&(ge.style.opacity=S==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return Pe()},refresh(){c.forEach((H,U)=>{Ze(H,U),H.style.setProperty("--ssd-len",String(d[U]));});}}}if(br())return yt(wr());function vr(){let a=Math.max(1,E),f=M?a:a*(1+Math.max(0,c.length-1)*P),y=0,N=0,ce=false;function Me(xe){let Pe=true,H=Math.min(1,Math.max(0,xe/f));if(M){let U=Math.min(1,Math.max(0,xe/a)),ge=x(U);u=ge,e.style.setProperty("--scroll-draw-progress",String(ge)),e.style.clipPath=Ae(S==="reverse"?1-ge:ge),he?.(ge),U<1&&(Pe=false);}else {c.forEach((ge,Ge)=>{let Sr=Ge*P*a,Wt=Math.min(1,Math.max(0,(xe-Sr)/a));bt(ge,Ge,x(Wt),S),Wt<1&&(Pe=false);});let U=x(H);u=U,he?.(U),e.style.setProperty("--scroll-draw-progress",String(U));}if(h){let U=x(H);for(let ge in h){let Ge=parseFloat(ge);U>=Ge&&!Ce.has(Ge)&&(Ce.add(Ge),h[ge]?.());}}return Pe}function pe(xe){if(me)return;let Pe=xe-y;He||(He=true,D?.());let H=Me(Pe);if(H&&!oe){oe=true,Me(f),q?.(),p<(K==="infinite"?1/0:K??0)&&(p++,b=setTimeout(()=>{y=performance.now(),He=false,oe=false,Ce.clear(),wt(),be=requestAnimationFrame(pe);},V));return}H||(be=requestAnimationFrame(pe));}function ee(){cancelAnimationFrame(be),clearTimeout(b),y=performance.now(),N=0,me=false,He=false,oe=false,p=0,ce=true,u=0,Ce.clear(),wt(),be=requestAnimationFrame(pe);}let te=new IntersectionObserver(xe=>{xe.forEach(Pe=>{Pe.isIntersecting&&!(G&&oe)?ee():!Pe.isIntersecting&&!G&&!oe&&(cancelAnimationFrame(be),clearTimeout(b),ce=false);});},{root:J??null,threshold:W,rootMargin:se}),ve;function de(){clearTimeout(ve),ve=setTimeout(()=>c.forEach(Ze),150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),$>0?setTimeout(()=>te.observe(e),$):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()-y,cancelAnimationFrame(be));},resume(){me&&(me=false,ce=true,y=performance.now()-N,be=requestAnimationFrame(pe));},seek(xe){let Pe=Math.min(1,Math.max(0,xe));u=Pe,me=true,N=Pe*f,y=performance.now()-N,cancelAnimationFrame(be),Me(N);},getProgress(){return u},refresh(){clearTimeout(ve),c.forEach(Ze);}}}if(X)return yt(vr());Ht();let Nt=()=>Y(at(),j,Ne,1);function Vt(){oe=true,q?.(),p<(K==="infinite"?1/0:K)&&(p++,b=setTimeout(()=>{le=true;},V));}function _t(){Ue=-1,qe=[],He=false,oe=false,le=false,Ce.clear(),wt(),We=true;}function Er(){let a=performance.now(),f=at();if(le&&Nt()%1&&_t(),!We&&F===false&&f===ze)return;We=false,ze=f;let y=l;if(F!==false){let ee=a-Ot,te=ee>0?Math.abs(f-(it<0?f:it))/ee:0;y=l*Math.max(.2,1+te*(typeof F=="number"?F:1)*.04);}it=f,Ot=a;let N=Z?je===-1||f>=je?"forward":"reverse":S;je=f;let ce=_-I,Me=true,pe=ce===0?0:(f-I)/ce;if(isNaN(Ye)||(Ye<=0&&pe>0&&ue?.(),Ye<1&&pe>=1&&Ee?.(),Ye>=1&&pe<1&&fe?.(),Ye>0&&pe<=0&&ie?.()),Ye=pe,M){let ee=Rt(0,Y(f,I,_,y));u=ee,e.style.setProperty("--scroll-draw-progress",String(ee));let te=N==="reverse"?1-ee:ee;e.style.clipPath=Ae(te),he?.(ee),!He&&Y(f,I,_,y)>0&&(He=true,D?.()),ee>=1&&!oe?Vt():ee<1&&!G&&(oe=false);return}if(c.forEach((ee,te)=>{let ve=te*B*ce,de=Rt(te,Y(f,I+ve,_+ve,y));bt(ee,te,de,N),te===0&&(u=de,he?.(de),e.style.setProperty("--scroll-draw-progress",String(de))),de<1&&(Me=false);}),h){let ee=x(Y(f,I,_,y));for(let te in h){let ve=parseFloat(te);ee>=ve&&!Ce.has(ve)&&(Ce.add(ve),h[te]?.());}}!He&&Y(f,I,_,y)>0&&(He=true,D?.()),Me&&!oe?Vt():!Me&&!G&&(oe=false);}let et=De(J??window,[e],Nt,Er,()=>{let a=d.join();c.forEach(Ze),Ht(),We=true,d.join()!==a&&tt();}),vt=$>0;function tt(){et.hold(me||vt);}let zt;return vt&&(zt=setTimeout(()=>{vt=false,tt();},$)),tt(),yt({destroy(){clearTimeout(b),clearTimeout(zt),et.off(),_e();},replay(){_t(),je=-1,it=-1,p=0,me=false,u=0,clearTimeout(b),tt();},pause(){me=true,et.hold(true);},resume(){me&&(me=false,We=true,tt());},seek(a){let f=Math.min(1,Math.max(0,a));u=f,Ue=f,qe=[],me=true,et.hold(true),yr(f,S),We=true;},getProgress(){return u},refresh:et.remeasure},()=>({tStart:I,tEnd:_}))}var or=new WeakMap,Vr=0;function st(e){return JSON.stringify(e,(t,r)=>{if(typeof r=="function")return "\u0192";if(typeof Element<"u"&&r instanceof Element){let n=or.get(r);return n===void 0&&or.set(r,n=++Vr),`el#${n}`}return r})}function Tt(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 _r(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function sr(e){let t=[],r=/([\w]+)\(([^)]*)\)/g,n;for(;(n=r.exec(e))!==null;){let o=[],s=[],i=n[2].trim();if(i)for(let l of i.split(/[\s,]+/)){let m=l.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 zr(e,t,r){let n=sr(e),o=sr(t);return n.length===0||n.length!==o.length?r<1?e:t:n.map((s,i)=>{let l=o[i];return s.fn!==l.fn||s.nums.length!==l.nums.length?r<1?`${s.fn}(${s.nums.map((m,g)=>`${m}${s.units[g]}`).join(", ")})`:`${l.fn}(${l.nums.map((m,g)=>`${m}${l.units[g]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,g)=>`${m+(l.nums[g]-m)*r}${s.units[g]}`).join(", ")})`}).join(" ")}function ir(e,t,r){if(typeof e=="number"&&typeof t=="number")return String(e+(t-e)*r);let n=String(e),o=String(t);if(_r(n))return ft(n,o,r);if(n.includes("("))return zr(n,o,r);let s=n.match(/^([-+]?[\d.]+)(.*)$/),i=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&i){let l=parseFloat(s[1]),m=parseFloat(i[1]);return `${l+(m-l)*r}${s[2]||i[2]}`}return r<1?n:o}function Wr(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}var Gr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),Br=0,ar="--scroll-draw-progress";function qr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var cr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Mt(e,t){return typeof window>"u"?cr:t.respectReducedMotion===false?lr(e,t,false):Be(t,(r,n)=>lr(e,r,n))}function lr(e,t,r){let{props:n,trigger:o={},easing:s="ease-out",speed:i=1,once:l=false,axis:m="y",scrollContainer:g,native:w=true,velocityScale:P=false,triggerElement:S,onProgress:G,onComplete:Q,onEnter:v,onLeave:z,onEnterBack:Z,onLeaveBack:$}=t,C=Re(s,"ease-out"),L=ae(o.start||"top bottom"),O=ae(o.end||"bottom top"),h=S??e,F=typeof g=="string"?document.querySelector(g):g??null,W=Object.entries(n).map(([c,d])=>({prop:Wr(c),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function se(){let c=window.getComputedStyle(e);for(let d of W)d.from===""&&(d.from=c.getPropertyValue(d.prop).trim()||"0");}function K(){for(let c of W)e.style.setProperty(c.prop,String(c.to));}let V=new Map;for(let c of [...W.map(d=>d.prop),ar])V.set(c,e.style.getPropertyValue(c));function R(){for(let[c,d]of V)d?e.style.setProperty(c,d):e.style.removeProperty(c);}if(r)return K(),Q?.(),{...cr,destroy:R,getProgress:()=>1};se();let T=()=>F?m==="x"?F.scrollLeft:F.scrollTop:m==="x"?window.scrollX:window.scrollY,X=()=>F?m==="x"?F.clientWidth:F.clientHeight:m==="x"?window.innerWidth:window.innerHeight,E=typeof s=="string"?mt(s):null;function A(){if(!w||!qr()||!E||m!=="y"||F||h!==e||l||i!==1||G||Q||v||z||Z||$||P!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let c of W)if(!Gr.has(c.prop))return false;return true}function he(){let c=`ssd-a-${++Br}`,d=W.map(j=>`${j.prop}:${j.from}`).join(";"),ne=W.map(j=>`${j.prop}:${j.to}`).join(";"),I=document.createElement("style");I.setAttribute("data-ssd-animate",""),I.textContent=`@keyframes ${c}{from{${d}}to{${ne}}}.${c}{animation-name:${c};animation-duration:auto;animation-timing-function:${E};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(I),e.classList.add(c);let _=()=>{let j=e.getBoundingClientRect();return Le({top:j.top,height:j.height},T(),X(),L,O)};$e(e,{type:"animate",getProgress:()=>B.getProgress(),getTrigger:_});let B={refresh(){},destroy(){e.classList.remove(c),I.remove(),e.style.animationPlayState="",R(),ke(e);},replay(){e.classList.remove(c),e.offsetWidth,e.classList.add(c);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(j){let Ne=Math.min(1,Math.max(0,j));e.classList.remove(c);for(let oe of W)e.style.setProperty(oe.prop,ir(oe.from,oe.to,Ne));},getProgress(){let{tStart:j,tEnd:Ne}=_();return C(Y(T(),j,Ne,i))}};return B}if(A())return he();let D=0,q=0,ue=false,Ee=-1,fe=0,ie=0,M=false,x=NaN,re=-1,Oe=0,J=h===e?W:[],Fe=false;function Se(){let c=e.style,d=J.map(B=>c.getPropertyValue(B.prop)),ne=c.transition;J.length&&(c.transition="none"),J.forEach(B=>c.setProperty(B.prop,V.get(B.prop)??""));let I=lt(h,F,m);J.forEach((B,j)=>c.setProperty(B.prop,d[j])),J.length&&(e.offsetWidth,c.transition=ne);let _=Le(I,I.scroll,X(),L,O);Fe&&Math.abs(_.tStart-D)<1&&Math.abs(_.tEnd-q)<1||(Fe=true,D=_.tStart,q=_.tEnd);}function ye(c){e.style.setProperty(ar,String(c));for(let d of W)e.style.setProperty(d.prop,ir(d.from,d.to,c));G?.(c);}function Ve(c){if(isNaN(x)){x=c;return}x<=0&&c>0&&v?.(),x<1&&c>=1&&z?.(),x>=1&&c<1&&Z?.(),x>0&&c<=0&&$?.(),x=c;}function Ie(){if(ue)return;let c=performance.now(),d=T(),ne=i;if(P!==false){let j=c-Oe,Ne=j>0?Math.abs(d-(re<0?d:re))/j:0;ne=i*Math.max(.2,1+Ne*(typeof P=="number"?P:1)*.04);}re=d,Oe=c;let I=q===D?0:(d-D)/(q-D);Ve(I);let _=Y(d,D,q,ne),B=l?Math.max(Ee,C(fe=Math.max(fe,_))):C(_);ie=B,ye(B),B>=1&&!M?(M=true,Q?.()):B<1&&!l&&(M=false);}let Te=De(F??window,[h],()=>Y(T(),D,q,Math.min(i,1)),Ie,Se);Se(),q===D&&k("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),fe=Y(T(),D,q,i),ie=C(fe),ye(ie),$e(e,{type:"animate",getProgress:()=>ie,getTrigger:()=>({tStart:D,tEnd:q})});function Ae(){ue=true,Te.hold(true);}return {destroy(){ue=true,Te.off(),R(),ke(e);},replay(){Ee=-1,fe=0,M=false,ie=0,ue=false,ye(0),Te.hold(false);},pause:Ae,resume(){ue&&(ue=false,Te.hold(false));},seek(c){let d=Math.min(1,Math.max(0,c));ie=d,Ee=d,fe=0,Ae(),ye(d);},getProgress(){return ie},refresh:Te.remeasure}}var xt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Lt(e,t){if(typeof window>"u")return xt;let r=typeof e=="string"?document.querySelector(e):e;return r?Be(t,(n,o)=>jr(r,n,o)):(k("scrollCounter: element not found:",e),xt)}function jr(e,t,r){let{from:n=0,to:o,format:s,easing:i="ease-out",trigger:l={},once:m=true,decimals:g,onComplete:w}=t,P=g!==void 0?E=>E.toFixed(g):s??(E=>String(Math.round(E))),S=Re(i,"ease-out"),G=ae(l.start||"top 80%"),Q=ae(l.end||"top 20%");if(r)return e.textContent=P(o),w?.(),{...xt,getProgress:()=>1};let v=0,z=0,Z=false,$=-1,C=0,L=0,O=false,h=()=>window.scrollY,F=()=>window.innerHeight;function W(){let E=e.getBoundingClientRect(),A=Le({top:E.top,height:E.height},h(),F(),G,Q);Z&&Math.abs(A.tStart-v)<1&&Math.abs(A.tEnd-z)<1||(Z=true,v=A.tStart,z=A.tEnd);}let se=e.style.getPropertyValue("--scroll-draw-progress");function K(E){e.textContent=P(n+(o-n)*E),e.style.setProperty("--scroll-draw-progress",String(E));}let V=()=>Y(h(),v,z,1);function R(){let E=V(),A=m?Math.max($,S(C=Math.max(C,E))):S(E);L=A,K(A),A>=1&&!O?(O=true,w?.()):A<1&&!m&&(O=false);}W();{C=Y(h(),v,z,1);let E=S(C);L=E,K(E);}let T=De(window,[e],V,R,W);$e(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(){$=-1,C=0,O=false,L=0,K(0),X();},pause:()=>T.hold(true),resume:X,seek(E){let A=Math.min(1,Math.max(0,E));L=A,$=A,C=0,T.hold(true),K(A);},getProgress(){return L}}}var ur={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function At(e,t={}){if(typeof window>"u")return ur;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return k("scrollVideo: <video> element not found:",e),ur;let n=r,{trigger:o={},easing:s="linear",once:i=false,axis:l="y",preload:m="auto",triggerElement:g,onReady:w,onComplete:P,onProgress:S}=t,G=g??n,Q=window.matchMedia("(prefers-reduced-motion: reduce)").matches,v=Re(s),z=ae(o.start||"top top"),Z=ae(o.end||"bottom top");n.pause(),n.hasAttribute("preload")||(n.preload=m);let $=t.from??0,C=t.to,L=0,O=0,h=false,F=-1,W=0,se=0,K=false,V=false,R=()=>l==="x"?window.scrollX:window.scrollY,T=()=>l==="x"?window.innerWidth:window.innerHeight;function X(){let M=G.getBoundingClientRect(),x=l==="x"?M.left:M.top,re=l==="x"?M.width:M.height,Oe=Le({top:x,height:re},R(),T(),z,Z);L=Oe.tStart,O=Oe.tEnd,V&&O===L&&k("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n);}let E=NaN;function A(M){if(!V)return;let x=C??n.duration??0,re=$+(x-$)*M;re!==E&&(E=re,n.currentTime=re),n.style.setProperty("--scroll-draw-progress",String(M)),S?.(M);}let he=()=>Y(R(),L,O,1);function D(){if(!V||Q)return;let M=he(),x=i?Math.max(F,v(W=Math.max(W,M))):v(M);se=x,A(x),x>=1&&!K?(K=true,P?.()):x<1&&!i&&(K=false);}let q=De(window,[G],he,D,X),ue=()=>q.hold(h||!V||Q);ue();function Ee(){if(V=true,C===void 0&&(C=n.duration),Q){A(1),w?.();return}X(),w?.(),h?A(se):ue();}n.readyState>=1?Ee():n.addEventListener("loadedmetadata",Ee,{once:true}),V||X();let fe=Q?()=>{}:Xe(M=>{M&&(fe(),Q=true,q.hold(true),A(1));});$e(n,{type:"video",getProgress:()=>se,getTrigger:()=>({tStart:L,tEnd:O})});function ie(){h&&(h=false,ue());}return {destroy(){q.off(),n.removeEventListener("loadedmetadata",Ee),fe(),ke(n);},replay(){F=-1,W=0,K=false,se=0,E=NaN,A(0),ie();},pause(){h=true,q.hold(true);},resume:ie,seek(M){let x=Math.min(1,Math.max(0,M));se=x,F=x,W=0,h=true,q.hold(true),E=NaN,A(x);},getProgress(){return se}}}var Ur=1e4;function fr(e){let{frames:t,count:r}=e;if(typeof t!="function")return st(e);let n=Number.isFinite(r)?Math.min(Math.max(Math.floor(r),0),Ur):0,o;try{o=Array.from({length:n},(s,i)=>t(i));}catch{o=["throws"];}return st({...e,frames:o})}function Ct(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")||k(`${t}: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.`,e);}var gt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Yr(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 gt;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="canvas")return k("scrollFrames: <canvas> element not found:",e),gt;let n=r,{frames:o,trigger:s={},easing:i="linear",once:l=false,axis:m="y",fit:g="cover",triggerElement:w,onReady:P,onLoad:S,onComplete:G,onProgress:Q}=t||{},v=Array.isArray(o)?o:null,z=t?.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),gt;let $=t.concurrency??6;(!Number.isFinite($)||$<1)&&(k("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",t.concurrency),$=6),$=Math.floor($);let C=n.getContext("2d");if(!C)return k("scrollFrames: the canvas has no 2D context.",n),gt;let L=Z-1,O=w??n,h=window.matchMedia("(prefers-reduced-motion: reduce)").matches,F=Re(i),W=u=>{let p=F(u);return p===p?p:0},se=ae(s.start||"top top"),K=ae(s.end||"bottom top"),V=0,R=0,T=false,X=-1,E=0,A=0,he=false,D=false,q=false,ue=false,Ee=0,fe=-1,ie=new Array(Z),M=new Uint8Array(Z),x=new Set,re=h?[L]:Yr(Z),Oe=0,J=0,Fe=false,Se=(u,...p)=>{if(u)try{u(...p);}catch(b){typeof reportError=="function"?reportError(b):setTimeout(()=>{throw b});}},ye=false,Ve=u=>{let p;try{p=v?v[u]:o(u);}catch(b){p=b;}return typeof p=="string"&&p?p:(ye||(ye=true,k(`scrollFrames: no URL for frame ${u}; it is skipped for its nearest neighbour.`,p)),null)},Ie=()=>m==="x"?window.scrollX:window.scrollY,Te=()=>m==="x"?window.innerWidth:window.innerHeight;function Ae(){!Fe&&J===re.length&&(Fe=true,Se(S));}function c(){for(;!D&&x.size<$&&Oe<re.length;){let u=re[Oe++];M[u]||d(u);}}function d(u){M[u]=1;let p=Ve(u);if(p===null){J++,queueMicrotask(()=>{D||Ae();});return}let b=new Image,le=false,we=_e=>{le||D||(le=true,b.onload=b.onerror=null,x.delete(b),_e?ie[u]=b:k("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",p),J++,c(),_(),Ae());};x.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 I(){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 _e=n.clientWidth,Ce=n.clientHeight;if(_e!==u||Ce!==p){let ze=n.style;_e!==u&&Ce!==p?(ze.width=`${u}px`,ze.height=`${p}px`):ze.aspectRatio=`${u} / ${p}`;}}function _(){let u=ne(Ee);if(u<0||u===fe)return;let p=ie[u],b=n.width,le=n.height,we=p.naturalWidth||b,_e=p.naturalHeight||le,Ce=(g==="contain"?Math.min:Math.max)(b/we,le/_e),ze=we*Ce,We=_e*Ce;C.clearRect(0,0,b,le),C.drawImage(p,(b-ze)/2,(le-We)/2,ze,We),fe=u,q||(q=true,Se(P));}function B(u){Ee=Math.min(L,Math.max(0,Math.round(u*L))),n.style.setProperty("--scroll-draw-progress",String(u)),_(),Se(Q,u,Ee);}function j(){let u=O.getBoundingClientRect(),p=m==="x"?u.left:u.top,b=m==="x"?u.width:u.height,le=Le({top:p,height:b},Ie(),Te(),se,K);V=le.tStart,R=le.tEnd,R===V&&b>0&&!h&&!ue&&(ue=true,k("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n));}let Ne=()=>Y(Ie(),V,R,1);function oe(){if(h)return;let u=Ne(),p=l?Math.max(X,W(E=Math.max(E,u))):W(u);A=p,B(p),p>=1&&!he?(he=true,Se(G)):p<1&&!l&&(he=false);}function He(){A=1,B(1);}I(),h||j();let be=De(window,[O],Ne,oe,()=>{I(),h||j(),_();}),Ue=()=>be.hold(T||h);Ue(),h&&He(),c();let qe=typeof ResizeObserver=="function"?new ResizeObserver(()=>{I(),_();}):null;qe?.observe(n);let je=h?()=>{}:Xe(u=>{u&&(je(),h=true,be.hold(true),re=re.slice(0,Oe),M[L]||re.push(L),Ae(),He(),c());});$e(n,{type:"frames",getProgress:()=>A,getTrigger:()=>({tStart:V,tEnd:R})});function me(){D||!T||(T=false,Ue());}return {destroy(){if(!D){D=true,be.off(),qe?.disconnect(),je();for(let u of x)u.onload=u.onerror=null,u.src="";x.clear(),ke(n);}},replay(){D||(X=-1,E=0,he=false,A=0,B(0),me());},pause(){D||(T=true,be.hold(true));},resume:me,seek(u){if(D)return;let p=Math.min(1,Math.max(0,u===u?u:0));A=p,X=p,E=0,T=true,be.hold(true),B(p);},getProgress(){return A}}}function Pt(e,{triggerElement:t,...r},n){let o=t;return typeof t=="string"&&typeof document<"u"&&(o=document.querySelector(t),o||k(`scrollFrames: triggerElement "${t}" matches nothing; measuring the canvas.`)),mr(e,{...r,frames:n.frames,triggerElement:o??void 0})}function pr(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 ht(e=""){let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=e,t}function gr(e){let t=e.textContent??"";return e.textContent="",t.split(/(\s+)/).filter(Boolean).map(r=>{let n=e.appendChild(ht(r)),o=/^\s+$/.test(r);return o?n.style.whiteSpace="pre":n.style.display="inline-block",o?null:n}).filter(r=>r!==null)}function Qr(e){let t=e.textContent??"";e.textContent="";let r=[],n=null;for(let o of t){let s=ht(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(ht()),n.style.cssText="display:inline-block;white-space:nowrap"),(n??e).appendChild(s);}return r}function dr(e){let t=gr(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),l=ht();l.style.display="inline-block",i.forEach((m,g)=>{let w=m.nextElementSibling;l.appendChild(m),g<i.length-1&&w&&w.style.whiteSpace==="pre"&&l.appendChild(w);}),n.push(l);}return e.textContent="",n.forEach((s,i)=>{e.appendChild(s),i<n.length-1&&e.appendChild(document.createTextNode(" "));}),n}function Kr(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:rt((e-s)/(i-s),0,1)}function Xr(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 kt(e,t={}){if(typeof window>"u")return $t;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return k("scrollText: element not found:",e),$t;let n=r;return Be(t,(o,s)=>Jr(n,o,s))}function Jr(e,t,r){let{split:n="words",stagger:o=.04,easing:s="ease-out",from:i={opacity:0,y:24},trigger:l={},once:m=true,onComplete:g}=t,w=Re(s,"ease-out"),P=ae(l.start||"top 85%"),S=ae(l.end||"top 40%"),G=e.innerHTML,Q=e.textContent??"",v;n==="chars"?v=Qr(e):n==="lines"?v=dr(e):v=gr(e),pr(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 E=Xr(X,i);E&&(T.style.transform=E);}function $(T){e.style.setProperty("--scroll-draw-progress",String(T)),v.forEach((X,E)=>{let A=w(Kr(T,E,z,o));Z(X,A);});}if(r)return $(1),g?.(),{...$t,destroy:()=>{e.innerHTML=G;},getProgress:()=>1};$(0);let C=0,L=0,O=-1,h=0,F=false;function W(){({tStart:C,tEnd:L}=Le(e.getBoundingClientRect(),window.scrollY,window.innerHeight,P,S));}let se=()=>Y(window.scrollY,C,L,1);function K(){let T=m?O=Math.max(O,se()):se();h=T,$(T),T>=1&&!F?(F=true,g?.()):T<1&&!m&&(F=false);}W();let V=De(window,[e],se,K,()=>{n==="lines"&&(e.innerHTML=G,v=dr(e),pr(e,Q),$(h)),W();});$e(e,{type:"text",getProgress:()=>h,getTrigger:()=>({tStart:C,tEnd:L})});let R=()=>V.hold(false);return {destroy(){V.off(),e.innerHTML=G,ke(e);},replay(){O=-1,F=false,h=0,$(0),R();},pause:()=>V.hold(true),resume:R,seek(T){V.hold(true),$(h=O=rt(T,0,1));},getProgress(){return h}}}function Je(e,t,r,n=st){let o=t,s=n(t),i=r(e,Tt(t,()=>o),t);return {update(l){o=l;let m=n(l);m!==s&&(s=m,i.destroy(),i=r(e,Tt(l,()=>o),l));},destroy(){i.destroy();}}}function Io(e,t={}){return Je(e,t,St)}function Ho(e={}){let t=null;function r(n){return t=St(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function Ro(e,t){return Je(e,t,Mt)}function Do(e){let t=null;function r(n){return t=Mt(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function No(e,t){return Je(e,t,Lt)}function Vo(e){let t=null;function r(n){return t=Lt(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function _o(e,t={}){return Je(e,t,At)}function zo(e={}){let t=null;function r(n){return t=At(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function Wo(e,t){return Ct(e,"scrollFramesAction"),Je(e,t,Pt,fr)}function Go(e){let t=null;function r(n){return Ct(n,"createScrollFrames"),t=Pt(n,e,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function Bo(e,t={}){return Je(e,t,kt)}function qo(e={}){let t=null;function r(n){return t=kt(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}exports.createScrollAnimate=Do;exports.createScrollCounter=Vo;exports.createScrollDraw=Ho;exports.createScrollFrames=Go;exports.createScrollText=qo;exports.createScrollVideo=zo;exports.scrollAnimate=Ro;exports.scrollCounterAction=No;exports.scrollDraw=Io;exports.scrollFramesAction=Wo;exports.scrollTextAction=Bo;exports.scrollVideoAction=_o;
|
|
3
|
+
<div style="position:absolute;${m?`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(n),window.addEventListener("scroll",o,{passive:true}),o(),{el:n,destroy(){window.removeEventListener("scroll",o),n.remove();}}}var rr=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,nr=/[MmLlHhVvCcSsQqTtAaZz]/g;function Rr(e,t,r){if(!Qe)return;let n=(e.match(nr)??[]).join("").toUpperCase(),o=(t.match(nr)??[]).join("").toUpperCase(),s=(e.match(rr)??[]).length,i=(t.match(rr)??[]).length;if(n!==o){P(`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&&P(`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 Dr(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),l=n[o++]??i;return String(+(i+(l-i)*r).toFixed(4))})}function St(e,t={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:Be(t,(r,n)=>Nr(e,r,n))}function Nr(e,t,r){let{preset:n,...o}=t,s=n?{...Yt[n],...o}:o,{selector:i="path, polyline, line, polygon, rect, circle",speed:l=1,fade:m=false,easing:g="linear",trigger:w={},stagger:$=0,direction:x="forward",once:k=false,debug:z=false,axis:T="y",scrollContainer:q,autoReverse:G=false,delay:M=0,strokeColor:A,strokeWidth:C,fillOpacity:W,waypoints:b,velocityScale:O=false,threshold:D=0,rootMargin:Z="0px",repeat:se=0,repeatDelay:F=0,morphTo:I,clip:h,autoplay:L=false,duration:ee=1e3,native:te=true,onProgress:he,onStart:N,onComplete:j,onEnter:ue,onLeave:Ee,onEnterBack:fe,onLeaveBack:ie}=s,E=h===true?"left":typeof h=="string"?h:false,S=Re(g),re=ae(w.start||"top bottom"),Oe=ae(w.end||"bottom top"),K=typeof q=="string"?document.querySelector(q):q??null,Fe=Array.isArray(A)?A[0]:null,Se=Array.isArray(A)?A[1]:typeof A=="string"?A:null,ye=Array.isArray(C)?C[0]:null,Ve=Array.isArray(C)?C[1]:typeof C=="number"?C:null,Ie=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(E){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 c=E?[]:Array.from(e.querySelectorAll(i)),d=[],ne=[],H=0,_=0,B=$,U=0,Ne=0,oe=false,He=false,be=0,Ue=-1,qe=[],je=-1,me=false,u=0,p=0,v,le=false,we=null;function _e(){we?.destroy(),we=null;}let Ae=new Set,ze=NaN,We=true,it=-1,Ot=performance.now(),Ye=NaN;function at(){return K?T==="x"?K.scrollLeft:K.scrollTop:T==="x"?window.scrollX:window.scrollY}function Ft(){return K?T==="x"?K.clientWidth:K.clientHeight:T==="x"?window.innerWidth:window.innerHeight}function It(){let a=lt(e,K,T);return Le(a,a.scroll,Ft(),re,Oe)}function hr(){let a=_-H,f=c.length-1,y=K??document.documentElement,V=T==="x"?"Width":"Height";if(B=$,$>0&&f>0&&a>0){let pe=y[`scroll${V}`]-y[`client${V}`]-1-H-a/l;pe>=0&&(B=Math.min($,pe/(f*a)));}let ce=Math.max(0,f)*B*a,xe=a/Math.min(l,1);U=H+Math.min(0,ce,xe,ce+xe),Ne=H+Math.max(0,ce,xe,ce+xe);}function Ht(){(({tStart:H,tEnd:_}=It())),hr(),z&&Qe&&(_e(),we=Hr(H,_,T));}function yt(a,f=It){$e(e,{type:"draw",getProgress:()=>a.getProgress(),getTrigger:f});let y=a.destroy;return a.destroy=()=>{y.call(a),ke(e);},a}function Rt(a,f){return k&&!G?Math.max(Ue,S(qe[a]=Math.max(qe[a]??0,f))):S(f)}function yr(a,f){if(e.style.setProperty("--scroll-draw-progress",String(a)),E){let y=f==="reverse"?1-a:a;e.style.clipPath=Ce(y);return}c.forEach((y,V)=>bt(y,V,a,f));}function bt(a,f,y,V){a.style.strokeDashoffset=V==="reverse"?`${d[f]*y}`:`${d[f]*(1-y)}`,m&&(a.style.opacity=V==="reverse"?`${1-y}`:`${y}`),Fe&&Se?a.style.stroke=ft(Fe,Se,y):Se&&(a.style.stroke=Se),ye!==null&&Ve!==null?a.style.strokeWidth=`${ye+(Ve-ye)*y}`:Ve!==null&&(a.style.strokeWidth=`${Ve}`),Ie!==null&&Te!==null?a.style.fillOpacity=`${Ie+(Te-Ie)*y}`:Te!==null&&(a.style.fillOpacity=`${Te}`),I&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",Dr(ne[f],I,y));}function wt(){if(e.style.setProperty("--scroll-draw-progress","0"),E){e.style.clipPath=Ce(x==="reverse"?1:0);return}c.forEach((a,f)=>{a.style.strokeDasharray=ut(d[f]),a.style.strokeDashoffset=x==="reverse"?"0":`${d[f]}`,m?a.style.opacity=x==="reverse"?"1":"0":a.style.opacity="",Fe&&(a.style.stroke=Fe),ye!==null&&(a.style.strokeWidth=`${ye}`),Ie!==null&&(a.style.fillOpacity=`${Ie}`),I&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",ne[f]);});}function Ze(a,f){let y=a.getAttribute("d"),V=ct(a);if(I&&ne[f]){a.setAttribute("d",I);let ce=ct(a);a.setAttribute("d",ne[f]),V=Math.max(ct(a),ce),a.setAttribute("d",y);}d[f]=V,a.style.strokeDasharray=ut(V);}if(c.forEach((a,f)=>{Ir(a);let y=a.tagName.toLowerCase()==="path";y?ne.push(a.getAttribute("d")??""):ne.push(""),Ze(a,f);let V=d[f];I&&(y?Rr(ne[ne.length-1],I,a):P(`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"),Se&&(a.style.stroke=Se),Ve!==null&&(a.style.strokeWidth=`${Ve}`),Te!==null&&(a.style.fillOpacity=`${Te}`),I&&a.tagName.toLowerCase()==="path"&&a.setAttribute("d",I)):(a.style.strokeDashoffset=x==="reverse"?"0":`${V}`,m?a.style.opacity=x==="reverse"?"1":"0":a.style.opacity="",Fe&&(a.style.stroke=Fe),ye!==null&&(a.style.strokeWidth=`${ye}`),Ie!==null&&(a.style.fillOpacity=`${Ie}`));}),r)return E&&(e.style.clipPath=Ce(1)),j?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};E&&(e.style.clipPath=Ce(x==="reverse"?1:0));let Dt=typeof g=="string"?mt(g):null;function br(){return !(te===false||L||z&&Qe||!Fr()||!c.length||!Dt||E||T!=="y"||K||l!==1||$!==0||k||G||O!==false||I||b||se||M>0||he||N||j||ue||Ee||fe||ie||A!=null||C!=null||W!=null||(w.start||"top bottom").trim()!=="top bottom"||(w.end||"bottom top").trim()!=="bottom top")}function wr(){let a=++Or,f=`svg-scroll-draw-${a}`,y=`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}}}.${y}{view-timeline-name:${V};view-timeline-axis:block;}.${f}{animation-name:${f};animation-duration:auto;animation-timing-function:${Dt};animation-fill-mode:both;animation-timeline:${V};animation-range:cover 0% cover 100%;}`,document.head.appendChild(J),e.classList.add(y);function ve(R,Y){R.style.setProperty("--ssd-len",String(d[Y])),R.style.strokeDasharray=ut(d[Y]),R.style.strokeDashoffset="",R.style.opacity="",R.style.animationPlayState="",R.classList.add(f);}c.forEach(ve);let de=false,Me=-1;function Pe(){if(Me>=0)return Me;let R=e.getBoundingClientRect(),{tStart:Y,tEnd:ge}=Le({top:R.top,height:R.height},at(),Ft(),re,Oe);return S(Q(at(),Y,ge,l))}return {destroy(){e.classList.remove(y),c.forEach(R=>{R.classList.remove(f),R.style.removeProperty("--ssd-len"),R.style.animationPlayState="";}),J.remove();},replay(){de=false,Me=-1,c.forEach(ve);},pause(){de=true,c.forEach(R=>{R.style.animationPlayState="paused";});},resume(){de&&(de=false,c.forEach(R=>{R.style.animationPlayState="running";}));},seek(R){let Y=Math.min(1,Math.max(0,R));Me=Y,de=true,c.forEach((ge,Ge)=>{ge.classList.remove(f),ge.style.strokeDashoffset=x==="reverse"?`${d[Ge]*Y}`:`${d[Ge]*(1-Y)}`,m&&(ge.style.opacity=x==="reverse"?`${1-Y}`:`${Y}`);});},getProgress(){return Pe()},refresh(){c.forEach((R,Y)=>{Ze(R,Y),R.style.setProperty("--ssd-len",String(d[Y]));});}}}if(br())return yt(wr());function vr(){let a=Math.max(1,ee),f=E?a:a*(1+Math.max(0,c.length-1)*$),y=0,V=0,ce=false;function xe(Me){let Pe=true,R=Math.min(1,Math.max(0,Me/f));if(E){let Y=Math.min(1,Math.max(0,Me/a)),ge=S(Y);u=ge,e.style.setProperty("--scroll-draw-progress",String(ge)),e.style.clipPath=Ce(x==="reverse"?1-ge:ge),he?.(ge),Y<1&&(Pe=false);}else {c.forEach((ge,Ge)=>{let Sr=Ge*$*a,Wt=Math.min(1,Math.max(0,(Me-Sr)/a));bt(ge,Ge,S(Wt),x),Wt<1&&(Pe=false);});let Y=S(R);u=Y,he?.(Y),e.style.setProperty("--scroll-draw-progress",String(Y));}if(b){let Y=S(R);for(let ge in b){let Ge=parseFloat(ge);Y>=Ge&&!Ae.has(Ge)&&(Ae.add(Ge),b[ge]?.());}}return Pe}function pe(Me){if(me)return;let Pe=Me-y;He||(He=true,N?.());let R=xe(Pe);if(R&&!oe){oe=true,xe(f),j?.(),p<(se==="infinite"?1/0:se??0)&&(p++,v=setTimeout(()=>{y=performance.now(),He=false,oe=false,Ae.clear(),wt(),be=requestAnimationFrame(pe);},F));return}R||(be=requestAnimationFrame(pe));}function X(){cancelAnimationFrame(be),clearTimeout(v),y=performance.now(),V=0,me=false,He=false,oe=false,p=0,ce=true,u=0,Ae.clear(),wt(),be=requestAnimationFrame(pe);}let J=new IntersectionObserver(Me=>{Me.forEach(Pe=>{Pe.isIntersecting&&!(k&&oe)?X():!Pe.isIntersecting&&!k&&!oe&&(cancelAnimationFrame(be),clearTimeout(v),ce=false);});},{root:K??null,threshold:D,rootMargin:Z}),ve;function de(){clearTimeout(ve),ve=setTimeout(()=>c.forEach(Ze),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()-y,cancelAnimationFrame(be));},resume(){me&&(me=false,ce=true,y=performance.now()-V,be=requestAnimationFrame(pe));},seek(Me){let Pe=Math.min(1,Math.max(0,Me));u=Pe,me=true,V=Pe*f,y=performance.now()-V,cancelAnimationFrame(be),xe(V);},getProgress(){return u},refresh(){clearTimeout(ve),c.forEach(Ze);}}}if(L)return yt(vr());Ht();let Nt=()=>Q(at(),U,Ne,1);function Vt(){oe=true,j?.(),p<(se==="infinite"?1/0:se)&&(p++,v=setTimeout(()=>{le=true;},F));}function _t(){Ue=-1,qe=[],He=false,oe=false,le=false,Ae.clear(),wt(),We=true;}function Er(){let a=performance.now(),f=at();if(le&&Nt()%1&&_t(),!We&&O===false&&f===ze)return;We=false,ze=f;let y=l;if(O!==false){let X=a-Ot,J=X>0?Math.abs(f-(it<0?f:it))/X:0;y=l*Math.max(.2,1+J*(typeof O=="number"?O:1)*.04);}it=f,Ot=a;let V=G?je===-1||f>=je?"forward":"reverse":x;je=f;let ce=_-H,xe=true,pe=ce===0?0:(f-H)/ce;if(isNaN(Ye)||(Ye<=0&&pe>0&&ue?.(),Ye<1&&pe>=1&&Ee?.(),Ye>=1&&pe<1&&fe?.(),Ye>0&&pe<=0&&ie?.()),Ye=pe,E){let X=Rt(0,Q(f,H,_,y));u=X,e.style.setProperty("--scroll-draw-progress",String(X));let J=V==="reverse"?1-X:X;e.style.clipPath=Ce(J),he?.(X),!He&&Q(f,H,_,y)>0&&(He=true,N?.()),X>=1&&!oe?Vt():X<1&&!k&&(oe=false);return}if(c.forEach((X,J)=>{let ve=J*B*ce,de=Rt(J,Q(f,H+ve,_+ve,y));bt(X,J,de,V),J===0&&(u=de,he?.(de),e.style.setProperty("--scroll-draw-progress",String(de))),de<1&&(xe=false);}),b){let X=S(Q(f,H,_,y));for(let J in b){let ve=parseFloat(J);X>=ve&&!Ae.has(ve)&&(Ae.add(ve),b[J]?.());}}!He&&Q(f,H,_,y)>0&&(He=true,N?.()),xe&&!oe?Vt():!xe&&!k&&(oe=false);}let et=De(K??window,[e],Nt,Er,()=>{let a=d.join();c.forEach(Ze),Ht(),We=true,d.join()!==a&&tt();}),vt=M>0;function tt(){et.hold(me||vt);}let zt;return vt&&(zt=setTimeout(()=>{vt=false,tt();},M)),tt(),yt({destroy(){clearTimeout(v),clearTimeout(zt),et.off(),_e();},replay(){_t(),je=-1,it=-1,p=0,me=false,u=0,clearTimeout(v),tt();},pause(){me=true,et.hold(true);},resume(){me&&(me=false,We=true,tt());},seek(a){let f=Math.min(1,Math.max(0,a));u=f,Ue=f,qe=[],me=true,et.hold(true),yr(f,x),We=true;},getProgress(){return u},refresh:et.remeasure},()=>({tStart:H,tEnd:_}))}var or=new WeakMap,Vr=0;function st(e){return JSON.stringify(e,(t,r)=>{if(typeof r=="function")return "\u0192";if(typeof Element<"u"&&r instanceof Element){let n=or.get(r);return n===void 0&&or.set(r,n=++Vr),`el#${n}`}return r})}function Tt(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 _r(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function sr(e){let t=[],r=/([\w]+)\(([^)]*)\)/g,n;for(;(n=r.exec(e))!==null;){let o=[],s=[],i=n[2].trim();if(i)for(let l of i.split(/[\s,]+/)){let m=l.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 zr(e,t,r){let n=sr(e),o=sr(t);return n.length===0||n.length!==o.length?r<1?e:t:n.map((s,i)=>{let l=o[i];return s.fn!==l.fn||s.nums.length!==l.nums.length?r<1?`${s.fn}(${s.nums.map((m,g)=>`${m}${s.units[g]}`).join(", ")})`:`${l.fn}(${l.nums.map((m,g)=>`${m}${l.units[g]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,g)=>`${m+(l.nums[g]-m)*r}${s.units[g]}`).join(", ")})`}).join(" ")}function ir(e,t,r){if(typeof e=="number"&&typeof t=="number")return String(e+(t-e)*r);let n=String(e),o=String(t);if(_r(n))return ft(n,o,r);if(n.includes("("))return zr(n,o,r);let s=n.match(/^([-+]?[\d.]+)(.*)$/),i=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&i){let l=parseFloat(s[1]),m=parseFloat(i[1]);return `${l+(m-l)*r}${s[2]||i[2]}`}return r<1?n:o}function Wr(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}var Gr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),Br=0,ar="--scroll-draw-progress";function qr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var cr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function xt(e,t){return typeof window>"u"?cr:t.respectReducedMotion===false?lr(e,t,false):Be(t,(r,n)=>lr(e,r,n))}function lr(e,t,r){let{props:n,trigger:o={},easing:s="ease-out",speed:i=1,once:l=false,axis:m="y",scrollContainer:g,native:w=true,velocityScale:$=false,triggerElement:x,onProgress:k,onComplete:z,onEnter:T,onLeave:q,onEnterBack:G,onLeaveBack:M}=t,A=Re(s,"ease-out"),C=ae(o.start||"top bottom"),W=ae(o.end||"bottom top"),b=x??e,O=typeof g=="string"?document.querySelector(g):g??null,D=Object.entries(n).map(([c,d])=>({prop:Wr(c),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function Z(){let c=window.getComputedStyle(e);for(let d of D)d.from===""&&(d.from=c.getPropertyValue(d.prop).trim()||"0");}function se(){for(let c of D)e.style.setProperty(c.prop,String(c.to));}let F=new Map;for(let c of [...D.map(d=>d.prop),ar])F.set(c,e.style.getPropertyValue(c));function I(){for(let[c,d]of F)d?e.style.setProperty(c,d):e.style.removeProperty(c);}if(r)return se(),z?.(),{...cr,destroy:I,getProgress:()=>1};Z();let h=()=>O?m==="x"?O.scrollLeft:O.scrollTop:m==="x"?window.scrollX:window.scrollY,L=()=>O?m==="x"?O.clientWidth:O.clientHeight:m==="x"?window.innerWidth:window.innerHeight,ee=typeof s=="string"?mt(s):null;function te(){if(!w||!qr()||!ee||m!=="y"||O||b!==e||l||i!==1||k||z||T||q||G||M||$!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let c of D)if(!Gr.has(c.prop))return false;return true}function he(){let c=`ssd-a-${++Br}`,d=D.map(U=>`${U.prop}:${U.from}`).join(";"),ne=D.map(U=>`${U.prop}:${U.to}`).join(";"),H=document.createElement("style");H.setAttribute("data-ssd-animate",""),H.textContent=`@keyframes ${c}{from{${d}}to{${ne}}}.${c}{animation-name:${c};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(c);let _=()=>{let U=e.getBoundingClientRect();return Le({top:U.top,height:U.height},h(),L(),C,W)};$e(e,{type:"animate",getProgress:()=>B.getProgress(),getTrigger:_});let B={refresh(){},destroy(){e.classList.remove(c),H.remove(),e.style.animationPlayState="",I(),ke(e);},replay(){e.classList.remove(c),e.offsetWidth,e.classList.add(c);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(U){let Ne=Math.min(1,Math.max(0,U));e.classList.remove(c);for(let oe of D)e.style.setProperty(oe.prop,ir(oe.from,oe.to,Ne));},getProgress(){let{tStart:U,tEnd:Ne}=_();return A(Q(h(),U,Ne,i))}};return B}if(te())return he();let N=0,j=0,ue=false,Ee=-1,fe=0,ie=0,E=false,S=NaN,re=-1,Oe=0,K=b===e?D:[],Fe=false;function Se(){let c=e.style,d=K.map(B=>c.getPropertyValue(B.prop)),ne=c.transition;K.length&&(c.transition="none"),K.forEach(B=>c.setProperty(B.prop,F.get(B.prop)??""));let H=lt(b,O,m);K.forEach((B,U)=>c.setProperty(B.prop,d[U])),K.length&&(e.offsetWidth,c.transition=ne);let _=Le(H,H.scroll,L(),C,W);Fe&&Math.abs(_.tStart-N)<1&&Math.abs(_.tEnd-j)<1||(Fe=true,N=_.tStart,j=_.tEnd);}function ye(c){e.style.setProperty(ar,String(c));for(let d of D)e.style.setProperty(d.prop,ir(d.from,d.to,c));k?.(c);}function Ve(c){if(isNaN(S)){S=c;return}S<=0&&c>0&&T?.(),S<1&&c>=1&&q?.(),S>=1&&c<1&&G?.(),S>0&&c<=0&&M?.(),S=c;}function Ie(){if(ue)return;let c=performance.now(),d=h(),ne=i;if($!==false){let U=c-Oe,Ne=U>0?Math.abs(d-(re<0?d:re))/U:0;ne=i*Math.max(.2,1+Ne*(typeof $=="number"?$:1)*.04);}re=d,Oe=c;let H=j===N?0:(d-N)/(j-N);Ve(H);let _=Q(d,N,j,ne),B=l?Math.max(Ee,A(fe=Math.max(fe,_))):A(_);ie=B,ye(B),B>=1&&!E?(E=true,z?.()):B<1&&!l&&(E=false);}let Te=De(O??window,[b],()=>Q(h(),N,j,Math.min(i,1)),Ie,Se);Se(),j===N&&P("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),fe=Q(h(),N,j,i),ie=A(fe),ye(ie),$e(e,{type:"animate",getProgress:()=>ie,getTrigger:()=>({tStart:N,tEnd:j})});function Ce(){ue=true,Te.hold(true);}return {destroy(){ue=true,Te.off(),I(),ke(e);},replay(){Ee=-1,fe=0,E=false,ie=0,ue=false,ye(0),Te.hold(false);},pause:Ce,resume(){ue&&(ue=false,Te.hold(false));},seek(c){let d=Math.min(1,Math.max(0,c));ie=d,Ee=d,fe=0,Ce(),ye(d);},getProgress(){return ie},refresh:Te.remeasure}}var jr=({decimals:e,format:t})=>e!==void 0?r=>r.toFixed(e):t??(r=>String(Math.round(r)));var Mt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Lt(e,t){if(typeof window>"u")return Mt;let r=typeof e=="string"?document.querySelector(e):e;return r?Be(t,(n,o)=>Ur(r,n,o)):(P("scrollCounter: element not found:",e),Mt)}function Ur(e,t,r){let{from:n=0,to:o,easing:s="ease-out",trigger:i={},once:l=true,onComplete:m}=t,g=jr(t),w=Re(s,"ease-out"),$=ae(i.start||"top 80%"),x=ae(i.end||"top 20%");if(r)return e.textContent=g(o),m?.(),{...Mt,getProgress:()=>1};let k=0,z=0,T=false,q=-1,G=0,M=0,A=false,C=()=>window.scrollY,W=()=>window.innerHeight;function b(){let h=e.getBoundingClientRect(),L=Le({top:h.top,height:h.height},C(),W(),$,x);T&&Math.abs(L.tStart-k)<1&&Math.abs(L.tEnd-z)<1||(T=true,k=L.tStart,z=L.tEnd);}let O=e.style.getPropertyValue("--scroll-draw-progress");function D(h){e.textContent=g(n+(o-n)*h),e.style.setProperty("--scroll-draw-progress",String(h));}let Z=()=>Q(C(),k,z,1);function se(){let h=Z(),L=l?Math.max(q,w(G=Math.max(G,h))):w(h);M=L,D(L),L>=1&&!A?(A=true,m?.()):L<1&&!l&&(A=false);}b();{G=Q(C(),k,z,1);let h=w(G);M=h,D(h);}let F=De(window,[e],Z,se,b);$e(e,{type:"counter",getProgress:()=>M,getTrigger:()=>({tStart:k,tEnd:z})});let I=()=>F.hold(false);return {destroy(){F.off(),e.style.setProperty("--scroll-draw-progress",O),ke(e);},replay(){q=-1,G=0,A=false,M=0,D(0),I();},pause:()=>F.hold(true),resume:I,seek(h){let L=Math.min(1,Math.max(0,h));M=L,q=L,G=0,F.hold(true),D(L);},getProgress(){return M}}}var ur={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,t={}){if(typeof window>"u")return ur;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return P("scrollVideo: <video> element not found:",e),ur;let n=r,{trigger:o={},easing:s="linear",once:i=false,axis:l="y",preload:m="auto",triggerElement:g,onReady:w,onComplete:$,onProgress:x}=t,k=g??n,z=window.matchMedia("(prefers-reduced-motion: reduce)").matches,T=Re(s),q=ae(o.start||"top top"),G=ae(o.end||"bottom top");n.pause(),n.hasAttribute("preload")||(n.preload=m);let M=t.from??0,A=t.to,C=0,W=0,b=false,O=-1,D=0,Z=0,se=false,F=false,I=()=>l==="x"?window.scrollX:window.scrollY,h=()=>l==="x"?window.innerWidth:window.innerHeight;function L(){let E=k.getBoundingClientRect(),S=l==="x"?E.left:E.top,re=l==="x"?E.width:E.height,Oe=Le({top:S,height:re},I(),h(),q,G);C=Oe.tStart,W=Oe.tEnd,F&&W===C&&P("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n);}let ee=NaN;function te(E){if(!F)return;let S=A??n.duration??0,re=M+(S-M)*E;re!==ee&&(ee=re,n.currentTime=re),n.style.setProperty("--scroll-draw-progress",String(E)),x?.(E);}let he=()=>Q(I(),C,W,1);function N(){if(!F||z)return;let E=he(),S=i?Math.max(O,T(D=Math.max(D,E))):T(E);Z=S,te(S),S>=1&&!se?(se=true,$?.()):S<1&&!i&&(se=false);}let j=De(window,[k],he,N,L),ue=()=>j.hold(b||!F||z);ue();function Ee(){if(F=true,A===void 0&&(A=n.duration),z){te(1),w?.();return}L(),w?.(),b?te(Z):ue();}n.readyState>=1?Ee():n.addEventListener("loadedmetadata",Ee,{once:true}),F||L();let fe=z?()=>{}:Xe(E=>{E&&(fe(),z=true,j.hold(true),te(1));});$e(n,{type:"video",getProgress:()=>Z,getTrigger:()=>({tStart:C,tEnd:W})});function ie(){b&&(b=false,ue());}return {destroy(){j.off(),n.removeEventListener("loadedmetadata",Ee),fe(),ke(n);},replay(){O=-1,D=0,se=false,Z=0,ee=NaN,te(0),ie();},pause(){b=true,j.hold(true);},resume:ie,seek(E){let S=Math.min(1,Math.max(0,E));Z=S,O=S,D=0,b=true,j.hold(true),ee=NaN,te(S);},getProgress(){return Z}}}var Yr=1e4;function fr(e){let{frames:t,count:r}=e;if(typeof t!="function")return st(e);let n=Number.isFinite(r)?Math.min(Math.max(Math.floor(r),0),Yr):0,o;try{o=Array.from({length:n},(s,i)=>t(i));}catch{o=["throws"];}return st({...e,frames:o})}function At(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")||P(`${t}: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.`,e);}var gt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Qr(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 gt;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="canvas")return P("scrollFrames: <canvas> element not found:",e),gt;let n=r,{frames:o,trigger:s={},easing:i="linear",once:l=false,axis:m="y",fit:g="cover",triggerElement:w,onReady:$,onLoad:x,onComplete:k,onProgress:z}=t||{},T=Array.isArray(o)?o:null,q=t?.count,G=Math.floor(T?Math.min(q??T.length,T.length):q??NaN);if(!(T||typeof o=="function")||!Number.isFinite(G)||G<1)return P("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",n),gt;let M=t.concurrency??6;(!Number.isFinite(M)||M<1)&&(P("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",t.concurrency),M=6),M=Math.floor(M);let A=n.getContext("2d");if(!A)return P("scrollFrames: the canvas has no 2D context.",n),gt;let C=G-1,W=w??n,b=window.matchMedia("(prefers-reduced-motion: reduce)").matches,O=Re(i),D=u=>{let p=O(u);return p===p?p:0},Z=ae(s.start||"top top"),se=ae(s.end||"bottom top"),F=0,I=0,h=false,L=-1,ee=0,te=0,he=false,N=false,j=false,ue=false,Ee=0,fe=-1,ie=new Array(G),E=new Uint8Array(G),S=new Set,re=b?[C]:Qr(G),Oe=0,K=0,Fe=false,Se=(u,...p)=>{if(u)try{u(...p);}catch(v){typeof reportError=="function"?reportError(v):setTimeout(()=>{throw v});}},ye=false,Ve=u=>{let p;try{p=T?T[u]:o(u);}catch(v){p=v;}return typeof p=="string"&&p?p:(ye||(ye=true,P(`scrollFrames: no URL for frame ${u}; it is skipped for its nearest neighbour.`,p)),null)},Ie=()=>m==="x"?window.scrollX:window.scrollY,Te=()=>m==="x"?window.innerWidth:window.innerHeight;function Ce(){!Fe&&K===re.length&&(Fe=true,Se(x));}function c(){for(;!N&&S.size<M&&Oe<re.length;){let u=re[Oe++];E[u]||d(u);}}function d(u){E[u]=1;let p=Ve(u);if(p===null){K++,queueMicrotask(()=>{N||Ce();});return}let v=new Image,le=false,we=_e=>{le||N||(le=true,v.onload=v.onerror=null,S.delete(v),_e?ie[u]=v:P("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",p),K++,c(),_(),Ce());};S.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 _e=n.clientWidth,Ae=n.clientHeight;if(_e!==u||Ae!==p){let ze=n.style;_e!==u&&Ae!==p?(ze.width=`${u}px`,ze.height=`${p}px`):ze.aspectRatio=`${u} / ${p}`;}}function _(){let u=ne(Ee);if(u<0||u===fe)return;let p=ie[u],v=n.width,le=n.height,we=p.naturalWidth||v,_e=p.naturalHeight||le,Ae=(g==="contain"?Math.min:Math.max)(v/we,le/_e),ze=we*Ae,We=_e*Ae;A.clearRect(0,0,v,le),A.drawImage(p,(v-ze)/2,(le-We)/2,ze,We),fe=u,j||(j=true,Se($));}function B(u){Ee=Math.min(C,Math.max(0,Math.round(u*C))),n.style.setProperty("--scroll-draw-progress",String(u)),_(),Se(z,u,Ee);}function U(){let u=W.getBoundingClientRect(),p=m==="x"?u.left:u.top,v=m==="x"?u.width:u.height,le=Le({top:p,height:v},Ie(),Te(),Z,se);F=le.tStart,I=le.tEnd,I===F&&v>0&&!b&&!ue&&(ue=true,P("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n));}let Ne=()=>Q(Ie(),F,I,1);function oe(){if(b)return;let u=Ne(),p=l?Math.max(L,D(ee=Math.max(ee,u))):D(u);te=p,B(p),p>=1&&!he?(he=true,Se(k)):p<1&&!l&&(he=false);}function He(){te=1,B(1);}H(),b||U();let be=De(window,[W],Ne,oe,()=>{H(),b||U(),_();}),Ue=()=>be.hold(h||b);Ue(),b&&He(),c();let qe=typeof ResizeObserver=="function"?new ResizeObserver(()=>{H(),_();}):null;qe?.observe(n);let je=b?()=>{}:Xe(u=>{u&&(je(),b=true,be.hold(true),re=re.slice(0,Oe),E[C]||re.push(C),Ce(),He(),c());});$e(n,{type:"frames",getProgress:()=>te,getTrigger:()=>({tStart:F,tEnd:I})});function me(){N||!h||(h=false,Ue());}return {destroy(){if(!N){N=true,be.off(),qe?.disconnect(),je();for(let u of S)u.onload=u.onerror=null,u.src="";S.clear(),ke(n);}},replay(){N||(L=-1,ee=0,he=false,te=0,B(0),me());},pause(){N||(h=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,h=true,be.hold(true),B(p);},getProgress(){return te}}}function Pt(e,{triggerElement:t,...r},n){let o=t;return typeof t=="string"&&typeof document<"u"&&(o=document.querySelector(t),o||P(`scrollFrames: triggerElement "${t}" matches nothing; measuring the canvas.`)),mr(e,{...r,frames:n.frames,triggerElement:o??void 0})}function pr(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 ht(e=""){let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=e,t}function gr(e){let t=e.textContent??"";return e.textContent="",t.split(/(\s+)/).filter(Boolean).map(r=>{let n=e.appendChild(ht(r)),o=/^\s+$/.test(r);return o?n.style.whiteSpace="pre":n.style.display="inline-block",o?null:n}).filter(r=>r!==null)}function Kr(e){let t=e.textContent??"";e.textContent="";let r=[],n=null;for(let o of t){let s=ht(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(ht()),n.style.cssText="display:inline-block;white-space:nowrap"),(n??e).appendChild(s);}return r}function dr(e){let t=gr(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),l=ht();l.style.display="inline-block",i.forEach((m,g)=>{let w=m.nextElementSibling;l.appendChild(m),g<i.length-1&&w&&w.style.whiteSpace==="pre"&&l.appendChild(w);}),n.push(l);}return e.textContent="",n.forEach((s,i)=>{e.appendChild(s),i<n.length-1&&e.appendChild(document.createTextNode(" "));}),n}function Xr(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:rt((e-s)/(i-s),0,1)}function Jr(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 kt(e,t={}){if(typeof window>"u")return $t;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return P("scrollText: element not found:",e),$t;let n=r;return Be(t,(o,s)=>Zr(n,o,s))}function Zr(e,t,r){let{split:n="words",stagger:o=.04,easing:s="ease-out",from:i={opacity:0,y:24},trigger:l={},once:m=true,onComplete:g}=t,w=Re(s,"ease-out"),$=ae(l.start||"top 85%"),x=ae(l.end||"top 40%"),k=e.innerHTML,z=e.textContent??"",T;n==="chars"?T=Kr(e):n==="lines"?T=dr(e):T=gr(e),pr(e,z);let q=T.length;function G(h,L){i?.opacity!==void 0&&(h.style.opacity=String(i.opacity+(1-i.opacity)*L));let ee=Jr(L,i);ee&&(h.style.transform=ee);}function M(h){e.style.setProperty("--scroll-draw-progress",String(h)),T.forEach((L,ee)=>{let te=w(Xr(h,ee,q,o));G(L,te);});}if(r)return M(1),g?.(),{...$t,destroy:()=>{e.innerHTML=k;},getProgress:()=>1};M(0);let A=0,C=0,W=-1,b=0,O=false;function D(){({tStart:A,tEnd:C}=Le(e.getBoundingClientRect(),window.scrollY,window.innerHeight,$,x));}let Z=()=>Q(window.scrollY,A,C,1);function se(){let h=m?W=Math.max(W,Z()):Z();b=h,M(h),h>=1&&!O?(O=true,g?.()):h<1&&!m&&(O=false);}D();let F=De(window,[e],Z,se,()=>{n==="lines"&&(e.innerHTML=k,T=dr(e),pr(e,z),M(b)),D();});$e(e,{type:"text",getProgress:()=>b,getTrigger:()=>({tStart:A,tEnd:C})});let I=()=>F.hold(false);return {destroy(){F.off(),e.innerHTML=k,ke(e);},replay(){W=-1,O=false,b=0,M(0),I();},pause:()=>F.hold(true),resume:I,seek(h){F.hold(true),M(b=W=rt(h,0,1));},getProgress(){return b}}}function Je(e,t,r,n=st){let o=t,s=n(t),i=r(e,Tt(t,()=>o),t);return {update(l){o=l;let m=n(l);m!==s&&(s=m,i.destroy(),i=r(e,Tt(l,()=>o),l));},destroy(){i.destroy();}}}function Ho(e,t={}){return Je(e,t,St)}function Ro(e={}){let t=null;function r(n){return t=St(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function Do(e,t){return Je(e,t,xt)}function No(e){let t=null;function r(n){return t=xt(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function Vo(e,t){return Je(e,t,Lt)}function _o(e){let t=null;function r(n){return t=Lt(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function zo(e,t={}){return Je(e,t,Ct)}function Wo(e={}){let t=null;function r(n){return t=Ct(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function Go(e,t){return At(e,"scrollFramesAction"),Je(e,t,Pt,fr)}function Bo(e){let t=null;function r(n){return At(n,"createScrollFrames"),t=Pt(n,e,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function qo(e,t={}){return Je(e,t,kt)}function jo(e={}){let t=null;function r(n){return t=kt(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}exports.createScrollAnimate=No;exports.createScrollCounter=_o;exports.createScrollDraw=Ro;exports.createScrollFrames=Bo;exports.createScrollText=jo;exports.createScrollVideo=Wo;exports.scrollAnimate=Do;exports.scrollCounterAction=Vo;exports.scrollDraw=Ho;exports.scrollFramesAction=Go;exports.scrollTextAction=qo;exports.scrollVideoAction=zo;
|
package/dist/svelte/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$
|
|
1
|
+
import {a as a$2}from'../chunk-NJV6S5LD.mjs';import {a,d,b as b$3,c}from'../chunk-KN2YB54Z.mjs';import {a as a$4}from'../chunk-HJTHOZK5.mjs';import'../chunk-GBFWTY5L.mjs';import {a as a$3}from'../chunk-UF3MO5XQ.mjs';import {b as b$1}from'../chunk-OGFXZCKC.mjs';import {a as a$1}from'../chunk-HAGTU5EX.mjs';import {b as b$2}from'../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 o(e,t,r,n=a){let c=t,O=n(t),i=r(e,b$3(t,()=>c),t);return {update(l){c=l;let d=n(l);d!==O&&(O=d,i.destroy(),i=r(e,b$3(l,()=>c),l));},destroy(){i.destroy();}}}function F(e,t={}){return o(e,t,b$2)}function g(e={}){let t=null;function r(n){return t=b$2(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function C(e,t){return o(e,t,a$1)}function V(e){let t=null;function r(n){return t=a$1(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function v(e,t){return o(e,t,b$1)}function K(e){let t=null;function r(n){return t=b$1(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function b(e,t={}){return o(e,t,a$4)}function h(e={}){let t=null;function r(n){return t=a$4(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function j(e,t){return d(e,"scrollFramesAction"),o(e,t,a$2,c)}function k(e){let t=null;function r(n){return d(n,"createScrollFrames"),t=a$2(n,e,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}function q(e,t={}){return o(e,t,a$3)}function z(e={}){let t=null;function r(n){return t=a$3(n,e),{destroy(){t?.destroy(),t=null;}}}return {action:r,getInstance:()=>t}}export{V as createScrollAnimate,K as createScrollCounter,g as createScrollDraw,k as createScrollFrames,z as createScrollText,h as createScrollVideo,C as scrollAnimate,v as scrollCounterAction,F as scrollDraw,j as scrollFramesAction,q as scrollTextAction,b as scrollVideoAction};
|