svg-scroll-draw 2.19.0 → 2.20.0

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.
Files changed (74) hide show
  1. package/README.md +6 -6
  2. package/dist/angular/index.cjs +2 -2
  3. package/dist/angular/index.d.mts +3 -3
  4. package/dist/angular/index.d.ts +3 -3
  5. package/dist/angular/index.mjs +1 -1
  6. package/dist/astro/index.cjs +2 -2
  7. package/dist/astro/index.d.mts +3 -3
  8. package/dist/astro/index.d.ts +3 -3
  9. package/dist/astro/index.mjs +1 -1
  10. package/dist/cdn/svg-scroll-draw.dev.global.js +28 -6
  11. package/dist/cdn/svg-scroll-draw.global.js +2 -2
  12. package/dist/{chunk-JPK2NJWO.mjs → chunk-6SSA5V7J.mjs} +1 -1
  13. package/dist/chunk-LQBXJRFY.mjs +3 -0
  14. package/dist/{chunk-PKHX3HSS.mjs → chunk-VVFGB4RT.mjs} +1 -1
  15. package/dist/{engine-C9LKls__.d.ts → engine-DQyBzZDl.d.ts} +1 -1
  16. package/dist/{engine-CvzRSkuk.d.mts → engine-P8u6OK4m.d.mts} +1 -1
  17. package/dist/group/index.cjs +3 -3
  18. package/dist/group/index.d.mts +3 -3
  19. package/dist/group/index.d.ts +3 -3
  20. package/dist/group/index.mjs +1 -1
  21. package/dist/horizontal/index.d.mts +1 -1
  22. package/dist/horizontal/index.d.ts +1 -1
  23. package/dist/{index-Zxa5HIes.d.mts → index-CMqK0GCT.d.mts} +2 -2
  24. package/dist/{index-BlIjovDN.d.mts → index-CdaBYn3A.d.mts} +1 -1
  25. package/dist/{index-DZjvLJcU.d.ts → index-D3o4vT3e.d.ts} +1 -1
  26. package/dist/{index-G3VfLIN8.d.ts → index-DPqPEnO-.d.ts} +2 -2
  27. package/dist/index.cjs +4 -4
  28. package/dist/index.d.mts +6 -6
  29. package/dist/index.d.ts +6 -6
  30. package/dist/index.mjs +1 -1
  31. package/dist/nuxt/index.cjs +2 -2
  32. package/dist/nuxt/index.d.mts +3 -3
  33. package/dist/nuxt/index.d.ts +3 -3
  34. package/dist/nuxt/index.mjs +1 -1
  35. package/dist/pin/index.cjs +1 -1
  36. package/dist/pin/index.d.mts +8 -2
  37. package/dist/pin/index.d.ts +8 -2
  38. package/dist/pin/index.mjs +1 -1
  39. package/dist/progress/index.d.mts +1 -1
  40. package/dist/progress/index.d.ts +1 -1
  41. package/dist/react/index.cjs +2 -2
  42. package/dist/react/index.d.mts +7 -8
  43. package/dist/react/index.d.ts +7 -8
  44. package/dist/react/index.mjs +1 -1
  45. package/dist/reveal/index.d.mts +1 -1
  46. package/dist/reveal/index.d.ts +1 -1
  47. package/dist/{scroll-draw-B4CadBz0.d.mts → scroll-draw-Dej-GIRP.d.mts} +1 -1
  48. package/dist/{scroll-draw-Cs6Z5ype.d.ts → scroll-draw-DsBMkwrX.d.ts} +1 -1
  49. package/dist/snap/index.d.mts +1 -1
  50. package/dist/snap/index.d.ts +1 -1
  51. package/dist/solid/index.cjs +3 -3
  52. package/dist/solid/index.d.mts +3 -3
  53. package/dist/solid/index.d.ts +3 -3
  54. package/dist/solid/index.mjs +1 -1
  55. package/dist/svelte/index.cjs +2 -2
  56. package/dist/svelte/index.d.mts +3 -3
  57. package/dist/svelte/index.d.ts +3 -3
  58. package/dist/svelte/index.mjs +1 -1
  59. package/dist/text/index.d.mts +1 -1
  60. package/dist/text/index.d.ts +1 -1
  61. package/dist/timeline/index.d.mts +1 -1
  62. package/dist/timeline/index.d.ts +1 -1
  63. package/dist/{types-B0YM4nQP.d.mts → types-MswK0erX.d.mts} +6 -0
  64. package/dist/{types-B0YM4nQP.d.ts → types-MswK0erX.d.ts} +6 -0
  65. package/dist/video/index.d.mts +1 -1
  66. package/dist/video/index.d.ts +1 -1
  67. package/dist/vue/index.cjs +2 -2
  68. package/dist/vue/index.d.mts +3 -3
  69. package/dist/vue/index.d.ts +3 -3
  70. package/dist/vue/index.mjs +1 -1
  71. package/dist/web-component/index.cjs +3 -3
  72. package/dist/web-component/index.mjs +1 -1
  73. package/package.json +3 -3
  74. package/dist/chunk-WHFRS7IP.mjs +0 -3
package/dist/index.cjs CHANGED
@@ -1,4 +1,4 @@
1
- 'use strict';function Xt({tension:e=2.5,friction:r=2.2}={}){return t=>1-Math.cos(t*Math.PI*e)*Math.pow(1-t,r)}function At({bounces:e=3,decay:r=.5}={}){let t=Math.max(1,Math.round(e)),n=Math.max(.01,Math.min(.99,r)),i=Math.sqrt(n),a=0,m=[];for(let p=0;p<t;p++){let T=Math.pow(i,p);m.push(T),a+=T;}let f=[0],c=0;for(let p=0;p<t;p++)c+=m[p]/a,f.push(c);return p=>{if(p<=0)return 0;if(p>=1)return 1;for(let T=0;T<t;T++)if(p<=f[T+1]){let k=(p-f[T])/(f[T+1]-f[T]);if(T===0)return k*(2-k);let v=1-Math.pow(n,T);return v+(1-v)*(2*k-1)*(2*k-1)}return 1}}function Mt({amplitude:e=1,period:r=.4}={}){let t=Math.max(1,e),n=Math.max(.1,r),i=t<=1?n/4:n/(2*Math.PI)*Math.asin(1/t);return a=>a<=0?0:a>=1?1:t*Math.pow(2,-10*a)*Math.sin((a-i)*(2*Math.PI)/n)+1}var ne={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:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:At(),elastic:Mt()};function Pt(e,r,t){return Math.min(t,Math.max(r,e))}function Le(e="top bottom"){let r=e.trim();if(/^\d+(\.\d+)?%$/.test(r))return {element:"top",viewport:r};let[t="top",n="bottom"]=r.split(/\s+/).filter(Boolean);return {element:t,viewport:n}}function $t(e,r,t,n){switch(n){case "top":return e+t;case "center":return e+t+r/2;case "bottom":return e+t+r;default:return e+t}}function Lt(e,r){if(/^\d+(\.\d+)?%$/.test(e))return r*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return r/2;case "bottom":return r;default:return r}}function ce(e,r,t,n){return t===r?0:Pt((e-r)/(t-r)*n,0,1)}function Oe(e,r,t,n,i){let a=$t(e.top,e.height,r,n.element)-Lt(n.viewport,t),m=$t(e.top,e.height,r,i.element)-Lt(i.viewport,t);return {tStart:a,tEnd:m}}function et(e,r,t){let n=e.getBoundingClientRect(),i=t==="x"?n.width:n.height;return r?{top:t==="x"?n.left-r.getBoundingClientRect().left+r.scrollLeft:n.top-r.getBoundingClientRect().top+r.scrollTop,height:i,scroll:0}:{top:t==="x"?n.left:n.top,height:i,scroll:t==="x"?window.scrollX:window.scrollY}}function ze(e){let r=e.tagName.toLowerCase();if(r==="rect"){let t=parseFloat(e.getAttribute("width")??"0"),n=parseFloat(e.getAttribute("height")??"0");return 2*(t+n)}if(r==="circle"){let t=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*t}return e.getTotalLength()}function kt(e){let r=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(r)return [parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[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 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 qe(e,r,t){let n=kt(e),i=kt(r);return !n||!i?e:`rgb(${Math.round(n[0]+(i[0]-n[0])*t)},${Math.round(n[1]+(i[1]-n[1])*t)},${Math.round(n[2]+(i[2]-n[2])*t)})`}var mt={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 Ge=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function U(e,...r){Ge&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var Qt="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Zt="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Ct=33;function Kt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function Jt(e){let r=[];for(let t=0;t<Ct;t++){let n=t/(Ct-1);r.push(String(Math.round(e(n)*1e5)/1e5));}return `linear(${r.join(",")})`}function tt(e){switch(e){case "linear":return "linear";case "ease-in":return Qt;case "ease-out":return Zt;case "ease-in-out":return Kt()?Jt(ne["ease-in-out"]):null;default:return null}}var Dt=Symbol.for("svg-scroll-draw.registry");function It(){let e=globalThis;return e[Dt]||(e[Dt]=new Map)}function ke(e,r){It().set(e,r);}function Ce(e){It().delete(e);}var je,rt=new Set,nt=new WeakMap,Ye=new Map,Ot=e=>{let r=e.getBoundingClientRect();return r.width+" "+r.height};function er(e){let r=new Set;for(let t of e)for(;t&&t!==document.body;t=t.parentElement)for(let n=t;n;n=n.previousElementSibling)r.add(n);return r}function We(e,r){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let t=()=>r();je??(je=new ResizeObserver(i=>{let a=false;for(let{target:m}of i)nt.get(m)!==Ot(m)&&(a=true),nt.set(m,"");a&&rt.forEach(m=>m());})),rt.add(t);let n=er(e);return [document.body,document.documentElement].forEach(i=>i&&n.add(i)),n.forEach(i=>{nt.has(i)||nt.set(i,Ot(i)),Ye.set(i,(Ye.get(i)??0)+1),je.observe(i);}),()=>{rt.delete(t)&&(n.forEach(i=>{let a=(Ye.get(i)??1)-1;if(a)return void Ye.set(i,a);Ye.delete(i),je?.unobserve(i);}),rt.size||(je?.disconnect(),je=void 0));}}var tr=0;function rr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Rt(e,r){let t="";try{t=getComputedStyle(e).getPropertyValue(r).trim();}catch{}return t||(e.getAttribute(r)??"").trim()}var Ft=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function nr(e){if(!Ge)return;let r=Rt(e,"stroke");if(!r||r==="none"){U("Element has no stroke \u2014 path will not be visible.",e);return}let t=(e.getAttribute("fill")??"").trim();t&&!Ft.has(t)&&!Ft.has(Rt(e,"fill"))&&U("Element has a fill \u2014 it may obscure the stroke animation.",e);}function or(e,r,t){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 i(){let a=t==="x"?window.scrollX:window.scrollY,m=e-a,f=r-a,c=t==="x";n.innerHTML=`
2
- <div style="position:absolute;${c?`left:${m}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${m}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;${c?`left:${f}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${f}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",i,{passive:true}),i(),{el:n,destroy(){window.removeEventListener("scroll",i),n.remove();}}}var Nt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,Ht=/[MmLlHhVvCcSsQqTtAaZz]/g;function sr(e,r,t){if(!Ge)return;let n=(e.match(Ht)??[]).join("").toUpperCase(),i=(r.match(Ht)??[]).join("").toUpperCase(),a=(e.match(Nt)??[]).length,m=(r.match(Nt)??[]).length;if(n!==i){U(`morphTo: command sequence differs (${n||"\u2205"} \u2192 ${i||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,t);return}a!==m&&U(`morphTo: coordinate count differs (${a} \u2192 ${m}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,t);}function ft(e,r,t){let n=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),i=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,a=>{let m=parseFloat(a),f=n[i++]??m;return String(+(m+(f-m)*t).toFixed(4))})}function _t(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:t,...n}=r,i=t?{...mt[t],...n}:n,a=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:m="path, polyline, line, polygon, rect, circle",speed:f=1,fade:c=false,easing:p="linear",trigger:T={},stagger:k=0,direction:v="forward",once:oe=false,debug:Te=false,axis:E="y",scrollContainer:A,autoReverse:g=false,delay:S=0,strokeColor:x,strokeWidth:I,fillOpacity:X,waypoints:q,velocityScale:se=false,threshold:ae=0,rootMargin:W="0px",repeat:O=0,repeatDelay:Re=0,morphTo:B,clip:de,autoplay:Ae=false,duration:Fe=1e3,native:Ne=true,onProgress:ue,onStart:Q,onComplete:d,onEnter:R,onLeave:He,onEnterBack:Ee,onLeaveBack:Me}=i,ie=de===true?"left":typeof de=="string"?de:false,ge=typeof p=="function"?p:ne[p]??ne.linear,Se=Le(T.start??"top bottom"),_e=Le(T.end??"bottom top"),me=typeof A=="string"?document.querySelector(A):A??null,fe=Array.isArray(x)?x[0]:null,Z=Array.isArray(x)?x[1]:typeof x=="string"?x:null,H=Array.isArray(I)?I[0]:null,G=Array.isArray(I)?I[1]:typeof I=="number"?I:null,j=Array.isArray(X)?X[0]:null,_=Array.isArray(X)?X[1]:typeof X=="number"?X:null;function Pe(o){let l=o*100;switch(ie){case "right":return `inset(0 0 0 ${100-l}%)`;case "top":return `inset(0 0 ${100-l}% 0)`;case "bottom":return `inset(${100-l}% 0 0 0)`;case "center":return `circle(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-l}% 0 0)`}}let F=ie?[]:Array.from(e.querySelectorAll(m)),M=[],K=[],J=0,be=0,s=false,u=false,C=0,ee=false,$=-1,Y=[],we=-1,V=false,L=0,pe=0,ye,it=null;function ht(){it?.destroy(),it=null;}let De=new Set,bt=NaN,Ie=true,Ue=-1,wt=performance.now(),Ve=NaN;function at(){return me?E==="x"?me.scrollLeft:me.scrollTop:E==="x"?window.scrollX:window.scrollY}function vt(){return me?E==="x"?me.clientWidth:me.clientHeight:E==="x"?window.innerWidth:window.innerHeight}function Et(){let o=et(e,me,E);return Oe(o,o.scroll,vt(),Se,_e)}function St(){(({tStart:J,tEnd:be}=Et())),Te&&Ge&&(ht(),it=or(J,be,E));}function lt(o,l=Et){ke(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:l});let b=o.destroy;return o.destroy=()=>{b.call(o),Ce(e);},o}function Bt(o,l){if(e.style.setProperty("--scroll-draw-progress",String(o)),ie){let b=l==="reverse"?1-o:o;e.style.clipPath=Pe(b);return}F.forEach((b,te)=>{b.style.strokeDashoffset=l==="reverse"?`${M[te]*o}`:`${M[te]*(1-o)}`,c&&(b.style.opacity=l==="reverse"?`${1-o}`:`${o}`),fe&&Z?b.style.stroke=qe(fe,Z,o):Z&&(b.style.stroke=Z),H!==null&&G!==null?b.style.strokeWidth=`${H+(G-H)*o}`:G!==null&&(b.style.strokeWidth=`${G}`),j!==null&&_!==null?b.style.fillOpacity=`${j+(_-j)*o}`:_!==null&&(b.style.fillOpacity=`${_}`),B&&b.tagName.toLowerCase()==="path"&&K[te]&&b.setAttribute("d",ft(K[te],B,o));});}function Xe(){if(e.style.setProperty("--scroll-draw-progress","0"),ie){e.style.clipPath=Pe(0);return}F.forEach((o,l)=>{o.style.strokeDasharray=`${M[l]}`,o.style.strokeDashoffset=v==="reverse"?"0":`${M[l]}`,c?o.style.opacity=v==="reverse"?"1":"0":o.style.opacity="",fe&&(o.style.stroke=fe),H!==null&&(o.style.strokeWidth=`${H}`),j!==null&&(o.style.fillOpacity=`${j}`),B&&o.tagName.toLowerCase()==="path"&&K[l]&&o.setAttribute("d",K[l]);});}if(F.forEach(o=>{nr(o);let l=ze(o);M.push(l);let b=o.tagName.toLowerCase()==="path";b?K.push(o.getAttribute("d")??""):K.push(""),B&&(b?sr(K[K.length-1],B,o):U(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),a?(o.style.strokeDasharray=`${l}`,o.style.strokeDashoffset=v==="reverse"?`${l}`:"0",c&&(o.style.opacity="1"),Z&&(o.style.stroke=Z),G!==null&&(o.style.strokeWidth=`${G}`),_!==null&&(o.style.fillOpacity=`${_}`),B&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",B)):(o.style.strokeDasharray=`${l}`,o.style.strokeDashoffset=v==="reverse"?"0":`${l}`,c?o.style.opacity=v==="reverse"?"1":"0":o.style.opacity="",fe&&(o.style.stroke=fe),H!==null&&(o.style.strokeWidth=`${H}`),j!==null&&(o.style.fillOpacity=`${j}`));}),ie){if(a)return e.style.clipPath=Pe(1),d?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=Pe(0);}else if(a)return d?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let xt=typeof p=="string"?tt(p):null;function Gt(){return !(Ne===false||!rr()||!F.length||!xt||ie||E!=="y"||me||f!==1||k!==0||oe||g||se!==false||B||q||O||S>0||ue||Q||d||R||He||Ee||Me||x!=null||I!=null||X!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function jt(){let o=++tr,l=`svg-scroll-draw-${o}`,b=`svg-scroll-draw-host-${o}`,te=`--svg-scroll-draw-${o}`,$e=v==="reverse"?"0":"var(--ssd-len)",xe=v==="reverse"?"var(--ssd-len)":"0",ve=`stroke-dashoffset:${$e};`,w=`stroke-dashoffset:${xe};`;c&&(ve+=`opacity:${v==="reverse"?1:0};`,w+=`opacity:${v==="reverse"?0:1};`);let P=document.createElement("style");P.setAttribute("data-svg-scroll-draw",""),P.textContent=`@keyframes ${l}{from{${ve}}to{${w}}}.${b}{view-timeline-name:${te};view-timeline-axis:block;}.${l}{animation-name:${l};animation-duration:auto;animation-timing-function:${xt};animation-fill-mode:both;animation-timeline:${te};animation-range:cover 0% cover 100%;}`,document.head.appendChild(P),e.classList.add(b);function re(y,z){y.style.setProperty("--ssd-len",String(M[z])),y.style.strokeDasharray=`${M[z]}`,y.style.strokeDashoffset="",y.style.opacity="",y.style.animationPlayState="",y.classList.add(l);}F.forEach(re);let h=false,D=-1;function N(){if(D>=0)return D;let y=e.getBoundingClientRect(),{tStart:z,tEnd:he}=Oe({top:y.top,height:y.height},at(),vt(),Se,_e);return ge(ce(at(),z,he,f))}return {destroy(){e.classList.remove(b),F.forEach(y=>{y.classList.remove(l),y.style.removeProperty("--ssd-len"),y.style.animationPlayState="";}),P.remove();},replay(){h=false,D=-1,F.forEach(re);},pause(){h=true,F.forEach(y=>{y.style.animationPlayState="paused";});},resume(){h&&(h=false,F.forEach(y=>{y.style.animationPlayState="running";}));},seek(y){let z=Math.min(1,Math.max(0,y));D=z,h=true,F.forEach((he,le)=>{he.classList.remove(l),he.style.strokeDashoffset=v==="reverse"?`${M[le]*z}`:`${M[le]*(1-z)}`,c&&(he.style.opacity=v==="reverse"?`${1-z}`:`${z}`);});},getProgress(){return N()},refresh(){F.forEach((y,z)=>{M[z]=ze(y),y.style.setProperty("--ssd-len",String(M[z])),y.style.strokeDasharray=`${M[z]}`;});}}}if(Gt())return lt(jt());function Yt(){let o=Math.max(1,Fe),l=0,b=0,te=false;function $e(h){let D=true;if(ie){let N=Math.min(1,Math.max(0,h/o)),y=ge(N);L=y,e.style.setProperty("--scroll-draw-progress",String(y)),e.style.clipPath=Pe(v==="reverse"?1-y:y),ue?.(y),N<1&&(D=false);}else F.forEach((N,y)=>{let z=y*k*o,he=Math.min(1,Math.max(0,(h-z)/o)),le=ge(he);N.style.strokeDashoffset=v==="reverse"?`${M[y]*le}`:`${M[y]*(1-le)}`,c&&(N.style.opacity=v==="reverse"?`${1-le}`:`${le}`),fe&&Z?N.style.stroke=qe(fe,Z,le):Z&&(N.style.stroke=Z),H!==null&&G!==null?N.style.strokeWidth=`${H+(G-H)*le}`:G!==null&&(N.style.strokeWidth=`${G}`),j!==null&&_!==null?N.style.fillOpacity=`${j+(_-j)*le}`:_!==null&&(N.style.fillOpacity=`${_}`),B&&N.tagName.toLowerCase()==="path"&&K[y]&&N.setAttribute("d",ft(K[y],B,le)),y===0&&(L=le,ue?.(le),e.style.setProperty("--scroll-draw-progress",String(le))),he<1&&(D=false);});if(q){let N=Math.min(1,Math.max(0,h/o)),y=ge(N);for(let z in q){let he=parseFloat(z);y>=he&&!De.has(he)&&(De.add(he),q[z]?.());}}return D}function xe(h){if(V)return;let D=h-l;u||(u=true,Q?.());let N=$e(D);if(N&&!s){s=true,$e(o*(1+Math.max(0,F.length-1)*k)),d?.(),pe<(O==="infinite"?1/0:O??0)&&(pe++,ye=setTimeout(()=>{l=performance.now(),u=false,s=false,De.clear(),Xe(),C=requestAnimationFrame(xe);},Re));return}N||(C=requestAnimationFrame(xe));}function ve(){cancelAnimationFrame(C),clearTimeout(ye),l=performance.now(),b=0,V=false,u=false,s=false,pe=0,te=true,L=0,De.clear(),Xe(),C=requestAnimationFrame(xe);}let w=new IntersectionObserver(h=>{h.forEach(D=>{D.isIntersecting&&!(oe&&s)?ve():!D.isIntersecting&&!oe&&!s&&(cancelAnimationFrame(C),clearTimeout(ye),te=false);});},{root:me??null,threshold:ae,rootMargin:W}),P;function re(){clearTimeout(P),P=setTimeout(()=>{F.forEach((h,D)=>{M[D]=ze(h),h.style.strokeDasharray=`${M[D]}`;});},150);}return window.addEventListener("resize",re),window.addEventListener("orientationchange",re),S>0?setTimeout(()=>w.observe(e),S):w.observe(e),{destroy(){cancelAnimationFrame(C),clearTimeout(ye),w.disconnect(),window.removeEventListener("resize",re),window.removeEventListener("orientationchange",re),clearTimeout(P);},replay(){pe=0,ve();},pause(){V||!te||(V=true,b=performance.now()-l,cancelAnimationFrame(C));},resume(){V&&(V=false,te=true,l=performance.now()-b,C=requestAnimationFrame(xe));},seek(h){let D=Math.min(1,Math.max(0,h));L=D,V=true,b=D*o,l=performance.now()-b,cancelAnimationFrame(C),$e(b);},getProgress(){return L},refresh(){clearTimeout(P),F.forEach((h,D)=>{M[D]=ze(h),h.style.strokeDasharray=`${M[D]}`;});}}}if(Ae)return lt(Yt());St();function Qe(){if(!ee||V)return;let o=performance.now(),l=at();if(!Ie&&se===false&&l===bt){C=requestAnimationFrame(Qe);return}Ie=false,bt=l;let b=f;if(se!==false){let w=o-wt,P=w>0?Math.abs(l-(Ue<0?l:Ue))/w:0;b=f*Math.max(.2,1+P*(typeof se=="number"?se:1)*.04);}Ue=l,wt=o;let te=g?we===-1||l>=we?"forward":"reverse":v;we=l;let $e=be-J,xe=true,ve=$e===0?0:(l-J)/$e;if(isNaN(Ve)||(Ve<=0&&ve>0?R?.():Ve>0&&ve<=0&&Me?.(),Ve<1&&ve>=1?He?.():Ve>=1&&ve<1&&Ee?.()),Ve=ve,ie){let w=ge(ce(l,J,be,b));oe&&!g&&($=Math.max($,w),w=$),L=w,e.style.setProperty("--scroll-draw-progress",String(w));let P=te==="reverse"?1-w:w;e.style.clipPath=Pe(P),ue?.(w),!u&&ce(l,J,be,b)>0&&(u=true,Q?.()),w>=1&&!s?(s=true,d?.(),pe<(O==="infinite"?1/0:O??0)&&(pe++,ye=setTimeout(()=>{$=-1,u=false,s=false,e.style.clipPath=Pe(0);},Re))):w<1&&!oe&&(s=false),C=requestAnimationFrame(Qe);return}if(F.forEach((w,P)=>{let re=P*k*$e,h=ge(ce(l,J+re,be+re,b));oe&&!g&&(h=Y[P]=Math.max(Y[P]??$,h)),w.style.strokeDashoffset=te==="reverse"?`${M[P]*h}`:`${M[P]*(1-h)}`,c&&(w.style.opacity=te==="reverse"?`${1-h}`:`${h}`),fe&&Z?w.style.stroke=qe(fe,Z,h):Z&&(w.style.stroke=Z),H!==null&&G!==null?w.style.strokeWidth=`${H+(G-H)*h}`:G!==null&&(w.style.strokeWidth=`${G}`),j!==null&&_!==null?w.style.fillOpacity=`${j+(_-j)*h}`:_!==null&&(w.style.fillOpacity=`${_}`),B&&w.tagName.toLowerCase()==="path"&&K[P]&&w.setAttribute("d",ft(K[P],B,h)),P===0&&(L=h,ue?.(h),e.style.setProperty("--scroll-draw-progress",String(h))),h<1&&(xe=false);}),q){let w=ge(ce(l,J,be,b));for(let P in q){let re=parseFloat(P);w>=re&&!De.has(re)&&(De.add(re),q[P]?.());}}!u&&ce(l,J,be,b)>0&&(u=true,Q?.()),xe&&!s?(s=true,d?.(),pe<(O==="infinite"?1/0:O??0)&&(pe++,ye=setTimeout(()=>{$=-1,Y=[],u=false,s=false,De.clear(),Xe(),Ie=true;},Re))):!xe&&!oe&&(s=false),C=requestAnimationFrame(Qe);}let ct=false;function Ze(){ct||(ct=true,C=requestAnimationFrame(function(){Qe();}));}function Ke(){ct=false,cancelAnimationFrame(C);}let ut=new IntersectionObserver(o=>{o.forEach(l=>{ee=l.isIntersecting,ee&&!V?(Ie=true,Ze()):Ke();});},{root:me??null,threshold:ae,rootMargin:W});function Tt(){F.forEach((o,l)=>{M[l]=ze(o),o.style.strokeDasharray=`${M[l]}`;}),St(),Ie=true;}let Je;function Be(){clearTimeout(Je),Je=setTimeout(Tt,150);}window.addEventListener("resize",Be),window.addEventListener("orientationchange",Be);let Ut=We([e],Be);return S>0?setTimeout(()=>ut.observe(e),S):ut.observe(e),lt({destroy(){cancelAnimationFrame(C),clearTimeout(ye),Ke(),ut.disconnect(),Ut(),window.removeEventListener("resize",Be),window.removeEventListener("orientationchange",Be),clearTimeout(Je),ht();},replay(){$=-1,Y=[],we=-1,Ue=-1,u=false,s=false,pe=0,V=false,L=0,De.clear(),clearTimeout(ye),Xe(),Ie=true,ee&&Ze();},pause(){V=true,Ke();},resume(){V&&(V=false,Ie=true,ee&&Ze());},seek(o){let l=Math.min(1,Math.max(0,o));L=l,$=l,Y=[],V=true,Ke(),Bt(l,v),Ie=true;},getProgress(){return L},refresh(){clearTimeout(Je),Tt(),ee&&!V&&Ze();}},()=>({tStart:J,tEnd:be}))}function ir(e,r){let t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return t;let n=typeof e=="string"?document.querySelector(e):e;return n?_t(n,r):(U("Container not found:",e),t)}function ar(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Vt(e){let r=[],t=/([\w]+)\(([^)]*)\)/g,n;for(;(n=t.exec(e))!==null;){let i=[],a=[],m=n[2].trim();if(m)for(let f of m.split(/[\s,]+/)){let c=f.match(/^([-+]?[\d.eE]+)(.*)$/);i.push(c?parseFloat(c[1]):0),a.push(c?c[2]:"");}r.push({fn:n[1],nums:i,units:a});}return r}function lr(e,r,t){let n=Vt(e),i=Vt(r);return n.length===0||n.length!==i.length?t<1?e:r:n.map((a,m)=>{let f=i[m];return a.fn!==f.fn||a.nums.length!==f.nums.length?t<1?`${a.fn}(${a.nums.map((c,p)=>`${c}${a.units[p]}`).join(", ")})`:`${f.fn}(${f.nums.map((c,p)=>`${c}${f.units[p]}`).join(", ")})`:`${a.fn}(${a.nums.map((c,p)=>`${c+(f.nums[p]-c)*t}${a.units[p]}`).join(", ")})`}).join(" ")}function zt(e,r,t){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*t);let n=String(e),i=String(r);if(ar(n))return qe(n,i,t);if(n.includes("("))return lr(n,i,t);let a=n.match(/^([-+]?[\d.]+)(.*)$/),m=i.match(/^([-+]?[\d.]+)(.*)$/);if(a&&m){let f=parseFloat(a[1]),c=parseFloat(m[1]);return `${f+(c-f)*t}${a[2]||m[2]}`}return t<1?n:i}function cr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var ur=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),mr=0,qt="--scroll-draw-progress";function fr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function pt(e,r){let t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return t;let{props:n,trigger:i={},easing:a="ease-out",speed:m=1,once:f=false,axis:c="y",scrollContainer:p,native:T=true,velocityScale:k=false,respectReducedMotion:v=true,triggerElement:oe,onProgress:Te,onComplete:E,onEnter:A,onLeave:g,onEnterBack:S,onLeaveBack:x}=r,I=v&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,X=typeof a=="function"?a:ne[a]??ne["ease-out"],q=Le(i.start??"top bottom"),se=Le(i.end??"bottom top"),ae=oe??e,W=typeof p=="string"?document.querySelector(p):p??null,O=Object.entries(n).map(([s,u])=>({prop:cr(s),from:Array.isArray(u)?u[0]:"",to:Array.isArray(u)?u[1]:u}));function Re(){let s=window.getComputedStyle(e);for(let u of O)u.from===""&&(u.from=s.getPropertyValue(u.prop).trim()||"0");}function B(){for(let s of O)e.style.setProperty(s.prop,String(s.to));}let de=new Map;for(let s of [...O.map(u=>u.prop),qt])de.set(s,e.style.getPropertyValue(s));function Ae(){for(let[s,u]of de)u?e.style.setProperty(s,u):e.style.removeProperty(s);}if(I)return B(),E?.(),{...t,destroy:Ae,getProgress:()=>1};Re();let Fe=typeof a=="string"?tt(a):null;function Ne(){if(!T||!fr()||!Fe||c!=="y"||W||ae!==e||f||m!==1||Te||E||A||g||S||x||k!==false||(i.start??"top bottom").trim()!=="top bottom"||(i.end??"bottom top").trim()!=="bottom top")return false;for(let s of O)if(!ur.has(s.prop))return false;return true}function ue(){let s=`ssd-a-${++mr}`,u=O.map(L=>`${L.prop}:${L.from}`).join(";"),C=O.map(L=>`${L.prop}:${L.to}`).join(";"),ee=document.createElement("style");ee.setAttribute("data-ssd-animate",""),ee.textContent=`@keyframes ${s}{from{${u}}to{${C}}}.${s}{animation-name:${s};animation-duration:auto;animation-timing-function:${Fe};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(ee),e.classList.add(s);let $=()=>c==="x"?window.scrollX:window.scrollY,Y=()=>c==="x"?window.innerWidth:window.innerHeight,we=()=>{let L=e.getBoundingClientRect();return Oe({top:L.top,height:L.height},$(),Y(),q,se)};ke(e,{type:"animate",getProgress:()=>V.getProgress(),getTrigger:we});let V={refresh(){},destroy(){e.classList.remove(s),ee.remove(),e.style.animationPlayState="",Ae(),Ce(e);},replay(){e.classList.remove(s),e.offsetWidth,e.classList.add(s);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(L){let pe=Math.min(1,Math.max(0,L));e.classList.remove(s);for(let ye of O)e.style.setProperty(ye.prop,zt(ye.from,ye.to,pe));},getProgress(){let{tStart:L,tEnd:pe}=we();return X(ce($(),L,pe,m))}};return V}if(Ne())return ue();let Q=0,d=0,R=0,He=false,Ee=false,Me=-1,ie=0,ge=false,Se=NaN,_e=-1,me=0,fe=()=>W?c==="x"?W.scrollLeft:W.scrollTop:c==="x"?window.scrollX:window.scrollY,Z=()=>W?c==="x"?W.clientWidth:W.clientHeight:c==="x"?window.innerWidth:window.innerHeight,H=ae===e?O:[],G=false;function j(){let s=e.style,u=H.map(Y=>s.getPropertyValue(Y.prop)),C=s.transition;H.length&&(s.transition="none"),H.forEach(Y=>s.setProperty(Y.prop,de.get(Y.prop)??""));let ee=et(ae,W,c);H.forEach((Y,we)=>s.setProperty(Y.prop,u[we])),H.length&&(e.offsetWidth,s.transition=C);let $=Oe(ee,ee.scroll,Z(),q,se);G&&Math.abs($.tStart-Q)<1&&Math.abs($.tEnd-d)<1||(G=true,Q=$.tStart,d=$.tEnd);}function _(s){e.style.setProperty(qt,String(s));for(let u of O)e.style.setProperty(u.prop,zt(u.from,u.to,s));Te?.(s);}function Pe(s){if(isNaN(Se)){Se=s;return}Se<=0&&s>0?A?.():Se>0&&s<=0&&x?.(),Se<1&&s>=1?g?.():Se>=1&&s<1&&S?.(),Se=s;}function F(){if(!He||Ee)return;let s=performance.now(),u=fe(),C=m;if(k!==false){let Y=s-me,we=Y>0?Math.abs(u-(_e<0?u:_e))/Y:0;C=m*Math.max(.2,1+we*(typeof k=="number"?k:1)*.04);}_e=u,me=s;let ee=d===Q?0:(u-Q)/(d-Q);Pe(ee);let $=X(ce(u,Q,d,C));f&&(Me=Math.max(Me,$),$=Me),ie=$,_($),$>=1&&!ge?(ge=true,E?.()):$<1&&!f&&(ge=false),R=requestAnimationFrame(F);}j(),d===Q&&U("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let s=X(ce(fe(),Q,d,m));f&&s>0&&(Me=s),ie=s,_(s);}let M=new IntersectionObserver(s=>{s.forEach(u=>{He=u.isIntersecting,He&&!Ee?R=requestAnimationFrame(F):cancelAnimationFrame(R);});},{root:W??null}),K;function J(){clearTimeout(K),K=setTimeout(j,150);}window.addEventListener("resize",J),window.addEventListener("orientationchange",J);let be=We([ae],J);return M.observe(e),ke(e,{type:"animate",getProgress:()=>ie,getTrigger:()=>({tStart:Q,tEnd:d})}),{destroy(){cancelAnimationFrame(R),M.disconnect(),window.removeEventListener("resize",J),window.removeEventListener("orientationchange",J),be(),clearTimeout(K),Ae(),Ce(e);},replay(){Me=-1,ge=false,ie=0,Ee=false,_(0);},pause(){Ee=true,cancelAnimationFrame(R);},resume(){Ee&&(Ee=false,He&&(R=requestAnimationFrame(F)));},seek(s){let u=Math.min(1,Math.max(0,s));ie=u,Me=u,Ee=true,cancelAnimationFrame(R),_(u);},getProgress(){return ie},refresh(){j();}}}var ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function pr(e,r){if(typeof window>"u")return ot;let t=typeof e=="string"?document.querySelector(e):e;return t?pt(t,r):(U("scrollAnimate: element not found:",e),ot)}function dr(e,r={}){if(typeof window>"u")return ot;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return U("scrollParallax: element not found:",e),ot;let{speed:n=.3,axis:i="y",easing:a="linear",trigger:m,onProgress:f}=r,c=-n*100,p=t.style,T=!!t.ownerSVGElement,k=p.getPropertyValue("transform-box");T&&p.setProperty("transform-box","fill-box");let v=pt(t,{props:i==="x"?{transform:["translateX(0%)",`translateX(${c}%)`]}:{transform:["translateY(0%)",`translateY(${c}%)`]},trigger:m??{start:"top bottom",end:"bottom top"},easing:a,native:false,onProgress:f});return T?{...v,destroy(){v.destroy(),p.setProperty("transform-box",k);}}:v}var dt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function gr(e,r){if(typeof window>"u")return dt;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return U("scrollCounter: element not found:",e),dt;let n=t,{from:i=0,to:a,format:m,easing:f="ease-out",trigger:c={},once:p=true,decimals:T,onComplete:k}=r,v=T!==void 0?d=>d.toFixed(T):m??(d=>String(Math.round(d))),oe=typeof f=="function"?f:ne[f]??ne["ease-out"],Te=Le(c.start??"top 80%"),E=Le(c.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return n.textContent=v(a),k?.(),dt;let g=0,S=0,x=false,I=0,X=false,q=false,se=-1,ae=0,W=false,O=()=>window.scrollY,Re=()=>window.innerHeight;function B(){let d=n.getBoundingClientRect(),R=Oe({top:d.top,height:d.height},O(),Re(),Te,E);x&&Math.abs(R.tStart-g)<1&&Math.abs(R.tEnd-S)<1||(x=true,g=R.tStart,S=R.tEnd);}function de(d){n.textContent=v(i+(a-i)*d),n.style.setProperty("--scroll-draw-progress",String(d));}function Ae(){if(!X||q)return;let d=oe(ce(O(),g,S,1));p&&(se=Math.max(se,d),d=se),ae=d,de(d),d>=1&&!W?(W=true,k?.()):d<1&&!p&&(W=false),I=requestAnimationFrame(Ae);}B();{let d=oe(ce(O(),g,S,1));p&&d>0&&(se=d),ae=d,de(d);}let Fe=new IntersectionObserver(d=>{d.forEach(R=>{X=R.isIntersecting,X&&!q?I=requestAnimationFrame(Ae):cancelAnimationFrame(I);});}),Ne;function ue(){clearTimeout(Ne),Ne=setTimeout(B,150);}window.addEventListener("resize",ue),window.addEventListener("orientationchange",ue);let Q=We([n],ue);return Fe.observe(n),ke(n,{type:"counter",getProgress:()=>ae,getTrigger:()=>({tStart:g,tEnd:S})}),{destroy(){cancelAnimationFrame(I),Fe.disconnect(),window.removeEventListener("resize",ue),window.removeEventListener("orientationchange",ue),Q(),clearTimeout(Ne),Ce(n);},replay(){se=-1,W=false,ae=0,q=false,de(0);},pause(){q=true,cancelAnimationFrame(I);},resume(){q&&(q=false,X&&(I=requestAnimationFrame(Ae)));},seek(d){let R=Math.min(1,Math.max(0,d));ae=R,se=R,q=true,cancelAnimationFrame(I),de(R);},getProgress(){return ae}}}var Wt="http://www.w3.org/2000/svg",yr="cinematic-photo",gt=e=>e<0?0:e>1?1:e;function st(e){let r=parseFloat(e);return Number.isFinite(r)?gt(r/100):0}function hr(e){return ne[e]??ne.linear}var br={destroy:()=>{},getProgress:()=>0},yt=class{constructor(r){if(typeof document>"u"){this.mount=null;return}this.mount=typeof r.wrapper=="string"?document.querySelector(r.wrapper):r.wrapper,this.mount||U("Cinematic: wrapper not found:",r.wrapper);}loadStory(r){let t=this.mount;if(typeof window>"u"||!t)return br;t.style.position="relative",t.style.height=r.totalHeight,t.style.display="block";let n=document.createElement("div");n.setAttribute("data-cinematic-stage",""),n.style.cssText="position:sticky;top:0;height:100vh;width:100%;overflow:hidden;display:block;",t.appendChild(n);let i=[];for(let E of r.scenes){if(E.background){let g=document.createElement("img");g.id=yr,g.src=E.background,g.alt="",g.style.cssText="position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none;",n.appendChild(g);}let A=E.animations.filter(g=>g.type==="draw");if(A.length){let g=document.createElementNS(Wt,"svg");g.setAttribute("viewBox",`0 0 ${r.canvas.width} ${r.canvas.height}`),g.setAttribute("preserveAspectRatio","xMidYMid meet"),g.style.cssText="position:absolute;inset:0;width:100%;height:100%;overflow:visible;",n.appendChild(g);for(let S of A){let x=document.createElementNS(Wt,"path");x.id=S.target.replace(/^#/,""),x.setAttribute("d",S.d),x.setAttribute("fill","none"),x.setAttribute("stroke",S.stroke),x.setAttribute("stroke-width",String(S.strokeWidth)),x.setAttribute("stroke-linecap","round"),x.setAttribute("stroke-linejoin","round");let I=S.length||x.getTotalLength?.()||0;x.style.strokeDasharray=String(I),x.style.strokeDashoffset=String(I),g.appendChild(x),i.push({kind:"draw",el:x,start:st(S.start),end:st(S.end),ease:hr(S.easing),length:I});}}for(let g of E.animations){if(g.type!=="fade")continue;let S=n.querySelector(g.target)??document.querySelector(g.target);S&&(S.style.opacity=String(g.from),i.push({kind:"fade",el:S,start:st(g.start),end:st(g.end),ease:ne["ease-in-out"]??ne.linear,from:g.from,to:g.to}));}}let a=0,m=()=>{let E=t.offsetHeight-window.innerHeight;return E<=0?t.getBoundingClientRect().top<=0?1:0:gt(-t.getBoundingClientRect().top/E)},f=E=>{for(let A of i){let g=A.end-A.start,S=g<=0?E>=A.end?1:0:gt((E-A.start)/g),x=A.ease(S);A.kind==="draw"?A.el.style.strokeDashoffset=String(A.length*(1-x)):A.el.style.opacity=String(A.from+(A.to-A.from)*x);}};if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return f(1),{destroy:()=>{},getProgress:()=>1};let c=0,p=false,T=false,k=()=>{a=m(),f(a),p&&(c=requestAnimationFrame(k));},v=()=>{p||(p=true,c=requestAnimationFrame(k));},oe=()=>{p=false,cancelAnimationFrame(c);},Te=new IntersectionObserver(E=>{for(let A of E)T=A.isIntersecting,T?v():oe();},{threshold:0});return Te.observe(n),a=m(),f(a),ke(t,{type:"draw",getProgress:()=>a,getTrigger:()=>{let E=t.getBoundingClientRect().top+window.scrollY;return {tStart:E,tEnd:E+Math.max(0,t.offsetHeight-window.innerHeight)}}}),{destroy(){oe(),Te.disconnect(),Ce(t);},getProgress:()=>a}}};
4
- exports.Cinematic=yt;exports.PRESETS=mt;exports.createBounce=At;exports.createElastic=Mt;exports.createSpring=Xt;exports.scrollAnimate=pr;exports.scrollCounter=gr;exports.scrollDraw=ir;exports.scrollParallax=dr;
1
+ 'use strict';function er({tension:e=2.5,friction:r=2.2}={}){return t=>1-Math.cos(t*Math.PI*e)*Math.pow(1-t,r)}function Lt({bounces:e=3,decay:r=.5}={}){let t=Math.max(1,Math.round(e)),n=Math.max(.01,Math.min(.99,r)),s=Math.sqrt(n),a=0,u=[];for(let f=0;f<t;f++){let A=Math.pow(s,f);u.push(A),a+=A;}let m=[0],c=0;for(let f=0;f<t;f++)c+=u[f]/a,m.push(c);return f=>{if(f<=0)return 0;if(f>=1)return 1;for(let A=0;A<t;A++)if(f<=m[A+1]){let M=(f-m[A])/(m[A+1]-m[A]);if(A===0)return M*(2-M);let v=1-Math.pow(n,A);return v+(1-v)*(2*M-1)*(2*M-1)}return 1}}function kt({amplitude:e=1,period:r=.4}={}){let t=Math.max(1,e),n=Math.max(.1,r),s=t<=1?n/4:n/(2*Math.PI)*Math.asin(1/t);return a=>a<=0?0:a>=1?1:t*Math.pow(2,-10*a)*Math.sin((a-s)*(2*Math.PI)/n)+1}var ne={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:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:Lt(),elastic:kt()};function Ct(e,r,t){return Math.min(t,Math.max(r,e))}function ke(e="top bottom"){let r=e.trim();if(/^\d+(\.\d+)?%$/.test(r))return {element:"top",viewport:r};let[t="top",n="bottom"]=r.split(/\s+/).filter(Boolean);return {element:t,viewport:n}}function Dt(e,r,t,n){switch(n){case "top":return e+t;case "center":return e+t+r/2;case "bottom":return e+t+r;default:return e+t}}function It(e,r){if(/^\d+(\.\d+)?%$/.test(e))return r*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return r/2;case "bottom":return r;default:return r}}function pe(e,r,t,n){return t===r?0:Ct((e-r)/(t-r)*n,0,1)}function Fe(e,r,t,n,s){let a=Dt(e.top,e.height,r,n.element)-It(n.viewport,t),u=Dt(e.top,e.height,r,s.element)-It(s.viewport,t);return {tStart:a,tEnd:u}}function nt(e,r,t){let n=e.getBoundingClientRect(),s=t==="x"?n.width:n.height;return r?{top:t==="x"?n.left-r.getBoundingClientRect().left+r.scrollLeft:n.top-r.getBoundingClientRect().top+r.scrollTop,height:s,scroll:0}:{top:t==="x"?n.left:n.top,height:s,scroll:t==="x"?window.scrollX:window.scrollY}}function Be(e){let r=e.tagName.toLowerCase();if(r==="rect"){let t=parseFloat(e.getAttribute("width")??"0"),n=parseFloat(e.getAttribute("height")??"0");return 2*(t+n)}if(r==="circle"){let t=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*t}return e.getTotalLength()}function Ot(e){let r=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(r)return [parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[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 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 Ge(e,r,t){let n=Ot(e),s=Ot(r);return !n||!s?e:`rgb(${Math.round(n[0]+(s[0]-n[0])*t)},${Math.round(n[1]+(s[1]-n[1])*t)},${Math.round(n[2]+(s[2]-n[2])*t)})`}var pt={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 Ue=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function Z(e,...r){Ue&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var tr="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",rr="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Rt=33;function nr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function or(e){let r=[];for(let t=0;t<Rt;t++){let n=t/(Rt-1);r.push(String(Math.round(e(n)*1e5)/1e5));}return `linear(${r.join(",")})`}function ot(e){switch(e){case "linear":return "linear";case "ease-in":return tr;case "ease-out":return rr;case "ease-in-out":return nr()?or(ne["ease-in-out"]):null;default:return null}}var Ft=Symbol.for("svg-scroll-draw.registry");function Nt(){let e=globalThis;return e[Ft]||(e[Ft]=new Map)}function Ce(e,r){Nt().set(e,r);}function De(e){Nt().delete(e);}var Xe,st=new Set,it=new WeakMap,Qe=new Map,Ht=e=>{let r=e.getBoundingClientRect();return r.width+" "+r.height};function sr(e){let r=new Set;for(let t of e)for(;t&&t!==document.body;t=t.parentElement)for(let n=t;n;n=n.previousElementSibling)r.add(n);return r}function je(e,r){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let t=()=>r();Xe??(Xe=new ResizeObserver(s=>{let a=false;for(let{target:u}of s)it.get(u)!==Ht(u)&&(a=true),it.set(u,"");a&&st.forEach(u=>u());})),st.add(t);let n=sr(e);return [document.body,document.documentElement].forEach(s=>s&&n.add(s)),n.forEach(s=>{it.has(s)||it.set(s,Ht(s)),Qe.set(s,(Qe.get(s)??0)+1),Xe.observe(s);}),()=>{st.delete(t)&&(n.forEach(s=>{let a=(Qe.get(s)??1)-1;if(a)return void Qe.set(s,a);Qe.delete(s),Xe?.unobserve(s);}),st.size||(Xe?.disconnect(),Xe=void 0));}}var ir=0;function ar(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function _t(e,r){let t="";try{t=getComputedStyle(e).getPropertyValue(r).trim();}catch{}return t||(e.getAttribute(r)??"").trim()}var Vt=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function lr(e){if(!Ue)return;let r=_t(e,"stroke");if(!r||r==="none"){Z("Element has no stroke \u2014 path will not be visible.",e);return}let t=(e.getAttribute("fill")??"").trim();t&&!Vt.has(t)&&!Vt.has(_t(e,"fill"))&&Z("Element has a fill \u2014 it may obscure the stroke animation.",e);}function cr(e,r,t){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 s(){let a=t==="x"?window.scrollX:window.scrollY,u=e-a,m=r-a,c=t==="x";n.innerHTML=`
2
+ <div style="position:absolute;${c?`left:${u}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${u}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;${c?`left:${m}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${m}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",s,{passive:true}),s(),{el:n,destroy(){window.removeEventListener("scroll",s),n.remove();}}}var zt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,Wt=/[MmLlHhVvCcSsQqTtAaZz]/g;function ur(e,r,t){if(!Ue)return;let n=(e.match(Wt)??[]).join("").toUpperCase(),s=(r.match(Wt)??[]).join("").toUpperCase(),a=(e.match(zt)??[]).length,u=(r.match(zt)??[]).length;if(n!==s){Z(`morphTo: command sequence differs (${n||"\u2205"} \u2192 ${s||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,t);return}a!==u&&Z(`morphTo: coordinate count differs (${a} \u2192 ${u}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,t);}function dt(e,r,t){let n=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),s=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,a=>{let u=parseFloat(a),m=n[s++]??u;return String(+(u+(m-u)*t).toFixed(4))})}function qt(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:t,...n}=r,s=t?{...pt[t],...n}:n,a=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:u="path, polyline, line, polygon, rect, circle",speed:m=1,fade:c=false,easing:f="linear",trigger:A={},stagger:M=0,direction:v="forward",once:oe=false,debug:Te=false,axis:E="y",scrollContainer:$,autoReverse:d=false,delay:S=0,strokeColor:x,strokeWidth:I,fillOpacity:K,waypoints:q,velocityScale:se=false,threshold:le=0,rootMargin:j="0px",repeat:O=0,repeatDelay:Ne=0,morphTo:Y,clip:ye,autoplay:Ae=false,duration:He=1e3,native:_e=true,onProgress:de,onStart:J,onComplete:p,onEnter:R,onLeave:Ve,onEnterBack:Ee,onLeaveBack:Me}=s,ie=ye===true?"left":typeof ye=="string"?ye:false,he=typeof f=="function"?f:ne[f]??ne.linear,Se=ke(A.start??"top bottom"),ze=ke(A.end??"bottom top"),ce=typeof $=="string"?document.querySelector($):$??null,ge=Array.isArray(x)?x[0]:null,ee=Array.isArray(x)?x[1]:typeof x=="string"?x:null,_=Array.isArray(I)?I[0]:null,U=Array.isArray(I)?I[1]:typeof I=="number"?I:null,X=Array.isArray(K)?K[0]:null,V=Array.isArray(K)?K[1]:typeof K=="number"?K:null;function $e(o){let i=o*100;switch(ie){case "right":return `inset(0 0 0 ${100-i}%)`;case "top":return `inset(0 0 ${100-i}% 0)`;case "bottom":return `inset(${100-i}% 0 0 0)`;case "center":return `circle(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-i}% 0 0)`}}let k=ie?[]:Array.from(e.querySelectorAll(u)),P=[],te=[],B=0,ue=0,l=M,h=0,C=false,F=false,T=0,G=false,ae=-1,Pe=[],Q=-1,N=false,me=0,Le=0,Ie,ct=null;function wt(){ct?.destroy(),ct=null;}let Oe=new Set,vt=NaN,Re=true,Ze=-1,Et=performance.now(),We=NaN;function Ke(){return ce?E==="x"?ce.scrollLeft:ce.scrollTop:E==="x"?window.scrollX:window.scrollY}function St(){return ce?E==="x"?ce.clientWidth:ce.clientHeight:E==="x"?window.innerWidth:window.innerHeight}function xt(){let o=nt(e,ce,E);return Fe(o,o.scroll,St(),Se,ze)}function Ut(){let o=ue-B,i=k.length-1,y=ce??document.documentElement,z=E==="x"?"Width":"Height";if(l=M,M>0&&i>0&&o>0){let be=y[`scroll${z}`]-y[`client${z}`]-1-B-o/m;be>=0&&(l=Math.min(M,be/(i*o)));}h=ue+i*l*o;}function Tt(){(({tStart:B,tEnd:ue}=xt())),Ut(),Te&&Ue&&(wt(),ct=cr(B,ue,E));}function ut(o,i=xt){Ce(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:i});let y=o.destroy;return o.destroy=()=>{y.call(o),De(e);},o}function Xt(o,i){if(e.style.setProperty("--scroll-draw-progress",String(o)),ie){let y=i==="reverse"?1-o:o;e.style.clipPath=$e(y);return}k.forEach((y,z)=>{y.style.strokeDashoffset=i==="reverse"?`${P[z]*o}`:`${P[z]*(1-o)}`,c&&(y.style.opacity=i==="reverse"?`${1-o}`:`${o}`),ge&&ee?y.style.stroke=Ge(ge,ee,o):ee&&(y.style.stroke=ee),_!==null&&U!==null?y.style.strokeWidth=`${_+(U-_)*o}`:U!==null&&(y.style.strokeWidth=`${U}`),X!==null&&V!==null?y.style.fillOpacity=`${X+(V-X)*o}`:V!==null&&(y.style.fillOpacity=`${V}`),Y&&y.tagName.toLowerCase()==="path"&&te[z]&&y.setAttribute("d",dt(te[z],Y,o));});}function Je(){if(e.style.setProperty("--scroll-draw-progress","0"),ie){e.style.clipPath=$e(0);return}k.forEach((o,i)=>{o.style.strokeDasharray=`${P[i]}`,o.style.strokeDashoffset=v==="reverse"?"0":`${P[i]}`,c?o.style.opacity=v==="reverse"?"1":"0":o.style.opacity="",ge&&(o.style.stroke=ge),_!==null&&(o.style.strokeWidth=`${_}`),X!==null&&(o.style.fillOpacity=`${X}`),Y&&o.tagName.toLowerCase()==="path"&&te[i]&&o.setAttribute("d",te[i]);});}if(k.forEach(o=>{lr(o);let i=Be(o);P.push(i);let y=o.tagName.toLowerCase()==="path";y?te.push(o.getAttribute("d")??""):te.push(""),Y&&(y?ur(te[te.length-1],Y,o):Z(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),a?(o.style.strokeDasharray=`${i}`,o.style.strokeDashoffset=v==="reverse"?`${i}`:"0",c&&(o.style.opacity="1"),ee&&(o.style.stroke=ee),U!==null&&(o.style.strokeWidth=`${U}`),V!==null&&(o.style.fillOpacity=`${V}`),Y&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",Y)):(o.style.strokeDasharray=`${i}`,o.style.strokeDashoffset=v==="reverse"?"0":`${i}`,c?o.style.opacity=v==="reverse"?"1":"0":o.style.opacity="",ge&&(o.style.stroke=ge),_!==null&&(o.style.strokeWidth=`${_}`),X!==null&&(o.style.fillOpacity=`${X}`));}),ie){if(a)return e.style.clipPath=$e(1),p?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=$e(0);}else if(a)return p?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let At=typeof f=="string"?ot(f):null;function Qt(){return !(_e===false||!ar()||!k.length||!At||ie||E!=="y"||ce||m!==1||M!==0||oe||d||se!==false||Y||q||O||S>0||de||J||p||R||Ve||Ee||Me||x!=null||I!=null||K!=null||(A.start??"top bottom").trim()!=="top bottom"||(A.end??"bottom top").trim()!=="bottom top")}function Zt(){let o=++ir,i=`svg-scroll-draw-${o}`,y=`svg-scroll-draw-host-${o}`,z=`--svg-scroll-draw-${o}`,be=v==="reverse"?"0":"var(--ssd-len)",xe=v==="reverse"?"var(--ssd-len)":"0",ve=`stroke-dashoffset:${be};`,w=`stroke-dashoffset:${xe};`;c&&(ve+=`opacity:${v==="reverse"?1:0};`,w+=`opacity:${v==="reverse"?0:1};`);let L=document.createElement("style");L.setAttribute("data-svg-scroll-draw",""),L.textContent=`@keyframes ${i}{from{${ve}}to{${w}}}.${y}{view-timeline-name:${z};view-timeline-axis:block;}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${At};animation-fill-mode:both;animation-timeline:${z};animation-range:cover 0% cover 100%;}`,document.head.appendChild(L),e.classList.add(y);function re(g,W){g.style.setProperty("--ssd-len",String(P[W])),g.style.strokeDasharray=`${P[W]}`,g.style.strokeDashoffset="",g.style.opacity="",g.style.animationPlayState="",g.classList.add(i);}k.forEach(re);let b=false,D=-1;function H(){if(D>=0)return D;let g=e.getBoundingClientRect(),{tStart:W,tEnd:we}=Fe({top:g.top,height:g.height},Ke(),St(),Se,ze);return he(pe(Ke(),W,we,m))}return {destroy(){e.classList.remove(y),k.forEach(g=>{g.classList.remove(i),g.style.removeProperty("--ssd-len"),g.style.animationPlayState="";}),L.remove();},replay(){b=false,D=-1,k.forEach(re);},pause(){b=true,k.forEach(g=>{g.style.animationPlayState="paused";});},resume(){b&&(b=false,k.forEach(g=>{g.style.animationPlayState="running";}));},seek(g){let W=Math.min(1,Math.max(0,g));D=W,b=true,k.forEach((we,fe)=>{we.classList.remove(i),we.style.strokeDashoffset=v==="reverse"?`${P[fe]*W}`:`${P[fe]*(1-W)}`,c&&(we.style.opacity=v==="reverse"?`${1-W}`:`${W}`);});},getProgress(){return H()},refresh(){k.forEach((g,W)=>{P[W]=Be(g),g.style.setProperty("--ssd-len",String(P[W])),g.style.strokeDasharray=`${P[W]}`;});}}}if(Qt())return ut(Zt());function Kt(){let o=Math.max(1,He),i=0,y=0,z=false;function be(b){let D=true;if(ie){let H=Math.min(1,Math.max(0,b/o)),g=he(H);me=g,e.style.setProperty("--scroll-draw-progress",String(g)),e.style.clipPath=$e(v==="reverse"?1-g:g),de?.(g),H<1&&(D=false);}else k.forEach((H,g)=>{let W=g*M*o,we=Math.min(1,Math.max(0,(b-W)/o)),fe=he(we);H.style.strokeDashoffset=v==="reverse"?`${P[g]*fe}`:`${P[g]*(1-fe)}`,c&&(H.style.opacity=v==="reverse"?`${1-fe}`:`${fe}`),ge&&ee?H.style.stroke=Ge(ge,ee,fe):ee&&(H.style.stroke=ee),_!==null&&U!==null?H.style.strokeWidth=`${_+(U-_)*fe}`:U!==null&&(H.style.strokeWidth=`${U}`),X!==null&&V!==null?H.style.fillOpacity=`${X+(V-X)*fe}`:V!==null&&(H.style.fillOpacity=`${V}`),Y&&H.tagName.toLowerCase()==="path"&&te[g]&&H.setAttribute("d",dt(te[g],Y,fe)),g===0&&(me=fe,de?.(fe),e.style.setProperty("--scroll-draw-progress",String(fe))),we<1&&(D=false);});if(q){let H=Math.min(1,Math.max(0,b/o)),g=he(H);for(let W in q){let we=parseFloat(W);g>=we&&!Oe.has(we)&&(Oe.add(we),q[W]?.());}}return D}function xe(b){if(N)return;let D=b-i;F||(F=true,J?.());let H=be(D);if(H&&!C){C=true,be(o*(1+Math.max(0,k.length-1)*M)),p?.(),Le<(O==="infinite"?1/0:O??0)&&(Le++,Ie=setTimeout(()=>{i=performance.now(),F=false,C=false,Oe.clear(),Je(),T=requestAnimationFrame(xe);},Ne));return}H||(T=requestAnimationFrame(xe));}function ve(){cancelAnimationFrame(T),clearTimeout(Ie),i=performance.now(),y=0,N=false,F=false,C=false,Le=0,z=true,me=0,Oe.clear(),Je(),T=requestAnimationFrame(xe);}let w=new IntersectionObserver(b=>{b.forEach(D=>{D.isIntersecting&&!(oe&&C)?ve():!D.isIntersecting&&!oe&&!C&&(cancelAnimationFrame(T),clearTimeout(Ie),z=false);});},{root:ce??null,threshold:le,rootMargin:j}),L;function re(){clearTimeout(L),L=setTimeout(()=>{k.forEach((b,D)=>{P[D]=Be(b),b.style.strokeDasharray=`${P[D]}`;});},150);}return window.addEventListener("resize",re),window.addEventListener("orientationchange",re),S>0?setTimeout(()=>w.observe(e),S):w.observe(e),{destroy(){cancelAnimationFrame(T),clearTimeout(Ie),w.disconnect(),window.removeEventListener("resize",re),window.removeEventListener("orientationchange",re),clearTimeout(L);},replay(){Le=0,ve();},pause(){N||!z||(N=true,y=performance.now()-i,cancelAnimationFrame(T));},resume(){N&&(N=false,z=true,i=performance.now()-y,T=requestAnimationFrame(xe));},seek(b){let D=Math.min(1,Math.max(0,b));me=D,N=true,y=D*o,i=performance.now()-y,cancelAnimationFrame(T),be(y);},getProgress(){return me},refresh(){clearTimeout(L),k.forEach((b,D)=>{P[D]=Be(b),b.style.strokeDasharray=`${P[D]}`;});}}}if(Ae)return ut(Kt());Tt();function Mt(){if(N||!qe)return;let o=performance.now(),i=Ke();if(!Re&&se===false&&i===vt){mt(i);return}Re=false,vt=i;let y=m;if(se!==false){let w=o-Et,L=w>0?Math.abs(i-(Ze<0?i:Ze))/w:0;y=m*Math.max(.2,1+L*(typeof se=="number"?se:1)*.04);}Ze=i,Et=o;let z=d?Q===-1||i>=Q?"forward":"reverse":v;Q=i;let be=ue-B,xe=true,ve=be===0?0:(i-B)/be;if(isNaN(We)||(We<=0&&ve>0?R?.():We>0&&ve<=0&&Me?.(),We<1&&ve>=1?Ve?.():We>=1&&ve<1&&Ee?.()),We=ve,ie){let w=he(pe(i,B,ue,y));oe&&!d&&(ae=Math.max(ae,w),w=ae),me=w,e.style.setProperty("--scroll-draw-progress",String(w));let L=z==="reverse"?1-w:w;e.style.clipPath=$e(L),de?.(w),!F&&pe(i,B,ue,y)>0&&(F=true,J?.()),w>=1&&!C?(C=true,p?.(),Le<(O==="infinite"?1/0:O??0)&&(Le++,Ie=setTimeout(()=>{ae=-1,F=false,C=false,e.style.clipPath=$e(0);},Ne))):w<1&&!oe&&(C=false),mt(i);return}if(k.forEach((w,L)=>{let re=L*l*be,b=he(pe(i,B+re,ue+re,y));oe&&!d&&(b=Pe[L]=Math.max(Pe[L]??ae,b)),w.style.strokeDashoffset=z==="reverse"?`${P[L]*b}`:`${P[L]*(1-b)}`,c&&(w.style.opacity=z==="reverse"?`${1-b}`:`${b}`),ge&&ee?w.style.stroke=Ge(ge,ee,b):ee&&(w.style.stroke=ee),_!==null&&U!==null?w.style.strokeWidth=`${_+(U-_)*b}`:U!==null&&(w.style.strokeWidth=`${U}`),X!==null&&V!==null?w.style.fillOpacity=`${X+(V-X)*b}`:V!==null&&(w.style.fillOpacity=`${V}`),Y&&w.tagName.toLowerCase()==="path"&&te[L]&&w.setAttribute("d",dt(te[L],Y,b)),L===0&&(me=b,de?.(b),e.style.setProperty("--scroll-draw-progress",String(b))),b<1&&(xe=false);}),q){let w=he(pe(i,B,ue,y));for(let L in q){let re=parseFloat(L);w>=re&&!Oe.has(re)&&(Oe.add(re),q[L]?.());}}!F&&pe(i,B,ue,y)>0&&(F=true,J?.()),xe&&!C?(C=true,p?.(),Le<(O==="infinite"?1/0:O??0)&&(Le++,Ie=setTimeout(()=>{ae=-1,Pe=[],F=false,C=false,Oe.clear(),Je(),Re=true;},Ne))):!xe&&!oe&&(C=false),mt(i);}function $t(o){return o>=ue&&o<h}function mt(o){G||$t(o)?T=requestAnimationFrame(Mt):qe=false;}let qe=false;function et(){qe||(qe=true,T=requestAnimationFrame(function(){Mt();}));}function tt(){qe=false,cancelAnimationFrame(T);}let ft=new IntersectionObserver(o=>{o.forEach(i=>{G=i.isIntersecting,G&&!N?(Re=true,et()):qe&&!N&&$t(Ke())||tt();});},{root:ce??null,threshold:le,rootMargin:j});function Pt(){k.forEach((o,i)=>{P[i]=Be(o),o.style.strokeDasharray=`${P[i]}`;}),Tt(),Re=true;}let rt;function Ye(){clearTimeout(rt),rt=setTimeout(Pt,150);}window.addEventListener("resize",Ye),window.addEventListener("orientationchange",Ye);let Jt=je([e],Ye);return S>0?setTimeout(()=>ft.observe(e),S):ft.observe(e),ut({destroy(){cancelAnimationFrame(T),clearTimeout(Ie),tt(),ft.disconnect(),Jt(),window.removeEventListener("resize",Ye),window.removeEventListener("orientationchange",Ye),clearTimeout(rt),wt();},replay(){ae=-1,Pe=[],Q=-1,Ze=-1,F=false,C=false,Le=0,N=false,me=0,Oe.clear(),clearTimeout(Ie),Je(),Re=true,G&&et();},pause(){N=true,tt();},resume(){N&&(N=false,Re=true,G&&et());},seek(o){let i=Math.min(1,Math.max(0,o));me=i,ae=i,Pe=[],N=true,tt(),Xt(i,v),Re=true;},getProgress(){return me},refresh(){clearTimeout(rt),Pt(),G&&!N&&et();}},()=>({tStart:B,tEnd:ue}))}function mr(e,r){let t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return t;let n=typeof e=="string"?document.querySelector(e):e;return n?qt(n,r):(Z("Container not found:",e),t)}function fr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Bt(e){let r=[],t=/([\w]+)\(([^)]*)\)/g,n;for(;(n=t.exec(e))!==null;){let s=[],a=[],u=n[2].trim();if(u)for(let m of u.split(/[\s,]+/)){let c=m.match(/^([-+]?[\d.eE]+)(.*)$/);s.push(c?parseFloat(c[1]):0),a.push(c?c[2]:"");}r.push({fn:n[1],nums:s,units:a});}return r}function pr(e,r,t){let n=Bt(e),s=Bt(r);return n.length===0||n.length!==s.length?t<1?e:r:n.map((a,u)=>{let m=s[u];return a.fn!==m.fn||a.nums.length!==m.nums.length?t<1?`${a.fn}(${a.nums.map((c,f)=>`${c}${a.units[f]}`).join(", ")})`:`${m.fn}(${m.nums.map((c,f)=>`${c}${m.units[f]}`).join(", ")})`:`${a.fn}(${a.nums.map((c,f)=>`${c+(m.nums[f]-c)*t}${a.units[f]}`).join(", ")})`}).join(" ")}function Gt(e,r,t){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*t);let n=String(e),s=String(r);if(fr(n))return Ge(n,s,t);if(n.includes("("))return pr(n,s,t);let a=n.match(/^([-+]?[\d.]+)(.*)$/),u=s.match(/^([-+]?[\d.]+)(.*)$/);if(a&&u){let m=parseFloat(a[1]),c=parseFloat(u[1]);return `${m+(c-m)*t}${a[2]||u[2]}`}return t<1?n:s}function dr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var gr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),yr=0,jt="--scroll-draw-progress";function hr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function gt(e,r){let t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return t;let{props:n,trigger:s={},easing:a="ease-out",speed:u=1,once:m=false,axis:c="y",scrollContainer:f,native:A=true,velocityScale:M=false,respectReducedMotion:v=true,triggerElement:oe,onProgress:Te,onComplete:E,onEnter:$,onLeave:d,onEnterBack:S,onLeaveBack:x}=r,I=v&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,K=typeof a=="function"?a:ne[a]??ne["ease-out"],q=ke(s.start??"top bottom"),se=ke(s.end??"bottom top"),le=oe??e,j=typeof f=="string"?document.querySelector(f):f??null,O=Object.entries(n).map(([l,h])=>({prop:dr(l),from:Array.isArray(h)?h[0]:"",to:Array.isArray(h)?h[1]:h}));function Ne(){let l=window.getComputedStyle(e);for(let h of O)h.from===""&&(h.from=l.getPropertyValue(h.prop).trim()||"0");}function Y(){for(let l of O)e.style.setProperty(l.prop,String(l.to));}let ye=new Map;for(let l of [...O.map(h=>h.prop),jt])ye.set(l,e.style.getPropertyValue(l));function Ae(){for(let[l,h]of ye)h?e.style.setProperty(l,h):e.style.removeProperty(l);}if(I)return Y(),E?.(),{...t,destroy:Ae,getProgress:()=>1};Ne();let He=typeof a=="string"?ot(a):null;function _e(){if(!A||!hr()||!He||c!=="y"||j||le!==e||m||u!==1||Te||E||$||d||S||x||M!==false||(s.start??"top bottom").trim()!=="top bottom"||(s.end??"bottom top").trim()!=="bottom top")return false;for(let l of O)if(!gr.has(l.prop))return false;return true}function de(){let l=`ssd-a-${++yr}`,h=O.map(Q=>`${Q.prop}:${Q.from}`).join(";"),C=O.map(Q=>`${Q.prop}:${Q.to}`).join(";"),F=document.createElement("style");F.setAttribute("data-ssd-animate",""),F.textContent=`@keyframes ${l}{from{${h}}to{${C}}}.${l}{animation-name:${l};animation-duration:auto;animation-timing-function:${He};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(l);let T=()=>c==="x"?window.scrollX:window.scrollY,G=()=>c==="x"?window.innerWidth:window.innerHeight,ae=()=>{let Q=e.getBoundingClientRect();return Fe({top:Q.top,height:Q.height},T(),G(),q,se)};Ce(e,{type:"animate",getProgress:()=>Pe.getProgress(),getTrigger:ae});let Pe={refresh(){},destroy(){e.classList.remove(l),F.remove(),e.style.animationPlayState="",Ae(),De(e);},replay(){e.classList.remove(l),e.offsetWidth,e.classList.add(l);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(Q){let N=Math.min(1,Math.max(0,Q));e.classList.remove(l);for(let me of O)e.style.setProperty(me.prop,Gt(me.from,me.to,N));},getProgress(){let{tStart:Q,tEnd:N}=ae();return K(pe(T(),Q,N,u))}};return Pe}if(_e())return de();let J=0,p=0,R=0,Ve=false,Ee=false,Me=-1,ie=0,he=false,Se=NaN,ze=-1,ce=0,ge=()=>j?c==="x"?j.scrollLeft:j.scrollTop:c==="x"?window.scrollX:window.scrollY,ee=()=>j?c==="x"?j.clientWidth:j.clientHeight:c==="x"?window.innerWidth:window.innerHeight,_=le===e?O:[],U=false;function X(){let l=e.style,h=_.map(G=>l.getPropertyValue(G.prop)),C=l.transition;_.length&&(l.transition="none"),_.forEach(G=>l.setProperty(G.prop,ye.get(G.prop)??""));let F=nt(le,j,c);_.forEach((G,ae)=>l.setProperty(G.prop,h[ae])),_.length&&(e.offsetWidth,l.transition=C);let T=Fe(F,F.scroll,ee(),q,se);U&&Math.abs(T.tStart-J)<1&&Math.abs(T.tEnd-p)<1||(U=true,J=T.tStart,p=T.tEnd);}function V(l){e.style.setProperty(jt,String(l));for(let h of O)e.style.setProperty(h.prop,Gt(h.from,h.to,l));Te?.(l);}function $e(l){if(isNaN(Se)){Se=l;return}Se<=0&&l>0?$?.():Se>0&&l<=0&&x?.(),Se<1&&l>=1?d?.():Se>=1&&l<1&&S?.(),Se=l;}function k(){if(!Ve||Ee)return;let l=performance.now(),h=ge(),C=u;if(M!==false){let G=l-ce,ae=G>0?Math.abs(h-(ze<0?h:ze))/G:0;C=u*Math.max(.2,1+ae*(typeof M=="number"?M:1)*.04);}ze=h,ce=l;let F=p===J?0:(h-J)/(p-J);$e(F);let T=K(pe(h,J,p,C));m&&(Me=Math.max(Me,T),T=Me),ie=T,V(T),T>=1&&!he?(he=true,E?.()):T<1&&!m&&(he=false),R=requestAnimationFrame(k);}X(),p===J&&Z("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let l=K(pe(ge(),J,p,u));m&&l>0&&(Me=l),ie=l,V(l);}let P=new IntersectionObserver(l=>{l.forEach(h=>{Ve=h.isIntersecting,Ve&&!Ee?R=requestAnimationFrame(k):cancelAnimationFrame(R);});},{root:j??null}),te;function B(){clearTimeout(te),te=setTimeout(X,150);}window.addEventListener("resize",B),window.addEventListener("orientationchange",B);let ue=je([le],B);return P.observe(e),Ce(e,{type:"animate",getProgress:()=>ie,getTrigger:()=>({tStart:J,tEnd:p})}),{destroy(){cancelAnimationFrame(R),P.disconnect(),window.removeEventListener("resize",B),window.removeEventListener("orientationchange",B),ue(),clearTimeout(te),Ae(),De(e);},replay(){Me=-1,he=false,ie=0,Ee=false,V(0);},pause(){Ee=true,cancelAnimationFrame(R);},resume(){Ee&&(Ee=false,Ve&&(R=requestAnimationFrame(k)));},seek(l){let h=Math.min(1,Math.max(0,l));ie=h,Me=h,Ee=true,cancelAnimationFrame(R),V(h);},getProgress(){return ie},refresh(){X();}}}var at={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function br(e,r){if(typeof window>"u")return at;let t=typeof e=="string"?document.querySelector(e):e;return t?gt(t,r):(Z("scrollAnimate: element not found:",e),at)}function wr(e,r={}){if(typeof window>"u")return at;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return Z("scrollParallax: element not found:",e),at;let{speed:n=.3,axis:s="y",easing:a="linear",trigger:u,onProgress:m}=r,c=-n*100,f=t.style,A=!!t.ownerSVGElement,M=f.getPropertyValue("transform-box");A&&f.setProperty("transform-box","fill-box");let v=gt(t,{props:s==="x"?{transform:["translateX(0%)",`translateX(${c}%)`]}:{transform:["translateY(0%)",`translateY(${c}%)`]},trigger:u??{start:"top bottom",end:"bottom top"},easing:a,native:false,onProgress:m});return A?{...v,destroy(){v.destroy(),f.setProperty("transform-box",M);}}:v}var yt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function vr(e,r){if(typeof window>"u")return yt;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return Z("scrollCounter: element not found:",e),yt;let n=t,{from:s=0,to:a,format:u,easing:m="ease-out",trigger:c={},once:f=true,decimals:A,onComplete:M}=r,v=A!==void 0?p=>p.toFixed(A):u??(p=>String(Math.round(p))),oe=typeof m=="function"?m:ne[m]??ne["ease-out"],Te=ke(c.start??"top 80%"),E=ke(c.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return n.textContent=v(a),M?.(),yt;let d=0,S=0,x=false,I=0,K=false,q=false,se=-1,le=0,j=false,O=()=>window.scrollY,Ne=()=>window.innerHeight;function Y(){let p=n.getBoundingClientRect(),R=Fe({top:p.top,height:p.height},O(),Ne(),Te,E);x&&Math.abs(R.tStart-d)<1&&Math.abs(R.tEnd-S)<1||(x=true,d=R.tStart,S=R.tEnd);}function ye(p){n.textContent=v(s+(a-s)*p),n.style.setProperty("--scroll-draw-progress",String(p));}function Ae(){if(!K||q)return;let p=oe(pe(O(),d,S,1));f&&(se=Math.max(se,p),p=se),le=p,ye(p),p>=1&&!j?(j=true,M?.()):p<1&&!f&&(j=false),I=requestAnimationFrame(Ae);}Y();{let p=oe(pe(O(),d,S,1));f&&p>0&&(se=p),le=p,ye(p);}let He=new IntersectionObserver(p=>{p.forEach(R=>{K=R.isIntersecting,K&&!q?I=requestAnimationFrame(Ae):cancelAnimationFrame(I);});}),_e;function de(){clearTimeout(_e),_e=setTimeout(Y,150);}window.addEventListener("resize",de),window.addEventListener("orientationchange",de);let J=je([n],de);return He.observe(n),Ce(n,{type:"counter",getProgress:()=>le,getTrigger:()=>({tStart:d,tEnd:S})}),{destroy(){cancelAnimationFrame(I),He.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),J(),clearTimeout(_e),De(n);},replay(){se=-1,j=false,le=0,q=false,ye(0);},pause(){q=true,cancelAnimationFrame(I);},resume(){q&&(q=false,K&&(I=requestAnimationFrame(Ae)));},seek(p){let R=Math.min(1,Math.max(0,p));le=R,se=R,q=true,cancelAnimationFrame(I),ye(R);},getProgress(){return le}}}var Yt="http://www.w3.org/2000/svg",Er="cinematic-photo",ht=e=>e<0?0:e>1?1:e;function lt(e){let r=parseFloat(e);return Number.isFinite(r)?ht(r/100):0}function Sr(e){return ne[e]??ne.linear}var xr={destroy:()=>{},getProgress:()=>0},bt=class{constructor(r){if(typeof document>"u"){this.mount=null;return}this.mount=typeof r.wrapper=="string"?document.querySelector(r.wrapper):r.wrapper,this.mount||Z("Cinematic: wrapper not found:",r.wrapper);}loadStory(r){let t=this.mount;if(typeof window>"u"||!t)return xr;t.style.position="relative",t.style.height=r.totalHeight,t.style.display="block";let n=document.createElement("div");n.setAttribute("data-cinematic-stage",""),n.style.cssText="position:sticky;top:0;height:100vh;width:100%;overflow:hidden;display:block;",t.appendChild(n);let s=[];for(let E of r.scenes){if(E.background){let d=document.createElement("img");d.id=Er,d.src=E.background,d.alt="",d.style.cssText="position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none;",n.appendChild(d);}let $=E.animations.filter(d=>d.type==="draw");if($.length){let d=document.createElementNS(Yt,"svg");d.setAttribute("viewBox",`0 0 ${r.canvas.width} ${r.canvas.height}`),d.setAttribute("preserveAspectRatio","xMidYMid meet"),d.style.cssText="position:absolute;inset:0;width:100%;height:100%;overflow:visible;",n.appendChild(d);for(let S of $){let x=document.createElementNS(Yt,"path");x.id=S.target.replace(/^#/,""),x.setAttribute("d",S.d),x.setAttribute("fill","none"),x.setAttribute("stroke",S.stroke),x.setAttribute("stroke-width",String(S.strokeWidth)),x.setAttribute("stroke-linecap","round"),x.setAttribute("stroke-linejoin","round");let I=S.length||x.getTotalLength?.()||0;x.style.strokeDasharray=String(I),x.style.strokeDashoffset=String(I),d.appendChild(x),s.push({kind:"draw",el:x,start:lt(S.start),end:lt(S.end),ease:Sr(S.easing),length:I});}}for(let d of E.animations){if(d.type!=="fade")continue;let S=n.querySelector(d.target)??document.querySelector(d.target);S&&(S.style.opacity=String(d.from),s.push({kind:"fade",el:S,start:lt(d.start),end:lt(d.end),ease:ne["ease-in-out"]??ne.linear,from:d.from,to:d.to}));}}let a=0,u=()=>{let E=t.offsetHeight-window.innerHeight;return E<=0?t.getBoundingClientRect().top<=0?1:0:ht(-t.getBoundingClientRect().top/E)},m=E=>{for(let $ of s){let d=$.end-$.start,S=d<=0?E>=$.end?1:0:ht((E-$.start)/d),x=$.ease(S);$.kind==="draw"?$.el.style.strokeDashoffset=String($.length*(1-x)):$.el.style.opacity=String($.from+($.to-$.from)*x);}};if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return m(1),{destroy:()=>{},getProgress:()=>1};let c=0,f=false,A=false,M=()=>{a=u(),m(a),f&&(c=requestAnimationFrame(M));},v=()=>{f||(f=true,c=requestAnimationFrame(M));},oe=()=>{f=false,cancelAnimationFrame(c);},Te=new IntersectionObserver(E=>{for(let $ of E)A=$.isIntersecting,A?v():oe();},{threshold:0});return Te.observe(n),a=u(),m(a),Ce(t,{type:"draw",getProgress:()=>a,getTrigger:()=>{let E=t.getBoundingClientRect().top+window.scrollY;return {tStart:E,tEnd:E+Math.max(0,t.offsetHeight-window.innerHeight)}}}),{destroy(){oe(),Te.disconnect(),De(t);},getProgress:()=>a}}};
4
+ exports.Cinematic=bt;exports.PRESETS=pt;exports.createBounce=Lt;exports.createElastic=kt;exports.createSpring=er;exports.scrollAnimate=br;exports.scrollCounter=vr;exports.scrollDraw=mr;exports.scrollParallax=wr;
package/dist/index.d.mts CHANGED
@@ -1,10 +1,10 @@
1
- import { a as ScrollDrawOptions } from './types-B0YM4nQP.mjs';
2
- export { P as PresetName, S as ScrollDrawInstance } from './types-B0YM4nQP.mjs';
3
- export { s as scrollDraw } from './scroll-draw-B4CadBz0.mjs';
4
- export { S as ScrollParallaxOptions, s as scrollAnimate, a as scrollParallax } from './index-Zxa5HIes.mjs';
5
- export { S as ScrollCounterOptions, s as scrollCounter } from './index-BlIjovDN.mjs';
1
+ import { a as ScrollDrawOptions } from './types-MswK0erX.mjs';
2
+ export { P as PresetName, S as ScrollDrawInstance } from './types-MswK0erX.mjs';
3
+ export { s as scrollDraw } from './scroll-draw-Dej-GIRP.mjs';
4
+ export { S as ScrollParallaxOptions, s as scrollAnimate, a as scrollParallax } from './index-CMqK0GCT.mjs';
5
+ export { S as ScrollCounterOptions, s as scrollCounter } from './index-CdaBYn3A.mjs';
6
6
  export { Cinematic, CinematicInstance, CinematicOptions, DrawAnimation, FadeAnimation, Story, StoryAnimation, StoryEasing, StoryScene } from './cinematic/index.mjs';
7
- export { S as ScrollAnimateOptions } from './engine-CvzRSkuk.mjs';
7
+ export { S as ScrollAnimateOptions } from './engine-P8u6OK4m.mjs';
8
8
 
9
9
  type PresetName = 'sketch' | 'reveal' | 'typewriter' | 'cinematic' | 'spring';
10
10
  /**
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
- import { a as ScrollDrawOptions } from './types-B0YM4nQP.js';
2
- export { P as PresetName, S as ScrollDrawInstance } from './types-B0YM4nQP.js';
3
- export { s as scrollDraw } from './scroll-draw-Cs6Z5ype.js';
4
- export { S as ScrollParallaxOptions, s as scrollAnimate, a as scrollParallax } from './index-G3VfLIN8.js';
5
- export { S as ScrollCounterOptions, s as scrollCounter } from './index-DZjvLJcU.js';
1
+ import { a as ScrollDrawOptions } from './types-MswK0erX.js';
2
+ export { P as PresetName, S as ScrollDrawInstance } from './types-MswK0erX.js';
3
+ export { s as scrollDraw } from './scroll-draw-DsBMkwrX.js';
4
+ export { S as ScrollParallaxOptions, s as scrollAnimate, a as scrollParallax } from './index-DPqPEnO-.js';
5
+ export { S as ScrollCounterOptions, s as scrollCounter } from './index-D3o4vT3e.js';
6
6
  export { Cinematic, CinematicInstance, CinematicOptions, DrawAnimation, FadeAnimation, Story, StoryAnimation, StoryEasing, StoryScene } from './cinematic/index.js';
7
- export { S as ScrollAnimateOptions } from './engine-C9LKls__.js';
7
+ export { S as ScrollAnimateOptions } from './engine-DQyBzZDl.js';
8
8
 
9
9
  type PresetName = 'sketch' | 'reveal' | 'typewriter' | 'cinematic' | 'spring';
10
10
  /**
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- export{a as scrollAnimate,b as scrollParallax}from'./chunk-MTEGM4RR.mjs';export{a as Cinematic}from'./chunk-KGAJQP2N.mjs';export{a as scrollDraw}from'./chunk-JPK2NJWO.mjs';export{a as scrollCounter}from'./chunk-KHQ7OGQK.mjs';import'./chunk-BFX2CSQ3.mjs';export{a as PRESETS}from'./chunk-WHFRS7IP.mjs';import'./chunk-OJFWQ6CU.mjs';import'./chunk-YWKPTYSG.mjs';import'./chunk-YZV4Z3EQ.mjs';import'./chunk-A4JCC3QQ.mjs';export{b as createBounce,c as createElastic,a as createSpring}from'./chunk-DM6EDKWH.mjs';import'./chunk-4DOJSIEQ.mjs';import'./chunk-BCV4RAIX.mjs';import'./chunk-LFSU6LR3.mjs';
1
+ export{a as scrollAnimate,b as scrollParallax}from'./chunk-MTEGM4RR.mjs';export{a as Cinematic}from'./chunk-KGAJQP2N.mjs';export{a as scrollDraw}from'./chunk-6SSA5V7J.mjs';export{a as scrollCounter}from'./chunk-KHQ7OGQK.mjs';import'./chunk-BFX2CSQ3.mjs';export{a as PRESETS}from'./chunk-LQBXJRFY.mjs';import'./chunk-OJFWQ6CU.mjs';import'./chunk-YWKPTYSG.mjs';import'./chunk-YZV4Z3EQ.mjs';import'./chunk-A4JCC3QQ.mjs';export{b as createBounce,c as createElastic,a as createSpring}from'./chunk-DM6EDKWH.mjs';import'./chunk-4DOJSIEQ.mjs';import'./chunk-BCV4RAIX.mjs';import'./chunk-LFSU6LR3.mjs';
@@ -1,3 +1,3 @@
1
- 'use strict';var vue=require('vue');function ur({bounces:e=3,decay:n=.5}={}){let r=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,n)),o=Math.sqrt(t),s=0,l=[];for(let g=0;g<r;g++){let T=Math.pow(o,g);l.push(T),s+=T;}let u=[0],m=0;for(let g=0;g<r;g++)m+=l[g]/s,u.push(m);return g=>{if(g<=0)return 0;if(g>=1)return 1;for(let T=0;T<r;T++)if(g<=u[T+1]){let q=(g-u[T])/(u[T+1]-u[T]);if(T===0)return q*(2-q);let A=1-Math.pow(t,T);return A+(1-A)*(2*q-1)*(2*q-1)}return 1}}function mr({amplitude:e=1,period:n=.4}={}){let r=Math.max(1,e),t=Math.max(.1,n),o=r<=1?t/4:t/(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)/t)+1}var ie={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:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:ur(),elastic:mr()};function Dt(e,n,r){return Math.min(r,Math.max(n,e))}function he(e="top bottom"){let n=e.trim();if(/^\d+(\.\d+)?%$/.test(n))return {element:"top",viewport:n};let[r="top",t="bottom"]=n.split(/\s+/).filter(Boolean);return {element:r,viewport:t}}function It(e,n,r,t){switch(t){case "top":return e+r;case "center":return e+r+n/2;case "bottom":return e+r+n;default:return e+r}}function Ft(e,n){if(/^\d+(\.\d+)?%$/.test(e))return n*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return n/2;case "bottom":return n;default:return n}}function Z(e,n,r,t){return r===n?0:Dt((e-n)/(r-n)*t,0,1)}function Le(e,n,r,t,o){let s=It(e.top,e.height,n,t.element)-Ft(t.viewport,r),l=It(e.top,e.height,n,o.element)-Ft(o.viewport,r);return {tStart:s,tEnd:l}}function st(e,n,r){let t=e.getBoundingClientRect(),o=r==="x"?t.width:t.height;return n?{top:r==="x"?t.left-n.getBoundingClientRect().left+n.scrollLeft:t.top-n.getBoundingClientRect().top+n.scrollTop,height:o,scroll:0}:{top:r==="x"?t.left:t.top,height:o,scroll:r==="x"?window.scrollX:window.scrollY}}function We(e){let n=e.tagName.toLowerCase();if(n==="rect"){let r=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(r+t)}if(n==="circle"){let r=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*r}return e.getTotalLength()}function Nt(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 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 t=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return t?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]:null}function Ge(e,n,r){let t=Nt(e),o=Nt(n);return !t||!o?e:`rgb(${Math.round(t[0]+(o[0]-t[0])*r)},${Math.round(t[1]+(o[1]-t[1])*r)},${Math.round(t[2]+(o[2]-t[2])*r)})`}var Ht={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 Ue=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function be(e,...n){Ue&&console.warn(`[svg-scroll-draw] ${e}`,...n);}var fr="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",pr="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Vt=33;function dr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function gr(e){let n=[];for(let r=0;r<Vt;r++){let t=r/(Vt-1);n.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${n.join(",")})`}function it(e){switch(e){case "linear":return "linear";case "ease-in":return fr;case "ease-out":return pr;case "ease-in-out":return dr()?gr(ie["ease-in-out"]):null;default:return null}}var zt=Symbol.for("svg-scroll-draw.registry");function _t(){let e=globalThis;return e[zt]||(e[zt]=new Map)}function ke(e,n){_t().set(e,n);}function Re(e){_t().delete(e);}var Ye,at=new Set,lt=new WeakMap,Xe=new Map,qt=e=>{let n=e.getBoundingClientRect();return n.width+" "+n.height};function yr(e){let n=new Set;for(let r of e)for(;r&&r!==document.body;r=r.parentElement)for(let t=r;t;t=t.previousElementSibling)n.add(t);return n}function Ie(e,n){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let r=()=>n();Ye??(Ye=new ResizeObserver(o=>{let s=false;for(let{target:l}of o)lt.get(l)!==qt(l)&&(s=true),lt.set(l,"");s&&at.forEach(l=>l());})),at.add(r);let t=yr(e);return [document.body,document.documentElement].forEach(o=>o&&t.add(o)),t.forEach(o=>{lt.has(o)||lt.set(o,qt(o)),Xe.set(o,(Xe.get(o)??0)+1),Ye.observe(o);}),()=>{at.delete(r)&&(t.forEach(o=>{let s=(Xe.get(o)??1)-1;if(s)return void Xe.set(o,s);Xe.delete(o),Ye?.unobserve(o);}),at.size||(Ye?.disconnect(),Ye=void 0));}}var hr=0;function br(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Bt(e,n){let r="";try{r=getComputedStyle(e).getPropertyValue(n).trim();}catch{}return r||(e.getAttribute(n)??"").trim()}var Wt=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function wr(e){if(!Ue)return;let n=Bt(e,"stroke");if(!n||n==="none"){be("Element has no stroke \u2014 path will not be visible.",e);return}let r=(e.getAttribute("fill")??"").trim();r&&!Wt.has(r)&&!Wt.has(Bt(e,"fill"))&&be("Element has a fill \u2014 it may obscure the stroke animation.",e);}function vr(e,n,r){let t=document.createElement("div");t.setAttribute("data-svg-scroll-draw-debug",""),t.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,l=e-s,u=n-s,m=r==="x";t.innerHTML=`
1
+ 'use strict';var vue=require('vue');function gr({bounces:e=3,decay:n=.5}={}){let r=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,n)),s=Math.sqrt(t),i=0,l=[];for(let d=0;d<r;d++){let T=Math.pow(s,d);l.push(T),i+=T;}let u=[0],m=0;for(let d=0;d<r;d++)m+=l[d]/i,u.push(m);return d=>{if(d<=0)return 0;if(d>=1)return 1;for(let T=0;T<r;T++)if(d<=u[T+1]){let F=(d-u[T])/(u[T+1]-u[T]);if(T===0)return F*(2-F);let A=1-Math.pow(t,T);return A+(1-A)*(2*F-1)*(2*F-1)}return 1}}function yr({amplitude:e=1,period:n=.4}={}){let r=Math.max(1,e),t=Math.max(.1,n),s=r<=1?t/4:t/(2*Math.PI)*Math.asin(1/r);return i=>i<=0?0:i>=1?1:r*Math.pow(2,-10*i)*Math.sin((i-s)*(2*Math.PI)/t)+1}var ce={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:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:gr(),elastic:yr()};function Ht(e,n,r){return Math.min(r,Math.max(n,e))}function be(e="top bottom"){let n=e.trim();if(/^\d+(\.\d+)?%$/.test(n))return {element:"top",viewport:n};let[r="top",t="bottom"]=n.split(/\s+/).filter(Boolean);return {element:r,viewport:t}}function Vt(e,n,r,t){switch(t){case "top":return e+r;case "center":return e+r+n/2;case "bottom":return e+r+n;default:return e+r}}function zt(e,n){if(/^\d+(\.\d+)?%$/.test(e))return n*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return n/2;case "bottom":return n;default:return n}}function te(e,n,r,t){return r===n?0:Ht((e-n)/(r-n)*t,0,1)}function $e(e,n,r,t,s){let i=Vt(e.top,e.height,n,t.element)-zt(t.viewport,r),l=Vt(e.top,e.height,n,s.element)-zt(s.viewport,r);return {tStart:i,tEnd:l}}function lt(e,n,r){let t=e.getBoundingClientRect(),s=r==="x"?t.width:t.height;return n?{top:r==="x"?t.left-n.getBoundingClientRect().left+n.scrollLeft:t.top-n.getBoundingClientRect().top+n.scrollTop,height:s,scroll:0}:{top:r==="x"?t.left:t.top,height:s,scroll:r==="x"?window.scrollX:window.scrollY}}function Ue(e){let n=e.tagName.toLowerCase();if(n==="rect"){let r=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(r+t)}if(n==="circle"){let r=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*r}return e.getTotalLength()}function _t(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 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 t=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return t?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]:null}function Ye(e,n,r){let t=_t(e),s=_t(n);return !t||!s?e:`rgb(${Math.round(t[0]+(s[0]-t[0])*r)},${Math.round(t[1]+(s[1]-t[1])*r)},${Math.round(t[2]+(s[2]-t[2])*r)})`}var Bt={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 Ke=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function we(e,...n){Ke&&console.warn(`[svg-scroll-draw] ${e}`,...n);}var hr="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",br="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Wt=33;function wr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function vr(e){let n=[];for(let r=0;r<Wt;r++){let t=r/(Wt-1);n.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${n.join(",")})`}function ct(e){switch(e){case "linear":return "linear";case "ease-in":return hr;case "ease-out":return br;case "ease-in-out":return wr()?vr(ce["ease-in-out"]):null;default:return null}}var qt=Symbol.for("svg-scroll-draw.registry");function Gt(){let e=globalThis;return e[qt]||(e[qt]=new Map)}function ke(e,n){Gt().set(e,n);}function Re(e){Gt().delete(e);}var Qe,ut=new Set,mt=new WeakMap,Ze=new Map,jt=e=>{let n=e.getBoundingClientRect();return n.width+" "+n.height};function Sr(e){let n=new Set;for(let r of e)for(;r&&r!==document.body;r=r.parentElement)for(let t=r;t;t=t.previousElementSibling)n.add(t);return n}function Ie(e,n){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let r=()=>n();Qe??(Qe=new ResizeObserver(s=>{let i=false;for(let{target:l}of s)mt.get(l)!==jt(l)&&(i=true),mt.set(l,"");i&&ut.forEach(l=>l());})),ut.add(r);let t=Sr(e);return [document.body,document.documentElement].forEach(s=>s&&t.add(s)),t.forEach(s=>{mt.has(s)||mt.set(s,jt(s)),Ze.set(s,(Ze.get(s)??0)+1),Qe.observe(s);}),()=>{ut.delete(r)&&(t.forEach(s=>{let i=(Ze.get(s)??1)-1;if(i)return void Ze.set(s,i);Ze.delete(s),Qe?.unobserve(s);}),ut.size||(Qe?.disconnect(),Qe=void 0));}}var Er=0;function Tr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Ut(e,n){let r="";try{r=getComputedStyle(e).getPropertyValue(n).trim();}catch{}return r||(e.getAttribute(n)??"").trim()}var Yt=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function xr(e){if(!Ke)return;let n=Ut(e,"stroke");if(!n||n==="none"){we("Element has no stroke \u2014 path will not be visible.",e);return}let r=(e.getAttribute("fill")??"").trim();r&&!Yt.has(r)&&!Yt.has(Ut(e,"fill"))&&we("Element has a fill \u2014 it may obscure the stroke animation.",e);}function Mr(e,n,r){let t=document.createElement("div");t.setAttribute("data-svg-scroll-draw-debug",""),t.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 s(){let i=r==="x"?window.scrollX:window.scrollY,l=e-i,u=n-i,m=r==="x";t.innerHTML=`
2
2
  <div style="position:absolute;${m?`left:${l}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${l}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:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}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(t),window.addEventListener("scroll",o,{passive:true}),o(),{el:t,destroy(){window.removeEventListener("scroll",o),t.remove();}}}var Gt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,jt=/[MmLlHhVvCcSsQqTtAaZz]/g;function Sr(e,n,r){if(!Ue)return;let t=(e.match(jt)??[]).join("").toUpperCase(),o=(n.match(jt)??[]).join("").toUpperCase(),s=(e.match(Gt)??[]).length,l=(n.match(Gt)??[]).length;if(t!==o){be(`morphTo: command sequence differs (${t||"\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!==l&&be(`morphTo: coordinate count differs (${s} \u2192 ${l}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,r);}function dt(e,n,r){let t=(n.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),o=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let l=parseFloat(s),u=t[o++]??l;return String(+(l+(u-l)*r).toFixed(4))})}function gt(e,n={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:r,...t}=n,o=r?{...Ht[r],...t}:t,s=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:l="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:g="linear",trigger:T={},stagger:q=0,direction:A="forward",once:J=false,debug:Ce=false,axis:j="y",scrollContainer:ae,autoReverse:ee=false,delay:U=0,strokeColor:I,strokeWidth:$,fillOpacity:O,waypoints:b,velocityScale:P=false,threshold:x=0,rootMargin:M="0px",repeat:S=0,repeatDelay:te=0,morphTo:L,clip:re,autoplay:we=false,duration:ge=1e3,native:ye=true,onProgress:H,onStart:C,onComplete:f,onEnter:p,onLeave:k,onEnterBack:B,onLeaveBack:Se}=o,w=re===true?"left":typeof re=="string"?re:false,V=typeof g=="function"?g:ie[g]??ie.linear,le=he(T.start??"top bottom"),He=he(T.end??"bottom top"),Ee=typeof ae=="string"?document.querySelector(ae):ae??null,Te=Array.isArray(I)?I[0]:null,ce=Array.isArray(I)?I[1]:typeof I=="string"?I:null,Y=Array.isArray($)?$[0]:null,ne=Array.isArray($)?$[1]:typeof $=="number"?$:null,oe=Array.isArray(O)?O[0]:null,X=Array.isArray(O)?O[1]:typeof O=="number"?O:null;function Ve(i){let c=i*100;switch(w){case "right":return `inset(0 0 0 ${100-c}%)`;case "top":return `inset(0 0 ${100-c}% 0)`;case "bottom":return `inset(${100-c}% 0 0 0)`;case "center":return `circle(${i*150}% at 50% 50%)`;default:return `inset(0 ${100-c}% 0 0)`}}let W=w?[]:Array.from(e.querySelectorAll(l)),R=[],ue=[],me=0,$e=0,a=false,d=false,z=0,fe=false,F=-1,se=[],Pe=-1,K=false,N=0,xe=0,Me,ct=null;function At(){ct?.destroy(),ct=null;}let _e=new Set,Lt=NaN,qe=true,Je=-1,Ct=performance.now(),Be=NaN;function ut(){return Ee?j==="x"?Ee.scrollLeft:Ee.scrollTop:j==="x"?window.scrollX:window.scrollY}function $t(){return Ee?j==="x"?Ee.clientWidth:Ee.clientHeight:j==="x"?window.innerWidth:window.innerHeight}function Pt(){let i=st(e,Ee,j);return Le(i,i.scroll,$t(),le,He)}function Ot(){(({tStart:me,tEnd:$e}=Pt())),Ce&&Ue&&(At(),ct=vr(me,$e,j));}function mt(i,c=Pt){ke(e,{type:"draw",getProgress:()=>i.getProgress(),getTrigger:c});let v=i.destroy;return i.destroy=()=>{v.call(i),Re(e);},i}function sr(i,c){if(e.style.setProperty("--scroll-draw-progress",String(i)),w){let v=c==="reverse"?1-i:i;e.style.clipPath=Ve(v);return}W.forEach((v,pe)=>{v.style.strokeDashoffset=c==="reverse"?`${R[pe]*i}`:`${R[pe]*(1-i)}`,m&&(v.style.opacity=c==="reverse"?`${1-i}`:`${i}`),Te&&ce?v.style.stroke=Ge(Te,ce,i):ce&&(v.style.stroke=ce),Y!==null&&ne!==null?v.style.strokeWidth=`${Y+(ne-Y)*i}`:ne!==null&&(v.style.strokeWidth=`${ne}`),oe!==null&&X!==null?v.style.fillOpacity=`${oe+(X-oe)*i}`:X!==null&&(v.style.fillOpacity=`${X}`),L&&v.tagName.toLowerCase()==="path"&&ue[pe]&&v.setAttribute("d",dt(ue[pe],L,i));});}function et(){if(e.style.setProperty("--scroll-draw-progress","0"),w){e.style.clipPath=Ve(0);return}W.forEach((i,c)=>{i.style.strokeDasharray=`${R[c]}`,i.style.strokeDashoffset=A==="reverse"?"0":`${R[c]}`,m?i.style.opacity=A==="reverse"?"1":"0":i.style.opacity="",Te&&(i.style.stroke=Te),Y!==null&&(i.style.strokeWidth=`${Y}`),oe!==null&&(i.style.fillOpacity=`${oe}`),L&&i.tagName.toLowerCase()==="path"&&ue[c]&&i.setAttribute("d",ue[c]);});}if(W.forEach(i=>{wr(i);let c=We(i);R.push(c);let v=i.tagName.toLowerCase()==="path";v?ue.push(i.getAttribute("d")??""):ue.push(""),L&&(v?Sr(ue[ue.length-1],L,i):be(`morphTo only applies to <path> elements \u2014 ignored on <${i.tagName}>.`,i)),s?(i.style.strokeDasharray=`${c}`,i.style.strokeDashoffset=A==="reverse"?`${c}`:"0",m&&(i.style.opacity="1"),ce&&(i.style.stroke=ce),ne!==null&&(i.style.strokeWidth=`${ne}`),X!==null&&(i.style.fillOpacity=`${X}`),L&&i.tagName.toLowerCase()==="path"&&i.setAttribute("d",L)):(i.style.strokeDasharray=`${c}`,i.style.strokeDashoffset=A==="reverse"?"0":`${c}`,m?i.style.opacity=A==="reverse"?"1":"0":i.style.opacity="",Te&&(i.style.stroke=Te),Y!==null&&(i.style.strokeWidth=`${Y}`),oe!==null&&(i.style.fillOpacity=`${oe}`));}),w){if(s)return e.style.clipPath=Ve(1),f?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=Ve(0);}else if(s)return f?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let kt=typeof g=="string"?it(g):null;function ir(){return !(ye===false||!br()||!W.length||!kt||w||j!=="y"||Ee||u!==1||q!==0||J||ee||P!==false||L||b||S||U>0||H||C||f||p||k||B||Se||I!=null||$!=null||O!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function ar(){let i=++hr,c=`svg-scroll-draw-${i}`,v=`svg-scroll-draw-host-${i}`,pe=`--svg-scroll-draw-${i}`,ze=A==="reverse"?"0":"var(--ssd-len)",De=A==="reverse"?"var(--ssd-len)":"0",Oe=`stroke-dashoffset:${ze};`,E=`stroke-dashoffset:${De};`;m&&(Oe+=`opacity:${A==="reverse"?1:0};`,E+=`opacity:${A==="reverse"?0:1};`);let D=document.createElement("style");D.setAttribute("data-svg-scroll-draw",""),D.textContent=`@keyframes ${c}{from{${Oe}}to{${E}}}.${v}{view-timeline-name:${pe};view-timeline-axis:block;}.${c}{animation-name:${c};animation-duration:auto;animation-timing-function:${kt};animation-fill-mode:both;animation-timeline:${pe};animation-range:cover 0% cover 100%;}`,document.head.appendChild(D),e.classList.add(v);function de(y,Q){y.style.setProperty("--ssd-len",String(R[Q])),y.style.strokeDasharray=`${R[Q]}`,y.style.strokeDashoffset="",y.style.opacity="",y.style.animationPlayState="",y.classList.add(c);}W.forEach(de);let h=false,_=-1;function G(){if(_>=0)return _;let y=e.getBoundingClientRect(),{tStart:Q,tEnd:Ae}=Le({top:y.top,height:y.height},ut(),$t(),le,He);return V(Z(ut(),Q,Ae,u))}return {destroy(){e.classList.remove(v),W.forEach(y=>{y.classList.remove(c),y.style.removeProperty("--ssd-len"),y.style.animationPlayState="";}),D.remove();},replay(){h=false,_=-1,W.forEach(de);},pause(){h=true,W.forEach(y=>{y.style.animationPlayState="paused";});},resume(){h&&(h=false,W.forEach(y=>{y.style.animationPlayState="running";}));},seek(y){let Q=Math.min(1,Math.max(0,y));_=Q,h=true,W.forEach((Ae,ve)=>{Ae.classList.remove(c),Ae.style.strokeDashoffset=A==="reverse"?`${R[ve]*Q}`:`${R[ve]*(1-Q)}`,m&&(Ae.style.opacity=A==="reverse"?`${1-Q}`:`${Q}`);});},getProgress(){return G()},refresh(){W.forEach((y,Q)=>{R[Q]=We(y),y.style.setProperty("--ssd-len",String(R[Q])),y.style.strokeDasharray=`${R[Q]}`;});}}}if(ir())return mt(ar());function lr(){let i=Math.max(1,ge),c=0,v=0,pe=false;function ze(h){let _=true;if(w){let G=Math.min(1,Math.max(0,h/i)),y=V(G);N=y,e.style.setProperty("--scroll-draw-progress",String(y)),e.style.clipPath=Ve(A==="reverse"?1-y:y),H?.(y),G<1&&(_=false);}else W.forEach((G,y)=>{let Q=y*q*i,Ae=Math.min(1,Math.max(0,(h-Q)/i)),ve=V(Ae);G.style.strokeDashoffset=A==="reverse"?`${R[y]*ve}`:`${R[y]*(1-ve)}`,m&&(G.style.opacity=A==="reverse"?`${1-ve}`:`${ve}`),Te&&ce?G.style.stroke=Ge(Te,ce,ve):ce&&(G.style.stroke=ce),Y!==null&&ne!==null?G.style.strokeWidth=`${Y+(ne-Y)*ve}`:ne!==null&&(G.style.strokeWidth=`${ne}`),oe!==null&&X!==null?G.style.fillOpacity=`${oe+(X-oe)*ve}`:X!==null&&(G.style.fillOpacity=`${X}`),L&&G.tagName.toLowerCase()==="path"&&ue[y]&&G.setAttribute("d",dt(ue[y],L,ve)),y===0&&(N=ve,H?.(ve),e.style.setProperty("--scroll-draw-progress",String(ve))),Ae<1&&(_=false);});if(b){let G=Math.min(1,Math.max(0,h/i)),y=V(G);for(let Q in b){let Ae=parseFloat(Q);y>=Ae&&!_e.has(Ae)&&(_e.add(Ae),b[Q]?.());}}return _}function De(h){if(K)return;let _=h-c;d||(d=true,C?.());let G=ze(_);if(G&&!a){a=true,ze(i*(1+Math.max(0,W.length-1)*q)),f?.(),xe<(S==="infinite"?1/0:S??0)&&(xe++,Me=setTimeout(()=>{c=performance.now(),d=false,a=false,_e.clear(),et(),z=requestAnimationFrame(De);},te));return}G||(z=requestAnimationFrame(De));}function Oe(){cancelAnimationFrame(z),clearTimeout(Me),c=performance.now(),v=0,K=false,d=false,a=false,xe=0,pe=true,N=0,_e.clear(),et(),z=requestAnimationFrame(De);}let E=new IntersectionObserver(h=>{h.forEach(_=>{_.isIntersecting&&!(J&&a)?Oe():!_.isIntersecting&&!J&&!a&&(cancelAnimationFrame(z),clearTimeout(Me),pe=false);});},{root:Ee??null,threshold:x,rootMargin:M}),D;function de(){clearTimeout(D),D=setTimeout(()=>{W.forEach((h,_)=>{R[_]=We(h),h.style.strokeDasharray=`${R[_]}`;});},150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),U>0?setTimeout(()=>E.observe(e),U):E.observe(e),{destroy(){cancelAnimationFrame(z),clearTimeout(Me),E.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),clearTimeout(D);},replay(){xe=0,Oe();},pause(){K||!pe||(K=true,v=performance.now()-c,cancelAnimationFrame(z));},resume(){K&&(K=false,pe=true,c=performance.now()-v,z=requestAnimationFrame(De));},seek(h){let _=Math.min(1,Math.max(0,h));N=_,K=true,v=_*i,c=performance.now()-v,cancelAnimationFrame(z),ze(v);},getProgress(){return N},refresh(){clearTimeout(D),W.forEach((h,_)=>{R[_]=We(h),h.style.strokeDasharray=`${R[_]}`;});}}}if(we)return mt(lr());Ot();function tt(){if(!fe||K)return;let i=performance.now(),c=ut();if(!qe&&P===false&&c===Lt){z=requestAnimationFrame(tt);return}qe=false,Lt=c;let v=u;if(P!==false){let E=i-Ct,D=E>0?Math.abs(c-(Je<0?c:Je))/E:0;v=u*Math.max(.2,1+D*(typeof P=="number"?P:1)*.04);}Je=c,Ct=i;let pe=ee?Pe===-1||c>=Pe?"forward":"reverse":A;Pe=c;let ze=$e-me,De=true,Oe=ze===0?0:(c-me)/ze;if(isNaN(Be)||(Be<=0&&Oe>0?p?.():Be>0&&Oe<=0&&Se?.(),Be<1&&Oe>=1?k?.():Be>=1&&Oe<1&&B?.()),Be=Oe,w){let E=V(Z(c,me,$e,v));J&&!ee&&(F=Math.max(F,E),E=F),N=E,e.style.setProperty("--scroll-draw-progress",String(E));let D=pe==="reverse"?1-E:E;e.style.clipPath=Ve(D),H?.(E),!d&&Z(c,me,$e,v)>0&&(d=true,C?.()),E>=1&&!a?(a=true,f?.(),xe<(S==="infinite"?1/0:S??0)&&(xe++,Me=setTimeout(()=>{F=-1,d=false,a=false,e.style.clipPath=Ve(0);},te))):E<1&&!J&&(a=false),z=requestAnimationFrame(tt);return}if(W.forEach((E,D)=>{let de=D*q*ze,h=V(Z(c,me+de,$e+de,v));J&&!ee&&(h=se[D]=Math.max(se[D]??F,h)),E.style.strokeDashoffset=pe==="reverse"?`${R[D]*h}`:`${R[D]*(1-h)}`,m&&(E.style.opacity=pe==="reverse"?`${1-h}`:`${h}`),Te&&ce?E.style.stroke=Ge(Te,ce,h):ce&&(E.style.stroke=ce),Y!==null&&ne!==null?E.style.strokeWidth=`${Y+(ne-Y)*h}`:ne!==null&&(E.style.strokeWidth=`${ne}`),oe!==null&&X!==null?E.style.fillOpacity=`${oe+(X-oe)*h}`:X!==null&&(E.style.fillOpacity=`${X}`),L&&E.tagName.toLowerCase()==="path"&&ue[D]&&E.setAttribute("d",dt(ue[D],L,h)),D===0&&(N=h,H?.(h),e.style.setProperty("--scroll-draw-progress",String(h))),h<1&&(De=false);}),b){let E=V(Z(c,me,$e,v));for(let D in b){let de=parseFloat(D);E>=de&&!_e.has(de)&&(_e.add(de),b[D]?.());}}!d&&Z(c,me,$e,v)>0&&(d=true,C?.()),De&&!a?(a=true,f?.(),xe<(S==="infinite"?1/0:S??0)&&(xe++,Me=setTimeout(()=>{F=-1,se=[],d=false,a=false,_e.clear(),et(),qe=true;},te))):!De&&!J&&(a=false),z=requestAnimationFrame(tt);}let ft=false;function rt(){ft||(ft=true,z=requestAnimationFrame(function(){tt();}));}function nt(){ft=false,cancelAnimationFrame(z);}let pt=new IntersectionObserver(i=>{i.forEach(c=>{fe=c.isIntersecting,fe&&!K?(qe=true,rt()):nt();});},{root:Ee??null,threshold:x,rootMargin:M});function Rt(){W.forEach((i,c)=>{R[c]=We(i),i.style.strokeDasharray=`${R[c]}`;}),Ot(),qe=true;}let ot;function je(){clearTimeout(ot),ot=setTimeout(Rt,150);}window.addEventListener("resize",je),window.addEventListener("orientationchange",je);let cr=Ie([e],je);return U>0?setTimeout(()=>pt.observe(e),U):pt.observe(e),mt({destroy(){cancelAnimationFrame(z),clearTimeout(Me),nt(),pt.disconnect(),cr(),window.removeEventListener("resize",je),window.removeEventListener("orientationchange",je),clearTimeout(ot),At();},replay(){F=-1,se=[],Pe=-1,Je=-1,d=false,a=false,xe=0,K=false,N=0,_e.clear(),clearTimeout(Me),et(),qe=true,fe&&rt();},pause(){K=true,nt();},resume(){K&&(K=false,qe=true,fe&&rt());},seek(i){let c=Math.min(1,Math.max(0,i));N=c,F=c,se=[],K=true,nt(),sr(c,A),qe=true;},getProgress(){return N},refresh(){clearTimeout(ot),Rt(),fe&&!K&&rt();}},()=>({tStart:me,tEnd:$e}))}var Ut=new WeakMap,Er=0;function Yt(e){return JSON.stringify(e,(n,r)=>{if(typeof r=="function")return "\u0192";if(typeof Element<"u"&&r instanceof Element){let t=Ut.get(r);return t===void 0&&Ut.set(r,t=++Er),`el#${t}`}return r})}function Xt(e,n){let r={...e};for(let t of Object.keys(r))typeof r[t]=="function"&&(r[t]=(...o)=>n()[t]?.(...o));return r}function Tr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Kt(e){let n=[],r=/([\w]+)\(([^)]*)\)/g,t;for(;(t=r.exec(e))!==null;){let o=[],s=[],l=t[2].trim();if(l)for(let u of l.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);o.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}n.push({fn:t[1],nums:o,units:s});}return n}function xr(e,n,r){let t=Kt(e),o=Kt(n);return t.length===0||t.length!==o.length?r<1?e:n:t.map((s,l)=>{let u=o[l];return s.fn!==u.fn||s.nums.length!==u.nums.length?r<1?`${s.fn}(${s.nums.map((m,g)=>`${m}${s.units[g]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,g)=>`${m}${u.units[g]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,g)=>`${m+(u.nums[g]-m)*r}${s.units[g]}`).join(", ")})`}).join(" ")}function Qt(e,n,r){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*r);let t=String(e),o=String(n);if(Tr(t))return Ge(t,o,r);if(t.includes("("))return xr(t,o,r);let s=t.match(/^([-+]?[\d.]+)(.*)$/),l=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&l){let u=parseFloat(s[1]),m=parseFloat(l[1]);return `${u+(m-u)*r}${s[2]||l[2]}`}return r<1?t:o}function Mr(e){return e.replace(/([A-Z])/g,n=>`-${n.toLowerCase()}`)}var Ar=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),Lr=0,Zt="--scroll-draw-progress";function Cr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function yt(e,n){let r={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return r;let{props:t,trigger:o={},easing:s="ease-out",speed:l=1,once:u=false,axis:m="y",scrollContainer:g,native:T=true,velocityScale:q=false,respectReducedMotion:A=true,triggerElement:J,onProgress:Ce,onComplete:j,onEnter:ae,onLeave:ee,onEnterBack:U,onLeaveBack:I}=n,$=A&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,O=typeof s=="function"?s:ie[s]??ie["ease-out"],b=he(o.start??"top bottom"),P=he(o.end??"bottom top"),x=J??e,M=typeof g=="string"?document.querySelector(g):g??null,S=Object.entries(t).map(([a,d])=>({prop:Mr(a),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function te(){let a=window.getComputedStyle(e);for(let d of S)d.from===""&&(d.from=a.getPropertyValue(d.prop).trim()||"0");}function L(){for(let a of S)e.style.setProperty(a.prop,String(a.to));}let re=new Map;for(let a of [...S.map(d=>d.prop),Zt])re.set(a,e.style.getPropertyValue(a));function we(){for(let[a,d]of re)d?e.style.setProperty(a,d):e.style.removeProperty(a);}if($)return L(),j?.(),{...r,destroy:we,getProgress:()=>1};te();let ge=typeof s=="string"?it(s):null;function ye(){if(!T||!Cr()||!ge||m!=="y"||M||x!==e||u||l!==1||Ce||j||ae||ee||U||I||q!==false||(o.start??"top bottom").trim()!=="top bottom"||(o.end??"bottom top").trim()!=="bottom top")return false;for(let a of S)if(!Ar.has(a.prop))return false;return true}function H(){let a=`ssd-a-${++Lr}`,d=S.map(N=>`${N.prop}:${N.from}`).join(";"),z=S.map(N=>`${N.prop}:${N.to}`).join(";"),fe=document.createElement("style");fe.setAttribute("data-ssd-animate",""),fe.textContent=`@keyframes ${a}{from{${d}}to{${z}}}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ge};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(fe),e.classList.add(a);let F=()=>m==="x"?window.scrollX:window.scrollY,se=()=>m==="x"?window.innerWidth:window.innerHeight,Pe=()=>{let N=e.getBoundingClientRect();return Le({top:N.top,height:N.height},F(),se(),b,P)};ke(e,{type:"animate",getProgress:()=>K.getProgress(),getTrigger:Pe});let K={refresh(){},destroy(){e.classList.remove(a),fe.remove(),e.style.animationPlayState="",we(),Re(e);},replay(){e.classList.remove(a),e.offsetWidth,e.classList.add(a);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(N){let xe=Math.min(1,Math.max(0,N));e.classList.remove(a);for(let Me of S)e.style.setProperty(Me.prop,Qt(Me.from,Me.to,xe));},getProgress(){let{tStart:N,tEnd:xe}=Pe();return O(Z(F(),N,xe,l))}};return K}if(ye())return H();let C=0,f=0,p=0,k=false,B=false,Se=-1,w=0,V=false,le=NaN,He=-1,Ee=0,Te=()=>M?m==="x"?M.scrollLeft:M.scrollTop:m==="x"?window.scrollX:window.scrollY,ce=()=>M?m==="x"?M.clientWidth:M.clientHeight:m==="x"?window.innerWidth:window.innerHeight,Y=x===e?S:[],ne=false;function oe(){let a=e.style,d=Y.map(se=>a.getPropertyValue(se.prop)),z=a.transition;Y.length&&(a.transition="none"),Y.forEach(se=>a.setProperty(se.prop,re.get(se.prop)??""));let fe=st(x,M,m);Y.forEach((se,Pe)=>a.setProperty(se.prop,d[Pe])),Y.length&&(e.offsetWidth,a.transition=z);let F=Le(fe,fe.scroll,ce(),b,P);ne&&Math.abs(F.tStart-C)<1&&Math.abs(F.tEnd-f)<1||(ne=true,C=F.tStart,f=F.tEnd);}function X(a){e.style.setProperty(Zt,String(a));for(let d of S)e.style.setProperty(d.prop,Qt(d.from,d.to,a));Ce?.(a);}function Ve(a){if(isNaN(le)){le=a;return}le<=0&&a>0?ae?.():le>0&&a<=0&&I?.(),le<1&&a>=1?ee?.():le>=1&&a<1&&U?.(),le=a;}function W(){if(!k||B)return;let a=performance.now(),d=Te(),z=l;if(q!==false){let se=a-Ee,Pe=se>0?Math.abs(d-(He<0?d:He))/se:0;z=l*Math.max(.2,1+Pe*(typeof q=="number"?q:1)*.04);}He=d,Ee=a;let fe=f===C?0:(d-C)/(f-C);Ve(fe);let F=O(Z(d,C,f,z));u&&(Se=Math.max(Se,F),F=Se),w=F,X(F),F>=1&&!V?(V=true,j?.()):F<1&&!u&&(V=false),p=requestAnimationFrame(W);}oe(),f===C&&be("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let a=O(Z(Te(),C,f,l));u&&a>0&&(Se=a),w=a,X(a);}let R=new IntersectionObserver(a=>{a.forEach(d=>{k=d.isIntersecting,k&&!B?p=requestAnimationFrame(W):cancelAnimationFrame(p);});},{root:M??null}),ue;function me(){clearTimeout(ue),ue=setTimeout(oe,150);}window.addEventListener("resize",me),window.addEventListener("orientationchange",me);let $e=Ie([x],me);return R.observe(e),ke(e,{type:"animate",getProgress:()=>w,getTrigger:()=>({tStart:C,tEnd:f})}),{destroy(){cancelAnimationFrame(p),R.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),$e(),clearTimeout(ue),we(),Re(e);},replay(){Se=-1,V=false,w=0,B=false,X(0);},pause(){B=true,cancelAnimationFrame(p);},resume(){B&&(B=false,k&&(p=requestAnimationFrame(W)));},seek(a){let d=Math.min(1,Math.max(0,a));w=d,Se=d,B=true,cancelAnimationFrame(p),X(d);},getProgress(){return w},refresh(){oe();}}}var ht={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function bt(e,n){if(typeof window>"u")return ht;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return be("scrollCounter: element not found:",e),ht;let t=r,{from:o=0,to:s,format:l,easing:u="ease-out",trigger:m={},once:g=true,decimals:T,onComplete:q}=n,A=T!==void 0?f=>f.toFixed(T):l??(f=>String(Math.round(f))),J=typeof u=="function"?u:ie[u]??ie["ease-out"],Ce=he(m.start??"top 80%"),j=he(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=A(s),q?.(),ht;let ee=0,U=0,I=false,$=0,O=false,b=false,P=-1,x=0,M=false,S=()=>window.scrollY,te=()=>window.innerHeight;function L(){let f=t.getBoundingClientRect(),p=Le({top:f.top,height:f.height},S(),te(),Ce,j);I&&Math.abs(p.tStart-ee)<1&&Math.abs(p.tEnd-U)<1||(I=true,ee=p.tStart,U=p.tEnd);}function re(f){t.textContent=A(o+(s-o)*f),t.style.setProperty("--scroll-draw-progress",String(f));}function we(){if(!O||b)return;let f=J(Z(S(),ee,U,1));g&&(P=Math.max(P,f),f=P),x=f,re(f),f>=1&&!M?(M=true,q?.()):f<1&&!g&&(M=false),$=requestAnimationFrame(we);}L();{let f=J(Z(S(),ee,U,1));g&&f>0&&(P=f),x=f,re(f);}let ge=new IntersectionObserver(f=>{f.forEach(p=>{O=p.isIntersecting,O&&!b?$=requestAnimationFrame(we):cancelAnimationFrame($);});}),ye;function H(){clearTimeout(ye),ye=setTimeout(L,150);}window.addEventListener("resize",H),window.addEventListener("orientationchange",H);let C=Ie([t],H);return ge.observe(t),ke(t,{type:"counter",getProgress:()=>x,getTrigger:()=>({tStart:ee,tEnd:U})}),{destroy(){cancelAnimationFrame($),ge.disconnect(),window.removeEventListener("resize",H),window.removeEventListener("orientationchange",H),C(),clearTimeout(ye),Re(t);},replay(){P=-1,M=false,x=0,b=false,re(0);},pause(){b=true,cancelAnimationFrame($);},resume(){b&&(b=false,O&&($=requestAnimationFrame(we)));},seek(f){let p=Math.min(1,Math.max(0,f));x=p,P=p,b=true,cancelAnimationFrame($),re(p);},getProgress(){return x}}}var Jt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function wt(e,n={}){if(typeof window>"u")return Jt;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return be("scrollVideo: <video> element not found:",e),Jt;let t=r,{trigger:o={},easing:s="linear",once:l=false,axis:u="y",preload:m="auto",triggerElement:g,onReady:T,onComplete:q,onProgress:A}=n,J=g??t,Ce=window.matchMedia("(prefers-reduced-motion: reduce)").matches,j=typeof s=="function"?s:ie[s]??ie.linear,ae=he(o.start??"top top"),ee=he(o.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let U=n.from??0,I=n.to,$=0,O=0,b=0,P=false,x=false,M=-1,S=0,te=false,L=false,re=()=>u==="x"?window.scrollX:window.scrollY,we=()=>u==="x"?window.innerWidth:window.innerHeight;function ge(){let w=J.getBoundingClientRect(),V=u==="x"?w.left:w.top,le=u==="x"?w.width:w.height,He=Le({top:V,height:le},re(),we(),ae,ee);$=He.tStart,O=He.tEnd,L&&O===$&&be("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",t);}let ye=NaN;function H(w){if(!L)return;let V=I??t.duration??0,le=U+(V-U)*w;le!==ye&&(ye=le,t.currentTime=le),t.style.setProperty("--scroll-draw-progress",String(w)),A?.(w);}function C(){if(!P||x||!L||Ce)return;let w=j(Z(re(),$,O,1));l&&(M=Math.max(M,w),w=M),S=w,H(w),w>=1&&!te?(te=true,q?.()):w<1&&!l&&(te=false),b=requestAnimationFrame(C);}function f(){if(L=true,I===void 0&&(I=t.duration),Ce){H(1),T?.();return}ge(),T?.(),P&&!x&&(b=requestAnimationFrame(C));}t.readyState>=1?f():t.addEventListener("loadedmetadata",f,{once:true}),L||ge();let p=new IntersectionObserver(w=>{w.forEach(V=>{P=V.isIntersecting,P&&!x&&L?b=requestAnimationFrame(C):cancelAnimationFrame(b);});}),k;function B(){clearTimeout(k),k=setTimeout(ge,150);}window.addEventListener("resize",B),window.addEventListener("orientationchange",B);let Se=Ie([J],B);return p.observe(t),ke(t,{type:"video",getProgress:()=>S,getTrigger:()=>({tStart:$,tEnd:O})}),{destroy(){cancelAnimationFrame(b),p.disconnect(),t.removeEventListener("loadedmetadata",f),window.removeEventListener("resize",B),window.removeEventListener("orientationchange",B),Se(),clearTimeout(k),Re(t);},replay(){M=-1,te=false,S=0,x=false,ye=NaN,H(0);},pause(){x=true,cancelAnimationFrame(b);},resume(){x&&(x=false,P&&L&&(b=requestAnimationFrame(C)));},seek(w){let V=Math.min(1,Math.max(0,w));S=V,M=V,x=true,cancelAnimationFrame(b),ye=NaN,H(V);},getProgress(){return S}}}function rr(e){let n=e.textContent??"";return e.textContent="",n.split(/(\s+)/).filter(Boolean).map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(r)?(t.textContent=r,t.style.whiteSpace="pre"):(t.textContent=r,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(r)?null:t}).filter(r=>r!==null)}function $r(e){let n=e.textContent??"";return e.textContent="",n.split("").map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=r,r===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),r===" "?null:t}).filter(r=>r!==null)}function er(e){let n=rr(e),r=new Map;for(let s of n){let l=s.offsetTop;r.has(l)||r.set(l,[]),r.get(l).push(s);}let t=[],o=Array.from(r.keys()).sort((s,l)=>s-l);for(let s of o){let l=r.get(s),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",l.forEach((m,g)=>{let T=m.nextElementSibling;u.appendChild(m),g<l.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((s,l)=>{e.appendChild(s),l<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function Pr(e,n,r,t){if(r<=1||t===0)return e;let o=(r-1)*t,s=n*t,l=s+(1-o);return l<=s?e>=s?1:0:Math.min(1,Math.max(0,(e-s)/(l-s)))}function Or(e,n){let r=[];if(n?.y!==void 0&&r.push(`translateY(${n.y*(1-e)}px)`),n?.x!==void 0&&r.push(`translateX(${n.x*(1-e)}px)`),n?.rotate!==void 0&&r.push(`rotate(${n.rotate*(1-e)}deg)`),n?.scale!==void 0){let t=n.scale+(1-n.scale)*e;r.push(`scale(${t})`);}return r.join(" ")||""}var tr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function vt(e,n={}){if(typeof window>"u")return tr;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return be("scrollText: element not found:",e),tr;let t=r,{split:o="words",stagger:s=.04,easing:l="ease-out",from:u={opacity:0,y:24},trigger:m={},once:g=true,onComplete:T}=n,q=window.matchMedia("(prefers-reduced-motion: reduce)").matches,A=typeof l=="function"?l:ie[l]??ie["ease-out"],J=he(m.start??"top 85%"),Ce=he(m.end??"top 40%"),j=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let ae;o==="chars"?ae=$r(t):o==="lines"?ae=er(t):ae=rr(t);let ee=ae.length;function U(p,k){u?.opacity!==void 0&&(p.style.opacity=String(u.opacity+(1-u.opacity)*k));let B=Or(k,u);B&&(p.style.transform=B);}function I(p){t.style.setProperty("--scroll-draw-progress",String(p)),ae.forEach((k,B)=>{let Se=A(Pr(p,B,ee,s));U(k,Se);});}if(q)return I(1),T?.(),{destroy(){t.innerHTML=j,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};I(0);let $=0,O=0,b=0,P=false,x=false,M=-1,S=0,te=false,L=()=>window.scrollY,re=()=>window.innerHeight;function we(){let p=t.getBoundingClientRect(),k=Le({top:p.top,height:p.height},L(),re(),J,Ce);$=k.tStart,O=k.tEnd;}function ge(){if(!P||x)return;let p=Z(L(),$,O,1);g&&(M=Math.max(M,p),p=M),S=p,I(p),p>=1&&!te?(te=true,T?.()):p<1&&!g&&(te=false),b=requestAnimationFrame(ge);}we();let ye=new IntersectionObserver(p=>{p.forEach(k=>{P=k.isIntersecting,P&&!x?b=requestAnimationFrame(ge):cancelAnimationFrame(b);});}),H;function C(){clearTimeout(H),H=setTimeout(()=>{if(o==="lines"){let p=S;t.innerHTML=j,t.setAttribute("aria-label",t.textContent??""),ae=er(t),I(p);}we();},150);}window.addEventListener("resize",C),window.addEventListener("orientationchange",C);let f=Ie([t],C);return ye.observe(t),ke(t,{type:"text",getProgress:()=>S,getTrigger:()=>({tStart:$,tEnd:O})}),{destroy(){cancelAnimationFrame(b),ye.disconnect(),window.removeEventListener("resize",C),window.removeEventListener("orientationchange",C),f(),clearTimeout(H),t.innerHTML=j,t.removeAttribute("aria-label"),Re(t);},replay(){M=-1,te=false,S=0,x=false,I(0);},pause(){x=true,cancelAnimationFrame(b);},resume(){x&&(x=false,P&&(b=requestAnimationFrame(ge)));},seek(p){let k=Math.min(1,Math.max(0,p));S=k,M=k,x=true,cancelAnimationFrame(b),I(k);},getProgress(){return S}}}var Ze=e=>typeof e=="function"?e():vue.unref(e);function Ne(e,n,r){let t=null,o=n(),s=()=>{t?.destroy(),t=e.value?r(e.value,Xt(o,()=>o)):null;};vue.onMounted(s),vue.watch(()=>Yt(o=n()),s),vue.onUnmounted(()=>{t?.destroy(),t=null;});}function Fr(e={}){let n=vue.ref(null);return Ne(n,()=>Ze(e),gt),n}var nr={preset:0,selector:0,speed:0,fade:1,easing:0,trigger:0,stagger:0,direction:0,once:1,debug:1,axis:0,scrollContainer:0,autoReverse:1,delay:0,strokeColor:0,strokeWidth:0,fillOpacity:0,clip:2,waypoints:0,velocityScale:3,threshold:0,rootMargin:0,repeat:0,repeatDelay:0,morphTo:0,onProgress:0,onStart:0,onComplete:0,onEnter:0,onLeave:0,onEnterBack:0,onLeaveBack:0,autoplay:1,duration:0,native:1},Nr=[null,Boolean,[Boolean,String],[Boolean,Number]],or=e=>({type:e,default:void 0}),St=vue.defineComponent({name:"ScrollDraw",props:Object.fromEntries(Object.entries(nr).map(([e,n])=>[e,n?or(Nr[n]):null])),setup(e,{slots:n}){let r=vue.ref(null);return Ne(r,()=>{let t={};for(let o in nr){let s=e[o];s!=null&&(t[o]=s);}return t},gt),()=>vue.h("div",{ref:r},n.default?.())}});function Hr(e){let n=vue.ref(null);return Ne(n,()=>Ze(e),yt),n}var Et=vue.defineComponent({name:"ScrollAnimate",props:{options:{type:Object,required:true}},setup(e,{slots:n}){let r=vue.ref(null);return Ne(r,()=>e.options,yt),()=>vue.h("div",{ref:r},n.default?.())}});function Vr(e){let n=vue.ref(null);return Ne(n,()=>Ze(e),bt),n}var Tt=vue.defineComponent({name:"ScrollCounter",props:{to:{type:Number,required:true},from:{type:Number},format:{type:Function},easing:{type:[String,Function]},trigger:{type:Object},once:or(Boolean),decimals:{type:Number},onComplete:{type:Function}},setup(e){let n=vue.ref(null);return Ne(n,()=>{let r={to:e.to};return e.from!=null&&(r.from=e.from),e.format!=null&&(r.format=e.format),e.easing!=null&&(r.easing=e.easing),e.trigger!=null&&(r.trigger=e.trigger),e.once!=null&&(r.once=e.once),e.decimals!=null&&(r.decimals=e.decimals),e.onComplete!=null&&(r.onComplete=e.onComplete),r},bt),()=>vue.h("span",{ref:n})}});function zr(e={}){let n=vue.ref(null);return Ne(n,()=>Ze(e),wt),n}var xt=vue.defineComponent({name:"ScrollVideo",props:{src:{type:String,required:true},options:{type:Object},muted:{type:Boolean,default:true},playsInline:{type:Boolean,default:true},class:{type:String}},setup(e){let n=vue.ref(null);return Ne(n,()=>e.options??{},wt),()=>vue.h("video",{ref:n,src:e.src,muted:e.muted,playsinline:e.playsInline,preload:"auto",class:e.class})}});function _r(e={}){let n=vue.ref(null);return Ne(n,()=>Ze(e),vt),n}var Mt=vue.defineComponent({name:"ScrollText",props:{options:{type:Object},tag:{type:String,default:"p"}},setup(e,{slots:n}){let r=vue.ref(null);return Ne(r,()=>e.options??{},vt),()=>vue.h(e.tag,{ref:r},n.default?.())}});function Kn(){return {install(e){e.component("ScrollDraw",St),e.component("ScrollAnimate",Et),e.component("ScrollCounter",Tt),e.component("ScrollVideo",xt),e.component("ScrollText",Mt);}}}exports.ScrollAnimate=Et;exports.ScrollCounter=Tt;exports.ScrollDraw=St;exports.ScrollText=Mt;exports.ScrollVideo=xt;exports.createScrollDrawPlugin=Kn;exports.useScrollAnimate=Hr;exports.useScrollCounter=Vr;exports.useScrollDraw=Fr;exports.useScrollText=_r;exports.useScrollVideo=zr;
3
+ <div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}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(t),window.addEventListener("scroll",s,{passive:true}),s(),{el:t,destroy(){window.removeEventListener("scroll",s),t.remove();}}}var Xt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,Kt=/[MmLlHhVvCcSsQqTtAaZz]/g;function Ar(e,n,r){if(!Ke)return;let t=(e.match(Kt)??[]).join("").toUpperCase(),s=(n.match(Kt)??[]).join("").toUpperCase(),i=(e.match(Xt)??[]).length,l=(n.match(Xt)??[]).length;if(t!==s){we(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${s||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,r);return}i!==l&&we(`morphTo: coordinate count differs (${i} \u2192 ${l}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,r);}function yt(e,n,r){let t=(n.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),s=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,i=>{let l=parseFloat(i),u=t[s++]??l;return String(+(l+(u-l)*r).toFixed(4))})}function ht(e,n={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:r,...t}=n,s=r?{...Bt[r],...t}:t,i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:l="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:d="linear",trigger:T={},stagger:F=0,direction:A="forward",once:re=false,debug:Pe=false,axis:G="y",scrollContainer:ue,autoReverse:ne=false,delay:Y=0,strokeColor:N,strokeWidth:P,fillOpacity:k,waypoints:w,velocityScale:O=false,threshold:x=0,rootMargin:M="0px",repeat:S=0,repeatDelay:oe=0,morphTo:L,clip:se,autoplay:ve=false,duration:ge=1e3,native:ye=true,onProgress:H,onStart:$,onComplete:f,onEnter:p,onLeave:R,onEnterBack:W,onLeaveBack:Me}=s,v=se===true?"left":typeof se=="string"?se:false,V=typeof d=="function"?d:ce[d]??ce.linear,me=be(T.start??"top bottom"),He=be(T.end??"bottom top"),Se=typeof ue=="string"?document.querySelector(ue):ue??null,Ae=Array.isArray(N)?N[0]:null,fe=Array.isArray(N)?N[1]:typeof N=="string"?N:null,X=Array.isArray(P)?P[0]:null,ie=Array.isArray(P)?P[1]:typeof P=="number"?P:null,ae=Array.isArray(k)?k[0]:null,K=Array.isArray(k)?k[1]:typeof k=="number"?k:null;function Ve(o){let a=o*100;switch(v){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let z=v?[]:Array.from(e.querySelectorAll(l)),D=[],pe=[],J=0,Ee=0,c=F,h=0,_=false,q=false,C=0,ee=false,he=-1,ze=[],le=-1,j=false,Te=0,_e=0,Be,ft=null;function Ct(){ft?.destroy(),ft=null;}let We=new Set,$t=NaN,qe=true,rt=-1,Pt=performance.now(),Ge=NaN;function nt(){return Se?G==="x"?Se.scrollLeft:Se.scrollTop:G==="x"?window.scrollX:window.scrollY}function Ot(){return Se?G==="x"?Se.clientWidth:Se.clientHeight:G==="x"?window.innerWidth:window.innerHeight}function kt(){let o=lt(e,Se,G);return $e(o,o.scroll,Ot(),me,He)}function cr(){let o=Ee-J,a=z.length-1,y=Se??document.documentElement,Q=G==="x"?"Width":"Height";if(c=F,F>0&&a>0&&o>0){let Le=y[`scroll${Q}`]-y[`client${Q}`]-1-J-o/u;Le>=0&&(c=Math.min(F,Le/(a*o)));}h=Ee+a*c*o;}function Rt(){(({tStart:J,tEnd:Ee}=kt())),cr(),Pe&&Ke&&(Ct(),ft=Mr(J,Ee,G));}function pt(o,a=kt){ke(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:a});let y=o.destroy;return o.destroy=()=>{y.call(o),Re(e);},o}function ur(o,a){if(e.style.setProperty("--scroll-draw-progress",String(o)),v){let y=a==="reverse"?1-o:o;e.style.clipPath=Ve(y);return}z.forEach((y,Q)=>{y.style.strokeDashoffset=a==="reverse"?`${D[Q]*o}`:`${D[Q]*(1-o)}`,m&&(y.style.opacity=a==="reverse"?`${1-o}`:`${o}`),Ae&&fe?y.style.stroke=Ye(Ae,fe,o):fe&&(y.style.stroke=fe),X!==null&&ie!==null?y.style.strokeWidth=`${X+(ie-X)*o}`:ie!==null&&(y.style.strokeWidth=`${ie}`),ae!==null&&K!==null?y.style.fillOpacity=`${ae+(K-ae)*o}`:K!==null&&(y.style.fillOpacity=`${K}`),L&&y.tagName.toLowerCase()==="path"&&pe[Q]&&y.setAttribute("d",yt(pe[Q],L,o));});}function ot(){if(e.style.setProperty("--scroll-draw-progress","0"),v){e.style.clipPath=Ve(0);return}z.forEach((o,a)=>{o.style.strokeDasharray=`${D[a]}`,o.style.strokeDashoffset=A==="reverse"?"0":`${D[a]}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",Ae&&(o.style.stroke=Ae),X!==null&&(o.style.strokeWidth=`${X}`),ae!==null&&(o.style.fillOpacity=`${ae}`),L&&o.tagName.toLowerCase()==="path"&&pe[a]&&o.setAttribute("d",pe[a]);});}if(z.forEach(o=>{xr(o);let a=Ue(o);D.push(a);let y=o.tagName.toLowerCase()==="path";y?pe.push(o.getAttribute("d")??""):pe.push(""),L&&(y?Ar(pe[pe.length-1],L,o):we(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),i?(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=A==="reverse"?`${a}`:"0",m&&(o.style.opacity="1"),fe&&(o.style.stroke=fe),ie!==null&&(o.style.strokeWidth=`${ie}`),K!==null&&(o.style.fillOpacity=`${K}`),L&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",L)):(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=A==="reverse"?"0":`${a}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",Ae&&(o.style.stroke=Ae),X!==null&&(o.style.strokeWidth=`${X}`),ae!==null&&(o.style.fillOpacity=`${ae}`));}),v){if(i)return e.style.clipPath=Ve(1),f?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=Ve(0);}else if(i)return f?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let Dt=typeof d=="string"?ct(d):null;function mr(){return !(ye===false||!Tr()||!z.length||!Dt||v||G!=="y"||Se||u!==1||F!==0||re||ne||O!==false||L||w||S||Y>0||H||$||f||p||R||W||Me||N!=null||P!=null||k!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function fr(){let o=++Er,a=`svg-scroll-draw-${o}`,y=`svg-scroll-draw-host-${o}`,Q=`--svg-scroll-draw-${o}`,Le=A==="reverse"?"0":"var(--ssd-len)",De=A==="reverse"?"var(--ssd-len)":"0",Oe=`stroke-dashoffset:${Le};`,E=`stroke-dashoffset:${De};`;m&&(Oe+=`opacity:${A==="reverse"?1:0};`,E+=`opacity:${A==="reverse"?0:1};`);let I=document.createElement("style");I.setAttribute("data-svg-scroll-draw",""),I.textContent=`@keyframes ${a}{from{${Oe}}to{${E}}}.${y}{view-timeline-name:${Q};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${Dt};animation-fill-mode:both;animation-timeline:${Q};animation-range:cover 0% cover 100%;}`,document.head.appendChild(I),e.classList.add(y);function de(g,Z){g.style.setProperty("--ssd-len",String(D[Z])),g.style.strokeDasharray=`${D[Z]}`,g.style.strokeDashoffset="",g.style.opacity="",g.style.animationPlayState="",g.classList.add(a);}z.forEach(de);let b=false,B=-1;function U(){if(B>=0)return B;let g=e.getBoundingClientRect(),{tStart:Z,tEnd:Ce}=$e({top:g.top,height:g.height},nt(),Ot(),me,He);return V(te(nt(),Z,Ce,u))}return {destroy(){e.classList.remove(y),z.forEach(g=>{g.classList.remove(a),g.style.removeProperty("--ssd-len"),g.style.animationPlayState="";}),I.remove();},replay(){b=false,B=-1,z.forEach(de);},pause(){b=true,z.forEach(g=>{g.style.animationPlayState="paused";});},resume(){b&&(b=false,z.forEach(g=>{g.style.animationPlayState="running";}));},seek(g){let Z=Math.min(1,Math.max(0,g));B=Z,b=true,z.forEach((Ce,xe)=>{Ce.classList.remove(a),Ce.style.strokeDashoffset=A==="reverse"?`${D[xe]*Z}`:`${D[xe]*(1-Z)}`,m&&(Ce.style.opacity=A==="reverse"?`${1-Z}`:`${Z}`);});},getProgress(){return U()},refresh(){z.forEach((g,Z)=>{D[Z]=Ue(g),g.style.setProperty("--ssd-len",String(D[Z])),g.style.strokeDasharray=`${D[Z]}`;});}}}if(mr())return pt(fr());function pr(){let o=Math.max(1,ge),a=0,y=0,Q=false;function Le(b){let B=true;if(v){let U=Math.min(1,Math.max(0,b/o)),g=V(U);Te=g,e.style.setProperty("--scroll-draw-progress",String(g)),e.style.clipPath=Ve(A==="reverse"?1-g:g),H?.(g),U<1&&(B=false);}else z.forEach((U,g)=>{let Z=g*F*o,Ce=Math.min(1,Math.max(0,(b-Z)/o)),xe=V(Ce);U.style.strokeDashoffset=A==="reverse"?`${D[g]*xe}`:`${D[g]*(1-xe)}`,m&&(U.style.opacity=A==="reverse"?`${1-xe}`:`${xe}`),Ae&&fe?U.style.stroke=Ye(Ae,fe,xe):fe&&(U.style.stroke=fe),X!==null&&ie!==null?U.style.strokeWidth=`${X+(ie-X)*xe}`:ie!==null&&(U.style.strokeWidth=`${ie}`),ae!==null&&K!==null?U.style.fillOpacity=`${ae+(K-ae)*xe}`:K!==null&&(U.style.fillOpacity=`${K}`),L&&U.tagName.toLowerCase()==="path"&&pe[g]&&U.setAttribute("d",yt(pe[g],L,xe)),g===0&&(Te=xe,H?.(xe),e.style.setProperty("--scroll-draw-progress",String(xe))),Ce<1&&(B=false);});if(w){let U=Math.min(1,Math.max(0,b/o)),g=V(U);for(let Z in w){let Ce=parseFloat(Z);g>=Ce&&!We.has(Ce)&&(We.add(Ce),w[Z]?.());}}return B}function De(b){if(j)return;let B=b-a;q||(q=true,$?.());let U=Le(B);if(U&&!_){_=true,Le(o*(1+Math.max(0,z.length-1)*F)),f?.(),_e<(S==="infinite"?1/0:S??0)&&(_e++,Be=setTimeout(()=>{a=performance.now(),q=false,_=false,We.clear(),ot(),C=requestAnimationFrame(De);},oe));return}U||(C=requestAnimationFrame(De));}function Oe(){cancelAnimationFrame(C),clearTimeout(Be),a=performance.now(),y=0,j=false,q=false,_=false,_e=0,Q=true,Te=0,We.clear(),ot(),C=requestAnimationFrame(De);}let E=new IntersectionObserver(b=>{b.forEach(B=>{B.isIntersecting&&!(re&&_)?Oe():!B.isIntersecting&&!re&&!_&&(cancelAnimationFrame(C),clearTimeout(Be),Q=false);});},{root:Se??null,threshold:x,rootMargin:M}),I;function de(){clearTimeout(I),I=setTimeout(()=>{z.forEach((b,B)=>{D[B]=Ue(b),b.style.strokeDasharray=`${D[B]}`;});},150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),Y>0?setTimeout(()=>E.observe(e),Y):E.observe(e),{destroy(){cancelAnimationFrame(C),clearTimeout(Be),E.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),clearTimeout(I);},replay(){_e=0,Oe();},pause(){j||!Q||(j=true,y=performance.now()-a,cancelAnimationFrame(C));},resume(){j&&(j=false,Q=true,a=performance.now()-y,C=requestAnimationFrame(De));},seek(b){let B=Math.min(1,Math.max(0,b));Te=B,j=true,y=B*o,a=performance.now()-y,cancelAnimationFrame(C),Le(y);},getProgress(){return Te},refresh(){clearTimeout(I),z.forEach((b,B)=>{D[B]=Ue(b),b.style.strokeDasharray=`${D[B]}`;});}}}if(ve)return pt(pr());Rt();function It(){if(j||!je)return;let o=performance.now(),a=nt();if(!qe&&O===false&&a===$t){dt(a);return}qe=false,$t=a;let y=u;if(O!==false){let E=o-Pt,I=E>0?Math.abs(a-(rt<0?a:rt))/E:0;y=u*Math.max(.2,1+I*(typeof O=="number"?O:1)*.04);}rt=a,Pt=o;let Q=ne?le===-1||a>=le?"forward":"reverse":A;le=a;let Le=Ee-J,De=true,Oe=Le===0?0:(a-J)/Le;if(isNaN(Ge)||(Ge<=0&&Oe>0?p?.():Ge>0&&Oe<=0&&Me?.(),Ge<1&&Oe>=1?R?.():Ge>=1&&Oe<1&&W?.()),Ge=Oe,v){let E=V(te(a,J,Ee,y));re&&!ne&&(he=Math.max(he,E),E=he),Te=E,e.style.setProperty("--scroll-draw-progress",String(E));let I=Q==="reverse"?1-E:E;e.style.clipPath=Ve(I),H?.(E),!q&&te(a,J,Ee,y)>0&&(q=true,$?.()),E>=1&&!_?(_=true,f?.(),_e<(S==="infinite"?1/0:S??0)&&(_e++,Be=setTimeout(()=>{he=-1,q=false,_=false,e.style.clipPath=Ve(0);},oe))):E<1&&!re&&(_=false),dt(a);return}if(z.forEach((E,I)=>{let de=I*c*Le,b=V(te(a,J+de,Ee+de,y));re&&!ne&&(b=ze[I]=Math.max(ze[I]??he,b)),E.style.strokeDashoffset=Q==="reverse"?`${D[I]*b}`:`${D[I]*(1-b)}`,m&&(E.style.opacity=Q==="reverse"?`${1-b}`:`${b}`),Ae&&fe?E.style.stroke=Ye(Ae,fe,b):fe&&(E.style.stroke=fe),X!==null&&ie!==null?E.style.strokeWidth=`${X+(ie-X)*b}`:ie!==null&&(E.style.strokeWidth=`${ie}`),ae!==null&&K!==null?E.style.fillOpacity=`${ae+(K-ae)*b}`:K!==null&&(E.style.fillOpacity=`${K}`),L&&E.tagName.toLowerCase()==="path"&&pe[I]&&E.setAttribute("d",yt(pe[I],L,b)),I===0&&(Te=b,H?.(b),e.style.setProperty("--scroll-draw-progress",String(b))),b<1&&(De=false);}),w){let E=V(te(a,J,Ee,y));for(let I in w){let de=parseFloat(I);E>=de&&!We.has(de)&&(We.add(de),w[I]?.());}}!q&&te(a,J,Ee,y)>0&&(q=true,$?.()),De&&!_?(_=true,f?.(),_e<(S==="infinite"?1/0:S??0)&&(_e++,Be=setTimeout(()=>{he=-1,ze=[],q=false,_=false,We.clear(),ot(),qe=true;},oe))):!De&&!re&&(_=false),dt(a);}function Ft(o){return o>=Ee&&o<h}function dt(o){ee||Ft(o)?C=requestAnimationFrame(It):je=false;}let je=false;function st(){je||(je=true,C=requestAnimationFrame(function(){It();}));}function it(){je=false,cancelAnimationFrame(C);}let gt=new IntersectionObserver(o=>{o.forEach(a=>{ee=a.isIntersecting,ee&&!j?(qe=true,st()):je&&!j&&Ft(nt())||it();});},{root:Se??null,threshold:x,rootMargin:M});function Nt(){z.forEach((o,a)=>{D[a]=Ue(o),o.style.strokeDasharray=`${D[a]}`;}),Rt(),qe=true;}let at;function Xe(){clearTimeout(at),at=setTimeout(Nt,150);}window.addEventListener("resize",Xe),window.addEventListener("orientationchange",Xe);let dr=Ie([e],Xe);return Y>0?setTimeout(()=>gt.observe(e),Y):gt.observe(e),pt({destroy(){cancelAnimationFrame(C),clearTimeout(Be),it(),gt.disconnect(),dr(),window.removeEventListener("resize",Xe),window.removeEventListener("orientationchange",Xe),clearTimeout(at),Ct();},replay(){he=-1,ze=[],le=-1,rt=-1,q=false,_=false,_e=0,j=false,Te=0,We.clear(),clearTimeout(Be),ot(),qe=true,ee&&st();},pause(){j=true,it();},resume(){j&&(j=false,qe=true,ee&&st());},seek(o){let a=Math.min(1,Math.max(0,o));Te=a,he=a,ze=[],j=true,it(),ur(a,A),qe=true;},getProgress(){return Te},refresh(){clearTimeout(at),Nt(),ee&&!j&&st();}},()=>({tStart:J,tEnd:Ee}))}var Qt=new WeakMap,Lr=0;function Zt(e){return JSON.stringify(e,(n,r)=>{if(typeof r=="function")return "\u0192";if(typeof Element<"u"&&r instanceof Element){let t=Qt.get(r);return t===void 0&&Qt.set(r,t=++Lr),`el#${t}`}return r})}function Jt(e,n){let r={...e};for(let t of Object.keys(r))typeof r[t]=="function"&&(r[t]=(...s)=>n()[t]?.(...s));return r}function Cr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function er(e){let n=[],r=/([\w]+)\(([^)]*)\)/g,t;for(;(t=r.exec(e))!==null;){let s=[],i=[],l=t[2].trim();if(l)for(let u of l.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);s.push(m?parseFloat(m[1]):0),i.push(m?m[2]:"");}n.push({fn:t[1],nums:s,units:i});}return n}function $r(e,n,r){let t=er(e),s=er(n);return t.length===0||t.length!==s.length?r<1?e:n:t.map((i,l)=>{let u=s[l];return i.fn!==u.fn||i.nums.length!==u.nums.length?r<1?`${i.fn}(${i.nums.map((m,d)=>`${m}${i.units[d]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,d)=>`${m}${u.units[d]}`).join(", ")})`:`${i.fn}(${i.nums.map((m,d)=>`${m+(u.nums[d]-m)*r}${i.units[d]}`).join(", ")})`}).join(" ")}function tr(e,n,r){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*r);let t=String(e),s=String(n);if(Cr(t))return Ye(t,s,r);if(t.includes("("))return $r(t,s,r);let i=t.match(/^([-+]?[\d.]+)(.*)$/),l=s.match(/^([-+]?[\d.]+)(.*)$/);if(i&&l){let u=parseFloat(i[1]),m=parseFloat(l[1]);return `${u+(m-u)*r}${i[2]||l[2]}`}return r<1?t:s}function Pr(e){return e.replace(/([A-Z])/g,n=>`-${n.toLowerCase()}`)}var Or=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),kr=0,rr="--scroll-draw-progress";function Rr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function bt(e,n){let r={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return r;let{props:t,trigger:s={},easing:i="ease-out",speed:l=1,once:u=false,axis:m="y",scrollContainer:d,native:T=true,velocityScale:F=false,respectReducedMotion:A=true,triggerElement:re,onProgress:Pe,onComplete:G,onEnter:ue,onLeave:ne,onEnterBack:Y,onLeaveBack:N}=n,P=A&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,k=typeof i=="function"?i:ce[i]??ce["ease-out"],w=be(s.start??"top bottom"),O=be(s.end??"bottom top"),x=re??e,M=typeof d=="string"?document.querySelector(d):d??null,S=Object.entries(t).map(([c,h])=>({prop:Pr(c),from:Array.isArray(h)?h[0]:"",to:Array.isArray(h)?h[1]:h}));function oe(){let c=window.getComputedStyle(e);for(let h of S)h.from===""&&(h.from=c.getPropertyValue(h.prop).trim()||"0");}function L(){for(let c of S)e.style.setProperty(c.prop,String(c.to));}let se=new Map;for(let c of [...S.map(h=>h.prop),rr])se.set(c,e.style.getPropertyValue(c));function ve(){for(let[c,h]of se)h?e.style.setProperty(c,h):e.style.removeProperty(c);}if(P)return L(),G?.(),{...r,destroy:ve,getProgress:()=>1};oe();let ge=typeof i=="string"?ct(i):null;function ye(){if(!T||!Rr()||!ge||m!=="y"||M||x!==e||u||l!==1||Pe||G||ue||ne||Y||N||F!==false||(s.start??"top bottom").trim()!=="top bottom"||(s.end??"bottom top").trim()!=="bottom top")return false;for(let c of S)if(!Or.has(c.prop))return false;return true}function H(){let c=`ssd-a-${++kr}`,h=S.map(le=>`${le.prop}:${le.from}`).join(";"),_=S.map(le=>`${le.prop}:${le.to}`).join(";"),q=document.createElement("style");q.setAttribute("data-ssd-animate",""),q.textContent=`@keyframes ${c}{from{${h}}to{${_}}}.${c}{animation-name:${c};animation-duration:auto;animation-timing-function:${ge};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(q),e.classList.add(c);let C=()=>m==="x"?window.scrollX:window.scrollY,ee=()=>m==="x"?window.innerWidth:window.innerHeight,he=()=>{let le=e.getBoundingClientRect();return $e({top:le.top,height:le.height},C(),ee(),w,O)};ke(e,{type:"animate",getProgress:()=>ze.getProgress(),getTrigger:he});let ze={refresh(){},destroy(){e.classList.remove(c),q.remove(),e.style.animationPlayState="",ve(),Re(e);},replay(){e.classList.remove(c),e.offsetWidth,e.classList.add(c);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(le){let j=Math.min(1,Math.max(0,le));e.classList.remove(c);for(let Te of S)e.style.setProperty(Te.prop,tr(Te.from,Te.to,j));},getProgress(){let{tStart:le,tEnd:j}=he();return k(te(C(),le,j,l))}};return ze}if(ye())return H();let $=0,f=0,p=0,R=false,W=false,Me=-1,v=0,V=false,me=NaN,He=-1,Se=0,Ae=()=>M?m==="x"?M.scrollLeft:M.scrollTop:m==="x"?window.scrollX:window.scrollY,fe=()=>M?m==="x"?M.clientWidth:M.clientHeight:m==="x"?window.innerWidth:window.innerHeight,X=x===e?S:[],ie=false;function ae(){let c=e.style,h=X.map(ee=>c.getPropertyValue(ee.prop)),_=c.transition;X.length&&(c.transition="none"),X.forEach(ee=>c.setProperty(ee.prop,se.get(ee.prop)??""));let q=lt(x,M,m);X.forEach((ee,he)=>c.setProperty(ee.prop,h[he])),X.length&&(e.offsetWidth,c.transition=_);let C=$e(q,q.scroll,fe(),w,O);ie&&Math.abs(C.tStart-$)<1&&Math.abs(C.tEnd-f)<1||(ie=true,$=C.tStart,f=C.tEnd);}function K(c){e.style.setProperty(rr,String(c));for(let h of S)e.style.setProperty(h.prop,tr(h.from,h.to,c));Pe?.(c);}function Ve(c){if(isNaN(me)){me=c;return}me<=0&&c>0?ue?.():me>0&&c<=0&&N?.(),me<1&&c>=1?ne?.():me>=1&&c<1&&Y?.(),me=c;}function z(){if(!R||W)return;let c=performance.now(),h=Ae(),_=l;if(F!==false){let ee=c-Se,he=ee>0?Math.abs(h-(He<0?h:He))/ee:0;_=l*Math.max(.2,1+he*(typeof F=="number"?F:1)*.04);}He=h,Se=c;let q=f===$?0:(h-$)/(f-$);Ve(q);let C=k(te(h,$,f,_));u&&(Me=Math.max(Me,C),C=Me),v=C,K(C),C>=1&&!V?(V=true,G?.()):C<1&&!u&&(V=false),p=requestAnimationFrame(z);}ae(),f===$&&we("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let c=k(te(Ae(),$,f,l));u&&c>0&&(Me=c),v=c,K(c);}let D=new IntersectionObserver(c=>{c.forEach(h=>{R=h.isIntersecting,R&&!W?p=requestAnimationFrame(z):cancelAnimationFrame(p);});},{root:M??null}),pe;function J(){clearTimeout(pe),pe=setTimeout(ae,150);}window.addEventListener("resize",J),window.addEventListener("orientationchange",J);let Ee=Ie([x],J);return D.observe(e),ke(e,{type:"animate",getProgress:()=>v,getTrigger:()=>({tStart:$,tEnd:f})}),{destroy(){cancelAnimationFrame(p),D.disconnect(),window.removeEventListener("resize",J),window.removeEventListener("orientationchange",J),Ee(),clearTimeout(pe),ve(),Re(e);},replay(){Me=-1,V=false,v=0,W=false,K(0);},pause(){W=true,cancelAnimationFrame(p);},resume(){W&&(W=false,R&&(p=requestAnimationFrame(z)));},seek(c){let h=Math.min(1,Math.max(0,c));v=h,Me=h,W=true,cancelAnimationFrame(p),K(h);},getProgress(){return v},refresh(){ae();}}}var wt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function vt(e,n){if(typeof window>"u")return wt;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return we("scrollCounter: element not found:",e),wt;let t=r,{from:s=0,to:i,format:l,easing:u="ease-out",trigger:m={},once:d=true,decimals:T,onComplete:F}=n,A=T!==void 0?f=>f.toFixed(T):l??(f=>String(Math.round(f))),re=typeof u=="function"?u:ce[u]??ce["ease-out"],Pe=be(m.start??"top 80%"),G=be(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=A(i),F?.(),wt;let ne=0,Y=0,N=false,P=0,k=false,w=false,O=-1,x=0,M=false,S=()=>window.scrollY,oe=()=>window.innerHeight;function L(){let f=t.getBoundingClientRect(),p=$e({top:f.top,height:f.height},S(),oe(),Pe,G);N&&Math.abs(p.tStart-ne)<1&&Math.abs(p.tEnd-Y)<1||(N=true,ne=p.tStart,Y=p.tEnd);}function se(f){t.textContent=A(s+(i-s)*f),t.style.setProperty("--scroll-draw-progress",String(f));}function ve(){if(!k||w)return;let f=re(te(S(),ne,Y,1));d&&(O=Math.max(O,f),f=O),x=f,se(f),f>=1&&!M?(M=true,F?.()):f<1&&!d&&(M=false),P=requestAnimationFrame(ve);}L();{let f=re(te(S(),ne,Y,1));d&&f>0&&(O=f),x=f,se(f);}let ge=new IntersectionObserver(f=>{f.forEach(p=>{k=p.isIntersecting,k&&!w?P=requestAnimationFrame(ve):cancelAnimationFrame(P);});}),ye;function H(){clearTimeout(ye),ye=setTimeout(L,150);}window.addEventListener("resize",H),window.addEventListener("orientationchange",H);let $=Ie([t],H);return ge.observe(t),ke(t,{type:"counter",getProgress:()=>x,getTrigger:()=>({tStart:ne,tEnd:Y})}),{destroy(){cancelAnimationFrame(P),ge.disconnect(),window.removeEventListener("resize",H),window.removeEventListener("orientationchange",H),$(),clearTimeout(ye),Re(t);},replay(){O=-1,M=false,x=0,w=false,se(0);},pause(){w=true,cancelAnimationFrame(P);},resume(){w&&(w=false,k&&(P=requestAnimationFrame(ve)));},seek(f){let p=Math.min(1,Math.max(0,f));x=p,O=p,w=true,cancelAnimationFrame(P),se(p);},getProgress(){return x}}}var nr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function St(e,n={}){if(typeof window>"u")return nr;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return we("scrollVideo: <video> element not found:",e),nr;let t=r,{trigger:s={},easing:i="linear",once:l=false,axis:u="y",preload:m="auto",triggerElement:d,onReady:T,onComplete:F,onProgress:A}=n,re=d??t,Pe=window.matchMedia("(prefers-reduced-motion: reduce)").matches,G=typeof i=="function"?i:ce[i]??ce.linear,ue=be(s.start??"top top"),ne=be(s.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let Y=n.from??0,N=n.to,P=0,k=0,w=0,O=false,x=false,M=-1,S=0,oe=false,L=false,se=()=>u==="x"?window.scrollX:window.scrollY,ve=()=>u==="x"?window.innerWidth:window.innerHeight;function ge(){let v=re.getBoundingClientRect(),V=u==="x"?v.left:v.top,me=u==="x"?v.width:v.height,He=$e({top:V,height:me},se(),ve(),ue,ne);P=He.tStart,k=He.tEnd,L&&k===P&&we("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",t);}let ye=NaN;function H(v){if(!L)return;let V=N??t.duration??0,me=Y+(V-Y)*v;me!==ye&&(ye=me,t.currentTime=me),t.style.setProperty("--scroll-draw-progress",String(v)),A?.(v);}function $(){if(!O||x||!L||Pe)return;let v=G(te(se(),P,k,1));l&&(M=Math.max(M,v),v=M),S=v,H(v),v>=1&&!oe?(oe=true,F?.()):v<1&&!l&&(oe=false),w=requestAnimationFrame($);}function f(){if(L=true,N===void 0&&(N=t.duration),Pe){H(1),T?.();return}ge(),T?.(),O&&!x&&(w=requestAnimationFrame($));}t.readyState>=1?f():t.addEventListener("loadedmetadata",f,{once:true}),L||ge();let p=new IntersectionObserver(v=>{v.forEach(V=>{O=V.isIntersecting,O&&!x&&L?w=requestAnimationFrame($):cancelAnimationFrame(w);});}),R;function W(){clearTimeout(R),R=setTimeout(ge,150);}window.addEventListener("resize",W),window.addEventListener("orientationchange",W);let Me=Ie([re],W);return p.observe(t),ke(t,{type:"video",getProgress:()=>S,getTrigger:()=>({tStart:P,tEnd:k})}),{destroy(){cancelAnimationFrame(w),p.disconnect(),t.removeEventListener("loadedmetadata",f),window.removeEventListener("resize",W),window.removeEventListener("orientationchange",W),Me(),clearTimeout(R),Re(t);},replay(){M=-1,oe=false,S=0,x=false,ye=NaN,H(0);},pause(){x=true,cancelAnimationFrame(w);},resume(){x&&(x=false,O&&L&&(w=requestAnimationFrame($)));},seek(v){let V=Math.min(1,Math.max(0,v));S=V,M=V,x=true,cancelAnimationFrame(w),ye=NaN,H(V);},getProgress(){return S}}}function ir(e){let n=e.textContent??"";return e.textContent="",n.split(/(\s+)/).filter(Boolean).map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(r)?(t.textContent=r,t.style.whiteSpace="pre"):(t.textContent=r,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(r)?null:t}).filter(r=>r!==null)}function Dr(e){let n=e.textContent??"";return e.textContent="",n.split("").map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=r,r===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),r===" "?null:t}).filter(r=>r!==null)}function or(e){let n=ir(e),r=new Map;for(let i of n){let l=i.offsetTop;r.has(l)||r.set(l,[]),r.get(l).push(i);}let t=[],s=Array.from(r.keys()).sort((i,l)=>i-l);for(let i of s){let l=r.get(i),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",l.forEach((m,d)=>{let T=m.nextElementSibling;u.appendChild(m),d<l.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((i,l)=>{e.appendChild(i),l<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function Ir(e,n,r,t){if(r<=1||t===0)return e;let s=(r-1)*t,i=n*t,l=i+(1-s);return l<=i?e>=i?1:0:Math.min(1,Math.max(0,(e-i)/(l-i)))}function Fr(e,n){let r=[];if(n?.y!==void 0&&r.push(`translateY(${n.y*(1-e)}px)`),n?.x!==void 0&&r.push(`translateX(${n.x*(1-e)}px)`),n?.rotate!==void 0&&r.push(`rotate(${n.rotate*(1-e)}deg)`),n?.scale!==void 0){let t=n.scale+(1-n.scale)*e;r.push(`scale(${t})`);}return r.join(" ")||""}var sr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Et(e,n={}){if(typeof window>"u")return sr;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return we("scrollText: element not found:",e),sr;let t=r,{split:s="words",stagger:i=.04,easing:l="ease-out",from:u={opacity:0,y:24},trigger:m={},once:d=true,onComplete:T}=n,F=window.matchMedia("(prefers-reduced-motion: reduce)").matches,A=typeof l=="function"?l:ce[l]??ce["ease-out"],re=be(m.start??"top 85%"),Pe=be(m.end??"top 40%"),G=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let ue;s==="chars"?ue=Dr(t):s==="lines"?ue=or(t):ue=ir(t);let ne=ue.length;function Y(p,R){u?.opacity!==void 0&&(p.style.opacity=String(u.opacity+(1-u.opacity)*R));let W=Fr(R,u);W&&(p.style.transform=W);}function N(p){t.style.setProperty("--scroll-draw-progress",String(p)),ue.forEach((R,W)=>{let Me=A(Ir(p,W,ne,i));Y(R,Me);});}if(F)return N(1),T?.(),{destroy(){t.innerHTML=G,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};N(0);let P=0,k=0,w=0,O=false,x=false,M=-1,S=0,oe=false,L=()=>window.scrollY,se=()=>window.innerHeight;function ve(){let p=t.getBoundingClientRect(),R=$e({top:p.top,height:p.height},L(),se(),re,Pe);P=R.tStart,k=R.tEnd;}function ge(){if(!O||x)return;let p=te(L(),P,k,1);d&&(M=Math.max(M,p),p=M),S=p,N(p),p>=1&&!oe?(oe=true,T?.()):p<1&&!d&&(oe=false),w=requestAnimationFrame(ge);}ve();let ye=new IntersectionObserver(p=>{p.forEach(R=>{O=R.isIntersecting,O&&!x?w=requestAnimationFrame(ge):cancelAnimationFrame(w);});}),H;function $(){clearTimeout(H),H=setTimeout(()=>{if(s==="lines"){let p=S;t.innerHTML=G,t.setAttribute("aria-label",t.textContent??""),ue=or(t),N(p);}ve();},150);}window.addEventListener("resize",$),window.addEventListener("orientationchange",$);let f=Ie([t],$);return ye.observe(t),ke(t,{type:"text",getProgress:()=>S,getTrigger:()=>({tStart:P,tEnd:k})}),{destroy(){cancelAnimationFrame(w),ye.disconnect(),window.removeEventListener("resize",$),window.removeEventListener("orientationchange",$),f(),clearTimeout(H),t.innerHTML=G,t.removeAttribute("aria-label"),Re(t);},replay(){M=-1,oe=false,S=0,x=false,N(0);},pause(){x=true,cancelAnimationFrame(w);},resume(){x&&(x=false,O&&(w=requestAnimationFrame(ge)));},seek(p){let R=Math.min(1,Math.max(0,p));S=R,M=R,x=true,cancelAnimationFrame(w),N(R);},getProgress(){return S}}}var tt=e=>typeof e=="function"?e():vue.unref(e);function Ne(e,n,r){let t=null,s=n(),i=()=>{t?.destroy(),t=e.value?r(e.value,Jt(s,()=>s)):null;};vue.onMounted(i),vue.watch(()=>Zt(s=n()),i),vue.onUnmounted(()=>{t?.destroy(),t=null;});}function _r(e={}){let n=vue.ref(null);return Ne(n,()=>tt(e),ht),n}var ar={preset:0,selector:0,speed:0,fade:1,easing:0,trigger:0,stagger:0,direction:0,once:1,debug:1,axis:0,scrollContainer:0,autoReverse:1,delay:0,strokeColor:0,strokeWidth:0,fillOpacity:0,clip:2,waypoints:0,velocityScale:3,threshold:0,rootMargin:0,repeat:0,repeatDelay:0,morphTo:0,onProgress:0,onStart:0,onComplete:0,onEnter:0,onLeave:0,onEnterBack:0,onLeaveBack:0,autoplay:1,duration:0,native:1},Br=[null,Boolean,[Boolean,String],[Boolean,Number]],lr=e=>({type:e,default:void 0}),Tt=vue.defineComponent({name:"ScrollDraw",props:Object.fromEntries(Object.entries(ar).map(([e,n])=>[e,n?lr(Br[n]):null])),setup(e,{slots:n}){let r=vue.ref(null);return Ne(r,()=>{let t={};for(let s in ar){let i=e[s];i!=null&&(t[s]=i);}return t},ht),()=>vue.h("div",{ref:r},n.default?.())}});function Wr(e){let n=vue.ref(null);return Ne(n,()=>tt(e),bt),n}var xt=vue.defineComponent({name:"ScrollAnimate",props:{options:{type:Object,required:true}},setup(e,{slots:n}){let r=vue.ref(null);return Ne(r,()=>e.options,bt),()=>vue.h("div",{ref:r},n.default?.())}});function qr(e){let n=vue.ref(null);return Ne(n,()=>tt(e),vt),n}var Mt=vue.defineComponent({name:"ScrollCounter",props:{to:{type:Number,required:true},from:{type:Number},format:{type:Function},easing:{type:[String,Function]},trigger:{type:Object},once:lr(Boolean),decimals:{type:Number},onComplete:{type:Function}},setup(e){let n=vue.ref(null);return Ne(n,()=>{let r={to:e.to};return e.from!=null&&(r.from=e.from),e.format!=null&&(r.format=e.format),e.easing!=null&&(r.easing=e.easing),e.trigger!=null&&(r.trigger=e.trigger),e.once!=null&&(r.once=e.once),e.decimals!=null&&(r.decimals=e.decimals),e.onComplete!=null&&(r.onComplete=e.onComplete),r},vt),()=>vue.h("span",{ref:n})}});function Gr(e={}){let n=vue.ref(null);return Ne(n,()=>tt(e),St),n}var At=vue.defineComponent({name:"ScrollVideo",props:{src:{type:String,required:true},options:{type:Object},muted:{type:Boolean,default:true},playsInline:{type:Boolean,default:true},class:{type:String}},setup(e){let n=vue.ref(null);return Ne(n,()=>e.options??{},St),()=>vue.h("video",{ref:n,src:e.src,muted:e.muted,playsinline:e.playsInline,preload:"auto",class:e.class})}});function jr(e={}){let n=vue.ref(null);return Ne(n,()=>tt(e),Et),n}var Lt=vue.defineComponent({name:"ScrollText",props:{options:{type:Object},tag:{type:String,default:"p"}},setup(e,{slots:n}){let r=vue.ref(null);return Ne(r,()=>e.options??{},Et),()=>vue.h(e.tag,{ref:r},n.default?.())}});function to(){return {install(e){e.component("ScrollDraw",Tt),e.component("ScrollAnimate",xt),e.component("ScrollCounter",Mt),e.component("ScrollVideo",At),e.component("ScrollText",Lt);}}}exports.ScrollAnimate=xt;exports.ScrollCounter=Mt;exports.ScrollDraw=Tt;exports.ScrollText=Lt;exports.ScrollVideo=At;exports.createScrollDrawPlugin=to;exports.useScrollAnimate=Wr;exports.useScrollCounter=qr;exports.useScrollDraw=_r;exports.useScrollText=jr;exports.useScrollVideo=Gr;
@@ -1,8 +1,8 @@
1
1
  export { ScrollAnimate, ScrollCounter, ScrollDraw, ScrollText, ScrollVideo, useScrollAnimate, useScrollCounter, useScrollDraw, useScrollText, useScrollVideo } from '../vue/index.mjs';
2
- export { a as ScrollDrawOptions } from '../types-B0YM4nQP.mjs';
2
+ export { a as ScrollDrawOptions } from '../types-MswK0erX.mjs';
3
3
  import { App } from 'vue';
4
- export { S as ScrollAnimateOptions } from '../engine-CvzRSkuk.mjs';
5
- export { S as ScrollCounterOptions } from '../index-BlIjovDN.mjs';
4
+ export { S as ScrollAnimateOptions } from '../engine-P8u6OK4m.mjs';
5
+ export { S as ScrollCounterOptions } from '../index-CdaBYn3A.mjs';
6
6
  export { ScrollTextOptions } from '../text/index.mjs';
7
7
  export { ScrollVideoOptions } from '../video/index.mjs';
8
8
 
@@ -1,8 +1,8 @@
1
1
  export { ScrollAnimate, ScrollCounter, ScrollDraw, ScrollText, ScrollVideo, useScrollAnimate, useScrollCounter, useScrollDraw, useScrollText, useScrollVideo } from '../vue/index.js';
2
- export { a as ScrollDrawOptions } from '../types-B0YM4nQP.js';
2
+ export { a as ScrollDrawOptions } from '../types-MswK0erX.js';
3
3
  import { App } from 'vue';
4
- export { S as ScrollAnimateOptions } from '../engine-C9LKls__.js';
5
- export { S as ScrollCounterOptions } from '../index-DZjvLJcU.js';
4
+ export { S as ScrollAnimateOptions } from '../engine-DQyBzZDl.js';
5
+ export { S as ScrollCounterOptions } from '../index-D3o4vT3e.js';
6
6
  export { ScrollTextOptions } from '../text/index.js';
7
7
  export { ScrollVideoOptions } from '../video/index.js';
8
8
 
@@ -1 +1 @@
1
- import {b,d,f,h,j}from'../chunk-PKHX3HSS.mjs';export{d as ScrollAnimate,f as ScrollCounter,b as ScrollDraw,j as ScrollText,h as ScrollVideo,c as useScrollAnimate,e as useScrollCounter,a as useScrollDraw,i as useScrollText,g as useScrollVideo}from'../chunk-PKHX3HSS.mjs';import'../chunk-XSVTHCLO.mjs';import'../chunk-7SBTYJGH.mjs';import'../chunk-I45LCJUP.mjs';import'../chunk-KHQ7OGQK.mjs';import'../chunk-BFX2CSQ3.mjs';import'../chunk-WHFRS7IP.mjs';import'../chunk-OJFWQ6CU.mjs';import'../chunk-YWKPTYSG.mjs';import'../chunk-YZV4Z3EQ.mjs';import'../chunk-A4JCC3QQ.mjs';import'../chunk-DM6EDKWH.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-BCV4RAIX.mjs';import'../chunk-LFSU6LR3.mjs';function s(){return {install(o){o.component("ScrollDraw",b),o.component("ScrollAnimate",d),o.component("ScrollCounter",f),o.component("ScrollVideo",h),o.component("ScrollText",j);}}}export{s as createScrollDrawPlugin};
1
+ import {b,d,f,h,j}from'../chunk-VVFGB4RT.mjs';export{d as ScrollAnimate,f as ScrollCounter,b as ScrollDraw,j as ScrollText,h as ScrollVideo,c as useScrollAnimate,e as useScrollCounter,a as useScrollDraw,i as useScrollText,g as useScrollVideo}from'../chunk-VVFGB4RT.mjs';import'../chunk-XSVTHCLO.mjs';import'../chunk-7SBTYJGH.mjs';import'../chunk-I45LCJUP.mjs';import'../chunk-KHQ7OGQK.mjs';import'../chunk-BFX2CSQ3.mjs';import'../chunk-LQBXJRFY.mjs';import'../chunk-OJFWQ6CU.mjs';import'../chunk-YWKPTYSG.mjs';import'../chunk-YZV4Z3EQ.mjs';import'../chunk-A4JCC3QQ.mjs';import'../chunk-DM6EDKWH.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-BCV4RAIX.mjs';import'../chunk-LFSU6LR3.mjs';function s(){return {install(o){o.component("ScrollDraw",b),o.component("ScrollAnimate",d),o.component("ScrollCounter",f),o.component("ScrollVideo",h),o.component("ScrollText",j);}}}export{s as createScrollDrawPlugin};
@@ -1 +1 @@
1
- 'use strict';function T(t,r,p){return Math.min(p,Math.max(r,t))}var L=Symbol.for("svg-scroll-draw.registry");function z(){let t=globalThis;return t[L]||(t[L]=new Map)}function D(t,r){z().set(t,r);}function O(t){z().delete(t);}var W=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function B(t,...r){W&&console.warn(`[svg-scroll-draw] ${t}`,...r);}var C={destroy:()=>{},refresh:()=>{},getProgress:()=>0};function Y(t,r={}){if(typeof window>"u")return C;let p=typeof t=="string"?document.querySelector(t):t;if(!p)return B("scrollPin: element not found:",t),C;let e=p,{top:c=0,scrollContainer:y,onEnter:V,onLeave:I,onEnterBack:M,onLeaveBack:$,onProgress:k}=r,A=typeof y=="string"?document.querySelector(y):y??null,o={position:e.style.position,top:e.style.top,bottom:e.style.bottom,left:e.style.left,width:e.style.width,boxSizing:e.style.boxSizing},n=document.createElement("div");n.setAttribute("data-ssd-pin-wrapper",""),n.style.cssText="position:relative;",e.parentNode?.insertBefore(n,e),n.appendChild(e);let m=0,g=0,b=0,a="before",v=0,h=0,w=false;function S(){m=n.offsetWidth,g=e.offsetHeight,b=r.pinDistance??window.innerHeight,n.style.height=`${g+b}px`;}function E(i){if(a===i)return;let s=a;if(a=i,i==="before")e.style.position=o.position,e.style.top=o.top,e.style.bottom=o.bottom,e.style.left=o.left,e.style.width=o.width,e.style.boxSizing=o.boxSizing,s==="pinned"&&$?.();else if(i==="pinned"){let _=n.getBoundingClientRect();e.style.position="fixed",e.style.top=`${c}px`,e.style.bottom="",e.style.left=`${_.left}px`,e.style.width=`${m}px`,e.style.boxSizing="border-box",s==="before"?V?.():s==="after"&&M?.();}else e.style.position="absolute",e.style.top="",e.style.bottom="0",e.style.left="0",e.style.width="100%",e.style.boxSizing="border-box",s==="pinned"&&I?.();}function N(){w=false;let i=n.getBoundingClientRect(),s=i.top,_=i.bottom,P=T((c-s)/b,0,1);v=P,k?.(P),s>c?E("before"):_-g<=c?E("after"):E("pinned");}function f(){w||(w=true,h=requestAnimationFrame(()=>N()));}function x(){S(),a==="pinned"&&(e.style.left=`${n.getBoundingClientRect().left}px`,e.style.width=`${m}px`),f();}let R=A??window;R.addEventListener("scroll",f,{passive:true});let l;function u(){clearTimeout(l),l=setTimeout(x,150);}window.addEventListener("resize",u),window.addEventListener("orientationchange",u);let d=null;return typeof ResizeObserver<"u"&&(d=new ResizeObserver(()=>{clearTimeout(l),l=setTimeout(x,100);}),d.observe(n),d.observe(document.documentElement),d.observe(e)),S(),f(),D(n,{type:"pin",getProgress:()=>v,getTrigger:()=>({tStart:0,tEnd:1})}),{destroy(){cancelAnimationFrame(h),clearTimeout(l),R.removeEventListener("scroll",f),window.removeEventListener("resize",u),window.removeEventListener("orientationchange",u),d?.disconnect(),e.style.position=o.position,e.style.top=o.top,e.style.bottom=o.bottom,e.style.left=o.left,e.style.width=o.width,e.style.boxSizing=o.boxSizing,n.parentNode?.insertBefore(e,n),n.remove(),O(n);},refresh(){x();},getProgress(){return v}}}exports.scrollPin=Y;
1
+ 'use strict';function z(t,s,a){return Math.min(a,Math.max(s,t))}var D=Symbol.for("svg-scroll-draw.registry");function O(){let t=globalThis;return t[D]||(t[D]=new Map)}function B(t,s){O().set(t,s);}function C(t){O().delete(t);}var F=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function S(t,...s){F&&console.warn(`[svg-scroll-draw] ${t}`,...s);}var V={destroy:()=>{},refresh:()=>{},getProgress:()=>0};function Q(t,s={}){if(typeof window>"u")return V;let a=typeof t=="string"?document.querySelector(t):t;if(!a)return S("scrollPin: element not found:",t),V;let e=a,{top:f=0,scrollContainer:g,onEnter:$,onLeave:H,onEnterBack:I,onLeaveBack:M,onProgress:k}=s,A=typeof g=="string"?document.querySelector(g):g??null,i={position:e.style.position,top:e.style.top,bottom:e.style.bottom,left:e.style.left,width:e.style.width,boxSizing:e.style.boxSizing},n=document.createElement("div");n.setAttribute("data-ssd-pin-wrapper",""),n.style.cssText="position:relative;",e.parentNode?.insertBefore(n,e),n.appendChild(e);let b=0,v=0,w=0,u="before",h=0,R=0,E=false,P=false;function N(){let o=s.pinDistance;if(o===void 0)return window.innerHeight;if(typeof o=="number")return o;let r=parseFloat(o),d=o.trim().slice(-2);if(r===r&&d==="px")return r;if(r===r&&d==="vh"){let l=document.createElement("div");l.style.cssText="position:fixed;height:100vh",document.body.appendChild(l);let q=l.offsetHeight||window.innerHeight;return l.remove(),r*q/100}return P||S("scrollPin: pinDistance is not a number, vh or px; using window.innerHeight:",o),P=true,window.innerHeight}function T(){b=n.offsetWidth,v=e.offsetHeight,w=N(),n.style.height=`${v+w}px`;}function x(o){if(u===o)return;let r=u;if(u=o,o==="before")e.style.position=i.position,e.style.top=i.top,e.style.bottom=i.bottom,e.style.left=i.left,e.style.width=i.width,e.style.boxSizing=i.boxSizing,r==="pinned"&&M?.();else if(o==="pinned"){let d=n.getBoundingClientRect();e.style.position="fixed",e.style.top=`${f}px`,e.style.bottom="",e.style.left=`${d.left}px`,e.style.width=`${b}px`,e.style.boxSizing="border-box",r==="before"?$?.():r==="after"&&I?.();}else e.style.position="absolute",e.style.top="",e.style.bottom="0",e.style.left="0",e.style.width="100%",e.style.boxSizing="border-box",r==="pinned"&&H?.();}function W(){E=false;let o=n.getBoundingClientRect(),r=o.top,d=o.bottom,l=z((f-r)/w,0,1);h=l,k?.(l),r>f?x("before"):d-v<=f?x("after"):x("pinned");}function m(){E||(E=true,R=requestAnimationFrame(()=>W()));}function _(){T(),u==="pinned"&&(e.style.left=`${n.getBoundingClientRect().left}px`,e.style.width=`${b}px`),m();}let L=A??window;L.addEventListener("scroll",m,{passive:true});let c;function y(){clearTimeout(c),c=setTimeout(_,150);}window.addEventListener("resize",y),window.addEventListener("orientationchange",y);let p=null;return typeof ResizeObserver<"u"&&(p=new ResizeObserver(()=>{clearTimeout(c),c=setTimeout(_,100);}),p.observe(n),p.observe(document.documentElement),p.observe(e)),T(),m(),B(n,{type:"pin",getProgress:()=>h,getTrigger:()=>({tStart:0,tEnd:1})}),{destroy(){cancelAnimationFrame(R),clearTimeout(c),L.removeEventListener("scroll",m),window.removeEventListener("resize",y),window.removeEventListener("orientationchange",y),p?.disconnect(),e.style.position=i.position,e.style.top=i.top,e.style.bottom=i.bottom,e.style.left=i.left,e.style.width=i.width,e.style.boxSizing=i.boxSizing,n.parentNode?.insertBefore(e,n),n.remove(),C(n);},refresh(){_();},getProgress(){return h}}}exports.scrollPin=Q;
@@ -1,6 +1,12 @@
1
1
  interface ScrollPinOptions {
2
- /** Extra pixels of scroll to stay pinned after the element hits its viewport position. Default: viewport height. */
3
- pinDistance?: number;
2
+ /**
3
+ * How much scroll the element stays pinned for once it reaches `top`.
4
+ * A number is pixels and stays that; `'600px'` is 600. `'150vh'` is CSS's
5
+ * 150vh: it follows rotation and window resizes, but not a phone's address
6
+ * bar sliding in and out. Default: `window.innerHeight`, read again on every
7
+ * resize, address bar included.
8
+ */
9
+ pinDistance?: number | `${number}vh` | `${number}px`;
4
10
  /** Viewport Y position (px) where the element pins. Default: 0 (top of viewport). */
5
11
  top?: number;
6
12
  /** Custom scroll container (CSS selector or Element). Default: window. */
@@ -1,6 +1,12 @@
1
1
  interface ScrollPinOptions {
2
- /** Extra pixels of scroll to stay pinned after the element hits its viewport position. Default: viewport height. */
3
- pinDistance?: number;
2
+ /**
3
+ * How much scroll the element stays pinned for once it reaches `top`.
4
+ * A number is pixels and stays that; `'600px'` is 600. `'150vh'` is CSS's
5
+ * 150vh: it follows rotation and window resizes, but not a phone's address
6
+ * bar sliding in and out. Default: `window.innerHeight`, read again on every
7
+ * resize, address bar included.
8
+ */
9
+ pinDistance?: number | `${number}vh` | `${number}px`;
4
10
  /** Viewport Y position (px) where the element pins. Default: 0 (top of viewport). */
5
11
  top?: number;
6
12
  /** Custom scroll container (CSS selector or Element). Default: window. */
@@ -1 +1 @@
1
- import {a as a$1}from'../chunk-4DOJSIEQ.mjs';import {a,b as b$1}from'../chunk-BCV4RAIX.mjs';import {b}from'../chunk-LFSU6LR3.mjs';var C={destroy:()=>{},refresh:()=>{},getProgress:()=>0};function _(l,x={}){if(typeof window>"u")return C;let E=typeof l=="string"?document.querySelector(l):l;if(!E)return b("scrollPin: element not found:",l),C;let e=E,{top:d=0,scrollContainer:a$2,onEnter:$,onLeave:k,onEnterBack:H,onLeaveBack:I,onProgress:q}=x,A=typeof a$2=="string"?document.querySelector(a$2):a$2??null,o={position:e.style.position,top:e.style.top,bottom:e.style.bottom,left:e.style.left,width:e.style.width,boxSizing:e.style.boxSizing},t=document.createElement("div");t.setAttribute("data-ssd-pin-wrapper",""),t.style.cssText="position:relative;",e.parentNode?.insertBefore(t,e),t.appendChild(e);let m=0,u=0,y=0,c="before",g=0,P=0,b$2=false;function S(){m=t.offsetWidth,u=e.offsetHeight,y=x.pinDistance??window.innerHeight,t.style.height=`${u+y}px`;}function v(n){if(c===n)return;let i=c;if(c=n,n==="before")e.style.position=o.position,e.style.top=o.top,e.style.bottom=o.bottom,e.style.left=o.left,e.style.width=o.width,e.style.boxSizing=o.boxSizing,i==="pinned"&&I?.();else if(n==="pinned"){let h=t.getBoundingClientRect();e.style.position="fixed",e.style.top=`${d}px`,e.style.bottom="",e.style.left=`${h.left}px`,e.style.width=`${m}px`,e.style.boxSizing="border-box",i==="before"?$?.():i==="after"&&H?.();}else e.style.position="absolute",e.style.top="",e.style.bottom="0",e.style.left="0",e.style.width="100%",e.style.boxSizing="border-box",i==="pinned"&&k?.();}function D(){b$2=false;let n=t.getBoundingClientRect(),i=n.top,h=n.bottom,T=a$1((d-i)/y,0,1);g=T,q?.(T),i>d?v("before"):h-u<=d?v("after"):v("pinned");}function p(){b$2||(b$2=true,P=requestAnimationFrame(()=>D()));}function w(){S(),c==="pinned"&&(e.style.left=`${t.getBoundingClientRect().left}px`,e.style.width=`${m}px`),p();}let z=A??window;z.addEventListener("scroll",p,{passive:true});let r;function f(){clearTimeout(r),r=setTimeout(w,150);}window.addEventListener("resize",f),window.addEventListener("orientationchange",f);let s=null;return typeof ResizeObserver<"u"&&(s=new ResizeObserver(()=>{clearTimeout(r),r=setTimeout(w,100);}),s.observe(t),s.observe(document.documentElement),s.observe(e)),S(),p(),a(t,{type:"pin",getProgress:()=>g,getTrigger:()=>({tStart:0,tEnd:1})}),{destroy(){cancelAnimationFrame(P),clearTimeout(r),z.removeEventListener("scroll",p),window.removeEventListener("resize",f),window.removeEventListener("orientationchange",f),s?.disconnect(),e.style.position=o.position,e.style.top=o.top,e.style.bottom=o.bottom,e.style.left=o.left,e.style.width=o.width,e.style.boxSizing=o.boxSizing,t.parentNode?.insertBefore(e,t),t.remove(),b$1(t);},refresh(){w();},getProgress(){return g}}}export{_ as scrollPin};
1
+ import {a as a$1}from'../chunk-4DOJSIEQ.mjs';import {a,b as b$1}from'../chunk-BCV4RAIX.mjs';import {b}from'../chunk-LFSU6LR3.mjs';var C={destroy:()=>{},refresh:()=>{},getProgress:()=>0};function V(c,P={}){if(typeof window>"u")return C;let S=typeof c=="string"?document.querySelector(c):c;if(!S)return b("scrollPin: element not found:",c),C;let e=S,{top:p=0,scrollContainer:m,onEnter:O,onLeave:k,onEnterBack:D,onLeaveBack:I,onProgress:q}=P,A=typeof m=="string"?document.querySelector(m):m??null,i={position:e.style.position,top:e.style.top,bottom:e.style.bottom,left:e.style.left,width:e.style.width,boxSizing:e.style.boxSizing},t=document.createElement("div");t.setAttribute("data-ssd-pin-wrapper",""),t.style.cssText="position:relative;",e.parentNode?.insertBefore(t,e),t.appendChild(e);let y=0,g=0,b$2=0,f="before",v=0,z=0,h=false,T=false;function F(){let n=P.pinDistance;if(n===void 0)return window.innerHeight;if(typeof n=="number")return n;let o=parseFloat(n),s=n.trim().slice(-2);if(o===o&&s==="px")return o;if(o===o&&s==="vh"){let r=document.createElement("div");r.style.cssText="position:fixed;height:100vh",document.body.appendChild(r);let W=r.offsetHeight||window.innerHeight;return r.remove(),o*W/100}return T||b("scrollPin: pinDistance is not a number, vh or px; using window.innerHeight:",n),T=true,window.innerHeight}function L(){y=t.offsetWidth,g=e.offsetHeight,b$2=F(),t.style.height=`${g+b$2}px`;}function w(n){if(f===n)return;let o=f;if(f=n,n==="before")e.style.position=i.position,e.style.top=i.top,e.style.bottom=i.bottom,e.style.left=i.left,e.style.width=i.width,e.style.boxSizing=i.boxSizing,o==="pinned"&&I?.();else if(n==="pinned"){let s=t.getBoundingClientRect();e.style.position="fixed",e.style.top=`${p}px`,e.style.bottom="",e.style.left=`${s.left}px`,e.style.width=`${y}px`,e.style.boxSizing="border-box",o==="before"?O?.():o==="after"&&D?.();}else e.style.position="absolute",e.style.top="",e.style.bottom="0",e.style.left="0",e.style.width="100%",e.style.boxSizing="border-box",o==="pinned"&&k?.();}function N(){h=false;let n=t.getBoundingClientRect(),o=n.top,s=n.bottom,r=a$1((p-o)/b$2,0,1);v=r,q?.(r),o>p?w("before"):s-g<=p?w("after"):w("pinned");}function a$2(){h||(h=true,z=requestAnimationFrame(()=>N()));}function x(){L(),f==="pinned"&&(e.style.left=`${t.getBoundingClientRect().left}px`,e.style.width=`${y}px`),a$2();}let B=A??window;B.addEventListener("scroll",a$2,{passive:true});let l;function u(){clearTimeout(l),l=setTimeout(x,150);}window.addEventListener("resize",u),window.addEventListener("orientationchange",u);let d=null;return typeof ResizeObserver<"u"&&(d=new ResizeObserver(()=>{clearTimeout(l),l=setTimeout(x,100);}),d.observe(t),d.observe(document.documentElement),d.observe(e)),L(),a$2(),a(t,{type:"pin",getProgress:()=>v,getTrigger:()=>({tStart:0,tEnd:1})}),{destroy(){cancelAnimationFrame(z),clearTimeout(l),B.removeEventListener("scroll",a$2),window.removeEventListener("resize",u),window.removeEventListener("orientationchange",u),d?.disconnect(),e.style.position=i.position,e.style.top=i.top,e.style.bottom=i.bottom,e.style.left=i.left,e.style.width=i.width,e.style.boxSizing=i.boxSizing,t.parentNode?.insertBefore(e,t),t.remove(),b$1(t);},refresh(){x();},getProgress(){return v}}}export{V as scrollPin};
@@ -1,4 +1,4 @@
1
- import { T as TriggerConfig, E as EasingName, S as ScrollDrawInstance } from '../types-B0YM4nQP.mjs';
1
+ import { T as TriggerConfig, E as EasingName, S as ScrollDrawInstance } from '../types-MswK0erX.mjs';
2
2
 
3
3
  interface ScrollProgressOptions {
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { T as TriggerConfig, E as EasingName, S as ScrollDrawInstance } from '../types-B0YM4nQP.js';
1
+ import { T as TriggerConfig, E as EasingName, S as ScrollDrawInstance } from '../types-MswK0erX.js';
2
2
 
3
3
  interface ScrollProgressOptions {
4
4
  /**