@ssgoi/core 2.1.2 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -11
- package/dist/animator.d.ts.map +1 -1
- package/dist/create-ssgoi-transition-context.d.ts.map +1 -1
- package/dist/create-transition-callback.d.ts.map +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.js +326 -212
- package/dist/transition-strategy.d.ts +5 -0
- package/dist/transition-strategy.d.ts.map +1 -1
- package/dist/transition.d.ts.map +1 -1
- package/dist/transitions/blur.d.ts.map +1 -1
- package/dist/transitions/bounce.d.ts +1 -1
- package/dist/transitions/bounce.d.ts.map +1 -1
- package/dist/transitions/fly.d.ts.map +1 -1
- package/dist/transitions/index.cjs +1 -1
- package/dist/transitions/index.d.ts +1 -0
- package/dist/transitions/index.d.ts.map +1 -1
- package/dist/transitions/index.js +199 -142
- package/dist/transitions/mask.d.ts +31 -0
- package/dist/transitions/mask.d.ts.map +1 -0
- package/dist/transitions/none.d.ts +4 -4
- package/dist/transitions/none.d.ts.map +1 -1
- package/dist/transitions/rotate.d.ts +1 -1
- package/dist/transitions/scale.d.ts +1 -1
- package/dist/transitions/slide.d.ts +2 -2
- package/dist/transitions/slide.d.ts.map +1 -1
- package/dist/types.d.ts +31 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/get-positioned-parent.d.ts +7 -0
- package/dist/utils/get-positioned-parent.d.ts.map +1 -0
- package/dist/utils/get-rect.d.ts +7 -0
- package/dist/utils/get-rect.d.ts.map +1 -0
- package/dist/utils/get-scrolling-element.d.ts +6 -0
- package/dist/utils/get-scrolling-element.d.ts.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/parse-caller-location.d.ts +6 -0
- package/dist/utils/parse-caller-location.d.ts.map +1 -0
- package/dist/utils/prepare-outgoing.d.ts +6 -0
- package/dist/utils/prepare-outgoing.d.ts.map +1 -0
- package/dist/utils/sleep.d.ts +7 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/view-transitions/blind.d.ts +13 -0
- package/dist/view-transitions/blind.d.ts.map +1 -0
- package/dist/view-transitions/fade.d.ts.map +1 -1
- package/dist/view-transitions/film.d.ts +8 -0
- package/dist/view-transitions/film.d.ts.map +1 -0
- package/dist/view-transitions/hero.d.ts.map +1 -1
- package/dist/view-transitions/index.cjs +35 -1
- package/dist/view-transitions/index.d.ts +3 -0
- package/dist/view-transitions/index.d.ts.map +1 -1
- package/dist/view-transitions/index.js +448 -202
- package/dist/view-transitions/pinterest.d.ts.map +1 -1
- package/dist/view-transitions/slide.d.ts +8 -0
- package/dist/view-transitions/slide.d.ts.map +1 -0
- package/package.json +15 -8
- package/dist/utils-8Eptbv7c.cjs +0 -2
- package/dist/utils-DTRMUQW4.js +0 -31
- package/dist/view-transitions/ripple.d.ts +0 -7
- package/dist/view-transitions/ripple.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -73,12 +73,12 @@ Define different transitions for different routes:
|
|
|
73
73
|
```tsx
|
|
74
74
|
const config = {
|
|
75
75
|
transitions: [
|
|
76
|
-
//
|
|
77
|
-
{ from: '/home', to: '/about', transition:
|
|
78
|
-
{ from: '/about', to: '/home', transition:
|
|
76
|
+
// Scroll between tabs
|
|
77
|
+
{ from: '/home', to: '/about', transition: scroll({ direction: 'up' }) },
|
|
78
|
+
{ from: '/about', to: '/home', transition: scroll({ direction: 'down' }) },
|
|
79
79
|
|
|
80
|
-
//
|
|
81
|
-
{ from: '/products', to: '/products/*', transition:
|
|
80
|
+
// Drill in when entering details
|
|
81
|
+
{ from: '/products', to: '/products/*', transition: drill({ direction: 'enter' }) },
|
|
82
82
|
|
|
83
83
|
// Pinterest-style image transitions
|
|
84
84
|
{ from: '/gallery', to: '/photo/*', transition: pinterest() }
|
|
@@ -95,7 +95,7 @@ Automatically create bidirectional transitions:
|
|
|
95
95
|
{
|
|
96
96
|
from: '/home',
|
|
97
97
|
to: '/about',
|
|
98
|
-
transition:
|
|
98
|
+
transition: scroll({ direction: 'up' }),
|
|
99
99
|
symmetric: true // Automatically creates reverse transition
|
|
100
100
|
}
|
|
101
101
|
```
|
|
@@ -125,11 +125,10 @@ function Card() {
|
|
|
125
125
|
|
|
126
126
|
### Page Transitions
|
|
127
127
|
- `fade` - Smooth opacity transition
|
|
128
|
-
- `
|
|
129
|
-
- `
|
|
128
|
+
- `scroll` - Vertical scrolling (up/down)
|
|
129
|
+
- `drill` - Drill in/out effect (enter/exit)
|
|
130
130
|
- `hero` - Shared element transitions
|
|
131
131
|
- `pinterest` - Pinterest-style expand effect
|
|
132
|
-
- `ripple` - Material Design ripple effect
|
|
133
132
|
|
|
134
133
|
### Element Transitions
|
|
135
134
|
- `fadeIn` / `fadeOut`
|
|
@@ -146,14 +145,14 @@ function Card() {
|
|
|
146
145
|
```tsx
|
|
147
146
|
// app/layout.tsx
|
|
148
147
|
import { Ssgoi } from '@ssgoi/react';
|
|
149
|
-
import {
|
|
148
|
+
import { scroll } from '@ssgoi/react/view-transitions';
|
|
150
149
|
|
|
151
150
|
export default function RootLayout({ children }) {
|
|
152
151
|
return (
|
|
153
152
|
<html>
|
|
154
153
|
<body>
|
|
155
154
|
<Ssgoi config={{
|
|
156
|
-
defaultTransition:
|
|
155
|
+
defaultTransition: scroll({ direction: 'up' })
|
|
157
156
|
}}>
|
|
158
157
|
<div style={{ position: 'relative', minHeight: '100vh' }}>
|
|
159
158
|
{children}
|
package/dist/animator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animator.d.ts","sourceRoot":"","sources":["../src/lib/animator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"animator.d.ts","sourceRoot":"","sources":["../src/lib/animator.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,WAAW,gBAAgB,CAAC,eAAe,GAAG,MAAM;IACxD,IAAI,EAAE,eAAe,CAAC;IACtB,EAAE,EAAE,eAAe,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC3C,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;GAMG;AACH,qBAAa,QAAQ,CAAC,eAAe,GAAG,MAAM;IAC5C,OAAO,CAAC,OAAO,CAAoC;IACnD,OAAO,CAAC,YAAY,CAAkB;IACtC,OAAO,CAAC,QAAQ,CAEW;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAqC;IAGrD,OAAO,CAAC,YAAY,CAAkD;IACtE,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,iBAAiB,CAAqB;gBAElC,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC;IA2B/D,OAAO,CAAC,OAAO,CA+Fb;IAEF,OAAO,CAAC,aAAa,CAoHnB;IAGF,OAAO,IAAI,IAAI;IAKf,QAAQ,IAAI,IAAI;IAKhB,OAAO,IAAI,IAAI;IAcf,OAAO,CAAC,aAAa;IAYrB,IAAI,IAAI,IAAI;IAyBZ,WAAW,IAAI,eAAe,SAAS,MAAM,GACzC,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAI1B,eAAe,IAAI,eAAe;IAIlC,cAAc,IAAI,OAAO;IAIzB,eAAe,IAAI;QACjB,QAAQ,EAAE,eAAe,CAAC;QAC1B,QAAQ,EAAE,eAAe,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3E,IAAI,EAAE,eAAe,CAAC;QACtB,EAAE,EAAE,eAAe,CAAC;KACrB;IAUD,WAAW,CACT,QAAQ,EAAE,eAAe,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACzE,IAAI;IAIP,QAAQ,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAKtC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,GAAG,IAAI;IAY3E,MAAM,CAAC,SAAS,CAAC,eAAe,GAAG,MAAM,EACvC,KAAK,EAAE;QACL,QAAQ,EAAE,eAAe,CAAC;QAC1B,QAAQ,EAAE,eAAe,SAAS,MAAM,GACpC,MAAM,GACN,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC5B,EACD,UAAU,EAAE,OAAO,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAC,GACrD,QAAQ,CAAC,eAAe,CAAC;CAM7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-ssgoi-transition-context.d.ts","sourceRoot":"","sources":["../src/lib/create-ssgoi-transition-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAGb,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"create-ssgoi-transition-context.d.ts","sourceRoot":"","sources":["../src/lib/create-ssgoi-transition-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EAGb,MAAM,SAAS,CAAC;AA6IjB;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,WAAW,GACnB,YAAY,CAwId"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-transition-callback.d.ts","sourceRoot":"","sources":["../src/lib/create-transition-callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE9D,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAExB,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,wBAAwB,CAAC,eAAe,GAAG,MAAM,EAC/D,aAAa,EAAE,MAAM,UAAU,CAAC,SAAS,EAAE,eAAe,CAAC,EAC3D,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"create-transition-callback.d.ts","sourceRoot":"","sources":["../src/lib/create-transition-callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE9D,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,kBAAkB,EAExB,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,wBAAwB,CAAC,eAAe,GAAG,MAAM,EAC/D,aAAa,EAAE,MAAM,UAAU,CAAC,SAAS,EAAE,eAAe,CAAC,EAC3D,OAAO,CAAC,EAAE;IACR,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,QAAQ,CAAC,EAAE,CACT,OAAO,EAAE,eAAe,CAAC,eAAe,CAAC,KACtC,kBAAkB,CAAC,eAAe,CAAC,CAAC;CAC1C,GACA,kBAAkB,CA0IpB"}
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var N=Object.defineProperty;var D=(n,t,o)=>t in n?N(n,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):n[t]=o;var y=(n,t,o)=>D(n,typeof t!="symbol"?t+"":t,o);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("popmotion");class C{constructor(t){y(this,"options");y(this,"currentValue");y(this,"velocity");y(this,"isAnimating",!1);y(this,"controls",null);y(this,"animationMap",null);y(this,"activeAnimations",new Set);y(this,"completedAnimations",new Set);y(this,"updatedProperties",new Set);y(this,"animate",(t=!1)=>{!this.isAnimating&&this.options.onStart&&this.options.onStart(),this.isAnimating=!0;const o=t?this.options.from:this.options.to;if(typeof this.currentValue=="object"&&this.currentValue!==null){this.animateObject(o);return}let e=this.currentValue,i=performance.now();const m={from:this.currentValue,to:o,stiffness:this.options.spring.stiffness,damping:this.options.spring.damping,mass:1};typeof this.velocity=="number"&&(m.velocity=this.velocity*1e3),this.controls=R.animate({...m,onUpdate:l=>{const p=performance.now(),r=(p-i)/1e3;if(r>0){if(typeof l=="number"&&typeof e=="number"){const u=(l-e)/r;this.velocity=u/1e3}else if(typeof l=="object"&&l!==null){const u={};Object.keys(l).forEach(f=>{const c=l[f],a=e[f];if(typeof c=="number"&&typeof a=="number"){const h=(c-a)/r;u[f]=h/1e3}}),this.velocity=u}e=l,i=p}this.currentValue=l,this.options.onUpdate(l)},onComplete:()=>{this.currentValue=o,this.isAnimating=!1,this.controls=null,typeof this.velocity=="object"&&this.velocity!==null?Object.keys(this.velocity).forEach(l=>{this.velocity[l]=0}):this.velocity=0,this.options.onComplete()}})});y(this,"animateObject",t=>{const o=this.currentValue,e=Object.keys(o);this.animationMap=new Map,this.activeAnimations.clear(),this.completedAnimations.clear(),this.updatedProperties.clear();const i={...o},m={};let l=!1;const p=()=>{const r=e.filter(f=>!this.completedAnimations.has(f));if(r.every(f=>this.updatedProperties.has(f))&&r.length>0){if(typeof this.velocity=="object"&&this.velocity){const f=performance.now();Object.keys(i).forEach(c=>{if(m[c]){const a=(f-m[c])/1e3,h=this.currentValue[c],s=i[c];typeof h=="number"&&typeof s=="number"&&a>0&&(this.velocity[c]=(s-h)/a/1e3)}m[c]=f})}this.currentValue={...i},this.options.onUpdate(this.currentValue),this.updatedProperties.clear(),!l&&this.options.onStart&&(l=!0,this.options.onStart())}};e.forEach(r=>{this.activeAnimations.add(r);const u={from:o[r],to:t[r],stiffness:this.options.spring.stiffness,damping:this.options.spring.damping,mass:1};typeof this.velocity=="object"&&this.velocity&&r in this.velocity&&(u.velocity=this.velocity[r]*1e3);const f=R.animate({...u,onUpdate:c=>{i[r]=c,this.updatedProperties.add(r),p()},onComplete:()=>{this.completedAnimations.add(r),this.updatedProperties.delete(r),this.completedAnimations.size===e.length&&(this.currentValue=t,this.isAnimating=!1,this.animationMap=null,typeof this.velocity=="object"&&this.velocity&&Object.keys(this.velocity).forEach(c=>{this.velocity[c]=0}),this.options.onComplete())}});this.animationMap.set(r,f)})});if(this.options={from:t.from??0,to:t.to??1,spring:t.spring??{stiffness:100,damping:10},onUpdate:t.onUpdate??(()=>{}),onComplete:t.onComplete??(()=>{}),onStart:t.onStart},this.currentValue=this.options.from,typeof this.options.from=="object"&&this.options.from!==null){const o={};Object.keys(this.options.from).forEach(e=>{o[e]=0}),this.velocity=o}else this.velocity=0}forward(){this.stop(),this.animate(!1)}backward(){this.stop(),this.animate(!0)}reverse(){const t=this.options.from;if(this.options.from=this.options.to,this.options.to=t,this.isAnimating){const o=this.shouldReverse();this.stop(),this.animate(!o)}}shouldReverse(){return typeof this.currentValue=="number"&&typeof this.options.from=="number"&&typeof this.options.to=="number"?this.currentValue>(this.options.from+this.options.to)/2:!1}stop(){this.isAnimating=!1,this.controls&&(this.controls.stop(),this.controls=null),this.animationMap&&(this.animationMap.forEach(t=>{t.stop()}),this.animationMap.clear(),this.animationMap=null),this.updatedProperties.clear()}getVelocity(){return this.velocity}getCurrentValue(){return this.currentValue}getIsAnimating(){return this.isAnimating}getCurrentState(){return{position:this.currentValue,velocity:this.velocity,from:this.options.from,to:this.options.to}}setVelocity(t){this.velocity=t}setValue(t){this.currentValue=t}updateOptions(t){if(this.options={...this.options,...t},this.isAnimating&&this.controls){const o=this.shouldReverse();this.stop(),this.animate(!o)}}static fromState(t,o){const e=new C(o);return e.setValue(t.position),e.setVelocity(t.velocity),e}}const E=Symbol.for("TRANSITION_STRATEGY"),x=n=>({runIn:async t=>{const{currentAnimation:o}=n;if(o&&o.direction==="out"){const l=o.animator.getCurrentState();if(o.animator.stop(),t.out){const p=await t.out,{from:r=1,to:u=0}=p;return{config:p,state:l,from:r,to:u,direction:"backward"}}}const e=await t.in;if(!e)return{state:{position:0,velocity:0},from:0,to:1,direction:"forward"};const{from:i=0,to:m=1}=e;return{config:e,state:{position:i,velocity:0},from:i,to:m,direction:"forward"}},runOut:async t=>{const{currentAnimation:o}=n;if(o&&o.direction==="in"){const l=o.animator.getCurrentState();if(o.animator.stop(),t.in){const p=await t.in,{from:r=0,to:u=1}=p;return{config:p,state:{position:l.position,velocity:l.velocity},from:r,to:u,direction:"backward"}}}const e=await t.out;if(!e)return{state:{position:1,velocity:0},from:1,to:0,direction:"forward"};const{from:i=1,to:m=0}=e;return{config:e,state:{position:i,velocity:0},from:i,to:m,direction:"forward"}}}),U=()=>({runIn:async n=>{const t=await n.in;if(!t)return{state:{position:0,velocity:0},from:0,to:1,direction:"forward"};const{from:o=0,to:e=1}=t;return{config:t,state:{position:o,velocity:0},from:o,to:e,direction:"forward"}},runOut:async n=>{const t=await n.out;if(!t)return{state:{position:1,velocity:0},from:1,to:0,direction:"forward"};const{from:o=1,to:e=0}=t;return{config:t,state:{position:o,velocity:0},from:o,to:e,direction:"forward"}}});function k(n,t){var f;let o=null,e=null,i=null,m=null;const l={get currentAnimation(){return o}},p=((f=t==null?void 0:t.strategy)==null?void 0:f.call(t,l))||x(l),r=async c=>{var w,S;e&&(e.remove(),e=null);const a=n(),h={in:a.in&&Promise.resolve(a.in(c)),out:a.out&&Promise.resolve(a.out(c))},s=await p.runIn(h);if(!s.config)return;(S=(w=s.config).prepare)==null||S.call(w,c),s.config.wait&&await s.config.wait();const g=C.fromState(s.state,{from:s.from,to:s.to,spring:s.config.spring,onStart:s.config.onStart,onUpdate:s.config.tick,onComplete:()=>{var v,d;o=null,(d=(v=s.config)==null?void 0:v.onEnd)==null||d.call(v)}});o={animator:g,direction:"in"},s.direction==="forward"?g.forward():g.backward()},u=async c=>{var S,v;e=c;const a=n(),h={in:a.in&&Promise.resolve(a.in(c)),out:a.out&&Promise.resolve(a.out(c))},s=await p.runOut(h);if(!s.config)return;(v=(S=s.config).prepare)==null||v.call(S,c),w(),s.config.wait&&await s.config.wait();const g=C.fromState(s.state,{from:s.from,to:s.to,spring:s.config.spring,onStart:s.config.onStart,onUpdate:s.config.tick,onComplete:()=>{var d,V,P;(V=(d=s.config)==null?void 0:d.onEnd)==null||V.call(d),e&&(e.remove(),e=null),o=null,(P=t==null?void 0:t.onCleanupEnd)==null||P.call(t)}});o={animator:g,direction:"out"},s.direction==="forward"?g.forward():g.backward();function w(){!i||!e||(m&&i.contains(m)?i.insertBefore(e,m):i.appendChild(e))}};return c=>{if(c)return i=c.parentElement,m=c.nextElementSibling,r(c),()=>{const a=c.cloneNode(!0);u(a)}}}const K=3,$=n=>{if(!n)return null;const t=n.split(`
|
|
2
|
+
`).map(o=>o.trim());for(let o=K;o<Math.min(t.length,6);o++){const e=t[o],i=e==null?void 0:e.match(/\(?([^):]+):(\d+):(\d+)\)?$/);if(!i)continue;const m=i[1]??"",l=i[2]??"0",p=i[3]??"0";return{file:m.split(/[\\/]/).pop()||m,line:l,column:p}}return null},A=new Map,T=new Map;function F(n,t,o){A.set(n,t);let e=T.get(n);return e||(e=k(()=>{const i=A.get(n);return i||(console.warn(`Transition "${String(n)}" not found`),{})},{strategy:o,onCleanupEnd:()=>_(n)}),T.set(n,e),e)}function _(n){A.delete(n),T.delete(n)}function I(){const n=$(new Error().stack);return n?`auto_${n.file}_${n.line}_${n.column}`:Symbol(`ssgoi_auto_${Date.now()}`)}const O=globalThis.FinalizationRegistry,j=O?new O(n=>{try{_(n)}catch{}}):void 0;function W(n){const t=n.key??I();if(n.ref&&j)try{j.register(n.ref,t)}catch{}return F(t,{in:n.in,out:n.out},n[E])}const L=n=>{let t=n.parentElement;for(;t&&t!==document.body;){const o=window.getComputedStyle(t),e=o.overflow+o.overflowY+o.overflowX;if(e.includes("auto")||e.includes("scroll")||t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth)return t;t=t.parentElement}return document.documentElement},M=n=>{let t=n.parentElement;for(;t&&t!==document.body;){const o=window.getComputedStyle(t).position;if(o==="relative"||o==="absolute"||o==="fixed"||o==="sticky")return t;t=t.parentElement}return document.body};function Y(n){const t=n.filter(o=>o.symmetric).map(o=>({from:o.to,to:o.from,transition:o.transition}));return[...n,...t]}function z(){let n=null;const t=new Map;let o=null;const e=()=>{n&&o&&t.set(o,{x:n.scrollLeft,y:n.scrollTop})};return{startScrollTracking:(r,u)=>{n||(n=L(r),(n===document.documentElement?window:n).addEventListener("scroll",e,{passive:!0})),o=u},calculateScrollOffset:(r,u)=>{const f=r&&t.has(r)?t.get(r):{x:0,y:0},c=u&&t.has(u)?t.get(u):{x:0,y:0};return{x:-c.x+f.x,y:-c.y+f.y}},getScrollContainer:()=>n,getScrollPosition:r=>r&&t.has(r)?t.get(r):{x:0,y:0}}}function G(n){const{transitions:t=[],defaultTransition:o,middleware:e=(a,h)=>({from:a,to:h})}=n;let i=null;const m=Y(t),{startScrollTracking:l,calculateScrollOffset:p,getScrollContainer:r,getScrollPosition:u}=z();function f(){if(i!=null&&i.from&&(i!=null&&i.to)){const{from:a,to:h}=e(i.from,i.to),g=H(a,h,m)||o,w=p(i.from,i.to),S={scrollOffset:w,scroll:u(i.from),get scrollingElement(){return r()||document.documentElement},get positionedParent(){const d=r();return d?M(d):document.body}},v={scrollOffset:w,scroll:u(i.to),get scrollingElement(){return r()||document.documentElement},get positionedParent(){const d=r();return d?M(d):document.body}};g&&(g.out&&i.outResolve&&i.outResolve(d=>g.out(d,S)),g.in&&i.inResolve&&i.inResolve(d=>g.in(d,v))),i=null}}const c=async(a,h)=>h==="in"&&(!i||!i.from)?()=>({}):(i||(i={}),h==="out"?(i.from=a,new Promise(s=>{i.outResolve=s,f()})):(i.to=a,new Promise(s=>{i.inResolve=s,f()})));return a=>({key:a,in:async h=>(l(h,a),(await c(a,"in"))(h)),out:async h=>(await c(a,"out"))(h),[E]:U})}function H(n,t,o){for(const e of o)if(b(n,e.from)&&b(t,e.to))return e.transition;for(const e of o)if((e.from==="*"||b(n,e.from))&&(e.to==="*"||b(t,e.to)))return e.transition;return null}function b(n,t){if(t==="*")return!0;if(t.endsWith("/*")){const o=t.slice(0,-2);return n===o||n.startsWith(o+"/")}return n===t}exports.TRANSITION_STRATEGY=E;exports.createDefaultStrategy=x;exports.createPageTransitionStrategy=U;exports.createSggoiTransitionContext=G;exports.generateAutoKey=I;exports.transition=W;
|