@flemo/core 1.19.0 → 1.20.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.mjs CHANGED
@@ -1,7 +1,7 @@
1
1
  import { createStore as e } from "zustand/vanilla";
2
2
  import { compile as t, match as n, parse as r, pathToRegexp as i } from "path-to-regexp";
3
3
  //#region src/core/TaskManger.ts
4
- var a = 1200, o = new class {
4
+ var a = 1200, o = 2, s = new class {
5
5
  tasks = /* @__PURE__ */ new Map();
6
6
  instanceId = Date.now().toString();
7
7
  isLocked = !1;
@@ -62,7 +62,7 @@ var a = 1200, o = new class {
62
62
  });
63
63
  }
64
64
  async onTaskStatusChange(e, t) {
65
- (t === "COMPLETED" || t === "FAILED" || t === "ROLLEDBACK") && (this.pendingTaskQueue = this.pendingTaskQueue.filter((t) => t.id !== e), await this.processPendingTasks(), this.notifyPendingWaiters());
65
+ (t === "COMPLETED" || t === "FAILED" || t === "ROLLEDBACK") && (this.gatePhases.delete(e), this.pendingTaskQueue = this.pendingTaskQueue.filter((t) => t.id !== e), await this.processPendingTasks(), this.notifyPendingWaiters());
66
66
  }
67
67
  async addTask(e, t = {}) {
68
68
  let n = t.id || this.generateTaskId();
@@ -155,10 +155,34 @@ var a = 1200, o = new class {
155
155
  }).catch(i);
156
156
  });
157
157
  }
158
+ gatePhases = /* @__PURE__ */ new Map();
159
+ markGateHeld(e) {
160
+ let t = this.gatePhases.get(e);
161
+ t?.phase !== "anchored" && this.gatePhases.set(e, {
162
+ phase: "held",
163
+ rearms: t?.rearms ?? 0
164
+ });
165
+ }
166
+ anchorGate(e) {
167
+ let t = this.gatePhases.get(e);
168
+ if (t?.phase === "anchored") return;
169
+ this.gatePhases.set(e, {
170
+ phase: "anchored",
171
+ rearms: t?.rearms ?? 0
172
+ });
173
+ let n = this.tasks.get(e);
174
+ !n || n.status !== "MANUAL_PENDING" && n.status !== "SIGNAL_PENDING" || (n.backstopTimer && (clearTimeout(n.backstopTimer), delete n.backstopTimer), this.armBackstop(n));
175
+ }
158
176
  armBackstop(e) {
159
177
  let t = e.control?.maxLifetimeMs;
160
178
  !t || t <= 0 || typeof setTimeout > "u" || (e.backstopTimer = setTimeout(() => {
161
- delete e.backstopTimer, this.resolveTask(e.id);
179
+ delete e.backstopTimer;
180
+ let t = this.gatePhases.get(e.id);
181
+ if (t?.phase === "held" && t.rearms < o) {
182
+ t.rearms += 1, this.armBackstop(e);
183
+ return;
184
+ }
185
+ this.resolveTask(e.id);
162
186
  }, t));
163
187
  }
164
188
  async resolveTask(e) {
@@ -166,7 +190,7 @@ var a = 1200, o = new class {
166
190
  if (t?.backstopTimer && (clearTimeout(t.backstopTimer), delete t.backstopTimer), !t || t.status !== "MANUAL_PENDING" && t.status !== "SIGNAL_PENDING") return !1;
167
191
  if (t.manualResolver) {
168
192
  if (t.control?.condition && !await t.control.condition()) return !1;
169
- t.status = "COMPLETED";
193
+ t.status = "COMPLETED", this.gatePhases.delete(e);
170
194
  let n = t.manualResolver;
171
195
  return n.resolve({
172
196
  success: !0,
@@ -189,7 +213,7 @@ var a = 1200, o = new class {
189
213
  }();
190
214
  //#endregion
191
215
  //#region src/history/store.ts
192
- function s(t = [], n = -1) {
216
+ function c(t = [], n = -1) {
193
217
  return e((e) => ({
194
218
  index: n,
195
219
  pendingIndex: n,
@@ -241,13 +265,13 @@ function s(t = [], n = -1) {
241
265
  }
242
266
  //#endregion
243
267
  //#region src/utils/getMatchedPathPattern.ts
244
- function c(e, t) {
268
+ function l(e, t) {
245
269
  return Array.isArray(e) ? e.find((e) => i(e).regexp.test(t)) ?? "" : i(e).regexp.test(t) ? e : "";
246
270
  }
247
271
  //#endregion
248
272
  //#region src/utils/getParams.ts
249
- function l(e, t, r) {
250
- let i = n(c(e, t))(t), a = new URLSearchParams(r), o = Object.fromEntries(a.entries());
273
+ function u(e, t, r) {
274
+ let i = n(l(e, t))(t), a = new URLSearchParams(r), o = Object.fromEntries(a.entries());
251
275
  return i ? {
252
276
  ...i.params,
253
277
  ...o
@@ -255,24 +279,24 @@ function l(e, t, r) {
255
279
  }
256
280
  //#endregion
257
281
  //#region src/history/seedInitialHistory.ts
258
- function u(e, t, n, r) {
282
+ function d(e, t, n, r) {
259
283
  return {
260
284
  id: "root",
261
285
  pathname: t,
262
- params: l(e, t, n),
286
+ params: u(e, t, n),
263
287
  transitionName: r,
264
288
  layoutId: null
265
289
  };
266
290
  }
267
291
  //#endregion
268
292
  //#region src/utils/isServer.ts
269
- function d() {
293
+ function f() {
270
294
  return typeof document > "u";
271
295
  }
272
296
  //#endregion
273
297
  //#region src/history/ensureWindowHistoryState.ts
274
- function f(e, t, n = {}) {
275
- if (d()) return;
298
+ function p(e, t, n = {}) {
299
+ if (f()) return;
276
300
  let r = {
277
301
  id: "root",
278
302
  index: 0,
@@ -294,23 +318,23 @@ function f(e, t, n = {}) {
294
318
  }
295
319
  //#endregion
296
320
  //#region src/history/seedRouterEntry.ts
297
- function p(e) {
321
+ function m(e) {
298
322
  let { driver: t, routerKey: n, nested: r, seedPathname: i, defaultTransitionName: a, rootParams: o } = e;
299
- if (d()) return;
323
+ if (f()) return;
300
324
  if (r) {
301
325
  let e = t.readPathname().replace(/\/+$/, "") || "/";
302
326
  if (!(e === i || e !== "/" && i.startsWith(`${e}/`))) return;
303
327
  }
304
328
  let s = r && n !== null ? t.readState() == null : !1;
305
- f(n, a, o), r && n !== null && s && t.readPathname() !== i && t.replaceState(t.readState(), i);
329
+ p(n, a, o), r && n !== null && s && t.readPathname() !== i && t.replaceState(t.readState(), i);
306
330
  }
307
331
  //#endregion
308
332
  //#region src/history/historyDriver.ts
309
- var m = (e, t) => ({
333
+ var h = (e, t) => ({
310
334
  ...window.history.state ?? {},
311
335
  [e]: t
312
336
  });
313
- function h(e) {
337
+ function g(e) {
314
338
  return e === void 0 ? {
315
339
  readState: () => window.history.state,
316
340
  readPathname: () => window.location.pathname,
@@ -328,8 +352,8 @@ function h(e) {
328
352
  } : {
329
353
  readState: () => window.history.state?.[e] ?? null,
330
354
  readPathname: () => window.location.pathname,
331
- pushState: (t, n) => window.history.pushState(m(e, t), "", n),
332
- replaceState: (t, n) => window.history.replaceState(m(e, t), "", n),
355
+ pushState: (t, n) => window.history.pushState(h(e, t), "", n),
356
+ replaceState: (t, n) => window.history.replaceState(h(e, t), "", n),
333
357
  go: (e) => window.history.go(e),
334
358
  back: () => window.history.back(),
335
359
  subscribe: (t) => {
@@ -343,7 +367,7 @@ function h(e) {
343
367
  }
344
368
  //#endregion
345
369
  //#region src/navigate/selfPopGuard.ts
346
- function g() {
370
+ function _() {
347
371
  let e = 0;
348
372
  return {
349
373
  mark() {
@@ -354,26 +378,26 @@ function g() {
354
378
  }
355
379
  };
356
380
  }
357
- var _ = g();
358
- function v() {
359
- _.mark();
360
- }
381
+ var v = _();
361
382
  function y() {
362
- return _.consume();
383
+ v.mark();
384
+ }
385
+ function b() {
386
+ return v.consume();
363
387
  }
364
388
  //#endregion
365
389
  //#region src/history/createHistorySync.ts
366
- function b(e) {
367
- let { stores: t, driver: n = h(), consume: r = y } = e, i = !1, s = 0, c = async (e) => {
368
- let n = e.state, r = t.history.getState().truncationEpoch, i = o.generateTaskId();
369
- s += 1;
390
+ function x(e) {
391
+ let { stores: t, driver: n = g(), consume: r = b } = e, i = !1, o = 0, c = async (e) => {
392
+ let n = e.state, r = t.history.getState().truncationEpoch, i = s.generateTaskId();
393
+ o += 1;
370
394
  try {
371
395
  await l(e, n, r, i);
372
396
  } finally {
373
- --s;
397
+ --o;
374
398
  }
375
- }, l = async (r, s, l, u) => {
376
- (await o.addTask(async (a) => {
399
+ }, l = async (r, o, l, u) => {
400
+ (await s.addTask(async (a) => {
377
401
  if (i) {
378
402
  a.abort();
379
403
  return;
@@ -382,41 +406,41 @@ function b(e) {
382
406
  a.abort();
383
407
  return;
384
408
  }
385
- let { setStatus: o, setTransitionTaskId: d } = t.navigate.getState(), { index: f, histories: p, addHistory: m, popHistory: h, setPendingIndex: g } = t.history.getState();
409
+ let { setStatus: s, setTransitionTaskId: d } = t.navigate.getState(), { index: f, histories: p, addHistory: m, popHistory: h, setPendingIndex: g } = t.history.getState();
386
410
  if (l !== t.history.getState().truncationEpoch && n.readState()?.id !== r.state?.id) {
387
411
  a.abort();
388
412
  return;
389
413
  }
390
- if (!s?.id) {
414
+ if (!o?.id) {
391
415
  a.abort();
392
416
  return;
393
417
  }
394
- let _ = p.findIndex((e) => e.id === s.id);
418
+ let _ = p.findIndex((e) => e.id === o.id);
395
419
  if (_ === f) {
396
420
  a.abort();
397
421
  return;
398
422
  }
399
423
  let v = {
400
- id: s.id,
424
+ id: o.id,
401
425
  pathname: r.pathname,
402
- params: s.params,
403
- transitionName: s.transitionName,
404
- layoutId: s.layoutId,
405
- frameIndex: s.index
426
+ params: o.params,
427
+ transitionName: o.transitionName,
428
+ layoutId: o.layoutId,
429
+ frameIndex: o.index
406
430
  };
407
431
  if (_ === -1) {
408
432
  let e = p[f]?.frameIndex ?? f;
409
- if (!(s.index > e && (s.status === "PUSHING" || s.status === "REPLACING"))) {
433
+ if (!(o.index > e && (o.status === "PUSHING" || o.status === "REPLACING"))) {
410
434
  t.history.getState().adoptHistory(v), a.abort();
411
435
  return;
412
436
  }
413
- return d(u), o(s.status === "REPLACING" ? "REPLACING" : "PUSHING"), m(v), async () => {
414
- o("COMPLETED");
437
+ return d(u), s(o.status === "REPLACING" ? "REPLACING" : "PUSHING"), m(v), async () => {
438
+ s("COMPLETED");
415
439
  };
416
440
  }
417
441
  let y = f - 1;
418
- return d(u), g(y), o("POPPING"), async () => {
419
- h(y + 1), o("COMPLETED"), y > _ && !i && c(r);
442
+ return d(u), g(y), s("POPPING"), async () => {
443
+ h(y + 1), s("COMPLETED"), y > _ && !i && c(r);
420
444
  };
421
445
  }, {
422
446
  id: u,
@@ -425,10 +449,10 @@ function b(e) {
425
449
  maxLifetimeMs: a
426
450
  }
427
451
  })).result?.();
428
- }, u = null, d = 0, f = "", p = 0, m = () => typeof performance < "u" ? performance.now() : Number.MAX_VALUE, g = () => {
452
+ }, u = null, d = 0, f = "", p = 0, m = () => typeof performance < "u" ? performance.now() : Number.MAX_VALUE, h = () => {
429
453
  i || typeof setTimeout > "u" || (u && clearTimeout(u), u = setTimeout(function e() {
430
454
  if (u = null, i) return;
431
- if (s > 0 || o.pendingTaskIds.length > 0 || m() - d < 400) {
455
+ if (o > 0 || s.pendingTaskIds.length > 0 || m() - d < 400) {
432
456
  u = setTimeout(e, 150);
433
457
  return;
434
458
  }
@@ -447,42 +471,42 @@ function b(e) {
447
471
  }), u = setTimeout(e, 150);
448
472
  }, 150));
449
473
  }, _ = n.subscribe((e) => {
450
- if (!i && (d = m(), g(), C(e.pathname), !r())) return c(e);
474
+ if (!i && (d = m(), h(), w(e.pathname), !r())) return c(e);
451
475
  });
452
- if (e.routerKey && e.zoneEntryId && T(n, e.zoneEntryId)) {
453
- let n = t.history.getState().histories[t.history.getState().index]?.pathname, r = w(n);
476
+ if (e.routerKey && e.zoneEntryId && E(n, e.zoneEntryId)) {
477
+ let n = t.history.getState().histories[t.history.getState().index]?.pathname, r = T(n);
454
478
  for (let t of r) c({
455
479
  state: t.raw?.[e.routerKey] ?? null,
456
480
  pathname: t.pathname
457
481
  });
458
482
  }
459
- return g(), () => {
483
+ return h(), () => {
460
484
  i = !0, u && clearTimeout(u), _();
461
485
  };
462
486
  }
463
- var x = [], S = !1, C = (e) => {
464
- S || typeof window > "u" || (S = !0, queueMicrotask(() => {
465
- S = !1;
466
- }), x.push({
487
+ var S = [], C = !1, w = (e) => {
488
+ C || typeof window > "u" || (C = !0, queueMicrotask(() => {
489
+ C = !1;
490
+ }), S.push({
467
491
  raw: window.history.state,
468
492
  pathname: e
469
493
  }));
470
- }, w = (e) => {
494
+ }, T = (e) => {
471
495
  if (!e) return [];
472
- for (let t = x.length - 1; t >= 0; --t) if (x[t].pathname === e) return x.slice(t + 1);
496
+ for (let t = S.length - 1; t >= 0; --t) if (S[t].pathname === e) return S.slice(t + 1);
473
497
  return [];
474
- }, T = (e, t) => {
498
+ }, E = (e, t) => {
475
499
  if (typeof window > "u") return !1;
476
500
  let n = window.history.state;
477
501
  return n ? Object.values(n).some((e) => !!e && typeof e == "object" && e.id === t) : !1;
478
502
  };
479
- function E(e, t) {
480
- for (let n = x.length - 1; n >= 0; --n) if (x[n].pathname === t) return x[n].raw?.[e] ?? null;
503
+ function D(e, t) {
504
+ for (let n = S.length - 1; n >= 0; --n) if (S[n].pathname === t) return S[n].raw?.[e] ?? null;
481
505
  return null;
482
506
  }
483
- var D = /* @__PURE__ */ new WeakMap();
507
+ var O = /* @__PURE__ */ new WeakMap();
484
508
  function ee(e) {
485
- D.has(e) || D.set(e, b({
509
+ O.has(e) || O.set(e, x({
486
510
  stores: e,
487
511
  driver: e.driver,
488
512
  consume: e.consume,
@@ -492,11 +516,11 @@ function ee(e) {
492
516
  }));
493
517
  }
494
518
  function te(e) {
495
- e.persistent || (D.get(e)?.(), D.delete(e));
519
+ e.persistent || (O.get(e)?.(), O.delete(e));
496
520
  }
497
521
  //#endregion
498
522
  //#region src/history/memoryHistoryDriver.ts
499
- function ne(e) {
523
+ function k(e) {
500
524
  let t = [{
501
525
  state: e?.state ?? null,
502
526
  url: e?.url ?? "/"
@@ -538,7 +562,7 @@ function ne(e) {
538
562
  }
539
563
  //#endregion
540
564
  //#region src/navigate/store.ts
541
- function re() {
565
+ function A() {
542
566
  return e((e) => ({
543
567
  status: "IDLE",
544
568
  transitionTaskId: null,
@@ -548,11 +572,11 @@ function re() {
548
572
  }
549
573
  //#endregion
550
574
  //#region src/navigate/createNavigationController.ts
551
- var O = (e, t, n) => {
575
+ var j = (e, t, n) => {
552
576
  let { regexp: r } = i(e);
553
577
  for (let e = t - 1; e >= 0; e--) if (r.test(n[e].pathname)) return t - e;
554
578
  return -1;
555
- }, k = (e, t) => typeof e == "number" && Number.isFinite(e) ? Math.max(0, Math.trunc(e)) : t, A = async (e, t, n, r) => {
579
+ }, M = (e, t) => typeof e == "number" && Number.isFinite(e) ? Math.max(0, Math.trunc(e)) : t, N = async (e, t, n, r) => {
556
580
  let i, a = new Promise((t) => {
557
581
  i = e.subscribe(() => t(!0));
558
582
  }), o = new Promise((e) => setTimeout(() => e(!1), 200));
@@ -560,8 +584,8 @@ var O = (e, t, n) => {
560
584
  let s = await Promise.race([a, o]);
561
585
  i(), s && r();
562
586
  };
563
- function ie(e) {
564
- let { stores: t, buildPathname: n, driver: r = h(), markSelfInduced: i = v } = e, s = () => t.history.getState().bumpTruncationEpoch(), c = () => {
587
+ function ne(e) {
588
+ let { stores: t, buildPathname: n, driver: r = g(), markSelfInduced: i = y } = e, o = () => t.history.getState().bumpTruncationEpoch(), c = () => {
565
589
  let e = r.readState();
566
590
  if (!e?.id) return null;
567
591
  let { index: n, histories: i, adoptHistory: a, truncateHistory: o } = t.history.getState();
@@ -578,18 +602,18 @@ function ie(e) {
578
602
  }, l = async (e, l, u) => {
579
603
  let { status: d } = t.navigate.getState();
580
604
  if (d !== "COMPLETED" && d !== "IDLE") return;
581
- let f = t.transition.getState().defaultTransitionName, { transitionName: p = f, layoutId: m = null } = u ?? {}, h = o.generateTaskId();
582
- (await o.addTask(async (a) => {
605
+ let f = t.transition.getState().defaultTransitionName, { transitionName: p = f, layoutId: m = null } = u ?? {}, h = s.generateTaskId();
606
+ (await s.addTask(async (a) => {
583
607
  if (t.life && !t.life.alive) {
584
608
  a.abort();
585
609
  return;
586
610
  }
587
- let o = c(), { index: d, histories: f, addHistory: g, popHistories: _ } = t.history.getState(), v = (() => {
611
+ let s = c(), { index: d, histories: f, addHistory: g, popHistories: _ } = t.history.getState(), v = (() => {
588
612
  if (u?.until != null) {
589
- let e = O(u.until, d, f);
613
+ let e = j(u.until, d, f);
590
614
  return e < 0 ? 0 : e;
591
615
  }
592
- return Math.min(k(u?.skip, 0), Math.max(0, d));
616
+ return Math.min(M(u?.skip, 0), Math.max(0, d));
593
617
  })(), { setStatus: y, setTransitionTaskId: b } = t.navigate.getState();
594
618
  y("PUSHING"), b(h);
595
619
  let { pathname: x, toPathname: S } = n(e, l ?? {}), C = {
@@ -598,8 +622,8 @@ function ie(e) {
598
622
  params: l ?? {},
599
623
  transitionName: p,
600
624
  layoutId: m
601
- }, w = o?.index ?? f[d]?.frameIndex ?? d;
602
- if (v === 0) return s(), r.pushState({
625
+ }, w = s?.index ?? f[d]?.frameIndex ?? d;
626
+ if (v === 0) return o(), r.pushState({
603
627
  id: h,
604
628
  index: w + 1,
605
629
  status: "PUSHING",
@@ -616,8 +640,8 @@ function ie(e) {
616
640
  return g({
617
641
  ...C,
618
642
  frameIndex: T + 1
619
- }), await A(r, i, v, () => {
620
- s(), r.pushState({
643
+ }), await N(r, i, v, () => {
644
+ o(), r.pushState({
621
645
  id: h,
622
646
  index: T + 1,
623
647
  status: "PUSHING",
@@ -638,18 +662,18 @@ function ie(e) {
638
662
  }, u = async (e, l, u) => {
639
663
  let { status: d } = t.navigate.getState();
640
664
  if (d !== "COMPLETED" && d !== "IDLE") return;
641
- let f = t.transition.getState().defaultTransitionName, { transitionName: p = f, layoutId: m = null } = u ?? {}, h = o.generateTaskId();
642
- (await o.addTask(async (a) => {
665
+ let f = t.transition.getState().defaultTransitionName, { transitionName: p = f, layoutId: m = null } = u ?? {}, h = s.generateTaskId();
666
+ (await s.addTask(async (a) => {
643
667
  if (t.life && !t.life.alive) {
644
668
  a.abort();
645
669
  return;
646
670
  }
647
- let o = c(), { index: d, histories: f, addHistory: g, replaceHistory: _, popHistories: v } = t.history.getState(), y = (() => {
671
+ let s = c(), { index: d, histories: f, addHistory: g, replaceHistory: _, popHistories: v } = t.history.getState(), y = (() => {
648
672
  if (u?.until != null) {
649
- let e = O(u.until, d, f);
673
+ let e = j(u.until, d, f);
650
674
  return e < 0 ? 0 : e + 1;
651
675
  }
652
- return Math.min(k(u?.skip, 0) + 1, d + 1);
676
+ return Math.min(M(u?.skip, 0) + 1, d + 1);
653
677
  })();
654
678
  if (y <= 0) {
655
679
  a.abort();
@@ -663,8 +687,8 @@ function ie(e) {
663
687
  params: l ?? {},
664
688
  transitionName: p,
665
689
  layoutId: m
666
- }, T = o?.index ?? f[d]?.frameIndex ?? d;
667
- if (y === 1) return s(), r.replaceState({
690
+ }, T = s?.index ?? f[d]?.frameIndex ?? d;
691
+ if (y === 1) return o(), r.replaceState({
668
692
  id: h,
669
693
  index: T,
670
694
  status: "REPLACING",
@@ -681,8 +705,8 @@ function ie(e) {
681
705
  return v(y - 1), g({
682
706
  ...w,
683
707
  frameIndex: E
684
- }), y <= d ? await A(r, i, y, () => {
685
- s(), r.pushState({
708
+ }), y <= d ? await N(r, i, y, () => {
709
+ o(), r.pushState({
686
710
  id: h,
687
711
  index: E,
688
712
  status: "REPLACING",
@@ -690,8 +714,8 @@ function ie(e) {
690
714
  transitionName: p,
691
715
  layoutId: m
692
716
  }, S);
693
- }) : await A(r, i, d, () => {
694
- s(), r.replaceState({
717
+ }) : await N(r, i, d, () => {
718
+ o(), r.replaceState({
695
719
  id: h,
696
720
  index: E,
697
721
  status: "REPLACING",
@@ -710,30 +734,30 @@ function ie(e) {
710
734
  }
711
735
  })).result?.();
712
736
  }, d = async (e, n) => {
713
- let s = o.generateTaskId();
714
- (await o.addTask(async (a) => {
737
+ let o = s.generateTaskId();
738
+ (await s.addTask(async (a) => {
715
739
  if (t.life && !t.life.alive) {
716
740
  a.abort();
717
741
  return;
718
742
  }
719
743
  c();
720
- let { index: o, histories: l, popHistory: u, popHistories: d, setPendingIndex: f, setTransitionName: p } = t.history.getState();
721
- if (o <= 0) {
744
+ let { index: s, histories: l, popHistory: u, popHistories: d, setPendingIndex: f, setTransitionName: p } = t.history.getState();
745
+ if (s <= 0) {
722
746
  a.abort();
723
747
  return;
724
748
  }
725
- let m = Math.min(e(o, l), o);
749
+ let m = Math.min(e(s, l), s);
726
750
  if (m <= 0) {
727
751
  a.abort();
728
752
  return;
729
753
  }
730
- f(o - m);
754
+ f(s - m);
731
755
  let { setStatus: h, setTransitionTaskId: g } = t.navigate.getState();
732
- return n && p(o, n), h("POPPING"), g(s), d(m - 1), i(), m === 1 ? r.back() : r.go(-m), async () => {
756
+ return n && p(s, n), h("POPPING"), g(o), d(m - 1), i(), m === 1 ? r.back() : r.go(-m), async () => {
733
757
  u(t.history.getState().index), h("COMPLETED");
734
758
  };
735
759
  }, {
736
- id: s,
760
+ id: o,
737
761
  control: {
738
762
  manual: !0,
739
763
  maxLifetimeMs: a
@@ -746,10 +770,10 @@ function ie(e) {
746
770
  pop: async (e) => {
747
771
  await d((t, n) => {
748
772
  if (e?.until != null) {
749
- let r = O(e.until, t, n);
773
+ let r = j(e.until, t, n);
750
774
  return r < 0 ? 0 : r;
751
775
  }
752
- let r = k(e?.skip, 1);
776
+ let r = M(e?.skip, 1);
753
777
  return r <= 0 ? 0 : Math.min(r, t);
754
778
  }, e?.transitionName);
755
779
  }
@@ -757,18 +781,18 @@ function ie(e) {
757
781
  }
758
782
  //#endregion
759
783
  //#region src/navigate/createStepController.ts
760
- var j = (e) => {
784
+ var re = (e) => {
761
785
  let t = e;
762
786
  return t?.step ? t.params ?? {} : null;
763
- }, ae = (e, t) => {
787
+ }, ie = (e, t) => {
764
788
  let n = new URLSearchParams(Object.fromEntries(Object.entries(t).map(([e, t]) => [e, String(t)]))).toString();
765
789
  return n ? `${e}?${n}` : e;
766
790
  };
767
- function oe(e) {
768
- let { stores: t, driver: n, markSelfInduced: r, buildStepPathname: i, applyParams: s } = e;
791
+ function P(e) {
792
+ let { stores: t, driver: n, markSelfInduced: r, buildStepPathname: i, applyParams: o } = e;
769
793
  return {
770
794
  pushStep: async (e) => {
771
- (await o.addTask(async () => {
795
+ (await s.addTask(async () => {
772
796
  let t = i(e), r = n.readState();
773
797
  return r?.step || n.replaceState({
774
798
  ...r,
@@ -777,35 +801,35 @@ function oe(e) {
777
801
  ...n.readState(),
778
802
  step: !0,
779
803
  params: e
780
- }, t), async () => s(e);
804
+ }, t), async () => o(e);
781
805
  })).result?.();
782
806
  },
783
807
  replaceStep: async (e) => {
784
- (await o.addTask(async () => {
808
+ (await s.addTask(async () => {
785
809
  let t = i(e);
786
810
  return n.replaceState({
787
811
  ...n.readState(),
788
812
  step: !0,
789
813
  params: e
790
- }, t), async () => s(e);
814
+ }, t), async () => o(e);
791
815
  })).result?.();
792
816
  },
793
817
  popStep: async () => {
794
- let e = o.generateTaskId();
795
- (await o.addTask(async (i) => {
818
+ let e = s.generateTaskId();
819
+ (await s.addTask(async (i) => {
796
820
  let a = new Promise((e) => {
797
821
  let t = n.subscribe((n) => {
798
822
  t(), e(n.state);
799
823
  });
800
- }), o = new Promise((e) => setTimeout(() => e(void 0), 200));
824
+ }), s = new Promise((e) => setTimeout(() => e(void 0), 200));
801
825
  r(), n.back();
802
- let c = await Promise.race([a, o]);
826
+ let c = await Promise.race([a, s]);
803
827
  if (!c) {
804
828
  i.abort();
805
829
  return;
806
830
  }
807
831
  if (c.step) {
808
- s(c.params ?? {}), i.abort();
832
+ o(c.params ?? {}), i.abort();
809
833
  return;
810
834
  }
811
835
  let { setStatus: l, setTransitionTaskId: u } = t.navigate.getState(), { index: d, popHistory: f } = t.history.getState();
@@ -822,17 +846,17 @@ function oe(e) {
822
846
  }
823
847
  };
824
848
  }
825
- function se(e, t) {
849
+ function ae(e, t) {
826
850
  return e.subscribe((e) => {
827
851
  let n = e.state;
828
- n?.step && o.addTask(async () => {
852
+ n?.step && s.addTask(async () => {
829
853
  t(n.params ?? {});
830
854
  });
831
855
  });
832
856
  }
833
857
  //#endregion
834
858
  //#region src/transition/store.ts
835
- function ce(t = "cupertino") {
859
+ function oe(t = "cupertino") {
836
860
  return e((e) => ({
837
861
  defaultTransitionName: t,
838
862
  setDefaultTransitionName: (t) => e({ defaultTransitionName: t })
@@ -840,12 +864,12 @@ function ce(t = "cupertino") {
840
864
  }
841
865
  //#endregion
842
866
  //#region src/utils/matchesPathname.ts
843
- function le(e, t) {
867
+ function se(e, t) {
844
868
  return i(e).regexp.test(t);
845
869
  }
846
870
  //#endregion
847
871
  //#region src/screen/store.ts
848
- function ue() {
872
+ function F() {
849
873
  return e((e) => ({
850
874
  dragStatus: "IDLE",
851
875
  replaceTransitionStatus: "IDLE",
@@ -876,25 +900,25 @@ function ue() {
876
900
  }
877
901
  //#endregion
878
902
  //#region src/core/createRouterScope.ts
879
- var de = {
903
+ var ce = {
880
904
  mark: () => {},
881
905
  consume: () => !1
882
- }, fe = /* @__PURE__ */ new Map();
883
- function pe(e) {
884
- let { routePaths: t, pathname: n, search: r, defaultTransitionName: i, memory: a, browserDriver: o } = e, c = d() ? void 0 : e.persistKey;
885
- if (c) {
886
- let e = fe.get(c);
906
+ }, le = /* @__PURE__ */ new Map();
907
+ function ue(e) {
908
+ let { routePaths: t, pathname: n, search: r, defaultTransitionName: i, memory: a, browserDriver: o } = e, s = f() ? void 0 : e.persistKey;
909
+ if (s) {
910
+ let e = le.get(s);
887
911
  if (e) {
888
912
  e.life.alive = !0, e.navigate.getState().setStatus("IDLE"), e.navigate.getState().setTransitionTaskId(null);
889
913
  let t = e.history.getState();
890
914
  return t.setPendingIndex(t.index), e;
891
915
  }
892
916
  }
893
- let l = u(t, n, r, i), f = (e.routerKey && !d() ? E(e.routerKey, n) : null) ?? (o && !d() ? o.readState() : null), p = f?.id ? {
917
+ let l = d(t, n, r, i), u = (e.routerKey && !f() ? D(e.routerKey, n) : null) ?? (o && !f() ? o.readState() : null), p = u?.id ? {
894
918
  ...l,
895
- id: f.id,
896
- params: f.params ?? l.params,
897
- frameIndex: f.index ?? 0
919
+ id: u.id,
920
+ params: u.params ?? l.params,
921
+ frameIndex: u.index ?? 0
898
922
  } : {
899
923
  ...l,
900
924
  frameIndex: 0
@@ -903,7 +927,7 @@ function pe(e) {
903
927
  index: 0,
904
928
  histories: [p]
905
929
  }), e.hostedScope;
906
- let m = a ? ne({
930
+ let m = a ? k({
907
931
  state: {
908
932
  id: p.id,
909
933
  index: 0,
@@ -913,25 +937,25 @@ function pe(e) {
913
937
  layoutId: p.layoutId
914
938
  },
915
939
  url: p.pathname
916
- }) : o, h = a ? de : g(), _ = {
917
- history: s([p], 0),
918
- navigate: re(),
919
- transition: ce(i),
920
- screen: ue(),
940
+ }) : o, h = a ? ce : _(), g = {
941
+ history: c([p], 0),
942
+ navigate: A(),
943
+ transition: oe(i),
944
+ screen: F(),
921
945
  driver: m,
922
946
  markSelfInduced: h.mark,
923
947
  consume: h.consume,
924
948
  routerKey: e.routerKey,
925
949
  zoneEntryId: e.zoneEntryId,
926
- ownsPathname: (e) => le(t, e),
927
- persistent: !!c,
950
+ ownsPathname: (e) => se(t, e),
951
+ persistent: !!s,
928
952
  life: { alive: !0 }
929
953
  };
930
- return c && fe.set(c, _), _;
954
+ return s && le.set(s, g), g;
931
955
  }
932
956
  //#endregion
933
957
  //#region src/screen/createScreenSelector.ts
934
- function me(e, t) {
958
+ function de(e, t) {
935
959
  return e.map((n, r) => ({
936
960
  ...n,
937
961
  isActive: r === t,
@@ -944,13 +968,13 @@ function me(e, t) {
944
968
  }
945
969
  //#endregion
946
970
  //#region src/screen/computeScreenFreeze.ts
947
- function he(e) {
971
+ function I(e) {
948
972
  let t = e.status === "COMPLETED" && e.dragStatus === "IDLE";
949
973
  return !e.isActive && t || e.isPrev && e.index - 2 <= e.zIndex && e.replaceTransitionStatus === "IDLE" || e.isPrev && e.index - 2 > e.zIndex;
950
974
  }
951
975
  //#endregion
952
976
  //#region src/transition/createTransition.ts
953
- function M({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exitBack: o, options: s }) {
977
+ function L({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exitBack: o, options: s }) {
954
978
  return {
955
979
  name: e,
956
980
  initial: t,
@@ -971,7 +995,7 @@ function M({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exit
971
995
  }
972
996
  //#endregion
973
997
  //#region src/transition/createRawTransition.ts
974
- function ge({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnExit: l, completedOnEnter: u, options: d }) {
998
+ function R({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnExit: l, completedOnEnter: u, options: d }) {
975
999
  return {
976
1000
  name: e,
977
1001
  initial: t,
@@ -992,10 +1016,10 @@ function ge({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
992
1016
  }
993
1017
  //#endregion
994
1018
  //#region src/transition/cupertino.ts
995
- var _e = (e, t, n) => {
1019
+ var fe = (e, t, n) => {
996
1020
  let [r, i] = t, [a, o] = n;
997
1021
  return i === r ? a : a + (e - r) / (i - r) * (o - a);
998
- }, ve = M({
1022
+ }, pe = L({
999
1023
  name: "cupertino",
1000
1024
  initial: { x: "100%" },
1001
1025
  idle: {
@@ -1055,7 +1079,7 @@ var _e = (e, t, n) => {
1055
1079
  swipeDirection: "x",
1056
1080
  onSwipeStart: async () => !0,
1057
1081
  onSwipe: (e, t, { animate: n, currentScreen: r, prevScreen: i, onProgress: a }) => {
1058
- let { offset: o } = t, s = o.x, c = _e(s, [0, window.innerWidth], [0, 100]);
1082
+ let { offset: o } = t, s = o.x, c = fe(s, [0, window.innerWidth], [0, 100]);
1059
1083
  return a?.(!0, c), n(r, { x: Math.max(0, s) }, { duration: 0 }), n(i, { x: `${-35 + c * .35}%` }, { duration: 0 }), c;
1060
1084
  },
1061
1085
  onSwipeEnd: async (e, t, { animate: n, currentScreen: r, prevScreen: i, onStart: a }) => {
@@ -1079,10 +1103,10 @@ var _e = (e, t, n) => {
1079
1103
  })]), c;
1080
1104
  }
1081
1105
  }
1082
- }), ye = (e, t, n) => {
1106
+ }), me = (e, t, n) => {
1083
1107
  let [r, i] = t, [a, o] = n;
1084
1108
  return i === r ? a : a + (e - r) / (i - r) * (o - a);
1085
- }, be = M({
1109
+ }, he = L({
1086
1110
  name: "layout",
1087
1111
  initial: { opacity: .97 },
1088
1112
  idle: {
@@ -1110,7 +1134,7 @@ var _e = (e, t, n) => {
1110
1134
  swipeDirection: "y",
1111
1135
  onSwipeStart: async () => !0,
1112
1136
  onSwipe: (e, t, { animate: n, currentScreen: r, onProgress: i }) => {
1113
- let { offset: a } = t, o = a.y, s = Math.max(0, Math.min(56, o)), c = ye(s, [0, 56], [1, .96]), l = Math.max(0, o - 56), u = Math.min(1, l / 160), d = Math.sqrt(u) * 12, f = Math.max(0, s + d), p = Math.min(56, f);
1137
+ let { offset: a } = t, o = a.y, s = Math.max(0, Math.min(56, o)), c = me(s, [0, 56], [1, .96]), l = Math.max(0, o - 56), u = Math.min(1, l / 160), d = Math.sqrt(u) * 12, f = Math.max(0, s + d), p = Math.min(56, f);
1114
1138
  return i?.(!0, 100), n(r, {
1115
1139
  y: f,
1116
1140
  opacity: c
@@ -1127,7 +1151,7 @@ var _e = (e, t, n) => {
1127
1151
  }, { duration: .3 })]), c;
1128
1152
  }
1129
1153
  }
1130
- }), xe = M({
1154
+ }), ge = L({
1131
1155
  name: "material",
1132
1156
  initial: { y: "100%" },
1133
1157
  idle: {
@@ -1235,7 +1259,7 @@ var _e = (e, t, n) => {
1235
1259
  })]), c;
1236
1260
  }
1237
1261
  }
1238
- }), Se = M({
1262
+ }), _e = L({
1239
1263
  name: "none",
1240
1264
  initial: {},
1241
1265
  idle: {
@@ -1258,20 +1282,20 @@ var _e = (e, t, n) => {
1258
1282
  value: {},
1259
1283
  options: { duration: 0 }
1260
1284
  }
1261
- }), N = new Map([
1262
- ["none", Se],
1263
- ["cupertino", ve],
1264
- ["material", xe],
1265
- ["layout", be]
1285
+ }), z = new Map([
1286
+ ["none", _e],
1287
+ ["cupertino", pe],
1288
+ ["material", ge],
1289
+ ["layout", he]
1266
1290
  ]);
1267
1291
  //#endregion
1268
1292
  //#region src/transition/resolveTransition.ts
1269
- function P(e) {
1270
- return N.get(e) ?? N.get("none");
1293
+ function B(e) {
1294
+ return z.get(e) ?? z.get("none");
1271
1295
  }
1272
1296
  //#endregion
1273
1297
  //#region src/transition/decorator/createDecorator.ts
1274
- function Ce({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1298
+ function ve({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1275
1299
  return {
1276
1300
  name: e,
1277
1301
  initial: t,
@@ -1292,7 +1316,7 @@ function Ce({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1292
1316
  }
1293
1317
  //#endregion
1294
1318
  //#region src/transition/decorator/createRawDecorator.ts
1295
- function we({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
1319
+ function ye({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
1296
1320
  return {
1297
1321
  name: e,
1298
1322
  initial: t,
@@ -1313,30 +1337,30 @@ function we({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
1313
1337
  }
1314
1338
  //#endregion
1315
1339
  //#region src/transition/decorator/overlay.ts
1316
- var F = "rgba(0, 0, 0, 0.2)", Te = Ce({
1340
+ var be = "rgba(0, 0, 0, 0.2)", xe = ve({
1317
1341
  name: "overlay",
1318
1342
  initial: {
1319
1343
  opacity: 0,
1320
- backgroundColor: F
1344
+ backgroundColor: be
1321
1345
  },
1322
1346
  idle: {
1323
1347
  value: {
1324
1348
  opacity: 0,
1325
- backgroundColor: F
1349
+ backgroundColor: be
1326
1350
  },
1327
1351
  options: { duration: 0 }
1328
1352
  },
1329
1353
  enter: {
1330
1354
  value: {
1331
1355
  opacity: 1,
1332
- backgroundColor: F
1356
+ backgroundColor: be
1333
1357
  },
1334
1358
  options: { duration: .6 }
1335
1359
  },
1336
1360
  exit: {
1337
1361
  value: {
1338
1362
  opacity: 0,
1339
- backgroundColor: F
1363
+ backgroundColor: be
1340
1364
  },
1341
1365
  options: { duration: .6 }
1342
1366
  },
@@ -1345,10 +1369,10 @@ var F = "rgba(0, 0, 0, 0.2)", Te = Ce({
1345
1369
  onSwipe: (e, t, { animate: n, prevDecorator: r }) => n(r, { opacity: Math.max(0, 1 - t / 100) }, { duration: 0 }),
1346
1370
  onSwipeEnd: (e, { animate: t, prevDecorator: n }) => t(n, { opacity: +!e }, { duration: .3 })
1347
1371
  }
1348
- }), I = new Map([["overlay", Te]]);
1372
+ }), V = new Map([["overlay", xe]]);
1349
1373
  //#endregion
1350
1374
  //#region src/transition/partTransition/createPartTransition.ts
1351
- function Ee({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1375
+ function Se({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1352
1376
  return {
1353
1377
  name: e,
1354
1378
  initial: t,
@@ -1369,7 +1393,7 @@ function Ee({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1369
1393
  }
1370
1394
  //#endregion
1371
1395
  //#region src/transition/partTransition/createRawPartTransition.ts
1372
- function De({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
1396
+ function Ce({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
1373
1397
  return {
1374
1398
  name: e,
1375
1399
  initial: t,
@@ -1390,7 +1414,7 @@ function De({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
1390
1414
  }
1391
1415
  //#endregion
1392
1416
  //#region src/transition/partTransition/partTransition.ts
1393
- var L = /* @__PURE__ */ new Map(), R = {
1417
+ var H = /* @__PURE__ */ new Map(), U = {
1394
1418
  "IDLE-true": "self",
1395
1419
  "IDLE-false": "self",
1396
1420
  "PUSHING-true": "initial",
@@ -1401,17 +1425,17 @@ var L = /* @__PURE__ */ new Map(), R = {
1401
1425
  "POPPING-false": "PUSHING-false",
1402
1426
  "COMPLETED-true": "self",
1403
1427
  "COMPLETED-false": "self"
1404
- }, Oe = Object.keys(R), ke = (e) => {
1428
+ }, we = Object.keys(U), Te = (e) => {
1405
1429
  if (!e) return 0;
1406
1430
  let t = e.duration;
1407
1431
  return typeof t == "number" && t >= 0 ? t : 0;
1408
- }, Ae = (e) => e && typeof e.delay == "number" && e.delay > 0 ? e.delay : 0, je = (e, t) => {
1409
- let n = R[t];
1432
+ }, Ee = (e) => e && typeof e.delay == "number" && e.delay > 0 ? e.delay : 0, De = (e, t) => {
1433
+ let n = U[t];
1410
1434
  return n === "self" ? null : n === "initial" ? e.initial : e.variants[n].value;
1411
- }, z = (e, t) => {
1412
- let n = je(e, t);
1435
+ }, W = (e, t) => {
1436
+ let n = De(e, t);
1413
1437
  if (n === null) return null;
1414
- let r = e.variants[t], i = ke(r.options), a = Ae(r.options);
1438
+ let r = e.variants[t], i = Te(r.options), a = Ee(r.options);
1415
1439
  return i <= 0 && a <= 0 ? null : {
1416
1440
  from: n,
1417
1441
  to: r.value,
@@ -1419,7 +1443,7 @@ var L = /* @__PURE__ */ new Map(), R = {
1419
1443
  delay: a,
1420
1444
  ease: r.options?.ease
1421
1445
  };
1422
- }, Me = Oe, Ne = (e) => e.replace(/[^a-zA-Z0-9_-]/g, "_"), Pe = (e) => typeof e == "object" && !!e && !Array.isArray(e), Fe = new Set(/* @__PURE__ */ "opacity.scale.scaleX.scaleY.scaleZ.aspectRatio.columnCount.columns.flex.flexGrow.flexShrink.fontWeight.gridArea.gridColumn.gridColumnEnd.gridColumnStart.gridRow.gridRowEnd.gridRowStart.lineHeight.lineClamp.order.orphans.tabSize.widows.zIndex.zoom.fillOpacity.floodOpacity.stopOpacity.strokeOpacity.strokeDasharray.strokeDashoffset.strokeMiterlimit.strokeWidth".split(".")), Ie = (e, t) => t.startsWith("--") || Fe.has(t) ? `${e}` : t === "rotate" || t === "rotateX" || t === "rotateY" || t === "rotateZ" ? `${e}deg` : `${e}px`, Le = (e, t) => typeof t == "number" ? Ie(t, e) : typeof t == "string" ? t : "", Re = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), ze = new Set([
1446
+ }, Oe = we, ke = (e) => e.replace(/[^a-zA-Z0-9_-]/g, "_"), Ae = (e) => typeof e == "object" && !!e && !Array.isArray(e), je = new Set(/* @__PURE__ */ "opacity.scale.scaleX.scaleY.scaleZ.aspectRatio.columnCount.columns.flex.flexGrow.flexShrink.fontWeight.gridArea.gridColumn.gridColumnEnd.gridColumnStart.gridRow.gridRowEnd.gridRowStart.lineHeight.lineClamp.order.orphans.tabSize.widows.zIndex.zoom.fillOpacity.floodOpacity.stopOpacity.strokeOpacity.strokeDasharray.strokeDashoffset.strokeMiterlimit.strokeWidth".split(".")), Me = (e, t) => t.startsWith("--") || je.has(t) ? `${e}` : t === "rotate" || t === "rotateX" || t === "rotateY" || t === "rotateZ" ? `${e}deg` : `${e}px`, Ne = (e, t) => typeof t == "number" ? Me(t, e) : typeof t == "string" ? t : "", Pe = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), Fe = new Set([
1423
1447
  "x",
1424
1448
  "y",
1425
1449
  "z",
@@ -1430,7 +1454,7 @@ var L = /* @__PURE__ */ new Map(), R = {
1430
1454
  "rotateX",
1431
1455
  "rotateY",
1432
1456
  "rotateZ"
1433
- ]), Be = /^-?0(\.0+)?(px|%|em|rem|vh|vw|vmin|vmax)?$/, Ve = /^-?0(\.0+)?(deg|rad|grad|turn)?$/, He = /^1(\.0+)?$/, Ue = (e, t) => e === "scale" || e === "scaleX" || e === "scaleY" ? t === 1 ? !0 : typeof t == "string" ? He.test(t.trim()) : !1 : e === "rotate" || e === "rotateX" || e === "rotateY" || e === "rotateZ" ? t === 0 ? !0 : typeof t == "string" ? Ve.test(t.trim()) : !1 : t === 0 ? !0 : typeof t == "string" ? Be.test(t.trim()) : !1, We = (e, t) => {
1457
+ ]), Ie = /^-?0(\.0+)?(px|%|em|rem|vh|vw|vmin|vmax)?$/, Le = /^-?0(\.0+)?(deg|rad|grad|turn)?$/, Re = /^1(\.0+)?$/, ze = (e, t) => e === "scale" || e === "scaleX" || e === "scaleY" ? t === 1 ? !0 : typeof t == "string" ? Re.test(t.trim()) : !1 : e === "rotate" || e === "rotateX" || e === "rotateY" || e === "rotateZ" ? t === 0 ? !0 : typeof t == "string" ? Le.test(t.trim()) : !1 : t === 0 ? !0 : typeof t == "string" ? Ie.test(t.trim()) : !1, Be = (e, t) => {
1434
1458
  switch (e) {
1435
1459
  case "x": return `translate3d(${t}, 0, 0)`;
1436
1460
  case "y": return `translate3d(0, ${t}, 0)`;
@@ -1444,16 +1468,16 @@ var L = /* @__PURE__ */ new Map(), R = {
1444
1468
  case "rotateY": return `rotateY(${t})`;
1445
1469
  default: return "";
1446
1470
  }
1447
- }, Ge = (e) => {
1471
+ }, Ve = (e) => {
1448
1472
  let t = /* @__PURE__ */ new Map(), n = !1, r = /* @__PURE__ */ new Set(), i = (e) => {
1449
- if (!Pe(e)) return;
1473
+ if (!Ae(e)) return;
1450
1474
  let n = [];
1451
1475
  for (let r of Object.keys(e)) {
1452
- let i = e[r], a = Le(r, i);
1453
- if (a !== "") if (ze.has(r)) n.push(`${r}:${a}`);
1476
+ let i = e[r], a = Ne(r, i);
1477
+ if (a !== "") if (Fe.has(r)) n.push(`${r}:${a}`);
1454
1478
  else {
1455
- let e = t.get(Re(r)) ?? /* @__PURE__ */ new Set();
1456
- e.add(a), t.set(Re(r), e);
1479
+ let e = t.get(Pe(r)) ?? /* @__PURE__ */ new Set();
1480
+ e.add(a), t.set(Pe(r), e);
1457
1481
  }
1458
1482
  }
1459
1483
  r.add(n.sort().join("|"));
@@ -1463,13 +1487,13 @@ var L = /* @__PURE__ */ new Map(), R = {
1463
1487
  n = r.size > 1;
1464
1488
  let a = Array.from(t.entries()).filter(([, e]) => e.size > 1).map(([e]) => e);
1465
1489
  return n && a.push("transform"), a;
1466
- }, B = (e) => {
1467
- if (!Pe(e)) return [];
1490
+ }, G = (e) => {
1491
+ if (!Ae(e)) return [];
1468
1492
  let t = [], n = !0, r = [];
1469
1493
  for (let i of Object.keys(e)) {
1470
- let a = e[i], o = Le(i, a);
1471
- o !== "" && (ze.has(i) ? (t.push(We(i, o)), Ue(i, a) || (n = !1)) : r.push({
1472
- property: Re(i),
1494
+ let a = e[i], o = Ne(i, a);
1495
+ o !== "" && (Fe.has(i) ? (t.push(Be(i, o)), ze(i, a) || (n = !1)) : r.push({
1496
+ property: Pe(i),
1473
1497
  value: o
1474
1498
  }));
1475
1499
  }
@@ -1477,7 +1501,7 @@ var L = /* @__PURE__ */ new Map(), R = {
1477
1501
  property: "transform",
1478
1502
  value: n ? "none" : t.join(" ")
1479
1503
  }), r;
1480
- }, V = (e) => e.map((e) => ` ${e.property}: ${e.value};`).join("\n"), H = (e) => Array.isArray(e) ? e.length === 4 && e.every((e) => typeof e == "number") ? `cubic-bezier(${e.join(", ")})` : "linear" : typeof e == "string" ? {
1504
+ }, K = (e) => e.map((e) => ` ${e.property}: ${e.value};`).join("\n"), He = (e) => Array.isArray(e) ? e.length === 4 && e.every((e) => typeof e == "number") ? `cubic-bezier(${e.join(", ")})` : "linear" : typeof e == "string" ? {
1481
1505
  linear: "linear",
1482
1506
  easeIn: "ease-in",
1483
1507
  easeOut: "ease-out",
@@ -1487,29 +1511,29 @@ var L = /* @__PURE__ */ new Map(), R = {
1487
1511
  backIn: "cubic-bezier(0.31, 0.01, 0.66, -0.59)",
1488
1512
  backOut: "cubic-bezier(0.33, 1.53, 0.69, 0.99)",
1489
1513
  anticipate: "cubic-bezier(0.36, 0, 0.66, -0.56)"
1490
- }[e] ?? "ease" : "ease", Ke = (e, t) => {
1514
+ }[e] ?? "ease" : "ease", Ue = (e, t) => {
1491
1515
  let [n, r] = t.split("-");
1492
1516
  return `[data-flemo-screen][data-flemo-transition="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
1493
- }, qe = (e, t) => {
1517
+ }, We = (e, t) => {
1494
1518
  let [n, r] = t.split("-");
1495
1519
  return `[data-flemo-decorator][data-flemo-decorator-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
1496
- }, Je = (e, t) => {
1520
+ }, Ge = (e, t) => {
1497
1521
  let [n, r] = t.split("-");
1498
1522
  return `[data-flemo-bar][data-flemo-bar-transition="${e}"][data-flemo-bar-status="${n}"][data-flemo-bar-active="${r}"][data-flemo-bar-riding="true"]`;
1499
- }, Ye = (e, t) => {
1523
+ }, Ke = (e, t) => {
1500
1524
  let [n, r] = t.split("-");
1501
1525
  return `[data-flemo-part-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
1502
- }, U = (e, t, n) => `flemo-${e}-${Ne(t)}-${n}`, Xe = (e, t, n, r, i, a) => {
1503
- let o = B(r), s = B(i.value), c = ke(i.options), l = Ae(i.options), u = H(i.options?.ease), d = a(t, n), f = e === "screen" ? `${d},\n${Je(t, n)}` : d;
1526
+ }, q = (e, t, n) => `flemo-${e}-${ke(t)}-${n}`, qe = (e, t, n, r, i, a) => {
1527
+ let o = G(r), s = G(i.value), c = Te(i.options), l = Ee(i.options), u = He(i.options?.ease), d = a(t, n), f = e === "screen" ? `${d},\n${Ge(t, n)}` : d;
1504
1528
  if (s.length === 0 && o.length === 0) return "";
1505
- if (c <= 0 && l <= 0) return s.length === 0 ? "" : `${f} {\n${V(s)}\n animation: none;\n}`;
1506
- let p = U(e, t, n), m = [
1529
+ if (c <= 0 && l <= 0) return s.length === 0 ? "" : `${f} {\n${K(s)}\n animation: none;\n}`;
1530
+ let p = q(e, t, n), m = [
1507
1531
  `@keyframes ${p} {`,
1508
1532
  " from {",
1509
- V(o).replace(/^/gm, " "),
1533
+ K(o).replace(/^/gm, " "),
1510
1534
  " }",
1511
1535
  " to {",
1512
- V(s).replace(/^/gm, " "),
1536
+ K(s).replace(/^/gm, " "),
1513
1537
  " }",
1514
1538
  "}"
1515
1539
  ].join("\n"), h = [
@@ -1519,55 +1543,60 @@ var L = /* @__PURE__ */ new Map(), R = {
1519
1543
  l > 0 ? `${l}s` : null,
1520
1544
  "both"
1521
1545
  ].filter(Boolean).join(" "), g = new Map(o.map((e) => [e.property, e.value])), _ = new Map(s.map((e) => [e.property, e.value])), v = Array.from(new Set([...g.keys(), ..._.keys()])).filter((e) => g.get(e) !== _.get(e)), y = v.length > 0 ? ` will-change: ${v.join(", ")};\n` : "", b = n.split("-")[0];
1522
- return `${m}\n${`${f} {\n animation: ${h};\n${y}${b === "PUSHING" || b === "REPLACING" ? " contain: layout;\n pointer-events: none;\n" : ""}}`}${e === "screen" && n.endsWith("-false") && Ze(r) && s.length > 0 ? `\n${d}[data-flemo-anim-hold="park"] {\n animation: none;\n${V(s)}\n}` : ""}${e === "screen" && n.endsWith("-true") && (n.startsWith("PUSHING") || n.startsWith("REPLACING")) && Ze(r) && s.length > 0 ? `\n${d}[data-flemo-anim-hold="park-under"] {\n animation: none;\n${V(s)}\n}` : ""}`;
1523
- }, Ze = (e) => {
1546
+ return `${m}\n${`${f} {\n animation: ${h};\n${y}${b === "PUSHING" || b === "REPLACING" ? " contain: layout;\n pointer-events: none;\n" : ""}}`}${e === "screen" && n.endsWith("-false") && Je(r) && s.length > 0 ? `\n${d}[data-flemo-anim-hold="park"] {\n animation: none;\n${K(s)}\n}` : ""}${e === "screen" && n.endsWith("-true") && (n.startsWith("PUSHING") || n.startsWith("REPLACING")) && Je(r) && s.length > 0 ? `\n${d}[data-flemo-anim-hold="park-under"] {\n animation: none;\n${K(s)}\n}` : ""}`;
1547
+ }, Je = (e) => {
1524
1548
  if (!e) return !1;
1525
1549
  if (e.opacity === 0) return !0;
1526
1550
  let t = (e) => typeof e == "string" && e.trim().endsWith("%") && Math.abs(parseFloat(e)) >= 100;
1527
1551
  return t(e.x) || t(e.y);
1528
- }, Qe = (e, t, n, r) => {
1529
- let i = B(r.value);
1530
- return i.length === 0 ? "" : `${e(t, n)} {\n${V(i)}\n}`;
1531
- }, $e = (e, t, n = []) => {
1552
+ }, Ye = (e, t, n, r) => {
1553
+ let i = G(r.value);
1554
+ return i.length === 0 ? "" : `${e(t, n)} {\n${K(i)}\n}`;
1555
+ }, Xe = (e, t, n = []) => {
1532
1556
  let r = [];
1533
1557
  for (let t of e) {
1534
1558
  let e = t.name;
1535
- for (let n of Oe) {
1536
- let i = t.variants[n], a = R[n];
1559
+ for (let n of we) {
1560
+ let i = t.variants[n], a = U[n];
1537
1561
  if (a === "self") {
1538
- r.push(Qe(Ke, e, n, i));
1562
+ r.push(Ye(Ue, e, n, i));
1539
1563
  continue;
1540
1564
  }
1541
1565
  let o = a === "initial" ? t.initial : t.variants[a].value;
1542
- r.push(Xe("screen", e, n, o, i, Ke));
1566
+ r.push(qe("screen", e, n, o, i, Ue));
1543
1567
  }
1544
1568
  }
1545
1569
  for (let e of t) {
1546
1570
  let t = e.name;
1547
- for (let n of Me) {
1548
- let i = e.variants[n], a = R[n];
1571
+ for (let n of Oe) {
1572
+ let i = e.variants[n], a = U[n];
1549
1573
  if (a === "self") {
1550
- r.push(Qe(qe, t, n, i));
1574
+ r.push(Ye(We, t, n, i));
1551
1575
  continue;
1552
1576
  }
1553
1577
  let o = a === "initial" ? e.initial : e.variants[a].value;
1554
- r.push(Xe("decorator", t, n, o, i, qe));
1578
+ r.push(qe("decorator", t, n, o, i, We));
1555
1579
  }
1556
1580
  }
1557
1581
  for (let e of n) {
1558
1582
  let t = e.name;
1559
- for (let n of Me) {
1560
- let i = e.variants[n], a = R[n];
1583
+ for (let n of Oe) {
1584
+ let i = e.variants[n], a = U[n];
1561
1585
  if (a === "self") {
1562
- r.push(Qe(Ye, t, n, i));
1586
+ r.push(Ye(Ke, t, n, i));
1563
1587
  continue;
1564
1588
  }
1565
1589
  let o = a === "initial" ? e.initial : e.variants[a].value;
1566
- r.push(Xe("part", t, n, o, i, Ye));
1590
+ r.push(qe("part", t, n, o, i, Ke));
1567
1591
  }
1568
1592
  }
1569
- return [...r.filter((e) => e.length > 0), et].join("\n\n");
1570
- }, et = [
1593
+ return [
1594
+ ...r.filter((e) => e.length > 0),
1595
+ Ze,
1596
+ $e,
1597
+ et
1598
+ ].join("\n\n");
1599
+ }, Ze = [
1571
1600
  "[data-flemo-anim-hold=\"true\"],",
1572
1601
  "[data-flemo-anim-hold=\"park\"],",
1573
1602
  "[data-flemo-anim-hold=\"park-under\"],",
@@ -1576,17 +1605,29 @@ var L = /* @__PURE__ */ new Map(), R = {
1576
1605
  "[data-flemo-anim-hold=\"park-under\"] [data-flemo-part-name] {",
1577
1606
  " animation-play-state: paused !important;",
1578
1607
  "}"
1579
- ].join("\n"), W = (e, t) => {
1580
- let n = R[t];
1608
+ ].join("\n"), Qe = [["PUSHING", "true"], ["REPLACING", "true"]], $e = [
1609
+ ...Qe.flatMap(([e, t], n) => [
1610
+ "",
1611
+ "::before",
1612
+ "::after"
1613
+ ].map((r, i) => `[data-flemo-screen][data-flemo-status="${e}"][data-flemo-active="${t}"] :not([data-flemo-part-name])${r}${n === Qe.length - 1 && i === 2 ? " {" : ","}`)),
1614
+ " animation: none !important;",
1615
+ "}"
1616
+ ].join("\n"), et = [
1617
+ "[data-flemo-held-arrival] {",
1618
+ " display: none !important;",
1619
+ "}"
1620
+ ].join("\n"), J = (e, t) => {
1621
+ let n = U[t];
1581
1622
  if (n === "self") return !1;
1582
- let r = e.variants[t], i = ke(r.options), a = Ae(r.options);
1623
+ let r = e.variants[t], i = Te(r.options), a = Ee(r.options);
1583
1624
  if (i <= 0 && a <= 0) return !1;
1584
- let o = B(n === "initial" ? e.initial : e.variants[n].value), s = B(r.value);
1625
+ let o = G(n === "initial" ? e.initial : e.variants[n].value), s = G(r.value);
1585
1626
  return o.length > 0 || s.length > 0;
1586
1627
  }, tt = "data-flemo";
1587
1628
  function nt() {
1588
- if (d()) return;
1589
- let e = $e(N.values(), I.values(), L.values()), t = document.head.querySelector(`style[${tt}]`);
1629
+ if (f()) return;
1630
+ let e = Xe(z.values(), V.values(), H.values()), t = document.head.querySelector(`style[${tt}]`);
1590
1631
  t || (t = document.createElement("style"), t.setAttribute(tt, ""), document.head.appendChild(t)), t.textContent !== e && (t.textContent = e);
1591
1632
  }
1592
1633
  //#endregion
@@ -1598,13 +1639,13 @@ var rt = /* @__PURE__ */ new Map(), it = /* @__PURE__ */ new Map(), at = /* @__P
1598
1639
  return n <= 0 ? (e.delete(t), !0) : (e.set(t, n), !1);
1599
1640
  };
1600
1641
  function ct(e, t, n = []) {
1601
- for (let t of e) N.set(t.name, t), ot(rt, t.name);
1602
- for (let e of t) I.set(e.name, e), ot(it, e.name);
1603
- for (let e of n) L.set(e.name, e), ot(at, e.name);
1642
+ for (let t of e) z.set(t.name, t), ot(rt, t.name);
1643
+ for (let e of t) V.set(e.name, e), ot(it, e.name);
1644
+ for (let e of n) H.set(e.name, e), ot(at, e.name);
1604
1645
  return nt(), () => {
1605
- for (let t of e) st(rt, t.name) && N.delete(t.name);
1606
- for (let e of t) st(it, e.name) && I.delete(e.name);
1607
- for (let e of n) st(at, e.name) && L.delete(e.name);
1646
+ for (let t of e) st(rt, t.name) && z.delete(t.name);
1647
+ for (let e of t) st(it, e.name) && V.delete(e.name);
1648
+ for (let e of n) st(at, e.name) && H.delete(e.name);
1608
1649
  nt();
1609
1650
  };
1610
1651
  }
@@ -1686,9 +1727,12 @@ var ut = () => ({
1686
1727
  };
1687
1728
  })(), pt = "flemo:motion-driver", mt = "flemo:motion-driver-force", ht = !1, gt = () => {
1688
1729
  try {
1689
- if (typeof localStorage > "u") return null;
1690
- let e = localStorage.getItem(mt);
1691
- return e !== "css" && e !== "raf" ? null : (!ht && typeof console < "u" && (ht = !0, console.warn(`[flemo] motion driver pinned to "${e}" via localStorage ${mt}; remove the key to restore automatic selection.`)), e);
1730
+ try {
1731
+ typeof localStorage < "u" && localStorage.removeItem(mt);
1732
+ } catch {}
1733
+ if (typeof sessionStorage > "u") return null;
1734
+ let e = sessionStorage.getItem(mt);
1735
+ return e !== "css" && e !== "raf" ? null : (!ht && typeof console < "u" && (ht = !0, console.warn(`[flemo] motion driver pinned to "${e}" via sessionStorage ${mt}; remove the key to restore automatic selection.`)), e);
1692
1736
  } catch {
1693
1737
  return null;
1694
1738
  }
@@ -1705,7 +1749,7 @@ var ut = () => ({
1705
1749
  typeof localStorage < "u" && localStorage.setItem(pt, e);
1706
1750
  } catch {}
1707
1751
  }
1708
- }), vt = 30, yt = 2, bt = 2, xt = () => typeof navigator < "u" && !!navigator.userAgentData, G = ((e = _t(), t = xt()) => {
1752
+ }), vt = 30, yt = 2, bt = 2, Y = ((e = _t(), t = !1) => {
1709
1753
  let n = e.read() === "css", r = n;
1710
1754
  n &&= !1;
1711
1755
  let i = 0, a = 0, o = [];
@@ -1734,43 +1778,43 @@ var ut = () => ({
1734
1778
  demoted: n
1735
1779
  })
1736
1780
  };
1737
- })(), St = (e) => typeof HTMLElement < "u" && e instanceof HTMLElement, K = /* @__PURE__ */ new WeakMap(), q = (e, t) => {
1738
- let n = K.get(e);
1739
- n || (n = /* @__PURE__ */ new Set(), K.set(e, n)), n.add(t);
1740
- }, J = (e, t) => {
1781
+ })(), xt = (e) => typeof HTMLElement < "u" && e instanceof HTMLElement, St = /* @__PURE__ */ new WeakMap(), X = (e, t) => {
1782
+ let n = St.get(e);
1783
+ n || (n = /* @__PURE__ */ new Set(), St.set(e, n)), n.add(t);
1784
+ }, Z = (e, t) => {
1741
1785
  if (ft.cancel(e), e.style.transition = "", e.style.removeProperty("animation-delay"), t) {
1742
- let n = K.get(e);
1786
+ let n = St.get(e);
1743
1787
  for (let r of t) e.style.removeProperty(r), n?.delete(r);
1744
1788
  return;
1745
1789
  }
1746
- let n = K.get(e);
1790
+ let n = St.get(e);
1747
1791
  if (n && n.size > 0) {
1748
1792
  for (let t of n) e.style.removeProperty(t);
1749
1793
  n.clear();
1750
1794
  return;
1751
1795
  }
1752
1796
  e.style.removeProperty("transform"), e.style.removeProperty("opacity");
1753
- }, Y = (e, t, n = {}) => {
1754
- if (!St(e)) return Promise.resolve();
1755
- let r = e, i = B(t);
1797
+ }, Q = (e, t, n = {}) => {
1798
+ if (!xt(e)) return Promise.resolve();
1799
+ let r = e, i = G(t);
1756
1800
  if (i.length === 0) return Promise.resolve();
1757
- let a = typeof n.duration == "number" ? n.duration : 0, o = typeof n.delay == "number" && n.delay > 0 ? n.delay : 0, s = H(n.ease);
1801
+ let a = typeof n.duration == "number" ? n.duration : 0, o = typeof n.delay == "number" && n.delay > 0 ? n.delay : 0, s = He(n.ease);
1758
1802
  if (a <= 0 && o <= 0) {
1759
1803
  ft.takeover(r), r.style.transition = "none";
1760
- for (let e of i) r.style.setProperty(e.property, e.value), q(r, e.property);
1804
+ for (let e of i) r.style.setProperty(e.property, e.value), X(r, e.property);
1761
1805
  return Promise.resolve();
1762
1806
  }
1763
- let c = G.playerAllowed() ? ft.settle(r, i, {
1807
+ let c = Y.playerAllowed() ? ft.settle(r, i, {
1764
1808
  durationMs: a * 1e3,
1765
1809
  delayMs: o * 1e3,
1766
1810
  easing: s
1767
1811
  }, (e) => {
1768
- r.style.setProperty(e.property, e.value), q(r, e.property);
1812
+ r.style.setProperty(e.property, e.value), X(r, e.property);
1769
1813
  }) : null;
1770
1814
  if (c) return c;
1771
1815
  let l = i.map((e) => `${e.property} ${a}s ${s} ${o}s`).join(", ");
1772
1816
  r.style.transition = l, r.offsetWidth;
1773
- for (let e of i) r.style.setProperty(e.property, e.value), q(r, e.property);
1817
+ for (let e of i) r.style.setProperty(e.property, e.value), X(r, e.property);
1774
1818
  return new Promise((e) => {
1775
1819
  let t = !1, n = () => {
1776
1820
  t || (t = !0, r.removeEventListener("transitionend", i), e());
@@ -1779,7 +1823,92 @@ var ut = () => ({
1779
1823
  };
1780
1824
  r.addEventListener("transitionend", i), setTimeout(n, (a + o) * 1e3 + 60);
1781
1825
  });
1782
- }, Ct = (e, t, n, r) => {
1826
+ }, Ct = "data-flemo-held-arrival";
1827
+ function wt(e) {
1828
+ if (typeof MutationObserver > "u") return () => {};
1829
+ let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = (t) => {
1830
+ let n = t instanceof Element ? t : t.parentElement;
1831
+ return !n || n === e ? !0 : n.closest(`[data-flemo-part-name], [${Ct}]`) !== null;
1832
+ }, s = (e, t, n, r) => e ? n === e.glass ? (e.pendingEcho ? e.pendingEcho = !1 : e.latest = n, e) : (e.latest = n, r(e.glass), e.pendingEcho = !0, e) : n === t ? null : (r(t), {
1833
+ glass: t,
1834
+ latest: n,
1835
+ pendingEcho: !0
1836
+ }), c = new MutationObserver((e) => {
1837
+ let c = /* @__PURE__ */ new Map(), l = (e) => {
1838
+ let t = c.get(e);
1839
+ return t || c.set(e, t = {
1840
+ removed: [],
1841
+ added: []
1842
+ }), t;
1843
+ }, u = /* @__PURE__ */ new Map(), d = /* @__PURE__ */ new Map();
1844
+ for (let i of e) {
1845
+ if (i.type === "characterData") {
1846
+ let e = i.target;
1847
+ if (!e.isConnected || o(e)) continue;
1848
+ u.has(e) || u.set(e, i.oldValue);
1849
+ continue;
1850
+ }
1851
+ if (i.type === "attributes") {
1852
+ let e = i.target, t = i.attributeName;
1853
+ if (t.startsWith("data-flemo") || !e.isConnected || o(e)) continue;
1854
+ let n = d.get(e);
1855
+ n || d.set(e, n = /* @__PURE__ */ new Map()), n.has(t) || n.set(t, i.oldValue);
1856
+ continue;
1857
+ }
1858
+ if (i.type === "childList") {
1859
+ for (let e of Array.from(i.removedNodes)) if (!n.has(e)) {
1860
+ if (e instanceof Element && t.delete(e)) {
1861
+ e.removeAttribute(Ct);
1862
+ continue;
1863
+ }
1864
+ (e instanceof Element || e.nodeType === Node.TEXT_NODE) && l(i.target).removed.push(e);
1865
+ }
1866
+ for (let e of Array.from(i.addedNodes)) r.delete(e) || e instanceof Element && (e.setAttribute(Ct, ""), t.add(e), l(i.target).added.push(e));
1867
+ }
1868
+ }
1869
+ for (let [e, t] of u) {
1870
+ let n = s(i.get(e), t, e.nodeValue, (t) => {
1871
+ e.nodeValue = t;
1872
+ });
1873
+ n && i.set(e, n);
1874
+ }
1875
+ for (let [e, t] of d) {
1876
+ let n = a.get(e);
1877
+ for (let [r, i] of t) {
1878
+ let t = s(n?.get(r), i, e.getAttribute(r), (t) => {
1879
+ t === null ? e.removeAttribute(r) : e.setAttribute(r, t);
1880
+ });
1881
+ t && (n || a.set(e, n = /* @__PURE__ */ new Map()), n.set(r, t));
1882
+ }
1883
+ }
1884
+ for (let [e, i] of c) {
1885
+ if (i.removed.length === 0 || !e.isConnected) continue;
1886
+ let a = i.added.find((t) => t.parentNode === e) ?? Array.from(e.childNodes).find((e) => e instanceof Element && t.has(e)) ?? null;
1887
+ if (!(i.added.length === 0 && !a)) for (let t of i.removed) r.add(t), e.insertBefore(t, a), n.add(t);
1888
+ }
1889
+ });
1890
+ return c.observe(e, {
1891
+ childList: !0,
1892
+ subtree: !0,
1893
+ characterData: !0,
1894
+ characterDataOldValue: !0,
1895
+ attributes: !0,
1896
+ attributeOldValue: !0
1897
+ }), () => {
1898
+ c.disconnect();
1899
+ for (let e of n) e.parentNode?.removeChild(e);
1900
+ n.clear();
1901
+ for (let e of t) e.removeAttribute(Ct);
1902
+ t.clear();
1903
+ for (let [e, t] of i) e.isConnected && (e.nodeValue = t.latest);
1904
+ i.clear();
1905
+ for (let [e, t] of a) if (e.isConnected) for (let [n, r] of t) r.latest === null ? e.removeAttribute(n) : e.setAttribute(n, r.latest);
1906
+ a.clear(), r.clear();
1907
+ };
1908
+ }
1909
+ //#endregion
1910
+ //#region src/transition/cubicBezier.ts
1911
+ var Tt = (e, t, n, r) => {
1783
1912
  let i = (t) => 3 * (1 - t) * (1 - t) * t * e + 3 * (1 - t) * t * t * n + t ** 3, a = (e) => 3 * (1 - e) * (1 - e) * e * t + 3 * (1 - e) * e * e * r + e ** 3;
1784
1913
  return (e) => {
1785
1914
  if (e <= 0) return 0;
@@ -1791,7 +1920,7 @@ var ut = () => ({
1791
1920
  }
1792
1921
  return a((t + n) / 2);
1793
1922
  };
1794
- }, wt = (e) => e, Tt = {
1923
+ }, Et = (e) => e, Dt = {
1795
1924
  ease: [
1796
1925
  .25,
1797
1926
  .1,
@@ -1846,16 +1975,62 @@ var ut = () => ({
1846
1975
  .66,
1847
1976
  -.56
1848
1977
  ]
1849
- }, Et = (e) => {
1978
+ }, Ot = (e) => {
1850
1979
  if (Array.isArray(e)) {
1851
1980
  if (e.length === 4 && e.every((e) => typeof e == "number")) {
1852
1981
  let [t, n, r, i] = e;
1853
- return Ct(t, n, r, i);
1982
+ return Tt(t, n, r, i);
1854
1983
  }
1855
- return wt;
1984
+ return Et;
1985
+ }
1986
+ return typeof e == "string" ? e === "linear" ? Et : Tt(...Dt[e] ?? Dt.ease) : Tt(...Dt.ease);
1987
+ }, kt = 1 / 255, At = 400, jt = 24, Mt = new Set([
1988
+ "x",
1989
+ "y",
1990
+ "opacity"
1991
+ ]), Nt = (e, t, n) => {
1992
+ if (!e || typeof e != "object") return;
1993
+ let r = e[t];
1994
+ if (r === void 0) return;
1995
+ if (typeof r == "number") return r;
1996
+ if (typeof r != "string") return null;
1997
+ let i = r.trim();
1998
+ if (i.endsWith("%")) {
1999
+ let e = Number(i.slice(0, -1));
2000
+ if (Number.isNaN(e)) return null;
2001
+ let r = t === "y" ? n.clientHeight : n.clientWidth;
2002
+ return e / 100 * r;
2003
+ }
2004
+ if (i.endsWith("px")) {
2005
+ let e = Number(i.slice(0, -2));
2006
+ return Number.isNaN(e) ? null : e;
2007
+ }
2008
+ return null;
2009
+ }, Pt = (e, t, n) => {
2010
+ let r = /* @__PURE__ */ new Set();
2011
+ for (let t of [e.from, e.to]) if (!(!t || typeof t != "object")) for (let e of Object.keys(t)) r.add(e);
2012
+ if (r.size === 0) return null;
2013
+ let i = Infinity;
2014
+ for (let a of r) {
2015
+ if (!Mt.has(a)) return null;
2016
+ let r = Nt(e.from, a, t), o = Nt(e.to, a, t);
2017
+ if (r === null || o === null || r === void 0 || o === void 0) return null;
2018
+ let s = Math.abs(o - r);
2019
+ if (s === 0) continue;
2020
+ let c = a === "opacity" ? kt : 1 / Math.max(1, n);
2021
+ i = Math.min(i, c / s);
1856
2022
  }
1857
- return typeof e == "string" ? e === "linear" ? wt : Ct(...Tt[e] ?? Tt.ease) : Ct(...Tt.ease);
1858
- }, Dt = [
2023
+ return !Number.isFinite(i) || i <= 0 || i >= 1 ? null : i;
2024
+ }, Ft = (e, t, n) => {
2025
+ if (e.duration <= 0) return null;
2026
+ let r = Pt(e, t, n);
2027
+ if (r === null) return null;
2028
+ let i = Ot(e.ease), a = At;
2029
+ for (let e = At; e >= 0 && !(Math.abs(1 - i(e / At)) > r); --e) a = e;
2030
+ if (a === 0) return null;
2031
+ let o = (e.delay + e.duration * (a / At)) * 1e3;
2032
+ return (e.delay + e.duration) * 1e3 - o < jt ? null : o;
2033
+ }, It = [
1859
2034
  "x",
1860
2035
  "y",
1861
2036
  "z",
@@ -1866,7 +2041,7 @@ var ut = () => ({
1866
2041
  "rotateX",
1867
2042
  "rotateY",
1868
2043
  "rotateZ"
1869
- ], Ot = new Set(Dt), kt = {
2044
+ ], Lt = new Set(It), Rt = {
1870
2045
  x: 0,
1871
2046
  y: 0,
1872
2047
  z: 0,
@@ -1877,7 +2052,7 @@ var ut = () => ({
1877
2052
  rotateX: 0,
1878
2053
  rotateY: 0,
1879
2054
  rotateZ: 0
1880
- }, At = (e, t) => {
2055
+ }, zt = (e, t) => {
1881
2056
  if (typeof t == "number") return {
1882
2057
  value: t,
1883
2058
  unit: e === "x" || e === "y" || e === "z" ? "px" : ""
@@ -1896,26 +2071,26 @@ var ut = () => ({
1896
2071
  value: i,
1897
2072
  unit: a === "" && i === 0 ? "px" : a
1898
2073
  };
1899
- }, X = /-?\d*\.?\d+/g, jt = (e, t) => {
1900
- let n = e.match(X) ?? [], r = t.match(X) ?? [];
1901
- if (n.length !== r.length || e.replace(X, " ") !== t.replace(X, " ")) return null;
2074
+ }, Bt = /-?\d*\.?\d+/g, Vt = (e, t) => {
2075
+ let n = e.match(Bt) ?? [], r = t.match(Bt) ?? [];
2076
+ if (n.length !== r.length || e.replace(Bt, " ") !== t.replace(Bt, " ")) return null;
1902
2077
  let i = n.map(Number), a = r.map(Number);
1903
2078
  return (t) => {
1904
2079
  let n = 0;
1905
- return e.replace(X, () => {
2080
+ return e.replace(Bt, () => {
1906
2081
  let e = n++, r = i[e] + (a[e] - i[e]) * t;
1907
2082
  return `${Math.round(r * 1e3) / 1e3}`;
1908
2083
  });
1909
2084
  };
1910
- }, Mt = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), Nt = (e) => typeof e == "object" && !!e && !Array.isArray(e), Pt = (e) => Nt(e) ? Object.keys(e) : [], Ft = (e, t) => Nt(e) ? e[t] : void 0, It = (e, t) => {
1911
- let n = new Set([...Pt(e.from), ...Pt(e.to)]), r = [], i = null, a = [], o = [];
2085
+ }, Ht = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), Ut = (e) => typeof e == "object" && !!e && !Array.isArray(e), Wt = (e) => Ut(e) ? Object.keys(e) : [], Gt = (e, t) => Ut(e) ? e[t] : void 0, Kt = (e, t) => {
2086
+ let n = new Set([...Wt(e.from), ...Wt(e.to)]), r = [], i = null, a = [], o = [];
1912
2087
  for (let s of n) {
1913
- let n = Ft(e.from, s), c = Ft(e.to, s);
1914
- if (Ot.has(s)) {
2088
+ let n = Gt(e.from, s), c = Gt(e.to, s);
2089
+ if (Lt.has(s)) {
1915
2090
  let e = s, i = {
1916
- value: kt[e],
2091
+ value: Rt[e],
1917
2092
  unit: e === "x" || e === "y" || e === "z" ? "px" : ""
1918
- }, a = n === void 0 ? i : At(e, n), o = c === void 0 ? i : At(e, c);
2093
+ }, a = n === void 0 ? i : zt(e, n), o = c === void 0 ? i : zt(e, c);
1919
2094
  if (!a || !o || a.unit !== o.unit && a.value !== 0 && o.value !== 0) return null;
1920
2095
  let l = a.value === 0 && a.unit !== o.unit ? o.unit : a.unit, u = l === "%", d = 0;
1921
2096
  u && t && (d = e === "y" ? t.offsetHeight / 100 : t.offsetWidth / 100), r.push({
@@ -1946,15 +2121,15 @@ var ut = () => ({
1946
2121
  if (typeof l != "string" || typeof u != "string") return null;
1947
2122
  if (l === u) {
1948
2123
  o.push({
1949
- property: Mt(s),
2124
+ property: Ht(s),
1950
2125
  value: l
1951
2126
  });
1952
2127
  continue;
1953
2128
  }
1954
- let d = jt(l, u);
2129
+ let d = Vt(l, u);
1955
2130
  if (!d) return null;
1956
2131
  a.push({
1957
- property: Mt(s),
2132
+ property: Ht(s),
1958
2133
  mix: d
1959
2134
  });
1960
2135
  }
@@ -1964,46 +2139,46 @@ var ut = () => ({
1964
2139
  strings: a,
1965
2140
  constants: o
1966
2141
  };
1967
- }, Lt = 1, Rt = (e, t, n, r) => {
2142
+ }, qt = 1, Jt = (e, t, n, r) => {
1968
2143
  let i = 0, a = 0, o = !1, s = [], c = !0;
1969
- for (let l of Dt) {
2144
+ for (let l of It) {
1970
2145
  let u = e.find((e) => e.prop === l);
1971
2146
  if (!u) continue;
1972
2147
  let d = u.from.value + (u.to.value - u.from.value) * t;
1973
2148
  if (u.from.unit === "%" && (d *= u.percentBase), l === "x" || l === "y") {
1974
- let e = l === "x" ? r.x : r.y, t = (e === null || Math.abs(d - e) * n >= Lt) && n > 0 ? Math.round(d * n) / n : Math.round(d * 1e3) / 1e3;
2149
+ let e = l === "x" ? r.x : r.y, t = (e === null || Math.abs(d - e) * n >= qt) && n > 0 ? Math.round(d * n) / n : Math.round(d * 1e3) / 1e3;
1975
2150
  l === "x" ? (r.x = d, i = t) : (r.y = d, a = t), o = !0, t !== 0 && (c = !1);
1976
2151
  continue;
1977
2152
  }
1978
- let f = kt[l];
2153
+ let f = Rt[l];
1979
2154
  d !== f && (c = !1), l === "z" ? s.push(`translateZ(${d}px)`) : l === "scale" ? s.push(`scale(${d})`) : l === "scaleX" ? s.push(`scaleX(${d})`) : l === "scaleY" ? s.push(`scaleY(${d})`) : l === "rotate" || l === "rotateZ" ? s.push(`rotate(${d}deg)`) : l === "rotateX" ? s.push(`rotateX(${d}deg)`) : l === "rotateY" && s.push(`rotateY(${d}deg)`);
1980
2155
  }
1981
2156
  return !o && s.length === 0 ? "" : c ? "none" : [...o ? [`translate3d(${i}px, ${a}px, 0)`] : [], ...s].join(" ");
1982
- }, zt = (e) => e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), Bt = (e) => {
2157
+ }, Yt = (e) => e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), Xt = (e) => {
1983
2158
  let t = {};
1984
- for (let n of B(e)) t[zt(n.property)] = n.value;
2159
+ for (let n of G(e)) t[Yt(n.property)] = n.value;
1985
2160
  return t;
1986
- }, Vt = (e, t) => {
2161
+ }, Zt = (e, t) => {
1987
2162
  if (typeof e.animate != "function") return null;
1988
2163
  try {
1989
- let n = e.animate([Bt(t.from), Bt(t.to)], {
2164
+ let n = e.animate([Xt(t.from), Xt(t.to)], {
1990
2165
  duration: Math.max(0, t.duration * 1e3),
1991
2166
  delay: Math.max(0, t.delay * 1e3),
1992
- easing: H(t.ease),
2167
+ easing: He(t.ease),
1993
2168
  fill: "both"
1994
2169
  });
1995
2170
  return n.pause(), n.currentTime = 0, n;
1996
2171
  } catch {
1997
2172
  return null;
1998
2173
  }
1999
- }, Ht = 1e3 / 60, Ut = 100, Wt = () => ({
2174
+ }, Qt = 1e3 / 60, $t = 100, en = () => ({
2000
2175
  request: (e) => requestAnimationFrame(e),
2001
2176
  cancel: (e) => cancelAnimationFrame(e),
2002
2177
  devicePixelRatio: () => typeof window < "u" && window.devicePixelRatio || 1
2003
- }), Z = ((e = Wt()) => {
2178
+ }), tn = ((e = en()) => {
2004
2179
  let t = /* @__PURE__ */ new Map(), n = {
2005
2180
  join: (n, r) => {
2006
- let i = It(r.motion, r.element), s = i ? null : Vt(r.element, r.motion);
2181
+ let i = Kt(r.motion, r.element), s = i ? null : Zt(r.element, r.motion);
2007
2182
  if (!i && !s) return null;
2008
2183
  let c = t.get(n);
2009
2184
  c || (c = {
@@ -2024,14 +2199,14 @@ var ut = () => ({
2024
2199
  y: null
2025
2200
  }
2026
2201
  };
2027
- if (c.tracks.push(l), l.element.style.animation = "none", q(l.element, "animation"), i) {
2028
- i.transforms.length > 0 && q(l.element, "transform"), i.opacity && q(l.element, "opacity");
2029
- for (let e of i.strings) q(l.element, e.property);
2030
- for (let e of i.constants) q(l.element, e.property);
2202
+ if (c.tracks.push(l), l.element.style.animation = "none", X(l.element, "animation"), i) {
2203
+ i.transforms.length > 0 && X(l.element, "transform"), i.opacity && X(l.element, "opacity");
2204
+ for (let e of i.strings) X(l.element, e.property);
2205
+ for (let e of i.constants) X(l.element, e.property);
2031
2206
  a(l, 0);
2032
2207
  }
2033
- return r.role === "active" && !c.started && (c.started = !0, G.beginRun(), o(n, c)), () => {
2034
- l.detached = !0, l.scrub?.cancel(), J(l.element);
2208
+ return r.role === "active" && !c.started && (c.started = !0, Y.beginRun(), o(n, c)), () => {
2209
+ l.detached = !0, l.scrub?.cancel(), Z(l.element);
2035
2210
  let r = t.get(n);
2036
2211
  r && (r.tracks = r.tracks.filter((e) => e !== l), r.tracks.length === 0 && (r.frameHandle !== null && e.cancel(r.frameHandle), t.delete(n)));
2037
2212
  };
@@ -2046,13 +2221,13 @@ var ut = () => ({
2046
2221
  }
2047
2222
  }, r = /* @__PURE__ */ new WeakMap(), i = (e) => {
2048
2223
  let t = r.get(e);
2049
- return t || (t = Et(e.motion.ease), r.set(e, t)), t;
2224
+ return t || (t = Ot(e.motion.ease), r.set(e, t)), t;
2050
2225
  };
2051
2226
  function a(t, n) {
2052
2227
  let { element: r, parsed: i } = t;
2053
2228
  if (!(!i || !r.isConnected)) {
2054
2229
  if (i.transforms.length > 0) {
2055
- let a = Rt(i.transforms, n, e.devicePixelRatio(), t.snapMemory);
2230
+ let a = Jt(i.transforms, n, e.devicePixelRatio(), t.snapMemory);
2056
2231
  a !== "" && (r.style.transform = a);
2057
2232
  }
2058
2233
  if (i.opacity) {
@@ -2072,7 +2247,7 @@ var ut = () => ({
2072
2247
  let c = r.startTime ?? s;
2073
2248
  if (r.lastTime !== null) {
2074
2249
  let e = s - r.lastTime;
2075
- G.reportGap(e), n.onFrameGap?.(e), e >= Ut && (c += e - Ht);
2250
+ Y.reportGap(e), n.onFrameGap?.(e), e >= $t && (c += e - Qt);
2076
2251
  }
2077
2252
  r.startTime = c, r.lastTime = s;
2078
2253
  let l = !0;
@@ -2088,14 +2263,14 @@ var ut = () => ({
2088
2263
  a(e, i(e)(o)), o >= 1 ? (e.completed = !0, e.onComplete?.()) : l = !1;
2089
2264
  }
2090
2265
  if (l) {
2091
- G.endRun(), t.delete(e);
2266
+ Y.endRun(), t.delete(e);
2092
2267
  return;
2093
2268
  }
2094
2269
  o(e, r);
2095
2270
  }
2096
2271
  return n;
2097
2272
  })();
2098
- Z.onFrameGap = (e) => {
2273
+ tn.onFrameGap = (e) => {
2099
2274
  if (typeof window < "u") {
2100
2275
  let t = window.__flemoPlayerGaps ??= [];
2101
2276
  t.push(Math.round(e * 10) / 10), t.length > 600 && t.splice(0, t.length - 600);
@@ -2103,23 +2278,23 @@ Z.onFrameGap = (e) => {
2103
2278
  };
2104
2279
  //#endregion
2105
2280
  //#region src/core/engine/types.ts
2106
- var Q = "data-flemo-skip-animation", $ = () => {}, Gt = "data-flemo-part-name", Kt = (e) => {
2281
+ var nn = "data-flemo-skip-animation", $ = () => {}, rn = "data-flemo-part-name", an = (e) => {
2107
2282
  let t = e.parentElement ?? e;
2108
- return Array.from(t.querySelectorAll(`[${Gt}]`)).filter((n) => {
2283
+ return Array.from(t.querySelectorAll(`[${rn}]`)).filter((n) => {
2109
2284
  let r = n.closest("[data-flemo-screen]");
2110
2285
  return !r || r === e || !t.contains(r);
2111
2286
  });
2112
- }, qt = (e, t) => {
2287
+ }, on = (e, t) => {
2113
2288
  let [n, r] = t.split("-");
2114
- return Kt(e).filter((e) => e.getAttribute("data-flemo-status") === n && e.getAttribute("data-flemo-active") === r);
2115
- }, Jt = 4, Yt = (e) => `${Math.round(e * 1e3) / 1e3}s`, Xt = (e) => {
2289
+ return an(e).filter((e) => e.getAttribute("data-flemo-status") === n && e.getAttribute("data-flemo-active") === r);
2290
+ }, sn = 4, cn = (e) => `${Math.round(e * 1e3) / 1e3}s`, ln = (e) => {
2116
2291
  let { element: t, expectedName: n, motion: r } = e, i = null, a = !1, o = (e) => {
2117
- a = !0, t.style.animation = "none", t.offsetWidth, t.style.removeProperty("animation"), e.mode === "clear" ? t.style.removeProperty("animation-delay") : e.mode === "set" && (t.style.animationDelay = Yt(e.seconds)), a = !1;
2292
+ a = !0, t.style.animation = "none", t.offsetWidth, t.style.removeProperty("animation"), e.mode === "clear" ? t.style.removeProperty("animation-delay") : e.mode === "set" && (t.style.animationDelay = cn(e.seconds)), a = !1;
2118
2293
  }, s = (e) => {
2119
2294
  a || e.target !== t || e.animationName !== n || i === null && (i = performance.now());
2120
2295
  }, c = (s) => {
2121
2296
  if (a || s.target !== t || s.animationName !== n) return;
2122
- if (!e.isLive() || e.budgetUsed() >= Jt) {
2297
+ if (!e.isLive() || e.budgetUsed() >= sn) {
2123
2298
  e.onTerminal();
2124
2299
  return;
2125
2300
  }
@@ -2149,28 +2324,56 @@ var Q = "data-flemo-skip-animation", $ = () => {}, Gt = "data-flemo-part-name",
2149
2324
  }
2150
2325
  };
2151
2326
  };
2152
- function Zt(e) {
2153
- let t = /* @__PURE__ */ new Map();
2327
+ function un(e) {
2328
+ let t = /* @__PURE__ */ new Map(), n = null, r = null, i = () => {
2329
+ if (!r) return;
2330
+ let { land: e, cancel: t } = r;
2331
+ r = null, t(), e();
2332
+ }, a = (e) => {
2333
+ if (typeof requestAnimationFrame != "function") {
2334
+ e();
2335
+ return;
2336
+ }
2337
+ let t = 0;
2338
+ t = requestAnimationFrame(() => {
2339
+ t = requestAnimationFrame(() => {
2340
+ r = null, e();
2341
+ });
2342
+ }), r = {
2343
+ land: e,
2344
+ cancel: () => cancelAnimationFrame(t)
2345
+ };
2346
+ };
2154
2347
  return {
2155
- driveScreenLifecycle: (n) => {
2156
- let { getElements: r, transitionName: i, prevTransitionName: a, status: s, isActive: c, animHoldReleased: l } = n, u = s === "PUSHING" || s === "POPPING" || s === "REPLACING", d = (t, n, a) => {
2157
- let s = e.getTransitionTaskId();
2158
- if (!s || o.pendingTaskIds.some((e) => e !== s) || !G.playerAllowed()) return null;
2159
- let { scope: c, decorator: l, bars: u } = r();
2160
- if (!c) return null;
2161
- let d = P(i), f = z(d, t);
2348
+ driveScreenLifecycle: (r) => {
2349
+ let { getElements: o, transitionName: c, prevTransitionName: l, status: u, isActive: d, animHoldReleased: f } = r, p = u === "PUSHING" || u === "POPPING" || u === "REPLACING", m = p && f && (d ? u === "PUSHING" || u === "REPLACING" : u === "POPPING");
2350
+ if (!m && n) {
2351
+ let e = n;
2352
+ n = null, p ? e() : a(e);
2353
+ }
2354
+ if (m && !n) {
2355
+ i();
2356
+ let { scope: e } = o();
2357
+ e && (n = wt(e));
2358
+ }
2359
+ let h = (t, n, r) => {
2360
+ let i = e.getTransitionTaskId();
2361
+ if (!i || s.pendingTaskIds.some((e) => e !== i) || !Y.playerAllowed()) return null;
2362
+ let { scope: a, decorator: l, bars: u } = o();
2363
+ if (!a) return null;
2364
+ let d = B(c), f = W(d, t);
2162
2365
  if (!f) return null;
2163
- let p = [], m = Z.join(s, {
2164
- element: c,
2366
+ let p = [], m = tn.join(i, {
2367
+ element: a,
2165
2368
  motion: f,
2166
2369
  role: n,
2167
- onComplete: a
2370
+ onComplete: r
2168
2371
  });
2169
2372
  if (!m) return null;
2170
2373
  p.push(m);
2171
2374
  for (let e of u ?? []) {
2172
2375
  if (!e || e.getAttribute("data-flemo-bar-riding") !== "true") continue;
2173
- let t = Z.join(s, {
2376
+ let t = tn.join(i, {
2174
2377
  element: e,
2175
2378
  motion: f,
2176
2379
  role: "passive"
@@ -2178,9 +2381,9 @@ function Zt(e) {
2178
2381
  t && p.push(t);
2179
2382
  }
2180
2383
  if (l && d.decoratorName) {
2181
- let e = I.get(d.decoratorName), n = e ? z(e, t) : null;
2384
+ let e = V.get(d.decoratorName), n = e ? W(e, t) : null;
2182
2385
  if (n) {
2183
- let e = Z.join(s, {
2386
+ let e = tn.join(i, {
2184
2387
  element: l,
2185
2388
  motion: n,
2186
2389
  role: "passive"
@@ -2188,20 +2391,20 @@ function Zt(e) {
2188
2391
  e && p.push(e);
2189
2392
  }
2190
2393
  }
2191
- for (let e of qt(c, t)) {
2192
- let n = L.get(e.getAttribute(Gt)), r = n ? z(n, t) : null;
2394
+ for (let e of on(a, t)) {
2395
+ let n = H.get(e.getAttribute(rn)), r = n ? W(n, t) : null;
2193
2396
  if (!r) continue;
2194
- let i = Z.join(s, {
2397
+ let a = tn.join(i, {
2195
2398
  element: e,
2196
2399
  motion: r,
2197
2400
  role: "passive"
2198
2401
  });
2199
- i && p.push(i);
2402
+ a && p.push(a);
2200
2403
  }
2201
2404
  return () => p.forEach((e) => e());
2202
- }, f = (e, t) => {
2203
- let n = [], { decorator: a, bars: o } = r(), s = P(i), c = (e, t, r) => {
2204
- let i = 0, a = Xt({
2405
+ }, g = (e, t) => {
2406
+ let n = [], { decorator: r, bars: i } = o(), a = B(c), s = (e, t, r) => {
2407
+ let i = 0, a = ln({
2205
2408
  element: e,
2206
2409
  expectedName: t,
2207
2410
  motion: r,
@@ -2213,106 +2416,154 @@ function Zt(e) {
2213
2416
  onTerminal: $
2214
2417
  });
2215
2418
  a.attach(), n.push(a.detach);
2216
- }, l = U("screen", i, t), u = z(s, t);
2217
- if (u) for (let e of o ?? []) !e || e.getAttribute("data-flemo-bar-riding") !== "true" || c(e, l, u);
2218
- if (a && s.decoratorName) {
2219
- let e = I.get(s.decoratorName), n = e ? z(e, t) : null;
2220
- n && c(a, U("decorator", s.decoratorName, t), n);
2419
+ }, l = q("screen", c, t), u = W(a, t);
2420
+ if (u) for (let e of i ?? []) !e || e.getAttribute("data-flemo-bar-riding") !== "true" || s(e, l, u);
2421
+ if (r && a.decoratorName) {
2422
+ let e = V.get(a.decoratorName), n = e ? W(e, t) : null;
2423
+ n && s(r, q("decorator", a.decoratorName, t), n);
2221
2424
  }
2222
- for (let n of qt(e, t)) {
2223
- let e = n.getAttribute(Gt), r = L.get(e), i = r ? z(r, t) : null;
2224
- i && c(n, U("part", e, t), i);
2425
+ for (let n of on(e, t)) {
2426
+ let e = n.getAttribute(rn), r = H.get(e), i = r ? W(r, t) : null;
2427
+ i && s(n, q("part", e, t), i);
2225
2428
  }
2226
2429
  return n;
2227
2430
  };
2228
- if (!c) {
2229
- if (s === "COMPLETED") {
2230
- let { scope: e, decorator: t, bars: n } = r();
2431
+ if (!d) {
2432
+ if (u === "COMPLETED") {
2433
+ let { scope: e, decorator: t, bars: n } = o();
2231
2434
  if (e) {
2232
- J(e);
2233
- for (let t of Kt(e)) J(t);
2435
+ Z(e);
2436
+ for (let t of an(e)) Z(t);
2234
2437
  }
2235
- t && J(t);
2236
- for (let e of n ?? []) e && J(e);
2438
+ t && Z(t);
2439
+ for (let e of n ?? []) e && Z(e);
2237
2440
  return $;
2238
2441
  }
2239
- if (s === "REPLACING" && a !== i && e.setReplaceTransitionStatus("PENDING"), u && l) {
2240
- let e = `${s}-false`, t = d(e, "passive");
2442
+ if (u === "REPLACING" && l !== c && e.setReplaceTransitionStatus("PENDING"), p && f) {
2443
+ let e = `${u}-false`, t = h(e, "passive");
2241
2444
  if (t) return t;
2242
- let { scope: n } = r();
2445
+ let { scope: n } = o();
2243
2446
  if (n) {
2244
- let t = P(i), r = [];
2245
- if (W(t, e)) {
2246
- let a = z(t, e), o = 0, s = Xt({
2447
+ let t = B(c), r = [];
2448
+ if (J(t, e)) {
2449
+ let i = W(t, e), a = 0, o = ln({
2247
2450
  element: n,
2248
- expectedName: U("screen", i, e),
2249
- motion: a,
2451
+ expectedName: q("screen", c, e),
2452
+ motion: i,
2250
2453
  isLive: () => n.isConnected && n.getAttribute("data-flemo-skip-animation") !== "true",
2251
- budgetUsed: () => o,
2454
+ budgetUsed: () => a,
2252
2455
  spendBudget: () => {
2253
- o += 1;
2456
+ a += 1;
2254
2457
  },
2255
2458
  onTerminal: $
2256
2459
  });
2257
- s.attach(), r.push(s.detach);
2460
+ o.attach(), r.push(o.detach);
2258
2461
  }
2259
- if (r.push(...f(n, e)), r.length > 0) return () => r.forEach((e) => e());
2462
+ if (r.push(...g(n, e)), r.length > 0) return () => r.forEach((e) => e());
2260
2463
  }
2261
2464
  }
2262
2465
  return $;
2263
2466
  }
2264
- if (s === "COMPLETED") {
2467
+ if (u === "COMPLETED") {
2265
2468
  e.setDragStatus("IDLE"), e.setReplaceTransitionStatus("IDLE");
2266
- let { scope: t, decorator: n, bars: i } = r();
2469
+ let { scope: t, decorator: n, bars: r } = o();
2267
2470
  if (t) {
2268
- J(t), t.removeAttribute(Q);
2269
- for (let e of Kt(t)) J(e);
2471
+ Z(t), t.removeAttribute(nn);
2472
+ for (let e of an(t)) Z(e);
2270
2473
  }
2271
- n && (J(n), n.removeAttribute(Q));
2272
- for (let e of i ?? []) e && (J(e), e.style.removeProperty("will-change"));
2474
+ n && (Z(n), n.removeAttribute(nn));
2475
+ for (let e of r ?? []) e && (Z(e), e.style.removeProperty("will-change"));
2273
2476
  return $;
2274
2477
  }
2275
- if (s === "IDLE") return $;
2276
- let { scope: p } = r();
2277
- if (!p) return $;
2278
- let m = e.getTransitionTaskId(), h = () => {
2478
+ if (u === "IDLE") return $;
2479
+ let { scope: _ } = o();
2480
+ if (!_) return $;
2481
+ let v = e.getTransitionTaskId(), y = () => {
2279
2482
  let n = e.getTransitionTaskId();
2280
- n && o.resolveTask(n), m && t.delete(m);
2281
- }, g = P(i), _ = `${s}-true`, v = p.getAttribute(Q) === "true";
2282
- if (!(!v && W(g, _))) return queueMicrotask(h), $;
2283
- let y = z(g, _), b = !v && !!y, x = U("screen", i, _), S, C = () => {
2284
- S !== void 0 && (clearTimeout(S), S = void 0);
2285
- }, w = $, T = (e) => {
2286
- e.target === p && e.animationName === x && (p.removeEventListener("animationend", T), C(), w(), h());
2483
+ n && s.resolveTask(n), v && t.delete(v);
2484
+ }, b = B(c), x = `${u}-true`, S = _.getAttribute(nn) === "true";
2485
+ if (!(!S && J(b, x))) {
2486
+ if (!S) {
2487
+ let e = `${u}-false`;
2488
+ if (J(b, e)) {
2489
+ if (!f) return v && s.markGateHeld(v), $;
2490
+ v && s.anchorGate(v);
2491
+ let t = W(b, e), n = (t.delay + t.duration) * 1e3 + 50, r = setTimeout(y, n);
2492
+ return () => clearTimeout(r);
2493
+ }
2494
+ }
2495
+ return queueMicrotask(y), $;
2496
+ }
2497
+ v && (f ? s.anchorGate(v) : s.markGateHeld(v));
2498
+ let C = W(b, x), w = !S && !!C, T = q("screen", c, x), E, D = () => {
2499
+ E !== void 0 && (clearTimeout(E), E = void 0);
2500
+ }, O = 0, ee, te = () => {
2501
+ if (O <= 0) {
2502
+ y();
2503
+ return;
2504
+ }
2505
+ ee = setTimeout(y, O);
2506
+ }, k = $, A = $, j = (e) => {
2507
+ e.target === _ && e.animationName === T && (_.removeEventListener("animationend", j), D(), k(), te());
2287
2508
  };
2288
- p.addEventListener("animationend", T);
2289
- let E = b && l ? d(_, "active", h) : null, D = (y.delay + y.duration) * 1e3, ee = D + 1500, te = m ? setTimeout(() => void o.resolveTask(m), ee) : void 0, ne = D + 250, re = () => m !== null && e.getTransitionTaskId() === m && p.isConnected && p.getAttribute("data-flemo-skip-animation") !== "true" && W(g, _), O = Xt({
2290
- element: p,
2291
- expectedName: x,
2292
- motion: y,
2293
- isLive: re,
2294
- budgetUsed: () => t.get(m) ?? 0,
2509
+ _.addEventListener("animationend", j);
2510
+ let M = w && f ? h(x, "active", y) : null, N = (C.delay + C.duration) * 1e3, ne = N + 1500, re = v ? setTimeout(() => void s.resolveTask(v), ne) : void 0, ie = `${u}-false`, P = J(b, ie) ? W(b, ie) : null, ae = [];
2511
+ for (let e of Array.from(_.ownerDocument.querySelectorAll(`[${rn}][data-flemo-status="${u}"]`))) {
2512
+ let t = H.get(e.getAttribute(rn)), n = `${u}-${e.getAttribute("data-flemo-active")}`, r = t && J(t, n) ? W(t, n) : null;
2513
+ r && ae.push({
2514
+ element: e,
2515
+ motion: r
2516
+ });
2517
+ }
2518
+ let oe = P ? (P.delay + P.duration) * 1e3 : 0;
2519
+ for (let { motion: e } of ae) oe = Math.max(oe, (e.delay + e.duration) * 1e3);
2520
+ O = Math.max(0, Math.min(1e3, oe - N));
2521
+ let se = N + 250, F = () => v !== null && e.getTransitionTaskId() === v && _.isConnected && _.getAttribute("data-flemo-skip-animation") !== "true" && J(b, x), ce = ln({
2522
+ element: _,
2523
+ expectedName: T,
2524
+ motion: C,
2525
+ isLive: F,
2526
+ budgetUsed: () => t.get(v) ?? 0,
2295
2527
  spendBudget: () => {
2296
- t.set(m, (t.get(m) ?? 0) + 1);
2528
+ A(), t.set(v, (t.get(v) ?? 0) + 1);
2297
2529
  },
2298
- onTerminal: h
2530
+ onTerminal: y
2299
2531
  });
2300
- w = O.detach;
2301
- let k = !1, A = () => {
2302
- C(), S = setTimeout(ie, ne);
2303
- }, ie = () => {
2304
- if (C(), re() && !k) {
2305
- k = !0, O.fullRestart(), A();
2532
+ k = ce.detach;
2533
+ let le = !1, ue = () => {
2534
+ D(), E = setTimeout(de, se);
2535
+ }, de = () => {
2536
+ if (D(), F() && !le) {
2537
+ le = !0, A(), ce.fullRestart(), ue();
2306
2538
  return;
2307
2539
  }
2308
- h();
2309
- }, j = !E && l, ae = j ? f(p, _) : [];
2310
- return j && (O.attach(), m && A()), () => {
2311
- if (te !== void 0 && clearTimeout(te), p.removeEventListener("animationend", T), j) {
2312
- O.detach();
2313
- for (let e of ae) e();
2540
+ y();
2541
+ }, I = !M && f, L = I ? g(_, x) : [];
2542
+ I && (ce.attach(), v && ue());
2543
+ let R, fe = () => {
2544
+ R !== void 0 && (clearTimeout(R), R = void 0);
2545
+ };
2546
+ if (A = fe, I && v) {
2547
+ let e = typeof window < "u" && window.devicePixelRatio || 1, t = Ft(C, _, e), n = P ? Ft(P, _, e) : 0, r = 0;
2548
+ for (let { element: t, motion: n } of ae) {
2549
+ let i = Ft(n, t, e);
2550
+ if (i === null) {
2551
+ r = null;
2552
+ break;
2553
+ }
2554
+ r = Math.max(r, i);
2555
+ }
2556
+ let i = t !== null && n !== null && r !== null ? Math.max(t, n, r) : null;
2557
+ i !== null && i + 17 < N + O && (R = setTimeout(() => {
2558
+ R = void 0, F() && (_.removeEventListener("animationend", j), D(), k(), y());
2559
+ }, i + 17));
2560
+ }
2561
+ return () => {
2562
+ if (re !== void 0 && clearTimeout(re), ee !== void 0 && clearTimeout(ee), fe(), _.removeEventListener("animationend", j), I) {
2563
+ ce.detach();
2564
+ for (let e of L) e();
2314
2565
  }
2315
- C(), E?.(), m && e.getTransitionTaskId() !== m && t.delete(m);
2566
+ D(), M?.(), v && e.getTransitionTaskId() !== v && t.delete(v);
2316
2567
  };
2317
2568
  },
2318
2569
  activeResumeEntryCount: () => t.size
@@ -2320,20 +2571,20 @@ function Zt(e) {
2320
2571
  }
2321
2572
  //#endregion
2322
2573
  //#region src/utils/findScrollable.ts
2323
- function Qt(e, t) {
2324
- let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o = $t(e);
2574
+ function dn(e, t) {
2575
+ let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o = fn(e);
2325
2576
  if (!o) return {
2326
2577
  element: null,
2327
2578
  hasMarker: !1
2328
2579
  };
2329
2580
  let s = o.closest?.(r);
2330
- if (s instanceof HTMLElement && en(s, n) && (!a || tn(s, n))) return {
2581
+ if (s instanceof HTMLElement && pn(s, n) && (!a || mn(s, n))) return {
2331
2582
  element: s,
2332
2583
  hasMarker: !0
2333
2584
  };
2334
2585
  let c = o, l = 0;
2335
2586
  for (; c && l < i;) {
2336
- if (en(c, n) && (!a || tn(c, n))) return {
2587
+ if (pn(c, n) && (!a || mn(c, n))) return {
2337
2588
  element: c,
2338
2589
  hasMarker: !1
2339
2590
  };
@@ -2344,7 +2595,7 @@ function Qt(e, t) {
2344
2595
  hasMarker: !1
2345
2596
  };
2346
2597
  }
2347
- function $t(e) {
2598
+ function fn(e) {
2348
2599
  if (!e) return null;
2349
2600
  let t = e, n = typeof t.composedPath == "function" ? t.composedPath() : void 0;
2350
2601
  if (n && n.length) {
@@ -2352,18 +2603,18 @@ function $t(e) {
2352
2603
  }
2353
2604
  return e instanceof HTMLElement ? e : null;
2354
2605
  }
2355
- function en(e, t) {
2606
+ function pn(e, t) {
2356
2607
  return t === "y" ? e.scrollHeight - e.clientHeight > 1 : e.scrollWidth - e.clientWidth > 1;
2357
2608
  }
2358
- function tn(e, t) {
2359
- if (!en(e, t) || typeof window > "u") return !1;
2609
+ function mn(e, t) {
2610
+ if (!pn(e, t) || typeof window > "u") return !1;
2360
2611
  let n = window.getComputedStyle(e), r = t === "y" ? n.overflowY : n.overflowX;
2361
2612
  return r === "auto" || r === "scroll" || r === "overlay";
2362
2613
  }
2363
2614
  //#endregion
2364
2615
  //#region src/core/engine/createSwipeController.ts
2365
- var nn = "data-flemo-skip-animation";
2366
- function rn(e) {
2616
+ var hn = "data-flemo-skip-animation";
2617
+ function gn(e) {
2367
2618
  let t = null, n = null, r = {
2368
2619
  current: [],
2369
2620
  prev: []
@@ -2409,9 +2660,9 @@ function rn(e) {
2409
2660
  y: e.clientY
2410
2661
  }, u = t;
2411
2662
  }, v = (n, i, a) => {
2412
- let o = Y(n, i, a);
2413
- if (n === e.getElements().scope) for (let e of r.current) Y(e, i, a);
2414
- else if (n === t) for (let e of r.prev) Y(e, i, a);
2663
+ let o = Q(n, i, a);
2664
+ if (n === e.getElements().scope) for (let e of r.current) Q(e, i, a);
2665
+ else if (n === t) for (let e of r.prev) Q(e, i, a);
2415
2666
  return o;
2416
2667
  }, y = (t) => {
2417
2668
  let n = e.getPartnerBars(), i = [], { sharedTopBar: a, sharedBottomBar: o } = e.getElements();
@@ -2425,12 +2676,12 @@ function rn(e) {
2425
2676
  current: i,
2426
2677
  prev: s
2427
2678
  };
2428
- let c = Ge(e.getTransition()).join(", ");
2679
+ let c = Ve(e.getTransition()).join(", ");
2429
2680
  for (let e of i) e.style.willChange = c;
2430
2681
  for (let e of s) e.style.willChange = c;
2431
2682
  }, b = () => {
2432
- for (let e of r.current) J(e), e.style.removeProperty("will-change");
2433
- for (let e of r.prev) J(e), e.style.removeProperty("will-change");
2683
+ for (let e of r.current) Z(e), e.style.removeProperty("will-change");
2684
+ for (let e of r.prev) Z(e), e.style.removeProperty("will-change");
2434
2685
  r = {
2435
2686
  current: [],
2436
2687
  prev: []
@@ -2443,10 +2694,10 @@ function rn(e) {
2443
2694
  };
2444
2695
  }, S = (e, t, n) => {
2445
2696
  let r = (r, i) => {
2446
- let a = L.get(r.getAttribute("data-flemo-part-name"));
2697
+ let a = H.get(r.getAttribute("data-flemo-part-name"));
2447
2698
  if (!a) return;
2448
2699
  let o = {
2449
- animate: Y,
2700
+ animate: Q,
2450
2701
  element: r,
2451
2702
  active: i
2452
2703
  };
@@ -2455,7 +2706,7 @@ function rn(e) {
2455
2706
  for (let e of i.current) r(e, !0);
2456
2707
  for (let e of i.prev) r(e, !1);
2457
2708
  }, C = () => {
2458
- for (let e of [...i.current, ...i.prev]) J(e);
2709
+ for (let e of [...i.current, ...i.prev]) Z(e);
2459
2710
  i = {
2460
2711
  current: [],
2461
2712
  prev: []
@@ -2484,7 +2735,7 @@ function rn(e) {
2484
2735
  prevScreen: t,
2485
2736
  onStart: (e) => {
2486
2737
  m?.onSwipeStart?.(e, {
2487
- animate: Y,
2738
+ animate: Q,
2488
2739
  currentDecorator: f,
2489
2740
  prevDecorator: n
2490
2741
  }), S("start", e, 0);
@@ -2501,7 +2752,7 @@ function rn(e) {
2501
2752
  prevScreen: t,
2502
2753
  onProgress: (e, t) => {
2503
2754
  c?.onSwipe?.(e, t, {
2504
- animate: Y,
2755
+ animate: Q,
2505
2756
  currentDecorator: o,
2506
2757
  prevDecorator: n
2507
2758
  }), S("swipe", e, t);
@@ -2520,15 +2771,15 @@ function rn(e) {
2520
2771
  prevScreen: t,
2521
2772
  onStart: (e) => {
2522
2773
  u?.onSwipeEnd?.(e, {
2523
- animate: Y,
2774
+ animate: Q,
2524
2775
  currentDecorator: l,
2525
2776
  prevDecorator: n
2526
2777
  }), S("end", e, 0);
2527
2778
  }
2528
2779
  })) {
2529
- c?.setAttribute(nn, "true"), l?.setAttribute(nn, "true");
2780
+ c?.setAttribute(hn, "true"), l?.setAttribute(hn, "true");
2530
2781
  for (let e of r.current) e.style.removeProperty("will-change");
2531
- for (let e of r.prev) J(e), e.style.removeProperty("will-change");
2782
+ for (let e of r.prev) Z(e), e.style.removeProperty("will-change");
2532
2783
  r = {
2533
2784
  current: [],
2534
2785
  prev: []
@@ -2536,14 +2787,14 @@ function rn(e) {
2536
2787
  current: [],
2537
2788
  prev: []
2538
2789
  }, e.back();
2539
- } else c && J(c), t && J(t), l && J(l), n && J(n), b(), C(), e.setDragStatus("IDLE");
2790
+ } else c && Z(c), t && Z(t), l && Z(l), n && Z(n), b(), C(), e.setDragStatus("IDLE");
2540
2791
  };
2541
2792
  return {
2542
2793
  pointerDown: (t) => {
2543
- e.isReadyForDrag() && (f = Qt(t.target, {
2794
+ e.isReadyForDrag() && (f = dn(t.target, {
2544
2795
  direction: "x",
2545
2796
  verifyByScroll: !0
2546
- }), p = Qt(t.target, {
2797
+ }), p = dn(t.target, {
2547
2798
  direction: "y",
2548
2799
  verifyByScroll: !0
2549
2800
  }), m = t.clientX, h = t.clientY, (!f.element && !p.element || f.element || p.element) && (a = !0));
@@ -2572,7 +2823,7 @@ function rn(e) {
2572
2823
  }
2573
2824
  //#endregion
2574
2825
  //#region src/screen/computeBarRiding.ts
2575
- function an(e) {
2826
+ function _n(e) {
2576
2827
  return !(e.status === "PUSHING" || e.status === "POPPING" || e.status === "REPLACING") || !e.isTopOrTopPrev ? {
2577
2828
  app: !1,
2578
2829
  nav: !1
@@ -2583,27 +2834,24 @@ function an(e) {
2583
2834
  }
2584
2835
  //#endregion
2585
2836
  //#region src/screen/animStartAnchor.ts
2586
- function on(e) {
2837
+ function vn(e) {
2587
2838
  return !(e.status === "PUSHING" || e.status === "POPPING" || e.status === "REPLACING") || !e.isTopOrTopPrev ? null : `${e.status}:${e.transitionName}`;
2588
2839
  }
2589
- function sn(e) {
2590
- return e.holdKey !== null && e.isActive && (e.status === "PUSHING" || e.status === "REPLACING");
2840
+ var yn = 300, bn = 20;
2841
+ function xn(e) {
2842
+ return Array.from(e.querySelectorAll("img")).filter((e) => e.complete && typeof e.decode == "function").slice(0, bn);
2591
2843
  }
2592
- var cn = 300, ln = 20;
2593
- function un(e) {
2594
- return Array.from(e.querySelectorAll("img")).filter((e) => e.complete && typeof e.decode == "function").slice(0, ln);
2595
- }
2596
- function dn(e) {
2597
- if (!(!e || typeof e.querySelectorAll != "function")) for (let t of un(e)) t.decode().catch(() => {});
2844
+ function Sn(e) {
2845
+ if (!(!e || typeof e.querySelectorAll != "function")) for (let t of xn(e)) t.decode().catch(() => {});
2598
2846
  }
2599
- function fn(e, t = {}) {
2847
+ function Cn(e, t = {}) {
2600
2848
  let n = !1, r = 0, i = [], a = () => {
2601
2849
  let r = t.scope;
2602
2850
  if (t.decodeWait === !1 || !r || typeof r.querySelectorAll != "function") {
2603
2851
  e();
2604
2852
  return;
2605
2853
  }
2606
- let i = un(r);
2854
+ let i = xn(r);
2607
2855
  if (i.length === 0) {
2608
2856
  e();
2609
2857
  return;
@@ -2627,13 +2875,13 @@ function fn(e, t = {}) {
2627
2875
  n = !0, cancelAnimationFrame(s), r && cancelAnimationFrame(r), i.forEach((e) => cancelAnimationFrame(e));
2628
2876
  };
2629
2877
  }
2630
- function pn(e, t = {}) {
2631
- let n = fn(e, t), r = setTimeout(e, 300);
2878
+ function wn(e, t = {}) {
2879
+ let n = Cn(e, t), r = setTimeout(e, 300);
2632
2880
  return () => {
2633
2881
  n(), clearTimeout(r);
2634
2882
  };
2635
2883
  }
2636
- function mn() {
2884
+ function Tn() {
2637
2885
  let e = /* @__PURE__ */ new Map(), t = (t, n) => {
2638
2886
  clearTimeout(n.backstop), e.delete(t);
2639
2887
  let r = [...n.members];
@@ -2652,7 +2900,7 @@ function mn() {
2652
2900
  let s = o, c = {
2653
2901
  release: i,
2654
2902
  ready: !1,
2655
- cancelReadiness: fn(() => {
2903
+ cancelReadiness: Cn(() => {
2656
2904
  c.ready = !0, n(s) && t(r, s);
2657
2905
  }, a)
2658
2906
  };
@@ -2669,7 +2917,7 @@ function mn() {
2669
2917
  }
2670
2918
  //#endregion
2671
2919
  //#region src/screen/observeBarHeight.ts
2672
- function hn(e, t) {
2920
+ function En(e, t) {
2673
2921
  e.offsetHeight > 0 && t(e.offsetHeight);
2674
2922
  let n = new ResizeObserver(([e]) => {
2675
2923
  e.contentRect.height > 0 && t(e.contentRect.height);
@@ -2680,14 +2928,14 @@ function hn(e, t) {
2680
2928
  }
2681
2929
  //#endregion
2682
2930
  //#region src/screen/observeViewportScrollHeight.ts
2683
- var gn = 0;
2684
- function _n(e) {
2931
+ var Dn = 0;
2932
+ function On(e) {
2685
2933
  let t = 0, n = () => {
2686
2934
  cancelAnimationFrame(t), t = requestAnimationFrame(() => {
2687
2935
  let t = document.documentElement.scrollHeight - (window.visualViewport?.height || 0);
2688
2936
  t = t < 0 ? 0 : t;
2689
- let n = t - gn;
2690
- n = n < 0 ? 0 : n, gn ||= t, e(t, n);
2937
+ let n = t - Dn;
2938
+ n = n < 0 ? 0 : n, Dn ||= t, e(t, n);
2691
2939
  });
2692
2940
  };
2693
2941
  return window.visualViewport?.addEventListener("resize", n), window.visualViewport?.addEventListener("scroll", n), () => {
@@ -2696,7 +2944,7 @@ function _n(e) {
2696
2944
  }
2697
2945
  //#endregion
2698
2946
  //#region src/utils/isOpaqueColor.ts
2699
- function vn(e) {
2947
+ function kn(e) {
2700
2948
  let t = e.trim().toLowerCase();
2701
2949
  if (t === "transparent" || t === "") return !1;
2702
2950
  if (t.match(/^rgb\(\s*\d+[\s,]+\d+[\s,]+\d+\s*\)$/)) return !0;
@@ -2707,7 +2955,7 @@ function vn(e) {
2707
2955
  }
2708
2956
  //#endregion
2709
2957
  //#region src/utils/buildRoutePath.ts
2710
- function yn(e, n) {
2958
+ function An(e, n) {
2711
2959
  let i = n ?? {}, a = t(e)(Object.fromEntries(Object.entries(i).map(([e, t]) => [e, String(t)]))), o = (typeof e == "string" ? r(e) : e).tokens.filter((e) => e.type === "param").map((e) => e.name), s = Object.fromEntries(Object.entries(i).filter(([e]) => !o.includes(e))), c = new URLSearchParams(s).toString();
2712
2960
  return {
2713
2961
  pathname: `${a}${c ? `?${c}` : ""}`,
@@ -2715,4 +2963,4 @@ function yn(e, n) {
2715
2963
  };
2716
2964
  }
2717
2965
  //#endregion
2718
- export { cn as ANIM_HOLD_RELEASE_BACKSTOP_MS, Q as SKIP_ANIMATION_ATTR, o as TaskManger, on as animHoldKey, Y as animateInline, U as animationName, ae as appendParamsQuery, nt as applyTransitionStyles, yn as buildRoutePath, tn as canProgrammaticallyScroll, J as clearInlineAnimation, Ge as collectAnimatedProperties, $e as compileTransitionStyles, an as computeBarRiding, he as computeScreenFreeze, y as consumeSelfInducedPop, mn as createAnimHoldCoordinator, h as createBrowserHistoryDriver, Ce as createDecorator, s as createHistoryStore, b as createHistorySync, ne as createMemoryHistoryDriver, re as createNavigateStore, ie as createNavigationController, Ee as createPartTransition, we as createRawDecorator, De as createRawPartTransition, ge as createRawTransition, pe as createRouterScope, me as createScreenSelector, ue as createScreenStore, g as createSelfPopGuard, oe as createStepController, rn as createSwipeController, M as createTransition, Zt as createTransitionEngine, ce as createTransitionStore, ve as cupertino, I as decoratorMap, dn as eagerlyDecodeImages, H as easingToCss, ee as ensureScopeHistorySync, f as ensureWindowHistoryState, lt as enteringInitialStyle, Qt as findScrollable, c as getMatchedPathPattern, l as getParams, vn as isOpaqueColor, d as isServer, be as layout, v as markSelfInducedPop, le as matchesPathname, xe as material, Se as none, hn as observeBarHeight, _n as observeViewportScrollHeight, en as overflowsAxis, Te as overlay, L as partTransitionMap, j as readStepParams, ct as registerTransitionDefinitions, te as releaseScopeHistorySync, P as resolveTransition, pn as scheduleAnimHoldRelease, u as seedInitialHistory, p as seedRouterEntry, sn as shouldMountShellFirst, se as subscribeStepParamsRestore, B as targetToDecls, N as transitionMap, W as variantHasAnimation };
2966
+ export { yn as ANIM_HOLD_RELEASE_BACKSTOP_MS, nn as SKIP_ANIMATION_ATTR, s as TaskManger, vn as animHoldKey, Q as animateInline, q as animationName, ie as appendParamsQuery, nt as applyTransitionStyles, An as buildRoutePath, mn as canProgrammaticallyScroll, Z as clearInlineAnimation, Ve as collectAnimatedProperties, Xe as compileTransitionStyles, _n as computeBarRiding, I as computeScreenFreeze, b as consumeSelfInducedPop, Tn as createAnimHoldCoordinator, g as createBrowserHistoryDriver, ve as createDecorator, c as createHistoryStore, x as createHistorySync, k as createMemoryHistoryDriver, A as createNavigateStore, ne as createNavigationController, Se as createPartTransition, ye as createRawDecorator, Ce as createRawPartTransition, R as createRawTransition, ue as createRouterScope, de as createScreenSelector, F as createScreenStore, _ as createSelfPopGuard, P as createStepController, gn as createSwipeController, L as createTransition, un as createTransitionEngine, oe as createTransitionStore, pe as cupertino, V as decoratorMap, Sn as eagerlyDecodeImages, He as easingToCss, ee as ensureScopeHistorySync, p as ensureWindowHistoryState, lt as enteringInitialStyle, dn as findScrollable, l as getMatchedPathPattern, u as getParams, kn as isOpaqueColor, f as isServer, he as layout, y as markSelfInducedPop, se as matchesPathname, ge as material, _e as none, En as observeBarHeight, On as observeViewportScrollHeight, pn as overflowsAxis, xe as overlay, H as partTransitionMap, re as readStepParams, ct as registerTransitionDefinitions, te as releaseScopeHistorySync, B as resolveTransition, wn as scheduleAnimHoldRelease, d as seedInitialHistory, m as seedRouterEntry, ae as subscribeStepParamsRestore, G as targetToDecls, z as transitionMap, J as variantHasAnimation };