svg-scroll-draw 2.18.1 → 2.19.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.
- package/README.md +10 -10
- package/dist/angular/index.cjs +3 -3
- package/dist/angular/index.d.mts +3 -3
- package/dist/angular/index.d.ts +3 -3
- package/dist/angular/index.mjs +1 -1
- package/dist/astro/index.cjs +3 -3
- package/dist/astro/index.d.mts +6 -5
- package/dist/astro/index.d.ts +6 -5
- package/dist/astro/index.mjs +1 -1
- package/dist/cdn/svg-scroll-draw.dev.global.js +133 -31
- package/dist/cdn/svg-scroll-draw.global.js +3 -3
- package/dist/chunk-7SBTYJGH.mjs +1 -0
- package/dist/chunk-A4JCC3QQ.mjs +1 -0
- package/dist/chunk-BFX2CSQ3.mjs +1 -0
- package/dist/chunk-I45LCJUP.mjs +1 -0
- package/dist/{chunk-DIMNQPW5.mjs → chunk-JPK2NJWO.mjs} +1 -1
- package/dist/chunk-KHQ7OGQK.mjs +1 -0
- package/dist/chunk-MTEGM4RR.mjs +1 -0
- package/dist/chunk-PKHX3HSS.mjs +1 -0
- package/dist/chunk-WHFRS7IP.mjs +3 -0
- package/dist/{engine-6AXEX8CL.d.ts → engine-C9LKls__.d.ts} +1 -1
- package/dist/{engine-Ci08nM91.d.mts → engine-CvzRSkuk.d.mts} +1 -1
- package/dist/group/index.cjs +2 -2
- package/dist/group/index.d.mts +3 -3
- package/dist/group/index.d.ts +3 -3
- package/dist/group/index.mjs +1 -1
- package/dist/horizontal/index.cjs +1 -1
- package/dist/horizontal/index.d.mts +1 -1
- package/dist/horizontal/index.d.ts +1 -1
- package/dist/horizontal/index.mjs +1 -1
- package/dist/{index-BDGQEK6X.d.mts → index-BlIjovDN.d.mts} +1 -1
- package/dist/{index-DxjUOIbK.d.ts → index-DZjvLJcU.d.ts} +1 -1
- package/dist/{index-BVuNgQSd.d.ts → index-G3VfLIN8.d.ts} +2 -2
- package/dist/{index-CGR7pSOR.d.mts → index-Zxa5HIes.d.mts} +2 -2
- package/dist/index.cjs +4 -4
- package/dist/index.d.mts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.mjs +1 -1
- package/dist/nuxt/index.cjs +3 -3
- package/dist/nuxt/index.d.mts +3 -3
- package/dist/nuxt/index.d.ts +3 -3
- package/dist/nuxt/index.mjs +1 -1
- package/dist/pin/index.cjs +1 -1
- package/dist/pin/index.mjs +1 -1
- package/dist/progress/index.cjs +1 -1
- package/dist/progress/index.d.mts +1 -1
- package/dist/progress/index.d.ts +1 -1
- package/dist/progress/index.mjs +1 -1
- package/dist/react/index.cjs +3 -3
- package/dist/react/index.d.mts +16 -13
- package/dist/react/index.d.ts +16 -13
- package/dist/react/index.mjs +1 -1
- package/dist/reveal/index.cjs +1 -1
- package/dist/reveal/index.d.mts +1 -1
- package/dist/reveal/index.d.ts +1 -1
- package/dist/reveal/index.mjs +1 -1
- package/dist/{scroll-draw-CNlq4Z_L.d.mts → scroll-draw-B4CadBz0.d.mts} +1 -1
- package/dist/{scroll-draw-BlJfbTDv.d.ts → scroll-draw-Cs6Z5ype.d.ts} +1 -1
- package/dist/snap/index.d.mts +1 -1
- package/dist/snap/index.d.ts +1 -1
- package/dist/solid/index.cjs +2 -2
- package/dist/solid/index.d.mts +3 -3
- package/dist/solid/index.d.ts +3 -3
- package/dist/solid/index.mjs +1 -1
- package/dist/svelte/index.cjs +2 -2
- package/dist/svelte/index.d.mts +3 -3
- package/dist/svelte/index.d.ts +3 -3
- package/dist/svelte/index.mjs +1 -1
- package/dist/text/index.cjs +1 -1
- package/dist/text/index.d.mts +1 -1
- package/dist/text/index.d.ts +1 -1
- package/dist/text/index.mjs +1 -1
- package/dist/timeline/index.cjs +11 -11
- package/dist/timeline/index.d.mts +1 -1
- package/dist/timeline/index.d.ts +1 -1
- package/dist/timeline/index.mjs +4 -4
- package/dist/{types-DHU1zNEw.d.mts → types-B0YM4nQP.d.mts} +6 -1
- package/dist/{types-DHU1zNEw.d.ts → types-B0YM4nQP.d.ts} +6 -1
- package/dist/video/index.cjs +1 -1
- package/dist/video/index.d.mts +1 -1
- package/dist/video/index.d.ts +1 -1
- package/dist/video/index.mjs +1 -1
- package/dist/vue/index.cjs +3 -3
- package/dist/vue/index.d.mts +5 -83
- package/dist/vue/index.d.ts +5 -83
- package/dist/vue/index.mjs +1 -1
- package/dist/web-component/index.cjs +3 -3
- package/dist/web-component/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-4MH5SQTH.mjs +0 -1
- package/dist/chunk-CTVQDBD3.mjs +0 -1
- package/dist/chunk-KBFWDHF4.mjs +0 -1
- package/dist/chunk-LINFV2GK.mjs +0 -3
- package/dist/chunk-PEFR3ZB7.mjs +0 -1
- package/dist/chunk-QJ4H2HW3.mjs +0 -1
- package/dist/chunk-SNCRC6BA.mjs +0 -1
- package/dist/chunk-TIRZOSQ4.mjs +0 -1
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
[](./LICENSE)
|
|
8
8
|
[](https://github.com/DhruvilChauahan0210/ink-scroll/stargazers)
|
|
9
9
|
|
|
10
|
-
> Draw SVG paths on scroll — plus reveal, pin, snap, parallax, counters, video scrub and text splitting. **
|
|
10
|
+
> Draw SVG paths on scroll — plus reveal, pin, snap, parallax, counters, video scrub and text splitting. **11.2 KB gzipped for every API, from 1.4 KB if you import one.** Zero dependencies, MIT, and a native CSS fast path that runs with no per-frame JavaScript. Works in React, Next.js, Vue, Svelte, Solid, Angular, Astro, Nuxt and vanilla JS.
|
|
11
11
|
|
|
12
12
|
**[Live Demo](https://svg-scroll-draw.vercel.app)** · [npm](https://www.npmjs.com/package/svg-scroll-draw) · [Docs](https://svg-scroll-draw.vercel.app/docs) · [Examples](https://svg-scroll-draw.vercel.app/examples) · [Report a bug](https://github.com/DhruvilChauahan0210/ink-scroll/issues)
|
|
13
13
|
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
| `scrollParallax` | `svg-scroll-draw` | Move any element at a different rate than scroll. Speed multiplier, reverse direction. |
|
|
29
29
|
| `scrollDraw` | `svg-scroll-draw` | The original — scroll-driven SVG path drawing via `stroke-dashoffset`. |
|
|
30
30
|
| `scrollVideo` | `svg-scroll-draw/video` | Tie `<video>.currentTime` to scroll. The Apple/Stripe product-page pattern. |
|
|
31
|
-
| `scrollText` | `svg-scroll-draw/text` | Split text into chars/words/lines and stagger-animate each on scroll.
|
|
31
|
+
| `scrollText` | `svg-scroll-draw/text` | Split text into chars/words/lines and stagger-animate each on scroll. 3.1 KB, nothing else to load. |
|
|
32
32
|
| `devtools` | `svg-scroll-draw/devtools` | Visual overlay showing every active animation's triggers and progress. Dev-only. |
|
|
33
33
|
| `AOS` | `svg-scroll-draw/aos` | Drop-in replacement for AOS: same `AOS.init()`, same `data-aos` markup, no `aos.css`. |
|
|
34
34
|
| `ScrollReveal` | `svg-scroll-draw/scrollreveal` | Drop-in replacement for ScrollReveal.js 4, MIT instead of GPL-3.0. |
|
|
@@ -110,7 +110,7 @@ import { ScrollAnimate } from 'svg-scroll-draw/react';
|
|
|
110
110
|
| `once` | `boolean` | `false` | Freeze at max progress — doesn't reverse on scroll back |
|
|
111
111
|
| `axis` | `"x" \| "y"` | `"y"` | Scroll axis |
|
|
112
112
|
| `native` | `boolean` | `true` | Use CSS `animation-timeline: view()` fast path when eligible |
|
|
113
|
-
| `onProgress` | `(n: number) => void` | — | Called
|
|
113
|
+
| `onProgress` | `(n: number) => void` | — | Called as the scroll moves, with alpha 0–1 (the first path’s, under `stagger`) |
|
|
114
114
|
| `onComplete` | `() => void` | — | Fires when alpha reaches 1 |
|
|
115
115
|
|
|
116
116
|
---
|
|
@@ -362,7 +362,7 @@ import { ScrollDraw } from 'svg-scroll-draw/vue';
|
|
|
362
362
|
| `duration` | `number` | `1000` | Duration in ms for `autoplay` mode |
|
|
363
363
|
| `native` | `boolean` | `true` | Use CSS `animation-timeline: view()` when eligible |
|
|
364
364
|
| `preset` | `"sketch" \| "reveal" \| "typewriter" \| "cinematic" \| "spring"` | — | Apply a named option preset as the base config |
|
|
365
|
-
| `onProgress` | `(alpha: number) => void` | — | Called
|
|
365
|
+
| `onProgress` | `(alpha: number) => void` | — | Called as the scroll moves, with draw progress (0–1); under `stagger`, the first path’s, as `getProgress()` |
|
|
366
366
|
| `onStart` | `() => void` | — | Fires on the first frame |
|
|
367
367
|
| `onComplete` | `() => void` | — | Fires when all paths reach 100% |
|
|
368
368
|
|
|
@@ -629,12 +629,12 @@ devtools.highlight('#my-element'); // outline for 2 seconds
|
|
|
629
629
|
<!-- size-table:start -->
|
|
630
630
|
| Entry | Gzipped |
|
|
631
631
|
|---|---|
|
|
632
|
-
| `svg-scroll-draw` (main, every core API) |
|
|
633
|
-
| `svg-scroll-draw/react` (includes the engine) | 12.
|
|
634
|
-
| `svg-scroll-draw` + `svg-scroll-draw/react` (together; the engine ships once) |
|
|
635
|
-
| `svg-scroll-draw/reveal` | 5.
|
|
636
|
-
| `svg-scroll-draw/text` |
|
|
637
|
-
| `svg-scroll-draw/video` | 2.
|
|
632
|
+
| `svg-scroll-draw` (main, every core API) | 11.2 KB |
|
|
633
|
+
| `svg-scroll-draw/react` (includes the engine) | 12.7 KB |
|
|
634
|
+
| `svg-scroll-draw` + `svg-scroll-draw/react` (together; the engine ships once) | 14.2 KB |
|
|
635
|
+
| `svg-scroll-draw/reveal` | 5.5 KB |
|
|
636
|
+
| `svg-scroll-draw/text` | 3.1 KB |
|
|
637
|
+
| `svg-scroll-draw/video` | 2.7 KB |
|
|
638
638
|
| `svg-scroll-draw/scrollreveal` | 4.5 KB |
|
|
639
639
|
| `svg-scroll-draw/vivus` | 4.0 KB |
|
|
640
640
|
| `svg-scroll-draw/aos` (styles included) | 3.1 KB |
|
package/dist/angular/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';function
|
|
2
|
-
<div style="position:absolute;${m?`left:${
|
|
3
|
-
<div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",l,{passive:true}),l(),{el:t,destroy(){window.removeEventListener("scroll",l),t.remove();}}}var Lt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,$t=/[MmLlHhVvCcSsQqTtAaZz]/g;function lr(e,n,r){if(!je)return;let t=(e.match($t)??[]).join("").toUpperCase(),l=(n.match($t)??[]).join("").toUpperCase(),s=(e.match(Lt)??[]).length,c=(n.match(Lt)??[]).length;if(t!==l){ge(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${l||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,r);return}s!==c&&ge(`morphTo: coordinate count differs (${s} \u2192 ${c}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,r);}function it(e,n,r){let t=(n.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),l=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let c=parseFloat(s),u=t[l++]??c;return String(+(c+(u-c)*r).toFixed(4))})}function Pt(e,n={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:r,...t}=n,l=r?{...Et[r],...t}:t,s=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:c="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:d="linear",trigger:S={},stagger:z=0,direction:L="forward",once:re=false,debug:Me=false,axis:B="y",scrollContainer:ne,autoReverse:oe=false,delay:Y=0,strokeColor:M,strokeWidth:N,fillOpacity:$,waypoints:w,velocityScale:I=false,threshold:C=0,rootMargin:P="0px",repeat:T=0,repeatDelay:X=0,morphTo:x,clip:fe,autoplay:be=false,duration:se=1e3,native:ie=true,onProgress:p,onStart:E,onComplete:g,onEnter:k,onLeave:ae,onEnterBack:ee,onLeaveBack:A}=l,F=fe===true?"left":typeof fe=="string"?fe:false,K=typeof d=="function"?d:te[d]??te.linear,we=de(S.start??"top bottom"),Ve=de(S.end??"bottom top"),ve=typeof ne=="string"?document.querySelector(ne):ne??null,Ee=Array.isArray(M)?M[0]:null,le=Array.isArray(M)?M[1]:typeof M=="string"?M:null,ce=Array.isArray(N)?N[0]:null,G=Array.isArray(N)?N[1]:typeof N=="number"?N:null,pe=Array.isArray($)?$[0]:null,Q=Array.isArray($)?$[1]:typeof $=="number"?$:null;function Ce(o){let a=o*100;switch(F){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let V=F?[]:Array.from(e.querySelectorAll(c)),O=[],i=[],f=0,ye=0,R=false,_=false,q=0,Ae=false,Se=-1,Z=[],De=-1,j=false,ke=0,Ie=0,Ne,tt=null;function ct(){tt?.destroy(),tt=null;}let Re=new Set,ut=NaN,He=true,Ue=-1,mt=performance.now(),_e=NaN;function rt(){return ve?B==="x"?ve.scrollLeft:ve.scrollTop:B==="x"?window.scrollX:window.scrollY}function ft(){return ve?B==="x"?ve.clientWidth:ve.clientHeight:B==="x"?window.innerWidth:window.innerHeight}function pt(){let o=Je(e,ve,B);return xe(o,o.scroll,ft(),we,Ve)}function dt(){(({tStart:f,tEnd:ye}=pt())),Me&&je&&(ct(),tt=ar(f,ye,B));}function nt(o,a=pt){$e(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:a});let b=o.destroy;return o.destroy=()=>{b.call(o),Pe(e);},o}function Yt(o,a){if(e.style.setProperty("--scroll-draw-progress",String(o)),F){let b=a==="reverse"?1-o:o;e.style.clipPath=Ce(b);return}V.forEach((b,ue)=>{b.style.strokeDashoffset=a==="reverse"?`${O[ue]*o}`:`${O[ue]*(1-o)}`,m&&(b.style.opacity=a==="reverse"?`${1-o}`:`${o}`),Ee&&le?b.style.stroke=We(Ee,le,o):le&&(b.style.stroke=le),ce!==null&&G!==null?b.style.strokeWidth=`${ce+(G-ce)*o}`:G!==null&&(b.style.strokeWidth=`${G}`),pe!==null&&Q!==null?b.style.fillOpacity=`${pe+(Q-pe)*o}`:Q!==null&&(b.style.fillOpacity=`${Q}`),x&&b.tagName.toLowerCase()==="path"&&i[ue]&&b.setAttribute("d",it(i[ue],x,o));});}function Ye(){if(e.style.setProperty("--scroll-draw-progress","0"),F){e.style.clipPath=Ce(0);return}V.forEach((o,a)=>{o.style.strokeDasharray=`${O[a]}`,o.style.strokeDashoffset=L==="reverse"?"0":`${O[a]}`,m?o.style.opacity=L==="reverse"?"1":"0":o.style.opacity="",Ee&&(o.style.stroke=Ee),ce!==null&&(o.style.strokeWidth=`${ce}`),pe!==null&&(o.style.fillOpacity=`${pe}`),x&&o.tagName.toLowerCase()==="path"&&i[a]&&o.setAttribute("d",i[a]);});}if(V.forEach(o=>{ir(o);let a=qe(o);O.push(a);let b=o.tagName.toLowerCase()==="path";b?i.push(o.getAttribute("d")??""):i.push(""),x&&(b?lr(i[i.length-1],x,o):ge(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),s?(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=L==="reverse"?`${a}`:"0",m&&(o.style.opacity="1"),le&&(o.style.stroke=le),G!==null&&(o.style.strokeWidth=`${G}`),Q!==null&&(o.style.fillOpacity=`${Q}`),x&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",x)):(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=L==="reverse"?"0":`${a}`,m?o.style.opacity=L==="reverse"?"1":"0":o.style.opacity="",Ee&&(o.style.stroke=Ee),ce!==null&&(o.style.strokeWidth=`${ce}`),pe!==null&&(o.style.fillOpacity=`${pe}`));}),F){if(s)return e.style.clipPath=Ce(1),g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=Ce(0);}else if(s)return g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let gt=typeof d=="string"?et(d):null;function Xt(){return !(ie===false||!sr()||!V.length||!gt||F||B!=="y"||ve||u!==1||z!==0||re||oe||I!==false||x||w||T||Y>0||p||E||g||k||ae||ee||A||M!=null||N!=null||$!=null||(S.start??"top bottom").trim()!=="top bottom"||(S.end??"bottom top").trim()!=="bottom top")}function Kt(){let o=++or,a=`svg-scroll-draw-${o}`,b=`svg-scroll-draw-host-${o}`,ue=`--svg-scroll-draw-${o}`,Fe=L==="reverse"?"0":"var(--ssd-len)",Oe=L==="reverse"?"var(--ssd-len)":"0",Le=`stroke-dashoffset:${Fe};`,v=`stroke-dashoffset:${Oe};`;m&&(Le+=`opacity:${L==="reverse"?1:0};`,v+=`opacity:${L==="reverse"?0:1};`);let D=document.createElement("style");D.setAttribute("data-svg-scroll-draw",""),D.textContent=`@keyframes ${a}{from{${Le}}to{${v}}}.${b}{view-timeline-name:${ue};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${gt};animation-fill-mode:both;animation-timeline:${ue};animation-range:cover 0% cover 100%;}`,document.head.appendChild(D),e.classList.add(b);function me(y,U){y.style.setProperty("--ssd-len",String(O[U])),y.style.strokeDasharray=`${O[U]}`,y.style.strokeDashoffset="",y.style.opacity="",y.style.animationPlayState="",y.classList.add(a);}V.forEach(me);let h=false,H=-1;function W(){if(H>=0)return H;let y=e.getBoundingClientRect(),{tStart:U,tEnd:Te}=xe({top:y.top,height:y.height},rt(),ft(),we,Ve);return K(J(rt(),U,Te,u))}return {destroy(){e.classList.remove(b),V.forEach(y=>{y.classList.remove(a),y.style.removeProperty("--ssd-len"),y.style.animationPlayState="";}),D.remove();},replay(){h=false,H=-1,V.forEach(me);},pause(){h=true,V.forEach(y=>{y.style.animationPlayState="paused";});},resume(){h&&(h=false,V.forEach(y=>{y.style.animationPlayState="running";}));},seek(y){let U=Math.min(1,Math.max(0,y));H=U,h=true,V.forEach((Te,he)=>{Te.classList.remove(a),Te.style.strokeDashoffset=L==="reverse"?`${O[he]*U}`:`${O[he]*(1-U)}`,m&&(Te.style.opacity=L==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return W()},refresh(){V.forEach((y,U)=>{O[U]=qe(y),y.style.setProperty("--ssd-len",String(O[U])),y.style.strokeDasharray=`${O[U]}`;});}}}if(Xt())return nt(Kt());function Qt(){let o=Math.max(1,se),a=0,b=0,ue=false;function Fe(h){let H=true;if(F){let W=Math.min(1,Math.max(0,h/o)),y=K(W);ke=y,e.style.setProperty("--scroll-draw-progress",String(y)),e.style.clipPath=Ce(L==="reverse"?1-y:y),p?.(y),W<1&&(H=false);}else V.forEach((W,y)=>{let U=y*z*o,Te=Math.min(1,Math.max(0,(h-U)/o)),he=K(Te);W.style.strokeDashoffset=L==="reverse"?`${O[y]*he}`:`${O[y]*(1-he)}`,m&&(W.style.opacity=L==="reverse"?`${1-he}`:`${he}`),Ee&&le?W.style.stroke=We(Ee,le,he):le&&(W.style.stroke=le),ce!==null&&G!==null?W.style.strokeWidth=`${ce+(G-ce)*he}`:G!==null&&(W.style.strokeWidth=`${G}`),pe!==null&&Q!==null?W.style.fillOpacity=`${pe+(Q-pe)*he}`:Q!==null&&(W.style.fillOpacity=`${Q}`),x&&W.tagName.toLowerCase()==="path"&&i[y]&&W.setAttribute("d",it(i[y],x,he)),y===0&&(ke=he,p?.(he),e.style.setProperty("--scroll-draw-progress",String(he))),Te<1&&(H=false);});if(w){let W=Math.min(1,Math.max(0,h/o)),y=K(W);for(let U in w){let Te=parseFloat(U);y>=Te&&!Re.has(Te)&&(Re.add(Te),w[U]?.());}}return H}function Oe(h){if(j)return;let H=h-a;_||(_=true,E?.());let W=Fe(H);if(W&&!R){R=true,Fe(o*(1+Math.max(0,V.length-1)*z)),g?.(),Ie<(T==="infinite"?1/0:T??0)&&(Ie++,Ne=setTimeout(()=>{a=performance.now(),_=false,R=false,Re.clear(),Ye(),q=requestAnimationFrame(Oe);},X));return}W||(q=requestAnimationFrame(Oe));}function Le(){cancelAnimationFrame(q),clearTimeout(Ne),a=performance.now(),b=0,j=false,_=false,R=false,Ie=0,ue=true,ke=0,Re.clear(),Ye(),q=requestAnimationFrame(Oe);}let v=new IntersectionObserver(h=>{h.forEach(H=>{H.isIntersecting&&!(re&&R)?Le():!H.isIntersecting&&!re&&!R&&(cancelAnimationFrame(q),clearTimeout(Ne),ue=false);});},{root:ve??null,threshold:C,rootMargin:P}),D;function me(){clearTimeout(D),D=setTimeout(()=>{V.forEach((h,H)=>{O[H]=qe(h),h.style.strokeDasharray=`${O[H]}`;});},150);}return window.addEventListener("resize",me),window.addEventListener("orientationchange",me),Y>0?setTimeout(()=>v.observe(e),Y):v.observe(e),{destroy(){cancelAnimationFrame(q),clearTimeout(Ne),v.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),clearTimeout(D);},replay(){Ie=0,Le();},pause(){j||!ue||(j=true,b=performance.now()-a,cancelAnimationFrame(q));},resume(){j&&(j=false,ue=true,a=performance.now()-b,q=requestAnimationFrame(Oe));},seek(h){let H=Math.min(1,Math.max(0,h));ke=H,j=true,b=H*o,a=performance.now()-b,cancelAnimationFrame(q),Fe(b);},getProgress(){return ke},refresh(){clearTimeout(D),V.forEach((h,H)=>{O[H]=qe(h),h.style.strokeDasharray=`${O[H]}`;});}}}if(be)return nt(Qt());dt();function Xe(){if(!Ae||j)return;let o=performance.now(),a=rt();if(!He&&I===false&&a===ut){q=requestAnimationFrame(Xe);return}He=false,ut=a;let b=u;if(I!==false){let v=o-mt,D=v>0?Math.abs(a-(Ue<0?a:Ue))/v:0;b=u*Math.max(.2,1+D*(typeof I=="number"?I:1)*.04);}Ue=a,mt=o;let ue=oe?De===-1||a>=De?"forward":"reverse":L;De=a;let Fe=ye-f,Oe=true,Le=Fe===0?0:(a-f)/Fe;if(isNaN(_e)||(_e<=0&&Le>0?k?.():_e>0&&Le<=0&&A?.(),_e<1&&Le>=1?ae?.():_e>=1&&Le<1&&ee?.()),_e=Le,F){let v=K(J(a,f,ye,b));re&&!oe&&(Se=Math.max(Se,v),v=Se),ke=v,e.style.setProperty("--scroll-draw-progress",String(v));let D=ue==="reverse"?1-v:v;e.style.clipPath=Ce(D),p?.(v),!_&&J(a,f,ye,b)>0&&(_=true,E?.()),v>=1&&!R?(R=true,g?.(),Ie<(T==="infinite"?1/0:T??0)&&(Ie++,Ne=setTimeout(()=>{Se=-1,_=false,R=false,e.style.clipPath=Ce(0);},X))):v<1&&!re&&(R=false),q=requestAnimationFrame(Xe);return}if(V.forEach((v,D)=>{let me=D*z*Fe,h=K(J(a,f+me,ye+me,b));re&&!oe&&(h=Z[D]=Math.max(Z[D]??Se,h)),ke=h,v.style.strokeDashoffset=ue==="reverse"?`${O[D]*h}`:`${O[D]*(1-h)}`,m&&(v.style.opacity=ue==="reverse"?`${1-h}`:`${h}`),Ee&&le?v.style.stroke=We(Ee,le,h):le&&(v.style.stroke=le),ce!==null&&G!==null?v.style.strokeWidth=`${ce+(G-ce)*h}`:G!==null&&(v.style.strokeWidth=`${G}`),pe!==null&&Q!==null?v.style.fillOpacity=`${pe+(Q-pe)*h}`:Q!==null&&(v.style.fillOpacity=`${Q}`),x&&v.tagName.toLowerCase()==="path"&&i[D]&&v.setAttribute("d",it(i[D],x,h)),D===0&&(p?.(h),e.style.setProperty("--scroll-draw-progress",String(h))),h<1&&(Oe=false);}),w){let v=K(J(a,f,ye,b));for(let D in w){let me=parseFloat(D);v>=me&&!Re.has(me)&&(Re.add(me),w[D]?.());}}!_&&J(a,f,ye,b)>0&&(_=true,E?.()),Oe&&!R?(R=true,g?.(),Ie<(T==="infinite"?1/0:T??0)&&(Ie++,Ne=setTimeout(()=>{Se=-1,Z=[],_=false,R=false,Re.clear(),Ye(),He=true;},X))):!Oe&&!re&&(R=false),q=requestAnimationFrame(Xe);}let ot=false;function Ke(){ot||(ot=true,q=requestAnimationFrame(function(){Xe();}));}function Qe(){ot=false,cancelAnimationFrame(q);}let st=new IntersectionObserver(o=>{o.forEach(a=>{Ae=a.isIntersecting,Ae&&!j?(He=true,Ke()):Qe();});},{root:ve??null,threshold:C,rootMargin:P});function yt(){V.forEach((o,a)=>{O[a]=qe(o),o.style.strokeDasharray=`${O[a]}`;}),dt(),He=true;}let Ze;function Be(){clearTimeout(Ze),Ze=setTimeout(yt,150);}window.addEventListener("resize",Be),window.addEventListener("orientationchange",Be);let Ge;return typeof ResizeObserver<"u"&&(Ge=new ResizeObserver(()=>Be()),Ge.observe(document.body),Ge.observe(document.documentElement),Ge.observe(e)),Y>0?setTimeout(()=>st.observe(e),Y):st.observe(e),nt({destroy(){cancelAnimationFrame(q),clearTimeout(Ne),Qe(),st.disconnect(),Ge?.disconnect(),window.removeEventListener("resize",Be),window.removeEventListener("orientationchange",Be),clearTimeout(Ze),ct();},replay(){Se=-1,Z=[],De=-1,Ue=-1,_=false,R=false,Ie=0,j=false,ke=0,Re.clear(),clearTimeout(Ne),Ye(),He=true,Ae&&Ke();},pause(){j=true,Qe();},resume(){j&&(j=false,He=true,Ae&&Ke());},seek(o){let a=Math.min(1,Math.max(0,o));ke=a,Se=a,Z=[],j=true,Qe(),Yt(a,L),He=true;},getProgress(){return ke},refresh(){clearTimeout(Ze),yt(),Ae&&!j&&Ke();}},()=>({tStart:f,tEnd:ye}))}var Ct=new WeakMap,cr=0;function at(e){return JSON.stringify(e,(n,r)=>{if(typeof r=="function")return "\u0192";if(typeof Element<"u"&&r instanceof Element){let t=Ct.get(r);return t===void 0&&Ct.set(r,t=++cr),`el#${t}`}return r})}function kt(e,n){let r={...e};for(let t of Object.keys(r))typeof r[t]=="function"&&(r[t]=(...l)=>n()[t]?.(...l));return r}function ur(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Ot(e){let n=[],r=/([\w]+)\(([^)]*)\)/g,t;for(;(t=r.exec(e))!==null;){let l=[],s=[],c=t[2].trim();if(c)for(let u of c.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);l.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}n.push({fn:t[1],nums:l,units:s});}return n}function mr(e,n,r){let t=Ot(e),l=Ot(n);return t.length===0||t.length!==l.length?r<1?e:n:t.map((s,c)=>{let u=l[c];return s.fn!==u.fn||s.nums.length!==u.nums.length?r<1?`${s.fn}(${s.nums.map((m,d)=>`${m}${s.units[d]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,d)=>`${m}${u.units[d]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,d)=>`${m+(u.nums[d]-m)*r}${s.units[d]}`).join(", ")})`}).join(" ")}function It(e,n,r){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*r);let t=String(e),l=String(n);if(ur(t))return We(t,l,r);if(t.includes("("))return mr(t,l,r);let s=t.match(/^([-+]?[\d.]+)(.*)$/),c=l.match(/^([-+]?[\d.]+)(.*)$/);if(s&&c){let u=parseFloat(s[1]),m=parseFloat(c[1]);return `${u+(m-u)*r}${s[2]||c[2]}`}return r<1?t:l}function fr(e){return e.replace(/([A-Z])/g,n=>`-${n.toLowerCase()}`)}var pr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),dr=0,Ft="--scroll-draw-progress";function gr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function Dt(e,n){let r={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return r;let{props:t,trigger:l={},easing:s="ease-out",speed:c=1,once:u=false,axis:m="y",scrollContainer:d,native:S=true,velocityScale:z=false,respectReducedMotion:L=true,triggerElement:re,onProgress:Me,onComplete:B,onEnter:ne,onLeave:oe,onEnterBack:Y,onLeaveBack:M}=n,N=L&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,$=typeof s=="function"?s:te[s]??te["ease-out"],w=de(l.start??"top bottom"),I=de(l.end??"bottom top"),C=re??e,P=typeof d=="string"?document.querySelector(d):d??null,T=Object.entries(t).map(([i,f])=>({prop:fr(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function X(){let i=window.getComputedStyle(e);for(let f of T)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function x(){for(let i of T)e.style.setProperty(i.prop,String(i.to));}let fe=new Map;for(let i of [...T.map(f=>f.prop),Ft])fe.set(i,e.style.getPropertyValue(i));function be(){for(let[i,f]of fe)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if(N)return x(),B?.(),{...r,destroy:be,getProgress:()=>1};X();let se=typeof s=="string"?et(s):null;function ie(){if(!S||!gr()||!se||m!=="y"||P||C!==e||u||c!==1||Me||B||ne||oe||Y||M||z!==false||(l.start??"top bottom").trim()!=="top bottom"||(l.end??"bottom top").trim()!=="bottom top")return false;for(let i of T)if(!pr.has(i.prop))return false;return true}function p(){let i=`ssd-a-${++dr}`,f=T.map(Z=>`${Z.prop}:${Z.from}`).join(";"),ye=T.map(Z=>`${Z.prop}:${Z.to}`).join(";"),R=document.createElement("style");R.setAttribute("data-ssd-animate",""),R.textContent=`@keyframes ${i}{from{${f}}to{${ye}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${se};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(R),e.classList.add(i);let _=()=>m==="x"?window.scrollX:window.scrollY,q=()=>m==="x"?window.innerWidth:window.innerHeight,Ae=()=>{let Z=e.getBoundingClientRect();return xe({top:Z.top,height:Z.height},_(),q(),w,I)};$e(e,{type:"animate",getProgress:()=>Se.getProgress(),getTrigger:Ae});let Se={destroy(){e.classList.remove(i),R.remove(),e.style.animationPlayState="",be(),Pe(e);},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(Z){let De=Math.min(1,Math.max(0,Z));e.classList.remove(i);for(let j of T)e.style.setProperty(j.prop,It(j.from,j.to,De));},getProgress(){let{tStart:Z,tEnd:De}=Ae();return $(J(_(),Z,De,c))}};return Se}if(ie())return p();let E=0,g=0,k=0,ae=false,ee=false,A=-1,F=0,K=false,we=NaN,Ve=-1,ve=0,Ee=()=>P?m==="x"?P.scrollLeft:P.scrollTop:m==="x"?window.scrollX:window.scrollY,le=()=>P?m==="x"?P.clientWidth:P.clientHeight:m==="x"?window.innerWidth:window.innerHeight;function ce(){let i=Je(C,P,m),f=xe(i,i.scroll,le(),w,I);E=f.tStart,g=f.tEnd;}function G(i){e.style.setProperty(Ft,String(i));for(let f of T)e.style.setProperty(f.prop,It(f.from,f.to,i));Me?.(i);}function pe(i){if(isNaN(we)){we=i;return}we<=0&&i>0?ne?.():we>0&&i<=0&&M?.(),we<1&&i>=1?oe?.():we>=1&&i<1&&Y?.(),we=i;}function Q(){if(!ae||ee)return;let i=performance.now(),f=Ee(),ye=c;if(z!==false){let q=i-ve,Ae=q>0?Math.abs(f-(Ve<0?f:Ve))/q:0;ye=c*Math.max(.2,1+Ae*(typeof z=="number"?z:1)*.04);}Ve=f,ve=i;let R=g===E?0:(f-E)/(g-E);pe(R);let _=$(J(f,E,g,ye));u&&(A=Math.max(A,_),_=A),F=_,G(_),_>=1&&!K?(K=true,B?.()):_<1&&!u&&(K=false),k=requestAnimationFrame(Q);}ce(),g===E&&ge("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let i=$(J(Ee(),E,g,c));u&&i>0&&(A=i),F=i,G(i);}let Ce=new IntersectionObserver(i=>{i.forEach(f=>{ae=f.isIntersecting,ae&&!ee?k=requestAnimationFrame(Q):cancelAnimationFrame(k);});},{root:P??null}),V;function O(){clearTimeout(V),V=setTimeout(ce,150);}return window.addEventListener("resize",O),window.addEventListener("orientationchange",O),Ce.observe(e),$e(e,{type:"animate",getProgress:()=>F,getTrigger:()=>({tStart:E,tEnd:g})}),{destroy(){cancelAnimationFrame(k),Ce.disconnect(),window.removeEventListener("resize",O),window.removeEventListener("orientationchange",O),clearTimeout(V),be(),Pe(e);},replay(){A=-1,K=false,F=0,ee=false,G(0);},pause(){ee=true,cancelAnimationFrame(k);},resume(){ee&&(ee=false,ae&&(k=requestAnimationFrame(Q)));},seek(i){let f=Math.min(1,Math.max(0,i));F=f,A=f,ee=true,cancelAnimationFrame(k),G(f);},getProgress(){return F}}}var lt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Nt(e,n){if(typeof window>"u")return lt;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return ge("scrollCounter: element not found:",e),lt;let t=r,{from:l=0,to:s,format:c,easing:u="ease-out",trigger:m={},once:d=true,decimals:S,onComplete:z}=n,L=S!==void 0?p=>p.toFixed(S):c??(p=>String(Math.round(p))),re=typeof u=="function"?u:te[u]??te["ease-out"],Me=de(m.start??"top 80%"),B=de(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=L(s),z?.(),lt;let oe=0,Y=0,M=0,N=false,$=false,w=-1,I=0,C=false,P=()=>window.scrollY,T=()=>window.innerHeight;function X(){let p=t.getBoundingClientRect(),E=xe({top:p.top,height:p.height},P(),T(),Me,B);oe=E.tStart,Y=E.tEnd;}function x(p){t.textContent=L(l+(s-l)*p),t.style.setProperty("--scroll-draw-progress",String(p));}function fe(){if(!N||$)return;let p=re(J(P(),oe,Y,1));d&&(w=Math.max(w,p),p=w),I=p,x(p),p>=1&&!C?(C=true,z?.()):p<1&&!d&&(C=false),M=requestAnimationFrame(fe);}X();{let p=re(J(P(),oe,Y,1));d&&p>0&&(w=p),I=p,x(p);}let be=new IntersectionObserver(p=>{p.forEach(E=>{N=E.isIntersecting,N&&!$?M=requestAnimationFrame(fe):cancelAnimationFrame(M);});}),se;function ie(){clearTimeout(se),se=setTimeout(X,150);}return window.addEventListener("resize",ie),window.addEventListener("orientationchange",ie),be.observe(t),$e(t,{type:"counter",getProgress:()=>I,getTrigger:()=>({tStart:oe,tEnd:Y})}),{destroy(){cancelAnimationFrame(M),be.disconnect(),window.removeEventListener("resize",ie),window.removeEventListener("orientationchange",ie),clearTimeout(se),Pe(t);},replay(){w=-1,C=false,I=0,$=false,x(0);},pause(){$=true,cancelAnimationFrame(M);},resume(){$&&($=false,N&&(M=requestAnimationFrame(fe)));},seek(p){let E=Math.min(1,Math.max(0,p));I=E,w=E,$=true,cancelAnimationFrame(M),x(E);},getProgress(){return I}}}var Rt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ht(e,n={}){if(typeof window>"u")return Rt;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return ge("scrollVideo: <video> element not found:",e),Rt;let t=r,{trigger:l={},easing:s="linear",once:c=false,axis:u="y",preload:m="auto",triggerElement:d,onReady:S,onComplete:z,onProgress:L}=n,re=d??t,Me=window.matchMedia("(prefers-reduced-motion: reduce)").matches,B=typeof s=="function"?s:te[s]??te.linear,ne=de(l.start??"top top"),oe=de(l.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let Y=n.from??0,M=n.to,N=0,$=0,w=0,I=false,C=false,P=-1,T=0,X=false,x=false,fe=()=>u==="x"?window.scrollX:window.scrollY,be=()=>u==="x"?window.innerWidth:window.innerHeight;function se(){let A=re.getBoundingClientRect(),F=u==="x"?A.left:A.top,K=u==="x"?A.width:A.height,we=xe({top:F,height:K},fe(),be(),ne,oe);N=we.tStart,$=we.tEnd,x&&$===N&&ge("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",t);}let ie=NaN;function p(A){if(!x)return;let F=M??t.duration??0,K=Y+(F-Y)*A;K!==ie&&(ie=K,t.currentTime=K),t.style.setProperty("--scroll-draw-progress",String(A)),L?.(A);}function E(){if(!I||C||!x||Me)return;let A=B(J(fe(),N,$,1));c&&(P=Math.max(P,A),A=P),T=A,p(A),A>=1&&!X?(X=true,z?.()):A<1&&!c&&(X=false),w=requestAnimationFrame(E);}function g(){if(x=true,M===void 0&&(M=t.duration),Me){p(1),S?.();return}se(),S?.(),I&&!C&&(w=requestAnimationFrame(E));}t.readyState>=1?g():t.addEventListener("loadedmetadata",g,{once:true}),x||se();let k=new IntersectionObserver(A=>{A.forEach(F=>{I=F.isIntersecting,I&&!C&&x?w=requestAnimationFrame(E):cancelAnimationFrame(w);});}),ae;function ee(){clearTimeout(ae),ae=setTimeout(se,150);}return window.addEventListener("resize",ee),window.addEventListener("orientationchange",ee),k.observe(t),$e(t,{type:"video",getProgress:()=>T,getTrigger:()=>({tStart:N,tEnd:$})}),{destroy(){cancelAnimationFrame(w),k.disconnect(),t.removeEventListener("loadedmetadata",g),window.removeEventListener("resize",ee),window.removeEventListener("orientationchange",ee),clearTimeout(ae),Pe(t);},replay(){P=-1,X=false,T=0,C=false,ie=NaN,p(0);},pause(){C=true,cancelAnimationFrame(w);},resume(){C&&(C=false,I&&x&&(w=requestAnimationFrame(E)));},seek(A){let F=Math.min(1,Math.max(0,A));T=F,P=F,C=true,cancelAnimationFrame(w),ie=NaN,p(F);},getProgress(){return T}}}function _t(e){let n=e.textContent??"";return e.textContent="",n.split(/(\s+)/).filter(Boolean).map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(r)?(t.textContent=r,t.style.whiteSpace="pre"):(t.textContent=r,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(r)?null:t}).filter(r=>r!==null)}function yr(e){let n=e.textContent??"";return e.textContent="",n.split("").map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=r,r===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),r===" "?null:t}).filter(r=>r!==null)}function zt(e){let n=_t(e),r=new Map;for(let s of n){let c=s.offsetTop;r.has(c)||r.set(c,[]),r.get(c).push(s);}let t=[],l=Array.from(r.keys()).sort((s,c)=>s-c);for(let s of l){let c=r.get(s),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",c.forEach((m,d)=>{let S=m.nextElementSibling;u.appendChild(m),d<c.length-1&&S&&S.style.whiteSpace==="pre"&&u.appendChild(S);}),t.push(u);}return e.textContent="",t.forEach((s,c)=>{e.appendChild(s),c<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function hr(e,n,r,t){if(r<=1||t===0)return e;let l=(r-1)*t,s=n*t,c=s+(1-l);return c<=s?e>=s?1:0:Math.min(1,Math.max(0,(e-s)/(c-s)))}function br(e,n){let r=[];if(n?.y!==void 0&&r.push(`translateY(${n.y*(1-e)}px)`),n?.x!==void 0&&r.push(`translateX(${n.x*(1-e)}px)`),n?.rotate!==void 0&&r.push(`rotate(${n.rotate*(1-e)}deg)`),n?.scale!==void 0){let t=n.scale+(1-n.scale)*e;r.push(`scale(${t})`);}return r.join(" ")||""}var Vt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function qt(e,n={}){if(typeof window>"u")return Vt;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return ge("scrollText: element not found:",e),Vt;let t=r,{split:l="words",stagger:s=.04,easing:c="ease-out",from:u={opacity:0,y:24},trigger:m={},once:d=true,onComplete:S}=n,z=window.matchMedia("(prefers-reduced-motion: reduce)").matches,L=typeof c=="function"?c:te[c]??te["ease-out"],re=de(m.start??"top 85%"),Me=de(m.end??"top 40%"),B=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let ne;l==="chars"?ne=yr(t):l==="lines"?ne=zt(t):ne=_t(t);let oe=ne.length;function Y(g,k){u?.opacity!==void 0&&(g.style.opacity=String(u.opacity+(1-u.opacity)*k));let ae=br(k,u);ae&&(g.style.transform=ae);}function M(g){t.style.setProperty("--scroll-draw-progress",String(g)),ne.forEach((k,ae)=>{let ee=L(hr(g,ae,oe,s));Y(k,ee);});}if(z)return M(1),S?.(),{destroy(){t.innerHTML=B,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};M(0);let N=0,$=0,w=0,I=false,C=false,P=-1,T=0,X=false,x=()=>window.scrollY,fe=()=>window.innerHeight;function be(){let g=t.getBoundingClientRect(),k=xe({top:g.top,height:g.height},x(),fe(),re,Me);N=k.tStart,$=k.tEnd;}function se(){if(!I||C)return;let g=J(x(),N,$,1);d&&(P=Math.max(P,g),g=P),T=g,M(g),g>=1&&!X?(X=true,S?.()):g<1&&!d&&(X=false),w=requestAnimationFrame(se);}be();let ie=new IntersectionObserver(g=>{g.forEach(k=>{I=k.isIntersecting,I&&!C?w=requestAnimationFrame(se):cancelAnimationFrame(w);});}),p;function E(){clearTimeout(p),p=setTimeout(()=>{if(l==="lines"){let g=T;t.innerHTML=B,t.setAttribute("aria-label",t.textContent??""),ne=zt(t),M(g);}be();},150);}return window.addEventListener("resize",E),window.addEventListener("orientationchange",E),ie.observe(t),$e(t,{type:"text",getProgress:()=>T,getTrigger:()=>({tStart:N,tEnd:$})}),{destroy(){cancelAnimationFrame(w),ie.disconnect(),window.removeEventListener("resize",E),window.removeEventListener("orientationchange",E),clearTimeout(p),t.innerHTML=B,t.removeAttribute("aria-label"),Pe(t);},replay(){P=-1,X=false,T=0,C=false,M(0);},pause(){C=true,cancelAnimationFrame(w);},resume(){C&&(C=false,I&&(w=requestAnimationFrame(se)));},seek(g){let k=Math.min(1,Math.max(0,g));T=k,P=k,C=true,cancelAnimationFrame(w),M(k);},getProgress(){return T}}}var ze=class{constructor(n){this.create=n;this.instance=null;this.el=null;this.key="";}init(n,r){return this.destroy(),this.el=n,this.latest=r,this.key=at(r),this.instance=this.create(n,kt(r,()=>this.latest)),this}update(n){return this.el?at(n)!==this.key?this.init(this.el,n):(this.latest=n,this):this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(n){return this.instance?.seek(n),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=this.el=null,this}},Wt=class extends ze{constructor(){super(Pt);}init(n,r={}){return super.init(n,r)}},Bt=class extends ze{constructor(){super(Dt);}},Gt=class extends ze{constructor(){super(Nt);}},jt=class extends ze{constructor(){super(Ht);}init(n,r={}){return super.init(n,r)}},Ut=class extends ze{constructor(){super(qt);}init(n,r={}){return super.init(n,r)}};exports.EngineRef=ze;exports.ScrollAnimateRef=Bt;exports.ScrollCounterRef=Gt;exports.ScrollDrawRef=Wt;exports.ScrollTextRef=Ut;exports.ScrollVideoRef=jt;
|
|
1
|
+
'use strict';function or({bounces:e=3,decay:n=.5}={}){let r=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,n)),s=Math.sqrt(t),i=0,l=[];for(let g=0;g<r;g++){let T=Math.pow(s,g);l.push(T),i+=T;}let u=[0],m=0;for(let g=0;g<r;g++)m+=l[g]/i,u.push(m);return g=>{if(g<=0)return 0;if(g>=1)return 1;for(let T=0;T<r;T++)if(g<=u[T+1]){let q=(g-u[T])/(u[T+1]-u[T]);if(T===0)return q*(2-q);let A=1-Math.pow(t,T);return A+(1-A)*(2*q-1)*(2*q-1)}return 1}}function sr({amplitude:e=1,period:n=.4}={}){let r=Math.max(1,e),t=Math.max(.1,n),s=r<=1?t/4:t/(2*Math.PI)*Math.asin(1/r);return i=>i<=0?0:i>=1?1:r*Math.pow(2,-10*i)*Math.sin((i-s)*(2*Math.PI)/t)+1}var ie={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:or(),elastic:sr()};function Et(e,n,r){return Math.min(r,Math.max(n,e))}function he(e="top bottom"){let n=e.trim();if(/^\d+(\.\d+)?%$/.test(n))return {element:"top",viewport:n};let[r="top",t="bottom"]=n.split(/\s+/).filter(Boolean);return {element:r,viewport:t}}function St(e,n,r,t){switch(t){case "top":return e+r;case "center":return e+r+n/2;case "bottom":return e+r+n;default:return e+r}}function Tt(e,n){if(/^\d+(\.\d+)?%$/.test(e))return n*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return n/2;case "bottom":return n;default:return n}}function Z(e,n,r,t){return r===n?0:Et((e-n)/(r-n)*t,0,1)}function Le(e,n,r,t,s){let i=St(e.top,e.height,n,t.element)-Tt(t.viewport,r),l=St(e.top,e.height,n,s.element)-Tt(s.viewport,r);return {tStart:i,tEnd:l}}function tt(e,n,r){let t=e.getBoundingClientRect(),s=r==="x"?t.width:t.height;return n?{top:r==="x"?t.left-n.getBoundingClientRect().left+n.scrollLeft:t.top-n.getBoundingClientRect().top+n.scrollTop,height:s,scroll:0}:{top:r==="x"?t.left:t.top,height:s,scroll:r==="x"?window.scrollX:window.scrollY}}function We(e){let n=e.tagName.toLowerCase();if(n==="rect"){let r=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(r+t)}if(n==="circle"){let r=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*r}return e.getTotalLength()}function xt(e){let n=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(n)return [parseInt(n[1]+n[1],16),parseInt(n[2]+n[2],16),parseInt(n[3]+n[3],16)];let r=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(r)return [parseInt(r[1],16),parseInt(r[2],16),parseInt(r[3],16)];let t=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return t?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]:null}function Be(e,n,r){let t=xt(e),s=xt(n);return !t||!s?e:`rgb(${Math.round(t[0]+(s[0]-t[0])*r)},${Math.round(t[1]+(s[1]-t[1])*r)},${Math.round(t[2]+(s[2]-t[2])*r)})`}var Mt={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var je=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function be(e,...n){je&&console.warn(`[svg-scroll-draw] ${e}`,...n);}var ir="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",ar="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",At=33;function lr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function cr(e){let n=[];for(let r=0;r<At;r++){let t=r/(At-1);n.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${n.join(",")})`}function rt(e){switch(e){case "linear":return "linear";case "ease-in":return ir;case "ease-out":return ar;case "ease-in-out":return lr()?cr(ie["ease-in-out"]):null;default:return null}}var Lt=Symbol.for("svg-scroll-draw.registry");function $t(){let e=globalThis;return e[Lt]||(e[Lt]=new Map)}function Oe(e,n){$t().set(e,n);}function Ie(e){$t().delete(e);}var Ue,nt=new Set,ot=new WeakMap,Ye=new Map,Pt=e=>{let n=e.getBoundingClientRect();return n.width+" "+n.height};function ur(e){let n=new Set;for(let r of e)for(;r&&r!==document.body;r=r.parentElement)for(let t=r;t;t=t.previousElementSibling)n.add(t);return n}function De(e,n){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let r=()=>n();Ue??(Ue=new ResizeObserver(s=>{let i=false;for(let{target:l}of s)ot.get(l)!==Pt(l)&&(i=true),ot.set(l,"");i&&nt.forEach(l=>l());})),nt.add(r);let t=ur(e);return [document.body,document.documentElement].forEach(s=>s&&t.add(s)),t.forEach(s=>{ot.has(s)||ot.set(s,Pt(s)),Ye.set(s,(Ye.get(s)??0)+1),Ue.observe(s);}),()=>{nt.delete(r)&&(t.forEach(s=>{let i=(Ye.get(s)??1)-1;if(i)return void Ye.set(s,i);Ye.delete(s),Ue?.unobserve(s);}),nt.size||(Ue?.disconnect(),Ue=void 0));}}var mr=0;function fr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Ct(e,n){let r="";try{r=getComputedStyle(e).getPropertyValue(n).trim();}catch{}return r||(e.getAttribute(n)??"").trim()}var kt=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function pr(e){if(!je)return;let n=Ct(e,"stroke");if(!n||n==="none"){be("Element has no stroke \u2014 path will not be visible.",e);return}let r=(e.getAttribute("fill")??"").trim();r&&!kt.has(r)&&!kt.has(Ct(e,"fill"))&&be("Element has a fill \u2014 it may obscure the stroke animation.",e);}function dr(e,n,r){let t=document.createElement("div");t.setAttribute("data-svg-scroll-draw-debug",""),t.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function s(){let i=r==="x"?window.scrollX:window.scrollY,l=e-i,u=n-i,m=r==="x";t.innerHTML=`
|
|
2
|
+
<div style="position:absolute;${m?`left:${l}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${l}px;left:0;right:0;border-top:2px dashed #22c55e;`}padding:2px 6px;color:#22c55e;background:rgba(0,0,0,.6)">\u25B6 start</div>
|
|
3
|
+
<div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",s,{passive:true}),s(),{el:t,destroy(){window.removeEventListener("scroll",s),t.remove();}}}var Ot=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,It=/[MmLlHhVvCcSsQqTtAaZz]/g;function gr(e,n,r){if(!je)return;let t=(e.match(It)??[]).join("").toUpperCase(),s=(n.match(It)??[]).join("").toUpperCase(),i=(e.match(Ot)??[]).length,l=(n.match(Ot)??[]).length;if(t!==s){be(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${s||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,r);return}i!==l&&be(`morphTo: coordinate count differs (${i} \u2192 ${l}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,r);}function ut(e,n,r){let t=(n.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),s=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,i=>{let l=parseFloat(i),u=t[s++]??l;return String(+(l+(u-l)*r).toFixed(4))})}function Ft(e,n={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:r,...t}=n,s=r?{...Mt[r],...t}:t,i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:l="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:g="linear",trigger:T={},stagger:q=0,direction:A="forward",once:J=false,debug:$e=false,axis:j="y",scrollContainer:ae,autoReverse:ee=false,delay:U=0,strokeColor:D,strokeWidth:P,fillOpacity:k,waypoints:b,velocityScale:C=false,threshold:x=0,rootMargin:M="0px",repeat:E=0,repeatDelay:te=0,morphTo:L,clip:re,autoplay:we=false,duration:ge=1e3,native:ye=true,onProgress:R,onStart:$,onComplete:f,onEnter:p,onLeave:O,onEnterBack:W,onLeaveBack:Ee}=s,w=re===true?"left":typeof re=="string"?re:false,z=typeof g=="function"?g:ie[g]??ie.linear,le=he(T.start??"top bottom"),He=he(T.end??"bottom top"),Se=typeof ae=="string"?document.querySelector(ae):ae??null,Te=Array.isArray(D)?D[0]:null,ce=Array.isArray(D)?D[1]:typeof D=="string"?D:null,Y=Array.isArray(P)?P[0]:null,ne=Array.isArray(P)?P[1]:typeof P=="number"?P:null,oe=Array.isArray(k)?k[0]:null,X=Array.isArray(k)?k[1]:typeof k=="number"?k:null;function Ne(o){let c=o*100;switch(w){case "right":return `inset(0 0 0 ${100-c}%)`;case "top":return `inset(0 0 ${100-c}% 0)`;case "bottom":return `inset(${100-c}% 0 0 0)`;case "center":return `circle(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-c}% 0 0)`}}let B=w?[]:Array.from(e.querySelectorAll(l)),I=[],ue=[],me=0,Pe=0,a=false,d=false,V=0,fe=false,H=-1,se=[],Ce=-1,K=false,N=0,xe=0,Me,st=null;function pt(){st?.destroy(),st=null;}let ze=new Set,dt=NaN,Ve=true,Xe=-1,gt=performance.now(),qe=NaN;function it(){return Se?j==="x"?Se.scrollLeft:Se.scrollTop:j==="x"?window.scrollX:window.scrollY}function yt(){return Se?j==="x"?Se.clientWidth:Se.clientHeight:j==="x"?window.innerWidth:window.innerHeight}function ht(){let o=tt(e,Se,j);return Le(o,o.scroll,yt(),le,He)}function bt(){(({tStart:me,tEnd:Pe}=ht())),$e&&je&&(pt(),st=dr(me,Pe,j));}function at(o,c=ht){Oe(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:c});let v=o.destroy;return o.destroy=()=>{v.call(o),Ie(e);},o}function Jt(o,c){if(e.style.setProperty("--scroll-draw-progress",String(o)),w){let v=c==="reverse"?1-o:o;e.style.clipPath=Ne(v);return}B.forEach((v,pe)=>{v.style.strokeDashoffset=c==="reverse"?`${I[pe]*o}`:`${I[pe]*(1-o)}`,m&&(v.style.opacity=c==="reverse"?`${1-o}`:`${o}`),Te&&ce?v.style.stroke=Be(Te,ce,o):ce&&(v.style.stroke=ce),Y!==null&&ne!==null?v.style.strokeWidth=`${Y+(ne-Y)*o}`:ne!==null&&(v.style.strokeWidth=`${ne}`),oe!==null&&X!==null?v.style.fillOpacity=`${oe+(X-oe)*o}`:X!==null&&(v.style.fillOpacity=`${X}`),L&&v.tagName.toLowerCase()==="path"&&ue[pe]&&v.setAttribute("d",ut(ue[pe],L,o));});}function Ke(){if(e.style.setProperty("--scroll-draw-progress","0"),w){e.style.clipPath=Ne(0);return}B.forEach((o,c)=>{o.style.strokeDasharray=`${I[c]}`,o.style.strokeDashoffset=A==="reverse"?"0":`${I[c]}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",Te&&(o.style.stroke=Te),Y!==null&&(o.style.strokeWidth=`${Y}`),oe!==null&&(o.style.fillOpacity=`${oe}`),L&&o.tagName.toLowerCase()==="path"&&ue[c]&&o.setAttribute("d",ue[c]);});}if(B.forEach(o=>{pr(o);let c=We(o);I.push(c);let v=o.tagName.toLowerCase()==="path";v?ue.push(o.getAttribute("d")??""):ue.push(""),L&&(v?gr(ue[ue.length-1],L,o):be(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),i?(o.style.strokeDasharray=`${c}`,o.style.strokeDashoffset=A==="reverse"?`${c}`:"0",m&&(o.style.opacity="1"),ce&&(o.style.stroke=ce),ne!==null&&(o.style.strokeWidth=`${ne}`),X!==null&&(o.style.fillOpacity=`${X}`),L&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",L)):(o.style.strokeDasharray=`${c}`,o.style.strokeDashoffset=A==="reverse"?"0":`${c}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",Te&&(o.style.stroke=Te),Y!==null&&(o.style.strokeWidth=`${Y}`),oe!==null&&(o.style.fillOpacity=`${oe}`));}),w){if(i)return e.style.clipPath=Ne(1),f?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=Ne(0);}else if(i)return f?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let wt=typeof g=="string"?rt(g):null;function er(){return !(ye===false||!fr()||!B.length||!wt||w||j!=="y"||Se||u!==1||q!==0||J||ee||C!==false||L||b||E||U>0||R||$||f||p||O||W||Ee||D!=null||P!=null||k!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function tr(){let o=++mr,c=`svg-scroll-draw-${o}`,v=`svg-scroll-draw-host-${o}`,pe=`--svg-scroll-draw-${o}`,Re=A==="reverse"?"0":"var(--ssd-len)",Fe=A==="reverse"?"var(--ssd-len)":"0",ke=`stroke-dashoffset:${Re};`,S=`stroke-dashoffset:${Fe};`;m&&(ke+=`opacity:${A==="reverse"?1:0};`,S+=`opacity:${A==="reverse"?0:1};`);let F=document.createElement("style");F.setAttribute("data-svg-scroll-draw",""),F.textContent=`@keyframes ${c}{from{${ke}}to{${S}}}.${v}{view-timeline-name:${pe};view-timeline-axis:block;}.${c}{animation-name:${c};animation-duration:auto;animation-timing-function:${wt};animation-fill-mode:both;animation-timeline:${pe};animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(v);function de(y,Q){y.style.setProperty("--ssd-len",String(I[Q])),y.style.strokeDasharray=`${I[Q]}`,y.style.strokeDashoffset="",y.style.opacity="",y.style.animationPlayState="",y.classList.add(c);}B.forEach(de);let h=false,_=-1;function G(){if(_>=0)return _;let y=e.getBoundingClientRect(),{tStart:Q,tEnd:Ae}=Le({top:y.top,height:y.height},it(),yt(),le,He);return z(Z(it(),Q,Ae,u))}return {destroy(){e.classList.remove(v),B.forEach(y=>{y.classList.remove(c),y.style.removeProperty("--ssd-len"),y.style.animationPlayState="";}),F.remove();},replay(){h=false,_=-1,B.forEach(de);},pause(){h=true,B.forEach(y=>{y.style.animationPlayState="paused";});},resume(){h&&(h=false,B.forEach(y=>{y.style.animationPlayState="running";}));},seek(y){let Q=Math.min(1,Math.max(0,y));_=Q,h=true,B.forEach((Ae,ve)=>{Ae.classList.remove(c),Ae.style.strokeDashoffset=A==="reverse"?`${I[ve]*Q}`:`${I[ve]*(1-Q)}`,m&&(Ae.style.opacity=A==="reverse"?`${1-Q}`:`${Q}`);});},getProgress(){return G()},refresh(){B.forEach((y,Q)=>{I[Q]=We(y),y.style.setProperty("--ssd-len",String(I[Q])),y.style.strokeDasharray=`${I[Q]}`;});}}}if(er())return at(tr());function rr(){let o=Math.max(1,ge),c=0,v=0,pe=false;function Re(h){let _=true;if(w){let G=Math.min(1,Math.max(0,h/o)),y=z(G);N=y,e.style.setProperty("--scroll-draw-progress",String(y)),e.style.clipPath=Ne(A==="reverse"?1-y:y),R?.(y),G<1&&(_=false);}else B.forEach((G,y)=>{let Q=y*q*o,Ae=Math.min(1,Math.max(0,(h-Q)/o)),ve=z(Ae);G.style.strokeDashoffset=A==="reverse"?`${I[y]*ve}`:`${I[y]*(1-ve)}`,m&&(G.style.opacity=A==="reverse"?`${1-ve}`:`${ve}`),Te&&ce?G.style.stroke=Be(Te,ce,ve):ce&&(G.style.stroke=ce),Y!==null&&ne!==null?G.style.strokeWidth=`${Y+(ne-Y)*ve}`:ne!==null&&(G.style.strokeWidth=`${ne}`),oe!==null&&X!==null?G.style.fillOpacity=`${oe+(X-oe)*ve}`:X!==null&&(G.style.fillOpacity=`${X}`),L&&G.tagName.toLowerCase()==="path"&&ue[y]&&G.setAttribute("d",ut(ue[y],L,ve)),y===0&&(N=ve,R?.(ve),e.style.setProperty("--scroll-draw-progress",String(ve))),Ae<1&&(_=false);});if(b){let G=Math.min(1,Math.max(0,h/o)),y=z(G);for(let Q in b){let Ae=parseFloat(Q);y>=Ae&&!ze.has(Ae)&&(ze.add(Ae),b[Q]?.());}}return _}function Fe(h){if(K)return;let _=h-c;d||(d=true,$?.());let G=Re(_);if(G&&!a){a=true,Re(o*(1+Math.max(0,B.length-1)*q)),f?.(),xe<(E==="infinite"?1/0:E??0)&&(xe++,Me=setTimeout(()=>{c=performance.now(),d=false,a=false,ze.clear(),Ke(),V=requestAnimationFrame(Fe);},te));return}G||(V=requestAnimationFrame(Fe));}function ke(){cancelAnimationFrame(V),clearTimeout(Me),c=performance.now(),v=0,K=false,d=false,a=false,xe=0,pe=true,N=0,ze.clear(),Ke(),V=requestAnimationFrame(Fe);}let S=new IntersectionObserver(h=>{h.forEach(_=>{_.isIntersecting&&!(J&&a)?ke():!_.isIntersecting&&!J&&!a&&(cancelAnimationFrame(V),clearTimeout(Me),pe=false);});},{root:Se??null,threshold:x,rootMargin:M}),F;function de(){clearTimeout(F),F=setTimeout(()=>{B.forEach((h,_)=>{I[_]=We(h),h.style.strokeDasharray=`${I[_]}`;});},150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),U>0?setTimeout(()=>S.observe(e),U):S.observe(e),{destroy(){cancelAnimationFrame(V),clearTimeout(Me),S.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),clearTimeout(F);},replay(){xe=0,ke();},pause(){K||!pe||(K=true,v=performance.now()-c,cancelAnimationFrame(V));},resume(){K&&(K=false,pe=true,c=performance.now()-v,V=requestAnimationFrame(Fe));},seek(h){let _=Math.min(1,Math.max(0,h));N=_,K=true,v=_*o,c=performance.now()-v,cancelAnimationFrame(V),Re(v);},getProgress(){return N},refresh(){clearTimeout(F),B.forEach((h,_)=>{I[_]=We(h),h.style.strokeDasharray=`${I[_]}`;});}}}if(we)return at(rr());bt();function Qe(){if(!fe||K)return;let o=performance.now(),c=it();if(!Ve&&C===false&&c===dt){V=requestAnimationFrame(Qe);return}Ve=false,dt=c;let v=u;if(C!==false){let S=o-gt,F=S>0?Math.abs(c-(Xe<0?c:Xe))/S:0;v=u*Math.max(.2,1+F*(typeof C=="number"?C:1)*.04);}Xe=c,gt=o;let pe=ee?Ce===-1||c>=Ce?"forward":"reverse":A;Ce=c;let Re=Pe-me,Fe=true,ke=Re===0?0:(c-me)/Re;if(isNaN(qe)||(qe<=0&&ke>0?p?.():qe>0&&ke<=0&&Ee?.(),qe<1&&ke>=1?O?.():qe>=1&&ke<1&&W?.()),qe=ke,w){let S=z(Z(c,me,Pe,v));J&&!ee&&(H=Math.max(H,S),S=H),N=S,e.style.setProperty("--scroll-draw-progress",String(S));let F=pe==="reverse"?1-S:S;e.style.clipPath=Ne(F),R?.(S),!d&&Z(c,me,Pe,v)>0&&(d=true,$?.()),S>=1&&!a?(a=true,f?.(),xe<(E==="infinite"?1/0:E??0)&&(xe++,Me=setTimeout(()=>{H=-1,d=false,a=false,e.style.clipPath=Ne(0);},te))):S<1&&!J&&(a=false),V=requestAnimationFrame(Qe);return}if(B.forEach((S,F)=>{let de=F*q*Re,h=z(Z(c,me+de,Pe+de,v));J&&!ee&&(h=se[F]=Math.max(se[F]??H,h)),S.style.strokeDashoffset=pe==="reverse"?`${I[F]*h}`:`${I[F]*(1-h)}`,m&&(S.style.opacity=pe==="reverse"?`${1-h}`:`${h}`),Te&&ce?S.style.stroke=Be(Te,ce,h):ce&&(S.style.stroke=ce),Y!==null&&ne!==null?S.style.strokeWidth=`${Y+(ne-Y)*h}`:ne!==null&&(S.style.strokeWidth=`${ne}`),oe!==null&&X!==null?S.style.fillOpacity=`${oe+(X-oe)*h}`:X!==null&&(S.style.fillOpacity=`${X}`),L&&S.tagName.toLowerCase()==="path"&&ue[F]&&S.setAttribute("d",ut(ue[F],L,h)),F===0&&(N=h,R?.(h),e.style.setProperty("--scroll-draw-progress",String(h))),h<1&&(Fe=false);}),b){let S=z(Z(c,me,Pe,v));for(let F in b){let de=parseFloat(F);S>=de&&!ze.has(de)&&(ze.add(de),b[F]?.());}}!d&&Z(c,me,Pe,v)>0&&(d=true,$?.()),Fe&&!a?(a=true,f?.(),xe<(E==="infinite"?1/0:E??0)&&(xe++,Me=setTimeout(()=>{H=-1,se=[],d=false,a=false,ze.clear(),Ke(),Ve=true;},te))):!Fe&&!J&&(a=false),V=requestAnimationFrame(Qe);}let lt=false;function Ze(){lt||(lt=true,V=requestAnimationFrame(function(){Qe();}));}function Je(){lt=false,cancelAnimationFrame(V);}let ct=new IntersectionObserver(o=>{o.forEach(c=>{fe=c.isIntersecting,fe&&!K?(Ve=true,Ze()):Je();});},{root:Se??null,threshold:x,rootMargin:M});function vt(){B.forEach((o,c)=>{I[c]=We(o),o.style.strokeDasharray=`${I[c]}`;}),bt(),Ve=true;}let et;function Ge(){clearTimeout(et),et=setTimeout(vt,150);}window.addEventListener("resize",Ge),window.addEventListener("orientationchange",Ge);let nr=De([e],Ge);return U>0?setTimeout(()=>ct.observe(e),U):ct.observe(e),at({destroy(){cancelAnimationFrame(V),clearTimeout(Me),Je(),ct.disconnect(),nr(),window.removeEventListener("resize",Ge),window.removeEventListener("orientationchange",Ge),clearTimeout(et),pt();},replay(){H=-1,se=[],Ce=-1,Xe=-1,d=false,a=false,xe=0,K=false,N=0,ze.clear(),clearTimeout(Me),Ke(),Ve=true,fe&&Ze();},pause(){K=true,Je();},resume(){K&&(K=false,Ve=true,fe&&Ze());},seek(o){let c=Math.min(1,Math.max(0,o));N=c,H=c,se=[],K=true,Je(),Jt(c,A),Ve=true;},getProgress(){return N},refresh(){clearTimeout(et),vt(),fe&&!K&&Ze();}},()=>({tStart:me,tEnd:Pe}))}var Dt=new WeakMap,yr=0;function mt(e){return JSON.stringify(e,(n,r)=>{if(typeof r=="function")return "\u0192";if(typeof Element<"u"&&r instanceof Element){let t=Dt.get(r);return t===void 0&&Dt.set(r,t=++yr),`el#${t}`}return r})}function Ht(e,n){let r={...e};for(let t of Object.keys(r))typeof r[t]=="function"&&(r[t]=(...s)=>n()[t]?.(...s));return r}function hr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Nt(e){let n=[],r=/([\w]+)\(([^)]*)\)/g,t;for(;(t=r.exec(e))!==null;){let s=[],i=[],l=t[2].trim();if(l)for(let u of l.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);s.push(m?parseFloat(m[1]):0),i.push(m?m[2]:"");}n.push({fn:t[1],nums:s,units:i});}return n}function br(e,n,r){let t=Nt(e),s=Nt(n);return t.length===0||t.length!==s.length?r<1?e:n:t.map((i,l)=>{let u=s[l];return i.fn!==u.fn||i.nums.length!==u.nums.length?r<1?`${i.fn}(${i.nums.map((m,g)=>`${m}${i.units[g]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,g)=>`${m}${u.units[g]}`).join(", ")})`:`${i.fn}(${i.nums.map((m,g)=>`${m+(u.nums[g]-m)*r}${i.units[g]}`).join(", ")})`}).join(" ")}function Rt(e,n,r){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*r);let t=String(e),s=String(n);if(hr(t))return Be(t,s,r);if(t.includes("("))return br(t,s,r);let i=t.match(/^([-+]?[\d.]+)(.*)$/),l=s.match(/^([-+]?[\d.]+)(.*)$/);if(i&&l){let u=parseFloat(i[1]),m=parseFloat(l[1]);return `${u+(m-u)*r}${i[2]||l[2]}`}return r<1?t:s}function wr(e){return e.replace(/([A-Z])/g,n=>`-${n.toLowerCase()}`)}var vr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),Er=0,zt="--scroll-draw-progress";function Sr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function Vt(e,n){let r={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return r;let{props:t,trigger:s={},easing:i="ease-out",speed:l=1,once:u=false,axis:m="y",scrollContainer:g,native:T=true,velocityScale:q=false,respectReducedMotion:A=true,triggerElement:J,onProgress:$e,onComplete:j,onEnter:ae,onLeave:ee,onEnterBack:U,onLeaveBack:D}=n,P=A&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,k=typeof i=="function"?i:ie[i]??ie["ease-out"],b=he(s.start??"top bottom"),C=he(s.end??"bottom top"),x=J??e,M=typeof g=="string"?document.querySelector(g):g??null,E=Object.entries(t).map(([a,d])=>({prop:wr(a),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function te(){let a=window.getComputedStyle(e);for(let d of E)d.from===""&&(d.from=a.getPropertyValue(d.prop).trim()||"0");}function L(){for(let a of E)e.style.setProperty(a.prop,String(a.to));}let re=new Map;for(let a of [...E.map(d=>d.prop),zt])re.set(a,e.style.getPropertyValue(a));function we(){for(let[a,d]of re)d?e.style.setProperty(a,d):e.style.removeProperty(a);}if(P)return L(),j?.(),{...r,destroy:we,getProgress:()=>1};te();let ge=typeof i=="string"?rt(i):null;function ye(){if(!T||!Sr()||!ge||m!=="y"||M||x!==e||u||l!==1||$e||j||ae||ee||U||D||q!==false||(s.start??"top bottom").trim()!=="top bottom"||(s.end??"bottom top").trim()!=="bottom top")return false;for(let a of E)if(!vr.has(a.prop))return false;return true}function R(){let a=`ssd-a-${++Er}`,d=E.map(N=>`${N.prop}:${N.from}`).join(";"),V=E.map(N=>`${N.prop}:${N.to}`).join(";"),fe=document.createElement("style");fe.setAttribute("data-ssd-animate",""),fe.textContent=`@keyframes ${a}{from{${d}}to{${V}}}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ge};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(fe),e.classList.add(a);let H=()=>m==="x"?window.scrollX:window.scrollY,se=()=>m==="x"?window.innerWidth:window.innerHeight,Ce=()=>{let N=e.getBoundingClientRect();return Le({top:N.top,height:N.height},H(),se(),b,C)};Oe(e,{type:"animate",getProgress:()=>K.getProgress(),getTrigger:Ce});let K={refresh(){},destroy(){e.classList.remove(a),fe.remove(),e.style.animationPlayState="",we(),Ie(e);},replay(){e.classList.remove(a),e.offsetWidth,e.classList.add(a);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(N){let xe=Math.min(1,Math.max(0,N));e.classList.remove(a);for(let Me of E)e.style.setProperty(Me.prop,Rt(Me.from,Me.to,xe));},getProgress(){let{tStart:N,tEnd:xe}=Ce();return k(Z(H(),N,xe,l))}};return K}if(ye())return R();let $=0,f=0,p=0,O=false,W=false,Ee=-1,w=0,z=false,le=NaN,He=-1,Se=0,Te=()=>M?m==="x"?M.scrollLeft:M.scrollTop:m==="x"?window.scrollX:window.scrollY,ce=()=>M?m==="x"?M.clientWidth:M.clientHeight:m==="x"?window.innerWidth:window.innerHeight,Y=x===e?E:[],ne=false;function oe(){let a=e.style,d=Y.map(se=>a.getPropertyValue(se.prop)),V=a.transition;Y.length&&(a.transition="none"),Y.forEach(se=>a.setProperty(se.prop,re.get(se.prop)??""));let fe=tt(x,M,m);Y.forEach((se,Ce)=>a.setProperty(se.prop,d[Ce])),Y.length&&(e.offsetWidth,a.transition=V);let H=Le(fe,fe.scroll,ce(),b,C);ne&&Math.abs(H.tStart-$)<1&&Math.abs(H.tEnd-f)<1||(ne=true,$=H.tStart,f=H.tEnd);}function X(a){e.style.setProperty(zt,String(a));for(let d of E)e.style.setProperty(d.prop,Rt(d.from,d.to,a));$e?.(a);}function Ne(a){if(isNaN(le)){le=a;return}le<=0&&a>0?ae?.():le>0&&a<=0&&D?.(),le<1&&a>=1?ee?.():le>=1&&a<1&&U?.(),le=a;}function B(){if(!O||W)return;let a=performance.now(),d=Te(),V=l;if(q!==false){let se=a-Se,Ce=se>0?Math.abs(d-(He<0?d:He))/se:0;V=l*Math.max(.2,1+Ce*(typeof q=="number"?q:1)*.04);}He=d,Se=a;let fe=f===$?0:(d-$)/(f-$);Ne(fe);let H=k(Z(d,$,f,V));u&&(Ee=Math.max(Ee,H),H=Ee),w=H,X(H),H>=1&&!z?(z=true,j?.()):H<1&&!u&&(z=false),p=requestAnimationFrame(B);}oe(),f===$&&be("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let a=k(Z(Te(),$,f,l));u&&a>0&&(Ee=a),w=a,X(a);}let I=new IntersectionObserver(a=>{a.forEach(d=>{O=d.isIntersecting,O&&!W?p=requestAnimationFrame(B):cancelAnimationFrame(p);});},{root:M??null}),ue;function me(){clearTimeout(ue),ue=setTimeout(oe,150);}window.addEventListener("resize",me),window.addEventListener("orientationchange",me);let Pe=De([x],me);return I.observe(e),Oe(e,{type:"animate",getProgress:()=>w,getTrigger:()=>({tStart:$,tEnd:f})}),{destroy(){cancelAnimationFrame(p),I.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),Pe(),clearTimeout(ue),we(),Ie(e);},replay(){Ee=-1,z=false,w=0,W=false,X(0);},pause(){W=true,cancelAnimationFrame(p);},resume(){W&&(W=false,O&&(p=requestAnimationFrame(B)));},seek(a){let d=Math.min(1,Math.max(0,a));w=d,Ee=d,W=true,cancelAnimationFrame(p),X(d);},getProgress(){return w},refresh(){oe();}}}var ft={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function _t(e,n){if(typeof window>"u")return ft;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return be("scrollCounter: element not found:",e),ft;let t=r,{from:s=0,to:i,format:l,easing:u="ease-out",trigger:m={},once:g=true,decimals:T,onComplete:q}=n,A=T!==void 0?f=>f.toFixed(T):l??(f=>String(Math.round(f))),J=typeof u=="function"?u:ie[u]??ie["ease-out"],$e=he(m.start??"top 80%"),j=he(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=A(i),q?.(),ft;let ee=0,U=0,D=false,P=0,k=false,b=false,C=-1,x=0,M=false,E=()=>window.scrollY,te=()=>window.innerHeight;function L(){let f=t.getBoundingClientRect(),p=Le({top:f.top,height:f.height},E(),te(),$e,j);D&&Math.abs(p.tStart-ee)<1&&Math.abs(p.tEnd-U)<1||(D=true,ee=p.tStart,U=p.tEnd);}function re(f){t.textContent=A(s+(i-s)*f),t.style.setProperty("--scroll-draw-progress",String(f));}function we(){if(!k||b)return;let f=J(Z(E(),ee,U,1));g&&(C=Math.max(C,f),f=C),x=f,re(f),f>=1&&!M?(M=true,q?.()):f<1&&!g&&(M=false),P=requestAnimationFrame(we);}L();{let f=J(Z(E(),ee,U,1));g&&f>0&&(C=f),x=f,re(f);}let ge=new IntersectionObserver(f=>{f.forEach(p=>{k=p.isIntersecting,k&&!b?P=requestAnimationFrame(we):cancelAnimationFrame(P);});}),ye;function R(){clearTimeout(ye),ye=setTimeout(L,150);}window.addEventListener("resize",R),window.addEventListener("orientationchange",R);let $=De([t],R);return ge.observe(t),Oe(t,{type:"counter",getProgress:()=>x,getTrigger:()=>({tStart:ee,tEnd:U})}),{destroy(){cancelAnimationFrame(P),ge.disconnect(),window.removeEventListener("resize",R),window.removeEventListener("orientationchange",R),$(),clearTimeout(ye),Ie(t);},replay(){C=-1,M=false,x=0,b=false,re(0);},pause(){b=true,cancelAnimationFrame(P);},resume(){b&&(b=false,k&&(P=requestAnimationFrame(we)));},seek(f){let p=Math.min(1,Math.max(0,f));x=p,C=p,b=true,cancelAnimationFrame(P),re(p);},getProgress(){return x}}}var qt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Wt(e,n={}){if(typeof window>"u")return qt;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return be("scrollVideo: <video> element not found:",e),qt;let t=r,{trigger:s={},easing:i="linear",once:l=false,axis:u="y",preload:m="auto",triggerElement:g,onReady:T,onComplete:q,onProgress:A}=n,J=g??t,$e=window.matchMedia("(prefers-reduced-motion: reduce)").matches,j=typeof i=="function"?i:ie[i]??ie.linear,ae=he(s.start??"top top"),ee=he(s.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let U=n.from??0,D=n.to,P=0,k=0,b=0,C=false,x=false,M=-1,E=0,te=false,L=false,re=()=>u==="x"?window.scrollX:window.scrollY,we=()=>u==="x"?window.innerWidth:window.innerHeight;function ge(){let w=J.getBoundingClientRect(),z=u==="x"?w.left:w.top,le=u==="x"?w.width:w.height,He=Le({top:z,height:le},re(),we(),ae,ee);P=He.tStart,k=He.tEnd,L&&k===P&&be("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",t);}let ye=NaN;function R(w){if(!L)return;let z=D??t.duration??0,le=U+(z-U)*w;le!==ye&&(ye=le,t.currentTime=le),t.style.setProperty("--scroll-draw-progress",String(w)),A?.(w);}function $(){if(!C||x||!L||$e)return;let w=j(Z(re(),P,k,1));l&&(M=Math.max(M,w),w=M),E=w,R(w),w>=1&&!te?(te=true,q?.()):w<1&&!l&&(te=false),b=requestAnimationFrame($);}function f(){if(L=true,D===void 0&&(D=t.duration),$e){R(1),T?.();return}ge(),T?.(),C&&!x&&(b=requestAnimationFrame($));}t.readyState>=1?f():t.addEventListener("loadedmetadata",f,{once:true}),L||ge();let p=new IntersectionObserver(w=>{w.forEach(z=>{C=z.isIntersecting,C&&!x&&L?b=requestAnimationFrame($):cancelAnimationFrame(b);});}),O;function W(){clearTimeout(O),O=setTimeout(ge,150);}window.addEventListener("resize",W),window.addEventListener("orientationchange",W);let Ee=De([J],W);return p.observe(t),Oe(t,{type:"video",getProgress:()=>E,getTrigger:()=>({tStart:P,tEnd:k})}),{destroy(){cancelAnimationFrame(b),p.disconnect(),t.removeEventListener("loadedmetadata",f),window.removeEventListener("resize",W),window.removeEventListener("orientationchange",W),Ee(),clearTimeout(O),Ie(t);},replay(){M=-1,te=false,E=0,x=false,ye=NaN,R(0);},pause(){x=true,cancelAnimationFrame(b);},resume(){x&&(x=false,C&&L&&(b=requestAnimationFrame($)));},seek(w){let z=Math.min(1,Math.max(0,w));E=z,M=z,x=true,cancelAnimationFrame(b),ye=NaN,R(z);},getProgress(){return E}}}function jt(e){let n=e.textContent??"";return e.textContent="",n.split(/(\s+)/).filter(Boolean).map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(r)?(t.textContent=r,t.style.whiteSpace="pre"):(t.textContent=r,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(r)?null:t}).filter(r=>r!==null)}function Tr(e){let n=e.textContent??"";return e.textContent="",n.split("").map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=r,r===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),r===" "?null:t}).filter(r=>r!==null)}function Bt(e){let n=jt(e),r=new Map;for(let i of n){let l=i.offsetTop;r.has(l)||r.set(l,[]),r.get(l).push(i);}let t=[],s=Array.from(r.keys()).sort((i,l)=>i-l);for(let i of s){let l=r.get(i),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",l.forEach((m,g)=>{let T=m.nextElementSibling;u.appendChild(m),g<l.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((i,l)=>{e.appendChild(i),l<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function xr(e,n,r,t){if(r<=1||t===0)return e;let s=(r-1)*t,i=n*t,l=i+(1-s);return l<=i?e>=i?1:0:Math.min(1,Math.max(0,(e-i)/(l-i)))}function Mr(e,n){let r=[];if(n?.y!==void 0&&r.push(`translateY(${n.y*(1-e)}px)`),n?.x!==void 0&&r.push(`translateX(${n.x*(1-e)}px)`),n?.rotate!==void 0&&r.push(`rotate(${n.rotate*(1-e)}deg)`),n?.scale!==void 0){let t=n.scale+(1-n.scale)*e;r.push(`scale(${t})`);}return r.join(" ")||""}var Gt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ut(e,n={}){if(typeof window>"u")return Gt;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return be("scrollText: element not found:",e),Gt;let t=r,{split:s="words",stagger:i=.04,easing:l="ease-out",from:u={opacity:0,y:24},trigger:m={},once:g=true,onComplete:T}=n,q=window.matchMedia("(prefers-reduced-motion: reduce)").matches,A=typeof l=="function"?l:ie[l]??ie["ease-out"],J=he(m.start??"top 85%"),$e=he(m.end??"top 40%"),j=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let ae;s==="chars"?ae=Tr(t):s==="lines"?ae=Bt(t):ae=jt(t);let ee=ae.length;function U(p,O){u?.opacity!==void 0&&(p.style.opacity=String(u.opacity+(1-u.opacity)*O));let W=Mr(O,u);W&&(p.style.transform=W);}function D(p){t.style.setProperty("--scroll-draw-progress",String(p)),ae.forEach((O,W)=>{let Ee=A(xr(p,W,ee,i));U(O,Ee);});}if(q)return D(1),T?.(),{destroy(){t.innerHTML=j,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};D(0);let P=0,k=0,b=0,C=false,x=false,M=-1,E=0,te=false,L=()=>window.scrollY,re=()=>window.innerHeight;function we(){let p=t.getBoundingClientRect(),O=Le({top:p.top,height:p.height},L(),re(),J,$e);P=O.tStart,k=O.tEnd;}function ge(){if(!C||x)return;let p=Z(L(),P,k,1);g&&(M=Math.max(M,p),p=M),E=p,D(p),p>=1&&!te?(te=true,T?.()):p<1&&!g&&(te=false),b=requestAnimationFrame(ge);}we();let ye=new IntersectionObserver(p=>{p.forEach(O=>{C=O.isIntersecting,C&&!x?b=requestAnimationFrame(ge):cancelAnimationFrame(b);});}),R;function $(){clearTimeout(R),R=setTimeout(()=>{if(s==="lines"){let p=E;t.innerHTML=j,t.setAttribute("aria-label",t.textContent??""),ae=Bt(t),D(p);}we();},150);}window.addEventListener("resize",$),window.addEventListener("orientationchange",$);let f=De([t],$);return ye.observe(t),Oe(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:P,tEnd:k})}),{destroy(){cancelAnimationFrame(b),ye.disconnect(),window.removeEventListener("resize",$),window.removeEventListener("orientationchange",$),f(),clearTimeout(R),t.innerHTML=j,t.removeAttribute("aria-label"),Ie(t);},replay(){M=-1,te=false,E=0,x=false,D(0);},pause(){x=true,cancelAnimationFrame(b);},resume(){x&&(x=false,C&&(b=requestAnimationFrame(ge)));},seek(p){let O=Math.min(1,Math.max(0,p));E=O,M=O,x=true,cancelAnimationFrame(b),D(O);},getProgress(){return E}}}var _e=class{constructor(n){this.create=n;this.instance=null;this.el=null;this.key="";}init(n,r){return this.destroy(),this.el=n,this.latest=r,this.key=mt(r),this.instance=this.create(n,Ht(r,()=>this.latest)),this}update(n){return this.el?mt(n)!==this.key?this.init(this.el,n):(this.latest=n,this):this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(n){return this.instance?.seek(n),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=this.el=null,this}},Yt=class extends _e{constructor(){super(Ft);}init(n,r={}){return super.init(n,r)}},Xt=class extends _e{constructor(){super(Vt);}},Kt=class extends _e{constructor(){super(_t);}},Qt=class extends _e{constructor(){super(Wt);}init(n,r={}){return super.init(n,r)}},Zt=class extends _e{constructor(){super(Ut);}init(n,r={}){return super.init(n,r)}};exports.EngineRef=_e;exports.ScrollAnimateRef=Xt;exports.ScrollCounterRef=Kt;exports.ScrollDrawRef=Yt;exports.ScrollTextRef=Zt;exports.ScrollVideoRef=Qt;
|
package/dist/angular/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as ScrollDrawInstance, a as ScrollDrawOptions } from '../types-
|
|
2
|
-
import { S as ScrollAnimateOptions } from '../engine-
|
|
3
|
-
import { S as ScrollCounterOptions } from '../index-
|
|
1
|
+
import { S as ScrollDrawInstance, a as ScrollDrawOptions } from '../types-B0YM4nQP.mjs';
|
|
2
|
+
import { S as ScrollAnimateOptions } from '../engine-CvzRSkuk.mjs';
|
|
3
|
+
import { S as ScrollCounterOptions } from '../index-BlIjovDN.mjs';
|
|
4
4
|
import { ScrollVideoOptions } from '../video/index.mjs';
|
|
5
5
|
import { ScrollTextOptions } from '../text/index.mjs';
|
|
6
6
|
|
package/dist/angular/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as ScrollDrawInstance, a as ScrollDrawOptions } from '../types-
|
|
2
|
-
import { S as ScrollAnimateOptions } from '../engine-
|
|
3
|
-
import { S as ScrollCounterOptions } from '../index-
|
|
1
|
+
import { S as ScrollDrawInstance, a as ScrollDrawOptions } from '../types-B0YM4nQP.js';
|
|
2
|
+
import { S as ScrollAnimateOptions } from '../engine-C9LKls__.js';
|
|
3
|
+
import { S as ScrollCounterOptions } from '../index-DZjvLJcU.js';
|
|
4
4
|
import { ScrollVideoOptions } from '../video/index.js';
|
|
5
5
|
import { ScrollTextOptions } from '../text/index.js';
|
|
6
6
|
|
package/dist/angular/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a,b}from'../chunk-XSVTHCLO.mjs';import {a as a$3}from'../chunk-
|
|
1
|
+
import {a,b}from'../chunk-XSVTHCLO.mjs';import {a as a$3}from'../chunk-7SBTYJGH.mjs';import {a as a$4}from'../chunk-I45LCJUP.mjs';import {a as a$2}from'../chunk-KHQ7OGQK.mjs';import {a as a$1}from'../chunk-BFX2CSQ3.mjs';import {b as b$1}from'../chunk-WHFRS7IP.mjs';import'../chunk-OJFWQ6CU.mjs';import'../chunk-YWKPTYSG.mjs';import'../chunk-YZV4Z3EQ.mjs';import'../chunk-A4JCC3QQ.mjs';import'../chunk-DM6EDKWH.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-BCV4RAIX.mjs';import'../chunk-LFSU6LR3.mjs';var r=class{constructor(t){this.create=t;this.instance=null;this.el=null;this.key="";}init(t,e){return this.destroy(),this.el=t,this.latest=e,this.key=a(e),this.instance=this.create(t,b(e,()=>this.latest)),this}update(t){return this.el?a(t)!==this.key?this.init(this.el,t):(this.latest=t,this):this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(t){return this.instance?.seek(t),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=this.el=null,this}},u=class extends r{constructor(){super(b$1);}init(t,e={}){return super.init(t,e)}},h=class extends r{constructor(){super(a$1);}},m=class extends r{constructor(){super(a$2);}},O=class extends r{constructor(){super(a$3);}init(t,e={}){return super.init(t,e)}},d=class extends r{constructor(){super(a$4);}init(t,e={}){return super.init(t,e)}};export{r as EngineRef,h as ScrollAnimateRef,m as ScrollCounterRef,u as ScrollDrawRef,d as ScrollTextRef,O as ScrollVideoRef};
|
package/dist/astro/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';function
|
|
2
|
-
<div style="position:absolute;${
|
|
3
|
-
<div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",l,{passive:true}),l(),{el:t,destroy(){window.removeEventListener("scroll",l),t.remove();}}}var $t=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,Lt=/[MmLlHhVvCcSsQqTtAaZz]/g;function Zt(e,n,r){if(!Ge)return;let t=(e.match(Lt)??[]).join("").toUpperCase(),l=(n.match(Lt)??[]).join("").toUpperCase(),s=(e.match($t)??[]).length,c=(n.match($t)??[]).length;if(t!==l){K(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${l||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,r);return}s!==c&&K(`morphTo: coordinate count differs (${s} \u2192 ${c}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,r);}function at(e,n,r){let t=(n.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),l=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let c=parseFloat(s),u=t[l++]??c;return String(+(c+(u-c)*r).toFixed(4))})}function tt(e,n={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:r,...t}=n,l=r?{...St[r],...t}:t,s=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:c="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:d="linear",trigger:v={},stagger:_=0,direction:T="forward",once:ne=false,debug:Oe=false,axis:U="y",scrollContainer:oe,autoReverse:se=false,delay:ee=0,strokeColor:x,strokeWidth:W,fillOpacity:C,waypoints:A,velocityScale:R=false,threshold:B=0,rootMargin:P="0px",repeat:M=0,repeatDelay:ce=0,morphTo:D,clip:fe,autoplay:ve=false,duration:pe=1e3,native:Se=true,onProgress:g,onStart:S,onComplete:y,onEnter:L,onLeave:de,onEnterBack:ge,onLeaveBack:Ce}=l,te=fe===true?"left":typeof fe=="string"?fe:false,ye=typeof d=="function"?d:le[d]??le.linear,xe=we(v.start??"top bottom"),_e=we(v.end??"bottom top"),ue=typeof oe=="string"?document.querySelector(oe):oe??null,me=Array.isArray(x)?x[0]:null,Y=Array.isArray(x)?x[1]:typeof x=="string"?x:null,X=Array.isArray(W)?W[0]:null,z=Array.isArray(W)?W[1]:typeof W=="number"?W:null,re=Array.isArray(C)?C[0]:null,G=Array.isArray(C)?C[1]:typeof C=="number"?C:null;function Ae(o){let a=o*100;switch(te){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let O=te?[]:Array.from(e.querySelectorAll(c)),E=[],i=[],f=0,ie=0,k=false,F=false,N=0,Ee=false,he=-1,j=[],Fe=-1,V=false,Me=0,Pe=0,Re,rt=null;function ct(){rt?.destroy(),rt=null;}let Ne=new Set,ut=NaN,He=true,Ue=-1,mt=performance.now(),ze=NaN;function nt(){return ue?U==="x"?ue.scrollLeft:ue.scrollTop:U==="x"?window.scrollX:window.scrollY}function ft(){return ue?U==="x"?ue.clientWidth:ue.clientHeight:U==="x"?window.innerWidth:window.innerHeight}function pt(){let o=Ke(e,ue,U);return Le(o,o.scroll,ft(),xe,_e)}function dt(){(({tStart:f,tEnd:ie}=pt())),Oe&&Ge&&(ct(),rt=Qt(f,ie,U));}function ot(o,a=pt){ke(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:a});let b=o.destroy;return o.destroy=()=>{b.call(o),Ie(e);},o}function Ht(o,a){if(e.style.setProperty("--scroll-draw-progress",String(o)),te){let b=a==="reverse"?1-o:o;e.style.clipPath=Ae(b);return}O.forEach((b,J)=>{b.style.strokeDashoffset=a==="reverse"?`${E[J]*o}`:`${E[J]*(1-o)}`,m&&(b.style.opacity=a==="reverse"?`${1-o}`:`${o}`),me&&Y?b.style.stroke=qe(me,Y,o):Y&&(b.style.stroke=Y),X!==null&&z!==null?b.style.strokeWidth=`${X+(z-X)*o}`:z!==null&&(b.style.strokeWidth=`${z}`),re!==null&&G!==null?b.style.fillOpacity=`${re+(G-re)*o}`:G!==null&&(b.style.fillOpacity=`${G}`),D&&b.tagName.toLowerCase()==="path"&&i[J]&&b.setAttribute("d",at(i[J],D,o));});}function Ye(){if(e.style.setProperty("--scroll-draw-progress","0"),te){e.style.clipPath=Ae(0);return}O.forEach((o,a)=>{o.style.strokeDasharray=`${E[a]}`,o.style.strokeDashoffset=T==="reverse"?"0":`${E[a]}`,m?o.style.opacity=T==="reverse"?"1":"0":o.style.opacity="",me&&(o.style.stroke=me),X!==null&&(o.style.strokeWidth=`${X}`),re!==null&&(o.style.fillOpacity=`${re}`),D&&o.tagName.toLowerCase()==="path"&&i[a]&&o.setAttribute("d",i[a]);});}if(O.forEach(o=>{Jt(o);let a=Ve(o);E.push(a);let b=o.tagName.toLowerCase()==="path";b?i.push(o.getAttribute("d")??""):i.push(""),D&&(b?Zt(i[i.length-1],D,o):K(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),s?(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=T==="reverse"?`${a}`:"0",m&&(o.style.opacity="1"),Y&&(o.style.stroke=Y),z!==null&&(o.style.strokeWidth=`${z}`),G!==null&&(o.style.fillOpacity=`${G}`),D&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",D)):(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=T==="reverse"?"0":`${a}`,m?o.style.opacity=T==="reverse"?"1":"0":o.style.opacity="",me&&(o.style.stroke=me),X!==null&&(o.style.strokeWidth=`${X}`),re!==null&&(o.style.fillOpacity=`${re}`));}),te){if(s)return e.style.clipPath=Ae(1),y?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=Ae(0);}else if(s)return y?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let gt=typeof d=="string"?et(d):null;function _t(){return !(Se===false||!Xt()||!O.length||!gt||te||U!=="y"||ue||u!==1||_!==0||ne||se||R!==false||D||A||M||ee>0||g||S||y||L||de||ge||Ce||x!=null||W!=null||C!=null||(v.start??"top bottom").trim()!=="top bottom"||(v.end??"bottom top").trim()!=="bottom top")}function zt(){let o=++Yt,a=`svg-scroll-draw-${o}`,b=`svg-scroll-draw-host-${o}`,J=`--svg-scroll-draw-${o}`,De=T==="reverse"?"0":"var(--ssd-len)",$e=T==="reverse"?"var(--ssd-len)":"0",Te=`stroke-dashoffset:${De};`,w=`stroke-dashoffset:${$e};`;m&&(Te+=`opacity:${T==="reverse"?1:0};`,w+=`opacity:${T==="reverse"?0:1};`);let $=document.createElement("style");$.setAttribute("data-svg-scroll-draw",""),$.textContent=`@keyframes ${a}{from{${Te}}to{${w}}}.${b}{view-timeline-name:${J};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${gt};animation-fill-mode:both;animation-timeline:${J};animation-range:cover 0% cover 100%;}`,document.head.appendChild($),e.classList.add(b);function Q(p,q){p.style.setProperty("--ssd-len",String(E[q])),p.style.strokeDasharray=`${E[q]}`,p.style.strokeDashoffset="",p.style.opacity="",p.style.animationPlayState="",p.classList.add(a);}O.forEach(Q);let h=false,I=-1;function H(){if(I>=0)return I;let p=e.getBoundingClientRect(),{tStart:q,tEnd:be}=Le({top:p.top,height:p.height},nt(),ft(),xe,_e);return ye(Z(nt(),q,be,u))}return {destroy(){e.classList.remove(b),O.forEach(p=>{p.classList.remove(a),p.style.removeProperty("--ssd-len"),p.style.animationPlayState="";}),$.remove();},replay(){h=false,I=-1,O.forEach(Q);},pause(){h=true,O.forEach(p=>{p.style.animationPlayState="paused";});},resume(){h&&(h=false,O.forEach(p=>{p.style.animationPlayState="running";}));},seek(p){let q=Math.min(1,Math.max(0,p));I=q,h=true,O.forEach((be,ae)=>{be.classList.remove(a),be.style.strokeDashoffset=T==="reverse"?`${E[ae]*q}`:`${E[ae]*(1-q)}`,m&&(be.style.opacity=T==="reverse"?`${1-q}`:`${q}`);});},getProgress(){return H()},refresh(){O.forEach((p,q)=>{E[q]=Ve(p),p.style.setProperty("--ssd-len",String(E[q])),p.style.strokeDasharray=`${E[q]}`;});}}}if(_t())return ot(zt());function Vt(){let o=Math.max(1,pe),a=0,b=0,J=false;function De(h){let I=true;if(te){let H=Math.min(1,Math.max(0,h/o)),p=ye(H);Me=p,e.style.setProperty("--scroll-draw-progress",String(p)),e.style.clipPath=Ae(T==="reverse"?1-p:p),g?.(p),H<1&&(I=false);}else O.forEach((H,p)=>{let q=p*_*o,be=Math.min(1,Math.max(0,(h-q)/o)),ae=ye(be);H.style.strokeDashoffset=T==="reverse"?`${E[p]*ae}`:`${E[p]*(1-ae)}`,m&&(H.style.opacity=T==="reverse"?`${1-ae}`:`${ae}`),me&&Y?H.style.stroke=qe(me,Y,ae):Y&&(H.style.stroke=Y),X!==null&&z!==null?H.style.strokeWidth=`${X+(z-X)*ae}`:z!==null&&(H.style.strokeWidth=`${z}`),re!==null&&G!==null?H.style.fillOpacity=`${re+(G-re)*ae}`:G!==null&&(H.style.fillOpacity=`${G}`),D&&H.tagName.toLowerCase()==="path"&&i[p]&&H.setAttribute("d",at(i[p],D,ae)),p===0&&(Me=ae,g?.(ae),e.style.setProperty("--scroll-draw-progress",String(ae))),be<1&&(I=false);});if(A){let H=Math.min(1,Math.max(0,h/o)),p=ye(H);for(let q in A){let be=parseFloat(q);p>=be&&!Ne.has(be)&&(Ne.add(be),A[q]?.());}}return I}function $e(h){if(V)return;let I=h-a;F||(F=true,S?.());let H=De(I);if(H&&!k){k=true,De(o*(1+Math.max(0,O.length-1)*_)),y?.(),Pe<(M==="infinite"?1/0:M??0)&&(Pe++,Re=setTimeout(()=>{a=performance.now(),F=false,k=false,Ne.clear(),Ye(),N=requestAnimationFrame($e);},ce));return}H||(N=requestAnimationFrame($e));}function Te(){cancelAnimationFrame(N),clearTimeout(Re),a=performance.now(),b=0,V=false,F=false,k=false,Pe=0,J=true,Me=0,Ne.clear(),Ye(),N=requestAnimationFrame($e);}let w=new IntersectionObserver(h=>{h.forEach(I=>{I.isIntersecting&&!(ne&&k)?Te():!I.isIntersecting&&!ne&&!k&&(cancelAnimationFrame(N),clearTimeout(Re),J=false);});},{root:ue??null,threshold:B,rootMargin:P}),$;function Q(){clearTimeout($),$=setTimeout(()=>{O.forEach((h,I)=>{E[I]=Ve(h),h.style.strokeDasharray=`${E[I]}`;});},150);}return window.addEventListener("resize",Q),window.addEventListener("orientationchange",Q),ee>0?setTimeout(()=>w.observe(e),ee):w.observe(e),{destroy(){cancelAnimationFrame(N),clearTimeout(Re),w.disconnect(),window.removeEventListener("resize",Q),window.removeEventListener("orientationchange",Q),clearTimeout($);},replay(){Pe=0,Te();},pause(){V||!J||(V=true,b=performance.now()-a,cancelAnimationFrame(N));},resume(){V&&(V=false,J=true,a=performance.now()-b,N=requestAnimationFrame($e));},seek(h){let I=Math.min(1,Math.max(0,h));Me=I,V=true,b=I*o,a=performance.now()-b,cancelAnimationFrame(N),De(b);},getProgress(){return Me},refresh(){clearTimeout($),O.forEach((h,I)=>{E[I]=Ve(h),h.style.strokeDasharray=`${E[I]}`;});}}}if(ve)return ot(Vt());dt();function Xe(){if(!Ee||V)return;let o=performance.now(),a=nt();if(!He&&R===false&&a===ut){N=requestAnimationFrame(Xe);return}He=false,ut=a;let b=u;if(R!==false){let w=o-mt,$=w>0?Math.abs(a-(Ue<0?a:Ue))/w:0;b=u*Math.max(.2,1+$*(typeof R=="number"?R:1)*.04);}Ue=a,mt=o;let J=se?Fe===-1||a>=Fe?"forward":"reverse":T;Fe=a;let De=ie-f,$e=true,Te=De===0?0:(a-f)/De;if(isNaN(ze)||(ze<=0&&Te>0?L?.():ze>0&&Te<=0&&Ce?.(),ze<1&&Te>=1?de?.():ze>=1&&Te<1&&ge?.()),ze=Te,te){let w=ye(Z(a,f,ie,b));ne&&!se&&(he=Math.max(he,w),w=he),Me=w,e.style.setProperty("--scroll-draw-progress",String(w));let $=J==="reverse"?1-w:w;e.style.clipPath=Ae($),g?.(w),!F&&Z(a,f,ie,b)>0&&(F=true,S?.()),w>=1&&!k?(k=true,y?.(),Pe<(M==="infinite"?1/0:M??0)&&(Pe++,Re=setTimeout(()=>{he=-1,F=false,k=false,e.style.clipPath=Ae(0);},ce))):w<1&&!ne&&(k=false),N=requestAnimationFrame(Xe);return}if(O.forEach((w,$)=>{let Q=$*_*De,h=ye(Z(a,f+Q,ie+Q,b));ne&&!se&&(h=j[$]=Math.max(j[$]??he,h)),Me=h,w.style.strokeDashoffset=J==="reverse"?`${E[$]*h}`:`${E[$]*(1-h)}`,m&&(w.style.opacity=J==="reverse"?`${1-h}`:`${h}`),me&&Y?w.style.stroke=qe(me,Y,h):Y&&(w.style.stroke=Y),X!==null&&z!==null?w.style.strokeWidth=`${X+(z-X)*h}`:z!==null&&(w.style.strokeWidth=`${z}`),re!==null&&G!==null?w.style.fillOpacity=`${re+(G-re)*h}`:G!==null&&(w.style.fillOpacity=`${G}`),D&&w.tagName.toLowerCase()==="path"&&i[$]&&w.setAttribute("d",at(i[$],D,h)),$===0&&(g?.(h),e.style.setProperty("--scroll-draw-progress",String(h))),h<1&&($e=false);}),A){let w=ye(Z(a,f,ie,b));for(let $ in A){let Q=parseFloat($);w>=Q&&!Ne.has(Q)&&(Ne.add(Q),A[$]?.());}}!F&&Z(a,f,ie,b)>0&&(F=true,S?.()),$e&&!k?(k=true,y?.(),Pe<(M==="infinite"?1/0:M??0)&&(Pe++,Re=setTimeout(()=>{he=-1,j=[],F=false,k=false,Ne.clear(),Ye(),He=true;},ce))):!$e&&!ne&&(k=false),N=requestAnimationFrame(Xe);}let st=false;function Je(){st||(st=true,N=requestAnimationFrame(function(){Xe();}));}function Qe(){st=false,cancelAnimationFrame(N);}let it=new IntersectionObserver(o=>{o.forEach(a=>{Ee=a.isIntersecting,Ee&&!V?(He=true,Je()):Qe();});},{root:ue??null,threshold:B,rootMargin:P});function yt(){O.forEach((o,a)=>{E[a]=Ve(o),o.style.strokeDasharray=`${E[a]}`;}),dt(),He=true;}let Ze;function We(){clearTimeout(Ze),Ze=setTimeout(yt,150);}window.addEventListener("resize",We),window.addEventListener("orientationchange",We);let Be;return typeof ResizeObserver<"u"&&(Be=new ResizeObserver(()=>We()),Be.observe(document.body),Be.observe(document.documentElement),Be.observe(e)),ee>0?setTimeout(()=>it.observe(e),ee):it.observe(e),ot({destroy(){cancelAnimationFrame(N),clearTimeout(Re),Qe(),it.disconnect(),Be?.disconnect(),window.removeEventListener("resize",We),window.removeEventListener("orientationchange",We),clearTimeout(Ze),ct();},replay(){he=-1,j=[],Fe=-1,Ue=-1,F=false,k=false,Pe=0,V=false,Me=0,Ne.clear(),clearTimeout(Re),Ye(),He=true,Ee&&Je();},pause(){V=true,Qe();},resume(){V&&(V=false,He=true,Ee&&Je());},seek(o){let a=Math.min(1,Math.max(0,o));Me=a,he=a,j=[],V=true,Qe(),Ht(a,T),He=true;},getProgress(){return Me},refresh(){clearTimeout(Ze),yt(),Ee&&!V&&Je();}},()=>({tStart:f,tEnd:ie}))}function Kt(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Ct(e){let n=[],r=/([\w]+)\(([^)]*)\)/g,t;for(;(t=r.exec(e))!==null;){let l=[],s=[],c=t[2].trim();if(c)for(let u of c.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);l.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}n.push({fn:t[1],nums:l,units:s});}return n}function er(e,n,r){let t=Ct(e),l=Ct(n);return t.length===0||t.length!==l.length?r<1?e:n:t.map((s,c)=>{let u=l[c];return s.fn!==u.fn||s.nums.length!==u.nums.length?r<1?`${s.fn}(${s.nums.map((m,d)=>`${m}${s.units[d]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,d)=>`${m}${u.units[d]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,d)=>`${m+(u.nums[d]-m)*r}${s.units[d]}`).join(", ")})`}).join(" ")}function Pt(e,n,r){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*r);let t=String(e),l=String(n);if(Kt(t))return qe(t,l,r);if(t.includes("("))return er(t,l,r);let s=t.match(/^([-+]?[\d.]+)(.*)$/),c=l.match(/^([-+]?[\d.]+)(.*)$/);if(s&&c){let u=parseFloat(s[1]),m=parseFloat(c[1]);return `${u+(m-u)*r}${s[2]||c[2]}`}return r<1?t:l}function tr(e){return e.replace(/([A-Z])/g,n=>`-${n.toLowerCase()}`)}var rr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),nr=0,Dt="--scroll-draw-progress";function or(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function kt(e,n){let r={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return r;let{props:t,trigger:l={},easing:s="ease-out",speed:c=1,once:u=false,axis:m="y",scrollContainer:d,native:v=true,velocityScale:_=false,respectReducedMotion:T=true,triggerElement:ne,onProgress:Oe,onComplete:U,onEnter:oe,onLeave:se,onEnterBack:ee,onLeaveBack:x}=n,W=T&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,C=typeof s=="function"?s:le[s]??le["ease-out"],A=we(l.start??"top bottom"),R=we(l.end??"bottom top"),B=ne??e,P=typeof d=="string"?document.querySelector(d):d??null,M=Object.entries(t).map(([i,f])=>({prop:tr(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function ce(){let i=window.getComputedStyle(e);for(let f of M)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function D(){for(let i of M)e.style.setProperty(i.prop,String(i.to));}let fe=new Map;for(let i of [...M.map(f=>f.prop),Dt])fe.set(i,e.style.getPropertyValue(i));function ve(){for(let[i,f]of fe)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if(W)return D(),U?.(),{...r,destroy:ve,getProgress:()=>1};ce();let pe=typeof s=="string"?et(s):null;function Se(){if(!v||!or()||!pe||m!=="y"||P||B!==e||u||c!==1||Oe||U||oe||se||ee||x||_!==false||(l.start??"top bottom").trim()!=="top bottom"||(l.end??"bottom top").trim()!=="bottom top")return false;for(let i of M)if(!rr.has(i.prop))return false;return true}function g(){let i=`ssd-a-${++nr}`,f=M.map(j=>`${j.prop}:${j.from}`).join(";"),ie=M.map(j=>`${j.prop}:${j.to}`).join(";"),k=document.createElement("style");k.setAttribute("data-ssd-animate",""),k.textContent=`@keyframes ${i}{from{${f}}to{${ie}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${pe};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(k),e.classList.add(i);let F=()=>m==="x"?window.scrollX:window.scrollY,N=()=>m==="x"?window.innerWidth:window.innerHeight,Ee=()=>{let j=e.getBoundingClientRect();return Le({top:j.top,height:j.height},F(),N(),A,R)};ke(e,{type:"animate",getProgress:()=>he.getProgress(),getTrigger:Ee});let he={destroy(){e.classList.remove(i),k.remove(),e.style.animationPlayState="",ve(),Ie(e);},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(j){let Fe=Math.min(1,Math.max(0,j));e.classList.remove(i);for(let V of M)e.style.setProperty(V.prop,Pt(V.from,V.to,Fe));},getProgress(){let{tStart:j,tEnd:Fe}=Ee();return C(Z(F(),j,Fe,c))}};return he}if(Se())return g();let S=0,y=0,L=0,de=false,ge=false,Ce=-1,te=0,ye=false,xe=NaN,_e=-1,ue=0,me=()=>P?m==="x"?P.scrollLeft:P.scrollTop:m==="x"?window.scrollX:window.scrollY,Y=()=>P?m==="x"?P.clientWidth:P.clientHeight:m==="x"?window.innerWidth:window.innerHeight;function X(){let i=Ke(B,P,m),f=Le(i,i.scroll,Y(),A,R);S=f.tStart,y=f.tEnd;}function z(i){e.style.setProperty(Dt,String(i));for(let f of M)e.style.setProperty(f.prop,Pt(f.from,f.to,i));Oe?.(i);}function re(i){if(isNaN(xe)){xe=i;return}xe<=0&&i>0?oe?.():xe>0&&i<=0&&x?.(),xe<1&&i>=1?se?.():xe>=1&&i<1&&ee?.(),xe=i;}function G(){if(!de||ge)return;let i=performance.now(),f=me(),ie=c;if(_!==false){let N=i-ue,Ee=N>0?Math.abs(f-(_e<0?f:_e))/N:0;ie=c*Math.max(.2,1+Ee*(typeof _=="number"?_:1)*.04);}_e=f,ue=i;let k=y===S?0:(f-S)/(y-S);re(k);let F=C(Z(f,S,y,ie));u&&(Ce=Math.max(Ce,F),F=Ce),te=F,z(F),F>=1&&!ye?(ye=true,U?.()):F<1&&!u&&(ye=false),L=requestAnimationFrame(G);}X(),y===S&&K("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let i=C(Z(me(),S,y,c));u&&i>0&&(Ce=i),te=i,z(i);}let Ae=new IntersectionObserver(i=>{i.forEach(f=>{de=f.isIntersecting,de&&!ge?L=requestAnimationFrame(G):cancelAnimationFrame(L);});},{root:P??null}),O;function E(){clearTimeout(O),O=setTimeout(X,150);}return window.addEventListener("resize",E),window.addEventListener("orientationchange",E),Ae.observe(e),ke(e,{type:"animate",getProgress:()=>te,getTrigger:()=>({tStart:S,tEnd:y})}),{destroy(){cancelAnimationFrame(L),Ae.disconnect(),window.removeEventListener("resize",E),window.removeEventListener("orientationchange",E),clearTimeout(O),ve(),Ie(e);},replay(){Ce=-1,ye=false,te=0,ge=false,z(0);},pause(){ge=true,cancelAnimationFrame(L);},resume(){ge&&(ge=false,de&&(L=requestAnimationFrame(G)));},seek(i){let f=Math.min(1,Math.max(0,i));te=f,Ce=f,ge=true,cancelAnimationFrame(L),z(f);},getProgress(){return te}}}var lt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function It(e,n){if(typeof window>"u")return lt;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return K("scrollCounter: element not found:",e),lt;let t=r,{from:l=0,to:s,format:c,easing:u="ease-out",trigger:m={},once:d=true,decimals:v,onComplete:_}=n,T=v!==void 0?g=>g.toFixed(v):c??(g=>String(Math.round(g))),ne=typeof u=="function"?u:le[u]??le["ease-out"],Oe=we(m.start??"top 80%"),U=we(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=T(s),_?.(),lt;let se=0,ee=0,x=0,W=false,C=false,A=-1,R=0,B=false,P=()=>window.scrollY,M=()=>window.innerHeight;function ce(){let g=t.getBoundingClientRect(),S=Le({top:g.top,height:g.height},P(),M(),Oe,U);se=S.tStart,ee=S.tEnd;}function D(g){t.textContent=T(l+(s-l)*g),t.style.setProperty("--scroll-draw-progress",String(g));}function fe(){if(!W||C)return;let g=ne(Z(P(),se,ee,1));d&&(A=Math.max(A,g),g=A),R=g,D(g),g>=1&&!B?(B=true,_?.()):g<1&&!d&&(B=false),x=requestAnimationFrame(fe);}ce();{let g=ne(Z(P(),se,ee,1));d&&g>0&&(A=g),R=g,D(g);}let ve=new IntersectionObserver(g=>{g.forEach(S=>{W=S.isIntersecting,W&&!C?x=requestAnimationFrame(fe):cancelAnimationFrame(x);});}),pe;function Se(){clearTimeout(pe),pe=setTimeout(ce,150);}return window.addEventListener("resize",Se),window.addEventListener("orientationchange",Se),ve.observe(t),ke(t,{type:"counter",getProgress:()=>R,getTrigger:()=>({tStart:se,tEnd:ee})}),{destroy(){cancelAnimationFrame(x),ve.disconnect(),window.removeEventListener("resize",Se),window.removeEventListener("orientationchange",Se),clearTimeout(pe),Ie(t);},replay(){A=-1,B=false,R=0,C=false,D(0);},pause(){C=true,cancelAnimationFrame(x);},resume(){C&&(C=false,W&&(x=requestAnimationFrame(fe)));},seek(g){let S=Math.min(1,Math.max(0,g));R=S,A=S,C=true,cancelAnimationFrame(x),D(S);},getProgress(){return R}}}function Rt(e){let n=e.textContent??"";return e.textContent="",n.split(/(\s+)/).filter(Boolean).map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(r)?(t.textContent=r,t.style.whiteSpace="pre"):(t.textContent=r,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(r)?null:t}).filter(r=>r!==null)}function sr(e){let n=e.textContent??"";return e.textContent="",n.split("").map(r=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=r,r===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),r===" "?null:t}).filter(r=>r!==null)}function Ot(e){let n=Rt(e),r=new Map;for(let s of n){let c=s.offsetTop;r.has(c)||r.set(c,[]),r.get(c).push(s);}let t=[],l=Array.from(r.keys()).sort((s,c)=>s-c);for(let s of l){let c=r.get(s),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",c.forEach((m,d)=>{let v=m.nextElementSibling;u.appendChild(m),d<c.length-1&&v&&v.style.whiteSpace==="pre"&&u.appendChild(v);}),t.push(u);}return e.textContent="",t.forEach((s,c)=>{e.appendChild(s),c<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function ir(e,n,r,t){if(r<=1||t===0)return e;let l=(r-1)*t,s=n*t,c=s+(1-l);return c<=s?e>=s?1:0:Math.min(1,Math.max(0,(e-s)/(c-s)))}function ar(e,n){let r=[];if(n?.y!==void 0&&r.push(`translateY(${n.y*(1-e)}px)`),n?.x!==void 0&&r.push(`translateX(${n.x*(1-e)}px)`),n?.rotate!==void 0&&r.push(`rotate(${n.rotate*(1-e)}deg)`),n?.scale!==void 0){let t=n.scale+(1-n.scale)*e;r.push(`scale(${t})`);}return r.join(" ")||""}var Ft={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Nt(e,n={}){if(typeof window>"u")return Ft;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return K("scrollText: element not found:",e),Ft;let t=r,{split:l="words",stagger:s=.04,easing:c="ease-out",from:u={opacity:0,y:24},trigger:m={},once:d=true,onComplete:v}=n,_=window.matchMedia("(prefers-reduced-motion: reduce)").matches,T=typeof c=="function"?c:le[c]??le["ease-out"],ne=we(m.start??"top 85%"),Oe=we(m.end??"top 40%"),U=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let oe;l==="chars"?oe=sr(t):l==="lines"?oe=Ot(t):oe=Rt(t);let se=oe.length;function ee(y,L){u?.opacity!==void 0&&(y.style.opacity=String(u.opacity+(1-u.opacity)*L));let de=ar(L,u);de&&(y.style.transform=de);}function x(y){t.style.setProperty("--scroll-draw-progress",String(y)),oe.forEach((L,de)=>{let ge=T(ir(y,de,se,s));ee(L,ge);});}if(_)return x(1),v?.(),{destroy(){t.innerHTML=U,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};x(0);let W=0,C=0,A=0,R=false,B=false,P=-1,M=0,ce=false,D=()=>window.scrollY,fe=()=>window.innerHeight;function ve(){let y=t.getBoundingClientRect(),L=Le({top:y.top,height:y.height},D(),fe(),ne,Oe);W=L.tStart,C=L.tEnd;}function pe(){if(!R||B)return;let y=Z(D(),W,C,1);d&&(P=Math.max(P,y),y=P),M=y,x(y),y>=1&&!ce?(ce=true,v?.()):y<1&&!d&&(ce=false),A=requestAnimationFrame(pe);}ve();let Se=new IntersectionObserver(y=>{y.forEach(L=>{R=L.isIntersecting,R&&!B?A=requestAnimationFrame(pe):cancelAnimationFrame(A);});}),g;function S(){clearTimeout(g),g=setTimeout(()=>{if(l==="lines"){let y=M;t.innerHTML=U,t.setAttribute("aria-label",t.textContent??""),oe=Ot(t),x(y);}ve();},150);}return window.addEventListener("resize",S),window.addEventListener("orientationchange",S),Se.observe(t),ke(t,{type:"text",getProgress:()=>M,getTrigger:()=>({tStart:W,tEnd:C})}),{destroy(){cancelAnimationFrame(A),Se.disconnect(),window.removeEventListener("resize",S),window.removeEventListener("orientationchange",S),clearTimeout(g),t.innerHTML=U,t.removeAttribute("aria-label"),Ie(t);},replay(){P=-1,ce=false,M=0,B=false,x(0);},pause(){B=true,cancelAnimationFrame(A);},resume(){B&&(B=false,R&&(A=requestAnimationFrame(pe)));},seek(y){let L=Math.min(1,Math.max(0,y));M=L,P=L,B=true,cancelAnimationFrame(A),x(L);},getProgress(){return M}}}function lr(e,n){let r={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return r;let t=typeof e=="string"?document.querySelector(e):e;return t?tt(t,n):(K("Container not found:",e),r)}function je(){return typeof document>"u"?null:document}function cr(e=je()){return e?Array.from(e.querySelectorAll("[data-scroll-draw]")).map(n=>{let r={};try{let t=n.dataset.scrollDrawOptions??n.dataset.scrollDrawoptions??"";t&&(r=JSON.parse(t));}catch{}return tt(n,r)}):[]}function ur(e=je()){return e?Array.from(e.querySelectorAll("[data-scroll-animate]")).map(n=>{let r={props:{}};try{let t=n.dataset.scrollAnimateOptions??"";t&&(r=JSON.parse(t));}catch{}return kt(n,r)}):[]}function mr(e=je()){return e?Array.from(e.querySelectorAll("[data-scroll-counter]")).map(n=>{let r={};try{let t=n.dataset.scrollCounterOptions??"";t&&(r=JSON.parse(t));}catch{}return !r.to&&r.to!==0&&(K('initScrollCounter: element missing "to" in options JSON:',n),r.to=0),It(n,r)}):[]}function fr(e=je()){return e?Array.from(e.querySelectorAll("[data-scroll-text]")).map(n=>{let r={};try{let t=n.dataset.scrollTextOptions??"";t&&(r=JSON.parse(t));}catch{}return Nt(n,r)}):[]}function ln(e=je()){return {draw:cr(e),animate:ur(e),counter:mr(e),text:fr(e)}}exports.initAll=ln;exports.initScrollAnimate=ur;exports.initScrollCounter=mr;exports.initScrollDraw=cr;exports.initScrollText=fr;exports.scrollDraw=lr;
|
|
1
|
+
'use strict';function Zt({bounces:e=3,decay:r=.5}={}){let n=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,r)),s=Math.sqrt(t),i=0,l=[];for(let p=0;p<n;p++){let v=Math.pow(s,p);l.push(v),i+=v;}let m=[0],c=0;for(let p=0;p<n;p++)c+=l[p]/i,m.push(c);return p=>{if(p<=0)return 0;if(p>=1)return 1;for(let v=0;v<n;v++)if(p<=m[v+1]){let V=(p-m[v])/(m[v+1]-m[v]);if(v===0)return V*(2-V);let S=1-Math.pow(t,v);return S+(1-S)*(2*V-1)*(2*V-1)}return 1}}function Kt({amplitude:e=1,period:r=.4}={}){let n=Math.max(1,e),t=Math.max(.1,r),s=n<=1?t/4:t/(2*Math.PI)*Math.asin(1/n);return i=>i<=0?0:i>=1?1:n*Math.pow(2,-10*i)*Math.sin((i-s)*(2*Math.PI)/t)+1}var pe={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:Zt(),elastic:Kt()};function xt(e,r,n){return Math.min(n,Math.max(r,e))}function Se(e="top bottom"){let r=e.trim();if(/^\d+(\.\d+)?%$/.test(r))return {element:"top",viewport:r};let[n="top",t="bottom"]=r.split(/\s+/).filter(Boolean);return {element:n,viewport:t}}function Mt(e,r,n,t){switch(t){case "top":return e+n;case "center":return e+n+r/2;case "bottom":return e+n+r;default:return e+n}}function At(e,r){if(/^\d+(\.\d+)?%$/.test(e))return r*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return r/2;case "bottom":return r;default:return r}}function se(e,r,n,t){return n===r?0:xt((e-r)/(n-r)*t,0,1)}function De(e,r,n,t,s){let i=Mt(e.top,e.height,r,t.element)-At(t.viewport,n),l=Mt(e.top,e.height,r,s.element)-At(s.viewport,n);return {tStart:i,tEnd:l}}function tt(e,r,n){let t=e.getBoundingClientRect(),s=n==="x"?t.width:t.height;return r?{top:n==="x"?t.left-r.getBoundingClientRect().left+r.scrollLeft:t.top-r.getBoundingClientRect().top+r.scrollTop,height:s,scroll:0}:{top:n==="x"?t.left:t.top,height:s,scroll:n==="x"?window.scrollX:window.scrollY}}function qe(e){let r=e.tagName.toLowerCase();if(r==="rect"){let n=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(n+t)}if(r==="circle"){let n=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*n}return e.getTotalLength()}function Lt(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 t=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return t?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]:null}function We(e,r,n){let t=Lt(e),s=Lt(r);return !t||!s?e:`rgb(${Math.round(t[0]+(s[0]-t[0])*n)},${Math.round(t[1]+(s[1]-t[1])*n)},${Math.round(t[2]+(s[2]-t[2])*n)})`}var $t={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var Ge=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function Q(e,...r){Ge&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var er="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",tr="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",Ct=33;function rr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function nr(e){let r=[];for(let n=0;n<Ct;n++){let t=n/(Ct-1);r.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${r.join(",")})`}function rt(e){switch(e){case "linear":return "linear";case "ease-in":return er;case "ease-out":return tr;case "ease-in-out":return rr()?nr(pe["ease-in-out"]):null;default:return null}}var Pt=Symbol.for("svg-scroll-draw.registry");function Dt(){let e=globalThis;return e[Pt]||(e[Pt]=new Map)}function Oe(e,r){Dt().set(e,r);}function Re(e){Dt().delete(e);}var je,nt=new Set,ot=new WeakMap,Ue=new Map,kt=e=>{let r=e.getBoundingClientRect();return r.width+" "+r.height};function or(e){let r=new Set;for(let n of e)for(;n&&n!==document.body;n=n.parentElement)for(let t=n;t;t=t.previousElementSibling)r.add(t);return r}function _e(e,r){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let n=()=>r();je??(je=new ResizeObserver(s=>{let i=false;for(let{target:l}of s)ot.get(l)!==kt(l)&&(i=true),ot.set(l,"");i&&nt.forEach(l=>l());})),nt.add(n);let t=or(e);return [document.body,document.documentElement].forEach(s=>s&&t.add(s)),t.forEach(s=>{ot.has(s)||ot.set(s,kt(s)),Ue.set(s,(Ue.get(s)??0)+1),je.observe(s);}),()=>{nt.delete(n)&&(t.forEach(s=>{let i=(Ue.get(s)??1)-1;if(i)return void Ue.set(s,i);Ue.delete(s),je?.unobserve(s);}),nt.size||(je?.disconnect(),je=void 0));}}var sr=0;function ir(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function It(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 ar(e){if(!Ge)return;let r=It(e,"stroke");if(!r||r==="none"){Q("Element has no stroke \u2014 path will not be visible.",e);return}let n=(e.getAttribute("fill")??"").trim();n&&!Ot.has(n)&&!Ot.has(It(e,"fill"))&&Q("Element has a fill \u2014 it may obscure the stroke animation.",e);}function lr(e,r,n){let t=document.createElement("div");t.setAttribute("data-svg-scroll-draw-debug",""),t.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function s(){let i=n==="x"?window.scrollX:window.scrollY,l=e-i,m=r-i,c=n==="x";t.innerHTML=`
|
|
2
|
+
<div style="position:absolute;${c?`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;${c?`left:${m}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${m}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",s,{passive:true}),s(),{el:t,destroy(){window.removeEventListener("scroll",s),t.remove();}}}var Rt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,Ft=/[MmLlHhVvCcSsQqTtAaZz]/g;function cr(e,r,n){if(!Ge)return;let t=(e.match(Ft)??[]).join("").toUpperCase(),s=(r.match(Ft)??[]).join("").toUpperCase(),i=(e.match(Rt)??[]).length,l=(r.match(Rt)??[]).length;if(t!==s){Q(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${s||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}i!==l&&Q(`morphTo: coordinate count differs (${i} \u2192 ${l}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function pt(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),s=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,i=>{let l=parseFloat(i),m=t[s++]??l;return String(+(l+(m-l)*n).toFixed(4))})}function st(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,s=n?{...$t[n],...t}:t,i=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:l="path, polyline, line, polygon, rect, circle",speed:m=1,fade:c=false,easing:p="linear",trigger:v={},stagger:V=0,direction:S="forward",once:ce=false,debug:Fe=false,axis:j="y",scrollContainer:ue,autoReverse:ie=false,delay:Z=0,strokeColor:F,strokeWidth:I,fillOpacity:H,waypoints:T,velocityScale:N=false,threshold:C=0,rootMargin:A="0px",repeat:E=0,repeatDelay:he=0,morphTo:_,clip:me,autoplay:be=false,duration:Te=1e3,native:$e=true,onProgress:U,onStart:P,onComplete:d,onEnter:g,onLeave:O,onEnterBack:ae,onLeaveBack:xe}=s,le=me===true?"left":typeof me=="string"?me:false,we=typeof p=="function"?p:pe[p]??pe.linear,Ce=Se(v.start??"top bottom"),ze=Se(v.end??"bottom top"),de=typeof ue=="string"?document.querySelector(ue):ue??null,ge=Array.isArray(F)?F[0]:null,K=Array.isArray(F)?F[1]:typeof F=="string"?F:null,q=Array.isArray(I)?I[0]:null,Y=Array.isArray(I)?I[1]:typeof I=="number"?I:null,X=Array.isArray(H)?H[0]:null,W=Array.isArray(H)?H[1]:typeof H=="number"?H:null;function ke(o){let u=o*100;switch(le){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(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-u}% 0 0)`}}let R=le?[]:Array.from(e.querySelectorAll(l)),x=[],ee=[],te=0,Me=0,a=false,f=false,D=0,re=false,L=-1,J=[],Ae=-1,B=false,$=0,ye=0,ve,lt=null;function yt(){lt?.destroy(),lt=null;}let He=new Set,ht=NaN,Ne=true,Xe=-1,bt=performance.now(),Ve=NaN;function ct(){return de?j==="x"?de.scrollLeft:de.scrollTop:j==="x"?window.scrollX:window.scrollY}function wt(){return de?j==="x"?de.clientWidth:de.clientHeight:j==="x"?window.innerWidth:window.innerHeight}function vt(){let o=tt(e,de,j);return De(o,o.scroll,wt(),Ce,ze)}function Et(){(({tStart:te,tEnd:Me}=vt())),Fe&&Ge&&(yt(),lt=lr(te,Me,j));}function ut(o,u=vt){Oe(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:u});let b=o.destroy;return o.destroy=()=>{b.call(o),Re(e);},o}function Ut(o,u){if(e.style.setProperty("--scroll-draw-progress",String(o)),le){let b=u==="reverse"?1-o:o;e.style.clipPath=ke(b);return}R.forEach((b,ne)=>{b.style.strokeDashoffset=u==="reverse"?`${x[ne]*o}`:`${x[ne]*(1-o)}`,c&&(b.style.opacity=u==="reverse"?`${1-o}`:`${o}`),ge&&K?b.style.stroke=We(ge,K,o):K&&(b.style.stroke=K),q!==null&&Y!==null?b.style.strokeWidth=`${q+(Y-q)*o}`:Y!==null&&(b.style.strokeWidth=`${Y}`),X!==null&&W!==null?b.style.fillOpacity=`${X+(W-X)*o}`:W!==null&&(b.style.fillOpacity=`${W}`),_&&b.tagName.toLowerCase()==="path"&&ee[ne]&&b.setAttribute("d",pt(ee[ne],_,o));});}function Je(){if(e.style.setProperty("--scroll-draw-progress","0"),le){e.style.clipPath=ke(0);return}R.forEach((o,u)=>{o.style.strokeDasharray=`${x[u]}`,o.style.strokeDashoffset=S==="reverse"?"0":`${x[u]}`,c?o.style.opacity=S==="reverse"?"1":"0":o.style.opacity="",ge&&(o.style.stroke=ge),q!==null&&(o.style.strokeWidth=`${q}`),X!==null&&(o.style.fillOpacity=`${X}`),_&&o.tagName.toLowerCase()==="path"&&ee[u]&&o.setAttribute("d",ee[u]);});}if(R.forEach(o=>{ar(o);let u=qe(o);x.push(u);let b=o.tagName.toLowerCase()==="path";b?ee.push(o.getAttribute("d")??""):ee.push(""),_&&(b?cr(ee[ee.length-1],_,o):Q(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),i?(o.style.strokeDasharray=`${u}`,o.style.strokeDashoffset=S==="reverse"?`${u}`:"0",c&&(o.style.opacity="1"),K&&(o.style.stroke=K),Y!==null&&(o.style.strokeWidth=`${Y}`),W!==null&&(o.style.fillOpacity=`${W}`),_&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",_)):(o.style.strokeDasharray=`${u}`,o.style.strokeDashoffset=S==="reverse"?"0":`${u}`,c?o.style.opacity=S==="reverse"?"1":"0":o.style.opacity="",ge&&(o.style.stroke=ge),q!==null&&(o.style.strokeWidth=`${q}`),X!==null&&(o.style.fillOpacity=`${X}`));}),le){if(i)return e.style.clipPath=ke(1),d?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=ke(0);}else if(i)return d?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let St=typeof p=="string"?rt(p):null;function Yt(){return !($e===false||!ir()||!R.length||!St||le||j!=="y"||de||m!==1||V!==0||ce||ie||N!==false||_||T||E||Z>0||U||P||d||g||O||ae||xe||F!=null||I!=null||H!=null||(v.start??"top bottom").trim()!=="top bottom"||(v.end??"bottom top").trim()!=="bottom top")}function Xt(){let o=++sr,u=`svg-scroll-draw-${o}`,b=`svg-scroll-draw-host-${o}`,ne=`--svg-scroll-draw-${o}`,Ie=S==="reverse"?"0":"var(--ssd-len)",Pe=S==="reverse"?"var(--ssd-len)":"0",Le=`stroke-dashoffset:${Ie};`,w=`stroke-dashoffset:${Pe};`;c&&(Le+=`opacity:${S==="reverse"?1:0};`,w+=`opacity:${S==="reverse"?0:1};`);let M=document.createElement("style");M.setAttribute("data-svg-scroll-draw",""),M.textContent=`@keyframes ${u}{from{${Le}}to{${w}}}.${b}{view-timeline-name:${ne};view-timeline-axis:block;}.${u}{animation-name:${u};animation-duration:auto;animation-timing-function:${St};animation-fill-mode:both;animation-timeline:${ne};animation-range:cover 0% cover 100%;}`,document.head.appendChild(M),e.classList.add(b);function oe(y,G){y.style.setProperty("--ssd-len",String(x[G])),y.style.strokeDasharray=`${x[G]}`,y.style.strokeDashoffset="",y.style.opacity="",y.style.animationPlayState="",y.classList.add(u);}R.forEach(oe);let h=false,k=-1;function z(){if(k>=0)return k;let y=e.getBoundingClientRect(),{tStart:G,tEnd:Ee}=De({top:y.top,height:y.height},ct(),wt(),Ce,ze);return we(se(ct(),G,Ee,m))}return {destroy(){e.classList.remove(b),R.forEach(y=>{y.classList.remove(u),y.style.removeProperty("--ssd-len"),y.style.animationPlayState="";}),M.remove();},replay(){h=false,k=-1,R.forEach(oe);},pause(){h=true,R.forEach(y=>{y.style.animationPlayState="paused";});},resume(){h&&(h=false,R.forEach(y=>{y.style.animationPlayState="running";}));},seek(y){let G=Math.min(1,Math.max(0,y));k=G,h=true,R.forEach((Ee,fe)=>{Ee.classList.remove(u),Ee.style.strokeDashoffset=S==="reverse"?`${x[fe]*G}`:`${x[fe]*(1-G)}`,c&&(Ee.style.opacity=S==="reverse"?`${1-G}`:`${G}`);});},getProgress(){return z()},refresh(){R.forEach((y,G)=>{x[G]=qe(y),y.style.setProperty("--ssd-len",String(x[G])),y.style.strokeDasharray=`${x[G]}`;});}}}if(Yt())return ut(Xt());function Jt(){let o=Math.max(1,Te),u=0,b=0,ne=false;function Ie(h){let k=true;if(le){let z=Math.min(1,Math.max(0,h/o)),y=we(z);$=y,e.style.setProperty("--scroll-draw-progress",String(y)),e.style.clipPath=ke(S==="reverse"?1-y:y),U?.(y),z<1&&(k=false);}else R.forEach((z,y)=>{let G=y*V*o,Ee=Math.min(1,Math.max(0,(h-G)/o)),fe=we(Ee);z.style.strokeDashoffset=S==="reverse"?`${x[y]*fe}`:`${x[y]*(1-fe)}`,c&&(z.style.opacity=S==="reverse"?`${1-fe}`:`${fe}`),ge&&K?z.style.stroke=We(ge,K,fe):K&&(z.style.stroke=K),q!==null&&Y!==null?z.style.strokeWidth=`${q+(Y-q)*fe}`:Y!==null&&(z.style.strokeWidth=`${Y}`),X!==null&&W!==null?z.style.fillOpacity=`${X+(W-X)*fe}`:W!==null&&(z.style.fillOpacity=`${W}`),_&&z.tagName.toLowerCase()==="path"&&ee[y]&&z.setAttribute("d",pt(ee[y],_,fe)),y===0&&($=fe,U?.(fe),e.style.setProperty("--scroll-draw-progress",String(fe))),Ee<1&&(k=false);});if(T){let z=Math.min(1,Math.max(0,h/o)),y=we(z);for(let G in T){let Ee=parseFloat(G);y>=Ee&&!He.has(Ee)&&(He.add(Ee),T[G]?.());}}return k}function Pe(h){if(B)return;let k=h-u;f||(f=true,P?.());let z=Ie(k);if(z&&!a){a=true,Ie(o*(1+Math.max(0,R.length-1)*V)),d?.(),ye<(E==="infinite"?1/0:E??0)&&(ye++,ve=setTimeout(()=>{u=performance.now(),f=false,a=false,He.clear(),Je(),D=requestAnimationFrame(Pe);},he));return}z||(D=requestAnimationFrame(Pe));}function Le(){cancelAnimationFrame(D),clearTimeout(ve),u=performance.now(),b=0,B=false,f=false,a=false,ye=0,ne=true,$=0,He.clear(),Je(),D=requestAnimationFrame(Pe);}let w=new IntersectionObserver(h=>{h.forEach(k=>{k.isIntersecting&&!(ce&&a)?Le():!k.isIntersecting&&!ce&&!a&&(cancelAnimationFrame(D),clearTimeout(ve),ne=false);});},{root:de??null,threshold:C,rootMargin:A}),M;function oe(){clearTimeout(M),M=setTimeout(()=>{R.forEach((h,k)=>{x[k]=qe(h),h.style.strokeDasharray=`${x[k]}`;});},150);}return window.addEventListener("resize",oe),window.addEventListener("orientationchange",oe),Z>0?setTimeout(()=>w.observe(e),Z):w.observe(e),{destroy(){cancelAnimationFrame(D),clearTimeout(ve),w.disconnect(),window.removeEventListener("resize",oe),window.removeEventListener("orientationchange",oe),clearTimeout(M);},replay(){ye=0,Le();},pause(){B||!ne||(B=true,b=performance.now()-u,cancelAnimationFrame(D));},resume(){B&&(B=false,ne=true,u=performance.now()-b,D=requestAnimationFrame(Pe));},seek(h){let k=Math.min(1,Math.max(0,h));$=k,B=true,b=k*o,u=performance.now()-b,cancelAnimationFrame(D),Ie(b);},getProgress(){return $},refresh(){clearTimeout(M),R.forEach((h,k)=>{x[k]=qe(h),h.style.strokeDasharray=`${x[k]}`;});}}}if(be)return ut(Jt());Et();function Qe(){if(!re||B)return;let o=performance.now(),u=ct();if(!Ne&&N===false&&u===ht){D=requestAnimationFrame(Qe);return}Ne=false,ht=u;let b=m;if(N!==false){let w=o-bt,M=w>0?Math.abs(u-(Xe<0?u:Xe))/w:0;b=m*Math.max(.2,1+M*(typeof N=="number"?N:1)*.04);}Xe=u,bt=o;let ne=ie?Ae===-1||u>=Ae?"forward":"reverse":S;Ae=u;let Ie=Me-te,Pe=true,Le=Ie===0?0:(u-te)/Ie;if(isNaN(Ve)||(Ve<=0&&Le>0?g?.():Ve>0&&Le<=0&&xe?.(),Ve<1&&Le>=1?O?.():Ve>=1&&Le<1&&ae?.()),Ve=Le,le){let w=we(se(u,te,Me,b));ce&&!ie&&(L=Math.max(L,w),w=L),$=w,e.style.setProperty("--scroll-draw-progress",String(w));let M=ne==="reverse"?1-w:w;e.style.clipPath=ke(M),U?.(w),!f&&se(u,te,Me,b)>0&&(f=true,P?.()),w>=1&&!a?(a=true,d?.(),ye<(E==="infinite"?1/0:E??0)&&(ye++,ve=setTimeout(()=>{L=-1,f=false,a=false,e.style.clipPath=ke(0);},he))):w<1&&!ce&&(a=false),D=requestAnimationFrame(Qe);return}if(R.forEach((w,M)=>{let oe=M*V*Ie,h=we(se(u,te+oe,Me+oe,b));ce&&!ie&&(h=J[M]=Math.max(J[M]??L,h)),w.style.strokeDashoffset=ne==="reverse"?`${x[M]*h}`:`${x[M]*(1-h)}`,c&&(w.style.opacity=ne==="reverse"?`${1-h}`:`${h}`),ge&&K?w.style.stroke=We(ge,K,h):K&&(w.style.stroke=K),q!==null&&Y!==null?w.style.strokeWidth=`${q+(Y-q)*h}`:Y!==null&&(w.style.strokeWidth=`${Y}`),X!==null&&W!==null?w.style.fillOpacity=`${X+(W-X)*h}`:W!==null&&(w.style.fillOpacity=`${W}`),_&&w.tagName.toLowerCase()==="path"&&ee[M]&&w.setAttribute("d",pt(ee[M],_,h)),M===0&&($=h,U?.(h),e.style.setProperty("--scroll-draw-progress",String(h))),h<1&&(Pe=false);}),T){let w=we(se(u,te,Me,b));for(let M in T){let oe=parseFloat(M);w>=oe&&!He.has(oe)&&(He.add(oe),T[M]?.());}}!f&&se(u,te,Me,b)>0&&(f=true,P?.()),Pe&&!a?(a=true,d?.(),ye<(E==="infinite"?1/0:E??0)&&(ye++,ve=setTimeout(()=>{L=-1,J=[],f=false,a=false,He.clear(),Je(),Ne=true;},he))):!Pe&&!ce&&(a=false),D=requestAnimationFrame(Qe);}let mt=false;function Ze(){mt||(mt=true,D=requestAnimationFrame(function(){Qe();}));}function Ke(){mt=false,cancelAnimationFrame(D);}let ft=new IntersectionObserver(o=>{o.forEach(u=>{re=u.isIntersecting,re&&!B?(Ne=true,Ze()):Ke();});},{root:de??null,threshold:C,rootMargin:A});function Tt(){R.forEach((o,u)=>{x[u]=qe(o),o.style.strokeDasharray=`${x[u]}`;}),Et(),Ne=true;}let et;function Be(){clearTimeout(et),et=setTimeout(Tt,150);}window.addEventListener("resize",Be),window.addEventListener("orientationchange",Be);let Qt=_e([e],Be);return Z>0?setTimeout(()=>ft.observe(e),Z):ft.observe(e),ut({destroy(){cancelAnimationFrame(D),clearTimeout(ve),Ke(),ft.disconnect(),Qt(),window.removeEventListener("resize",Be),window.removeEventListener("orientationchange",Be),clearTimeout(et),yt();},replay(){L=-1,J=[],Ae=-1,Xe=-1,f=false,a=false,ye=0,B=false,$=0,He.clear(),clearTimeout(ve),Je(),Ne=true,re&&Ze();},pause(){B=true,Ke();},resume(){B&&(B=false,Ne=true,re&&Ze());},seek(o){let u=Math.min(1,Math.max(0,o));$=u,L=u,J=[],B=true,Ke(),Ut(u,S),Ne=true;},getProgress(){return $},refresh(){clearTimeout(et),Tt(),re&&!B&&Ze();}},()=>({tStart:te,tEnd:Me}))}function ur(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Ht(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let s=[],i=[],l=t[2].trim();if(l)for(let m of l.split(/[\s,]+/)){let c=m.match(/^([-+]?[\d.eE]+)(.*)$/);s.push(c?parseFloat(c[1]):0),i.push(c?c[2]:"");}r.push({fn:t[1],nums:s,units:i});}return r}function mr(e,r,n){let t=Ht(e),s=Ht(r);return t.length===0||t.length!==s.length?n<1?e:r:t.map((i,l)=>{let m=s[l];return i.fn!==m.fn||i.nums.length!==m.nums.length?n<1?`${i.fn}(${i.nums.map((c,p)=>`${c}${i.units[p]}`).join(", ")})`:`${m.fn}(${m.nums.map((c,p)=>`${c}${m.units[p]}`).join(", ")})`:`${i.fn}(${i.nums.map((c,p)=>`${c+(m.nums[p]-c)*n}${i.units[p]}`).join(", ")})`}).join(" ")}function Nt(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),s=String(r);if(ur(t))return We(t,s,n);if(t.includes("("))return mr(t,s,n);let i=t.match(/^([-+]?[\d.]+)(.*)$/),l=s.match(/^([-+]?[\d.]+)(.*)$/);if(i&&l){let m=parseFloat(i[1]),c=parseFloat(l[1]);return `${m+(c-m)*n}${i[2]||l[2]}`}return n<1?t:s}function fr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var pr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),dr=0,_t="--scroll-draw-progress";function gr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function zt(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:s={},easing:i="ease-out",speed:l=1,once:m=false,axis:c="y",scrollContainer:p,native:v=true,velocityScale:V=false,respectReducedMotion:S=true,triggerElement:ce,onProgress:Fe,onComplete:j,onEnter:ue,onLeave:ie,onEnterBack:Z,onLeaveBack:F}=r,I=S&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,H=typeof i=="function"?i:pe[i]??pe["ease-out"],T=Se(s.start??"top bottom"),N=Se(s.end??"bottom top"),C=ce??e,A=typeof p=="string"?document.querySelector(p):p??null,E=Object.entries(t).map(([a,f])=>({prop:fr(a),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function he(){let a=window.getComputedStyle(e);for(let f of E)f.from===""&&(f.from=a.getPropertyValue(f.prop).trim()||"0");}function _(){for(let a of E)e.style.setProperty(a.prop,String(a.to));}let me=new Map;for(let a of [...E.map(f=>f.prop),_t])me.set(a,e.style.getPropertyValue(a));function be(){for(let[a,f]of me)f?e.style.setProperty(a,f):e.style.removeProperty(a);}if(I)return _(),j?.(),{...n,destroy:be,getProgress:()=>1};he();let Te=typeof i=="string"?rt(i):null;function $e(){if(!v||!gr()||!Te||c!=="y"||A||C!==e||m||l!==1||Fe||j||ue||ie||Z||F||V!==false||(s.start??"top bottom").trim()!=="top bottom"||(s.end??"bottom top").trim()!=="bottom top")return false;for(let a of E)if(!pr.has(a.prop))return false;return true}function U(){let a=`ssd-a-${++dr}`,f=E.map($=>`${$.prop}:${$.from}`).join(";"),D=E.map($=>`${$.prop}:${$.to}`).join(";"),re=document.createElement("style");re.setAttribute("data-ssd-animate",""),re.textContent=`@keyframes ${a}{from{${f}}to{${D}}}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${Te};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(re),e.classList.add(a);let L=()=>c==="x"?window.scrollX:window.scrollY,J=()=>c==="x"?window.innerWidth:window.innerHeight,Ae=()=>{let $=e.getBoundingClientRect();return De({top:$.top,height:$.height},L(),J(),T,N)};Oe(e,{type:"animate",getProgress:()=>B.getProgress(),getTrigger:Ae});let B={refresh(){},destroy(){e.classList.remove(a),re.remove(),e.style.animationPlayState="",be(),Re(e);},replay(){e.classList.remove(a),e.offsetWidth,e.classList.add(a);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek($){let ye=Math.min(1,Math.max(0,$));e.classList.remove(a);for(let ve of E)e.style.setProperty(ve.prop,Nt(ve.from,ve.to,ye));},getProgress(){let{tStart:$,tEnd:ye}=Ae();return H(se(L(),$,ye,l))}};return B}if($e())return U();let P=0,d=0,g=0,O=false,ae=false,xe=-1,le=0,we=false,Ce=NaN,ze=-1,de=0,ge=()=>A?c==="x"?A.scrollLeft:A.scrollTop:c==="x"?window.scrollX:window.scrollY,K=()=>A?c==="x"?A.clientWidth:A.clientHeight:c==="x"?window.innerWidth:window.innerHeight,q=C===e?E:[],Y=false;function X(){let a=e.style,f=q.map(J=>a.getPropertyValue(J.prop)),D=a.transition;q.length&&(a.transition="none"),q.forEach(J=>a.setProperty(J.prop,me.get(J.prop)??""));let re=tt(C,A,c);q.forEach((J,Ae)=>a.setProperty(J.prop,f[Ae])),q.length&&(e.offsetWidth,a.transition=D);let L=De(re,re.scroll,K(),T,N);Y&&Math.abs(L.tStart-P)<1&&Math.abs(L.tEnd-d)<1||(Y=true,P=L.tStart,d=L.tEnd);}function W(a){e.style.setProperty(_t,String(a));for(let f of E)e.style.setProperty(f.prop,Nt(f.from,f.to,a));Fe?.(a);}function ke(a){if(isNaN(Ce)){Ce=a;return}Ce<=0&&a>0?ue?.():Ce>0&&a<=0&&F?.(),Ce<1&&a>=1?ie?.():Ce>=1&&a<1&&Z?.(),Ce=a;}function R(){if(!O||ae)return;let a=performance.now(),f=ge(),D=l;if(V!==false){let J=a-de,Ae=J>0?Math.abs(f-(ze<0?f:ze))/J:0;D=l*Math.max(.2,1+Ae*(typeof V=="number"?V:1)*.04);}ze=f,de=a;let re=d===P?0:(f-P)/(d-P);ke(re);let L=H(se(f,P,d,D));m&&(xe=Math.max(xe,L),L=xe),le=L,W(L),L>=1&&!we?(we=true,j?.()):L<1&&!m&&(we=false),g=requestAnimationFrame(R);}X(),d===P&&Q("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let a=H(se(ge(),P,d,l));m&&a>0&&(xe=a),le=a,W(a);}let x=new IntersectionObserver(a=>{a.forEach(f=>{O=f.isIntersecting,O&&!ae?g=requestAnimationFrame(R):cancelAnimationFrame(g);});},{root:A??null}),ee;function te(){clearTimeout(ee),ee=setTimeout(X,150);}window.addEventListener("resize",te),window.addEventListener("orientationchange",te);let Me=_e([C],te);return x.observe(e),Oe(e,{type:"animate",getProgress:()=>le,getTrigger:()=>({tStart:P,tEnd:d})}),{destroy(){cancelAnimationFrame(g),x.disconnect(),window.removeEventListener("resize",te),window.removeEventListener("orientationchange",te),Me(),clearTimeout(ee),be(),Re(e);},replay(){xe=-1,we=false,le=0,ae=false,W(0);},pause(){ae=true,cancelAnimationFrame(g);},resume(){ae&&(ae=false,O&&(g=requestAnimationFrame(R)));},seek(a){let f=Math.min(1,Math.max(0,a));le=f,xe=f,ae=true,cancelAnimationFrame(g),W(f);},getProgress(){return le},refresh(){X();}}}var dt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Vt(e,r){if(typeof window>"u")return dt;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return Q("scrollCounter: element not found:",e),dt;let t=n,{from:s=0,to:i,format:l,easing:m="ease-out",trigger:c={},once:p=true,decimals:v,onComplete:V}=r,S=v!==void 0?d=>d.toFixed(v):l??(d=>String(Math.round(d))),ce=typeof m=="function"?m:pe[m]??pe["ease-out"],Fe=Se(c.start??"top 80%"),j=Se(c.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=S(i),V?.(),dt;let ie=0,Z=0,F=false,I=0,H=false,T=false,N=-1,C=0,A=false,E=()=>window.scrollY,he=()=>window.innerHeight;function _(){let d=t.getBoundingClientRect(),g=De({top:d.top,height:d.height},E(),he(),Fe,j);F&&Math.abs(g.tStart-ie)<1&&Math.abs(g.tEnd-Z)<1||(F=true,ie=g.tStart,Z=g.tEnd);}function me(d){t.textContent=S(s+(i-s)*d),t.style.setProperty("--scroll-draw-progress",String(d));}function be(){if(!H||T)return;let d=ce(se(E(),ie,Z,1));p&&(N=Math.max(N,d),d=N),C=d,me(d),d>=1&&!A?(A=true,V?.()):d<1&&!p&&(A=false),I=requestAnimationFrame(be);}_();{let d=ce(se(E(),ie,Z,1));p&&d>0&&(N=d),C=d,me(d);}let Te=new IntersectionObserver(d=>{d.forEach(g=>{H=g.isIntersecting,H&&!T?I=requestAnimationFrame(be):cancelAnimationFrame(I);});}),$e;function U(){clearTimeout($e),$e=setTimeout(_,150);}window.addEventListener("resize",U),window.addEventListener("orientationchange",U);let P=_e([t],U);return Te.observe(t),Oe(t,{type:"counter",getProgress:()=>C,getTrigger:()=>({tStart:ie,tEnd:Z})}),{destroy(){cancelAnimationFrame(I),Te.disconnect(),window.removeEventListener("resize",U),window.removeEventListener("orientationchange",U),P(),clearTimeout($e),Re(t);},replay(){N=-1,A=false,C=0,T=false,me(0);},pause(){T=true,cancelAnimationFrame(I);},resume(){T&&(T=false,H&&(I=requestAnimationFrame(be)));},seek(d){let g=Math.min(1,Math.max(0,d));C=g,N=g,T=true,cancelAnimationFrame(I),me(g);},getProgress(){return C}}}function Bt(e){let r=e.textContent??"";return e.textContent="",r.split(/(\s+)/).filter(Boolean).map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(n)?(t.textContent=n,t.style.whiteSpace="pre"):(t.textContent=n,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(n)?null:t}).filter(n=>n!==null)}function yr(e){let r=e.textContent??"";return e.textContent="",r.split("").map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=n,n===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),n===" "?null:t}).filter(n=>n!==null)}function qt(e){let r=Bt(e),n=new Map;for(let i of r){let l=i.offsetTop;n.has(l)||n.set(l,[]),n.get(l).push(i);}let t=[],s=Array.from(n.keys()).sort((i,l)=>i-l);for(let i of s){let l=n.get(i),m=document.createElement("span");m.setAttribute("aria-hidden","true"),m.style.display="inline-block",l.forEach((c,p)=>{let v=c.nextElementSibling;m.appendChild(c),p<l.length-1&&v&&v.style.whiteSpace==="pre"&&m.appendChild(v);}),t.push(m);}return e.textContent="",t.forEach((i,l)=>{e.appendChild(i),l<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function hr(e,r,n,t){if(n<=1||t===0)return e;let s=(n-1)*t,i=r*t,l=i+(1-s);return l<=i?e>=i?1:0:Math.min(1,Math.max(0,(e-i)/(l-i)))}function br(e,r){let n=[];if(r?.y!==void 0&&n.push(`translateY(${r.y*(1-e)}px)`),r?.x!==void 0&&n.push(`translateX(${r.x*(1-e)}px)`),r?.rotate!==void 0&&n.push(`rotate(${r.rotate*(1-e)}deg)`),r?.scale!==void 0){let t=r.scale+(1-r.scale)*e;n.push(`scale(${t})`);}return n.join(" ")||""}var Wt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Gt(e,r={}){if(typeof window>"u")return Wt;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return Q("scrollText: element not found:",e),Wt;let t=n,{split:s="words",stagger:i=.04,easing:l="ease-out",from:m={opacity:0,y:24},trigger:c={},once:p=true,onComplete:v}=r,V=window.matchMedia("(prefers-reduced-motion: reduce)").matches,S=typeof l=="function"?l:pe[l]??pe["ease-out"],ce=Se(c.start??"top 85%"),Fe=Se(c.end??"top 40%"),j=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let ue;s==="chars"?ue=yr(t):s==="lines"?ue=qt(t):ue=Bt(t);let ie=ue.length;function Z(g,O){m?.opacity!==void 0&&(g.style.opacity=String(m.opacity+(1-m.opacity)*O));let ae=br(O,m);ae&&(g.style.transform=ae);}function F(g){t.style.setProperty("--scroll-draw-progress",String(g)),ue.forEach((O,ae)=>{let xe=S(hr(g,ae,ie,i));Z(O,xe);});}if(V)return F(1),v?.(),{destroy(){t.innerHTML=j,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};F(0);let I=0,H=0,T=0,N=false,C=false,A=-1,E=0,he=false,_=()=>window.scrollY,me=()=>window.innerHeight;function be(){let g=t.getBoundingClientRect(),O=De({top:g.top,height:g.height},_(),me(),ce,Fe);I=O.tStart,H=O.tEnd;}function Te(){if(!N||C)return;let g=se(_(),I,H,1);p&&(A=Math.max(A,g),g=A),E=g,F(g),g>=1&&!he?(he=true,v?.()):g<1&&!p&&(he=false),T=requestAnimationFrame(Te);}be();let $e=new IntersectionObserver(g=>{g.forEach(O=>{N=O.isIntersecting,N&&!C?T=requestAnimationFrame(Te):cancelAnimationFrame(T);});}),U;function P(){clearTimeout(U),U=setTimeout(()=>{if(s==="lines"){let g=E;t.innerHTML=j,t.setAttribute("aria-label",t.textContent??""),ue=qt(t),F(g);}be();},150);}window.addEventListener("resize",P),window.addEventListener("orientationchange",P);let d=_e([t],P);return $e.observe(t),Oe(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:I,tEnd:H})}),{destroy(){cancelAnimationFrame(T),$e.disconnect(),window.removeEventListener("resize",P),window.removeEventListener("orientationchange",P),d(),clearTimeout(U),t.innerHTML=j,t.removeAttribute("aria-label"),Re(t);},replay(){A=-1,he=false,E=0,C=false,F(0);},pause(){C=true,cancelAnimationFrame(T);},resume(){C&&(C=false,N&&(T=requestAnimationFrame(Te)));},seek(g){let O=Math.min(1,Math.max(0,g));E=O,A=O,C=true,cancelAnimationFrame(T),F(O);},getProgress(){return E}}}function wr(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let t=typeof e=="string"?document.querySelector(e):e;return t?st(t,r):(Q("Container not found:",e),n)}function Ye(){return typeof document>"u"?null:document}var gt=new WeakMap,jt;function it(e,r,n,t){let s=gt.get(e)??new Map;gt.set(e,s);let i=()=>{let c=n(),p=s.get(r);p&&p.key===c||(p?.inst.destroy(),s.set(r,{inst:t(c),key:c,build:i,users:p?.users??0}));};i(),s.get(r).users++;let l=true;typeof MutationObserver<"u"&&(jt??(jt=new MutationObserver(c=>c.forEach(p=>gt.get(p.target)?.forEach(v=>v.build())))),jt.observe(e,{attributes:true,attributeFilter:["draw","animate","counter","text"].map(c=>`data-scroll-${c}-options`).concat("data-scroll-drawoptions")}));let m=()=>s.get(r)?.inst;return {destroy:()=>{let c=s.get(r);!l||!c||(l=false,!(--c.users>0)&&(c.inst.destroy(),s.delete(r)));},replay:()=>m()?.replay(),pause:()=>m()?.pause(),resume:()=>m()?.resume(),seek:c=>m()?.seek(c),getProgress:()=>m()?.getProgress()??0,refresh:()=>m()?.refresh?.()}}function at(e,r){try{return e?JSON.parse(e):r}catch{return r}}function vr(e=Ye()){return e?Array.from(e.querySelectorAll("[data-scroll-draw]")).map(r=>it(r,"draw",()=>r.dataset.scrollDrawOptions??r.dataset.scrollDrawoptions??"",n=>st(r,at(n,{})))):[]}function Er(e=Ye()){return e?Array.from(e.querySelectorAll("[data-scroll-animate]")).map(r=>it(r,"animate",()=>r.dataset.scrollAnimateOptions??"",n=>zt(r,at(n,{props:{}})))):[]}function Sr(e=Ye()){return e?Array.from(e.querySelectorAll("[data-scroll-counter]")).map(r=>it(r,"counter",()=>r.dataset.scrollCounterOptions??"",n=>{let t=at(n,{});return !t.to&&t.to!==0&&(Q('initScrollCounter: element missing "to" in options JSON:',r),t.to=0),typeof t.format!="function"&&t.format!==void 0&&(Q('initScrollCounter: "format" must be a function, so it cannot come from JSON; use "decimals":',r),delete t.format),Vt(r,t)})):[]}function Tr(e=Ye()){return e?Array.from(e.querySelectorAll("[data-scroll-text]")).map(r=>it(r,"text",()=>r.dataset.scrollTextOptions??"",n=>Gt(r,at(n,{})))):[]}function xn(e=Ye()){return {draw:vr(e),animate:Er(e),counter:Sr(e),text:Tr(e)}}exports.initAll=xn;exports.initScrollAnimate=Er;exports.initScrollCounter=Sr;exports.initScrollDraw=vr;exports.initScrollText=Tr;exports.scrollDraw=wr;
|
package/dist/astro/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as ScrollDrawInstance } from '../types-
|
|
2
|
-
export { a as ScrollDrawOptions } from '../types-
|
|
3
|
-
export { s as scrollDraw } from '../scroll-draw-
|
|
1
|
+
import { S as ScrollDrawInstance } from '../types-B0YM4nQP.mjs';
|
|
2
|
+
export { a as ScrollDrawOptions } from '../types-B0YM4nQP.mjs';
|
|
3
|
+
export { s as scrollDraw } from '../scroll-draw-B4CadBz0.mjs';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Auto-initialises all elements with a [data-scroll-draw] attribute on the page.
|
|
@@ -39,12 +39,13 @@ declare function initScrollAnimate(root?: Element | Document | null): ScrollDraw
|
|
|
39
39
|
/**
|
|
40
40
|
* Auto-initialises all [data-scroll-counter] elements on the page.
|
|
41
41
|
* Options are read from the data-scroll-counter-options JSON attribute.
|
|
42
|
-
* The `to` value is required — pass it via JSON options.
|
|
42
|
+
* The `to` value is required — pass it via JSON options. `format` is a function,
|
|
43
|
+
* so it cannot come from JSON: use `decimals`, or call scrollCounter() yourself.
|
|
43
44
|
*
|
|
44
45
|
* @example
|
|
45
46
|
* <span
|
|
46
47
|
* data-scroll-counter
|
|
47
|
-
* data-scroll-counter-options='{"to":1250000,"
|
|
48
|
+
* data-scroll-counter-options='{"to":1250000,"decimals":0,"once":true}'
|
|
48
49
|
* />
|
|
49
50
|
*
|
|
50
51
|
* <script>
|
package/dist/astro/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as ScrollDrawInstance } from '../types-
|
|
2
|
-
export { a as ScrollDrawOptions } from '../types-
|
|
3
|
-
export { s as scrollDraw } from '../scroll-draw-
|
|
1
|
+
import { S as ScrollDrawInstance } from '../types-B0YM4nQP.js';
|
|
2
|
+
export { a as ScrollDrawOptions } from '../types-B0YM4nQP.js';
|
|
3
|
+
export { s as scrollDraw } from '../scroll-draw-Cs6Z5ype.js';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Auto-initialises all elements with a [data-scroll-draw] attribute on the page.
|
|
@@ -39,12 +39,13 @@ declare function initScrollAnimate(root?: Element | Document | null): ScrollDraw
|
|
|
39
39
|
/**
|
|
40
40
|
* Auto-initialises all [data-scroll-counter] elements on the page.
|
|
41
41
|
* Options are read from the data-scroll-counter-options JSON attribute.
|
|
42
|
-
* The `to` value is required — pass it via JSON options.
|
|
42
|
+
* The `to` value is required — pass it via JSON options. `format` is a function,
|
|
43
|
+
* so it cannot come from JSON: use `decimals`, or call scrollCounter() yourself.
|
|
43
44
|
*
|
|
44
45
|
* @example
|
|
45
46
|
* <span
|
|
46
47
|
* data-scroll-counter
|
|
47
|
-
* data-scroll-counter-options='{"to":1250000,"
|
|
48
|
+
* data-scroll-counter-options='{"to":1250000,"decimals":0,"once":true}'
|
|
48
49
|
* />
|
|
49
50
|
*
|
|
50
51
|
* <script>
|
package/dist/astro/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as scrollDraw}from'../chunk-
|
|
1
|
+
export{a as scrollDraw}from'../chunk-JPK2NJWO.mjs';import {a as a$2}from'../chunk-I45LCJUP.mjs';import {a as a$1}from'../chunk-KHQ7OGQK.mjs';import {a}from'../chunk-BFX2CSQ3.mjs';import {b}from'../chunk-WHFRS7IP.mjs';import'../chunk-OJFWQ6CU.mjs';import'../chunk-YWKPTYSG.mjs';import'../chunk-YZV4Z3EQ.mjs';import'../chunk-A4JCC3QQ.mjs';import'../chunk-DM6EDKWH.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-BCV4RAIX.mjs';import {b as b$1}from'../chunk-LFSU6LR3.mjs';function i(){return typeof document>"u"?null:document}var p=new WeakMap,g;function c(r,t,n,o){let l=p.get(r)??new Map;p.set(r,l);let f=()=>{let e=n(),s=l.get(t);s&&s.key===e||(s?.inst.destroy(),l.set(t,{inst:o(e),key:e,build:f,users:s?.users??0}));};f(),l.get(t).users++;let S=true;typeof MutationObserver<"u"&&(g??(g=new MutationObserver(e=>e.forEach(s=>p.get(s.target)?.forEach(O=>O.build())))),g.observe(r,{attributes:true,attributeFilter:["draw","animate","counter","text"].map(e=>`data-scroll-${e}-options`).concat("data-scroll-drawoptions")}));let a=()=>l.get(t)?.inst;return {destroy:()=>{let e=l.get(t);!S||!e||(S=false,!(--e.users>0)&&(e.inst.destroy(),l.delete(t)));},replay:()=>a()?.replay(),pause:()=>a()?.pause(),resume:()=>a()?.resume(),seek:e=>a()?.seek(e),getProgress:()=>a()?.getProgress()??0,refresh:()=>a()?.refresh?.()}}function u(r,t){try{return r?JSON.parse(r):t}catch{return t}}function E(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-draw]")).map(t=>c(t,"draw",()=>t.dataset.scrollDrawOptions??t.dataset.scrollDrawoptions??"",n=>b(t,u(n,{})))):[]}function A(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-animate]")).map(t=>c(t,"animate",()=>t.dataset.scrollAnimateOptions??"",n=>a(t,u(n,{props:{}})))):[]}function I(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-counter]")).map(t=>c(t,"counter",()=>t.dataset.scrollCounterOptions??"",n=>{let o=u(n,{});return !o.to&&o.to!==0&&(b$1('initScrollCounter: element missing "to" in options JSON:',t),o.to=0),typeof o.format!="function"&&o.format!==void 0&&(b$1('initScrollCounter: "format" must be a function, so it cannot come from JSON; use "decimals":',t),delete o.format),a$1(t,o)})):[]}function M(r=i()){return r?Array.from(r.querySelectorAll("[data-scroll-text]")).map(t=>c(t,"text",()=>t.dataset.scrollTextOptions??"",n=>a$2(t,u(n,{})))):[]}function H(r=i()){return {draw:E(r),animate:A(r),counter:I(r),text:M(r)}}export{H as initAll,A as initScrollAnimate,I as initScrollCounter,E as initScrollDraw,M as initScrollText};
|