svg-scroll-draw 2.16.1 → 2.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -2
- package/dist/angular/index.cjs +2 -2
- package/dist/angular/index.d.mts +45 -49
- package/dist/angular/index.d.ts +45 -49
- package/dist/angular/index.mjs +1 -1
- package/dist/astro/index.cjs +2 -2
- package/dist/astro/index.mjs +1 -1
- package/dist/cdn/svg-scroll-draw.dev.global.js +5 -2
- package/dist/cdn/svg-scroll-draw.global.js +2 -2
- package/dist/{chunk-OWMO2S3V.mjs → chunk-DIMNQPW5.mjs} +1 -1
- package/dist/chunk-HMSNYXKW.mjs +1 -0
- package/dist/chunk-LINFV2GK.mjs +3 -0
- package/dist/chunk-XSVTHCLO.mjs +1 -0
- package/dist/group/index.cjs +2 -2
- package/dist/group/index.mjs +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.mjs +1 -1
- package/dist/nuxt/index.cjs +2 -2
- package/dist/nuxt/index.mjs +1 -1
- package/dist/react/index.cjs +3 -3
- package/dist/react/index.mjs +1 -1
- package/dist/solid/index.cjs +3 -3
- package/dist/solid/index.d.mts +16 -11
- package/dist/solid/index.d.ts +16 -11
- package/dist/solid/index.mjs +1 -1
- package/dist/svelte/index.cjs +3 -3
- package/dist/svelte/index.d.mts +5 -5
- package/dist/svelte/index.d.ts +5 -5
- package/dist/svelte/index.mjs +1 -1
- package/dist/vue/index.cjs +2 -2
- package/dist/vue/index.d.mts +14 -7
- package/dist/vue/index.d.ts +14 -7
- package/dist/vue/index.mjs +1 -1
- package/dist/web-component/index.cjs +2 -2
- package/dist/web-component/index.mjs +1 -1
- package/package.json +1 -1
- package/dist/chunk-E4M2PB7B.mjs +0 -1
- package/dist/chunk-WDIHLRZZ.mjs +0 -3
package/dist/solid/index.d.ts
CHANGED
|
@@ -4,8 +4,13 @@ import { S as ScrollCounterOptions } from '../index-DxjUOIbK.js';
|
|
|
4
4
|
import { ScrollVideoOptions } from '../video/index.js';
|
|
5
5
|
import { ScrollTextOptions } from '../text/index.js';
|
|
6
6
|
|
|
7
|
+
/** Options as a plain object, or an accessor that keeps them live. */
|
|
8
|
+
type MaybeAccessor<T> = T | (() => T);
|
|
7
9
|
/**
|
|
8
10
|
* SolidJS hook — returns a ref setter to attach to any container element.
|
|
11
|
+
* Options can be an accessor (or a component's props) to keep them live:
|
|
12
|
+
* `useScrollDraw(() => ({ speed: speed() }))` rebuilds the draw when the
|
|
13
|
+
* signal changes. A plain object is read once.
|
|
9
14
|
*
|
|
10
15
|
* @example
|
|
11
16
|
* import { useScrollDraw } from 'svg-scroll-draw/solid';
|
|
@@ -15,7 +20,7 @@ import { ScrollTextOptions } from '../text/index.js';
|
|
|
15
20
|
* return <div ref={ref}><svg>...</svg></div>;
|
|
16
21
|
* }
|
|
17
22
|
*/
|
|
18
|
-
declare function useScrollDraw(options?: ScrollDrawOptions): (node: HTMLElement) => void;
|
|
23
|
+
declare function useScrollDraw(options?: MaybeAccessor<ScrollDrawOptions>): (node: HTMLElement) => void;
|
|
19
24
|
/**
|
|
20
25
|
* Returns both the ref setter and a getter for the live instance,
|
|
21
26
|
* so you can call instance.replay() from component logic.
|
|
@@ -25,7 +30,7 @@ declare function useScrollDraw(options?: ScrollDrawOptions): (node: HTMLElement)
|
|
|
25
30
|
* <div ref={ref}><svg>...</svg></div>
|
|
26
31
|
* <button onClick={() => getInstance()?.replay()}>Replay</button>
|
|
27
32
|
*/
|
|
28
|
-
declare function createScrollDraw(options?: ScrollDrawOptions): {
|
|
33
|
+
declare function createScrollDraw(options?: MaybeAccessor<ScrollDrawOptions>): {
|
|
29
34
|
ref: (node: HTMLElement) => void;
|
|
30
35
|
getInstance: () => ScrollDrawInstance | undefined;
|
|
31
36
|
};
|
|
@@ -44,7 +49,7 @@ declare function createScrollDraw(options?: ScrollDrawOptions): {
|
|
|
44
49
|
* return <div ref={ref}>...</div>;
|
|
45
50
|
* }
|
|
46
51
|
*/
|
|
47
|
-
declare function useScrollAnimate(options: ScrollAnimateOptions): (node: HTMLElement) => void;
|
|
52
|
+
declare function useScrollAnimate(options: MaybeAccessor<ScrollAnimateOptions>): (node: HTMLElement) => void;
|
|
48
53
|
/**
|
|
49
54
|
* Returns both the ref setter and a getter for the live instance.
|
|
50
55
|
*
|
|
@@ -55,7 +60,7 @@ declare function useScrollAnimate(options: ScrollAnimateOptions): (node: HTMLEle
|
|
|
55
60
|
* <div ref={ref}>...</div>
|
|
56
61
|
* <button onClick={() => getInstance()?.replay()}>Replay</button>
|
|
57
62
|
*/
|
|
58
|
-
declare function createScrollAnimate(options: ScrollAnimateOptions): {
|
|
63
|
+
declare function createScrollAnimate(options: MaybeAccessor<ScrollAnimateOptions>): {
|
|
59
64
|
ref: (node: HTMLElement) => void;
|
|
60
65
|
getInstance: () => ScrollDrawInstance | undefined;
|
|
61
66
|
};
|
|
@@ -70,7 +75,7 @@ declare function createScrollAnimate(options: ScrollAnimateOptions): {
|
|
|
70
75
|
* return <span ref={ref} />;
|
|
71
76
|
* }
|
|
72
77
|
*/
|
|
73
|
-
declare function useScrollCounter(options: ScrollCounterOptions): (node: HTMLElement) => void;
|
|
78
|
+
declare function useScrollCounter(options: MaybeAccessor<ScrollCounterOptions>): (node: HTMLElement) => void;
|
|
74
79
|
/**
|
|
75
80
|
* Returns both the ref setter and a getter for the live counter instance.
|
|
76
81
|
*
|
|
@@ -79,7 +84,7 @@ declare function useScrollCounter(options: ScrollCounterOptions): (node: HTMLEle
|
|
|
79
84
|
* <span ref={ref} />
|
|
80
85
|
* <button onClick={() => getInstance()?.replay()}>Replay</button>
|
|
81
86
|
*/
|
|
82
|
-
declare function createScrollCounter(options: ScrollCounterOptions): {
|
|
87
|
+
declare function createScrollCounter(options: MaybeAccessor<ScrollCounterOptions>): {
|
|
83
88
|
ref: (node: HTMLElement) => void;
|
|
84
89
|
getInstance: () => ScrollDrawInstance | undefined;
|
|
85
90
|
};
|
|
@@ -94,7 +99,7 @@ declare function createScrollCounter(options: ScrollCounterOptions): {
|
|
|
94
99
|
* return <video ref={ref} src="/hero.mp4" muted playsinline preload="auto" />;
|
|
95
100
|
* }
|
|
96
101
|
*/
|
|
97
|
-
declare function useScrollVideo(options?: ScrollVideoOptions): (node: HTMLVideoElement) => void;
|
|
102
|
+
declare function useScrollVideo(options?: MaybeAccessor<ScrollVideoOptions>): (node: HTMLVideoElement) => void;
|
|
98
103
|
/**
|
|
99
104
|
* Returns both the ref setter and a getter for the live video instance.
|
|
100
105
|
*
|
|
@@ -102,7 +107,7 @@ declare function useScrollVideo(options?: ScrollVideoOptions): (node: HTMLVideoE
|
|
|
102
107
|
* const { ref, getInstance } = createScrollVideo({ once: false });
|
|
103
108
|
* <video ref={ref} src="/hero.mp4" muted playsinline preload="auto" />
|
|
104
109
|
*/
|
|
105
|
-
declare function createScrollVideo(options?: ScrollVideoOptions): {
|
|
110
|
+
declare function createScrollVideo(options?: MaybeAccessor<ScrollVideoOptions>): {
|
|
106
111
|
ref: (node: HTMLVideoElement) => void;
|
|
107
112
|
getInstance: () => ScrollDrawInstance | undefined;
|
|
108
113
|
};
|
|
@@ -117,7 +122,7 @@ declare function createScrollVideo(options?: ScrollVideoOptions): {
|
|
|
117
122
|
* return <h2 ref={ref}>Animate on scroll.</h2>;
|
|
118
123
|
* }
|
|
119
124
|
*/
|
|
120
|
-
declare function useScrollText(options?: ScrollTextOptions): (node: HTMLElement) => void;
|
|
125
|
+
declare function useScrollText(options?: MaybeAccessor<ScrollTextOptions>): (node: HTMLElement) => void;
|
|
121
126
|
/**
|
|
122
127
|
* Returns both the ref setter and a getter for the live text instance.
|
|
123
128
|
*
|
|
@@ -126,9 +131,9 @@ declare function useScrollText(options?: ScrollTextOptions): (node: HTMLElement)
|
|
|
126
131
|
* <p ref={ref}>Hello world.</p>
|
|
127
132
|
* <button onClick={() => getInstance()?.replay()}>Replay</button>
|
|
128
133
|
*/
|
|
129
|
-
declare function createScrollText(options?: ScrollTextOptions): {
|
|
134
|
+
declare function createScrollText(options?: MaybeAccessor<ScrollTextOptions>): {
|
|
130
135
|
ref: (node: HTMLElement) => void;
|
|
131
136
|
getInstance: () => ScrollDrawInstance | undefined;
|
|
132
137
|
};
|
|
133
138
|
|
|
134
|
-
export { ScrollAnimateOptions, ScrollCounterOptions, ScrollDrawOptions, ScrollTextOptions, ScrollVideoOptions, createScrollAnimate, createScrollCounter, createScrollDraw, createScrollText, createScrollVideo, useScrollAnimate, useScrollCounter, useScrollDraw, useScrollText, useScrollVideo };
|
|
139
|
+
export { type MaybeAccessor, ScrollAnimateOptions, ScrollCounterOptions, ScrollDrawOptions, ScrollTextOptions, ScrollVideoOptions, createScrollAnimate, createScrollCounter, createScrollDraw, createScrollText, createScrollVideo, useScrollAnimate, useScrollCounter, useScrollDraw, useScrollText, useScrollVideo };
|
package/dist/solid/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$3}from'../chunk-JC5BD4RB.mjs';import {a as a$
|
|
1
|
+
import {a,b}from'../chunk-XSVTHCLO.mjs';import {a as a$3}from'../chunk-JC5BD4RB.mjs';import {a as a$4}from'../chunk-SNCRC6BA.mjs';import {a as a$2}from'../chunk-4MH5SQTH.mjs';import {a as a$1}from'../chunk-QJ4H2HW3.mjs';import {b as b$1}from'../chunk-LINFV2GK.mjs';import'../chunk-OJFWQ6CU.mjs';import'../chunk-YWKPTYSG.mjs';import'../chunk-YZV4Z3EQ.mjs';import'../chunk-PEFR3ZB7.mjs';import'../chunk-DM6EDKWH.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-BCV4RAIX.mjs';import'../chunk-LFSU6LR3.mjs';import {createEffect,onCleanup,untrack}from'solid-js';function o(e,f){let l,t,c,r;return createEffect(()=>{r=typeof e=="function"?e():e;let n=a(r);!l||n===c||(c=n,untrack(()=>{t?.destroy(),t=f(l,b(r,()=>r));}));}),onCleanup(()=>{t?.destroy(),t=c=void 0;}),{ref:n=>{l=n;},getInstance:()=>t}}function D(e={}){return o(e,b$1).ref}function V(e={}){return o(e,b$1)}function C(e){return o(e,a$1).ref}function H(e){return o(e,a$1)}function L(e){return o(e,a$2).ref}function g(e){return o(e,a$2)}function I(e={}){return o(e,a$3).ref}function k(e={}){return o(e,a$3)}function v(e={}){return o(e,a$4).ref}function j(e={}){return o(e,a$4)}export{H as createScrollAnimate,g as createScrollCounter,V as createScrollDraw,j as createScrollText,k as createScrollVideo,C as useScrollAnimate,L as useScrollCounter,D as useScrollDraw,v as useScrollText,I as useScrollVideo};
|
package/dist/svelte/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 Ct=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,Pt=/[MmLlHhVvCcSsQqTtAaZz]/g;function Kt(e,n,r){if(!Be)return;let t=(e.match(Pt)??[]).join("").toUpperCase(),l=(n.match(Pt)??[]).join("").toUpperCase(),s=(e.match(Ct)??[]).length,c=(n.match(Ct)??[]).length;if(t!==l){we(`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&&we(`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 ct(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 Je(e,n={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:r,...t}=n,l=r?{...Tt[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:p="linear",trigger:T={},stagger:V=0,direction:A="forward",once:ne=false,debug:Ce=false,axis:B="y",scrollContainer:J,autoReverse:X=false,delay:G=0,strokeColor:M,strokeWidth:C,fillOpacity:L,waypoints:w,velocityScale:O=false,threshold:k=0,rootMargin:P="0px",repeat:S=0,repeatDelay:oe=0,morphTo:D,clip:se,autoplay:ie=false,duration:ee=1e3,native:ae=true,onProgress:d,onStart:x,onComplete:g,onEnter:$,onLeave:E,onEnterBack:R,onLeaveBack:fe}=l,Q=se===true?"left":typeof se=="string"?se:false,Ee=typeof p=="function"?p:re[p]??re.linear,Pe=de(T.start??"top bottom"),Ne=de(T.end??"bottom top"),ve=typeof J=="string"?document.querySelector(J):J??null,Se=Array.isArray(M)?M[0]:null,le=Array.isArray(M)?M[1]:typeof M=="string"?M:null,ce=Array.isArray(C)?C[0]:null,j=Array.isArray(C)?C[1]:typeof C=="number"?C:null,pe=Array.isArray(L)?L[0]:null,Z=Array.isArray(L)?L[1]:typeof L=="number"?L:null;function Ie(o){let a=o*100;switch(Q){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${o*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let z=Q?[]:Array.from(e.querySelectorAll(c)),I=[],i=[],f=0,ge=0,H=false,_=false,q=0,Ae=false,ye=-1,te=-1,U=false,he=0,ke=0,Fe,ot=null;function mt(){ot?.destroy(),ot=null;}let Re=new Set,ft=NaN,He=true,Ge=-1,pt=performance.now(),Ve=NaN;function st(){return ve?B==="x"?ve.scrollLeft:ve.scrollTop:B==="x"?window.scrollX:window.scrollY}function dt(){return ve?B==="x"?ve.clientWidth:ve.clientHeight:B==="x"?window.innerWidth:window.innerHeight}function gt(){let o=Ze(e,ve,B);return xe(o,o.scroll,dt(),Pe,Ne)}function yt(){(({tStart:f,tEnd:ge}=gt())),Ce&&Be&&(mt(),ot=Zt(f,ge,B));}function it(o,a=gt){Le(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:a});let b=o.destroy;return o.destroy=()=>{b.call(o),$e(e);},o}function Nt(o,a){if(e.style.setProperty("--scroll-draw-progress",String(o)),Q){let b=a==="reverse"?1-o:o;e.style.clipPath=Ie(b);return}z.forEach((b,ue)=>{b.style.strokeDashoffset=a==="reverse"?`${I[ue]*o}`:`${I[ue]*(1-o)}`,m&&(b.style.opacity=a==="reverse"?`${1-o}`:`${o}`),Se&&le?b.style.stroke=_e(Se,le,o):le&&(b.style.stroke=le),ce!==null&&j!==null?b.style.strokeWidth=`${ce+(j-ce)*o}`:j!==null&&(b.style.strokeWidth=`${j}`),pe!==null&&Z!==null?b.style.fillOpacity=`${pe+(Z-pe)*o}`:Z!==null&&(b.style.fillOpacity=`${Z}`),D&&b.tagName.toLowerCase()==="path"&&i[ue]&&b.setAttribute("d",ct(i[ue],D,o));});}function je(){if(e.style.setProperty("--scroll-draw-progress","0"),Q){e.style.clipPath=Ie(0);return}z.forEach((o,a)=>{o.style.strokeDasharray=`${I[a]}`,o.style.strokeDashoffset=A==="reverse"?"0":`${I[a]}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",Se&&(o.style.stroke=Se),ce!==null&&(o.style.strokeWidth=`${ce}`),pe!==null&&(o.style.fillOpacity=`${pe}`),D&&o.tagName.toLowerCase()==="path"&&i[a]&&o.setAttribute("d",i[a]);});}if(z.forEach(o=>{Qt(o);let a=ze(o);I.push(a);let b=o.tagName.toLowerCase()==="path";b?i.push(o.getAttribute("d")??""):i.push(""),D&&(b?Kt(i[i.length-1],D,o):we(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),s?(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=A==="reverse"?`${a}`:"0",m&&(o.style.opacity="1"),le&&(o.style.stroke=le),j!==null&&(o.style.strokeWidth=`${j}`),Z!==null&&(o.style.fillOpacity=`${Z}`),D&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",D)):(o.style.strokeDasharray=`${a}`,o.style.strokeDashoffset=A==="reverse"?"0":`${a}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",Se&&(o.style.stroke=Se),ce!==null&&(o.style.strokeWidth=`${ce}`),pe!==null&&(o.style.fillOpacity=`${pe}`));}),Q){if(s)return e.style.clipPath=Ie(1),g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=Ie(0);}else if(s)return g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let ht=typeof p=="string"?Ke(p):null;function Vt(){return !(ae===false||!Xt()||!z.length||!ht||Q||B!=="y"||ve||u!==1||V!==0||ne||X||O!==false||D||w||S||G>0||d||x||g||$||E||R||fe||M!=null||C!=null||L!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function zt(){let o=++Yt,a=`svg-scroll-draw-${o}`,b=`svg-scroll-draw-host-${o}`,ue=`--svg-scroll-draw-${o}`,De=A==="reverse"?"0":"var(--ssd-len)",Oe=A==="reverse"?"var(--ssd-len)":"0",Me=`stroke-dashoffset:${De};`,v=`stroke-dashoffset:${Oe};`;m&&(Me+=`opacity:${A==="reverse"?1:0};`,v+=`opacity:${A==="reverse"?0:1};`);let F=document.createElement("style");F.setAttribute("data-svg-scroll-draw",""),F.textContent=`@keyframes ${a}{from{${Me}}to{${v}}}.${b}{view-timeline-name:${ue};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ht};animation-fill-mode:both;animation-timeline:${ue};animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(b);function me(y,Y){y.style.setProperty("--ssd-len",String(I[Y])),y.style.strokeDasharray=`${I[Y]}`,y.style.strokeDashoffset="",y.style.opacity="",y.style.animationPlayState="",y.classList.add(a);}z.forEach(me);let h=false,N=-1;function W(){if(N>=0)return N;let y=e.getBoundingClientRect(),{tStart:Y,tEnd:Te}=xe({top:y.top,height:y.height},st(),dt(),Pe,Ne);return Ee(K(st(),Y,Te,u))}return {destroy(){e.classList.remove(b),z.forEach(y=>{y.classList.remove(a),y.style.removeProperty("--ssd-len"),y.style.animationPlayState="";}),F.remove();},replay(){h=false,N=-1,z.forEach(me);},pause(){h=true,z.forEach(y=>{y.style.animationPlayState="paused";});},resume(){h&&(h=false,z.forEach(y=>{y.style.animationPlayState="running";}));},seek(y){let Y=Math.min(1,Math.max(0,y));N=Y,h=true,z.forEach((Te,be)=>{Te.classList.remove(a),Te.style.strokeDashoffset=A==="reverse"?`${I[be]*Y}`:`${I[be]*(1-Y)}`,m&&(Te.style.opacity=A==="reverse"?`${1-Y}`:`${Y}`);});},getProgress(){return W()},refresh(){z.forEach((y,Y)=>{I[Y]=ze(y),y.style.setProperty("--ssd-len",String(I[Y])),y.style.strokeDasharray=`${I[Y]}`;});}}}if(Vt())return it(zt());function _t(){let o=Math.max(1,ee),a=0,b=0,ue=false;function De(h){let N=true;if(Q){let W=Math.min(1,Math.max(0,h/o)),y=Ee(W);he=y,e.style.setProperty("--scroll-draw-progress",String(y)),e.style.clipPath=Ie(A==="reverse"?1-y:y),d?.(y),W<1&&(N=false);}else z.forEach((W,y)=>{let Y=y*V*o,Te=Math.min(1,Math.max(0,(h-Y)/o)),be=Ee(Te);W.style.strokeDashoffset=A==="reverse"?`${I[y]*be}`:`${I[y]*(1-be)}`,m&&(W.style.opacity=A==="reverse"?`${1-be}`:`${be}`),Se&&le?W.style.stroke=_e(Se,le,be):le&&(W.style.stroke=le),ce!==null&&j!==null?W.style.strokeWidth=`${ce+(j-ce)*be}`:j!==null&&(W.style.strokeWidth=`${j}`),pe!==null&&Z!==null?W.style.fillOpacity=`${pe+(Z-pe)*be}`:Z!==null&&(W.style.fillOpacity=`${Z}`),D&&W.tagName.toLowerCase()==="path"&&i[y]&&W.setAttribute("d",ct(i[y],D,be)),y===0&&(he=be,d?.(be),e.style.setProperty("--scroll-draw-progress",String(be))),Te<1&&(N=false);});if(w){let W=Math.min(1,Math.max(0,h/o)),y=Ee(W);for(let Y in w){let Te=parseFloat(Y);y>=Te&&!Re.has(Te)&&(Re.add(Te),w[Y]?.());}}return N}function Oe(h){if(U)return;let N=h-a;_||(_=true,x?.());let W=De(N);if(W&&!H){H=true,De(o*(1+Math.max(0,z.length-1)*V)),g?.(),ke<(S==="infinite"?1/0:S??0)&&(ke++,Fe=setTimeout(()=>{a=performance.now(),_=false,H=false,Re.clear(),je(),q=requestAnimationFrame(Oe);},oe));return}W||(q=requestAnimationFrame(Oe));}function Me(){cancelAnimationFrame(q),clearTimeout(Fe),a=performance.now(),b=0,U=false,_=false,H=false,ke=0,ue=true,he=0,Re.clear(),je(),q=requestAnimationFrame(Oe);}let v=new IntersectionObserver(h=>{h.forEach(N=>{N.isIntersecting&&!(ne&&H)?Me():!N.isIntersecting&&!ne&&!H&&(cancelAnimationFrame(q),clearTimeout(Fe),ue=false);});},{root:ve??null,threshold:k,rootMargin:P}),F;function me(){clearTimeout(F),F=setTimeout(()=>{z.forEach((h,N)=>{I[N]=ze(h),h.style.strokeDasharray=`${I[N]}`;});},150);}return window.addEventListener("resize",me),window.addEventListener("orientationchange",me),G>0?setTimeout(()=>v.observe(e),G):v.observe(e),{destroy(){cancelAnimationFrame(q),clearTimeout(Fe),v.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),clearTimeout(F);},replay(){ke=0,Me();},pause(){U||!ue||(U=true,b=performance.now()-a,cancelAnimationFrame(q));},resume(){U&&(U=false,ue=true,a=performance.now()-b,q=requestAnimationFrame(Oe));},seek(h){let N=Math.min(1,Math.max(0,h));he=N,U=true,b=N*o,a=performance.now()-b,cancelAnimationFrame(q),De(b);},getProgress(){return he},refresh(){clearTimeout(F),z.forEach((h,N)=>{I[N]=ze(h),h.style.strokeDasharray=`${I[N]}`;});}}}if(ie)return it(_t());yt();function Ue(){if(!Ae||U)return;let o=performance.now(),a=st();if(!He&&O===false&&a===ft){q=requestAnimationFrame(Ue);return}He=false,ft=a;let b=u;if(O!==false){let v=o-pt,F=v>0?Math.abs(a-(Ge<0?a:Ge))/v:0;b=u*Math.max(.2,1+F*(typeof O=="number"?O:1)*.04);}Ge=a,pt=o;let ue=X?te===-1||a>=te?"forward":"reverse":A;te=a;let De=ge-f,Oe=true,Me=De===0?0:(a-f)/De;if(isNaN(Ve)||(Ve<=0&&Me>0?$?.():Ve>0&&Me<=0&&fe?.(),Ve<1&&Me>=1?E?.():Ve>=1&&Me<1&&R?.()),Ve=Me,Q){let v=Ee(K(a,f,ge,b));ne&&!X&&(ye=Math.max(ye,v),v=ye),he=v,e.style.setProperty("--scroll-draw-progress",String(v));let F=ue==="reverse"?1-v:v;e.style.clipPath=Ie(F),d?.(v),!_&&K(a,f,ge,b)>0&&(_=true,x?.()),v>=1&&!H?(H=true,g?.(),ke<(S==="infinite"?1/0:S??0)&&(ke++,Fe=setTimeout(()=>{ye=-1,_=false,H=false,e.style.clipPath=Ie(0);},oe))):v<1&&!ne&&(H=false),q=requestAnimationFrame(Ue);return}if(z.forEach((v,F)=>{let me=F*V*De,h=Ee(K(a,f+me,ge+me,b));ne&&!X&&(ye=Math.max(ye,h),h=ye),he=h,v.style.strokeDashoffset=ue==="reverse"?`${I[F]*h}`:`${I[F]*(1-h)}`,m&&(v.style.opacity=ue==="reverse"?`${1-h}`:`${h}`),Se&&le?v.style.stroke=_e(Se,le,h):le&&(v.style.stroke=le),ce!==null&&j!==null?v.style.strokeWidth=`${ce+(j-ce)*h}`:j!==null&&(v.style.strokeWidth=`${j}`),pe!==null&&Z!==null?v.style.fillOpacity=`${pe+(Z-pe)*h}`:Z!==null&&(v.style.fillOpacity=`${Z}`),D&&v.tagName.toLowerCase()==="path"&&i[F]&&v.setAttribute("d",ct(i[F],D,h)),F===0&&(d?.(h),e.style.setProperty("--scroll-draw-progress",String(h))),h<1&&(Oe=false);}),w){let v=Ee(K(a,f,ge,b));for(let F in w){let me=parseFloat(F);v>=me&&!Re.has(me)&&(Re.add(me),w[F]?.());}}!_&&K(a,f,ge,b)>0&&(_=true,x?.()),Oe&&!H?(H=true,g?.(),ke<(S==="infinite"?1/0:S??0)&&(ke++,Fe=setTimeout(()=>{ye=-1,_=false,H=false,Re.clear(),je(),He=true;},oe))):!Oe&&!ne&&(H=false),q=requestAnimationFrame(Ue);}let at=false;function Ye(){at||(at=true,q=requestAnimationFrame(function(){Ue();}));}function Xe(){at=false,cancelAnimationFrame(q);}let lt=new IntersectionObserver(o=>{o.forEach(a=>{Ae=a.isIntersecting,Ae&&!U?(He=true,Ye()):Xe();});},{root:ve??null,threshold:k,rootMargin:P});function bt(){z.forEach((o,a)=>{I[a]=ze(o),o.style.strokeDasharray=`${I[a]}`;}),yt(),He=true;}let Qe;function qe(){clearTimeout(Qe),Qe=setTimeout(bt,150);}window.addEventListener("resize",qe),window.addEventListener("orientationchange",qe);let We;return typeof ResizeObserver<"u"&&(We=new ResizeObserver(()=>qe()),We.observe(document.body),We.observe(document.documentElement),We.observe(e)),G>0?setTimeout(()=>lt.observe(e),G):lt.observe(e),it({destroy(){cancelAnimationFrame(q),clearTimeout(Fe),Xe(),lt.disconnect(),We?.disconnect(),window.removeEventListener("resize",qe),window.removeEventListener("orientationchange",qe),clearTimeout(Qe),mt();},replay(){ye=-1,te=-1,Ge=-1,_=false,H=false,ke=0,U=false,he=0,Re.clear(),clearTimeout(Fe),je(),He=true,Ae&&Ye();},pause(){U=true,Xe();},resume(){U&&(U=false,He=true,Ae&&Ye());},seek(o){let a=Math.min(1,Math.max(0,o));he=a,ye=a,U=true,Xe(),Nt(a,A),He=true;},getProgress(){return he},refresh(){clearTimeout(Qe),bt(),Ae&&!U&&Ye();}},()=>({tStart:f,tEnd:ge}))}function Jt(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function It(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=It(e),l=It(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,p)=>`${m}${s.units[p]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,p)=>`${m}${u.units[p]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,p)=>`${m+(u.nums[p]-m)*r}${s.units[p]}`).join(", ")})`}).join(" ")}function Ot(e,n,r){if(typeof e=="number"&&typeof n=="number")return String(e+(n-e)*r);let t=String(e),l=String(n);if(Jt(t))return _e(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,kt="--scroll-draw-progress";function or(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function et(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:p,native:T=true,velocityScale:V=false,respectReducedMotion:A=true,triggerElement:ne,onProgress:Ce,onComplete:B,onEnter:J,onLeave:X,onEnterBack:G,onLeaveBack:M}=n,C=A&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,L=typeof s=="function"?s:re[s]??re["ease-out"],w=de(l.start??"top bottom"),O=de(l.end??"bottom top"),k=ne??e,P=typeof p=="string"?document.querySelector(p):p??null,S=Object.entries(t).map(([i,f])=>({prop:tr(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function oe(){let i=window.getComputedStyle(e);for(let f of S)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function D(){for(let i of S)e.style.setProperty(i.prop,String(i.to));}let se=new Map;for(let i of [...S.map(f=>f.prop),kt])se.set(i,e.style.getPropertyValue(i));function ie(){for(let[i,f]of se)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if(C)return D(),B?.(),{...r,destroy:ie,getProgress:()=>1};oe();let ee=typeof s=="string"?Ke(s):null;function ae(){if(!T||!or()||!ee||m!=="y"||P||k!==e||u||c!==1||Ce||B||J||X||G||M||V!==false||(l.start??"top bottom").trim()!=="top bottom"||(l.end??"bottom top").trim()!=="bottom top")return false;for(let i of S)if(!rr.has(i.prop))return false;return true}function d(){let i=`ssd-a-${++nr}`,f=S.map(te=>`${te.prop}:${te.from}`).join(";"),ge=S.map(te=>`${te.prop}:${te.to}`).join(";"),H=document.createElement("style");H.setAttribute("data-ssd-animate",""),H.textContent=`@keyframes ${i}{from{${f}}to{${ge}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${ee};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(H),e.classList.add(i);let _=()=>m==="x"?window.scrollX:window.scrollY,q=()=>m==="x"?window.innerWidth:window.innerHeight,Ae=()=>{let te=e.getBoundingClientRect();return xe({top:te.top,height:te.height},_(),q(),w,O)};Le(e,{type:"animate",getProgress:()=>ye.getProgress(),getTrigger:Ae});let ye={destroy(){e.classList.remove(i),H.remove(),e.style.animationPlayState="",ie(),$e(e);},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(te){let U=Math.min(1,Math.max(0,te));e.classList.remove(i);for(let he of S)e.style.setProperty(he.prop,Ot(he.from,he.to,U));},getProgress(){let{tStart:te,tEnd:U}=Ae();return L(K(_(),te,U,c))}};return ye}if(ae())return d();let x=0,g=0,$=0,E=false,R=false,fe=-1,Q=0,Ee=false,Pe=NaN,Ne=-1,ve=0,Se=()=>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=Ze(k,P,m),f=xe(i,i.scroll,le(),w,O);x=f.tStart,g=f.tEnd;}function j(i){e.style.setProperty(kt,String(i));for(let f of S)e.style.setProperty(f.prop,Ot(f.from,f.to,i));Ce?.(i);}function pe(i){if(isNaN(Pe)){Pe=i;return}Pe<=0&&i>0?J?.():Pe>0&&i<=0&&M?.(),Pe<1&&i>=1?X?.():Pe>=1&&i<1&&G?.(),Pe=i;}function Z(){if(!E||R)return;let i=performance.now(),f=Se(),ge=c;if(V!==false){let q=i-ve,Ae=q>0?Math.abs(f-(Ne<0?f:Ne))/q:0;ge=c*Math.max(.2,1+Ae*(typeof V=="number"?V:1)*.04);}Ne=f,ve=i;let H=g===x?0:(f-x)/(g-x);pe(H);let _=L(K(f,x,g,ge));u&&(fe=Math.max(fe,_),_=fe),Q=_,j(_),_>=1&&!Ee?(Ee=true,B?.()):_<1&&!u&&(Ee=false),$=requestAnimationFrame(Z);}ce(),g===x&&we("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let i=L(K(Se(),x,g,c));u&&i>0&&(fe=i),Q=i,j(i);}let Ie=new IntersectionObserver(i=>{i.forEach(f=>{E=f.isIntersecting,E&&!R?$=requestAnimationFrame(Z):cancelAnimationFrame($);});},{root:P??null}),z;function I(){clearTimeout(z),z=setTimeout(ce,150);}return window.addEventListener("resize",I),window.addEventListener("orientationchange",I),Ie.observe(e),Le(e,{type:"animate",getProgress:()=>Q,getTrigger:()=>({tStart:x,tEnd:g})}),{destroy(){cancelAnimationFrame($),Ie.disconnect(),window.removeEventListener("resize",I),window.removeEventListener("orientationchange",I),clearTimeout(z),ie(),$e(e);},replay(){fe=-1,Ee=false,Q=0,R=false,j(0);},pause(){R=true,cancelAnimationFrame($);},resume(){R&&(R=false,E&&($=requestAnimationFrame(Z)));},seek(i){let f=Math.min(1,Math.max(0,i));Q=f,fe=f,R=true,cancelAnimationFrame($),j(f);},getProgress(){return Q}}}var ut={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function tt(e,n){if(typeof window>"u")return ut;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return we("scrollCounter: element not found:",e),ut;let t=r,{from:l=0,to:s,format:c,easing:u="ease-out",trigger:m={},once:p=true,decimals:T,onComplete:V}=n,A=T!==void 0?d=>d.toFixed(T):c??(d=>String(Math.round(d))),ne=typeof u=="function"?u:re[u]??re["ease-out"],Ce=de(m.start??"top 80%"),B=de(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=A(s),V?.(),ut;let X=0,G=0,M=0,C=false,L=false,w=-1,O=0,k=false,P=()=>window.scrollY,S=()=>window.innerHeight;function oe(){let d=t.getBoundingClientRect(),x=xe({top:d.top,height:d.height},P(),S(),Ce,B);X=x.tStart,G=x.tEnd;}function D(d){t.textContent=A(l+(s-l)*d),t.style.setProperty("--scroll-draw-progress",String(d));}function se(){if(!C||L)return;let d=ne(K(P(),X,G,1));p&&(w=Math.max(w,d),d=w),O=d,D(d),d>=1&&!k?(k=true,V?.()):d<1&&!p&&(k=false),M=requestAnimationFrame(se);}oe();{let d=ne(K(P(),X,G,1));p&&d>0&&(w=d),O=d,D(d);}let ie=new IntersectionObserver(d=>{d.forEach(x=>{C=x.isIntersecting,C&&!L?M=requestAnimationFrame(se):cancelAnimationFrame(M);});}),ee;function ae(){clearTimeout(ee),ee=setTimeout(oe,150);}return window.addEventListener("resize",ae),window.addEventListener("orientationchange",ae),ie.observe(t),Le(t,{type:"counter",getProgress:()=>O,getTrigger:()=>({tStart:X,tEnd:G})}),{destroy(){cancelAnimationFrame(M),ie.disconnect(),window.removeEventListener("resize",ae),window.removeEventListener("orientationchange",ae),clearTimeout(ee),$e(t);},replay(){w=-1,k=false,O=0,L=false,D(0);},pause(){L=true,cancelAnimationFrame(M);},resume(){L&&(L=false,C&&(M=requestAnimationFrame(se)));},seek(d){let x=Math.min(1,Math.max(0,d));O=x,w=x,L=true,cancelAnimationFrame(M),D(x);},getProgress(){return O}}}var Dt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function rt(e,n={}){if(typeof window>"u")return Dt;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return we("scrollVideo: <video> element not found:",e),Dt;let t=r,{trigger:l={},easing:s="linear",once:c=false,axis:u="y",preload:m="auto",onReady:p,onComplete:T,onProgress:V}=n,A=window.matchMedia("(prefers-reduced-motion: reduce)").matches,ne=typeof s=="function"?s:re[s]??re.linear,Ce=de(l.start??"top top"),B=de(l.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let J=n.from??0,X=n.to,G=0,M=0,C=0,L=false,w=false,O=-1,k=0,P=false,S=false,oe=()=>u==="x"?window.scrollX:window.scrollY,D=()=>u==="x"?window.innerWidth:window.innerHeight;function se(){let E=t.getBoundingClientRect(),R=u==="x"?E.left:E.top,fe=u==="x"?E.width:E.height,Q=xe({top:R,height:fe},oe(),D(),Ce,B);G=Q.tStart,M=Q.tEnd;}let ie=NaN;function ee(E){if(!S)return;let R=X??t.duration??0,fe=J+(R-J)*E;fe!==ie&&(ie=fe,t.currentTime=fe),t.style.setProperty("--scroll-draw-progress",String(E)),V?.(E);}function ae(){if(!L||w||!S||A)return;let E=ne(K(oe(),G,M,1));c&&(O=Math.max(O,E),E=O),k=E,ee(E),E>=1&&!P?(P=true,T?.()):E<1&&!c&&(P=false),C=requestAnimationFrame(ae);}function d(){if(S=true,X===void 0&&(X=t.duration),A){ee(1),p?.();return}se(),p?.(),L&&!w&&(C=requestAnimationFrame(ae));}t.readyState>=1?d():t.addEventListener("loadedmetadata",d,{once:true}),S||se();let x=new IntersectionObserver(E=>{E.forEach(R=>{L=R.isIntersecting,L&&!w&&S?C=requestAnimationFrame(ae):cancelAnimationFrame(C);});}),g;function $(){clearTimeout(g),g=setTimeout(se,150);}return window.addEventListener("resize",$),window.addEventListener("orientationchange",$),x.observe(t),Le(t,{type:"video",getProgress:()=>k,getTrigger:()=>({tStart:G,tEnd:M})}),{destroy(){cancelAnimationFrame(C),x.disconnect(),t.removeEventListener("loadedmetadata",d),window.removeEventListener("resize",$),window.removeEventListener("orientationchange",$),clearTimeout(g),$e(t);},replay(){O=-1,P=false,k=0,w=false,ie=NaN,ee(0);},pause(){w=true,cancelAnimationFrame(C);},resume(){w&&(w=false,L&&S&&(C=requestAnimationFrame(ae)));},seek(E){let R=Math.min(1,Math.max(0,E));k=R,O=R,w=true,cancelAnimationFrame(C),ie=NaN,ee(R);},getProgress(){return k}}}function Ht(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 Ft(e){let n=Ht(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,p)=>{let T=m.nextElementSibling;u.appendChild(m),p<c.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),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 Rt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function nt(e,n={}){if(typeof window>"u")return Rt;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return we("scrollText: element not found:",e),Rt;let t=r,{split:l="words",stagger:s=.04,easing:c="ease-out",from:u={opacity:0,y:24},trigger:m={},once:p=true,onComplete:T}=n,V=window.matchMedia("(prefers-reduced-motion: reduce)").matches,A=typeof c=="function"?c:re[c]??re["ease-out"],ne=de(m.start??"top 85%"),Ce=de(m.end??"top 40%"),B=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let J;l==="chars"?J=sr(t):l==="lines"?J=Ft(t):J=Ht(t);let X=J.length;function G(g,$){u?.opacity!==void 0&&(g.style.opacity=String(u.opacity+(1-u.opacity)*$));let E=ar($,u);E&&(g.style.transform=E);}function M(g){t.style.setProperty("--scroll-draw-progress",String(g)),J.forEach(($,E)=>{let R=A(ir(g,E,X,s));G($,R);});}if(V)return M(1),T?.(),{destroy(){t.innerHTML=B,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};M(0);let C=0,L=0,w=0,O=false,k=false,P=-1,S=0,oe=false,D=()=>window.scrollY,se=()=>window.innerHeight;function ie(){let g=t.getBoundingClientRect(),$=xe({top:g.top,height:g.height},D(),se(),ne,Ce);C=$.tStart,L=$.tEnd;}function ee(){if(!O||k)return;let g=K(D(),C,L,1);p&&(P=Math.max(P,g),g=P),S=g,M(g),g>=1&&!oe?(oe=true,T?.()):g<1&&!p&&(oe=false),w=requestAnimationFrame(ee);}ie();let ae=new IntersectionObserver(g=>{g.forEach($=>{O=$.isIntersecting,O&&!k?w=requestAnimationFrame(ee):cancelAnimationFrame(w);});}),d;function x(){clearTimeout(d),d=setTimeout(()=>{if(l==="lines"){let g=S;t.innerHTML=B,t.setAttribute("aria-label",t.textContent??""),J=Ft(t),M(g);}ie();},150);}return window.addEventListener("resize",x),window.addEventListener("orientationchange",x),ae.observe(t),Le(t,{type:"text",getProgress:()=>S,getTrigger:()=>({tStart:C,tEnd:L})}),{destroy(){cancelAnimationFrame(w),ae.disconnect(),window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x),clearTimeout(d),t.innerHTML=B,t.removeAttribute("aria-label"),$e(t);},replay(){P=-1,oe=false,S=0,k=false,M(0);},pause(){k=true,cancelAnimationFrame(w);},resume(){k&&(k=false,O&&(w=requestAnimationFrame(ee)));},seek(g){let $=Math.min(1,Math.max(0,g));S=$,P=$,k=true,cancelAnimationFrame(w),M($);},getProgress(){return S}}}function on(e,n={}){let r=Je(e,n);return {update(t){r.destroy(),r=Je(e,t);},destroy(){r.destroy();}}}function sn(e={}){let n=null;function r(t){return n=Je(t,e),{destroy(){n?.destroy(),n=null;}}}return {action:r,getInstance:()=>n}}function an(e,n){let r=et(e,n);return {update(t){r.destroy(),r=et(e,t);},destroy(){r.destroy();}}}function ln(e){let n=null;function r(t){return n=et(t,e),{destroy(){n?.destroy(),n=null;}}}return {action:r,getInstance:()=>n}}function cn(e,n){let r=tt(e,n);return {update(t){r.destroy(),r=tt(e,t);},destroy(){r.destroy();}}}function un(e){let n=null;function r(t){return n=tt(t,e),{destroy(){n?.destroy(),n=null;}}}return {action:r,getInstance:()=>n}}function mn(e,n={}){let r=rt(e,n);return {update(t){r.destroy(),r=rt(e,t);},destroy(){r.destroy();}}}function fn(e={}){let n=null;function r(t){return n=rt(t,e),{destroy(){n?.destroy(),n=null;}}}return {action:r,getInstance:()=>n}}function pn(e,n={}){let r=nt(e,n);return {update(t){r.destroy(),r=nt(e,t);},destroy(){r.destroy();}}}function dn(e={}){let n=null;function r(t){return n=nt(t,e),{destroy(){n?.destroy(),n=null;}}}return {action:r,getInstance:()=>n}}exports.createScrollAnimate=ln;exports.createScrollCounter=un;exports.createScrollDraw=sn;exports.createScrollText=dn;exports.createScrollVideo=fn;exports.scrollAnimate=an;exports.scrollCounterAction=cn;exports.scrollDraw=on;exports.scrollTextAction=pn;exports.scrollVideoAction=mn;
|
|
1
|
+
'use strict';function Ut({bounces:e=3,decay:r=.5}={}){let n=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,r)),a=Math.sqrt(t),s=0,l=[];for(let p=0;p<n;p++){let T=Math.pow(a,p);l.push(T),s+=T;}let u=[0],m=0;for(let p=0;p<n;p++)m+=l[p]/s,u.push(m);return p=>{if(p<=0)return 0;if(p>=1)return 1;for(let T=0;T<n;T++)if(p<=u[T+1]){let V=(p-u[T])/(u[T+1]-u[T]);if(T===0)return V*(2-V);let A=1-Math.pow(t,T);return A+(1-A)*(2*V-1)*(2*V-1)}return 1}}function Yt({amplitude:e=1,period:r=.4}={}){let n=Math.max(1,e),t=Math.max(.1,r),a=n<=1?t/4:t/(2*Math.PI)*Math.asin(1/n);return s=>s<=0?0:s>=1?1:n*Math.pow(2,-10*s)*Math.sin((s-a)*(2*Math.PI)/t)+1}var re={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:Ut(),elastic:Yt()};function Tt(e,r,n){return Math.min(n,Math.max(r,e))}function de(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 xt(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 J(e,r,n,t){return n===r?0:Tt((e-r)/(n-r)*t,0,1)}function Te(e,r,n,t,a){let s=xt(e.top,e.height,r,t.element)-At(t.viewport,n),l=xt(e.top,e.height,r,a.element)-At(a.viewport,n);return {tStart:s,tEnd:l}}function Je(e,r,n){let t=e.getBoundingClientRect(),a=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:a,scroll:0}:{top:n==="x"?t.left:t.top,height:a,scroll:n==="x"?window.scrollX:window.scrollY}}function _e(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 Mt(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 qe(e,r,n){let t=Mt(e),a=Mt(r);return !t||!a?e:`rgb(${Math.round(t[0]+(a[0]-t[0])*n)},${Math.round(t[1]+(a[1]-t[1])*n)},${Math.round(t[2]+(a[2]-t[2])*n)})`}var Lt={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 he(e,...r){Ge&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var Xt="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Kt="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",$t=33;function Qt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function Zt(e){let r=[];for(let n=0;n<$t;n++){let t=n/($t-1);r.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${r.join(",")})`}function et(e){switch(e){case "linear":return "linear";case "ease-in":return Xt;case "ease-out":return Kt;case "ease-in-out":return Qt()?Zt(re["ease-in-out"]):null;default:return null}}var Ct=Symbol.for("svg-scroll-draw.registry");function Pt(){let e=globalThis;return e[Ct]||(e[Ct]=new Map)}function Me(e,r){Pt().set(e,r);}function Le(e){Pt().delete(e);}var Jt=0;function er(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function kt(e,r){let n="";try{n=getComputedStyle(e).getPropertyValue(r).trim();}catch{}return n||(e.getAttribute(r)??"").trim()}var It=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function tr(e){if(!Ge)return;let r=kt(e,"stroke");if(!r||r==="none"){he("Element has no stroke \u2014 path will not be visible.",e);return}let n=(e.getAttribute("fill")??"").trim();n&&!It.has(n)&&!It.has(kt(e,"fill"))&&he("Element has a fill \u2014 it may obscure the stroke animation.",e);}function rr(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 a(){let s=n==="x"?window.scrollX:window.scrollY,l=e-s,u=r-s,m=n==="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",a,{passive:true}),a(),{el:t,destroy(){window.removeEventListener("scroll",a),t.remove();}}}var Ot=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,Dt=/[MmLlHhVvCcSsQqTtAaZz]/g;function nr(e,r,n){if(!Ge)return;let t=(e.match(Dt)??[]).join("").toUpperCase(),a=(r.match(Dt)??[]).join("").toUpperCase(),s=(e.match(Ot)??[]).length,l=(r.match(Ot)??[]).length;if(t!==a){he(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${a||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}s!==l&&he(`morphTo: coordinate count differs (${s} \u2192 ${l}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function it(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),a=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let l=parseFloat(s),u=t[a++]??l;return String(+(l+(u-l)*n).toFixed(4))})}function at(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,a=n?{...Lt[n],...t}:t,s=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:l="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:p="linear",trigger:T={},stagger:V=0,direction:A="forward",once:ne=false,debug:$e=false,axis:B="y",scrollContainer:ee,autoReverse:X=false,delay:G=0,strokeColor:M,strokeWidth:C,fillOpacity:L,waypoints:w,velocityScale:I=false,threshold:D=0,rootMargin:P="0px",repeat:E=0,repeatDelay:oe=0,morphTo:F,clip:se,autoplay:ie=false,duration:te=1e3,native:ae=true,onProgress:d,onStart:x,onComplete:g,onEnter:$,onLeave:S,onEnterBack:R,onLeaveBack:fe}=a,K=se===true?"left":typeof se=="string"?se:false,ve=typeof p=="function"?p:re[p]??re.linear,Ce=de(T.start??"top bottom"),Ve=de(T.end??"bottom top"),be=typeof ee=="string"?document.querySelector(ee):ee??null,we=Array.isArray(M)?M[0]:null,le=Array.isArray(M)?M[1]:typeof M=="string"?M:null,ce=Array.isArray(C)?C[0]:null,j=Array.isArray(C)?C[1]:typeof C=="number"?C:null,pe=Array.isArray(L)?L[0]:null,Q=Array.isArray(L)?L[1]:typeof L=="number"?L:null;function Pe(o){let c=o*100;switch(K){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 z=K?[]:Array.from(e.querySelectorAll(l)),k=[],i=[],f=0,ge=0,H=false,_=false,q=0,xe=false,Ee=-1,Z=[],Fe=-1,U=false,ke=0,Oe=0,Re,tt=null;function gt(){tt?.destroy(),tt=null;}let He=new Set,yt=NaN,Ne=true,Ue=-1,ht=performance.now(),ze=NaN;function rt(){return be?B==="x"?be.scrollLeft:be.scrollTop:B==="x"?window.scrollX:window.scrollY}function bt(){return be?B==="x"?be.clientWidth:be.clientHeight:B==="x"?window.innerWidth:window.innerHeight}function wt(){let o=Je(e,be,B);return Te(o,o.scroll,bt(),Ce,Ve)}function vt(){(({tStart:f,tEnd:ge}=wt())),$e&&Ge&&(gt(),tt=rr(f,ge,B));}function nt(o,c=wt){Me(e,{type:"draw",getProgress:()=>o.getProgress(),getTrigger:c});let b=o.destroy;return o.destroy=()=>{b.call(o),Le(e);},o}function Wt(o,c){if(e.style.setProperty("--scroll-draw-progress",String(o)),K){let b=c==="reverse"?1-o:o;e.style.clipPath=Pe(b);return}z.forEach((b,ue)=>{b.style.strokeDashoffset=c==="reverse"?`${k[ue]*o}`:`${k[ue]*(1-o)}`,m&&(b.style.opacity=c==="reverse"?`${1-o}`:`${o}`),we&&le?b.style.stroke=qe(we,le,o):le&&(b.style.stroke=le),ce!==null&&j!==null?b.style.strokeWidth=`${ce+(j-ce)*o}`:j!==null&&(b.style.strokeWidth=`${j}`),pe!==null&&Q!==null?b.style.fillOpacity=`${pe+(Q-pe)*o}`:Q!==null&&(b.style.fillOpacity=`${Q}`),F&&b.tagName.toLowerCase()==="path"&&i[ue]&&b.setAttribute("d",it(i[ue],F,o));});}function Ye(){if(e.style.setProperty("--scroll-draw-progress","0"),K){e.style.clipPath=Pe(0);return}z.forEach((o,c)=>{o.style.strokeDasharray=`${k[c]}`,o.style.strokeDashoffset=A==="reverse"?"0":`${k[c]}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",we&&(o.style.stroke=we),ce!==null&&(o.style.strokeWidth=`${ce}`),pe!==null&&(o.style.fillOpacity=`${pe}`),F&&o.tagName.toLowerCase()==="path"&&i[c]&&o.setAttribute("d",i[c]);});}if(z.forEach(o=>{tr(o);let c=_e(o);k.push(c);let b=o.tagName.toLowerCase()==="path";b?i.push(o.getAttribute("d")??""):i.push(""),F&&(b?nr(i[i.length-1],F,o):he(`morphTo only applies to <path> elements \u2014 ignored on <${o.tagName}>.`,o)),s?(o.style.strokeDasharray=`${c}`,o.style.strokeDashoffset=A==="reverse"?`${c}`:"0",m&&(o.style.opacity="1"),le&&(o.style.stroke=le),j!==null&&(o.style.strokeWidth=`${j}`),Q!==null&&(o.style.fillOpacity=`${Q}`),F&&o.tagName.toLowerCase()==="path"&&o.setAttribute("d",F)):(o.style.strokeDasharray=`${c}`,o.style.strokeDashoffset=A==="reverse"?"0":`${c}`,m?o.style.opacity=A==="reverse"?"1":"0":o.style.opacity="",we&&(o.style.stroke=we),ce!==null&&(o.style.strokeWidth=`${ce}`),pe!==null&&(o.style.fillOpacity=`${pe}`));}),K){if(s)return e.style.clipPath=Pe(1),g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=Pe(0);}else if(s)return g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let Et=typeof p=="string"?et(p):null;function Bt(){return !(ae===false||!er()||!z.length||!Et||K||B!=="y"||be||u!==1||V!==0||ne||X||I!==false||F||w||E||G>0||d||x||g||$||S||R||fe||M!=null||C!=null||L!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function Gt(){let o=++Jt,c=`svg-scroll-draw-${o}`,b=`svg-scroll-draw-host-${o}`,ue=`--svg-scroll-draw-${o}`,De=A==="reverse"?"0":"var(--ssd-len)",Ie=A==="reverse"?"var(--ssd-len)":"0",Ae=`stroke-dashoffset:${De};`,v=`stroke-dashoffset:${Ie};`;m&&(Ae+=`opacity:${A==="reverse"?1:0};`,v+=`opacity:${A==="reverse"?0:1};`);let O=document.createElement("style");O.setAttribute("data-svg-scroll-draw",""),O.textContent=`@keyframes ${c}{from{${Ae}}to{${v}}}.${b}{view-timeline-name:${ue};view-timeline-axis:block;}.${c}{animation-name:${c};animation-duration:auto;animation-timing-function:${Et};animation-fill-mode:both;animation-timeline:${ue};animation-range:cover 0% cover 100%;}`,document.head.appendChild(O),e.classList.add(b);function me(y,Y){y.style.setProperty("--ssd-len",String(k[Y])),y.style.strokeDasharray=`${k[Y]}`,y.style.strokeDashoffset="",y.style.opacity="",y.style.animationPlayState="",y.classList.add(c);}z.forEach(me);let h=false,N=-1;function W(){if(N>=0)return N;let y=e.getBoundingClientRect(),{tStart:Y,tEnd:Se}=Te({top:y.top,height:y.height},rt(),bt(),Ce,Ve);return ve(J(rt(),Y,Se,u))}return {destroy(){e.classList.remove(b),z.forEach(y=>{y.classList.remove(c),y.style.removeProperty("--ssd-len"),y.style.animationPlayState="";}),O.remove();},replay(){h=false,N=-1,z.forEach(me);},pause(){h=true,z.forEach(y=>{y.style.animationPlayState="paused";});},resume(){h&&(h=false,z.forEach(y=>{y.style.animationPlayState="running";}));},seek(y){let Y=Math.min(1,Math.max(0,y));N=Y,h=true,z.forEach((Se,ye)=>{Se.classList.remove(c),Se.style.strokeDashoffset=A==="reverse"?`${k[ye]*Y}`:`${k[ye]*(1-Y)}`,m&&(Se.style.opacity=A==="reverse"?`${1-Y}`:`${Y}`);});},getProgress(){return W()},refresh(){z.forEach((y,Y)=>{k[Y]=_e(y),y.style.setProperty("--ssd-len",String(k[Y])),y.style.strokeDasharray=`${k[Y]}`;});}}}if(Bt())return nt(Gt());function jt(){let o=Math.max(1,te),c=0,b=0,ue=false;function De(h){let N=true;if(K){let W=Math.min(1,Math.max(0,h/o)),y=ve(W);ke=y,e.style.setProperty("--scroll-draw-progress",String(y)),e.style.clipPath=Pe(A==="reverse"?1-y:y),d?.(y),W<1&&(N=false);}else z.forEach((W,y)=>{let Y=y*V*o,Se=Math.min(1,Math.max(0,(h-Y)/o)),ye=ve(Se);W.style.strokeDashoffset=A==="reverse"?`${k[y]*ye}`:`${k[y]*(1-ye)}`,m&&(W.style.opacity=A==="reverse"?`${1-ye}`:`${ye}`),we&&le?W.style.stroke=qe(we,le,ye):le&&(W.style.stroke=le),ce!==null&&j!==null?W.style.strokeWidth=`${ce+(j-ce)*ye}`:j!==null&&(W.style.strokeWidth=`${j}`),pe!==null&&Q!==null?W.style.fillOpacity=`${pe+(Q-pe)*ye}`:Q!==null&&(W.style.fillOpacity=`${Q}`),F&&W.tagName.toLowerCase()==="path"&&i[y]&&W.setAttribute("d",it(i[y],F,ye)),y===0&&(ke=ye,d?.(ye),e.style.setProperty("--scroll-draw-progress",String(ye))),Se<1&&(N=false);});if(w){let W=Math.min(1,Math.max(0,h/o)),y=ve(W);for(let Y in w){let Se=parseFloat(Y);y>=Se&&!He.has(Se)&&(He.add(Se),w[Y]?.());}}return N}function Ie(h){if(U)return;let N=h-c;_||(_=true,x?.());let W=De(N);if(W&&!H){H=true,De(o*(1+Math.max(0,z.length-1)*V)),g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Re=setTimeout(()=>{c=performance.now(),_=false,H=false,He.clear(),Ye(),q=requestAnimationFrame(Ie);},oe));return}W||(q=requestAnimationFrame(Ie));}function Ae(){cancelAnimationFrame(q),clearTimeout(Re),c=performance.now(),b=0,U=false,_=false,H=false,Oe=0,ue=true,ke=0,He.clear(),Ye(),q=requestAnimationFrame(Ie);}let v=new IntersectionObserver(h=>{h.forEach(N=>{N.isIntersecting&&!(ne&&H)?Ae():!N.isIntersecting&&!ne&&!H&&(cancelAnimationFrame(q),clearTimeout(Re),ue=false);});},{root:be??null,threshold:D,rootMargin:P}),O;function me(){clearTimeout(O),O=setTimeout(()=>{z.forEach((h,N)=>{k[N]=_e(h),h.style.strokeDasharray=`${k[N]}`;});},150);}return window.addEventListener("resize",me),window.addEventListener("orientationchange",me),G>0?setTimeout(()=>v.observe(e),G):v.observe(e),{destroy(){cancelAnimationFrame(q),clearTimeout(Re),v.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),clearTimeout(O);},replay(){Oe=0,Ae();},pause(){U||!ue||(U=true,b=performance.now()-c,cancelAnimationFrame(q));},resume(){U&&(U=false,ue=true,c=performance.now()-b,q=requestAnimationFrame(Ie));},seek(h){let N=Math.min(1,Math.max(0,h));ke=N,U=true,b=N*o,c=performance.now()-b,cancelAnimationFrame(q),De(b);},getProgress(){return ke},refresh(){clearTimeout(O),z.forEach((h,N)=>{k[N]=_e(h),h.style.strokeDasharray=`${k[N]}`;});}}}if(ie)return nt(jt());vt();function Xe(){if(!xe||U)return;let o=performance.now(),c=rt();if(!Ne&&I===false&&c===yt){q=requestAnimationFrame(Xe);return}Ne=false,yt=c;let b=u;if(I!==false){let v=o-ht,O=v>0?Math.abs(c-(Ue<0?c:Ue))/v:0;b=u*Math.max(.2,1+O*(typeof I=="number"?I:1)*.04);}Ue=c,ht=o;let ue=X?Fe===-1||c>=Fe?"forward":"reverse":A;Fe=c;let De=ge-f,Ie=true,Ae=De===0?0:(c-f)/De;if(isNaN(ze)||(ze<=0&&Ae>0?$?.():ze>0&&Ae<=0&&fe?.(),ze<1&&Ae>=1?S?.():ze>=1&&Ae<1&&R?.()),ze=Ae,K){let v=ve(J(c,f,ge,b));ne&&!X&&(Ee=Math.max(Ee,v),v=Ee),ke=v,e.style.setProperty("--scroll-draw-progress",String(v));let O=ue==="reverse"?1-v:v;e.style.clipPath=Pe(O),d?.(v),!_&&J(c,f,ge,b)>0&&(_=true,x?.()),v>=1&&!H?(H=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Re=setTimeout(()=>{Ee=-1,_=false,H=false,e.style.clipPath=Pe(0);},oe))):v<1&&!ne&&(H=false),q=requestAnimationFrame(Xe);return}if(z.forEach((v,O)=>{let me=O*V*De,h=ve(J(c,f+me,ge+me,b));ne&&!X&&(h=Z[O]=Math.max(Z[O]??Ee,h)),ke=h,v.style.strokeDashoffset=ue==="reverse"?`${k[O]*h}`:`${k[O]*(1-h)}`,m&&(v.style.opacity=ue==="reverse"?`${1-h}`:`${h}`),we&&le?v.style.stroke=qe(we,le,h):le&&(v.style.stroke=le),ce!==null&&j!==null?v.style.strokeWidth=`${ce+(j-ce)*h}`:j!==null&&(v.style.strokeWidth=`${j}`),pe!==null&&Q!==null?v.style.fillOpacity=`${pe+(Q-pe)*h}`:Q!==null&&(v.style.fillOpacity=`${Q}`),F&&v.tagName.toLowerCase()==="path"&&i[O]&&v.setAttribute("d",it(i[O],F,h)),O===0&&(d?.(h),e.style.setProperty("--scroll-draw-progress",String(h))),h<1&&(Ie=false);}),w){let v=ve(J(c,f,ge,b));for(let O in w){let me=parseFloat(O);v>=me&&!He.has(me)&&(He.add(me),w[O]?.());}}!_&&J(c,f,ge,b)>0&&(_=true,x?.()),Ie&&!H?(H=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Re=setTimeout(()=>{Ee=-1,Z=[],_=false,H=false,He.clear(),Ye(),Ne=true;},oe))):!Ie&&!ne&&(H=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(c=>{xe=c.isIntersecting,xe&&!U?(Ne=true,Ke()):Qe();});},{root:be??null,threshold:D,rootMargin:P});function St(){z.forEach((o,c)=>{k[c]=_e(o),o.style.strokeDasharray=`${k[c]}`;}),vt(),Ne=true;}let Ze;function We(){clearTimeout(Ze),Ze=setTimeout(St,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)),G>0?setTimeout(()=>st.observe(e),G):st.observe(e),nt({destroy(){cancelAnimationFrame(q),clearTimeout(Re),Qe(),st.disconnect(),Be?.disconnect(),window.removeEventListener("resize",We),window.removeEventListener("orientationchange",We),clearTimeout(Ze),gt();},replay(){Ee=-1,Z=[],Fe=-1,Ue=-1,_=false,H=false,Oe=0,U=false,ke=0,He.clear(),clearTimeout(Re),Ye(),Ne=true,xe&&Ke();},pause(){U=true,Qe();},resume(){U&&(U=false,Ne=true,xe&&Ke());},seek(o){let c=Math.min(1,Math.max(0,o));ke=c,Ee=c,Z=[],U=true,Qe(),Wt(c,A),Ne=true;},getProgress(){return ke},refresh(){clearTimeout(Ze),St(),xe&&!U&&Ke();}},()=>({tStart:f,tEnd:ge}))}var Ft=new WeakMap,or=0;function lt(e){return JSON.stringify(e,(r,n)=>{if(typeof n=="function")return "\u0192";if(typeof Element<"u"&&n instanceof Element){let t=Ft.get(n);return t===void 0&&Ft.set(n,t=++or),`el#${t}`}return n})}function ct(e,r){let n={...e};for(let t of Object.keys(n))typeof n[t]=="function"&&(n[t]=(...a)=>r()[t]?.(...a));return n}function sr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Rt(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let a=[],s=[],l=t[2].trim();if(l)for(let u of l.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);a.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}r.push({fn:t[1],nums:a,units:s});}return r}function ir(e,r,n){let t=Rt(e),a=Rt(r);return t.length===0||t.length!==a.length?n<1?e:r:t.map((s,l)=>{let u=a[l];return s.fn!==u.fn||s.nums.length!==u.nums.length?n<1?`${s.fn}(${s.nums.map((m,p)=>`${m}${s.units[p]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,p)=>`${m}${u.units[p]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,p)=>`${m+(u.nums[p]-m)*n}${s.units[p]}`).join(", ")})`}).join(" ")}function Ht(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),a=String(r);if(sr(t))return qe(t,a,n);if(t.includes("("))return ir(t,a,n);let s=t.match(/^([-+]?[\d.]+)(.*)$/),l=a.match(/^([-+]?[\d.]+)(.*)$/);if(s&&l){let u=parseFloat(s[1]),m=parseFloat(l[1]);return `${u+(m-u)*n}${s[2]||l[2]}`}return n<1?t:a}function ar(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var lr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),cr=0,Nt="--scroll-draw-progress";function ur(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function ut(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:a={},easing:s="ease-out",speed:l=1,once:u=false,axis:m="y",scrollContainer:p,native:T=true,velocityScale:V=false,respectReducedMotion:A=true,triggerElement:ne,onProgress:$e,onComplete:B,onEnter:ee,onLeave:X,onEnterBack:G,onLeaveBack:M}=r,C=A&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,L=typeof s=="function"?s:re[s]??re["ease-out"],w=de(a.start??"top bottom"),I=de(a.end??"bottom top"),D=ne??e,P=typeof p=="string"?document.querySelector(p):p??null,E=Object.entries(t).map(([i,f])=>({prop:ar(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function oe(){let i=window.getComputedStyle(e);for(let f of E)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function F(){for(let i of E)e.style.setProperty(i.prop,String(i.to));}let se=new Map;for(let i of [...E.map(f=>f.prop),Nt])se.set(i,e.style.getPropertyValue(i));function ie(){for(let[i,f]of se)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if(C)return F(),B?.(),{...n,destroy:ie,getProgress:()=>1};oe();let te=typeof s=="string"?et(s):null;function ae(){if(!T||!ur()||!te||m!=="y"||P||D!==e||u||l!==1||$e||B||ee||X||G||M||V!==false||(a.start??"top bottom").trim()!=="top bottom"||(a.end??"bottom top").trim()!=="bottom top")return false;for(let i of E)if(!lr.has(i.prop))return false;return true}function d(){let i=`ssd-a-${++cr}`,f=E.map(Z=>`${Z.prop}:${Z.from}`).join(";"),ge=E.map(Z=>`${Z.prop}:${Z.to}`).join(";"),H=document.createElement("style");H.setAttribute("data-ssd-animate",""),H.textContent=`@keyframes ${i}{from{${f}}to{${ge}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${te};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(H),e.classList.add(i);let _=()=>m==="x"?window.scrollX:window.scrollY,q=()=>m==="x"?window.innerWidth:window.innerHeight,xe=()=>{let Z=e.getBoundingClientRect();return Te({top:Z.top,height:Z.height},_(),q(),w,I)};Me(e,{type:"animate",getProgress:()=>Ee.getProgress(),getTrigger:xe});let Ee={destroy(){e.classList.remove(i),H.remove(),e.style.animationPlayState="",ie(),Le(e);},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(Z){let Fe=Math.min(1,Math.max(0,Z));e.classList.remove(i);for(let U of E)e.style.setProperty(U.prop,Ht(U.from,U.to,Fe));},getProgress(){let{tStart:Z,tEnd:Fe}=xe();return L(J(_(),Z,Fe,l))}};return Ee}if(ae())return d();let x=0,g=0,$=0,S=false,R=false,fe=-1,K=0,ve=false,Ce=NaN,Ve=-1,be=0,we=()=>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(D,P,m),f=Te(i,i.scroll,le(),w,I);x=f.tStart,g=f.tEnd;}function j(i){e.style.setProperty(Nt,String(i));for(let f of E)e.style.setProperty(f.prop,Ht(f.from,f.to,i));$e?.(i);}function pe(i){if(isNaN(Ce)){Ce=i;return}Ce<=0&&i>0?ee?.():Ce>0&&i<=0&&M?.(),Ce<1&&i>=1?X?.():Ce>=1&&i<1&&G?.(),Ce=i;}function Q(){if(!S||R)return;let i=performance.now(),f=we(),ge=l;if(V!==false){let q=i-be,xe=q>0?Math.abs(f-(Ve<0?f:Ve))/q:0;ge=l*Math.max(.2,1+xe*(typeof V=="number"?V:1)*.04);}Ve=f,be=i;let H=g===x?0:(f-x)/(g-x);pe(H);let _=L(J(f,x,g,ge));u&&(fe=Math.max(fe,_),_=fe),K=_,j(_),_>=1&&!ve?(ve=true,B?.()):_<1&&!u&&(ve=false),$=requestAnimationFrame(Q);}ce(),g===x&&he("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=L(J(we(),x,g,l));u&&i>0&&(fe=i),K=i,j(i);}let Pe=new IntersectionObserver(i=>{i.forEach(f=>{S=f.isIntersecting,S&&!R?$=requestAnimationFrame(Q):cancelAnimationFrame($);});},{root:P??null}),z;function k(){clearTimeout(z),z=setTimeout(ce,150);}return window.addEventListener("resize",k),window.addEventListener("orientationchange",k),Pe.observe(e),Me(e,{type:"animate",getProgress:()=>K,getTrigger:()=>({tStart:x,tEnd:g})}),{destroy(){cancelAnimationFrame($),Pe.disconnect(),window.removeEventListener("resize",k),window.removeEventListener("orientationchange",k),clearTimeout(z),ie(),Le(e);},replay(){fe=-1,ve=false,K=0,R=false,j(0);},pause(){R=true,cancelAnimationFrame($);},resume(){R&&(R=false,S&&($=requestAnimationFrame(Q)));},seek(i){let f=Math.min(1,Math.max(0,i));K=f,fe=f,R=true,cancelAnimationFrame($),j(f);},getProgress(){return K}}}var mt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function ft(e,r){if(typeof window>"u")return mt;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return he("scrollCounter: element not found:",e),mt;let t=n,{from:a=0,to:s,format:l,easing:u="ease-out",trigger:m={},once:p=true,decimals:T,onComplete:V}=r,A=T!==void 0?d=>d.toFixed(T):l??(d=>String(Math.round(d))),ne=typeof u=="function"?u:re[u]??re["ease-out"],$e=de(m.start??"top 80%"),B=de(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=A(s),V?.(),mt;let X=0,G=0,M=0,C=false,L=false,w=-1,I=0,D=false,P=()=>window.scrollY,E=()=>window.innerHeight;function oe(){let d=t.getBoundingClientRect(),x=Te({top:d.top,height:d.height},P(),E(),$e,B);X=x.tStart,G=x.tEnd;}function F(d){t.textContent=A(a+(s-a)*d),t.style.setProperty("--scroll-draw-progress",String(d));}function se(){if(!C||L)return;let d=ne(J(P(),X,G,1));p&&(w=Math.max(w,d),d=w),I=d,F(d),d>=1&&!D?(D=true,V?.()):d<1&&!p&&(D=false),M=requestAnimationFrame(se);}oe();{let d=ne(J(P(),X,G,1));p&&d>0&&(w=d),I=d,F(d);}let ie=new IntersectionObserver(d=>{d.forEach(x=>{C=x.isIntersecting,C&&!L?M=requestAnimationFrame(se):cancelAnimationFrame(M);});}),te;function ae(){clearTimeout(te),te=setTimeout(oe,150);}return window.addEventListener("resize",ae),window.addEventListener("orientationchange",ae),ie.observe(t),Me(t,{type:"counter",getProgress:()=>I,getTrigger:()=>({tStart:X,tEnd:G})}),{destroy(){cancelAnimationFrame(M),ie.disconnect(),window.removeEventListener("resize",ae),window.removeEventListener("orientationchange",ae),clearTimeout(te),Le(t);},replay(){w=-1,D=false,I=0,L=false,F(0);},pause(){L=true,cancelAnimationFrame(M);},resume(){L&&(L=false,C&&(M=requestAnimationFrame(se)));},seek(d){let x=Math.min(1,Math.max(0,d));I=x,w=x,L=true,cancelAnimationFrame(M),F(x);},getProgress(){return I}}}var Vt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function pt(e,r={}){if(typeof window>"u")return Vt;let n=typeof e=="string"?document.querySelector(e):e;if(!n||n.tagName.toLowerCase()!=="video")return he("scrollVideo: <video> element not found:",e),Vt;let t=n,{trigger:a={},easing:s="linear",once:l=false,axis:u="y",preload:m="auto",onReady:p,onComplete:T,onProgress:V}=r,A=window.matchMedia("(prefers-reduced-motion: reduce)").matches,ne=typeof s=="function"?s:re[s]??re.linear,$e=de(a.start??"top top"),B=de(a.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let ee=r.from??0,X=r.to,G=0,M=0,C=0,L=false,w=false,I=-1,D=0,P=false,E=false,oe=()=>u==="x"?window.scrollX:window.scrollY,F=()=>u==="x"?window.innerWidth:window.innerHeight;function se(){let S=t.getBoundingClientRect(),R=u==="x"?S.left:S.top,fe=u==="x"?S.width:S.height,K=Te({top:R,height:fe},oe(),F(),$e,B);G=K.tStart,M=K.tEnd;}let ie=NaN;function te(S){if(!E)return;let R=X??t.duration??0,fe=ee+(R-ee)*S;fe!==ie&&(ie=fe,t.currentTime=fe),t.style.setProperty("--scroll-draw-progress",String(S)),V?.(S);}function ae(){if(!L||w||!E||A)return;let S=ne(J(oe(),G,M,1));l&&(I=Math.max(I,S),S=I),D=S,te(S),S>=1&&!P?(P=true,T?.()):S<1&&!l&&(P=false),C=requestAnimationFrame(ae);}function d(){if(E=true,X===void 0&&(X=t.duration),A){te(1),p?.();return}se(),p?.(),L&&!w&&(C=requestAnimationFrame(ae));}t.readyState>=1?d():t.addEventListener("loadedmetadata",d,{once:true}),E||se();let x=new IntersectionObserver(S=>{S.forEach(R=>{L=R.isIntersecting,L&&!w&&E?C=requestAnimationFrame(ae):cancelAnimationFrame(C);});}),g;function $(){clearTimeout(g),g=setTimeout(se,150);}return window.addEventListener("resize",$),window.addEventListener("orientationchange",$),x.observe(t),Me(t,{type:"video",getProgress:()=>D,getTrigger:()=>({tStart:G,tEnd:M})}),{destroy(){cancelAnimationFrame(C),x.disconnect(),t.removeEventListener("loadedmetadata",d),window.removeEventListener("resize",$),window.removeEventListener("orientationchange",$),clearTimeout(g),Le(t);},replay(){I=-1,P=false,D=0,w=false,ie=NaN,te(0);},pause(){w=true,cancelAnimationFrame(C);},resume(){w&&(w=false,L&&E&&(C=requestAnimationFrame(ae)));},seek(S){let R=Math.min(1,Math.max(0,S));D=R,I=R,w=true,cancelAnimationFrame(C),ie=NaN,te(R);},getProgress(){return D}}}function qt(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 mr(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 zt(e){let r=qt(e),n=new Map;for(let s of r){let l=s.offsetTop;n.has(l)||n.set(l,[]),n.get(l).push(s);}let t=[],a=Array.from(n.keys()).sort((s,l)=>s-l);for(let s of a){let l=n.get(s),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",l.forEach((m,p)=>{let T=m.nextElementSibling;u.appendChild(m),p<l.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((s,l)=>{e.appendChild(s),l<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function fr(e,r,n,t){if(n<=1||t===0)return e;let a=(n-1)*t,s=r*t,l=s+(1-a);return l<=s?e>=s?1:0:Math.min(1,Math.max(0,(e-s)/(l-s)))}function pr(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 _t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function dt(e,r={}){if(typeof window>"u")return _t;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return he("scrollText: element not found:",e),_t;let t=n,{split:a="words",stagger:s=.04,easing:l="ease-out",from:u={opacity:0,y:24},trigger:m={},once:p=true,onComplete:T}=r,V=window.matchMedia("(prefers-reduced-motion: reduce)").matches,A=typeof l=="function"?l:re[l]??re["ease-out"],ne=de(m.start??"top 85%"),$e=de(m.end??"top 40%"),B=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let ee;a==="chars"?ee=mr(t):a==="lines"?ee=zt(t):ee=qt(t);let X=ee.length;function G(g,$){u?.opacity!==void 0&&(g.style.opacity=String(u.opacity+(1-u.opacity)*$));let S=pr($,u);S&&(g.style.transform=S);}function M(g){t.style.setProperty("--scroll-draw-progress",String(g)),ee.forEach(($,S)=>{let R=A(fr(g,S,X,s));G($,R);});}if(V)return M(1),T?.(),{destroy(){t.innerHTML=B,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};M(0);let C=0,L=0,w=0,I=false,D=false,P=-1,E=0,oe=false,F=()=>window.scrollY,se=()=>window.innerHeight;function ie(){let g=t.getBoundingClientRect(),$=Te({top:g.top,height:g.height},F(),se(),ne,$e);C=$.tStart,L=$.tEnd;}function te(){if(!I||D)return;let g=J(F(),C,L,1);p&&(P=Math.max(P,g),g=P),E=g,M(g),g>=1&&!oe?(oe=true,T?.()):g<1&&!p&&(oe=false),w=requestAnimationFrame(te);}ie();let ae=new IntersectionObserver(g=>{g.forEach($=>{I=$.isIntersecting,I&&!D?w=requestAnimationFrame(te):cancelAnimationFrame(w);});}),d;function x(){clearTimeout(d),d=setTimeout(()=>{if(a==="lines"){let g=E;t.innerHTML=B,t.setAttribute("aria-label",t.textContent??""),ee=zt(t),M(g);}ie();},150);}return window.addEventListener("resize",x),window.addEventListener("orientationchange",x),ae.observe(t),Me(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:C,tEnd:L})}),{destroy(){cancelAnimationFrame(w),ae.disconnect(),window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x),clearTimeout(d),t.innerHTML=B,t.removeAttribute("aria-label"),Le(t);},replay(){P=-1,oe=false,E=0,D=false,M(0);},pause(){D=true,cancelAnimationFrame(w);},resume(){D&&(D=false,I&&(w=requestAnimationFrame(te)));},seek(g){let $=Math.min(1,Math.max(0,g));E=$,P=$,D=true,cancelAnimationFrame(w),M($);},getProgress(){return E}}}function je(e,r,n){let t=r,a=lt(r),s=n(e,ct(r,()=>t));return {update(l){t=l;let u=lt(l);u!==a&&(a=u,s.destroy(),s=n(e,ct(l,()=>t)));},destroy(){s.destroy();}}}function pn(e,r={}){return je(e,r,at)}function dn(e={}){let r=null;function n(t){return r=at(t,e),{destroy(){r?.destroy(),r=null;}}}return {action:n,getInstance:()=>r}}function gn(e,r){return je(e,r,ut)}function yn(e){let r=null;function n(t){return r=ut(t,e),{destroy(){r?.destroy(),r=null;}}}return {action:n,getInstance:()=>r}}function hn(e,r){return je(e,r,ft)}function bn(e){let r=null;function n(t){return r=ft(t,e),{destroy(){r?.destroy(),r=null;}}}return {action:n,getInstance:()=>r}}function wn(e,r={}){return je(e,r,pt)}function vn(e={}){let r=null;function n(t){return r=pt(t,e),{destroy(){r?.destroy(),r=null;}}}return {action:n,getInstance:()=>r}}function En(e,r={}){return je(e,r,dt)}function Sn(e={}){let r=null;function n(t){return r=dt(t,e),{destroy(){r?.destroy(),r=null;}}}return {action:n,getInstance:()=>r}}exports.createScrollAnimate=yn;exports.createScrollCounter=bn;exports.createScrollDraw=dn;exports.createScrollText=Sn;exports.createScrollVideo=vn;exports.scrollAnimate=gn;exports.scrollCounterAction=hn;exports.scrollDraw=pn;exports.scrollTextAction=En;exports.scrollVideoAction=wn;
|
package/dist/svelte/index.d.mts
CHANGED
|
@@ -13,7 +13,7 @@ import { ScrollTextOptions } from '../text/index.mjs';
|
|
|
13
13
|
* </div>
|
|
14
14
|
*/
|
|
15
15
|
declare function scrollDraw(node: HTMLElement, options?: ScrollDrawOptions): {
|
|
16
|
-
update(
|
|
16
|
+
update(next: ScrollDrawOptions): void;
|
|
17
17
|
destroy(): void;
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
@@ -42,7 +42,7 @@ declare function createScrollDraw(options?: ScrollDrawOptions): {
|
|
|
42
42
|
* </div>
|
|
43
43
|
*/
|
|
44
44
|
declare function scrollAnimate(node: HTMLElement, options: ScrollAnimateOptions): {
|
|
45
|
-
update(
|
|
45
|
+
update(next: ScrollAnimateOptions): void;
|
|
46
46
|
destroy(): void;
|
|
47
47
|
};
|
|
48
48
|
/**
|
|
@@ -71,7 +71,7 @@ declare function createScrollAnimate(options: ScrollAnimateOptions): {
|
|
|
71
71
|
* <span use:scrollCounterAction={{ to: 1250000, format: n => '$' + Math.round(n).toLocaleString(), once: true }} />
|
|
72
72
|
*/
|
|
73
73
|
declare function scrollCounterAction(node: HTMLElement, options: ScrollCounterOptions): {
|
|
74
|
-
update(
|
|
74
|
+
update(next: ScrollCounterOptions): void;
|
|
75
75
|
destroy(): void;
|
|
76
76
|
};
|
|
77
77
|
/**
|
|
@@ -98,7 +98,7 @@ declare function createScrollCounter(options: ScrollCounterOptions): {
|
|
|
98
98
|
* src="/hero.mp4" muted playsinline preload="auto" />
|
|
99
99
|
*/
|
|
100
100
|
declare function scrollVideoAction(node: HTMLVideoElement, options?: ScrollVideoOptions): {
|
|
101
|
-
update(
|
|
101
|
+
update(next: ScrollVideoOptions): void;
|
|
102
102
|
destroy(): void;
|
|
103
103
|
};
|
|
104
104
|
/**
|
|
@@ -126,7 +126,7 @@ declare function createScrollVideo(options?: ScrollVideoOptions): {
|
|
|
126
126
|
* </h2>
|
|
127
127
|
*/
|
|
128
128
|
declare function scrollTextAction(node: HTMLElement, options?: ScrollTextOptions): {
|
|
129
|
-
update(
|
|
129
|
+
update(next: ScrollTextOptions): void;
|
|
130
130
|
destroy(): void;
|
|
131
131
|
};
|
|
132
132
|
/**
|
package/dist/svelte/index.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ import { ScrollTextOptions } from '../text/index.js';
|
|
|
13
13
|
* </div>
|
|
14
14
|
*/
|
|
15
15
|
declare function scrollDraw(node: HTMLElement, options?: ScrollDrawOptions): {
|
|
16
|
-
update(
|
|
16
|
+
update(next: ScrollDrawOptions): void;
|
|
17
17
|
destroy(): void;
|
|
18
18
|
};
|
|
19
19
|
/**
|
|
@@ -42,7 +42,7 @@ declare function createScrollDraw(options?: ScrollDrawOptions): {
|
|
|
42
42
|
* </div>
|
|
43
43
|
*/
|
|
44
44
|
declare function scrollAnimate(node: HTMLElement, options: ScrollAnimateOptions): {
|
|
45
|
-
update(
|
|
45
|
+
update(next: ScrollAnimateOptions): void;
|
|
46
46
|
destroy(): void;
|
|
47
47
|
};
|
|
48
48
|
/**
|
|
@@ -71,7 +71,7 @@ declare function createScrollAnimate(options: ScrollAnimateOptions): {
|
|
|
71
71
|
* <span use:scrollCounterAction={{ to: 1250000, format: n => '$' + Math.round(n).toLocaleString(), once: true }} />
|
|
72
72
|
*/
|
|
73
73
|
declare function scrollCounterAction(node: HTMLElement, options: ScrollCounterOptions): {
|
|
74
|
-
update(
|
|
74
|
+
update(next: ScrollCounterOptions): void;
|
|
75
75
|
destroy(): void;
|
|
76
76
|
};
|
|
77
77
|
/**
|
|
@@ -98,7 +98,7 @@ declare function createScrollCounter(options: ScrollCounterOptions): {
|
|
|
98
98
|
* src="/hero.mp4" muted playsinline preload="auto" />
|
|
99
99
|
*/
|
|
100
100
|
declare function scrollVideoAction(node: HTMLVideoElement, options?: ScrollVideoOptions): {
|
|
101
|
-
update(
|
|
101
|
+
update(next: ScrollVideoOptions): void;
|
|
102
102
|
destroy(): void;
|
|
103
103
|
};
|
|
104
104
|
/**
|
|
@@ -126,7 +126,7 @@ declare function createScrollVideo(options?: ScrollVideoOptions): {
|
|
|
126
126
|
* </h2>
|
|
127
127
|
*/
|
|
128
128
|
declare function scrollTextAction(node: HTMLElement, options?: ScrollTextOptions): {
|
|
129
|
-
update(
|
|
129
|
+
update(next: ScrollTextOptions): void;
|
|
130
130
|
destroy(): void;
|
|
131
131
|
};
|
|
132
132
|
/**
|
package/dist/svelte/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$
|
|
1
|
+
import {a as a$4,b as b$1}from'../chunk-XSVTHCLO.mjs';import {a as a$3}from'../chunk-JC5BD4RB.mjs';import {a as a$2}from'../chunk-SNCRC6BA.mjs';import {a as a$1}from'../chunk-4MH5SQTH.mjs';import {a}from'../chunk-QJ4H2HW3.mjs';import {b}from'../chunk-LINFV2GK.mjs';import'../chunk-OJFWQ6CU.mjs';import'../chunk-YWKPTYSG.mjs';import'../chunk-YZV4Z3EQ.mjs';import'../chunk-PEFR3ZB7.mjs';import'../chunk-DM6EDKWH.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-BCV4RAIX.mjs';import'../chunk-LFSU6LR3.mjs';function r(n,t,o){let e=t,f=a$4(t),l=o(n,b$1(t,()=>e));return {update(c){e=c;let d=a$4(c);d!==f&&(f=d,l.destroy(),l=o(n,b$1(c,()=>e)));},destroy(){l.destroy();}}}function D(n,t={}){return r(n,t,b)}function I(n={}){let t=null;function o(e){return t=b(e,n),{destroy(){t?.destroy(),t=null;}}}return {action:o,getInstance:()=>t}}function A(n,t){return r(n,t,a)}function H(n){let t=null;function o(e){return t=a(e,n),{destroy(){t?.destroy(),t=null;}}}return {action:o,getInstance:()=>t}}function L(n,t){return r(n,t,a$1)}function M(n){let t=null;function o(e){return t=a$1(e,n),{destroy(){t?.destroy(),t=null;}}}return {action:o,getInstance:()=>t}}function V(n,t={}){return r(n,t,a$3)}function g(n={}){let t=null;function o(e){return t=a$3(e,n),{destroy(){t?.destroy(),t=null;}}}return {action:o,getInstance:()=>t}}function C(n,t={}){return r(n,t,a$2)}function v(n={}){let t=null;function o(e){return t=a$2(e,n),{destroy(){t?.destroy(),t=null;}}}return {action:o,getInstance:()=>t}}export{H as createScrollAnimate,M as createScrollCounter,I as createScrollDraw,v as createScrollText,g as createScrollVideo,A as scrollAnimate,L as scrollCounterAction,D as scrollDraw,C as scrollTextAction,V as scrollVideoAction};
|