@ssgoi/core 6.4.0 → 6.5.0-beta.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.
Files changed (30) hide show
  1. package/README.md +73 -125
  2. package/dist/index.cjs +13 -13
  3. package/dist/index.js +792 -717
  4. package/dist/internal.cjs +1 -1
  5. package/dist/internal.js +447 -340
  6. package/dist/ssgoi-transition/create-ssgoi-transition-context.d.ts.map +1 -1
  7. package/dist/ssgoi-transition/unmount-observer.d.ts.map +1 -1
  8. package/dist/ssgoi-transition/visibility-observer.d.ts +66 -0
  9. package/dist/ssgoi-transition/visibility-observer.d.ts.map +1 -0
  10. package/dist/transitions/axis/provider/x/fluid.d.ts.map +1 -1
  11. package/dist/transitions/axis/provider/x/snappy.d.ts.map +1 -1
  12. package/dist/transitions/axis/provider/y/directional.d.ts.map +1 -1
  13. package/dist/transitions/axis/provider/y/non-directional.d.ts.map +1 -1
  14. package/dist/transitions/axis/provider/z/directional.d.ts.map +1 -1
  15. package/dist/transitions/axis/provider/z/non-directional.d.ts.map +1 -1
  16. package/dist/transitions/axis/transition.d.ts.map +1 -1
  17. package/dist/transitions/blind/transition.d.ts +1 -0
  18. package/dist/transitions/blind/transition.d.ts.map +1 -1
  19. package/dist/transitions/drill/transition.d.ts.map +1 -1
  20. package/dist/transitions/fade/transition.d.ts.map +1 -1
  21. package/dist/transitions/film/transition.d.ts.map +1 -1
  22. package/dist/transitions/hero/provider/chrome/static.d.ts.map +1 -1
  23. package/dist/transitions/jaemin/transition.d.ts.map +1 -1
  24. package/dist/transitions/rotate/transition.d.ts.map +1 -1
  25. package/dist/transitions/scroll/transition.d.ts.map +1 -1
  26. package/dist/transitions/sheet/transition.d.ts.map +1 -1
  27. package/dist/transitions/slide/transition.d.ts.map +1 -1
  28. package/dist/transitions/strip/transition.d.ts.map +1 -1
  29. package/dist/transitions/zoom/transition.d.ts.map +1 -1
  30. package/package.json +1 -1
package/dist/internal.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var mt=Object.defineProperty;var ht=(t,n,e)=>n in t?mt(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var F=(t,n,e)=>ht(t,typeof n!="symbol"?n+"":n,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("./multi-animation-Dw2JTJI2.cjs");class lt extends z.Animation{constructor(){super(...arguments);F(this,"child",null);F(this,"_state","idle");F(this,"_settled",!1);F(this,"listeners",new Set)}attach(e){const o=this.child;if(this.child=e,this._settled=!1,o){const l=o.getPose();o.complete(),e.matchInto(l)}e.playbackRate=this.playbackRate;const i=e.onComplete;e.onComplete=()=>{i==null||i(),this.child===e&&(this.child=null,this._state="idle",this._settled=!0),this.notify()};const f=e.onUpdate;e.onUpdate=l=>{var d;f==null||f(l),(d=this.onUpdate)==null||d.call(this,l),this.notify()},this._state==="paused"?e.pause():this._state==="reversing"?e.reverse():(this._state="playing",e.play()),this.notify()}play(){var e;this._state="playing",this._settled=!1,(e=this.child)==null||e.play(),this.notify()}reverse(){var e;this._state="reversing",this._settled=!1,(e=this.child)==null||e.reverse(),this.notify()}pause(){var e;this._state="paused",(e=this.child)==null||e.pause(),this.notify()}complete(){var e;(e=this.child)==null||e.complete(),this.notify()}get isAnimating(){var e;return((e=this.child)==null?void 0:e.isAnimating)??!1}get isPaused(){return this._state==="paused"}get isComplete(){return this._settled&&!this.child}get isReversing(){var e;return((e=this.child)==null?void 0:e.isReversing)??this._state==="reversing"}get progress(){var e;return((e=this.child)==null?void 0:e.progress)??0}findTimeForProgress(e){var o;return((o=this.child)==null?void 0:o.findTimeForProgress(e))??null}get playbackRate(){return super.playbackRate}set playbackRate(e){super.playbackRate=e,this.child&&(this.child.playbackRate=e),this.notify()}getPose(){var e;return((e=this.child)==null?void 0:e.getPose())??[]}getTimeline(){var e;return((e=this.child)==null?void 0:e.getTimeline())??[]}matchInto(e){var o;(o=this.child)==null||o.matchInto(e)}get activeChild(){return this.child}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(){for(const e of this.listeners)e()}}const gt=(t,n)=>{var e;t.style.position="absolute",t.style.width="100%",t.style.top=`${-1*(((e=n==null?void 0:n.scrollOffset)==null?void 0:e.y)??0)}px`,t.style.left="0"},tt=new Set(["auto","scroll","overlay"]),yt=t=>{let n=t.parentElement;for(;n&&n!==document.body;){const e=window.getComputedStyle(n);if(tt.has(e.overflowY)||tt.has(e.overflowX))return n;n=n.parentElement}return document.documentElement},vt=t=>{let n=t.parentElement;for(;n&&n!==document.body;){const e=window.getComputedStyle(n).position;if(e==="relative"||e==="absolute"||e==="fixed"||e==="sticky")return n;n=n.parentElement}return document.body};function pt(t){const n=Object.keys(t);return Promise.all(n.map(e=>t[e])).then(e=>{const o={};return n.forEach((i,f)=>{o[i]=e[f]}),o})}function Et(t){const n=t.filter(e=>e.symmetric).map(e=>({from:e.to,to:e.from,transition:e.transition}));return[...t,...n]}function W(t,n){if(n==="*")return!0;if(n.endsWith("/*")){const e=n.slice(0,-1);return t.startsWith(e)&&t.length>e.length}return t===n}function Tt(t,n,e){for(const o of e)if(W(t,o.from)&&W(n,o.to))return o.transition;for(const o of e)if((o.from==="*"||W(t,o.from))&&(o.to==="*"||W(n,o.to)))return o.transition;return null}const bt=768,St=10,wt=10;function Rt(t={}){const{preserveScroll:n=c=>c}=t,e=typeof n=="function"?n:()=>n;let o=null,i=!1,f=!1;const l=()=>{const c=(o==null?void 0:o.clientWidth)??0,a=c>0?c:typeof window<"u"?window.innerWidth:0;return a>0&&a<bt},d=()=>(f||(i=l(),f=!0),i),g=c=>{var E;const a=e(d());if(a===!1)return{preserves:!1,shared:!1,storageKey:`path:${c}`};if(a===!0)return{preserves:!0,shared:!1,storageKey:`path:${c}`};const v=((E=a.exclude)==null?void 0:E.some(r=>W(c,r)))??!1,p=!v&&!!a.key;return{preserves:!v,shared:p,storageKey:p?`shared:${a.key}`:`path:${c}`}},L=c=>g(c).preserves;let A=null;const y=new Map;let w=null,O=!1,k=0;const I=()=>{o&&w&&!O&&y.set(g(w).storageKey,{x:o.scrollLeft,y:o.scrollTop})},M=c=>{if(!o)return;const a=g(c);if(a.preserves&&a.shared&&!y.has(a.storageKey))return;const v=a.preserves&&y.has(a.storageKey)?y.get(a.storageKey):{x:0,y:0};let p=0;const E=()=>{if(!o)return;o.scrollTo({top:v.y,left:v.x}),!(Math.abs(o.scrollTop-v.y)<1&&Math.abs(o.scrollLeft-v.x)<1)&&p<St&&(p++,requestAnimationFrame(E))};requestAnimationFrame(E)};return{initializeContext:(c,a)=>{O=!0;const v=++k;A=c,o||(o=yt(c),i=l(),f=!0,typeof ResizeObserver<"u"&&new ResizeObserver(()=>{i=l()}).observe(o),(o===document.documentElement?window:o).addEventListener("scroll",I,{passive:!0})),w=a,M(a);let p=0;const E=()=>{v===k&&(p++,p>=wt?O=!1:requestAnimationFrame(E))};requestAnimationFrame(E)},calculateScrollOffset:(c,a)=>{const v=c?g(c).storageKey:null,p=v&&y.has(v)?y.get(v):{x:0,y:0},E=a?g(a):null,r=E!=null&&E.preserves?E.storageKey:null,s=r&&y.has(r)?y.get(r):{x:0,y:0};return{x:-s.x+p.x,y:-s.y+p.y}},evictScrollPosition:c=>{y.delete(g(c).storageKey)},shouldPreserve:L,getScrollContainer:()=>o,getPositionedParentElement:()=>A?vt(A):document.body,getScrollPosition:c=>{const a=c?g(c).storageKey:null;return a&&y.has(a)?y.get(a):{x:0,y:0}}}}const et=30,nt=8,ot=1.2,rt=30,At=600;function Ot(){let t=null,n=!1,e=!1,o=null,i=null,f=!1;const l=(u,m)=>{for(let h=0;h<u.length;h++){const T=u.item(h);if(T&&T.identifier===m)return T}return null},d=()=>{o!==null&&(clearTimeout(o),o=null)},g=()=>{i!==null&&(clearTimeout(i),i=null)},L=()=>{n=!0,e=!0,d(),g(),o=setTimeout(()=>{n=!1,e=!1,o=null},At)},A=u=>{if(u.touches.length!==1){t=null;return}const m=u.touches.item(0);if(!m){t=null;return}const h=window.innerWidth,T=m.clientX<=et,R=m.clientX>=h-et;if(!T&&!R){t=null;return}t={identifier:m.identifier,startX:m.clientX,startY:m.clientY,fromLeftEdge:T,moved:!1}},y=u=>{if(!t)return;if(u.touches.length!==1){t=null;return}const m=l(u.touches,t.identifier);if(!m){t=null;return}const h=m.clientX-t.startX,T=m.clientY-t.startY,R=Math.abs(h),c=Math.abs(T);if(c>nt&&c>R*ot){t=null;return}const a=t.fromLeftEdge?h>0:h<0;R>nt&&R>c*ot&&a&&(t.moved=!0)},w=u=>{if(!t)return;const m=l(u.changedTouches,t.identifier);if(!m){t=null;return}const h=m.clientX-t.startX,T=t.fromLeftEdge?h>0:h<0;if(t.moved&&T&&Math.abs(h)>=rt){L(),t=null;return}t.moved&&Math.abs(h)>=rt&&L(),t=null},O=()=>{t&&(t.moved&&L(),t=null)};return{initialize:()=>{if(typeof window>"u"||f)return;f=!0;const u={passive:!0,capture:!0};window.addEventListener("touchstart",A,u),window.addEventListener("touchmove",y,u),window.addEventListener("touchend",w,u),window.addEventListener("touchcancel",O,u)},destroy:()=>{if(typeof window>"u"||!f)return;f=!1;const u={capture:!0};window.removeEventListener("touchstart",A,u),window.removeEventListener("touchmove",y,u),window.removeEventListener("touchend",w,u),window.removeEventListener("touchcancel",O,u),d(),g(),t=null,n=!1,e=!1},isSwipeBack:()=>{const u=n||e;return u&&d(),u},onPageEnter:()=>{n=!1,d(),g(),i=setTimeout(()=>{e=!1,i=null},0)}}}function Pt(){let t=null;function n(){var o,i;t&&((o=t.outResolve)==null||o.call(t,null),(i=t.inResolve)==null||i.call(t,null),t=null)}function e(){if(t!=null&&t.from&&(t!=null&&t.to)&&(t!=null&&t.outResolve)&&(t!=null&&t.inResolve)){if(t.from===t.to){n();return}const o={from:t.from,to:t.to};t.outResolve(o),t.inResolve(o),t=null}}return{trigger(o,i){var l;i==="out"&&(t==null?void 0:t.to)===o&&!t.from&&((l=t.inResolve)==null||l.call(t,null),t={}),t&&(i==="out"&&t.from&&t.from!==o||i==="in"&&t.to&&t.to!==o)&&n(),t||(t={}),i==="out"?t.from=o:t.to=o},get(o){return new Promise(i=>{t||(t={}),o==="out"?t.outResolve=i:t.inResolve=i,e()})}}}const B=new Map;let H=null,st=!1;function ct(t){if(t instanceof HTMLElement&&B.has(t)){const n=B.get(t);B.delete(t),queueMicrotask(n)}for(const n of Array.from(t.childNodes))ct(n)}function Lt(){if(st||typeof document>"u")return;st=!0,H=new MutationObserver(n=>{for(const e of n)for(const o of Array.from(e.removedNodes))ct(o)});const t=()=>{H==null||H.observe(document.body,{childList:!0,subtree:!0})};document.body?t():document.addEventListener("DOMContentLoaded",t,{once:!0})}function Mt(t,n){return Lt(),B.set(t,n),()=>{B.delete(t)}}function _t(t){return Array.isArray(t)}function at(t){const n=[];for(const e of t)_t(e)?n.push(...at(e)):n.push(e);return n}function xt(t,n={}){const{transitions:e=[],middleware:o=(r,s)=>({from:r,to:s}),preserveScroll:i=r=>r}=t,f=n.host??new lt,l=Pt(),d=Et(at(e)),g=Ot();g.initialize();const{initializeContext:L,calculateScrollOffset:A,evictScrollPosition:y,shouldPreserve:w,getScrollContainer:O,getPositionedParentElement:k,getScrollPosition:I}=Rt({preserveScroll:i});let M=null,x=null;const u=new WeakMap,m=r=>{u.set(r,{parent:r.parentElement,nextSibling:r.nextElementSibling})},h=r=>{const s=u.get(r);return s||{parent:r.parentElement,nextSibling:r.nextElementSibling}},T=(r,s,S,b,D)=>{const N=b.element,X=D.element,{parent:_,nextSibling:C}=b.parent?{parent:b.parent,nextSibling:b.nextSibling}:h(N),P=N.cloneNode(!0);P.setAttribute("data-ssgoi-clone","");const q={scrollOffset:A(s,S),from:{scroll:I(s)},to:{scroll:I(S)},get scrollingElement(){return O()||document.documentElement},get positionedParent(){return k()}};gt(P,q),w(s)||y(s);const Z=Promise.resolve(P),J=Promise.resolve(X),Q=[],ft={from:Z,to:J,context:q,createElement:(($,U="div")=>{const K=document.createElement(U);return K.setAttribute("data-ssgoi-id",$),Q.push(K),K})},dt=Promise.resolve(r.prepare?r.prepare(ft):{});pt({from:Z,to:J,extras:dt}).then(({from:$,to:U,extras:K})=>{_&&(C&&_.contains(C)?_.insertBefore(P,C):_.appendChild(P));const Y=r.animation({from:$,to:U,context:q,...K}),G=Y.onComplete;Y.onComplete=()=>{G==null||G(),P.parentElement&&P.parentElement.removeChild(P);for(const V of Q)V.parentElement&&V.parentElement.removeChild(V)},f.attach(Y)})},R=(r,s)=>{const S=g.isSwipeBack();l.trigger(r,s),l.get(s).then(b=>{if(s==="in"&&g.onPageEnter(),!b)return;if(S){s==="out"&&b.from&&!w(b.from)&&y(b.from),M=null,x=null;return}if(s!=="in")return;const{from:D,to:N}=o(b.from,b.to),X=Tt(D,N,d),_=M,C=x;M=null,x=null,!(!X||!_||!C)&&T(X,D,N,_,C)})},c=(r,s)=>{const S=h(r);M={element:r,parent:S.parent,nextSibling:S.nextSibling};const b=r.getAttribute("data-ssgoi-transition")??s;R(b,"out")},a=new WeakSet,v=(r,s)=>{a.has(s)||(a.add(s),m(s),L(s,r),x={element:s,parent:s.parentElement,nextSibling:s.nextElementSibling},R(r,"in"),Mt(s,()=>c(s,r)))},p=new Map;return{register:v,refFor:r=>{let s=p.get(r);return s||(s=S=>{S&&v(r,S)},p.set(r,s)),s}}}const ut="data-ssgoi-root",Ct=`[${ut}]`,j="data-ssgoi-transition",it=`[${j}]`,kt="[data-ssgoi-clone]";function It(){return typeof MutationObserver<"u"&&typeof HTMLElement<"u"&&typeof Node<"u"}function Nt(t){return t.nodeType===Node.ELEMENT_NODE}function Kt(t){return t instanceof HTMLElement}function Ft(t,n){if(!It())return()=>{};t.setAttribute(ut,"");const e=l=>l.closest(Ct)===t,o=l=>{if(!Kt(l)||!e(l)||l.closest(kt))return;const d=l.getAttribute(j);d!==null&&n.register(d,l)},i=l=>{if(Nt(l)){l.matches(it)&&o(l);for(const d of l.querySelectorAll(it))o(d)}},f=new MutationObserver(l=>{for(const d of l){if(d.type==="attributes"){o(d.target);continue}for(const g of d.addedNodes)i(g)}});return f.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[j]}),i(t),()=>f.disconnect()}exports.Animation=z.Animation;exports.MultiAnimation=z.MultiAnimation;exports.WebAnimation=z.WebAnimation;exports.HostAnimation=lt;exports.createSggoiTransitionContext=xt;exports.observeSsgoiTransitions=Ft;
1
+ "use strict";var Mt=Object.defineProperty;var xt=(t,s,e)=>s in t?Mt(t,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[s]=e;var B=(t,s,e)=>xt(t,typeof s!="symbol"?s+"":s,e);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const Z=require("./multi-animation-Dw2JTJI2.cjs");class Et extends Z.Animation{constructor(){super(...arguments);B(this,"child",null);B(this,"_state","idle");B(this,"_settled",!1);B(this,"listeners",new Set)}attach(e){const n=this.child;if(this.child=e,this._settled=!1,n){const c=n.getPose();n.complete(),e.matchInto(c)}e.playbackRate=this.playbackRate;const l=e.onComplete;e.onComplete=()=>{l==null||l(),this.child===e&&(this.child=null,this._state="idle",this._settled=!0),this.notify()};const f=e.onUpdate;e.onUpdate=c=>{var y;f==null||f(c),(y=this.onUpdate)==null||y.call(this,c),this.notify()},this._state==="paused"?e.pause():this._state==="reversing"?e.reverse():(this._state="playing",e.play()),this.notify()}play(){var e;this._state="playing",this._settled=!1,(e=this.child)==null||e.play(),this.notify()}reverse(){var e;this._state="reversing",this._settled=!1,(e=this.child)==null||e.reverse(),this.notify()}pause(){var e;this._state="paused",(e=this.child)==null||e.pause(),this.notify()}complete(){var e;(e=this.child)==null||e.complete(),this.notify()}get isAnimating(){var e;return((e=this.child)==null?void 0:e.isAnimating)??!1}get isPaused(){return this._state==="paused"}get isComplete(){return this._settled&&!this.child}get isReversing(){var e;return((e=this.child)==null?void 0:e.isReversing)??this._state==="reversing"}get progress(){var e;return((e=this.child)==null?void 0:e.progress)??0}findTimeForProgress(e){var n;return((n=this.child)==null?void 0:n.findTimeForProgress(e))??null}get playbackRate(){return super.playbackRate}set playbackRate(e){super.playbackRate=e,this.child&&(this.child.playbackRate=e),this.notify()}getPose(){var e;return((e=this.child)==null?void 0:e.getPose())??[]}getTimeline(){var e;return((e=this.child)==null?void 0:e.getTimeline())??[]}matchInto(e){var n;(n=this.child)==null||n.matchInto(e)}get activeChild(){return this.child}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(){for(const e of this.listeners)e()}}const Lt=(t,s)=>{var e;t.style.position="absolute",t.style.width="100%",t.style.top=`${-1*(((e=s==null?void 0:s.scrollOffset)==null?void 0:e.y)??0)}px`,t.style.left="0"},ht=new Set(["auto","scroll","overlay"]),Ot=t=>{let s=t.parentElement;for(;s&&s!==document.body;){const e=window.getComputedStyle(s);if(ht.has(e.overflowY)||ht.has(e.overflowX))return s;s=s.parentElement}return document.documentElement},_t=t=>{let s=t.parentElement;for(;s&&s!==document.body;){const e=window.getComputedStyle(s).position;if(e==="relative"||e==="absolute"||e==="fixed"||e==="sticky")return s;s=s.parentElement}return document.body};function kt(t){const s=Object.keys(t);return Promise.all(s.map(e=>t[e])).then(e=>{const n={};return s.forEach((l,f)=>{n[l]=e[f]}),n})}function Dt(t){const s=t.filter(e=>e.symmetric).map(e=>({from:e.to,to:e.from,transition:e.transition}));return[...t,...s]}function X(t,s){if(s==="*")return!0;if(s.endsWith("/*")){const e=s.slice(0,-1);return t.startsWith(e)&&t.length>e.length}return t===s}function Ht(t,s,e){for(const n of e)if(X(t,n.from)&&X(s,n.to))return n.transition;for(const n of e)if((n.from==="*"||X(t,n.from))&&(n.to==="*"||X(s,n.to)))return n.transition;return null}const Nt=768,It=10,Wt=10;function Ft(t={}){const{preserveScroll:s=a=>a}=t,e=typeof s=="function"?s:()=>s;let n=null,l=!1,f=!1;const c=()=>{const a=(n==null?void 0:n.clientWidth)??0,u=a>0?a:typeof window<"u"?window.innerWidth:0;return u>0&&u<Nt},y=()=>(f||(l=c(),f=!0),l),b=a=>{var S;const u=e(y());if(u===!1)return{preserves:!1,shared:!1,storageKey:`path:${a}`};if(u===!0)return{preserves:!0,shared:!1,storageKey:`path:${a}`};const v=((S=u.exclude)==null?void 0:S.some(A=>X(a,A)))??!1,w=!v&&!!u.key;return{preserves:!v,shared:w,storageKey:w?`shared:${u.key}`:`path:${a}`}},O=a=>b(a).preserves;let _=null;const E=new Map;let x=null,k=!1,I=0;const W=()=>{n&&x&&!k&&E.set(b(x).storageKey,{x:n.scrollLeft,y:n.scrollTop})},T=a=>{if(!n)return;const u=b(a);if(u.preserves&&u.shared&&!E.has(u.storageKey))return;const v=u.preserves&&E.has(u.storageKey)?E.get(u.storageKey):{x:0,y:0};let w=0;const S=()=>{if(!n)return;n.scrollTo({top:v.y,left:v.x}),!(Math.abs(n.scrollTop-v.y)<1&&Math.abs(n.scrollLeft-v.x)<1)&&w<It&&(w++,requestAnimationFrame(S))};requestAnimationFrame(S)};return{initializeContext:(a,u)=>{k=!0;const v=++I;_=a,n||(n=Ot(a),l=c(),f=!0,typeof ResizeObserver<"u"&&new ResizeObserver(()=>{l=c()}).observe(n),(n===document.documentElement?window:n).addEventListener("scroll",W,{passive:!0})),x=u,T(u);let w=0;const S=()=>{v===I&&(w++,w>=Wt?k=!1:requestAnimationFrame(S))};requestAnimationFrame(S)},calculateScrollOffset:(a,u)=>{const v=a?b(a).storageKey:null,w=v&&E.has(v)?E.get(v):{x:0,y:0},S=u?b(u):null,A=S!=null&&S.preserves?S.storageKey:null,F=A&&E.has(A)?E.get(A):{x:0,y:0};return{x:-F.x+w.x,y:-F.y+w.y}},evictScrollPosition:a=>{E.delete(b(a).storageKey)},shouldPreserve:O,getScrollContainer:()=>n,getPositionedParentElement:()=>_?_t(_):document.body,getScrollPosition:a=>{const u=a?b(a).storageKey:null;return u&&E.has(u)?E.get(u):{x:0,y:0}}}}const yt=30,mt=8,pt=1.2,gt=30,Kt=600;function Bt(){let t=null,s=!1,e=!1,n=null,l=null,f=!1;const c=(d,g)=>{for(let m=0;m<d.length;m++){const p=d.item(m);if(p&&p.identifier===g)return p}return null},y=()=>{n!==null&&(clearTimeout(n),n=null)},b=()=>{l!==null&&(clearTimeout(l),l=null)},O=()=>{s=!0,e=!0,y(),b(),n=setTimeout(()=>{s=!1,e=!1,n=null},Kt)},_=d=>{if(d.touches.length!==1){t=null;return}const g=d.touches.item(0);if(!g){t=null;return}const m=window.innerWidth,p=g.clientX<=yt,R=g.clientX>=m-yt;if(!p&&!R){t=null;return}t={identifier:g.identifier,startX:g.clientX,startY:g.clientY,fromLeftEdge:p,moved:!1}},E=d=>{if(!t)return;if(d.touches.length!==1){t=null;return}const g=c(d.touches,t.identifier);if(!g){t=null;return}const m=g.clientX-t.startX,p=g.clientY-t.startY,R=Math.abs(m),a=Math.abs(p);if(a>mt&&a>R*pt){t=null;return}const u=t.fromLeftEdge?m>0:m<0;R>mt&&R>a*pt&&u&&(t.moved=!0)},x=d=>{if(!t)return;const g=c(d.changedTouches,t.identifier);if(!g){t=null;return}const m=g.clientX-t.startX,p=t.fromLeftEdge?m>0:m<0;if(t.moved&&p&&Math.abs(m)>=gt){O(),t=null;return}t.moved&&Math.abs(m)>=gt&&O(),t=null},k=()=>{t&&(t.moved&&O(),t=null)};return{initialize:()=>{if(typeof window>"u"||f)return;f=!0;const d={passive:!0,capture:!0};window.addEventListener("touchstart",_,d),window.addEventListener("touchmove",E,d),window.addEventListener("touchend",x,d),window.addEventListener("touchcancel",k,d)},destroy:()=>{if(typeof window>"u"||!f)return;f=!1;const d={capture:!0};window.removeEventListener("touchstart",_,d),window.removeEventListener("touchmove",E,d),window.removeEventListener("touchend",x,d),window.removeEventListener("touchcancel",k,d),y(),b(),t=null,s=!1,e=!1},isSwipeBack:()=>{const d=s||e;return d&&y(),d},onPageEnter:()=>{s=!1,y(),b(),l=setTimeout(()=>{e=!1,l=null},0)}}}function Xt(){let t=null;function s(){var n,l;t&&((n=t.outResolve)==null||n.call(t,null),(l=t.inResolve)==null||l.call(t,null),t=null)}function e(){if(t!=null&&t.from&&(t!=null&&t.to)&&(t!=null&&t.outResolve)&&(t!=null&&t.inResolve)){if(t.from===t.to){s();return}const n={from:t.from,to:t.to};t.outResolve(n),t.inResolve(n),t=null}}return{trigger(n,l){var c;l==="out"&&(t==null?void 0:t.to)===n&&!t.from&&((c=t.inResolve)==null||c.call(t,null),t={}),t&&(l==="out"&&t.from&&t.from!==n||l==="in"&&t.to&&t.to!==n)&&s(),t||(t={}),l==="out"?t.from=n:t.to=n},get(n){return new Promise(l=>{t||(t={}),n==="out"?t.outResolve=l:t.inResolve=l,e()})}}}const $=new Map;let Y=null,vt=!1;function St(t){if(t instanceof HTMLElement&&$.has(t)&&!t.isConnected){const s=$.get(t);$.delete(t),queueMicrotask(s)}for(const s of Array.from(t.childNodes))St(s)}function zt(){if(vt||typeof document>"u")return;vt=!0,Y=new MutationObserver(s=>{for(const e of s)for(const n of Array.from(e.removedNodes))St(n)});const t=()=>{Y==null||Y.observe(document.body,{childList:!0,subtree:!0})};document.body?t():document.addEventListener("DOMContentLoaded",t,{once:!0})}function $t(t,s){return zt(),$.set(t,s),()=>{$.delete(t)}}const it=new WeakMap;let G=null;const j="none !important";function z(t){const s=t.style.getPropertyValue("display");return t.style.getPropertyPriority("display")?`${s} !important`:s}function qt(){return G||(G=new MutationObserver(t=>{for(const s of t){const e=s.target,n=it.get(e);if(!n)continue;const l=z(e);l!==n.accounted&&(n.accounted=l,l===j?(n.reactHidden=!0,n.onHide()):l!=="none"&&n.reactHidden&&(n.reactHidden=!1,n.onShow()))}}),G)}function Vt(t,s){const e=z(t),n={accounted:e,reactHidden:e===j,onHide:s.onHide,onShow:s.onShow};return it.set(t,n),qt().observe(t,{attributes:!0,attributeFilter:["style"]}),{get isHidden(){return z(t)===j},setDisplay(l,f=!1){l===null?t.style.removeProperty("display"):t.style.setProperty("display",l,f?"important":""),n.accounted=z(t)},sync(){n.accounted=z(t),n.reactHidden=n.accounted===j},stop(){it.delete(t)}}}function Ut(t){return Array.isArray(t)}function wt(t){const s=[];for(const e of t)Ut(e)?s.push(...wt(e)):s.push(e);return s}function Yt(t,s={}){const{transitions:e=[],middleware:n=(o,i)=>({from:o,to:i}),preserveScroll:l=o=>o}=t,f=s.host??new Et,c=Xt(),y=Dt(wt(e)),b=Bt();b.initialize();const{initializeContext:O,calculateScrollOffset:_,evictScrollPosition:E,shouldPreserve:x,getScrollContainer:k,getPositionedParentElement:I,getScrollPosition:W}=Ft({preserveScroll:l});let T=null,P=null;const d=new WeakMap,g=o=>{d.set(o,{parent:o.parentElement,nextSibling:o.nextElementSibling})},m=o=>{const i=d.get(o);return i||{parent:o.parentElement,nextSibling:o.nextElementSibling}},p=new WeakMap,R=new WeakMap;let a=0;const u=o=>{const i=typeof getComputedStyle<"u"?getComputedStyle(o).display:"";return i&&i!=="none"?i:"block"},v=(o,i)=>{i.visibleDisplay=o.style.getPropertyValue("display"),i.computedDisplay=u(o)},w=(o,i)=>{if(R.get(o)!==i)return;R.delete(o);const r=p.get(o);r&&(r.savedCss!==null&&(o.style.cssText=r.savedCss,r.savedCss=null),r.intent==="hidden"?r.vis.setDisplay("none",!0):r.visibleDisplay?(r.vis.setDisplay(r.visibleDisplay,!1),v(o,r)):(r.vis.setDisplay(null),v(o,r)))},S=(o,i,r,h,L)=>{const M=h.element,D=L.element,H=(h.mode??"unmount")==="hidden",{parent:q,nextSibling:Q}=h.parent?{parent:h.parent,nextSibling:h.nextSibling}:m(M),V=_(i,r),tt={scrollOffset:V,from:{scroll:W(i)},to:{scroll:W(r)},get scrollingElement(){return k()||document.documentElement},get positionedParent(){return I()}};let C;if(H){C=M,C.style.top=`${-1*((V==null?void 0:V.y)??0)}px`;const N=p.get(D);N&&N.savedCss===null&&(N.savedCss=D.style.cssText)}else C=M.cloneNode(!0),C.setAttribute("data-ssgoi-clone",""),Lt(C,tt);x(i)||E(i);const U=H?++a:0;H&&(R.set(D,U),R.set(M,U));const ut=Promise.resolve(C),dt=Promise.resolve(D),ft=[],Pt={from:ut,to:dt,context:tt,createElement:((N,et="div")=>{const K=document.createElement(et);return K.setAttribute("data-ssgoi-id",N),ft.push(K),K})},Ct=Promise.resolve(o.prepare?o.prepare(Pt):{});kt({from:ut,to:dt,extras:Ct}).then(({from:N,to:et,extras:K})=>{!H&&q&&(Q&&q.contains(Q)?q.insertBefore(C,Q):q.appendChild(C));const nt=o.animation({from:N,to:et,context:tt,...K}),st=nt.onComplete;nt.onComplete=()=>{st==null||st(),H?(w(M,U),w(D,U)):C.parentElement&&C.parentElement.removeChild(C);for(const ot of ft)ot.parentElement&&ot.parentElement.removeChild(ot)},f.attach(nt)})},A=(o,i)=>{const r=b.isSwipeBack();c.trigger(o,i),c.get(i).then(h=>{if(i==="in"&&b.onPageEnter(),!h)return;if(r){i==="out"&&h.from&&!x(h.from)&&E(h.from),T=null,P=null;return}if(i!=="in")return;const{from:L,to:M}=n(h.from,h.to),D=Ht(L,M,y),J=T,H=P;T=null,P=null,!(!D||!J||!H)&&S(D,L,M,J,H)})},F=(o,i)=>{const r=p.get(o);if(!r)return;const h=r.intent==="hidden";if(r.intent="hidden",r.savedCss===null&&(r.savedCss=o.style.cssText),r.vis.setDisplay(r.computedDisplay||"block",!0),o.style.position="absolute",o.style.width="100%",o.style.left="0",h)return;const L=m(o);T={element:o,parent:L.parent,nextSibling:L.nextSibling,mode:"hidden"};const M=o.getAttribute("data-ssgoi-transition")??i;A(M,"out")},Rt=(o,i)=>{const r=p.get(o);if(!r||r.intent==="visible")return;r.intent="visible",v(o,r),r.savedCss!==null&&(o.style.cssText=r.savedCss,r.visibleDisplay?r.vis.setDisplay(r.visibleDisplay,!1):r.vis.setDisplay(null)),O(o,i),P={element:o,parent:o.parentElement,nextSibling:o.nextElementSibling};const h=o.getAttribute("data-ssgoi-transition")??i;A(h,"in")},At=(o,i)=>{const r=p.get(o);if(r&&(r.vis.stop(),p.delete(o),R.delete(o),r.intent==="hidden")){(T==null?void 0:T.element)===o&&(T=null),(P==null?void 0:P.element)===o&&(P=null);return}const h=m(o);T={element:o,parent:h.parent,nextSibling:h.nextSibling,mode:"unmount"};const L=o.getAttribute("data-ssgoi-transition")??i;A(L,"out")},lt=new WeakSet,ct=(o,i)=>{if(lt.has(i))return;lt.add(i),g(i);const r=Vt(i,{onHide:()=>F(i,o),onShow:()=>Rt(i,o)}),h={vis:r,savedCss:null,intent:r.isHidden?"hidden":"visible",visibleDisplay:"",computedDisplay:"block"};p.set(i,h),r.isHidden||(v(i,h),O(i,o),P={element:i,parent:i.parentElement,nextSibling:i.nextElementSibling},A(o,"in")),$t(i,()=>At(i,o))},at=new Map;return{register:ct,refFor:o=>{let i=at.get(o);return i||(i=r=>{r&&ct(o,r)},at.set(o,i)),i}}}const Tt="data-ssgoi-root",Gt=`[${Tt}]`,rt="data-ssgoi-transition",bt=`[${rt}]`,jt="[data-ssgoi-clone]";function Zt(){return typeof MutationObserver<"u"&&typeof HTMLElement<"u"&&typeof Node<"u"}function Jt(t){return t.nodeType===Node.ELEMENT_NODE}function Qt(t){return t instanceof HTMLElement}function te(t,s){if(!Zt())return()=>{};t.setAttribute(Tt,"");const e=c=>c.closest(Gt)===t,n=c=>{if(!Qt(c)||!e(c)||c.closest(jt))return;const y=c.getAttribute(rt);y!==null&&s.register(y,c)},l=c=>{if(Jt(c)){c.matches(bt)&&n(c);for(const y of c.querySelectorAll(bt))n(y)}},f=new MutationObserver(c=>{for(const y of c){if(y.type==="attributes"){n(y.target);continue}for(const b of y.addedNodes)l(b)}});return f.observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[rt]}),l(t),()=>f.disconnect()}exports.Animation=Z.Animation;exports.MultiAnimation=Z.MultiAnimation;exports.WebAnimation=Z.WebAnimation;exports.HostAnimation=Et;exports.createSggoiTransitionContext=Yt;exports.observeSsgoiTransitions=te;