svg-scroll-draw 2.14.0 → 2.15.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 +58 -0
- package/dist/angular/index.cjs +2 -2
- package/dist/angular/index.mjs +2 -2
- package/dist/aos/react/index.cjs +3 -0
- package/dist/aos/react/index.mjs +3 -0
- package/dist/astro/index.cjs +2 -2
- package/dist/astro/index.mjs +2 -2
- package/dist/cdn/svg-scroll-draw.dev.global.js +18 -4
- package/dist/cdn/svg-scroll-draw.global.js +2 -2
- package/dist/group/index.cjs +2 -2
- package/dist/group/index.mjs +2 -2
- package/dist/index.cjs +3 -3
- package/dist/index.mjs +3 -3
- package/dist/nuxt/index.cjs +2 -2
- package/dist/nuxt/index.mjs +2 -2
- package/dist/react/index.cjs +2 -2
- package/dist/react/index.mjs +2 -2
- package/dist/scrollreveal/react/index.cjs +3 -0
- package/dist/scrollreveal/react/index.d.mts +58 -0
- package/dist/scrollreveal/react/index.d.ts +58 -0
- package/dist/scrollreveal/react/index.mjs +3 -0
- package/dist/solid/index.cjs +2 -2
- package/dist/solid/index.mjs +2 -2
- package/dist/svelte/index.cjs +2 -2
- package/dist/svelte/index.mjs +2 -2
- package/dist/vivus/react/index.cjs +2 -0
- package/dist/vivus/react/index.mjs +2 -0
- package/dist/vue/index.cjs +2 -2
- package/dist/vue/index.mjs +2 -2
- package/dist/web-component/index.cjs +2 -2
- package/dist/web-component/index.mjs +2 -2
- package/package.json +47 -2
- package/dist/horizontal/index.d.mts +0 -108
- package/dist/horizontal/index.d.ts +0 -108
- package/dist/lenis/index.d.mts +0 -51
- package/dist/lenis/index.d.ts +0 -51
package/README.md
CHANGED
|
@@ -375,6 +375,8 @@ inside the module. 3.0 KB gzipped with the styles, against 6.7 KB for AOS 2.3.4
|
|
|
375
375
|
AOS.init({ once: true });
|
|
376
376
|
```
|
|
377
377
|
|
|
378
|
+
[Try it on StackBlitz](https://stackblitz.com/github/DhruvilChauahan0210/ink-scroll/tree/main/examples/aos) — a page written for the original library, with only the import changed.
|
|
379
|
+
|
|
378
380
|
No bundler? Swap the script tag, and drop the stylesheet link:
|
|
379
381
|
|
|
380
382
|
```html
|
|
@@ -382,6 +384,24 @@ No bundler? Swap the script tag, and drop the stylesheet link:
|
|
|
382
384
|
<script>AOS.init();</script>
|
|
383
385
|
```
|
|
384
386
|
|
|
387
|
+
Step-by-step guides: [AOS in Next.js](https://svg-scroll-draw.vercel.app/guides/aos-nextjs) · [AOS in React](https://svg-scroll-draw.vercel.app/guides/aos-react).
|
|
388
|
+
|
|
389
|
+
**React and Next.js.** `svg-scroll-draw/aos/react` owns the lifecycle AOS never had: it initialises on mount,
|
|
390
|
+
destroys on unmount (so StrictMode's double mount is safe), and new `[data-aos]` content from a route change is
|
|
391
|
+
picked up automatically. The file is marked `"use client"`, so it drops straight into an App Router layout:
|
|
392
|
+
|
|
393
|
+
```tsx
|
|
394
|
+
// app/layout.tsx — a Server Component
|
|
395
|
+
import { AOSInit } from 'svg-scroll-draw/aos/react';
|
|
396
|
+
|
|
397
|
+
export default function RootLayout({ children }) {
|
|
398
|
+
return <html lang="en"><body><AOSInit once duration={600} />{children}</body></html>;
|
|
399
|
+
}
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
Or call `useAOS(options, refreshKey)` in any client component; changing `refreshKey` (say, the pathname)
|
|
403
|
+
re-measures positions.
|
|
404
|
+
|
|
385
405
|
`init`, `refresh` and `refreshHard` behave as in AOS 2.3.4: the same trigger positions (anchor
|
|
386
406
|
placements, `data-aos-anchor`, offsets — including AOS's rule that an inline anchor placement without an
|
|
387
407
|
inline offset uses 0), the same `aos-init` / `aos-animate` classes, the same transforms and end states.
|
|
@@ -413,10 +433,28 @@ implementation of the same API, so the move is an import change — or one comma
|
|
|
413
433
|
ScrollReveal({ distance: '40px', duration: 800 }).reveal('.card', { interval: 80 });
|
|
414
434
|
```
|
|
415
435
|
|
|
436
|
+
[Try it on StackBlitz](https://stackblitz.com/github/DhruvilChauahan0210/ink-scroll/tree/main/examples/scrollreveal) — a page written for the original library, with only the import changed.
|
|
437
|
+
|
|
416
438
|
No bundler? `<script src="https://unpkg.com/svg-scroll-draw/dist/cdn/scrollreveal.global.js"></script>`
|
|
417
439
|
defines `window.ScrollReveal` as the function, like ScrollReveal's own file. With CommonJS,
|
|
418
440
|
`require('svg-scroll-draw/scrollreveal').default` is the function.
|
|
419
441
|
|
|
442
|
+
Step-by-step guide: [ScrollReveal in React and Next.js](https://svg-scroll-draw.vercel.app/guides/scrollreveal-react).
|
|
443
|
+
|
|
444
|
+
**React and Next.js.** `useScrollReveal()` from `svg-scroll-draw/scrollreveal/react` reveals the element its
|
|
445
|
+
ref is on — or its children matching `selector`, for `interval` sequences — and cleans up on unmount, so
|
|
446
|
+
components that mount later (a route change, a list that loads) are revealed too:
|
|
447
|
+
|
|
448
|
+
```tsx
|
|
449
|
+
'use client';
|
|
450
|
+
import { useScrollReveal } from 'svg-scroll-draw/scrollreveal/react';
|
|
451
|
+
|
|
452
|
+
export function Cards() {
|
|
453
|
+
const ref = useScrollReveal({ selector: '.card', interval: 80, distance: '30px' });
|
|
454
|
+
return <div ref={ref}>{/* .card children */}</div>;
|
|
455
|
+
}
|
|
456
|
+
```
|
|
457
|
+
|
|
420
458
|
Every option behaves as in 4.0.9 — `distance` / `origin`, `opacity`, `scale`, `rotate`, `duration`,
|
|
421
459
|
`delay`, `easing`, `interval` sequences, `reset`, `useDelay`, `viewFactor`, `viewOffset`,
|
|
422
460
|
`container`, `mobile` / `desktop`, `cleanup` and the four callbacks — as do `reveal`, `clean`, `sync`,
|
|
@@ -445,9 +483,26 @@ On [vivus](https://github.com/maxwellito/vivus)? It has not shipped since 0.4.6
|
|
|
445
483
|
new Vivus('my-svg', { type: 'oneByOne', duration: 200 }, () => console.log('drawn'));
|
|
446
484
|
```
|
|
447
485
|
|
|
486
|
+
[Try it on StackBlitz](https://stackblitz.com/github/DhruvilChauahan0210/ink-scroll/tree/main/examples/vivus) — a page written for the original library, with only the import changed.
|
|
487
|
+
|
|
448
488
|
No bundler? `<script src="https://unpkg.com/svg-scroll-draw/dist/cdn/vivus.global.js"></script>`
|
|
449
489
|
defines `window.Vivus`. With CommonJS, `require('svg-scroll-draw/vivus').default` is the class.
|
|
450
490
|
|
|
491
|
+
Step-by-step guide: [vivus in React](https://svg-scroll-draw.vercel.app/guides/vivus-react).
|
|
492
|
+
|
|
493
|
+
**React and Next.js.** `useVivus()` from `svg-scroll-draw/vivus/react` creates the instance on the mounted
|
|
494
|
+
`<svg>`, destroys it on unmount, and hands it back for `play()`, `reset()` and the rest:
|
|
495
|
+
|
|
496
|
+
```tsx
|
|
497
|
+
'use client';
|
|
498
|
+
import { useVivus } from 'svg-scroll-draw/vivus/react';
|
|
499
|
+
|
|
500
|
+
export function Logo() {
|
|
501
|
+
const [ref, vivus] = useVivus<SVGSVGElement>({ type: 'oneByOne', duration: 120 });
|
|
502
|
+
return <svg ref={ref} onClick={() => vivus?.reset().play()}>{/* paths */}</svg>;
|
|
503
|
+
}
|
|
504
|
+
```
|
|
505
|
+
|
|
451
506
|
Every option, every animation type (`delayed`, `sync`, `async`, `nsync`, `oneByOne`, `scenario`,
|
|
452
507
|
`scenario-sync`), the `start` modes, `file` and `<object>` loading, the `data-start` / `data-duration` /
|
|
453
508
|
`data-delay` / `data-async` / `data-ignore` attributes, `Vivus.EASE` and the other timing functions, and
|
|
@@ -555,6 +610,9 @@ devtools.highlight('#my-element'); // outline for 2 seconds
|
|
|
555
610
|
| `svg-scroll-draw/aos` | `AOS` (default), `init`, `refresh`, `refreshHard`, `destroy` |
|
|
556
611
|
| `svg-scroll-draw/scrollreveal` | `ScrollReveal` (default and named) |
|
|
557
612
|
| `svg-scroll-draw/vivus` | `Vivus` (default and named) |
|
|
613
|
+
| `svg-scroll-draw/aos/react` | `useAOS`, `AOSInit` (`"use client"`) |
|
|
614
|
+
| `svg-scroll-draw/scrollreveal/react` | `useScrollReveal` (`"use client"`) |
|
|
615
|
+
| `svg-scroll-draw/vivus/react` | `useVivus` (`"use client"`) |
|
|
558
616
|
|
|
559
617
|
---
|
|
560
618
|
|
package/dist/angular/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';function
|
|
1
|
+
'use strict';function jt({bounces:e=3,decay:r=.5}={}){let n=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,r)),l=Math.sqrt(t),o=0,c=[];for(let p=0;p<n;p++){let T=Math.pow(l,p);c.push(T),o+=T;}let u=[0],m=0;for(let p=0;p<n;p++)m+=c[p]/o,u.push(m);return p=>{if(p<=0)return 0;if(p>=1)return 1;for(let T=0;T<n;T++)if(p<=u[T+1]){let z=(p-u[T])/(u[T+1]-u[T]);if(T===0)return z*(2-z);let P=1-Math.pow(t,T);return P+(1-P)*(2*z-1)*(2*z-1)}return 1}}function Yt({amplitude:e=1,period:r=.4}={}){let n=Math.max(1,e),t=Math.max(.1,r),l=n<=1?t/4:t/(2*Math.PI)*Math.asin(1/n);return o=>o<=0?0:o>=1?1:n*Math.pow(2,-10*o)*Math.sin((o-l)*(2*Math.PI)/t)+1}var re={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:jt(),elastic:Yt()};function de(e="top bottom"){let r=e.trim();if(/^\d+(\.\d+)?%$/.test(r))return {element:"top",viewport:r};let[n="top",t="bottom"]=r.split(/\s+/).filter(Boolean);return {element:n,viewport:t}}function dt(e,r,n,t){switch(t){case "top":return e+n;case "center":return e+n+r/2;case "bottom":return e+n+r;default:return e+n}}function gt(e,r){if(/^\d+(\.\d+)?%$/.test(e))return r*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return r/2;case "bottom":return r;default:return r}}function _e(e){let r=e.tagName.toLowerCase();if(r==="rect"){let n=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(n+t)}if(r==="circle"){let n=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*n}return e.getTotalLength()}function Ut(e,r,n){return Math.min(n,Math.max(r,e))}function K(e,r,n,t){return n===r?0:Ut((e-r)/(n-r)*t,0,1)}function Ze(e,r,n){let t=e.getBoundingClientRect(),l=n==="x"?t.width:t.height;return r?{top:n==="x"?t.left-r.getBoundingClientRect().left+r.scrollLeft:t.top-r.getBoundingClientRect().top+r.scrollTop,height:l,scroll:0}:{top:n==="x"?t.left:t.top,height:l,scroll:n==="x"?window.scrollX:window.scrollY}}function xe(e,r,n,t,l){let o=dt(e.top,e.height,r,t.element)-gt(t.viewport,n),c=dt(e.top,e.height,r,l.element)-gt(l.viewport,n);return {tStart:o,tEnd:c}}function ht(e){let r=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(r)return [parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[3],16)];let n=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(n)return [parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16)];let t=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return t?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]:null}function Ve(e,r,n){let t=ht(e),l=ht(r);return !t||!l?e:`rgb(${Math.round(t[0]+(l[0]-t[0])*n)},${Math.round(t[1]+(l[1]-t[1])*n)},${Math.round(t[2]+(l[2]-t[2])*n)})`}var yt={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var Be=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function we(e,...r){Be&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var Xt="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Qt="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",bt=33;function Zt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function Kt(e){let r=[];for(let n=0;n<bt;n++){let t=n/(bt-1);r.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${r.join(",")})`}function Ke(e){switch(e){case "linear":return "linear";case "ease-in":return Xt;case "ease-out":return Qt;case "ease-in-out":return Zt()?Kt(re["ease-in-out"]):null;default:return null}}var wt=Symbol.for("svg-scroll-draw.registry");function vt(){let e=globalThis;return e[wt]||(e[wt]=new Map)}function Le(e,r){vt().set(e,r);}function Pe(e){vt().delete(e);}var Jt=0;function er(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Et(e,r){let n="";try{n=getComputedStyle(e).getPropertyValue(r).trim();}catch{}return n||(e.getAttribute(r)??"").trim()}var St=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function tr(e){if(!Be)return;let r=Et(e,"stroke");if(!r||r==="none"){we("Element has no stroke \u2014 path will not be visible.",e);return}let n=(e.getAttribute("fill")??"").trim();n&&!St.has(n)&&!St.has(Et(e,"fill"))&&we("Element has a fill \u2014 it may obscure the stroke animation.",e);}function rr(e,r,n){let t=document.createElement("div");t.setAttribute("data-svg-scroll-draw-debug",""),t.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function l(){let o=n==="x"?window.scrollX:window.scrollY,c=e-o,u=r-o,m=n==="x";t.innerHTML=`
|
|
2
2
|
<div style="position:absolute;${m?`left:${c}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${c}px;left:0;right:0;border-top:2px dashed #22c55e;`}padding:2px 6px;color:#22c55e;background:rgba(0,0,0,.6)">\u25B6 start</div>
|
|
3
|
-
<div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",l,{passive:true}),l(),{el:t,destroy(){window.removeEventListener("scroll",l),t.remove();}}}var Et=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,St=/[MmLlHhVvCcSsQqTtAaZz]/g;function tr(e,r,n){if(!Ze)return;let t=(e.match(St)??[]).join("").toUpperCase(),l=(r.match(St)??[]).join("").toUpperCase(),o=(e.match(Et)??[]).length,c=(r.match(Et)??[]).length;if(t!==l){we(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${l||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}o!==c&&we(`morphTo: coordinate count differs (${o} \u2192 ${c}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function st(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),l=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,o=>{let c=parseFloat(o),u=t[l++]??c;return String(+(c+(u-c)*n).toFixed(4))})}function Tt(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,l=n?{...yt[n],...t}:t,o=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:c="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:p="linear",trigger:T={},stagger:z=0,direction:P="forward",once:ne=false,debug:$e=false,axis:B="y",scrollContainer:J,autoReverse:X=false,delay:G=0,strokeColor:A,strokeWidth:$,fillOpacity:M,waypoints:w,velocityScale:I=false,threshold:O=0,rootMargin:C="0px",repeat:E=0,repeatDelay:se=0,morphTo:D,clip:oe,autoplay:ie=false,duration:ee=1e3,native:ae=true,onProgress:d,onStart:x,onComplete:g,onEnter:L,onLeave:S,onEnterBack:N,onLeaveBack:fe}=l,Q=oe===true?"left":typeof oe=="string"?oe:false,Se=typeof p=="function"?p:re[p]??re.linear,Ce=de(T.start??"top bottom"),He=de(T.end??"bottom top"),ve=typeof J=="string"?document.querySelector(J):J??null,Ee=Array.isArray(A)?A[0]:null,le=Array.isArray(A)?A[1]:typeof A=="string"?A:null,ce=Array.isArray($)?$[0]:null,j=Array.isArray($)?$[1]:typeof $=="number"?$:null,pe=Array.isArray(M)?M[0]:null,Z=Array.isArray(M)?M[1]:typeof M=="number"?M:null;function ke(s){let a=s*100;switch(Q){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${s*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let _=Q?[]:Array.from(e.querySelectorAll(c)),k=[],i=[],f=0,ge=0,R=false,V=false,q=0,Ae=false,he=-1,te=-1,Y=false,ye=0,Oe=0,Fe,Je=null;function it(){Je?.destroy(),Je=null;}let Ne=new Set,at=NaN,Re=true,Be=-1,lt=performance.now(),ze=NaN;function et(){return ve?B==="x"?ve.scrollLeft:ve.scrollTop:B==="x"?window.scrollX:window.scrollY}function ct(){return ve?B==="x"?ve.clientWidth:ve.clientHeight:B==="x"?window.innerWidth:window.innerHeight}function ut(){let s=Qe(e,ve,B);return xe(s,s.scroll,ct(),Ce,He)}function mt(){(({tStart:f,tEnd:ge}=ut())),$e&&Ze&&(it(),Je=er(f,ge,B));}function tt(s,a=ut){Le(e,{type:"draw",getProgress:()=>s.getProgress(),getTrigger:a});let b=s.destroy;return s.destroy=()=>{b.call(s),Pe(e);},s}function _t(s,a){if(e.style.setProperty("--scroll-draw-progress",String(s)),Q){let b=a==="reverse"?1-s:s;e.style.clipPath=ke(b);return}_.forEach((b,ue)=>{b.style.strokeDashoffset=a==="reverse"?`${k[ue]*s}`:`${k[ue]*(1-s)}`,m&&(b.style.opacity=a==="reverse"?`${1-s}`:`${s}`),Ee&&le?b.style.stroke=Ve(Ee,le,s):le&&(b.style.stroke=le),ce!==null&&j!==null?b.style.strokeWidth=`${ce+(j-ce)*s}`:j!==null&&(b.style.strokeWidth=`${j}`),pe!==null&&Z!==null?b.style.fillOpacity=`${pe+(Z-pe)*s}`:Z!==null&&(b.style.fillOpacity=`${Z}`),D&&b.tagName.toLowerCase()==="path"&&i[ue]&&b.setAttribute("d",st(i[ue],D,s));});}function Ge(){if(e.style.setProperty("--scroll-draw-progress","0"),Q){e.style.clipPath=ke(0);return}_.forEach((s,a)=>{s.style.strokeDasharray=`${k[a]}`,s.style.strokeDashoffset=P==="reverse"?"0":`${k[a]}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`),D&&s.tagName.toLowerCase()==="path"&&i[a]&&s.setAttribute("d",i[a]);});}if(_.forEach(s=>{Jt(s);let a=_e(s);k.push(a);let b=s.tagName.toLowerCase()==="path";b?i.push(s.getAttribute("d")??""):i.push(""),D&&(b?tr(i[i.length-1],D,s):we(`morphTo only applies to <path> elements \u2014 ignored on <${s.tagName}>.`,s)),o?(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?`${a}`:"0",m&&(s.style.opacity="1"),le&&(s.style.stroke=le),j!==null&&(s.style.strokeWidth=`${j}`),Z!==null&&(s.style.fillOpacity=`${Z}`),D&&s.tagName.toLowerCase()==="path"&&s.setAttribute("d",D)):(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?"0":`${a}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`));}),Q){if(o)return e.style.clipPath=ke(1),g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=ke(0);}else if(o)return g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let ft=typeof p=="string"?Ke(p):null;function Vt(){return !(ae===false||!Kt()||!_.length||!ft||Q||B!=="y"||ve||u!==1||z!==0||ne||X||I!==false||D||w||E||G>0||d||x||g||L||S||N||fe||A!=null||$!=null||M!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function qt(){let s=++Zt,a=`svg-scroll-draw-${s}`,b=`svg-scroll-draw-host-${s}`,ue=`--svg-scroll-draw-${s}`,De=P==="reverse"?"0":"var(--ssd-len)",Ie=P==="reverse"?"var(--ssd-len)":"0",Me=`stroke-dashoffset:${De};`,v=`stroke-dashoffset:${Ie};`;m&&(Me+=`opacity:${P==="reverse"?1:0};`,v+=`opacity:${P==="reverse"?0:1};`);let F=document.createElement("style");F.setAttribute("data-svg-scroll-draw",""),F.textContent=`@keyframes ${a}{from{${Me}}to{${v}}}.${b}{view-timeline-name:${ue};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ft};animation-fill-mode:both;animation-timeline:${ue};animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(b);function me(h,U){h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`,h.style.strokeDashoffset="",h.style.opacity="",h.style.animationPlayState="",h.classList.add(a);}_.forEach(me);let y=false,H=-1;function W(){if(H>=0)return H;let h=e.getBoundingClientRect(),{tStart:U,tEnd:Te}=xe({top:h.top,height:h.height},et(),ct(),Ce,He);return Se(K(et(),U,Te,u))}return {destroy(){e.classList.remove(b),_.forEach(h=>{h.classList.remove(a),h.style.removeProperty("--ssd-len"),h.style.animationPlayState="";}),F.remove();},replay(){y=false,H=-1,_.forEach(me);},pause(){y=true,_.forEach(h=>{h.style.animationPlayState="paused";});},resume(){y&&(y=false,_.forEach(h=>{h.style.animationPlayState="running";}));},seek(h){let U=Math.min(1,Math.max(0,h));H=U,y=true,_.forEach((Te,be)=>{Te.classList.remove(a),Te.style.strokeDashoffset=P==="reverse"?`${k[be]*U}`:`${k[be]*(1-U)}`,m&&(Te.style.opacity=P==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return W()},refresh(){_.forEach((h,U)=>{k[U]=_e(h),h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`;});}}}if(Vt())return tt(qt());function Wt(){let s=Math.max(1,ee),a=0,b=0,ue=false;function De(y){let H=true;if(Q){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);ye=h,e.style.setProperty("--scroll-draw-progress",String(h)),e.style.clipPath=ke(P==="reverse"?1-h:h),d?.(h),W<1&&(H=false);}else _.forEach((W,h)=>{let U=h*z*s,Te=Math.min(1,Math.max(0,(y-U)/s)),be=Se(Te);W.style.strokeDashoffset=P==="reverse"?`${k[h]*be}`:`${k[h]*(1-be)}`,m&&(W.style.opacity=P==="reverse"?`${1-be}`:`${be}`),Ee&&le?W.style.stroke=Ve(Ee,le,be):le&&(W.style.stroke=le),ce!==null&&j!==null?W.style.strokeWidth=`${ce+(j-ce)*be}`:j!==null&&(W.style.strokeWidth=`${j}`),pe!==null&&Z!==null?W.style.fillOpacity=`${pe+(Z-pe)*be}`:Z!==null&&(W.style.fillOpacity=`${Z}`),D&&W.tagName.toLowerCase()==="path"&&i[h]&&W.setAttribute("d",st(i[h],D,be)),h===0&&(ye=be,d?.(be),e.style.setProperty("--scroll-draw-progress",String(be))),Te<1&&(H=false);});if(w){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);for(let U in w){let Te=parseFloat(U);h>=Te&&!Ne.has(Te)&&(Ne.add(Te),w[U]?.());}}return H}function Ie(y){if(Y)return;let H=y-a;V||(V=true,x?.());let W=De(H);if(W&&!R){R=true,De(s*(1+Math.max(0,_.length-1)*z)),g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{a=performance.now(),V=false,R=false,Ne.clear(),Ge(),q=requestAnimationFrame(Ie);},se));return}W||(q=requestAnimationFrame(Ie));}function Me(){cancelAnimationFrame(q),clearTimeout(Fe),a=performance.now(),b=0,Y=false,V=false,R=false,Oe=0,ue=true,ye=0,Ne.clear(),Ge(),q=requestAnimationFrame(Ie);}let v=new IntersectionObserver(y=>{y.forEach(H=>{H.isIntersecting&&!(ne&&R)?Me():!H.isIntersecting&&!ne&&!R&&(cancelAnimationFrame(q),clearTimeout(Fe),ue=false);});},{root:ve??null,threshold:O,rootMargin:C}),F;function me(){clearTimeout(F),F=setTimeout(()=>{_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});},150);}return window.addEventListener("resize",me),window.addEventListener("orientationchange",me),G>0?setTimeout(()=>v.observe(e),G):v.observe(e),{destroy(){cancelAnimationFrame(q),clearTimeout(Fe),v.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),clearTimeout(F);},replay(){Oe=0,Me();},pause(){Y||!ue||(Y=true,b=performance.now()-a,cancelAnimationFrame(q));},resume(){Y&&(Y=false,ue=true,a=performance.now()-b,q=requestAnimationFrame(Ie));},seek(y){let H=Math.min(1,Math.max(0,y));ye=H,Y=true,b=H*s,a=performance.now()-b,cancelAnimationFrame(q),De(b);},getProgress(){return ye},refresh(){clearTimeout(F),_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});}}}if(ie)return tt(Wt());mt();function je(){if(!Ae||Y)return;let s=performance.now(),a=et();if(!Re&&I===false&&a===at){q=requestAnimationFrame(je);return}Re=false,at=a;let b=u;if(I!==false){let v=s-lt,F=v>0?Math.abs(a-(Be<0?a:Be))/v:0;b=u*Math.max(.2,1+F*(typeof I=="number"?I:1)*.04);}Be=a,lt=s;let ue=X?te===-1||a>=te?"forward":"reverse":P;te=a;let De=ge-f,Ie=true,Me=De===0?0:(a-f)/De;if(isNaN(ze)||(ze<=0&&Me>0?L?.():ze>0&&Me<=0&&fe?.(),ze<1&&Me>=1?S?.():ze>=1&&Me<1&&N?.()),ze=Me,Q){let v=Se(K(a,f,ge,b));ne&&!X&&(he=Math.max(he,v),v=he),ye=v,e.style.setProperty("--scroll-draw-progress",String(v));let F=ue==="reverse"?1-v:v;e.style.clipPath=ke(F),d?.(v),!V&&K(a,f,ge,b)>0&&(V=true,x?.()),v>=1&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,e.style.clipPath=ke(0);},se))):v<1&&!ne&&(R=false),q=requestAnimationFrame(je);return}if(_.forEach((v,F)=>{let me=F*z*De,y=Se(K(a,f+me,ge+me,b));ne&&!X&&(he=Math.max(he,y),y=he),ye=y,v.style.strokeDashoffset=ue==="reverse"?`${k[F]*y}`:`${k[F]*(1-y)}`,m&&(v.style.opacity=ue==="reverse"?`${1-y}`:`${y}`),Ee&&le?v.style.stroke=Ve(Ee,le,y):le&&(v.style.stroke=le),ce!==null&&j!==null?v.style.strokeWidth=`${ce+(j-ce)*y}`:j!==null&&(v.style.strokeWidth=`${j}`),pe!==null&&Z!==null?v.style.fillOpacity=`${pe+(Z-pe)*y}`:Z!==null&&(v.style.fillOpacity=`${Z}`),D&&v.tagName.toLowerCase()==="path"&&i[F]&&v.setAttribute("d",st(i[F],D,y)),F===0&&(d?.(y),e.style.setProperty("--scroll-draw-progress",String(y))),y<1&&(Ie=false);}),w){let v=Se(K(a,f,ge,b));for(let F in w){let me=parseFloat(F);v>=me&&!Ne.has(me)&&(Ne.add(me),w[F]?.());}}!V&&K(a,f,ge,b)>0&&(V=true,x?.()),Ie&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,Ne.clear(),Ge(),Re=true;},se))):!Ie&&!ne&&(R=false),q=requestAnimationFrame(je);}let rt=false;function Ye(){rt||(rt=true,q=requestAnimationFrame(function(){je();}));}function Ue(){rt=false,cancelAnimationFrame(q);}let nt=new IntersectionObserver(s=>{s.forEach(a=>{Ae=a.isIntersecting,Ae&&!Y?(Re=true,Ye()):Ue();});},{root:ve??null,threshold:O,rootMargin:C});function pt(){_.forEach((s,a)=>{k[a]=_e(s),s.style.strokeDasharray=`${k[a]}`;}),mt(),Re=true;}let Xe;function qe(){clearTimeout(Xe),Xe=setTimeout(pt,150);}window.addEventListener("resize",qe),window.addEventListener("orientationchange",qe);let We;return typeof ResizeObserver<"u"&&(We=new ResizeObserver(()=>qe()),We.observe(document.body),We.observe(document.documentElement),We.observe(e)),G>0?setTimeout(()=>nt.observe(e),G):nt.observe(e),tt({destroy(){cancelAnimationFrame(q),clearTimeout(Fe),Ue(),nt.disconnect(),We?.disconnect(),window.removeEventListener("resize",qe),window.removeEventListener("orientationchange",qe),clearTimeout(Xe),it();},replay(){he=-1,te=-1,Be=-1,V=false,R=false,Oe=0,Y=false,ye=0,Ne.clear(),clearTimeout(Fe),Ge(),Re=true,Ae&&Ye();},pause(){Y=true,Ue();},resume(){Y&&(Y=false,Re=true,Ae&&Ye());},seek(s){let a=Math.min(1,Math.max(0,s));ye=a,he=a,Y=true,Ue(),_t(a,P),Re=true;},getProgress(){return ye},refresh(){clearTimeout(Xe),pt(),Ae&&!Y&&Ye();}},()=>({tStart:f,tEnd:ge}))}function rr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function xt(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let l=[],o=[],c=t[2].trim();if(c)for(let u of c.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);l.push(m?parseFloat(m[1]):0),o.push(m?m[2]:"");}r.push({fn:t[1],nums:l,units:o});}return r}function nr(e,r,n){let t=xt(e),l=xt(r);return t.length===0||t.length!==l.length?n<1?e:r:t.map((o,c)=>{let u=l[c];return o.fn!==u.fn||o.nums.length!==u.nums.length?n<1?`${o.fn}(${o.nums.map((m,p)=>`${m}${o.units[p]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,p)=>`${m}${u.units[p]}`).join(", ")})`:`${o.fn}(${o.nums.map((m,p)=>`${m+(u.nums[p]-m)*n}${o.units[p]}`).join(", ")})`}).join(" ")}function At(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),l=String(r);if(rr(t))return Ve(t,l,n);if(t.includes("("))return nr(t,l,n);let o=t.match(/^([-+]?[\d.]+)(.*)$/),c=l.match(/^([-+]?[\d.]+)(.*)$/);if(o&&c){let u=parseFloat(o[1]),m=parseFloat(c[1]);return `${u+(m-u)*n}${o[2]||c[2]}`}return n<1?t:l}function sr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var or=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),ir=0,Mt="--scroll-draw-progress";function ar(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function Lt(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:l={},easing:o="ease-out",speed:c=1,once:u=false,axis:m="y",scrollContainer:p,native:T=true,velocityScale:z=false,respectReducedMotion:P=true,triggerElement:ne,onProgress:$e,onComplete:B,onEnter:J,onLeave:X,onEnterBack:G,onLeaveBack:A}=r,$=P&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,M=typeof o=="function"?o:re[o]??re["ease-out"],w=de(l.start??"top bottom"),I=de(l.end??"bottom top"),O=ne??e,C=typeof p=="string"?document.querySelector(p):p??null,E=Object.entries(t).map(([i,f])=>({prop:sr(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function se(){let i=window.getComputedStyle(e);for(let f of E)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function D(){for(let i of E)e.style.setProperty(i.prop,String(i.to));}let oe=new Map;for(let i of [...E.map(f=>f.prop),Mt])oe.set(i,e.style.getPropertyValue(i));function ie(){for(let[i,f]of oe)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if($)return D(),B?.(),{...n,destroy:ie,getProgress:()=>1};se();let ee=typeof o=="string"?Ke(o):null;function ae(){if(!T||!ar()||!ee||m!=="y"||C||O!==e||u||c!==1||$e||B||J||X||G||A||z!==false||(l.start??"top bottom").trim()!=="top bottom"||(l.end??"bottom top").trim()!=="bottom top")return false;for(let i of E)if(!or.has(i.prop))return false;return true}function d(){let i=`ssd-a-${++ir}`,f=E.map(te=>`${te.prop}:${te.from}`).join(";"),ge=E.map(te=>`${te.prop}:${te.to}`).join(";"),R=document.createElement("style");R.setAttribute("data-ssd-animate",""),R.textContent=`@keyframes ${i}{from{${f}}to{${ge}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${ee};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(R),e.classList.add(i);let V=()=>m==="x"?window.scrollX:window.scrollY,q=()=>m==="x"?window.innerWidth:window.innerHeight,Ae=()=>{let te=e.getBoundingClientRect();return xe({top:te.top,height:te.height},V(),q(),w,I)};Le(e,{type:"animate",getProgress:()=>he.getProgress(),getTrigger:Ae});let he={destroy(){e.classList.remove(i),R.remove(),e.style.animationPlayState="",ie(),Pe(e);},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(te){let Y=Math.min(1,Math.max(0,te));e.classList.remove(i);for(let ye of E)e.style.setProperty(ye.prop,At(ye.from,ye.to,Y));},getProgress(){let{tStart:te,tEnd:Y}=Ae();return M(K(V(),te,Y,c))}};return he}if(ae())return d();let x=0,g=0,L=0,S=false,N=false,fe=-1,Q=0,Se=false,Ce=NaN,He=-1,ve=0,Ee=()=>C?m==="x"?C.scrollLeft:C.scrollTop:m==="x"?window.scrollX:window.scrollY,le=()=>C?m==="x"?C.clientWidth:C.clientHeight:m==="x"?window.innerWidth:window.innerHeight;function ce(){let i=Qe(O,C,m),f=xe(i,i.scroll,le(),w,I);x=f.tStart,g=f.tEnd;}function j(i){e.style.setProperty(Mt,String(i));for(let f of E)e.style.setProperty(f.prop,At(f.from,f.to,i));$e?.(i);}function pe(i){if(isNaN(Ce)){Ce=i;return}Ce<=0&&i>0?J?.():Ce>0&&i<=0&&A?.(),Ce<1&&i>=1?X?.():Ce>=1&&i<1&&G?.(),Ce=i;}function Z(){if(!S||N)return;let i=performance.now(),f=Ee(),ge=c;if(z!==false){let q=i-ve,Ae=q>0?Math.abs(f-(He<0?f:He))/q:0;ge=c*Math.max(.2,1+Ae*(typeof z=="number"?z:1)*.04);}He=f,ve=i;let R=g===x?0:(f-x)/(g-x);pe(R);let V=M(K(f,x,g,ge));u&&(fe=Math.max(fe,V),V=fe),Q=V,j(V),V>=1&&!Se?(Se=true,B?.()):V<1&&!u&&(Se=false),L=requestAnimationFrame(Z);}ce(),g===x&&we("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let i=M(K(Ee(),x,g,c));u&&i>0&&(fe=i),Q=i,j(i);}let ke=new IntersectionObserver(i=>{i.forEach(f=>{S=f.isIntersecting,S&&!N?L=requestAnimationFrame(Z):cancelAnimationFrame(L);});},{root:C??null}),_;function k(){clearTimeout(_),_=setTimeout(ce,150);}return window.addEventListener("resize",k),window.addEventListener("orientationchange",k),ke.observe(e),Le(e,{type:"animate",getProgress:()=>Q,getTrigger:()=>({tStart:x,tEnd:g})}),{destroy(){cancelAnimationFrame(L),ke.disconnect(),window.removeEventListener("resize",k),window.removeEventListener("orientationchange",k),clearTimeout(_),ie(),Pe(e);},replay(){fe=-1,Se=false,Q=0,N=false,j(0);},pause(){N=true,cancelAnimationFrame(L);},resume(){N&&(N=false,S&&(L=requestAnimationFrame(Z)));},seek(i){let f=Math.min(1,Math.max(0,i));Q=f,fe=f,N=true,cancelAnimationFrame(L),j(f);},getProgress(){return Q}}}var ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Pt(e,r){if(typeof window>"u")return ot;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollCounter: element not found:",e),ot;let t=n,{from:l=0,to:o,format:c,easing:u="ease-out",trigger:m={},once:p=true,decimals:T,onComplete:z}=r,P=T!==void 0?d=>d.toFixed(T):c??(d=>String(Math.round(d))),ne=typeof u=="function"?u:re[u]??re["ease-out"],$e=de(m.start??"top 80%"),B=de(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=P(o),z?.(),ot;let X=0,G=0,A=0,$=false,M=false,w=-1,I=0,O=false,C=()=>window.scrollY,E=()=>window.innerHeight;function se(){let d=t.getBoundingClientRect(),x=xe({top:d.top,height:d.height},C(),E(),$e,B);X=x.tStart,G=x.tEnd;}function D(d){t.textContent=P(l+(o-l)*d),t.style.setProperty("--scroll-draw-progress",String(d));}function oe(){if(!$||M)return;let d=ne(K(C(),X,G,1));p&&(w=Math.max(w,d),d=w),I=d,D(d),d>=1&&!O?(O=true,z?.()):d<1&&!p&&(O=false),A=requestAnimationFrame(oe);}se();{let d=ne(K(C(),X,G,1));p&&d>0&&(w=d),I=d,D(d);}let ie=new IntersectionObserver(d=>{d.forEach(x=>{$=x.isIntersecting,$&&!M?A=requestAnimationFrame(oe):cancelAnimationFrame(A);});}),ee;function ae(){clearTimeout(ee),ee=setTimeout(se,150);}return window.addEventListener("resize",ae),window.addEventListener("orientationchange",ae),ie.observe(t),Le(t,{type:"counter",getProgress:()=>I,getTrigger:()=>({tStart:X,tEnd:G})}),{destroy(){cancelAnimationFrame(A),ie.disconnect(),window.removeEventListener("resize",ae),window.removeEventListener("orientationchange",ae),clearTimeout(ee),Pe(t);},replay(){w=-1,O=false,I=0,M=false,D(0);},pause(){M=true,cancelAnimationFrame(A);},resume(){M&&(M=false,$&&(A=requestAnimationFrame(oe)));},seek(d){let x=Math.min(1,Math.max(0,d));I=x,w=x,M=true,cancelAnimationFrame(A),D(x);},getProgress(){return I}}}var $t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,r={}){if(typeof window>"u")return $t;let n=typeof e=="string"?document.querySelector(e):e;if(!n||n.tagName.toLowerCase()!=="video")return we("scrollVideo: <video> element not found:",e),$t;let t=n,{trigger:l={},easing:o="linear",once:c=false,axis:u="y",preload:m="auto",onReady:p,onComplete:T,onProgress:z}=r,P=window.matchMedia("(prefers-reduced-motion: reduce)").matches,ne=typeof o=="function"?o:re[o]??re.linear,$e=de(l.start??"top top"),B=de(l.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let J=r.from??0,X=r.to,G=0,A=0,$=0,M=false,w=false,I=-1,O=0,C=false,E=false,se=()=>u==="x"?window.scrollX:window.scrollY,D=()=>u==="x"?window.innerWidth:window.innerHeight;function oe(){let S=t.getBoundingClientRect(),N=u==="x"?S.left:S.top,fe=u==="x"?S.width:S.height,Q=xe({top:N,height:fe},se(),D(),$e,B);G=Q.tStart,A=Q.tEnd;}let ie=NaN;function ee(S){if(!E)return;let N=X??t.duration??0,fe=J+(N-J)*S;fe!==ie&&(ie=fe,t.currentTime=fe),t.style.setProperty("--scroll-draw-progress",String(S)),z?.(S);}function ae(){if(!M||w||!E)return;let S=ne(K(se(),G,A,1));c&&(I=Math.max(I,S),S=I),O=S,ee(S),S>=1&&!C?(C=true,T?.()):S<1&&!c&&(C=false),$=requestAnimationFrame(ae);}function d(){if(E=true,X===void 0&&(X=t.duration),P){ee(1),p?.();return}oe(),p?.(),M&&!w&&($=requestAnimationFrame(ae));}t.readyState>=1?d():t.addEventListener("loadedmetadata",d,{once:true}),E||oe();let x=new IntersectionObserver(S=>{S.forEach(N=>{M=N.isIntersecting,M&&!w&&E?$=requestAnimationFrame(ae):cancelAnimationFrame($);});}),g;function L(){clearTimeout(g),g=setTimeout(oe,150);}return window.addEventListener("resize",L),window.addEventListener("orientationchange",L),x.observe(t),Le(t,{type:"video",getProgress:()=>O,getTrigger:()=>({tStart:G,tEnd:A})}),{destroy(){cancelAnimationFrame($),x.disconnect(),t.removeEventListener("loadedmetadata",d),window.removeEventListener("resize",L),window.removeEventListener("orientationchange",L),clearTimeout(g),Pe(t);},replay(){I=-1,C=false,O=0,w=false,ie=NaN,ee(0);},pause(){w=true,cancelAnimationFrame($);},resume(){w&&(w=false,M&&E&&($=requestAnimationFrame(ae)));},seek(S){let N=Math.min(1,Math.max(0,S));O=N,I=N,w=true,cancelAnimationFrame($),ie=NaN,ee(N);},getProgress(){return O}}}function Ot(e){let r=e.textContent??"";return e.textContent="",r.split(/(\s+)/).filter(Boolean).map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(n)?(t.textContent=n,t.style.whiteSpace="pre"):(t.textContent=n,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(n)?null:t}).filter(n=>n!==null)}function lr(e){let r=e.textContent??"";return e.textContent="",r.split("").map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=n,n===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),n===" "?null:t}).filter(n=>n!==null)}function kt(e){let r=Ot(e),n=new Map;for(let o of r){let c=o.offsetTop;n.has(c)||n.set(c,[]),n.get(c).push(o);}let t=[],l=Array.from(n.keys()).sort((o,c)=>o-c);for(let o of l){let c=n.get(o),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",c.forEach((m,p)=>{let T=m.nextElementSibling;u.appendChild(m),p<c.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((o,c)=>{e.appendChild(o),c<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function cr(e,r,n,t){if(n<=1||t===0)return e;let l=(n-1)*t,o=r*t,c=o+(1-l);return c<=o?e>=o?1:0:Math.min(1,Math.max(0,(e-o)/(c-o)))}function ur(e,r){let n=[];if(r?.y!==void 0&&n.push(`translateY(${r.y*(1-e)}px)`),r?.x!==void 0&&n.push(`translateX(${r.x*(1-e)}px)`),r?.rotate!==void 0&&n.push(`rotate(${r.rotate*(1-e)}deg)`),r?.scale!==void 0){let t=r.scale+(1-r.scale)*e;n.push(`scale(${t})`);}return n.join(" ")||""}var It={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Dt(e,r={}){if(typeof window>"u")return It;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollText: element not found:",e),It;let t=n,{split:l="words",stagger:o=.04,easing:c="ease-out",from:u={opacity:0,y:24},trigger:m={},once:p=true,onComplete:T}=r,z=window.matchMedia("(prefers-reduced-motion: reduce)").matches,P=typeof c=="function"?c:re[c]??re["ease-out"],ne=de(m.start??"top 85%"),$e=de(m.end??"top 40%"),B=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let J;l==="chars"?J=lr(t):l==="lines"?J=kt(t):J=Ot(t);let X=J.length;function G(g,L){u?.opacity!==void 0&&(g.style.opacity=String(u.opacity+(1-u.opacity)*L));let S=ur(L,u);S&&(g.style.transform=S);}function A(g){t.style.setProperty("--scroll-draw-progress",String(g)),J.forEach((L,S)=>{let N=P(cr(g,S,X,o));G(L,N);});}if(z)return A(1),T?.(),{destroy(){t.innerHTML=B,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};A(0);let $=0,M=0,w=0,I=false,O=false,C=-1,E=0,se=false,D=()=>window.scrollY,oe=()=>window.innerHeight;function ie(){let g=t.getBoundingClientRect(),L=xe({top:g.top,height:g.height},D(),oe(),ne,$e);$=L.tStart,M=L.tEnd;}function ee(){if(!I||O)return;let g=K(D(),$,M,1);p&&(C=Math.max(C,g),g=C),E=g,A(g),g>=1&&!se?(se=true,T?.()):g<1&&!p&&(se=false),w=requestAnimationFrame(ee);}ie();let ae=new IntersectionObserver(g=>{g.forEach(L=>{I=L.isIntersecting,I&&!O?w=requestAnimationFrame(ee):cancelAnimationFrame(w);});}),d;function x(){clearTimeout(d),d=setTimeout(()=>{if(l==="lines"){let g=E;t.innerHTML=B,t.setAttribute("aria-label",t.textContent??""),J=kt(t),A(g);}ie();},150);}return window.addEventListener("resize",x),window.addEventListener("orientationchange",x),ae.observe(t),Le(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:$,tEnd:M})}),{destroy(){cancelAnimationFrame(w),ae.disconnect(),window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x),clearTimeout(d),t.innerHTML=B,t.removeAttribute("aria-label"),Pe(t);},replay(){C=-1,se=false,E=0,O=false,A(0);},pause(){O=true,cancelAnimationFrame(w);},resume(){O&&(O=false,I&&(w=requestAnimationFrame(ee)));},seek(g){let L=Math.min(1,Math.max(0,g));E=L,C=L,O=true,cancelAnimationFrame(w),A(L);},getProgress(){return E}}}var Ft=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Tt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Nt=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=Lt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Rt=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=Pt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Ht=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Ct(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},zt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Dt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}};exports.ScrollAnimateRef=Nt;exports.ScrollCounterRef=Rt;exports.ScrollDrawRef=Ft;exports.ScrollTextRef=zt;exports.ScrollVideoRef=Ht;
|
|
3
|
+
<div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",l,{passive:true}),l(),{el:t,destroy(){window.removeEventListener("scroll",l),t.remove();}}}var Tt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,xt=/[MmLlHhVvCcSsQqTtAaZz]/g;function nr(e,r,n){if(!Be)return;let t=(e.match(xt)??[]).join("").toUpperCase(),l=(r.match(xt)??[]).join("").toUpperCase(),o=(e.match(Tt)??[]).length,c=(r.match(Tt)??[]).length;if(t!==l){we(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${l||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}o!==c&&we(`morphTo: coordinate count differs (${o} \u2192 ${c}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function st(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),l=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,o=>{let c=parseFloat(o),u=t[l++]??c;return String(+(c+(u-c)*n).toFixed(4))})}function At(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,l=n?{...yt[n],...t}:t,o=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:c="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:p="linear",trigger:T={},stagger:z=0,direction:P="forward",once:ne=false,debug:$e=false,axis:B="y",scrollContainer:J,autoReverse:X=false,delay:G=0,strokeColor:A,strokeWidth:$,fillOpacity:M,waypoints:w,velocityScale:I=false,threshold:O=0,rootMargin:C="0px",repeat:E=0,repeatDelay:se=0,morphTo:D,clip:oe,autoplay:ie=false,duration:ee=1e3,native:ae=true,onProgress:d,onStart:x,onComplete:g,onEnter:L,onLeave:S,onEnterBack:N,onLeaveBack:fe}=l,Q=oe===true?"left":typeof oe=="string"?oe:false,Se=typeof p=="function"?p:re[p]??re.linear,Ce=de(T.start??"top bottom"),He=de(T.end??"bottom top"),ve=typeof J=="string"?document.querySelector(J):J??null,Ee=Array.isArray(A)?A[0]:null,le=Array.isArray(A)?A[1]:typeof A=="string"?A:null,ce=Array.isArray($)?$[0]:null,j=Array.isArray($)?$[1]:typeof $=="number"?$:null,pe=Array.isArray(M)?M[0]:null,Z=Array.isArray(M)?M[1]:typeof M=="number"?M:null;function ke(s){let a=s*100;switch(Q){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${s*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let _=Q?[]:Array.from(e.querySelectorAll(c)),k=[],i=[],f=0,ge=0,R=false,V=false,q=0,Ae=false,he=-1,te=-1,Y=false,ye=0,Oe=0,Fe,Je=null;function it(){Je?.destroy(),Je=null;}let Ne=new Set,at=NaN,Re=true,Ge=-1,lt=performance.now(),ze=NaN;function et(){return ve?B==="x"?ve.scrollLeft:ve.scrollTop:B==="x"?window.scrollX:window.scrollY}function ct(){return ve?B==="x"?ve.clientWidth:ve.clientHeight:B==="x"?window.innerWidth:window.innerHeight}function ut(){let s=Ze(e,ve,B);return xe(s,s.scroll,ct(),Ce,He)}function mt(){(({tStart:f,tEnd:ge}=ut())),$e&&Be&&(it(),Je=rr(f,ge,B));}function tt(s,a=ut){Le(e,{type:"draw",getProgress:()=>s.getProgress(),getTrigger:a});let b=s.destroy;return s.destroy=()=>{b.call(s),Pe(e);},s}function qt(s,a){if(e.style.setProperty("--scroll-draw-progress",String(s)),Q){let b=a==="reverse"?1-s:s;e.style.clipPath=ke(b);return}_.forEach((b,ue)=>{b.style.strokeDashoffset=a==="reverse"?`${k[ue]*s}`:`${k[ue]*(1-s)}`,m&&(b.style.opacity=a==="reverse"?`${1-s}`:`${s}`),Ee&&le?b.style.stroke=Ve(Ee,le,s):le&&(b.style.stroke=le),ce!==null&&j!==null?b.style.strokeWidth=`${ce+(j-ce)*s}`:j!==null&&(b.style.strokeWidth=`${j}`),pe!==null&&Z!==null?b.style.fillOpacity=`${pe+(Z-pe)*s}`:Z!==null&&(b.style.fillOpacity=`${Z}`),D&&b.tagName.toLowerCase()==="path"&&i[ue]&&b.setAttribute("d",st(i[ue],D,s));});}function je(){if(e.style.setProperty("--scroll-draw-progress","0"),Q){e.style.clipPath=ke(0);return}_.forEach((s,a)=>{s.style.strokeDasharray=`${k[a]}`,s.style.strokeDashoffset=P==="reverse"?"0":`${k[a]}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`),D&&s.tagName.toLowerCase()==="path"&&i[a]&&s.setAttribute("d",i[a]);});}if(_.forEach(s=>{tr(s);let a=_e(s);k.push(a);let b=s.tagName.toLowerCase()==="path";b?i.push(s.getAttribute("d")??""):i.push(""),D&&(b?nr(i[i.length-1],D,s):we(`morphTo only applies to <path> elements \u2014 ignored on <${s.tagName}>.`,s)),o?(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?`${a}`:"0",m&&(s.style.opacity="1"),le&&(s.style.stroke=le),j!==null&&(s.style.strokeWidth=`${j}`),Z!==null&&(s.style.fillOpacity=`${Z}`),D&&s.tagName.toLowerCase()==="path"&&s.setAttribute("d",D)):(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?"0":`${a}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`));}),Q){if(o)return e.style.clipPath=ke(1),g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=ke(0);}else if(o)return g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let ft=typeof p=="string"?Ke(p):null;function Wt(){return !(ae===false||!er()||!_.length||!ft||Q||B!=="y"||ve||u!==1||z!==0||ne||X||I!==false||D||w||E||G>0||d||x||g||L||S||N||fe||A!=null||$!=null||M!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function Bt(){let s=++Jt,a=`svg-scroll-draw-${s}`,b=`svg-scroll-draw-host-${s}`,ue=`--svg-scroll-draw-${s}`,De=P==="reverse"?"0":"var(--ssd-len)",Ie=P==="reverse"?"var(--ssd-len)":"0",Me=`stroke-dashoffset:${De};`,v=`stroke-dashoffset:${Ie};`;m&&(Me+=`opacity:${P==="reverse"?1:0};`,v+=`opacity:${P==="reverse"?0:1};`);let F=document.createElement("style");F.setAttribute("data-svg-scroll-draw",""),F.textContent=`@keyframes ${a}{from{${Me}}to{${v}}}.${b}{view-timeline-name:${ue};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ft};animation-fill-mode:both;animation-timeline:${ue};animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(b);function me(h,U){h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`,h.style.strokeDashoffset="",h.style.opacity="",h.style.animationPlayState="",h.classList.add(a);}_.forEach(me);let y=false,H=-1;function W(){if(H>=0)return H;let h=e.getBoundingClientRect(),{tStart:U,tEnd:Te}=xe({top:h.top,height:h.height},et(),ct(),Ce,He);return Se(K(et(),U,Te,u))}return {destroy(){e.classList.remove(b),_.forEach(h=>{h.classList.remove(a),h.style.removeProperty("--ssd-len"),h.style.animationPlayState="";}),F.remove();},replay(){y=false,H=-1,_.forEach(me);},pause(){y=true,_.forEach(h=>{h.style.animationPlayState="paused";});},resume(){y&&(y=false,_.forEach(h=>{h.style.animationPlayState="running";}));},seek(h){let U=Math.min(1,Math.max(0,h));H=U,y=true,_.forEach((Te,be)=>{Te.classList.remove(a),Te.style.strokeDashoffset=P==="reverse"?`${k[be]*U}`:`${k[be]*(1-U)}`,m&&(Te.style.opacity=P==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return W()},refresh(){_.forEach((h,U)=>{k[U]=_e(h),h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`;});}}}if(Wt())return tt(Bt());function Gt(){let s=Math.max(1,ee),a=0,b=0,ue=false;function De(y){let H=true;if(Q){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);ye=h,e.style.setProperty("--scroll-draw-progress",String(h)),e.style.clipPath=ke(P==="reverse"?1-h:h),d?.(h),W<1&&(H=false);}else _.forEach((W,h)=>{let U=h*z*s,Te=Math.min(1,Math.max(0,(y-U)/s)),be=Se(Te);W.style.strokeDashoffset=P==="reverse"?`${k[h]*be}`:`${k[h]*(1-be)}`,m&&(W.style.opacity=P==="reverse"?`${1-be}`:`${be}`),Ee&&le?W.style.stroke=Ve(Ee,le,be):le&&(W.style.stroke=le),ce!==null&&j!==null?W.style.strokeWidth=`${ce+(j-ce)*be}`:j!==null&&(W.style.strokeWidth=`${j}`),pe!==null&&Z!==null?W.style.fillOpacity=`${pe+(Z-pe)*be}`:Z!==null&&(W.style.fillOpacity=`${Z}`),D&&W.tagName.toLowerCase()==="path"&&i[h]&&W.setAttribute("d",st(i[h],D,be)),h===0&&(ye=be,d?.(be),e.style.setProperty("--scroll-draw-progress",String(be))),Te<1&&(H=false);});if(w){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);for(let U in w){let Te=parseFloat(U);h>=Te&&!Ne.has(Te)&&(Ne.add(Te),w[U]?.());}}return H}function Ie(y){if(Y)return;let H=y-a;V||(V=true,x?.());let W=De(H);if(W&&!R){R=true,De(s*(1+Math.max(0,_.length-1)*z)),g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{a=performance.now(),V=false,R=false,Ne.clear(),je(),q=requestAnimationFrame(Ie);},se));return}W||(q=requestAnimationFrame(Ie));}function Me(){cancelAnimationFrame(q),clearTimeout(Fe),a=performance.now(),b=0,Y=false,V=false,R=false,Oe=0,ue=true,ye=0,Ne.clear(),je(),q=requestAnimationFrame(Ie);}let v=new IntersectionObserver(y=>{y.forEach(H=>{H.isIntersecting&&!(ne&&R)?Me():!H.isIntersecting&&!ne&&!R&&(cancelAnimationFrame(q),clearTimeout(Fe),ue=false);});},{root:ve??null,threshold:O,rootMargin:C}),F;function me(){clearTimeout(F),F=setTimeout(()=>{_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});},150);}return window.addEventListener("resize",me),window.addEventListener("orientationchange",me),G>0?setTimeout(()=>v.observe(e),G):v.observe(e),{destroy(){cancelAnimationFrame(q),clearTimeout(Fe),v.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),clearTimeout(F);},replay(){Oe=0,Me();},pause(){Y||!ue||(Y=true,b=performance.now()-a,cancelAnimationFrame(q));},resume(){Y&&(Y=false,ue=true,a=performance.now()-b,q=requestAnimationFrame(Ie));},seek(y){let H=Math.min(1,Math.max(0,y));ye=H,Y=true,b=H*s,a=performance.now()-b,cancelAnimationFrame(q),De(b);},getProgress(){return ye},refresh(){clearTimeout(F),_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});}}}if(ie)return tt(Gt());mt();function Ye(){if(!Ae||Y)return;let s=performance.now(),a=et();if(!Re&&I===false&&a===at){q=requestAnimationFrame(Ye);return}Re=false,at=a;let b=u;if(I!==false){let v=s-lt,F=v>0?Math.abs(a-(Ge<0?a:Ge))/v:0;b=u*Math.max(.2,1+F*(typeof I=="number"?I:1)*.04);}Ge=a,lt=s;let ue=X?te===-1||a>=te?"forward":"reverse":P;te=a;let De=ge-f,Ie=true,Me=De===0?0:(a-f)/De;if(isNaN(ze)||(ze<=0&&Me>0?L?.():ze>0&&Me<=0&&fe?.(),ze<1&&Me>=1?S?.():ze>=1&&Me<1&&N?.()),ze=Me,Q){let v=Se(K(a,f,ge,b));ne&&!X&&(he=Math.max(he,v),v=he),ye=v,e.style.setProperty("--scroll-draw-progress",String(v));let F=ue==="reverse"?1-v:v;e.style.clipPath=ke(F),d?.(v),!V&&K(a,f,ge,b)>0&&(V=true,x?.()),v>=1&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,e.style.clipPath=ke(0);},se))):v<1&&!ne&&(R=false),q=requestAnimationFrame(Ye);return}if(_.forEach((v,F)=>{let me=F*z*De,y=Se(K(a,f+me,ge+me,b));ne&&!X&&(he=Math.max(he,y),y=he),ye=y,v.style.strokeDashoffset=ue==="reverse"?`${k[F]*y}`:`${k[F]*(1-y)}`,m&&(v.style.opacity=ue==="reverse"?`${1-y}`:`${y}`),Ee&&le?v.style.stroke=Ve(Ee,le,y):le&&(v.style.stroke=le),ce!==null&&j!==null?v.style.strokeWidth=`${ce+(j-ce)*y}`:j!==null&&(v.style.strokeWidth=`${j}`),pe!==null&&Z!==null?v.style.fillOpacity=`${pe+(Z-pe)*y}`:Z!==null&&(v.style.fillOpacity=`${Z}`),D&&v.tagName.toLowerCase()==="path"&&i[F]&&v.setAttribute("d",st(i[F],D,y)),F===0&&(d?.(y),e.style.setProperty("--scroll-draw-progress",String(y))),y<1&&(Ie=false);}),w){let v=Se(K(a,f,ge,b));for(let F in w){let me=parseFloat(F);v>=me&&!Ne.has(me)&&(Ne.add(me),w[F]?.());}}!V&&K(a,f,ge,b)>0&&(V=true,x?.()),Ie&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,Ne.clear(),je(),Re=true;},se))):!Ie&&!ne&&(R=false),q=requestAnimationFrame(Ye);}let rt=false;function Ue(){rt||(rt=true,q=requestAnimationFrame(function(){Ye();}));}function Xe(){rt=false,cancelAnimationFrame(q);}let nt=new IntersectionObserver(s=>{s.forEach(a=>{Ae=a.isIntersecting,Ae&&!Y?(Re=true,Ue()):Xe();});},{root:ve??null,threshold:O,rootMargin:C});function pt(){_.forEach((s,a)=>{k[a]=_e(s),s.style.strokeDasharray=`${k[a]}`;}),mt(),Re=true;}let Qe;function qe(){clearTimeout(Qe),Qe=setTimeout(pt,150);}window.addEventListener("resize",qe),window.addEventListener("orientationchange",qe);let We;return typeof ResizeObserver<"u"&&(We=new ResizeObserver(()=>qe()),We.observe(document.body),We.observe(document.documentElement),We.observe(e)),G>0?setTimeout(()=>nt.observe(e),G):nt.observe(e),tt({destroy(){cancelAnimationFrame(q),clearTimeout(Fe),Xe(),nt.disconnect(),We?.disconnect(),window.removeEventListener("resize",qe),window.removeEventListener("orientationchange",qe),clearTimeout(Qe),it();},replay(){he=-1,te=-1,Ge=-1,V=false,R=false,Oe=0,Y=false,ye=0,Ne.clear(),clearTimeout(Fe),je(),Re=true,Ae&&Ue();},pause(){Y=true,Xe();},resume(){Y&&(Y=false,Re=true,Ae&&Ue());},seek(s){let a=Math.min(1,Math.max(0,s));ye=a,he=a,Y=true,Xe(),qt(a,P),Re=true;},getProgress(){return ye},refresh(){clearTimeout(Qe),pt(),Ae&&!Y&&Ue();}},()=>({tStart:f,tEnd:ge}))}function sr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Mt(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let l=[],o=[],c=t[2].trim();if(c)for(let u of c.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);l.push(m?parseFloat(m[1]):0),o.push(m?m[2]:"");}r.push({fn:t[1],nums:l,units:o});}return r}function or(e,r,n){let t=Mt(e),l=Mt(r);return t.length===0||t.length!==l.length?n<1?e:r:t.map((o,c)=>{let u=l[c];return o.fn!==u.fn||o.nums.length!==u.nums.length?n<1?`${o.fn}(${o.nums.map((m,p)=>`${m}${o.units[p]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,p)=>`${m}${u.units[p]}`).join(", ")})`:`${o.fn}(${o.nums.map((m,p)=>`${m+(u.nums[p]-m)*n}${o.units[p]}`).join(", ")})`}).join(" ")}function Lt(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),l=String(r);if(sr(t))return Ve(t,l,n);if(t.includes("("))return or(t,l,n);let o=t.match(/^([-+]?[\d.]+)(.*)$/),c=l.match(/^([-+]?[\d.]+)(.*)$/);if(o&&c){let u=parseFloat(o[1]),m=parseFloat(c[1]);return `${u+(m-u)*n}${o[2]||c[2]}`}return n<1?t:l}function ir(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var ar=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),lr=0,Pt="--scroll-draw-progress";function cr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function $t(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:l={},easing:o="ease-out",speed:c=1,once:u=false,axis:m="y",scrollContainer:p,native:T=true,velocityScale:z=false,respectReducedMotion:P=true,triggerElement:ne,onProgress:$e,onComplete:B,onEnter:J,onLeave:X,onEnterBack:G,onLeaveBack:A}=r,$=P&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,M=typeof o=="function"?o:re[o]??re["ease-out"],w=de(l.start??"top bottom"),I=de(l.end??"bottom top"),O=ne??e,C=typeof p=="string"?document.querySelector(p):p??null,E=Object.entries(t).map(([i,f])=>({prop:ir(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function se(){let i=window.getComputedStyle(e);for(let f of E)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function D(){for(let i of E)e.style.setProperty(i.prop,String(i.to));}let oe=new Map;for(let i of [...E.map(f=>f.prop),Pt])oe.set(i,e.style.getPropertyValue(i));function ie(){for(let[i,f]of oe)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if($)return D(),B?.(),{...n,destroy:ie,getProgress:()=>1};se();let ee=typeof o=="string"?Ke(o):null;function ae(){if(!T||!cr()||!ee||m!=="y"||C||O!==e||u||c!==1||$e||B||J||X||G||A||z!==false||(l.start??"top bottom").trim()!=="top bottom"||(l.end??"bottom top").trim()!=="bottom top")return false;for(let i of E)if(!ar.has(i.prop))return false;return true}function d(){let i=`ssd-a-${++lr}`,f=E.map(te=>`${te.prop}:${te.from}`).join(";"),ge=E.map(te=>`${te.prop}:${te.to}`).join(";"),R=document.createElement("style");R.setAttribute("data-ssd-animate",""),R.textContent=`@keyframes ${i}{from{${f}}to{${ge}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${ee};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(R),e.classList.add(i);let V=()=>m==="x"?window.scrollX:window.scrollY,q=()=>m==="x"?window.innerWidth:window.innerHeight,Ae=()=>{let te=e.getBoundingClientRect();return xe({top:te.top,height:te.height},V(),q(),w,I)};Le(e,{type:"animate",getProgress:()=>he.getProgress(),getTrigger:Ae});let he={destroy(){e.classList.remove(i),R.remove(),e.style.animationPlayState="",ie(),Pe(e);},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(te){let Y=Math.min(1,Math.max(0,te));e.classList.remove(i);for(let ye of E)e.style.setProperty(ye.prop,Lt(ye.from,ye.to,Y));},getProgress(){let{tStart:te,tEnd:Y}=Ae();return M(K(V(),te,Y,c))}};return he}if(ae())return d();let x=0,g=0,L=0,S=false,N=false,fe=-1,Q=0,Se=false,Ce=NaN,He=-1,ve=0,Ee=()=>C?m==="x"?C.scrollLeft:C.scrollTop:m==="x"?window.scrollX:window.scrollY,le=()=>C?m==="x"?C.clientWidth:C.clientHeight:m==="x"?window.innerWidth:window.innerHeight;function ce(){let i=Ze(O,C,m),f=xe(i,i.scroll,le(),w,I);x=f.tStart,g=f.tEnd;}function j(i){e.style.setProperty(Pt,String(i));for(let f of E)e.style.setProperty(f.prop,Lt(f.from,f.to,i));$e?.(i);}function pe(i){if(isNaN(Ce)){Ce=i;return}Ce<=0&&i>0?J?.():Ce>0&&i<=0&&A?.(),Ce<1&&i>=1?X?.():Ce>=1&&i<1&&G?.(),Ce=i;}function Z(){if(!S||N)return;let i=performance.now(),f=Ee(),ge=c;if(z!==false){let q=i-ve,Ae=q>0?Math.abs(f-(He<0?f:He))/q:0;ge=c*Math.max(.2,1+Ae*(typeof z=="number"?z:1)*.04);}He=f,ve=i;let R=g===x?0:(f-x)/(g-x);pe(R);let V=M(K(f,x,g,ge));u&&(fe=Math.max(fe,V),V=fe),Q=V,j(V),V>=1&&!Se?(Se=true,B?.()):V<1&&!u&&(Se=false),L=requestAnimationFrame(Z);}ce(),g===x&&we("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let i=M(K(Ee(),x,g,c));u&&i>0&&(fe=i),Q=i,j(i);}let ke=new IntersectionObserver(i=>{i.forEach(f=>{S=f.isIntersecting,S&&!N?L=requestAnimationFrame(Z):cancelAnimationFrame(L);});},{root:C??null}),_;function k(){clearTimeout(_),_=setTimeout(ce,150);}return window.addEventListener("resize",k),window.addEventListener("orientationchange",k),ke.observe(e),Le(e,{type:"animate",getProgress:()=>Q,getTrigger:()=>({tStart:x,tEnd:g})}),{destroy(){cancelAnimationFrame(L),ke.disconnect(),window.removeEventListener("resize",k),window.removeEventListener("orientationchange",k),clearTimeout(_),ie(),Pe(e);},replay(){fe=-1,Se=false,Q=0,N=false,j(0);},pause(){N=true,cancelAnimationFrame(L);},resume(){N&&(N=false,S&&(L=requestAnimationFrame(Z)));},seek(i){let f=Math.min(1,Math.max(0,i));Q=f,fe=f,N=true,cancelAnimationFrame(L),j(f);},getProgress(){return Q}}}var ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,r){if(typeof window>"u")return ot;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollCounter: element not found:",e),ot;let t=n,{from:l=0,to:o,format:c,easing:u="ease-out",trigger:m={},once:p=true,decimals:T,onComplete:z}=r,P=T!==void 0?d=>d.toFixed(T):c??(d=>String(Math.round(d))),ne=typeof u=="function"?u:re[u]??re["ease-out"],$e=de(m.start??"top 80%"),B=de(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=P(o),z?.(),ot;let X=0,G=0,A=0,$=false,M=false,w=-1,I=0,O=false,C=()=>window.scrollY,E=()=>window.innerHeight;function se(){let d=t.getBoundingClientRect(),x=xe({top:d.top,height:d.height},C(),E(),$e,B);X=x.tStart,G=x.tEnd;}function D(d){t.textContent=P(l+(o-l)*d),t.style.setProperty("--scroll-draw-progress",String(d));}function oe(){if(!$||M)return;let d=ne(K(C(),X,G,1));p&&(w=Math.max(w,d),d=w),I=d,D(d),d>=1&&!O?(O=true,z?.()):d<1&&!p&&(O=false),A=requestAnimationFrame(oe);}se();{let d=ne(K(C(),X,G,1));p&&d>0&&(w=d),I=d,D(d);}let ie=new IntersectionObserver(d=>{d.forEach(x=>{$=x.isIntersecting,$&&!M?A=requestAnimationFrame(oe):cancelAnimationFrame(A);});}),ee;function ae(){clearTimeout(ee),ee=setTimeout(se,150);}return window.addEventListener("resize",ae),window.addEventListener("orientationchange",ae),ie.observe(t),Le(t,{type:"counter",getProgress:()=>I,getTrigger:()=>({tStart:X,tEnd:G})}),{destroy(){cancelAnimationFrame(A),ie.disconnect(),window.removeEventListener("resize",ae),window.removeEventListener("orientationchange",ae),clearTimeout(ee),Pe(t);},replay(){w=-1,O=false,I=0,M=false,D(0);},pause(){M=true,cancelAnimationFrame(A);},resume(){M&&(M=false,$&&(A=requestAnimationFrame(oe)));},seek(d){let x=Math.min(1,Math.max(0,d));I=x,w=x,M=true,cancelAnimationFrame(A),D(x);},getProgress(){return I}}}var kt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function It(e,r={}){if(typeof window>"u")return kt;let n=typeof e=="string"?document.querySelector(e):e;if(!n||n.tagName.toLowerCase()!=="video")return we("scrollVideo: <video> element not found:",e),kt;let t=n,{trigger:l={},easing:o="linear",once:c=false,axis:u="y",preload:m="auto",onReady:p,onComplete:T,onProgress:z}=r,P=window.matchMedia("(prefers-reduced-motion: reduce)").matches,ne=typeof o=="function"?o:re[o]??re.linear,$e=de(l.start??"top top"),B=de(l.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let J=r.from??0,X=r.to,G=0,A=0,$=0,M=false,w=false,I=-1,O=0,C=false,E=false,se=()=>u==="x"?window.scrollX:window.scrollY,D=()=>u==="x"?window.innerWidth:window.innerHeight;function oe(){let S=t.getBoundingClientRect(),N=u==="x"?S.left:S.top,fe=u==="x"?S.width:S.height,Q=xe({top:N,height:fe},se(),D(),$e,B);G=Q.tStart,A=Q.tEnd;}let ie=NaN;function ee(S){if(!E)return;let N=X??t.duration??0,fe=J+(N-J)*S;fe!==ie&&(ie=fe,t.currentTime=fe),t.style.setProperty("--scroll-draw-progress",String(S)),z?.(S);}function ae(){if(!M||w||!E)return;let S=ne(K(se(),G,A,1));c&&(I=Math.max(I,S),S=I),O=S,ee(S),S>=1&&!C?(C=true,T?.()):S<1&&!c&&(C=false),$=requestAnimationFrame(ae);}function d(){if(E=true,X===void 0&&(X=t.duration),P){ee(1),p?.();return}oe(),p?.(),M&&!w&&($=requestAnimationFrame(ae));}t.readyState>=1?d():t.addEventListener("loadedmetadata",d,{once:true}),E||oe();let x=new IntersectionObserver(S=>{S.forEach(N=>{M=N.isIntersecting,M&&!w&&E?$=requestAnimationFrame(ae):cancelAnimationFrame($);});}),g;function L(){clearTimeout(g),g=setTimeout(oe,150);}return window.addEventListener("resize",L),window.addEventListener("orientationchange",L),x.observe(t),Le(t,{type:"video",getProgress:()=>O,getTrigger:()=>({tStart:G,tEnd:A})}),{destroy(){cancelAnimationFrame($),x.disconnect(),t.removeEventListener("loadedmetadata",d),window.removeEventListener("resize",L),window.removeEventListener("orientationchange",L),clearTimeout(g),Pe(t);},replay(){I=-1,C=false,O=0,w=false,ie=NaN,ee(0);},pause(){w=true,cancelAnimationFrame($);},resume(){w&&(w=false,M&&E&&($=requestAnimationFrame(ae)));},seek(S){let N=Math.min(1,Math.max(0,S));O=N,I=N,w=true,cancelAnimationFrame($),ie=NaN,ee(N);},getProgress(){return O}}}function Ft(e){let r=e.textContent??"";return e.textContent="",r.split(/(\s+)/).filter(Boolean).map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(n)?(t.textContent=n,t.style.whiteSpace="pre"):(t.textContent=n,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(n)?null:t}).filter(n=>n!==null)}function ur(e){let r=e.textContent??"";return e.textContent="",r.split("").map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=n,n===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),n===" "?null:t}).filter(n=>n!==null)}function Ot(e){let r=Ft(e),n=new Map;for(let o of r){let c=o.offsetTop;n.has(c)||n.set(c,[]),n.get(c).push(o);}let t=[],l=Array.from(n.keys()).sort((o,c)=>o-c);for(let o of l){let c=n.get(o),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",c.forEach((m,p)=>{let T=m.nextElementSibling;u.appendChild(m),p<c.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((o,c)=>{e.appendChild(o),c<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function mr(e,r,n,t){if(n<=1||t===0)return e;let l=(n-1)*t,o=r*t,c=o+(1-l);return c<=o?e>=o?1:0:Math.min(1,Math.max(0,(e-o)/(c-o)))}function fr(e,r){let n=[];if(r?.y!==void 0&&n.push(`translateY(${r.y*(1-e)}px)`),r?.x!==void 0&&n.push(`translateX(${r.x*(1-e)}px)`),r?.rotate!==void 0&&n.push(`rotate(${r.rotate*(1-e)}deg)`),r?.scale!==void 0){let t=r.scale+(1-r.scale)*e;n.push(`scale(${t})`);}return n.join(" ")||""}var Dt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Nt(e,r={}){if(typeof window>"u")return Dt;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollText: element not found:",e),Dt;let t=n,{split:l="words",stagger:o=.04,easing:c="ease-out",from:u={opacity:0,y:24},trigger:m={},once:p=true,onComplete:T}=r,z=window.matchMedia("(prefers-reduced-motion: reduce)").matches,P=typeof c=="function"?c:re[c]??re["ease-out"],ne=de(m.start??"top 85%"),$e=de(m.end??"top 40%"),B=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let J;l==="chars"?J=ur(t):l==="lines"?J=Ot(t):J=Ft(t);let X=J.length;function G(g,L){u?.opacity!==void 0&&(g.style.opacity=String(u.opacity+(1-u.opacity)*L));let S=fr(L,u);S&&(g.style.transform=S);}function A(g){t.style.setProperty("--scroll-draw-progress",String(g)),J.forEach((L,S)=>{let N=P(mr(g,S,X,o));G(L,N);});}if(z)return A(1),T?.(),{destroy(){t.innerHTML=B,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};A(0);let $=0,M=0,w=0,I=false,O=false,C=-1,E=0,se=false,D=()=>window.scrollY,oe=()=>window.innerHeight;function ie(){let g=t.getBoundingClientRect(),L=xe({top:g.top,height:g.height},D(),oe(),ne,$e);$=L.tStart,M=L.tEnd;}function ee(){if(!I||O)return;let g=K(D(),$,M,1);p&&(C=Math.max(C,g),g=C),E=g,A(g),g>=1&&!se?(se=true,T?.()):g<1&&!p&&(se=false),w=requestAnimationFrame(ee);}ie();let ae=new IntersectionObserver(g=>{g.forEach(L=>{I=L.isIntersecting,I&&!O?w=requestAnimationFrame(ee):cancelAnimationFrame(w);});}),d;function x(){clearTimeout(d),d=setTimeout(()=>{if(l==="lines"){let g=E;t.innerHTML=B,t.setAttribute("aria-label",t.textContent??""),J=Ot(t),A(g);}ie();},150);}return window.addEventListener("resize",x),window.addEventListener("orientationchange",x),ae.observe(t),Le(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:$,tEnd:M})}),{destroy(){cancelAnimationFrame(w),ae.disconnect(),window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x),clearTimeout(d),t.innerHTML=B,t.removeAttribute("aria-label"),Pe(t);},replay(){C=-1,se=false,E=0,O=false,A(0);},pause(){O=true,cancelAnimationFrame(w);},resume(){O&&(O=false,I&&(w=requestAnimationFrame(ee)));},seek(g){let L=Math.min(1,Math.max(0,g));E=L,C=L,O=true,cancelAnimationFrame(w),A(L);},getProgress(){return E}}}var Rt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=At(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Ht=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=$t(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},zt=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=Ct(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},_t=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=It(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Vt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Nt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}};exports.ScrollAnimateRef=Ht;exports.ScrollCounterRef=zt;exports.ScrollDrawRef=Rt;exports.ScrollTextRef=Vt;exports.ScrollVideoRef=_t;
|
package/dist/angular/index.mjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
function
|
|
1
|
+
function jt({bounces:e=3,decay:r=.5}={}){let n=Math.max(1,Math.round(e)),t=Math.max(.01,Math.min(.99,r)),l=Math.sqrt(t),o=0,c=[];for(let p=0;p<n;p++){let T=Math.pow(l,p);c.push(T),o+=T;}let u=[0],m=0;for(let p=0;p<n;p++)m+=c[p]/o,u.push(m);return p=>{if(p<=0)return 0;if(p>=1)return 1;for(let T=0;T<n;T++)if(p<=u[T+1]){let z=(p-u[T])/(u[T+1]-u[T]);if(T===0)return z*(2-z);let P=1-Math.pow(t,T);return P+(1-P)*(2*z-1)*(2*z-1)}return 1}}function Yt({amplitude:e=1,period:r=.4}={}){let n=Math.max(1,e),t=Math.max(.1,r),l=n<=1?t/4:t/(2*Math.PI)*Math.asin(1/n);return o=>o<=0?0:o>=1?1:n*Math.pow(2,-10*o)*Math.sin((o-l)*(2*Math.PI)/t)+1}var re={linear:e=>e,"ease-in":e=>e*e,"ease-out":e=>e*(2-e),"ease-in-out":e=>e<.5?2*e*e:-1+(4-2*e)*e,spring:e=>1-Math.cos(e*Math.PI*2.5)*Math.pow(1-e,2.2),bounce:jt(),elastic:Yt()};function de(e="top bottom"){let r=e.trim();if(/^\d+(\.\d+)?%$/.test(r))return {element:"top",viewport:r};let[n="top",t="bottom"]=r.split(/\s+/).filter(Boolean);return {element:n,viewport:t}}function dt(e,r,n,t){switch(t){case "top":return e+n;case "center":return e+n+r/2;case "bottom":return e+n+r;default:return e+n}}function gt(e,r){if(/^\d+(\.\d+)?%$/.test(e))return r*(parseFloat(e)/100);switch(e){case "top":return 0;case "center":return r/2;case "bottom":return r;default:return r}}function _e(e){let r=e.tagName.toLowerCase();if(r==="rect"){let n=parseFloat(e.getAttribute("width")??"0"),t=parseFloat(e.getAttribute("height")??"0");return 2*(n+t)}if(r==="circle"){let n=parseFloat(e.getAttribute("r")??"0");return 2*Math.PI*n}return e.getTotalLength()}function Ut(e,r,n){return Math.min(n,Math.max(r,e))}function K(e,r,n,t){return n===r?0:Ut((e-r)/(n-r)*t,0,1)}function Ze(e,r,n){let t=e.getBoundingClientRect(),l=n==="x"?t.width:t.height;return r?{top:n==="x"?t.left-r.getBoundingClientRect().left+r.scrollLeft:t.top-r.getBoundingClientRect().top+r.scrollTop,height:l,scroll:0}:{top:n==="x"?t.left:t.top,height:l,scroll:n==="x"?window.scrollX:window.scrollY}}function xe(e,r,n,t,l){let o=dt(e.top,e.height,r,t.element)-gt(t.viewport,n),c=dt(e.top,e.height,r,l.element)-gt(l.viewport,n);return {tStart:o,tEnd:c}}function ht(e){let r=/^#([a-f\d])([a-f\d])([a-f\d])$/i.exec(e);if(r)return [parseInt(r[1]+r[1],16),parseInt(r[2]+r[2],16),parseInt(r[3]+r[3],16)];let n=/^#([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(e);if(n)return [parseInt(n[1],16),parseInt(n[2],16),parseInt(n[3],16)];let t=/^rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)$/i.exec(e);return t?[parseInt(t[1]),parseInt(t[2]),parseInt(t[3])]:null}function Ve(e,r,n){let t=ht(e),l=ht(r);return !t||!l?e:`rgb(${Math.round(t[0]+(l[0]-t[0])*n)},${Math.round(t[1]+(l[1]-t[1])*n)},${Math.round(t[2]+(l[2]-t[2])*n)})`}var yt={sketch:{easing:"ease-in",stagger:.1,speed:.9,fade:false},reveal:{easing:"ease-out",fade:true,speed:1.2,once:true},typewriter:{easing:"linear",stagger:.05,speed:1.5},cinematic:{easing:"ease-in-out",fade:true,speed:.75},spring:{easing:"spring",speed:1.1}};var Be=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function we(e,...r){Be&&console.warn(`[svg-scroll-draw] ${e}`,...r);}var Xt="cubic-bezier(0.333333, 0, 0.666667, 0.333333)",Qt="cubic-bezier(0.333333, 0.666667, 0.666667, 1)",bt=33;function Zt(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timing-function: linear(0, 1)")}function Kt(e){let r=[];for(let n=0;n<bt;n++){let t=n/(bt-1);r.push(String(Math.round(e(t)*1e5)/1e5));}return `linear(${r.join(",")})`}function Ke(e){switch(e){case "linear":return "linear";case "ease-in":return Xt;case "ease-out":return Qt;case "ease-in-out":return Zt()?Kt(re["ease-in-out"]):null;default:return null}}var wt=Symbol.for("svg-scroll-draw.registry");function vt(){let e=globalThis;return e[wt]||(e[wt]=new Map)}function Le(e,r){vt().set(e,r);}function Pe(e){vt().delete(e);}var Jt=0;function er(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")&&CSS.supports("view-timeline-name: --x")}function Et(e,r){let n="";try{n=getComputedStyle(e).getPropertyValue(r).trim();}catch{}return n||(e.getAttribute(r)??"").trim()}var St=new Set(["","none","transparent","rgba(0, 0, 0, 0)"]);function tr(e){if(!Be)return;let r=Et(e,"stroke");if(!r||r==="none"){we("Element has no stroke \u2014 path will not be visible.",e);return}let n=(e.getAttribute("fill")??"").trim();n&&!St.has(n)&&!St.has(Et(e,"fill"))&&we("Element has a fill \u2014 it may obscure the stroke animation.",e);}function rr(e,r,n){let t=document.createElement("div");t.setAttribute("data-svg-scroll-draw-debug",""),t.style.cssText="position:fixed;pointer-events:none;z-index:9999;font-family:monospace;font-size:11px;top:0;left:0;right:0;bottom:0;";function l(){let o=n==="x"?window.scrollX:window.scrollY,c=e-o,u=r-o,m=n==="x";t.innerHTML=`
|
|
2
2
|
<div style="position:absolute;${m?`left:${c}px;top:0;bottom:0;border-left:2px dashed #22c55e;`:`top:${c}px;left:0;right:0;border-top:2px dashed #22c55e;`}padding:2px 6px;color:#22c55e;background:rgba(0,0,0,.6)">\u25B6 start</div>
|
|
3
|
-
<div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",l,{passive:true}),l(),{el:t,destroy(){window.removeEventListener("scroll",l),t.remove();}}}var Et=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,St=/[MmLlHhVvCcSsQqTtAaZz]/g;function tr(e,r,n){if(!Ze)return;let t=(e.match(St)??[]).join("").toUpperCase(),l=(r.match(St)??[]).join("").toUpperCase(),o=(e.match(Et)??[]).length,c=(r.match(Et)??[]).length;if(t!==l){we(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${l||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}o!==c&&we(`morphTo: coordinate count differs (${o} \u2192 ${c}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function st(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),l=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,o=>{let c=parseFloat(o),u=t[l++]??c;return String(+(c+(u-c)*n).toFixed(4))})}function Tt(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,l=n?{...yt[n],...t}:t,o=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:c="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:p="linear",trigger:T={},stagger:z=0,direction:P="forward",once:ne=false,debug:$e=false,axis:B="y",scrollContainer:J,autoReverse:X=false,delay:G=0,strokeColor:A,strokeWidth:$,fillOpacity:M,waypoints:w,velocityScale:I=false,threshold:O=0,rootMargin:C="0px",repeat:E=0,repeatDelay:se=0,morphTo:D,clip:oe,autoplay:ie=false,duration:ee=1e3,native:ae=true,onProgress:d,onStart:x,onComplete:g,onEnter:L,onLeave:S,onEnterBack:N,onLeaveBack:fe}=l,Q=oe===true?"left":typeof oe=="string"?oe:false,Se=typeof p=="function"?p:re[p]??re.linear,Ce=de(T.start??"top bottom"),He=de(T.end??"bottom top"),ve=typeof J=="string"?document.querySelector(J):J??null,Ee=Array.isArray(A)?A[0]:null,le=Array.isArray(A)?A[1]:typeof A=="string"?A:null,ce=Array.isArray($)?$[0]:null,j=Array.isArray($)?$[1]:typeof $=="number"?$:null,pe=Array.isArray(M)?M[0]:null,Z=Array.isArray(M)?M[1]:typeof M=="number"?M:null;function ke(s){let a=s*100;switch(Q){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${s*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let _=Q?[]:Array.from(e.querySelectorAll(c)),k=[],i=[],f=0,ge=0,R=false,V=false,q=0,Ae=false,he=-1,te=-1,Y=false,ye=0,Oe=0,Fe,Je=null;function it(){Je?.destroy(),Je=null;}let Ne=new Set,at=NaN,Re=true,Be=-1,lt=performance.now(),ze=NaN;function et(){return ve?B==="x"?ve.scrollLeft:ve.scrollTop:B==="x"?window.scrollX:window.scrollY}function ct(){return ve?B==="x"?ve.clientWidth:ve.clientHeight:B==="x"?window.innerWidth:window.innerHeight}function ut(){let s=Qe(e,ve,B);return xe(s,s.scroll,ct(),Ce,He)}function mt(){(({tStart:f,tEnd:ge}=ut())),$e&&Ze&&(it(),Je=er(f,ge,B));}function tt(s,a=ut){Le(e,{type:"draw",getProgress:()=>s.getProgress(),getTrigger:a});let b=s.destroy;return s.destroy=()=>{b.call(s),Pe(e);},s}function _t(s,a){if(e.style.setProperty("--scroll-draw-progress",String(s)),Q){let b=a==="reverse"?1-s:s;e.style.clipPath=ke(b);return}_.forEach((b,ue)=>{b.style.strokeDashoffset=a==="reverse"?`${k[ue]*s}`:`${k[ue]*(1-s)}`,m&&(b.style.opacity=a==="reverse"?`${1-s}`:`${s}`),Ee&&le?b.style.stroke=Ve(Ee,le,s):le&&(b.style.stroke=le),ce!==null&&j!==null?b.style.strokeWidth=`${ce+(j-ce)*s}`:j!==null&&(b.style.strokeWidth=`${j}`),pe!==null&&Z!==null?b.style.fillOpacity=`${pe+(Z-pe)*s}`:Z!==null&&(b.style.fillOpacity=`${Z}`),D&&b.tagName.toLowerCase()==="path"&&i[ue]&&b.setAttribute("d",st(i[ue],D,s));});}function Ge(){if(e.style.setProperty("--scroll-draw-progress","0"),Q){e.style.clipPath=ke(0);return}_.forEach((s,a)=>{s.style.strokeDasharray=`${k[a]}`,s.style.strokeDashoffset=P==="reverse"?"0":`${k[a]}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`),D&&s.tagName.toLowerCase()==="path"&&i[a]&&s.setAttribute("d",i[a]);});}if(_.forEach(s=>{Jt(s);let a=_e(s);k.push(a);let b=s.tagName.toLowerCase()==="path";b?i.push(s.getAttribute("d")??""):i.push(""),D&&(b?tr(i[i.length-1],D,s):we(`morphTo only applies to <path> elements \u2014 ignored on <${s.tagName}>.`,s)),o?(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?`${a}`:"0",m&&(s.style.opacity="1"),le&&(s.style.stroke=le),j!==null&&(s.style.strokeWidth=`${j}`),Z!==null&&(s.style.fillOpacity=`${Z}`),D&&s.tagName.toLowerCase()==="path"&&s.setAttribute("d",D)):(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?"0":`${a}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`));}),Q){if(o)return e.style.clipPath=ke(1),g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=ke(0);}else if(o)return g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let ft=typeof p=="string"?Ke(p):null;function Vt(){return !(ae===false||!Kt()||!_.length||!ft||Q||B!=="y"||ve||u!==1||z!==0||ne||X||I!==false||D||w||E||G>0||d||x||g||L||S||N||fe||A!=null||$!=null||M!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function qt(){let s=++Zt,a=`svg-scroll-draw-${s}`,b=`svg-scroll-draw-host-${s}`,ue=`--svg-scroll-draw-${s}`,De=P==="reverse"?"0":"var(--ssd-len)",Ie=P==="reverse"?"var(--ssd-len)":"0",Me=`stroke-dashoffset:${De};`,v=`stroke-dashoffset:${Ie};`;m&&(Me+=`opacity:${P==="reverse"?1:0};`,v+=`opacity:${P==="reverse"?0:1};`);let F=document.createElement("style");F.setAttribute("data-svg-scroll-draw",""),F.textContent=`@keyframes ${a}{from{${Me}}to{${v}}}.${b}{view-timeline-name:${ue};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ft};animation-fill-mode:both;animation-timeline:${ue};animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(b);function me(h,U){h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`,h.style.strokeDashoffset="",h.style.opacity="",h.style.animationPlayState="",h.classList.add(a);}_.forEach(me);let y=false,H=-1;function W(){if(H>=0)return H;let h=e.getBoundingClientRect(),{tStart:U,tEnd:Te}=xe({top:h.top,height:h.height},et(),ct(),Ce,He);return Se(K(et(),U,Te,u))}return {destroy(){e.classList.remove(b),_.forEach(h=>{h.classList.remove(a),h.style.removeProperty("--ssd-len"),h.style.animationPlayState="";}),F.remove();},replay(){y=false,H=-1,_.forEach(me);},pause(){y=true,_.forEach(h=>{h.style.animationPlayState="paused";});},resume(){y&&(y=false,_.forEach(h=>{h.style.animationPlayState="running";}));},seek(h){let U=Math.min(1,Math.max(0,h));H=U,y=true,_.forEach((Te,be)=>{Te.classList.remove(a),Te.style.strokeDashoffset=P==="reverse"?`${k[be]*U}`:`${k[be]*(1-U)}`,m&&(Te.style.opacity=P==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return W()},refresh(){_.forEach((h,U)=>{k[U]=_e(h),h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`;});}}}if(Vt())return tt(qt());function Wt(){let s=Math.max(1,ee),a=0,b=0,ue=false;function De(y){let H=true;if(Q){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);ye=h,e.style.setProperty("--scroll-draw-progress",String(h)),e.style.clipPath=ke(P==="reverse"?1-h:h),d?.(h),W<1&&(H=false);}else _.forEach((W,h)=>{let U=h*z*s,Te=Math.min(1,Math.max(0,(y-U)/s)),be=Se(Te);W.style.strokeDashoffset=P==="reverse"?`${k[h]*be}`:`${k[h]*(1-be)}`,m&&(W.style.opacity=P==="reverse"?`${1-be}`:`${be}`),Ee&&le?W.style.stroke=Ve(Ee,le,be):le&&(W.style.stroke=le),ce!==null&&j!==null?W.style.strokeWidth=`${ce+(j-ce)*be}`:j!==null&&(W.style.strokeWidth=`${j}`),pe!==null&&Z!==null?W.style.fillOpacity=`${pe+(Z-pe)*be}`:Z!==null&&(W.style.fillOpacity=`${Z}`),D&&W.tagName.toLowerCase()==="path"&&i[h]&&W.setAttribute("d",st(i[h],D,be)),h===0&&(ye=be,d?.(be),e.style.setProperty("--scroll-draw-progress",String(be))),Te<1&&(H=false);});if(w){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);for(let U in w){let Te=parseFloat(U);h>=Te&&!Ne.has(Te)&&(Ne.add(Te),w[U]?.());}}return H}function Ie(y){if(Y)return;let H=y-a;V||(V=true,x?.());let W=De(H);if(W&&!R){R=true,De(s*(1+Math.max(0,_.length-1)*z)),g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{a=performance.now(),V=false,R=false,Ne.clear(),Ge(),q=requestAnimationFrame(Ie);},se));return}W||(q=requestAnimationFrame(Ie));}function Me(){cancelAnimationFrame(q),clearTimeout(Fe),a=performance.now(),b=0,Y=false,V=false,R=false,Oe=0,ue=true,ye=0,Ne.clear(),Ge(),q=requestAnimationFrame(Ie);}let v=new IntersectionObserver(y=>{y.forEach(H=>{H.isIntersecting&&!(ne&&R)?Me():!H.isIntersecting&&!ne&&!R&&(cancelAnimationFrame(q),clearTimeout(Fe),ue=false);});},{root:ve??null,threshold:O,rootMargin:C}),F;function me(){clearTimeout(F),F=setTimeout(()=>{_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});},150);}return window.addEventListener("resize",me),window.addEventListener("orientationchange",me),G>0?setTimeout(()=>v.observe(e),G):v.observe(e),{destroy(){cancelAnimationFrame(q),clearTimeout(Fe),v.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),clearTimeout(F);},replay(){Oe=0,Me();},pause(){Y||!ue||(Y=true,b=performance.now()-a,cancelAnimationFrame(q));},resume(){Y&&(Y=false,ue=true,a=performance.now()-b,q=requestAnimationFrame(Ie));},seek(y){let H=Math.min(1,Math.max(0,y));ye=H,Y=true,b=H*s,a=performance.now()-b,cancelAnimationFrame(q),De(b);},getProgress(){return ye},refresh(){clearTimeout(F),_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});}}}if(ie)return tt(Wt());mt();function je(){if(!Ae||Y)return;let s=performance.now(),a=et();if(!Re&&I===false&&a===at){q=requestAnimationFrame(je);return}Re=false,at=a;let b=u;if(I!==false){let v=s-lt,F=v>0?Math.abs(a-(Be<0?a:Be))/v:0;b=u*Math.max(.2,1+F*(typeof I=="number"?I:1)*.04);}Be=a,lt=s;let ue=X?te===-1||a>=te?"forward":"reverse":P;te=a;let De=ge-f,Ie=true,Me=De===0?0:(a-f)/De;if(isNaN(ze)||(ze<=0&&Me>0?L?.():ze>0&&Me<=0&&fe?.(),ze<1&&Me>=1?S?.():ze>=1&&Me<1&&N?.()),ze=Me,Q){let v=Se(K(a,f,ge,b));ne&&!X&&(he=Math.max(he,v),v=he),ye=v,e.style.setProperty("--scroll-draw-progress",String(v));let F=ue==="reverse"?1-v:v;e.style.clipPath=ke(F),d?.(v),!V&&K(a,f,ge,b)>0&&(V=true,x?.()),v>=1&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,e.style.clipPath=ke(0);},se))):v<1&&!ne&&(R=false),q=requestAnimationFrame(je);return}if(_.forEach((v,F)=>{let me=F*z*De,y=Se(K(a,f+me,ge+me,b));ne&&!X&&(he=Math.max(he,y),y=he),ye=y,v.style.strokeDashoffset=ue==="reverse"?`${k[F]*y}`:`${k[F]*(1-y)}`,m&&(v.style.opacity=ue==="reverse"?`${1-y}`:`${y}`),Ee&&le?v.style.stroke=Ve(Ee,le,y):le&&(v.style.stroke=le),ce!==null&&j!==null?v.style.strokeWidth=`${ce+(j-ce)*y}`:j!==null&&(v.style.strokeWidth=`${j}`),pe!==null&&Z!==null?v.style.fillOpacity=`${pe+(Z-pe)*y}`:Z!==null&&(v.style.fillOpacity=`${Z}`),D&&v.tagName.toLowerCase()==="path"&&i[F]&&v.setAttribute("d",st(i[F],D,y)),F===0&&(d?.(y),e.style.setProperty("--scroll-draw-progress",String(y))),y<1&&(Ie=false);}),w){let v=Se(K(a,f,ge,b));for(let F in w){let me=parseFloat(F);v>=me&&!Ne.has(me)&&(Ne.add(me),w[F]?.());}}!V&&K(a,f,ge,b)>0&&(V=true,x?.()),Ie&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,Ne.clear(),Ge(),Re=true;},se))):!Ie&&!ne&&(R=false),q=requestAnimationFrame(je);}let rt=false;function Ye(){rt||(rt=true,q=requestAnimationFrame(function(){je();}));}function Ue(){rt=false,cancelAnimationFrame(q);}let nt=new IntersectionObserver(s=>{s.forEach(a=>{Ae=a.isIntersecting,Ae&&!Y?(Re=true,Ye()):Ue();});},{root:ve??null,threshold:O,rootMargin:C});function pt(){_.forEach((s,a)=>{k[a]=_e(s),s.style.strokeDasharray=`${k[a]}`;}),mt(),Re=true;}let Xe;function qe(){clearTimeout(Xe),Xe=setTimeout(pt,150);}window.addEventListener("resize",qe),window.addEventListener("orientationchange",qe);let We;return typeof ResizeObserver<"u"&&(We=new ResizeObserver(()=>qe()),We.observe(document.body),We.observe(document.documentElement),We.observe(e)),G>0?setTimeout(()=>nt.observe(e),G):nt.observe(e),tt({destroy(){cancelAnimationFrame(q),clearTimeout(Fe),Ue(),nt.disconnect(),We?.disconnect(),window.removeEventListener("resize",qe),window.removeEventListener("orientationchange",qe),clearTimeout(Xe),it();},replay(){he=-1,te=-1,Be=-1,V=false,R=false,Oe=0,Y=false,ye=0,Ne.clear(),clearTimeout(Fe),Ge(),Re=true,Ae&&Ye();},pause(){Y=true,Ue();},resume(){Y&&(Y=false,Re=true,Ae&&Ye());},seek(s){let a=Math.min(1,Math.max(0,s));ye=a,he=a,Y=true,Ue(),_t(a,P),Re=true;},getProgress(){return ye},refresh(){clearTimeout(Xe),pt(),Ae&&!Y&&Ye();}},()=>({tStart:f,tEnd:ge}))}function rr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function xt(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let l=[],o=[],c=t[2].trim();if(c)for(let u of c.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);l.push(m?parseFloat(m[1]):0),o.push(m?m[2]:"");}r.push({fn:t[1],nums:l,units:o});}return r}function nr(e,r,n){let t=xt(e),l=xt(r);return t.length===0||t.length!==l.length?n<1?e:r:t.map((o,c)=>{let u=l[c];return o.fn!==u.fn||o.nums.length!==u.nums.length?n<1?`${o.fn}(${o.nums.map((m,p)=>`${m}${o.units[p]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,p)=>`${m}${u.units[p]}`).join(", ")})`:`${o.fn}(${o.nums.map((m,p)=>`${m+(u.nums[p]-m)*n}${o.units[p]}`).join(", ")})`}).join(" ")}function At(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),l=String(r);if(rr(t))return Ve(t,l,n);if(t.includes("("))return nr(t,l,n);let o=t.match(/^([-+]?[\d.]+)(.*)$/),c=l.match(/^([-+]?[\d.]+)(.*)$/);if(o&&c){let u=parseFloat(o[1]),m=parseFloat(c[1]);return `${u+(m-u)*n}${o[2]||c[2]}`}return n<1?t:l}function sr(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var or=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),ir=0,Mt="--scroll-draw-progress";function ar(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function Lt(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:l={},easing:o="ease-out",speed:c=1,once:u=false,axis:m="y",scrollContainer:p,native:T=true,velocityScale:z=false,respectReducedMotion:P=true,triggerElement:ne,onProgress:$e,onComplete:B,onEnter:J,onLeave:X,onEnterBack:G,onLeaveBack:A}=r,$=P&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,M=typeof o=="function"?o:re[o]??re["ease-out"],w=de(l.start??"top bottom"),I=de(l.end??"bottom top"),O=ne??e,C=typeof p=="string"?document.querySelector(p):p??null,E=Object.entries(t).map(([i,f])=>({prop:sr(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function se(){let i=window.getComputedStyle(e);for(let f of E)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function D(){for(let i of E)e.style.setProperty(i.prop,String(i.to));}let oe=new Map;for(let i of [...E.map(f=>f.prop),Mt])oe.set(i,e.style.getPropertyValue(i));function ie(){for(let[i,f]of oe)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if($)return D(),B?.(),{...n,destroy:ie,getProgress:()=>1};se();let ee=typeof o=="string"?Ke(o):null;function ae(){if(!T||!ar()||!ee||m!=="y"||C||O!==e||u||c!==1||$e||B||J||X||G||A||z!==false||(l.start??"top bottom").trim()!=="top bottom"||(l.end??"bottom top").trim()!=="bottom top")return false;for(let i of E)if(!or.has(i.prop))return false;return true}function d(){let i=`ssd-a-${++ir}`,f=E.map(te=>`${te.prop}:${te.from}`).join(";"),ge=E.map(te=>`${te.prop}:${te.to}`).join(";"),R=document.createElement("style");R.setAttribute("data-ssd-animate",""),R.textContent=`@keyframes ${i}{from{${f}}to{${ge}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${ee};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(R),e.classList.add(i);let V=()=>m==="x"?window.scrollX:window.scrollY,q=()=>m==="x"?window.innerWidth:window.innerHeight,Ae=()=>{let te=e.getBoundingClientRect();return xe({top:te.top,height:te.height},V(),q(),w,I)};Le(e,{type:"animate",getProgress:()=>he.getProgress(),getTrigger:Ae});let he={destroy(){e.classList.remove(i),R.remove(),e.style.animationPlayState="",ie(),Pe(e);},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(te){let Y=Math.min(1,Math.max(0,te));e.classList.remove(i);for(let ye of E)e.style.setProperty(ye.prop,At(ye.from,ye.to,Y));},getProgress(){let{tStart:te,tEnd:Y}=Ae();return M(K(V(),te,Y,c))}};return he}if(ae())return d();let x=0,g=0,L=0,S=false,N=false,fe=-1,Q=0,Se=false,Ce=NaN,He=-1,ve=0,Ee=()=>C?m==="x"?C.scrollLeft:C.scrollTop:m==="x"?window.scrollX:window.scrollY,le=()=>C?m==="x"?C.clientWidth:C.clientHeight:m==="x"?window.innerWidth:window.innerHeight;function ce(){let i=Qe(O,C,m),f=xe(i,i.scroll,le(),w,I);x=f.tStart,g=f.tEnd;}function j(i){e.style.setProperty(Mt,String(i));for(let f of E)e.style.setProperty(f.prop,At(f.from,f.to,i));$e?.(i);}function pe(i){if(isNaN(Ce)){Ce=i;return}Ce<=0&&i>0?J?.():Ce>0&&i<=0&&A?.(),Ce<1&&i>=1?X?.():Ce>=1&&i<1&&G?.(),Ce=i;}function Z(){if(!S||N)return;let i=performance.now(),f=Ee(),ge=c;if(z!==false){let q=i-ve,Ae=q>0?Math.abs(f-(He<0?f:He))/q:0;ge=c*Math.max(.2,1+Ae*(typeof z=="number"?z:1)*.04);}He=f,ve=i;let R=g===x?0:(f-x)/(g-x);pe(R);let V=M(K(f,x,g,ge));u&&(fe=Math.max(fe,V),V=fe),Q=V,j(V),V>=1&&!Se?(Se=true,B?.()):V<1&&!u&&(Se=false),L=requestAnimationFrame(Z);}ce(),g===x&&we("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let i=M(K(Ee(),x,g,c));u&&i>0&&(fe=i),Q=i,j(i);}let ke=new IntersectionObserver(i=>{i.forEach(f=>{S=f.isIntersecting,S&&!N?L=requestAnimationFrame(Z):cancelAnimationFrame(L);});},{root:C??null}),_;function k(){clearTimeout(_),_=setTimeout(ce,150);}return window.addEventListener("resize",k),window.addEventListener("orientationchange",k),ke.observe(e),Le(e,{type:"animate",getProgress:()=>Q,getTrigger:()=>({tStart:x,tEnd:g})}),{destroy(){cancelAnimationFrame(L),ke.disconnect(),window.removeEventListener("resize",k),window.removeEventListener("orientationchange",k),clearTimeout(_),ie(),Pe(e);},replay(){fe=-1,Se=false,Q=0,N=false,j(0);},pause(){N=true,cancelAnimationFrame(L);},resume(){N&&(N=false,S&&(L=requestAnimationFrame(Z)));},seek(i){let f=Math.min(1,Math.max(0,i));Q=f,fe=f,N=true,cancelAnimationFrame(L),j(f);},getProgress(){return Q}}}var ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Pt(e,r){if(typeof window>"u")return ot;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollCounter: element not found:",e),ot;let t=n,{from:l=0,to:o,format:c,easing:u="ease-out",trigger:m={},once:p=true,decimals:T,onComplete:z}=r,P=T!==void 0?d=>d.toFixed(T):c??(d=>String(Math.round(d))),ne=typeof u=="function"?u:re[u]??re["ease-out"],$e=de(m.start??"top 80%"),B=de(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=P(o),z?.(),ot;let X=0,G=0,A=0,$=false,M=false,w=-1,I=0,O=false,C=()=>window.scrollY,E=()=>window.innerHeight;function se(){let d=t.getBoundingClientRect(),x=xe({top:d.top,height:d.height},C(),E(),$e,B);X=x.tStart,G=x.tEnd;}function D(d){t.textContent=P(l+(o-l)*d),t.style.setProperty("--scroll-draw-progress",String(d));}function oe(){if(!$||M)return;let d=ne(K(C(),X,G,1));p&&(w=Math.max(w,d),d=w),I=d,D(d),d>=1&&!O?(O=true,z?.()):d<1&&!p&&(O=false),A=requestAnimationFrame(oe);}se();{let d=ne(K(C(),X,G,1));p&&d>0&&(w=d),I=d,D(d);}let ie=new IntersectionObserver(d=>{d.forEach(x=>{$=x.isIntersecting,$&&!M?A=requestAnimationFrame(oe):cancelAnimationFrame(A);});}),ee;function ae(){clearTimeout(ee),ee=setTimeout(se,150);}return window.addEventListener("resize",ae),window.addEventListener("orientationchange",ae),ie.observe(t),Le(t,{type:"counter",getProgress:()=>I,getTrigger:()=>({tStart:X,tEnd:G})}),{destroy(){cancelAnimationFrame(A),ie.disconnect(),window.removeEventListener("resize",ae),window.removeEventListener("orientationchange",ae),clearTimeout(ee),Pe(t);},replay(){w=-1,O=false,I=0,M=false,D(0);},pause(){M=true,cancelAnimationFrame(A);},resume(){M&&(M=false,$&&(A=requestAnimationFrame(oe)));},seek(d){let x=Math.min(1,Math.max(0,d));I=x,w=x,M=true,cancelAnimationFrame(A),D(x);},getProgress(){return I}}}var $t={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,r={}){if(typeof window>"u")return $t;let n=typeof e=="string"?document.querySelector(e):e;if(!n||n.tagName.toLowerCase()!=="video")return we("scrollVideo: <video> element not found:",e),$t;let t=n,{trigger:l={},easing:o="linear",once:c=false,axis:u="y",preload:m="auto",onReady:p,onComplete:T,onProgress:z}=r,P=window.matchMedia("(prefers-reduced-motion: reduce)").matches,ne=typeof o=="function"?o:re[o]??re.linear,$e=de(l.start??"top top"),B=de(l.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let J=r.from??0,X=r.to,G=0,A=0,$=0,M=false,w=false,I=-1,O=0,C=false,E=false,se=()=>u==="x"?window.scrollX:window.scrollY,D=()=>u==="x"?window.innerWidth:window.innerHeight;function oe(){let S=t.getBoundingClientRect(),N=u==="x"?S.left:S.top,fe=u==="x"?S.width:S.height,Q=xe({top:N,height:fe},se(),D(),$e,B);G=Q.tStart,A=Q.tEnd;}let ie=NaN;function ee(S){if(!E)return;let N=X??t.duration??0,fe=J+(N-J)*S;fe!==ie&&(ie=fe,t.currentTime=fe),t.style.setProperty("--scroll-draw-progress",String(S)),z?.(S);}function ae(){if(!M||w||!E)return;let S=ne(K(se(),G,A,1));c&&(I=Math.max(I,S),S=I),O=S,ee(S),S>=1&&!C?(C=true,T?.()):S<1&&!c&&(C=false),$=requestAnimationFrame(ae);}function d(){if(E=true,X===void 0&&(X=t.duration),P){ee(1),p?.();return}oe(),p?.(),M&&!w&&($=requestAnimationFrame(ae));}t.readyState>=1?d():t.addEventListener("loadedmetadata",d,{once:true}),E||oe();let x=new IntersectionObserver(S=>{S.forEach(N=>{M=N.isIntersecting,M&&!w&&E?$=requestAnimationFrame(ae):cancelAnimationFrame($);});}),g;function L(){clearTimeout(g),g=setTimeout(oe,150);}return window.addEventListener("resize",L),window.addEventListener("orientationchange",L),x.observe(t),Le(t,{type:"video",getProgress:()=>O,getTrigger:()=>({tStart:G,tEnd:A})}),{destroy(){cancelAnimationFrame($),x.disconnect(),t.removeEventListener("loadedmetadata",d),window.removeEventListener("resize",L),window.removeEventListener("orientationchange",L),clearTimeout(g),Pe(t);},replay(){I=-1,C=false,O=0,w=false,ie=NaN,ee(0);},pause(){w=true,cancelAnimationFrame($);},resume(){w&&(w=false,M&&E&&($=requestAnimationFrame(ae)));},seek(S){let N=Math.min(1,Math.max(0,S));O=N,I=N,w=true,cancelAnimationFrame($),ie=NaN,ee(N);},getProgress(){return O}}}function Ot(e){let r=e.textContent??"";return e.textContent="",r.split(/(\s+)/).filter(Boolean).map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(n)?(t.textContent=n,t.style.whiteSpace="pre"):(t.textContent=n,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(n)?null:t}).filter(n=>n!==null)}function lr(e){let r=e.textContent??"";return e.textContent="",r.split("").map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=n,n===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),n===" "?null:t}).filter(n=>n!==null)}function kt(e){let r=Ot(e),n=new Map;for(let o of r){let c=o.offsetTop;n.has(c)||n.set(c,[]),n.get(c).push(o);}let t=[],l=Array.from(n.keys()).sort((o,c)=>o-c);for(let o of l){let c=n.get(o),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",c.forEach((m,p)=>{let T=m.nextElementSibling;u.appendChild(m),p<c.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((o,c)=>{e.appendChild(o),c<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function cr(e,r,n,t){if(n<=1||t===0)return e;let l=(n-1)*t,o=r*t,c=o+(1-l);return c<=o?e>=o?1:0:Math.min(1,Math.max(0,(e-o)/(c-o)))}function ur(e,r){let n=[];if(r?.y!==void 0&&n.push(`translateY(${r.y*(1-e)}px)`),r?.x!==void 0&&n.push(`translateX(${r.x*(1-e)}px)`),r?.rotate!==void 0&&n.push(`rotate(${r.rotate*(1-e)}deg)`),r?.scale!==void 0){let t=r.scale+(1-r.scale)*e;n.push(`scale(${t})`);}return n.join(" ")||""}var It={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Dt(e,r={}){if(typeof window>"u")return It;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollText: element not found:",e),It;let t=n,{split:l="words",stagger:o=.04,easing:c="ease-out",from:u={opacity:0,y:24},trigger:m={},once:p=true,onComplete:T}=r,z=window.matchMedia("(prefers-reduced-motion: reduce)").matches,P=typeof c=="function"?c:re[c]??re["ease-out"],ne=de(m.start??"top 85%"),$e=de(m.end??"top 40%"),B=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let J;l==="chars"?J=lr(t):l==="lines"?J=kt(t):J=Ot(t);let X=J.length;function G(g,L){u?.opacity!==void 0&&(g.style.opacity=String(u.opacity+(1-u.opacity)*L));let S=ur(L,u);S&&(g.style.transform=S);}function A(g){t.style.setProperty("--scroll-draw-progress",String(g)),J.forEach((L,S)=>{let N=P(cr(g,S,X,o));G(L,N);});}if(z)return A(1),T?.(),{destroy(){t.innerHTML=B,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};A(0);let $=0,M=0,w=0,I=false,O=false,C=-1,E=0,se=false,D=()=>window.scrollY,oe=()=>window.innerHeight;function ie(){let g=t.getBoundingClientRect(),L=xe({top:g.top,height:g.height},D(),oe(),ne,$e);$=L.tStart,M=L.tEnd;}function ee(){if(!I||O)return;let g=K(D(),$,M,1);p&&(C=Math.max(C,g),g=C),E=g,A(g),g>=1&&!se?(se=true,T?.()):g<1&&!p&&(se=false),w=requestAnimationFrame(ee);}ie();let ae=new IntersectionObserver(g=>{g.forEach(L=>{I=L.isIntersecting,I&&!O?w=requestAnimationFrame(ee):cancelAnimationFrame(w);});}),d;function x(){clearTimeout(d),d=setTimeout(()=>{if(l==="lines"){let g=E;t.innerHTML=B,t.setAttribute("aria-label",t.textContent??""),J=kt(t),A(g);}ie();},150);}return window.addEventListener("resize",x),window.addEventListener("orientationchange",x),ae.observe(t),Le(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:$,tEnd:M})}),{destroy(){cancelAnimationFrame(w),ae.disconnect(),window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x),clearTimeout(d),t.innerHTML=B,t.removeAttribute("aria-label"),Pe(t);},replay(){C=-1,se=false,E=0,O=false,A(0);},pause(){O=true,cancelAnimationFrame(w);},resume(){O&&(O=false,I&&(w=requestAnimationFrame(ee)));},seek(g){let L=Math.min(1,Math.max(0,g));E=L,C=L,O=true,cancelAnimationFrame(w),A(L);},getProgress(){return E}}}var Ft=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Tt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Nt=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=Lt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Rt=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=Pt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Ht=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Ct(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},zt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Dt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}};export{Nt as ScrollAnimateRef,Rt as ScrollCounterRef,Ft as ScrollDrawRef,zt as ScrollTextRef,Ht as ScrollVideoRef};
|
|
3
|
+
<div style="position:absolute;${m?`left:${u}px;top:0;bottom:0;border-left:2px dashed #ef4444;`:`top:${u}px;left:0;right:0;border-top:2px dashed #ef4444;`}padding:2px 6px;color:#ef4444;background:rgba(0,0,0,.6)">\u25A0 end</div>`;}return document.body.appendChild(t),window.addEventListener("scroll",l,{passive:true}),l(),{el:t,destroy(){window.removeEventListener("scroll",l),t.remove();}}}var Tt=/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,xt=/[MmLlHhVvCcSsQqTtAaZz]/g;function nr(e,r,n){if(!Be)return;let t=(e.match(xt)??[]).join("").toUpperCase(),l=(r.match(xt)??[]).join("").toUpperCase(),o=(e.match(Tt)??[]).length,c=(r.match(Tt)??[]).length;if(t!==l){we(`morphTo: command sequence differs (${t||"\u2205"} \u2192 ${l||"\u2205"}). Interpolation is coordinate-for-coordinate, so the result will not reach the target shape. Redraw both paths with the same commands.`,n);return}o!==c&&we(`morphTo: coordinate count differs (${o} \u2192 ${c}). Extra coordinates are ignored and missing ones hold their start value, so the result will not reach the target shape.`,n);}function st(e,r,n){let t=(r.match(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g)??[]).map(Number),l=0;return e.replace(/[-+]?(?:\d*\.)?\d+(?:[eE][-+]?\d+)?/g,o=>{let c=parseFloat(o),u=t[l++]??c;return String(+(c+(u-c)*n).toFixed(4))})}function At(e,r={}){if(typeof window>"u")return {destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};let{preset:n,...t}=r,l=n?{...yt[n],...t}:t,o=window.matchMedia("(prefers-reduced-motion: reduce)").matches,{selector:c="path, polyline, line, polygon, rect, circle",speed:u=1,fade:m=false,easing:p="linear",trigger:T={},stagger:z=0,direction:P="forward",once:ne=false,debug:$e=false,axis:B="y",scrollContainer:J,autoReverse:X=false,delay:G=0,strokeColor:A,strokeWidth:$,fillOpacity:M,waypoints:w,velocityScale:I=false,threshold:O=0,rootMargin:C="0px",repeat:E=0,repeatDelay:se=0,morphTo:D,clip:oe,autoplay:ie=false,duration:ee=1e3,native:ae=true,onProgress:d,onStart:x,onComplete:g,onEnter:L,onLeave:S,onEnterBack:N,onLeaveBack:fe}=l,Q=oe===true?"left":typeof oe=="string"?oe:false,Se=typeof p=="function"?p:re[p]??re.linear,Ce=de(T.start??"top bottom"),He=de(T.end??"bottom top"),ve=typeof J=="string"?document.querySelector(J):J??null,Ee=Array.isArray(A)?A[0]:null,le=Array.isArray(A)?A[1]:typeof A=="string"?A:null,ce=Array.isArray($)?$[0]:null,j=Array.isArray($)?$[1]:typeof $=="number"?$:null,pe=Array.isArray(M)?M[0]:null,Z=Array.isArray(M)?M[1]:typeof M=="number"?M:null;function ke(s){let a=s*100;switch(Q){case "right":return `inset(0 0 0 ${100-a}%)`;case "top":return `inset(0 0 ${100-a}% 0)`;case "bottom":return `inset(${100-a}% 0 0 0)`;case "center":return `circle(${s*150}% at 50% 50%)`;default:return `inset(0 ${100-a}% 0 0)`}}let _=Q?[]:Array.from(e.querySelectorAll(c)),k=[],i=[],f=0,ge=0,R=false,V=false,q=0,Ae=false,he=-1,te=-1,Y=false,ye=0,Oe=0,Fe,Je=null;function it(){Je?.destroy(),Je=null;}let Ne=new Set,at=NaN,Re=true,Ge=-1,lt=performance.now(),ze=NaN;function et(){return ve?B==="x"?ve.scrollLeft:ve.scrollTop:B==="x"?window.scrollX:window.scrollY}function ct(){return ve?B==="x"?ve.clientWidth:ve.clientHeight:B==="x"?window.innerWidth:window.innerHeight}function ut(){let s=Ze(e,ve,B);return xe(s,s.scroll,ct(),Ce,He)}function mt(){(({tStart:f,tEnd:ge}=ut())),$e&&Be&&(it(),Je=rr(f,ge,B));}function tt(s,a=ut){Le(e,{type:"draw",getProgress:()=>s.getProgress(),getTrigger:a});let b=s.destroy;return s.destroy=()=>{b.call(s),Pe(e);},s}function qt(s,a){if(e.style.setProperty("--scroll-draw-progress",String(s)),Q){let b=a==="reverse"?1-s:s;e.style.clipPath=ke(b);return}_.forEach((b,ue)=>{b.style.strokeDashoffset=a==="reverse"?`${k[ue]*s}`:`${k[ue]*(1-s)}`,m&&(b.style.opacity=a==="reverse"?`${1-s}`:`${s}`),Ee&&le?b.style.stroke=Ve(Ee,le,s):le&&(b.style.stroke=le),ce!==null&&j!==null?b.style.strokeWidth=`${ce+(j-ce)*s}`:j!==null&&(b.style.strokeWidth=`${j}`),pe!==null&&Z!==null?b.style.fillOpacity=`${pe+(Z-pe)*s}`:Z!==null&&(b.style.fillOpacity=`${Z}`),D&&b.tagName.toLowerCase()==="path"&&i[ue]&&b.setAttribute("d",st(i[ue],D,s));});}function je(){if(e.style.setProperty("--scroll-draw-progress","0"),Q){e.style.clipPath=ke(0);return}_.forEach((s,a)=>{s.style.strokeDasharray=`${k[a]}`,s.style.strokeDashoffset=P==="reverse"?"0":`${k[a]}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`),D&&s.tagName.toLowerCase()==="path"&&i[a]&&s.setAttribute("d",i[a]);});}if(_.forEach(s=>{tr(s);let a=_e(s);k.push(a);let b=s.tagName.toLowerCase()==="path";b?i.push(s.getAttribute("d")??""):i.push(""),D&&(b?nr(i[i.length-1],D,s):we(`morphTo only applies to <path> elements \u2014 ignored on <${s.tagName}>.`,s)),o?(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?`${a}`:"0",m&&(s.style.opacity="1"),le&&(s.style.stroke=le),j!==null&&(s.style.strokeWidth=`${j}`),Z!==null&&(s.style.fillOpacity=`${Z}`),D&&s.tagName.toLowerCase()==="path"&&s.setAttribute("d",D)):(s.style.strokeDasharray=`${a}`,s.style.strokeDashoffset=P==="reverse"?"0":`${a}`,m?s.style.opacity=P==="reverse"?"1":"0":s.style.opacity="",Ee&&(s.style.stroke=Ee),ce!==null&&(s.style.strokeWidth=`${ce}`),pe!==null&&(s.style.fillOpacity=`${pe}`));}),Q){if(o)return e.style.clipPath=ke(1),g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};e.style.clipPath=ke(0);}else if(o)return g?.(),{destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};let ft=typeof p=="string"?Ke(p):null;function Wt(){return !(ae===false||!er()||!_.length||!ft||Q||B!=="y"||ve||u!==1||z!==0||ne||X||I!==false||D||w||E||G>0||d||x||g||L||S||N||fe||A!=null||$!=null||M!=null||(T.start??"top bottom").trim()!=="top bottom"||(T.end??"bottom top").trim()!=="bottom top")}function Bt(){let s=++Jt,a=`svg-scroll-draw-${s}`,b=`svg-scroll-draw-host-${s}`,ue=`--svg-scroll-draw-${s}`,De=P==="reverse"?"0":"var(--ssd-len)",Ie=P==="reverse"?"var(--ssd-len)":"0",Me=`stroke-dashoffset:${De};`,v=`stroke-dashoffset:${Ie};`;m&&(Me+=`opacity:${P==="reverse"?1:0};`,v+=`opacity:${P==="reverse"?0:1};`);let F=document.createElement("style");F.setAttribute("data-svg-scroll-draw",""),F.textContent=`@keyframes ${a}{from{${Me}}to{${v}}}.${b}{view-timeline-name:${ue};view-timeline-axis:block;}.${a}{animation-name:${a};animation-duration:auto;animation-timing-function:${ft};animation-fill-mode:both;animation-timeline:${ue};animation-range:cover 0% cover 100%;}`,document.head.appendChild(F),e.classList.add(b);function me(h,U){h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`,h.style.strokeDashoffset="",h.style.opacity="",h.style.animationPlayState="",h.classList.add(a);}_.forEach(me);let y=false,H=-1;function W(){if(H>=0)return H;let h=e.getBoundingClientRect(),{tStart:U,tEnd:Te}=xe({top:h.top,height:h.height},et(),ct(),Ce,He);return Se(K(et(),U,Te,u))}return {destroy(){e.classList.remove(b),_.forEach(h=>{h.classList.remove(a),h.style.removeProperty("--ssd-len"),h.style.animationPlayState="";}),F.remove();},replay(){y=false,H=-1,_.forEach(me);},pause(){y=true,_.forEach(h=>{h.style.animationPlayState="paused";});},resume(){y&&(y=false,_.forEach(h=>{h.style.animationPlayState="running";}));},seek(h){let U=Math.min(1,Math.max(0,h));H=U,y=true,_.forEach((Te,be)=>{Te.classList.remove(a),Te.style.strokeDashoffset=P==="reverse"?`${k[be]*U}`:`${k[be]*(1-U)}`,m&&(Te.style.opacity=P==="reverse"?`${1-U}`:`${U}`);});},getProgress(){return W()},refresh(){_.forEach((h,U)=>{k[U]=_e(h),h.style.setProperty("--ssd-len",String(k[U])),h.style.strokeDasharray=`${k[U]}`;});}}}if(Wt())return tt(Bt());function Gt(){let s=Math.max(1,ee),a=0,b=0,ue=false;function De(y){let H=true;if(Q){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);ye=h,e.style.setProperty("--scroll-draw-progress",String(h)),e.style.clipPath=ke(P==="reverse"?1-h:h),d?.(h),W<1&&(H=false);}else _.forEach((W,h)=>{let U=h*z*s,Te=Math.min(1,Math.max(0,(y-U)/s)),be=Se(Te);W.style.strokeDashoffset=P==="reverse"?`${k[h]*be}`:`${k[h]*(1-be)}`,m&&(W.style.opacity=P==="reverse"?`${1-be}`:`${be}`),Ee&&le?W.style.stroke=Ve(Ee,le,be):le&&(W.style.stroke=le),ce!==null&&j!==null?W.style.strokeWidth=`${ce+(j-ce)*be}`:j!==null&&(W.style.strokeWidth=`${j}`),pe!==null&&Z!==null?W.style.fillOpacity=`${pe+(Z-pe)*be}`:Z!==null&&(W.style.fillOpacity=`${Z}`),D&&W.tagName.toLowerCase()==="path"&&i[h]&&W.setAttribute("d",st(i[h],D,be)),h===0&&(ye=be,d?.(be),e.style.setProperty("--scroll-draw-progress",String(be))),Te<1&&(H=false);});if(w){let W=Math.min(1,Math.max(0,y/s)),h=Se(W);for(let U in w){let Te=parseFloat(U);h>=Te&&!Ne.has(Te)&&(Ne.add(Te),w[U]?.());}}return H}function Ie(y){if(Y)return;let H=y-a;V||(V=true,x?.());let W=De(H);if(W&&!R){R=true,De(s*(1+Math.max(0,_.length-1)*z)),g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{a=performance.now(),V=false,R=false,Ne.clear(),je(),q=requestAnimationFrame(Ie);},se));return}W||(q=requestAnimationFrame(Ie));}function Me(){cancelAnimationFrame(q),clearTimeout(Fe),a=performance.now(),b=0,Y=false,V=false,R=false,Oe=0,ue=true,ye=0,Ne.clear(),je(),q=requestAnimationFrame(Ie);}let v=new IntersectionObserver(y=>{y.forEach(H=>{H.isIntersecting&&!(ne&&R)?Me():!H.isIntersecting&&!ne&&!R&&(cancelAnimationFrame(q),clearTimeout(Fe),ue=false);});},{root:ve??null,threshold:O,rootMargin:C}),F;function me(){clearTimeout(F),F=setTimeout(()=>{_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});},150);}return window.addEventListener("resize",me),window.addEventListener("orientationchange",me),G>0?setTimeout(()=>v.observe(e),G):v.observe(e),{destroy(){cancelAnimationFrame(q),clearTimeout(Fe),v.disconnect(),window.removeEventListener("resize",me),window.removeEventListener("orientationchange",me),clearTimeout(F);},replay(){Oe=0,Me();},pause(){Y||!ue||(Y=true,b=performance.now()-a,cancelAnimationFrame(q));},resume(){Y&&(Y=false,ue=true,a=performance.now()-b,q=requestAnimationFrame(Ie));},seek(y){let H=Math.min(1,Math.max(0,y));ye=H,Y=true,b=H*s,a=performance.now()-b,cancelAnimationFrame(q),De(b);},getProgress(){return ye},refresh(){clearTimeout(F),_.forEach((y,H)=>{k[H]=_e(y),y.style.strokeDasharray=`${k[H]}`;});}}}if(ie)return tt(Gt());mt();function Ye(){if(!Ae||Y)return;let s=performance.now(),a=et();if(!Re&&I===false&&a===at){q=requestAnimationFrame(Ye);return}Re=false,at=a;let b=u;if(I!==false){let v=s-lt,F=v>0?Math.abs(a-(Ge<0?a:Ge))/v:0;b=u*Math.max(.2,1+F*(typeof I=="number"?I:1)*.04);}Ge=a,lt=s;let ue=X?te===-1||a>=te?"forward":"reverse":P;te=a;let De=ge-f,Ie=true,Me=De===0?0:(a-f)/De;if(isNaN(ze)||(ze<=0&&Me>0?L?.():ze>0&&Me<=0&&fe?.(),ze<1&&Me>=1?S?.():ze>=1&&Me<1&&N?.()),ze=Me,Q){let v=Se(K(a,f,ge,b));ne&&!X&&(he=Math.max(he,v),v=he),ye=v,e.style.setProperty("--scroll-draw-progress",String(v));let F=ue==="reverse"?1-v:v;e.style.clipPath=ke(F),d?.(v),!V&&K(a,f,ge,b)>0&&(V=true,x?.()),v>=1&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,e.style.clipPath=ke(0);},se))):v<1&&!ne&&(R=false),q=requestAnimationFrame(Ye);return}if(_.forEach((v,F)=>{let me=F*z*De,y=Se(K(a,f+me,ge+me,b));ne&&!X&&(he=Math.max(he,y),y=he),ye=y,v.style.strokeDashoffset=ue==="reverse"?`${k[F]*y}`:`${k[F]*(1-y)}`,m&&(v.style.opacity=ue==="reverse"?`${1-y}`:`${y}`),Ee&&le?v.style.stroke=Ve(Ee,le,y):le&&(v.style.stroke=le),ce!==null&&j!==null?v.style.strokeWidth=`${ce+(j-ce)*y}`:j!==null&&(v.style.strokeWidth=`${j}`),pe!==null&&Z!==null?v.style.fillOpacity=`${pe+(Z-pe)*y}`:Z!==null&&(v.style.fillOpacity=`${Z}`),D&&v.tagName.toLowerCase()==="path"&&i[F]&&v.setAttribute("d",st(i[F],D,y)),F===0&&(d?.(y),e.style.setProperty("--scroll-draw-progress",String(y))),y<1&&(Ie=false);}),w){let v=Se(K(a,f,ge,b));for(let F in w){let me=parseFloat(F);v>=me&&!Ne.has(me)&&(Ne.add(me),w[F]?.());}}!V&&K(a,f,ge,b)>0&&(V=true,x?.()),Ie&&!R?(R=true,g?.(),Oe<(E==="infinite"?1/0:E??0)&&(Oe++,Fe=setTimeout(()=>{he=-1,V=false,R=false,Ne.clear(),je(),Re=true;},se))):!Ie&&!ne&&(R=false),q=requestAnimationFrame(Ye);}let rt=false;function Ue(){rt||(rt=true,q=requestAnimationFrame(function(){Ye();}));}function Xe(){rt=false,cancelAnimationFrame(q);}let nt=new IntersectionObserver(s=>{s.forEach(a=>{Ae=a.isIntersecting,Ae&&!Y?(Re=true,Ue()):Xe();});},{root:ve??null,threshold:O,rootMargin:C});function pt(){_.forEach((s,a)=>{k[a]=_e(s),s.style.strokeDasharray=`${k[a]}`;}),mt(),Re=true;}let Qe;function qe(){clearTimeout(Qe),Qe=setTimeout(pt,150);}window.addEventListener("resize",qe),window.addEventListener("orientationchange",qe);let We;return typeof ResizeObserver<"u"&&(We=new ResizeObserver(()=>qe()),We.observe(document.body),We.observe(document.documentElement),We.observe(e)),G>0?setTimeout(()=>nt.observe(e),G):nt.observe(e),tt({destroy(){cancelAnimationFrame(q),clearTimeout(Fe),Xe(),nt.disconnect(),We?.disconnect(),window.removeEventListener("resize",qe),window.removeEventListener("orientationchange",qe),clearTimeout(Qe),it();},replay(){he=-1,te=-1,Ge=-1,V=false,R=false,Oe=0,Y=false,ye=0,Ne.clear(),clearTimeout(Fe),je(),Re=true,Ae&&Ue();},pause(){Y=true,Xe();},resume(){Y&&(Y=false,Re=true,Ae&&Ue());},seek(s){let a=Math.min(1,Math.max(0,s));ye=a,he=a,Y=true,Xe(),qt(a,P),Re=true;},getProgress(){return ye},refresh(){clearTimeout(Qe),pt(),Ae&&!Y&&Ue();}},()=>({tStart:f,tEnd:ge}))}function sr(e){return e.startsWith("#")||e.startsWith("rgb")||e.startsWith("hsl")}function Mt(e){let r=[],n=/([\w]+)\(([^)]*)\)/g,t;for(;(t=n.exec(e))!==null;){let l=[],o=[],c=t[2].trim();if(c)for(let u of c.split(/[\s,]+/)){let m=u.match(/^([-+]?[\d.eE]+)(.*)$/);l.push(m?parseFloat(m[1]):0),o.push(m?m[2]:"");}r.push({fn:t[1],nums:l,units:o});}return r}function or(e,r,n){let t=Mt(e),l=Mt(r);return t.length===0||t.length!==l.length?n<1?e:r:t.map((o,c)=>{let u=l[c];return o.fn!==u.fn||o.nums.length!==u.nums.length?n<1?`${o.fn}(${o.nums.map((m,p)=>`${m}${o.units[p]}`).join(", ")})`:`${u.fn}(${u.nums.map((m,p)=>`${m}${u.units[p]}`).join(", ")})`:`${o.fn}(${o.nums.map((m,p)=>`${m+(u.nums[p]-m)*n}${o.units[p]}`).join(", ")})`}).join(" ")}function Lt(e,r,n){if(typeof e=="number"&&typeof r=="number")return String(e+(r-e)*n);let t=String(e),l=String(r);if(sr(t))return Ve(t,l,n);if(t.includes("("))return or(t,l,n);let o=t.match(/^([-+]?[\d.]+)(.*)$/),c=l.match(/^([-+]?[\d.]+)(.*)$/);if(o&&c){let u=parseFloat(o[1]),m=parseFloat(c[1]);return `${u+(m-u)*n}${o[2]||c[2]}`}return n<1?t:l}function ir(e){return e.replace(/([A-Z])/g,r=>`-${r.toLowerCase()}`)}var ar=new Set(["opacity","transform","background-color","color","filter","scale","translate","rotate"]),lr=0,Pt="--scroll-draw-progress";function cr(){return typeof CSS<"u"&&typeof CSS.supports=="function"&&CSS.supports("animation-timeline: view()")}function $t(e,r){let n={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};if(typeof window>"u")return n;let{props:t,trigger:l={},easing:o="ease-out",speed:c=1,once:u=false,axis:m="y",scrollContainer:p,native:T=true,velocityScale:z=false,respectReducedMotion:P=true,triggerElement:ne,onProgress:$e,onComplete:B,onEnter:J,onLeave:X,onEnterBack:G,onLeaveBack:A}=r,$=P&&window.matchMedia("(prefers-reduced-motion: reduce)").matches,M=typeof o=="function"?o:re[o]??re["ease-out"],w=de(l.start??"top bottom"),I=de(l.end??"bottom top"),O=ne??e,C=typeof p=="string"?document.querySelector(p):p??null,E=Object.entries(t).map(([i,f])=>({prop:ir(i),from:Array.isArray(f)?f[0]:"",to:Array.isArray(f)?f[1]:f}));function se(){let i=window.getComputedStyle(e);for(let f of E)f.from===""&&(f.from=i.getPropertyValue(f.prop).trim()||"0");}function D(){for(let i of E)e.style.setProperty(i.prop,String(i.to));}let oe=new Map;for(let i of [...E.map(f=>f.prop),Pt])oe.set(i,e.style.getPropertyValue(i));function ie(){for(let[i,f]of oe)f?e.style.setProperty(i,f):e.style.removeProperty(i);}if($)return D(),B?.(),{...n,destroy:ie,getProgress:()=>1};se();let ee=typeof o=="string"?Ke(o):null;function ae(){if(!T||!cr()||!ee||m!=="y"||C||O!==e||u||c!==1||$e||B||J||X||G||A||z!==false||(l.start??"top bottom").trim()!=="top bottom"||(l.end??"bottom top").trim()!=="bottom top")return false;for(let i of E)if(!ar.has(i.prop))return false;return true}function d(){let i=`ssd-a-${++lr}`,f=E.map(te=>`${te.prop}:${te.from}`).join(";"),ge=E.map(te=>`${te.prop}:${te.to}`).join(";"),R=document.createElement("style");R.setAttribute("data-ssd-animate",""),R.textContent=`@keyframes ${i}{from{${f}}to{${ge}}}.${i}{animation-name:${i};animation-duration:auto;animation-timing-function:${ee};animation-fill-mode:both;animation-timeline:view();animation-range:cover 0% cover 100%;}`,document.head.appendChild(R),e.classList.add(i);let V=()=>m==="x"?window.scrollX:window.scrollY,q=()=>m==="x"?window.innerWidth:window.innerHeight,Ae=()=>{let te=e.getBoundingClientRect();return xe({top:te.top,height:te.height},V(),q(),w,I)};Le(e,{type:"animate",getProgress:()=>he.getProgress(),getTrigger:Ae});let he={destroy(){e.classList.remove(i),R.remove(),e.style.animationPlayState="",ie(),Pe(e);},replay(){e.classList.remove(i),e.offsetWidth,e.classList.add(i);},pause(){e.style.animationPlayState="paused";},resume(){e.style.animationPlayState="";},seek(te){let Y=Math.min(1,Math.max(0,te));e.classList.remove(i);for(let ye of E)e.style.setProperty(ye.prop,Lt(ye.from,ye.to,Y));},getProgress(){let{tStart:te,tEnd:Y}=Ae();return M(K(V(),te,Y,c))}};return he}if(ae())return d();let x=0,g=0,L=0,S=false,N=false,fe=-1,Q=0,Se=false,Ce=NaN,He=-1,ve=0,Ee=()=>C?m==="x"?C.scrollLeft:C.scrollTop:m==="x"?window.scrollX:window.scrollY,le=()=>C?m==="x"?C.clientWidth:C.clientHeight:m==="x"?window.innerWidth:window.innerHeight;function ce(){let i=Ze(O,C,m),f=xe(i,i.scroll,le(),w,I);x=f.tStart,g=f.tEnd;}function j(i){e.style.setProperty(Pt,String(i));for(let f of E)e.style.setProperty(f.prop,Lt(f.from,f.to,i));$e?.(i);}function pe(i){if(isNaN(Ce)){Ce=i;return}Ce<=0&&i>0?J?.():Ce>0&&i<=0&&A?.(),Ce<1&&i>=1?X?.():Ce>=1&&i<1&&G?.(),Ce=i;}function Z(){if(!S||N)return;let i=performance.now(),f=Ee(),ge=c;if(z!==false){let q=i-ve,Ae=q>0?Math.abs(f-(He<0?f:He))/q:0;ge=c*Math.max(.2,1+Ae*(typeof z=="number"?z:1)*.04);}He=f,ve=i;let R=g===x?0:(f-x)/(g-x);pe(R);let V=M(K(f,x,g,ge));u&&(fe=Math.max(fe,V),V=fe),Q=V,j(V),V>=1&&!Se?(Se=true,B?.()):V<1&&!u&&(Se=false),L=requestAnimationFrame(Z);}ce(),g===x&&we("scrollAnimate: the trigger window has zero length (start and end resolve to the same scroll position), so this element will never animate. If the target is inside a position:sticky stage, measure the trigger from the container that holds the scroll room via `triggerElement`.",e);{let i=M(K(Ee(),x,g,c));u&&i>0&&(fe=i),Q=i,j(i);}let ke=new IntersectionObserver(i=>{i.forEach(f=>{S=f.isIntersecting,S&&!N?L=requestAnimationFrame(Z):cancelAnimationFrame(L);});},{root:C??null}),_;function k(){clearTimeout(_),_=setTimeout(ce,150);}return window.addEventListener("resize",k),window.addEventListener("orientationchange",k),ke.observe(e),Le(e,{type:"animate",getProgress:()=>Q,getTrigger:()=>({tStart:x,tEnd:g})}),{destroy(){cancelAnimationFrame(L),ke.disconnect(),window.removeEventListener("resize",k),window.removeEventListener("orientationchange",k),clearTimeout(_),ie(),Pe(e);},replay(){fe=-1,Se=false,Q=0,N=false,j(0);},pause(){N=true,cancelAnimationFrame(L);},resume(){N&&(N=false,S&&(L=requestAnimationFrame(Z)));},seek(i){let f=Math.min(1,Math.max(0,i));Q=f,fe=f,N=true,cancelAnimationFrame(L),j(f);},getProgress(){return Q}}}var ot={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Ct(e,r){if(typeof window>"u")return ot;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollCounter: element not found:",e),ot;let t=n,{from:l=0,to:o,format:c,easing:u="ease-out",trigger:m={},once:p=true,decimals:T,onComplete:z}=r,P=T!==void 0?d=>d.toFixed(T):c??(d=>String(Math.round(d))),ne=typeof u=="function"?u:re[u]??re["ease-out"],$e=de(m.start??"top 80%"),B=de(m.end??"top 20%");if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return t.textContent=P(o),z?.(),ot;let X=0,G=0,A=0,$=false,M=false,w=-1,I=0,O=false,C=()=>window.scrollY,E=()=>window.innerHeight;function se(){let d=t.getBoundingClientRect(),x=xe({top:d.top,height:d.height},C(),E(),$e,B);X=x.tStart,G=x.tEnd;}function D(d){t.textContent=P(l+(o-l)*d),t.style.setProperty("--scroll-draw-progress",String(d));}function oe(){if(!$||M)return;let d=ne(K(C(),X,G,1));p&&(w=Math.max(w,d),d=w),I=d,D(d),d>=1&&!O?(O=true,z?.()):d<1&&!p&&(O=false),A=requestAnimationFrame(oe);}se();{let d=ne(K(C(),X,G,1));p&&d>0&&(w=d),I=d,D(d);}let ie=new IntersectionObserver(d=>{d.forEach(x=>{$=x.isIntersecting,$&&!M?A=requestAnimationFrame(oe):cancelAnimationFrame(A);});}),ee;function ae(){clearTimeout(ee),ee=setTimeout(se,150);}return window.addEventListener("resize",ae),window.addEventListener("orientationchange",ae),ie.observe(t),Le(t,{type:"counter",getProgress:()=>I,getTrigger:()=>({tStart:X,tEnd:G})}),{destroy(){cancelAnimationFrame(A),ie.disconnect(),window.removeEventListener("resize",ae),window.removeEventListener("orientationchange",ae),clearTimeout(ee),Pe(t);},replay(){w=-1,O=false,I=0,M=false,D(0);},pause(){M=true,cancelAnimationFrame(A);},resume(){M&&(M=false,$&&(A=requestAnimationFrame(oe)));},seek(d){let x=Math.min(1,Math.max(0,d));I=x,w=x,M=true,cancelAnimationFrame(A),D(x);},getProgress(){return I}}}var kt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function It(e,r={}){if(typeof window>"u")return kt;let n=typeof e=="string"?document.querySelector(e):e;if(!n||n.tagName.toLowerCase()!=="video")return we("scrollVideo: <video> element not found:",e),kt;let t=n,{trigger:l={},easing:o="linear",once:c=false,axis:u="y",preload:m="auto",onReady:p,onComplete:T,onProgress:z}=r,P=window.matchMedia("(prefers-reduced-motion: reduce)").matches,ne=typeof o=="function"?o:re[o]??re.linear,$e=de(l.start??"top top"),B=de(l.end??"bottom top");t.pause(),t.hasAttribute("preload")||(t.preload=m);let J=r.from??0,X=r.to,G=0,A=0,$=0,M=false,w=false,I=-1,O=0,C=false,E=false,se=()=>u==="x"?window.scrollX:window.scrollY,D=()=>u==="x"?window.innerWidth:window.innerHeight;function oe(){let S=t.getBoundingClientRect(),N=u==="x"?S.left:S.top,fe=u==="x"?S.width:S.height,Q=xe({top:N,height:fe},se(),D(),$e,B);G=Q.tStart,A=Q.tEnd;}let ie=NaN;function ee(S){if(!E)return;let N=X??t.duration??0,fe=J+(N-J)*S;fe!==ie&&(ie=fe,t.currentTime=fe),t.style.setProperty("--scroll-draw-progress",String(S)),z?.(S);}function ae(){if(!M||w||!E)return;let S=ne(K(se(),G,A,1));c&&(I=Math.max(I,S),S=I),O=S,ee(S),S>=1&&!C?(C=true,T?.()):S<1&&!c&&(C=false),$=requestAnimationFrame(ae);}function d(){if(E=true,X===void 0&&(X=t.duration),P){ee(1),p?.();return}oe(),p?.(),M&&!w&&($=requestAnimationFrame(ae));}t.readyState>=1?d():t.addEventListener("loadedmetadata",d,{once:true}),E||oe();let x=new IntersectionObserver(S=>{S.forEach(N=>{M=N.isIntersecting,M&&!w&&E?$=requestAnimationFrame(ae):cancelAnimationFrame($);});}),g;function L(){clearTimeout(g),g=setTimeout(oe,150);}return window.addEventListener("resize",L),window.addEventListener("orientationchange",L),x.observe(t),Le(t,{type:"video",getProgress:()=>O,getTrigger:()=>({tStart:G,tEnd:A})}),{destroy(){cancelAnimationFrame($),x.disconnect(),t.removeEventListener("loadedmetadata",d),window.removeEventListener("resize",L),window.removeEventListener("orientationchange",L),clearTimeout(g),Pe(t);},replay(){I=-1,C=false,O=0,w=false,ie=NaN,ee(0);},pause(){w=true,cancelAnimationFrame($);},resume(){w&&(w=false,M&&E&&($=requestAnimationFrame(ae)));},seek(S){let N=Math.min(1,Math.max(0,S));O=N,I=N,w=true,cancelAnimationFrame($),ie=NaN,ee(N);},getProgress(){return O}}}function Ft(e){let r=e.textContent??"";return e.textContent="",r.split(/(\s+)/).filter(Boolean).map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),/^\s+$/.test(n)?(t.textContent=n,t.style.whiteSpace="pre"):(t.textContent=n,t.style.display="inline-block"),e.appendChild(t),/^\s+$/.test(n)?null:t}).filter(n=>n!==null)}function ur(e){let r=e.textContent??"";return e.textContent="",r.split("").map(n=>{let t=document.createElement("span");return t.setAttribute("aria-hidden","true"),t.textContent=n,n===" "?t.style.whiteSpace="pre":t.style.display="inline-block",e.appendChild(t),n===" "?null:t}).filter(n=>n!==null)}function Ot(e){let r=Ft(e),n=new Map;for(let o of r){let c=o.offsetTop;n.has(c)||n.set(c,[]),n.get(c).push(o);}let t=[],l=Array.from(n.keys()).sort((o,c)=>o-c);for(let o of l){let c=n.get(o),u=document.createElement("span");u.setAttribute("aria-hidden","true"),u.style.display="inline-block",c.forEach((m,p)=>{let T=m.nextElementSibling;u.appendChild(m),p<c.length-1&&T&&T.style.whiteSpace==="pre"&&u.appendChild(T);}),t.push(u);}return e.textContent="",t.forEach((o,c)=>{e.appendChild(o),c<t.length-1&&e.appendChild(document.createTextNode(" "));}),t}function mr(e,r,n,t){if(n<=1||t===0)return e;let l=(n-1)*t,o=r*t,c=o+(1-l);return c<=o?e>=o?1:0:Math.min(1,Math.max(0,(e-o)/(c-o)))}function fr(e,r){let n=[];if(r?.y!==void 0&&n.push(`translateY(${r.y*(1-e)}px)`),r?.x!==void 0&&n.push(`translateX(${r.x*(1-e)}px)`),r?.rotate!==void 0&&n.push(`rotate(${r.rotate*(1-e)}deg)`),r?.scale!==void 0){let t=r.scale+(1-r.scale)*e;n.push(`scale(${t})`);}return n.join(" ")||""}var Dt={destroy:()=>{},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>0};function Nt(e,r={}){if(typeof window>"u")return Dt;let n=typeof e=="string"?document.querySelector(e):e;if(!n)return we("scrollText: element not found:",e),Dt;let t=n,{split:l="words",stagger:o=.04,easing:c="ease-out",from:u={opacity:0,y:24},trigger:m={},once:p=true,onComplete:T}=r,z=window.matchMedia("(prefers-reduced-motion: reduce)").matches,P=typeof c=="function"?c:re[c]??re["ease-out"],ne=de(m.start??"top 85%"),$e=de(m.end??"top 40%"),B=t.innerHTML;t.setAttribute("aria-label",t.textContent??"");let J;l==="chars"?J=ur(t):l==="lines"?J=Ot(t):J=Ft(t);let X=J.length;function G(g,L){u?.opacity!==void 0&&(g.style.opacity=String(u.opacity+(1-u.opacity)*L));let S=fr(L,u);S&&(g.style.transform=S);}function A(g){t.style.setProperty("--scroll-draw-progress",String(g)),J.forEach((L,S)=>{let N=P(mr(g,S,X,o));G(L,N);});}if(z)return A(1),T?.(),{destroy(){t.innerHTML=B,t.removeAttribute("aria-label");},replay:()=>{},pause:()=>{},resume:()=>{},seek:()=>{},getProgress:()=>1};A(0);let $=0,M=0,w=0,I=false,O=false,C=-1,E=0,se=false,D=()=>window.scrollY,oe=()=>window.innerHeight;function ie(){let g=t.getBoundingClientRect(),L=xe({top:g.top,height:g.height},D(),oe(),ne,$e);$=L.tStart,M=L.tEnd;}function ee(){if(!I||O)return;let g=K(D(),$,M,1);p&&(C=Math.max(C,g),g=C),E=g,A(g),g>=1&&!se?(se=true,T?.()):g<1&&!p&&(se=false),w=requestAnimationFrame(ee);}ie();let ae=new IntersectionObserver(g=>{g.forEach(L=>{I=L.isIntersecting,I&&!O?w=requestAnimationFrame(ee):cancelAnimationFrame(w);});}),d;function x(){clearTimeout(d),d=setTimeout(()=>{if(l==="lines"){let g=E;t.innerHTML=B,t.setAttribute("aria-label",t.textContent??""),J=Ot(t),A(g);}ie();},150);}return window.addEventListener("resize",x),window.addEventListener("orientationchange",x),ae.observe(t),Le(t,{type:"text",getProgress:()=>E,getTrigger:()=>({tStart:$,tEnd:M})}),{destroy(){cancelAnimationFrame(w),ae.disconnect(),window.removeEventListener("resize",x),window.removeEventListener("orientationchange",x),clearTimeout(d),t.innerHTML=B,t.removeAttribute("aria-label"),Pe(t);},replay(){C=-1,se=false,E=0,O=false,A(0);},pause(){O=true,cancelAnimationFrame(w);},resume(){O&&(O=false,I&&(w=requestAnimationFrame(ee)));},seek(g){let L=Math.min(1,Math.max(0,g));E=L,C=L,O=true,cancelAnimationFrame(w),A(L);},getProgress(){return E}}}var Rt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=At(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Ht=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=$t(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},zt=class{constructor(){this.instance=null;}init(r,n){return this.destroy(),this.instance=Ct(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},_t=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=It(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}},Vt=class{constructor(){this.instance=null;}init(r,n={}){return this.destroy(),this.instance=Nt(r,n),this}replay(){return this.instance?.replay(),this}pause(){return this.instance?.pause(),this}resume(){return this.instance?.resume(),this}seek(r){return this.instance?.seek(r),this}getProgress(){return this.instance?.getProgress()??0}destroy(){return this.instance?.destroy(),this.instance=null,this}};export{Ht as ScrollAnimateRef,zt as ScrollCounterRef,Rt as ScrollDrawRef,Vt as ScrollTextRef,_t as ScrollVideoRef};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";var h=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Z=Object.prototype.hasOwnProperty;var j=(e,t)=>{for(var n in t)h(e,n,{get:t[n],enumerable:!0})},U=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of X(t))!Z.call(e,i)&&i!==n&&h(e,i,{get:()=>t[i],enumerable:!(o=W(t,i))||o.enumerable});return e};var K=e=>U(h({},"__esModule",{value:!0}),e);var ue={};j(ue,{AOSInit:()=>ce,useAOS:()=>G});module.exports=K(ue);var m=require("react");function $(){return typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}var J=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,...t){J&&console.warn(`[svg-scroll-draw] ${e}`,...t)}var C={offset:120,delay:0,duration:400,easing:"ease",once:!1,mirror:!1,anchorPlacement:"top-bottom",disable:!1,startEvent:"DOMContentLoaded",disableMutationObserver:!1,initClassName:"aos-init",animatedClassName:"aos-animate",useClassNames:!1,throttleDelay:99,debounceDelay:50},ee={"ease-in-back":"cubic-bezier(.6,-.28,.735,.045)","ease-out-back":"cubic-bezier(.175,.885,.32,1.275)","ease-in-out-back":"cubic-bezier(.68,-.55,.265,1.55)","ease-in-sine":"cubic-bezier(.47,0,.745,.715)","ease-out-sine":"cubic-bezier(.39,.575,.565,1)","ease-in-out-sine":"cubic-bezier(.445,.05,.55,.95)","ease-in-quad":"cubic-bezier(.55,.085,.68,.53)","ease-out-quad":"cubic-bezier(.25,.46,.45,.94)","ease-in-out-quad":"cubic-bezier(.455,.03,.515,.955)","ease-in-cubic":"cubic-bezier(.55,.055,.675,.19)","ease-out-cubic":"cubic-bezier(.215,.61,.355,1)","ease-in-out-cubic":"cubic-bezier(.645,.045,.355,1)","ease-in-quart":"cubic-bezier(.895,.03,.685,.22)","ease-out-quart":"cubic-bezier(.165,.84,.44,1)","ease-in-out-quart":"cubic-bezier(.77,0,.175,1)"},E="svg-scroll-draw-aos",r=(e,t)=>`translate3d(${e},${t},0)`,te=[["fade-up",r("0","100px")],["fade-down",r("0","-100px")],["fade-right",r("-100px","0")],["fade-left",r("100px","0")],["fade-up-right",r("-100px","100px")],["fade-up-left",r("100px","100px")],["fade-down-right",r("-100px","-100px")],["fade-down-left",r("100px","-100px")],["zoom-in","scale(.6)"],["zoom-out","scale(1.2)"],["zoom-in-up",`${r("0","100px")} scale(.6)`],["zoom-in-down",`${r("0","-100px")} scale(.6)`],["zoom-in-right",`${r("-100px","0")} scale(.6)`],["zoom-in-left",`${r("100px","0")} scale(.6)`],["zoom-out-up",`${r("0","100px")} scale(1.2)`],["zoom-out-down",`${r("0","-100px")} scale(1.2)`],["zoom-out-right",`${r("-100px","0")} scale(1.2)`],["zoom-out-left",`${r("100px","0")} scale(1.2)`],["slide-up",r("0","100%")],["slide-down",r("0","-100%")],["slide-right",r("-100%","0")],["slide-left",r("100%","0")],["flip-left","perspective(2500px) rotateY(-100deg)"],["flip-right","perspective(2500px) rotateY(100deg)"],["flip-up","perspective(2500px) rotateX(-100deg)"],["flip-down","perspective(2500px) rotateX(100deg)"]];function ne(e){let t=`.${e}`,n=o=>`[data-aos^=${o}][data-aos^=${o}]`;return["[data-aos][data-aos]{transition-duration:var(--aos-duration,400ms);transition-timing-function:var(--aos-easing,ease);transition-delay:0s}",`[data-aos][data-aos]${t}{transition-delay:var(--aos-delay,0ms)}`,`${n("fade")}{opacity:0;transition-property:opacity,transform}`,`${n("fade")}${t}{opacity:1;transform:translateZ(0)}`,`${n("zoom")}{opacity:0;transition-property:opacity,transform}`,`${n("zoom")}${t}{opacity:1;transform:translateZ(0) scale(1)}`,`${n("slide")}{transition-property:transform}`,`${n("slide")}${t}{transform:translateZ(0)}`,`${n("flip")}{backface-visibility:hidden;transition-property:transform}`,...te.map(([o,i])=>`[data-aos=${o}]{transform:${i}}`),...["left","right"].map(o=>`[data-aos=flip-${o}]${t}{transform:perspective(2500px) rotateY(0)}`),...["up","down"].map(o=>`[data-aos=flip-${o}]${t}{transform:perspective(2500px) rotateX(0)}`),"[data-aos-instant][data-aos-instant]{transition:none!important}"].join(`
|
|
3
|
+
`)}var a={...C},c=[],f=!1,p=0,L,b=null,d=null,A=!1,N=()=>typeof window<"u"&&typeof document<"u";function D(e){if(!(e instanceof HTMLElement))return e.getBoundingClientRect().top+window.scrollY;let t=0,n=e;for(;n;)t+=n.offsetTop-(n.tagName!=="BODY"?n.scrollTop:0),n=n.offsetParent;return t}var R=e=>e instanceof HTMLElement?e.offsetHeight:e.getBoundingClientRect().height;function u(e,t){return e.getAttribute(`data-aos-${t}`)}function z(e,t,n){let o=u(e,t);return o==="true"?!0:o==="false"?!1:n}function k(e,t){let n=u(e,"offset");return n&&!isNaN(Number(n))?parseInt(n,10):n||t?0:a.offset}function oe(e){let t=window.innerHeight,n=u(e,"anchor-placement"),o=k(e,n),i=u(e,"anchor"),O=i?document.querySelector(i):null;i&&!O&&M(`aos: data-aos-anchor="${i}" matches nothing; using the element itself`);let S=O||e,l=R(S),s=D(S)-t;switch(n||a.anchorPlacement){case"center-bottom":s+=l/2;break;case"bottom-bottom":s+=l;break;case"top-center":s+=t/2;break;case"center-center":s+=t/2+l/2;break;case"bottom-center":s+=t/2+l;break;case"top-top":s+=t;break;case"bottom-top":s+=t+l;break;case"center-top":s+=t+l/2;break;default:break}return s+o}function ae(e){return D(e)+R(e)-k(e,null)}function re(e){let t=u(e,"duration")??String(a.duration),n=u(e,"delay")??String(a.delay),o=u(e,"easing")??a.easing;e.style.setProperty("--aos-duration",`${parseFloat(t)||0}ms`),e.style.setProperty("--aos-delay",`${parseFloat(n)||0}ms`),e.style.setProperty("--aos-easing",ee[o]??o)}function H(){c=Array.from(document.querySelectorAll("[data-aos]")).map(e=>{let t=c.find(n=>n.node===e);return{node:e,in:0,out:0,once:z(e,"once",a.once),mirror:z(e,"mirror",a.mirror),animated:t?t.animated:e.classList.contains(a.animatedClassName),classes:a.useClassNames?(e.getAttribute("data-aos")||"").split(" ").filter(Boolean):[],id:u(e,"id")}});for(let e of c)re(e.node),e.node.classList.add(a.initClassName)}function I(){for(let e of c)e.in=oe(e.node),e.out=ae(e.node)}function q(e,t){document.dispatchEvent(new CustomEvent(`aos:${e}`,{detail:t.node})),t.id&&document.dispatchEvent(new CustomEvent(`aos:${e}:${t.id}`,{detail:t.node}))}function T(e){e.animated||(e.animated=!0,e.node.classList.add(a.animatedClassName,...e.classes),q("in",e))}function _(e){e.animated&&(e.animated=!1,e.node.classList.remove(a.animatedClassName,...e.classes),q("out",e))}function x(){p=0;let e=window.scrollY;for(let t of c){if(A){T(t);continue}t.mirror&&!t.once&&e>t.out?_(t):e>t.in?T(t):t.once||_(t)}}var P=()=>{p||(p=requestAnimationFrame(x))};function v(){clearTimeout(L),L=setTimeout(y,50)}var Q=()=>y();function F(){let e=a.disable;if(typeof e=="function")return e();if(e===!0)return!0;let t=window.innerWidth;return e==="phone"?t<768:e==="tablet"?t>=768&&t<1024:e==="mobile"?t<1024:!1}function V(){document.querySelectorAll("[data-aos]").forEach(e=>{for(let t of["data-aos","data-aos-easing","data-aos-duration","data-aos-delay"])e.removeAttribute(t)})}function ie(){if(document.getElementById(E))return;let e=document.createElement("style");e.id=E,e.textContent=ne(a.animatedClassName),document.head.appendChild(e)}function w(){if(!f){if(f=!0,d=null,H(),A)for(let e of c)e.node.setAttribute("data-aos-instant","");I(),x(),window.addEventListener("scroll",P,{passive:!0}),window.addEventListener("resize",v),window.addEventListener("orientationchange",v),window.addEventListener("load",Q),!a.disableMutationObserver&&typeof MutationObserver<"u"&&(b=new MutationObserver(e=>{e.some(n=>[...Array.from(n.addedNodes),...Array.from(n.removedNodes)].some(o=>o instanceof Element&&(o.hasAttribute("data-aos")||o.querySelector("[data-aos]"))))&&Y()}),b.observe(document.documentElement,{childList:!0,subtree:!0}))}}function se(e={}){if(!N())return[];if((f||d)&&B(),a={...C,...e},F())return V(),[];A=$(),ie();let t=document.readyState!=="loading";if(a.startEvent==="DOMContentLoaded"&&t)w();else if(a.startEvent==="load"&&document.readyState==="complete")w();else{let n=a.startEvent==="load"?window:document,o=()=>w();n.addEventListener(a.startEvent,o,{once:!0}),d={target:n,type:a.startEvent,fn:o}}return Array.from(document.querySelectorAll("[data-aos]"))}function y(){f&&(I(),x())}function Y(){if(f){if(F()){V();return}H(),y()}}function B(){if(N()){d&&d.target.removeEventListener(d.type,d.fn),d=null,cancelAnimationFrame(p),p=0,clearTimeout(L),window.removeEventListener("scroll",P),window.removeEventListener("resize",v),window.removeEventListener("orientationchange",v),window.removeEventListener("load",Q),b?.disconnect(),b=null;for(let e of c)e.node.removeAttribute("data-aos-instant");c=[],f=!1,document.getElementById(E)?.remove()}}var de={init:se,refresh:y,refreshHard:Y,destroy:B},g=de;function G(e={},t){let n=(0,m.useRef)(e);n.current=e,(0,m.useEffect)(()=>(g.init(n.current),()=>g.destroy()),[]);let o=(0,m.useRef)(!0);(0,m.useEffect)(()=>{if(o.current){o.current=!1;return}g.refreshHard()},[t])}function ce({refreshKey:e,...t}){return G(t,e),null}0&&(module.exports={AOSInit,useAOS});
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{useEffect as Y,useRef as B}from"react";function O(){return typeof window>"u"||typeof window.matchMedia!="function"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}var G=typeof __SVG_SCROLL_DRAW_DEV__<"u"?__SVG_SCROLL_DRAW_DEV__:typeof process<"u"&&typeof process.env<"u"&&process.env.NODE_ENV!=="production";function S(e,...t){G&&console.warn(`[svg-scroll-draw] ${e}`,...t)}var T={offset:120,delay:0,duration:400,easing:"ease",once:!1,mirror:!1,anchorPlacement:"top-bottom",disable:!1,startEvent:"DOMContentLoaded",disableMutationObserver:!1,initClassName:"aos-init",animatedClassName:"aos-animate",useClassNames:!1,throttleDelay:99,debounceDelay:50},W={"ease-in-back":"cubic-bezier(.6,-.28,.735,.045)","ease-out-back":"cubic-bezier(.175,.885,.32,1.275)","ease-in-out-back":"cubic-bezier(.68,-.55,.265,1.55)","ease-in-sine":"cubic-bezier(.47,0,.745,.715)","ease-out-sine":"cubic-bezier(.39,.575,.565,1)","ease-in-out-sine":"cubic-bezier(.445,.05,.55,.95)","ease-in-quad":"cubic-bezier(.55,.085,.68,.53)","ease-out-quad":"cubic-bezier(.25,.46,.45,.94)","ease-in-out-quad":"cubic-bezier(.455,.03,.515,.955)","ease-in-cubic":"cubic-bezier(.55,.055,.675,.19)","ease-out-cubic":"cubic-bezier(.215,.61,.355,1)","ease-in-out-cubic":"cubic-bezier(.645,.045,.355,1)","ease-in-quart":"cubic-bezier(.895,.03,.685,.22)","ease-out-quart":"cubic-bezier(.165,.84,.44,1)","ease-in-out-quart":"cubic-bezier(.77,0,.175,1)"},h="svg-scroll-draw-aos",r=(e,t)=>`translate3d(${e},${t},0)`,X=[["fade-up",r("0","100px")],["fade-down",r("0","-100px")],["fade-right",r("-100px","0")],["fade-left",r("100px","0")],["fade-up-right",r("-100px","100px")],["fade-up-left",r("100px","100px")],["fade-down-right",r("-100px","-100px")],["fade-down-left",r("100px","-100px")],["zoom-in","scale(.6)"],["zoom-out","scale(1.2)"],["zoom-in-up",`${r("0","100px")} scale(.6)`],["zoom-in-down",`${r("0","-100px")} scale(.6)`],["zoom-in-right",`${r("-100px","0")} scale(.6)`],["zoom-in-left",`${r("100px","0")} scale(.6)`],["zoom-out-up",`${r("0","100px")} scale(1.2)`],["zoom-out-down",`${r("0","-100px")} scale(1.2)`],["zoom-out-right",`${r("-100px","0")} scale(1.2)`],["zoom-out-left",`${r("100px","0")} scale(1.2)`],["slide-up",r("0","100%")],["slide-down",r("0","-100%")],["slide-right",r("-100%","0")],["slide-left",r("100%","0")],["flip-left","perspective(2500px) rotateY(-100deg)"],["flip-right","perspective(2500px) rotateY(100deg)"],["flip-up","perspective(2500px) rotateX(-100deg)"],["flip-down","perspective(2500px) rotateX(100deg)"]];function Z(e){let t=`.${e}`,n=o=>`[data-aos^=${o}][data-aos^=${o}]`;return["[data-aos][data-aos]{transition-duration:var(--aos-duration,400ms);transition-timing-function:var(--aos-easing,ease);transition-delay:0s}",`[data-aos][data-aos]${t}{transition-delay:var(--aos-delay,0ms)}`,`${n("fade")}{opacity:0;transition-property:opacity,transform}`,`${n("fade")}${t}{opacity:1;transform:translateZ(0)}`,`${n("zoom")}{opacity:0;transition-property:opacity,transform}`,`${n("zoom")}${t}{opacity:1;transform:translateZ(0) scale(1)}`,`${n("slide")}{transition-property:transform}`,`${n("slide")}${t}{transform:translateZ(0)}`,`${n("flip")}{backface-visibility:hidden;transition-property:transform}`,...X.map(([o,u])=>`[data-aos=${o}]{transform:${u}}`),...["left","right"].map(o=>`[data-aos=flip-${o}]${t}{transform:perspective(2500px) rotateY(0)}`),...["up","down"].map(o=>`[data-aos=flip-${o}]${t}{transform:perspective(2500px) rotateX(0)}`),"[data-aos-instant][data-aos-instant]{transition:none!important}"].join(`
|
|
3
|
+
`)}var a={...T},d=[],f=!1,m=0,w,p=null,s=null,E=!1,_=()=>typeof window<"u"&&typeof document<"u";function C(e){if(!(e instanceof HTMLElement))return e.getBoundingClientRect().top+window.scrollY;let t=0,n=e;for(;n;)t+=n.offsetTop-(n.tagName!=="BODY"?n.scrollTop:0),n=n.offsetParent;return t}var N=e=>e instanceof HTMLElement?e.offsetHeight:e.getBoundingClientRect().height;function c(e,t){return e.getAttribute(`data-aos-${t}`)}function $(e,t,n){let o=c(e,t);return o==="true"?!0:o==="false"?!1:n}function D(e,t){let n=c(e,"offset");return n&&!isNaN(Number(n))?parseInt(n,10):n||t?0:a.offset}function j(e){let t=window.innerHeight,n=c(e,"anchor-placement"),o=D(e,n),u=c(e,"anchor"),A=u?document.querySelector(u):null;u&&!A&&S(`aos: data-aos-anchor="${u}" matches nothing; using the element itself`);let x=A||e,l=N(x),i=C(x)-t;switch(n||a.anchorPlacement){case"center-bottom":i+=l/2;break;case"bottom-bottom":i+=l;break;case"top-center":i+=t/2;break;case"center-center":i+=t/2+l/2;break;case"bottom-center":i+=t/2+l;break;case"top-top":i+=t;break;case"bottom-top":i+=t+l;break;case"center-top":i+=t+l/2;break;default:break}return i+o}function U(e){return C(e)+N(e)-D(e,null)}function K(e){let t=c(e,"duration")??String(a.duration),n=c(e,"delay")??String(a.delay),o=c(e,"easing")??a.easing;e.style.setProperty("--aos-duration",`${parseFloat(t)||0}ms`),e.style.setProperty("--aos-delay",`${parseFloat(n)||0}ms`),e.style.setProperty("--aos-easing",W[o]??o)}function R(){d=Array.from(document.querySelectorAll("[data-aos]")).map(e=>{let t=d.find(n=>n.node===e);return{node:e,in:0,out:0,once:$(e,"once",a.once),mirror:$(e,"mirror",a.mirror),animated:t?t.animated:e.classList.contains(a.animatedClassName),classes:a.useClassNames?(e.getAttribute("data-aos")||"").split(" ").filter(Boolean):[],id:c(e,"id")}});for(let e of d)K(e.node),e.node.classList.add(a.initClassName)}function k(){for(let e of d)e.in=j(e.node),e.out=U(e.node)}function H(e,t){document.dispatchEvent(new CustomEvent(`aos:${e}`,{detail:t.node})),t.id&&document.dispatchEvent(new CustomEvent(`aos:${e}:${t.id}`,{detail:t.node}))}function M(e){e.animated||(e.animated=!0,e.node.classList.add(a.animatedClassName,...e.classes),H("in",e))}function z(e){e.animated&&(e.animated=!1,e.node.classList.remove(a.animatedClassName,...e.classes),H("out",e))}function L(){m=0;let e=window.scrollY;for(let t of d){if(E){M(t);continue}t.mirror&&!t.once&&e>t.out?z(t):e>t.in?M(t):t.once||z(t)}}var I=()=>{m||(m=requestAnimationFrame(L))};function b(){clearTimeout(w),w=setTimeout(v,50)}var q=()=>v();function P(){let e=a.disable;if(typeof e=="function")return e();if(e===!0)return!0;let t=window.innerWidth;return e==="phone"?t<768:e==="tablet"?t>=768&&t<1024:e==="mobile"?t<1024:!1}function Q(){document.querySelectorAll("[data-aos]").forEach(e=>{for(let t of["data-aos","data-aos-easing","data-aos-duration","data-aos-delay"])e.removeAttribute(t)})}function J(){if(document.getElementById(h))return;let e=document.createElement("style");e.id=h,e.textContent=Z(a.animatedClassName),document.head.appendChild(e)}function g(){if(!f){if(f=!0,s=null,R(),E)for(let e of d)e.node.setAttribute("data-aos-instant","");k(),L(),window.addEventListener("scroll",I,{passive:!0}),window.addEventListener("resize",b),window.addEventListener("orientationchange",b),window.addEventListener("load",q),!a.disableMutationObserver&&typeof MutationObserver<"u"&&(p=new MutationObserver(e=>{e.some(n=>[...Array.from(n.addedNodes),...Array.from(n.removedNodes)].some(o=>o instanceof Element&&(o.hasAttribute("data-aos")||o.querySelector("[data-aos]"))))&&F()}),p.observe(document.documentElement,{childList:!0,subtree:!0}))}}function ee(e={}){if(!_())return[];if((f||s)&&V(),a={...T,...e},P())return Q(),[];E=O(),J();let t=document.readyState!=="loading";if(a.startEvent==="DOMContentLoaded"&&t)g();else if(a.startEvent==="load"&&document.readyState==="complete")g();else{let n=a.startEvent==="load"?window:document,o=()=>g();n.addEventListener(a.startEvent,o,{once:!0}),s={target:n,type:a.startEvent,fn:o}}return Array.from(document.querySelectorAll("[data-aos]"))}function v(){f&&(k(),L())}function F(){if(f){if(P()){Q();return}R(),v()}}function V(){if(_()){s&&s.target.removeEventListener(s.type,s.fn),s=null,cancelAnimationFrame(m),m=0,clearTimeout(w),window.removeEventListener("scroll",I),window.removeEventListener("resize",b),window.removeEventListener("orientationchange",b),window.removeEventListener("load",q),p?.disconnect(),p=null;for(let e of d)e.node.removeAttribute("data-aos-instant");d=[],f=!1,document.getElementById(h)?.remove()}}var te={init:ee,refresh:v,refreshHard:F,destroy:V},y=te;function ne(e={},t){let n=B(e);n.current=e,Y(()=>(y.init(n.current),()=>y.destroy()),[]);let o=B(!0);Y(()=>{if(o.current){o.current=!1;return}y.refreshHard()},[t])}function ue({refreshKey:e,...t}){return ne(t,e),null}export{ue as AOSInit,ne as useAOS};
|