svg-scroll-draw 2.25.0 → 2.26.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 (122) hide show
  1. package/README.md +116 -15
  2. package/dist/angular/index.cjs +3 -3
  3. package/dist/angular/index.d.mts +60 -6
  4. package/dist/angular/index.d.ts +60 -6
  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 +69 -31
  11. package/dist/cdn/svg-scroll-draw.global.js +2 -2
  12. package/dist/chunk-5SJE7725.mjs +1 -0
  13. package/dist/{chunk-NX74KN5X.mjs → chunk-5U4JXBHR.mjs} +1 -1
  14. package/dist/chunk-7LDSB4FT.mjs +1 -0
  15. package/dist/chunk-ASCOHQQD.mjs +2 -0
  16. package/dist/chunk-GBFWTY5L.mjs +1 -0
  17. package/dist/chunk-HAGTU5EX.mjs +1 -0
  18. package/dist/chunk-HJTHOZK5.mjs +1 -0
  19. package/dist/chunk-IXR6RML7.mjs +1 -0
  20. package/dist/chunk-KN2YB54Z.mjs +1 -0
  21. package/dist/chunk-NJV6S5LD.mjs +1 -0
  22. package/dist/chunk-UBH4K5YD.mjs +1 -0
  23. package/dist/chunk-UF3MO5XQ.mjs +1 -0
  24. package/dist/chunk-XLXVGQ3P.mjs +3 -0
  25. package/dist/chunk-YOOPMYT6.mjs +1 -0
  26. package/dist/chunk-Z72TVDHY.mjs +1 -0
  27. package/dist/cinematic/index.cjs +2 -2
  28. package/dist/cinematic/index.d.mts +3 -1
  29. package/dist/cinematic/index.d.ts +3 -1
  30. package/dist/cinematic/index.mjs +1 -1
  31. package/dist/{engine-6VsjEwzb.d.ts → engine-Bi2x8-X-.d.mts} +2 -2
  32. package/dist/{engine-BLWKCfxC.d.mts → engine-DAlvk6i0.d.ts} +2 -2
  33. package/dist/frames/index.cjs +1 -1
  34. package/dist/frames/index.d.mts +2 -2
  35. package/dist/frames/index.d.ts +2 -2
  36. package/dist/frames/index.mjs +1 -1
  37. package/dist/group/index.cjs +3 -3
  38. package/dist/group/index.d.mts +3 -3
  39. package/dist/group/index.d.ts +3 -3
  40. package/dist/group/index.mjs +1 -1
  41. package/dist/horizontal/index.cjs +1 -1
  42. package/dist/horizontal/index.d.mts +2 -2
  43. package/dist/horizontal/index.d.ts +2 -2
  44. package/dist/horizontal/index.mjs +1 -1
  45. package/dist/{index-BN8yKeQ3.d.ts → index-BMMZ8aW7.d.mts} +2 -2
  46. package/dist/{index-hSQqLVbg.d.ts → index-CEMsUTEG.d.ts} +3 -3
  47. package/dist/{index-DAiRJgtF.d.mts → index-ClAFxNEp.d.mts} +3 -3
  48. package/dist/{index-DVjblK_4.d.mts → index-MdQ4ti_z.d.ts} +2 -2
  49. package/dist/index.cjs +4 -4
  50. package/dist/index.d.mts +6 -6
  51. package/dist/index.d.ts +6 -6
  52. package/dist/index.mjs +1 -1
  53. package/dist/lenis/index.cjs +1 -1
  54. package/dist/lenis/index.d.mts +15 -16
  55. package/dist/lenis/index.d.ts +15 -16
  56. package/dist/lenis/index.mjs +1 -1
  57. package/dist/nuxt/index.cjs +3 -3
  58. package/dist/nuxt/index.d.mts +4 -3
  59. package/dist/nuxt/index.d.ts +4 -3
  60. package/dist/nuxt/index.mjs +1 -1
  61. package/dist/progress/index.cjs +1 -1
  62. package/dist/progress/index.d.mts +2 -2
  63. package/dist/progress/index.d.ts +2 -2
  64. package/dist/progress/index.mjs +1 -1
  65. package/dist/react/index.cjs +2 -2
  66. package/dist/react/index.d.mts +4 -4
  67. package/dist/react/index.d.ts +4 -4
  68. package/dist/react/index.mjs +1 -1
  69. package/dist/reveal/index.cjs +1 -1
  70. package/dist/reveal/index.d.mts +2 -2
  71. package/dist/reveal/index.d.ts +2 -2
  72. package/dist/reveal/index.mjs +1 -1
  73. package/dist/{scroll-draw-Fzir8hlU.d.mts → scroll-draw-CKZysh22.d.mts} +1 -1
  74. package/dist/{scroll-draw-BsU_Ohmu.d.ts → scroll-draw-DbY8RUJE.d.ts} +1 -1
  75. package/dist/snap/index.cjs +1 -1
  76. package/dist/snap/index.d.mts +2 -2
  77. package/dist/snap/index.d.ts +2 -2
  78. package/dist/snap/index.mjs +1 -1
  79. package/dist/solid/index.cjs +3 -3
  80. package/dist/solid/index.d.mts +40 -4
  81. package/dist/solid/index.d.ts +40 -4
  82. package/dist/solid/index.mjs +1 -1
  83. package/dist/svelte/index.cjs +3 -3
  84. package/dist/svelte/index.d.mts +47 -4
  85. package/dist/svelte/index.d.ts +47 -4
  86. package/dist/svelte/index.mjs +1 -1
  87. package/dist/text/index.cjs +1 -1
  88. package/dist/text/index.d.mts +2 -2
  89. package/dist/text/index.d.ts +2 -2
  90. package/dist/text/index.mjs +1 -1
  91. package/dist/timeline/index.cjs +10 -10
  92. package/dist/timeline/index.d.mts +2 -2
  93. package/dist/timeline/index.d.ts +2 -2
  94. package/dist/timeline/index.mjs +2 -2
  95. package/dist/{types-9bcJdVcg.d.mts → types-iITMwrru.d.mts} +10 -2
  96. package/dist/{types-9bcJdVcg.d.ts → types-iITMwrru.d.ts} +10 -2
  97. package/dist/video/index.cjs +1 -1
  98. package/dist/video/index.d.mts +2 -2
  99. package/dist/video/index.d.ts +2 -2
  100. package/dist/video/index.mjs +1 -1
  101. package/dist/vue/index.cjs +3 -3
  102. package/dist/vue/index.d.mts +4 -7
  103. package/dist/vue/index.d.ts +4 -7
  104. package/dist/vue/index.mjs +1 -1
  105. package/dist/web-component/index.cjs +3 -3
  106. package/dist/web-component/index.mjs +1 -1
  107. package/dist/wrapper-BOHrDnBO.d.mts +8 -0
  108. package/dist/wrapper-Cm7JTIVl.d.ts +8 -0
  109. package/package.json +1 -1
  110. package/dist/chunk-22P4KBPG.mjs +0 -1
  111. package/dist/chunk-32ZCSGFZ.mjs +0 -1
  112. package/dist/chunk-7USW2XFB.mjs +0 -1
  113. package/dist/chunk-7XOFQCQE.mjs +0 -3
  114. package/dist/chunk-BDXWPUBJ.mjs +0 -2
  115. package/dist/chunk-BRV2B2YW.mjs +0 -1
  116. package/dist/chunk-D2BHE4F2.mjs +0 -1
  117. package/dist/chunk-QZKYGS74.mjs +0 -1
  118. package/dist/chunk-THPTANES.mjs +0 -1
  119. package/dist/chunk-U5TKLHGW.mjs +0 -1
  120. package/dist/chunk-V3Z6G5JE.mjs +0 -1
  121. package/dist/chunk-WKOT2MND.mjs +0 -1
  122. package/dist/chunk-XSVTHCLO.mjs +0 -1
@@ -1,3 +1,3 @@
1
- 'use strict';var vue=require('vue');function An({tension:e=2.5,friction:t=2.2}={}){return n=>1-Math.cos(n*Math.PI*e)*Math.pow(1-n,t)}function On({bounces:e=3,decay:t=.5}={}){let n=Math.max(1,Math.round(e)),r=Math.max(.01,Math.min(.99,t)),o=Math.sqrt(r),s=0,a=[];for(let g=0;g<n;g++){let w=Math.pow(o,g);a.push(w),s+=w;}let f=[0],m=0;for(let g=0;g<n;g++)m+=a[g]/s,f.push(m);return g=>{if(g<=0)return 0;if(g>=1)return 1;for(let w=0;w<n;w++)if(g<=f[w+1]){let O=(g-f[w])/(f[w+1]-f[w]);if(w===0)return O*(2-O);let S=1-Math.pow(r,w);return S+(1-S)*(2*O-1)*(2*O-1)}return 1}}function Pn({amplitude:e=1,period:t=.4}={}){let n=Math.max(1,e),r=Math.max(.1,t),o=n<=1?r/4:r/(2*Math.PI)*Math.asin(1/n);return s=>s<=0?0:s>=1?1:n*Math.pow(2,-10*s)*Math.sin((s-o)*(2*Math.PI)/r)+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:An(),bounce:On(),elastic:Pn()};function st(e,t,n){return Math.min(n,Math.max(t,e))}function le(e="top bottom"){let t=e.trim();if(/^\d+(\.\d+)?%$/.test(t))return {element:"top",viewport:t};let[n="top",r="bottom"]=t.split(/\s+/).filter(Boolean);return {element:n,viewport:r}}var jt=(e,t)=>e==="top"?0:e==="center"?.5:e==="bottom"?1:t;function Wt(e,t,n,r){return e+n+t*jt(r,0)}function Bt(e,t){return t*(/^\d+(\.\d+)?%$/.test(e)?parseFloat(e)/100:jt(e,1))}function U(e,t,n,r){return n===t?0:st((e-t)/(n-t)*r,0,1)}function Ce(e,t,n,r,o){let s=Wt(e.top,e.height,t,r.element)-Bt(r.viewport,n),a=Wt(e.top,e.height,t,o.element)-Bt(o.viewport,n);return {tStart:s,tEnd:a}}function ft(e,t,n){let r=e.getBoundingClientRect(),o=n==="x"?r.width:r.height;return t?{top:n==="x"?r.left-t.getBoundingClientRect().left-t.clientLeft+t.scrollLeft:r.top-t.getBoundingClientRect().top-t.clientTop+t.scrollTop,height:o,scroll:0}:{top:n==="x"?r.left:r.top,height:o,scroll:n==="x"?window.scrollX:window.scrollY}}function mt(e){let t=parseFloat(e.getAttribute("pathLength")??"");if(t>0)return t;let n=e.tagName.toLowerCase();if(n==="rect"){let r=parseFloat(e.getAttribute("width")??"0"),o=parseFloat(e.getAttribute("height")??"0");return 2*(r+o)}if(n==="circle"){let r=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*r}return e.getTotalLength()}function qt(e){let t=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(t)return [parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)];let n=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(n)return [parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16)];let r=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return r?[parseInt(r[1]),parseInt(r[2]),parseInt(r[3])]:null}function pt(e,t,n){let r=qt(e),o=qt(t);return !r||!o?e:`rgb(${Math.round(r[0]+(o[0]-r[0])*n)},${Math.round(r[1]+(o[1]-r[1])*n)},${Math.round(r[2]+(o[2]-r[2])*n)})`}var Yt={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var Xe=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function D(e,...t){Xe&&console.warn(`[svg-scroll-draw] ${e}`,...t);}var kn="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Rn="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Ut=33;function $n(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function Fn(e){let t=[];for(let n=0;n<Ut;n++){let r=n/(Ut-1);t.push(String(Math.round(e(r)*1e5)/1e5));}return `linear(${t.join(",")})`}function dt(e){switch(e){case "linear":return "linear";case "ease-in":return kn;case "ease-out":return Rn;case "ease-in-out":return $n()?Fn(ne["ease-in-out"]):null;default:return null}}var Qt=Symbol.for("svg-scroll-draw.registry");function Kt(){let e=globalThis;return e[Qt]||(e[Qt]=new Map)}function ke(e,t){Kt().set(e,t);}function Re(e){Kt().delete(e);}function Ze(e){if(typeof window>"u"||typeof window.matchMedia!="function")return ()=>{};let t=window.matchMedia("(prefers-reduced-motion: reduce)"),n=o=>e(!!o.matches);if(typeof t.addEventListener=="function")return t.addEventListener("change",n),()=>t.removeEventListener("change",n);let r=t;return r.addListener?.(n),()=>r.removeListener?.(n)}function qe(e,t){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t(e,true);let n=t(e,false),r=Ze(s=>{if(!s)return;r();let a=(n.getProgress?.()??0)>=1;n.destroy(),n=t(a?{...e,onComplete:void 0}:e,true);}),o={};for(let s of Object.keys(n))o[s]=(...a)=>n[s]?.(...a);return o.destroy=()=>{r(),n.destroy();},o}var it,gt=new Set,yt=new WeakMap,at=new Map,Xt=e=>{let t=e.getBoundingClientRect();return t.width+" "+t.height};function Hn(e){let t=new Set;for(let n of e)for(;n&&n!==document.body;n=n.parentElement)for(let r=n;r;r=r.previousElementSibling)t.add(r);return t}function Zt(e,t){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let n=()=>t();it??(it=new ResizeObserver(o=>{let s=false;for(let{target:a}of o)yt.get(a)!==Xt(a)&&(s=true),yt.set(a,"");s&&gt.forEach(a=>a());})),gt.add(n);let r=Hn(e);return [document.body,document.documentElement].forEach(o=>o&&r.add(o)),r.forEach(o=>{yt.has(o)||yt.set(o,Xt(o)),at.set(o,(at.get(o)??0)+1),it.observe(o);}),()=>{gt.delete(n)&&(r.forEach(o=>{let s=(at.get(o)??1)-1;if(s)return void at.set(o,s);at.delete(o),it?.unobserve(o);}),gt.size||(it?.disconnect(),it=void 0));}}function Ne(e,t,n,r,o){let s,a=NaN,f,m,g=()=>{s=0,r(),!f&&!s&&(a=n())>0&&a<1&&(s=requestAnimationFrame(g));},w=()=>{!s&&!f&&n()!==a&&(s=requestAnimationFrame(g));},O=z=>{f=z,cancelAnimationFrame(s),s=a=NaN,w();},S=()=>{clearTimeout(m),o(),w();},W=()=>{clearTimeout(m),m=setTimeout(S,150);},Q=Zt(t,W),v=z=>{e[z]("scroll",w,{passive:true}),window[z]("resize",W),window[z]("orientationchange",W);};return v("addEventListener"),w(),{hold:O,remeasure:S,off(){O(true),v("removeEventListener"),Q(),clearTimeout(m);}}}var In=0;function Nn(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Jt(e,t){let n="";try{n=getComputedStyle(e).getPropertyValue(t).trim();}catch{}return n||(e.getAttribute(t)??"").trim()}var en=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function Dn(e){if(!Xe)return;let t=Jt(e,"stroke");if(!t||t==="none"){D("Element has no stroke \u2014 path will not be visible.",e);return}let n=(e.getAttribute("fill")??"").trim();n&&!en.has(n)&&!en.has(Jt(e,"fill"))&&D("Element has a fill \u2014 it may obscure the stroke animation.",e);}function _n(e,t,n){let r=document.createElement("div");r.setAttribute("data-svg-scroll-draw-debug",""),r.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function o(){let s=n==="x"?window.scrollX:window.scrollY,a=e-s,f=t-s,m=n==="x";r.innerHTML=`
2
- <div style="position:absolute;${m?`left:${a}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${a}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:${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(r),window.addEventListener("scroll",o,{passive:true}),o(),{el:r,destroy(){window.removeEventListener("scroll",o),r.remove();}}}var tn=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,nn=/[MmLlHhVvCcSsQqTtAaZz]/g;function Vn(e,t,n){if(!Xe)return;let r=(e.match(nn)??[]).join("").toUpperCase(),o=(t.match(nn)??[]).join("").toUpperCase(),s=(e.match(tn)??[]).length,a=(t.match(tn)??[]).length;if(r!==o){D(`morphTo: command sequence differs (${r||"\u2205"} \u2192 ${o||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}s!==a&&D(`morphTo: coordinate count differs (${s} \u2192 ${a}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function zn(e,t,n){let r=(t.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),o=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let a=parseFloat(s),f=r[o++]??a;return String(+(a+(f-a)*n).toFixed(4))})}function Tt(e,t={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:qe(t,(n,r)=>Gn(e,n,r))}function Gn(e,t,n){let{preset:r,...o}=t,s=r?{...Yt[r],...o}:o,{selector:a="path, polyline, line, polygon, rect, circle",speed:f=1,fade:m=false,easing:g="linear",trigger:w={},stagger:O=0,direction:S="forward",once:W=false,debug:Q=false,axis:v="y",scrollContainer:z,autoReverse:J=false,delay:P=0,strokeColor:A,strokeWidth:L,fillOpacity:k,waypoints:y,velocityScale:R=false,threshold:G=0,rootMargin:ie="0px",repeat:K=0,repeatDelay:_=0,morphTo:H,clip:T,autoplay:X=false,duration:E=1e3,native:C=true,onProgress:he,onStart:I,onComplete:j,onEnter:fe,onLeave:Se,onEnterBack:me,onLeaveBack:ae}=s,x=T===true?"left":typeof T=="string"?T:false,M=typeof g=="function"?g:ne[g]??ne.linear,re=le(w.start||"top bottom"),$e=le(w.end||"bottom top"),Z=typeof z=="string"?document.querySelector(z):z??null,Fe=Array.isArray(A)?A[0]:null,Te=Array.isArray(A)?A[1]:typeof A=="string"?A:null,be=Array.isArray(L)?L[0]:null,ze=Array.isArray(L)?L[1]:typeof L=="number"?L:null,He=Array.isArray(k)?k[0]:null,xe=Array.isArray(k)?k[1]:typeof k=="number"?k:null;function Ae(i){let u=i*100;switch(x){case "right":return `inset(0 0 0 ${100-u}%)`;case "top":return `inset(0 0 ${100-u}% 0)`;case "bottom":return `inset(${100-u}% 0 0 0)`;case "center":return `circle(${i*150}% at 50% 50%)`;default:return `inset(0 ${100-u}% 0 0)`}}let l=x?[]:Array.from(e.querySelectorAll(a)),d=[],oe=[],$=0,V=0,B=O,q=0,Ve=0,se=false,Ie=false,we=0,Qe=-1,Ye=[],Ue=-1,pe=false,c=0,p=0,b,ce=false,ve=null;function Ge(){ve?.destroy(),ve=null;}let Oe=new Set,We=NaN,Be=true,ct=-1,Rt=performance.now(),Ke=NaN;function ut(){return Z?v==="x"?Z.scrollLeft:Z.scrollTop:v==="x"?window.scrollX:window.scrollY}function $t(){return Z?v==="x"?Z.clientWidth:Z.clientHeight:v==="x"?window.innerWidth:window.innerHeight}function Ft(){let i=ft(e,Z,v);return Ce(i,i.scroll,$t(),re,$e)}function En(){let i=V-$,u=l.length-1,h=Z??document.documentElement,N=v==="x"?"Width":"Height";if(B=O,O>0&&u>0&&i>0){let de=h[`scroll${N}`]-h[`client${N}`]-1-$-i/f;de>=0&&(B=Math.min(O,de/(u*i)));}let ue=Math.max(0,u)*B*i,Me=i/Math.min(f,1);q=$+Math.min(0,ue,Me,ue+Me),Ve=$+Math.max(0,ue,Me,ue+Me);}function Ht(){(({tStart:$,tEnd:V}=Ft())),En(),Q&&Xe&&(Ge(),ve=_n($,V,v));}function wt(i,u=Ft){ke(e,{type:"draw",getProgress:()=>i.getProgress(),getTrigger:u});let h=i.destroy;return i.destroy=()=>{h.call(i),Re(e);},i}function It(i,u){return W&&!J?Math.max(Qe,M(Ye[i]=Math.max(Ye[i]??0,u))):M(u)}function Sn(i,u){if(e.style.setProperty("--scroll-draw-progress",String(i)),x){let h=u==="reverse"?1-i:i;e.style.clipPath=Ae(h);return}l.forEach((h,N)=>vt(h,N,i,u));}function vt(i,u,h,N){i.style.strokeDashoffset=N==="reverse"?`${d[u]*h}`:`${d[u]*(1-h)}`,m&&(i.style.opacity=N==="reverse"?`${1-h}`:`${h}`),Fe&&Te?i.style.stroke=pt(Fe,Te,h):Te&&(i.style.stroke=Te),be!==null&&ze!==null?i.style.strokeWidth=`${be+(ze-be)*h}`:ze!==null&&(i.style.strokeWidth=`${ze}`),He!==null&&xe!==null?i.style.fillOpacity=`${He+(xe-He)*h}`:xe!==null&&(i.style.fillOpacity=`${xe}`),H&&i.tagName.toLowerCase()==="path"&&oe[u]&&i.setAttribute("d",zn(oe[u],H,h));}function Et(){if(e.style.setProperty("--scroll-draw-progress","0"),x){e.style.clipPath=Ae(S==="reverse"?1:0);return}l.forEach((i,u)=>{i.style.strokeDasharray=`${d[u]}`,i.style.strokeDashoffset=S==="reverse"?"0":`${d[u]}`,m?i.style.opacity=S==="reverse"?"1":"0":i.style.opacity="",Fe&&(i.style.stroke=Fe),be!==null&&(i.style.strokeWidth=`${be}`),He!==null&&(i.style.fillOpacity=`${He}`),H&&i.tagName.toLowerCase()==="path"&&oe[u]&&i.setAttribute("d",oe[u]);});}function nt(i,u){let h=i.getAttribute("d"),N=mt(i);if(H&&oe[u]){i.setAttribute("d",H);let ue=mt(i);i.setAttribute("d",oe[u]),N=Math.max(mt(i),ue),i.setAttribute("d",h);}d[u]=N,i.style.strokeDasharray=`${N}`;}if(l.forEach((i,u)=>{Dn(i);let h=i.tagName.toLowerCase()==="path";h?oe.push(i.getAttribute("d")??""):oe.push(""),nt(i,u);let N=d[u];H&&(h?Vn(oe[oe.length-1],H,i):D(`morphTo only applies to <path> elements \u2014 ignored on <${i.tagName}>.`,i)),n?(i.style.strokeDashoffset=S==="reverse"?`${N}`:"0",m&&(i.style.opacity="1"),Te&&(i.style.stroke=Te),ze!==null&&(i.style.strokeWidth=`${ze}`),xe!==null&&(i.style.fillOpacity=`${xe}`),H&&i.tagName.toLowerCase()==="path"&&i.setAttribute("d",H)):(i.style.strokeDashoffset=S==="reverse"?"0":`${N}`,m?i.style.opacity=S==="reverse"?"1":"0":i.style.opacity="",Fe&&(i.style.stroke=Fe),be!==null&&(i.style.strokeWidth=`${be}`),He!==null&&(i.style.fillOpacity=`${He}`));}),n)return x&&(e.style.clipPath=Ae(1)),j?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};x&&(e.style.clipPath=Ae(S==="reverse"?1:0));let Nt=typeof g=="string"?dt(g):null;function Tn(){return !(C===false||X||Q&&Xe||!Nn()||!l.length||!Nt||x||v!=="y"||Z||f!==1||O!==0||W||J||R!==false||H||y||K||P>0||he||I||j||fe||Se||me||ae||A!=null||L!=null||k!=null||(w.start||"top bottom").trim()!=="top bottom"||(w.end||"bottom top").trim()!=="bottom top")}function xn(){let i=++In,u=`svg-scroll-draw-${i}`,h=`svg-scroll-draw-host-${i}`,N=`--svg-scroll-draw-${i}`,ue=S==="reverse"?"0":"var(--ssd-len)",Me=S==="reverse"?"var(--ssd-len)":"0",de=`stroke-dashoffset:${ue};`,ee=`stroke-dashoffset:${Me};`;m&&(de+=`opacity:${S==="reverse"?1:0};`,ee+=`opacity:${S==="reverse"?0:1};`);let te=document.createElement("style");te.setAttribute("data-svg-scroll-draw",""),te.textContent=`@keyframes ${u}{from{${de}}to{${ee}}}.${h}{view-timeline-name:${N};view-timeline-axis:block;}.${u}{animation-name:${u};animation-duration:auto;animation-timing-function:${Nt};animation-fill-mode:both;animation-timeline:${N};animation-range:cover 0% cover 100%;}`,document.head.appendChild(te),e.classList.add(h);function Ee(F,Y){F.style.setProperty("--ssd-len",String(d[Y])),F.style.strokeDasharray=`${d[Y]}`,F.style.strokeDashoffset="",F.style.opacity="",F.style.animationPlayState="",F.classList.add(u);}l.forEach(Ee);let ge=false,Le=-1;function Pe(){if(Le>=0)return Le;let F=e.getBoundingClientRect(),{tStart:Y,tEnd:ye}=Ce({top:F.top,height:F.height},ut(),$t(),re,$e);return M(U(ut(),Y,ye,f))}return {destroy(){e.classList.remove(h),l.forEach(F=>{F.classList.remove(u),F.style.removeProperty("--ssd-len"),F.style.animationPlayState="";}),te.remove();},replay(){ge=false,Le=-1,l.forEach(Ee);},pause(){ge=true,l.forEach(F=>{F.style.animationPlayState="paused";});},resume(){ge&&(ge=false,l.forEach(F=>{F.style.animationPlayState="running";}));},seek(F){let Y=Math.min(1,Math.max(0,F));Le=Y,ge=true,l.forEach((ye,je)=>{ye.classList.remove(u),ye.style.strokeDashoffset=S==="reverse"?`${d[je]*Y}`:`${d[je]*(1-Y)}`,m&&(ye.style.opacity=S==="reverse"?`${1-Y}`:`${Y}`);});},getProgress(){return Pe()},refresh(){l.forEach((F,Y)=>{nt(F,Y),F.style.setProperty("--ssd-len",String(d[Y]));});}}}if(Tn())return wt(xn());function Mn(){let i=Math.max(1,E),u=x?i:i*(1+Math.max(0,l.length-1)*O),h=0,N=0,ue=false;function Me(Le){let Pe=true,F=Math.min(1,Math.max(0,Le/u));if(x){let Y=Math.min(1,Math.max(0,Le/i)),ye=M(Y);c=ye,e.style.setProperty("--scroll-draw-progress",String(ye)),e.style.clipPath=Ae(S==="reverse"?1-ye:ye),he?.(ye),Y<1&&(Pe=false);}else {l.forEach((ye,je)=>{let Cn=je*O*i,Gt=Math.min(1,Math.max(0,(Le-Cn)/i));vt(ye,je,M(Gt),S),Gt<1&&(Pe=false);});let Y=M(F);c=Y,he?.(Y),e.style.setProperty("--scroll-draw-progress",String(Y));}if(y){let Y=M(F);for(let ye in y){let je=parseFloat(ye);Y>=je&&!Oe.has(je)&&(Oe.add(je),y[ye]?.());}}return Pe}function de(Le){if(pe)return;let Pe=Le-h;Ie||(Ie=true,I?.());let F=Me(Pe);if(F&&!se){se=true,Me(u),j?.(),p<(K==="infinite"?1/0:K??0)&&(p++,b=setTimeout(()=>{h=performance.now(),Ie=false,se=false,Oe.clear(),Et(),we=requestAnimationFrame(de);},_));return}F||(we=requestAnimationFrame(de));}function ee(){cancelAnimationFrame(we),clearTimeout(b),h=performance.now(),N=0,pe=false,Ie=false,se=false,p=0,ue=true,c=0,Oe.clear(),Et(),we=requestAnimationFrame(de);}let te=new IntersectionObserver(Le=>{Le.forEach(Pe=>{Pe.isIntersecting&&!(W&&se)?ee():!Pe.isIntersecting&&!W&&!se&&(cancelAnimationFrame(we),clearTimeout(b),ue=false);});},{root:Z??null,threshold:G,rootMargin:ie}),Ee;function ge(){clearTimeout(Ee),Ee=setTimeout(()=>l.forEach(nt),150);}return window.addEventListener("resize",ge),window.addEventListener("orientationchange",ge),P>0?setTimeout(()=>te.observe(e),P):te.observe(e),{destroy(){cancelAnimationFrame(we),clearTimeout(b),te.disconnect(),window.removeEventListener("resize",ge),window.removeEventListener("orientationchange",ge),clearTimeout(Ee);},replay(){p=0,ee();},pause(){pe||!ue||(pe=true,N=performance.now()-h,cancelAnimationFrame(we));},resume(){pe&&(pe=false,ue=true,h=performance.now()-N,we=requestAnimationFrame(de));},seek(Le){let Pe=Math.min(1,Math.max(0,Le));c=Pe,pe=true,N=Pe*u,h=performance.now()-N,cancelAnimationFrame(we),Me(N);},getProgress(){return c},refresh(){clearTimeout(Ee),l.forEach(nt);}}}if(X)return wt(Mn());Ht();let Dt=()=>U(ut(),q,Ve,1);function _t(){se=true,j?.(),p<(K==="infinite"?1/0:K)&&(p++,b=setTimeout(()=>{ce=true;},_));}function Vt(){Qe=-1,Ye=[],Ie=false,se=false,ce=false,Oe.clear(),Et(),Be=true;}function Ln(){let i=performance.now(),u=ut();if(ce&&Dt()%1&&Vt(),!Be&&R===false&&u===We)return;Be=false,We=u;let h=f;if(R!==false){let ee=i-Rt,te=ee>0?Math.abs(u-(ct<0?u:ct))/ee:0;h=f*Math.max(.2,1+te*(typeof R=="number"?R:1)*.04);}ct=u,Rt=i;let N=J?Ue===-1||u>=Ue?"forward":"reverse":S;Ue=u;let ue=V-$,Me=true,de=ue===0?0:(u-$)/ue;if(isNaN(Ke)||(Ke<=0&&de>0&&fe?.(),Ke<1&&de>=1&&Se?.(),Ke>=1&&de<1&&me?.(),Ke>0&&de<=0&&ae?.()),Ke=de,x){let ee=It(0,U(u,$,V,h));c=ee,e.style.setProperty("--scroll-draw-progress",String(ee));let te=N==="reverse"?1-ee:ee;e.style.clipPath=Ae(te),he?.(ee),!Ie&&U(u,$,V,h)>0&&(Ie=true,I?.()),ee>=1&&!se?_t():ee<1&&!W&&(se=false);return}if(l.forEach((ee,te)=>{let Ee=te*B*ue,ge=It(te,U(u,$+Ee,V+Ee,h));vt(ee,te,ge,N),te===0&&(c=ge,he?.(ge),e.style.setProperty("--scroll-draw-progress",String(ge))),ge<1&&(Me=false);}),y){let ee=M(U(u,$,V,h));for(let te in y){let Ee=parseFloat(te);ee>=Ee&&!Oe.has(Ee)&&(Oe.add(Ee),y[te]?.());}}!Ie&&U(u,$,V,h)>0&&(Ie=true,I?.()),Me&&!se?_t():!Me&&!W&&(se=false);}let rt=Ne(Z??window,[e],Dt,Ln,()=>{let i=d.join();l.forEach(nt),Ht(),Be=true,d.join()!==i&&ot();}),St=P>0;function ot(){rt.hold(pe||St);}let zt;return St&&(zt=setTimeout(()=>{St=false,ot();},P)),ot(),wt({destroy(){clearTimeout(b),clearTimeout(zt),rt.off(),Ge();},replay(){Vt(),Ue=-1,ct=-1,p=0,pe=false,c=0,clearTimeout(b),ot();},pause(){pe=true,rt.hold(true);},resume(){pe&&(pe=false,Be=true,ot());},seek(i){let u=Math.min(1,Math.max(0,i));c=u,Qe=u,Ye=[],pe=true,rt.hold(true),Sn(u,S),Be=true;},getProgress(){return c},refresh:rt.remeasure},()=>({tStart:$,tEnd:V}))}var rn=new WeakMap,Wn=0;function lt(e){return JSON.stringify(e,(t,n)=>{if(typeof n=="function")return "\u0192";if(typeof Element<"u"&&n instanceof Element){let r=rn.get(n);return r===void 0&&rn.set(n,r=++Wn),`el#${r}`}return n})}function on(e,t){let n={...e};for(let r of Object.keys(n))typeof n[r]=="function"&&(n[r]=(...o)=>t()[r]?.(...o));return n}function Bn(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function sn(e){let t=[],n=/([\w]+)\(([^)]*)\)/g,r;for(;(r=n.exec(e))!==null;){let o=[],s=[],a=r[2].trim();if(a)for(let f of a.split(/[\s,]+/)){let m=f.match(/^([-+]?[\d.eE]+)(.*)$/);o.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}t.push({fn:r[1],nums:o,units:s});}return t}function jn(e,t,n){let r=sn(e),o=sn(t);return r.length===0||r.length!==o.length?n<1?e:t:r.map((s,a)=>{let f=o[a];return s.fn!==f.fn||s.nums.length!==f.nums.length?n<1?`${s.fn}(${s.nums.map((m,g)=>`${m}${s.units[g]}`).join(", ")})`:`${f.fn}(${f.nums.map((m,g)=>`${m}${f.units[g]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,g)=>`${m+(f.nums[g]-m)*n}${s.units[g]}`).join(", ")})`}).join(" ")}function an(e,t,n){if(typeof e=="number"&&typeof t=="number")return String(e+(t-e)*n);let r=String(e),o=String(t);if(Bn(r))return pt(r,o,n);if(r.includes("("))return jn(r,o,n);let s=r.match(/^([-+]?[\d.]+)(.*)$/),a=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&a){let f=parseFloat(s[1]),m=parseFloat(a[1]);return `${f+(m-f)*n}${s[2]||a[2]}`}return n<1?r:o}function qn(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}var Yn=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),Un=0,ln="--scroll-draw-progress";function Qn(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var un={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function xt(e,t){return typeof window>"u"?un:t.respectReducedMotion===false?cn(e,t,false):qe(t,(n,r)=>cn(e,n,r))}function cn(e,t,n){let{props:r,trigger:o={},easing:s="ease-out",speed:a=1,once:f=false,axis:m="y",scrollContainer:g,native:w=true,velocityScale:O=false,triggerElement:S,onProgress:W,onComplete:Q,onEnter:v,onLeave:z,onEnterBack:J,onLeaveBack:P}=t,A=typeof s=="function"?s:ne[s]??ne["ease-out"],L=le(o.start||"top bottom"),k=le(o.end||"bottom top"),y=S??e,R=typeof g=="string"?document.querySelector(g):g??null,G=Object.entries(r).map(([l,d])=>({prop:qn(l),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function ie(){let l=window.getComputedStyle(e);for(let d of G)d.from===""&&(d.from=l.getPropertyValue(d.prop).trim()||"0");}function K(){for(let l of G)e.style.setProperty(l.prop,String(l.to));}let _=new Map;for(let l of [...G.map(d=>d.prop),ln])_.set(l,e.style.getPropertyValue(l));function H(){for(let[l,d]of _)d?e.style.setProperty(l,d):e.style.removeProperty(l);}if(n)return K(),Q?.(),{...un,destroy:H,getProgress:()=>1};ie();let T=()=>R?m==="x"?R.scrollLeft:R.scrollTop:m==="x"?window.scrollX:window.scrollY,X=()=>R?m==="x"?R.clientWidth:R.clientHeight:m==="x"?window.innerWidth:window.innerHeight,E=typeof s=="string"?dt(s):null;function C(){if(!w||!Qn()||!E||m!=="y"||R||y!==e||f||a!==1||W||Q||v||z||J||P||O!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let l of G)if(!Yn.has(l.prop))return false;return true}function he(){let l=`ssd-a-${++Un}`,d=G.map(q=>`${q.prop}:${q.from}`).join(";"),oe=G.map(q=>`${q.prop}:${q.to}`).join(";"),$=document.createElement("style");$.setAttribute("data-ssd-animate",""),$.textContent=`@keyframes ${l}{from{${d}}to{${oe}}}.${l}{animation-name:${l};animation-duration:auto;animation-timing-function:${E};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild($),e.classList.add(l);let V=()=>{let q=e.getBoundingClientRect();return Ce({top:q.top,height:q.height},T(),X(),L,k)};ke(e,{type:"animate",getProgress:()=>B.getProgress(),getTrigger:V});let B={refresh(){},destroy(){e.classList.remove(l),$.remove(),e.style.animationPlayState="",H(),Re(e);},replay(){e.classList.remove(l),e.offsetWidth,e.classList.add(l);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(q){let Ve=Math.min(1,Math.max(0,q));e.classList.remove(l);for(let se of G)e.style.setProperty(se.prop,an(se.from,se.to,Ve));},getProgress(){let{tStart:q,tEnd:Ve}=V();return A(U(T(),q,Ve,a))}};return B}if(C())return he();let I=0,j=0,fe=false,Se=-1,me=0,ae=0,x=false,M=NaN,re=-1,$e=0,Z=y===e?G:[],Fe=false;function Te(){let l=e.style,d=Z.map(B=>l.getPropertyValue(B.prop)),oe=l.transition;Z.length&&(l.transition="none"),Z.forEach(B=>l.setProperty(B.prop,_.get(B.prop)??""));let $=ft(y,R,m);Z.forEach((B,q)=>l.setProperty(B.prop,d[q])),Z.length&&(e.offsetWidth,l.transition=oe);let V=Ce($,$.scroll,X(),L,k);Fe&&Math.abs(V.tStart-I)<1&&Math.abs(V.tEnd-j)<1||(Fe=true,I=V.tStart,j=V.tEnd);}function be(l){e.style.setProperty(ln,String(l));for(let d of G)e.style.setProperty(d.prop,an(d.from,d.to,l));W?.(l);}function ze(l){if(isNaN(M)){M=l;return}M<=0&&l>0&&v?.(),M<1&&l>=1&&z?.(),M>=1&&l<1&&J?.(),M>0&&l<=0&&P?.(),M=l;}function He(){if(fe)return;let l=performance.now(),d=T(),oe=a;if(O!==false){let q=l-$e,Ve=q>0?Math.abs(d-(re<0?d:re))/q:0;oe=a*Math.max(.2,1+Ve*(typeof O=="number"?O:1)*.04);}re=d,$e=l;let $=j===I?0:(d-I)/(j-I);ze($);let V=U(d,I,j,oe),B=f?Math.max(Se,A(me=Math.max(me,V))):A(V);ae=B,be(B),B>=1&&!x?(x=true,Q?.()):B<1&&!f&&(x=false);}let xe=Ne(R??window,[y],()=>U(T(),I,j,Math.min(a,1)),He,Te);Te(),j===I&&D("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),me=U(T(),I,j,a),ae=A(me),be(ae),ke(e,{type:"animate",getProgress:()=>ae,getTrigger:()=>({tStart:I,tEnd:j})});function Ae(){fe=true,xe.hold(true);}return {destroy(){fe=true,xe.off(),H(),Re(e);},replay(){Se=-1,me=0,x=false,ae=0,fe=false,be(0),xe.hold(false);},pause:Ae,resume(){fe&&(fe=false,xe.hold(false));},seek(l){let d=Math.min(1,Math.max(0,l));ae=d,Se=d,me=0,Ae(),be(d);},getProgress(){return ae},refresh:xe.remeasure}}var Mt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Lt(e,t){if(typeof window>"u")return Mt;let n=typeof e=="string"?document.querySelector(e):e;return n?qe(t,(r,o)=>Kn(n,r,o)):(D("scrollCounter: element not found:",e),Mt)}function Kn(e,t,n){let{from:r=0,to:o,format:s,easing:a="ease-out",trigger:f={},once:m=true,decimals:g,onComplete:w}=t,O=g!==void 0?E=>E.toFixed(g):s??(E=>String(Math.round(E))),S=typeof a=="function"?a:ne[a]??ne["ease-out"],W=le(f.start||"top 80%"),Q=le(f.end||"top 20%");if(n)return e.textContent=O(o),w?.(),{...Mt,getProgress:()=>1};let v=0,z=0,J=false,P=-1,A=0,L=0,k=false,y=()=>window.scrollY,R=()=>window.innerHeight;function G(){let E=e.getBoundingClientRect(),C=Ce({top:E.top,height:E.height},y(),R(),W,Q);J&&Math.abs(C.tStart-v)<1&&Math.abs(C.tEnd-z)<1||(J=true,v=C.tStart,z=C.tEnd);}let ie=e.style.getPropertyValue("--scroll-draw-progress");function K(E){e.textContent=O(r+(o-r)*E),e.style.setProperty("--scroll-draw-progress",String(E));}let _=()=>U(y(),v,z,1);function H(){let E=_(),C=m?Math.max(P,S(A=Math.max(A,E))):S(E);L=C,K(C),C>=1&&!k?(k=true,w?.()):C<1&&!m&&(k=false);}G();{A=U(y(),v,z,1);let E=S(A);L=E,K(E);}let T=Ne(window,[e],_,H,G);ke(e,{type:"counter",getProgress:()=>L,getTrigger:()=>({tStart:v,tEnd:z})});let X=()=>T.hold(false);return {destroy(){T.off(),e.style.setProperty("--scroll-draw-progress",ie),Re(e);},replay(){P=-1,A=0,k=false,L=0,K(0),X();},pause:()=>T.hold(true),resume:X,seek(E){let C=Math.min(1,Math.max(0,E));L=C,P=C,A=0,T.hold(true),K(C);},getProgress(){return L}}}var fn={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,t={}){if(typeof window>"u")return fn;let n=typeof e=="string"?document.querySelector(e):e;if(!n||n.tagName.toLowerCase()!=="video")return D("scrollVideo: <video> element not found:",e),fn;let r=n,{trigger:o={},easing:s="linear",once:a=false,axis:f="y",preload:m="auto",triggerElement:g,onReady:w,onComplete:O,onProgress:S}=t,W=g??r,Q=window.matchMedia("(prefers-reduced-motion: reduce)").matches,v=typeof s=="function"?s:ne[s]??ne.linear,z=le(o.start||"top top"),J=le(o.end||"bottom top");r.pause(),r.hasAttribute("preload")||(r.preload=m);let P=t.from??0,A=t.to,L=0,k=0,y=false,R=-1,G=0,ie=0,K=false,_=false,H=()=>f==="x"?window.scrollX:window.scrollY,T=()=>f==="x"?window.innerWidth:window.innerHeight;function X(){let x=W.getBoundingClientRect(),M=f==="x"?x.left:x.top,re=f==="x"?x.width:x.height,$e=Ce({top:M,height:re},H(),T(),z,J);L=$e.tStart,k=$e.tEnd,_&&k===L&&D("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",r);}let E=NaN;function C(x){if(!_)return;let M=A??r.duration??0,re=P+(M-P)*x;re!==E&&(E=re,r.currentTime=re),r.style.setProperty("--scroll-draw-progress",String(x)),S?.(x);}let he=()=>U(H(),L,k,1);function I(){if(!_||Q)return;let x=he(),M=a?Math.max(R,v(G=Math.max(G,x))):v(x);ie=M,C(M),M>=1&&!K?(K=true,O?.()):M<1&&!a&&(K=false);}let j=Ne(window,[W],he,I,X),fe=()=>j.hold(y||!_||Q);fe();function Se(){if(_=true,A===void 0&&(A=r.duration),Q){C(1),w?.();return}X(),w?.(),y?C(ie):fe();}r.readyState>=1?Se():r.addEventListener("loadedmetadata",Se,{once:true}),_||X();let me=Q?()=>{}:Ze(x=>{x&&(me(),Q=true,j.hold(true),C(1));});ke(r,{type:"video",getProgress:()=>ie,getTrigger:()=>({tStart:L,tEnd:k})});function ae(){y&&(y=false,fe());}return {destroy(){j.off(),r.removeEventListener("loadedmetadata",Se),me(),Re(r);},replay(){R=-1,G=0,K=false,ie=0,E=NaN,C(0),ae();},pause(){y=true,j.hold(true);},resume:ae,seek(x){let M=Math.min(1,Math.max(0,x));ie=M,R=M,G=0,y=true,j.hold(true),E=NaN,C(M);},getProgress(){return ie}}}var ht={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Xn(e){let t=e>1?[0,e-1]:[0],n=[[0,e-1]];for(let r=0;r<n.length;r++){let[o,s]=n[r];if(s-o<2)continue;let a=o+s>>1;t.push(a),n.push([o,a],[a,s]);}return t}function mn(e,t){if(typeof window>"u")return ht;let n=typeof e=="string"?document.querySelector(e):e;if(!n||n.tagName.toLowerCase()!=="canvas")return D("scrollFrames: <canvas> element not found:",e),ht;let r=n,{frames:o,trigger:s={},easing:a="linear",once:f=false,axis:m="y",fit:g="cover",triggerElement:w,onReady:O,onLoad:S,onComplete:W,onProgress:Q}=t||{},v=Array.isArray(o)?o:null,z=t?.count,J=Math.floor(v?Math.min(z??v.length,v.length):z??NaN);if(!(v||typeof o=="function")||!Number.isFinite(J)||J<1)return D("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",r),ht;let P=t.concurrency??6;(!Number.isFinite(P)||P<1)&&(D("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",t.concurrency),P=6),P=Math.floor(P);let A=r.getContext("2d");if(!A)return D("scrollFrames: the canvas has no 2D context.",r),ht;let L=J-1,k=w??r,y=window.matchMedia("(prefers-reduced-motion: reduce)").matches,R=typeof a=="function"?a:ne[a]??ne.linear,G=c=>{let p=R(c);return p===p?p:0},ie=le(s.start||"top top"),K=le(s.end||"bottom top"),_=0,H=0,T=false,X=-1,E=0,C=0,he=false,I=false,j=false,fe=false,Se=0,me=-1,ae=new Array(J),x=new Uint8Array(J),M=new Set,re=y?[L]:Xn(J),$e=0,Z=0,Fe=false,Te=(c,...p)=>{if(c)try{c(...p);}catch(b){typeof reportError=="function"?reportError(b):setTimeout(()=>{throw b});}},be=false,ze=c=>{let p;try{p=v?v[c]:o(c);}catch(b){p=b;}return typeof p=="string"&&p?p:(be||(be=true,D(`scrollFrames: no URL for frame ${c}; it is skipped for its nearest neighbour.`,p)),null)},He=()=>m==="x"?window.scrollX:window.scrollY,xe=()=>m==="x"?window.innerWidth:window.innerHeight;function Ae(){!Fe&&Z===re.length&&(Fe=true,Te(S));}function l(){for(;!I&&M.size<P&&$e<re.length;){let c=re[$e++];x[c]||d(c);}}function d(c){x[c]=1;let p=ze(c);if(p===null){Z++,queueMicrotask(()=>{I||Ae();});return}let b=new Image,ce=false,ve=Ge=>{ce||I||(ce=true,b.onload=b.onerror=null,M.delete(b),Ge?ae[c]=b:D("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",p),Z++,l(),V(),Ae());};M.add(b),b.decoding="async",b.onerror=()=>ve(false),b.src=p,typeof b.decode=="function"?b.decode().then(()=>ve(true),()=>{b.complete?ve(b.naturalWidth>0):b.onload=()=>ve(true);}):b.onload=()=>ve(true);}function oe(c){for(let p=0;p<=L;p++){if(ae[c-p])return c-p;if(ae[c+p])return c+p}return -1}function $(){let c=r.clientWidth,p=r.clientHeight;if(!c||!p)return;let b=Math.min(window.devicePixelRatio||1,2),ce=Math.round(c*b),ve=Math.round(p*b);if(Math.abs(r.width-ce)<=1&&Math.abs(r.height-ve)<=1)return;r.width=ce,r.height=ve,me=-1;let Ge=r.clientWidth,Oe=r.clientHeight;if(Ge!==c||Oe!==p){let We=r.style;Ge!==c&&Oe!==p?(We.width=`${c}px`,We.height=`${p}px`):We.aspectRatio=`${c} / ${p}`;}}function V(){let c=oe(Se);if(c<0||c===me)return;let p=ae[c],b=r.width,ce=r.height,ve=p.naturalWidth||b,Ge=p.naturalHeight||ce,Oe=(g==="contain"?Math.min:Math.max)(b/ve,ce/Ge),We=ve*Oe,Be=Ge*Oe;A.clearRect(0,0,b,ce),A.drawImage(p,(b-We)/2,(ce-Be)/2,We,Be),me=c,j||(j=true,Te(O));}function B(c){Se=Math.min(L,Math.max(0,Math.round(c*L))),r.style.setProperty("--scroll-draw-progress",String(c)),V(),Te(Q,c,Se);}function q(){let c=k.getBoundingClientRect(),p=m==="x"?c.left:c.top,b=m==="x"?c.width:c.height,ce=Ce({top:p,height:b},He(),xe(),ie,K);_=ce.tStart,H=ce.tEnd,H===_&&b>0&&!y&&!fe&&(fe=true,D("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",r));}let Ve=()=>U(He(),_,H,1);function se(){if(y)return;let c=Ve(),p=f?Math.max(X,G(E=Math.max(E,c))):G(c);C=p,B(p),p>=1&&!he?(he=true,Te(W)):p<1&&!f&&(he=false);}function Ie(){C=1,B(1);}$(),y||q();let we=Ne(window,[k],Ve,se,()=>{$(),y||q(),V();}),Qe=()=>we.hold(T||y);Qe(),y&&Ie(),l();let Ye=typeof ResizeObserver=="function"?new ResizeObserver(()=>{$(),V();}):null;Ye?.observe(r);let Ue=y?()=>{}:Ze(c=>{c&&(Ue(),y=true,we.hold(true),re=re.slice(0,$e),x[L]||re.push(L),Ae(),Ie(),l());});ke(r,{type:"frames",getProgress:()=>C,getTrigger:()=>({tStart:_,tEnd:H})});function pe(){I||!T||(T=false,Qe());}return {destroy(){if(!I){I=true,we.off(),Ye?.disconnect(),Ue();for(let c of M)c.onload=c.onerror=null,c.src="";M.clear(),Re(r);}},replay(){I||(X=-1,E=0,he=false,C=0,B(0),pe());},pause(){I||(T=true,we.hold(true));},resume:pe,seek(c){if(I)return;let p=Math.min(1,Math.max(0,c===c?c:0));C=p,X=p,E=0,T=true,we.hold(true),B(p);},getProgress(){return C}}}var Zn=1e4;function At(e){let{frames:t,count:n}=e;if(typeof t!="function")return lt(e);let r=Number.isFinite(n)?Math.min(Math.max(Math.floor(n),0),Zn):0,o;try{o=Array.from({length:r},(s,a)=>t(a));}catch{o=["throws"];}return lt({...e,frames:o})}function pn(e){if(!e||e.getAttribute("aria-hidden")==="true")return;let t=e.getAttribute("role");t==="presentation"||t==="none"||e.getAttribute("aria-label")||e.getAttribute("aria-labelledby")||D('<ScrollFrames>: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.',e);}function dn(e,t){let n=document.createElement("span");n.textContent=t,n.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;user-select:none",e.appendChild(n);}function bt(e=""){let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=e,t}function yn(e){let t=e.textContent??"";return e.textContent="",t.split(/(\s+)/).filter(Boolean).map(n=>{let r=e.appendChild(bt(n)),o=/^\s+$/.test(n);return o?r.style.whiteSpace="pre":r.style.display="inline-block",o?null:r}).filter(n=>n!==null)}function Jn(e){let t=e.textContent??"";e.textContent="";let n=[],r=null;for(let o of t){let s=bt(o),a=o===" ";a?s.style.whiteSpace="pre":(s.style.display="inline-block",n.push(s)),a||o>"\u0DFF"?r=null:r||(r=e.appendChild(bt()),r.style.cssText="display:inline-block;white-space:nowrap"),(r??e).appendChild(s);}return n}function gn(e){let t=yn(e),n=new Map;for(let s of t){let a=s.offsetTop;n.has(a)||n.set(a,[]),n.get(a).push(s);}let r=[],o=Array.from(n.keys()).sort((s,a)=>s-a);for(let s of o){let a=n.get(s),f=bt();f.style.display="inline-block",a.forEach((m,g)=>{let w=m.nextElementSibling;f.appendChild(m),g<a.length-1&&w&&w.style.whiteSpace==="pre"&&f.appendChild(w);}),r.push(f);}return e.textContent="",r.forEach((s,a)=>{e.appendChild(s),a<r.length-1&&e.appendChild(document.createTextNode(" "));}),r}function er(e,t,n,r){if(n<=1||r===0)return e;r=Math.min(r,1/n);let o=(n-1)*r,s=t*r,a=s+(1-o);return a<=s?e>=s?1:0:st((e-s)/(a-s),0,1)}function tr(e,t){let n=[];if(t?.y!==void 0&&n.push(`translateY(${t.y*(1-e)}px)`),t?.x!==void 0&&n.push(`translateX(${t.x*(1-e)}px)`),t?.rotate!==void 0&&n.push(`rotate(${t.rotate*(1-e)}deg)`),t?.scale!==void 0){let r=t.scale+(1-t.scale)*e;n.push(`scale(${r})`);}return n.join(" ")}var Ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Pt(e,t={}){if(typeof window>"u")return Ot;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return D("scrollText: element not found:",e),Ot;let r=n;return qe(t,(o,s)=>nr(r,o,s))}function nr(e,t,n){let{split:r="words",stagger:o=.04,easing:s="ease-out",from:a={opacity:0,y:24},trigger:f={},once:m=true,onComplete:g}=t,w=typeof s=="function"?s:ne[s]??ne["ease-out"],O=le(f.start||"top 85%"),S=le(f.end||"top 40%"),W=e.innerHTML,Q=e.textContent??"",v;r==="chars"?v=Jn(e):r==="lines"?v=gn(e):v=yn(e),dn(e,Q);let z=v.length;function J(T,X){a?.opacity!==void 0&&(T.style.opacity=String(a.opacity+(1-a.opacity)*X));let E=tr(X,a);E&&(T.style.transform=E);}function P(T){e.style.setProperty("--scroll-draw-progress",String(T)),v.forEach((X,E)=>{let C=w(er(T,E,z,o));J(X,C);});}if(n)return P(1),g?.(),{...Ot,destroy:()=>{e.innerHTML=W;},getProgress:()=>1};P(0);let A=0,L=0,k=-1,y=0,R=false;function G(){({tStart:A,tEnd:L}=Ce(e.getBoundingClientRect(),window.scrollY,window.innerHeight,O,S));}let ie=()=>U(window.scrollY,A,L,1);function K(){let T=m?k=Math.max(k,ie()):ie();y=T,P(T),T>=1&&!R?(R=true,g?.()):T<1&&!m&&(R=false);}G();let _=Ne(window,[e],ie,K,()=>{r==="lines"&&(e.innerHTML=W,v=gn(e),dn(e,Q),P(y)),G();});ke(e,{type:"text",getProgress:()=>y,getTrigger:()=>({tStart:A,tEnd:L})});let H=()=>_.hold(false);return {destroy(){_.off(),e.innerHTML=W,Re(e);},replay(){k=-1,R=false,y=0,P(0),H();},pause:()=>_.hold(true),resume:H,seek(T){_.hold(true),P(y=k=st(T,0,1));},getProgress(){return y}}}var tt=e=>typeof e=="function"?e():vue.unref(e);function _e(e,t,n,r=lt){let o=null,s=t(),a=()=>{o?.destroy(),o=e.value?n(e.value,on(s,()=>s),s):null;};vue.onMounted(a),vue.watch(()=>r(s=t()),a),vue.onUnmounted(()=>{o?.destroy(),o=null;});}function No(e={}){let t=vue.ref(null);return _e(t,()=>tt(e),Tt),t}var hn={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},ir=[null,Boolean,[Boolean,String],[Boolean,Number]],kt=e=>({type:e,default:void 0}),Do=vue.defineComponent({name:"ScrollDraw",props:Object.fromEntries(Object.entries(hn).map(([e,t])=>[e,t?kt(ir[t]):null])),setup(e,{slots:t}){let n=vue.ref(null);return _e(n,()=>{let r={};for(let o in hn){let s=e[o];s!=null&&(r[o]=s);}return r},Tt),()=>vue.h("div",{ref:n},t.default?.())}});function _o(e){let t=vue.ref(null);return _e(t,()=>tt(e),xt),t}var Vo=vue.defineComponent({name:"ScrollAnimate",props:{options:{type:Object,required:true}},setup(e,{slots:t}){let n=vue.ref(null);return _e(n,()=>e.options,xt),()=>vue.h("div",{ref:n},t.default?.())}});function zo(e){let t=vue.ref(null);return _e(t,()=>tt(e),Lt),t}var Go=vue.defineComponent({name:"ScrollCounter",props:{to:{type:Number,required:true},from:{type:Number},format:{type:Function},easing:{type:[String,Function]},trigger:{type:Object},once:kt(Boolean),decimals:{type:Number},onComplete:{type:Function}},setup(e){let t=vue.ref(null);return _e(t,()=>{let n={to:e.to};return e.from!=null&&(n.from=e.from),e.format!=null&&(n.format=e.format),e.easing!=null&&(n.easing=e.easing),e.trigger!=null&&(n.trigger=e.trigger),e.once!=null&&(n.once=e.once),e.decimals!=null&&(n.decimals=e.decimals),e.onComplete!=null&&(n.onComplete=e.onComplete),n},Lt),()=>vue.h("span",{ref:t})}});function Wo(e={}){let t=vue.ref(null);return _e(t,()=>tt(e),Ct),t}var Bo=vue.defineComponent({name:"ScrollVideo",props:{src:{type:String,required:true},options:{type:Object},muted:{type:Boolean,default:true},playsInline:{type:Boolean,default:true},class:{type:String}},setup(e){let t=vue.ref(null);return _e(t,()=>e.options??{},Ct),()=>vue.h("video",{ref:t,src:e.src,muted:e.muted,playsinline:e.playsInline,preload:"auto",class:e.class})}}),vn=(e,{triggerElement:t,...n},r)=>{let o=typeof t=="string"?document.querySelector(t):t;return typeof t=="string"&&!o&&D(`<ScrollFrames>: triggerElement "${t}" matches nothing; measuring the canvas.`),mn(e,{...n,frames:r.frames,triggerElement:o??void 0})};function jo(e){let t=vue.ref(null);return _e(t,()=>tt(e),vn,At),t}var bn={frames:0,count:0,trigger:0,easing:0,once:1,axis:0,triggerElement:0,fit:0,concurrency:0,onReady:0,onLoad:0,onComplete:0,onProgress:0},qo=vue.defineComponent({name:"ScrollFrames",props:Object.fromEntries(Object.entries(bn).map(([e,t])=>[e,t?kt(Boolean):e==="frames"?{required:true}:null])),setup(e){let t=vue.ref(null);return _e(t,()=>{let n={};for(let r in bn){let o=e[r];o!=null&&(n[r]=o);}return n},vn,At),vue.onMounted(()=>pn(t.value)),()=>vue.h("canvas",{ref:t,role:"img"})}});function Yo(e={}){let t=vue.ref(null);return _e(t,()=>tt(e),Pt),t}var Uo=vue.defineComponent({name:"ScrollText",props:{options:{type:Object},tag:{type:String,default:"p"}},setup(e,{slots:t}){let n=vue.ref(null);return _e(n,()=>e.options??{},Pt),()=>vue.h(e.tag,{ref:n},t.default?.())}});exports.ScrollAnimate=Vo;exports.ScrollCounter=Go;exports.ScrollDraw=Do;exports.ScrollFrames=qo;exports.ScrollText=Uo;exports.ScrollVideo=Bo;exports.useScrollAnimate=_o;exports.useScrollCounter=zo;exports.useScrollDraw=No;exports.useScrollFrames=jo;exports.useScrollText=Yo;exports.useScrollVideo=Wo;
1
+ 'use strict';var vue=require('vue');var Xe=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function k(e,...r){Xe&&console.warn(`[svg-scroll-draw] ${e}`,...r);}function kr({tension:e=2.5,friction:r=2.2}={}){return t=>1-Math.cos(t*Math.PI*e)*Math.pow(1-t,r)}function Rr({bounces:e=3,decay:r=.5}={}){let t=Math.max(1,Math.round(e)),n=Math.max(.01,Math.min(.99,r)),o=Math.sqrt(n),s=0,i=[];for(let g=0;g<t;g++){let w=Math.pow(o,g);i.push(w),s+=w;}let c=[0],m=0;for(let g=0;g<t;g++)m+=i[g]/s,c.push(m);return g=>{if(g<=0)return 0;if(g>=1)return 1;for(let w=0;w<t;w++)if(g<=c[w+1]){let A=(g-c[w])/(c[w+1]-c[w]);if(w===0)return A*(2-A);let S=1-Math.pow(n,w);return S+(1-S)*(2*A-1)*(2*A-1)}return 1}}function $r({amplitude:e=1,period:r=.4}={}){let t=Math.max(1,e),n=Math.max(.1,r),o=t<=1?n/4:n/(2*Math.PI)*Math.asin(1/t);return s=>s<=0?0:s>=1?1:t*Math.pow(2,-10*s)*Math.sin((s-o)*(2*Math.PI)/n)+1}var Je={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:kr(),bounce:Rr(),elastic:$r()};function Fr(e,r,t,n){let o=(s,i,c)=>((1+3*s-3*i)*c+3*i-6*s)*c*c+3*s*c;return s=>{if(s<=0||s>=1)return +(s>0);let i=s;for(let c=0;c<8;c++)i-=(o(e,t,i)-s)/((3*(1+3*e-3*t)*i+6*t-12*e)*i+3*e);if(!(i>=0&&i<=1&&Math.abs(o(e,t,i)-s)<1e-9))for(let c=0,m=0,g=1;c<30;c++)i=(m+g)/2,o(e,t,i)<s?m=i:g=i;return o(r,n,i)}}function xt(e){let r=/^cubic-bezier\((.*)\)$/.exec(e==="ease"?"cubic-bezier(.25,.1,.25,1)":e.trim()),t=r?r[1].split(",").map(parseFloat):[];if(t.length===4&&t.every(Number.isFinite)&&t[0]*(1-t[0])>=0&&t[2]*(1-t[2])>=0)return [Fr(t[0],t[1],t[2],t[3]),`cubic-bezier(${t})`]}var Yt=new Set;function Ie(e,r="linear"){if(typeof e=="function")return e;if(e==null)return Je[r];if({}.hasOwnProperty.call(Je,e))return Je[e];let t=xt(String(e));return t?t[0]:(!Yt.has(e)&&Yt.add(e)&&k(`Unknown easing ${JSON.stringify(e)}: use a name, cubic-bezier() or a function.`),Je[r])}function it(e,r,t){return Math.min(t,Math.max(r,e))}function ae(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}}var Kt=(e,r)=>e==="top"?0:e==="center"?.5:e==="bottom"?1:r;function Ut(e,r,t,n){return e+t+r*Kt(n,0)}function Qt(e,r){return r*(/^\d+(\.\d+)?%$/.test(e)?parseFloat(e)/100:Kt(e,1))}function U(e,r,t,n){return t===r?0:it((e-r)/(t-r)*n,0,1)}function Le(e,r,t,n,o){let s=Ut(e.top,e.height,r,n.element)-Qt(n.viewport,t),i=Ut(e.top,e.height,r,o.element)-Qt(o.viewport,t);return {tStart:s,tEnd:i}}function mt(e,r,t){let n=e.getBoundingClientRect(),o=t==="x"?n.width:n.height;return r?{top:t==="x"?n.left-r.getBoundingClientRect().left-r.clientLeft+r.scrollLeft:n.top-r.getBoundingClientRect().top-r.clientTop+r.scrollTop,height:o,scroll:0}:{top:t==="x"?n.left:n.top,height:o,scroll:t==="x"?window.scrollX:window.scrollY}}function pt(e){let r=parseFloat(e.getAttribute("pathLength")??"");if(r>0)return r;let t=e.tagName.toLowerCase();if(t==="rect"){let n=parseFloat(e.getAttribute("width")??"0"),o=parseFloat(e.getAttribute("height")??"0");return 2*(n+o)}if(t==="circle"){let n=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*n}return e.getTotalLength()}function dt(e){return `${e} ${e*2}`}function Xt(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 gt(e,r,t){let n=Xt(e),o=Xt(r);return !n||!o?e:`rgb(${Math.round(n[0]+(o[0]-n[0])*t)},${Math.round(n[1]+(o[1]-n[1])*t)},${Math.round(n[2]+(o[2]-n[2])*t)})`}var Jt={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 Hr="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Ir="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Zt=33;function Dr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function Nr(e){let r=[];for(let t=0;t<Zt;t++){let n=t/(Zt-1);r.push(String(Math.round(e(n)*1e5)/1e5));}return `linear(${r.join(",")})`}function yt(e){switch(e){case "linear":return "linear";case "ease-in":return Hr;case "ease-out":return Ir;case "ease-in-out":return Dr()?Nr(Je["ease-in-out"]):null;default:return xt(e)?.[1]??null}}var er=Symbol.for("svg-scroll-draw.registry");function tr(){let e=globalThis;return e[er]||(e[er]=new Map)}function Pe(e,r){tr().set(e,r);}function ke(e){tr().delete(e);}function Ze(e){if(typeof window>"u"||typeof window.matchMedia!="function")return ()=>{};let r=window.matchMedia("(prefers-reduced-motion: reduce)"),t=o=>e(!!o.matches);if(typeof r.addEventListener=="function")return r.addEventListener("change",t),()=>r.removeEventListener("change",t);let n=r;return n.addListener?.(t),()=>n.removeListener?.(t)}function qe(e,r){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return r(e,true);let t=r(e,false),n=Ze(s=>{if(!s)return;n();let i=(t.getProgress?.()??0)>=1;t.destroy(),t=r(i?{...e,onComplete:void 0}:e,true);}),o={};for(let s of Object.keys(t))o[s]=(...i)=>t[s]?.(...i);return o.destroy=()=>{n(),t.destroy();},o}var at,ht=new Set,bt=new WeakMap,lt=new Map,rr=e=>{let r=e.getBoundingClientRect();return r.width+" "+r.height};function _r(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 nr(e,r){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let t=()=>r();at??(at=new ResizeObserver(o=>{let s=false;for(let{target:i}of o)bt.get(i)!==rr(i)&&(s=true),bt.set(i,"");s&&ht.forEach(i=>i());})),ht.add(t);let n=_r(e);return [document.body,document.documentElement].forEach(o=>o&&n.add(o)),n.forEach(o=>{bt.has(o)||bt.set(o,rr(o)),lt.set(o,(lt.get(o)??0)+1),at.observe(o);}),()=>{ht.delete(t)&&(n.forEach(o=>{let s=(lt.get(o)??1)-1;if(s)return void lt.set(o,s);lt.delete(o),at?.unobserve(o);}),ht.size||(at?.disconnect(),at=void 0));}}function De(e,r,t,n,o){let s,i=NaN,c,m,g=()=>{s=0,n(),!c&&!s&&(i=t())>0&&i<1&&(s=requestAnimationFrame(g));},w=()=>{!s&&!c&&t()!==i&&(s=requestAnimationFrame(g));},A=z=>{c=z,cancelAnimationFrame(s),s=i=NaN,w();},S=()=>{clearTimeout(m),o(),w();},B=()=>{clearTimeout(m),m=setTimeout(S,150);},Q=nr(r,B),v=z=>{e[z]("scroll",w,{passive:true}),window[z]("resize",B),window[z]("orientationchange",B);};return v("addEventListener"),w(),{hold:A,remeasure:S,off(){A(true),v("removeEventListener"),Q(),clearTimeout(m);}}}var Vr=0;function zr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function or(e,r){let t="";try{t=getComputedStyle(e).getPropertyValue(r).trim();}catch{}return t||(e.getAttribute(r)??"").trim()}var sr=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function Wr(e){if(!Xe)return;let r=or(e,"stroke");if(!r||r==="none"){k("Element has no stroke \u2014 path will not be visible.",e);return}let t=(e.getAttribute("fill")??"").trim();t&&!sr.has(t)&&!sr.has(or(e,"fill"))&&k("Element has a fill \u2014 it may obscure the stroke animation.",e);}function Br(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 o(){let s=t==="x"?window.scrollX:window.scrollY,i=e-s,c=r-s,m=t==="x";n.innerHTML=`
2
+ <div style="position:absolute;${m?`left:${i}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${i}px;left:0;right:0;border-top:2px dashed #22c55e;`}padding:2px 6px;color:#22c55e;background:rgba(0,0,0,.6)">\u25B6 start</div>
3
+ <div style="position:absolute;${m?`left:${c}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${c}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(n),window.addEventListener("scroll",o,{passive:true}),o(),{el:n,destroy(){window.removeEventListener("scroll",o),n.remove();}}}var ir=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,ar=/[MmLlHhVvCcSsQqTtAaZz]/g;function Gr(e,r,t){if(!Xe)return;let n=(e.match(ar)??[]).join("").toUpperCase(),o=(r.match(ar)??[]).join("").toUpperCase(),s=(e.match(ir)??[]).length,i=(r.match(ir)??[]).length;if(n!==o){k(`morphTo: command sequence differs (${n||"\u2205"} \u2192 ${o||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,t);return}s!==i&&k(`morphTo: coordinate count differs (${s} \u2192 ${i}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,t);}function jr(e,r,t){let n=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),o=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let i=parseFloat(s),c=n[o++]??i;return String(+(i+(c-i)*t).toFixed(4))})}function Lt(e,r={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:qe(r,(t,n)=>qr(e,t,n))}function qr(e,r,t){let{preset:n,...o}=r,s=n?{...Jt[n],...o}:o,{selector:i="path, polyline, line, polygon, rect, circle",speed:c=1,fade:m=false,easing:g="linear",trigger:w={},stagger:A=0,direction:S="forward",once:B=false,debug:Q=false,axis:v="y",scrollContainer:z,autoReverse:Z=false,delay:P=0,strokeColor:O,strokeWidth:L,fillOpacity:R,waypoints:y,velocityScale:$=false,threshold:W=0,rootMargin:se="0px",repeat:K=0,repeatDelay:_=0,morphTo:I,clip:T,autoplay:X=false,duration:E=1e3,native:C=true,onProgress:ye,onStart:D,onComplete:j,onEnter:ue,onLeave:Ee,onEnterBack:fe,onLeaveBack:ie}=s,M=T===true?"left":typeof T=="string"?T:false,x=Ie(g),re=ae(w.start||"top bottom"),Re=ae(w.end||"bottom top"),J=typeof z=="string"?document.querySelector(z):z??null,$e=Array.isArray(O)?O[0]:null,Se=Array.isArray(O)?O[1]:typeof O=="string"?O:null,he=Array.isArray(L)?L[0]:null,ze=Array.isArray(L)?L[1]:typeof L=="number"?L:null,Fe=Array.isArray(R)?R[0]:null,Te=Array.isArray(R)?R[1]:typeof R=="number"?R:null;function Ce(a){let f=a*100;switch(M){case "right":return `inset(0 0 0 ${100-f}%)`;case "top":return `inset(0 0 ${100-f}% 0)`;case "bottom":return `inset(${100-f}% 0 0 0)`;case "center":return `circle(${a*150}% at 50% 50%)`;default:return `inset(0 ${100-f}% 0 0)`}}let l=M?[]:Array.from(e.querySelectorAll(i)),d=[],ne=[],F=0,V=0,G=A,q=0,Ve=0,oe=false,He=false,be=0,Qe=-1,Ye=[],Ue=-1,me=false,u=0,p=0,b,le=false,we=null;function We(){we?.destroy(),we=null;}let Oe=new Set,Be=NaN,Ge=true,ut=-1,It=performance.now(),Ke=NaN;function ft(){return J?v==="x"?J.scrollLeft:J.scrollTop:v==="x"?window.scrollX:window.scrollY}function Dt(){return J?v==="x"?J.clientWidth:J.clientHeight:v==="x"?window.innerWidth:window.innerHeight}function Nt(){let a=mt(e,J,v);return Le(a,a.scroll,Dt(),re,Re)}function Mr(){let a=V-F,f=l.length-1,h=J??document.documentElement,N=v==="x"?"Width":"Height";if(G=A,A>0&&f>0&&a>0){let pe=h[`scroll${N}`]-h[`client${N}`]-1-F-a/c;pe>=0&&(G=Math.min(A,pe/(f*a)));}let ce=Math.max(0,f)*G*a,Me=a/Math.min(c,1);q=F+Math.min(0,ce,Me,ce+Me),Ve=F+Math.max(0,ce,Me,ce+Me);}function _t(){(({tStart:F,tEnd:V}=Nt())),Mr(),Q&&Xe&&(We(),we=Br(F,V,v));}function Et(a,f=Nt){Pe(e,{type:"draw",getProgress:()=>a.getProgress(),getTrigger:f});let h=a.destroy;return a.destroy=()=>{h.call(a),ke(e);},a}function Vt(a,f){return B&&!Z?Math.max(Qe,x(Ye[a]=Math.max(Ye[a]??0,f))):x(f)}function xr(a,f){if(e.style.setProperty("--scroll-draw-progress",String(a)),M){let h=f==="reverse"?1-a:a;e.style.clipPath=Ce(h);return}l.forEach((h,N)=>St(h,N,a,f));}function St(a,f,h,N){a.style.strokeDashoffset=N==="reverse"?`${d[f]*h}`:`${d[f]*(1-h)}`,m&&(a.style.opacity=N==="reverse"?`${1-h}`:`${h}`),$e&&Se?a.style.stroke=gt($e,Se,h):Se&&(a.style.stroke=Se),he!==null&&ze!==null?a.style.strokeWidth=`${he+(ze-he)*h}`:ze!==null&&(a.style.strokeWidth=`${ze}`),Fe!==null&&Te!==null?a.style.fillOpacity=`${Fe+(Te-Fe)*h}`:Te!==null&&(a.style.fillOpacity=`${Te}`),I&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",jr(ne[f],I,h));}function Tt(){if(e.style.setProperty("--scroll-draw-progress","0"),M){e.style.clipPath=Ce(S==="reverse"?1:0);return}l.forEach((a,f)=>{a.style.strokeDasharray=dt(d[f]),a.style.strokeDashoffset=S==="reverse"?"0":`${d[f]}`,m?a.style.opacity=S==="reverse"?"1":"0":a.style.opacity="",$e&&(a.style.stroke=$e),he!==null&&(a.style.strokeWidth=`${he}`),Fe!==null&&(a.style.fillOpacity=`${Fe}`),I&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",ne[f]);});}function nt(a,f){let h=a.getAttribute("d"),N=pt(a);if(I&&ne[f]){a.setAttribute("d",I);let ce=pt(a);a.setAttribute("d",ne[f]),N=Math.max(pt(a),ce),a.setAttribute("d",h);}d[f]=N,a.style.strokeDasharray=dt(N);}if(l.forEach((a,f)=>{Wr(a);let h=a.tagName.toLowerCase()==="path";h?ne.push(a.getAttribute("d")??""):ne.push(""),nt(a,f);let N=d[f];I&&(h?Gr(ne[ne.length-1],I,a):k(`morphTo only applies to <path> elements \u2014 ignored on <${a.tagName}>.`,a)),t?(a.style.strokeDashoffset=S==="reverse"?`${N}`:"0",m&&(a.style.opacity="1"),Se&&(a.style.stroke=Se),ze!==null&&(a.style.strokeWidth=`${ze}`),Te!==null&&(a.style.fillOpacity=`${Te}`),I&&a.tagName.toLowerCase()==="path"&&a.setAttribute("d",I)):(a.style.strokeDashoffset=S==="reverse"?"0":`${N}`,m?a.style.opacity=S==="reverse"?"1":"0":a.style.opacity="",$e&&(a.style.stroke=$e),he!==null&&(a.style.strokeWidth=`${he}`),Fe!==null&&(a.style.fillOpacity=`${Fe}`));}),t)return M&&(e.style.clipPath=Ce(1)),j?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};M&&(e.style.clipPath=Ce(S==="reverse"?1:0));let zt=typeof g=="string"?yt(g):null;function Lr(){return !(C===false||X||Q&&Xe||!zr()||!l.length||!zt||M||v!=="y"||J||c!==1||A!==0||B||Z||$!==false||I||y||K||P>0||ye||D||j||ue||Ee||fe||ie||O!=null||L!=null||R!=null||(w.start||"top bottom").trim()!=="top bottom"||(w.end||"bottom top").trim()!=="bottom top")}function Cr(){let a=++Vr,f=`svg-scroll-draw-${a}`,h=`svg-scroll-draw-host-${a}`,N=`--svg-scroll-draw-${a}`,ce=S==="reverse"?"0":"var(--ssd-len)",Me=S==="reverse"?"var(--ssd-len)":"0",pe=`stroke-dashoffset:${ce};`,ee=`stroke-dashoffset:${Me};`;m&&(pe+=`opacity:${S==="reverse"?1:0};`,ee+=`opacity:${S==="reverse"?0:1};`);let te=document.createElement("style");te.setAttribute("data-svg-scroll-draw",""),te.textContent=`@keyframes ${f}{from{${pe}}to{${ee}}}.${h}{view-timeline-name:${N};view-timeline-axis:block;}.${f}{animation-name:${f};animation-duration:auto;animation-timing-function:${zt};animation-fill-mode:both;animation-timeline:${N};animation-range:cover 0% cover 100%;}`,document.head.appendChild(te),e.classList.add(h);function ve(H,Y){H.style.setProperty("--ssd-len",String(d[Y])),H.style.strokeDasharray=dt(d[Y]),H.style.strokeDashoffset="",H.style.opacity="",H.style.animationPlayState="",H.classList.add(f);}l.forEach(ve);let de=false,xe=-1;function Ae(){if(xe>=0)return xe;let H=e.getBoundingClientRect(),{tStart:Y,tEnd:ge}=Le({top:H.top,height:H.height},ft(),Dt(),re,Re);return x(U(ft(),Y,ge,c))}return {destroy(){e.classList.remove(h),l.forEach(H=>{H.classList.remove(f),H.style.removeProperty("--ssd-len"),H.style.animationPlayState="";}),te.remove();},replay(){de=false,xe=-1,l.forEach(ve);},pause(){de=true,l.forEach(H=>{H.style.animationPlayState="paused";});},resume(){de&&(de=false,l.forEach(H=>{H.style.animationPlayState="running";}));},seek(H){let Y=Math.min(1,Math.max(0,H));xe=Y,de=true,l.forEach((ge,je)=>{ge.classList.remove(f),ge.style.strokeDashoffset=S==="reverse"?`${d[je]*Y}`:`${d[je]*(1-Y)}`,m&&(ge.style.opacity=S==="reverse"?`${1-Y}`:`${Y}`);});},getProgress(){return Ae()},refresh(){l.forEach((H,Y)=>{nt(H,Y),H.style.setProperty("--ssd-len",String(d[Y]));});}}}if(Lr())return Et(Cr());function Or(){let a=Math.max(1,E),f=M?a:a*(1+Math.max(0,l.length-1)*A),h=0,N=0,ce=false;function Me(xe){let Ae=true,H=Math.min(1,Math.max(0,xe/f));if(M){let Y=Math.min(1,Math.max(0,xe/a)),ge=x(Y);u=ge,e.style.setProperty("--scroll-draw-progress",String(ge)),e.style.clipPath=Ce(S==="reverse"?1-ge:ge),ye?.(ge),Y<1&&(Ae=false);}else {l.forEach((ge,je)=>{let Pr=je*A*a,qt=Math.min(1,Math.max(0,(xe-Pr)/a));St(ge,je,x(qt),S),qt<1&&(Ae=false);});let Y=x(H);u=Y,ye?.(Y),e.style.setProperty("--scroll-draw-progress",String(Y));}if(y){let Y=x(H);for(let ge in y){let je=parseFloat(ge);Y>=je&&!Oe.has(je)&&(Oe.add(je),y[ge]?.());}}return Ae}function pe(xe){if(me)return;let Ae=xe-h;He||(He=true,D?.());let H=Me(Ae);if(H&&!oe){oe=true,Me(f),j?.(),p<(K==="infinite"?1/0:K??0)&&(p++,b=setTimeout(()=>{h=performance.now(),He=false,oe=false,Oe.clear(),Tt(),be=requestAnimationFrame(pe);},_));return}H||(be=requestAnimationFrame(pe));}function ee(){cancelAnimationFrame(be),clearTimeout(b),h=performance.now(),N=0,me=false,He=false,oe=false,p=0,ce=true,u=0,Oe.clear(),Tt(),be=requestAnimationFrame(pe);}let te=new IntersectionObserver(xe=>{xe.forEach(Ae=>{Ae.isIntersecting&&!(B&&oe)?ee():!Ae.isIntersecting&&!B&&!oe&&(cancelAnimationFrame(be),clearTimeout(b),ce=false);});},{root:J??null,threshold:W,rootMargin:se}),ve;function de(){clearTimeout(ve),ve=setTimeout(()=>l.forEach(nt),150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),P>0?setTimeout(()=>te.observe(e),P):te.observe(e),{destroy(){cancelAnimationFrame(be),clearTimeout(b),te.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),clearTimeout(ve);},replay(){p=0,ee();},pause(){me||!ce||(me=true,N=performance.now()-h,cancelAnimationFrame(be));},resume(){me&&(me=false,ce=true,h=performance.now()-N,be=requestAnimationFrame(pe));},seek(xe){let Ae=Math.min(1,Math.max(0,xe));u=Ae,me=true,N=Ae*f,h=performance.now()-N,cancelAnimationFrame(be),Me(N);},getProgress(){return u},refresh(){clearTimeout(ve),l.forEach(nt);}}}if(X)return Et(Or());_t();let Wt=()=>U(ft(),q,Ve,1);function Bt(){oe=true,j?.(),p<(K==="infinite"?1/0:K)&&(p++,b=setTimeout(()=>{le=true;},_));}function Gt(){Qe=-1,Ye=[],He=false,oe=false,le=false,Oe.clear(),Tt(),Ge=true;}function Ar(){let a=performance.now(),f=ft();if(le&&Wt()%1&&Gt(),!Ge&&$===false&&f===Be)return;Ge=false,Be=f;let h=c;if($!==false){let ee=a-It,te=ee>0?Math.abs(f-(ut<0?f:ut))/ee:0;h=c*Math.max(.2,1+te*(typeof $=="number"?$:1)*.04);}ut=f,It=a;let N=Z?Ue===-1||f>=Ue?"forward":"reverse":S;Ue=f;let ce=V-F,Me=true,pe=ce===0?0:(f-F)/ce;if(isNaN(Ke)||(Ke<=0&&pe>0&&ue?.(),Ke<1&&pe>=1&&Ee?.(),Ke>=1&&pe<1&&fe?.(),Ke>0&&pe<=0&&ie?.()),Ke=pe,M){let ee=Vt(0,U(f,F,V,h));u=ee,e.style.setProperty("--scroll-draw-progress",String(ee));let te=N==="reverse"?1-ee:ee;e.style.clipPath=Ce(te),ye?.(ee),!He&&U(f,F,V,h)>0&&(He=true,D?.()),ee>=1&&!oe?Bt():ee<1&&!B&&(oe=false);return}if(l.forEach((ee,te)=>{let ve=te*G*ce,de=Vt(te,U(f,F+ve,V+ve,h));St(ee,te,de,N),te===0&&(u=de,ye?.(de),e.style.setProperty("--scroll-draw-progress",String(de))),de<1&&(Me=false);}),y){let ee=x(U(f,F,V,h));for(let te in y){let ve=parseFloat(te);ee>=ve&&!Oe.has(ve)&&(Oe.add(ve),y[te]?.());}}!He&&U(f,F,V,h)>0&&(He=true,D?.()),Me&&!oe?Bt():!Me&&!B&&(oe=false);}let ot=De(J??window,[e],Wt,Ar,()=>{let a=d.join();l.forEach(nt),_t(),Ge=true,d.join()!==a&&st();}),Mt=P>0;function st(){ot.hold(me||Mt);}let jt;return Mt&&(jt=setTimeout(()=>{Mt=false,st();},P)),st(),Et({destroy(){clearTimeout(b),clearTimeout(jt),ot.off(),We();},replay(){Gt(),Ue=-1,ut=-1,p=0,me=false,u=0,clearTimeout(b),st();},pause(){me=true,ot.hold(true);},resume(){me&&(me=false,Ge=true,st());},seek(a){let f=Math.min(1,Math.max(0,a));u=f,Qe=f,Ye=[],me=true,ot.hold(true),xr(f,S),Ge=true;},getProgress(){return u},refresh:ot.remeasure},()=>({tStart:F,tEnd:V}))}var lr=new WeakMap,Yr=0;function ct(e){return JSON.stringify(e,(r,t)=>{if(typeof t=="function")return "\u0192";if(typeof Element<"u"&&t instanceof Element){let n=lr.get(t);return n===void 0&&lr.set(t,n=++Yr),`el#${n}`}return t})}function cr(e,r){let t={...e};for(let n of Object.keys(t))typeof t[n]=="function"&&(t[n]=(...o)=>r()[n]?.(...o));return t}function Ur(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function ur(e){let r=[],t=/([\w]+)\(([^)]*)\)/g,n;for(;(n=t.exec(e))!==null;){let o=[],s=[],i=n[2].trim();if(i)for(let c of i.split(/[\s,]+/)){let m=c.match(/^([-+]?[\d.eE]+)(.*)$/);o.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}r.push({fn:n[1],nums:o,units:s});}return r}function Qr(e,r,t){let n=ur(e),o=ur(r);return n.length===0||n.length!==o.length?t<1?e:r:n.map((s,i)=>{let c=o[i];return s.fn!==c.fn||s.nums.length!==c.nums.length?t<1?`${s.fn}(${s.nums.map((m,g)=>`${m}${s.units[g]}`).join(", ")})`:`${c.fn}(${c.nums.map((m,g)=>`${m}${c.units[g]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,g)=>`${m+(c.nums[g]-m)*t}${s.units[g]}`).join(", ")})`}).join(" ")}function fr(e,r,t){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*t);let n=String(e),o=String(r);if(Ur(n))return gt(n,o,t);if(n.includes("("))return Qr(n,o,t);let s=n.match(/^([-+]?[\d.]+)(.*)$/),i=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&i){let c=parseFloat(s[1]),m=parseFloat(i[1]);return `${c+(m-c)*t}${s[2]||i[2]}`}return t<1?n:o}function Kr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var Xr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),Jr=0,mr="--scroll-draw-progress";function Zr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var dr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,r){return typeof window>"u"?dr:r.respectReducedMotion===false?pr(e,r,false):qe(r,(t,n)=>pr(e,t,n))}function pr(e,r,t){let{props:n,trigger:o={},easing:s="ease-out",speed:i=1,once:c=false,axis:m="y",scrollContainer:g,native:w=true,velocityScale:A=false,triggerElement:S,onProgress:B,onComplete:Q,onEnter:v,onLeave:z,onEnterBack:Z,onLeaveBack:P}=r,O=Ie(s,"ease-out"),L=ae(o.start||"top bottom"),R=ae(o.end||"bottom top"),y=S??e,$=typeof g=="string"?document.querySelector(g):g??null,W=Object.entries(n).map(([l,d])=>({prop:Kr(l),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function se(){let l=window.getComputedStyle(e);for(let d of W)d.from===""&&(d.from=l.getPropertyValue(d.prop).trim()||"0");}function K(){for(let l of W)e.style.setProperty(l.prop,String(l.to));}let _=new Map;for(let l of [...W.map(d=>d.prop),mr])_.set(l,e.style.getPropertyValue(l));function I(){for(let[l,d]of _)d?e.style.setProperty(l,d):e.style.removeProperty(l);}if(t)return K(),Q?.(),{...dr,destroy:I,getProgress:()=>1};se();let T=()=>$?m==="x"?$.scrollLeft:$.scrollTop:m==="x"?window.scrollX:window.scrollY,X=()=>$?m==="x"?$.clientWidth:$.clientHeight:m==="x"?window.innerWidth:window.innerHeight,E=typeof s=="string"?yt(s):null;function C(){if(!w||!Zr()||!E||m!=="y"||$||y!==e||c||i!==1||B||Q||v||z||Z||P||A!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let l of W)if(!Xr.has(l.prop))return false;return true}function ye(){let l=`ssd-a-${++Jr}`,d=W.map(q=>`${q.prop}:${q.from}`).join(";"),ne=W.map(q=>`${q.prop}:${q.to}`).join(";"),F=document.createElement("style");F.setAttribute("data-ssd-animate",""),F.textContent=`@keyframes ${l}{from{${d}}to{${ne}}}.${l}{animation-name:${l};animation-duration:auto;animation-timing-function:${E};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(l);let V=()=>{let q=e.getBoundingClientRect();return Le({top:q.top,height:q.height},T(),X(),L,R)};Pe(e,{type:"animate",getProgress:()=>G.getProgress(),getTrigger:V});let G={refresh(){},destroy(){e.classList.remove(l),F.remove(),e.style.animationPlayState="",I(),ke(e);},replay(){e.classList.remove(l),e.offsetWidth,e.classList.add(l);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(q){let Ve=Math.min(1,Math.max(0,q));e.classList.remove(l);for(let oe of W)e.style.setProperty(oe.prop,fr(oe.from,oe.to,Ve));},getProgress(){let{tStart:q,tEnd:Ve}=V();return O(U(T(),q,Ve,i))}};return G}if(C())return ye();let D=0,j=0,ue=false,Ee=-1,fe=0,ie=0,M=false,x=NaN,re=-1,Re=0,J=y===e?W:[],$e=false;function Se(){let l=e.style,d=J.map(G=>l.getPropertyValue(G.prop)),ne=l.transition;J.length&&(l.transition="none"),J.forEach(G=>l.setProperty(G.prop,_.get(G.prop)??""));let F=mt(y,$,m);J.forEach((G,q)=>l.setProperty(G.prop,d[q])),J.length&&(e.offsetWidth,l.transition=ne);let V=Le(F,F.scroll,X(),L,R);$e&&Math.abs(V.tStart-D)<1&&Math.abs(V.tEnd-j)<1||($e=true,D=V.tStart,j=V.tEnd);}function he(l){e.style.setProperty(mr,String(l));for(let d of W)e.style.setProperty(d.prop,fr(d.from,d.to,l));B?.(l);}function ze(l){if(isNaN(x)){x=l;return}x<=0&&l>0&&v?.(),x<1&&l>=1&&z?.(),x>=1&&l<1&&Z?.(),x>0&&l<=0&&P?.(),x=l;}function Fe(){if(ue)return;let l=performance.now(),d=T(),ne=i;if(A!==false){let q=l-Re,Ve=q>0?Math.abs(d-(re<0?d:re))/q:0;ne=i*Math.max(.2,1+Ve*(typeof A=="number"?A:1)*.04);}re=d,Re=l;let F=j===D?0:(d-D)/(j-D);ze(F);let V=U(d,D,j,ne),G=c?Math.max(Ee,O(fe=Math.max(fe,V))):O(V);ie=G,he(G),G>=1&&!M?(M=true,Q?.()):G<1&&!c&&(M=false);}let Te=De($??window,[y],()=>U(T(),D,j,Math.min(i,1)),Fe,Se);Se(),j===D&&k("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),fe=U(T(),D,j,i),ie=O(fe),he(ie),Pe(e,{type:"animate",getProgress:()=>ie,getTrigger:()=>({tStart:D,tEnd:j})});function Ce(){ue=true,Te.hold(true);}return {destroy(){ue=true,Te.off(),I(),ke(e);},replay(){Ee=-1,fe=0,M=false,ie=0,ue=false,he(0),Te.hold(false);},pause:Ce,resume(){ue&&(ue=false,Te.hold(false));},seek(l){let d=Math.min(1,Math.max(0,l));ie=d,Ee=d,fe=0,Ce(),he(d);},getProgress(){return ie},refresh:Te.remeasure}}var Ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function At(e,r){if(typeof window>"u")return Ot;let t=typeof e=="string"?document.querySelector(e):e;return t?qe(r,(n,o)=>en(t,n,o)):(k("scrollCounter: element not found:",e),Ot)}function en(e,r,t){let{from:n=0,to:o,format:s,easing:i="ease-out",trigger:c={},once:m=true,decimals:g,onComplete:w}=r,A=g!==void 0?E=>E.toFixed(g):s??(E=>String(Math.round(E))),S=Ie(i,"ease-out"),B=ae(c.start||"top 80%"),Q=ae(c.end||"top 20%");if(t)return e.textContent=A(o),w?.(),{...Ot,getProgress:()=>1};let v=0,z=0,Z=false,P=-1,O=0,L=0,R=false,y=()=>window.scrollY,$=()=>window.innerHeight;function W(){let E=e.getBoundingClientRect(),C=Le({top:E.top,height:E.height},y(),$(),B,Q);Z&&Math.abs(C.tStart-v)<1&&Math.abs(C.tEnd-z)<1||(Z=true,v=C.tStart,z=C.tEnd);}let se=e.style.getPropertyValue("--scroll-draw-progress");function K(E){e.textContent=A(n+(o-n)*E),e.style.setProperty("--scroll-draw-progress",String(E));}let _=()=>U(y(),v,z,1);function I(){let E=_(),C=m?Math.max(P,S(O=Math.max(O,E))):S(E);L=C,K(C),C>=1&&!R?(R=true,w?.()):C<1&&!m&&(R=false);}W();{O=U(y(),v,z,1);let E=S(O);L=E,K(E);}let T=De(window,[e],_,I,W);Pe(e,{type:"counter",getProgress:()=>L,getTrigger:()=>({tStart:v,tEnd:z})});let X=()=>T.hold(false);return {destroy(){T.off(),e.style.setProperty("--scroll-draw-progress",se),ke(e);},replay(){P=-1,O=0,R=false,L=0,K(0),X();},pause:()=>T.hold(true),resume:X,seek(E){let C=Math.min(1,Math.max(0,E));L=C,P=C,O=0,T.hold(true),K(C);},getProgress(){return L}}}var gr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Pt(e,r={}){if(typeof window>"u")return gr;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="video")return k("scrollVideo: <video> element not found:",e),gr;let n=t,{trigger:o={},easing:s="linear",once:i=false,axis:c="y",preload:m="auto",triggerElement:g,onReady:w,onComplete:A,onProgress:S}=r,B=g??n,Q=window.matchMedia("(prefers-reduced-motion: reduce)").matches,v=Ie(s),z=ae(o.start||"top top"),Z=ae(o.end||"bottom top");n.pause(),n.hasAttribute("preload")||(n.preload=m);let P=r.from??0,O=r.to,L=0,R=0,y=false,$=-1,W=0,se=0,K=false,_=false,I=()=>c==="x"?window.scrollX:window.scrollY,T=()=>c==="x"?window.innerWidth:window.innerHeight;function X(){let M=B.getBoundingClientRect(),x=c==="x"?M.left:M.top,re=c==="x"?M.width:M.height,Re=Le({top:x,height:re},I(),T(),z,Z);L=Re.tStart,R=Re.tEnd,_&&R===L&&k("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n);}let E=NaN;function C(M){if(!_)return;let x=O??n.duration??0,re=P+(x-P)*M;re!==E&&(E=re,n.currentTime=re),n.style.setProperty("--scroll-draw-progress",String(M)),S?.(M);}let ye=()=>U(I(),L,R,1);function D(){if(!_||Q)return;let M=ye(),x=i?Math.max($,v(W=Math.max(W,M))):v(M);se=x,C(x),x>=1&&!K?(K=true,A?.()):x<1&&!i&&(K=false);}let j=De(window,[B],ye,D,X),ue=()=>j.hold(y||!_||Q);ue();function Ee(){if(_=true,O===void 0&&(O=n.duration),Q){C(1),w?.();return}X(),w?.(),y?C(se):ue();}n.readyState>=1?Ee():n.addEventListener("loadedmetadata",Ee,{once:true}),_||X();let fe=Q?()=>{}:Ze(M=>{M&&(fe(),Q=true,j.hold(true),C(1));});Pe(n,{type:"video",getProgress:()=>se,getTrigger:()=>({tStart:L,tEnd:R})});function ie(){y&&(y=false,ue());}return {destroy(){j.off(),n.removeEventListener("loadedmetadata",Ee),fe(),ke(n);},replay(){$=-1,W=0,K=false,se=0,E=NaN,C(0),ie();},pause(){y=true,j.hold(true);},resume:ie,seek(M){let x=Math.min(1,Math.max(0,M));se=x,$=x,W=0,y=true,j.hold(true),E=NaN,C(x);},getProgress(){return se}}}var tn=1e4;function kt(e){let{frames:r,count:t}=e;if(typeof r!="function")return ct(e);let n=Number.isFinite(t)?Math.min(Math.max(Math.floor(t),0),tn):0,o;try{o=Array.from({length:n},(s,i)=>r(i));}catch{o=["throws"];}return ct({...e,frames:o})}function yr(e,r="<ScrollFrames>"){if(!e||e.getAttribute("aria-hidden")==="true")return;let t=e.getAttribute("role");t==="presentation"||t==="none"||e.getAttribute("aria-label")||e.getAttribute("aria-labelledby")||k(`${r}: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.`,e);}var wt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function rn(e){let r=e>1?[0,e-1]:[0],t=[[0,e-1]];for(let n=0;n<t.length;n++){let[o,s]=t[n];if(s-o<2)continue;let i=o+s>>1;r.push(i),t.push([o,i],[i,s]);}return r}function hr(e,r){if(typeof window>"u")return wt;let t=typeof e=="string"?document.querySelector(e):e;if(!t||t.tagName.toLowerCase()!=="canvas")return k("scrollFrames: <canvas> element not found:",e),wt;let n=t,{frames:o,trigger:s={},easing:i="linear",once:c=false,axis:m="y",fit:g="cover",triggerElement:w,onReady:A,onLoad:S,onComplete:B,onProgress:Q}=r||{},v=Array.isArray(o)?o:null,z=r?.count,Z=Math.floor(v?Math.min(z??v.length,v.length):z??NaN);if(!(v||typeof o=="function")||!Number.isFinite(Z)||Z<1)return k("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",n),wt;let P=r.concurrency??6;(!Number.isFinite(P)||P<1)&&(k("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",r.concurrency),P=6),P=Math.floor(P);let O=n.getContext("2d");if(!O)return k("scrollFrames: the canvas has no 2D context.",n),wt;let L=Z-1,R=w??n,y=window.matchMedia("(prefers-reduced-motion: reduce)").matches,$=Ie(i),W=u=>{let p=$(u);return p===p?p:0},se=ae(s.start||"top top"),K=ae(s.end||"bottom top"),_=0,I=0,T=false,X=-1,E=0,C=0,ye=false,D=false,j=false,ue=false,Ee=0,fe=-1,ie=new Array(Z),M=new Uint8Array(Z),x=new Set,re=y?[L]:rn(Z),Re=0,J=0,$e=false,Se=(u,...p)=>{if(u)try{u(...p);}catch(b){typeof reportError=="function"?reportError(b):setTimeout(()=>{throw b});}},he=false,ze=u=>{let p;try{p=v?v[u]:o(u);}catch(b){p=b;}return typeof p=="string"&&p?p:(he||(he=true,k(`scrollFrames: no URL for frame ${u}; it is skipped for its nearest neighbour.`,p)),null)},Fe=()=>m==="x"?window.scrollX:window.scrollY,Te=()=>m==="x"?window.innerWidth:window.innerHeight;function Ce(){!$e&&J===re.length&&($e=true,Se(S));}function l(){for(;!D&&x.size<P&&Re<re.length;){let u=re[Re++];M[u]||d(u);}}function d(u){M[u]=1;let p=ze(u);if(p===null){J++,queueMicrotask(()=>{D||Ce();});return}let b=new Image,le=false,we=We=>{le||D||(le=true,b.onload=b.onerror=null,x.delete(b),We?ie[u]=b:k("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",p),J++,l(),V(),Ce());};x.add(b),b.decoding="async",b.onerror=()=>we(false),b.src=p,typeof b.decode=="function"?b.decode().then(()=>we(true),()=>{b.complete?we(b.naturalWidth>0):b.onload=()=>we(true);}):b.onload=()=>we(true);}function ne(u){for(let p=0;p<=L;p++){if(ie[u-p])return u-p;if(ie[u+p])return u+p}return -1}function F(){let u=n.clientWidth,p=n.clientHeight;if(!u||!p)return;let b=Math.min(window.devicePixelRatio||1,2),le=Math.round(u*b),we=Math.round(p*b);if(Math.abs(n.width-le)<=1&&Math.abs(n.height-we)<=1)return;n.width=le,n.height=we,fe=-1;let We=n.clientWidth,Oe=n.clientHeight;if(We!==u||Oe!==p){let Be=n.style;We!==u&&Oe!==p?(Be.width=`${u}px`,Be.height=`${p}px`):Be.aspectRatio=`${u} / ${p}`;}}function V(){let u=ne(Ee);if(u<0||u===fe)return;let p=ie[u],b=n.width,le=n.height,we=p.naturalWidth||b,We=p.naturalHeight||le,Oe=(g==="contain"?Math.min:Math.max)(b/we,le/We),Be=we*Oe,Ge=We*Oe;O.clearRect(0,0,b,le),O.drawImage(p,(b-Be)/2,(le-Ge)/2,Be,Ge),fe=u,j||(j=true,Se(A));}function G(u){Ee=Math.min(L,Math.max(0,Math.round(u*L))),n.style.setProperty("--scroll-draw-progress",String(u)),V(),Se(Q,u,Ee);}function q(){let u=R.getBoundingClientRect(),p=m==="x"?u.left:u.top,b=m==="x"?u.width:u.height,le=Le({top:p,height:b},Fe(),Te(),se,K);_=le.tStart,I=le.tEnd,I===_&&b>0&&!y&&!ue&&(ue=true,k("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n));}let Ve=()=>U(Fe(),_,I,1);function oe(){if(y)return;let u=Ve(),p=c?Math.max(X,W(E=Math.max(E,u))):W(u);C=p,G(p),p>=1&&!ye?(ye=true,Se(B)):p<1&&!c&&(ye=false);}function He(){C=1,G(1);}F(),y||q();let be=De(window,[R],Ve,oe,()=>{F(),y||q(),V();}),Qe=()=>be.hold(T||y);Qe(),y&&He(),l();let Ye=typeof ResizeObserver=="function"?new ResizeObserver(()=>{F(),V();}):null;Ye?.observe(n);let Ue=y?()=>{}:Ze(u=>{u&&(Ue(),y=true,be.hold(true),re=re.slice(0,Re),M[L]||re.push(L),Ce(),He(),l());});Pe(n,{type:"frames",getProgress:()=>C,getTrigger:()=>({tStart:_,tEnd:I})});function me(){D||!T||(T=false,Qe());}return {destroy(){if(!D){D=true,be.off(),Ye?.disconnect(),Ue();for(let u of x)u.onload=u.onerror=null,u.src="";x.clear(),ke(n);}},replay(){D||(X=-1,E=0,ye=false,C=0,G(0),me());},pause(){D||(T=true,be.hold(true));},resume:me,seek(u){if(D)return;let p=Math.min(1,Math.max(0,u===u?u:0));C=p,X=p,E=0,T=true,be.hold(true),G(p);},getProgress(){return C}}}function Rt(e,{triggerElement:r,...t},n){let o=r;return typeof r=="string"&&typeof document<"u"&&(o=document.querySelector(r),o||k(`scrollFrames: triggerElement "${r}" matches nothing; measuring the canvas.`)),hr(e,{...t,frames:n.frames,triggerElement:o??void 0})}function br(e,r){let t=document.createElement("span");t.textContent=r,t.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;user-select:none",e.appendChild(t);}function vt(e=""){let r=document.createElement("span");return r.setAttribute("aria-hidden","true"),r.textContent=e,r}function vr(e){let r=e.textContent??"";return e.textContent="",r.split(/(\s+)/).filter(Boolean).map(t=>{let n=e.appendChild(vt(t)),o=/^\s+$/.test(t);return o?n.style.whiteSpace="pre":n.style.display="inline-block",o?null:n}).filter(t=>t!==null)}function nn(e){let r=e.textContent??"";e.textContent="";let t=[],n=null;for(let o of r){let s=vt(o),i=o===" ";i?s.style.whiteSpace="pre":(s.style.display="inline-block",t.push(s)),i||o>"\u0DFF"?n=null:n||(n=e.appendChild(vt()),n.style.cssText="display:inline-block;white-space:nowrap"),(n??e).appendChild(s);}return t}function wr(e){let r=vr(e),t=new Map;for(let s of r){let i=s.offsetTop;t.has(i)||t.set(i,[]),t.get(i).push(s);}let n=[],o=Array.from(t.keys()).sort((s,i)=>s-i);for(let s of o){let i=t.get(s),c=vt();c.style.display="inline-block",i.forEach((m,g)=>{let w=m.nextElementSibling;c.appendChild(m),g<i.length-1&&w&&w.style.whiteSpace==="pre"&&c.appendChild(w);}),n.push(c);}return e.textContent="",n.forEach((s,i)=>{e.appendChild(s),i<n.length-1&&e.appendChild(document.createTextNode(" "));}),n}function on(e,r,t,n){if(t<=1||n===0)return e;n=Math.min(n,1/t);let o=(t-1)*n,s=r*n,i=s+(1-o);return i<=s?e>=s?1:0:it((e-s)/(i-s),0,1)}function sn(e,r){let t=[];if(r?.y!==void 0&&t.push(`translateY(${r.y*(1-e)}px)`),r?.x!==void 0&&t.push(`translateX(${r.x*(1-e)}px)`),r?.rotate!==void 0&&t.push(`rotate(${r.rotate*(1-e)}deg)`),r?.scale!==void 0){let n=r.scale+(1-r.scale)*e;t.push(`scale(${n})`);}return t.join(" ")}var $t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ft(e,r={}){if(typeof window>"u")return $t;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return k("scrollText: element not found:",e),$t;let n=t;return qe(r,(o,s)=>an(n,o,s))}function an(e,r,t){let{split:n="words",stagger:o=.04,easing:s="ease-out",from:i={opacity:0,y:24},trigger:c={},once:m=true,onComplete:g}=r,w=Ie(s,"ease-out"),A=ae(c.start||"top 85%"),S=ae(c.end||"top 40%"),B=e.innerHTML,Q=e.textContent??"",v;n==="chars"?v=nn(e):n==="lines"?v=wr(e):v=vr(e),br(e,Q);let z=v.length;function Z(T,X){i?.opacity!==void 0&&(T.style.opacity=String(i.opacity+(1-i.opacity)*X));let E=sn(X,i);E&&(T.style.transform=E);}function P(T){e.style.setProperty("--scroll-draw-progress",String(T)),v.forEach((X,E)=>{let C=w(on(T,E,z,o));Z(X,C);});}if(t)return P(1),g?.(),{...$t,destroy:()=>{e.innerHTML=B;},getProgress:()=>1};P(0);let O=0,L=0,R=-1,y=0,$=false;function W(){({tStart:O,tEnd:L}=Le(e.getBoundingClientRect(),window.scrollY,window.innerHeight,A,S));}let se=()=>U(window.scrollY,O,L,1);function K(){let T=m?R=Math.max(R,se()):se();y=T,P(T),T>=1&&!$?($=true,g?.()):T<1&&!m&&($=false);}W();let _=De(window,[e],se,K,()=>{n==="lines"&&(e.innerHTML=B,v=wr(e),br(e,Q),P(y)),W();});Pe(e,{type:"text",getProgress:()=>y,getTrigger:()=>({tStart:O,tEnd:L})});let I=()=>_.hold(false);return {destroy(){_.off(),e.innerHTML=B,ke(e);},replay(){R=-1,$=false,y=0,P(0),I();},pause:()=>_.hold(true),resume:I,seek(T){_.hold(true),P(y=R=it(T,0,1));},getProgress(){return y}}}var rt=e=>typeof e=="function"?e():vue.unref(e);function _e(e,r,t,n=ct){let o=null,s=r(),i=()=>{o?.destroy(),o=e.value?t(e.value,cr(s,()=>s),s):null;};vue.onMounted(i),vue.watch(()=>n(s=r()),i),vue.onUnmounted(()=>{o?.destroy(),o=null;});}function Yo(e={}){let r=vue.ref(null);return _e(r,()=>rt(e),Lt),r}var Er={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},fn=[null,Boolean,[Boolean,String],[Boolean,Number]],Ht=e=>({type:e,default:void 0}),Uo=vue.defineComponent({name:"ScrollDraw",props:Object.fromEntries(Object.entries(Er).map(([e,r])=>[e,r?Ht(fn[r]):null])),setup(e,{slots:r}){let t=vue.ref(null);return _e(t,()=>{let n={};for(let o in Er){let s=e[o];s!=null&&(n[o]=s);}return n},Lt),()=>vue.h("div",{ref:t},r.default?.())}});function Qo(e){let r=vue.ref(null);return _e(r,()=>rt(e),Ct),r}var Ko=vue.defineComponent({name:"ScrollAnimate",props:{options:{type:Object,required:true}},setup(e,{slots:r}){let t=vue.ref(null);return _e(t,()=>e.options,Ct),()=>vue.h("div",{ref:t},r.default?.())}});function Xo(e){let r=vue.ref(null);return _e(r,()=>rt(e),At),r}var Jo=vue.defineComponent({name:"ScrollCounter",props:{to:{type:Number,required:true},from:{type:Number},format:{type:Function},easing:{type:[String,Function]},trigger:{type:Object},once:Ht(Boolean),decimals:{type:Number},onComplete:{type:Function}},setup(e){let r=vue.ref(null);return _e(r,()=>{let t={to:e.to};return e.from!=null&&(t.from=e.from),e.format!=null&&(t.format=e.format),e.easing!=null&&(t.easing=e.easing),e.trigger!=null&&(t.trigger=e.trigger),e.once!=null&&(t.once=e.once),e.decimals!=null&&(t.decimals=e.decimals),e.onComplete!=null&&(t.onComplete=e.onComplete),t},At),()=>vue.h("span",{ref:r})}});function Zo(e={}){let r=vue.ref(null);return _e(r,()=>rt(e),Pt),r}var es=vue.defineComponent({name:"ScrollVideo",props:{src:{type:String,required:true},options:{type:Object},muted:{type:Boolean,default:true},playsInline:{type:Boolean,default:true},class:{type:String}},setup(e){let r=vue.ref(null);return _e(r,()=>e.options??{},Pt),()=>vue.h("video",{ref:r,src:e.src,muted:e.muted,playsinline:e.playsInline,preload:"auto",class:e.class})}});function ts(e){let r=vue.ref(null);return _e(r,()=>rt(e),Rt,kt),r}var Sr={frames:0,count:0,trigger:0,easing:0,once:1,axis:0,triggerElement:0,fit:0,concurrency:0,onReady:0,onLoad:0,onComplete:0,onProgress:0},rs=vue.defineComponent({name:"ScrollFrames",props:Object.fromEntries(Object.entries(Sr).map(([e,r])=>[e,r?Ht(Boolean):e==="frames"?{required:true}:null])),setup(e){let r=vue.ref(null);return _e(r,()=>{let t={};for(let n in Sr){let o=e[n];o!=null&&(t[n]=o);}return t},Rt,kt),vue.onMounted(()=>yr(r.value)),()=>vue.h("canvas",{ref:r,role:"img"})}});function ns(e={}){let r=vue.ref(null);return _e(r,()=>rt(e),Ft),r}var os=vue.defineComponent({name:"ScrollText",props:{options:{type:Object},tag:{type:String,default:"p"}},setup(e,{slots:r}){let t=vue.ref(null);return _e(t,()=>e.options??{},Ft),()=>vue.h(e.tag,{ref:t},r.default?.())}});exports.ScrollAnimate=Ko;exports.ScrollCounter=Jo;exports.ScrollDraw=Uo;exports.ScrollFrames=rs;exports.ScrollText=os;exports.ScrollVideo=es;exports.useScrollAnimate=Qo;exports.useScrollCounter=Xo;exports.useScrollDraw=Yo;exports.useScrollFrames=ts;exports.useScrollText=ns;exports.useScrollVideo=Zo;
@@ -1,8 +1,9 @@
1
1
  import * as vue from 'vue';
2
2
  import { Ref } from 'vue';
3
- import { a as ScrollDrawOptions } from '../types-9bcJdVcg.mjs';
4
- import { S as ScrollAnimateOptions } from '../engine-BLWKCfxC.mjs';
5
- import { S as ScrollCounterOptions } from '../index-DVjblK_4.mjs';
3
+ import { F as FramesInput } from '../wrapper-BOHrDnBO.mjs';
4
+ import { a as ScrollDrawOptions } from '../types-iITMwrru.mjs';
5
+ import { S as ScrollAnimateOptions } from '../engine-Bi2x8-X-.mjs';
6
+ import { S as ScrollCounterOptions } from '../index-BMMZ8aW7.mjs';
6
7
  import { ScrollVideoOptions } from '../video/index.mjs';
7
8
  import { ScrollFramesOptions } from '../frames/index.mjs';
8
9
  import { ScrollTextOptions } from '../text/index.mjs';
@@ -187,10 +188,6 @@ declare const ScrollVideo: vue.DefineComponent<vue.ExtractPropTypes<{
187
188
  muted: boolean;
188
189
  playsInline: boolean;
189
190
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
190
- /** The options as scrollFrames takes them, but `triggerElement` may be a selector. */
191
- type FramesInput = Omit<ScrollFramesOptions, 'triggerElement'> & {
192
- triggerElement?: Element | string | null;
193
- };
194
191
  /**
195
192
  * Composable — returns a ref to bind to a <canvas>, which scrubs an image
196
193
  * sequence with the scroll. Options as in useScrollDraw: a getter or a ref
@@ -1,8 +1,9 @@
1
1
  import * as vue from 'vue';
2
2
  import { Ref } from 'vue';
3
- import { a as ScrollDrawOptions } from '../types-9bcJdVcg.js';
4
- import { S as ScrollAnimateOptions } from '../engine-6VsjEwzb.js';
5
- import { S as ScrollCounterOptions } from '../index-BN8yKeQ3.js';
3
+ import { F as FramesInput } from '../wrapper-Cm7JTIVl.js';
4
+ import { a as ScrollDrawOptions } from '../types-iITMwrru.js';
5
+ import { S as ScrollAnimateOptions } from '../engine-DAlvk6i0.js';
6
+ import { S as ScrollCounterOptions } from '../index-MdQ4ti_z.js';
6
7
  import { ScrollVideoOptions } from '../video/index.js';
7
8
  import { ScrollFramesOptions } from '../frames/index.js';
8
9
  import { ScrollTextOptions } from '../text/index.js';
@@ -187,10 +188,6 @@ declare const ScrollVideo: vue.DefineComponent<vue.ExtractPropTypes<{
187
188
  muted: boolean;
188
189
  playsInline: boolean;
189
190
  }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
190
- /** The options as scrollFrames takes them, but `triggerElement` may be a selector. */
191
- type FramesInput = Omit<ScrollFramesOptions, 'triggerElement'> & {
192
- triggerElement?: Element | string | null;
193
- };
194
191
  /**
195
192
  * Composable — returns a ref to bind to a <canvas>, which scrubs an image
196
193
  * sequence with the scroll. Options as in useScrollDraw: a getter or a ref
@@ -1 +1 @@
1
- export{d as ScrollAnimate,f as ScrollCounter,b as ScrollDraw,j as ScrollFrames,l as ScrollText,h as ScrollVideo,c as useScrollAnimate,e as useScrollCounter,a as useScrollDraw,i as useScrollFrames,k as useScrollText,g as useScrollVideo}from'../chunk-WKOT2MND.mjs';import'../chunk-22P4KBPG.mjs';import'../chunk-D2BHE4F2.mjs';import'../chunk-XSVTHCLO.mjs';import'../chunk-BRV2B2YW.mjs';import'../chunk-32ZCSGFZ.mjs';import'../chunk-U5TKLHGW.mjs';import'../chunk-7USW2XFB.mjs';import'../chunk-7XOFQCQE.mjs';import'../chunk-V3Z6G5JE.mjs';import'../chunk-UPWWULKI.mjs';import'../chunk-XC5NR2MU.mjs';import'../chunk-2PYLM3E7.mjs';import'../chunk-NV6YTPHI.mjs';import'../chunk-THPTANES.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-5PJEKEEP.mjs';import'../chunk-EBU6E26L.mjs';import'../chunk-LFSU6LR3.mjs';
1
+ export{d as ScrollAnimate,f as ScrollCounter,b as ScrollDraw,j as ScrollFrames,l as ScrollText,h as ScrollVideo,c as useScrollAnimate,e as useScrollCounter,a as useScrollDraw,i as useScrollFrames,k as useScrollText,g as useScrollVideo}from'../chunk-5SJE7725.mjs';import'../chunk-NJV6S5LD.mjs';import'../chunk-KN2YB54Z.mjs';import'../chunk-HJTHOZK5.mjs';import'../chunk-GBFWTY5L.mjs';import'../chunk-UF3MO5XQ.mjs';import'../chunk-Z72TVDHY.mjs';import'../chunk-HAGTU5EX.mjs';import'../chunk-XLXVGQ3P.mjs';import'../chunk-7LDSB4FT.mjs';import'../chunk-UPWWULKI.mjs';import'../chunk-XC5NR2MU.mjs';import'../chunk-YOOPMYT6.mjs';import'../chunk-2PYLM3E7.mjs';import'../chunk-NV6YTPHI.mjs';import'../chunk-IXR6RML7.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-5PJEKEEP.mjs';import'../chunk-EBU6E26L.mjs';import'../chunk-LFSU6LR3.mjs';
@@ -1,3 +1,3 @@
1
- 'use strict';function jt({tension:e=2.5,friction:r=2.2}={}){return n=>1-Math.cos(n*Math.PI*e)*Math.pow(1-n,r)}function Yt({bounces:e=3,decay:r=.5}={}){let n=Math.max(1,Math.round(e)),o=Math.max(.01,Math.min(.99,r)),i=Math.sqrt(o),a=0,u=[];for(let d=0;d<n;d++){let p=Math.pow(i,d);u.push(p),a+=p;}let m=[0],y=0;for(let d=0;d<n;d++)y+=u[d]/a,m.push(y);return d=>{if(d<=0)return 0;if(d>=1)return 1;for(let p=0;p<n;p++)if(d<=m[p+1]){let E=(d-m[p])/(m[p+1]-m[p]);if(p===0)return E*(2-E);let g=1-Math.pow(o,p);return g+(1-g)*(2*E-1)*(2*E-1)}return 1}}function Xt({amplitude:e=1,period:r=.4}={}){let n=Math.max(1,e),o=Math.max(.1,r),i=n<=1?o/4:o/(2*Math.PI)*Math.asin(1/n);return a=>a<=0?0:a>=1?1:n*Math.pow(2,-10*a)*Math.sin((a-i)*(2*Math.PI)/o)+1}var ve={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:jt(),bounce:Yt(),elastic:Xt()};function dt(e,r,n){return Math.min(n,Math.max(r,e))}function We(e="top bottom"){let r=e.trim();if(/^\d+(\.\d+)?%$/.test(r))return {element:"top",viewport:r};let[n="top",o="bottom"]=r.split(/\s+/).filter(Boolean);return {element:n,viewport:o}}var ht=(e,r)=>e==="top"?0:e==="center"?.5:e==="bottom"?1:r;function pt(e,r,n,o){return e+n+r*ht(o,0)}function gt(e,r){return r*(/^\d+(\.\d+)?%$/.test(e)?parseFloat(e)/100:ht(e,1))}function U(e,r,n,o){return n===r?0:dt((e-r)/(n-r)*o,0,1)}function ze(e,r,n,o,i){let a=pt(e.top,e.height,r,o.element)-gt(o.viewport,n),u=pt(e.top,e.height,r,i.element)-gt(i.viewport,n);return {tStart:a,tEnd:u}}function yt(e,r,n){let o=e.getBoundingClientRect(),i=n==="x"?o.width:o.height;return r?{top:n==="x"?o.left-r.getBoundingClientRect().left-r.clientLeft+r.scrollLeft:o.top-r.getBoundingClientRect().top-r.clientTop+r.scrollTop,height:i,scroll:0}:{top:n==="x"?o.left:o.top,height:i,scroll:n==="x"?window.scrollX:window.scrollY}}function Pe(e){let r=parseFloat(e.getAttribute("pathLength")??"");if(r>0)return r;let n=e.tagName.toLowerCase();if(n==="rect"){let o=parseFloat(e.getAttribute("width")??"0"),i=parseFloat(e.getAttribute("height")??"0");return 2*(o+i)}if(n==="circle"){let o=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*o}return e.getTotalLength()}function bt(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 n=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(n)return [parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16)];let o=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return o?[parseInt(o[1]),parseInt(o[2]),parseInt(o[3])]:null}function vt(e,r,n){let o=bt(e),i=bt(r);return !o||!i?e:`rgb(${Math.round(o[0]+(i[0]-o[0])*n)},${Math.round(o[1]+(i[1]-o[1])*n)},${Math.round(o[2]+(i[2]-o[2])*n)})`}var wt={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 ce=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function fe(e,...r){ce&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var Jt="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Kt="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Et=33;function Zt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function er(e){let r=[];for(let n=0;n<Et;n++){let o=n/(Et-1);r.push(String(Math.round(e(o)*1e5)/1e5));}return `linear(${r.join(",")})`}function St(e){switch(e){case "linear":return "linear";case "ease-in":return Jt;case "ease-out":return Kt;case "ease-in-out":return Zt()?er(ve["ease-in-out"]):null;default:return null}}var xt=Symbol.for("svg-scroll-draw.registry");function Mt(){let e=globalThis;return e[xt]||(e[xt]=new Map)}function Tt(e,r){Mt().set(e,r);}function At(e){Mt().delete(e);}function Lt(e){if(typeof window>"u"||typeof window.matchMedia!="function")return ()=>{};let r=window.matchMedia("(prefers-reduced-motion: reduce)"),n=i=>e(!!i.matches);if(typeof r.addEventListener=="function")return r.addEventListener("change",n),()=>r.removeEventListener("change",n);let o=r;return o.addListener?.(n),()=>o.removeListener?.(n)}function kt(e,r){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return r(e,true);let n=r(e,false),o=Lt(a=>{if(!a)return;o();let u=(n.getProgress?.()??0)>=1;n.destroy(),n=r(u?{...e,onComplete:void 0}:e,true);}),i={};for(let a of Object.keys(n))i[a]=(...u)=>n[a]?.(...u);return i.destroy=()=>{o(),n.destroy();},i}var we,De=new Set,Ce=new WeakMap,Ee=new Map,$t=e=>{let r=e.getBoundingClientRect();return r.width+" "+r.height};function tr(e){let r=new Set;for(let n of e)for(;n&&n!==document.body;n=n.parentElement)for(let o=n;o;o=o.previousElementSibling)r.add(o);return r}function Pt(e,r){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let n=()=>r();we??(we=new ResizeObserver(i=>{let a=false;for(let{target:u}of i)Ce.get(u)!==$t(u)&&(a=true),Ce.set(u,"");a&&De.forEach(u=>u());})),De.add(n);let o=tr(e);return [document.body,document.documentElement].forEach(i=>i&&o.add(i)),o.forEach(i=>{Ce.has(i)||Ce.set(i,$t(i)),Ee.set(i,(Ee.get(i)??0)+1),we.observe(i);}),()=>{De.delete(n)&&(o.forEach(i=>{let a=(Ee.get(i)??1)-1;if(a)return void Ee.set(i,a);Ee.delete(i),we?.unobserve(i);}),De.size||(we?.disconnect(),we=void 0));}}function Dt(e,r,n,o,i){let a,u=NaN,m,y,d=()=>{a=0,o(),!m&&!a&&(u=n())>0&&u<1&&(a=requestAnimationFrame(d));},p=()=>{!a&&!m&&n()!==u&&(a=requestAnimationFrame(d));},E=W=>{m=W,cancelAnimationFrame(a),a=u=NaN,p();},g=()=>{clearTimeout(y),i(),p();},N=()=>{clearTimeout(y),y=setTimeout(g,150);},Se=Pt(r,N),R=W=>{e[W]("scroll",p,{passive:true}),window[W]("resize",N),window[W]("orientationchange",N);};return R("addEventListener"),p(),{hold:E,remeasure:g,off(){E(true),R("removeEventListener"),Se(),clearTimeout(y);}}}var rr=0;function nr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Ct(e,r){let n="";try{n=getComputedStyle(e).getPropertyValue(r).trim();}catch{}return n||(e.getAttribute(r)??"").trim()}var Ot=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function or(e){if(!ce)return;let r=Ct(e,"stroke");if(!r||r==="none"){fe("Element has no stroke \u2014 path will not be visible.",e);return}let n=(e.getAttribute("fill")??"").trim();n&&!Ot.has(n)&&!Ot.has(Ct(e,"fill"))&&fe("Element has a fill \u2014 it may obscure the stroke animation.",e);}function sr(e,r,n){let o=document.createElement("div");o.setAttribute("data-svg-scroll-draw-debug",""),o.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=n==="x"?window.scrollX:window.scrollY,u=e-a,m=r-a,y=n==="x";o.innerHTML=`
2
- <div style="position:absolute;${y?`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;${y?`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(o),window.addEventListener("scroll",i,{passive:true}),i(),{el:o,destroy(){window.removeEventListener("scroll",i),o.remove();}}}var Rt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,It=/[MmLlHhVvCcSsQqTtAaZz]/g;function ir(e,r,n){if(!ce)return;let o=(e.match(It)??[]).join("").toUpperCase(),i=(r.match(It)??[]).join("").toUpperCase(),a=(e.match(Rt)??[]).length,u=(r.match(Rt)??[]).length;if(o!==i){fe(`morphTo: command sequence differs (${o||"\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.`,n);return}a!==u&&fe(`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.`,n);}function ar(e,r,n){let o=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),i=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,a=>{let u=parseFloat(a),m=o[i++]??u;return String(+(u+(m-u)*n).toFixed(4))})}function Nt(e,r={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:kt(r,(n,o)=>lr(e,n,o))}function lr(e,r,n){let{preset:o,...i}=r,a=o?{...wt[o],...i}:i,{selector:u="path, polyline, line, polygon, rect, circle",speed:m=1,fade:y=false,easing:d="linear",trigger:p={},stagger:E=0,direction:g="forward",once:N=false,debug:Se=false,axis:R="y",scrollContainer:W,autoReverse:Oe=false,delay:me=0,strokeColor:j,strokeWidth:Y,fillOpacity:X,waypoints:J,velocityScale:de=false,threshold:Ft=0,rootMargin:_t="0px",repeat:pe=0,repeatDelay:qe=0,morphTo:F,clip:Re,autoplay:Be=false,duration:Vt=1e3,native:Ht=true,onProgress:ge,onStart:xe,onComplete:Me,onEnter:Qe,onLeave:Ue,onEnterBack:je,onLeaveBack:Ye}=a,_=Re===true?"left":typeof Re=="string"?Re:false,Q=typeof d=="function"?d:ve[d]??ve.linear,Xe=We(p.start||"top bottom"),Je=We(p.end||"bottom top"),I=typeof W=="string"?document.querySelector(W):W??null,ne=Array.isArray(j)?j[0]:null,oe=Array.isArray(j)?j[1]:typeof j=="string"?j:null,K=Array.isArray(Y)?Y[0]:null,se=Array.isArray(Y)?Y[1]:typeof Y=="number"?Y:null,Z=Array.isArray(X)?X[0]:null,ie=Array.isArray(X)?X[1]:typeof X=="number"?X:null;function ae(t){let s=t*100;switch(_){case "right":return `inset(0 0 0 ${100-s}%)`;case "top":return `inset(0 0 ${100-s}% 0)`;case "bottom":return `inset(${100-s}% 0 0 0)`;case "center":return `circle(${t*150}% at 50% 50%)`;default:return `inset(0 ${100-s}% 0 0)`}}let w=_?[]:Array.from(e.querySelectorAll(u)),P=[],V=[],L=0,H=0,Te=E,Ke=0,Ze=0,O=false,z=false,q=0,Ie=-1,Ae=[],Le=-1,D=false,G=0,ee=0,te,Ne=false,Fe=null;function et(){Fe?.destroy(),Fe=null;}let re=new Set,tt=NaN,le=true,ke=-1,rt=performance.now(),ue=NaN;function $e(){return I?R==="x"?I.scrollLeft:I.scrollTop:R==="x"?window.scrollX:window.scrollY}function nt(){return I?R==="x"?I.clientWidth:I.clientHeight:R==="x"?window.innerWidth:window.innerHeight}function ot(){let t=yt(e,I,R);return ze(t,t.scroll,nt(),Xe,Je)}function Gt(){let t=H-L,s=w.length-1,l=I??document.documentElement,f=R==="x"?"Width":"Height";if(Te=E,E>0&&s>0&&t>0){let x=l[`scroll${f}`]-l[`client${f}`]-1-L-t/m;x>=0&&(Te=Math.min(E,x/(s*t)));}let S=Math.max(0,s)*Te*t,k=t/Math.min(m,1);Ke=L+Math.min(0,S,k,S+k),Ze=L+Math.max(0,S,k,S+k);}function st(){(({tStart:L,tEnd:H}=ot())),Gt(),Se&&ce&&(et(),Fe=sr(L,H,R));}function _e(t,s=ot){Tt(e,{type:"draw",getProgress:()=>t.getProgress(),getTrigger:s});let l=t.destroy;return t.destroy=()=>{l.call(t),At(e);},t}function it(t,s){return N&&!Oe?Math.max(Ie,Q(Ae[t]=Math.max(Ae[t]??0,s))):Q(s)}function Wt(t,s){if(e.style.setProperty("--scroll-draw-progress",String(t)),_){let l=s==="reverse"?1-t:t;e.style.clipPath=ae(l);return}w.forEach((l,f)=>Ve(l,f,t,s));}function Ve(t,s,l,f){t.style.strokeDashoffset=f==="reverse"?`${P[s]*l}`:`${P[s]*(1-l)}`,y&&(t.style.opacity=f==="reverse"?`${1-l}`:`${l}`),ne&&oe?t.style.stroke=vt(ne,oe,l):oe&&(t.style.stroke=oe),K!==null&&se!==null?t.style.strokeWidth=`${K+(se-K)*l}`:se!==null&&(t.style.strokeWidth=`${se}`),Z!==null&&ie!==null?t.style.fillOpacity=`${Z+(ie-Z)*l}`:ie!==null&&(t.style.fillOpacity=`${ie}`),F&&t.tagName.toLowerCase()==="path"&&V[s]&&t.setAttribute("d",ar(V[s],F,l));}function He(){if(e.style.setProperty("--scroll-draw-progress","0"),_){e.style.clipPath=ae(g==="reverse"?1:0);return}w.forEach((t,s)=>{t.style.strokeDasharray=`${P[s]}`,t.style.strokeDashoffset=g==="reverse"?"0":`${P[s]}`,y?t.style.opacity=g==="reverse"?"1":"0":t.style.opacity="",ne&&(t.style.stroke=ne),K!==null&&(t.style.strokeWidth=`${K}`),Z!==null&&(t.style.fillOpacity=`${Z}`),F&&t.tagName.toLowerCase()==="path"&&V[s]&&t.setAttribute("d",V[s]);});}function he(t,s){let l=t.getAttribute("d"),f=Pe(t);if(F&&V[s]){t.setAttribute("d",F);let S=Pe(t);t.setAttribute("d",V[s]),f=Math.max(Pe(t),S),t.setAttribute("d",l);}P[s]=f,t.style.strokeDasharray=`${f}`;}if(w.forEach((t,s)=>{or(t);let l=t.tagName.toLowerCase()==="path";l?V.push(t.getAttribute("d")??""):V.push(""),he(t,s);let f=P[s];F&&(l?ir(V[V.length-1],F,t):fe(`morphTo only applies to <path> elements \u2014 ignored on <${t.tagName}>.`,t)),n?(t.style.strokeDashoffset=g==="reverse"?`${f}`:"0",y&&(t.style.opacity="1"),oe&&(t.style.stroke=oe),se!==null&&(t.style.strokeWidth=`${se}`),ie!==null&&(t.style.fillOpacity=`${ie}`),F&&t.tagName.toLowerCase()==="path"&&t.setAttribute("d",F)):(t.style.strokeDashoffset=g==="reverse"?"0":`${f}`,y?t.style.opacity=g==="reverse"?"1":"0":t.style.opacity="",ne&&(t.style.stroke=ne),K!==null&&(t.style.strokeWidth=`${K}`),Z!==null&&(t.style.fillOpacity=`${Z}`));}),n)return _&&(e.style.clipPath=ae(1)),Me?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};_&&(e.style.clipPath=ae(g==="reverse"?1:0));let at=typeof d=="string"?St(d):null;function zt(){return !(Ht===false||Be||Se&&ce||!nr()||!w.length||!at||_||R!=="y"||I||m!==1||E!==0||N||Oe||de!==false||F||J||pe||me>0||ge||xe||Me||Qe||Ue||je||Ye||j!=null||Y!=null||X!=null||(p.start||"top bottom").trim()!=="top bottom"||(p.end||"bottom top").trim()!=="bottom top")}function qt(){let t=++rr,s=`svg-scroll-draw-${t}`,l=`svg-scroll-draw-host-${t}`,f=`--svg-scroll-draw-${t}`,S=g==="reverse"?"0":"var(--ssd-len)",k=g==="reverse"?"var(--ssd-len)":"0",x=`stroke-dashoffset:${S};`,b=`stroke-dashoffset:${k};`;y&&(x+=`opacity:${g==="reverse"?1:0};`,b+=`opacity:${g==="reverse"?0:1};`);let v=document.createElement("style");v.setAttribute("data-svg-scroll-draw",""),v.textContent=`@keyframes ${s}{from{${x}}to{${b}}}.${l}{view-timeline-name:${f};view-timeline-axis:block;}.${s}{animation-name:${s};animation-duration:auto;animation-timing-function:${at};animation-fill-mode:both;animation-timeline:${f};animation-range:cover 0% cover 100%;}`,document.head.appendChild(v),e.classList.add(l);function A(c,h){c.style.setProperty("--ssd-len",String(P[h])),c.style.strokeDasharray=`${P[h]}`,c.style.strokeDashoffset="",c.style.opacity="",c.style.animationPlayState="",c.classList.add(s);}w.forEach(A);let M=false,$=-1;function C(){if($>=0)return $;let c=e.getBoundingClientRect(),{tStart:h,tEnd:T}=ze({top:c.top,height:c.height},$e(),nt(),Xe,Je);return Q(U($e(),h,T,m))}return {destroy(){e.classList.remove(l),w.forEach(c=>{c.classList.remove(s),c.style.removeProperty("--ssd-len"),c.style.animationPlayState="";}),v.remove();},replay(){M=false,$=-1,w.forEach(A);},pause(){M=true,w.forEach(c=>{c.style.animationPlayState="paused";});},resume(){M&&(M=false,w.forEach(c=>{c.style.animationPlayState="running";}));},seek(c){let h=Math.min(1,Math.max(0,c));$=h,M=true,w.forEach((T,B)=>{T.classList.remove(s),T.style.strokeDashoffset=g==="reverse"?`${P[B]*h}`:`${P[B]*(1-h)}`,y&&(T.style.opacity=g==="reverse"?`${1-h}`:`${h}`);});},getProgress(){return C()},refresh(){w.forEach((c,h)=>{he(c,h),c.style.setProperty("--ssd-len",String(P[h]));});}}}if(zt())return _e(qt());function Bt(){let t=Math.max(1,Vt),s=_?t:t*(1+Math.max(0,w.length-1)*E),l=0,f=0,S=false;function k($){let C=true,c=Math.min(1,Math.max(0,$/s));if(_){let h=Math.min(1,Math.max(0,$/t)),T=Q(h);G=T,e.style.setProperty("--scroll-draw-progress",String(T)),e.style.clipPath=ae(g==="reverse"?1-T:T),ge?.(T),h<1&&(C=false);}else {w.forEach((T,B)=>{let Ut=B*E*t,mt=Math.min(1,Math.max(0,($-Ut)/t));Ve(T,B,Q(mt),g),mt<1&&(C=false);});let h=Q(c);G=h,ge?.(h),e.style.setProperty("--scroll-draw-progress",String(h));}if(J){let h=Q(c);for(let T in J){let B=parseFloat(T);h>=B&&!re.has(B)&&(re.add(B),J[T]?.());}}return C}function x($){if(D)return;let C=$-l;z||(z=true,xe?.());let c=k(C);if(c&&!O){O=true,k(s),Me?.(),ee<(pe==="infinite"?1/0:pe??0)&&(ee++,te=setTimeout(()=>{l=performance.now(),z=false,O=false,re.clear(),He(),q=requestAnimationFrame(x);},qe));return}c||(q=requestAnimationFrame(x));}function b(){cancelAnimationFrame(q),clearTimeout(te),l=performance.now(),f=0,D=false,z=false,O=false,ee=0,S=true,G=0,re.clear(),He(),q=requestAnimationFrame(x);}let v=new IntersectionObserver($=>{$.forEach(C=>{C.isIntersecting&&!(N&&O)?b():!C.isIntersecting&&!N&&!O&&(cancelAnimationFrame(q),clearTimeout(te),S=false);});},{root:I??null,threshold:Ft,rootMargin:_t}),A;function M(){clearTimeout(A),A=setTimeout(()=>w.forEach(he),150);}return window.addEventListener("resize",M),window.addEventListener("orientationchange",M),me>0?setTimeout(()=>v.observe(e),me):v.observe(e),{destroy(){cancelAnimationFrame(q),clearTimeout(te),v.disconnect(),window.removeEventListener("resize",M),window.removeEventListener("orientationchange",M),clearTimeout(A);},replay(){ee=0,b();},pause(){D||!S||(D=true,f=performance.now()-l,cancelAnimationFrame(q));},resume(){D&&(D=false,S=true,l=performance.now()-f,q=requestAnimationFrame(x));},seek($){let C=Math.min(1,Math.max(0,$));G=C,D=true,f=C*s,l=performance.now()-f,cancelAnimationFrame(q),k(f);},getProgress(){return G},refresh(){clearTimeout(A),w.forEach(he);}}}if(Be)return _e(Bt());st();let lt=()=>U($e(),Ke,Ze,1);function ut(){O=true,Me?.(),ee<(pe==="infinite"?1/0:pe)&&(ee++,te=setTimeout(()=>{Ne=true;},qe));}function ct(){Ie=-1,Ae=[],z=false,O=false,Ne=false,re.clear(),He(),le=true;}function Qt(){let t=performance.now(),s=$e();if(Ne&&lt()%1&&ct(),!le&&de===false&&s===tt)return;le=false,tt=s;let l=m;if(de!==false){let b=t-rt,v=b>0?Math.abs(s-(ke<0?s:ke))/b:0;l=m*Math.max(.2,1+v*(typeof de=="number"?de:1)*.04);}ke=s,rt=t;let f=Oe?Le===-1||s>=Le?"forward":"reverse":g;Le=s;let S=H-L,k=true,x=S===0?0:(s-L)/S;if(isNaN(ue)||(ue<=0&&x>0&&Qe?.(),ue<1&&x>=1&&Ue?.(),ue>=1&&x<1&&je?.(),ue>0&&x<=0&&Ye?.()),ue=x,_){let b=it(0,U(s,L,H,l));G=b,e.style.setProperty("--scroll-draw-progress",String(b));let v=f==="reverse"?1-b:b;e.style.clipPath=ae(v),ge?.(b),!z&&U(s,L,H,l)>0&&(z=true,xe?.()),b>=1&&!O?ut():b<1&&!N&&(O=false);return}if(w.forEach((b,v)=>{let A=v*Te*S,M=it(v,U(s,L+A,H+A,l));Ve(b,v,M,f),v===0&&(G=M,ge?.(M),e.style.setProperty("--scroll-draw-progress",String(M))),M<1&&(k=false);}),J){let b=Q(U(s,L,H,l));for(let v in J){let A=parseFloat(v);b>=A&&!re.has(A)&&(re.add(A),J[v]?.());}}!z&&U(s,L,H,l)>0&&(z=true,xe?.()),k&&!O?ut():!k&&!N&&(O=false);}let ye=Dt(I??window,[e],lt,Qt,()=>{let t=P.join();w.forEach(he),st(),le=true,P.join()!==t&&be();}),Ge=me>0;function be(){ye.hold(D||Ge);}let ft;return Ge&&(ft=setTimeout(()=>{Ge=false,be();},me)),be(),_e({destroy(){clearTimeout(te),clearTimeout(ft),ye.off(),et();},replay(){ct(),Le=-1,ke=-1,ee=0,D=false,G=0,clearTimeout(te),be();},pause(){D=true,ye.hold(true);},resume(){D&&(D=false,le=true,be());},seek(t){let s=Math.min(1,Math.max(0,t));G=s,Ie=s,Ae=[],D=true,ye.hold(true),Wt(s,g),le=true;},getProgress(){return G},refresh:ye.remeasure},()=>({tStart:L,tEnd:H}))}if(typeof HTMLElement<"u"&&typeof customElements<"u"&&!customElements.get("scroll-draw")){let e=["speed","easing","stagger","direction","selector","fade","once"];class r extends HTMLElement{constructor(){super(...arguments);this.instance=null;this.key="";}connectedCallback(){this.build();}attributeChangedCallback(){this.instance&&this.build();}build(){let i=JSON.stringify(e.map(E=>this.getAttribute(E)));if(this.instance&&i===this.key)return;this.instance?.destroy(),this.key=i;let a={},u=this.getAttribute("speed"),m=this.getAttribute("easing"),y=this.getAttribute("stagger"),d=this.getAttribute("direction"),p=this.getAttribute("selector");u&&(a.speed=parseFloat(u)),m&&(a.easing=m),y&&(a.stagger=parseFloat(y)),d&&(a.direction=d),p&&(a.selector=p),this.hasAttribute("fade")&&(a.fade=this.getAttribute("fade")!=="false"),this.hasAttribute("once")&&(a.once=this.getAttribute("once")!=="false"),this.instance=Nt(this,a);}disconnectedCallback(){this.instance?.destroy(),this.instance=null;}}r.observedAttributes=e,customElements.define("scroll-draw",r);}
1
+ 'use strict';var fe=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){fe&&console.warn(`[svg-scroll-draw] ${e}`,...r);}function Kt({tension:e=2.5,friction:r=2.2}={}){return t=>1-Math.cos(t*Math.PI*e)*Math.pow(1-t,r)}function Zt({bounces:e=3,decay:r=.5}={}){let t=Math.max(1,Math.round(e)),o=Math.max(.01,Math.min(.99,r)),i=Math.sqrt(o),a=0,l=[];for(let d=0;d<t;d++){let p=Math.pow(i,d);l.push(p),a+=p;}let c=[0],g=0;for(let d=0;d<t;d++)g+=l[d]/a,c.push(g);return d=>{if(d<=0)return 0;if(d>=1)return 1;for(let p=0;p<t;p++)if(d<=c[p+1]){let E=(d-c[p])/(c[p+1]-c[p]);if(p===0)return E*(2-E);let h=1-Math.pow(o,p);return h+(1-h)*(2*E-1)*(2*E-1)}return 1}}function er({amplitude:e=1,period:r=.4}={}){let t=Math.max(1,e),o=Math.max(.1,r),i=t<=1?o/4:o/(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)/o)+1}var me={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:Kt(),bounce:Zt(),elastic:er()};function tr(e,r,t,o){let i=(a,l,c)=>((1+3*a-3*l)*c+3*l-6*a)*c*c+3*a*c;return a=>{if(a<=0||a>=1)return +(a>0);let l=a;for(let c=0;c<8;c++)l-=(i(e,t,l)-a)/((3*(1+3*e-3*t)*l+6*t-12*e)*l+3*e);if(!(l>=0&&l<=1&&Math.abs(i(e,t,l)-a)<1e-9))for(let c=0,g=0,d=1;c<30;c++)l=(g+d)/2,i(e,t,l)<a?g=l:d=l;return i(r,o,l)}}function We(e){let r=/^cubic-bezier\((.*)\)$/.exec(e==="ease"?"cubic-bezier(.25,.1,.25,1)":e.trim()),t=r?r[1].split(",").map(parseFloat):[];if(t.length===4&&t.every(Number.isFinite)&&t[0]*(1-t[0])>=0&&t[2]*(1-t[2])>=0)return [tr(t[0],t[1],t[2],t[3]),`cubic-bezier(${t})`]}var gt=new Set;function ht(e,r="linear"){if(typeof e=="function")return e;if(e==null)return me[r];if({}.hasOwnProperty.call(me,e))return me[e];let t=We(String(e));return t?t[0]:(!gt.has(e)&&gt.add(e)&&U(`Unknown easing ${JSON.stringify(e)}: use a name, cubic-bezier() or a function.`),me[r])}function yt(e,r,t){return Math.min(t,Math.max(r,e))}function qe(e="top bottom"){let r=e.trim();if(/^\d+(\.\d+)?%$/.test(r))return {element:"top",viewport:r};let[t="top",o="bottom"]=r.split(/\s+/).filter(Boolean);return {element:t,viewport:o}}var wt=(e,r)=>e==="top"?0:e==="center"?.5:e==="bottom"?1:r;function bt(e,r,t,o){return e+t+r*wt(o,0)}function vt(e,r){return r*(/^\d+(\.\d+)?%$/.test(e)?parseFloat(e)/100:wt(e,1))}function j(e,r,t,o){return t===r?0:yt((e-r)/(t-r)*o,0,1)}function Be(e,r,t,o,i){let a=bt(e.top,e.height,r,o.element)-vt(o.viewport,t),l=bt(e.top,e.height,r,i.element)-vt(i.viewport,t);return {tStart:a,tEnd:l}}function Et(e,r,t){let o=e.getBoundingClientRect(),i=t==="x"?o.width:o.height;return r?{top:t==="x"?o.left-r.getBoundingClientRect().left-r.clientLeft+r.scrollLeft:o.top-r.getBoundingClientRect().top-r.clientTop+r.scrollTop,height:i,scroll:0}:{top:t==="x"?o.left:o.top,height:i,scroll:t==="x"?window.scrollX:window.scrollY}}function Pe(e){let r=parseFloat(e.getAttribute("pathLength")??"");if(r>0)return r;let t=e.tagName.toLowerCase();if(t==="rect"){let o=parseFloat(e.getAttribute("width")??"0"),i=parseFloat(e.getAttribute("height")??"0");return 2*(o+i)}if(t==="circle"){let o=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*o}return e.getTotalLength()}function De(e){return `${e} ${e*2}`}function St(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 o=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return o?[parseInt(o[1]),parseInt(o[2]),parseInt(o[3])]:null}function Mt(e,r,t){let o=St(e),i=St(r);return !o||!i?e:`rgb(${Math.round(o[0]+(i[0]-o[0])*t)},${Math.round(o[1]+(i[1]-o[1])*t)},${Math.round(o[2]+(i[2]-o[2])*t)})`}var Tt={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var rr="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",nr="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",xt=33;function or(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function sr(e){let r=[];for(let t=0;t<xt;t++){let o=t/(xt-1);r.push(String(Math.round(e(o)*1e5)/1e5));}return `linear(${r.join(",")})`}function At(e){switch(e){case "linear":return "linear";case "ease-in":return rr;case "ease-out":return nr;case "ease-in-out":return or()?sr(me["ease-in-out"]):null;default:return We(e)?.[1]??null}}var Lt=Symbol.for("svg-scroll-draw.registry");function kt(){let e=globalThis;return e[Lt]||(e[Lt]=new Map)}function $t(e,r){kt().set(e,r);}function Pt(e){kt().delete(e);}function Dt(e){if(typeof window>"u"||typeof window.matchMedia!="function")return ()=>{};let r=window.matchMedia("(prefers-reduced-motion: reduce)"),t=i=>e(!!i.matches);if(typeof r.addEventListener=="function")return r.addEventListener("change",t),()=>r.removeEventListener("change",t);let o=r;return o.addListener?.(t),()=>o.removeListener?.(t)}function Ot(e,r){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return r(e,true);let t=r(e,false),o=Dt(a=>{if(!a)return;o();let l=(t.getProgress?.()??0)>=1;t.destroy(),t=r(l?{...e,onComplete:void 0}:e,true);}),i={};for(let a of Object.keys(t))i[a]=(...l)=>t[a]?.(...l);return i.destroy=()=>{o(),t.destroy();},i}var we,Oe=new Set,Ce=new WeakMap,Ee=new Map,Ct=e=>{let r=e.getBoundingClientRect();return r.width+" "+r.height};function ir(e){let r=new Set;for(let t of e)for(;t&&t!==document.body;t=t.parentElement)for(let o=t;o;o=o.previousElementSibling)r.add(o);return r}function Rt(e,r){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let t=()=>r();we??(we=new ResizeObserver(i=>{let a=false;for(let{target:l}of i)Ce.get(l)!==Ct(l)&&(a=true),Ce.set(l,"");a&&Oe.forEach(l=>l());})),Oe.add(t);let o=ir(e);return [document.body,document.documentElement].forEach(i=>i&&o.add(i)),o.forEach(i=>{Ce.has(i)||Ce.set(i,Ct(i)),Ee.set(i,(Ee.get(i)??0)+1),we.observe(i);}),()=>{Oe.delete(t)&&(o.forEach(i=>{let a=(Ee.get(i)??1)-1;if(a)return void Ee.set(i,a);Ee.delete(i),we?.unobserve(i);}),Oe.size||(we?.disconnect(),we=void 0));}}function Nt(e,r,t,o,i){let a,l=NaN,c,g,d=()=>{a=0,o(),!c&&!a&&(l=t())>0&&l<1&&(a=requestAnimationFrame(d));},p=()=>{!a&&!c&&t()!==l&&(a=requestAnimationFrame(d));},E=G=>{c=G,cancelAnimationFrame(a),a=l=NaN,p();},h=()=>{clearTimeout(g),i(),p();},F=()=>{clearTimeout(g),g=setTimeout(h,150);},Se=Rt(r,F),R=G=>{e[G]("scroll",p,{passive:true}),window[G]("resize",F),window[G]("orientationchange",F);};return R("addEventListener"),p(),{hold:E,remeasure:h,off(){E(true),R("removeEventListener"),Se(),clearTimeout(g);}}}var ar=0;function lr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Ft(e,r){let t="";try{t=getComputedStyle(e).getPropertyValue(r).trim();}catch{}return t||(e.getAttribute(r)??"").trim()}var It=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function ur(e){if(!fe)return;let r=Ft(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&&!It.has(t)&&!It.has(Ft(e,"fill"))&&U("Element has a fill \u2014 it may obscure the stroke animation.",e);}function cr(e,r,t){let o=document.createElement("div");o.setAttribute("data-svg-scroll-draw-debug",""),o.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,l=e-a,c=r-a,g=t==="x";o.innerHTML=`
2
+ <div style="position:absolute;${g?`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;${g?`left:${c}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${c}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(o),window.addEventListener("scroll",i,{passive:true}),i(),{el:o,destroy(){window.removeEventListener("scroll",i),o.remove();}}}var _t=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,zt=/[MmLlHhVvCcSsQqTtAaZz]/g;function fr(e,r,t){if(!fe)return;let o=(e.match(zt)??[]).join("").toUpperCase(),i=(r.match(zt)??[]).join("").toUpperCase(),a=(e.match(_t)??[]).length,l=(r.match(_t)??[]).length;if(o!==i){U(`morphTo: command sequence differs (${o||"\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!==l&&U(`morphTo: coordinate count differs (${a} \u2192 ${l}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,t);}function mr(e,r,t){let o=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),i=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,a=>{let l=parseFloat(a),c=o[i++]??l;return String(+(l+(c-l)*t).toFixed(4))})}function Vt(e,r={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:Ot(r,(t,o)=>dr(e,t,o))}function dr(e,r,t){let{preset:o,...i}=r,a=o?{...Tt[o],...i}:i,{selector:l="path, polyline, line, polygon, rect, circle",speed:c=1,fade:g=false,easing:d="linear",trigger:p={},stagger:E=0,direction:h="forward",once:F=false,debug:Se=false,axis:R="y",scrollContainer:G,autoReverse:Re=false,delay:de=0,strokeColor:Y,strokeWidth:X,fillOpacity:J,waypoints:K,velocityScale:pe=false,threshold:Ht=0,rootMargin:Gt="0px",repeat:ge=0,repeatDelay:Qe=0,morphTo:I,clip:Ne,autoplay:Ue=false,duration:Wt=1e3,native:qt=true,onProgress:he,onStart:Me,onComplete:Te,onEnter:je,onLeave:Ye,onEnterBack:Xe,onLeaveBack:Je}=a,_=Ne===true?"left":typeof Ne=="string"?Ne:false,Q=ht(d),Ke=qe(p.start||"top bottom"),Ze=qe(p.end||"bottom top"),N=typeof G=="string"?document.querySelector(G):G??null,oe=Array.isArray(Y)?Y[0]:null,se=Array.isArray(Y)?Y[1]:typeof Y=="string"?Y:null,Z=Array.isArray(X)?X[0]:null,ie=Array.isArray(X)?X[1]:typeof X=="number"?X:null,ee=Array.isArray(J)?J[0]:null,ae=Array.isArray(J)?J[1]:typeof J=="number"?J:null;function le(n){let s=n*100;switch(_){case "right":return `inset(0 0 0 ${100-s}%)`;case "top":return `inset(0 0 ${100-s}% 0)`;case "bottom":return `inset(${100-s}% 0 0 0)`;case "center":return `circle(${n*150}% at 50% 50%)`;default:return `inset(0 ${100-s}% 0 0)`}}let w=_?[]:Array.from(e.querySelectorAll(l)),P=[],z=[],L=0,V=0,xe=E,et=0,tt=0,C=false,W=false,q=0,Fe=-1,Ae=[],Le=-1,D=false,H=0,te=0,re,Ie=false,_e=null;function rt(){_e?.destroy(),_e=null;}let ne=new Set,nt=NaN,ue=true,ke=-1,ot=performance.now(),ce=NaN;function $e(){return N?R==="x"?N.scrollLeft:N.scrollTop:R==="x"?window.scrollX:window.scrollY}function st(){return N?R==="x"?N.clientWidth:N.clientHeight:R==="x"?window.innerWidth:window.innerHeight}function it(){let n=Et(e,N,R);return Be(n,n.scroll,st(),Ke,Ze)}function Bt(){let n=V-L,s=w.length-1,u=N??document.documentElement,m=R==="x"?"Width":"Height";if(xe=E,E>0&&s>0&&n>0){let M=u[`scroll${m}`]-u[`client${m}`]-1-L-n/c;M>=0&&(xe=Math.min(E,M/(s*n)));}let S=Math.max(0,s)*xe*n,k=n/Math.min(c,1);et=L+Math.min(0,S,k,S+k),tt=L+Math.max(0,S,k,S+k);}function at(){(({tStart:L,tEnd:V}=it())),Bt(),Se&&fe&&(rt(),_e=cr(L,V,R));}function ze(n,s=it){$t(e,{type:"draw",getProgress:()=>n.getProgress(),getTrigger:s});let u=n.destroy;return n.destroy=()=>{u.call(n),Pt(e);},n}function lt(n,s){return F&&!Re?Math.max(Fe,Q(Ae[n]=Math.max(Ae[n]??0,s))):Q(s)}function Qt(n,s){if(e.style.setProperty("--scroll-draw-progress",String(n)),_){let u=s==="reverse"?1-n:n;e.style.clipPath=le(u);return}w.forEach((u,m)=>Ve(u,m,n,s));}function Ve(n,s,u,m){n.style.strokeDashoffset=m==="reverse"?`${P[s]*u}`:`${P[s]*(1-u)}`,g&&(n.style.opacity=m==="reverse"?`${1-u}`:`${u}`),oe&&se?n.style.stroke=Mt(oe,se,u):se&&(n.style.stroke=se),Z!==null&&ie!==null?n.style.strokeWidth=`${Z+(ie-Z)*u}`:ie!==null&&(n.style.strokeWidth=`${ie}`),ee!==null&&ae!==null?n.style.fillOpacity=`${ee+(ae-ee)*u}`:ae!==null&&(n.style.fillOpacity=`${ae}`),I&&n.tagName.toLowerCase()==="path"&&z[s]&&n.setAttribute("d",mr(z[s],I,u));}function He(){if(e.style.setProperty("--scroll-draw-progress","0"),_){e.style.clipPath=le(h==="reverse"?1:0);return}w.forEach((n,s)=>{n.style.strokeDasharray=De(P[s]),n.style.strokeDashoffset=h==="reverse"?"0":`${P[s]}`,g?n.style.opacity=h==="reverse"?"1":"0":n.style.opacity="",oe&&(n.style.stroke=oe),Z!==null&&(n.style.strokeWidth=`${Z}`),ee!==null&&(n.style.fillOpacity=`${ee}`),I&&n.tagName.toLowerCase()==="path"&&z[s]&&n.setAttribute("d",z[s]);});}function ye(n,s){let u=n.getAttribute("d"),m=Pe(n);if(I&&z[s]){n.setAttribute("d",I);let S=Pe(n);n.setAttribute("d",z[s]),m=Math.max(Pe(n),S),n.setAttribute("d",u);}P[s]=m,n.style.strokeDasharray=De(m);}if(w.forEach((n,s)=>{ur(n);let u=n.tagName.toLowerCase()==="path";u?z.push(n.getAttribute("d")??""):z.push(""),ye(n,s);let m=P[s];I&&(u?fr(z[z.length-1],I,n):U(`morphTo only applies to <path> elements \u2014 ignored on <${n.tagName}>.`,n)),t?(n.style.strokeDashoffset=h==="reverse"?`${m}`:"0",g&&(n.style.opacity="1"),se&&(n.style.stroke=se),ie!==null&&(n.style.strokeWidth=`${ie}`),ae!==null&&(n.style.fillOpacity=`${ae}`),I&&n.tagName.toLowerCase()==="path"&&n.setAttribute("d",I)):(n.style.strokeDashoffset=h==="reverse"?"0":`${m}`,g?n.style.opacity=h==="reverse"?"1":"0":n.style.opacity="",oe&&(n.style.stroke=oe),Z!==null&&(n.style.strokeWidth=`${Z}`),ee!==null&&(n.style.fillOpacity=`${ee}`));}),t)return _&&(e.style.clipPath=le(1)),Te?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};_&&(e.style.clipPath=le(h==="reverse"?1:0));let ut=typeof d=="string"?At(d):null;function Ut(){return !(qt===false||Ue||Se&&fe||!lr()||!w.length||!ut||_||R!=="y"||N||c!==1||E!==0||F||Re||pe!==false||I||K||ge||de>0||he||Me||Te||je||Ye||Xe||Je||Y!=null||X!=null||J!=null||(p.start||"top bottom").trim()!=="top bottom"||(p.end||"bottom top").trim()!=="bottom top")}function jt(){let n=++ar,s=`svg-scroll-draw-${n}`,u=`svg-scroll-draw-host-${n}`,m=`--svg-scroll-draw-${n}`,S=h==="reverse"?"0":"var(--ssd-len)",k=h==="reverse"?"var(--ssd-len)":"0",M=`stroke-dashoffset:${S};`,b=`stroke-dashoffset:${k};`;g&&(M+=`opacity:${h==="reverse"?1:0};`,b+=`opacity:${h==="reverse"?0:1};`);let v=document.createElement("style");v.setAttribute("data-svg-scroll-draw",""),v.textContent=`@keyframes ${s}{from{${M}}to{${b}}}.${u}{view-timeline-name:${m};view-timeline-axis:block;}.${s}{animation-name:${s};animation-duration:auto;animation-timing-function:${ut};animation-fill-mode:both;animation-timeline:${m};animation-range:cover 0% cover 100%;}`,document.head.appendChild(v),e.classList.add(u);function A(f,y){f.style.setProperty("--ssd-len",String(P[y])),f.style.strokeDasharray=De(P[y]),f.style.strokeDashoffset="",f.style.opacity="",f.style.animationPlayState="",f.classList.add(s);}w.forEach(A);let T=false,$=-1;function O(){if($>=0)return $;let f=e.getBoundingClientRect(),{tStart:y,tEnd:x}=Be({top:f.top,height:f.height},$e(),st(),Ke,Ze);return Q(j($e(),y,x,c))}return {destroy(){e.classList.remove(u),w.forEach(f=>{f.classList.remove(s),f.style.removeProperty("--ssd-len"),f.style.animationPlayState="";}),v.remove();},replay(){T=false,$=-1,w.forEach(A);},pause(){T=true,w.forEach(f=>{f.style.animationPlayState="paused";});},resume(){T&&(T=false,w.forEach(f=>{f.style.animationPlayState="running";}));},seek(f){let y=Math.min(1,Math.max(0,f));$=y,T=true,w.forEach((x,B)=>{x.classList.remove(s),x.style.strokeDashoffset=h==="reverse"?`${P[B]*y}`:`${P[B]*(1-y)}`,g&&(x.style.opacity=h==="reverse"?`${1-y}`:`${y}`);});},getProgress(){return O()},refresh(){w.forEach((f,y)=>{ye(f,y),f.style.setProperty("--ssd-len",String(P[y]));});}}}if(Ut())return ze(jt());function Yt(){let n=Math.max(1,Wt),s=_?n:n*(1+Math.max(0,w.length-1)*E),u=0,m=0,S=false;function k($){let O=true,f=Math.min(1,Math.max(0,$/s));if(_){let y=Math.min(1,Math.max(0,$/n)),x=Q(y);H=x,e.style.setProperty("--scroll-draw-progress",String(x)),e.style.clipPath=le(h==="reverse"?1-x:x),he?.(x),y<1&&(O=false);}else {w.forEach((x,B)=>{let Jt=B*E*n,pt=Math.min(1,Math.max(0,($-Jt)/n));Ve(x,B,Q(pt),h),pt<1&&(O=false);});let y=Q(f);H=y,he?.(y),e.style.setProperty("--scroll-draw-progress",String(y));}if(K){let y=Q(f);for(let x in K){let B=parseFloat(x);y>=B&&!ne.has(B)&&(ne.add(B),K[x]?.());}}return O}function M($){if(D)return;let O=$-u;W||(W=true,Me?.());let f=k(O);if(f&&!C){C=true,k(s),Te?.(),te<(ge==="infinite"?1/0:ge??0)&&(te++,re=setTimeout(()=>{u=performance.now(),W=false,C=false,ne.clear(),He(),q=requestAnimationFrame(M);},Qe));return}f||(q=requestAnimationFrame(M));}function b(){cancelAnimationFrame(q),clearTimeout(re),u=performance.now(),m=0,D=false,W=false,C=false,te=0,S=true,H=0,ne.clear(),He(),q=requestAnimationFrame(M);}let v=new IntersectionObserver($=>{$.forEach(O=>{O.isIntersecting&&!(F&&C)?b():!O.isIntersecting&&!F&&!C&&(cancelAnimationFrame(q),clearTimeout(re),S=false);});},{root:N??null,threshold:Ht,rootMargin:Gt}),A;function T(){clearTimeout(A),A=setTimeout(()=>w.forEach(ye),150);}return window.addEventListener("resize",T),window.addEventListener("orientationchange",T),de>0?setTimeout(()=>v.observe(e),de):v.observe(e),{destroy(){cancelAnimationFrame(q),clearTimeout(re),v.disconnect(),window.removeEventListener("resize",T),window.removeEventListener("orientationchange",T),clearTimeout(A);},replay(){te=0,b();},pause(){D||!S||(D=true,m=performance.now()-u,cancelAnimationFrame(q));},resume(){D&&(D=false,S=true,u=performance.now()-m,q=requestAnimationFrame(M));},seek($){let O=Math.min(1,Math.max(0,$));H=O,D=true,m=O*s,u=performance.now()-m,cancelAnimationFrame(q),k(m);},getProgress(){return H},refresh(){clearTimeout(A),w.forEach(ye);}}}if(Ue)return ze(Yt());at();let ct=()=>j($e(),et,tt,1);function ft(){C=true,Te?.(),te<(ge==="infinite"?1/0:ge)&&(te++,re=setTimeout(()=>{Ie=true;},Qe));}function mt(){Fe=-1,Ae=[],W=false,C=false,Ie=false,ne.clear(),He(),ue=true;}function Xt(){let n=performance.now(),s=$e();if(Ie&&ct()%1&&mt(),!ue&&pe===false&&s===nt)return;ue=false,nt=s;let u=c;if(pe!==false){let b=n-ot,v=b>0?Math.abs(s-(ke<0?s:ke))/b:0;u=c*Math.max(.2,1+v*(typeof pe=="number"?pe:1)*.04);}ke=s,ot=n;let m=Re?Le===-1||s>=Le?"forward":"reverse":h;Le=s;let S=V-L,k=true,M=S===0?0:(s-L)/S;if(isNaN(ce)||(ce<=0&&M>0&&je?.(),ce<1&&M>=1&&Ye?.(),ce>=1&&M<1&&Xe?.(),ce>0&&M<=0&&Je?.()),ce=M,_){let b=lt(0,j(s,L,V,u));H=b,e.style.setProperty("--scroll-draw-progress",String(b));let v=m==="reverse"?1-b:b;e.style.clipPath=le(v),he?.(b),!W&&j(s,L,V,u)>0&&(W=true,Me?.()),b>=1&&!C?ft():b<1&&!F&&(C=false);return}if(w.forEach((b,v)=>{let A=v*xe*S,T=lt(v,j(s,L+A,V+A,u));Ve(b,v,T,m),v===0&&(H=T,he?.(T),e.style.setProperty("--scroll-draw-progress",String(T))),T<1&&(k=false);}),K){let b=Q(j(s,L,V,u));for(let v in K){let A=parseFloat(v);b>=A&&!ne.has(A)&&(ne.add(A),K[v]?.());}}!W&&j(s,L,V,u)>0&&(W=true,Me?.()),k&&!C?ft():!k&&!F&&(C=false);}let be=Nt(N??window,[e],ct,Xt,()=>{let n=P.join();w.forEach(ye),at(),ue=true,P.join()!==n&&ve();}),Ge=de>0;function ve(){be.hold(D||Ge);}let dt;return Ge&&(dt=setTimeout(()=>{Ge=false,ve();},de)),ve(),ze({destroy(){clearTimeout(re),clearTimeout(dt),be.off(),rt();},replay(){mt(),Le=-1,ke=-1,te=0,D=false,H=0,clearTimeout(re),ve();},pause(){D=true,be.hold(true);},resume(){D&&(D=false,ue=true,ve());},seek(n){let s=Math.min(1,Math.max(0,n));H=s,Fe=s,Ae=[],D=true,be.hold(true),Qt(s,h),ue=true;},getProgress(){return H},refresh:be.remeasure},()=>({tStart:L,tEnd:V}))}if(typeof HTMLElement<"u"&&typeof customElements<"u"&&!customElements.get("scroll-draw")){let e=["speed","easing","stagger","direction","selector","fade","once"];class r extends HTMLElement{constructor(){super(...arguments);this.instance=null;this.key="";}connectedCallback(){this.build();}attributeChangedCallback(){this.instance&&this.build();}build(){let i=JSON.stringify(e.map(E=>this.getAttribute(E)));if(this.instance&&i===this.key)return;this.instance?.destroy(),this.key=i;let a={},l=this.getAttribute("speed"),c=this.getAttribute("easing"),g=this.getAttribute("stagger"),d=this.getAttribute("direction"),p=this.getAttribute("selector");l&&(a.speed=parseFloat(l)),c&&(a.easing=c),g&&(a.stagger=parseFloat(g)),d&&(a.direction=d),p&&(a.selector=p),this.hasAttribute("fade")&&(a.fade=this.getAttribute("fade")!=="false"),this.hasAttribute("once")&&(a.once=this.getAttribute("once")!=="false"),this.instance=Vt(this,a);}disconnectedCallback(){this.instance?.destroy(),this.instance=null;}}r.observedAttributes=e,customElements.define("scroll-draw",r);}
@@ -1 +1 @@
1
- import {b}from'../chunk-7XOFQCQE.mjs';import'../chunk-V3Z6G5JE.mjs';import'../chunk-UPWWULKI.mjs';import'../chunk-XC5NR2MU.mjs';import'../chunk-2PYLM3E7.mjs';import'../chunk-NV6YTPHI.mjs';import'../chunk-THPTANES.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-5PJEKEEP.mjs';import'../chunk-EBU6E26L.mjs';import'../chunk-LFSU6LR3.mjs';if(typeof HTMLElement<"u"&&typeof customElements<"u"&&!customElements.get("scroll-draw")){let e=["speed","easing","stagger","direction","selector","fade","once"];class s extends HTMLElement{constructor(){super(...arguments);this.instance=null;this.key="";}connectedCallback(){this.build();}attributeChangedCallback(){this.instance&&this.build();}build(){let i=JSON.stringify(e.map(d=>this.getAttribute(d)));if(this.instance&&i===this.key)return;this.instance?.destroy(),this.key=i;let t={},n=this.getAttribute("speed"),r=this.getAttribute("easing"),a=this.getAttribute("stagger"),c=this.getAttribute("direction"),o=this.getAttribute("selector");n&&(t.speed=parseFloat(n)),r&&(t.easing=r),a&&(t.stagger=parseFloat(a)),c&&(t.direction=c),o&&(t.selector=o),this.hasAttribute("fade")&&(t.fade=this.getAttribute("fade")!=="false"),this.hasAttribute("once")&&(t.once=this.getAttribute("once")!=="false"),this.instance=b(this,t);}disconnectedCallback(){this.instance?.destroy(),this.instance=null;}}s.observedAttributes=e,customElements.define("scroll-draw",s);}
1
+ import {b}from'../chunk-XLXVGQ3P.mjs';import'../chunk-7LDSB4FT.mjs';import'../chunk-UPWWULKI.mjs';import'../chunk-XC5NR2MU.mjs';import'../chunk-YOOPMYT6.mjs';import'../chunk-2PYLM3E7.mjs';import'../chunk-NV6YTPHI.mjs';import'../chunk-IXR6RML7.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-5PJEKEEP.mjs';import'../chunk-EBU6E26L.mjs';import'../chunk-LFSU6LR3.mjs';if(typeof HTMLElement<"u"&&typeof customElements<"u"&&!customElements.get("scroll-draw")){let e=["speed","easing","stagger","direction","selector","fade","once"];class s extends HTMLElement{constructor(){super(...arguments);this.instance=null;this.key="";}connectedCallback(){this.build();}attributeChangedCallback(){this.instance&&this.build();}build(){let i=JSON.stringify(e.map(d=>this.getAttribute(d)));if(this.instance&&i===this.key)return;this.instance?.destroy(),this.key=i;let t={},n=this.getAttribute("speed"),r=this.getAttribute("easing"),a=this.getAttribute("stagger"),c=this.getAttribute("direction"),o=this.getAttribute("selector");n&&(t.speed=parseFloat(n)),r&&(t.easing=r),a&&(t.stagger=parseFloat(a)),c&&(t.direction=c),o&&(t.selector=o),this.hasAttribute("fade")&&(t.fade=this.getAttribute("fade")!=="false"),this.hasAttribute("once")&&(t.once=this.getAttribute("once")!=="false"),this.instance=b(this,t);}disconnectedCallback(){this.instance?.destroy(),this.instance=null;}}s.observedAttributes=e,customElements.define("scroll-draw",s);}
@@ -0,0 +1,8 @@
1
+ import { ScrollFramesOptions } from './frames/index.mjs';
2
+
3
+ /** The options as scrollFrames takes them, but `triggerElement` may be a selector. */
4
+ type FramesInput = Omit<ScrollFramesOptions, 'triggerElement'> & {
5
+ triggerElement?: Element | string | null;
6
+ };
7
+
8
+ export type { FramesInput as F };
@@ -0,0 +1,8 @@
1
+ import { ScrollFramesOptions } from './frames/index.js';
2
+
3
+ /** The options as scrollFrames takes them, but `triggerElement` may be a selector. */
4
+ type FramesInput = Omit<ScrollFramesOptions, 'triggerElement'> & {
5
+ triggerElement?: Element | string | null;
6
+ };
7
+
8
+ export type { FramesInput as F };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svg-scroll-draw",
3
- "version": "2.25.0",
3
+ "version": "2.26.0",
4
4
  "description": "SVG line drawing on scroll, on the browser's own scroll timeline (CSS animation-timeline, JS fallback). Drop-in for AOS, ScrollReveal and vivus. Plus reveal, pin, snap, text, video and image-sequence scrub. Zero dependencies. React, Vue, Svelte, Solid, Angular, Astro, vanilla JS",
5
5
  "keywords": [
6
6
  "svg",
@@ -1 +0,0 @@
1
- import {a}from'./chunk-XSVTHCLO.mjs';import {b}from'./chunk-LFSU6LR3.mjs';var u=1e4;function h(t){let{frames:r,count:n}=t;if(typeof r!="function")return a(t);let a$1=Number.isFinite(n)?Math.min(Math.max(Math.floor(n),0),u):0,e;try{e=Array.from({length:a$1},(f,l)=>r(l));}catch{e=["throws"];}return a({...t,frames:e})}function c(t){if(!t||t.getAttribute("aria-hidden")==="true")return;let r=t.getAttribute("role");r==="presentation"||r==="none"||t.getAttribute("aria-label")||t.getAttribute("aria-labelledby")||b('<ScrollFrames>: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.',t);}export{h as a,c as b};
@@ -1 +0,0 @@
1
- import {a}from'./chunk-2PYLM3E7.mjs';import {a as a$1,e,c,b as b$2}from'./chunk-NV6YTPHI.mjs';import {d}from'./chunk-THPTANES.mjs';import {a as a$3}from'./chunk-4DOJSIEQ.mjs';import {a as a$2,b as b$1}from'./chunk-EBU6E26L.mjs';import {b}from'./chunk-LFSU6LR3.mjs';function G(e,o){let t=document.createElement("span");t.textContent=o,t.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;user-select:none",e.appendChild(t);}function S(e=""){let o=document.createElement("span");return o.setAttribute("aria-hidden","true"),o.textContent=e,o}function W(e){let o=e.textContent??"";return e.textContent="",o.split(/(\s+)/).filter(Boolean).map(t=>{let n=e.appendChild(S(t)),i=/^\s+$/.test(t);return i?n.style.whiteSpace="pre":n.style.display="inline-block",i?null:n}).filter(t=>t!==null)}function X(e){let o=e.textContent??"";e.textContent="";let t=[],n=null;for(let i of o){let r=S(i),s=i===" ";s?r.style.whiteSpace="pre":(r.style.display="inline-block",t.push(r)),s||i>"\u0DFF"?n=null:n||(n=e.appendChild(S()),n.style.cssText="display:inline-block;white-space:nowrap"),(n??e).appendChild(r);}return t}function R(e){let o=W(e),t=new Map;for(let r of o){let s=r.offsetTop;t.has(s)||t.set(s,[]),t.get(s).push(r);}let n=[],i=Array.from(t.keys()).sort((r,s)=>r-s);for(let r of i){let s=t.get(r),p=S();p.style.display="inline-block",s.forEach((d,m)=>{let f=d.nextElementSibling;p.appendChild(d),m<s.length-1&&f&&f.style.whiteSpace==="pre"&&p.appendChild(f);}),n.push(p);}return e.textContent="",n.forEach((r,s)=>{e.appendChild(r),s<n.length-1&&e.appendChild(document.createTextNode(" "));}),n}function J(e,o,t,n){if(t<=1||n===0)return e;n=Math.min(n,1/t);let i=(t-1)*n,r=o*n,s=r+(1-i);return s<=r?e>=r?1:0:a$3((e-r)/(s-r),0,1)}function K(e,o){let t=[];if(o?.y!==void 0&&t.push(`translateY(${o.y*(1-e)}px)`),o?.x!==void 0&&t.push(`translateX(${o.x*(1-e)}px)`),o?.rotate!==void 0&&t.push(`rotate(${o.rotate*(1-e)}deg)`),o?.scale!==void 0){let n=o.scale+(1-o.scale)*e;t.push(`scale(${n})`);}return t.join(" ")}var v={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function se(e,o={}){if(typeof window>"u")return v;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return b("scrollText: element not found:",e),v;let n=t;return a(o,(i,r)=>Q(n,i,r))}function Q(e$1,o,t){let{split:n="words",stagger:i=.04,easing:r="ease-out",from:s={opacity:0,y:24},trigger:p={},once:d$1=true,onComplete:m}=o,f=typeof r=="function"?r:d[r]??d["ease-out"],_=a$1(p.start||"top 85%"),j=a$1(p.end||"top 40%"),b=e$1.innerHTML,I=e$1.textContent??"",a;n==="chars"?a=X(e$1):n==="lines"?a=R(e$1):a=W(e$1),G(e$1,I);let q=a.length;function z(l,T){s?.opacity!==void 0&&(l.style.opacity=String(s.opacity+(1-s.opacity)*T));let x=K(T,s);x&&(l.style.transform=x);}function c$1(l){e$1.style.setProperty("--scroll-draw-progress",String(l)),a.forEach((T,x)=>{let U=f(J(l,x,q,i));z(T,U);});}if(t)return c$1(1),m?.(),{...v,destroy:()=>{e$1.innerHTML=b;},getProgress:()=>1};c$1(0);let w=0,E=0,g=-1,u=0,h=false;function P(){({tStart:w,tEnd:E}=c(e$1.getBoundingClientRect(),window.scrollY,window.innerHeight,_,j));}let C=()=>b$2(window.scrollY,w,E,1);function F(){let l=d$1?g=Math.max(g,C()):C();u=l,c$1(l),l>=1&&!h?(h=true,m?.()):l<1&&!d$1&&(h=false);}P();let y=e(window,[e$1],C,F,()=>{n==="lines"&&(e$1.innerHTML=b,a=R(e$1),G(e$1,I),c$1(u)),P();});a$2(e$1,{type:"text",getProgress:()=>u,getTrigger:()=>({tStart:w,tEnd:E})});let k=()=>y.hold(false);return {destroy(){y.off(),e$1.innerHTML=b,b$1(e$1);},replay(){g=-1,h=false,u=0,c$1(0),k();},pause:()=>y.hold(true),resume:k,seek(l){y.hold(true),c$1(u=g=a$3(l,0,1));},getProgress(){return u}}}export{se as a};
@@ -1 +0,0 @@
1
- import {b,a as a$4}from'./chunk-V3Z6G5JE.mjs';import {a as a$3}from'./chunk-UPWWULKI.mjs';import {a}from'./chunk-2PYLM3E7.mjs';import {a as a$1,e,b as b$1,c}from'./chunk-NV6YTPHI.mjs';import {d}from'./chunk-THPTANES.mjs';import {a as a$2,b as b$3}from'./chunk-EBU6E26L.mjs';import {b as b$2}from'./chunk-LFSU6LR3.mjs';function wt(t){return t.startsWith("#")||t.startsWith("rgb")||t.startsWith("hsl")}function ut(t){let i=[],l=/([\w]+)\(([^)]*)\)/g,s;for(;(s=l.exec(t))!==null;){let m=[],r=[],c=s[2].trim();if(c)for(let u of c.split(/[\s,]+/)){let o=u.match(/^([-+]?[\d.eE]+)(.*)$/);m.push(o?parseFloat(o[1]):0),r.push(o?o[2]:"");}i.push({fn:s[1],nums:m,units:r});}return i}function Mt(t,i,l){let s=ut(t),m=ut(i);return s.length===0||s.length!==m.length?l<1?t:i:s.map((r,c)=>{let u=m[c];return r.fn!==u.fn||r.nums.length!==u.nums.length?l<1?`${r.fn}(${r.nums.map((o,p)=>`${o}${r.units[p]}`).join(", ")})`:`${u.fn}(${u.nums.map((o,p)=>`${o}${u.units[p]}`).join(", ")})`:`${r.fn}(${r.nums.map((o,p)=>`${o+(u.nums[p]-o)*l}${r.units[p]}`).join(", ")})`}).join(" ")}function ft(t,i,l){if(typeof t=="number"&&typeof i=="number")return String(t+(i-t)*l);let s=String(t),m=String(i);if(wt(s))return a$4(s,m,l);if(s.includes("("))return Mt(s,m,l);let r=s.match(/^([-+]?[\d.]+)(.*)$/),c=m.match(/^([-+]?[\d.]+)(.*)$/);if(r&&c){let u=parseFloat(r[1]),o=parseFloat(c[1]);return `${u+(o-u)*l}${r[2]||c[2]}`}return l<1?s:m}function Lt(t){return t.replace(/([A-Z])/g,i=>`-${i.toLowerCase()}`)}var $t=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),At=0,pt="--scroll-draw-progress";function Ct(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var dt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Wt(t,i){return typeof window>"u"?dt:i.respectReducedMotion===false?gt(t,i,false):a(i,(l,s)=>gt(t,l,s))}function gt(t,i,l){let{props:s,trigger:m={},easing:r="ease-out",speed:c$1=1,once:u=false,axis:o="y",scrollContainer:p,native:yt=true,velocityScale:H=false,triggerElement:ht,onProgress:q,onComplete:F,onEnter:U,onLeave:X,onEnterBack:Y,onLeaveBack:Z}=i,x=typeof r=="function"?r:d[r]??d["ease-out"],J=a$1(m.start||"top bottom"),K=a$1(m.end||"bottom top"),N=ht??t,y=typeof p=="string"?document.querySelector(p):p??null,h=Object.entries(s).map(([e,n])=>({prop:Lt(e),from:Array.isArray(n)?n[0]:"",to:Array.isArray(n)?n[1]:n}));function Et(){let e=window.getComputedStyle(t);for(let n of h)n.from===""&&(n.from=e.getPropertyValue(n.prop).trim()||"0");}function bt(){for(let e of h)t.style.setProperty(e.prop,String(e.to));}let V=new Map;for(let e of [...h.map(n=>n.prop),pt])V.set(e,t.style.getPropertyValue(e));function O(){for(let[e,n]of V)n?t.style.setProperty(e,n):t.style.removeProperty(e);}if(l)return bt(),F?.(),{...dt,destroy:O,getProgress:()=>1};Et();let M=()=>y?o==="x"?y.scrollLeft:y.scrollTop:o==="x"?window.scrollX:window.scrollY,Q=()=>y?o==="x"?y.clientWidth:y.clientHeight:o==="x"?window.innerWidth:window.innerHeight,tt=typeof r=="string"?b(r):null;function St(){if(!yt||!Ct()||!tt||o!=="y"||y||N!==t||u||c$1!==1||q||F||U||X||Y||Z||H!==false||(m.start||"top bottom").trim()!=="top bottom"||(m.end||"bottom top").trim()!=="bottom top")return false;for(let e of h)if(!$t.has(e.prop))return false;return true}function vt(){let e=`ssd-a-${++At}`,n=h.map(a=>`${a.prop}:${a.from}`).join(";"),w=h.map(a=>`${a.prop}:${a.to}`).join(";"),b=document.createElement("style");b.setAttribute("data-ssd-animate",""),b.textContent=`@keyframes ${e}{from{${n}}to{${w}}}.${e}{animation-name:${e};animation-duration:auto;animation-timing-function:${tt};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(b),t.classList.add(e);let d=()=>{let a=t.getBoundingClientRect();return c({top:a.top,height:a.height},M(),Q(),J,K)};a$2(t,{type:"animate",getProgress:()=>f.getProgress(),getTrigger:d});let f={refresh(){},destroy(){t.classList.remove(e),b.remove(),t.style.animationPlayState="",O(),b$3(t);},replay(){t.classList.remove(e),t.offsetWidth,t.classList.add(e);},pause(){t.style.animationPlayState="paused";},resume(){t.style.animationPlayState="";},seek(a){let A=Math.min(1,Math.max(0,a));t.classList.remove(e);for(let I of h)t.style.setProperty(I.prop,ft(I.from,I.to,A));},getProgress(){let{tStart:a,tEnd:A}=d();return x(b$1(M(),a,A,c$1))}};return f}if(St())return vt();let g=0,E=0,T=false,W=-1,P=0,S=0,R=false,v=NaN,B=-1,et=0,L=N===t?h:[],nt=false;function rt(){let e=t.style,n=L.map(f=>e.getPropertyValue(f.prop)),w=e.transition;L.length&&(e.transition="none"),L.forEach(f=>e.setProperty(f.prop,V.get(f.prop)??""));let b=a$3(N,y,o);L.forEach((f,a)=>e.setProperty(f.prop,n[a])),L.length&&(t.offsetWidth,e.transition=w);let d=c(b,b.scroll,Q(),J,K);nt&&Math.abs(d.tStart-g)<1&&Math.abs(d.tEnd-E)<1||(nt=true,g=d.tStart,E=d.tEnd);}function k(e){t.style.setProperty(pt,String(e));for(let n of h)t.style.setProperty(n.prop,ft(n.from,n.to,e));q?.(e);}function Tt(e){if(isNaN(v)){v=e;return}v<=0&&e>0&&U?.(),v<1&&e>=1&&X?.(),v>=1&&e<1&&Y?.(),v>0&&e<=0&&Z?.(),v=e;}function Pt(){if(T)return;let e=performance.now(),n=M(),w=c$1;if(H!==false){let a=e-et,A=a>0?Math.abs(n-(B<0?n:B))/a:0;w=c$1*Math.max(.2,1+A*(typeof H=="number"?H:1)*.04);}B=n,et=e;let b=E===g?0:(n-g)/(E-g);Tt(b);let d=b$1(n,g,E,w),f=u?Math.max(W,x(P=Math.max(P,d))):x(d);S=f,k(f),f>=1&&!R?(R=true,F?.()):f<1&&!u&&(R=false);}let $=e(y??window,[N],()=>b$1(M(),g,E,Math.min(c$1,1)),Pt,rt);rt(),E===g&&b$2("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",t),P=b$1(M(),g,E,c$1),S=x(P),k(S),a$2(t,{type:"animate",getProgress:()=>S,getTrigger:()=>({tStart:g,tEnd:E})});function ot(){T=true,$.hold(true);}return {destroy(){T=true,$.off(),O(),b$3(t);},replay(){W=-1,P=0,R=false,S=0,T=false,k(0),$.hold(false);},pause:ot,resume(){T&&(T=false,$.hold(false));},seek(e){let n=Math.min(1,Math.max(0,e));S=n,W=n,P=0,ot(),k(n);},getProgress(){return S},refresh:$.remeasure}}export{Wt as a};
@@ -1,3 +0,0 @@
1
- import {b as b$1,a as a$6}from'./chunk-V3Z6G5JE.mjs';import {a as a$2}from'./chunk-UPWWULKI.mjs';import {a as a$5}from'./chunk-XC5NR2MU.mjs';import {a}from'./chunk-2PYLM3E7.mjs';import {a as a$1,e,c,b as b$3}from'./chunk-NV6YTPHI.mjs';import {d}from'./chunk-THPTANES.mjs';import {a as a$4,b as b$2}from'./chunk-EBU6E26L.mjs';import {b,a as a$3}from'./chunk-LFSU6LR3.mjs';var gt={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var Ct=0;function Ot(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function ht(r,p){let f="";try{f=getComputedStyle(r).getPropertyValue(p).trim();}catch{}return f||(r.getAttribute(p)??"").trim()}var vt=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function Nt(r){if(!a$3)return;let p=ht(r,"stroke");if(!p||p==="none"){b("Element has no stroke \u2014 path will not be visible.",r);return}let f=(r.getAttribute("fill")??"").trim();f&&!vt.has(f)&&!vt.has(ht(r,"fill"))&&b("Element has a fill \u2014 it may obscure the stroke animation.",r);}function Ft(r,p,f){let d=document.createElement("div");d.setAttribute("data-svg-scroll-draw-debug",""),d.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 k(){let F=f==="x"?window.scrollX:window.scrollY,x=r-F,M=p-F,H=f==="x";d.innerHTML=`
2
- <div style="position:absolute;${H?`left:${x}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${x}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;${H?`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(d),window.addEventListener("scroll",k,{passive:true}),k(),{el:d,destroy(){window.removeEventListener("scroll",k),d.remove();}}}var wt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,bt=/[MmLlHhVvCcSsQqTtAaZz]/g;function Ht(r,p,f){if(!a$3)return;let d=(r.match(bt)??[]).join("").toUpperCase(),k=(p.match(bt)??[]).join("").toUpperCase(),F=(r.match(wt)??[]).length,x=(p.match(wt)??[]).length;if(d!==k){b(`morphTo: command sequence differs (${d||"\u2205"} \u2192 ${k||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,f);return}F!==x&&b(`morphTo: coordinate count differs (${F} \u2192 ${x}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,f);}function It(r,p,f){let d=(p.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),k=0;return r.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,F=>{let x=parseFloat(F),M=d[k++]??x;return String(+(x+(M-x)*f).toFixed(4))})}function Zt(r,p={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:a(p,(f,d)=>Rt(r,f,d))}function Rt(r,p,f){let{preset:d$1,...k}=p,F=d$1?{...gt[d$1],...k}:k,{selector:x="path, polyline, line, polygon, rect, circle",speed:M=1,fade:H=false,easing:le="linear",trigger:he={},stagger:q=0,direction:u="forward",once:K=false,debug:Ve=false,axis:W="y",scrollContainer:ke,autoReverse:xe=false,delay:fe=0,strokeColor:B,strokeWidth:_,fillOpacity:j,waypoints:U,velocityScale:ce=false,threshold:Et=0,rootMargin:St="0px",repeat:ue=0,repeatDelay:We=0,morphTo:L,clip:Me,autoplay:ze=false,duration:Tt=1e3,native:$t=true,onProgress:me,onStart:ve,onComplete:we,onEnter:Ge,onLeave:qe,onEnterBack:Be,onLeaveBack:_e}=F,D=Me===true?"left":typeof Me=="string"?Me:false,z=typeof le=="function"?le:d[le]??d.linear,je=a$1(he.start||"top bottom"),Ue=a$1(he.end||"bottom top"),P=typeof ke=="string"?document.querySelector(ke):ke??null,ee=Array.isArray(B)?B[0]:null,te=Array.isArray(B)?B[1]:typeof B=="string"?B:null,X=Array.isArray(_)?_[0]:null,re=Array.isArray(_)?_[1]:typeof _=="number"?_:null,Y=Array.isArray(j)?j[0]:null,se=Array.isArray(j)?j[1]:typeof j=="number"?j:null;function ne(e){let t=e*100;switch(D){case "right":return `inset(0 0 0 ${100-t}%)`;case "top":return `inset(0 0 ${100-t}% 0)`;case "bottom":return `inset(${100-t}% 0 0 0)`;case "center":return `circle(${e*150}% at 50% 50%)`;default:return `inset(0 ${100-t}% 0 0)`}}let c$1=D?[]:Array.from(r.querySelectorAll(x)),S=[],C=[],w=0,O=0,be=q,Xe=0,Ye=0,A=false,I=false,R=0,Pe=-1,Ee=[],Se=-1,T=false,N=0,Q=0,Z,Le=false,De=null;function Qe(){De?.destroy(),De=null;}let J=new Set,Ze=NaN,oe=true,Te=-1,Je=performance.now(),ie=NaN;function $e(){return P?W==="x"?P.scrollLeft:P.scrollTop:W==="x"?window.scrollX:window.scrollY}function Ke(){return P?W==="x"?P.clientWidth:P.clientHeight:W==="x"?window.innerWidth:window.innerHeight}function et(){let e=a$2(r,P,W);return c(e,e.scroll,Ke(),je,Ue)}function At(){let e=O-w,t=c$1.length-1,s=P??document.documentElement,o=W==="x"?"Width":"Height";if(be=q,q>0&&t>0&&e>0){let y=s[`scroll${o}`]-s[`client${o}`]-1-w-e/M;y>=0&&(be=Math.min(q,y/(t*e)));}let m=Math.max(0,t)*be*e,b=e/Math.min(M,1);Xe=w+Math.min(0,m,b,m+b),Ye=w+Math.max(0,m,b,m+b);}function tt(){(({tStart:w,tEnd:O}=et())),At(),Ve&&a$3&&(Qe(),De=Ft(w,O,W));}function Ce(e,t=et){a$4(r,{type:"draw",getProgress:()=>e.getProgress(),getTrigger:t});let s=e.destroy;return e.destroy=()=>{s.call(e),b$2(r);},e}function rt(e,t){return K&&!xe?Math.max(Pe,z(Ee[e]=Math.max(Ee[e]??0,t))):z(t)}function kt(e,t){if(r.style.setProperty("--scroll-draw-progress",String(e)),D){let s=t==="reverse"?1-e:e;r.style.clipPath=ne(s);return}c$1.forEach((s,o)=>Oe(s,o,e,t));}function Oe(e,t,s,o){e.style.strokeDashoffset=o==="reverse"?`${S[t]*s}`:`${S[t]*(1-s)}`,H&&(e.style.opacity=o==="reverse"?`${1-s}`:`${s}`),ee&&te?e.style.stroke=a$6(ee,te,s):te&&(e.style.stroke=te),X!==null&&re!==null?e.style.strokeWidth=`${X+(re-X)*s}`:re!==null&&(e.style.strokeWidth=`${re}`),Y!==null&&se!==null?e.style.fillOpacity=`${Y+(se-Y)*s}`:se!==null&&(e.style.fillOpacity=`${se}`),L&&e.tagName.toLowerCase()==="path"&&C[t]&&e.setAttribute("d",It(C[t],L,s));}function Ne(){if(r.style.setProperty("--scroll-draw-progress","0"),D){r.style.clipPath=ne(u==="reverse"?1:0);return}c$1.forEach((e,t)=>{e.style.strokeDasharray=`${S[t]}`,e.style.strokeDashoffset=u==="reverse"?"0":`${S[t]}`,H?e.style.opacity=u==="reverse"?"1":"0":e.style.opacity="",ee&&(e.style.stroke=ee),X!==null&&(e.style.strokeWidth=`${X}`),Y!==null&&(e.style.fillOpacity=`${Y}`),L&&e.tagName.toLowerCase()==="path"&&C[t]&&e.setAttribute("d",C[t]);});}function pe(e,t){let s=e.getAttribute("d"),o=a$5(e);if(L&&C[t]){e.setAttribute("d",L);let m=a$5(e);e.setAttribute("d",C[t]),o=Math.max(a$5(e),m),e.setAttribute("d",s);}S[t]=o,e.style.strokeDasharray=`${o}`;}if(c$1.forEach((e,t)=>{Nt(e);let s=e.tagName.toLowerCase()==="path";s?C.push(e.getAttribute("d")??""):C.push(""),pe(e,t);let o=S[t];L&&(s?Ht(C[C.length-1],L,e):b(`morphTo only applies to <path> elements \u2014 ignored on <${e.tagName}>.`,e)),f?(e.style.strokeDashoffset=u==="reverse"?`${o}`:"0",H&&(e.style.opacity="1"),te&&(e.style.stroke=te),re!==null&&(e.style.strokeWidth=`${re}`),se!==null&&(e.style.fillOpacity=`${se}`),L&&e.tagName.toLowerCase()==="path"&&e.setAttribute("d",L)):(e.style.strokeDashoffset=u==="reverse"?"0":`${o}`,H?e.style.opacity=u==="reverse"?"1":"0":e.style.opacity="",ee&&(e.style.stroke=ee),X!==null&&(e.style.strokeWidth=`${X}`),Y!==null&&(e.style.fillOpacity=`${Y}`));}),f)return D&&(r.style.clipPath=ne(1)),we?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};D&&(r.style.clipPath=ne(u==="reverse"?1:0));let st=typeof le=="string"?b$1(le):null;function xt(){return !($t===false||ze||Ve&&a$3||!Ot()||!c$1.length||!st||D||W!=="y"||P||M!==1||q!==0||K||xe||ce!==false||L||U||ue||fe>0||me||ve||we||Ge||qe||Be||_e||B!=null||_!=null||j!=null||(he.start||"top bottom").trim()!=="top bottom"||(he.end||"bottom top").trim()!=="bottom top")}function Mt(){let e=++Ct,t=`svg-scroll-draw-${e}`,s=`svg-scroll-draw-host-${e}`,o=`--svg-scroll-draw-${e}`,m=u==="reverse"?"0":"var(--ssd-len)",b=u==="reverse"?"var(--ssd-len)":"0",y=`stroke-dashoffset:${m};`,a=`stroke-dashoffset:${b};`;H&&(y+=`opacity:${u==="reverse"?1:0};`,a+=`opacity:${u==="reverse"?0:1};`);let l=document.createElement("style");l.setAttribute("data-svg-scroll-draw",""),l.textContent=`@keyframes ${t}{from{${y}}to{${a}}}.${s}{view-timeline-name:${o};view-timeline-axis:block;}.${t}{animation-name:${t};animation-duration:auto;animation-timing-function:${st};animation-fill-mode:both;animation-timeline:${o};animation-range:cover 0% cover 100%;}`,document.head.appendChild(l),r.classList.add(s);function v(n,i){n.style.setProperty("--ssd-len",String(S[i])),n.style.strokeDasharray=`${S[i]}`,n.style.strokeDashoffset="",n.style.opacity="",n.style.animationPlayState="",n.classList.add(t);}c$1.forEach(v);let g=false,E=-1;function $(){if(E>=0)return E;let n=r.getBoundingClientRect(),{tStart:i,tEnd:h}=c({top:n.top,height:n.height},$e(),Ke(),je,Ue);return z(b$3($e(),i,h,M))}return {destroy(){r.classList.remove(s),c$1.forEach(n=>{n.classList.remove(t),n.style.removeProperty("--ssd-len"),n.style.animationPlayState="";}),l.remove();},replay(){g=false,E=-1,c$1.forEach(v);},pause(){g=true,c$1.forEach(n=>{n.style.animationPlayState="paused";});},resume(){g&&(g=false,c$1.forEach(n=>{n.style.animationPlayState="running";}));},seek(n){let i=Math.min(1,Math.max(0,n));E=i,g=true,c$1.forEach((h,V)=>{h.classList.remove(t),h.style.strokeDashoffset=u==="reverse"?`${S[V]*i}`:`${S[V]*(1-i)}`,H&&(h.style.opacity=u==="reverse"?`${1-i}`:`${i}`);});},getProgress(){return $()},refresh(){c$1.forEach((n,i)=>{pe(n,i),n.style.setProperty("--ssd-len",String(S[i]));});}}}if(xt())return Ce(Mt());function Pt(){let e=Math.max(1,Tt),t=D?e:e*(1+Math.max(0,c$1.length-1)*q),s=0,o=0,m=false;function b(E){let $=true,n=Math.min(1,Math.max(0,E/t));if(D){let i=Math.min(1,Math.max(0,E/e)),h=z(i);N=h,r.style.setProperty("--scroll-draw-progress",String(h)),r.style.clipPath=ne(u==="reverse"?1-h:h),me?.(h),i<1&&($=false);}else {c$1.forEach((h,V)=>{let Dt=V*q*e,lt=Math.min(1,Math.max(0,(E-Dt)/e));Oe(h,V,z(lt),u),lt<1&&($=false);});let i=z(n);N=i,me?.(i),r.style.setProperty("--scroll-draw-progress",String(i));}if(U){let i=z(n);for(let h in U){let V=parseFloat(h);i>=V&&!J.has(V)&&(J.add(V),U[h]?.());}}return $}function y(E){if(T)return;let $=E-s;I||(I=true,ve?.());let n=b($);if(n&&!A){A=true,b(t),we?.(),Q<(ue==="infinite"?1/0:ue??0)&&(Q++,Z=setTimeout(()=>{s=performance.now(),I=false,A=false,J.clear(),Ne(),R=requestAnimationFrame(y);},We));return}n||(R=requestAnimationFrame(y));}function a(){cancelAnimationFrame(R),clearTimeout(Z),s=performance.now(),o=0,T=false,I=false,A=false,Q=0,m=true,N=0,J.clear(),Ne(),R=requestAnimationFrame(y);}let l=new IntersectionObserver(E=>{E.forEach($=>{$.isIntersecting&&!(K&&A)?a():!$.isIntersecting&&!K&&!A&&(cancelAnimationFrame(R),clearTimeout(Z),m=false);});},{root:P??null,threshold:Et,rootMargin:St}),v;function g(){clearTimeout(v),v=setTimeout(()=>c$1.forEach(pe),150);}return window.addEventListener("resize",g),window.addEventListener("orientationchange",g),fe>0?setTimeout(()=>l.observe(r),fe):l.observe(r),{destroy(){cancelAnimationFrame(R),clearTimeout(Z),l.disconnect(),window.removeEventListener("resize",g),window.removeEventListener("orientationchange",g),clearTimeout(v);},replay(){Q=0,a();},pause(){T||!m||(T=true,o=performance.now()-s,cancelAnimationFrame(R));},resume(){T&&(T=false,m=true,s=performance.now()-o,R=requestAnimationFrame(y));},seek(E){let $=Math.min(1,Math.max(0,E));N=$,T=true,o=$*t,s=performance.now()-o,cancelAnimationFrame(R),b(o);},getProgress(){return N},refresh(){clearTimeout(v),c$1.forEach(pe);}}}if(ze)return Ce(Pt());tt();let nt=()=>b$3($e(),Xe,Ye,1);function ot(){A=true,we?.(),Q<(ue==="infinite"?1/0:ue)&&(Q++,Z=setTimeout(()=>{Le=true;},We));}function it(){Pe=-1,Ee=[],I=false,A=false,Le=false,J.clear(),Ne(),oe=true;}function Lt(){let e=performance.now(),t=$e();if(Le&&nt()%1&&it(),!oe&&ce===false&&t===Ze)return;oe=false,Ze=t;let s=M;if(ce!==false){let a=e-Je,l=a>0?Math.abs(t-(Te<0?t:Te))/a:0;s=M*Math.max(.2,1+l*(typeof ce=="number"?ce:1)*.04);}Te=t,Je=e;let o=xe?Se===-1||t>=Se?"forward":"reverse":u;Se=t;let m=O-w,b=true,y=m===0?0:(t-w)/m;if(isNaN(ie)||(ie<=0&&y>0&&Ge?.(),ie<1&&y>=1&&qe?.(),ie>=1&&y<1&&Be?.(),ie>0&&y<=0&&_e?.()),ie=y,D){let a=rt(0,b$3(t,w,O,s));N=a,r.style.setProperty("--scroll-draw-progress",String(a));let l=o==="reverse"?1-a:a;r.style.clipPath=ne(l),me?.(a),!I&&b$3(t,w,O,s)>0&&(I=true,ve?.()),a>=1&&!A?ot():a<1&&!K&&(A=false);return}if(c$1.forEach((a,l)=>{let v=l*be*m,g=rt(l,b$3(t,w+v,O+v,s));Oe(a,l,g,o),l===0&&(N=g,me?.(g),r.style.setProperty("--scroll-draw-progress",String(g))),g<1&&(b=false);}),U){let a=z(b$3(t,w,O,s));for(let l in U){let v=parseFloat(l);a>=v&&!J.has(v)&&(J.add(v),U[l]?.());}}!I&&b$3(t,w,O,s)>0&&(I=true,ve?.()),b&&!A?ot():!b&&!K&&(A=false);}let de=e(P??window,[r],nt,Lt,()=>{let e=S.join();c$1.forEach(pe),tt(),oe=true,S.join()!==e&&ye();}),Fe=fe>0;function ye(){de.hold(T||Fe);}let at;return Fe&&(at=setTimeout(()=>{Fe=false,ye();},fe)),ye(),Ce({destroy(){clearTimeout(Z),clearTimeout(at),de.off(),Qe();},replay(){it(),Se=-1,Te=-1,Q=0,T=false,N=0,clearTimeout(Z),ye();},pause(){T=true,de.hold(true);},resume(){T&&(T=false,oe=true,ye());},seek(e){let t=Math.min(1,Math.max(0,e));N=t,Pe=t,Ee=[],T=true,de.hold(true),kt(t,u),oe=true;},getProgress(){return N},refresh:de.remeasure},()=>({tStart:w,tEnd:O}))}export{gt as a,Zt as b};
@@ -1,2 +0,0 @@
1
- import {e,b as b$2}from'./chunk-NV6YTPHI.mjs';import {d}from'./chunk-THPTANES.mjs';import {a as a$1}from'./chunk-5PJEKEEP.mjs';import {a,b as b$1}from'./chunk-EBU6E26L.mjs';import {b}from'./chunk-LFSU6LR3.mjs';var x="http://www.w3.org/2000/svg",G="cinematic-photo",D=a=>a<0?0:a>1?1:a;function u(a){let i=parseFloat(a);return Number.isFinite(i)?D(i/100):0}function L(a){return d[a]??d.linear}var P=a=>({destroy(){},getProgress:()=>a}),R=class{constructor(i){if(typeof document>"u"){this.mount=null;return}this.mount=typeof i.wrapper=="string"?document.querySelector(i.wrapper):i.wrapper,this.mount||b("Cinematic: wrapper not found:",i.wrapper);}loadStory(i){let s=this.mount;if(typeof window>"u"||!s)return P(0);s.style.position="relative",s.style.height=i.totalHeight,s.style.display="block";let l=document.createElement("div");l.setAttribute("data-cinematic-stage",""),l.style.cssText="position:sticky;top:0;height:100vh;width:100%;overflow:hidden;display:block;",s.appendChild(l);let f=[];for(let t of i.scenes){if(t.background){let e=document.createElement("img");e.id=G,e.src=t.background,e.alt="",e.style.cssText="position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none;",l.appendChild(e);}let n=t.animations.filter(e=>e.type==="draw");if(n.length){let e=document.createElementNS(x,"svg");e.setAttribute("viewBox",`0 0 ${i.canvas.width} ${i.canvas.height}`),e.setAttribute("preserveAspectRatio","xMidYMid meet"),e.style.cssText="position:absolute;inset:0;width:100%;height:100%;overflow:visible;",l.appendChild(e);for(let o of n){let r=document.createElementNS(x,"path");r.id=o.target.replace(/^#/,""),r.setAttribute("d",o.d),r.setAttribute("fill","none"),r.setAttribute("stroke",o.stroke),r.setAttribute("stroke-width",String(o.strokeWidth)),r.setAttribute("stroke-linecap","round"),r.setAttribute("stroke-linejoin","round");let h=o.length||r.getTotalLength?.()||0;r.style.strokeDasharray=String(h),r.style.strokeDashoffset=String(h),e.appendChild(r),f.push({kind:"draw",el:r,start:u(o.start),end:u(o.end),ease:L(o.easing),length:h});}}for(let e of t.animations){if(e.type!=="fade")continue;let o=l.querySelector(e.target)??document.querySelector(e.target);o&&(o.style.opacity=String(e.from),f.push({kind:"fade",el:o,start:u(e.start),end:u(e.end),ease:L("ease-in-out"),from:e.from,to:e.to}));}}let d=0,c=null;for(let t=s.parentElement;t?.parentElement;t=t.parentElement)if(/[ao]/.test(getComputedStyle(t).overflowY)&&t.scrollHeight>t.clientHeight&&(t!==document.body||/[aoh]/.test(getComputedStyle(t.parentElement).overflowY))){c=t;break}let m=0,p=0,b=()=>{let t=s.getBoundingClientRect().top;m=c?t-c.getBoundingClientRect().top-c.clientTop+c.scrollTop:t+window.scrollY,p=m+Math.max(0,s.offsetHeight-(c?c.clientHeight:window.innerHeight));},S=()=>{let t=c?c.scrollTop:window.scrollY;return p<=m?t>=m?1:0:b$2(t,m,p,1)},g=t=>{for(let n of f){let e=n.end-n.start,o=e<=0?t>=n.end?1:0:D((t-n.start)/e),r=n.ease(o);n.kind==="draw"?n.el.style.strokeDashoffset=String(n.length*(1-r)):n.el.style.opacity=String(n.from+(n.to-n.from)*r);}};if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return g(1),P(1);let E=()=>{d=S(),g(d);};b(),E();let v=e(c||window,[s],S,E,b);a(s,{type:"draw",getProgress:()=>d,getTrigger:()=>({tStart:m,tEnd:p})});let k=a$1(t=>{t&&(k(),v.off(),b$1(s),d=1,g(1));});return {destroy(){k(),v.off(),b$1(s);},getProgress:()=>d}}};
2
- export{R as a};
@@ -1 +0,0 @@
1
- import {a,e,c,b as b$2}from'./chunk-NV6YTPHI.mjs';import {d}from'./chunk-THPTANES.mjs';import {a as a$1}from'./chunk-5PJEKEEP.mjs';import {a as a$2,b as b$1}from'./chunk-EBU6E26L.mjs';import {b}from'./chunk-LFSU6LR3.mjs';var X={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function se(c$1,h={}){if(typeof window>"u")return X;let y=typeof c$1=="string"?document.querySelector(c$1):c$1;if(!y||y.tagName.toLowerCase()!=="video")return b("scrollVideo: <video> element not found:",c$1),X;let t=y,{trigger:C={},easing:v="linear",once:V=false,axis:u="y",preload:Y="auto",triggerElement:j,onReady:L,onComplete:J,onProgress:K}=h,R=j??t,a$3=window.matchMedia("(prefers-reduced-motion: reduce)").matches,z=typeof v=="function"?v:d[v]??d.linear,Q=a(C.start||"top top"),U=a(C.end||"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=Y);let A=h.from??0,b$3=h.to,m=0,f=0,r=false,E=-1,g=0,n=0,p=false,i=false,I=()=>u==="x"?window.scrollX:window.scrollY,Z=()=>u==="x"?window.innerWidth:window.innerHeight;function S(){let e=R.getBoundingClientRect(),o=u==="x"?e.left:e.top,d=u==="x"?e.width:e.height,H=c({top:o,height:d},I(),Z(),Q,U);m=H.tStart,f=H.tEnd,i&&f===m&&b("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",t);}let w=NaN;function s(e){if(!i)return;let o=b$3??t.duration??0,d=A+(o-A)*e;d!==w&&(w=d,t.currentTime=d),t.style.setProperty("--scroll-draw-progress",String(e)),K?.(e);}let O=()=>b$2(I(),m,f,1);function $(){if(!i||a$3)return;let e=O(),o=V?Math.max(E,z(g=Math.max(g,e))):z(e);n=o,s(o),o>=1&&!p?(p=true,J?.()):o<1&&!V&&(p=false);}let l=e(window,[R],O,$,S),x=()=>l.hold(r||!i||a$3);x();function N(){if(i=true,b$3===void 0&&(b$3=t.duration),a$3){s(1),L?.();return}S(),L?.(),r?s(n):x();}t.readyState>=1?N():t.addEventListener("loadedmetadata",N,{once:true}),i||S();let k=a$3?()=>{}:a$1(e=>{e&&(k(),a$3=true,l.hold(true),s(1));});a$2(t,{type:"video",getProgress:()=>n,getTrigger:()=>({tStart:m,tEnd:f})});function D(){r&&(r=false,x());}return {destroy(){l.off(),t.removeEventListener("loadedmetadata",N),k(),b$1(t);},replay(){E=-1,g=0,p=false,n=0,w=NaN,s(0),D();},pause(){r=true,l.hold(true);},resume:D,seek(e){let o=Math.min(1,Math.max(0,e));n=o,E=o,g=0,r=true,l.hold(true),w=NaN,s(o);},getProgress(){return n}}}export{se as a};
@@ -1 +0,0 @@
1
- import {a,e,c,b as b$2}from'./chunk-NV6YTPHI.mjs';import {d}from'./chunk-THPTANES.mjs';import {a as a$1}from'./chunk-5PJEKEEP.mjs';import {a as a$2,b as b$1}from'./chunk-EBU6E26L.mjs';import {b}from'./chunk-LFSU6LR3.mjs';var k={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Oe(c){let f=c>1?[0,c-1]:[0],d=[[0,c-1]];for(let r=0;r<d.length;r++){let[l,h]=d[r];if(h-l<2)continue;let m=l+h>>1;f.push(m),d.push([l,m],[m,h]);}return f}function $e(c$1,f){if(typeof window>"u")return k;let d$1=typeof c$1=="string"?document.querySelector(c$1):c$1;if(!d$1||d$1.tagName.toLowerCase()!=="canvas")return b("scrollFrames: <canvas> element not found:",c$1),k;let r=d$1,{frames:l,trigger:h={},easing:m="linear",once:J=false,axis:A="y",fit:be="cover",triggerElement:ye,onReady:ve,onLoad:Me,onComplete:xe,onProgress:Ee}=f||{},p=Array.isArray(l)?l:null,K=f?.count,w=Math.floor(p?Math.min(K??p.length,p.length):K??NaN);if(!(p||typeof l=="function")||!Number.isFinite(w)||w<1)return b("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",r),k;let b$3=f.concurrency??6;(!Number.isFinite(b$3)||b$3<1)&&(b("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",f.concurrency),b$3=6),b$3=Math.floor(b$3);let H=r.getContext("2d");if(!H)return b("scrollFrames: the canvas has no 2D context.",r),k;let y=w-1,Q=ye??r,i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,Fe=typeof m=="function"?m:d[m]??d.linear,V=e=>{let t=Fe(e);return t===t?t:0},Se=a(h.start||"top top"),Re=a(h.end||"bottom top"),C=0,P=0,E=false,W=-1,T=0,v=0,L=false,a$3=false,Z=false,ee=false,$=0,D=-1,O=new Array(w),U=new Uint8Array(w),F=new Set,M=i?[y]:Oe(w),q=0,G=0,te=false,z=(e,...t)=>{if(e)try{e(...t);}catch(n){typeof reportError=="function"?reportError(n):setTimeout(()=>{throw n});}},ne=false,Ae=e=>{let t;try{t=p?p[e]:l(e);}catch(n){t=n;}return typeof t=="string"&&t?t:(ne||(ne=true,b(`scrollFrames: no URL for frame ${e}; it is skipped for its nearest neighbour.`,t)),null)},re=()=>A==="x"?window.scrollX:window.scrollY,Ce=()=>A==="x"?window.innerWidth:window.innerHeight;function _(){!te&&G===M.length&&(te=true,z(Me));}function B(){for(;!a$3&&F.size<b$3&&q<M.length;){let e=M[q++];U[e]||Pe(e);}}function Pe(e){U[e]=1;let t=Ae(e);if(t===null){G++,queueMicrotask(()=>{a$3||_();});return}let n=new Image,o=false,s=g=>{o||a$3||(o=true,n.onload=n.onerror=null,F.delete(n),g?O[e]=n:b("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",t),G++,B(),I(),_());};F.add(n),n.decoding="async",n.onerror=()=>s(false),n.src=t,typeof n.decode=="function"?n.decode().then(()=>s(true),()=>{n.complete?s(n.naturalWidth>0):n.onload=()=>s(true);}):n.onload=()=>s(true);}function Te(e){for(let t=0;t<=y;t++){if(O[e-t])return e-t;if(O[e+t])return e+t}return -1}function X(){let e=r.clientWidth,t=r.clientHeight;if(!e||!t)return;let n=Math.min(window.devicePixelRatio||1,2),o=Math.round(e*n),s=Math.round(t*n);if(Math.abs(r.width-o)<=1&&Math.abs(r.height-s)<=1)return;r.width=o,r.height=s,D=-1;let g=r.clientWidth,R=r.clientHeight;if(g!==e||R!==t){let x=r.style;g!==e&&R!==t?(x.width=`${e}px`,x.height=`${t}px`):x.aspectRatio=`${e} / ${t}`;}}function I(){let e=Te($);if(e<0||e===D)return;let t=O[e],n=r.width,o=r.height,s=t.naturalWidth||n,g=t.naturalHeight||o,R=(be==="contain"?Math.min:Math.max)(n/s,o/g),x=s*R,fe=g*R;H.clearRect(0,0,n,o),H.drawImage(t,(n-x)/2,(o-fe)/2,x,fe),D=e,Z||(Z=true,z(ve));}function N(e){$=Math.min(y,Math.max(0,Math.round(e*y))),r.style.setProperty("--scroll-draw-progress",String(e)),I(),z(Ee,e,$);}function oe(){let e=Q.getBoundingClientRect(),t=A==="x"?e.left:e.top,n=A==="x"?e.width:e.height,o=c({top:t,height:n},re(),Ce(),Se,Re);C=o.tStart,P=o.tEnd,P===C&&n>0&&!i&&!ee&&(ee=true,b("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",r));}let se=()=>b$2(re(),C,P,1);function Le(){if(i)return;let e=se(),t=J?Math.max(W,V(T=Math.max(T,e))):V(e);v=t,N(t),t>=1&&!L?(L=true,z(xe)):t<1&&!J&&(L=false);}function ie(){v=1,N(1);}X(),i||oe();let S=e(window,[Q],se,Le,()=>{X(),i||oe(),I();}),ae=()=>S.hold(E||i);ae(),i&&ie(),B();let ce=typeof ResizeObserver=="function"?new ResizeObserver(()=>{X(),I();}):null;ce?.observe(r);let le=i?()=>{}:a$1(e=>{e&&(le(),i=true,S.hold(true),M=M.slice(0,q),U[y]||M.push(y),_(),ie(),B());});a$2(r,{type:"frames",getProgress:()=>v,getTrigger:()=>({tStart:C,tEnd:P})});function ue(){a$3||!E||(E=false,ae());}return {destroy(){if(!a$3){a$3=true,S.off(),ce?.disconnect(),le();for(let e of F)e.onload=e.onerror=null,e.src="";F.clear(),b$1(r);}},replay(){a$3||(W=-1,T=0,L=false,v=0,N(0),ue());},pause(){a$3||(E=true,S.hold(true));},resume:ue,seek(e){if(a$3)return;let t=Math.min(1,Math.max(0,e===e?e:0));v=t,W=t,T=0,E=true,S.hold(true),N(t);},getProgress(){return v}}}export{$e as a};