@flemo/core 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/core/engine/__tests__/barRiding.test.d.ts +1 -0
  2. package/dist/core/engine/__tests__/createSwipeController.test.d.ts +1 -0
  3. package/dist/core/engine/__tests__/createTransitionEngine.test.d.ts +1 -0
  4. package/dist/core/engine/barRiding.d.ts +18 -0
  5. package/dist/core/engine/createSwipeController.d.ts +32 -0
  6. package/dist/core/engine/createTransitionEngine.d.ts +2 -0
  7. package/dist/core/engine/types.d.ts +22 -0
  8. package/dist/history/__tests__/createHistorySync.test.d.ts +1 -0
  9. package/dist/history/__tests__/seedInitialHistory.test.d.ts +1 -0
  10. package/dist/history/createHistorySync.d.ts +9 -0
  11. package/dist/history/ensureWindowHistoryState.d.ts +2 -0
  12. package/dist/history/seedInitialHistory.d.ts +4 -0
  13. package/dist/index.d.ts +18 -0
  14. package/dist/index.mjs +717 -97
  15. package/dist/navigate/__tests__/createNavigationController.test.d.ts +1 -0
  16. package/dist/navigate/createNavigationController.d.ts +31 -0
  17. package/dist/screen/__tests__/computeScreenFreeze.test.d.ts +1 -0
  18. package/dist/screen/__tests__/createScreenSelector.test.d.ts +1 -0
  19. package/dist/screen/__tests__/store.test.d.ts +1 -0
  20. package/dist/screen/computeScreenFreeze.d.ts +11 -0
  21. package/dist/screen/createScreenSelector.d.ts +10 -0
  22. package/dist/screen/store.d.ts +16 -0
  23. package/dist/transition/__tests__/animateInline.test.d.ts +1 -0
  24. package/dist/transition/__tests__/applyTransitionStyles.test.d.ts +1 -0
  25. package/dist/transition/__tests__/compileTransitionStyles.test.d.ts +5 -0
  26. package/dist/transition/animateInline.d.ts +4 -0
  27. package/dist/transition/applyTransitionStyles.d.ts +1 -0
  28. package/dist/transition/compileTransitionStyles.d.ts +3 -2
  29. package/dist/transition/partTransition/__tests__/createPartTransition.test.d.ts +1 -0
  30. package/dist/transition/partTransition/__tests__/createRawPartTransition.test.d.ts +1 -0
  31. package/dist/transition/partTransition/createPartTransition.d.ts +13 -0
  32. package/dist/transition/partTransition/createRawPartTransition.d.ts +19 -0
  33. package/dist/transition/partTransition/partTransition.d.ts +2 -0
  34. package/dist/transition/partTransition/typing.d.ts +24 -0
  35. package/package.json +3 -3
package/dist/index.mjs CHANGED
@@ -212,8 +212,95 @@ function i(t = [], n = -1) {
212
212
  }));
213
213
  }
214
214
  //#endregion
215
+ //#region src/utils/getMatchedPathPattern.ts
216
+ function a(e, t) {
217
+ return Array.isArray(e) ? e.find((e) => n(e).regexp.test(t)) ?? "" : n(e).regexp.test(t) ? e : "";
218
+ }
219
+ //#endregion
220
+ //#region src/utils/getParams.ts
221
+ function o(e, n, r) {
222
+ let i = t(a(e, n))(n), o = new URLSearchParams(r), s = Object.fromEntries(o.entries());
223
+ return i ? {
224
+ ...i.params,
225
+ ...s
226
+ } : {};
227
+ }
228
+ //#endregion
229
+ //#region src/history/seedInitialHistory.ts
230
+ function s(e, t, n, r) {
231
+ return {
232
+ id: "root",
233
+ pathname: t,
234
+ params: o(e, t, n),
235
+ transitionName: r,
236
+ layoutId: null
237
+ };
238
+ }
239
+ //#endregion
240
+ //#region src/utils/isServer.ts
241
+ function c() {
242
+ return typeof document > "u";
243
+ }
244
+ //#endregion
245
+ //#region src/history/ensureWindowHistoryState.ts
246
+ function l(e) {
247
+ c() || window.history.state?.index || window.history.replaceState({
248
+ id: "root",
249
+ index: 0,
250
+ status: "IDLE",
251
+ params: {},
252
+ transitionName: e,
253
+ layoutId: null
254
+ }, "", window.location.href);
255
+ }
256
+ //#endregion
257
+ //#region src/navigate/selfPopGuard.ts
258
+ var u = 0;
259
+ function d() {
260
+ u += 1;
261
+ }
262
+ function f() {
263
+ return u > 0 ? (--u, !0) : !1;
264
+ }
265
+ //#endregion
266
+ //#region src/history/createHistorySync.ts
267
+ function p(e) {
268
+ let { stores: t } = e, n = async (e) => {
269
+ if (f()) return;
270
+ let n = e.state?.id, i = r.generateTaskId();
271
+ (await r.addTask(async (r) => {
272
+ let a = e.state?.index, o = e.state?.status, s = e.state?.params, c = e.state?.transitionName, l = e.state?.layoutId, { setStatus: u, setTransitionTaskId: d } = t.navigate.getState(), { index: f, addHistory: p, popHistory: m } = t.history.getState(), h = a < f, g = o === "PUSHING" && a > f, _ = o === "REPLACING" && a > f, v = window.location.pathname;
273
+ if (!h && !g && !_) {
274
+ r.abort();
275
+ return;
276
+ }
277
+ return d(i), h ? u("POPPING") : g ? (u("PUSHING"), p({
278
+ id: n,
279
+ pathname: v,
280
+ params: s,
281
+ transitionName: c,
282
+ layoutId: l
283
+ })) : (u("REPLACING"), p({
284
+ id: n,
285
+ pathname: v,
286
+ params: s,
287
+ transitionName: c,
288
+ layoutId: l
289
+ })), async () => {
290
+ h && m(a + 1), u("COMPLETED");
291
+ };
292
+ }, {
293
+ id: i,
294
+ control: { manual: !0 }
295
+ })).result?.();
296
+ };
297
+ return window.addEventListener("popstate", n), () => {
298
+ window.removeEventListener("popstate", n);
299
+ };
300
+ }
301
+ //#endregion
215
302
  //#region src/navigate/store.ts
216
- function a() {
303
+ function m() {
217
304
  return e((e) => ({
218
305
  status: "IDLE",
219
306
  transitionTaskId: null,
@@ -222,17 +309,204 @@ function a() {
222
309
  }));
223
310
  }
224
311
  //#endregion
225
- //#region src/navigate/selfPopGuard.ts
226
- var o = 0;
227
- function s() {
228
- o += 1;
312
+ //#region src/navigate/createNavigationController.ts
313
+ var h = (e, t, r) => {
314
+ let { regexp: i } = n(e);
315
+ for (let e = t - 1; e >= 0; e--) if (i.test(r[e].pathname)) return t - e;
316
+ return -1;
317
+ }, g = (e, t) => typeof e == "number" && Number.isFinite(e) ? Math.max(0, Math.trunc(e)) : t, _ = async (e, t) => {
318
+ let n, r = new Promise((e) => {
319
+ n = () => e(!0), window.addEventListener("popstate", n, { once: !0 });
320
+ }), i = new Promise((e) => setTimeout(() => e(!1), 200));
321
+ if (d(), window.history.go(-e), !await Promise.race([r, i])) {
322
+ window.removeEventListener("popstate", n);
323
+ return;
324
+ }
325
+ t();
326
+ };
327
+ function v(e) {
328
+ let { stores: t, buildPathname: n } = e, i = async (e, i, a) => {
329
+ let { status: o } = t.navigate.getState();
330
+ if (o !== "COMPLETED" && o !== "IDLE") return;
331
+ let s = t.transition.getState().defaultTransitionName, { transitionName: c = s, layoutId: l = null } = a ?? {}, u = r.generateTaskId();
332
+ (await r.addTask(async () => {
333
+ let { index: r, histories: o, addHistory: s, popHistories: d } = t.history.getState(), f = (() => {
334
+ if (a?.until != null) {
335
+ let e = h(a.until, r, o);
336
+ return e < 0 ? 0 : e;
337
+ }
338
+ return Math.min(g(a?.skip, 0), Math.max(0, r));
339
+ })(), { setStatus: p, setTransitionTaskId: m } = t.navigate.getState();
340
+ p("PUSHING"), m(u);
341
+ let { pathname: v, toPathname: y } = n(e, i ?? {}), b = {
342
+ id: u,
343
+ pathname: y,
344
+ params: i ?? {},
345
+ transitionName: c,
346
+ layoutId: l
347
+ };
348
+ return f === 0 ? (window.history.pushState({
349
+ id: u,
350
+ index: r + 1,
351
+ status: "PUSHING",
352
+ params: i,
353
+ transitionName: c,
354
+ layoutId: l
355
+ }, "", v), s(b), () => {
356
+ p("COMPLETED");
357
+ }) : (s(b), await _(f, () => {
358
+ window.history.pushState({
359
+ id: u,
360
+ index: t.history.getState().index - f,
361
+ status: "PUSHING",
362
+ params: i,
363
+ transitionName: c,
364
+ layoutId: l
365
+ }, "", v);
366
+ }), async () => {
367
+ d(f), p("COMPLETED");
368
+ });
369
+ }, {
370
+ id: u,
371
+ control: { manual: !0 }
372
+ })).result?.();
373
+ }, a = async (e, i, a) => {
374
+ let { status: o } = t.navigate.getState();
375
+ if (o !== "COMPLETED" && o !== "IDLE") return;
376
+ let s = t.transition.getState().defaultTransitionName, { transitionName: c = s, layoutId: l = null } = a ?? {}, u = r.generateTaskId();
377
+ (await r.addTask(async (r) => {
378
+ let { index: o, histories: s, addHistory: d, replaceHistory: f, popHistories: p } = t.history.getState(), m = (() => {
379
+ if (a?.until != null) {
380
+ let e = h(a.until, o, s);
381
+ return e < 0 ? 0 : e + 1;
382
+ }
383
+ return Math.min(g(a?.skip, 0) + 1, o + 1);
384
+ })();
385
+ if (m <= 0) {
386
+ r.abort();
387
+ return;
388
+ }
389
+ let { setStatus: v, setTransitionTaskId: y } = t.navigate.getState();
390
+ v("REPLACING"), y(u);
391
+ let { pathname: b, toPathname: x } = n(e, i ?? {}), S = {
392
+ id: u,
393
+ pathname: x,
394
+ params: i ?? {},
395
+ transitionName: c,
396
+ layoutId: l
397
+ };
398
+ return m === 1 ? (window.history.replaceState({
399
+ id: u,
400
+ index: o,
401
+ status: "REPLACING",
402
+ params: i,
403
+ transitionName: c,
404
+ layoutId: l
405
+ }, "", b), d(S), async () => {
406
+ f(o), v("COMPLETED");
407
+ }) : (p(m - 1), d(S), m <= o ? await _(m, () => {
408
+ window.history.pushState({
409
+ id: u,
410
+ index: t.history.getState().index - 1,
411
+ status: "REPLACING",
412
+ params: i,
413
+ transitionName: c,
414
+ layoutId: l
415
+ }, "", b);
416
+ }) : await _(o, () => {
417
+ window.history.replaceState({
418
+ id: u,
419
+ index: 0,
420
+ status: "REPLACING",
421
+ params: i,
422
+ transitionName: c,
423
+ layoutId: l
424
+ }, "", b);
425
+ }), async () => {
426
+ f(t.history.getState().index - 1), v("COMPLETED");
427
+ });
428
+ }, {
429
+ id: u,
430
+ control: { manual: !0 }
431
+ })).result?.();
432
+ }, o = async (e, n) => {
433
+ let i = r.generateTaskId();
434
+ (await r.addTask(async (r) => {
435
+ let { index: a, histories: o, popHistory: s, popHistories: c, setTransitionName: l } = t.history.getState();
436
+ if (a <= 0) {
437
+ r.abort();
438
+ return;
439
+ }
440
+ let u = Math.min(e(a, o), a);
441
+ if (u <= 0) {
442
+ r.abort();
443
+ return;
444
+ }
445
+ let { setStatus: f, setTransitionTaskId: p } = t.navigate.getState();
446
+ return n && l(a, n), f("POPPING"), p(i), c(u - 1), d(), u === 1 ? window.history.back() : window.history.go(-u), async () => {
447
+ s(t.history.getState().index), f("COMPLETED");
448
+ };
449
+ }, {
450
+ id: i,
451
+ control: { manual: !0 }
452
+ })).result?.();
453
+ };
454
+ return {
455
+ push: i,
456
+ replace: a,
457
+ pop: async (e) => {
458
+ await o((t, n) => {
459
+ if (e?.until != null) {
460
+ let r = h(e.until, t, n);
461
+ return r < 0 ? 0 : r;
462
+ }
463
+ let r = g(e?.skip, 1);
464
+ return r <= 0 ? 0 : Math.min(r, t);
465
+ }, e?.transitionName);
466
+ }
467
+ };
229
468
  }
230
- function c() {
231
- return o > 0 ? (--o, !0) : !1;
469
+ //#endregion
470
+ //#region src/screen/store.ts
471
+ function y() {
472
+ return e((e) => ({
473
+ dragStatus: "IDLE",
474
+ replaceTransitionStatus: "IDLE",
475
+ sharedBars: {},
476
+ setDragStatus: (t) => e({ dragStatus: t }),
477
+ setReplaceTransitionStatus: (t) => e({ replaceTransitionStatus: t }),
478
+ registerSharedBars: (t, n) => e((e) => ({ sharedBars: {
479
+ ...e.sharedBars,
480
+ [t]: n
481
+ } })),
482
+ unregisterSharedBars: (t) => e((e) => {
483
+ let n = { ...e.sharedBars };
484
+ return delete n[t], { sharedBars: n };
485
+ })
486
+ }));
487
+ }
488
+ //#endregion
489
+ //#region src/screen/createScreenSelector.ts
490
+ function b(e, t) {
491
+ return e.map((n, r) => ({
492
+ ...n,
493
+ isActive: r === t,
494
+ isRoot: r === 0,
495
+ isPrev: r < t - 1,
496
+ zIndex: r,
497
+ transitionName: e[t].transitionName,
498
+ prevTransitionName: e[t - 1]?.transitionName
499
+ }));
500
+ }
501
+ //#endregion
502
+ //#region src/screen/computeScreenFreeze.ts
503
+ function x(e) {
504
+ let t = e.status === "COMPLETED" && e.dragStatus === "IDLE";
505
+ return !e.isActive && t || e.isPrev && e.index - 2 <= e.zIndex && e.replaceTransitionStatus === "IDLE" || e.isPrev && e.index - 2 > e.zIndex;
232
506
  }
233
507
  //#endregion
234
508
  //#region src/transition/createTransition.ts
235
- function l({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exitBack: o, options: s }) {
509
+ function S({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exitBack: o, options: s }) {
236
510
  return {
237
511
  name: e,
238
512
  initial: t,
@@ -253,7 +527,7 @@ function l({ name: e, initial: t, idle: n, enter: r, enterBack: i, exit: a, exit
253
527
  }
254
528
  //#endregion
255
529
  //#region src/transition/createRawTransition.ts
256
- function u({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnExit: l, completedOnEnter: u, options: d }) {
530
+ function C({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnExit: l, completedOnEnter: u, options: d }) {
257
531
  return {
258
532
  name: e,
259
533
  initial: t,
@@ -274,10 +548,10 @@ function u({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replac
274
548
  }
275
549
  //#endregion
276
550
  //#region src/transition/cupertino.ts
277
- var d = (e, t, n) => {
551
+ var w = (e, t, n) => {
278
552
  let [r, i] = t, [a, o] = n;
279
553
  return i === r ? a : a + (e - r) / (i - r) * (o - a);
280
- }, f = l({
554
+ }, T = S({
281
555
  name: "cupertino",
282
556
  initial: { x: "100%" },
283
557
  idle: {
@@ -337,7 +611,7 @@ var d = (e, t, n) => {
337
611
  swipeDirection: "x",
338
612
  onSwipeStart: async () => !0,
339
613
  onSwipe: (e, t, { animate: n, currentScreen: r, prevScreen: i, onProgress: a }) => {
340
- let { offset: o } = t, s = o.x, c = d(s, [0, window.innerWidth], [0, 100]);
614
+ let { offset: o } = t, s = o.x, c = w(s, [0, window.innerWidth], [0, 100]);
341
615
  return a?.(!0, c), n(r, { x: Math.max(0, s) }, { duration: 0 }), n(i, { x: `${-30 + c * .3}%` }, { duration: 0 }), c;
342
616
  },
343
617
  onSwipeEnd: async (e, t, { animate: n, currentScreen: r, prevScreen: i, onStart: a }) => {
@@ -361,10 +635,10 @@ var d = (e, t, n) => {
361
635
  })]), c;
362
636
  }
363
637
  }
364
- }), p = (e, t, n) => {
638
+ }), ee = (e, t, n) => {
365
639
  let [r, i] = t, [a, o] = n;
366
640
  return i === r ? a : a + (e - r) / (i - r) * (o - a);
367
- }, m = l({
641
+ }, te = S({
368
642
  name: "layout",
369
643
  initial: { opacity: .97 },
370
644
  idle: {
@@ -392,11 +666,11 @@ var d = (e, t, n) => {
392
666
  swipeDirection: "y",
393
667
  onSwipeStart: async () => !0,
394
668
  onSwipe: (e, t, { animate: n, currentScreen: r, onProgress: i }) => {
395
- let { offset: a } = t, o = a.y, s = Math.max(0, Math.min(56, o)), c = p(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), m = Math.min(56, f);
669
+ let { offset: a } = t, o = a.y, s = Math.max(0, Math.min(56, o)), c = ee(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);
396
670
  return i?.(!0, 100), n(r, {
397
671
  y: f,
398
672
  opacity: c
399
- }, { duration: 0 }), m;
673
+ }, { duration: 0 }), p;
400
674
  },
401
675
  onSwipeEnd: async (e, t, { animate: n, currentScreen: r, prevScreen: i, onStart: a }) => {
402
676
  let { offset: o, velocity: s } = t, c = o.y > 56 || s.y > 20;
@@ -409,7 +683,7 @@ var d = (e, t, n) => {
409
683
  }, { duration: .3 })]), c;
410
684
  }
411
685
  }
412
- }), h = l({
686
+ }), ne = S({
413
687
  name: "material",
414
688
  initial: { y: "100%" },
415
689
  idle: {
@@ -517,7 +791,7 @@ var d = (e, t, n) => {
517
791
  })]), c;
518
792
  }
519
793
  }
520
- }), g = l({
794
+ }), E = S({
521
795
  name: "none",
522
796
  initial: {},
523
797
  idle: {
@@ -540,15 +814,15 @@ var d = (e, t, n) => {
540
814
  value: {},
541
815
  options: { duration: 0 }
542
816
  }
543
- }), _ = new Map([
544
- ["none", g],
545
- ["cupertino", f],
546
- ["material", h],
547
- ["layout", m]
817
+ }), D = new Map([
818
+ ["none", E],
819
+ ["cupertino", T],
820
+ ["material", ne],
821
+ ["layout", te]
548
822
  ]);
549
823
  //#endregion
550
824
  //#region src/transition/store.ts
551
- function v(t = "cupertino") {
825
+ function re(t = "cupertino") {
552
826
  return e((e) => ({
553
827
  defaultTransitionName: t,
554
828
  setDefaultTransitionName: (t) => e({ defaultTransitionName: t })
@@ -556,7 +830,7 @@ function v(t = "cupertino") {
556
830
  }
557
831
  //#endregion
558
832
  //#region src/transition/decorator/createDecorator.ts
559
- function y({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
833
+ function ie({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
560
834
  return {
561
835
  name: e,
562
836
  initial: t,
@@ -577,7 +851,7 @@ function y({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
577
851
  }
578
852
  //#endregion
579
853
  //#region src/transition/decorator/createRawDecorator.ts
580
- 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 }) {
854
+ function ae({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
581
855
  return {
582
856
  name: e,
583
857
  initial: t,
@@ -598,30 +872,30 @@ function ee({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, repla
598
872
  }
599
873
  //#endregion
600
874
  //#region src/transition/decorator/overlay.ts
601
- var b = "rgba(0, 0, 0, 0.3)", x = y({
875
+ var O = "rgba(0, 0, 0, 0.3)", oe = ie({
602
876
  name: "overlay",
603
877
  initial: {
604
878
  opacity: 0,
605
- backgroundColor: b
879
+ backgroundColor: O
606
880
  },
607
881
  idle: {
608
882
  value: {
609
883
  opacity: 0,
610
- backgroundColor: b
884
+ backgroundColor: O
611
885
  },
612
886
  options: { duration: 0 }
613
887
  },
614
888
  enter: {
615
889
  value: {
616
890
  opacity: 1,
617
- backgroundColor: b
891
+ backgroundColor: O
618
892
  },
619
893
  options: { duration: .7 }
620
894
  },
621
895
  exit: {
622
896
  value: {
623
897
  opacity: 0,
624
- backgroundColor: b
898
+ backgroundColor: O
625
899
  },
626
900
  options: { duration: .6 }
627
901
  },
@@ -630,7 +904,52 @@ var b = "rgba(0, 0, 0, 0.3)", x = y({
630
904
  onSwipe: (e, t, { animate: n, prevDecorator: r }) => n(r, { opacity: Math.max(0, 1 - t / 100) }, { duration: 0 }),
631
905
  onSwipeEnd: (e, { animate: t, prevDecorator: n }) => t(n, { opacity: +!e }, { duration: .3 })
632
906
  }
633
- }), te = new Map([["overlay", x]]), S = {
907
+ }), se = new Map([["overlay", oe]]);
908
+ //#endregion
909
+ //#region src/transition/partTransition/createPartTransition.ts
910
+ function ce({ name: e, initial: t, idle: n, enter: r, exit: i, options: a }) {
911
+ return {
912
+ name: e,
913
+ initial: t,
914
+ variants: {
915
+ "IDLE-true": n,
916
+ "IDLE-false": n,
917
+ "PUSHING-true": n,
918
+ "PUSHING-false": r,
919
+ "REPLACING-true": n,
920
+ "REPLACING-false": r,
921
+ "POPPING-true": n,
922
+ "POPPING-false": i,
923
+ "COMPLETED-true": n,
924
+ "COMPLETED-false": r
925
+ },
926
+ ...a
927
+ };
928
+ }
929
+ //#endregion
930
+ //#region src/transition/partTransition/createRawPartTransition.ts
931
+ function le({ name: e, initial: t, idle: n, pushOnEnter: r, pushOnExit: i, replaceOnEnter: a, replaceOnExit: o, popOnEnter: s, popOnExit: c, completedOnEnter: l, completedOnExit: u, options: d }) {
932
+ return {
933
+ name: e,
934
+ initial: t,
935
+ variants: {
936
+ "IDLE-true": n,
937
+ "IDLE-false": n,
938
+ "PUSHING-false": i,
939
+ "PUSHING-true": r,
940
+ "REPLACING-false": o,
941
+ "REPLACING-true": a,
942
+ "POPPING-false": c,
943
+ "POPPING-true": s,
944
+ "COMPLETED-false": u,
945
+ "COMPLETED-true": l
946
+ },
947
+ ...d
948
+ };
949
+ }
950
+ //#endregion
951
+ //#region src/transition/partTransition/partTransition.ts
952
+ var k = /* @__PURE__ */ new Map(), A = {
634
953
  "IDLE-true": "self",
635
954
  "IDLE-false": "self",
636
955
  "PUSHING-true": "initial",
@@ -641,7 +960,7 @@ var b = "rgba(0, 0, 0, 0.3)", x = y({
641
960
  "POPPING-false": "PUSHING-false",
642
961
  "COMPLETED-true": "self",
643
962
  "COMPLETED-false": "self"
644
- }, C = Object.keys(S), w = C, ne = (e) => e.replace(/[^a-zA-Z0-9_-]/g, "_"), T = (e) => typeof e == "object" && !!e && !Array.isArray(e), E = 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(".")), D = (e, t) => t.startsWith("--") || E.has(t) ? `${e}` : t === "rotate" || t === "rotateX" || t === "rotateY" || t === "rotateZ" ? `${e}deg` : `${e}px`, O = (e, t) => typeof t == "number" ? D(t, e) : typeof t == "string" ? t : "", k = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), A = new Set([
963
+ }, ue = Object.keys(A), de = ue, fe = (e) => e.replace(/[^a-zA-Z0-9_-]/g, "_"), j = (e) => typeof e == "object" && !!e && !Array.isArray(e), pe = 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("--") || pe.has(t) ? `${e}` : t === "rotate" || t === "rotateX" || t === "rotateY" || t === "rotateZ" ? `${e}deg` : `${e}px`, M = (e, t) => typeof t == "number" ? me(t, e) : typeof t == "string" ? t : "", N = (e) => e.replace(/[A-Z]/g, (e) => `-${e.toLowerCase()}`), P = new Set([
645
964
  "x",
646
965
  "y",
647
966
  "z",
@@ -652,7 +971,7 @@ var b = "rgba(0, 0, 0, 0.3)", x = y({
652
971
  "rotateX",
653
972
  "rotateY",
654
973
  "rotateZ"
655
- ]), j = /^-?0(\.0+)?(px|%|em|rem|vh|vw|vmin|vmax)?$/, M = /^-?0(\.0+)?(deg|rad|grad|turn)?$/, N = /^1(\.0+)?$/, P = (e, t) => e === "scale" || e === "scaleX" || e === "scaleY" ? t === 1 ? !0 : typeof t == "string" ? N.test(t.trim()) : !1 : e === "rotate" || e === "rotateX" || e === "rotateY" || e === "rotateZ" ? t === 0 ? !0 : typeof t == "string" ? M.test(t.trim()) : !1 : t === 0 ? !0 : typeof t == "string" ? j.test(t.trim()) : !1, F = (e, t) => {
974
+ ]), he = /^-?0(\.0+)?(px|%|em|rem|vh|vw|vmin|vmax)?$/, ge = /^-?0(\.0+)?(deg|rad|grad|turn)?$/, _e = /^1(\.0+)?$/, ve = (e, t) => e === "scale" || e === "scaleX" || e === "scaleY" ? t === 1 ? !0 : typeof t == "string" ? _e.test(t.trim()) : !1 : e === "rotate" || e === "rotateX" || e === "rotateY" || e === "rotateZ" ? t === 0 ? !0 : typeof t == "string" ? ge.test(t.trim()) : !1 : t === 0 ? !0 : typeof t == "string" ? he.test(t.trim()) : !1, ye = (e, t) => {
656
975
  switch (e) {
657
976
  case "x": return `translateX(${t})`;
658
977
  case "y": return `translateY(${t})`;
@@ -666,23 +985,23 @@ var b = "rgba(0, 0, 0, 0.3)", x = y({
666
985
  case "rotateY": return `rotateY(${t})`;
667
986
  default: return "";
668
987
  }
669
- }, I = (e) => {
988
+ }, F = (e) => {
670
989
  let t = /* @__PURE__ */ new Set(), n = !1, r = (e) => {
671
- if (T(e)) for (let r of Object.keys(e)) {
990
+ if (j(e)) for (let r of Object.keys(e)) {
672
991
  let i = e[r];
673
- O(r, i) !== "" && (A.has(r) ? n = !0 : t.add(k(r)));
992
+ M(r, i) !== "" && (P.has(r) ? n = !0 : t.add(N(r)));
674
993
  }
675
994
  };
676
995
  r(e.initial);
677
996
  for (let t of Object.values(e.variants)) r(t.value);
678
997
  return n && t.add("transform"), Array.from(t);
679
- }, L = (e) => {
680
- if (!T(e)) return [];
998
+ }, I = (e) => {
999
+ if (!j(e)) return [];
681
1000
  let t = [], n = !0, r = [];
682
1001
  for (let i of Object.keys(e)) {
683
- let a = e[i], o = O(i, a);
684
- o !== "" && (A.has(i) ? (t.push(F(i, o)), P(i, a) || (n = !1)) : r.push({
685
- property: k(i),
1002
+ let a = e[i], o = M(i, a);
1003
+ o !== "" && (P.has(i) ? (t.push(ye(i, o)), ve(i, a) || (n = !1)) : r.push({
1004
+ property: N(i),
686
1005
  value: o
687
1006
  }));
688
1007
  }
@@ -690,7 +1009,7 @@ var b = "rgba(0, 0, 0, 0.3)", x = y({
690
1009
  property: "transform",
691
1010
  value: n ? "none" : t.join(" ")
692
1011
  }), r;
693
- }, R = (e) => e.map((e) => ` ${e.property}: ${e.value};`).join("\n"), z = (e) => Array.isArray(e) ? e.length === 4 && e.every((e) => typeof e == "number") ? `cubic-bezier(${e.join(", ")})` : "linear" : typeof e == "string" ? {
1012
+ }, L = (e) => e.map((e) => ` ${e.property}: ${e.value};`).join("\n"), R = (e) => Array.isArray(e) ? e.length === 4 && e.every((e) => typeof e == "number") ? `cubic-bezier(${e.join(", ")})` : "linear" : typeof e == "string" ? {
694
1013
  linear: "linear",
695
1014
  easeIn: "ease-in",
696
1015
  easeOut: "ease-out",
@@ -700,30 +1019,33 @@ var b = "rgba(0, 0, 0, 0.3)", x = y({
700
1019
  backIn: "cubic-bezier(0.31, 0.01, 0.66, -0.59)",
701
1020
  backOut: "cubic-bezier(0.33, 1.53, 0.69, 0.99)",
702
1021
  anticipate: "cubic-bezier(0.36, 0, 0.66, -0.56)"
703
- }[e] ?? "ease" : "ease", B = (e) => {
1022
+ }[e] ?? "ease" : "ease", z = (e) => {
704
1023
  if (!e) return 0;
705
1024
  let t = e.duration;
706
1025
  return typeof t == "number" && t >= 0 ? t : 0;
707
- }, V = (e) => e && typeof e.delay == "number" && e.delay > 0 ? e.delay : 0, H = (e, t) => {
1026
+ }, B = (e) => e && typeof e.delay == "number" && e.delay > 0 ? e.delay : 0, be = (e, t) => {
708
1027
  let [n, r] = t.split("-");
709
1028
  return `[data-flemo-screen][data-flemo-transition="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
710
- }, U = (e, t) => {
1029
+ }, xe = (e, t) => {
711
1030
  let [n, r] = t.split("-");
712
1031
  return `[data-flemo-decorator][data-flemo-decorator-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
713
- }, W = (e, t) => {
1032
+ }, Se = (e, t) => {
714
1033
  let [n, r] = t.split("-");
715
1034
  return `[data-flemo-bar][data-flemo-bar-transition="${e}"][data-flemo-bar-status="${n}"][data-flemo-bar-active="${r}"][data-flemo-bar-riding="true"]`;
716
- }, G = (e, t, n) => `flemo-${e}-${ne(t)}-${n}`, K = (e, t, n, r, i, a) => {
717
- let o = L(r), s = L(i.value), c = B(i.options), l = V(i.options), u = z(i.options?.ease), d = a(t, n), f = e === "screen" ? `${d},\n${W(t, n)}` : d;
1035
+ }, Ce = (e, t) => {
1036
+ let [n, r] = t.split("-");
1037
+ return `[data-flemo-part-name="${e}"][data-flemo-status="${n}"][data-flemo-active="${r}"]`;
1038
+ }, V = (e, t, n) => `flemo-${e}-${fe(t)}-${n}`, H = (e, t, n, r, i, a) => {
1039
+ let o = I(r), s = I(i.value), c = z(i.options), l = B(i.options), u = R(i.options?.ease), d = a(t, n), f = e === "screen" ? `${d},\n${Se(t, n)}` : d;
718
1040
  if (s.length === 0 && o.length === 0) return "";
719
- if (c <= 0 && l <= 0) return s.length === 0 ? "" : `${f} {\n${R(s)}\n animation: none;\n}`;
720
- let p = G(e, t, n), m = [
1041
+ if (c <= 0 && l <= 0) return s.length === 0 ? "" : `${f} {\n${L(s)}\n animation: none;\n}`;
1042
+ let p = V(e, t, n), m = [
721
1043
  `@keyframes ${p} {`,
722
1044
  " from {",
723
- R(o).replace(/^/gm, " "),
1045
+ L(o).replace(/^/gm, " "),
724
1046
  " }",
725
1047
  " to {",
726
- R(s).replace(/^/gm, " "),
1048
+ L(s).replace(/^/gm, " "),
727
1049
  " }",
728
1050
  "}"
729
1051
  ].join("\n"), h = [
@@ -734,79 +1056,144 @@ var b = "rgba(0, 0, 0, 0.3)", x = y({
734
1056
  "both"
735
1057
  ].filter(Boolean).join(" "), g = Array.from(new Set([...o.map((e) => e.property), ...s.map((e) => e.property)])), _ = g.length > 0 ? ` will-change: ${g.join(", ")};\n` : "", v = n.split("-")[0];
736
1058
  return `${m}\n${`${f} {\n animation: ${h};\n${_}${v === "PUSHING" || v === "REPLACING" ? " contain: layout;\n pointer-events: none;\n" : ""}}`}`;
737
- }, q = (e, t, n, r) => {
738
- let i = L(r.value);
739
- return i.length === 0 ? "" : `${e(t, n)} {\n${R(i)}\n}`;
740
- }, J = (e, t) => {
741
- let n = [];
1059
+ }, U = (e, t, n, r) => {
1060
+ let i = I(r.value);
1061
+ return i.length === 0 ? "" : `${e(t, n)} {\n${L(i)}\n}`;
1062
+ }, we = (e, t, n = []) => {
1063
+ let r = [];
742
1064
  for (let t of e) {
743
1065
  let e = t.name;
744
- for (let r of C) {
745
- let i = t.variants[r], a = S[r];
1066
+ for (let n of ue) {
1067
+ let i = t.variants[n], a = A[n];
746
1068
  if (a === "self") {
747
- n.push(q(H, e, r, i));
1069
+ r.push(U(be, e, n, i));
748
1070
  continue;
749
1071
  }
750
1072
  let o = a === "initial" ? t.initial : t.variants[a].value;
751
- n.push(K("screen", e, r, o, i, H));
1073
+ r.push(H("screen", e, n, o, i, be));
752
1074
  }
753
1075
  }
754
1076
  for (let e of t) {
755
1077
  let t = e.name;
756
- for (let r of w) {
757
- let i = e.variants[r], a = S[r];
1078
+ for (let n of de) {
1079
+ let i = e.variants[n], a = A[n];
758
1080
  if (a === "self") {
759
- n.push(q(U, t, r, i));
1081
+ r.push(U(xe, t, n, i));
760
1082
  continue;
761
1083
  }
762
1084
  let o = a === "initial" ? e.initial : e.variants[a].value;
763
- n.push(K("decorator", t, r, o, i, U));
1085
+ r.push(H("decorator", t, n, o, i, xe));
764
1086
  }
765
1087
  }
766
- return n.filter((e) => e.length > 0).join("\n\n");
767
- }, Y = (e, t) => {
768
- let n = S[t];
1088
+ for (let e of n) {
1089
+ let t = e.name;
1090
+ for (let n of de) {
1091
+ let i = e.variants[n], a = A[n];
1092
+ if (a === "self") {
1093
+ r.push(U(Ce, t, n, i));
1094
+ continue;
1095
+ }
1096
+ let o = a === "initial" ? e.initial : e.variants[a].value;
1097
+ r.push(H("part", t, n, o, i, Ce));
1098
+ }
1099
+ }
1100
+ return r.filter((e) => e.length > 0).join("\n\n");
1101
+ }, Te = (e, t) => {
1102
+ let n = A[t];
769
1103
  if (n === "self") return !1;
770
- let r = e.variants[t], i = B(r.options), a = V(r.options);
1104
+ let r = e.variants[t], i = z(r.options), a = B(r.options);
771
1105
  if (i <= 0 && a <= 0) return !1;
772
- let o = L(n === "initial" ? e.initial : e.variants[n].value), s = L(r.value);
1106
+ let o = I(n === "initial" ? e.initial : e.variants[n].value), s = I(r.value);
773
1107
  return o.length > 0 || s.length > 0;
774
- };
775
- //#endregion
776
- //#region src/utils/isServer.ts
777
- function X() {
778
- return typeof document > "u";
1108
+ }, Ee = "data-flemo";
1109
+ function De() {
1110
+ if (c()) return;
1111
+ let e = we(D.values(), se.values(), k.values()), t = document.head.querySelector(`style[${Ee}]`);
1112
+ t || (t = document.createElement("style"), t.setAttribute(Ee, ""), document.head.appendChild(t)), t.textContent !== e && (t.textContent = e);
779
1113
  }
780
1114
  //#endregion
781
- //#region src/utils/getMatchedPathPattern.ts
782
- function Z(e, t) {
783
- return Array.isArray(e) ? e.find((e) => n(e).regexp.test(t)) ?? "" : n(e).regexp.test(t) ? e : "";
784
- }
785
- //#endregion
786
- //#region src/utils/getParams.ts
787
- function re(e, n, r) {
788
- let i = t(Z(e, n))(n), a = new URLSearchParams(r), o = Object.fromEntries(a.entries());
789
- return i ? {
790
- ...i.params,
791
- ...o
792
- } : {};
1115
+ //#region src/transition/animateInline.ts
1116
+ var Oe = (e) => typeof HTMLElement < "u" && e instanceof HTMLElement, W = /* @__PURE__ */ new WeakMap(), ke = (e, t) => {
1117
+ let n = W.get(e);
1118
+ n || (n = /* @__PURE__ */ new Set(), W.set(e, n)), n.add(t);
1119
+ }, G = (e, t) => {
1120
+ if (e.style.transition = "", t) {
1121
+ let n = W.get(e);
1122
+ for (let r of t) e.style.removeProperty(r), n?.delete(r);
1123
+ return;
1124
+ }
1125
+ let n = W.get(e);
1126
+ if (n && n.size > 0) {
1127
+ for (let t of n) e.style.removeProperty(t);
1128
+ n.clear();
1129
+ return;
1130
+ }
1131
+ e.style.removeProperty("transform"), e.style.removeProperty("opacity");
1132
+ }, K = (e, t, n = {}) => {
1133
+ if (!Oe(e)) return Promise.resolve();
1134
+ let r = e, i = I(t);
1135
+ if (i.length === 0) return Promise.resolve();
1136
+ let a = typeof n.duration == "number" ? n.duration : 0, o = typeof n.delay == "number" && n.delay > 0 ? n.delay : 0, s = R(n.ease);
1137
+ if (a <= 0 && o <= 0) {
1138
+ r.style.transition = "none";
1139
+ for (let e of i) r.style.setProperty(e.property, e.value), ke(r, e.property);
1140
+ return Promise.resolve();
1141
+ }
1142
+ let c = i.map((e) => `${e.property} ${a}s ${s} ${o}s`).join(", ");
1143
+ r.style.transition = c, r.offsetWidth;
1144
+ for (let e of i) r.style.setProperty(e.property, e.value), ke(r, e.property);
1145
+ return new Promise((e) => {
1146
+ let t = !1, n = () => {
1147
+ t || (t = !0, r.removeEventListener("transitionend", i), e());
1148
+ }, i = (e) => {
1149
+ e.target === r && n();
1150
+ };
1151
+ r.addEventListener("transitionend", i), setTimeout(n, (a + o) * 1e3 + 60);
1152
+ });
1153
+ }, q = "data-flemo-skip-animation", J = () => {};
1154
+ function Ae(e) {
1155
+ return { driveScreenLifecycle: (t) => {
1156
+ let { getElements: n, transitionName: i, prevTransitionName: a, status: o, isActive: s } = t;
1157
+ if (!s) return o === "REPLACING" && a !== i && e.setReplaceTransitionStatus("PENDING"), J;
1158
+ if (o === "COMPLETED") {
1159
+ e.setDragStatus("IDLE"), e.setReplaceTransitionStatus("IDLE");
1160
+ let { scope: t, decorator: r, bars: i } = n();
1161
+ t && (G(t), t.removeAttribute(q)), r && (G(r), r.removeAttribute(q));
1162
+ for (let e of i ?? []) e && (G(e), e.style.removeProperty("will-change"));
1163
+ return J;
1164
+ }
1165
+ if (o === "IDLE") return J;
1166
+ let { scope: c } = n();
1167
+ if (!c) return J;
1168
+ let l = () => {
1169
+ let t = e.getTransitionTaskId();
1170
+ t && r.resolveTask(t);
1171
+ }, u = D.get(i) ?? D.get("none"), d = `${o}-true`;
1172
+ if (!(c.getAttribute("data-flemo-skip-animation") !== "true" && Te(u, d))) return queueMicrotask(l), J;
1173
+ let f = V("screen", i, d), p = (e) => {
1174
+ e.target === c && e.animationName === f && (c.removeEventListener("animationend", p), l());
1175
+ };
1176
+ return c.addEventListener("animationend", p), () => {
1177
+ c.removeEventListener("animationend", p);
1178
+ };
1179
+ } };
793
1180
  }
794
1181
  //#endregion
795
1182
  //#region src/utils/findScrollable.ts
796
- function ie(e, t) {
797
- let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o = ae(e);
1183
+ function Y(e, t) {
1184
+ let { direction: n = "x", markerSelector: r = "[data-swipe-at-edge]", depthLimit: i = 24, verifyByScroll: a = !1 } = t ?? {}, o = je(e);
798
1185
  if (!o) return {
799
1186
  element: null,
800
1187
  hasMarker: !1
801
1188
  };
802
1189
  let s = o.closest?.(r);
803
- if (s instanceof HTMLElement && Q(s, n) && (!a || $(s, n))) return {
1190
+ if (s instanceof HTMLElement && X(s, n) && (!a || Z(s, n))) return {
804
1191
  element: s,
805
1192
  hasMarker: !0
806
1193
  };
807
1194
  let c = o, l = 0;
808
1195
  for (; c && l < i;) {
809
- if (Q(c, n) && (!a || $(c, n))) return {
1196
+ if (X(c, n) && (!a || Z(c, n))) return {
810
1197
  element: c,
811
1198
  hasMarker: !1
812
1199
  };
@@ -817,7 +1204,7 @@ function ie(e, t) {
817
1204
  hasMarker: !1
818
1205
  };
819
1206
  }
820
- function ae(e) {
1207
+ function je(e) {
821
1208
  if (!e) return null;
822
1209
  let t = e, n = typeof t.composedPath == "function" ? t.composedPath() : void 0;
823
1210
  if (n && n.length) {
@@ -825,13 +1212,246 @@ function ae(e) {
825
1212
  }
826
1213
  return e instanceof HTMLElement ? e : null;
827
1214
  }
828
- function Q(e, t) {
1215
+ function X(e, t) {
829
1216
  return t === "y" ? e.scrollHeight - e.clientHeight > 1 : e.scrollWidth - e.clientWidth > 1;
830
1217
  }
831
- function $(e, t) {
832
- if (!Q(e, t) || typeof window > "u") return !1;
1218
+ function Z(e, t) {
1219
+ if (!X(e, t) || typeof window > "u") return !1;
833
1220
  let n = window.getComputedStyle(e), r = t === "y" ? n.overflowY : n.overflowX;
834
1221
  return r === "auto" || r === "scroll" || r === "overlay";
835
1222
  }
836
1223
  //#endregion
837
- export { r as TaskManger, G as animationName, $ as canProgrammaticallyScroll, I as collectAnimatedProperties, J as compileTransitionStyles, c as consumeSelfInducedPop, y as createDecorator, i as createHistoryStore, a as createNavigateStore, ee as createRawDecorator, u as createRawTransition, l as createTransition, v as createTransitionStore, f as cupertino, te as decoratorMap, z as easingToCss, ie as findScrollable, Z as getMatchedPathPattern, re as getParams, X as isServer, m as layout, s as markSelfInducedPop, h as material, g as none, Q as overflowsAxis, x as overlay, L as targetToDecls, _ as transitionMap, Y as variantHasAnimation };
1224
+ //#region src/core/engine/createSwipeController.ts
1225
+ var Q = "data-flemo-skip-animation";
1226
+ function Me(e) {
1227
+ let t = null, n = null, r = {
1228
+ current: [],
1229
+ prev: []
1230
+ }, i = {
1231
+ current: [],
1232
+ prev: []
1233
+ }, a = !1, o = !1, s = !1, c = {
1234
+ x: 0,
1235
+ y: 0
1236
+ }, l = {
1237
+ x: 0,
1238
+ y: 0
1239
+ }, u = 0, d = {
1240
+ x: 0,
1241
+ y: 0
1242
+ }, f = {
1243
+ element: null,
1244
+ hasMarker: !1
1245
+ }, p = {
1246
+ element: null,
1247
+ hasMarker: !1
1248
+ }, m = 0, h = 0, g = (e) => ({
1249
+ point: {
1250
+ x: e.clientX,
1251
+ y: e.clientY
1252
+ },
1253
+ offset: {
1254
+ x: e.clientX - c.x,
1255
+ y: e.clientY - c.y
1256
+ },
1257
+ delta: {
1258
+ x: e.clientX - l.x,
1259
+ y: e.clientY - l.y
1260
+ },
1261
+ velocity: d
1262
+ }), _ = (e) => {
1263
+ let t = e.timeStamp, n = Math.max(1, t - u);
1264
+ d = {
1265
+ x: (e.clientX - l.x) / n * 1e3,
1266
+ y: (e.clientY - l.y) / n * 1e3
1267
+ }, l = {
1268
+ x: e.clientX,
1269
+ y: e.clientY
1270
+ }, u = t;
1271
+ }, v = (n, i, a) => {
1272
+ let o = K(n, i, a);
1273
+ if (n === e.getElements().scope) for (let e of r.current) K(e, i, a);
1274
+ else if (n === t) for (let e of r.prev) K(e, i, a);
1275
+ return o;
1276
+ }, y = (t) => {
1277
+ let n = e.getPartnerBars(), i = [], { sharedAppBar: a, sharedNavigationBar: o } = e.getElements();
1278
+ a && e.hasSharedAppBar() && !n?.appBar && i.push(a), o && e.hasSharedNavigationBar() && !n?.navigationBar && i.push(o);
1279
+ let s = [];
1280
+ if (t) {
1281
+ let n = t.querySelector("[data-flemo-bar=\"app\"]"), r = t.querySelector("[data-flemo-bar=\"nav\"]");
1282
+ n && !e.hasSharedAppBar() && s.push(n), r && !e.hasSharedNavigationBar() && s.push(r);
1283
+ }
1284
+ r = {
1285
+ current: i,
1286
+ prev: s
1287
+ };
1288
+ let c = F(e.getTransition()).join(", ");
1289
+ for (let e of i) e.style.willChange = c;
1290
+ for (let e of s) e.style.willChange = c;
1291
+ }, b = () => {
1292
+ for (let e of r.current) G(e), e.style.removeProperty("will-change");
1293
+ for (let e of r.prev) G(e), e.style.removeProperty("will-change");
1294
+ r = {
1295
+ current: [],
1296
+ prev: []
1297
+ };
1298
+ }, x = (t) => {
1299
+ let { screenContainer: n } = e.getElements(), r = (e) => Array.from(e.querySelectorAll("[data-flemo-part-name]"));
1300
+ i = {
1301
+ current: r(n),
1302
+ prev: r(t)
1303
+ };
1304
+ }, S = (e, t, n) => {
1305
+ let r = (r, i) => {
1306
+ let a = k.get(r.getAttribute("data-flemo-part-name"));
1307
+ if (!a) return;
1308
+ let o = {
1309
+ animate: K,
1310
+ element: r,
1311
+ active: i
1312
+ };
1313
+ e === "swipe" ? a.onSwipe?.(t, n, o) : e === "start" ? a.onSwipeStart?.(t, o) : a.onSwipeEnd?.(t, o);
1314
+ };
1315
+ for (let e of i.current) r(e, !0);
1316
+ for (let e of i.prev) r(e, !1);
1317
+ }, C = () => {
1318
+ for (let e of [...i.current, ...i.prev]) G(e);
1319
+ i = {
1320
+ current: [],
1321
+ prev: []
1322
+ };
1323
+ }, w = async (r) => {
1324
+ let i = e.getTransition();
1325
+ if (!i.swipeDirection || e.getViewportScrollHeight() > 10) return;
1326
+ let { scope: a, screenContainer: o, decorator: f } = e.getElements();
1327
+ if (!a) return;
1328
+ let p = o?.parentElement?.previousElementSibling ?? null;
1329
+ if (t = p?.querySelector("[data-flemo-screen]") ?? null, n = p?.querySelector("[data-flemo-decorator]") ?? null, !t) return;
1330
+ s = !0, c = {
1331
+ x: r.clientX,
1332
+ y: r.clientY
1333
+ }, l = {
1334
+ x: r.clientX,
1335
+ y: r.clientY
1336
+ }, u = r.timeStamp, d = {
1337
+ x: 0,
1338
+ y: 0
1339
+ }, a.setPointerCapture(r.pointerId), y(p), x(p);
1340
+ let m = e.getDecorator();
1341
+ await i.onSwipeStart(r, g(r), {
1342
+ animate: v,
1343
+ currentScreen: a,
1344
+ prevScreen: t,
1345
+ onStart: (e) => {
1346
+ m?.onSwipeStart?.(e, {
1347
+ animate: K,
1348
+ currentDecorator: f,
1349
+ prevDecorator: n
1350
+ }), S("start", e, 0);
1351
+ }
1352
+ }) ? e.setDragStatus("PENDING") : (e.setDragStatus("IDLE"), s = !1, b());
1353
+ }, T = (r) => {
1354
+ let i = e.getTransition();
1355
+ if (!i.swipeDirection || !s || e.getViewportScrollHeight() > 10) return;
1356
+ _(r);
1357
+ let { scope: a, decorator: o } = e.getElements(), c = e.getDecorator();
1358
+ i.onSwipe(r, g(r), {
1359
+ animate: v,
1360
+ currentScreen: a,
1361
+ prevScreen: t,
1362
+ onProgress: (e, t) => {
1363
+ c?.onSwipe?.(e, t, {
1364
+ animate: K,
1365
+ currentDecorator: o,
1366
+ prevDecorator: n
1367
+ }), S("swipe", e, t);
1368
+ }
1369
+ });
1370
+ }, ee = async (a) => {
1371
+ let o = e.getTransition();
1372
+ if (!o.swipeDirection || !s) return;
1373
+ s = !1;
1374
+ let { scope: c, decorator: l } = e.getElements();
1375
+ c && c.hasPointerCapture(a.pointerId) && c.releasePointerCapture(a.pointerId);
1376
+ let u = e.getDecorator();
1377
+ if (await o.onSwipeEnd(a, g(a), {
1378
+ animate: v,
1379
+ currentScreen: c,
1380
+ prevScreen: t,
1381
+ onStart: (e) => {
1382
+ u?.onSwipeEnd?.(e, {
1383
+ animate: K,
1384
+ currentDecorator: l,
1385
+ prevDecorator: n
1386
+ }), S("end", e, 0);
1387
+ }
1388
+ })) {
1389
+ c?.setAttribute(Q, "true"), l?.setAttribute(Q, "true");
1390
+ for (let e of r.current) e.style.removeProperty("will-change");
1391
+ for (let e of r.prev) G(e), e.style.removeProperty("will-change");
1392
+ r = {
1393
+ current: [],
1394
+ prev: []
1395
+ };
1396
+ for (let e of i.prev) G(e);
1397
+ i = {
1398
+ current: [],
1399
+ prev: []
1400
+ }, e.back();
1401
+ } else c && G(c), t && G(t), l && G(l), n && G(n), b(), C(), e.setDragStatus("IDLE");
1402
+ };
1403
+ return {
1404
+ pointerDown: (t) => {
1405
+ e.isReadyForDrag() && (f = Y(t.target, {
1406
+ direction: "x",
1407
+ verifyByScroll: !0
1408
+ }), p = Y(t.target, {
1409
+ direction: "y",
1410
+ verifyByScroll: !0
1411
+ }), m = t.clientX, h = t.clientY, (!f.element && !p.element || f.element || p.element) && (a = !0));
1412
+ },
1413
+ pointerMove: (t) => {
1414
+ if (e.getViewportScrollHeight() > 10) return;
1415
+ if (s) {
1416
+ T(t);
1417
+ return;
1418
+ }
1419
+ let n = e.getTransition().swipeDirection, r = !f.element && !p.element;
1420
+ if (a && r) {
1421
+ a = !1, o = !0;
1422
+ let e = t.clientY - h, r = t.clientX - m;
1423
+ (n === "y" && e > 0 || n === "x" && r > 0) && w(t);
1424
+ } else if (a && !r) {
1425
+ let e = t.clientX - m, r = t.clientY - h, i = p.element && p.element.scrollTop <= 0, s = f.element && f.element.scrollLeft <= 0 && f.hasMarker;
1426
+ (n === "y" && (i || f.element) && r > 0 && Math.abs(e) < 2 || n === "x" && (s || p.element) && e > 0 && Math.abs(r) < 2) && (a = !1, o = !0, w(t));
1427
+ }
1428
+ },
1429
+ pointerUp: (e) => {
1430
+ a = !1, o = !1, s && ee(e);
1431
+ },
1432
+ shouldPreventTouch: () => o
1433
+ };
1434
+ }
1435
+ //#endregion
1436
+ //#region src/core/engine/barRiding.ts
1437
+ var $ = "data-flemo-bar-riding";
1438
+ function Ne(e) {
1439
+ let { appBar: t, navBar: n } = e;
1440
+ if (!t && !n) return () => {};
1441
+ let r = () => {
1442
+ let r = e.getStatus();
1443
+ if (!(r === "PUSHING" || r === "POPPING" || r === "REPLACING") || !e.isTopOrTopPrev) {
1444
+ t?.removeAttribute($), n?.removeAttribute($);
1445
+ return;
1446
+ }
1447
+ let i = e.getHistories(), a = e.isActive ? i[e.index - 1]?.id : i[e.index]?.id, o = a ? e.getSharedBars()[a] : void 0, s = e.hasAppBar && !o?.appBar, c = e.hasNavBar && !o?.navigationBar;
1448
+ t && t.setAttribute($, s ? "true" : "false"), n && n.setAttribute($, c ? "true" : "false");
1449
+ };
1450
+ r();
1451
+ let i = e.subscribeStatus(r), a = e.subscribeSharedBars(r);
1452
+ return () => {
1453
+ i(), a(), t?.removeAttribute($), n?.removeAttribute($);
1454
+ };
1455
+ }
1456
+ //#endregion
1457
+ export { q as SKIP_ANIMATION_ATTR, r as TaskManger, K as animateInline, V as animationName, De as applyTransitionStyles, Z as canProgrammaticallyScroll, G as clearInlineAnimation, F as collectAnimatedProperties, we as compileTransitionStyles, x as computeScreenFreeze, f as consumeSelfInducedPop, ie as createDecorator, i as createHistoryStore, p as createHistorySync, m as createNavigateStore, v as createNavigationController, ce as createPartTransition, ae as createRawDecorator, le as createRawPartTransition, C as createRawTransition, b as createScreenSelector, y as createScreenStore, Me as createSwipeController, S as createTransition, Ae as createTransitionEngine, re as createTransitionStore, T as cupertino, se as decoratorMap, Ne as driveBarRiding, R as easingToCss, l as ensureWindowHistoryState, Y as findScrollable, a as getMatchedPathPattern, o as getParams, c as isServer, te as layout, d as markSelfInducedPop, ne as material, E as none, X as overflowsAxis, oe as overlay, k as partTransitionMap, s as seedInitialHistory, I as targetToDecls, D as transitionMap, Te as variantHasAnimation };