@flemo/core 1.20.0 → 1.21.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
@@ -500,13 +500,13 @@ var S = [], C = !1, w = (e) => {
500
500
  let n = window.history.state;
501
501
  return n ? Object.values(n).some((e) => !!e && typeof e == "object" && e.id === t) : !1;
502
502
  };
503
- function D(e, t) {
503
+ function ee(e, t) {
504
504
  for (let n = S.length - 1; n >= 0; --n) if (S[n].pathname === t) return S[n].raw?.[e] ?? null;
505
505
  return null;
506
506
  }
507
- var O = /* @__PURE__ */ new WeakMap();
508
- function ee(e) {
509
- O.has(e) || O.set(e, x({
507
+ var D = /* @__PURE__ */ new WeakMap();
508
+ function O(e) {
509
+ D.has(e) || D.set(e, x({
510
510
  stores: e,
511
511
  driver: e.driver,
512
512
  consume: e.consume,
@@ -516,11 +516,11 @@ function ee(e) {
516
516
  }));
517
517
  }
518
518
  function te(e) {
519
- e.persistent || (O.get(e)?.(), O.delete(e));
519
+ e.persistent || (D.get(e)?.(), D.delete(e));
520
520
  }
521
521
  //#endregion
522
522
  //#region src/history/memoryHistoryDriver.ts
523
- function k(e) {
523
+ function ne(e) {
524
524
  let t = [{
525
525
  state: e?.state ?? null,
526
526
  url: e?.url ?? "/"
@@ -562,7 +562,7 @@ function k(e) {
562
562
  }
563
563
  //#endregion
564
564
  //#region src/navigate/store.ts
565
- function A() {
565
+ function re() {
566
566
  return e((e) => ({
567
567
  status: "IDLE",
568
568
  transitionTaskId: null,
@@ -572,11 +572,11 @@ function A() {
572
572
  }
573
573
  //#endregion
574
574
  //#region src/navigate/createNavigationController.ts
575
- var j = (e, t, n) => {
575
+ var k = (e, t, n) => {
576
576
  let { regexp: r } = i(e);
577
577
  for (let e = t - 1; e >= 0; e--) if (r.test(n[e].pathname)) return t - e;
578
578
  return -1;
579
- }, M = (e, t) => typeof e == "number" && Number.isFinite(e) ? Math.max(0, Math.trunc(e)) : t, N = async (e, t, n, r) => {
579
+ }, A = (e, t) => typeof e == "number" && Number.isFinite(e) ? Math.max(0, Math.trunc(e)) : t, j = async (e, t, n, r) => {
580
580
  let i, a = new Promise((t) => {
581
581
  i = e.subscribe(() => t(!0));
582
582
  }), o = new Promise((e) => setTimeout(() => e(!1), 200));
@@ -584,7 +584,7 @@ var j = (e, t, n) => {
584
584
  let s = await Promise.race([a, o]);
585
585
  i(), s && r();
586
586
  };
587
- function ne(e) {
587
+ function ie(e) {
588
588
  let { stores: t, buildPathname: n, driver: r = g(), markSelfInduced: i = y } = e, o = () => t.history.getState().bumpTruncationEpoch(), c = () => {
589
589
  let e = r.readState();
590
590
  if (!e?.id) return null;
@@ -610,10 +610,10 @@ function ne(e) {
610
610
  }
611
611
  let s = c(), { index: d, histories: f, addHistory: g, popHistories: _ } = t.history.getState(), v = (() => {
612
612
  if (u?.until != null) {
613
- let e = j(u.until, d, f);
613
+ let e = k(u.until, d, f);
614
614
  return e < 0 ? 0 : e;
615
615
  }
616
- return Math.min(M(u?.skip, 0), Math.max(0, d));
616
+ return Math.min(A(u?.skip, 0), Math.max(0, d));
617
617
  })(), { setStatus: y, setTransitionTaskId: b } = t.navigate.getState();
618
618
  y("PUSHING"), b(h);
619
619
  let { pathname: x, toPathname: S } = n(e, l ?? {}), C = {
@@ -640,7 +640,7 @@ function ne(e) {
640
640
  return g({
641
641
  ...C,
642
642
  frameIndex: T + 1
643
- }), await N(r, i, v, () => {
643
+ }), await j(r, i, v, () => {
644
644
  o(), r.pushState({
645
645
  id: h,
646
646
  index: T + 1,
@@ -661,7 +661,16 @@ function ne(e) {
661
661
  })).result?.();
662
662
  }, u = async (e, l, u) => {
663
663
  let { status: d } = t.navigate.getState();
664
- if (d !== "COMPLETED" && d !== "IDLE") return;
664
+ if (d !== "COMPLETED" && d !== "IDLE") {
665
+ await s.resolveAllPending();
666
+ for (let e = 0; e < 5; e++) {
667
+ let { status: e } = t.navigate.getState();
668
+ if (e === "COMPLETED" || e === "IDLE") break;
669
+ await new Promise((e) => setTimeout(e, 0));
670
+ }
671
+ let { status: e } = t.navigate.getState();
672
+ if (e !== "COMPLETED" && e !== "IDLE") return;
673
+ }
665
674
  let f = t.transition.getState().defaultTransitionName, { transitionName: p = f, layoutId: m = null } = u ?? {}, h = s.generateTaskId();
666
675
  (await s.addTask(async (a) => {
667
676
  if (t.life && !t.life.alive) {
@@ -670,10 +679,10 @@ function ne(e) {
670
679
  }
671
680
  let s = c(), { index: d, histories: f, addHistory: g, replaceHistory: _, popHistories: v } = t.history.getState(), y = (() => {
672
681
  if (u?.until != null) {
673
- let e = j(u.until, d, f);
682
+ let e = k(u.until, d, f);
674
683
  return e < 0 ? 0 : e + 1;
675
684
  }
676
- return Math.min(M(u?.skip, 0) + 1, d + 1);
685
+ return Math.min(A(u?.skip, 0) + 1, d + 1);
677
686
  })();
678
687
  if (y <= 0) {
679
688
  a.abort();
@@ -705,7 +714,7 @@ function ne(e) {
705
714
  return v(y - 1), g({
706
715
  ...w,
707
716
  frameIndex: E
708
- }), y <= d ? await N(r, i, y, () => {
717
+ }), y <= d ? await j(r, i, y, () => {
709
718
  o(), r.pushState({
710
719
  id: h,
711
720
  index: E,
@@ -714,7 +723,7 @@ function ne(e) {
714
723
  transitionName: p,
715
724
  layoutId: m
716
725
  }, S);
717
- }) : await N(r, i, d, () => {
726
+ }) : await j(r, i, d, () => {
718
727
  o(), r.replaceState({
719
728
  id: h,
720
729
  index: E,
@@ -770,10 +779,10 @@ function ne(e) {
770
779
  pop: async (e) => {
771
780
  await d((t, n) => {
772
781
  if (e?.until != null) {
773
- let r = j(e.until, t, n);
782
+ let r = k(e.until, t, n);
774
783
  return r < 0 ? 0 : r;
775
784
  }
776
- let r = M(e?.skip, 1);
785
+ let r = A(e?.skip, 1);
777
786
  return r <= 0 ? 0 : Math.min(r, t);
778
787
  }, e?.transitionName);
779
788
  }
@@ -781,14 +790,14 @@ function ne(e) {
781
790
  }
782
791
  //#endregion
783
792
  //#region src/navigate/createStepController.ts
784
- var re = (e) => {
793
+ var ae = (e) => {
785
794
  let t = e;
786
795
  return t?.step ? t.params ?? {} : null;
787
- }, ie = (e, t) => {
796
+ }, oe = (e, t) => {
788
797
  let n = new URLSearchParams(Object.fromEntries(Object.entries(t).map(([e, t]) => [e, String(t)]))).toString();
789
798
  return n ? `${e}?${n}` : e;
790
799
  };
791
- function P(e) {
800
+ function se(e) {
792
801
  let { stores: t, driver: n, markSelfInduced: r, buildStepPathname: i, applyParams: o } = e;
793
802
  return {
794
803
  pushStep: async (e) => {
@@ -846,7 +855,7 @@ function P(e) {
846
855
  }
847
856
  };
848
857
  }
849
- function ae(e, t) {
858
+ function ce(e, t) {
850
859
  return e.subscribe((e) => {
851
860
  let n = e.state;
852
861
  n?.step && s.addTask(async () => {
@@ -856,7 +865,7 @@ function ae(e, t) {
856
865
  }
857
866
  //#endregion
858
867
  //#region src/transition/store.ts
859
- function oe(t = "cupertino") {
868
+ function M(t = "cupertino") {
860
869
  return e((e) => ({
861
870
  defaultTransitionName: t,
862
871
  setDefaultTransitionName: (t) => e({ defaultTransitionName: t })
@@ -864,12 +873,12 @@ function oe(t = "cupertino") {
864
873
  }
865
874
  //#endregion
866
875
  //#region src/utils/matchesPathname.ts
867
- function se(e, t) {
876
+ function le(e, t) {
868
877
  return i(e).regexp.test(t);
869
878
  }
870
879
  //#endregion
871
880
  //#region src/screen/store.ts
872
- function F() {
881
+ function ue() {
873
882
  return e((e) => ({
874
883
  dragStatus: "IDLE",
875
884
  replaceTransitionStatus: "IDLE",
@@ -900,21 +909,21 @@ function F() {
900
909
  }
901
910
  //#endregion
902
911
  //#region src/core/createRouterScope.ts
903
- var ce = {
912
+ var de = {
904
913
  mark: () => {},
905
914
  consume: () => !1
906
- }, le = /* @__PURE__ */ new Map();
907
- function ue(e) {
915
+ }, N = /* @__PURE__ */ new Map();
916
+ function fe(e) {
908
917
  let { routePaths: t, pathname: n, search: r, defaultTransitionName: i, memory: a, browserDriver: o } = e, s = f() ? void 0 : e.persistKey;
909
918
  if (s) {
910
- let e = le.get(s);
919
+ let e = N.get(s);
911
920
  if (e) {
912
921
  e.life.alive = !0, e.navigate.getState().setStatus("IDLE"), e.navigate.getState().setTransitionTaskId(null);
913
922
  let t = e.history.getState();
914
923
  return t.setPendingIndex(t.index), e;
915
924
  }
916
925
  }
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 ? {
926
+ let l = d(t, n, r, i), u = (e.routerKey && !f() ? ee(e.routerKey, n) : null) ?? (o && !f() ? o.readState() : null), p = u?.id ? {
918
927
  ...l,
919
928
  id: u.id,
920
929
  params: u.params ?? l.params,
@@ -927,7 +936,7 @@ function ue(e) {
927
936
  index: 0,
928
937
  histories: [p]
929
938
  }), e.hostedScope;
930
- let m = a ? k({
939
+ let m = a ? ne({
931
940
  state: {
932
941
  id: p.id,
933
942
  index: 0,
@@ -937,25 +946,25 @@ function ue(e) {
937
946
  layoutId: p.layoutId
938
947
  },
939
948
  url: p.pathname
940
- }) : o, h = a ? ce : _(), g = {
949
+ }) : o, h = a ? de : _(), g = {
941
950
  history: c([p], 0),
942
- navigate: A(),
943
- transition: oe(i),
944
- screen: F(),
951
+ navigate: re(),
952
+ transition: M(i),
953
+ screen: ue(),
945
954
  driver: m,
946
955
  markSelfInduced: h.mark,
947
956
  consume: h.consume,
948
957
  routerKey: e.routerKey,
949
958
  zoneEntryId: e.zoneEntryId,
950
- ownsPathname: (e) => se(t, e),
959
+ ownsPathname: (e) => le(t, e),
951
960
  persistent: !!s,
952
961
  life: { alive: !0 }
953
962
  };
954
- return s && le.set(s, g), g;
963
+ return s && N.set(s, g), g;
955
964
  }
956
965
  //#endregion
957
966
  //#region src/screen/createScreenSelector.ts
958
- function de(e, t) {
967
+ function pe(e, t) {
959
968
  return e.map((n, r) => ({
960
969
  ...n,
961
970
  isActive: r === t,
@@ -968,13 +977,13 @@ function de(e, t) {
968
977
  }
969
978
  //#endregion
970
979
  //#region src/screen/computeScreenFreeze.ts
971
- function I(e) {
980
+ function me(e) {
972
981
  let t = e.status === "COMPLETED" && e.dragStatus === "IDLE";
973
982
  return !e.isActive && t || e.isPrev && e.index - 2 <= e.zIndex && e.replaceTransitionStatus === "IDLE" || e.isPrev && e.index - 2 > e.zIndex;
974
983
  }
975
984
  //#endregion
976
985
  //#region src/transition/createTransition.ts
977
- function L({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exitBack: o, options: s }) {
986
+ function P({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exitBack: o, options: s }) {
978
987
  return {
979
988
  name: e,
980
989
  initial: t,
@@ -995,7 +1004,7 @@ function L({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exit
995
1004
  }
996
1005
  //#endregion
997
1006
  //#region src/transition/createRawTransition.ts
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 }) {
1007
+ function F({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnExit: l, completedOnEnter: u, options: d }) {
999
1008
  return {
1000
1009
  name: e,
1001
1010
  initial: t,
@@ -1016,10 +1025,10 @@ function R({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replac
1016
1025
  }
1017
1026
  //#endregion
1018
1027
  //#region src/transition/cupertino.ts
1019
- var fe = (e, t, n) => {
1028
+ var he = (e, t, n) => {
1020
1029
  let [r, i] = t, [a, o] = n;
1021
1030
  return i === r ? a : a + (e - r) / (i - r) * (o - a);
1022
- }, pe = L({
1031
+ }, I = P({
1023
1032
  name: "cupertino",
1024
1033
  initial: { x: "100%" },
1025
1034
  idle: {
@@ -1079,7 +1088,7 @@ var fe = (e, t, n) => {
1079
1088
  swipeDirection: "x",
1080
1089
  onSwipeStart: async () => !0,
1081
1090
  onSwipe: (e, t, { animate: n, currentScreen: r, prevScreen: i, onProgress: a }) => {
1082
- let { offset: o } = t, s = o.x, c = fe(s, [0, window.innerWidth], [0, 100]);
1091
+ let { offset: o } = t, s = o.x, c = he(s, [0, window.innerWidth], [0, 100]);
1083
1092
  return a?.(!0, c), n(r, { x: Math.max(0, s) }, { duration: 0 }), n(i, { x: `${-35 + c * .35}%` }, { duration: 0 }), c;
1084
1093
  },
1085
1094
  onSwipeEnd: async (e, t, { animate: n, currentScreen: r, prevScreen: i, onStart: a }) => {
@@ -1103,10 +1112,10 @@ var fe = (e, t, n) => {
1103
1112
  })]), c;
1104
1113
  }
1105
1114
  }
1106
- }), me = (e, t, n) => {
1115
+ }), ge = (e, t, n) => {
1107
1116
  let [r, i] = t, [a, o] = n;
1108
1117
  return i === r ? a : a + (e - r) / (i - r) * (o - a);
1109
- }, he = L({
1118
+ }, _e = P({
1110
1119
  name: "layout",
1111
1120
  initial: { opacity: .97 },
1112
1121
  idle: {
@@ -1134,7 +1143,7 @@ var fe = (e, t, n) => {
1134
1143
  swipeDirection: "y",
1135
1144
  onSwipeStart: async () => !0,
1136
1145
  onSwipe: (e, t, { animate: n, currentScreen: r, onProgress: i }) => {
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);
1146
+ let { offset: a } = t, o = a.y, s = Math.max(0, Math.min(56, o)), c = ge(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);
1138
1147
  return i?.(!0, 100), n(r, {
1139
1148
  y: f,
1140
1149
  opacity: c
@@ -1151,7 +1160,7 @@ var fe = (e, t, n) => {
1151
1160
  }, { duration: .3 })]), c;
1152
1161
  }
1153
1162
  }
1154
- }), ge = L({
1163
+ }), ve = P({
1155
1164
  name: "material",
1156
1165
  initial: { y: "100%" },
1157
1166
  idle: {
@@ -1259,7 +1268,7 @@ var fe = (e, t, n) => {
1259
1268
  })]), c;
1260
1269
  }
1261
1270
  }
1262
- }), _e = L({
1271
+ }), ye = P({
1263
1272
  name: "none",
1264
1273
  initial: {},
1265
1274
  idle: {
@@ -1282,20 +1291,20 @@ var fe = (e, t, n) => {
1282
1291
  value: {},
1283
1292
  options: { duration: 0 }
1284
1293
  }
1285
- }), z = new Map([
1286
- ["none", _e],
1287
- ["cupertino", pe],
1288
- ["material", ge],
1289
- ["layout", he]
1294
+ }), L = /* @__PURE__ */ new Map([
1295
+ ["none", ye],
1296
+ ["cupertino", I],
1297
+ ["material", ve],
1298
+ ["layout", _e]
1290
1299
  ]);
1291
1300
  //#endregion
1292
1301
  //#region src/transition/resolveTransition.ts
1293
- function B(e) {
1294
- return z.get(e) ?? z.get("none");
1302
+ function be(e) {
1303
+ return L.get(e) ?? L.get("none");
1295
1304
  }
1296
1305
  //#endregion
1297
1306
  //#region src/transition/decorator/createDecorator.ts
1298
- function ve({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1307
+ function xe({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1299
1308
  return {
1300
1309
  name: e,
1301
1310
  initial: t,
@@ -1316,7 +1325,7 @@ function ve({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1316
1325
  }
1317
1326
  //#endregion
1318
1327
  //#region src/transition/decorator/createRawDecorator.ts
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 }) {
1328
+ function Se({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
1320
1329
  return {
1321
1330
  name: e,
1322
1331
  initial: t,
@@ -1337,30 +1346,30 @@ function ye({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
1337
1346
  }
1338
1347
  //#endregion
1339
1348
  //#region src/transition/decorator/overlay.ts
1340
- var be = "rgba(0, 0, 0, 0.2)", xe = ve({
1349
+ var Ce = "rgba(0, 0, 0, 0.2)", we = xe({
1341
1350
  name: "overlay",
1342
1351
  initial: {
1343
1352
  opacity: 0,
1344
- backgroundColor: be
1353
+ backgroundColor: Ce
1345
1354
  },
1346
1355
  idle: {
1347
1356
  value: {
1348
1357
  opacity: 0,
1349
- backgroundColor: be
1358
+ backgroundColor: Ce
1350
1359
  },
1351
1360
  options: { duration: 0 }
1352
1361
  },
1353
1362
  enter: {
1354
1363
  value: {
1355
1364
  opacity: 1,
1356
- backgroundColor: be
1365
+ backgroundColor: Ce
1357
1366
  },
1358
1367
  options: { duration: .6 }
1359
1368
  },
1360
1369
  exit: {
1361
1370
  value: {
1362
1371
  opacity: 0,
1363
- backgroundColor: be
1372
+ backgroundColor: Ce
1364
1373
  },
1365
1374
  options: { duration: .6 }
1366
1375
  },
@@ -1369,10 +1378,10 @@ var be = "rgba(0, 0, 0, 0.2)", xe = ve({
1369
1378
  onSwipe: (e, t, { animate: n, prevDecorator: r }) => n(r, { opacity: Math.max(0, 1 - t / 100) }, { duration: 0 }),
1370
1379
  onSwipeEnd: (e, { animate: t, prevDecorator: n }) => t(n, { opacity: +!e }, { duration: .3 })
1371
1380
  }
1372
- }), V = new Map([["overlay", xe]]);
1381
+ }), R = /* @__PURE__ */ new Map([["overlay", we]]);
1373
1382
  //#endregion
1374
1383
  //#region src/transition/partTransition/createPartTransition.ts
1375
- function Se({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1384
+ function Te({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1376
1385
  return {
1377
1386
  name: e,
1378
1387
  initial: t,
@@ -1393,7 +1402,7 @@ function Se({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
1393
1402
  }
1394
1403
  //#endregion
1395
1404
  //#region src/transition/partTransition/createRawPartTransition.ts
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 }) {
1405
+ function Ee({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
1397
1406
  return {
1398
1407
  name: e,
1399
1408
  initial: t,
@@ -1414,7 +1423,7 @@ function Ce({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
1414
1423
  }
1415
1424
  //#endregion
1416
1425
  //#region src/transition/partTransition/partTransition.ts
1417
- var H = /* @__PURE__ */ new Map(), U = {
1426
+ var z = /* @__PURE__ */ new Map(), B = {
1418
1427
  "IDLE-true": "self",
1419
1428
  "IDLE-false": "self",
1420
1429
  "PUSHING-true": "initial",
@@ -1425,17 +1434,17 @@ var H = /* @__PURE__ */ new Map(), U = {
1425
1434
  "POPPING-false": "PUSHING-false",
1426
1435
  "COMPLETED-true": "self",
1427
1436
  "COMPLETED-false": "self"
1428
- }, we = Object.keys(U), Te = (e) => {
1437
+ }, De = Object.keys(B), Oe = (e) => {
1429
1438
  if (!e) return 0;
1430
1439
  let t = e.duration;
1431
1440
  return typeof t == "number" && t >= 0 ? t : 0;
1432
- }, Ee = (e) => e && typeof e.delay == "number" && e.delay > 0 ? e.delay : 0, De = (e, t) => {
1433
- let n = U[t];
1441
+ }, ke = (e) => e && typeof e.delay == "number" && e.delay > 0 ? e.delay : 0, Ae = (e, t) => {
1442
+ let n = B[t];
1434
1443
  return n === "self" ? null : n === "initial" ? e.initial : e.variants[n].value;
1435
- }, W = (e, t) => {
1436
- let n = De(e, t);
1444
+ }, V = (e, t) => {
1445
+ let n = Ae(e, t);
1437
1446
  if (n === null) return null;
1438
- let r = e.variants[t], i = Te(r.options), a = Ee(r.options);
1447
+ let r = e.variants[t], i = Oe(r.options), a = ke(r.options);
1439
1448
  return i <= 0 && a <= 0 ? null : {
1440
1449
  from: n,
1441
1450
  to: r.value,
@@ -1443,7 +1452,7 @@ var H = /* @__PURE__ */ new Map(), U = {
1443
1452
  delay: a,
1444
1453
  ease: r.options?.ease
1445
1454
  };
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([
1455
+ }, je = De, Me = (e) => e.replace(/[^a-zA-Z0-9_-]/g, "_"), Ne = (e) => typeof e == "object" && !!e && !Array.isArray(e), Pe = /* @__PURE__ */ 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(".")), Fe = (e, t) => t.startsWith("--") || Pe.has(t) ? `${e}` : t === "rotate" || t === "rotateX" || t === "rotateY" || t === "rotateZ" ? `${e}deg` : `${e}px`, Ie = (e, t) => typeof t == "number" ? Fe(t, e) : typeof t == "string" ? t : "", Le = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), Re = /* @__PURE__ */ new Set([
1447
1456
  "x",
1448
1457
  "y",
1449
1458
  "z",
@@ -1454,7 +1463,7 @@ var H = /* @__PURE__ */ new Map(), U = {
1454
1463
  "rotateX",
1455
1464
  "rotateY",
1456
1465
  "rotateZ"
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) => {
1466
+ ]), ze = /^-?0(\.0+)?(px|%|em|rem|vh|vw|vmin|vmax)?$/, Be = /^-?0(\.0+)?(deg|rad|grad|turn)?$/, Ve = /^1(\.0+)?$/, He = (e, t) => e === "scale" || e === "scaleX" || e === "scaleY" ? t === 1 || typeof t == "string" && Ve.test(t.trim()) : e === "rotate" || e === "rotateX" || e === "rotateY" || e === "rotateZ" ? t === 0 || typeof t == "string" && Be.test(t.trim()) : t === 0 || typeof t == "string" && ze.test(t.trim()), Ue = (e, t) => {
1458
1467
  switch (e) {
1459
1468
  case "x": return `translate3d(${t}, 0, 0)`;
1460
1469
  case "y": return `translate3d(0, ${t}, 0)`;
@@ -1468,16 +1477,16 @@ var H = /* @__PURE__ */ new Map(), U = {
1468
1477
  case "rotateY": return `rotateY(${t})`;
1469
1478
  default: return "";
1470
1479
  }
1471
- }, Ve = (e) => {
1480
+ }, We = (e) => {
1472
1481
  let t = /* @__PURE__ */ new Map(), n = !1, r = /* @__PURE__ */ new Set(), i = (e) => {
1473
- if (!Ae(e)) return;
1482
+ if (!Ne(e)) return;
1474
1483
  let n = [];
1475
1484
  for (let r of Object.keys(e)) {
1476
- let i = e[r], a = Ne(r, i);
1477
- if (a !== "") if (Fe.has(r)) n.push(`${r}:${a}`);
1485
+ let i = e[r], a = Ie(r, i);
1486
+ if (a !== "") if (Re.has(r)) n.push(`${r}:${a}`);
1478
1487
  else {
1479
- let e = t.get(Pe(r)) ?? /* @__PURE__ */ new Set();
1480
- e.add(a), t.set(Pe(r), e);
1488
+ let e = t.get(Le(r)) ?? /* @__PURE__ */ new Set();
1489
+ e.add(a), t.set(Le(r), e);
1481
1490
  }
1482
1491
  }
1483
1492
  r.add(n.sort().join("|"));
@@ -1487,13 +1496,13 @@ var H = /* @__PURE__ */ new Map(), U = {
1487
1496
  n = r.size > 1;
1488
1497
  let a = Array.from(t.entries()).filter(([, e]) => e.size > 1).map(([e]) => e);
1489
1498
  return n && a.push("transform"), a;
1490
- }, G = (e) => {
1491
- if (!Ae(e)) return [];
1499
+ }, H = (e) => {
1500
+ if (!Ne(e)) return [];
1492
1501
  let t = [], n = !0, r = [];
1493
1502
  for (let i of Object.keys(e)) {
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),
1503
+ let a = e[i], o = Ie(i, a);
1504
+ o !== "" && (Re.has(i) ? (t.push(Ue(i, o)), He(i, a) || (n = !1)) : r.push({
1505
+ property: Le(i),
1497
1506
  value: o
1498
1507
  }));
1499
1508
  }
@@ -1501,7 +1510,7 @@ var H = /* @__PURE__ */ new Map(), U = {
1501
1510
  property: "transform",
1502
1511
  value: n ? "none" : t.join(" ")
1503
1512
  }), r;
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" ? {
1513
+ }, U = (e) => e.map((e) => ` ${e.property}: ${e.value};`).join("\n"), Ge = (e) => Array.isArray(e) ? e.length === 4 && e.every((e) => typeof e == "number") ? `cubic-bezier(${e.join(", ")})` : "linear" : typeof e == "string" ? {
1505
1514
  linear: "linear",
1506
1515
  easeIn: "ease-in",
1507
1516
  easeOut: "ease-out",
@@ -1511,29 +1520,29 @@ var H = /* @__PURE__ */ new Map(), U = {
1511
1520
  backIn: "cubic-bezier(0.31, 0.01, 0.66, -0.59)",
1512
1521
  backOut: "cubic-bezier(0.33, 1.53, 0.69, 0.99)",
1513
1522
  anticipate: "cubic-bezier(0.36, 0, 0.66, -0.56)"
1514
- }[e] ?? "ease" : "ease", Ue = (e, t) => {
1523
+ }[e] ?? "ease" : "ease", Ke = (e, t) => {
1515
1524
  let [n, r] = t.split("-");
1516
1525
  return `[data-flemo-screen][data-flemo-transition="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
1517
- }, We = (e, t) => {
1526
+ }, qe = (e, t) => {
1518
1527
  let [n, r] = t.split("-");
1519
1528
  return `[data-flemo-decorator][data-flemo-decorator-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
1520
- }, Ge = (e, t) => {
1529
+ }, Je = (e, t) => {
1521
1530
  let [n, r] = t.split("-");
1522
1531
  return `[data-flemo-bar][data-flemo-bar-transition="${e}"][data-flemo-bar-status="${n}"][data-flemo-bar-active="${r}"][data-flemo-bar-riding="true"]`;
1523
- }, Ke = (e, t) => {
1532
+ }, Ye = (e, t) => {
1524
1533
  let [n, r] = t.split("-");
1525
1534
  return `[data-flemo-part-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
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;
1535
+ }, W = (e, t, n) => `flemo-${e}-${Me(t)}-${n}`, Xe = (e, t, n, r, i, a) => {
1536
+ let o = H(r), s = H(i.value), c = Oe(i.options), l = ke(i.options), u = Ge(i.options?.ease), d = a(t, n), f = e === "screen" ? `${d},\n${Je(t, n)}` : d;
1528
1537
  if (s.length === 0 && o.length === 0) return "";
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 = [
1538
+ if (c <= 0 && l <= 0) return s.length === 0 ? "" : `${f} {\n${U(s)}\n animation: none;\n}`;
1539
+ let p = W(e, t, n), m = [
1531
1540
  `@keyframes ${p} {`,
1532
1541
  " from {",
1533
- K(o).replace(/^/gm, " "),
1542
+ U(o).replace(/^/gm, " "),
1534
1543
  " }",
1535
1544
  " to {",
1536
- K(s).replace(/^/gm, " "),
1545
+ U(s).replace(/^/gm, " "),
1537
1546
  " }",
1538
1547
  "}"
1539
1548
  ].join("\n"), h = [
@@ -1542,61 +1551,60 @@ var H = /* @__PURE__ */ new Map(), U = {
1542
1551
  u,
1543
1552
  l > 0 ? `${l}s` : null,
1544
1553
  "both"
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];
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) => {
1554
+ ].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(/* @__PURE__ */ 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];
1555
+ 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${U(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${U(s)}\n}` : ""}`;
1556
+ }, Ze = (e) => {
1548
1557
  if (!e) return !1;
1549
1558
  if (e.opacity === 0) return !0;
1550
1559
  let t = (e) => typeof e == "string" && e.trim().endsWith("%") && Math.abs(parseFloat(e)) >= 100;
1551
1560
  return t(e.x) || t(e.y);
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 = []) => {
1561
+ }, Qe = (e, t, n, r) => {
1562
+ let i = H(r.value);
1563
+ return i.length === 0 ? "" : `${e(t, n)} {\n${U(i)}\n}`;
1564
+ }, $e = (e, t, n = []) => {
1556
1565
  let r = [];
1557
1566
  for (let t of e) {
1558
1567
  let e = t.name;
1559
- for (let n of we) {
1560
- let i = t.variants[n], a = U[n];
1568
+ for (let n of De) {
1569
+ let i = t.variants[n], a = B[n];
1561
1570
  if (a === "self") {
1562
- r.push(Ye(Ue, e, n, i));
1571
+ r.push(Qe(Ke, e, n, i));
1563
1572
  continue;
1564
1573
  }
1565
1574
  let o = a === "initial" ? t.initial : t.variants[a].value;
1566
- r.push(qe("screen", e, n, o, i, Ue));
1575
+ r.push(Xe("screen", e, n, o, i, Ke));
1567
1576
  }
1568
1577
  }
1569
1578
  for (let e of t) {
1570
1579
  let t = e.name;
1571
- for (let n of Oe) {
1572
- let i = e.variants[n], a = U[n];
1580
+ for (let n of je) {
1581
+ let i = e.variants[n], a = B[n];
1573
1582
  if (a === "self") {
1574
- r.push(Ye(We, t, n, i));
1583
+ r.push(Qe(qe, t, n, i));
1575
1584
  continue;
1576
1585
  }
1577
1586
  let o = a === "initial" ? e.initial : e.variants[a].value;
1578
- r.push(qe("decorator", t, n, o, i, We));
1587
+ r.push(Xe("decorator", t, n, o, i, qe));
1579
1588
  }
1580
1589
  }
1581
1590
  for (let e of n) {
1582
1591
  let t = e.name;
1583
- for (let n of Oe) {
1584
- let i = e.variants[n], a = U[n];
1592
+ for (let n of je) {
1593
+ let i = e.variants[n], a = B[n];
1585
1594
  if (a === "self") {
1586
- r.push(Ye(Ke, t, n, i));
1595
+ r.push(Qe(Ye, t, n, i));
1587
1596
  continue;
1588
1597
  }
1589
1598
  let o = a === "initial" ? e.initial : e.variants[a].value;
1590
- r.push(qe("part", t, n, o, i, Ke));
1599
+ r.push(Xe("part", t, n, o, i, Ye));
1591
1600
  }
1592
1601
  }
1593
1602
  return [
1594
1603
  ...r.filter((e) => e.length > 0),
1595
- Ze,
1596
- $e,
1597
- et
1604
+ et,
1605
+ tt
1598
1606
  ].join("\n\n");
1599
- }, Ze = [
1607
+ }, et = [
1600
1608
  "[data-flemo-anim-hold=\"true\"],",
1601
1609
  "[data-flemo-anim-hold=\"park\"],",
1602
1610
  "[data-flemo-anim-hold=\"park-under\"],",
@@ -1605,53 +1613,45 @@ var H = /* @__PURE__ */ new Map(), U = {
1605
1613
  "[data-flemo-anim-hold=\"park-under\"] [data-flemo-part-name] {",
1606
1614
  " animation-play-state: paused !important;",
1607
1615
  "}"
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 = [
1616
+ ].join("\n"), tt = [
1617
1617
  "[data-flemo-held-arrival] {",
1618
1618
  " display: none !important;",
1619
1619
  "}"
1620
- ].join("\n"), J = (e, t) => {
1621
- let n = U[t];
1620
+ ].join("\n"), G = (e, t) => {
1621
+ let n = B[t];
1622
1622
  if (n === "self") return !1;
1623
- let r = e.variants[t], i = Te(r.options), a = Ee(r.options);
1623
+ let r = e.variants[t], i = Oe(r.options), a = ke(r.options);
1624
1624
  if (i <= 0 && a <= 0) return !1;
1625
- let o = G(n === "initial" ? e.initial : e.variants[n].value), s = G(r.value);
1625
+ let o = H(n === "initial" ? e.initial : e.variants[n].value), s = H(r.value);
1626
1626
  return o.length > 0 || s.length > 0;
1627
- }, tt = "data-flemo";
1628
- function nt() {
1627
+ }, nt = "data-flemo";
1628
+ function rt() {
1629
1629
  if (f()) return;
1630
- let e = Xe(z.values(), V.values(), H.values()), t = document.head.querySelector(`style[${tt}]`);
1631
- t || (t = document.createElement("style"), t.setAttribute(tt, ""), document.head.appendChild(t)), t.textContent !== e && (t.textContent = e);
1630
+ let e = $e(L.values(), R.values(), z.values()), t = document.head.querySelector(`style[${nt}]`);
1631
+ t || (t = document.createElement("style"), t.setAttribute(nt, ""), document.head.appendChild(t)), t.textContent !== e && (t.textContent = e);
1632
1632
  }
1633
1633
  //#endregion
1634
1634
  //#region src/transition/registerTransitionDefinitions.ts
1635
- var rt = /* @__PURE__ */ new Map(), it = /* @__PURE__ */ new Map(), at = /* @__PURE__ */ new Map(), ot = (e, t) => {
1635
+ var it = /* @__PURE__ */ new Map(), at = /* @__PURE__ */ new Map(), ot = /* @__PURE__ */ new Map(), st = (e, t) => {
1636
1636
  e.set(t, (e.get(t) ?? 0) + 1);
1637
- }, st = (e, t) => {
1637
+ }, ct = (e, t) => {
1638
1638
  let n = (e.get(t) ?? 1) - 1;
1639
1639
  return n <= 0 ? (e.delete(t), !0) : (e.set(t, n), !1);
1640
1640
  };
1641
- function ct(e, t, n = []) {
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);
1645
- return nt(), () => {
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);
1649
- nt();
1641
+ function lt(e, t, n = []) {
1642
+ for (let t of e) L.set(t.name, t), st(it, t.name);
1643
+ for (let e of t) R.set(e.name, e), st(at, e.name);
1644
+ for (let e of n) z.set(e.name, e), st(ot, e.name);
1645
+ return rt(), () => {
1646
+ for (let t of e) ct(it, t.name) && L.delete(t.name);
1647
+ for (let e of t) ct(at, e.name) && R.delete(e.name);
1648
+ for (let e of n) ct(ot, e.name) && z.delete(e.name);
1649
+ rt();
1650
1650
  };
1651
1651
  }
1652
1652
  //#endregion
1653
1653
  //#region src/transition/enteringInitialStyle.ts
1654
- function lt(e) {
1654
+ function ut(e) {
1655
1655
  let { initial: t, isActive: n, status: r } = e;
1656
1656
  if (!n || r !== "PUSHING" && r !== "REPLACING") return {};
1657
1657
  let i = {};
@@ -1659,10 +1659,10 @@ function lt(e) {
1659
1659
  }
1660
1660
  //#endregion
1661
1661
  //#region src/transition/settleScrub.ts
1662
- var ut = () => ({
1662
+ var dt = () => ({
1663
1663
  request: (e) => requestAnimationFrame(e),
1664
1664
  cancel: (e) => cancelAnimationFrame(e)
1665
- }), dt = (e) => e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), ft = ((e = ut()) => {
1665
+ }), ft = (e) => e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), pt = ((e = dt()) => {
1666
1666
  let t = /* @__PURE__ */ new Map(), n = null, r = () => {
1667
1667
  t.size === 0 && n !== null && (e.cancel(n), n = null);
1668
1668
  }, i = (e, n) => {
@@ -1695,7 +1695,7 @@ var ut = () => ({
1695
1695
  if (typeof r.animate != "function") return null;
1696
1696
  i(r, "current");
1697
1697
  let l = {};
1698
- for (let e of o) l[dt(e.property)] = e.value;
1698
+ for (let e of o) l[ft(e.property)] = e.value;
1699
1699
  let u;
1700
1700
  try {
1701
1701
  u = r.animate([l], {
@@ -1725,96 +1725,100 @@ var ut = () => ({
1725
1725
  takeover: (e) => i(e, "current"),
1726
1726
  cancel: (e) => i(e, "drop")
1727
1727
  };
1728
- })(), pt = "flemo:motion-driver", mt = "flemo:motion-driver-force", ht = !1, gt = () => {
1728
+ })(), mt = "flemo:motion-driver", ht = "flemo:motion-driver-force", gt = !1, _t = () => {
1729
1729
  try {
1730
1730
  try {
1731
- typeof localStorage < "u" && localStorage.removeItem(mt);
1731
+ typeof localStorage < "u" && localStorage.removeItem(ht);
1732
1732
  } catch {}
1733
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);
1734
+ let e = sessionStorage.getItem(ht);
1735
+ if (e === null) return null;
1736
+ let [t, n] = e.split("@"), r = Number(n);
1737
+ return (t === "css" || t === "raf") && n !== void 0 && Number.isFinite(r) && Math.abs(Date.now() - r) < 864e5 ? (!gt && typeof console < "u" && (gt = !0, console.warn(`[flemo] motion driver pinned to "${t}" via sessionStorage ${ht}; remove the key to restore automatic selection (pins expire after 24h).`)), t) : (sessionStorage.removeItem(ht), null);
1736
1738
  } catch {
1737
1739
  return null;
1738
1740
  }
1739
- }, _t = () => ({
1741
+ }, vt = () => ({
1740
1742
  read: () => {
1741
1743
  try {
1742
- return typeof localStorage < "u" ? localStorage.getItem(pt) : null;
1744
+ return typeof localStorage < "u" ? localStorage.getItem(mt) : null;
1743
1745
  } catch {
1744
1746
  return null;
1745
1747
  }
1746
1748
  },
1747
1749
  write: (e) => {
1748
1750
  try {
1749
- typeof localStorage < "u" && localStorage.setItem(pt, e);
1751
+ typeof localStorage < "u" && localStorage.setItem(mt, e);
1750
1752
  } catch {}
1751
1753
  }
1752
- }), vt = 30, yt = 2, bt = 2, Y = ((e = _t(), t = !1) => {
1753
- let n = e.read() === "css", r = n;
1754
- n &&= !1;
1755
- let i = 0, a = 0, o = [];
1754
+ }), yt = 30, bt = 2, xt = 2, St = () => typeof navigator < "u" && !!navigator.userAgentData, Ct = (e = vt(), t = !1, n = !0) => {
1755
+ let r = n && e.read() === "css", i = r;
1756
+ r &&= !1;
1757
+ let a = 0, o = 0, s = [];
1756
1758
  return {
1757
1759
  playerAllowed: () => {
1758
- let e = gt();
1759
- return e ? e === "raf" : t && !n;
1760
+ let e = _t();
1761
+ return e ? e === "raf" : t && !r;
1760
1762
  },
1761
1763
  beginRun: () => {
1762
- a = 0, o = [];
1764
+ o = 0, s = [];
1763
1765
  },
1764
1766
  reportGap: (e) => {
1765
- o.push(e), e >= vt && (a += 1);
1767
+ s.push(e), e >= yt && (o += 1);
1766
1768
  },
1767
1769
  endRun: () => {
1768
- let t = a >= yt;
1769
- if (r) {
1770
- r = !1, t ? n = !0 : e.write("raf");
1771
- return;
1770
+ let t = o >= bt;
1771
+ if (t && (a += 1), n) {
1772
+ if (i) {
1773
+ i = !1, t ? r = !0 : e.write("raf");
1774
+ return;
1775
+ }
1776
+ t && a >= xt && !r && (r = !0, e.write("css"));
1772
1777
  }
1773
- t && (i += 1, i >= bt && !n && (n = !0, e.write("css")));
1774
1778
  },
1775
1779
  stats: () => ({
1776
- runGaps: [...o],
1777
- strikes: i,
1778
- demoted: n
1780
+ runGaps: [...s],
1781
+ strikes: a,
1782
+ demoted: r
1779
1783
  })
1780
1784
  };
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) => {
1785
- if (ft.cancel(e), e.style.transition = "", e.style.removeProperty("animation-delay"), t) {
1786
- let n = St.get(e);
1785
+ }, wt = St() ? Ct() : Ct(vt(), !0, !1), Tt = (e) => typeof HTMLElement < "u" && e instanceof HTMLElement, Et = /* @__PURE__ */ new WeakMap(), K = (e, t) => {
1786
+ let n = Et.get(e);
1787
+ n || (n = /* @__PURE__ */ new Set(), Et.set(e, n)), n.add(t);
1788
+ }, q = (e, t) => {
1789
+ if (pt.cancel(e), e.style.transition = "", e.style.removeProperty("animation-delay"), t) {
1790
+ let n = Et.get(e);
1787
1791
  for (let r of t) e.style.removeProperty(r), n?.delete(r);
1788
1792
  return;
1789
1793
  }
1790
- let n = St.get(e);
1794
+ let n = Et.get(e);
1791
1795
  if (n && n.size > 0) {
1792
1796
  for (let t of n) e.style.removeProperty(t);
1793
1797
  n.clear();
1794
1798
  return;
1795
1799
  }
1796
1800
  e.style.removeProperty("transform"), e.style.removeProperty("opacity");
1797
- }, Q = (e, t, n = {}) => {
1798
- if (!xt(e)) return Promise.resolve();
1799
- let r = e, i = G(t);
1801
+ }, J = (e, t, n = {}) => {
1802
+ if (!Tt(e)) return Promise.resolve();
1803
+ let r = e, i = H(t);
1800
1804
  if (i.length === 0) return Promise.resolve();
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);
1805
+ let a = typeof n.duration == "number" ? n.duration : 0, o = typeof n.delay == "number" && n.delay > 0 ? n.delay : 0, s = Ge(n.ease);
1802
1806
  if (a <= 0 && o <= 0) {
1803
- ft.takeover(r), r.style.transition = "none";
1804
- for (let e of i) r.style.setProperty(e.property, e.value), X(r, e.property);
1807
+ pt.takeover(r), r.style.transition = "none";
1808
+ for (let e of i) r.style.setProperty(e.property, e.value), K(r, e.property);
1805
1809
  return Promise.resolve();
1806
1810
  }
1807
- let c = Y.playerAllowed() ? ft.settle(r, i, {
1811
+ let c = wt.playerAllowed() ? pt.settle(r, i, {
1808
1812
  durationMs: a * 1e3,
1809
1813
  delayMs: o * 1e3,
1810
1814
  easing: s
1811
1815
  }, (e) => {
1812
- r.style.setProperty(e.property, e.value), X(r, e.property);
1816
+ r.style.setProperty(e.property, e.value), K(r, e.property);
1813
1817
  }) : null;
1814
1818
  if (c) return c;
1815
1819
  let l = i.map((e) => `${e.property} ${a}s ${s} ${o}s`).join(", ");
1816
1820
  r.style.transition = l, r.offsetWidth;
1817
- for (let e of i) r.style.setProperty(e.property, e.value), X(r, e.property);
1821
+ for (let e of i) r.style.setProperty(e.property, e.value), K(r, e.property);
1818
1822
  return new Promise((e) => {
1819
1823
  let t = !1, n = () => {
1820
1824
  t || (t = !0, r.removeEventListener("transitionend", i), e());
@@ -1823,12 +1827,12 @@ var ut = () => ({
1823
1827
  };
1824
1828
  r.addEventListener("transitionend", i), setTimeout(n, (a + o) * 1e3 + 60);
1825
1829
  });
1826
- }, Ct = "data-flemo-held-arrival";
1827
- function wt(e) {
1830
+ }, Dt = "data-flemo-held-arrival";
1831
+ function Ot(e) {
1828
1832
  if (typeof MutationObserver > "u") return () => {};
1829
1833
  let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Set(), r = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Map(), o = (t) => {
1830
1834
  let n = t instanceof Element ? t : t.parentElement;
1831
- return !n || n === e ? !0 : n.closest(`[data-flemo-part-name], [${Ct}]`) !== null;
1835
+ return !n || n === e || n.closest(`[data-flemo-part-name], [${Dt}]`) !== null;
1832
1836
  }, 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
1837
  glass: t,
1834
1838
  latest: n,
@@ -1858,12 +1862,12 @@ function wt(e) {
1858
1862
  if (i.type === "childList") {
1859
1863
  for (let e of Array.from(i.removedNodes)) if (!n.has(e)) {
1860
1864
  if (e instanceof Element && t.delete(e)) {
1861
- e.removeAttribute(Ct);
1865
+ e.removeAttribute(Dt);
1862
1866
  continue;
1863
1867
  }
1864
1868
  (e instanceof Element || e.nodeType === Node.TEXT_NODE) && l(i.target).removed.push(e);
1865
1869
  }
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));
1870
+ for (let e of Array.from(i.addedNodes)) r.delete(e) || e instanceof Element && (e.setAttribute(Dt, ""), t.add(e), l(i.target).added.push(e));
1867
1871
  }
1868
1872
  }
1869
1873
  for (let [e, t] of u) {
@@ -1898,7 +1902,7 @@ function wt(e) {
1898
1902
  c.disconnect();
1899
1903
  for (let e of n) e.parentNode?.removeChild(e);
1900
1904
  n.clear();
1901
- for (let e of t) e.removeAttribute(Ct);
1905
+ for (let e of t) e.removeAttribute(Dt);
1902
1906
  t.clear();
1903
1907
  for (let [e, t] of i) e.isConnected && (e.nodeValue = t.latest);
1904
1908
  i.clear();
@@ -1907,8 +1911,35 @@ function wt(e) {
1907
1911
  };
1908
1912
  }
1909
1913
  //#endregion
1914
+ //#region src/core/engine/compositorWarmUp.ts
1915
+ var kt = "data-flemo-warm", At = 3e3, jt = [{ transform: "translate3d(0, 0, 0)" }, { transform: "translate3d(1px, 0, 0)" }], Mt = {
1916
+ duration: 500,
1917
+ iterations: Infinity,
1918
+ direction: "alternate",
1919
+ easing: "linear"
1920
+ }, Nt = "position:fixed;top:0;left:0;width:1px;height:1px;pointer-events:none;opacity:0.02;background:#888;will-change:transform;", Y = null, Pt = null, X = 0, Ft = () => {
1921
+ X = 0, Pt?.cancel(), Pt = null, Y?.remove(), Y = null;
1922
+ };
1923
+ function It() {
1924
+ if (typeof document > "u" || !document.body || typeof Element > "u" || typeof Element.prototype.animate != "function") return () => {};
1925
+ if (X += 1, !Y) {
1926
+ Y = document.createElement("div"), Y.setAttribute(kt, ""), Y.setAttribute("aria-hidden", "true"), Y.setAttribute("style", Nt), document.body.appendChild(Y);
1927
+ try {
1928
+ Pt = Y.animate(jt, Mt);
1929
+ } catch {
1930
+ Pt = null;
1931
+ }
1932
+ }
1933
+ let e = !1, t = setTimeout(() => {
1934
+ e || (e = !0, --X, X <= 0 && Ft());
1935
+ }, At);
1936
+ return () => {
1937
+ e || (e = !0, clearTimeout(t), --X, X <= 0 && Ft());
1938
+ };
1939
+ }
1940
+ //#endregion
1910
1941
  //#region src/transition/cubicBezier.ts
1911
- var Tt = (e, t, n, r) => {
1942
+ var Lt = (e, t, n, r) => {
1912
1943
  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;
1913
1944
  return (e) => {
1914
1945
  if (e <= 0) return 0;
@@ -1920,7 +1951,7 @@ var Tt = (e, t, n, r) => {
1920
1951
  }
1921
1952
  return a((t + n) / 2);
1922
1953
  };
1923
- }, Et = (e) => e, Dt = {
1954
+ }, Rt = (e) => e, zt = {
1924
1955
  ease: [
1925
1956
  .25,
1926
1957
  .1,
@@ -1975,20 +2006,20 @@ var Tt = (e, t, n, r) => {
1975
2006
  .66,
1976
2007
  -.56
1977
2008
  ]
1978
- }, Ot = (e) => {
2009
+ }, Bt = (e) => {
1979
2010
  if (Array.isArray(e)) {
1980
2011
  if (e.length === 4 && e.every((e) => typeof e == "number")) {
1981
2012
  let [t, n, r, i] = e;
1982
- return Tt(t, n, r, i);
2013
+ return Lt(t, n, r, i);
1983
2014
  }
1984
- return Et;
2015
+ return Rt;
1985
2016
  }
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([
2017
+ return typeof e == "string" ? e === "linear" ? Rt : Lt(...zt[e] ?? zt.ease) : Lt(...zt.ease);
2018
+ }, Vt = 1 / 255, Ht = 400, Ut = 24, Wt = /* @__PURE__ */ new Set([
1988
2019
  "x",
1989
2020
  "y",
1990
2021
  "opacity"
1991
- ]), Nt = (e, t, n) => {
2022
+ ]), Gt = (e, t, n) => {
1992
2023
  if (!e || typeof e != "object") return;
1993
2024
  let r = e[t];
1994
2025
  if (r === void 0) return;
@@ -2006,31 +2037,31 @@ var Tt = (e, t, n, r) => {
2006
2037
  return Number.isNaN(e) ? null : e;
2007
2038
  }
2008
2039
  return null;
2009
- }, Pt = (e, t, n) => {
2040
+ }, Kt = (e, t, n) => {
2010
2041
  let r = /* @__PURE__ */ new Set();
2011
2042
  for (let t of [e.from, e.to]) if (!(!t || typeof t != "object")) for (let e of Object.keys(t)) r.add(e);
2012
2043
  if (r.size === 0) return null;
2013
2044
  let i = Infinity;
2014
2045
  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);
2046
+ if (!Wt.has(a)) return null;
2047
+ let r = Gt(e.from, a, t), o = Gt(e.to, a, t);
2017
2048
  if (r === null || o === null || r === void 0 || o === void 0) return null;
2018
2049
  let s = Math.abs(o - r);
2019
2050
  if (s === 0) continue;
2020
- let c = a === "opacity" ? kt : 1 / Math.max(1, n);
2051
+ let c = a === "opacity" ? Vt : 1 / Math.max(1, n);
2021
2052
  i = Math.min(i, c / s);
2022
2053
  }
2023
2054
  return !Number.isFinite(i) || i <= 0 || i >= 1 ? null : i;
2024
- }, Ft = (e, t, n) => {
2055
+ }, qt = (e, t, n) => {
2025
2056
  if (e.duration <= 0) return null;
2026
- let r = Pt(e, t, n);
2057
+ let r = Kt(e, t, n);
2027
2058
  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;
2059
+ let i = Bt(e.ease), a = Ht;
2060
+ for (let e = Ht; e >= 0 && !(Math.abs(1 - i(e / Ht)) > r); --e) a = e;
2030
2061
  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 = [
2062
+ let o = (e.delay + e.duration * (a / Ht)) * 1e3;
2063
+ return (e.delay + e.duration) * 1e3 - o < Ut ? null : o;
2064
+ }, Jt = [
2034
2065
  "x",
2035
2066
  "y",
2036
2067
  "z",
@@ -2041,7 +2072,7 @@ var Tt = (e, t, n, r) => {
2041
2072
  "rotateX",
2042
2073
  "rotateY",
2043
2074
  "rotateZ"
2044
- ], Lt = new Set(It), Rt = {
2075
+ ], Yt = new Set(Jt), Xt = {
2045
2076
  x: 0,
2046
2077
  y: 0,
2047
2078
  z: 0,
@@ -2052,7 +2083,7 @@ var Tt = (e, t, n, r) => {
2052
2083
  rotateX: 0,
2053
2084
  rotateY: 0,
2054
2085
  rotateZ: 0
2055
- }, zt = (e, t) => {
2086
+ }, Zt = (e, t) => {
2056
2087
  if (typeof t == "number") return {
2057
2088
  value: t,
2058
2089
  unit: e === "x" || e === "y" || e === "z" ? "px" : ""
@@ -2071,26 +2102,26 @@ var Tt = (e, t, n, r) => {
2071
2102
  value: i,
2072
2103
  unit: a === "" && i === 0 ? "px" : a
2073
2104
  };
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;
2105
+ }, Qt = /-?\d*\.?\d+/g, $t = (e, t) => {
2106
+ let n = e.match(Qt) ?? [], r = t.match(Qt) ?? [];
2107
+ if (n.length !== r.length || e.replace(Qt, " ") !== t.replace(Qt, " ")) return null;
2077
2108
  let i = n.map(Number), a = r.map(Number);
2078
2109
  return (t) => {
2079
2110
  let n = 0;
2080
- return e.replace(Bt, () => {
2111
+ return e.replace(Qt, () => {
2081
2112
  let e = n++, r = i[e] + (a[e] - i[e]) * t;
2082
2113
  return `${Math.round(r * 1e3) / 1e3}`;
2083
2114
  });
2084
2115
  };
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 = [];
2116
+ }, en = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), tn = (e) => typeof e == "object" && !!e && !Array.isArray(e), nn = (e) => tn(e) ? Object.keys(e) : [], rn = (e, t) => tn(e) ? e[t] : void 0, an = (e, t) => {
2117
+ let n = /* @__PURE__ */ new Set([...nn(e.from), ...nn(e.to)]), r = [], i = null, a = [], o = [];
2087
2118
  for (let s of n) {
2088
- let n = Gt(e.from, s), c = Gt(e.to, s);
2089
- if (Lt.has(s)) {
2119
+ let n = rn(e.from, s), c = rn(e.to, s);
2120
+ if (Yt.has(s)) {
2090
2121
  let e = s, i = {
2091
- value: Rt[e],
2122
+ value: Xt[e],
2092
2123
  unit: e === "x" || e === "y" || e === "z" ? "px" : ""
2093
- }, a = n === void 0 ? i : zt(e, n), o = c === void 0 ? i : zt(e, c);
2124
+ }, a = n === void 0 ? i : Zt(e, n), o = c === void 0 ? i : Zt(e, c);
2094
2125
  if (!a || !o || a.unit !== o.unit && a.value !== 0 && o.value !== 0) return null;
2095
2126
  let l = a.value === 0 && a.unit !== o.unit ? o.unit : a.unit, u = l === "%", d = 0;
2096
2127
  u && t && (d = e === "y" ? t.offsetHeight / 100 : t.offsetWidth / 100), r.push({
@@ -2121,15 +2152,15 @@ var Tt = (e, t, n, r) => {
2121
2152
  if (typeof l != "string" || typeof u != "string") return null;
2122
2153
  if (l === u) {
2123
2154
  o.push({
2124
- property: Ht(s),
2155
+ property: en(s),
2125
2156
  value: l
2126
2157
  });
2127
2158
  continue;
2128
2159
  }
2129
- let d = Vt(l, u);
2160
+ let d = $t(l, u);
2130
2161
  if (!d) return null;
2131
2162
  a.push({
2132
- property: Ht(s),
2163
+ property: en(s),
2133
2164
  mix: d
2134
2165
  });
2135
2166
  }
@@ -2139,46 +2170,46 @@ var Tt = (e, t, n, r) => {
2139
2170
  strings: a,
2140
2171
  constants: o
2141
2172
  };
2142
- }, qt = 1, Jt = (e, t, n, r) => {
2173
+ }, on = 1, sn = (e, t, n, r) => {
2143
2174
  let i = 0, a = 0, o = !1, s = [], c = !0;
2144
- for (let l of It) {
2175
+ for (let l of Jt) {
2145
2176
  let u = e.find((e) => e.prop === l);
2146
2177
  if (!u) continue;
2147
2178
  let d = u.from.value + (u.to.value - u.from.value) * t;
2148
2179
  if (u.from.unit === "%" && (d *= u.percentBase), l === "x" || l === "y") {
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;
2180
+ let e = l === "x" ? r.x : r.y, t = (e === null || Math.abs(d - e) * n >= on) && n > 0 ? Math.round(d * n) / n : Math.round(d * 1e3) / 1e3;
2150
2181
  l === "x" ? (r.x = d, i = t) : (r.y = d, a = t), o = !0, t !== 0 && (c = !1);
2151
2182
  continue;
2152
2183
  }
2153
- let f = Rt[l];
2184
+ let f = Xt[l];
2154
2185
  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)`);
2155
2186
  }
2156
2187
  return !o && s.length === 0 ? "" : c ? "none" : [...o ? [`translate3d(${i}px, ${a}px, 0)`] : [], ...s].join(" ");
2157
- }, Yt = (e) => e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), Xt = (e) => {
2188
+ }, cn = (e) => e.replace(/-([a-z])/g, (e, t) => t.toUpperCase()), ln = (e) => {
2158
2189
  let t = {};
2159
- for (let n of G(e)) t[Yt(n.property)] = n.value;
2190
+ for (let n of H(e)) t[cn(n.property)] = n.value;
2160
2191
  return t;
2161
- }, Zt = (e, t) => {
2192
+ }, un = (e, t) => {
2162
2193
  if (typeof e.animate != "function") return null;
2163
2194
  try {
2164
- let n = e.animate([Xt(t.from), Xt(t.to)], {
2195
+ let n = e.animate([ln(t.from), ln(t.to)], {
2165
2196
  duration: Math.max(0, t.duration * 1e3),
2166
2197
  delay: Math.max(0, t.delay * 1e3),
2167
- easing: He(t.ease),
2198
+ easing: Ge(t.ease),
2168
2199
  fill: "both"
2169
2200
  });
2170
2201
  return n.pause(), n.currentTime = 0, n;
2171
2202
  } catch {
2172
2203
  return null;
2173
2204
  }
2174
- }, Qt = 1e3 / 60, $t = 100, en = () => ({
2205
+ }, dn = 1e3 / 60, fn = 100, pn = () => ({
2175
2206
  request: (e) => requestAnimationFrame(e),
2176
2207
  cancel: (e) => cancelAnimationFrame(e),
2177
2208
  devicePixelRatio: () => typeof window < "u" && window.devicePixelRatio || 1
2178
- }), tn = ((e = en()) => {
2209
+ }), mn = ((e = pn()) => {
2179
2210
  let t = /* @__PURE__ */ new Map(), n = {
2180
2211
  join: (n, r) => {
2181
- let i = Kt(r.motion, r.element), s = i ? null : Zt(r.element, r.motion);
2212
+ let i = an(r.motion, r.element), s = i ? null : un(r.element, r.motion);
2182
2213
  if (!i && !s) return null;
2183
2214
  let c = t.get(n);
2184
2215
  c || (c = {
@@ -2199,14 +2230,14 @@ var Tt = (e, t, n, r) => {
2199
2230
  y: null
2200
2231
  }
2201
2232
  };
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);
2233
+ if (c.tracks.push(l), l.element.style.animation = "none", K(l.element, "animation"), i) {
2234
+ i.transforms.length > 0 && K(l.element, "transform"), i.opacity && K(l.element, "opacity");
2235
+ for (let e of i.strings) K(l.element, e.property);
2236
+ for (let e of i.constants) K(l.element, e.property);
2206
2237
  a(l, 0);
2207
2238
  }
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);
2239
+ return r.role === "active" && !c.started && (c.started = !0, wt.beginRun(), o(n, c)), () => {
2240
+ l.detached = !0, l.scrub?.cancel(), q(l.element);
2210
2241
  let r = t.get(n);
2211
2242
  r && (r.tracks = r.tracks.filter((e) => e !== l), r.tracks.length === 0 && (r.frameHandle !== null && e.cancel(r.frameHandle), t.delete(n)));
2212
2243
  };
@@ -2221,13 +2252,13 @@ var Tt = (e, t, n, r) => {
2221
2252
  }
2222
2253
  }, r = /* @__PURE__ */ new WeakMap(), i = (e) => {
2223
2254
  let t = r.get(e);
2224
- return t || (t = Ot(e.motion.ease), r.set(e, t)), t;
2255
+ return t || (t = Bt(e.motion.ease), r.set(e, t)), t;
2225
2256
  };
2226
2257
  function a(t, n) {
2227
2258
  let { element: r, parsed: i } = t;
2228
2259
  if (!(!i || !r.isConnected)) {
2229
2260
  if (i.transforms.length > 0) {
2230
- let a = Jt(i.transforms, n, e.devicePixelRatio(), t.snapMemory);
2261
+ let a = sn(i.transforms, n, e.devicePixelRatio(), t.snapMemory);
2231
2262
  a !== "" && (r.style.transform = a);
2232
2263
  }
2233
2264
  if (i.opacity) {
@@ -2247,7 +2278,7 @@ var Tt = (e, t, n, r) => {
2247
2278
  let c = r.startTime ?? s;
2248
2279
  if (r.lastTime !== null) {
2249
2280
  let e = s - r.lastTime;
2250
- Y.reportGap(e), n.onFrameGap?.(e), e >= $t && (c += e - Qt);
2281
+ wt.reportGap(e), n.onFrameGap?.(e), e >= fn && (c += e - dn);
2251
2282
  }
2252
2283
  r.startTime = c, r.lastTime = s;
2253
2284
  let l = !0;
@@ -2263,14 +2294,14 @@ var Tt = (e, t, n, r) => {
2263
2294
  a(e, i(e)(o)), o >= 1 ? (e.completed = !0, e.onComplete?.()) : l = !1;
2264
2295
  }
2265
2296
  if (l) {
2266
- Y.endRun(), t.delete(e);
2297
+ wt.endRun(), t.delete(e);
2267
2298
  return;
2268
2299
  }
2269
2300
  o(e, r);
2270
2301
  }
2271
2302
  return n;
2272
2303
  })();
2273
- tn.onFrameGap = (e) => {
2304
+ mn.onFrameGap = (e) => {
2274
2305
  if (typeof window < "u") {
2275
2306
  let t = window.__flemoPlayerGaps ??= [];
2276
2307
  t.push(Math.round(e * 10) / 10), t.length > 600 && t.splice(0, t.length - 600);
@@ -2278,23 +2309,23 @@ tn.onFrameGap = (e) => {
2278
2309
  };
2279
2310
  //#endregion
2280
2311
  //#region src/core/engine/types.ts
2281
- var nn = "data-flemo-skip-animation", $ = () => {}, rn = "data-flemo-part-name", an = (e) => {
2312
+ var hn = "data-flemo-skip-animation", Z = () => {}, gn = 400, _n = "data-flemo-part-name", vn = (e) => {
2282
2313
  let t = e.parentElement ?? e;
2283
- return Array.from(t.querySelectorAll(`[${rn}]`)).filter((n) => {
2314
+ return Array.from(t.querySelectorAll(`[${_n}]`)).filter((n) => {
2284
2315
  let r = n.closest("[data-flemo-screen]");
2285
2316
  return !r || r === e || !t.contains(r);
2286
2317
  });
2287
- }, on = (e, t) => {
2318
+ }, yn = (e, t) => {
2288
2319
  let [n, r] = t.split("-");
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) => {
2320
+ return vn(e).filter((e) => e.getAttribute("data-flemo-status") === n && e.getAttribute("data-flemo-active") === r);
2321
+ }, bn = 4, xn = (e) => `${Math.round(e * 1e3) / 1e3}s`, Sn = (e) => {
2291
2322
  let { element: t, expectedName: n, motion: r } = e, i = null, a = !1, o = (e) => {
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;
2323
+ 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 = xn(e.seconds)), a = !1;
2293
2324
  }, s = (e) => {
2294
2325
  a || e.target !== t || e.animationName !== n || i === null && (i = performance.now());
2295
2326
  }, c = (s) => {
2296
2327
  if (a || s.target !== t || s.animationName !== n) return;
2297
- if (!e.isLive() || e.budgetUsed() >= sn) {
2328
+ if (!e.isLive() || e.budgetUsed() >= bn) {
2298
2329
  e.onTerminal();
2299
2330
  return;
2300
2331
  }
@@ -2324,12 +2355,12 @@ var nn = "data-flemo-skip-animation", $ = () => {}, rn = "data-flemo-part-name",
2324
2355
  }
2325
2356
  };
2326
2357
  };
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) => {
2358
+ function Cn(e) {
2359
+ let t = /* @__PURE__ */ new Map(), n = null, r = null, i = null, a = null, o = () => {
2360
+ if (!a) return;
2361
+ let { land: e, cancel: t } = a;
2362
+ a = null, t(), e();
2363
+ }, c = (e) => {
2333
2364
  if (typeof requestAnimationFrame != "function") {
2334
2365
  e();
2335
2366
  return;
@@ -2337,33 +2368,37 @@ function un(e) {
2337
2368
  let t = 0;
2338
2369
  t = requestAnimationFrame(() => {
2339
2370
  t = requestAnimationFrame(() => {
2340
- r = null, e();
2371
+ a = null, e();
2341
2372
  });
2342
- }), r = {
2373
+ }), a = {
2343
2374
  land: e,
2344
2375
  cancel: () => cancelAnimationFrame(t)
2345
2376
  };
2346
2377
  };
2347
2378
  return {
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) {
2379
+ driveScreenLifecycle: (a) => {
2380
+ let { getElements: l, transitionName: u, prevTransitionName: d, status: f, isActive: p, animHoldReleased: m } = a, h = f === "PUSHING" || f === "POPPING" || f === "REPLACING";
2381
+ h && (i &&= (clearTimeout(i), null), r ||= It()), !h && r && !i && (typeof setTimeout == "function" ? i = setTimeout(() => {
2382
+ i = null, r?.(), r = null;
2383
+ }, gn) : (r(), r = null));
2384
+ let g = h && m && (p ? f === "PUSHING" || f === "REPLACING" : f === "POPPING");
2385
+ if (!g && n) {
2351
2386
  let e = n;
2352
- n = null, p ? e() : a(e);
2387
+ n = null, h ? e() : c(e);
2353
2388
  }
2354
- if (m && !n) {
2355
- i();
2356
- let { scope: e } = o();
2357
- e && (n = wt(e));
2389
+ if (g && !n) {
2390
+ o();
2391
+ let { scope: e } = l();
2392
+ e && (n = Ot(e));
2358
2393
  }
2359
- let h = (t, n, r) => {
2394
+ let _ = (t, n, r) => {
2360
2395
  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();
2396
+ if (!i || s.pendingTaskIds.some((e) => e !== i) || !wt.playerAllowed()) return null;
2397
+ let { scope: a, decorator: o, bars: c } = l();
2363
2398
  if (!a) return null;
2364
- let d = B(c), f = W(d, t);
2399
+ let d = be(u), f = V(d, t);
2365
2400
  if (!f) return null;
2366
- let p = [], m = tn.join(i, {
2401
+ let p = [], m = mn.join(i, {
2367
2402
  element: a,
2368
2403
  motion: f,
2369
2404
  role: n,
@@ -2371,30 +2406,30 @@ function un(e) {
2371
2406
  });
2372
2407
  if (!m) return null;
2373
2408
  p.push(m);
2374
- for (let e of u ?? []) {
2409
+ for (let e of c ?? []) {
2375
2410
  if (!e || e.getAttribute("data-flemo-bar-riding") !== "true") continue;
2376
- let t = tn.join(i, {
2411
+ let t = mn.join(i, {
2377
2412
  element: e,
2378
2413
  motion: f,
2379
2414
  role: "passive"
2380
2415
  });
2381
2416
  t && p.push(t);
2382
2417
  }
2383
- if (l && d.decoratorName) {
2384
- let e = V.get(d.decoratorName), n = e ? W(e, t) : null;
2418
+ if (o && d.decoratorName) {
2419
+ let e = R.get(d.decoratorName), n = e ? V(e, t) : null;
2385
2420
  if (n) {
2386
- let e = tn.join(i, {
2387
- element: l,
2421
+ let e = mn.join(i, {
2422
+ element: o,
2388
2423
  motion: n,
2389
2424
  role: "passive"
2390
2425
  });
2391
2426
  e && p.push(e);
2392
2427
  }
2393
2428
  }
2394
- for (let e of on(a, t)) {
2395
- let n = H.get(e.getAttribute(rn)), r = n ? W(n, t) : null;
2429
+ for (let e of yn(a, t)) {
2430
+ let n = z.get(e.getAttribute(_n)), r = n ? V(n, t) : null;
2396
2431
  if (!r) continue;
2397
- let a = tn.join(i, {
2432
+ let a = mn.join(i, {
2398
2433
  element: e,
2399
2434
  motion: r,
2400
2435
  role: "passive"
@@ -2402,9 +2437,9 @@ function un(e) {
2402
2437
  a && p.push(a);
2403
2438
  }
2404
2439
  return () => p.forEach((e) => e());
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({
2440
+ }, v = (e, t) => {
2441
+ let n = [], { decorator: r, bars: i } = l(), a = be(u), o = (e, t, r) => {
2442
+ let i = 0, a = Sn({
2408
2443
  element: e,
2409
2444
  expectedName: t,
2410
2445
  motion: r,
@@ -2413,140 +2448,140 @@ function un(e) {
2413
2448
  spendBudget: () => {
2414
2449
  i += 1;
2415
2450
  },
2416
- onTerminal: $
2451
+ onTerminal: Z
2417
2452
  });
2418
2453
  a.attach(), n.push(a.detach);
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);
2454
+ }, s = W("screen", u, t), c = V(a, t);
2455
+ if (c) for (let e of i ?? []) !e || e.getAttribute("data-flemo-bar-riding") !== "true" || o(e, s, c);
2421
2456
  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);
2457
+ let e = R.get(a.decoratorName), n = e ? V(e, t) : null;
2458
+ n && o(r, W("decorator", a.decoratorName, t), n);
2424
2459
  }
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);
2460
+ for (let n of yn(e, t)) {
2461
+ let e = n.getAttribute(_n), r = z.get(e), i = r ? V(r, t) : null;
2462
+ i && o(n, W("part", e, t), i);
2428
2463
  }
2429
2464
  return n;
2430
2465
  };
2431
- if (!d) {
2432
- if (u === "COMPLETED") {
2433
- let { scope: e, decorator: t, bars: n } = o();
2466
+ if (!p) {
2467
+ if (f === "COMPLETED") {
2468
+ let { scope: e, decorator: t, bars: n } = l();
2434
2469
  if (e) {
2435
- Z(e);
2436
- for (let t of an(e)) Z(t);
2470
+ q(e);
2471
+ for (let t of vn(e)) q(t);
2437
2472
  }
2438
- t && Z(t);
2439
- for (let e of n ?? []) e && Z(e);
2440
- return $;
2473
+ t && q(t);
2474
+ for (let e of n ?? []) e && q(e);
2475
+ return Z;
2441
2476
  }
2442
- if (u === "REPLACING" && l !== c && e.setReplaceTransitionStatus("PENDING"), p && f) {
2443
- let e = `${u}-false`, t = h(e, "passive");
2477
+ if (f === "REPLACING" && d !== u && e.setReplaceTransitionStatus("PENDING"), h && m) {
2478
+ let e = `${f}-false`, t = _(e, "passive");
2444
2479
  if (t) return t;
2445
- let { scope: n } = o();
2480
+ let { scope: n } = l();
2446
2481
  if (n) {
2447
- let t = B(c), r = [];
2448
- if (J(t, e)) {
2449
- let i = W(t, e), a = 0, o = ln({
2482
+ let t = be(u), r = [];
2483
+ if (G(t, e)) {
2484
+ let i = V(t, e), a = 0, o = Sn({
2450
2485
  element: n,
2451
- expectedName: q("screen", c, e),
2486
+ expectedName: W("screen", u, e),
2452
2487
  motion: i,
2453
2488
  isLive: () => n.isConnected && n.getAttribute("data-flemo-skip-animation") !== "true",
2454
2489
  budgetUsed: () => a,
2455
2490
  spendBudget: () => {
2456
2491
  a += 1;
2457
2492
  },
2458
- onTerminal: $
2493
+ onTerminal: Z
2459
2494
  });
2460
2495
  o.attach(), r.push(o.detach);
2461
2496
  }
2462
- if (r.push(...g(n, e)), r.length > 0) return () => r.forEach((e) => e());
2497
+ if (r.push(...v(n, e)), r.length > 0) return () => r.forEach((e) => e());
2463
2498
  }
2464
2499
  }
2465
- return $;
2500
+ return Z;
2466
2501
  }
2467
- if (u === "COMPLETED") {
2502
+ if (f === "COMPLETED") {
2468
2503
  e.setDragStatus("IDLE"), e.setReplaceTransitionStatus("IDLE");
2469
- let { scope: t, decorator: n, bars: r } = o();
2504
+ let { scope: t, decorator: n, bars: r } = l();
2470
2505
  if (t) {
2471
- Z(t), t.removeAttribute(nn);
2472
- for (let e of an(t)) Z(e);
2506
+ q(t), t.removeAttribute(hn);
2507
+ for (let e of vn(t)) q(e);
2473
2508
  }
2474
- n && (Z(n), n.removeAttribute(nn));
2475
- for (let e of r ?? []) e && (Z(e), e.style.removeProperty("will-change"));
2476
- return $;
2509
+ n && (q(n), n.removeAttribute(hn));
2510
+ for (let e of r ?? []) e && (q(e), e.style.removeProperty("will-change"));
2511
+ return Z;
2477
2512
  }
2478
- if (u === "IDLE") return $;
2479
- let { scope: _ } = o();
2480
- if (!_) return $;
2481
- let v = e.getTransitionTaskId(), y = () => {
2513
+ if (f === "IDLE") return Z;
2514
+ let { scope: y } = l();
2515
+ if (!y) return Z;
2516
+ let b = e.getTransitionTaskId(), x = () => {
2482
2517
  let n = e.getTransitionTaskId();
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);
2518
+ n && s.resolveTask(n), b && t.delete(b);
2519
+ }, S = be(u), C = `${f}-true`, w = y.getAttribute(hn) === "true";
2520
+ if (!(!w && G(S, C))) {
2521
+ if (!w) {
2522
+ let e = `${f}-false`;
2523
+ if (G(S, e)) {
2524
+ if (!m) return b && s.markGateHeld(b), Z;
2525
+ b && s.anchorGate(b);
2526
+ let t = V(S, e), n = (t.delay + t.duration) * 1e3 + 50, r = setTimeout(x, n);
2492
2527
  return () => clearTimeout(r);
2493
2528
  }
2494
2529
  }
2495
- return queueMicrotask(y), $;
2530
+ return queueMicrotask(x), Z;
2496
2531
  }
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();
2532
+ b && (m ? s.anchorGate(b) : s.markGateHeld(b));
2533
+ let T = V(S, C), E = !w && !!T, ee = W("screen", u, C), D, O = () => {
2534
+ D !== void 0 && (clearTimeout(D), D = void 0);
2535
+ }, te = 0, ne, re = () => {
2536
+ if (te <= 0) {
2537
+ x();
2503
2538
  return;
2504
2539
  }
2505
- ee = setTimeout(y, O);
2506
- }, k = $, A = $, j = (e) => {
2507
- e.target === _ && e.animationName === T && (_.removeEventListener("animationend", j), D(), k(), te());
2540
+ ne = setTimeout(x, te);
2541
+ }, k = Z, A = Z, j = (e) => {
2542
+ e.target === y && e.animationName === ee && (y.removeEventListener("animationend", j), O(), k(), re());
2508
2543
  };
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({
2544
+ y.addEventListener("animationend", j);
2545
+ let ie = E && m ? _(C, "active", x) : null, ae = (T.delay + T.duration) * 1e3, oe = ae + 1500, se = b ? setTimeout(() => void s.resolveTask(b), oe) : void 0, ce = `${f}-false`, M = G(S, ce) ? V(S, ce) : null, le = [];
2546
+ for (let e of Array.from(y.ownerDocument.querySelectorAll(`[${_n}][data-flemo-status="${f}"]`))) {
2547
+ let t = z.get(e.getAttribute(_n)), n = `${f}-${e.getAttribute("data-flemo-active")}`, r = t && G(t, n) ? V(t, n) : null;
2548
+ r && le.push({
2514
2549
  element: e,
2515
2550
  motion: r
2516
2551
  });
2517
2552
  }
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,
2553
+ let ue = M ? (M.delay + M.duration) * 1e3 : 0;
2554
+ for (let { motion: e } of le) ue = Math.max(ue, (e.delay + e.duration) * 1e3);
2555
+ te = Math.max(0, Math.min(1e3, ue - ae));
2556
+ let de = ae + 250, N = () => b !== null && e.getTransitionTaskId() === b && y.isConnected && y.getAttribute("data-flemo-skip-animation") !== "true" && G(S, C), fe = Sn({
2557
+ element: y,
2558
+ expectedName: ee,
2559
+ motion: T,
2560
+ isLive: N,
2561
+ budgetUsed: () => t.get(b) ?? 0,
2527
2562
  spendBudget: () => {
2528
- A(), t.set(v, (t.get(v) ?? 0) + 1);
2563
+ A(), t.set(b, (t.get(b) ?? 0) + 1);
2529
2564
  },
2530
- onTerminal: y
2565
+ onTerminal: x
2531
2566
  });
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();
2567
+ k = fe.detach;
2568
+ let pe = !1, me = () => {
2569
+ O(), D = setTimeout(P, de);
2570
+ }, P = () => {
2571
+ if (O(), N() && !pe) {
2572
+ pe = !0, A(), fe.fullRestart(), me();
2538
2573
  return;
2539
2574
  }
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);
2575
+ x();
2576
+ }, F = !ie && m, he = F ? v(y, C) : [];
2577
+ F && (fe.attach(), b && me());
2578
+ let I, ge = () => {
2579
+ I !== void 0 && (clearTimeout(I), I = void 0);
2545
2580
  };
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);
2581
+ if (A = ge, F && b) {
2582
+ let e = typeof window < "u" && window.devicePixelRatio || 1, t = qt(T, y, e), n = M ? qt(M, y, e) : 0, r = 0;
2583
+ for (let { element: t, motion: n } of le) {
2584
+ let i = qt(n, t, e);
2550
2585
  if (i === null) {
2551
2586
  r = null;
2552
2587
  break;
@@ -2554,16 +2589,16 @@ function un(e) {
2554
2589
  r = Math.max(r, i);
2555
2590
  }
2556
2591
  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());
2592
+ i !== null && i + 17 < ae + te && (I = setTimeout(() => {
2593
+ I = void 0, N() && (y.removeEventListener("animationend", j), O(), k(), x());
2559
2594
  }, i + 17));
2560
2595
  }
2561
2596
  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();
2597
+ if (se !== void 0 && clearTimeout(se), ne !== void 0 && clearTimeout(ne), ge(), y.removeEventListener("animationend", j), F) {
2598
+ fe.detach();
2599
+ for (let e of he) e();
2565
2600
  }
2566
- D(), M?.(), v && e.getTransitionTaskId() !== v && t.delete(v);
2601
+ O(), ie?.(), b && e.getTransitionTaskId() !== b && t.delete(b);
2567
2602
  };
2568
2603
  },
2569
2604
  activeResumeEntryCount: () => t.size
@@ -2571,20 +2606,20 @@ function un(e) {
2571
2606
  }
2572
2607
  //#endregion
2573
2608
  //#region src/utils/findScrollable.ts
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);
2609
+ function wn(e, t) {
2610
+ let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o = Tn(e);
2576
2611
  if (!o) return {
2577
2612
  element: null,
2578
2613
  hasMarker: !1
2579
2614
  };
2580
2615
  let s = o.closest?.(r);
2581
- if (s instanceof HTMLElement && pn(s, n) && (!a || mn(s, n))) return {
2616
+ if (s instanceof HTMLElement && En(s, n) && (!a || Dn(s, n))) return {
2582
2617
  element: s,
2583
2618
  hasMarker: !0
2584
2619
  };
2585
2620
  let c = o, l = 0;
2586
2621
  for (; c && l < i;) {
2587
- if (pn(c, n) && (!a || mn(c, n))) return {
2622
+ if (En(c, n) && (!a || Dn(c, n))) return {
2588
2623
  element: c,
2589
2624
  hasMarker: !1
2590
2625
  };
@@ -2595,7 +2630,7 @@ function dn(e, t) {
2595
2630
  hasMarker: !1
2596
2631
  };
2597
2632
  }
2598
- function fn(e) {
2633
+ function Tn(e) {
2599
2634
  if (!e) return null;
2600
2635
  let t = e, n = typeof t.composedPath == "function" ? t.composedPath() : void 0;
2601
2636
  if (n && n.length) {
@@ -2603,18 +2638,18 @@ function fn(e) {
2603
2638
  }
2604
2639
  return e instanceof HTMLElement ? e : null;
2605
2640
  }
2606
- function pn(e, t) {
2641
+ function En(e, t) {
2607
2642
  return t === "y" ? e.scrollHeight - e.clientHeight > 1 : e.scrollWidth - e.clientWidth > 1;
2608
2643
  }
2609
- function mn(e, t) {
2610
- if (!pn(e, t) || typeof window > "u") return !1;
2644
+ function Dn(e, t) {
2645
+ if (!En(e, t) || typeof window > "u") return !1;
2611
2646
  let n = window.getComputedStyle(e), r = t === "y" ? n.overflowY : n.overflowX;
2612
2647
  return r === "auto" || r === "scroll" || r === "overlay";
2613
2648
  }
2614
2649
  //#endregion
2615
2650
  //#region src/core/engine/createSwipeController.ts
2616
- var hn = "data-flemo-skip-animation";
2617
- function gn(e) {
2651
+ var On = "data-flemo-skip-animation";
2652
+ function kn(e) {
2618
2653
  let t = null, n = null, r = {
2619
2654
  current: [],
2620
2655
  prev: []
@@ -2660,9 +2695,9 @@ function gn(e) {
2660
2695
  y: e.clientY
2661
2696
  }, u = t;
2662
2697
  }, v = (n, 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);
2698
+ let o = J(n, i, a);
2699
+ if (n === e.getElements().scope) for (let e of r.current) J(e, i, a);
2700
+ else if (n === t) for (let e of r.prev) J(e, i, a);
2666
2701
  return o;
2667
2702
  }, y = (t) => {
2668
2703
  let n = e.getPartnerBars(), i = [], { sharedTopBar: a, sharedBottomBar: o } = e.getElements();
@@ -2676,12 +2711,12 @@ function gn(e) {
2676
2711
  current: i,
2677
2712
  prev: s
2678
2713
  };
2679
- let c = Ve(e.getTransition()).join(", ");
2714
+ let c = We(e.getTransition()).join(", ");
2680
2715
  for (let e of i) e.style.willChange = c;
2681
2716
  for (let e of s) e.style.willChange = c;
2682
2717
  }, b = () => {
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");
2718
+ for (let e of r.current) q(e), e.style.removeProperty("will-change");
2719
+ for (let e of r.prev) q(e), e.style.removeProperty("will-change");
2685
2720
  r = {
2686
2721
  current: [],
2687
2722
  prev: []
@@ -2694,10 +2729,10 @@ function gn(e) {
2694
2729
  };
2695
2730
  }, S = (e, t, n) => {
2696
2731
  let r = (r, i) => {
2697
- let a = H.get(r.getAttribute("data-flemo-part-name"));
2732
+ let a = z.get(r.getAttribute("data-flemo-part-name"));
2698
2733
  if (!a) return;
2699
2734
  let o = {
2700
- animate: Q,
2735
+ animate: J,
2701
2736
  element: r,
2702
2737
  active: i
2703
2738
  };
@@ -2706,7 +2741,7 @@ function gn(e) {
2706
2741
  for (let e of i.current) r(e, !0);
2707
2742
  for (let e of i.prev) r(e, !1);
2708
2743
  }, C = () => {
2709
- for (let e of [...i.current, ...i.prev]) Z(e);
2744
+ for (let e of [...i.current, ...i.prev]) q(e);
2710
2745
  i = {
2711
2746
  current: [],
2712
2747
  prev: []
@@ -2735,7 +2770,7 @@ function gn(e) {
2735
2770
  prevScreen: t,
2736
2771
  onStart: (e) => {
2737
2772
  m?.onSwipeStart?.(e, {
2738
- animate: Q,
2773
+ animate: J,
2739
2774
  currentDecorator: f,
2740
2775
  prevDecorator: n
2741
2776
  }), S("start", e, 0);
@@ -2752,7 +2787,7 @@ function gn(e) {
2752
2787
  prevScreen: t,
2753
2788
  onProgress: (e, t) => {
2754
2789
  c?.onSwipe?.(e, t, {
2755
- animate: Q,
2790
+ animate: J,
2756
2791
  currentDecorator: o,
2757
2792
  prevDecorator: n
2758
2793
  }), S("swipe", e, t);
@@ -2771,15 +2806,15 @@ function gn(e) {
2771
2806
  prevScreen: t,
2772
2807
  onStart: (e) => {
2773
2808
  u?.onSwipeEnd?.(e, {
2774
- animate: Q,
2809
+ animate: J,
2775
2810
  currentDecorator: l,
2776
2811
  prevDecorator: n
2777
2812
  }), S("end", e, 0);
2778
2813
  }
2779
2814
  })) {
2780
- c?.setAttribute(hn, "true"), l?.setAttribute(hn, "true");
2815
+ c?.setAttribute(On, "true"), l?.setAttribute(On, "true");
2781
2816
  for (let e of r.current) e.style.removeProperty("will-change");
2782
- for (let e of r.prev) Z(e), e.style.removeProperty("will-change");
2817
+ for (let e of r.prev) q(e), e.style.removeProperty("will-change");
2783
2818
  r = {
2784
2819
  current: [],
2785
2820
  prev: []
@@ -2787,14 +2822,14 @@ function gn(e) {
2787
2822
  current: [],
2788
2823
  prev: []
2789
2824
  }, e.back();
2790
- } else c && Z(c), t && Z(t), l && Z(l), n && Z(n), b(), C(), e.setDragStatus("IDLE");
2825
+ } else c && q(c), t && q(t), l && q(l), n && q(n), b(), C(), e.setDragStatus("IDLE");
2791
2826
  };
2792
2827
  return {
2793
2828
  pointerDown: (t) => {
2794
- e.isReadyForDrag() && (f = dn(t.target, {
2829
+ e.isReadyForDrag() && (f = wn(t.target, {
2795
2830
  direction: "x",
2796
2831
  verifyByScroll: !0
2797
- }), p = dn(t.target, {
2832
+ }), p = wn(t.target, {
2798
2833
  direction: "y",
2799
2834
  verifyByScroll: !0
2800
2835
  }), m = t.clientX, h = t.clientY, (!f.element && !p.element || f.element || p.element) && (a = !0));
@@ -2823,7 +2858,7 @@ function gn(e) {
2823
2858
  }
2824
2859
  //#endregion
2825
2860
  //#region src/screen/computeBarRiding.ts
2826
- function _n(e) {
2861
+ function An(e) {
2827
2862
  return !(e.status === "PUSHING" || e.status === "POPPING" || e.status === "REPLACING") || !e.isTopOrTopPrev ? {
2828
2863
  app: !1,
2829
2864
  nav: !1
@@ -2833,25 +2868,70 @@ function _n(e) {
2833
2868
  };
2834
2869
  }
2835
2870
  //#endregion
2871
+ //#region src/screen/pendingNetwork.ts
2872
+ var jn = 0, Mn = !1, Nn = () => {
2873
+ jn = Math.max(0, jn - 1);
2874
+ }, Pn = () => {
2875
+ if (!(Mn || typeof window > "u")) {
2876
+ if (Mn = !0, typeof window.fetch == "function") {
2877
+ let e = window.fetch.bind(window);
2878
+ window.fetch = (...t) => {
2879
+ jn += 1;
2880
+ let n;
2881
+ try {
2882
+ n = e(...t);
2883
+ } catch (e) {
2884
+ throw Nn(), e;
2885
+ }
2886
+ return n.then((e) => (Nn(), e), (e) => {
2887
+ throw Nn(), e;
2888
+ });
2889
+ };
2890
+ }
2891
+ if (typeof XMLHttpRequest == "function") {
2892
+ let e = XMLHttpRequest.prototype.send;
2893
+ XMLHttpRequest.prototype.send = function(...t) {
2894
+ jn += 1;
2895
+ let n = !1, r = () => {
2896
+ n || (n = !0, Nn());
2897
+ };
2898
+ this.addEventListener("loadend", r);
2899
+ try {
2900
+ return e.apply(this, t);
2901
+ } catch (e) {
2902
+ throw r(), e;
2903
+ }
2904
+ };
2905
+ }
2906
+ }
2907
+ }, Fn = () => (Pn(), jn > 0);
2908
+ //#endregion
2836
2909
  //#region src/screen/animStartAnchor.ts
2837
- function vn(e) {
2910
+ function In(e) {
2838
2911
  return !(e.status === "PUSHING" || e.status === "POPPING" || e.status === "REPLACING") || !e.isTopOrTopPrev ? null : `${e.status}:${e.transitionName}`;
2839
2912
  }
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);
2913
+ var Ln = 300, Rn = 20;
2914
+ function zn(e) {
2915
+ return Array.from(e.querySelectorAll("img")).filter((e) => e.complete && typeof e.decode == "function").slice(0, Rn);
2843
2916
  }
2844
- function Sn(e) {
2845
- if (!(!e || typeof e.querySelectorAll != "function")) for (let t of xn(e)) t.decode().catch(() => {});
2917
+ function Bn(e) {
2918
+ if (!(!e || typeof e.querySelectorAll != "function")) for (let t of zn(e)) t.decode().catch(() => {});
2846
2919
  }
2847
- function Cn(e, t = {}) {
2848
- let n = !1, r = 0, i = [], a = () => {
2920
+ var Vn = 3, Hn = 40, Un = 24, Wn = (e) => {
2921
+ if (typeof e.querySelectorAll != "function") return !1;
2922
+ let t = e.querySelectorAll("*").length;
2923
+ /* v8 ignore stop */
2924
+ return t < Un ? !1 : ((e.textContent ?? "").trim().length + e.querySelectorAll("img").length * Hn) / t < Vn;
2925
+ };
2926
+ function Gn(e, t = {}) {
2927
+ let n = !1, r = 0, i = [], a = [], o = () => {
2928
+ if (n) return;
2849
2929
  let r = t.scope;
2850
2930
  if (t.decodeWait === !1 || !r || typeof r.querySelectorAll != "function") {
2851
2931
  e();
2852
2932
  return;
2853
2933
  }
2854
- let i = xn(r);
2934
+ let i = zn(r);
2855
2935
  if (i.length === 0) {
2856
2936
  e();
2857
2937
  return;
@@ -2862,26 +2942,85 @@ function Cn(e, t = {}) {
2862
2942
  Promise.race([a, o]).then(() => {
2863
2943
  n || e();
2864
2944
  });
2865
- }, o = (e) => {
2945
+ }, s = (e) => {
2946
+ let n = t.contentSettle, r = t.scope;
2947
+ if (!n || !r || typeof MutationObserver > "u") {
2948
+ e();
2949
+ return;
2950
+ }
2951
+ if (!Wn(r)) {
2952
+ e();
2953
+ return;
2954
+ }
2955
+ /* v8 ignore start -- performance exists in every runtime under test;
2956
+ the fallback only shields exotic embedders. */
2957
+ let i = typeof performance < "u" ? performance.now() : 0, o = () => (typeof performance < "u" ? performance.now() : 0) - i, s = [], c = !1, l = !1, u = () => {
2958
+ l || (l = !0, f.disconnect(), clearTimeout(p), clearTimeout(m), clearTimeout(h), s.forEach((e) => cancelAnimationFrame(e)), s = [], e());
2959
+ }, d = () => {
2960
+ s.forEach((e) => cancelAnimationFrame(e)), s = [];
2961
+ let e = (t) => {
2962
+ if (t <= 0) {
2963
+ if (Fn() && o() < n.capMs) {
2964
+ s.push(requestAnimationFrame(() => e(6)));
2965
+ return;
2966
+ }
2967
+ u();
2968
+ return;
2969
+ }
2970
+ s.push(requestAnimationFrame(() => e(t - 1)));
2971
+ };
2972
+ e(6);
2973
+ }, f = new MutationObserver((e) => {
2974
+ let t = 0;
2975
+ for (let n of e) if (n.type === "childList") for (let e of Array.from(n.addedNodes)) t += e instanceof Element ? 1 + e.querySelectorAll("*").length : 1;
2976
+ if (!(t < n.minNodes)) {
2977
+ /* v8 ignore start -- the cap timer fires the moment elapsed reaches
2978
+ capMs, so a delivery can never observe elapsed past the cap first;
2979
+ kept so a delivery racing the timer can only ever finish early. */
2980
+ if (c = !0, o() >= n.capMs) {
2981
+ u();
2982
+ return;
2983
+ }
2984
+ /* v8 ignore stop */
2985
+ d();
2986
+ }
2987
+ });
2988
+ f.observe(r, {
2989
+ childList: !0,
2990
+ subtree: !0
2991
+ });
2992
+ let p = setTimeout(() => {
2993
+ !c && !Fn() && u();
2994
+ }, n.graceMs), m = setTimeout(function e() {
2995
+ if (!c) {
2996
+ if (Fn() && o() < n.capMs) {
2997
+ setTimeout(e, 100);
2998
+ return;
2999
+ }
3000
+ u();
3001
+ }
3002
+ }, n.firstWaitMs), h = setTimeout(u, n.capMs);
3003
+ a.push(u);
3004
+ }, c = (e) => {
2866
3005
  if (e <= 0) {
2867
- a();
3006
+ s(o);
2868
3007
  return;
2869
3008
  }
2870
- i.push(requestAnimationFrame(() => o(e - 1)));
2871
- }, s = requestAnimationFrame(() => {
2872
- r = requestAnimationFrame(() => o(t.extraFrames ?? 0));
3009
+ i.push(requestAnimationFrame(() => c(e - 1)));
3010
+ }, l = requestAnimationFrame(() => {
3011
+ r = requestAnimationFrame(() => c(t.extraFrames ?? 0));
2873
3012
  });
2874
3013
  return () => {
2875
- n = !0, cancelAnimationFrame(s), r && cancelAnimationFrame(r), i.forEach((e) => cancelAnimationFrame(e));
3014
+ n = !0, cancelAnimationFrame(l), r && cancelAnimationFrame(r), i.forEach((e) => cancelAnimationFrame(e)), a.forEach((e) => e());
2876
3015
  };
2877
3016
  }
2878
- function wn(e, t = {}) {
2879
- let n = Cn(e, t), r = setTimeout(e, 300);
3017
+ function Kn(e, t = {}) {
3018
+ let n = Gn(e, t), r = setTimeout(e, 300);
2880
3019
  return () => {
2881
3020
  n(), clearTimeout(r);
2882
3021
  };
2883
3022
  }
2884
- function Tn() {
3023
+ function qn() {
2885
3024
  let e = /* @__PURE__ */ new Map(), t = (t, n) => {
2886
3025
  clearTimeout(n.backstop), e.delete(t);
2887
3026
  let r = [...n.members];
@@ -2900,7 +3039,7 @@ function Tn() {
2900
3039
  let s = o, c = {
2901
3040
  release: i,
2902
3041
  ready: !1,
2903
- cancelReadiness: Cn(() => {
3042
+ cancelReadiness: Gn(() => {
2904
3043
  c.ready = !0, n(s) && t(r, s);
2905
3044
  }, a)
2906
3045
  };
@@ -2917,7 +3056,7 @@ function Tn() {
2917
3056
  }
2918
3057
  //#endregion
2919
3058
  //#region src/screen/observeBarHeight.ts
2920
- function En(e, t) {
3059
+ function Jn(e, t) {
2921
3060
  e.offsetHeight > 0 && t(e.offsetHeight);
2922
3061
  let n = new ResizeObserver(([e]) => {
2923
3062
  e.contentRect.height > 0 && t(e.contentRect.height);
@@ -2928,14 +3067,14 @@ function En(e, t) {
2928
3067
  }
2929
3068
  //#endregion
2930
3069
  //#region src/screen/observeViewportScrollHeight.ts
2931
- var Dn = 0;
2932
- function On(e) {
3070
+ var Yn = 0;
3071
+ function Xn(e) {
2933
3072
  let t = 0, n = () => {
2934
3073
  cancelAnimationFrame(t), t = requestAnimationFrame(() => {
2935
3074
  let t = document.documentElement.scrollHeight - (window.visualViewport?.height || 0);
2936
3075
  t = t < 0 ? 0 : t;
2937
- let n = t - Dn;
2938
- n = n < 0 ? 0 : n, Dn ||= t, e(t, n);
3076
+ let n = t - Yn;
3077
+ n = n < 0 ? 0 : n, Yn ||= t, e(t, n);
2939
3078
  });
2940
3079
  };
2941
3080
  return window.visualViewport?.addEventListener("resize", n), window.visualViewport?.addEventListener("scroll", n), () => {
@@ -2943,8 +3082,187 @@ function On(e) {
2943
3082
  };
2944
3083
  }
2945
3084
  //#endregion
3085
+ //#region src/core/engine/imageDecodeOffloader.ts
3086
+ var Zn = 8, Qn = 2, Q = 96, $n = 15e3, er = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7", tr = "data-flemo-image-src", nr = "flemo-image-scale-v1", rr = (e) => {
3087
+ if (e.naturalWidth <= 0 || e.naturalHeight <= 0 || e.boxWidth <= 0 || e.boxHeight <= 0) return !1;
3088
+ let t = e.boxWidth * e.boxHeight * e.devicePixelRatio * e.devicePixelRatio;
3089
+ return e.naturalWidth * e.naturalHeight > t * 8;
3090
+ }, ir = "onmessage = async (e) => {\n const { url, targetWidth, neededArea, ratio } = e.data;\n try {\n const response = await fetch(url);\n if (!response.ok) throw new Error(\"http \" + response.status);\n const blob = await response.blob();\n const full = await createImageBitmap(blob);\n if (full.width * full.height <= neededArea * ratio) {\n full.close();\n postMessage({ url, skip: true });\n return;\n }\n const scale = targetWidth / full.width;\n const canvas = new OffscreenCanvas(targetWidth, Math.max(1, Math.round(full.height * scale)));\n const context = canvas.getContext(\"2d\");\n context.imageSmoothingQuality = \"high\";\n context.drawImage(full, 0, 0, canvas.width, canvas.height);\n full.close();\n const out = await canvas.convertToBlob({ type: \"image/jpeg\", quality: 0.85 });\n postMessage({ url, blob: out });\n } catch (error) {\n postMessage({ url, error: String(error) });\n }\n};", ar = () => typeof Worker < "u" && typeof OffscreenCanvas < "u" && typeof createImageBitmap == "function" && typeof MutationObserver < "u" && typeof URL < "u" && typeof URL.createObjectURL == "function", or = async (e, t) => {
3091
+ try {
3092
+ if (typeof caches > "u") return;
3093
+ await (await caches.open(nr)).put(e, new Response(t, { headers: { "content-type": t.type } }));
3094
+ } catch {}
3095
+ }, sr = async (e) => {
3096
+ try {
3097
+ if (typeof caches > "u") return null;
3098
+ let t = await (await caches.open(nr)).match(e);
3099
+ return t ? await t.blob() : null;
3100
+ } catch {
3101
+ return null;
3102
+ }
3103
+ };
3104
+ function cr(e) {
3105
+ if (!ar()) return () => {};
3106
+ let t = null, n = !1, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Set(), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new WeakSet(), s = /* @__PURE__ */ new Set(), c = () => typeof devicePixelRatio == "number" ? devicePixelRatio : 1, l = () => {
3107
+ if (t) return t;
3108
+ try {
3109
+ t = new Worker(URL.createObjectURL(new Blob([ir])));
3110
+ } catch {
3111
+ return null;
3112
+ }
3113
+ return t.onmessage = (e) => {
3114
+ let { url: t, blob: n, error: r, skip: a } = e.data;
3115
+ if (i.delete(t), r || a || !n) {
3116
+ u(t, "skip");
3117
+ return;
3118
+ }
3119
+ let o = URL.createObjectURL(n);
3120
+ s.add(o), or(t, n), u(t, o);
3121
+ }, t;
3122
+ }, u = (e, t) => {
3123
+ r.has(e) || r.set(e, t);
3124
+ for (let [t, n] of [...a]) n.url === e && d(t, r.get(e));
3125
+ }, d = (e, t) => {
3126
+ let n = a.get(e);
3127
+ if (n) {
3128
+ if (a.delete(e), clearTimeout(n.timeout), n.detachListeners?.(), n.responsive) {
3129
+ if (t && t !== "skip") {
3130
+ e.setAttribute(tr, n.url), e.removeAttribute("srcset"), e.removeAttribute("sizes");
3131
+ let r = e.closest("picture");
3132
+ if (r) for (let e of Array.from(r.querySelectorAll("source"))) e.removeAttribute("srcset");
3133
+ e.src = t;
3134
+ }
3135
+ } else e.getAttribute("src") === er && (t && t !== "skip" ? e.src = t : (e.removeAttribute(tr), e.src = n.url));
3136
+ n.previousVisibility ? e.style.visibility = n.previousVisibility : e.style.removeProperty("visibility");
3137
+ }
3138
+ }, f = (e, t, n) => {
3139
+ if (r.has(e) || i.has(e)) return;
3140
+ let a = l();
3141
+ if (!a) return;
3142
+ i.add(e);
3143
+ let o = Math.round(Math.max(Q, t * c()) * Qn), s = Math.max(t * n, Q * Q) * c() ** 2;
3144
+ a.postMessage({
3145
+ url: e,
3146
+ targetWidth: o,
3147
+ neededArea: s,
3148
+ ratio: 8
3149
+ });
3150
+ }, p = (e) => {
3151
+ if (e.complete && e.naturalWidth > 0) return;
3152
+ let t = {
3153
+ url: "",
3154
+ previousVisibility: e.style.visibility,
3155
+ timeout: setTimeout(() => d(e, null), $n),
3156
+ responsive: !0
3157
+ }, i = () => {
3158
+ /* v8 ignore next -- consider() only routes elements with an https src
3159
+ here, so the final fallback arm is unreachable. */
3160
+ let i = e.currentSrc || e.getAttribute("src") || "", o = e.getBoundingClientRect();
3161
+ if (!(/^https?:/.test(i) && rr({
3162
+ naturalWidth: e.naturalWidth,
3163
+ naturalHeight: e.naturalHeight,
3164
+ boxWidth: o.width || Q,
3165
+ boxHeight: o.height || Q,
3166
+ devicePixelRatio: c()
3167
+ }))) {
3168
+ d(e, null);
3169
+ return;
3170
+ }
3171
+ t.url = i;
3172
+ let l = r.get(i);
3173
+ if (l) {
3174
+ d(e, l);
3175
+ return;
3176
+ }
3177
+ sr(i).then((t) => {
3178
+ if (!(n || !a.has(e))) {
3179
+ /* v8 ignore start -- a verdict can only appear via settle(), which
3180
+ releases every held element of the url first, so a still-held
3181
+ element cannot observe an existing verdict here; kept as a guard
3182
+ against future settle() reorderings. */
3183
+ if (r.has(i)) {
3184
+ d(e, r.get(i));
3185
+ return;
3186
+ }
3187
+ /* v8 ignore stop */
3188
+ if (t) {
3189
+ let e = URL.createObjectURL(t);
3190
+ s.add(e), u(i, e);
3191
+ return;
3192
+ }
3193
+ f(i, o.width || Q, o.height || Q);
3194
+ }
3195
+ });
3196
+ }, o = () => d(e, null);
3197
+ t.detachListeners = () => {
3198
+ e.removeEventListener("load", i), e.removeEventListener("error", o);
3199
+ }, e.addEventListener("load", i), e.addEventListener("error", o), a.set(e, t), e.style.visibility = "hidden";
3200
+ }, m = (e) => {
3201
+ if (n || o.has(e) || e.getAttribute("data-flemo-image-src") !== null) return;
3202
+ let t = e.getAttribute("src") ?? "";
3203
+ if (!/^https?:/.test(t)) return;
3204
+ if (e.getAttribute("srcset") !== null || e.closest("picture") !== null) {
3205
+ o.add(e), p(e);
3206
+ return;
3207
+ }
3208
+ if (o.add(e), e.complete && e.naturalWidth > 0) {
3209
+ let n = e.getBoundingClientRect();
3210
+ f(t, n.width || Q, n.height || Q);
3211
+ return;
3212
+ }
3213
+ let i = r.get(t);
3214
+ if (i !== "skip") {
3215
+ if (i) {
3216
+ e.setAttribute(tr, t), e.src = i;
3217
+ return;
3218
+ }
3219
+ a.set(e, {
3220
+ url: t,
3221
+ previousVisibility: e.style.visibility,
3222
+ timeout: setTimeout(() => d(e, null), $n)
3223
+ }), e.style.visibility = "hidden", e.setAttribute(tr, t), e.src = er, sr(t).then((i) => {
3224
+ if (n || r.has(t)) return;
3225
+ if (i) {
3226
+ let e = URL.createObjectURL(i);
3227
+ s.add(e), u(t, e);
3228
+ return;
3229
+ }
3230
+ let a = () => {
3231
+ if (n) return;
3232
+ let r = e.getBoundingClientRect();
3233
+ f(t, r.width || Q, r.height || Q);
3234
+ };
3235
+ typeof requestAnimationFrame == "function" ? requestAnimationFrame(a) : a();
3236
+ });
3237
+ }
3238
+ }, h = (e) => {
3239
+ if (e instanceof HTMLImageElement && m(e), typeof e.querySelectorAll == "function") for (let t of Array.from(e.querySelectorAll("img"))) m(t);
3240
+ }, g = new MutationObserver((e) => {
3241
+ for (let t of e) for (let e of Array.from(t.addedNodes)) e instanceof Element && h(e);
3242
+ });
3243
+ return g.observe(e, {
3244
+ childList: !0,
3245
+ subtree: !0
3246
+ }), h(e), () => {
3247
+ n = !0, g.disconnect(), t?.terminate(), t = null;
3248
+ for (let e of [...a.keys()]) d(e, null);
3249
+ i.clear(), r.clear();
3250
+ for (let e of s) URL.revokeObjectURL(e);
3251
+ s.clear();
3252
+ };
3253
+ }
3254
+ var $ = null;
3255
+ function lr() {
3256
+ return typeof document > "u" || !document.body ? () => {} : ($ ? $.count += 1 : $ = {
3257
+ dispose: cr(document.body),
3258
+ count: 1
3259
+ }, () => {
3260
+ $ && (--$.count, $.count <= 0 && ($.dispose(), $ = null));
3261
+ });
3262
+ }
3263
+ //#endregion
2946
3264
  //#region src/utils/isOpaqueColor.ts
2947
- function kn(e) {
3265
+ function ur(e) {
2948
3266
  let t = e.trim().toLowerCase();
2949
3267
  if (t === "transparent" || t === "") return !1;
2950
3268
  if (t.match(/^rgb\(\s*\d+[\s,]+\d+[\s,]+\d+\s*\)$/)) return !0;
@@ -2955,7 +3273,7 @@ function kn(e) {
2955
3273
  }
2956
3274
  //#endregion
2957
3275
  //#region src/utils/buildRoutePath.ts
2958
- function An(e, n) {
3276
+ function dr(e, n) {
2959
3277
  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();
2960
3278
  return {
2961
3279
  pathname: `${a}${c ? `?${c}` : ""}`,
@@ -2963,4 +3281,4 @@ function An(e, n) {
2963
3281
  };
2964
3282
  }
2965
3283
  //#endregion
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 };
3284
+ export { Ln as ANIM_HOLD_RELEASE_BACKSTOP_MS, tr as OFFLOADED_SRC_ATTR, Zn as OVERSIZE_AREA_RATIO, hn as SKIP_ANIMATION_ATTR, s as TaskManger, In as animHoldKey, J as animateInline, W as animationName, oe as appendParamsQuery, rt as applyTransitionStyles, dr as buildRoutePath, Dn as canProgrammaticallyScroll, q as clearInlineAnimation, We as collectAnimatedProperties, $e as compileTransitionStyles, An as computeBarRiding, me as computeScreenFreeze, b as consumeSelfInducedPop, qn as createAnimHoldCoordinator, g as createBrowserHistoryDriver, xe as createDecorator, c as createHistoryStore, x as createHistorySync, cr as createImageDecodeOffloader, ne as createMemoryHistoryDriver, re as createNavigateStore, ie as createNavigationController, Te as createPartTransition, Se as createRawDecorator, Ee as createRawPartTransition, F as createRawTransition, fe as createRouterScope, pe as createScreenSelector, ue as createScreenStore, _ as createSelfPopGuard, se as createStepController, kn as createSwipeController, P as createTransition, Cn as createTransitionEngine, M as createTransitionStore, I as cupertino, R as decoratorMap, Bn as eagerlyDecodeImages, Ge as easingToCss, lr as ensureImageDecodeOffloader, O as ensureScopeHistorySync, p as ensureWindowHistoryState, ut as enteringInitialStyle, wn as findScrollable, l as getMatchedPathPattern, u as getParams, It as holdCompositorWarm, ur as isOpaqueColor, f as isServer, _e as layout, y as markSelfInducedPop, le as matchesPathname, ve as material, ye as none, Jn as observeBarHeight, Xn as observeViewportScrollHeight, En as overflowsAxis, we as overlay, z as partTransitionMap, ae as readStepParams, lt as registerTransitionDefinitions, te as releaseScopeHistorySync, be as resolveTransition, Kn as scheduleAnimHoldRelease, d as seedInitialHistory, m as seedRouterEntry, rr as shouldOffloadImage, ce as subscribeStepParamsRestore, H as targetToDecls, L as transitionMap, G as variantHasAnimation };