svg-scroll-draw 2.25.0 → 2.26.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +116 -15
- package/dist/angular/index.cjs +3 -3
- package/dist/angular/index.d.mts +60 -6
- package/dist/angular/index.d.ts +60 -6
- package/dist/angular/index.mjs +1 -1
- package/dist/astro/index.cjs +2 -2
- package/dist/astro/index.d.mts +3 -3
- package/dist/astro/index.d.ts +3 -3
- package/dist/astro/index.mjs +1 -1
- package/dist/cdn/svg-scroll-draw.dev.global.js +71 -34
- package/dist/cdn/svg-scroll-draw.global.js +2 -2
- package/dist/{chunk-NX74KN5X.mjs → chunk-5U4JXBHR.mjs} +1 -1
- package/dist/chunk-7LDSB4FT.mjs +1 -0
- package/dist/chunk-ASCOHQQD.mjs +2 -0
- package/dist/chunk-GBFWTY5L.mjs +1 -0
- package/dist/chunk-HAGTU5EX.mjs +1 -0
- package/dist/chunk-HJTHOZK5.mjs +1 -0
- package/dist/chunk-IJPLLT7E.mjs +1 -0
- package/dist/chunk-IXR6RML7.mjs +1 -0
- package/dist/chunk-KN2YB54Z.mjs +1 -0
- package/dist/chunk-NJV6S5LD.mjs +1 -0
- package/dist/chunk-OGFXZCKC.mjs +1 -0
- package/dist/chunk-UBH4K5YD.mjs +1 -0
- package/dist/chunk-UF3MO5XQ.mjs +1 -0
- package/dist/chunk-XLXVGQ3P.mjs +3 -0
- package/dist/chunk-YOOPMYT6.mjs +1 -0
- package/dist/cinematic/index.cjs +2 -2
- package/dist/cinematic/index.d.mts +3 -1
- package/dist/cinematic/index.d.ts +3 -1
- package/dist/cinematic/index.mjs +1 -1
- package/dist/{engine-6VsjEwzb.d.ts → engine-Bi2x8-X-.d.mts} +2 -2
- package/dist/{engine-BLWKCfxC.d.mts → engine-DAlvk6i0.d.ts} +2 -2
- package/dist/frames/index.cjs +1 -1
- package/dist/frames/index.d.mts +2 -2
- package/dist/frames/index.d.ts +2 -2
- package/dist/frames/index.mjs +1 -1
- package/dist/group/index.cjs +3 -3
- 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 +2 -2
- package/dist/horizontal/index.d.ts +2 -2
- package/dist/horizontal/index.mjs +1 -1
- package/dist/{index-BN8yKeQ3.d.ts → index-BMMZ8aW7.d.mts} +2 -2
- package/dist/{index-hSQqLVbg.d.ts → index-CEMsUTEG.d.ts} +3 -3
- package/dist/{index-DAiRJgtF.d.mts → index-ClAFxNEp.d.mts} +3 -3
- package/dist/{index-DVjblK_4.d.mts → index-MdQ4ti_z.d.ts} +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/lenis/index.cjs +1 -1
- package/dist/lenis/index.d.mts +15 -16
- package/dist/lenis/index.d.ts +15 -16
- package/dist/lenis/index.mjs +1 -1
- package/dist/nuxt/index.cjs +3 -3
- package/dist/nuxt/index.d.mts +4 -3
- package/dist/nuxt/index.d.ts +4 -3
- package/dist/nuxt/index.mjs +1 -1
- package/dist/progress/index.cjs +1 -1
- package/dist/progress/index.d.mts +2 -2
- package/dist/progress/index.d.ts +2 -2
- package/dist/progress/index.mjs +1 -1
- package/dist/react/index.cjs +2 -2
- package/dist/react/index.d.mts +4 -4
- package/dist/react/index.d.ts +4 -4
- package/dist/react/index.mjs +1 -1
- package/dist/reveal/index.cjs +1 -1
- package/dist/reveal/index.d.mts +2 -2
- package/dist/reveal/index.d.ts +2 -2
- package/dist/reveal/index.mjs +1 -1
- package/dist/{scroll-draw-Fzir8hlU.d.mts → scroll-draw-CKZysh22.d.mts} +1 -1
- package/dist/{scroll-draw-BsU_Ohmu.d.ts → scroll-draw-DbY8RUJE.d.ts} +1 -1
- package/dist/snap/index.cjs +1 -1
- package/dist/snap/index.d.mts +2 -2
- package/dist/snap/index.d.ts +2 -2
- package/dist/snap/index.mjs +1 -1
- package/dist/solid/index.cjs +3 -3
- package/dist/solid/index.d.mts +40 -4
- package/dist/solid/index.d.ts +40 -4
- package/dist/solid/index.mjs +1 -1
- package/dist/svelte/index.cjs +3 -3
- package/dist/svelte/index.d.mts +47 -4
- package/dist/svelte/index.d.ts +47 -4
- package/dist/svelte/index.mjs +1 -1
- package/dist/text/index.cjs +1 -1
- package/dist/text/index.d.mts +2 -2
- package/dist/text/index.d.ts +2 -2
- package/dist/text/index.mjs +1 -1
- package/dist/timeline/index.cjs +10 -10
- package/dist/timeline/index.d.mts +2 -2
- package/dist/timeline/index.d.ts +2 -2
- package/dist/timeline/index.mjs +2 -2
- package/dist/{types-9bcJdVcg.d.mts → types-iITMwrru.d.mts} +10 -2
- package/dist/{types-9bcJdVcg.d.ts → types-iITMwrru.d.ts} +10 -2
- package/dist/video/index.cjs +1 -1
- package/dist/video/index.d.mts +2 -2
- package/dist/video/index.d.ts +2 -2
- package/dist/video/index.mjs +1 -1
- package/dist/vue/index.cjs +3 -3
- package/dist/vue/index.d.mts +4 -7
- package/dist/vue/index.d.ts +4 -7
- package/dist/vue/index.mjs +1 -1
- package/dist/web-component/index.cjs +3 -3
- package/dist/web-component/index.mjs +1 -1
- package/dist/wrapper-BOHrDnBO.d.mts +8 -0
- package/dist/wrapper-Cm7JTIVl.d.ts +8 -0
- package/package.json +1 -1
- package/dist/chunk-22P4KBPG.mjs +0 -1
- package/dist/chunk-32ZCSGFZ.mjs +0 -1
- package/dist/chunk-7USW2XFB.mjs +0 -1
- package/dist/chunk-7XOFQCQE.mjs +0 -3
- package/dist/chunk-BDXWPUBJ.mjs +0 -2
- package/dist/chunk-BRV2B2YW.mjs +0 -1
- package/dist/chunk-D2BHE4F2.mjs +0 -1
- package/dist/chunk-QZKYGS74.mjs +0 -1
- package/dist/chunk-THPTANES.mjs +0 -1
- package/dist/chunk-U5TKLHGW.mjs +0 -1
- package/dist/chunk-V3Z6G5JE.mjs +0 -1
- package/dist/chunk-WKOT2MND.mjs +0 -1
- package/dist/chunk-XSVTHCLO.mjs +0 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { a as ScrollDrawOptions } from './types-
|
|
2
|
-
export { P as PresetName, S as ScrollDrawInstance } from './types-
|
|
3
|
-
export { s as scrollDraw } from './scroll-draw-
|
|
4
|
-
export { S as ScrollParallaxOptions, s as scrollAnimate, a as scrollParallax } from './index-
|
|
5
|
-
export { S as ScrollCounterOptions, s as scrollCounter } from './index-
|
|
1
|
+
import { a as ScrollDrawOptions } from './types-iITMwrru.mjs';
|
|
2
|
+
export { C as CssEasing, E as Easing, P as PresetName, S as ScrollDrawInstance } from './types-iITMwrru.mjs';
|
|
3
|
+
export { s as scrollDraw } from './scroll-draw-CKZysh22.mjs';
|
|
4
|
+
export { S as ScrollParallaxOptions, s as scrollAnimate, a as scrollParallax } from './index-ClAFxNEp.mjs';
|
|
5
|
+
export { S as ScrollCounterOptions, s as scrollCounter } from './index-BMMZ8aW7.mjs';
|
|
6
6
|
export { Cinematic, CinematicInstance, CinematicOptions, DrawAnimation, FadeAnimation, Story, StoryAnimation, StoryEasing, StoryScene } from './cinematic/index.mjs';
|
|
7
|
-
export { S as ScrollAnimateOptions } from './engine-
|
|
7
|
+
export { S as ScrollAnimateOptions } from './engine-Bi2x8-X-.mjs';
|
|
8
8
|
|
|
9
9
|
type PresetName = 'sketch' | 'reveal' | 'typewriter' | 'cinematic' | 'spring';
|
|
10
10
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { a as ScrollDrawOptions } from './types-
|
|
2
|
-
export { P as PresetName, S as ScrollDrawInstance } from './types-
|
|
3
|
-
export { s as scrollDraw } from './scroll-draw-
|
|
4
|
-
export { S as ScrollParallaxOptions, s as scrollAnimate, a as scrollParallax } from './index-
|
|
5
|
-
export { S as ScrollCounterOptions, s as scrollCounter } from './index-
|
|
1
|
+
import { a as ScrollDrawOptions } from './types-iITMwrru.js';
|
|
2
|
+
export { C as CssEasing, E as Easing, P as PresetName, S as ScrollDrawInstance } from './types-iITMwrru.js';
|
|
3
|
+
export { s as scrollDraw } from './scroll-draw-DbY8RUJE.js';
|
|
4
|
+
export { S as ScrollParallaxOptions, s as scrollAnimate, a as scrollParallax } from './index-CEMsUTEG.js';
|
|
5
|
+
export { S as ScrollCounterOptions, s as scrollCounter } from './index-MdQ4ti_z.js';
|
|
6
6
|
export { Cinematic, CinematicInstance, CinematicOptions, DrawAnimation, FadeAnimation, Story, StoryAnimation, StoryEasing, StoryScene } from './cinematic/index.js';
|
|
7
|
-
export { S as ScrollAnimateOptions } from './engine-
|
|
7
|
+
export { S as ScrollAnimateOptions } from './engine-DAlvk6i0.js';
|
|
8
8
|
|
|
9
9
|
type PresetName = 'sketch' | 'reveal' | 'typewriter' | 'cinematic' | 'spring';
|
|
10
10
|
/**
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{a as scrollAnimate,b as scrollParallax}from'./chunk-
|
|
1
|
+
export{a as scrollAnimate,b as scrollParallax}from'./chunk-UBH4K5YD.mjs';export{a as Cinematic}from'./chunk-ASCOHQQD.mjs';export{a as scrollDraw}from'./chunk-5U4JXBHR.mjs';export{b as scrollCounter}from'./chunk-OGFXZCKC.mjs';import'./chunk-HAGTU5EX.mjs';export{a as PRESETS}from'./chunk-XLXVGQ3P.mjs';import'./chunk-7LDSB4FT.mjs';import'./chunk-UPWWULKI.mjs';import'./chunk-XC5NR2MU.mjs';import'./chunk-YOOPMYT6.mjs';import'./chunk-2PYLM3E7.mjs';import'./chunk-NV6YTPHI.mjs';export{b as createBounce,c as createElastic,a as createSpring}from'./chunk-IXR6RML7.mjs';import'./chunk-4DOJSIEQ.mjs';import'./chunk-5PJEKEEP.mjs';import'./chunk-EBU6E26L.mjs';import'./chunk-LFSU6LR3.mjs';
|
package/dist/lenis/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var a={destroy:()=>{},getScrollY:()=>0};function d(c){if(typeof window>"u")return a;let r=window.scrollY,n=["scrollY","pageYOffset"],s=n.map(e=>Object.getOwnPropertyDescriptor(window,e)),t=false,l=e=>{r=e.scroll;try{for(let o of n)Object.defineProperty(window,o,{get:()=>r,configurable:!0});t=!0;}catch{}};return c.on("scroll",l),{destroy(){c.off("scroll",l),t&&(t=false,n.forEach((e,o)=>{try{let i=s[o];i?Object.defineProperty(window,e,i):delete window[e];}catch{}}));},getScrollY(){return r}}}exports.createLenisAdapter=d;
|
package/dist/lenis/index.d.mts
CHANGED
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Lenis smooth-scroll adapter for svg-scroll-draw.
|
|
3
3
|
*
|
|
4
|
-
* Lenis
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* `window.
|
|
4
|
+
* Lenis itself does not need it. Every Lenis release so far (the 1.x line;
|
|
5
|
+
* 2.0 exists only as development prereleases) moves the real scroll position
|
|
6
|
+
* on every frame: its `setScroll()` calls `wrapper.scrollTo({ behavior:
|
|
7
|
+
* 'instant' })`, so `window.scrollY` already follows the smooth scroll and
|
|
8
|
+
* every svg-scroll-draw engine reads it with no adapter.
|
|
9
|
+
*
|
|
10
|
+
* The adapter is for a setup that keeps a virtual scroll value and does NOT
|
|
11
|
+
* move the page: any object with Lenis's `on('scroll')` / `off('scroll')`
|
|
12
|
+
* shape. It patches `window.scrollY` / `window.pageYOffset` to that value, and
|
|
13
|
+
* `destroy()` puts the browser's own properties back.
|
|
8
14
|
*
|
|
9
15
|
* Usage:
|
|
10
|
-
* import Lenis from '@studio-freight/lenis'
|
|
11
16
|
* import { createLenisAdapter } from 'svg-scroll-draw/lenis'
|
|
12
17
|
*
|
|
13
|
-
*
|
|
14
|
-
* const adapter = createLenisAdapter(
|
|
15
|
-
*
|
|
16
|
-
* // RAF loop — let Lenis drive the tick
|
|
17
|
-
* function raf(time: number) {
|
|
18
|
-
* lenis.raf(time)
|
|
19
|
-
* requestAnimationFrame(raf)
|
|
20
|
-
* }
|
|
21
|
-
* requestAnimationFrame(raf)
|
|
18
|
+
* // `scroller` emits 'scroll' with { scroll, velocity, direction, progress }
|
|
19
|
+
* const adapter = createLenisAdapter(scroller)
|
|
22
20
|
*
|
|
23
21
|
* // On cleanup:
|
|
24
22
|
* adapter.destroy()
|
|
@@ -34,7 +32,7 @@ interface LenisLike {
|
|
|
34
32
|
off(event: 'scroll', callback: (e: LenisScrollEvent) => void): void;
|
|
35
33
|
}
|
|
36
34
|
interface LenisAdapterInstance {
|
|
37
|
-
/** Restore
|
|
35
|
+
/** Restore the browser's own `window.scrollY` / `pageYOffset` and remove the listener. */
|
|
38
36
|
destroy: () => void;
|
|
39
37
|
/** Returns the current virtual scroll Y value Lenis last reported. */
|
|
40
38
|
getScrollY: () => number;
|
|
@@ -44,7 +42,8 @@ interface LenisAdapterInstance {
|
|
|
44
42
|
* virtual scroll position so all svg-scroll-draw engines stay in sync
|
|
45
43
|
* with smooth scroll.
|
|
46
44
|
*
|
|
47
|
-
*
|
|
45
|
+
* Not needed for Lenis 1.x, which scrolls the page itself; only for a
|
|
46
|
+
* scroller that reports a virtual position without moving the page.
|
|
48
47
|
*/
|
|
49
48
|
declare function createLenisAdapter(lenis: LenisLike): LenisAdapterInstance;
|
|
50
49
|
|
package/dist/lenis/index.d.ts
CHANGED
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Lenis smooth-scroll adapter for svg-scroll-draw.
|
|
3
3
|
*
|
|
4
|
-
* Lenis
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* `window.
|
|
4
|
+
* Lenis itself does not need it. Every Lenis release so far (the 1.x line;
|
|
5
|
+
* 2.0 exists only as development prereleases) moves the real scroll position
|
|
6
|
+
* on every frame: its `setScroll()` calls `wrapper.scrollTo({ behavior:
|
|
7
|
+
* 'instant' })`, so `window.scrollY` already follows the smooth scroll and
|
|
8
|
+
* every svg-scroll-draw engine reads it with no adapter.
|
|
9
|
+
*
|
|
10
|
+
* The adapter is for a setup that keeps a virtual scroll value and does NOT
|
|
11
|
+
* move the page: any object with Lenis's `on('scroll')` / `off('scroll')`
|
|
12
|
+
* shape. It patches `window.scrollY` / `window.pageYOffset` to that value, and
|
|
13
|
+
* `destroy()` puts the browser's own properties back.
|
|
8
14
|
*
|
|
9
15
|
* Usage:
|
|
10
|
-
* import Lenis from '@studio-freight/lenis'
|
|
11
16
|
* import { createLenisAdapter } from 'svg-scroll-draw/lenis'
|
|
12
17
|
*
|
|
13
|
-
*
|
|
14
|
-
* const adapter = createLenisAdapter(
|
|
15
|
-
*
|
|
16
|
-
* // RAF loop — let Lenis drive the tick
|
|
17
|
-
* function raf(time: number) {
|
|
18
|
-
* lenis.raf(time)
|
|
19
|
-
* requestAnimationFrame(raf)
|
|
20
|
-
* }
|
|
21
|
-
* requestAnimationFrame(raf)
|
|
18
|
+
* // `scroller` emits 'scroll' with { scroll, velocity, direction, progress }
|
|
19
|
+
* const adapter = createLenisAdapter(scroller)
|
|
22
20
|
*
|
|
23
21
|
* // On cleanup:
|
|
24
22
|
* adapter.destroy()
|
|
@@ -34,7 +32,7 @@ interface LenisLike {
|
|
|
34
32
|
off(event: 'scroll', callback: (e: LenisScrollEvent) => void): void;
|
|
35
33
|
}
|
|
36
34
|
interface LenisAdapterInstance {
|
|
37
|
-
/** Restore
|
|
35
|
+
/** Restore the browser's own `window.scrollY` / `pageYOffset` and remove the listener. */
|
|
38
36
|
destroy: () => void;
|
|
39
37
|
/** Returns the current virtual scroll Y value Lenis last reported. */
|
|
40
38
|
getScrollY: () => number;
|
|
@@ -44,7 +42,8 @@ interface LenisAdapterInstance {
|
|
|
44
42
|
* virtual scroll position so all svg-scroll-draw engines stay in sync
|
|
45
43
|
* with smooth scroll.
|
|
46
44
|
*
|
|
47
|
-
*
|
|
45
|
+
* Not needed for Lenis 1.x, which scrolls the page itself; only for a
|
|
46
|
+
* scroller that reports a virtual position without moving the page.
|
|
48
47
|
*/
|
|
49
48
|
declare function createLenisAdapter(lenis: LenisLike): LenisAdapterInstance;
|
|
50
49
|
|
package/dist/lenis/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var a={destroy:()=>{},getScrollY:()=>0};function d(c){if(typeof window>"u")return a;let r=window.scrollY,n=["scrollY","pageYOffset"],s=n.map(e=>Object.getOwnPropertyDescriptor(window,e)),t=false,l=e=>{r=e.scroll;try{for(let o of n)Object.defineProperty(window,o,{get:()=>r,configurable:!0});t=!0;}catch{}};return c.on("scroll",l),{destroy(){c.off("scroll",l),t&&(t=false,n.forEach((e,o)=>{try{let i=s[o];i?Object.defineProperty(window,e,i):delete window[e];}catch{}}));},getScrollY(){return r}}}export{d as createLenisAdapter};
|
package/dist/nuxt/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var vue=require('vue');function $
|
|
2
|
-
<div style="position:absolute;${m?`left:${
|
|
3
|
-
<div style="position:absolute;${m?`left:${f}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${f}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(n),window.addEventListener("scroll",o,{passive:true}),o(),{el:n,destroy(){window.removeEventListener("scroll",o),n.remove();}}}var ar=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,lr=/[MmLlHhVvCcSsQqTtAaZz]/g;function jr(e,t,r){if(!Xe)return;let n=(e.match(lr)??[]).join("").toUpperCase(),o=(t.match(lr)??[]).join("").toUpperCase(),s=(e.match(ar)??[]).length,a=(t.match(ar)??[]).length;if(n!==o){D(`morphTo: command sequence differs (${n||"\u2205"} \u2192 ${o||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,r);return}s!==a&&D(`morphTo: coordinate count differs (${s} \u2192 ${a}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,r);}function qr(e,t,r){let n=(t.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),o=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let a=parseFloat(s),f=n[o++]??a;return String(+(a+(f-a)*r).toFixed(4))})}function xt(e,t={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:qe(t,(r,n)=>Yr(e,r,n))}function Yr(e,t,r){let{preset:n,...o}=t,s=n?{...Jt[n],...o}:o,{selector:a="path, polyline, line, polygon, rect, circle",speed:f=1,fade:m=false,easing:g="linear",trigger:w={},stagger:O=0,direction:E="forward",once:W=false,debug:Q=false,axis:S="y",scrollContainer:z,autoReverse:J=false,delay:P=0,strokeColor:A,strokeWidth:L,fillOpacity:k,waypoints:y,velocityScale:R=false,threshold:G=0,rootMargin:ie="0px",repeat:K=0,repeatDelay:V=0,morphTo:H,clip:x,autoplay:X=false,duration:v=1e3,native:C=true,onProgress:he,onStart:I,onComplete:j,onEnter:fe,onLeave:Ee,onEnterBack:me,onLeaveBack:ae}=s,T=x===true?"left":typeof x=="string"?x:false,M=typeof g=="function"?g:re[g]??re.linear,ne=le(w.start||"top bottom"),$e=le(w.end||"bottom top"),Z=typeof z=="string"?document.querySelector(z):z??null,Fe=Array.isArray(A)?A[0]:null,xe=Array.isArray(A)?A[1]:typeof A=="string"?A:null,be=Array.isArray(L)?L[0]:null,ze=Array.isArray(L)?L[1]:typeof L=="number"?L:null,He=Array.isArray(k)?k[0]:null,Te=Array.isArray(k)?k[1]:typeof k=="number"?k:null;function Ae(i){let u=i*100;switch(T){case "right":return `inset(0 0 0 ${100-u}%)`;case "top":return `inset(0 0 ${100-u}% 0)`;case "bottom":return `inset(${100-u}% 0 0 0)`;case "center":return `circle(${i*150}% at 50% 50%)`;default:return `inset(0 ${100-u}% 0 0)`}}let l=T?[]:Array.from(e.querySelectorAll(a)),d=[],oe=[],$=0,_=0,B=O,q=0,_e=0,se=false,Ie=false,we=0,Qe=-1,Ye=[],Ue=-1,pe=false,c=0,p=0,b,ce=false,Se=null;function Ge(){Se?.destroy(),Se=null;}let Oe=new Set,We=NaN,Be=true,ct=-1,Dt=performance.now(),Ke=NaN;function ut(){return Z?S==="x"?Z.scrollLeft:Z.scrollTop:S==="x"?window.scrollX:window.scrollY}function Vt(){return Z?S==="x"?Z.clientWidth:Z.clientHeight:S==="x"?window.innerWidth:window.innerHeight}function _t(){let i=ft(e,Z,S);return Ce(i,i.scroll,Vt(),ne,$e)}function Lr(){let i=_-$,u=l.length-1,h=Z??document.documentElement,N=S==="x"?"Width":"Height";if(B=O,O>0&&u>0&&i>0){let de=h[`scroll${N}`]-h[`client${N}`]-1-$-i/f;de>=0&&(B=Math.min(O,de/(u*i)));}let ue=Math.max(0,u)*B*i,Me=i/Math.min(f,1);q=$+Math.min(0,ue,Me,ue+Me),_e=$+Math.max(0,ue,Me,ue+Me);}function zt(){(({tStart:$,tEnd:_}=_t())),Lr(),Q&&Xe&&(Ge(),Se=Br($,_,S));}function wt(i,u=_t){ke(e,{type:"draw",getProgress:()=>i.getProgress(),getTrigger:u});let h=i.destroy;return i.destroy=()=>{h.call(i),Re(e);},i}function Gt(i,u){return W&&!J?Math.max(Qe,M(Ye[i]=Math.max(Ye[i]??0,u))):M(u)}function Cr(i,u){if(e.style.setProperty("--scroll-draw-progress",String(i)),T){let h=u==="reverse"?1-i:i;e.style.clipPath=Ae(h);return}l.forEach((h,N)=>St(h,N,i,u));}function St(i,u,h,N){i.style.strokeDashoffset=N==="reverse"?`${d[u]*h}`:`${d[u]*(1-h)}`,m&&(i.style.opacity=N==="reverse"?`${1-h}`:`${h}`),Fe&&xe?i.style.stroke=pt(Fe,xe,h):xe&&(i.style.stroke=xe),be!==null&&ze!==null?i.style.strokeWidth=`${be+(ze-be)*h}`:ze!==null&&(i.style.strokeWidth=`${ze}`),He!==null&&Te!==null?i.style.fillOpacity=`${He+(Te-He)*h}`:Te!==null&&(i.style.fillOpacity=`${Te}`),H&&i.tagName.toLowerCase()==="path"&&oe[u]&&i.setAttribute("d",qr(oe[u],H,h));}function vt(){if(e.style.setProperty("--scroll-draw-progress","0"),T){e.style.clipPath=Ae(E==="reverse"?1:0);return}l.forEach((i,u)=>{i.style.strokeDasharray=`${d[u]}`,i.style.strokeDashoffset=E==="reverse"?"0":`${d[u]}`,m?i.style.opacity=E==="reverse"?"1":"0":i.style.opacity="",Fe&&(i.style.stroke=Fe),be!==null&&(i.style.strokeWidth=`${be}`),He!==null&&(i.style.fillOpacity=`${He}`),H&&i.tagName.toLowerCase()==="path"&&oe[u]&&i.setAttribute("d",oe[u]);});}function rt(i,u){let h=i.getAttribute("d"),N=mt(i);if(H&&oe[u]){i.setAttribute("d",H);let ue=mt(i);i.setAttribute("d",oe[u]),N=Math.max(mt(i),ue),i.setAttribute("d",h);}d[u]=N,i.style.strokeDasharray=`${N}`;}if(l.forEach((i,u)=>{Wr(i);let h=i.tagName.toLowerCase()==="path";h?oe.push(i.getAttribute("d")??""):oe.push(""),rt(i,u);let N=d[u];H&&(h?jr(oe[oe.length-1],H,i):D(`morphTo only applies to <path> elements \u2014 ignored on <${i.tagName}>.`,i)),r?(i.style.strokeDashoffset=E==="reverse"?`${N}`:"0",m&&(i.style.opacity="1"),xe&&(i.style.stroke=xe),ze!==null&&(i.style.strokeWidth=`${ze}`),Te!==null&&(i.style.fillOpacity=`${Te}`),H&&i.tagName.toLowerCase()==="path"&&i.setAttribute("d",H)):(i.style.strokeDashoffset=E==="reverse"?"0":`${N}`,m?i.style.opacity=E==="reverse"?"1":"0":i.style.opacity="",Fe&&(i.style.stroke=Fe),be!==null&&(i.style.strokeWidth=`${be}`),He!==null&&(i.style.fillOpacity=`${He}`));}),r)return T&&(e.style.clipPath=Ae(1)),j?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};T&&(e.style.clipPath=Ae(E==="reverse"?1:0));let Wt=typeof g=="string"?dt(g):null;function Ar(){return !(C===false||X||Q&&Xe||!Gr()||!l.length||!Wt||T||S!=="y"||Z||f!==1||O!==0||W||J||R!==false||H||y||K||P>0||he||I||j||fe||Ee||me||ae||A!=null||L!=null||k!=null||(w.start||"top bottom").trim()!=="top bottom"||(w.end||"bottom top").trim()!=="bottom top")}function Or(){let i=++zr,u=`svg-scroll-draw-${i}`,h=`svg-scroll-draw-host-${i}`,N=`--svg-scroll-draw-${i}`,ue=E==="reverse"?"0":"var(--ssd-len)",Me=E==="reverse"?"var(--ssd-len)":"0",de=`stroke-dashoffset:${ue};`,ee=`stroke-dashoffset:${Me};`;m&&(de+=`opacity:${E==="reverse"?1:0};`,ee+=`opacity:${E==="reverse"?0:1};`);let te=document.createElement("style");te.setAttribute("data-svg-scroll-draw",""),te.textContent=`@keyframes ${u}{from{${de}}to{${ee}}}.${h}{view-timeline-name:${N};view-timeline-axis:block;}.${u}{animation-name:${u};animation-duration:auto;animation-timing-function:${Wt};animation-fill-mode:both;animation-timeline:${N};animation-range:cover 0% cover 100%;}`,document.head.appendChild(te),e.classList.add(h);function ve(F,Y){F.style.setProperty("--ssd-len",String(d[Y])),F.style.strokeDasharray=`${d[Y]}`,F.style.strokeDashoffset="",F.style.opacity="",F.style.animationPlayState="",F.classList.add(u);}l.forEach(ve);let ge=false,Le=-1;function Pe(){if(Le>=0)return Le;let F=e.getBoundingClientRect(),{tStart:Y,tEnd:ye}=Ce({top:F.top,height:F.height},ut(),Vt(),ne,$e);return M(U(ut(),Y,ye,f))}return {destroy(){e.classList.remove(h),l.forEach(F=>{F.classList.remove(u),F.style.removeProperty("--ssd-len"),F.style.animationPlayState="";}),te.remove();},replay(){ge=false,Le=-1,l.forEach(ve);},pause(){ge=true,l.forEach(F=>{F.style.animationPlayState="paused";});},resume(){ge&&(ge=false,l.forEach(F=>{F.style.animationPlayState="running";}));},seek(F){let Y=Math.min(1,Math.max(0,F));Le=Y,ge=true,l.forEach((ye,je)=>{ye.classList.remove(u),ye.style.strokeDashoffset=E==="reverse"?`${d[je]*Y}`:`${d[je]*(1-Y)}`,m&&(ye.style.opacity=E==="reverse"?`${1-Y}`:`${Y}`);});},getProgress(){return Pe()},refresh(){l.forEach((F,Y)=>{rt(F,Y),F.style.setProperty("--ssd-len",String(d[Y]));});}}}if(Ar())return wt(Or());function Pr(){let i=Math.max(1,v),u=T?i:i*(1+Math.max(0,l.length-1)*O),h=0,N=0,ue=false;function Me(Le){let Pe=true,F=Math.min(1,Math.max(0,Le/u));if(T){let Y=Math.min(1,Math.max(0,Le/i)),ye=M(Y);c=ye,e.style.setProperty("--scroll-draw-progress",String(ye)),e.style.clipPath=Ae(E==="reverse"?1-ye:ye),he?.(ye),Y<1&&(Pe=false);}else {l.forEach((ye,je)=>{let Rr=je*O*i,Ut=Math.min(1,Math.max(0,(Le-Rr)/i));St(ye,je,M(Ut),E),Ut<1&&(Pe=false);});let Y=M(F);c=Y,he?.(Y),e.style.setProperty("--scroll-draw-progress",String(Y));}if(y){let Y=M(F);for(let ye in y){let je=parseFloat(ye);Y>=je&&!Oe.has(je)&&(Oe.add(je),y[ye]?.());}}return Pe}function de(Le){if(pe)return;let Pe=Le-h;Ie||(Ie=true,I?.());let F=Me(Pe);if(F&&!se){se=true,Me(u),j?.(),p<(K==="infinite"?1/0:K??0)&&(p++,b=setTimeout(()=>{h=performance.now(),Ie=false,se=false,Oe.clear(),vt(),we=requestAnimationFrame(de);},V));return}F||(we=requestAnimationFrame(de));}function ee(){cancelAnimationFrame(we),clearTimeout(b),h=performance.now(),N=0,pe=false,Ie=false,se=false,p=0,ue=true,c=0,Oe.clear(),vt(),we=requestAnimationFrame(de);}let te=new IntersectionObserver(Le=>{Le.forEach(Pe=>{Pe.isIntersecting&&!(W&&se)?ee():!Pe.isIntersecting&&!W&&!se&&(cancelAnimationFrame(we),clearTimeout(b),ue=false);});},{root:Z??null,threshold:G,rootMargin:ie}),ve;function ge(){clearTimeout(ve),ve=setTimeout(()=>l.forEach(rt),150);}return window.addEventListener("resize",ge),window.addEventListener("orientationchange",ge),P>0?setTimeout(()=>te.observe(e),P):te.observe(e),{destroy(){cancelAnimationFrame(we),clearTimeout(b),te.disconnect(),window.removeEventListener("resize",ge),window.removeEventListener("orientationchange",ge),clearTimeout(ve);},replay(){p=0,ee();},pause(){pe||!ue||(pe=true,N=performance.now()-h,cancelAnimationFrame(we));},resume(){pe&&(pe=false,ue=true,h=performance.now()-N,we=requestAnimationFrame(de));},seek(Le){let Pe=Math.min(1,Math.max(0,Le));c=Pe,pe=true,N=Pe*u,h=performance.now()-N,cancelAnimationFrame(we),Me(N);},getProgress(){return c},refresh(){clearTimeout(ve),l.forEach(rt);}}}if(X)return wt(Pr());zt();let Bt=()=>U(ut(),q,_e,1);function jt(){se=true,j?.(),p<(K==="infinite"?1/0:K)&&(p++,b=setTimeout(()=>{ce=true;},V));}function qt(){Qe=-1,Ye=[],Ie=false,se=false,ce=false,Oe.clear(),vt(),Be=true;}function kr(){let i=performance.now(),u=ut();if(ce&&Bt()%1&&qt(),!Be&&R===false&&u===We)return;Be=false,We=u;let h=f;if(R!==false){let ee=i-Dt,te=ee>0?Math.abs(u-(ct<0?u:ct))/ee:0;h=f*Math.max(.2,1+te*(typeof R=="number"?R:1)*.04);}ct=u,Dt=i;let N=J?Ue===-1||u>=Ue?"forward":"reverse":E;Ue=u;let ue=_-$,Me=true,de=ue===0?0:(u-$)/ue;if(isNaN(Ke)||(Ke<=0&&de>0&&fe?.(),Ke<1&&de>=1&&Ee?.(),Ke>=1&&de<1&&me?.(),Ke>0&&de<=0&&ae?.()),Ke=de,T){let ee=Gt(0,U(u,$,_,h));c=ee,e.style.setProperty("--scroll-draw-progress",String(ee));let te=N==="reverse"?1-ee:ee;e.style.clipPath=Ae(te),he?.(ee),!Ie&&U(u,$,_,h)>0&&(Ie=true,I?.()),ee>=1&&!se?jt():ee<1&&!W&&(se=false);return}if(l.forEach((ee,te)=>{let ve=te*B*ue,ge=Gt(te,U(u,$+ve,_+ve,h));St(ee,te,ge,N),te===0&&(c=ge,he?.(ge),e.style.setProperty("--scroll-draw-progress",String(ge))),ge<1&&(Me=false);}),y){let ee=M(U(u,$,_,h));for(let te in y){let ve=parseFloat(te);ee>=ve&&!Oe.has(ve)&&(Oe.add(ve),y[te]?.());}}!Ie&&U(u,$,_,h)>0&&(Ie=true,I?.()),Me&&!se?jt():!Me&&!W&&(se=false);}let nt=Ne(Z??window,[e],Bt,kr,()=>{let i=d.join();l.forEach(rt),zt(),Be=true,d.join()!==i&&ot();}),Et=P>0;function ot(){nt.hold(pe||Et);}let Yt;return Et&&(Yt=setTimeout(()=>{Et=false,ot();},P)),ot(),wt({destroy(){clearTimeout(b),clearTimeout(Yt),nt.off(),Ge();},replay(){qt(),Ue=-1,ct=-1,p=0,pe=false,c=0,clearTimeout(b),ot();},pause(){pe=true,nt.hold(true);},resume(){pe&&(pe=false,Be=true,ot());},seek(i){let u=Math.min(1,Math.max(0,i));c=u,Qe=u,Ye=[],pe=true,nt.hold(true),Cr(u,E),Be=true;},getProgress(){return c},refresh:nt.remeasure},()=>({tStart:$,tEnd:_}))}var cr=new WeakMap,Ur=0;function lt(e){return JSON.stringify(e,(t,r)=>{if(typeof r=="function")return "\u0192";if(typeof Element<"u"&&r instanceof Element){let n=cr.get(r);return n===void 0&&cr.set(r,n=++Ur),`el#${n}`}return r})}function ur(e,t){let r={...e};for(let n of Object.keys(r))typeof r[n]=="function"&&(r[n]=(...o)=>t()[n]?.(...o));return r}function Qr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function fr(e){let t=[],r=/([\w]+)\(([^)]*)\)/g,n;for(;(n=r.exec(e))!==null;){let o=[],s=[],a=n[2].trim();if(a)for(let f of a.split(/[\s,]+/)){let m=f.match(/^([-+]?[\d.eE]+)(.*)$/);o.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}t.push({fn:n[1],nums:o,units:s});}return t}function Kr(e,t,r){let n=fr(e),o=fr(t);return n.length===0||n.length!==o.length?r<1?e:t:n.map((s,a)=>{let f=o[a];return s.fn!==f.fn||s.nums.length!==f.nums.length?r<1?`${s.fn}(${s.nums.map((m,g)=>`${m}${s.units[g]}`).join(", ")})`:`${f.fn}(${f.nums.map((m,g)=>`${m}${f.units[g]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,g)=>`${m+(f.nums[g]-m)*r}${s.units[g]}`).join(", ")})`}).join(" ")}function mr(e,t,r){if(typeof e=="number"&&typeof t=="number")return String(e+(t-e)*r);let n=String(e),o=String(t);if(Qr(n))return pt(n,o,r);if(n.includes("("))return Kr(n,o,r);let s=n.match(/^([-+]?[\d.]+)(.*)$/),a=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&a){let f=parseFloat(s[1]),m=parseFloat(a[1]);return `${f+(m-f)*r}${s[2]||a[2]}`}return r<1?n:o}function Xr(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}var Zr=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),Jr=0,pr="--scroll-draw-progress";function en(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var gr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Tt(e,t){return typeof window>"u"?gr:t.respectReducedMotion===false?dr(e,t,false):qe(t,(r,n)=>dr(e,r,n))}function dr(e,t,r){let{props:n,trigger:o={},easing:s="ease-out",speed:a=1,once:f=false,axis:m="y",scrollContainer:g,native:w=true,velocityScale:O=false,triggerElement:E,onProgress:W,onComplete:Q,onEnter:S,onLeave:z,onEnterBack:J,onLeaveBack:P}=t,A=typeof s=="function"?s:re[s]??re["ease-out"],L=le(o.start||"top bottom"),k=le(o.end||"bottom top"),y=E??e,R=typeof g=="string"?document.querySelector(g):g??null,G=Object.entries(n).map(([l,d])=>({prop:Xr(l),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function ie(){let l=window.getComputedStyle(e);for(let d of G)d.from===""&&(d.from=l.getPropertyValue(d.prop).trim()||"0");}function K(){for(let l of G)e.style.setProperty(l.prop,String(l.to));}let V=new Map;for(let l of [...G.map(d=>d.prop),pr])V.set(l,e.style.getPropertyValue(l));function H(){for(let[l,d]of V)d?e.style.setProperty(l,d):e.style.removeProperty(l);}if(r)return K(),Q?.(),{...gr,destroy:H,getProgress:()=>1};ie();let x=()=>R?m==="x"?R.scrollLeft:R.scrollTop:m==="x"?window.scrollX:window.scrollY,X=()=>R?m==="x"?R.clientWidth:R.clientHeight:m==="x"?window.innerWidth:window.innerHeight,v=typeof s=="string"?dt(s):null;function C(){if(!w||!en()||!v||m!=="y"||R||y!==e||f||a!==1||W||Q||S||z||J||P||O!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let l of G)if(!Zr.has(l.prop))return false;return true}function he(){let l=`ssd-a-${++Jr}`,d=G.map(q=>`${q.prop}:${q.from}`).join(";"),oe=G.map(q=>`${q.prop}:${q.to}`).join(";"),$=document.createElement("style");$.setAttribute("data-ssd-animate",""),$.textContent=`@keyframes ${l}{from{${d}}to{${oe}}}.${l}{animation-name:${l};animation-duration:auto;animation-timing-function:${v};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild($),e.classList.add(l);let _=()=>{let q=e.getBoundingClientRect();return Ce({top:q.top,height:q.height},x(),X(),L,k)};ke(e,{type:"animate",getProgress:()=>B.getProgress(),getTrigger:_});let B={refresh(){},destroy(){e.classList.remove(l),$.remove(),e.style.animationPlayState="",H(),Re(e);},replay(){e.classList.remove(l),e.offsetWidth,e.classList.add(l);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(q){let _e=Math.min(1,Math.max(0,q));e.classList.remove(l);for(let se of G)e.style.setProperty(se.prop,mr(se.from,se.to,_e));},getProgress(){let{tStart:q,tEnd:_e}=_();return A(U(x(),q,_e,a))}};return B}if(C())return he();let I=0,j=0,fe=false,Ee=-1,me=0,ae=0,T=false,M=NaN,ne=-1,$e=0,Z=y===e?G:[],Fe=false;function xe(){let l=e.style,d=Z.map(B=>l.getPropertyValue(B.prop)),oe=l.transition;Z.length&&(l.transition="none"),Z.forEach(B=>l.setProperty(B.prop,V.get(B.prop)??""));let $=ft(y,R,m);Z.forEach((B,q)=>l.setProperty(B.prop,d[q])),Z.length&&(e.offsetWidth,l.transition=oe);let _=Ce($,$.scroll,X(),L,k);Fe&&Math.abs(_.tStart-I)<1&&Math.abs(_.tEnd-j)<1||(Fe=true,I=_.tStart,j=_.tEnd);}function be(l){e.style.setProperty(pr,String(l));for(let d of G)e.style.setProperty(d.prop,mr(d.from,d.to,l));W?.(l);}function ze(l){if(isNaN(M)){M=l;return}M<=0&&l>0&&S?.(),M<1&&l>=1&&z?.(),M>=1&&l<1&&J?.(),M>0&&l<=0&&P?.(),M=l;}function He(){if(fe)return;let l=performance.now(),d=x(),oe=a;if(O!==false){let q=l-$e,_e=q>0?Math.abs(d-(ne<0?d:ne))/q:0;oe=a*Math.max(.2,1+_e*(typeof O=="number"?O:1)*.04);}ne=d,$e=l;let $=j===I?0:(d-I)/(j-I);ze($);let _=U(d,I,j,oe),B=f?Math.max(Ee,A(me=Math.max(me,_))):A(_);ae=B,be(B),B>=1&&!T?(T=true,Q?.()):B<1&&!f&&(T=false);}let Te=Ne(R??window,[y],()=>U(x(),I,j,Math.min(a,1)),He,xe);xe(),j===I&&D("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),me=U(x(),I,j,a),ae=A(me),be(ae),ke(e,{type:"animate",getProgress:()=>ae,getTrigger:()=>({tStart:I,tEnd:j})});function Ae(){fe=true,Te.hold(true);}return {destroy(){fe=true,Te.off(),H(),Re(e);},replay(){Ee=-1,me=0,T=false,ae=0,fe=false,be(0),Te.hold(false);},pause:Ae,resume(){fe&&(fe=false,Te.hold(false));},seek(l){let d=Math.min(1,Math.max(0,l));ae=d,Ee=d,me=0,Ae(),be(d);},getProgress(){return ae},refresh:Te.remeasure}}var Mt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Lt(e,t){if(typeof window>"u")return Mt;let r=typeof e=="string"?document.querySelector(e):e;return r?qe(t,(n,o)=>tn(r,n,o)):(D("scrollCounter: element not found:",e),Mt)}function tn(e,t,r){let{from:n=0,to:o,format:s,easing:a="ease-out",trigger:f={},once:m=true,decimals:g,onComplete:w}=t,O=g!==void 0?v=>v.toFixed(g):s??(v=>String(Math.round(v))),E=typeof a=="function"?a:re[a]??re["ease-out"],W=le(f.start||"top 80%"),Q=le(f.end||"top 20%");if(r)return e.textContent=O(o),w?.(),{...Mt,getProgress:()=>1};let S=0,z=0,J=false,P=-1,A=0,L=0,k=false,y=()=>window.scrollY,R=()=>window.innerHeight;function G(){let v=e.getBoundingClientRect(),C=Ce({top:v.top,height:v.height},y(),R(),W,Q);J&&Math.abs(C.tStart-S)<1&&Math.abs(C.tEnd-z)<1||(J=true,S=C.tStart,z=C.tEnd);}let ie=e.style.getPropertyValue("--scroll-draw-progress");function K(v){e.textContent=O(n+(o-n)*v),e.style.setProperty("--scroll-draw-progress",String(v));}let V=()=>U(y(),S,z,1);function H(){let v=V(),C=m?Math.max(P,E(A=Math.max(A,v))):E(v);L=C,K(C),C>=1&&!k?(k=true,w?.()):C<1&&!m&&(k=false);}G();{A=U(y(),S,z,1);let v=E(A);L=v,K(v);}let x=Ne(window,[e],V,H,G);ke(e,{type:"counter",getProgress:()=>L,getTrigger:()=>({tStart:S,tEnd:z})});let X=()=>x.hold(false);return {destroy(){x.off(),e.style.setProperty("--scroll-draw-progress",ie),Re(e);},replay(){P=-1,A=0,k=false,L=0,K(0),X();},pause:()=>x.hold(true),resume:X,seek(v){let C=Math.min(1,Math.max(0,v));L=C,P=C,A=0,x.hold(true),K(C);},getProgress(){return L}}}var yr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,t={}){if(typeof window>"u")return yr;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return D("scrollVideo: <video> element not found:",e),yr;let n=r,{trigger:o={},easing:s="linear",once:a=false,axis:f="y",preload:m="auto",triggerElement:g,onReady:w,onComplete:O,onProgress:E}=t,W=g??n,Q=window.matchMedia("(prefers-reduced-motion: reduce)").matches,S=typeof s=="function"?s:re[s]??re.linear,z=le(o.start||"top top"),J=le(o.end||"bottom top");n.pause(),n.hasAttribute("preload")||(n.preload=m);let P=t.from??0,A=t.to,L=0,k=0,y=false,R=-1,G=0,ie=0,K=false,V=false,H=()=>f==="x"?window.scrollX:window.scrollY,x=()=>f==="x"?window.innerWidth:window.innerHeight;function X(){let T=W.getBoundingClientRect(),M=f==="x"?T.left:T.top,ne=f==="x"?T.width:T.height,$e=Ce({top:M,height:ne},H(),x(),z,J);L=$e.tStart,k=$e.tEnd,V&&k===L&&D("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n);}let v=NaN;function C(T){if(!V)return;let M=A??n.duration??0,ne=P+(M-P)*T;ne!==v&&(v=ne,n.currentTime=ne),n.style.setProperty("--scroll-draw-progress",String(T)),E?.(T);}let he=()=>U(H(),L,k,1);function I(){if(!V||Q)return;let T=he(),M=a?Math.max(R,S(G=Math.max(G,T))):S(T);ie=M,C(M),M>=1&&!K?(K=true,O?.()):M<1&&!a&&(K=false);}let j=Ne(window,[W],he,I,X),fe=()=>j.hold(y||!V||Q);fe();function Ee(){if(V=true,A===void 0&&(A=n.duration),Q){C(1),w?.();return}X(),w?.(),y?C(ie):fe();}n.readyState>=1?Ee():n.addEventListener("loadedmetadata",Ee,{once:true}),V||X();let me=Q?()=>{}:Ze(T=>{T&&(me(),Q=true,j.hold(true),C(1));});ke(n,{type:"video",getProgress:()=>ie,getTrigger:()=>({tStart:L,tEnd:k})});function ae(){y&&(y=false,fe());}return {destroy(){j.off(),n.removeEventListener("loadedmetadata",Ee),me(),Re(n);},replay(){R=-1,G=0,K=false,ie=0,v=NaN,C(0),ae();},pause(){y=true,j.hold(true);},resume:ae,seek(T){let M=Math.min(1,Math.max(0,T));ie=M,R=M,G=0,y=true,j.hold(true),v=NaN,C(M);},getProgress(){return ie}}}var ht={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function rn(e){let t=e>1?[0,e-1]:[0],r=[[0,e-1]];for(let n=0;n<r.length;n++){let[o,s]=r[n];if(s-o<2)continue;let a=o+s>>1;t.push(a),r.push([o,a],[a,s]);}return t}function hr(e,t){if(typeof window>"u")return ht;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="canvas")return D("scrollFrames: <canvas> element not found:",e),ht;let n=r,{frames:o,trigger:s={},easing:a="linear",once:f=false,axis:m="y",fit:g="cover",triggerElement:w,onReady:O,onLoad:E,onComplete:W,onProgress:Q}=t||{},S=Array.isArray(o)?o:null,z=t?.count,J=Math.floor(S?Math.min(z??S.length,S.length):z??NaN);if(!(S||typeof o=="function")||!Number.isFinite(J)||J<1)return D("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",n),ht;let P=t.concurrency??6;(!Number.isFinite(P)||P<1)&&(D("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",t.concurrency),P=6),P=Math.floor(P);let A=n.getContext("2d");if(!A)return D("scrollFrames: the canvas has no 2D context.",n),ht;let L=J-1,k=w??n,y=window.matchMedia("(prefers-reduced-motion: reduce)").matches,R=typeof a=="function"?a:re[a]??re.linear,G=c=>{let p=R(c);return p===p?p:0},ie=le(s.start||"top top"),K=le(s.end||"bottom top"),V=0,H=0,x=false,X=-1,v=0,C=0,he=false,I=false,j=false,fe=false,Ee=0,me=-1,ae=new Array(J),T=new Uint8Array(J),M=new Set,ne=y?[L]:rn(J),$e=0,Z=0,Fe=false,xe=(c,...p)=>{if(c)try{c(...p);}catch(b){typeof reportError=="function"?reportError(b):setTimeout(()=>{throw b});}},be=false,ze=c=>{let p;try{p=S?S[c]:o(c);}catch(b){p=b;}return typeof p=="string"&&p?p:(be||(be=true,D(`scrollFrames: no URL for frame ${c}; it is skipped for its nearest neighbour.`,p)),null)},He=()=>m==="x"?window.scrollX:window.scrollY,Te=()=>m==="x"?window.innerWidth:window.innerHeight;function Ae(){!Fe&&Z===ne.length&&(Fe=true,xe(E));}function l(){for(;!I&&M.size<P&&$e<ne.length;){let c=ne[$e++];T[c]||d(c);}}function d(c){T[c]=1;let p=ze(c);if(p===null){Z++,queueMicrotask(()=>{I||Ae();});return}let b=new Image,ce=false,Se=Ge=>{ce||I||(ce=true,b.onload=b.onerror=null,M.delete(b),Ge?ae[c]=b:D("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",p),Z++,l(),_(),Ae());};M.add(b),b.decoding="async",b.onerror=()=>Se(false),b.src=p,typeof b.decode=="function"?b.decode().then(()=>Se(true),()=>{b.complete?Se(b.naturalWidth>0):b.onload=()=>Se(true);}):b.onload=()=>Se(true);}function oe(c){for(let p=0;p<=L;p++){if(ae[c-p])return c-p;if(ae[c+p])return c+p}return -1}function $(){let c=n.clientWidth,p=n.clientHeight;if(!c||!p)return;let b=Math.min(window.devicePixelRatio||1,2),ce=Math.round(c*b),Se=Math.round(p*b);if(Math.abs(n.width-ce)<=1&&Math.abs(n.height-Se)<=1)return;n.width=ce,n.height=Se,me=-1;let Ge=n.clientWidth,Oe=n.clientHeight;if(Ge!==c||Oe!==p){let We=n.style;Ge!==c&&Oe!==p?(We.width=`${c}px`,We.height=`${p}px`):We.aspectRatio=`${c} / ${p}`;}}function _(){let c=oe(Ee);if(c<0||c===me)return;let p=ae[c],b=n.width,ce=n.height,Se=p.naturalWidth||b,Ge=p.naturalHeight||ce,Oe=(g==="contain"?Math.min:Math.max)(b/Se,ce/Ge),We=Se*Oe,Be=Ge*Oe;A.clearRect(0,0,b,ce),A.drawImage(p,(b-We)/2,(ce-Be)/2,We,Be),me=c,j||(j=true,xe(O));}function B(c){Ee=Math.min(L,Math.max(0,Math.round(c*L))),n.style.setProperty("--scroll-draw-progress",String(c)),_(),xe(Q,c,Ee);}function q(){let c=k.getBoundingClientRect(),p=m==="x"?c.left:c.top,b=m==="x"?c.width:c.height,ce=Ce({top:p,height:b},He(),Te(),ie,K);V=ce.tStart,H=ce.tEnd,H===V&&b>0&&!y&&!fe&&(fe=true,D("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n));}let _e=()=>U(He(),V,H,1);function se(){if(y)return;let c=_e(),p=f?Math.max(X,G(v=Math.max(v,c))):G(c);C=p,B(p),p>=1&&!he?(he=true,xe(W)):p<1&&!f&&(he=false);}function Ie(){C=1,B(1);}$(),y||q();let we=Ne(window,[k],_e,se,()=>{$(),y||q(),_();}),Qe=()=>we.hold(x||y);Qe(),y&&Ie(),l();let Ye=typeof ResizeObserver=="function"?new ResizeObserver(()=>{$(),_();}):null;Ye?.observe(n);let Ue=y?()=>{}:Ze(c=>{c&&(Ue(),y=true,we.hold(true),ne=ne.slice(0,$e),T[L]||ne.push(L),Ae(),Ie(),l());});ke(n,{type:"frames",getProgress:()=>C,getTrigger:()=>({tStart:V,tEnd:H})});function pe(){I||!x||(x=false,Qe());}return {destroy(){if(!I){I=true,we.off(),Ye?.disconnect(),Ue();for(let c of M)c.onload=c.onerror=null,c.src="";M.clear(),Re(n);}},replay(){I||(X=-1,v=0,he=false,C=0,B(0),pe());},pause(){I||(x=true,we.hold(true));},resume:pe,seek(c){if(I)return;let p=Math.min(1,Math.max(0,c===c?c:0));C=p,X=p,v=0,x=true,we.hold(true),B(p);},getProgress(){return C}}}var nn=1e4;function At(e){let{frames:t,count:r}=e;if(typeof t!="function")return lt(e);let n=Number.isFinite(r)?Math.min(Math.max(Math.floor(r),0),nn):0,o;try{o=Array.from({length:n},(s,a)=>t(a));}catch{o=["throws"];}return lt({...e,frames:o})}function br(e){if(!e||e.getAttribute("aria-hidden")==="true")return;let t=e.getAttribute("role");t==="presentation"||t==="none"||e.getAttribute("aria-label")||e.getAttribute("aria-labelledby")||D('<ScrollFrames>: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.',e);}function wr(e,t){let r=document.createElement("span");r.textContent=t,r.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;user-select:none",e.appendChild(r);}function bt(e=""){let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=e,t}function vr(e){let t=e.textContent??"";return e.textContent="",t.split(/(\s+)/).filter(Boolean).map(r=>{let n=e.appendChild(bt(r)),o=/^\s+$/.test(r);return o?n.style.whiteSpace="pre":n.style.display="inline-block",o?null:n}).filter(r=>r!==null)}function on(e){let t=e.textContent??"";e.textContent="";let r=[],n=null;for(let o of t){let s=bt(o),a=o===" ";a?s.style.whiteSpace="pre":(s.style.display="inline-block",r.push(s)),a||o>"\u0DFF"?n=null:n||(n=e.appendChild(bt()),n.style.cssText="display:inline-block;white-space:nowrap"),(n??e).appendChild(s);}return r}function Sr(e){let t=vr(e),r=new Map;for(let s of t){let a=s.offsetTop;r.has(a)||r.set(a,[]),r.get(a).push(s);}let n=[],o=Array.from(r.keys()).sort((s,a)=>s-a);for(let s of o){let a=r.get(s),f=bt();f.style.display="inline-block",a.forEach((m,g)=>{let w=m.nextElementSibling;f.appendChild(m),g<a.length-1&&w&&w.style.whiteSpace==="pre"&&f.appendChild(w);}),n.push(f);}return e.textContent="",n.forEach((s,a)=>{e.appendChild(s),a<n.length-1&&e.appendChild(document.createTextNode(" "));}),n}function sn(e,t,r,n){if(r<=1||n===0)return e;n=Math.min(n,1/r);let o=(r-1)*n,s=t*n,a=s+(1-o);return a<=s?e>=s?1:0:st((e-s)/(a-s),0,1)}function an(e,t){let r=[];if(t?.y!==void 0&&r.push(`translateY(${t.y*(1-e)}px)`),t?.x!==void 0&&r.push(`translateX(${t.x*(1-e)}px)`),t?.rotate!==void 0&&r.push(`rotate(${t.rotate*(1-e)}deg)`),t?.scale!==void 0){let n=t.scale+(1-t.scale)*e;r.push(`scale(${n})`);}return r.join(" ")}var Ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Pt(e,t={}){if(typeof window>"u")return Ot;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return D("scrollText: element not found:",e),Ot;let n=r;return qe(t,(o,s)=>ln(n,o,s))}function ln(e,t,r){let{split:n="words",stagger:o=.04,easing:s="ease-out",from:a={opacity:0,y:24},trigger:f={},once:m=true,onComplete:g}=t,w=typeof s=="function"?s:re[s]??re["ease-out"],O=le(f.start||"top 85%"),E=le(f.end||"top 40%"),W=e.innerHTML,Q=e.textContent??"",S;n==="chars"?S=on(e):n==="lines"?S=Sr(e):S=vr(e),wr(e,Q);let z=S.length;function J(x,X){a?.opacity!==void 0&&(x.style.opacity=String(a.opacity+(1-a.opacity)*X));let v=an(X,a);v&&(x.style.transform=v);}function P(x){e.style.setProperty("--scroll-draw-progress",String(x)),S.forEach((X,v)=>{let C=w(sn(x,v,z,o));J(X,C);});}if(r)return P(1),g?.(),{...Ot,destroy:()=>{e.innerHTML=W;},getProgress:()=>1};P(0);let A=0,L=0,k=-1,y=0,R=false;function G(){({tStart:A,tEnd:L}=Ce(e.getBoundingClientRect(),window.scrollY,window.innerHeight,O,E));}let ie=()=>U(window.scrollY,A,L,1);function K(){let x=m?k=Math.max(k,ie()):ie();y=x,P(x),x>=1&&!R?(R=true,g?.()):x<1&&!m&&(R=false);}G();let V=Ne(window,[e],ie,K,()=>{n==="lines"&&(e.innerHTML=W,S=Sr(e),wr(e,Q),P(y)),G();});ke(e,{type:"text",getProgress:()=>y,getTrigger:()=>({tStart:A,tEnd:L})});let H=()=>V.hold(false);return {destroy(){V.off(),e.innerHTML=W,Re(e);},replay(){k=-1,R=false,y=0,P(0),H();},pause:()=>V.hold(true),resume:H,seek(x){V.hold(true),P(y=k=st(x,0,1));},getProgress(){return y}}}var tt=e=>typeof e=="function"?e():vue.unref(e);function Ve(e,t,r,n=lt){let o=null,s=t(),a=()=>{o?.destroy(),o=e.value?r(e.value,ur(s,()=>s),s):null;};vue.onMounted(a),vue.watch(()=>n(s=t()),a),vue.onUnmounted(()=>{o?.destroy(),o=null;});}function mn(e={}){let t=vue.ref(null);return Ve(t,()=>tt(e),xt),t}var Er={preset:0,selector:0,speed:0,fade:1,easing:0,trigger:0,stagger:0,direction:0,once:1,debug:1,axis:0,scrollContainer:0,autoReverse:1,delay:0,strokeColor:0,strokeWidth:0,fillOpacity:0,clip:2,waypoints:0,velocityScale:3,threshold:0,rootMargin:0,repeat:0,repeatDelay:0,morphTo:0,onProgress:0,onStart:0,onComplete:0,onEnter:0,onLeave:0,onEnterBack:0,onLeaveBack:0,autoplay:1,duration:0,native:1},pn=[null,Boolean,[Boolean,String],[Boolean,Number]],kt=e=>({type:e,default:void 0}),Rt=vue.defineComponent({name:"ScrollDraw",props:Object.fromEntries(Object.entries(Er).map(([e,t])=>[e,t?kt(pn[t]):null])),setup(e,{slots:t}){let r=vue.ref(null);return Ve(r,()=>{let n={};for(let o in Er){let s=e[o];s!=null&&(n[o]=s);}return n},xt),()=>vue.h("div",{ref:r},t.default?.())}});function dn(e){let t=vue.ref(null);return Ve(t,()=>tt(e),Tt),t}var $t=vue.defineComponent({name:"ScrollAnimate",props:{options:{type:Object,required:true}},setup(e,{slots:t}){let r=vue.ref(null);return Ve(r,()=>e.options,Tt),()=>vue.h("div",{ref:r},t.default?.())}});function gn(e){let t=vue.ref(null);return Ve(t,()=>tt(e),Lt),t}var Ft=vue.defineComponent({name:"ScrollCounter",props:{to:{type:Number,required:true},from:{type:Number},format:{type:Function},easing:{type:[String,Function]},trigger:{type:Object},once:kt(Boolean),decimals:{type:Number},onComplete:{type:Function}},setup(e){let t=vue.ref(null);return Ve(t,()=>{let r={to:e.to};return e.from!=null&&(r.from=e.from),e.format!=null&&(r.format=e.format),e.easing!=null&&(r.easing=e.easing),e.trigger!=null&&(r.trigger=e.trigger),e.once!=null&&(r.once=e.once),e.decimals!=null&&(r.decimals=e.decimals),e.onComplete!=null&&(r.onComplete=e.onComplete),r},Lt),()=>vue.h("span",{ref:t})}});function yn(e={}){let t=vue.ref(null);return Ve(t,()=>tt(e),Ct),t}var Ht=vue.defineComponent({name:"ScrollVideo",props:{src:{type:String,required:true},options:{type:Object},muted:{type:Boolean,default:true},playsInline:{type:Boolean,default:true},class:{type:String}},setup(e){let t=vue.ref(null);return Ve(t,()=>e.options??{},Ct),()=>vue.h("video",{ref:t,src:e.src,muted:e.muted,playsinline:e.playsInline,preload:"auto",class:e.class})}}),Mr=(e,{triggerElement:t,...r},n)=>{let o=typeof t=="string"?document.querySelector(t):t;return typeof t=="string"&&!o&&D(`<ScrollFrames>: triggerElement "${t}" matches nothing; measuring the canvas.`),hr(e,{...r,frames:n.frames,triggerElement:o??void 0})};function hn(e){let t=vue.ref(null);return Ve(t,()=>tt(e),Mr,At),t}var xr={frames:0,count:0,trigger:0,easing:0,once:1,axis:0,triggerElement:0,fit:0,concurrency:0,onReady:0,onLoad:0,onComplete:0,onProgress:0},It=vue.defineComponent({name:"ScrollFrames",props:Object.fromEntries(Object.entries(xr).map(([e,t])=>[e,t?kt(Boolean):e==="frames"?{required:true}:null])),setup(e){let t=vue.ref(null);return Ve(t,()=>{let r={};for(let n in xr){let o=e[n];o!=null&&(r[n]=o);}return r},Mr,At),vue.onMounted(()=>br(t.value)),()=>vue.h("canvas",{ref:t,role:"img"})}});function bn(e={}){let t=vue.ref(null);return Ve(t,()=>tt(e),Pt),t}var Nt=vue.defineComponent({name:"ScrollText",props:{options:{type:Object},tag:{type:String,default:"p"}},setup(e,{slots:t}){let r=vue.ref(null);return Ve(r,()=>e.options??{},Pt),()=>vue.h(e.tag,{ref:r},t.default?.())}});function Xo(){return {install(e){e.component("ScrollDraw",Rt),e.component("ScrollAnimate",$t),e.component("ScrollCounter",Ft),e.component("ScrollVideo",Ht),e.component("ScrollFrames",It),e.component("ScrollText",Nt);}}}exports.ScrollAnimate=$t;exports.ScrollCounter=Ft;exports.ScrollDraw=Rt;exports.ScrollFrames=It;exports.ScrollText=Nt;exports.ScrollVideo=Ht;exports.createScrollDrawPlugin=Xo;exports.useScrollAnimate=dn;exports.useScrollCounter=gn;exports.useScrollDraw=mn;exports.useScrollFrames=hn;exports.useScrollText=bn;exports.useScrollVideo=yn;
|
|
1
|
+
'use strict';var vue=require('vue');var Xe=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function A(e,...t){Xe&&console.warn(`[svg-scroll-draw] ${e}`,...t);}function Vr({tension:e=2.5,friction:t=2.2}={}){return r=>1-Math.cos(r*Math.PI*e)*Math.pow(1-r,t)}function _r({bounces:e=3,decay:t=.5}={}){let r=Math.max(1,Math.round(e)),n=Math.max(.01,Math.min(.99,t)),o=Math.sqrt(n),s=0,i=[];for(let g=0;g<r;g++){let w=Math.pow(o,g);i.push(w),s+=w;}let c=[0],m=0;for(let g=0;g<r;g++)m+=i[g]/s,c.push(m);return g=>{if(g<=0)return 0;if(g>=1)return 1;for(let w=0;w<r;w++)if(g<=c[w+1]){let P=(g-c[w])/(c[w+1]-c[w]);if(w===0)return P*(2-P);let x=1-Math.pow(n,w);return x+(1-x)*(2*P-1)*(2*P-1)}return 1}}function zr({amplitude:e=1,period:t=.4}={}){let r=Math.max(1,e),n=Math.max(.1,t),o=r<=1?n/4:n/(2*Math.PI)*Math.asin(1/r);return s=>s<=0?0:s>=1?1:r*Math.pow(2,-10*s)*Math.sin((s-o)*(2*Math.PI)/n)+1}var Je={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:Vr(),bounce:_r(),elastic:zr()};function Wr(e,t,r,n){let o=(s,i,c)=>((1+3*s-3*i)*c+3*i-6*s)*c*c+3*s*c;return s=>{if(s<=0||s>=1)return +(s>0);let i=s;for(let c=0;c<8;c++)i-=(o(e,r,i)-s)/((3*(1+3*e-3*r)*i+6*r-12*e)*i+3*e);if(!(i>=0&&i<=1&&Math.abs(o(e,r,i)-s)<1e-9))for(let c=0,m=0,g=1;c<30;c++)i=(m+g)/2,o(e,r,i)<s?m=i:g=i;return o(t,n,i)}}function Mt(e){let t=/^cubic-bezier\((.*)\)$/.exec(e==="ease"?"cubic-bezier(.25,.1,.25,1)":e.trim()),r=t?t[1].split(",").map(parseFloat):[];if(r.length===4&&r.every(Number.isFinite)&&r[0]*(1-r[0])>=0&&r[2]*(1-r[2])>=0)return [Wr(r[0],r[1],r[2],r[3]),`cubic-bezier(${r})`]}var Zt=new Set;function De(e,t="linear"){if(typeof e=="function")return e;if(e==null)return Je[t];if({}.hasOwnProperty.call(Je,e))return Je[e];let r=Mt(String(e));return r?r[0]:(!Zt.has(e)&&Zt.add(e)&&A(`Unknown easing ${JSON.stringify(e)}: use a name, cubic-bezier() or a function.`),Je[t])}function it(e,t,r){return Math.min(r,Math.max(t,e))}function ae(e="top bottom"){let t=e.trim();if(/^\d+(\.\d+)?%$/.test(t))return {element:"top",viewport:t};let[r="top",n="bottom"]=t.split(/\s+/).filter(Boolean);return {element:r,viewport:n}}var rr=(e,t)=>e==="top"?0:e==="center"?.5:e==="bottom"?1:t;function er(e,t,r,n){return e+r+t*rr(n,0)}function tr(e,t){return t*(/^\d+(\.\d+)?%$/.test(e)?parseFloat(e)/100:rr(e,1))}function Q(e,t,r,n){return r===t?0:it((e-t)/(r-t)*n,0,1)}function Le(e,t,r,n,o){let s=er(e.top,e.height,t,n.element)-tr(n.viewport,r),i=er(e.top,e.height,t,o.element)-tr(o.viewport,r);return {tStart:s,tEnd:i}}function mt(e,t,r){let n=e.getBoundingClientRect(),o=r==="x"?n.width:n.height;return t?{top:r==="x"?n.left-t.getBoundingClientRect().left-t.clientLeft+t.scrollLeft:n.top-t.getBoundingClientRect().top-t.clientTop+t.scrollTop,height:o,scroll:0}:{top:r==="x"?n.left:n.top,height:o,scroll:r==="x"?window.scrollX:window.scrollY}}function pt(e){let t=parseFloat(e.getAttribute("pathLength")??"");if(t>0)return t;let r=e.tagName.toLowerCase();if(r==="rect"){let n=parseFloat(e.getAttribute("width")??"0"),o=parseFloat(e.getAttribute("height")??"0");return 2*(n+o)}if(r==="circle"){let n=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*n}return e.getTotalLength()}function dt(e){return `${e} ${e*2}`}function nr(e){let t=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(t)return [parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)];let r=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(r)return [parseInt(r[1],16),parseInt(r[2],16),parseInt(r[3],16)];let n=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return n?[parseInt(n[1]),parseInt(n[2]),parseInt(n[3])]:null}function gt(e,t,r){let n=nr(e),o=nr(t);return !n||!o?e:`rgb(${Math.round(n[0]+(o[0]-n[0])*r)},${Math.round(n[1]+(o[1]-n[1])*r)},${Math.round(n[2]+(o[2]-n[2])*r)})`}var or={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 Br="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Gr="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",sr=33;function jr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function qr(e){let t=[];for(let r=0;r<sr;r++){let n=r/(sr-1);t.push(String(Math.round(e(n)*1e5)/1e5));}return `linear(${t.join(",")})`}function yt(e){switch(e){case "linear":return "linear";case "ease-in":return Br;case "ease-out":return Gr;case "ease-in-out":return jr()?qr(Je["ease-in-out"]):null;default:return Mt(e)?.[1]??null}}var ir=Symbol.for("svg-scroll-draw.registry");function ar(){let e=globalThis;return e[ir]||(e[ir]=new Map)}function Pe(e,t){ar().set(e,t);}function ke(e){ar().delete(e);}function Ze(e){if(typeof window>"u"||typeof window.matchMedia!="function")return ()=>{};let t=window.matchMedia("(prefers-reduced-motion: reduce)"),r=o=>e(!!o.matches);if(typeof t.addEventListener=="function")return t.addEventListener("change",r),()=>t.removeEventListener("change",r);let n=t;return n.addListener?.(r),()=>n.removeListener?.(r)}function qe(e,t){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t(e,true);let r=t(e,false),n=Ze(s=>{if(!s)return;n();let i=(r.getProgress?.()??0)>=1;r.destroy(),r=t(i?{...e,onComplete:void 0}:e,true);}),o={};for(let s of Object.keys(r))o[s]=(...i)=>r[s]?.(...i);return o.destroy=()=>{n(),r.destroy();},o}var at,ht=new Set,bt=new WeakMap,lt=new Map,lr=e=>{let t=e.getBoundingClientRect();return t.width+" "+t.height};function Yr(e){let t=new Set;for(let r of e)for(;r&&r!==document.body;r=r.parentElement)for(let n=r;n;n=n.previousElementSibling)t.add(n);return t}function cr(e,t){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let r=()=>t();at??(at=new ResizeObserver(o=>{let s=false;for(let{target:i}of o)bt.get(i)!==lr(i)&&(s=true),bt.set(i,"");s&&ht.forEach(i=>i());})),ht.add(r);let n=Yr(e);return [document.body,document.documentElement].forEach(o=>o&&n.add(o)),n.forEach(o=>{bt.has(o)||bt.set(o,lr(o)),lt.set(o,(lt.get(o)??0)+1),at.observe(o);}),()=>{ht.delete(r)&&(n.forEach(o=>{let s=(lt.get(o)??1)-1;if(s)return void lt.set(o,s);lt.delete(o),at?.unobserve(o);}),ht.size||(at?.disconnect(),at=void 0));}}function Ie(e,t,r,n,o){let s,i=NaN,c,m,g=()=>{s=0,n(),!c&&!s&&(i=r())>0&&i<1&&(s=requestAnimationFrame(g));},w=()=>{!s&&!c&&r()!==i&&(s=requestAnimationFrame(g));},P=j=>{c=j,cancelAnimationFrame(s),s=i=NaN,w();},x=()=>{clearTimeout(m),o(),w();},k=()=>{clearTimeout(m),m=setTimeout(x,150);},z=cr(t,k),T=j=>{e[j]("scroll",w,{passive:true}),window[j]("resize",k),window[j]("orientationchange",k);};return T("addEventListener"),w(),{hold:P,remeasure:x,off(){P(true),T("removeEventListener"),z(),clearTimeout(m);}}}var Ur=0;function Qr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function ur(e,t){let r="";try{r=getComputedStyle(e).getPropertyValue(t).trim();}catch{}return r||(e.getAttribute(t)??"").trim()}var fr=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function Kr(e){if(!Xe)return;let t=ur(e,"stroke");if(!t||t==="none"){A("Element has no stroke \u2014 path will not be visible.",e);return}let r=(e.getAttribute("fill")??"").trim();r&&!fr.has(r)&&!fr.has(ur(e,"fill"))&&A("Element has a fill \u2014 it may obscure the stroke animation.",e);}function Xr(e,t,r){let n=document.createElement("div");n.setAttribute("data-svg-scroll-draw-debug",""),n.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function o(){let s=r==="x"?window.scrollX:window.scrollY,i=e-s,c=t-s,m=r==="x";n.innerHTML=`
|
|
2
|
+
<div style="position:absolute;${m?`left:${i}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${i}px;left:0;right:0;border-top:2px dashed #22c55e;`}padding:2px 6px;color:#22c55e;background:rgba(0,0,0,.6)">\u25B6 start</div>
|
|
3
|
+
<div style="position:absolute;${m?`left:${c}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${c}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(n),window.addEventListener("scroll",o,{passive:true}),o(),{el:n,destroy(){window.removeEventListener("scroll",o),n.remove();}}}var mr=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,pr=/[MmLlHhVvCcSsQqTtAaZz]/g;function Jr(e,t,r){if(!Xe)return;let n=(e.match(pr)??[]).join("").toUpperCase(),o=(t.match(pr)??[]).join("").toUpperCase(),s=(e.match(mr)??[]).length,i=(t.match(mr)??[]).length;if(n!==o){A(`morphTo: command sequence differs (${n||"\u2205"} \u2192 ${o||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,r);return}s!==i&&A(`morphTo: coordinate count differs (${s} \u2192 ${i}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,r);}function Zr(e,t,r){let n=(t.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),o=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,s=>{let i=parseFloat(s),c=n[o++]??i;return String(+(i+(c-i)*r).toFixed(4))})}function Lt(e,t={}){return typeof window>"u"?{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0}:qe(t,(r,n)=>en(e,r,n))}function en(e,t,r){let{preset:n,...o}=t,s=n?{...or[n],...o}:o,{selector:i="path, polyline, line, polygon, rect, circle",speed:c=1,fade:m=false,easing:g="linear",trigger:w={},stagger:P=0,direction:x="forward",once:k=false,debug:z=false,axis:T="y",scrollContainer:j,autoReverse:B=false,delay:M=0,strokeColor:O,strokeWidth:C,fillOpacity:W,waypoints:b,velocityScale:R=false,threshold:I=0,rootMargin:Z="0px",repeat:se=0,repeatDelay:$=0,morphTo:F,clip:y,autoplay:L=false,duration:ee=1e3,native:te=true,onProgress:ye,onStart:N,onComplete:q,onEnter:ue,onLeave:Se,onEnterBack:fe,onLeaveBack:ie}=s,S=y===true?"left":typeof y=="string"?y:false,E=De(g),re=ae(w.start||"top bottom"),Re=ae(w.end||"bottom top"),K=typeof j=="string"?document.querySelector(j):j??null,$e=Array.isArray(O)?O[0]:null,Ee=Array.isArray(O)?O[1]:typeof O=="string"?O:null,he=Array.isArray(C)?C[0]:null,ze=Array.isArray(C)?C[1]:typeof C=="number"?C:null,Fe=Array.isArray(W)?W[0]:null,Te=Array.isArray(W)?W[1]:typeof W=="number"?W:null;function Ce(a){let f=a*100;switch(S){case "right":return `inset(0 0 0 ${100-f}%)`;case "top":return `inset(0 0 ${100-f}% 0)`;case "bottom":return `inset(${100-f}% 0 0 0)`;case "center":return `circle(${a*150}% at 50% 50%)`;default:return `inset(0 ${100-f}% 0 0)`}}let l=S?[]:Array.from(e.querySelectorAll(i)),d=[],ne=[],H=0,_=0,G=P,Y=0,_e=0,oe=false,He=false,be=0,Qe=-1,Ye=[],Ue=-1,me=false,u=0,p=0,v,le=false,we=null;function We(){we?.destroy(),we=null;}let Oe=new Set,Be=NaN,Ge=true,ut=-1,Wt=performance.now(),Ke=NaN;function ft(){return K?T==="x"?K.scrollLeft:K.scrollTop:T==="x"?window.scrollX:window.scrollY}function Bt(){return K?T==="x"?K.clientWidth:K.clientHeight:T==="x"?window.innerWidth:window.innerHeight}function Gt(){let a=mt(e,K,T);return Le(a,a.scroll,Bt(),re,Re)}function Rr(){let a=_-H,f=l.length-1,h=K??document.documentElement,V=T==="x"?"Width":"Height";if(G=P,P>0&&f>0&&a>0){let pe=h[`scroll${V}`]-h[`client${V}`]-1-H-a/c;pe>=0&&(G=Math.min(P,pe/(f*a)));}let ce=Math.max(0,f)*G*a,xe=a/Math.min(c,1);Y=H+Math.min(0,ce,xe,ce+xe),_e=H+Math.max(0,ce,xe,ce+xe);}function jt(){(({tStart:H,tEnd:_}=Gt())),Rr(),z&&Xe&&(We(),we=Xr(H,_,T));}function St(a,f=Gt){Pe(e,{type:"draw",getProgress:()=>a.getProgress(),getTrigger:f});let h=a.destroy;return a.destroy=()=>{h.call(a),ke(e);},a}function qt(a,f){return k&&!B?Math.max(Qe,E(Ye[a]=Math.max(Ye[a]??0,f))):E(f)}function $r(a,f){if(e.style.setProperty("--scroll-draw-progress",String(a)),S){let h=f==="reverse"?1-a:a;e.style.clipPath=Ce(h);return}l.forEach((h,V)=>Et(h,V,a,f));}function Et(a,f,h,V){a.style.strokeDashoffset=V==="reverse"?`${d[f]*h}`:`${d[f]*(1-h)}`,m&&(a.style.opacity=V==="reverse"?`${1-h}`:`${h}`),$e&&Ee?a.style.stroke=gt($e,Ee,h):Ee&&(a.style.stroke=Ee),he!==null&&ze!==null?a.style.strokeWidth=`${he+(ze-he)*h}`:ze!==null&&(a.style.strokeWidth=`${ze}`),Fe!==null&&Te!==null?a.style.fillOpacity=`${Fe+(Te-Fe)*h}`:Te!==null&&(a.style.fillOpacity=`${Te}`),F&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",Zr(ne[f],F,h));}function Tt(){if(e.style.setProperty("--scroll-draw-progress","0"),S){e.style.clipPath=Ce(x==="reverse"?1:0);return}l.forEach((a,f)=>{a.style.strokeDasharray=dt(d[f]),a.style.strokeDashoffset=x==="reverse"?"0":`${d[f]}`,m?a.style.opacity=x==="reverse"?"1":"0":a.style.opacity="",$e&&(a.style.stroke=$e),he!==null&&(a.style.strokeWidth=`${he}`),Fe!==null&&(a.style.fillOpacity=`${Fe}`),F&&a.tagName.toLowerCase()==="path"&&ne[f]&&a.setAttribute("d",ne[f]);});}function nt(a,f){let h=a.getAttribute("d"),V=pt(a);if(F&&ne[f]){a.setAttribute("d",F);let ce=pt(a);a.setAttribute("d",ne[f]),V=Math.max(pt(a),ce),a.setAttribute("d",h);}d[f]=V,a.style.strokeDasharray=dt(V);}if(l.forEach((a,f)=>{Kr(a);let h=a.tagName.toLowerCase()==="path";h?ne.push(a.getAttribute("d")??""):ne.push(""),nt(a,f);let V=d[f];F&&(h?Jr(ne[ne.length-1],F,a):A(`morphTo only applies to <path> elements \u2014 ignored on <${a.tagName}>.`,a)),r?(a.style.strokeDashoffset=x==="reverse"?`${V}`:"0",m&&(a.style.opacity="1"),Ee&&(a.style.stroke=Ee),ze!==null&&(a.style.strokeWidth=`${ze}`),Te!==null&&(a.style.fillOpacity=`${Te}`),F&&a.tagName.toLowerCase()==="path"&&a.setAttribute("d",F)):(a.style.strokeDashoffset=x==="reverse"?"0":`${V}`,m?a.style.opacity=x==="reverse"?"1":"0":a.style.opacity="",$e&&(a.style.stroke=$e),he!==null&&(a.style.strokeWidth=`${he}`),Fe!==null&&(a.style.fillOpacity=`${Fe}`));}),r)return S&&(e.style.clipPath=Ce(1)),q?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};S&&(e.style.clipPath=Ce(x==="reverse"?1:0));let Yt=typeof g=="string"?yt(g):null;function Fr(){return !(te===false||L||z&&Xe||!Qr()||!l.length||!Yt||S||T!=="y"||K||c!==1||P!==0||k||B||R!==false||F||b||se||M>0||ye||N||q||ue||Se||fe||ie||O!=null||C!=null||W!=null||(w.start||"top bottom").trim()!=="top bottom"||(w.end||"bottom top").trim()!=="bottom top")}function Hr(){let a=++Ur,f=`svg-scroll-draw-${a}`,h=`svg-scroll-draw-host-${a}`,V=`--svg-scroll-draw-${a}`,ce=x==="reverse"?"0":"var(--ssd-len)",xe=x==="reverse"?"var(--ssd-len)":"0",pe=`stroke-dashoffset:${ce};`,X=`stroke-dashoffset:${xe};`;m&&(pe+=`opacity:${x==="reverse"?1:0};`,X+=`opacity:${x==="reverse"?0:1};`);let J=document.createElement("style");J.setAttribute("data-svg-scroll-draw",""),J.textContent=`@keyframes ${f}{from{${pe}}to{${X}}}.${h}{view-timeline-name:${V};view-timeline-axis:block;}.${f}{animation-name:${f};animation-duration:auto;animation-timing-function:${Yt};animation-fill-mode:both;animation-timeline:${V};animation-range:cover 0% cover 100%;}`,document.head.appendChild(J),e.classList.add(h);function ve(D,U){D.style.setProperty("--ssd-len",String(d[U])),D.style.strokeDasharray=dt(d[U]),D.style.strokeDashoffset="",D.style.opacity="",D.style.animationPlayState="",D.classList.add(f);}l.forEach(ve);let de=false,Me=-1;function Ae(){if(Me>=0)return Me;let D=e.getBoundingClientRect(),{tStart:U,tEnd:ge}=Le({top:D.top,height:D.height},ft(),Bt(),re,Re);return E(Q(ft(),U,ge,c))}return {destroy(){e.classList.remove(h),l.forEach(D=>{D.classList.remove(f),D.style.removeProperty("--ssd-len"),D.style.animationPlayState="";}),J.remove();},replay(){de=false,Me=-1,l.forEach(ve);},pause(){de=true,l.forEach(D=>{D.style.animationPlayState="paused";});},resume(){de&&(de=false,l.forEach(D=>{D.style.animationPlayState="running";}));},seek(D){let U=Math.min(1,Math.max(0,D));Me=U,de=true,l.forEach((ge,je)=>{ge.classList.remove(f),ge.style.strokeDashoffset=x==="reverse"?`${d[je]*U}`:`${d[je]*(1-U)}`,m&&(ge.style.opacity=x==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return Ae()},refresh(){l.forEach((D,U)=>{nt(D,U),D.style.setProperty("--ssd-len",String(d[U]));});}}}if(Fr())return St(Hr());function Dr(){let a=Math.max(1,ee),f=S?a:a*(1+Math.max(0,l.length-1)*P),h=0,V=0,ce=false;function xe(Me){let Ae=true,D=Math.min(1,Math.max(0,Me/f));if(S){let U=Math.min(1,Math.max(0,Me/a)),ge=E(U);u=ge,e.style.setProperty("--scroll-draw-progress",String(ge)),e.style.clipPath=Ce(x==="reverse"?1-ge:ge),ye?.(ge),U<1&&(Ae=false);}else {l.forEach((ge,je)=>{let Nr=je*P*a,Jt=Math.min(1,Math.max(0,(Me-Nr)/a));Et(ge,je,E(Jt),x),Jt<1&&(Ae=false);});let U=E(D);u=U,ye?.(U),e.style.setProperty("--scroll-draw-progress",String(U));}if(b){let U=E(D);for(let ge in b){let je=parseFloat(ge);U>=je&&!Oe.has(je)&&(Oe.add(je),b[ge]?.());}}return Ae}function pe(Me){if(me)return;let Ae=Me-h;He||(He=true,N?.());let D=xe(Ae);if(D&&!oe){oe=true,xe(f),q?.(),p<(se==="infinite"?1/0:se??0)&&(p++,v=setTimeout(()=>{h=performance.now(),He=false,oe=false,Oe.clear(),Tt(),be=requestAnimationFrame(pe);},$));return}D||(be=requestAnimationFrame(pe));}function X(){cancelAnimationFrame(be),clearTimeout(v),h=performance.now(),V=0,me=false,He=false,oe=false,p=0,ce=true,u=0,Oe.clear(),Tt(),be=requestAnimationFrame(pe);}let J=new IntersectionObserver(Me=>{Me.forEach(Ae=>{Ae.isIntersecting&&!(k&&oe)?X():!Ae.isIntersecting&&!k&&!oe&&(cancelAnimationFrame(be),clearTimeout(v),ce=false);});},{root:K??null,threshold:I,rootMargin:Z}),ve;function de(){clearTimeout(ve),ve=setTimeout(()=>l.forEach(nt),150);}return window.addEventListener("resize",de),window.addEventListener("orientationchange",de),M>0?setTimeout(()=>J.observe(e),M):J.observe(e),{destroy(){cancelAnimationFrame(be),clearTimeout(v),J.disconnect(),window.removeEventListener("resize",de),window.removeEventListener("orientationchange",de),clearTimeout(ve);},replay(){p=0,X();},pause(){me||!ce||(me=true,V=performance.now()-h,cancelAnimationFrame(be));},resume(){me&&(me=false,ce=true,h=performance.now()-V,be=requestAnimationFrame(pe));},seek(Me){let Ae=Math.min(1,Math.max(0,Me));u=Ae,me=true,V=Ae*f,h=performance.now()-V,cancelAnimationFrame(be),xe(V);},getProgress(){return u},refresh(){clearTimeout(ve),l.forEach(nt);}}}if(L)return St(Dr());jt();let Ut=()=>Q(ft(),Y,_e,1);function Qt(){oe=true,q?.(),p<(se==="infinite"?1/0:se)&&(p++,v=setTimeout(()=>{le=true;},$));}function Kt(){Qe=-1,Ye=[],He=false,oe=false,le=false,Oe.clear(),Tt(),Ge=true;}function Ir(){let a=performance.now(),f=ft();if(le&&Ut()%1&&Kt(),!Ge&&R===false&&f===Be)return;Ge=false,Be=f;let h=c;if(R!==false){let X=a-Wt,J=X>0?Math.abs(f-(ut<0?f:ut))/X:0;h=c*Math.max(.2,1+J*(typeof R=="number"?R:1)*.04);}ut=f,Wt=a;let V=B?Ue===-1||f>=Ue?"forward":"reverse":x;Ue=f;let ce=_-H,xe=true,pe=ce===0?0:(f-H)/ce;if(isNaN(Ke)||(Ke<=0&&pe>0&&ue?.(),Ke<1&&pe>=1&&Se?.(),Ke>=1&&pe<1&&fe?.(),Ke>0&&pe<=0&&ie?.()),Ke=pe,S){let X=qt(0,Q(f,H,_,h));u=X,e.style.setProperty("--scroll-draw-progress",String(X));let J=V==="reverse"?1-X:X;e.style.clipPath=Ce(J),ye?.(X),!He&&Q(f,H,_,h)>0&&(He=true,N?.()),X>=1&&!oe?Qt():X<1&&!k&&(oe=false);return}if(l.forEach((X,J)=>{let ve=J*G*ce,de=qt(J,Q(f,H+ve,_+ve,h));Et(X,J,de,V),J===0&&(u=de,ye?.(de),e.style.setProperty("--scroll-draw-progress",String(de))),de<1&&(xe=false);}),b){let X=E(Q(f,H,_,h));for(let J in b){let ve=parseFloat(J);X>=ve&&!Oe.has(ve)&&(Oe.add(ve),b[J]?.());}}!He&&Q(f,H,_,h)>0&&(He=true,N?.()),xe&&!oe?Qt():!xe&&!k&&(oe=false);}let ot=Ie(K??window,[e],Ut,Ir,()=>{let a=d.join();l.forEach(nt),jt(),Ge=true,d.join()!==a&&st();}),xt=M>0;function st(){ot.hold(me||xt);}let Xt;return xt&&(Xt=setTimeout(()=>{xt=false,st();},M)),st(),St({destroy(){clearTimeout(v),clearTimeout(Xt),ot.off(),We();},replay(){Kt(),Ue=-1,ut=-1,p=0,me=false,u=0,clearTimeout(v),st();},pause(){me=true,ot.hold(true);},resume(){me&&(me=false,Ge=true,st());},seek(a){let f=Math.min(1,Math.max(0,a));u=f,Qe=f,Ye=[],me=true,ot.hold(true),$r(f,x),Ge=true;},getProgress(){return u},refresh:ot.remeasure},()=>({tStart:H,tEnd:_}))}var dr=new WeakMap,tn=0;function ct(e){return JSON.stringify(e,(t,r)=>{if(typeof r=="function")return "\u0192";if(typeof Element<"u"&&r instanceof Element){let n=dr.get(r);return n===void 0&&dr.set(r,n=++tn),`el#${n}`}return r})}function gr(e,t){let r={...e};for(let n of Object.keys(r))typeof r[n]=="function"&&(r[n]=(...o)=>t()[n]?.(...o));return r}function rn(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function yr(e){let t=[],r=/([\w]+)\(([^)]*)\)/g,n;for(;(n=r.exec(e))!==null;){let o=[],s=[],i=n[2].trim();if(i)for(let c of i.split(/[\s,]+/)){let m=c.match(/^([-+]?[\d.eE]+)(.*)$/);o.push(m?parseFloat(m[1]):0),s.push(m?m[2]:"");}t.push({fn:n[1],nums:o,units:s});}return t}function nn(e,t,r){let n=yr(e),o=yr(t);return n.length===0||n.length!==o.length?r<1?e:t:n.map((s,i)=>{let c=o[i];return s.fn!==c.fn||s.nums.length!==c.nums.length?r<1?`${s.fn}(${s.nums.map((m,g)=>`${m}${s.units[g]}`).join(", ")})`:`${c.fn}(${c.nums.map((m,g)=>`${m}${c.units[g]}`).join(", ")})`:`${s.fn}(${s.nums.map((m,g)=>`${m+(c.nums[g]-m)*r}${s.units[g]}`).join(", ")})`}).join(" ")}function hr(e,t,r){if(typeof e=="number"&&typeof t=="number")return String(e+(t-e)*r);let n=String(e),o=String(t);if(rn(n))return gt(n,o,r);if(n.includes("("))return nn(n,o,r);let s=n.match(/^([-+]?[\d.]+)(.*)$/),i=o.match(/^([-+]?[\d.]+)(.*)$/);if(s&&i){let c=parseFloat(s[1]),m=parseFloat(i[1]);return `${c+(m-c)*r}${s[2]||i[2]}`}return r<1?n:o}function on(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}var sn=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),an=0,br="--scroll-draw-progress";function ln(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}var vr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,t){return typeof window>"u"?vr:t.respectReducedMotion===false?wr(e,t,false):qe(t,(r,n)=>wr(e,r,n))}function wr(e,t,r){let{props:n,trigger:o={},easing:s="ease-out",speed:i=1,once:c=false,axis:m="y",scrollContainer:g,native:w=true,velocityScale:P=false,triggerElement:x,onProgress:k,onComplete:z,onEnter:T,onLeave:j,onEnterBack:B,onLeaveBack:M}=t,O=De(s,"ease-out"),C=ae(o.start||"top bottom"),W=ae(o.end||"bottom top"),b=x??e,R=typeof g=="string"?document.querySelector(g):g??null,I=Object.entries(n).map(([l,d])=>({prop:on(l),from:Array.isArray(d)?d[0]:"",to:Array.isArray(d)?d[1]:d}));function Z(){let l=window.getComputedStyle(e);for(let d of I)d.from===""&&(d.from=l.getPropertyValue(d.prop).trim()||"0");}function se(){for(let l of I)e.style.setProperty(l.prop,String(l.to));}let $=new Map;for(let l of [...I.map(d=>d.prop),br])$.set(l,e.style.getPropertyValue(l));function F(){for(let[l,d]of $)d?e.style.setProperty(l,d):e.style.removeProperty(l);}if(r)return se(),z?.(),{...vr,destroy:F,getProgress:()=>1};Z();let y=()=>R?m==="x"?R.scrollLeft:R.scrollTop:m==="x"?window.scrollX:window.scrollY,L=()=>R?m==="x"?R.clientWidth:R.clientHeight:m==="x"?window.innerWidth:window.innerHeight,ee=typeof s=="string"?yt(s):null;function te(){if(!w||!ln()||!ee||m!=="y"||R||b!==e||c||i!==1||k||z||T||j||B||M||P!==false||(o.start||"top bottom").trim()!=="top bottom"||(o.end||"bottom top").trim()!=="bottom top")return false;for(let l of I)if(!sn.has(l.prop))return false;return true}function ye(){let l=`ssd-a-${++an}`,d=I.map(Y=>`${Y.prop}:${Y.from}`).join(";"),ne=I.map(Y=>`${Y.prop}:${Y.to}`).join(";"),H=document.createElement("style");H.setAttribute("data-ssd-animate",""),H.textContent=`@keyframes ${l}{from{${d}}to{${ne}}}.${l}{animation-name:${l};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(l);let _=()=>{let Y=e.getBoundingClientRect();return Le({top:Y.top,height:Y.height},y(),L(),C,W)};Pe(e,{type:"animate",getProgress:()=>G.getProgress(),getTrigger:_});let G={refresh(){},destroy(){e.classList.remove(l),H.remove(),e.style.animationPlayState="",F(),ke(e);},replay(){e.classList.remove(l),e.offsetWidth,e.classList.add(l);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(Y){let _e=Math.min(1,Math.max(0,Y));e.classList.remove(l);for(let oe of I)e.style.setProperty(oe.prop,hr(oe.from,oe.to,_e));},getProgress(){let{tStart:Y,tEnd:_e}=_();return O(Q(y(),Y,_e,i))}};return G}if(te())return ye();let N=0,q=0,ue=false,Se=-1,fe=0,ie=0,S=false,E=NaN,re=-1,Re=0,K=b===e?I:[],$e=false;function Ee(){let l=e.style,d=K.map(G=>l.getPropertyValue(G.prop)),ne=l.transition;K.length&&(l.transition="none"),K.forEach(G=>l.setProperty(G.prop,$.get(G.prop)??""));let H=mt(b,R,m);K.forEach((G,Y)=>l.setProperty(G.prop,d[Y])),K.length&&(e.offsetWidth,l.transition=ne);let _=Le(H,H.scroll,L(),C,W);$e&&Math.abs(_.tStart-N)<1&&Math.abs(_.tEnd-q)<1||($e=true,N=_.tStart,q=_.tEnd);}function he(l){e.style.setProperty(br,String(l));for(let d of I)e.style.setProperty(d.prop,hr(d.from,d.to,l));k?.(l);}function ze(l){if(isNaN(E)){E=l;return}E<=0&&l>0&&T?.(),E<1&&l>=1&&j?.(),E>=1&&l<1&&B?.(),E>0&&l<=0&&M?.(),E=l;}function Fe(){if(ue)return;let l=performance.now(),d=y(),ne=i;if(P!==false){let Y=l-Re,_e=Y>0?Math.abs(d-(re<0?d:re))/Y:0;ne=i*Math.max(.2,1+_e*(typeof P=="number"?P:1)*.04);}re=d,Re=l;let H=q===N?0:(d-N)/(q-N);ze(H);let _=Q(d,N,q,ne),G=c?Math.max(Se,O(fe=Math.max(fe,_))):O(_);ie=G,he(G),G>=1&&!S?(S=true,z?.()):G<1&&!c&&(S=false);}let Te=Ie(R??window,[b],()=>Q(y(),N,q,Math.min(i,1)),Fe,Ee);Ee(),q===N&&A("scrollAnimate: zero-length trigger window, so it never animates. In a sticky stage, set triggerElement.",e),fe=Q(y(),N,q,i),ie=O(fe),he(ie),Pe(e,{type:"animate",getProgress:()=>ie,getTrigger:()=>({tStart:N,tEnd:q})});function Ce(){ue=true,Te.hold(true);}return {destroy(){ue=true,Te.off(),F(),ke(e);},replay(){Se=-1,fe=0,S=false,ie=0,ue=false,he(0),Te.hold(false);},pause:Ce,resume(){ue&&(ue=false,Te.hold(false));},seek(l){let d=Math.min(1,Math.max(0,l));ie=d,Se=d,fe=0,Ce(),he(d);},getProgress(){return ie},refresh:Te.remeasure}}var Sr=({decimals:e,format:t})=>e!==void 0?r=>r.toFixed(e):t??(r=>String(Math.round(r))),Er=e=>Sr(e)(e.to),Ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function At(e,t){if(typeof window>"u")return Ot;let r=typeof e=="string"?document.querySelector(e):e;return r?qe(t,(n,o)=>cn(r,n,o)):(A("scrollCounter: element not found:",e),Ot)}function cn(e,t,r){let{from:n=0,to:o,easing:s="ease-out",trigger:i={},once:c=true,onComplete:m}=t,g=Sr(t),w=De(s,"ease-out"),P=ae(i.start||"top 80%"),x=ae(i.end||"top 20%");if(r)return e.textContent=g(o),m?.(),{...Ot,getProgress:()=>1};let k=0,z=0,T=false,j=-1,B=0,M=0,O=false,C=()=>window.scrollY,W=()=>window.innerHeight;function b(){let y=e.getBoundingClientRect(),L=Le({top:y.top,height:y.height},C(),W(),P,x);T&&Math.abs(L.tStart-k)<1&&Math.abs(L.tEnd-z)<1||(T=true,k=L.tStart,z=L.tEnd);}let R=e.style.getPropertyValue("--scroll-draw-progress");function I(y){e.textContent=g(n+(o-n)*y),e.style.setProperty("--scroll-draw-progress",String(y));}let Z=()=>Q(C(),k,z,1);function se(){let y=Z(),L=c?Math.max(j,w(B=Math.max(B,y))):w(y);M=L,I(L),L>=1&&!O?(O=true,m?.()):L<1&&!c&&(O=false);}b();{B=Q(C(),k,z,1);let y=w(B);M=y,I(y);}let $=Ie(window,[e],Z,se,b);Pe(e,{type:"counter",getProgress:()=>M,getTrigger:()=>({tStart:k,tEnd:z})});let F=()=>$.hold(false);return {destroy(){$.off(),e.style.setProperty("--scroll-draw-progress",R),ke(e);},replay(){j=-1,B=0,O=false,M=0,I(0),F();},pause:()=>$.hold(true),resume:F,seek(y){let L=Math.min(1,Math.max(0,y));M=L,j=L,B=0,$.hold(true),I(L);},getProgress(){return M}}}var Tr={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Pt(e,t={}){if(typeof window>"u")return Tr;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="video")return A("scrollVideo: <video> element not found:",e),Tr;let n=r,{trigger:o={},easing:s="linear",once:i=false,axis:c="y",preload:m="auto",triggerElement:g,onReady:w,onComplete:P,onProgress:x}=t,k=g??n,z=window.matchMedia("(prefers-reduced-motion: reduce)").matches,T=De(s),j=ae(o.start||"top top"),B=ae(o.end||"bottom top");n.pause(),n.hasAttribute("preload")||(n.preload=m);let M=t.from??0,O=t.to,C=0,W=0,b=false,R=-1,I=0,Z=0,se=false,$=false,F=()=>c==="x"?window.scrollX:window.scrollY,y=()=>c==="x"?window.innerWidth:window.innerHeight;function L(){let S=k.getBoundingClientRect(),E=c==="x"?S.left:S.top,re=c==="x"?S.width:S.height,Re=Le({top:E,height:re},F(),y(),j,B);C=Re.tStart,W=Re.tEnd,$&&W===C&&A("scrollVideo: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n);}let ee=NaN;function te(S){if(!$)return;let E=O??n.duration??0,re=M+(E-M)*S;re!==ee&&(ee=re,n.currentTime=re),n.style.setProperty("--scroll-draw-progress",String(S)),x?.(S);}let ye=()=>Q(F(),C,W,1);function N(){if(!$||z)return;let S=ye(),E=i?Math.max(R,T(I=Math.max(I,S))):T(S);Z=E,te(E),E>=1&&!se?(se=true,P?.()):E<1&&!i&&(se=false);}let q=Ie(window,[k],ye,N,L),ue=()=>q.hold(b||!$||z);ue();function Se(){if($=true,O===void 0&&(O=n.duration),z){te(1),w?.();return}L(),w?.(),b?te(Z):ue();}n.readyState>=1?Se():n.addEventListener("loadedmetadata",Se,{once:true}),$||L();let fe=z?()=>{}:Ze(S=>{S&&(fe(),z=true,q.hold(true),te(1));});Pe(n,{type:"video",getProgress:()=>Z,getTrigger:()=>({tStart:C,tEnd:W})});function ie(){b&&(b=false,ue());}return {destroy(){q.off(),n.removeEventListener("loadedmetadata",Se),fe(),ke(n);},replay(){R=-1,I=0,se=false,Z=0,ee=NaN,te(0),ie();},pause(){b=true,q.hold(true);},resume:ie,seek(S){let E=Math.min(1,Math.max(0,S));Z=E,R=E,I=0,b=true,q.hold(true),ee=NaN,te(E);},getProgress(){return Z}}}var un=1e4;function kt(e){let{frames:t,count:r}=e;if(typeof t!="function")return ct(e);let n=Number.isFinite(r)?Math.min(Math.max(Math.floor(r),0),un):0,o;try{o=Array.from({length:n},(s,i)=>t(i));}catch{o=["throws"];}return ct({...e,frames:o})}function xr(e,t="<ScrollFrames>"){if(!e||e.getAttribute("aria-hidden")==="true")return;let r=e.getAttribute("role");r==="presentation"||r==="none"||e.getAttribute("aria-label")||e.getAttribute("aria-labelledby")||A(`${t}: the canvas has no aria-label. Say what the frames show, or set aria-hidden="true" if they are decoration.`,e);}var wt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function fn(e){let t=e>1?[0,e-1]:[0],r=[[0,e-1]];for(let n=0;n<r.length;n++){let[o,s]=r[n];if(s-o<2)continue;let i=o+s>>1;t.push(i),r.push([o,i],[i,s]);}return t}function Mr(e,t){if(typeof window>"u")return wt;let r=typeof e=="string"?document.querySelector(e):e;if(!r||r.tagName.toLowerCase()!=="canvas")return A("scrollFrames: <canvas> element not found:",e),wt;let n=r,{frames:o,trigger:s={},easing:i="linear",once:c=false,axis:m="y",fit:g="cover",triggerElement:w,onReady:P,onLoad:x,onComplete:k,onProgress:z}=t||{},T=Array.isArray(o)?o:null,j=t?.count,B=Math.floor(T?Math.min(j??T.length,T.length):j??NaN);if(!(T||typeof o=="function")||!Number.isFinite(B)||B<1)return A("scrollFrames: no frames. Pass `frames` as an array of URLs, or a function with a finite `count` of 1 or more.",n),wt;let M=t.concurrency??6;(!Number.isFinite(M)||M<1)&&(A("scrollFrames: `concurrency` must be a finite number of 1 or more; using 6.",t.concurrency),M=6),M=Math.floor(M);let O=n.getContext("2d");if(!O)return A("scrollFrames: the canvas has no 2D context.",n),wt;let C=B-1,W=w??n,b=window.matchMedia("(prefers-reduced-motion: reduce)").matches,R=De(i),I=u=>{let p=R(u);return p===p?p:0},Z=ae(s.start||"top top"),se=ae(s.end||"bottom top"),$=0,F=0,y=false,L=-1,ee=0,te=0,ye=false,N=false,q=false,ue=false,Se=0,fe=-1,ie=new Array(B),S=new Uint8Array(B),E=new Set,re=b?[C]:fn(B),Re=0,K=0,$e=false,Ee=(u,...p)=>{if(u)try{u(...p);}catch(v){typeof reportError=="function"?reportError(v):setTimeout(()=>{throw v});}},he=false,ze=u=>{let p;try{p=T?T[u]:o(u);}catch(v){p=v;}return typeof p=="string"&&p?p:(he||(he=true,A(`scrollFrames: no URL for frame ${u}; it is skipped for its nearest neighbour.`,p)),null)},Fe=()=>m==="x"?window.scrollX:window.scrollY,Te=()=>m==="x"?window.innerWidth:window.innerHeight;function Ce(){!$e&&K===re.length&&($e=true,Ee(x));}function l(){for(;!N&&E.size<M&&Re<re.length;){let u=re[Re++];S[u]||d(u);}}function d(u){S[u]=1;let p=ze(u);if(p===null){K++,queueMicrotask(()=>{N||Ce();});return}let v=new Image,le=false,we=We=>{le||N||(le=true,v.onload=v.onerror=null,E.delete(v),We?ie[u]=v:A("scrollFrames: a frame failed to load; its nearest neighbour shows instead:",p),K++,l(),_(),Ce());};E.add(v),v.decoding="async",v.onerror=()=>we(false),v.src=p,typeof v.decode=="function"?v.decode().then(()=>we(true),()=>{v.complete?we(v.naturalWidth>0):v.onload=()=>we(true);}):v.onload=()=>we(true);}function ne(u){for(let p=0;p<=C;p++){if(ie[u-p])return u-p;if(ie[u+p])return u+p}return -1}function H(){let u=n.clientWidth,p=n.clientHeight;if(!u||!p)return;let v=Math.min(window.devicePixelRatio||1,2),le=Math.round(u*v),we=Math.round(p*v);if(Math.abs(n.width-le)<=1&&Math.abs(n.height-we)<=1)return;n.width=le,n.height=we,fe=-1;let We=n.clientWidth,Oe=n.clientHeight;if(We!==u||Oe!==p){let Be=n.style;We!==u&&Oe!==p?(Be.width=`${u}px`,Be.height=`${p}px`):Be.aspectRatio=`${u} / ${p}`;}}function _(){let u=ne(Se);if(u<0||u===fe)return;let p=ie[u],v=n.width,le=n.height,we=p.naturalWidth||v,We=p.naturalHeight||le,Oe=(g==="contain"?Math.min:Math.max)(v/we,le/We),Be=we*Oe,Ge=We*Oe;O.clearRect(0,0,v,le),O.drawImage(p,(v-Be)/2,(le-Ge)/2,Be,Ge),fe=u,q||(q=true,Ee(P));}function G(u){Se=Math.min(C,Math.max(0,Math.round(u*C))),n.style.setProperty("--scroll-draw-progress",String(u)),_(),Ee(z,u,Se);}function Y(){let u=W.getBoundingClientRect(),p=m==="x"?u.left:u.top,v=m==="x"?u.width:u.height,le=Le({top:p,height:v},Fe(),Te(),Z,se);$=le.tStart,F=le.tEnd,F===$&&v>0&&!b&&!ue&&(ue=true,A("scrollFrames: zero-length trigger window, so it never scrubs. In a sticky stage, set triggerElement.",n));}let _e=()=>Q(Fe(),$,F,1);function oe(){if(b)return;let u=_e(),p=c?Math.max(L,I(ee=Math.max(ee,u))):I(u);te=p,G(p),p>=1&&!ye?(ye=true,Ee(k)):p<1&&!c&&(ye=false);}function He(){te=1,G(1);}H(),b||Y();let be=Ie(window,[W],_e,oe,()=>{H(),b||Y(),_();}),Qe=()=>be.hold(y||b);Qe(),b&&He(),l();let Ye=typeof ResizeObserver=="function"?new ResizeObserver(()=>{H(),_();}):null;Ye?.observe(n);let Ue=b?()=>{}:Ze(u=>{u&&(Ue(),b=true,be.hold(true),re=re.slice(0,Re),S[C]||re.push(C),Ce(),He(),l());});Pe(n,{type:"frames",getProgress:()=>te,getTrigger:()=>({tStart:$,tEnd:F})});function me(){N||!y||(y=false,Qe());}return {destroy(){if(!N){N=true,be.off(),Ye?.disconnect(),Ue();for(let u of E)u.onload=u.onerror=null,u.src="";E.clear(),ke(n);}},replay(){N||(L=-1,ee=0,ye=false,te=0,G(0),me());},pause(){N||(y=true,be.hold(true));},resume:me,seek(u){if(N)return;let p=Math.min(1,Math.max(0,u===u?u:0));te=p,L=p,ee=0,y=true,be.hold(true),G(p);},getProgress(){return te}}}function Rt(e,{triggerElement:t,...r},n){let o=t;return typeof t=="string"&&typeof document<"u"&&(o=document.querySelector(t),o||A(`scrollFrames: triggerElement "${t}" matches nothing; measuring the canvas.`)),Mr(e,{...r,frames:n.frames,triggerElement:o??void 0})}function Lr(e,t){let r=document.createElement("span");r.textContent=t,r.style.cssText="position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;user-select:none",e.appendChild(r);}function vt(e=""){let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=e,t}function Or(e){let t=e.textContent??"";return e.textContent="",t.split(/(\s+)/).filter(Boolean).map(r=>{let n=e.appendChild(vt(r)),o=/^\s+$/.test(r);return o?n.style.whiteSpace="pre":n.style.display="inline-block",o?null:n}).filter(r=>r!==null)}function mn(e){let t=e.textContent??"";e.textContent="";let r=[],n=null;for(let o of t){let s=vt(o),i=o===" ";i?s.style.whiteSpace="pre":(s.style.display="inline-block",r.push(s)),i||o>"\u0DFF"?n=null:n||(n=e.appendChild(vt()),n.style.cssText="display:inline-block;white-space:nowrap"),(n??e).appendChild(s);}return r}function Cr(e){let t=Or(e),r=new Map;for(let s of t){let i=s.offsetTop;r.has(i)||r.set(i,[]),r.get(i).push(s);}let n=[],o=Array.from(r.keys()).sort((s,i)=>s-i);for(let s of o){let i=r.get(s),c=vt();c.style.display="inline-block",i.forEach((m,g)=>{let w=m.nextElementSibling;c.appendChild(m),g<i.length-1&&w&&w.style.whiteSpace==="pre"&&c.appendChild(w);}),n.push(c);}return e.textContent="",n.forEach((s,i)=>{e.appendChild(s),i<n.length-1&&e.appendChild(document.createTextNode(" "));}),n}function pn(e,t,r,n){if(r<=1||n===0)return e;n=Math.min(n,1/r);let o=(r-1)*n,s=t*n,i=s+(1-o);return i<=s?e>=s?1:0:it((e-s)/(i-s),0,1)}function dn(e,t){let r=[];if(t?.y!==void 0&&r.push(`translateY(${t.y*(1-e)}px)`),t?.x!==void 0&&r.push(`translateX(${t.x*(1-e)}px)`),t?.rotate!==void 0&&r.push(`rotate(${t.rotate*(1-e)}deg)`),t?.scale!==void 0){let n=t.scale+(1-t.scale)*e;r.push(`scale(${n})`);}return r.join(" ")}var $t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ft(e,t={}){if(typeof window>"u")return $t;let r=typeof e=="string"?document.querySelector(e):e;if(!r)return A("scrollText: element not found:",e),$t;let n=r;return qe(t,(o,s)=>gn(n,o,s))}function gn(e,t,r){let{split:n="words",stagger:o=.04,easing:s="ease-out",from:i={opacity:0,y:24},trigger:c={},once:m=true,onComplete:g}=t,w=De(s,"ease-out"),P=ae(c.start||"top 85%"),x=ae(c.end||"top 40%"),k=e.innerHTML,z=e.textContent??"",T;n==="chars"?T=mn(e):n==="lines"?T=Cr(e):T=Or(e),Lr(e,z);let j=T.length;function B(y,L){i?.opacity!==void 0&&(y.style.opacity=String(i.opacity+(1-i.opacity)*L));let ee=dn(L,i);ee&&(y.style.transform=ee);}function M(y){e.style.setProperty("--scroll-draw-progress",String(y)),T.forEach((L,ee)=>{let te=w(pn(y,ee,j,o));B(L,te);});}if(r)return M(1),g?.(),{...$t,destroy:()=>{e.innerHTML=k;},getProgress:()=>1};M(0);let O=0,C=0,W=-1,b=0,R=false;function I(){({tStart:O,tEnd:C}=Le(e.getBoundingClientRect(),window.scrollY,window.innerHeight,P,x));}let Z=()=>Q(window.scrollY,O,C,1);function se(){let y=m?W=Math.max(W,Z()):Z();b=y,M(y),y>=1&&!R?(R=true,g?.()):y<1&&!m&&(R=false);}I();let $=Ie(window,[e],Z,se,()=>{n==="lines"&&(e.innerHTML=k,T=Cr(e),Lr(e,z),M(b)),I();});Pe(e,{type:"text",getProgress:()=>b,getTrigger:()=>({tStart:O,tEnd:C})});let F=()=>$.hold(false);return {destroy(){$.off(),e.innerHTML=k,ke(e);},replay(){W=-1,R=false,b=0,M(0),F();},pause:()=>$.hold(true),resume:F,seek(y){$.hold(true),M(b=W=it(y,0,1));},getProgress(){return b}}}var rt=e=>typeof e=="function"?e():vue.unref(e);function Ve(e,t,r,n=ct){let o=null,s=t(),i=()=>{o?.destroy(),o=e.value?r(e.value,gr(s,()=>s),s):null;};vue.onMounted(i),vue.watch(()=>n(s=t()),i),vue.onUnmounted(()=>{o?.destroy(),o=null;});}function wn(e={}){let t=vue.ref(null);return Ve(t,()=>rt(e),Lt),t}var Ar={preset:0,selector:0,speed:0,fade:1,easing:0,trigger:0,stagger:0,direction:0,once:1,debug:1,axis:0,scrollContainer:0,autoReverse:1,delay:0,strokeColor:0,strokeWidth:0,fillOpacity:0,clip:2,waypoints:0,velocityScale:3,threshold:0,rootMargin:0,repeat:0,repeatDelay:0,morphTo:0,onProgress:0,onStart:0,onComplete:0,onEnter:0,onLeave:0,onEnterBack:0,onLeaveBack:0,autoplay:1,duration:0,native:1},vn=[null,Boolean,[Boolean,String],[Boolean,Number]],Ht=e=>({type:e,default:void 0}),Dt=vue.defineComponent({name:"ScrollDraw",props:Object.fromEntries(Object.entries(Ar).map(([e,t])=>[e,t?Ht(vn[t]):null])),setup(e,{slots:t}){let r=vue.ref(null);return Ve(r,()=>{let n={};for(let o in Ar){let s=e[o];s!=null&&(n[o]=s);}return n},Lt),()=>vue.h("div",{ref:r},t.default?.())}});function Sn(e){let t=vue.ref(null);return Ve(t,()=>rt(e),Ct),t}var It=vue.defineComponent({name:"ScrollAnimate",props:{options:{type:Object,required:true}},setup(e,{slots:t}){let r=vue.ref(null);return Ve(r,()=>e.options,Ct),()=>vue.h("div",{ref:r},t.default?.())}});function En(e){let t=vue.ref(null);return Ve(t,()=>rt(e),At),t}var Nt=vue.defineComponent({name:"ScrollCounter",props:{to:{type:Number,required:true},from:{type:Number},format:{type:Function},easing:{type:[String,Function]},trigger:{type:Object},once:Ht(Boolean),decimals:{type:Number},onComplete:{type:Function}},setup(e){let t=vue.ref(null);Ve(t,()=>{let n={to:e.to};return e.from!=null&&(n.from=e.from),e.format!=null&&(n.format=e.format),e.easing!=null&&(n.easing=e.easing),e.trigger!=null&&(n.trigger=e.trigger),e.once!=null&&(n.once=e.once),e.decimals!=null&&(n.decimals=e.decimals),e.onComplete!=null&&(n.onComplete=e.onComplete),n},At);let r=Er({to:e.to,decimals:e.decimals,format:e.format});return ()=>vue.h("span",{ref:t},r)}});function Tn(e={}){let t=vue.ref(null);return Ve(t,()=>rt(e),Pt),t}var Vt=vue.defineComponent({name:"ScrollVideo",props:{src:{type:String,required:true},options:{type:Object},muted:{type:Boolean,default:true},playsInline:{type:Boolean,default:true},class:{type:String}},setup(e){let t=vue.ref(null);return Ve(t,()=>e.options??{},Pt),()=>vue.h("video",{ref:t,src:e.src,muted:e.muted,playsinline:e.playsInline,preload:"auto",class:e.class})}});function xn(e){let t=vue.ref(null);return Ve(t,()=>rt(e),Rt,kt),t}var Pr={frames:0,count:0,trigger:0,easing:0,once:1,axis:0,triggerElement:0,fit:0,concurrency:0,onReady:0,onLoad:0,onComplete:0,onProgress:0},_t=vue.defineComponent({name:"ScrollFrames",props:Object.fromEntries(Object.entries(Pr).map(([e,t])=>[e,t?Ht(Boolean):e==="frames"?{required:true}:null])),setup(e){let t=vue.ref(null);return Ve(t,()=>{let r={};for(let n in Pr){let o=e[n];o!=null&&(r[n]=o);}return r},Rt,kt),vue.onMounted(()=>xr(t.value)),()=>vue.h("canvas",{ref:t,role:"img"})}});function Mn(e={}){let t=vue.ref(null);return Ve(t,()=>rt(e),Ft),t}var zt=vue.defineComponent({name:"ScrollText",props:{options:{type:Object},tag:{type:String,default:"p"}},setup(e,{slots:t}){let r=vue.ref(null);return Ve(r,()=>e.options??{},Ft),()=>vue.h(e.tag,{ref:r},t.default?.())}});function cs(){return {install(e){e.component("ScrollDraw",Dt),e.component("ScrollAnimate",It),e.component("ScrollCounter",Nt),e.component("ScrollVideo",Vt),e.component("ScrollFrames",_t),e.component("ScrollText",zt);}}}exports.ScrollAnimate=It;exports.ScrollCounter=Nt;exports.ScrollDraw=Dt;exports.ScrollFrames=_t;exports.ScrollText=zt;exports.ScrollVideo=Vt;exports.createScrollDrawPlugin=cs;exports.useScrollAnimate=Sn;exports.useScrollCounter=En;exports.useScrollDraw=wn;exports.useScrollFrames=xn;exports.useScrollText=Mn;exports.useScrollVideo=Tn;
|
package/dist/nuxt/index.d.mts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export { ScrollAnimate, ScrollCounter, ScrollDraw, ScrollFrames, ScrollText, ScrollVideo, useScrollAnimate, useScrollCounter, useScrollDraw, useScrollFrames, useScrollText, useScrollVideo } from '../vue/index.mjs';
|
|
2
|
-
export { a as ScrollDrawOptions } from '../types-
|
|
2
|
+
export { a as ScrollDrawOptions } from '../types-iITMwrru.mjs';
|
|
3
3
|
import { App } from 'vue';
|
|
4
|
-
export { S as ScrollAnimateOptions } from '../engine-
|
|
5
|
-
export { S as ScrollCounterOptions } from '../index-
|
|
4
|
+
export { S as ScrollAnimateOptions } from '../engine-Bi2x8-X-.mjs';
|
|
5
|
+
export { S as ScrollCounterOptions } from '../index-BMMZ8aW7.mjs';
|
|
6
6
|
export { ScrollFramesOptions } from '../frames/index.mjs';
|
|
7
7
|
export { ScrollTextOptions } from '../text/index.mjs';
|
|
8
8
|
export { ScrollVideoOptions } from '../video/index.mjs';
|
|
9
|
+
import '../wrapper-BOHrDnBO.mjs';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Nuxt 3 integration for svg-scroll-draw.
|
package/dist/nuxt/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export { ScrollAnimate, ScrollCounter, ScrollDraw, ScrollFrames, ScrollText, ScrollVideo, useScrollAnimate, useScrollCounter, useScrollDraw, useScrollFrames, useScrollText, useScrollVideo } from '../vue/index.js';
|
|
2
|
-
export { a as ScrollDrawOptions } from '../types-
|
|
2
|
+
export { a as ScrollDrawOptions } from '../types-iITMwrru.js';
|
|
3
3
|
import { App } from 'vue';
|
|
4
|
-
export { S as ScrollAnimateOptions } from '../engine-
|
|
5
|
-
export { S as ScrollCounterOptions } from '../index-
|
|
4
|
+
export { S as ScrollAnimateOptions } from '../engine-DAlvk6i0.js';
|
|
5
|
+
export { S as ScrollCounterOptions } from '../index-MdQ4ti_z.js';
|
|
6
6
|
export { ScrollFramesOptions } from '../frames/index.js';
|
|
7
7
|
export { ScrollTextOptions } from '../text/index.js';
|
|
8
8
|
export { ScrollVideoOptions } from '../video/index.js';
|
|
9
|
+
import '../wrapper-Cm7JTIVl.js';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Nuxt 3 integration for svg-scroll-draw.
|
package/dist/nuxt/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {b,d,f,h,j,l}from'../chunk-
|
|
1
|
+
import {b,d,f,h,j,l}from'../chunk-IJPLLT7E.mjs';export{d as ScrollAnimate,f as ScrollCounter,b as ScrollDraw,j as ScrollFrames,l as ScrollText,h as ScrollVideo,c as useScrollAnimate,e as useScrollCounter,a as useScrollDraw,i as useScrollFrames,k as useScrollText,g as useScrollVideo}from'../chunk-IJPLLT7E.mjs';import'../chunk-NJV6S5LD.mjs';import'../chunk-KN2YB54Z.mjs';import'../chunk-HJTHOZK5.mjs';import'../chunk-GBFWTY5L.mjs';import'../chunk-UF3MO5XQ.mjs';import'../chunk-OGFXZCKC.mjs';import'../chunk-HAGTU5EX.mjs';import'../chunk-XLXVGQ3P.mjs';import'../chunk-7LDSB4FT.mjs';import'../chunk-UPWWULKI.mjs';import'../chunk-XC5NR2MU.mjs';import'../chunk-YOOPMYT6.mjs';import'../chunk-2PYLM3E7.mjs';import'../chunk-NV6YTPHI.mjs';import'../chunk-IXR6RML7.mjs';import'../chunk-4DOJSIEQ.mjs';import'../chunk-5PJEKEEP.mjs';import'../chunk-EBU6E26L.mjs';import'../chunk-LFSU6LR3.mjs';function x(){return {install(o){o.component("ScrollDraw",b),o.component("ScrollAnimate",d),o.component("ScrollCounter",f),o.component("ScrollVideo",h),o.component("ScrollFrames",j),o.component("ScrollText",l);}}}export{x as createScrollDrawPlugin};
|
package/dist/progress/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';function
|
|
1
|
+
'use strict';var Q=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function M(e,...n){Q&&console.warn(`[svg-scroll-draw] ${e}`,...n);}function Z({tension:e=2.5,friction:n=2.2}={}){return t=>1-Math.cos(t*Math.PI*e)*Math.pow(1-t,n)}function ee({bounces:e=3,decay:n=.5}={}){let t=Math.max(1,Math.round(e)),r=Math.max(.01,Math.min(.99,n)),i=Math.sqrt(r),o=0,s=[];for(let u=0;u<t;u++){let a=Math.pow(i,u);s.push(a),o+=a;}let m=[0],l=0;for(let u=0;u<t;u++)l+=s[u]/o,m.push(l);return u=>{if(u<=0)return 0;if(u>=1)return 1;for(let a=0;a<t;a++)if(u<=m[a+1]){let g=(u-m[a])/(m[a+1]-m[a]);if(a===0)return g*(2-g);let b=1-Math.pow(r,a);return b+(1-b)*(2*g-1)*(2*g-1)}return 1}}function te({amplitude:e=1,period:n=.4}={}){let t=Math.max(1,e),r=Math.max(.1,n),i=t<=1?r/4:r/(2*Math.PI)*Math.asin(1/t);return o=>o<=0?0:o>=1?1:t*Math.pow(2,-10*o)*Math.sin((o-i)*(2*Math.PI)/r)+1}var x={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:Z(),bounce:ee(),elastic:te()};function ne(e,n,t,r){let i=(o,s,m)=>((1+3*o-3*s)*m+3*s-6*o)*m*m+3*o*m;return o=>{if(o<=0||o>=1)return +(o>0);let s=o;for(let m=0;m<8;m++)s-=(i(e,t,s)-o)/((3*(1+3*e-3*t)*s+6*t-12*e)*s+3*e);if(!(s>=0&&s<=1&&Math.abs(i(e,t,s)-o)<1e-9))for(let m=0,l=0,u=1;m<30;m++)s=(l+u)/2,i(e,t,s)<o?l=s:u=s;return i(n,r,s)}}function re(e){let n=/^cubic-bezier\((.*)\)$/.exec(e==="ease"?"cubic-bezier(.25,.1,.25,1)":e.trim()),t=n?n[1].split(",").map(parseFloat):[];if(t.length===4&&t.every(Number.isFinite)&&t[0]*(1-t[0])>=0&&t[2]*(1-t[2])>=0)return [ne(t[0],t[1],t[2],t[3]),`cubic-bezier(${t})`]}var N=new Set;function C(e,n="linear"){if(typeof e=="function")return e;if(e==null)return x[n];if({}.hasOwnProperty.call(x,e))return x[e];let t=re(String(e));return t?t[0]:(!N.has(e)&&N.add(e)&&M(`Unknown easing ${JSON.stringify(e)}: use a name, cubic-bezier() or a function.`),x[n])}function F(e,n,t){return Math.min(t,Math.max(n,e))}function z(e="top bottom"){let n=e.trim();if(/^\d+(\.\d+)?%$/.test(n))return {element:"top",viewport:n};let[t="top",r="bottom"]=n.split(/\s+/).filter(Boolean);return {element:t,viewport:r}}var V=(e,n)=>e==="top"?0:e==="center"?.5:e==="bottom"?1:n;function A(e,n,t,r){return e+t+n*V(r,0)}function I(e,n){return n*(/^\d+(\.\d+)?%$/.test(e)?parseFloat(e)/100:V(e,1))}function _(e,n,t,r){return t===n?0:F((e-n)/(t-n)*r,0,1)}function W(e,n,t,r,i){let o=A(e.top,e.height,n,r.element)-I(r.viewport,t),s=A(e.top,e.height,n,i.element)-I(i.viewport,t);return {tStart:o,tEnd:s}}function k(e,n,t){let r=e.getBoundingClientRect(),i=t==="x"?r.width:r.height;return n?{top:t==="x"?r.left-n.getBoundingClientRect().left-n.clientLeft+n.scrollLeft:r.top-n.getBoundingClientRect().top-n.clientTop+n.scrollTop,height:i,scroll:0}:{top:t==="x"?r.left:r.top,height:i,scroll:t==="x"?window.scrollX:window.scrollY}}var G=Symbol.for("svg-scroll-draw.registry");function B(){let e=globalThis;return e[G]||(e[G]=new Map)}function q(e,n){B().set(e,n);}function $(e){B().delete(e);}var v,R=new Set,T=new WeakMap,S=new Map,Y=e=>{let n=e.getBoundingClientRect();return n.width+" "+n.height};function oe(e){let n=new Set;for(let t of e)for(;t&&t!==document.body;t=t.parentElement)for(let r=t;r;r=r.previousElementSibling)n.add(r);return n}function H(e,n){if(typeof ResizeObserver>"u"||typeof document>"u")return ()=>{};let t=()=>n();v??(v=new ResizeObserver(i=>{let o=false;for(let{target:s}of i)T.get(s)!==Y(s)&&(o=true),T.set(s,"");o&&R.forEach(s=>s());})),R.add(t);let r=oe(e);return [document.body,document.documentElement].forEach(i=>i&&r.add(i)),r.forEach(i=>{T.has(i)||T.set(i,Y(i)),S.set(i,(S.get(i)??0)+1),v.observe(i);}),()=>{R.delete(t)&&(r.forEach(i=>{let o=(S.get(i)??1)-1;if(o)return void S.set(i,o);S.delete(i),v?.unobserve(i);}),R.size||(v?.disconnect(),v=void 0));}}function X(e,n,t,r,i){let o,s=NaN,m,l,u=()=>{o=0,r(),!m&&!o&&(s=t())>0&&s<1&&(o=requestAnimationFrame(u));},a=()=>{!o&&!m&&t()!==s&&(o=requestAnimationFrame(u));},g=d=>{m=d,cancelAnimationFrame(o),o=s=NaN,a();},b=()=>{clearTimeout(l),i(),a();},w=()=>{clearTimeout(l),l=setTimeout(b,150);},P=H(n,w),f=d=>{e[d]("scroll",a,{passive:true}),window[d]("resize",w),window[d]("orientationchange",w);};return f("addEventListener"),a(),{hold:g,remeasure:b,off(){g(true),f("removeEventListener"),P(),clearTimeout(l);}}}var J={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Se(e,n={}){if(typeof window>"u")return J;let t=typeof e=="string"?document.querySelector(e):e;if(!t)return M("scrollProgress: element not found:",e),J;let r=t,{variable:i="--scroll-progress",easedVariable:o="--scroll-progress-eased",trigger:s={},easing:m="linear",speed:l=1,axis:u="y",scrollContainer:a,onProgress:g}=n,b=C(m),w=z(s.start||"top bottom"),P=z(s.end||"bottom top"),f=typeof a=="string"?document.querySelector(a):a??null,d=0,h=0,y=0,L=()=>f?u==="x"?f.scrollLeft:f.scrollTop:u==="x"?window.scrollX:window.scrollY,K=()=>f?u==="x"?f.clientWidth:f.clientHeight:u==="x"?window.innerWidth:window.innerHeight;function D(){let c=k(r,f,u),p=W(c,c.scroll,K(),w,P);d=p.tStart,h=p.tEnd;}function O(c,p){r.style.setProperty(i,String(c)),o!=null&&r.style.setProperty(o,String(p)),g?.(c,p);}function U(){let c=_(L(),d,h,l),p=b(c);y=c,O(c,p);}D();{let c=_(L(),d,h,l),p=b(c);y=c,O(c,p);}let E=X(f??window,[r],()=>_(L(),d,h,Math.min(l,1)),U,D);return q(t,{type:"animate",getProgress:()=>y,getTrigger:()=>({tStart:d,tEnd:h})}),{destroy(){E.off(),r.style.removeProperty(i),o!=null&&r.style.removeProperty(o),$(t);},replay:E.remeasure,pause:()=>E.hold(true),resume:()=>E.hold(false),seek(c){let p=Math.min(1,Math.max(0,c)),j=b(p);y=p,E.hold(true),O(p,j);},getProgress(){return y}}}exports.scrollProgress=Se;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { T as TriggerConfig, E as
|
|
1
|
+
import { T as TriggerConfig, E as Easing, S as ScrollDrawInstance } from '../types-iITMwrru.mjs';
|
|
2
2
|
|
|
3
3
|
interface ScrollProgressOptions {
|
|
4
4
|
/**
|
|
@@ -12,7 +12,7 @@ interface ScrollProgressOptions {
|
|
|
12
12
|
*/
|
|
13
13
|
easedVariable?: string | null;
|
|
14
14
|
trigger?: TriggerConfig;
|
|
15
|
-
easing?:
|
|
15
|
+
easing?: Easing;
|
|
16
16
|
speed?: number;
|
|
17
17
|
/** Scroll axis. Default: 'y'. */
|
|
18
18
|
axis?: 'x' | 'y';
|
package/dist/progress/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { T as TriggerConfig, E as
|
|
1
|
+
import { T as TriggerConfig, E as Easing, S as ScrollDrawInstance } from '../types-iITMwrru.js';
|
|
2
2
|
|
|
3
3
|
interface ScrollProgressOptions {
|
|
4
4
|
/**
|
|
@@ -12,7 +12,7 @@ interface ScrollProgressOptions {
|
|
|
12
12
|
*/
|
|
13
13
|
easedVariable?: string | null;
|
|
14
14
|
trigger?: TriggerConfig;
|
|
15
|
-
easing?:
|
|
15
|
+
easing?: Easing;
|
|
16
16
|
speed?: number;
|
|
17
17
|
/** Scroll axis. Default: 'y'. */
|
|
18
18
|
axis?: 'x' | 'y';
|
package/dist/progress/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a as a$2}from'../chunk-UPWWULKI.mjs';import {a,b as b$1,e,c}from'../chunk-NV6YTPHI.mjs';import {
|
|
1
|
+
import {a as a$2}from'../chunk-UPWWULKI.mjs';import {a,b as b$1,e,c}from'../chunk-NV6YTPHI.mjs';import {f}from'../chunk-IXR6RML7.mjs';import'../chunk-4DOJSIEQ.mjs';import {a as a$1,b as b$2}from'../chunk-EBU6E26L.mjs';import {b}from'../chunk-LFSU6LR3.mjs';var D={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Y(c$1,H={}){if(typeof window>"u")return D;let g=typeof c$1=="string"?document.querySelector(c$1):c$1;if(!g)return b("scrollProgress: element not found:",c$1),D;let o=g,{variable:b$3="--scroll-progress",easedVariable:m="--scroll-progress-eased",trigger:h={},easing:I="linear",speed:p=1,axis:n="y",scrollContainer:d,onProgress:k}=H,f$1=f(I),q=a(h.start||"top bottom"),F=a(h.end||"bottom top"),t=typeof d=="string"?document.querySelector(d):d??null,s=0,i=0,l=0,y=()=>t?n==="x"?t.scrollLeft:t.scrollTop:n==="x"?window.scrollX:window.scrollY,L=()=>t?n==="x"?t.clientWidth:t.clientHeight:n==="x"?window.innerWidth:window.innerHeight;function E(){let e=a$2(o,t,n),r=c(e,e.scroll,L(),q,F);s=r.tStart,i=r.tEnd;}function w(e,r){o.style.setProperty(b$3,String(e)),m!=null&&o.style.setProperty(m,String(r)),k?.(e,r);}function R(){let e=b$1(y(),s,i,p),r=f$1(e);l=e,w(e,r);}E();{let e=b$1(y(),s,i,p),r=f$1(e);l=e,w(e,r);}let a$3=e(t??window,[o],()=>b$1(y(),s,i,Math.min(p,1)),R,E);return a$1(g,{type:"animate",getProgress:()=>l,getTrigger:()=>({tStart:s,tEnd:i})}),{destroy(){a$3.off(),o.style.removeProperty(b$3),m!=null&&o.style.removeProperty(m),b$2(g);},replay:a$3.remeasure,pause:()=>a$3.hold(true),resume:()=>a$3.hold(false),seek(e){let r=Math.min(1,Math.max(0,e)),V=f$1(r);l=r,a$3.hold(true),w(r,V);},getProgress(){return l}}}export{Y as scrollProgress};
|