@ssgoi/core 5.1.0 → 5.2.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/dist/index.js CHANGED
@@ -2,8 +2,9 @@ var et = Object.defineProperty;
2
2
  var nt = (e, i, t) => i in e ? et(e, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[i] = t;
3
3
  var d = (e, i, t) => nt(e, typeof i != "symbol" ? i + "" : i, t);
4
4
  import { normalizeToMultiAnimation as F, normalizeSchedule as W } from "./types.js";
5
- import { isCssAnimation as jt, isMultiAnimation as Gt, isSingleAnimation as Kt, isTickAnimation as $t } from "./types.js";
6
- import { S as K, I as it, a as rt } from "./provider-Cu4NSF1Q.js";
5
+ import { isCssAnimation as Gt, isKeyframesAnimation as $t, isMultiAnimation as Zt, isSingleAnimation as Jt, isTickAnimation as Qt } from "./types.js";
6
+ import { S as G, a as it } from "./spring-integrator-BM4a-82c.js";
7
+ import { I as rt } from "./provider-B2B8CK6H.js";
7
8
  class ot {
8
9
  constructor() {
9
10
  d(this, "listeners", /* @__PURE__ */ new Set());
@@ -30,9 +31,9 @@ class ot {
30
31
  n > this.lagThreshold || n < 0 ? (this.startTime += n - this.adjustedLag, n = this.adjustedLag) : n > this.maxDeltaTime && (n = this.maxDeltaTime), this.lastUpdate = i;
31
32
  const r = i - this.startTime, o = r - this.nextTime;
32
33
  if (o > 0) {
33
- const u = n / 1e3;
34
+ const s = n / 1e3;
34
35
  this.elapsed = r / 1e3, this.nextTime += o + (o >= this.gap ? 4 : this.gap - o), this.listeners.forEach((f) => {
35
- f(u, this.elapsed);
36
+ f(s, this.elapsed);
36
37
  });
37
38
  }
38
39
  this.listeners.size > 0 ? this.rafId = requestAnimationFrame(this.tick) : (this.isRunning = !1, this.rafId = null);
@@ -76,52 +77,52 @@ function st(e) {
76
77
  to: n,
77
78
  velocity: r = 0,
78
79
  onUpdate: o,
79
- onComplete: u,
80
+ onComplete: s,
80
81
  onStart: f
81
82
  } = e;
82
- let a = { position: t, velocity: r }, m = !0, w = 0, E = !1;
83
- const A = (T) => {
83
+ let l = { position: t, velocity: r }, m = !0, h = 0, v = !1;
84
+ const A = (S) => {
84
85
  if (m) {
85
- if (E || (E = !0, f == null || f()), a = i.step(a, n, T), i.isSettled(a, n)) {
86
- if (w += Math.min(T, 0.033), w >= K) {
87
- a = { position: n, velocity: 0 }, m = !1, o(a.position), z.unsubscribe(A), u();
86
+ if (v || (v = !0, f == null || f()), l = i.step(l, n, S), i.isSettled(l, n)) {
87
+ if (h += Math.min(S, 0.033), h >= G) {
88
+ l = { position: n, velocity: 0 }, m = !1, o(l.position), z.unsubscribe(A), s();
88
89
  return;
89
90
  }
90
91
  } else
91
- w = 0;
92
- o(a.position);
92
+ h = 0;
93
+ o(l.position);
93
94
  }
94
95
  };
95
96
  return z.subscribe(A), {
96
97
  stop: () => {
97
98
  m && (m = !1, z.unsubscribe(A));
98
99
  },
99
- getPosition: () => a.position,
100
- getVelocity: () => a.velocity,
100
+ getPosition: () => l.position,
101
+ getVelocity: () => l.velocity,
101
102
  isRunning: () => m
102
103
  };
103
104
  }
104
- const O = 1e3 / 60;
105
- function ct(e, i, t, n = 0) {
106
- let o = { position: i, velocity: n }, u = 0;
105
+ const L = 1e3 / 60;
106
+ function at(e, i, t, n = 0) {
107
+ let o = { position: i, velocity: n }, s = 0;
107
108
  const f = [];
108
- for (let a = 0; a < 600; a++) {
109
- const m = a * O;
109
+ for (let l = 0; l < 600; l++) {
110
+ const m = l * L;
110
111
  if (f.push({
111
112
  time: m,
112
113
  position: o.position,
113
114
  velocity: o.velocity
114
- }), o = e.step(o, t, O / 1e3), e.isSettled(o, t)) {
115
- if (u += O / 1e3, u >= K) {
115
+ }), o = e.step(o, t, L / 1e3), e.isSettled(o, t)) {
116
+ if (s += L / 1e3, s >= G) {
116
117
  f.push({
117
- time: (a + 1) * O,
118
+ time: (l + 1) * L,
118
119
  position: t,
119
120
  velocity: 0
120
121
  });
121
122
  break;
122
123
  }
123
124
  } else
124
- u = 0;
125
+ s = 0;
125
126
  }
126
127
  return f;
127
128
  }
@@ -138,13 +139,13 @@ function H(e, i) {
138
139
  const m = Math.floor((r + o) / 2);
139
140
  e[m].time <= i ? r = m : o = m;
140
141
  }
141
- const u = e[r], f = e[o], a = (i - u.time) / (f.time - u.time);
142
+ const s = e[r], f = e[o], l = (i - s.time) / (f.time - s.time);
142
143
  return {
143
- position: u.position + (f.position - u.position) * a,
144
- velocity: u.velocity + (f.velocity - u.velocity) * a
144
+ position: s.position + (f.position - s.position) * l,
145
+ velocity: s.velocity + (f.velocity - s.velocity) * l
145
146
  };
146
147
  }
147
- function at(e, i) {
148
+ function ct(e, i) {
148
149
  return e.map((t) => i(t.position));
149
150
  }
150
151
  function lt(e) {
@@ -154,52 +155,95 @@ function lt(e) {
154
155
  from: n,
155
156
  to: r,
156
157
  velocity: o = 0,
157
- style: u,
158
+ style: s,
158
159
  onComplete: f,
159
- onStart: a
160
- } = e, m = ct(i, n, r, o);
160
+ onStart: l
161
+ } = e, m = at(i, n, r, o);
161
162
  if (m.length === 0)
162
- return a == null || a(), f(), {
163
+ return l == null || l(), f(), {
163
164
  stop: () => {
164
165
  },
165
166
  getPosition: () => r,
166
167
  getVelocity: () => 0,
167
168
  isRunning: () => !1
168
169
  };
169
- const w = at(m, u), E = m[m.length - 1], A = E.time, T = w[0];
170
- if (T)
171
- for (const C of Object.keys(T))
172
- t.style[C] = "";
173
- const p = t.animate(w, {
170
+ const h = ct(m, s), v = m[m.length - 1], A = v.time, S = h[0];
171
+ if (S)
172
+ for (const T of Object.keys(S))
173
+ t.style[T] = "";
174
+ const y = t.animate(h, {
174
175
  duration: A,
175
176
  fill: "forwards",
176
177
  easing: "linear",
177
178
  composite: "replace"
178
179
  });
179
- let y = !0;
180
- const R = performance.now();
181
- return a == null || a(), p.onfinish = () => {
182
- y && (y = !1, f());
180
+ let p = !0;
181
+ const k = performance.now();
182
+ return l == null || l(), y.onfinish = () => {
183
+ p && (p = !1, f());
183
184
  }, {
184
185
  stop: () => {
185
- y && (y = !1, p.cancel());
186
+ p && (p = !1, y.cancel());
186
187
  },
187
188
  getPosition: () => {
188
- if (!y)
189
- return E.position;
190
- const C = performance.now() - R;
191
- return H(m, C).position;
189
+ if (!p)
190
+ return v.position;
191
+ const T = performance.now() - k;
192
+ return H(m, T).position;
192
193
  },
193
194
  getVelocity: () => {
194
- if (!y)
195
+ if (!p)
195
196
  return 0;
196
- const C = performance.now() - R;
197
- return H(m, C).velocity;
197
+ const T = performance.now() - k;
198
+ return H(m, T).velocity;
198
199
  },
199
- isRunning: () => y
200
+ isRunning: () => p
200
201
  };
201
202
  }
202
203
  function ut(e) {
204
+ const {
205
+ element: i,
206
+ frames: t,
207
+ duration: n,
208
+ easing: r = "linear",
209
+ from: o,
210
+ to: s,
211
+ onComplete: f,
212
+ onStart: l
213
+ } = e, m = t[0];
214
+ if (m)
215
+ for (const S of Object.keys(m))
216
+ S === "offset" || S === "easing" || S === "composite" || (i.style[S] = "");
217
+ const h = i.animate(t, {
218
+ duration: n,
219
+ fill: "forwards",
220
+ easing: r,
221
+ composite: "replace"
222
+ });
223
+ let v = !0;
224
+ const A = performance.now();
225
+ return l == null || l(), h.onfinish = () => {
226
+ v && (v = !1, f());
227
+ }, {
228
+ stop: () => {
229
+ v && (v = !1, h.cancel());
230
+ },
231
+ // Linear progress mapped onto [from, to] — used by MultiAnimator for
232
+ // stagger thresholds. The actual visual motion is whatever the keyframes
233
+ // dictate; this mapping just gives the orchestration layer a monotonic
234
+ // progress signal.
235
+ getPosition: () => {
236
+ if (!v) return s;
237
+ const S = performance.now() - A, y = Math.min(Math.max(S / n, 0), 1);
238
+ return o + (s - o) * y;
239
+ },
240
+ // Baked animations don't expose velocity — interruption/resumption isn't
241
+ // supported here (you can stop, but can't resume mid-flight with momentum).
242
+ getVelocity: () => 0,
243
+ isRunning: () => v
244
+ };
245
+ }
246
+ function ft(e) {
203
247
  const { to: i, onStart: t, onComplete: n } = e;
204
248
  return t == null || t(), n(), {
205
249
  stop: () => {
@@ -209,32 +253,61 @@ function ut(e) {
209
253
  isRunning: () => !1
210
254
  };
211
255
  }
212
- class ft {
256
+ class mt {
213
257
  /**
214
258
  * Get bound runner based on animation mode
215
259
  *
216
- * @param options Animation mode options (tick or css)
260
+ * @param options Animation mode options — exactly one of tick / css / keyframes
217
261
  * @returns Bound runner function (empty runner if no animation mode specified)
218
- * @throws Error if both tick and css are provided
262
+ * @throws Error if more than one mode is provided
219
263
  */
220
264
  static from(i) {
221
- const { tick: t, css: n } = i;
222
- if (t && n)
223
- throw new Error("Cannot use both 'tick' and 'css' options together");
224
- return n ? (r) => lt({
225
- ...r,
226
- element: n.element,
227
- style: n.style
228
- }) : t ? (r) => st({
229
- ...r,
230
- onUpdate: t
231
- }) : ut;
265
+ const { tick: t, css: n, keyframes: r } = i;
266
+ if ((t ? 1 : 0) + (n ? 1 : 0) + (r ? 1 : 0) > 1)
267
+ throw new Error(
268
+ "Cannot use more than one of 'tick', 'css', 'keyframes' together"
269
+ );
270
+ return r ? (s) => ut({
271
+ element: r.element,
272
+ frames: r.frames,
273
+ duration: r.duration,
274
+ easing: r.easing,
275
+ from: s.from,
276
+ to: s.to,
277
+ onComplete: s.onComplete,
278
+ onStart: s.onStart
279
+ }) : n ? (s) => {
280
+ if (!s.integrator)
281
+ throw new Error("css mode requires an integrator");
282
+ return lt({
283
+ integrator: s.integrator,
284
+ from: s.from,
285
+ to: s.to,
286
+ velocity: s.velocity,
287
+ onComplete: s.onComplete,
288
+ onStart: s.onStart,
289
+ element: n.element,
290
+ style: n.style
291
+ });
292
+ } : t ? (s) => {
293
+ if (!s.integrator)
294
+ throw new Error("tick mode requires an integrator");
295
+ return st({
296
+ integrator: s.integrator,
297
+ from: s.from,
298
+ to: s.to,
299
+ velocity: s.velocity,
300
+ onComplete: s.onComplete,
301
+ onStart: s.onStart,
302
+ onUpdate: t
303
+ });
304
+ } : ft;
232
305
  }
233
306
  }
234
307
  class $ {
235
308
  }
236
- const mt = { stiffness: 300, damping: 30 };
237
- class U extends $ {
309
+ const dt = { stiffness: 300, damping: 30 };
310
+ class K extends $ {
238
311
  constructor(t) {
239
312
  super();
240
313
  d(this, "options");
@@ -244,6 +317,7 @@ class U extends $ {
244
317
  d(this, "currentValue");
245
318
  d(this, "currentVelocity", 0);
246
319
  d(this, "updateFn");
320
+ d(this, "isKeyframesMode");
247
321
  if (this.options = {
248
322
  from: t.from ?? 0,
249
323
  to: t.to ?? 1,
@@ -251,7 +325,7 @@ class U extends $ {
251
325
  onComplete: t.onComplete ?? (() => {
252
326
  }),
253
327
  onStart: t.onStart
254
- }, this.currentValue = this.options.from, t.tick)
328
+ }, this.currentValue = this.options.from, this.isKeyframesMode = !!t.keyframes, t.tick)
255
329
  this.updateFn = (n) => {
256
330
  var r;
257
331
  return (r = t.tick) == null ? void 0 : r.call(t, n);
@@ -259,16 +333,17 @@ class U extends $ {
259
333
  else if (t.css) {
260
334
  const { element: n, style: r } = t.css;
261
335
  this.updateFn = (o) => {
262
- const u = r(o);
263
- for (const [f, a] of Object.entries(u))
264
- n.style[f] = typeof a == "number" ? String(a) : a;
336
+ const s = r(o);
337
+ for (const [f, l] of Object.entries(s))
338
+ n.style[f] = typeof l == "number" ? String(l) : l;
265
339
  };
266
340
  } else
267
341
  this.updateFn = () => {
268
342
  };
269
- this.runner = ft.from({
343
+ this.runner = mt.from({
270
344
  tick: t.tick,
271
- css: t.css
345
+ css: t.css,
346
+ keyframes: t.keyframes
272
347
  });
273
348
  }
274
349
  /**
@@ -285,14 +360,16 @@ class U extends $ {
285
360
  */
286
361
  createIntegrator() {
287
362
  const t = this.options.physics;
288
- return t != null && t.integrator ? t.integrator() : t != null && t.spring || t != null && t.inertia ? it.from({
363
+ return t != null && t.integrator ? t.integrator() : t != null && t.spring || t != null && t.inertia ? rt.from({
289
364
  spring: t.spring,
290
365
  inertia: t.inertia
291
- }) : new rt(mt);
366
+ }) : new it(dt);
292
367
  }
293
368
  runAnimation(t) {
294
369
  this.isAnimating = !0, this.controls = this.runner({
295
- integrator: this.createIntegrator(),
370
+ // Keyframes mode plays a pre-baked WAAPI animation — no integrator
371
+ // needed. tick/css modes still require one.
372
+ integrator: this.isKeyframesMode ? void 0 : this.createIntegrator(),
296
373
  from: this.currentValue,
297
374
  to: t,
298
375
  velocity: this.currentVelocity,
@@ -368,12 +445,13 @@ class D extends $ {
368
445
  }
369
446
  initializeAnimators() {
370
447
  this.config.items.forEach((t, n) => {
371
- const r = this.generateId(), o = new U({
448
+ const r = this.generateId(), o = new K({
372
449
  from: this.from,
373
450
  to: this.to,
374
451
  physics: t.physics,
375
452
  tick: t.tick,
376
453
  css: t.css,
454
+ keyframes: t.keyframes,
377
455
  onComplete: () => this.onAnimatorComplete(r),
378
456
  onStart: t.onStart
379
457
  });
@@ -402,9 +480,9 @@ class D extends $ {
402
480
  return this.direction === "forward" ? this.itemOrder : [...this.itemOrder].reverse();
403
481
  }
404
482
  onAnimatorComplete(t) {
405
- var r, o, u, f, a, m;
483
+ var r, o, s, f, l, m;
406
484
  const n = this.animators.get(t);
407
- !n || this.completedAnimators.has(t) || (this.completedAnimators.add(t), this.completedCount++, (o = (r = n.item).onComplete) == null || o.call(r), (f = (u = this.config).onProgress) == null || f.call(u, this.completedCount, this.config.items.length), this.completedCount === this.config.items.length && (this.stopScheduler(), (m = (a = this.config).onEnd) == null || m.call(a)));
485
+ !n || this.completedAnimators.has(t) || (this.completedAnimators.add(t), this.completedCount++, (o = (r = n.item).onComplete) == null || o.call(r), (f = (s = this.config).onProgress) == null || f.call(s, this.completedCount, this.config.items.length), this.completedCount === this.config.items.length && (this.stopScheduler(), (m = (l = this.config).onEnd) == null || m.call(l)));
408
486
  }
409
487
  /**
410
488
  * Check and start springs based on previous spring's progress
@@ -419,10 +497,10 @@ class D extends $ {
419
497
  this.startAnimator(r);
420
498
  continue;
421
499
  }
422
- const u = t[n - 1], f = this.animators.get(u);
500
+ const s = t[n - 1], f = this.animators.get(s);
423
501
  if (!f || !f.started) continue;
424
- const a = this.getAnimatorProgress(f), m = o.item.normalizedOffset;
425
- a >= m && this.startAnimator(r);
502
+ const l = this.getAnimatorProgress(f), m = o.item.normalizedOffset;
503
+ l >= m && this.startAnimator(r);
426
504
  }
427
505
  }
428
506
  startAnimator(t) {
@@ -470,12 +548,13 @@ class D extends $ {
470
548
  return;
471
549
  const n = t.animator.getCurrentState();
472
550
  if (n.position === n.to) {
473
- const o = new U({
551
+ const o = new K({
474
552
  from: this.to,
475
553
  to: this.from,
476
554
  physics: t.item.physics,
477
555
  tick: t.item.tick,
478
556
  css: t.item.css,
557
+ keyframes: t.item.keyframes,
479
558
  onComplete: () => this.onAnimatorComplete(t.id),
480
559
  onStart: t.item.onStart
481
560
  });
@@ -540,7 +619,7 @@ class D extends $ {
540
619
  return new D({ ...n, state: t });
541
620
  }
542
621
  }
543
- const Z = Symbol.for("TRANSITION_STRATEGY"), dt = (e) => ({
622
+ const Z = Symbol.for("TRANSITION_STRATEGY"), ht = (e) => ({
544
623
  runIn: async (i) => {
545
624
  const { currentAnimation: t } = e;
546
625
  if (t && t.direction === "out") {
@@ -607,7 +686,7 @@ const Z = Symbol.for("TRANSITION_STRATEGY"), dt = (e) => ({
607
686
  direction: "forward"
608
687
  };
609
688
  }
610
- }), ht = () => ({
689
+ }), gt = () => ({
611
690
  runIn: async (e) => e.in ? {
612
691
  config: await e.in,
613
692
  state: {
@@ -645,7 +724,7 @@ const Z = Symbol.for("TRANSITION_STRATEGY"), dt = (e) => ({
645
724
  direction: "forward"
646
725
  }
647
726
  }), J = "data-ssgoi-scope", Q = "data-ssgoi-scope-ready";
648
- function zt() {
727
+ function Nt() {
649
728
  return (e) => {
650
729
  if (e)
651
730
  return e.setAttribute(J, ""), queueMicrotask(() => {
@@ -656,7 +735,7 @@ function zt() {
656
735
  };
657
736
  };
658
737
  }
659
- function gt(e) {
738
+ function yt(e) {
660
739
  return e.hasAttribute(Q);
661
740
  }
662
741
  function wt(e) {
@@ -671,7 +750,7 @@ const pt = (e) => {
671
750
  i = i.parentElement;
672
751
  }
673
752
  return document.documentElement;
674
- }, yt = (e) => {
753
+ }, vt = (e) => {
675
754
  let i = e.parentElement;
676
755
  for (; i && i !== document.body; ) {
677
756
  const t = window.getComputedStyle(i).position;
@@ -681,7 +760,7 @@ const pt = (e) => {
681
760
  }
682
761
  return document.body;
683
762
  };
684
- function B(e) {
763
+ function U(e) {
685
764
  return new Promise((i) => {
686
765
  requestAnimationFrame(() => {
687
766
  requestAnimationFrame(() => {
@@ -690,103 +769,103 @@ function B(e) {
690
769
  });
691
770
  });
692
771
  }
693
- function vt(e, i) {
694
- var T;
772
+ function St(e, i) {
773
+ var S;
695
774
  let t = null, n = null, r = null, o = null;
696
- const u = {
775
+ const s = {
697
776
  get currentAnimation() {
698
777
  return t;
699
778
  }
700
- }, f = ((T = i == null ? void 0 : i.strategy) == null ? void 0 : T.call(i, u)) || dt(u), a = async (p) => {
701
- var h, S;
779
+ }, f = ((S = i == null ? void 0 : i.strategy) == null ? void 0 : S.call(i, s)) || ht(s), l = async (y) => {
780
+ var g, E;
702
781
  n && (n.remove(), n = null);
703
- const y = e(), R = y.in && y.in(p), C = !(i != null && i.strategy) && y.out ? y.out(p) : void 0;
704
- if (!R)
782
+ const p = e(), k = p.in && p.in(y), T = !(i != null && i.strategy) && p.out ? p.out(y) : void 0;
783
+ if (!k)
705
784
  return;
706
- const g = {
707
- in: F(R),
708
- out: C ? F(C) : void 0
709
- }, l = await f.runIn(g);
710
- if (!l.config) {
785
+ const w = {
786
+ in: F(k),
787
+ out: T ? F(T) : void 0
788
+ }, u = await f.runIn(w);
789
+ if (!u.config) {
711
790
  t && (t.direction = "in");
712
791
  return;
713
792
  }
714
- const s = l.config;
715
- (h = s.prepare) == null || h.call(s);
716
- const v = W(
793
+ const a = u.config;
794
+ (g = a.prepare) == null || g.call(a);
795
+ const C = W(
717
796
  {
718
- ...s,
797
+ ...a,
719
798
  onEnd: () => {
720
799
  var b;
721
- t = null, (b = s.onEnd) == null || b.call(s);
800
+ t = null, (b = a.onEnd) == null || b.call(a);
722
801
  }
723
802
  },
724
- p
803
+ y
725
804
  );
726
- s.wait && await s.wait();
727
- const c = D.fromState(l.state, {
728
- config: v,
729
- from: l.from,
730
- to: l.to
805
+ a.wait && await a.wait();
806
+ const c = D.fromState(u.state, {
807
+ config: C,
808
+ from: u.from,
809
+ to: u.to
731
810
  });
732
- t = { controller: c, direction: "in" }, (S = s.onReady) == null || S.call(s), await B(), l.direction === "forward" ? c.forward() : c.backward();
733
- }, m = async (p) => {
734
- var S, b;
735
- n = p;
736
- const y = e(), R = !(i != null && i.strategy) && y.in ? y.in(p) : void 0, C = y.out && y.out(p);
737
- if (!C)
811
+ t = { controller: c, direction: "in" }, (E = a.onReady) == null || E.call(a), await U(), u.direction === "forward" ? c.forward() : c.backward();
812
+ }, m = async (y) => {
813
+ var E, b;
814
+ n = y;
815
+ const p = e(), k = !(i != null && i.strategy) && p.in ? p.in(y) : void 0, T = p.out && p.out(y);
816
+ if (!T)
738
817
  return;
739
- const g = {
740
- in: R ? F(R) : void 0,
741
- out: F(C)
742
- }, l = await f.runOut(g);
743
- if (!l.config) {
818
+ const w = {
819
+ in: k ? F(k) : void 0,
820
+ out: F(T)
821
+ }, u = await f.runOut(w);
822
+ if (!u.config) {
744
823
  t && (t.direction = "out"), n && (n.remove(), n = null);
745
824
  return;
746
825
  }
747
- const s = l.config;
748
- h(), (S = s.prepare) == null || S.call(s);
749
- const v = W(
826
+ const a = u.config;
827
+ g(), (E = a.prepare) == null || E.call(a);
828
+ const C = W(
750
829
  {
751
- ...s,
830
+ ...a,
752
831
  onEnd: () => {
753
- var k, M;
754
- (k = s.onEnd) == null || k.call(s), n && (n.remove(), n = null), t = null, (M = i == null ? void 0 : i.onCleanupEnd) == null || M.call(i);
832
+ var R, M;
833
+ (R = a.onEnd) == null || R.call(a), n && (n.remove(), n = null), t = null, (M = i == null ? void 0 : i.onCleanupEnd) == null || M.call(i);
755
834
  }
756
835
  },
757
- p
836
+ y
758
837
  );
759
- s.wait && await s.wait();
760
- const c = D.fromState(l.state, {
761
- config: v,
762
- from: l.from,
763
- to: l.to
838
+ a.wait && await a.wait();
839
+ const c = D.fromState(u.state, {
840
+ config: C,
841
+ from: u.from,
842
+ to: u.to
764
843
  });
765
- t = { controller: c, direction: "out" }, (b = s.onReady) == null || b.call(s), await B(), l.direction === "forward" ? c.forward() : c.backward();
766
- function h() {
844
+ t = { controller: c, direction: "out" }, (b = a.onReady) == null || b.call(a), await U(), u.direction === "forward" ? c.forward() : c.backward();
845
+ function g() {
767
846
  !r || !n || (o && r.contains(o) ? r.insertBefore(n, o) : r.appendChild(n));
768
847
  }
769
848
  };
770
- let w = null, E = !1;
771
- const A = (p) => () => {
772
- if (E) return;
773
- E = !0;
774
- const y = p.cloneNode(!0);
775
- w ? queueMicrotask(() => {
776
- document.contains(w) && m(y);
777
- }) : m(y);
849
+ let h = null, v = !1;
850
+ const A = (y) => () => {
851
+ if (v) return;
852
+ v = !0;
853
+ const p = y.cloneNode(!0);
854
+ h ? queueMicrotask(() => {
855
+ document.contains(h) && m(p);
856
+ }) : m(p);
778
857
  };
779
- return (p) => {
780
- if (p)
858
+ return (y) => {
859
+ if (y)
781
860
  return requestAnimationFrame(() => {
782
- r = p.parentElement, o = p.nextElementSibling;
783
- }), E = !1, (i == null ? void 0 : i.scope) === "local" ? queueMicrotask(() => {
784
- w = wt(p), !(w && !gt(w)) && a(p);
785
- }) : a(p), A(p);
861
+ r = y.parentElement, o = y.nextElementSibling;
862
+ }), v = !1, (i == null ? void 0 : i.scope) === "local" ? queueMicrotask(() => {
863
+ h = wt(y), !(h && !yt(h)) && l(y);
864
+ }) : l(y), A(y);
786
865
  };
787
866
  }
788
867
  const P = /* @__PURE__ */ new Map();
789
- let I = null, N = !1;
868
+ let I = null, q = !1;
790
869
  function tt(e) {
791
870
  if (e instanceof HTMLElement && P.has(e)) {
792
871
  const t = P.get(e);
@@ -800,8 +879,8 @@ function tt(e) {
800
879
  n && tt(n);
801
880
  }
802
881
  }
803
- function St() {
804
- N || typeof document > "u" || (N = !0, I = new MutationObserver((e) => {
882
+ function At() {
883
+ q || typeof document > "u" || (q = !0, I = new MutationObserver((e) => {
805
884
  for (const i of e) {
806
885
  const t = i.removedNodes;
807
886
  for (let n = 0; n < t.length; n++) {
@@ -823,48 +902,48 @@ function St() {
823
902
  { once: !0 }
824
903
  ));
825
904
  }
826
- function Et(e, i) {
827
- St(), P.set(e, i);
905
+ function Ct(e, i) {
906
+ At(), P.set(e, i);
828
907
  }
829
- function Nt(e) {
908
+ function Xt(e) {
830
909
  return P.has(e);
831
910
  }
832
- function qt() {
911
+ function Wt() {
833
912
  return P.size;
834
913
  }
835
- function Xt(e) {
914
+ function Ht(e) {
836
915
  const i = P.get(e);
837
916
  return i ? (P.delete(e), i(), !0) : !1;
838
917
  }
839
- function Wt() {
840
- P.clear(), I == null || I.disconnect(), I = null, N = !1;
918
+ function Kt() {
919
+ P.clear(), I == null || I.disconnect(), I = null, q = !1;
841
920
  }
842
- const L = /* @__PURE__ */ new Map(), q = /* @__PURE__ */ new Map(), X = /* @__PURE__ */ new Map();
843
- function At(e, i, t) {
844
- L.set(e, i);
845
- let n = q.get(e);
921
+ const O = /* @__PURE__ */ new Map(), N = /* @__PURE__ */ new Map(), X = /* @__PURE__ */ new Map();
922
+ function Et(e, i, t) {
923
+ O.set(e, i);
924
+ let n = N.get(e);
846
925
  if (n)
847
926
  return n;
848
927
  const r = i;
849
- return n = vt(
928
+ return n = St(
850
929
  () => {
851
- const o = L.get(e);
930
+ const o = O.get(e);
852
931
  return o || (console.warn(`Transition "${String(e)}" not found`), {});
853
932
  },
854
933
  {
855
934
  strategy: t == null ? void 0 : t.strategy,
856
935
  scope: t == null ? void 0 : t.scope,
857
936
  onCleanupEnd: () => {
858
- L.get(e) === r && Tt(e);
937
+ O.get(e) === r && Tt(e);
859
938
  }
860
939
  }
861
- ), q.set(e, n), n;
940
+ ), N.set(e, n), n;
862
941
  }
863
942
  function Tt(e) {
864
- L.delete(e), q.delete(e), X.delete(e);
943
+ O.delete(e), N.delete(e), X.delete(e);
865
944
  }
866
- function Ht(e, i = "manual") {
867
- const t = At(
945
+ function Ut(e, i = "manual") {
946
+ const t = Et(
868
947
  e.key,
869
948
  {
870
949
  in: e.in,
@@ -881,11 +960,11 @@ function Ht(e, i = "manual") {
881
960
  return n || (n = (r) => {
882
961
  if (r) {
883
962
  const o = t(r);
884
- o && Et(r, o);
963
+ o && Ct(r, o);
885
964
  }
886
965
  }, X.set(e.key, n), n);
887
966
  }
888
- function Ct(e) {
967
+ function bt(e) {
889
968
  const i = e.filter((t) => t.symmetric).map((t) => ({
890
969
  from: t.to,
891
970
  to: t.from,
@@ -902,7 +981,7 @@ function V(e, i) {
902
981
  }
903
982
  return e === i;
904
983
  }
905
- function bt(e, i, t) {
984
+ function kt(e, i, t) {
906
985
  for (const n of t)
907
986
  if (V(e, n.from) && V(i, n.to))
908
987
  return n.transition;
@@ -911,158 +990,158 @@ function bt(e, i, t) {
911
990
  return n.transition;
912
991
  return null;
913
992
  }
914
- const Rt = 768, kt = 10, It = 10;
915
- function Pt(e = {}) {
993
+ const Rt = 768, It = 10, Pt = 10;
994
+ function Mt(e = {}) {
916
995
  const { preserveScroll: i = (c) => c } = e, t = typeof i == "function" ? i : () => i;
917
996
  let n = null, r = !1, o = !1;
918
- const u = () => {
919
- const c = (n == null ? void 0 : n.clientWidth) ?? 0, h = c > 0 ? c : typeof window < "u" ? window.innerWidth : 0;
920
- return h > 0 && h < Rt;
921
- }, f = () => (o || (r = u(), o = !0), r), a = (c) => {
922
- const h = t(f());
923
- return h === !1 ? !1 : h === !0 ? !0 : !h.exclude.some((S) => V(c, S));
997
+ const s = () => {
998
+ const c = (n == null ? void 0 : n.clientWidth) ?? 0, g = c > 0 ? c : typeof window < "u" ? window.innerWidth : 0;
999
+ return g > 0 && g < Rt;
1000
+ }, f = () => (o || (r = s(), o = !0), r), l = (c) => {
1001
+ const g = t(f());
1002
+ return g === !1 ? !1 : g === !0 ? !0 : !g.exclude.some((E) => V(c, E));
924
1003
  };
925
1004
  let m = null;
926
- const w = /* @__PURE__ */ new Map();
927
- let E = null, A = !1, T = 0;
928
- const p = () => {
929
- n && E && !A && w.set(E, {
1005
+ const h = /* @__PURE__ */ new Map();
1006
+ let v = null, A = !1, S = 0;
1007
+ const y = () => {
1008
+ n && v && !A && h.set(v, {
930
1009
  x: n.scrollLeft,
931
1010
  y: n.scrollTop
932
1011
  });
933
- }, y = (c) => {
1012
+ }, p = (c) => {
934
1013
  if (!n) return;
935
- const h = a(c) && w.has(c) ? w.get(c) : { x: 0, y: 0 };
936
- let S = 0;
1014
+ const g = l(c) && h.has(c) ? h.get(c) : { x: 0, y: 0 };
1015
+ let E = 0;
937
1016
  const b = () => {
938
1017
  if (!n) return;
939
1018
  n.scrollTo({
940
- top: h.y,
941
- left: h.x
942
- }), !(Math.abs(n.scrollTop - h.y) < 1 && Math.abs(n.scrollLeft - h.x) < 1) && S < kt && (S++, requestAnimationFrame(b));
1019
+ top: g.y,
1020
+ left: g.x
1021
+ }), !(Math.abs(n.scrollTop - g.y) < 1 && Math.abs(n.scrollLeft - g.x) < 1) && E < It && (E++, requestAnimationFrame(b));
943
1022
  };
944
1023
  requestAnimationFrame(b);
945
1024
  };
946
1025
  return {
947
- initializeContext: (c, h) => {
1026
+ initializeContext: (c, g) => {
948
1027
  A = !0;
949
- const S = ++T;
950
- m = c, n || (n = pt(c), r = u(), o = !0, typeof ResizeObserver < "u" && new ResizeObserver(() => {
951
- r = u();
952
- }).observe(n), (n === document.documentElement ? window : n).addEventListener("scroll", p, {
1028
+ const E = ++S;
1029
+ m = c, n || (n = pt(c), r = s(), o = !0, typeof ResizeObserver < "u" && new ResizeObserver(() => {
1030
+ r = s();
1031
+ }).observe(n), (n === document.documentElement ? window : n).addEventListener("scroll", y, {
953
1032
  passive: !0
954
- })), E = h, y(h);
1033
+ })), v = g, p(g);
955
1034
  let b = 0;
956
- const k = () => {
957
- S === T && (b++, b >= It ? A = !1 : requestAnimationFrame(k));
1035
+ const R = () => {
1036
+ E === S && (b++, b >= Pt ? A = !1 : requestAnimationFrame(R));
958
1037
  };
959
- requestAnimationFrame(k);
1038
+ requestAnimationFrame(R);
960
1039
  },
961
- calculateScrollOffset: (c, h) => {
962
- const S = c && w.has(c) ? w.get(c) : { x: 0, y: 0 }, b = h && a(h) && w.has(h) ? w.get(h) : { x: 0, y: 0 };
1040
+ calculateScrollOffset: (c, g) => {
1041
+ const E = c && h.has(c) ? h.get(c) : { x: 0, y: 0 }, b = g && l(g) && h.has(g) ? h.get(g) : { x: 0, y: 0 };
963
1042
  return {
964
- x: -b.x + S.x,
965
- y: -b.y + S.y
1043
+ x: -b.x + E.x,
1044
+ y: -b.y + E.y
966
1045
  };
967
1046
  },
968
1047
  evictScrollPosition: (c) => {
969
- w.delete(c);
1048
+ h.delete(c);
970
1049
  },
971
- shouldPreserve: a,
1050
+ shouldPreserve: l,
972
1051
  getScrollContainer: () => n,
973
- getPositionedParentElement: () => m ? yt(m) : document.body,
974
- getScrollPosition: (c) => c && w.has(c) ? w.get(c) : { x: 0, y: 0 }
1052
+ getPositionedParentElement: () => m ? vt(m) : document.body,
1053
+ getScrollPosition: (c) => c && h.has(c) ? h.get(c) : { x: 0, y: 0 }
975
1054
  };
976
1055
  }
977
- const Y = 30, j = 8, G = 1.2, Mt = 30, Vt = 600;
978
- function xt() {
1056
+ const j = 30, B = 8, Y = 1.2, Vt = 30, xt = 600;
1057
+ function Ft() {
979
1058
  let e = null, i = !1, t = !1, n = null, r = null, o = !1;
980
- const u = (g, l) => {
981
- for (let s = 0; s < g.length; s++) {
982
- const v = g.item(s);
983
- if (v && v.identifier === l) return v;
1059
+ const s = (w, u) => {
1060
+ for (let a = 0; a < w.length; a++) {
1061
+ const C = w.item(a);
1062
+ if (C && C.identifier === u) return C;
984
1063
  }
985
1064
  return null;
986
1065
  }, f = () => {
987
1066
  n !== null && (clearTimeout(n), n = null);
988
- }, a = () => {
1067
+ }, l = () => {
989
1068
  r !== null && (clearTimeout(r), r = null);
990
1069
  }, m = () => {
991
- i = !0, t = !0, f(), a(), n = setTimeout(() => {
1070
+ i = !0, t = !0, f(), l(), n = setTimeout(() => {
992
1071
  i = !1, t = !1, n = null;
993
- }, Vt);
994
- }, w = (g) => {
995
- if (g.touches.length !== 1) {
1072
+ }, xt);
1073
+ }, h = (w) => {
1074
+ if (w.touches.length !== 1) {
996
1075
  e = null;
997
1076
  return;
998
1077
  }
999
- const l = g.touches.item(0);
1000
- if (!l) {
1078
+ const u = w.touches.item(0);
1079
+ if (!u) {
1001
1080
  e = null;
1002
1081
  return;
1003
1082
  }
1004
- const s = window.innerWidth, v = l.clientX <= Y, c = l.clientX >= s - Y;
1005
- if (!v && !c) {
1083
+ const a = window.innerWidth, C = u.clientX <= j, c = u.clientX >= a - j;
1084
+ if (!C && !c) {
1006
1085
  e = null;
1007
1086
  return;
1008
1087
  }
1009
1088
  e = {
1010
- identifier: l.identifier,
1011
- startX: l.clientX,
1012
- startY: l.clientY,
1013
- fromLeftEdge: v,
1089
+ identifier: u.identifier,
1090
+ startX: u.clientX,
1091
+ startY: u.clientY,
1092
+ fromLeftEdge: C,
1014
1093
  moved: !1
1015
1094
  };
1016
- }, E = (g) => {
1095
+ }, v = (w) => {
1017
1096
  if (!e) return;
1018
- if (g.touches.length !== 1) {
1097
+ if (w.touches.length !== 1) {
1019
1098
  e = null;
1020
1099
  return;
1021
1100
  }
1022
- const l = u(g.touches, e.identifier);
1023
- if (!l) {
1101
+ const u = s(w.touches, e.identifier);
1102
+ if (!u) {
1024
1103
  e = null;
1025
1104
  return;
1026
1105
  }
1027
- const s = l.clientX - e.startX, v = l.clientY - e.startY, c = Math.abs(s), h = Math.abs(v);
1028
- if (h > j && h > c * G) {
1106
+ const a = u.clientX - e.startX, C = u.clientY - e.startY, c = Math.abs(a), g = Math.abs(C);
1107
+ if (g > B && g > c * Y) {
1029
1108
  e = null;
1030
1109
  return;
1031
1110
  }
1032
- const S = e.fromLeftEdge ? s > 0 : s < 0;
1033
- c > j && c > h * G && S && (e.moved = !0);
1034
- }, A = (g) => {
1111
+ const E = e.fromLeftEdge ? a > 0 : a < 0;
1112
+ c > B && c > g * Y && E && (e.moved = !0);
1113
+ }, A = (w) => {
1035
1114
  if (!e) return;
1036
- const l = u(g.changedTouches, e.identifier);
1037
- if (!l) {
1115
+ const u = s(w.changedTouches, e.identifier);
1116
+ if (!u) {
1038
1117
  e = null;
1039
1118
  return;
1040
1119
  }
1041
- const s = l.clientX - e.startX, v = e.fromLeftEdge ? s > 0 : s < 0;
1042
- e.moved && v && Math.abs(s) >= Mt && m(), e = null;
1043
- }, T = () => {
1120
+ const a = u.clientX - e.startX, C = e.fromLeftEdge ? a > 0 : a < 0;
1121
+ e.moved && C && Math.abs(a) >= Vt && m(), e = null;
1122
+ }, S = () => {
1044
1123
  e && (e.moved && m(), e = null);
1045
1124
  };
1046
1125
  return { initialize: () => {
1047
1126
  if (typeof window > "u" || o) return;
1048
1127
  o = !0;
1049
- const g = { passive: !0, capture: !0 };
1050
- window.addEventListener("touchstart", w, g), window.addEventListener("touchmove", E, g), window.addEventListener("touchend", A, g), window.addEventListener("touchcancel", T, g);
1128
+ const w = { passive: !0, capture: !0 };
1129
+ window.addEventListener("touchstart", h, w), window.addEventListener("touchmove", v, w), window.addEventListener("touchend", A, w), window.addEventListener("touchcancel", S, w);
1051
1130
  }, destroy: () => {
1052
1131
  if (typeof window > "u" || !o) return;
1053
1132
  o = !1;
1054
- const g = { capture: !0 };
1055
- window.removeEventListener("touchstart", w, g), window.removeEventListener("touchmove", E, g), window.removeEventListener("touchend", A, g), window.removeEventListener("touchcancel", T, g), f(), a(), e = null, i = !1, t = !1;
1133
+ const w = { capture: !0 };
1134
+ window.removeEventListener("touchstart", h, w), window.removeEventListener("touchmove", v, w), window.removeEventListener("touchend", A, w), window.removeEventListener("touchcancel", S, w), f(), l(), e = null, i = !1, t = !1;
1056
1135
  }, isSwipeBack: () => {
1057
- const g = i || t;
1058
- return g && f(), g;
1136
+ const w = i || t;
1137
+ return w && f(), w;
1059
1138
  }, onPageEnter: () => {
1060
- i = !1, f(), a(), r = setTimeout(() => {
1139
+ i = !1, f(), l(), r = setTimeout(() => {
1061
1140
  t = !1, r = null;
1062
1141
  }, 0);
1063
1142
  } };
1064
1143
  }
1065
- function Ft() {
1144
+ function Lt() {
1066
1145
  let e = null;
1067
1146
  function i() {
1068
1147
  if (e != null && e.from && (e != null && e.to) && (e != null && e.outResolve) && (e != null && e.inResolve)) {
@@ -1108,76 +1187,76 @@ function Ot() {
1108
1187
  }
1109
1188
  };
1110
1189
  }
1111
- function Ut(e, i) {
1190
+ function jt(e, i) {
1112
1191
  const {
1113
1192
  transitions: t = [],
1114
1193
  defaultTransition: n,
1115
- middleware: r = (l, s) => ({ from: l, to: s }),
1194
+ middleware: r = (u, a) => ({ from: u, to: a }),
1116
1195
  // Identity function as default
1117
- preserveScroll: o = (l) => l
1118
- } = e, { outFirst: u = !0 } = i || {}, f = u ? Ft() : Ot(), a = Ct(t), m = xt();
1196
+ preserveScroll: o = (u) => u
1197
+ } = e, { outFirst: s = !0 } = i || {}, f = s ? Lt() : Ot(), l = bt(t), m = Ft();
1119
1198
  m.initialize();
1120
1199
  const {
1121
- initializeContext: w,
1122
- calculateScrollOffset: E,
1200
+ initializeContext: h,
1201
+ calculateScrollOffset: v,
1123
1202
  evictScrollPosition: A,
1124
- shouldPreserve: T,
1125
- getScrollContainer: p,
1126
- getPositionedParentElement: y,
1127
- getScrollPosition: R
1128
- } = Pt({
1203
+ shouldPreserve: S,
1204
+ getScrollContainer: y,
1205
+ getPositionedParentElement: p,
1206
+ getScrollPosition: k
1207
+ } = Mt({
1129
1208
  preserveScroll: o
1130
- }), C = async (l, s) => {
1131
- const v = m.isSwipeBack();
1132
- f.trigger(l, s);
1133
- const c = await f.get(s);
1134
- if (s === "in" && m.onPageEnter(), !c) return () => ({});
1135
- if (v)
1136
- return s === "out" && c.from && !T(c.from) && A(c.from), () => ({});
1137
- const { from: h, to: S } = r(
1209
+ }), T = async (u, a) => {
1210
+ const C = m.isSwipeBack();
1211
+ f.trigger(u, a);
1212
+ const c = await f.get(a);
1213
+ if (a === "in" && m.onPageEnter(), !c) return () => ({});
1214
+ if (C)
1215
+ return a === "out" && c.from && !S(c.from) && A(c.from), () => ({});
1216
+ const { from: g, to: E } = r(
1138
1217
  c.from,
1139
1218
  c.to
1140
- ), k = bt(
1141
- h,
1142
- S,
1143
- a
1219
+ ), R = kt(
1220
+ g,
1221
+ E,
1222
+ l
1144
1223
  ) || n;
1145
- if (!k) return () => ({});
1146
- const M = E(c.from, c.to);
1147
- if (s === "out") {
1224
+ if (!R) return () => ({});
1225
+ const M = v(c.from, c.to);
1226
+ if (a === "out") {
1148
1227
  const x = {
1149
1228
  scrollOffset: M,
1150
- scroll: R(c.from),
1229
+ scroll: k(c.from),
1151
1230
  get scrollingElement() {
1152
- return p() || document.documentElement;
1231
+ return y() || document.documentElement;
1153
1232
  },
1154
1233
  get positionedParent() {
1155
- return y();
1234
+ return p();
1156
1235
  }
1157
1236
  };
1158
- return c.from && !T(c.from) && A(c.from), (_) => k.out(_, x);
1237
+ return c.from && !S(c.from) && A(c.from), (_) => R.out(_, x);
1159
1238
  } else {
1160
1239
  const x = {
1161
1240
  scrollOffset: M,
1162
1241
  get scroll() {
1163
- return R(c.to);
1242
+ return k(c.to);
1164
1243
  },
1165
1244
  get scrollingElement() {
1166
- return p() || document.documentElement;
1245
+ return y() || document.documentElement;
1167
1246
  },
1168
1247
  get positionedParent() {
1169
- return y();
1248
+ return p();
1170
1249
  }
1171
1250
  };
1172
- return (_) => k.in(_, x);
1251
+ return (_) => R.in(_, x);
1173
1252
  }
1174
1253
  };
1175
- return (l) => ({
1176
- key: l,
1177
- in: async (s) => (w(s, l), (await C(l, "in"))(s)),
1178
- out: async (s) => (await C(l, "out"))(s),
1254
+ return (u) => ({
1255
+ key: u,
1256
+ in: async (a) => (h(a, u), (await T(u, "in"))(a)),
1257
+ out: async (a) => (await T(u, "out"))(a),
1179
1258
  // Add page transition strategy for page-level transitions
1180
- [Z]: ht
1259
+ [Z]: gt
1181
1260
  });
1182
1261
  }
1183
1262
  export {
@@ -1185,23 +1264,24 @@ export {
1185
1264
  Q as SCOPE_READY_ATTR,
1186
1265
  Z as TRANSITION_STRATEGY,
1187
1266
  Ot as createAnyOrderDetector,
1188
- dt as createDefaultStrategy,
1189
- Ft as createOutFirstDetector,
1190
- ht as createPageTransitionStrategy,
1191
- Ut as createSggoiTransitionContext,
1192
- zt as createTransitionScope,
1267
+ ht as createDefaultStrategy,
1268
+ Lt as createOutFirstDetector,
1269
+ gt as createPageTransitionStrategy,
1270
+ jt as createSggoiTransitionContext,
1271
+ Nt as createTransitionScope,
1193
1272
  wt as findScope,
1194
- qt as getWatchedCount,
1195
- jt as isCssAnimation,
1196
- Gt as isMultiAnimation,
1197
- gt as isScopeReady,
1198
- Kt as isSingleAnimation,
1199
- $t as isTickAnimation,
1200
- Nt as isWatched,
1273
+ Wt as getWatchedCount,
1274
+ Gt as isCssAnimation,
1275
+ $t as isKeyframesAnimation,
1276
+ Zt as isMultiAnimation,
1277
+ yt as isScopeReady,
1278
+ Jt as isSingleAnimation,
1279
+ Qt as isTickAnimation,
1280
+ Xt as isWatched,
1201
1281
  W as normalizeSchedule,
1202
1282
  F as normalizeToMultiAnimation,
1203
- Wt as resetObserver,
1204
- Ht as transition,
1205
- Xt as triggerUnmount,
1206
- Et as watchUnmount
1283
+ Kt as resetObserver,
1284
+ Ut as transition,
1285
+ Ht as triggerUnmount,
1286
+ Ct as watchUnmount
1207
1287
  };