@wyxos/vibe 3.1.10 → 3.1.11

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/lib/index.js CHANGED
@@ -341,12 +341,57 @@ function Ae(e, t, n) {
341
341
  nextSequence: r.nextSequence
342
342
  };
343
343
  }
344
+ function je(e, t, n, r) {
345
+ let i = /* @__PURE__ */ new Map(), a = e.map((e) => ({
346
+ item: e,
347
+ matchIndex: null,
348
+ occurrenceKey: null
349
+ })), o = /* @__PURE__ */ new Map(), s = /* @__PURE__ */ new Map(), c = n;
350
+ for (let [e, n] of t.entries()) {
351
+ let t = i.get(n.id), r = {
352
+ index: e,
353
+ occurrenceKey: $(n)
354
+ };
355
+ t ? t.push(r) : i.set(n.id, [r]);
356
+ }
357
+ for (let e of a) {
358
+ let t = i.get(e.item.id)?.shift();
359
+ t && (e.matchIndex = t.index, e.occurrenceKey = t.occurrenceKey);
360
+ }
361
+ let l = [], u = null;
362
+ for (let e of a) l.push(u), e.matchIndex !== null && (u = e.matchIndex);
363
+ let d = Array(a.length).fill(null), f = null;
364
+ for (let e = a.length - 1; e >= 0; --e) d[e] = f, a[e].matchIndex !== null && (f = a[e].matchIndex);
365
+ for (let [e, n] of a.entries()) {
366
+ if (n.matchIndex !== null && n.occurrenceKey) {
367
+ o.set(n.matchIndex, Me(n.item, n.occurrenceKey));
368
+ continue;
369
+ }
370
+ let i = d[e] ?? (l[e] === null ? null : l[e] + 1) ?? (r === "leading" ? 0 : t.length), a = Me(n.item, `vibe-occurrence-${c += 1}`), u = s.get(i);
371
+ u ? u.push(a) : s.set(i, [a]);
372
+ }
373
+ let p = [];
374
+ for (let e = 0; e <= t.length; e += 1) {
375
+ let n = s.get(e);
376
+ n?.length && p.push(...n), !(e >= t.length) && p.push(o.get(e) ?? t[e]);
377
+ }
378
+ return {
379
+ items: p,
380
+ nextSequence: c
381
+ };
382
+ }
383
+ function Me(e, t) {
384
+ return $(e) === t ? e : {
385
+ ...e,
386
+ __vibeOccurrenceKey: t
387
+ };
388
+ }
344
389
  //#endregion
345
390
  //#region src/components/viewer-core/autoResolveState.ts
346
- function je(e) {
391
+ function Ne(e) {
347
392
  return e instanceof DOMException && e.name === "AbortError" || e instanceof Error && (e.name === "AbortError" || e.name === "CanceledError") ? !0 : typeof e == "object" && !!e && "code" in e && e.code === "ERR_CANCELED";
348
393
  }
349
- function Me(e) {
394
+ function Pe(e) {
350
395
  let t = Ae(e.nextItems, e.previousItems, e.sequence);
351
396
  return {
352
397
  bucket: {
@@ -358,7 +403,19 @@ function Me(e) {
358
403
  nextSequence: t.nextSequence
359
404
  };
360
405
  }
361
- function Ne(e, t, n, r) {
406
+ function Fe(e) {
407
+ let t = je(e.nextItems, e.previousItems, e.sequence, e.edge);
408
+ return {
409
+ bucket: {
410
+ cursor: e.cursor,
411
+ items: t.items,
412
+ nextCursor: e.nextCursor,
413
+ previousCursor: e.previousCursor
414
+ },
415
+ nextSequence: t.nextSequence
416
+ };
417
+ }
418
+ function Ie(e, t, n, r) {
362
419
  if (!e.length) return r ? null : {
363
420
  buckets: [],
364
421
  canceled: r,
@@ -371,8 +428,8 @@ function Ne(e, t, n, r) {
371
428
  visibleCount: i.reduce((e, t) => e + De(t, n), 0)
372
429
  };
373
430
  }
374
- function Pe(e) {
375
- let t = Me({
431
+ function Le(e) {
432
+ let t = Pe({
376
433
  cursor: e.initialState.cursor,
377
434
  nextCursor: e.initialState.nextCursor ?? null,
378
435
  nextItems: e.initialState.items,
@@ -386,28 +443,28 @@ function Pe(e) {
386
443
  nextSequence: t.nextSequence
387
444
  };
388
445
  }
389
- function Fe(e, t) {
446
+ function Re(e, t) {
390
447
  let n = e[Q(t, 0, Math.max(0, e.length - 1))];
391
448
  return n ? $(n) : null;
392
449
  }
393
- function Ie(e, t, n = null) {
450
+ function ze(e, t, n = null) {
394
451
  if (!e.length) return 0;
395
452
  let r = n ? e.findIndex((e) => $(e) === n) : -1;
396
453
  return r >= 0 ? r : Q(t, 0, e.length - 1);
397
454
  }
398
- function Le(e, t, n) {
455
+ function Be(e, t, n) {
399
456
  return e ? De(e, t) < n : !1;
400
457
  }
401
458
  //#endregion
402
459
  //#region src/components/viewer-core/fillDelay.ts
403
- var Re = 2e3, ze = 1e3, Be = 100;
404
- function Ve(e, t = Re, n = ze) {
460
+ var Ve = 2e3, He = 1e3, Ue = 100;
461
+ function We(e, t = Ve, n = He) {
405
462
  return t + Math.max(0, e - 1) * n;
406
463
  }
407
- function He(e, t) {
464
+ function Ge(e, t) {
408
465
  return !Number.isFinite(e) || e == null || e < 0 ? t : Math.floor(e);
409
466
  }
410
- function Ue() {
467
+ function Ke() {
411
468
  let e = D(null), t = null, n = null, r = null;
412
469
  function i(i = !1) {
413
470
  if (t &&= (clearInterval(t), null), n &&= (clearTimeout(n), null), e.value = null, i && r) {
@@ -425,7 +482,7 @@ function Ue() {
425
482
  let t = Math.max(0, a - (Date.now() - s));
426
483
  e.value = t, t <= 0 && l();
427
484
  };
428
- t = setInterval(u, Be), n = setTimeout(l, a), u();
485
+ t = setInterval(u, Ue), n = setTimeout(l, a), u();
429
486
  }));
430
487
  }
431
488
  return {
@@ -436,8 +493,8 @@ function Ue() {
436
493
  }
437
494
  //#endregion
438
495
  //#region src/components/viewer-core/useAutoResolveSource.ts
439
- function We(e) {
440
- let t = !!e.initialState?.items.length, n = D([]), r = D(0), a = D([]), o = D(!1), s = D(null), c = D(!t && typeof e.resolve == "function" ? "initializing" : "idle"), l = D(null), u = D(null), d = Ue(), f = d.remainingMs, p = D(null), m = D(!1), h = D(!0), g = D(!1), _ = /* @__PURE__ */ new Set(), v = null, y = null, b = 0, C = 0, w = i(() => He(e.fillDelayMs, Re)), T = i(() => He(e.fillDelayStepMs, ze)), E = i(() => typeof e.resolve == "function"), O = i(() => _e(e.pageSize)), k = i(() => we(n.value)), A = i(() => Te(k.value, e.removedIds.value)), j = i(() => r.value), M = i(() => ge(c.value) || m.value), N = i(() => Ge(n.value, e.removedIds.value)), P = i(() => Ke(n.value, e.removedIds.value)), F = i(() => P.value?.nextCursor ?? null), I = i(() => o.value ? null : N.value?.previousCursor ?? null), R = i(() => !!F.value), z = i(() => !!I.value), B = i(() => E.value && n.value.length > 0), ee = i(() => Te(we(a.value), e.removedIds.value)), te = i(() => Oe(n.value, e.removedIds.value, j.value)), V = i(() => !A.value.length && !M.value && !!s.value);
496
+ function qe(e) {
497
+ let t = !!e.initialState?.items.length, n = D([]), r = D(0), a = D([]), o = D(!1), s = D(null), c = D(!t && typeof e.resolve == "function" ? "initializing" : "idle"), l = D(null), u = D(null), d = Ke(), f = d.remainingMs, p = D(null), m = D(!1), h = D(!0), g = D(!1), _ = /* @__PURE__ */ new Set(), v = null, y = null, b = 0, C = 0, w = i(() => Ge(e.fillDelayMs, Ve)), T = i(() => Ge(e.fillDelayStepMs, He)), E = i(() => typeof e.resolve == "function"), O = i(() => _e(e.pageSize)), k = i(() => we(n.value)), A = i(() => Te(k.value, e.removedIds.value)), j = i(() => r.value), M = i(() => ge(c.value) || m.value), N = i(() => Je(n.value, e.removedIds.value)), P = i(() => Ye(n.value, e.removedIds.value)), F = i(() => P.value?.nextCursor ?? null), I = i(() => o.value ? null : N.value?.previousCursor ?? null), R = i(() => !!F.value), z = i(() => !!I.value), B = i(() => E.value && n.value.length > 0), ee = i(() => Te(we(a.value), e.removedIds.value)), te = i(() => Oe(n.value, e.removedIds.value, j.value)), V = i(() => !A.value.length && !M.value && !!s.value);
441
498
  L(() => A.value.length, (e) => {
442
499
  if (e === 0) {
443
500
  r.value = 0;
@@ -518,7 +575,7 @@ function We(e) {
518
575
  b += 1, v?.abort(), v = null, d.clear(!0), _.clear(), s.value = null, l.value = null, u.value = null, p.value = null, a.value.length > 0 && (n.value = [...n.value, ...a.value], a.value = []), m.value = !1, o.value = !1, Z();
519
576
  }
520
577
  function ae() {
521
- return Fe(A.value, j.value);
578
+ return Re(A.value, j.value);
522
579
  }
523
580
  function oe(e = null, t = {}) {
524
581
  if (A.value.length === 0) {
@@ -536,7 +593,7 @@ function We(e) {
536
593
  r.value = A.value.length;
537
594
  return;
538
595
  }
539
- r.value = Ie(A.value, j.value, e);
596
+ r.value = ze(A.value, j.value, e);
540
597
  }
541
598
  function se() {
542
599
  a.value.length > 0 && !ee.value.length && K();
@@ -598,19 +655,23 @@ function We(e) {
598
655
  signal: o?.signal
599
656
  });
600
657
  if (a !== b) return Z(), null;
601
- let s = fe({
658
+ let s = Fe({
602
659
  cursor: r.cursor,
660
+ edge: t,
603
661
  nextCursor: i.nextPage,
604
662
  nextItems: i.items,
605
663
  previousCursor: i.previousPage ?? null,
606
- previousItems: r.items
607
- }), c = ae();
608
- return n.value = ke(n.value, r.cursor, s), oe(c), Z(), {
664
+ previousItems: r.items,
665
+ sequence: C
666
+ });
667
+ C = s.nextSequence;
668
+ let c = ae();
669
+ return n.value = ke(n.value, r.cursor, s.bucket), oe(c), Z(), {
609
670
  followCursor: t === "leading" ? i.previousPage ?? null : i.nextPage,
610
671
  itemsLoaded: i.items.length
611
672
  };
612
673
  } catch (e) {
613
- return je(e) || a !== b ? (Z(), null) : (s.value = e instanceof Error ? e.message : "The viewer could not load items.", c.value = "failed", l.value = null, u.value = null, p.value = null, null);
674
+ return Ne(e) || a !== b ? (Z(), null) : (s.value = e instanceof Error ? e.message : "The viewer could not load items.", c.value = "failed", l.value = null, u.value = null, p.value = null, null);
614
675
  } finally {
615
676
  v === o && (v = null), _.delete(i);
616
677
  }
@@ -619,8 +680,8 @@ function We(e) {
619
680
  if (!e.resolve) return null;
620
681
  let n = ++b, r = /* @__PURE__ */ new Set(), i = [], a = t.cursor, o = 0;
621
682
  for (s.value = null, c.value = t.phase, l.value = null, u.value = null, p.value = null;;) {
622
- if (n !== b) return Ne(i, t.direction, e.removedIds.value, !0);
623
- if (i.length > 0 && g.value) return Ne(i, t.direction, e.removedIds.value, !1);
683
+ if (n !== b) return Ie(i, t.direction, e.removedIds.value, !0);
684
+ if (i.length > 0 && g.value) return Ie(i, t.direction, e.removedIds.value, !1);
624
685
  let f = ve(a);
625
686
  if (r.has(f) || _.has(f)) break;
626
687
  r.add(f), _.add(f);
@@ -632,7 +693,7 @@ function We(e) {
632
693
  pageSize: O.value,
633
694
  signal: m?.signal
634
695
  });
635
- if (n !== b) return Ne(i, t.direction, e.removedIds.value, !0);
696
+ if (n !== b) return Ie(i, t.direction, e.removedIds.value, !0);
636
697
  let s = fe({
637
698
  cursor: a,
638
699
  nextCursor: r.nextPage,
@@ -647,21 +708,21 @@ function We(e) {
647
708
  buckets: t.direction === "backward" ? [...i].reverse() : i,
648
709
  visibleCount: f
649
710
  };
650
- if (g.value) return Ne(i, t.direction, e.removedIds.value, !1);
711
+ if (g.value) return Ie(i, t.direction, e.removedIds.value, !1);
651
712
  c.value = "filling", l.value = f, u.value = h, p.value = O.value, o += 1;
652
- let _ = Ve(o, w.value, T.value);
653
- if (await d.wait(_), n !== b) return Ne(i, t.direction, e.removedIds.value, !0);
713
+ let _ = We(o, w.value, T.value);
714
+ if (await d.wait(_), n !== b) return Ie(i, t.direction, e.removedIds.value, !0);
654
715
  a = h;
655
716
  } catch (r) {
656
- return je(r) || n !== b ? Ne(i, t.direction, e.removedIds.value, !0) : (s.value = r instanceof Error ? r.message : "The viewer could not load items.", c.value = "failed", l.value = null, u.value = null, p.value = null, null);
717
+ return Ne(r) || n !== b ? Ie(i, t.direction, e.removedIds.value, !0) : (s.value = r instanceof Error ? r.message : "The viewer could not load items.", c.value = "failed", l.value = null, u.value = null, p.value = null, null);
657
718
  } finally {
658
719
  v === m && (v = null), _.delete(f);
659
720
  }
660
721
  }
661
- return Ne(i, t.direction, e.removedIds.value, !1);
722
+ return Ie(i, t.direction, e.removedIds.value, !1);
662
723
  }
663
724
  function fe(e) {
664
- let t = Me({
725
+ let t = Pe({
665
726
  cursor: e.cursor,
666
727
  nextCursor: e.nextCursor,
667
728
  nextItems: e.nextItems,
@@ -676,7 +737,7 @@ function We(e) {
676
737
  }
677
738
  function pe() {
678
739
  if (!e.initialState || !e.initialState.items.length) return !1;
679
- let t = Pe({
740
+ let t = Le({
680
741
  initialState: e.initialState,
681
742
  removedIds: e.removedIds.value,
682
743
  sequence: C
@@ -687,7 +748,7 @@ function We(e) {
687
748
  return c.value === "initializing";
688
749
  }
689
750
  function he(t) {
690
- return Le(t === "leading" ? N.value : P.value, e.removedIds.value, O.value);
751
+ return Be(t === "leading" ? N.value : P.value, e.removedIds.value, O.value);
691
752
  }
692
753
  function ye() {
693
754
  let t = n.value.findIndex((t) => De(t, e.removedIds.value) > 0);
@@ -735,10 +796,10 @@ function We(e) {
735
796
  maybeCommitPendingAppendWhenFilteredOut: se
736
797
  };
737
798
  }
738
- function Ge(e, t) {
799
+ function Je(e, t) {
739
800
  return e.find((e) => De(e, t) > 0) ?? e[0] ?? null;
740
801
  }
741
- function Ke(e, t) {
802
+ function Ye(e, t) {
742
803
  for (let n = e.length - 1; n >= 0; --n) {
743
804
  let r = e[n];
744
805
  if (De(r, t) > 0) return r;
@@ -747,8 +808,8 @@ function Ke(e, t) {
747
808
  }
748
809
  //#endregion
749
810
  //#region src/components/viewer-core/useDataSource.ts
750
- function qe(e, t) {
751
- let { clearRemoved: n, getRemovedIds: r, remove: a, removedIds: o, restore: s, undo: c } = ye(), l = We({
811
+ function Xe(e, t) {
812
+ let { clearRemoved: n, getRemovedIds: r, remove: a, removedIds: o, restore: s, undo: c } = ye(), l = qe({
752
813
  emit: t,
753
814
  fillDelayMs: e.fillDelayMs,
754
815
  fillDelayStepMs: e.fillDelayStepMs,
@@ -835,9 +896,9 @@ function qe(e, t) {
835
896
  }
836
897
  //#endregion
837
898
  //#region src/components/viewer-core/useController.ts
838
- var Je = 1024;
839
- function Ye(e, t) {
840
- let n = qe(e, t), r = T({
899
+ var Ze = 1024;
900
+ function Qe(e, t) {
901
+ let n = Xe(e, t), r = T({
841
902
  nextBoundaryLoadProgress: 0,
842
903
  previousBoundaryLoadProgress: 0
843
904
  }), a = D(0), o = D("list"), s = T({
@@ -861,7 +922,7 @@ function Ye(e, t) {
861
922
  removedCount: 0,
862
923
  removedIds: [],
863
924
  surfaceMode: "list"
864
- }), c = i(() => a.value >= Je), l = i(() => c.value ? o.value : "fullscreen"), u = i(() => c.value && l.value === "fullscreen");
925
+ }), c = i(() => a.value >= Ze), l = i(() => c.value ? o.value : "fullscreen"), u = i(() => c.value && l.value === "fullscreen");
865
926
  L(c, (e) => {
866
927
  e && h();
867
928
  }), L(() => e.surfaceMode, () => {
@@ -900,7 +961,7 @@ function Ye(e, t) {
900
961
  !c.value || !e.surfaceMode || e.surfaceMode === o.value || (o.value = e.surfaceMode);
901
962
  }
902
963
  function g(e) {
903
- r.nextBoundaryLoadProgress = Xe(e.nextBoundaryLoadProgress), r.previousBoundaryLoadProgress = Xe(e.previousBoundaryLoadProgress);
964
+ r.nextBoundaryLoadProgress = $e(e.nextBoundaryLoadProgress), r.previousBoundaryLoadProgress = $e(e.previousBoundaryLoadProgress);
904
965
  }
905
966
  return {
906
967
  ...n,
@@ -919,26 +980,26 @@ function Ye(e, t) {
919
980
  unlockPageLoading: n.unlockPageLoading
920
981
  };
921
982
  }
922
- function Xe(e) {
983
+ function $e(e) {
923
984
  return Math.min(Math.max(e, 0), 1);
924
985
  }
925
986
  //#endregion
926
987
  //#region src/components/FullscreenMediaBar.vue?vue&type=script&setup=true&lang.ts
927
- var Ze = {
988
+ var et = {
928
989
  "data-testid": "vibe-media-bar",
929
990
  class: "absolute inset-x-0 bottom-0 z-[5] bg-[linear-gradient(180deg,transparent,rgba(0,0,0,0.42)_24%,rgba(0,0,0,0.78))] px-[clamp(1rem,2.6vw,2.25rem)] pt-4 pb-[1.15rem]"
930
- }, Qe = { class: "grid grid-cols-[auto_minmax(0,1fr)_auto_auto] items-center gap-3 border-t border-white/12 bg-black/70 px-4 py-3 backdrop-blur-[18px]" }, $e = { class: "text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74" }, et = { class: "relative h-4 w-full" }, tt = [
991
+ }, tt = { class: "grid grid-cols-[auto_minmax(0,1fr)_auto_auto] items-center gap-3 border-t border-white/12 bg-black/70 px-4 py-3 backdrop-blur-[18px]" }, nt = { class: "text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74" }, rt = { class: "relative h-4 w-full" }, it = [
931
992
  "max",
932
993
  "value",
933
994
  "disabled"
934
- ], nt = { class: "text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74" }, rt = ["data-layout"], it = {
995
+ ], at = { class: "text-[0.76rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74" }, ot = ["data-layout"], st = {
935
996
  key: 0,
936
997
  "data-testid": "vibe-media-volume-popover",
937
998
  class: "absolute bottom-[calc(100%+0.8rem)] right-0 grid justify-items-center gap-3 border border-white/12 bg-black/82 px-3 py-4 shadow-[0_20px_50px_-20px_rgba(0,0,0,0.85)] backdrop-blur-[18px]"
938
- }, at = { class: "relative flex h-28 w-4 items-center justify-center" }, ot = ["value"], st = { class: "flex items-center gap-3" }, ct = ["aria-label"], lt = {
999
+ }, ct = { class: "relative flex h-28 w-4 items-center justify-center" }, lt = ["value"], ut = { class: "flex items-center gap-3" }, dt = ["aria-label"], ft = {
939
1000
  key: 0,
940
1001
  class: "relative h-4 w-24"
941
- }, ut = ["value"], dt = /* @__PURE__ */ d({
1002
+ }, pt = ["value"], mt = /* @__PURE__ */ d({
942
1003
  __name: "FullscreenMediaBar",
943
1004
  props: {
944
1005
  currentTime: {},
@@ -981,9 +1042,9 @@ var Ze = {
981
1042
  function C(e, t, n) {
982
1043
  return Math.min(Math.max(e, t), n);
983
1044
  }
984
- return (e, t) => (w(), s("div", Ze, [c("div", Qe, [
985
- c("span", $e, j(n.currentTimeLabel), 1),
986
- c("div", et, [
1045
+ return (e, t) => (w(), s("div", et, [c("div", tt, [
1046
+ c("span", nt, j(n.currentTimeLabel), 1),
1047
+ c("div", rt, [
987
1048
  t[3] ||= c("div", { class: "absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-white/12" }, null, -1),
988
1049
  c("div", {
989
1050
  class: "absolute left-0 top-1/2 h-px -translate-y-1/2 bg-[#f7f1ea]",
@@ -1000,16 +1061,16 @@ var Ze = {
1000
1061
  disabled: n.duration <= 0,
1001
1062
  class: "vibe-media-slider absolute inset-0 z-10 h-4 w-full cursor-pointer bg-transparent disabled:cursor-default disabled:opacity-50",
1002
1063
  onInput: t[0] ||= (e) => r("seek-input", e)
1003
- }, null, 40, tt)
1064
+ }, null, 40, it)
1004
1065
  ]),
1005
- c("span", nt, j(n.durationLabel), 1),
1066
+ c("span", at, j(n.durationLabel), 1),
1006
1067
  c("div", {
1007
1068
  ref_key: "rootRef",
1008
1069
  ref: l,
1009
1070
  "data-testid": "vibe-media-volume",
1010
1071
  "data-layout": n.volumeControlLayout,
1011
1072
  class: "relative flex items-center justify-end"
1012
- }, [d.value && u.value ? (w(), s("div", it, [c("div", at, [
1073
+ }, [d.value && u.value ? (w(), s("div", st, [c("div", ct, [
1013
1074
  t[4] ||= c("div", { class: "absolute bottom-0 left-1/2 h-full w-px -translate-x-1/2 bg-white/12" }, null, -1),
1014
1075
  c("div", {
1015
1076
  class: "absolute bottom-0 left-1/2 w-px -translate-x-1/2 bg-[#f7f1ea]",
@@ -1026,8 +1087,8 @@ var Ze = {
1026
1087
  value: f.value,
1027
1088
  class: "vibe-media-slider absolute left-1/2 top-1/2 h-4 w-28 -translate-x-1/2 -translate-y-1/2 -rotate-90 bg-transparent",
1028
1089
  onInput: t[1] ||= (e) => r("volume-input", e)
1029
- }, null, 40, ot)
1030
- ])])) : o("", !0), c("div", st, [c("button", {
1090
+ }, null, 40, lt)
1091
+ ])])) : o("", !0), c("div", ut, [c("button", {
1031
1092
  type: "button",
1032
1093
  "data-testid": "vibe-media-volume-button",
1033
1094
  "aria-label": g.value,
@@ -1036,7 +1097,7 @@ var Ze = {
1036
1097
  }, [(w(), a(A(m.value), {
1037
1098
  class: "h-4 w-4 stroke-[1.9]",
1038
1099
  "aria-hidden": "true"
1039
- }))], 8, ct), n.volumeControlLayout === "horizontal" ? (w(), s("div", lt, [
1100
+ }))], 8, dt), n.volumeControlLayout === "horizontal" ? (w(), s("div", ft, [
1040
1101
  t[5] ||= c("div", { class: "absolute inset-x-0 top-1/2 h-px -translate-y-1/2 bg-white/12" }, null, -1),
1041
1102
  c("div", {
1042
1103
  class: "absolute left-0 top-1/2 h-px -translate-y-1/2 bg-[#f7f1ea]",
@@ -1053,24 +1114,24 @@ var Ze = {
1053
1114
  value: f.value,
1054
1115
  class: "vibe-media-slider absolute inset-0 z-10 h-4 w-full cursor-pointer bg-transparent",
1055
1116
  onInput: t[2] ||= (e) => r("volume-input", e)
1056
- }, null, 40, ut)
1057
- ])) : o("", !0)])], 8, rt)
1117
+ }, null, 40, pt)
1118
+ ])) : o("", !0)])], 8, ot)
1058
1119
  ])]));
1059
1120
  }
1060
- }), ft = { class: "pointer-events-none absolute inset-0 z-[3] flex flex-col justify-between p-[clamp(1.25rem,2.6vw,2.25rem)]" }, pt = { class: "grid gap-4" }, mt = { class: "flex min-h-11 items-center justify-between gap-4" }, ht = { class: "min-w-0 flex flex-1 items-center gap-3" }, gt = {
1121
+ }), ht = { class: "pointer-events-none absolute inset-0 z-[3] flex flex-col justify-between p-[clamp(1.25rem,2.6vw,2.25rem)]" }, gt = { class: "grid gap-4" }, _t = { class: "flex min-h-11 items-center justify-between gap-4" }, vt = { class: "min-w-0 flex flex-1 items-center gap-3" }, yt = {
1061
1122
  key: 1,
1062
1123
  "data-testid": "vibe-title",
1063
1124
  class: "m-0 truncate text-left text-[0.82rem] leading-none tracking-[-0.04em] min-[721px]:text-[1.2rem]"
1064
- }, _t = { class: "pointer-events-auto flex shrink-0 items-center gap-2" }, vt = {
1125
+ }, bt = { class: "pointer-events-auto flex shrink-0 items-center gap-2" }, xt = {
1065
1126
  "data-testid": "vibe-pagination",
1066
1127
  class: "inline-flex shrink-0 items-center gap-2 whitespace-nowrap border border-white/14 bg-black/40 px-3 py-2 text-[0.63rem] font-bold uppercase tracking-[0.12em] text-[#f7f1ea]/72 backdrop-blur-[18px] min-[721px]:gap-3 min-[721px]:px-4 min-[721px]:py-3 min-[721px]:text-[0.74rem] min-[721px]:tracking-[0.2em]"
1067
- }, yt = { class: "whitespace-nowrap" }, bt = {
1128
+ }, St = { class: "whitespace-nowrap" }, Ct = {
1068
1129
  key: 1,
1069
1130
  class: "whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3"
1070
- }, xt = {
1131
+ }, wt = {
1071
1132
  key: 0,
1072
1133
  class: "grid gap-2 max-[720px]:justify-items-start"
1073
- }, St = /* @__PURE__ */ d({
1134
+ }, Tt = /* @__PURE__ */ d({
1074
1135
  __name: "FullscreenHeader",
1075
1136
  props: {
1076
1137
  currentIndex: {},
@@ -1084,7 +1145,7 @@ var Ze = {
1084
1145
  emits: ["back-to-list"],
1085
1146
  setup(e, { emit: t }) {
1086
1147
  let n = e, r = t;
1087
- return (e, t) => (w(), s("div", ft, [c("div", pt, [c("div", mt, [c("div", ht, [n.showBackToList ? (w(), s("button", {
1148
+ return (e, t) => (w(), s("div", ht, [c("div", gt, [c("div", _t, [c("div", vt, [n.showBackToList ? (w(), s("button", {
1088
1149
  key: 0,
1089
1150
  type: "button",
1090
1151
  "data-testid": "vibe-back-to-list",
@@ -1094,47 +1155,47 @@ var Ze = {
1094
1155
  }, [u(N(re), {
1095
1156
  class: "h-4 w-4 stroke-[2.2]",
1096
1157
  "aria-hidden": "true"
1097
- })])) : o("", !0), n.title ? (w(), s("h2", gt, j(n.title), 1)) : o("", !0)]), c("div", _t, [c("span", vt, [
1158
+ })])) : o("", !0), n.title ? (w(), s("h2", yt, j(n.title), 1)) : o("", !0)]), c("div", bt, [c("span", xt, [
1098
1159
  n.loading ? (w(), a(N(oe), {
1099
1160
  key: 0,
1100
1161
  "data-testid": "vibe-pagination-spinner",
1101
1162
  class: "h-3.5 w-3.5 animate-spin stroke-[1.9]",
1102
1163
  "aria-hidden": "true"
1103
1164
  })) : o("", !0),
1104
- c("span", yt, j(n.currentIndex + 1) + " / " + j(n.total), 1),
1105
- n.paginationDetail ? (w(), s("span", bt, j(n.paginationDetail), 1)) : o("", !0)
1106
- ]), k(e.$slots, "actions")])])]), n.showEndBadge ? (w(), s("div", xt, [...t[1] ||= [c("span", { class: "inline-flex items-center border border-amber-300/35 bg-black/40 px-4 py-3 text-[0.74rem] font-bold uppercase tracking-[0.2em] text-amber-200 backdrop-blur-[18px]" }, " End reached ", -1)]])) : o("", !0)]));
1165
+ c("span", St, j(n.currentIndex + 1) + " / " + j(n.total), 1),
1166
+ n.paginationDetail ? (w(), s("span", Ct, j(n.paginationDetail), 1)) : o("", !0)
1167
+ ]), k(e.$slots, "actions")])])]), n.showEndBadge ? (w(), s("div", wt, [...t[1] ||= [c("span", { class: "inline-flex items-center border border-amber-300/35 bg-black/40 px-4 py-3 text-[0.74rem] font-bold uppercase tracking-[0.2em] text-amber-200 backdrop-blur-[18px]" }, " End reached ", -1)]])) : o("", !0)]));
1107
1168
  }
1108
- }), Ct = {
1169
+ }), Et = {
1109
1170
  image: ae,
1110
1171
  video: Y,
1111
1172
  audio: J,
1112
1173
  other: ie
1113
- }, wt = {
1174
+ }, Dt = {
1114
1175
  image: "Image",
1115
1176
  video: "Video",
1116
1177
  audio: "Audio",
1117
1178
  other: "File"
1118
1179
  };
1119
- function Tt(e) {
1120
- return Ct[e];
1180
+ function Ot(e) {
1181
+ return Et[e];
1121
1182
  }
1122
- function Et(e) {
1123
- return wt[e];
1183
+ function kt(e) {
1184
+ return Dt[e];
1124
1185
  }
1125
1186
  //#endregion
1126
1187
  //#region src/components/viewer-core/useAssetLoadQueue.ts
1127
- var Dt = {
1188
+ var At = {
1128
1189
  maxGlobal: 10,
1129
1190
  maxPerDomain: 4,
1130
1191
  maxVideoPerDomain: 2
1131
1192
  };
1132
- function Ot(e = Dt) {
1193
+ function jt(e = At) {
1133
1194
  let t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Map(), r = 0;
1134
1195
  function i(e) {
1135
1196
  let i = {
1136
1197
  ...e,
1137
- domain: jt(e.url),
1198
+ domain: Pt(e.url),
1138
1199
  enqueuedAt: r,
1139
1200
  id: `vibe-asset-load-${r += 1}`
1140
1201
  };
@@ -1153,7 +1214,7 @@ function Ot(e = Dt) {
1153
1214
  function a() {
1154
1215
  if (n.size === 0) return;
1155
1216
  let r = [...n.values()].sort((e, t) => {
1156
- let n = At(e) - At(t);
1217
+ let n = Nt(e) - Nt(t);
1157
1218
  return n === 0 ? e.enqueuedAt - t.enqueuedAt : n;
1158
1219
  });
1159
1220
  for (let i of r) {
@@ -1174,8 +1235,8 @@ function Ot(e = Dt) {
1174
1235
  }
1175
1236
  return { request: i };
1176
1237
  }
1177
- var kt = Ot();
1178
- function At(e) {
1238
+ var Mt = jt();
1239
+ function Nt(e) {
1179
1240
  try {
1180
1241
  let t = e.getPriority();
1181
1242
  return Number.isFinite(t) ? t : Infinity;
@@ -1183,7 +1244,7 @@ function At(e) {
1183
1244
  return Infinity;
1184
1245
  }
1185
1246
  }
1186
- function jt(e) {
1247
+ function Pt(e) {
1187
1248
  try {
1188
1249
  return new URL(e).hostname || "local";
1189
1250
  } catch {
@@ -1192,14 +1253,14 @@ function jt(e) {
1192
1253
  }
1193
1254
  //#endregion
1194
1255
  //#region src/components/viewer-core/useFullscreenPreloadController.ts
1195
- var Mt = 2, Nt = {
1256
+ var Ft = 2, It = {
1196
1257
  1: 0,
1197
1258
  2: 1,
1198
1259
  3: 2,
1199
1260
  [-1]: 3
1200
1261
  };
1201
- function Pt(e) {
1202
- let t = D({}), n = Ot({
1262
+ function Lt(e) {
1263
+ let t = D({}), n = jt({
1203
1264
  maxGlobal: 1,
1204
1265
  maxPerDomain: 1,
1205
1266
  maxVideoPerDomain: 1
@@ -1216,20 +1277,20 @@ function Pt(e) {
1216
1277
  function s(n) {
1217
1278
  if (!e.active.value) return !1;
1218
1279
  let r = e.items.value[n];
1219
- if (!r || !Rt(r)) return !1;
1280
+ if (!r || !Vt(r)) return !1;
1220
1281
  let i = e.getItemKey(r);
1221
1282
  return i === h() || !!t.value[i];
1222
1283
  }
1223
1284
  function c(e, t) {
1224
1285
  if (t instanceof HTMLImageElement) {
1225
- i.set(e, t), It(t) && u(e);
1286
+ i.set(e, t), zt(t) && u(e);
1226
1287
  return;
1227
1288
  }
1228
1289
  i.delete(e);
1229
1290
  }
1230
1291
  function l(e, t) {
1231
1292
  if (t instanceof HTMLMediaElement) {
1232
- a.set(e, t), Lt(t) && u(e);
1293
+ a.set(e, t), Bt(t) && u(e);
1233
1294
  return;
1234
1295
  }
1235
1296
  a.delete(e);
@@ -1268,7 +1329,7 @@ function Pt(e) {
1268
1329
  assetType: e.item.type === "image" ? "image" : "video",
1269
1330
  getPriority: () => g(o.index),
1270
1331
  onGrant: () => {
1271
- v(e.key, !0), Ft(e.key, i, a) && u(e.key);
1332
+ v(e.key, !0), Rt(e.key, i, a) && u(e.key);
1272
1333
  },
1273
1334
  url: e.item.url
1274
1335
  })
@@ -1278,7 +1339,7 @@ function Pt(e) {
1278
1339
  _();
1279
1340
  }
1280
1341
  function m() {
1281
- let n = e.resolvedActiveIndex.value, i = e.items.value.map((t, n) => Rt(t) ? {
1342
+ let n = e.resolvedActiveIndex.value, i = e.items.value.map((t, n) => Vt(t) ? {
1282
1343
  index: n,
1283
1344
  item: t,
1284
1345
  key: e.getItemKey(t)
@@ -1297,15 +1358,15 @@ function Pt(e) {
1297
1358
  let u = [...l.values()].sort((e, t) => e.index - t.index);
1298
1359
  for (let e of u) c(e);
1299
1360
  let d = u.reduce((e, t) => Math.max(e, t.index), n), f = 0;
1300
- for (let e of i) if (!(e.index <= d || o.has(e.key)) && (c(e), f += 1, f >= Mt)) break;
1361
+ for (let e of i) if (!(e.index <= d || o.has(e.key)) && (c(e), f += 1, f >= Ft)) break;
1301
1362
  return c(i.find((e) => e.index === n - 1)), s;
1302
1363
  }
1303
1364
  function h() {
1304
1365
  let t = e.items.value[e.resolvedActiveIndex.value];
1305
- return !e.active.value || !t || !Rt(t) ? null : e.getItemKey(t);
1366
+ return !e.active.value || !t || !Vt(t) ? null : e.getItemKey(t);
1306
1367
  }
1307
1368
  function g(t) {
1308
- return e.active.value ? Nt[t - e.resolvedActiveIndex.value] ?? Infinity : Infinity;
1369
+ return e.active.value ? It[t - e.resolvedActiveIndex.value] ?? Infinity : Infinity;
1309
1370
  }
1310
1371
  function _() {
1311
1372
  let n = /* @__PURE__ */ new Set(), r = h();
@@ -1351,26 +1412,26 @@ function Pt(e) {
1351
1412
  shouldAttachSlideAsset: s
1352
1413
  };
1353
1414
  }
1354
- function Ft(e, t, n) {
1415
+ function Rt(e, t, n) {
1355
1416
  let r = t.get(e);
1356
- if (r) return It(r);
1417
+ if (r) return zt(r);
1357
1418
  let i = n.get(e);
1358
- return i ? Lt(i) : !1;
1419
+ return i ? Bt(i) : !1;
1359
1420
  }
1360
- function It(e) {
1421
+ function zt(e) {
1361
1422
  return e.complete && !!(e.currentSrc || e.getAttribute("src"));
1362
1423
  }
1363
- function Lt(e) {
1424
+ function Bt(e) {
1364
1425
  let t = typeof HTMLMediaElement > "u" ? 1 : HTMLMediaElement.HAVE_METADATA;
1365
1426
  return e.readyState >= t;
1366
1427
  }
1367
- function Rt(e) {
1428
+ function Vt(e) {
1368
1429
  return e.type === "image" || e.type === "video" || e.type === "audio";
1369
1430
  }
1370
1431
  //#endregion
1371
1432
  //#region src/components/viewer-core/useFullscreenSurfaceMedia.ts
1372
- function zt(e) {
1373
- let t = Pt({
1433
+ function Ht(e) {
1434
+ let t = Lt({
1374
1435
  active: e.active,
1375
1436
  getItemKey: r,
1376
1437
  items: e.items,
@@ -1379,7 +1440,7 @@ function zt(e) {
1379
1440
  });
1380
1441
  function n(e, t) {
1381
1442
  let n = t.title?.trim();
1382
- return n ? `${e} ${n}` : `${e} ${Et(t.type).toLowerCase()}`;
1443
+ return n ? `${e} ${n}` : `${e} ${kt(t.type).toLowerCase()}`;
1383
1444
  }
1384
1445
  function r(e) {
1385
1446
  return $(e);
@@ -1427,11 +1488,11 @@ function zt(e) {
1427
1488
  }
1428
1489
  //#endregion
1429
1490
  //#region src/components/viewer-core/slotContent.ts
1430
- function Bt(e) {
1491
+ function Ut(e) {
1431
1492
  if (!Array.isArray(e)) return !1;
1432
1493
  for (let t of e) {
1433
1494
  if (Array.isArray(t)) {
1434
- if (Bt(t)) return !0;
1495
+ if (Ut(t)) return !0;
1435
1496
  continue;
1436
1497
  }
1437
1498
  if (!h(t)) {
@@ -1442,20 +1503,20 @@ function Bt(e) {
1442
1503
  if (t != null && t !== !1) return !0;
1443
1504
  continue;
1444
1505
  }
1445
- if (!Vt(t)) return !0;
1506
+ if (!Wt(t)) return !0;
1446
1507
  }
1447
1508
  return !1;
1448
1509
  }
1449
- function Vt(r) {
1450
- return r.type === e ? !0 : r.type === n ? typeof r.children == "string" ? r.children.trim().length === 0 : !0 : r.type === t ? !Bt(r.children) : !1;
1510
+ function Wt(r) {
1511
+ return r.type === e ? !0 : r.type === n ? typeof r.children == "string" ? r.children.trim().length === 0 : !0 : r.type === t ? !Ut(r.children) : !1;
1451
1512
  }
1452
1513
  //#endregion
1453
1514
  //#region src/components/viewer-core/useSurfaceEmptyState.ts
1454
- var Ht = "no items available";
1455
- function Ut(e) {
1515
+ var Gt = "no items available";
1516
+ function Kt(e) {
1456
1517
  let t = i(() => e.loading.value || e.itemCount.value > 0 || e.emptyStateMode.value === "hidden" ? null : {
1457
1518
  loading: !!e.loading.value,
1458
- message: Ht,
1519
+ message: Gt,
1459
1520
  mode: e.emptyStateMode.value === "badge" ? "badge" : "inline",
1460
1521
  surface: e.surface,
1461
1522
  total: e.itemCount.value
@@ -1463,23 +1524,23 @@ function Ut(e) {
1463
1524
  return {
1464
1525
  emptyStateProps: t,
1465
1526
  showBadgeEmptyState: i(() => t.value?.mode === "badge"),
1466
- showCustomEmptyState: i(() => Bt(n.value)),
1527
+ showCustomEmptyState: i(() => Ut(n.value)),
1467
1528
  showInlineEmptyState: i(() => t.value?.mode === "inline")
1468
1529
  };
1469
1530
  }
1470
1531
  //#endregion
1471
1532
  //#region src/components/viewer-core/format.ts
1472
- function Wt(e) {
1533
+ function qt(e) {
1473
1534
  if (!Number.isFinite(e) || e <= 0) return "0:00";
1474
1535
  let t = Math.floor(e), n = Math.floor(t / 3600), r = Math.floor(t % 3600 / 60), i = t % 60;
1475
1536
  return n > 0 ? `${n}:${String(r).padStart(2, "0")}:${String(i).padStart(2, "0")}` : `${r}:${String(i).padStart(2, "0")}`;
1476
1537
  }
1477
1538
  //#endregion
1478
1539
  //#region src/components/viewer-core/surfaceStatus.ts
1479
- function Gt(e) {
1540
+ function Jt(e) {
1480
1541
  return e.phase ? e.phase : e.loading ? e.itemCount > 0 ? "loading" : "initializing" : "idle";
1481
1542
  }
1482
- function Kt(e) {
1543
+ function Yt(e) {
1483
1544
  return e.phase === "failed" ? {
1484
1545
  kind: "failed",
1485
1546
  message: e.errorMessage ?? (e.hasItems ? "The viewer could not load more items." : "The viewer could not load items.")
@@ -1502,7 +1563,7 @@ function Kt(e) {
1502
1563
  }
1503
1564
  //#endregion
1504
1565
  //#region src/components/viewer-core/useActivation.ts
1505
- function qt(e) {
1566
+ function Xt(e) {
1506
1567
  let t = !1;
1507
1568
  L(e.enabled, async (t) => {
1508
1569
  if (n(t), t) {
@@ -1525,7 +1586,7 @@ function qt(e) {
1525
1586
  }
1526
1587
  //#endregion
1527
1588
  //#region src/components/viewer-core/assetState.ts
1528
- var Jt = {
1589
+ var Zt = {
1529
1590
  currentTime: 0,
1530
1591
  duration: 0,
1531
1592
  errorKind: null,
@@ -1534,38 +1595,38 @@ var Jt = {
1534
1595
  ready: !1,
1535
1596
  volume: 1
1536
1597
  };
1537
- function Yt() {
1538
- return { ...Jt };
1598
+ function Qt() {
1599
+ return { ...Zt };
1539
1600
  }
1540
- function Xt(e) {
1601
+ function $t(e) {
1541
1602
  return e.complete && !!(e.currentSrc || e.getAttribute("src"));
1542
1603
  }
1543
- function Zt(e, t, n) {
1544
- e.currentTime = Number.isFinite(t.currentTime) ? t.currentTime : 0, e.duration = Number.isFinite(t.duration) ? t.duration : 0, e.muted = t.muted, e.paused = t.paused, e.volume = Number.isFinite(t.volume) ? t.volume : e.volume, n && n !== "error" && (e.errorKind = null), e.ready = Qt(t, n);
1604
+ function en(e, t, n) {
1605
+ e.currentTime = Number.isFinite(t.currentTime) ? t.currentTime : 0, e.duration = Number.isFinite(t.duration) ? t.duration : 0, e.muted = t.muted, e.paused = t.paused, e.volume = Number.isFinite(t.volume) ? t.volume : e.volume, n && n !== "error" && (e.errorKind = null), e.ready = tn(t, n);
1545
1606
  }
1546
- function Qt(e, t) {
1607
+ function tn(e, t) {
1547
1608
  return t === "error" || t === "loadstart" || t === "waiting" || t === "stalled" ? !1 : t === "canplay" || t === "canplaythrough" || t === "playing" ? !0 : e.readyState >= HTMLMediaElement.HAVE_CURRENT_DATA;
1548
1609
  }
1549
1610
  //#endregion
1550
1611
  //#region src/components/viewer-core/loadError.ts
1551
- var $t = /* @__PURE__ */ new Map();
1552
- function en(e) {
1612
+ var nn = /* @__PURE__ */ new Map();
1613
+ function rn(e) {
1553
1614
  return e === "not-found" ? "404" : "Load error";
1554
1615
  }
1555
- function tn(e) {
1616
+ function an(e) {
1556
1617
  return e === "generic";
1557
1618
  }
1558
- function nn(e) {
1559
- return rn(e).then((e) => e ?? "generic");
1619
+ function on(e) {
1620
+ return sn(e).then((e) => e ?? "generic");
1560
1621
  }
1561
- function rn(e) {
1562
- let t = $t.get(e);
1622
+ function sn(e) {
1623
+ let t = nn.get(e);
1563
1624
  if (t) return t;
1564
- let n = an(e);
1565
- return $t.set(e, n), n;
1625
+ let n = cn(e);
1626
+ return nn.set(e, n), n;
1566
1627
  }
1567
- async function an(e) {
1568
- if (!on(e)) return null;
1628
+ async function cn(e) {
1629
+ if (!ln(e)) return null;
1569
1630
  try {
1570
1631
  let t = await fetch(e, { method: "HEAD" });
1571
1632
  return t.ok ? null : t.status === 404 ? "not-found" : "generic";
@@ -1573,12 +1634,12 @@ async function an(e) {
1573
1634
  return "generic";
1574
1635
  }
1575
1636
  }
1576
- function on(e) {
1637
+ function ln(e) {
1577
1638
  return /^(https?:\/\/|\/)/i.test(e);
1578
1639
  }
1579
1640
  //#endregion
1580
1641
  //#region src/components/viewer-core/mediaPlayback.ts
1581
- function sn(e) {
1642
+ function un(e) {
1582
1643
  try {
1583
1644
  let t = e.play();
1584
1645
  t && typeof t.catch == "function" && t.catch(() => {});
@@ -1586,12 +1647,12 @@ function sn(e) {
1586
1647
  }
1587
1648
  //#endregion
1588
1649
  //#region src/components/viewer-core/useMedia.ts
1589
- function cn(e) {
1650
+ function dn(e) {
1590
1651
  let t = D({}), n = D({}), r = D({}), a = D({}), o = D({}), s = /* @__PURE__ */ new Map(), c = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Set(), u = i(() => e.activeItem.value ? $(e.activeItem.value) : null), d = i(() => e.activeMediaItem.value ? $(e.activeMediaItem.value) : null), f = i(() => {
1591
1652
  let t = /* @__PURE__ */ new Map();
1592
1653
  for (let n of e.items.value) t.set($(n), n);
1593
1654
  return t;
1594
- }), p = i(() => d.value ? r.value[d.value] ?? Jt : Jt), m = i(() => d.value ? p.value.duration : 0), h = i(() => m.value <= 0 ? 0 : ln(p.value.currentTime / m.value * 100, 0, 100)), g = i(() => u.value ? R(u.value) : null);
1655
+ }), p = i(() => d.value ? r.value[d.value] ?? Zt : Zt), m = i(() => d.value ? p.value.duration : 0), h = i(() => m.value <= 0 ? 0 : fn(p.value.currentTime / m.value * 100, 0, 100)), g = i(() => u.value ? R(u.value) : null);
1595
1656
  L(() => u.value, async () => {
1596
1657
  await C();
1597
1658
  }), L(() => e.itemCount.value, async () => {
@@ -1614,7 +1675,7 @@ function cn(e) {
1614
1675
  c.delete(e);
1615
1676
  }
1616
1677
  function b(e, r) {
1617
- r instanceof HTMLImageElement && Xt(r) && (t.value[e] = !0, n.value[e] = null, J(e, r.currentSrc || r.src || ie(e)));
1678
+ r instanceof HTMLImageElement && $t(r) && (t.value[e] = !0, n.value[e] = null, J(e, r.currentSrc || r.src || ie(e)));
1618
1679
  }
1619
1680
  function x() {
1620
1681
  H(), a.value = {}, n.value = {}, t.value = {}, o.value = {}, r.value = {}, l.clear();
@@ -1636,14 +1697,14 @@ function cn(e) {
1636
1697
  V(i, n);
1637
1698
  continue;
1638
1699
  }
1639
- i.muted = !1, i.loop = e.loopFullscreenVideo.value, i.playsInline = !0, sn(i), W(n, i);
1700
+ i.muted = !1, i.loop = e.loopFullscreenVideo.value, i.playsInline = !0, un(i), W(n, i);
1640
1701
  }
1641
1702
  for (let [e, n] of c.entries()) {
1642
1703
  if (e !== t || r.value[e]?.errorKind) {
1643
1704
  V(n, e);
1644
1705
  continue;
1645
1706
  }
1646
- sn(n), W(e, n);
1707
+ un(n), W(e, n);
1647
1708
  }
1648
1709
  }
1649
1710
  function w(e, t) {
@@ -1661,7 +1722,7 @@ function cn(e) {
1661
1722
  async function E(r, i) {
1662
1723
  let a = Y(r) ?? e.activeItem.value;
1663
1724
  t.value[r] = !1, n.value[r] = "generic";
1664
- let o = await nn(i);
1725
+ let o = await on(i);
1665
1726
  n.value[r] = o, a && e.onAssetError?.({
1666
1727
  item: a,
1667
1728
  occurrenceKey: r,
@@ -1679,7 +1740,7 @@ function cn(e) {
1679
1740
  } catch {}
1680
1741
  }
1681
1742
  i.currentTime = 0, i.duration = 0, i.paused = !0, i.ready = !1, i.errorKind = "generic";
1682
- let o = await nn(n);
1743
+ let o = await on(n);
1683
1744
  i.errorKind = o, a && e.onAssetError?.({
1684
1745
  item: a,
1685
1746
  occurrenceKey: t,
@@ -1699,13 +1760,13 @@ function cn(e) {
1699
1760
  if (!t || !n || !(e.target instanceof HTMLInputElement)) return;
1700
1761
  let r = Number.parseFloat(e.target.value);
1701
1762
  if (!Number.isFinite(r)) return;
1702
- let i = ln(r, 0, m.value || 0);
1763
+ let i = fn(r, 0, m.value || 0);
1703
1764
  ne(n, i, t), t.currentTime = i;
1704
1765
  }
1705
1766
  function M(e) {
1706
1767
  let t = q(), n = d.value;
1707
1768
  if (!t || !n || !(e.target instanceof HTMLInputElement)) return;
1708
- let r = ln(Number.parseFloat(e.target.value), 0, 1);
1769
+ let r = fn(Number.parseFloat(e.target.value), 0, 1);
1709
1770
  t.volume = r, t.muted = r <= 0, r > 0 && (o.value[n] = r), W(n, t);
1710
1771
  }
1711
1772
  function N() {
@@ -1726,10 +1787,10 @@ function cn(e) {
1726
1787
  }
1727
1788
  function z(e) {
1728
1789
  let t = R(e);
1729
- return t ? en(t) : null;
1790
+ return t ? rn(t) : null;
1730
1791
  }
1731
1792
  function B(e) {
1732
- return tn(R(e));
1793
+ return an(R(e));
1733
1794
  }
1734
1795
  function ee(e) {
1735
1796
  return `${e}:${a.value[e] ?? 0}`;
@@ -1756,17 +1817,17 @@ function cn(e) {
1756
1817
  for (let [e, t] of c.entries()) V(t, e);
1757
1818
  }
1758
1819
  function U(e) {
1759
- return r.value[e] || (r.value[e] = Yt()), r.value[e];
1820
+ return r.value[e] || (r.value[e] = Qt()), r.value[e];
1760
1821
  }
1761
1822
  function W(e, t, n) {
1762
- Zt(U(e), t, n), !t.muted && t.volume > 0 && (o.value[e] = t.volume);
1823
+ en(U(e), t, n), !t.muted && t.volume > 0 && (o.value[e] = t.volume);
1763
1824
  }
1764
1825
  function ne(e, t, n) {
1765
1826
  let r = U(e);
1766
1827
  r.currentTime = t, r.duration = Number.isFinite(n.duration) ? n.duration : r.duration, r.muted = n.muted, r.paused = n.paused, r.volume = Number.isFinite(n.volume) ? n.volume : r.volume;
1767
1828
  }
1768
1829
  function G(e) {
1769
- return ln(o.value[e] ?? 1, 0, 1);
1830
+ return fn(o.value[e] ?? 1, 0, 1);
1770
1831
  }
1771
1832
  function K(e) {
1772
1833
  return s.get(e) ?? c.get(e) ?? null;
@@ -1777,7 +1838,7 @@ function cn(e) {
1777
1838
  function re(e) {
1778
1839
  if (e) {
1779
1840
  if (e.paused) {
1780
- sn(e);
1841
+ un(e);
1781
1842
  return;
1782
1843
  }
1783
1844
  e.pause();
@@ -1831,10 +1892,10 @@ function cn(e) {
1831
1892
  syncMediaPlayback: C
1832
1893
  };
1833
1894
  }
1834
- function ln(e, t, n) {
1895
+ function fn(e, t, n) {
1835
1896
  return Math.min(Math.max(e, t), n);
1836
1897
  }
1837
- function un(e, t, n = 2) {
1898
+ function pn(e, t, n = 2) {
1838
1899
  return t <= 0 ? {
1839
1900
  start: 0,
1840
1901
  end: -1
@@ -1843,14 +1904,14 @@ function un(e, t, n = 2) {
1843
1904
  end: Math.min(t - 1, e + n)
1844
1905
  };
1845
1906
  }
1846
- function dn(e, t, n = 2) {
1847
- let r = un(t, e.length, n);
1907
+ function mn(e, t, n = 2) {
1908
+ let r = pn(t, e.length, n);
1848
1909
  return r.end < r.start ? [] : e.slice(r.start, r.end + 1).map((e, t) => ({
1849
1910
  item: e,
1850
1911
  index: r.start + t
1851
1912
  }));
1852
1913
  }
1853
- function fn(e, t, n, r, i) {
1914
+ function hn(e, t, n, r, i) {
1854
1915
  return {
1855
1916
  transform: `translate3d(0, ${(e - t) * n + r}px, 0)`,
1856
1917
  transition: i ? "none" : "transform 320ms cubic-bezier(0.22, 1, 0.36, 1)"
@@ -1858,12 +1919,12 @@ function fn(e, t, n, r, i) {
1858
1919
  }
1859
1920
  //#endregion
1860
1921
  //#region src/components/viewer-core/useViewer.ts
1861
- function pn(e, t, n = {}) {
1862
- let r = i(() => e.items), a = i(() => e.activeIndex ?? 0), o = i(() => e.errorMessage ?? null), s = i(() => e.loading ?? !1), c = i(() => e.hasNextPage ?? !1), l = i(() => e.loopFullscreenVideo ?? !0), u = i(() => e.paginationDetail ?? null), d = i(() => Gt({
1922
+ function gn(e, t, n = {}) {
1923
+ let r = i(() => e.items), a = i(() => e.activeIndex ?? 0), o = i(() => e.errorMessage ?? null), s = i(() => e.loading ?? !1), c = i(() => e.hasNextPage ?? !1), l = i(() => e.loopFullscreenVideo ?? !0), u = i(() => e.paginationDetail ?? null), d = i(() => Jt({
1863
1924
  itemCount: r.value.length,
1864
1925
  loading: s.value,
1865
1926
  phase: e.phase
1866
- })), f = i(() => !1), p = D(null), m = D(0), h = D(!1), g = D(1), _ = n.enabled ?? i(() => !0), v = null, y = 0, b = 0, x = 0, S = i(() => r.value.length === 0 ? 0 : P(a.value, 0, r.value.length - 1)), C = i(() => r.value[S.value] ?? null), w = i(() => C.value?.type === "audio" || C.value?.type === "video" ? C.value : null), T = cn({
1927
+ })), f = i(() => !1), p = D(null), m = D(0), h = D(!1), g = D(1), _ = n.enabled ?? i(() => !0), v = null, y = 0, b = 0, x = 0, S = i(() => r.value.length === 0 ? 0 : P(a.value, 0, r.value.length - 1)), C = i(() => r.value[S.value] ?? null), w = i(() => C.value?.type === "audio" || C.value?.type === "video" ? C.value : null), T = dn({
1867
1928
  items: r,
1868
1929
  activeItem: C,
1869
1930
  activeMediaItem: w,
@@ -1872,14 +1933,14 @@ function pn(e, t, n = {}) {
1872
1933
  loopFullscreenVideo: l,
1873
1934
  onAssetError: n.onAssetError,
1874
1935
  onAssetLoad: n.onAssetLoad
1875
- }), E = i(() => r.value.length > 0 && S.value === r.value.length - 1), O = i(() => Kt({
1936
+ }), E = i(() => r.value.length > 0 && S.value === r.value.length - 1), O = i(() => Yt({
1876
1937
  errorMessage: o.value,
1877
1938
  hasItems: r.value.length > 0,
1878
1939
  hasNextPage: c.value,
1879
1940
  phase: d.value,
1880
1941
  surface: "fullscreen"
1881
- })), k = i(() => O.value?.kind ?? null), A = i(() => O.value?.message ?? null), j = i(() => Math.min(96, g.value * .15 || 96)), M = i(() => un(S.value, r.value.length)), N = i(() => dn(r.value, S.value));
1882
- qt({
1942
+ })), k = i(() => O.value?.kind ?? null), A = i(() => O.value?.message ?? null), j = i(() => Math.min(96, g.value * .15 || 96)), M = i(() => pn(S.value, r.value.length)), N = i(() => mn(r.value, S.value));
1943
+ Xt({
1883
1944
  enabled: _,
1884
1945
  onDisable() {
1885
1946
  H(), T.resetMediaState();
@@ -1957,7 +2018,7 @@ function pn(e, t, n = {}) {
1957
2018
  return e.type === "audio";
1958
2019
  }
1959
2020
  function ie(e) {
1960
- return fn(e, S.value, g.value, m.value, h.value);
2021
+ return hn(e, S.value, g.value, m.value, h.value);
1961
2022
  }
1962
2023
  return {
1963
2024
  activeItem: C,
@@ -1972,7 +2033,7 @@ function pn(e, t, n = {}) {
1972
2033
  getAssetErrorKind: T.getAssetErrorKind,
1973
2034
  getAssetErrorLabel: T.getAssetErrorLabel,
1974
2035
  getAssetRenderKey: T.getAssetRenderKey,
1975
- formatPlaybackTime: Wt,
2036
+ formatPlaybackTime: qt,
1976
2037
  getImageSource: T.getImageSource,
1977
2038
  getSlideStyle: ie,
1978
2039
  hasNextPage: c,
@@ -2016,21 +2077,21 @@ function pn(e, t, n = {}) {
2016
2077
  }
2017
2078
  //#endregion
2018
2079
  //#region src/components/viewer-core/theme.ts
2019
- var mn = "bg-[linear-gradient(180deg,#0a0b10,#05060a)]", hn = "bg-[linear-gradient(180deg,#0b0c11,#06070b)]", gn = {
2080
+ var _n = "bg-[linear-gradient(180deg,#0a0b10,#05060a)]", vn = "bg-[linear-gradient(180deg,#0b0c11,#06070b)]", yn = {
2020
2081
  image: !0,
2021
2082
  video: !0,
2022
2083
  audio: !0,
2023
2084
  other: !0
2024
2085
  };
2025
- function _n(e) {
2026
- return gn[e], mn;
2086
+ function bn(e) {
2087
+ return yn[e], _n;
2027
2088
  }
2028
- function vn(e) {
2029
- return gn[e], hn;
2089
+ function xn(e) {
2090
+ return yn[e], vn;
2030
2091
  }
2031
2092
  //#endregion
2032
2093
  //#region src/components/viewer-core/dominantImageTone.ts
2033
- function yn(e) {
2094
+ function Sn(e) {
2034
2095
  if (e.naturalWidth <= 0 || e.naturalHeight <= 0) return null;
2035
2096
  let t = document.createElement("canvas"), n = t.getContext("2d", { willReadFrequently: !0 });
2036
2097
  if (!n) return null;
@@ -2045,20 +2106,20 @@ function yn(e) {
2045
2106
  r += d, i += s * d, a += c * d, o += l * d;
2046
2107
  }
2047
2108
  return r <= 0 ? null : {
2048
- r: bn(Math.round(i / r)),
2049
- g: bn(Math.round(a / r)),
2050
- b: bn(Math.round(o / r))
2109
+ r: Cn(Math.round(i / r)),
2110
+ g: Cn(Math.round(a / r)),
2111
+ b: Cn(Math.round(o / r))
2051
2112
  };
2052
2113
  } catch {
2053
2114
  return null;
2054
2115
  }
2055
2116
  }
2056
- function bn(e) {
2117
+ function Cn(e) {
2057
2118
  return Math.min(235, Math.max(26, e));
2058
2119
  }
2059
2120
  //#endregion
2060
2121
  //#region src/components/viewer-core/useFullscreenDominantTone.ts
2061
- function xn(e) {
2122
+ function wn(e) {
2062
2123
  let t = D({}), n = i(() => e.activeItem.value ? e.getItemKey(e.activeItem.value) : null), r = i(() => !e.showDominantImageTone.value || e.activeItem.value?.type !== "image" || !n.value || !e.isImageReady(n.value) ? null : t.value[n.value] ?? null), a = i(() => {
2063
2124
  if (!r.value) return;
2064
2125
  let { r: e, g: t, b: n } = r.value;
@@ -2073,7 +2134,7 @@ function xn(e) {
2073
2134
  });
2074
2135
  function s(n, r) {
2075
2136
  if (!e.showDominantImageTone.value) return;
2076
- let i = yn(r);
2137
+ let i = Sn(r);
2077
2138
  i && (t.value[n] = i);
2078
2139
  }
2079
2140
  return {
@@ -2084,7 +2145,7 @@ function xn(e) {
2084
2145
  }
2085
2146
  //#endregion
2086
2147
  //#region src/components/SurfaceEmptyState.vue?vue&type=script&setup=true&lang.ts
2087
- var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2148
+ var Tn = ["data-surface"], En = ["data-surface"], Dn = /* @__PURE__ */ d({
2088
2149
  inheritAttrs: !1,
2089
2150
  __name: "SurfaceEmptyState",
2090
2151
  props: {
@@ -2098,31 +2159,31 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2098
2159
  "data-testid": "vibe-empty-state-inline",
2099
2160
  "data-surface": e.surface,
2100
2161
  class: ["pointer-events-none absolute z-[4] text-center", e.surface === "grid" ? "inset-x-0 top-[clamp(6rem,22vh,11rem)] flex justify-center px-6" : "inset-0 grid place-items-center px-[clamp(2rem,4vw,3rem)] py-[clamp(2rem,4vw,3rem)]"]
2101
- }), [k(n.$slots, "default", {}, () => [c("p", { class: v(["m-0 text-[0.82rem] font-medium tracking-[0.08em]", e.surface === "grid" ? "text-[#f7f1ea]/58" : "text-[#f7f1ea]/64"]) }, j(e.message), 3)])], 16, Sn)) : (w(), s("div", g({ key: 1 }, N(t), { class: ["pointer-events-none absolute z-[4]", e.surface === "grid" ? "inset-x-0 bottom-0 flex justify-center px-6" : "bottom-[1.8rem] left-1/2 -translate-x-1/2 max-[720px]:bottom-[1.3rem]"] }), [k(n.$slots, "default", {}, () => [c("span", {
2162
+ }), [k(n.$slots, "default", {}, () => [c("p", { class: v(["m-0 text-[0.82rem] font-medium tracking-[0.08em]", e.surface === "grid" ? "text-[#f7f1ea]/58" : "text-[#f7f1ea]/64"]) }, j(e.message), 3)])], 16, Tn)) : (w(), s("div", g({ key: 1 }, N(t), { class: ["pointer-events-none absolute z-[4]", e.surface === "grid" ? "inset-x-0 bottom-0 flex justify-center px-6" : "bottom-[1.8rem] left-1/2 -translate-x-1/2 max-[720px]:bottom-[1.3rem]"] }), [k(n.$slots, "default", {}, () => [c("span", {
2102
2163
  "data-testid": "vibe-empty-state-badge",
2103
2164
  "data-surface": e.surface,
2104
2165
  class: v(["inline-flex items-center border border-white/14 backdrop-blur-[18px]", e.surface === "grid" ? "bg-black/55 px-4 py-3 text-[0.82rem] font-medium tracking-[0.08em] text-[#f7f1ea]/72" : "w-auto bg-black/40 px-5 py-3 text-[0.82rem] font-medium tracking-[0.08em] text-[#f7f1ea]/74 max-[720px]:w-[calc(100%-2.5rem)] max-[720px]:justify-center"])
2105
- }, j(e.message), 11, Cn)])], 16));
2166
+ }, j(e.message), 11, En)])], 16));
2106
2167
  }
2107
- }), Tn = { class: "relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]" }, En = {
2168
+ }), On = { class: "relative h-full min-h-0 overflow-hidden bg-[#05060a] text-[#f7f1ea]" }, kn = {
2108
2169
  key: 0,
2109
2170
  class: "relative h-full min-h-0"
2110
- }, Dn = [
2171
+ }, An = [
2111
2172
  "data-item-id",
2112
2173
  "data-occurrence-key",
2113
2174
  "data-index",
2114
2175
  "data-active",
2115
2176
  "aria-hidden"
2116
- ], On = {
2177
+ ], jn = {
2117
2178
  key: 0,
2118
2179
  "data-testid": "vibe-asset-spinner",
2119
2180
  class: "pointer-events-none absolute inset-0 z-[2] grid place-items-center"
2120
- }, kn = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)] backdrop-blur-[18px]" }, An = ["data-kind"], jn = { class: "grid justify-items-center gap-4 border border-white/14 bg-black/45 px-8 py-7 text-center backdrop-blur-[18px]" }, Mn = { class: "m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70" }, Nn = ["onClick"], Pn = [
2181
+ }, Mn = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)] backdrop-blur-[18px]" }, Nn = ["data-kind"], Pn = { class: "grid justify-items-center gap-4 border border-white/14 bg-black/45 px-8 py-7 text-center backdrop-blur-[18px]" }, Fn = { class: "m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70" }, In = ["onClick"], Ln = [
2121
2182
  "src",
2122
2183
  "alt",
2123
2184
  "onLoad",
2124
2185
  "onError"
2125
- ], Fn = [
2186
+ ], Rn = [
2126
2187
  "loop",
2127
2188
  "src",
2128
2189
  "preload",
@@ -2141,15 +2202,15 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2141
2202
  "onStalled",
2142
2203
  "onTimeupdate",
2143
2204
  "onWaiting"
2144
- ], In = { class: "relative grid aspect-square w-[clamp(320px,46vw,560px)] max-w-[calc(100vw-2.5rem)] place-items-center" }, Ln = [
2205
+ ], zn = { class: "relative grid aspect-square w-[clamp(320px,46vw,560px)] max-w-[calc(100vw-2.5rem)] place-items-center" }, Bn = [
2145
2206
  "aria-label",
2146
2207
  "disabled",
2147
2208
  "onClick"
2148
- ], Rn = { class: "relative z-[1] inline-flex min-h-[4.25rem] min-w-[4.25rem] items-center justify-center border border-white/18 bg-emerald-500/12 p-4 backdrop-blur-[20px]" }, zn = { class: "pointer-events-none absolute bottom-4 right-4 inline-flex h-10 w-10 items-center justify-center border border-white/14 bg-black/50 backdrop-blur-[18px]" }, Bn = {
2209
+ ], Vn = { class: "relative z-[1] inline-flex min-h-[4.25rem] min-w-[4.25rem] items-center justify-center border border-white/18 bg-emerald-500/12 p-4 backdrop-blur-[20px]" }, Hn = { class: "pointer-events-none absolute bottom-4 right-4 inline-flex h-10 w-10 items-center justify-center border border-white/14 bg-black/50 backdrop-blur-[18px]" }, Un = {
2149
2210
  key: 0,
2150
2211
  "data-testid": "vibe-asset-spinner",
2151
2212
  class: "pointer-events-none absolute inset-0 z-[3] grid place-items-center"
2152
- }, Vn = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)] backdrop-blur-[18px]" }, Hn = ["data-kind"], Un = { class: "m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70" }, Wn = ["onClick"], Gn = [
2213
+ }, Wn = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)] backdrop-blur-[18px]" }, Gn = ["data-kind"], Kn = { class: "m-0 text-[0.82rem] font-bold uppercase tracking-[0.28em] text-[#f7f1ea]/70" }, qn = ["onClick"], Jn = [
2153
2214
  "src",
2154
2215
  "preload",
2155
2216
  "onCanplay",
@@ -2165,26 +2226,26 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2165
2226
  "onStalled",
2166
2227
  "onTimeupdate",
2167
2228
  "onWaiting"
2168
- ], Kn = {
2229
+ ], Yn = {
2169
2230
  key: 2,
2170
2231
  class: "relative z-[1] grid w-full max-w-[1100px] justify-items-center gap-6 px-[clamp(2rem,4vw,3rem)] py-[clamp(2rem,4vw,3rem)] text-center"
2171
- }, qn = { class: "inline-flex min-h-[4.25rem] min-w-[4.25rem] items-center justify-center border border-white/18 bg-white/8 p-4 backdrop-blur-[20px]" }, Jn = {
2232
+ }, Xn = { class: "inline-flex min-h-[4.25rem] min-w-[4.25rem] items-center justify-center border border-white/18 bg-white/8 p-4 backdrop-blur-[20px]" }, Zn = {
2172
2233
  key: 0,
2173
2234
  "data-testid": "vibe-fullscreen-overlay",
2174
2235
  class: "pointer-events-none absolute inset-0 z-[6]"
2175
- }, Yn = { class: "h-full w-full" }, Xn = {
2236
+ }, Qn = { class: "h-full w-full" }, $n = {
2176
2237
  key: 1,
2177
2238
  "data-testid": "vibe-forward-fill-placeholder",
2178
2239
  class: "grid h-full min-h-0 place-items-center px-6 text-center"
2179
- }, Zn = { class: "grid justify-items-center gap-4 border border-white/14 bg-black/40 px-8 py-7 backdrop-blur-[18px]" }, Qn = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)]" }, $n = { class: "m-0 text-[0.78rem] font-bold uppercase tracking-[0.24em] text-[#f7f1ea]/72" }, er = {
2240
+ }, er = { class: "grid justify-items-center gap-4 border border-white/14 bg-black/40 px-8 py-7 backdrop-blur-[18px]" }, tr = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)]" }, nr = { class: "m-0 text-[0.78rem] font-bold uppercase tracking-[0.24em] text-[#f7f1ea]/72" }, rr = {
2180
2241
  key: 0,
2181
2242
  "data-testid": "vibe-fullscreen-aside",
2182
2243
  class: "h-full min-h-0 overflow-hidden border-l border-white/10 bg-black/45 backdrop-blur-[18px]"
2183
- }, tr = { class: "h-full min-h-0 overflow-y-auto overscroll-y-contain" }, nr = {
2244
+ }, ir = { class: "h-full min-h-0 overflow-y-auto overscroll-y-contain" }, ar = {
2184
2245
  key: 0,
2185
2246
  "data-testid": "vibe-fullscreen-aside",
2186
2247
  class: "absolute inset-y-0 right-0 z-[6] w-full max-w-[22rem] overflow-hidden border-l border-white/10 bg-black/82 backdrop-blur-[18px]"
2187
- }, rr = { class: "h-full min-h-0 overflow-y-auto overscroll-y-contain" }, ir = 1280, ar = 768, or = /* @__PURE__ */ d({
2248
+ }, or = { class: "h-full min-h-0 overflow-y-auto overscroll-y-contain" }, sr = 1280, cr = 768, lr = /* @__PURE__ */ d({
2188
2249
  __name: "FullscreenSurface",
2189
2250
  props: {
2190
2251
  active: {
@@ -2236,23 +2297,23 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2236
2297
  },
2237
2298
  emits: ["back-to-list", "update:activeIndex"],
2238
2299
  setup(e, { emit: n }) {
2239
- let d = e, f = F(), m = n, h = pn(d, (e, t) => {
2300
+ let d = e, f = F(), m = n, h = gn(d, (e, t) => {
2240
2301
  m("update:activeIndex", t);
2241
2302
  }, {
2242
2303
  enabled: M(d, "active"),
2243
2304
  onAssetError: d.reportAssetError ?? void 0,
2244
2305
  onAssetLoad: d.reportAssetLoad ?? void 0
2245
- }), _ = D(typeof window > "u" ? ir : window.innerWidth || ir), C = zt({
2306
+ }), _ = D(typeof window > "u" ? sr : window.innerWidth || sr), C = Ht({
2246
2307
  active: M(d, "active"),
2247
2308
  items: h.items,
2248
2309
  resolvedActiveIndex: h.resolvedActiveIndex,
2249
2310
  viewer: h
2250
- }), T = i(() => _n(h.activeItem.value?.type ?? "image")), { activeSlideToneStyle: E, activeStageToneStyle: P, updateFromImageElement: I } = xn({
2311
+ }), T = i(() => bn(h.activeItem.value?.type ?? "image")), { activeSlideToneStyle: E, activeStageToneStyle: P, updateFromImageElement: I } = wn({
2251
2312
  activeItem: h.activeItem,
2252
2313
  getItemKey: C.getItemKey,
2253
2314
  isImageReady: h.isImageReady,
2254
2315
  showDominantImageTone: M(d, "showDominantImageTone")
2255
- }), L = i(() => h.activeMediaItem.value && !h.activeAssetErrorKind.value ? "bottom-[5.8rem] max-[720px]:bottom-[7.4rem]" : "bottom-[1.8rem] max-[720px]:bottom-[1.3rem]"), R = i(() => !!h.activeMediaItem.value && !h.activeAssetErrorKind.value), B = i(() => _.value < ar ? "vertical" : "horizontal"), te = i(() => R.value ? "pb-[5.75rem] max-[720px]:pb-[7rem]" : ""), V = i(() => d.activeIndex >= d.items.length && (d.loading || d.hasNextPage)), H = i(() => d.hasNextPage ? "Loading more items" : h.statusMessage.value ?? "Loading more items"), U = i(() => {
2316
+ }), L = i(() => h.activeMediaItem.value && !h.activeAssetErrorKind.value ? "bottom-[5.8rem] max-[720px]:bottom-[7.4rem]" : "bottom-[1.8rem] max-[720px]:bottom-[1.3rem]"), R = i(() => !!h.activeMediaItem.value && !h.activeAssetErrorKind.value), B = i(() => _.value < cr ? "vertical" : "horizontal"), te = i(() => R.value ? "pb-[5.75rem] max-[720px]:pb-[7rem]" : ""), V = i(() => d.activeIndex >= d.items.length && (d.loading || d.hasNextPage)), H = i(() => d.hasNextPage ? "Loading more items" : h.statusMessage.value ?? "Loading more items"), U = i(() => {
2256
2317
  let e = h.activeItem.value;
2257
2318
  return e ? {
2258
2319
  hasNextPage: d.hasNextPage,
@@ -2269,7 +2330,7 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2269
2330
  }), K = i(() => !G.value || !f["fullscreen-status"] ? [] : f["fullscreen-status"](G.value)), q = i(() => ({
2270
2331
  gridTemplateColumns: Y.value ? "minmax(0, 1fr) 22rem" : "minmax(0, 1fr) 0rem",
2271
2332
  transition: "grid-template-columns 320ms cubic-bezier(0.22, 1, 0.36, 1)"
2272
- })), re = i(() => Bt(W.value)), J = i(() => Bt(ne.value)), Y = i(() => J.value && _.value >= ir), ie = i(() => J.value && !Y.value), ae = i(() => Bt(K.value)), { emptyStateProps: X, showBadgeEmptyState: ue, showCustomEmptyState: de, showInlineEmptyState: fe } = Ut({
2333
+ })), re = i(() => Ut(W.value)), J = i(() => Ut(ne.value)), Y = i(() => J.value && _.value >= sr), ie = i(() => J.value && !Y.value), ae = i(() => Ut(K.value)), { emptyStateProps: X, showBadgeEmptyState: ue, showCustomEmptyState: de, showInlineEmptyState: fe } = Kt({
2273
2334
  emptyStateMode: M(d, "emptyStateMode"),
2274
2335
  itemCount: i(() => d.items.length),
2275
2336
  loading: M(d, "loading"),
@@ -2282,7 +2343,7 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2282
2343
  window.removeEventListener("resize", Z);
2283
2344
  });
2284
2345
  function Z() {
2285
- _.value = window.innerWidth || ir;
2346
+ _.value = window.innerWidth || sr;
2286
2347
  }
2287
2348
  function pe(e, t, n) {
2288
2349
  C.settleBackgroundPreload(t), h.onImageLoad(t, n);
@@ -2322,7 +2383,7 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2322
2383
  let r = n.play();
2323
2384
  r && typeof r.catch == "function" && r.catch(() => {});
2324
2385
  }
2325
- return (e, n) => (w(), s("div", Tn, [
2386
+ return (e, n) => (w(), s("div", On, [
2326
2387
  c("div", {
2327
2388
  class: v(["absolute inset-0 transition-[background] duration-200", T.value]),
2328
2389
  style: b(N(P))
@@ -2339,7 +2400,7 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2339
2400
  onPointerup: n[3] ||= (...e) => N(h).onPointerUp && N(h).onPointerUp(...e),
2340
2401
  onPointercancel: n[4] ||= (...e) => N(h).onPointerCancel && N(h).onPointerCancel(...e),
2341
2402
  onWheel: n[5] ||= (...e) => N(h).onWheel && N(h).onWheel(...e)
2342
- }, [N(h).activeItem.value ? (w(), s("div", En, [
2403
+ }, [N(h).activeItem.value ? (w(), s("div", kn, [
2343
2404
  (w(!0), s(t, null, O(N(h).renderedItems.value, ({ item: r, index: i }) => (w(), s("article", {
2344
2405
  key: N(C).getItemKey(r),
2345
2406
  "data-testid": "vibe-slide",
@@ -2351,12 +2412,12 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2351
2412
  class: v(["absolute inset-0 flex h-full min-h-full items-center justify-center will-change-transform", i === N(h).resolvedActiveIndex.value ? "pointer-events-auto" : "pointer-events-none"]),
2352
2413
  style: b(N(h).getSlideStyle(i))
2353
2414
  }, [c("div", {
2354
- class: v(["absolute inset-0 opacity-85", N(vn)(r.type)]),
2415
+ class: v(["absolute inset-0 opacity-85", N(xn)(r.type)]),
2355
2416
  style: b(i === N(h).resolvedActiveIndex.value && r.type === "image" ? N(E) : void 0)
2356
2417
  }, null, 6), N(h).isVisual(r) ? (w(), s("div", {
2357
2418
  key: 0,
2358
2419
  class: v(["relative z-[1] flex h-full w-full items-center justify-center overflow-hidden", i === N(h).resolvedActiveIndex.value ? te.value : ""])
2359
- }, [N(C).isAssetLoading(i, r) ? (w(), s("div", On, [c("span", kn, [u(N(oe), {
2420
+ }, [N(C).isAssetLoading(i, r) ? (w(), s("div", jn, [c("span", Mn, [u(N(oe), {
2360
2421
  class: "h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78",
2361
2422
  "aria-hidden": "true"
2362
2423
  })])])) : o("", !0), N(C).isAssetErrored(i, r) ? (w(), s("div", {
@@ -2364,19 +2425,19 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2364
2425
  "data-testid": "vibe-asset-error",
2365
2426
  "data-kind": N(C).getAssetErrorKind(r),
2366
2427
  class: "grid h-full w-full place-items-center"
2367
- }, [c("div", jn, [
2428
+ }, [c("div", Pn, [
2368
2429
  u(N(le), {
2369
2430
  class: "h-7 w-7 stroke-[1.9] text-[#f7f1ea]/72",
2370
2431
  "aria-hidden": "true"
2371
2432
  }),
2372
- c("p", Mn, j(N(C).getAssetErrorLabel(r)), 1),
2433
+ c("p", Fn, j(N(C).getAssetErrorLabel(r)), 1),
2373
2434
  N(h).canRetryAsset(N(C).getItemKey(r)) ? (w(), s("button", {
2374
2435
  key: 0,
2375
2436
  type: "button",
2376
2437
  class: "inline-flex items-center justify-center border border-white/14 bg-black/35 px-4 py-2 text-[0.64rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/82 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/50",
2377
2438
  onClick: ee((e) => N(h).retryAsset(N(C).getItemKey(r)), ["stop"])
2378
- }, " Retry ", 8, Nn)) : o("", !0)
2379
- ])], 8, An)) : r.type === "image" ? (w(), s("img", {
2439
+ }, " Retry ", 8, In)) : o("", !0)
2440
+ ])], 8, Nn)) : r.type === "image" ? (w(), s("img", {
2380
2441
  key: N(h).getAssetRenderKey(N(C).getItemKey(r)),
2381
2442
  src: N(C).getFullscreenImageSource(i, r),
2382
2443
  alt: r.title ?? "",
@@ -2387,7 +2448,7 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2387
2448
  ref: (e) => he(N(C).getItemKey(r), e),
2388
2449
  onLoad: (e) => pe(e, N(C).getItemKey(r), r.url),
2389
2450
  onError: (e) => me(N(C).getItemKey(r), r.url)
2390
- }, null, 42, Pn)) : (w(), s("video", {
2451
+ }, null, 42, Ln)) : (w(), s("video", {
2391
2452
  key: N(h).getAssetRenderKey(N(C).getItemKey(r)),
2392
2453
  class: v(["block h-auto max-h-full w-auto max-w-full cursor-pointer object-contain shadow-[0_40px_120px_-60px_rgba(0,0,0,0.9)] transition-opacity duration-300", N(h).isMediaReady(N(C).getItemKey(r)) ? "opacity-100" : "opacity-0"]),
2393
2454
  playsinline: "",
@@ -2411,10 +2472,10 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2411
2472
  onStalled: (e) => Q(N(C).getItemKey(r), e),
2412
2473
  onTimeupdate: (e) => Q(N(C).getItemKey(r), e),
2413
2474
  onWaiting: (e) => Q(N(C).getItemKey(r), e)
2414
- }, null, 42, Fn))], 2)) : N(h).isAudio(r) ? (w(), s("div", {
2475
+ }, null, 42, Rn))], 2)) : N(h).isAudio(r) ? (w(), s("div", {
2415
2476
  key: 1,
2416
2477
  class: v(["relative z-[1] grid w-full max-w-[1100px] justify-items-center gap-6 px-[clamp(2rem,4vw,3rem)] py-[clamp(2rem,4vw,3rem)] text-center", i === N(h).resolvedActiveIndex.value ? te.value : ""])
2417
- }, [c("div", In, [
2478
+ }, [c("div", zn, [
2418
2479
  c("button", {
2419
2480
  type: "button",
2420
2481
  class: "relative grid h-full w-full place-items-center border border-white/12 bg-[linear-gradient(180deg,rgba(255,255,255,0.04),rgba(255,255,255,0.02)),radial-gradient(circle_at_center,rgba(16,185,129,0.14),transparent_58%)] text-[#f7f1ea] transition-[border-color,background] duration-200 hover:border-white/30 hover:bg-[linear-gradient(180deg,rgba(255,255,255,0.07),rgba(255,255,255,0.03)),radial-gradient(circle_at_center,rgba(16,185,129,0.18),transparent_58%)] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[#f7f1ea]",
@@ -2424,19 +2485,19 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2424
2485
  }, [
2425
2486
  n[6] ||= c("span", { class: "pointer-events-none absolute inset-0 border border-white/8 bg-[radial-gradient(circle,rgba(16,185,129,0.16),transparent_66%)]" }, null, -1),
2426
2487
  n[7] ||= c("span", { class: "pointer-events-none absolute h-[clamp(220px,30vw,360px)] w-[clamp(220px,30vw,360px)] border border-white/8 bg-[radial-gradient(circle,rgba(255,255,255,0.08),transparent_62%)]" }, null, -1),
2427
- c("span", Rn, [k(e.$slots, "item-icon", {
2428
- icon: N(Tt)(r.type),
2488
+ c("span", Vn, [k(e.$slots, "item-icon", {
2489
+ icon: N(Ot)(r.type),
2429
2490
  item: r
2430
- }, () => [(w(), a(A(N(Tt)(r.type)), {
2491
+ }, () => [(w(), a(A(N(Ot)(r.type)), {
2431
2492
  class: "h-6 w-6 stroke-[1.9]",
2432
2493
  "aria-hidden": "true"
2433
2494
  }))])]),
2434
- c("span", zn, [(w(), a(A(N(h).mediaStates.value[N(C).getItemKey(r)]?.paused ?? !0 ? N(ce) : N(se)), {
2495
+ c("span", Hn, [(w(), a(A(N(h).mediaStates.value[N(C).getItemKey(r)]?.paused ?? !0 ? N(ce) : N(se)), {
2435
2496
  class: "h-4 w-4 stroke-2",
2436
2497
  "aria-hidden": "true"
2437
2498
  }))])
2438
- ], 8, Ln),
2439
- N(C).isAssetLoading(i, r) ? (w(), s("div", Bn, [c("span", Vn, [u(N(oe), {
2499
+ ], 8, Bn),
2500
+ N(C).isAssetLoading(i, r) ? (w(), s("div", Un, [c("span", Wn, [u(N(oe), {
2440
2501
  class: "h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78",
2441
2502
  "aria-hidden": "true"
2442
2503
  })])])) : o("", !0),
@@ -2449,14 +2510,14 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2449
2510
  class: "h-7 w-7 stroke-[1.9] text-[#f7f1ea]/72",
2450
2511
  "aria-hidden": "true"
2451
2512
  }),
2452
- c("p", Un, j(N(C).getAssetErrorLabel(r)), 1),
2513
+ c("p", Kn, j(N(C).getAssetErrorLabel(r)), 1),
2453
2514
  N(h).canRetryAsset(N(C).getItemKey(r)) ? (w(), s("button", {
2454
2515
  key: 0,
2455
2516
  type: "button",
2456
2517
  class: "pointer-events-auto inline-flex items-center justify-center border border-white/14 bg-black/35 px-4 py-2 text-[0.64rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/82 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/50",
2457
2518
  onClick: ee((e) => N(h).retryAsset(N(C).getItemKey(r)), ["stop"])
2458
- }, " Retry ", 8, Wn)) : o("", !0)
2459
- ], 8, Hn)], 64)) : o("", !0)
2519
+ }, " Retry ", 8, qn)) : o("", !0)
2520
+ ], 8, Gn)], 64)) : o("", !0)
2460
2521
  ]), (w(), s("audio", {
2461
2522
  key: N(h).getAssetRenderKey(N(C).getItemKey(r)),
2462
2523
  src: N(C).getFullscreenMediaSource(i, r),
@@ -2477,15 +2538,15 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2477
2538
  onStalled: (e) => Q(N(C).getItemKey(r), e),
2478
2539
  onTimeupdate: (e) => Q(N(C).getItemKey(r), e),
2479
2540
  onWaiting: (e) => Q(N(C).getItemKey(r), e)
2480
- }, null, 40, Gn))], 2)) : (w(), s("div", Kn, [c("div", qn, [k(e.$slots, "item-icon", {
2481
- icon: N(Tt)(r.type),
2541
+ }, null, 40, Jn))], 2)) : (w(), s("div", Yn, [c("div", Xn, [k(e.$slots, "item-icon", {
2542
+ icon: N(Ot)(r.type),
2482
2543
  item: r
2483
- }, () => [(w(), a(A(N(Tt)(r.type)), {
2544
+ }, () => [(w(), a(A(N(Ot)(r.type)), {
2484
2545
  class: "h-6 w-6 stroke-[1.9]",
2485
2546
  "aria-hidden": "true"
2486
- }))])])]))], 14, Dn))), 128)),
2487
- U.value && f["fullscreen-overlay"] ? (w(), s("div", Jn, [c("div", Yn, [k(e.$slots, "fullscreen-overlay", y(p(U.value)))])])) : o("", !0),
2488
- N(h).activeItem.value ? (w(), a(St, {
2547
+ }))])])]))], 14, An))), 128)),
2548
+ U.value && f["fullscreen-overlay"] ? (w(), s("div", Zn, [c("div", Qn, [k(e.$slots, "fullscreen-overlay", y(p(U.value)))])])) : o("", !0),
2549
+ N(h).activeItem.value ? (w(), a(Tt, {
2489
2550
  key: 1,
2490
2551
  "current-index": N(h).resolvedActiveIndex.value,
2491
2552
  loading: d.loading,
@@ -2508,7 +2569,7 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2508
2569
  "title",
2509
2570
  "total"
2510
2571
  ])) : o("", !0),
2511
- R.value ? (w(), a(dt, {
2572
+ R.value ? (w(), a(mt, {
2512
2573
  key: 2,
2513
2574
  "current-time": N(h).activeMediaState.value.currentTime,
2514
2575
  "current-time-label": N(h).formatPlaybackTime(N(h).activeMediaState.value.currentTime),
@@ -2542,10 +2603,10 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2542
2603
  "data-testid": "vibe-fullscreen-status-badge",
2543
2604
  class: v(["inline-flex w-auto items-center border border-white/14 bg-black/40 px-5 py-3 text-[0.75rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/74 backdrop-blur-[18px] max-[720px]:w-[calc(100%-2.5rem)] max-[720px]:justify-center", G.value.kind === "end" ? "border-amber-300/35 text-amber-200" : G.value.kind === "failed" ? "border-rose-400/45 text-rose-100" : ""])
2544
2605
  }, j(G.value.message), 3))], 2)) : o("", !0)
2545
- ])) : V.value ? (w(), s("div", Xn, [c("div", Zn, [c("span", Qn, [u(N(oe), {
2606
+ ])) : V.value ? (w(), s("div", $n, [c("div", er, [c("span", tr, [u(N(oe), {
2546
2607
  class: "h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78",
2547
2608
  "aria-hidden": "true"
2548
- })]), c("p", $n, j(H.value), 1)])])) : N(fe) && N(X) ? (w(), a(wn, {
2609
+ })]), c("p", nr, j(H.value), 1)])])) : N(fe) && N(X) ? (w(), a(Dn, {
2549
2610
  key: 2,
2550
2611
  message: N(X).message,
2551
2612
  mode: N(X).mode,
@@ -2557,7 +2618,7 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2557
2618
  "message",
2558
2619
  "mode",
2559
2620
  "surface"
2560
- ])) : o("", !0), N(ue) && N(X) ? (w(), a(wn, {
2621
+ ])) : o("", !0), N(ue) && N(X) ? (w(), a(Dn, {
2561
2622
  key: 3,
2562
2623
  message: N(X).message,
2563
2624
  mode: N(X).mode,
@@ -2577,7 +2638,7 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2577
2638
  "leave-from-class": "translate-x-0 opacity-100",
2578
2639
  "leave-to-class": "translate-x-full opacity-0"
2579
2640
  }, {
2580
- default: z(() => [Y.value && U.value ? (w(), s("aside", er, [c("div", tr, [k(e.$slots, "fullscreen-aside", y(p(U.value)))])])) : o("", !0)]),
2641
+ default: z(() => [Y.value && U.value ? (w(), s("aside", rr, [c("div", ir, [k(e.$slots, "fullscreen-aside", y(p(U.value)))])])) : o("", !0)]),
2581
2642
  _: 3
2582
2643
  })], 4),
2583
2644
  u(r, {
@@ -2588,29 +2649,29 @@ var Sn = ["data-surface"], Cn = ["data-surface"], wn = /* @__PURE__ */ d({
2588
2649
  "leave-from-class": "translate-x-0 opacity-100",
2589
2650
  "leave-to-class": "translate-x-full opacity-0"
2590
2651
  }, {
2591
- default: z(() => [ie.value && U.value ? (w(), s("aside", nr, [c("div", rr, [k(e.$slots, "fullscreen-aside", y(p(U.value)))])])) : o("", !0)]),
2652
+ default: z(() => [ie.value && U.value ? (w(), s("aside", ar, [c("div", or, [k(e.$slots, "fullscreen-aside", y(p(U.value)))])])) : o("", !0)]),
2592
2653
  _: 3
2593
2654
  })
2594
2655
  ]));
2595
2656
  }
2596
- }), sr = 1, cr = .5;
2597
- function lr(e) {
2657
+ }), ur = 1, dr = .5;
2658
+ function fr(e) {
2598
2659
  if (e.type !== "image" && e.type !== "video") return {
2599
- width: sr,
2600
- height: sr,
2660
+ width: ur,
2661
+ height: ur,
2601
2662
  source: "fallback"
2602
2663
  };
2603
2664
  let t = e.preview?.width, n = e.preview?.height;
2604
- if (gr(t) && gr(n)) {
2605
- let r = _r(e, t, n);
2665
+ if (yr(t) && yr(n)) {
2666
+ let r = br(e, t, n);
2606
2667
  return {
2607
2668
  width: r.width,
2608
2669
  height: r.height,
2609
2670
  source: "preview"
2610
2671
  };
2611
2672
  }
2612
- if (gr(e.width) && gr(e.height)) {
2613
- let t = _r(e, e.width, e.height);
2673
+ if (yr(e.width) && yr(e.height)) {
2674
+ let t = br(e, e.width, e.height);
2614
2675
  return {
2615
2676
  width: t.width,
2616
2677
  height: t.height,
@@ -2618,31 +2679,31 @@ function lr(e) {
2618
2679
  };
2619
2680
  }
2620
2681
  return {
2621
- width: sr,
2622
- height: sr,
2682
+ width: ur,
2683
+ height: ur,
2623
2684
  source: "fallback"
2624
2685
  };
2625
2686
  }
2626
- function ur(e, t) {
2687
+ function pr(e, t) {
2627
2688
  return !e || e <= 0 || !t || t <= 0 ? 1 : Math.max(1, Math.floor(e / t));
2628
2689
  }
2629
- function dr(e, t, n, r = 0) {
2690
+ function mr(e, t, n, r = 0) {
2630
2691
  if (!e || e <= 0 || !t || t <= 0) return n;
2631
2692
  let i = typeof r == "number" && r > 0 ? r : 0, a = e - Math.max(0, t - 1) * i;
2632
2693
  return !a || a <= 0 ? n : a / t;
2633
2694
  }
2634
- function fr(e, t) {
2635
- let n = lr(e);
2695
+ function hr(e, t) {
2696
+ let n = fr(e);
2636
2697
  return n.height / n.width * t;
2637
2698
  }
2638
- function pr(e, t) {
2699
+ function gr(e, t) {
2639
2700
  let n = Array.from({ length: t.columnCount }, () => 0), r = Array(e.length), i = Array(e.length), a = /* @__PURE__ */ new Map(), o = /* @__PURE__ */ new Map(), s = 0;
2640
2701
  for (let c = 0; c < e.length; c += 1) {
2641
2702
  let l = e[c];
2642
2703
  o.set($(l), c);
2643
2704
  let u = 0;
2644
2705
  for (let e = 1; e < n.length; e += 1) n[e] < n[u] && (u = e);
2645
- let d = u * (t.columnWidth + t.gapX), f = n[u], p = fr(l, t.columnWidth);
2706
+ let d = u * (t.columnWidth + t.gapX), f = n[u], p = hr(l, t.columnWidth);
2646
2707
  r[c] = {
2647
2708
  x: d,
2648
2709
  y: f
@@ -2661,7 +2722,7 @@ function pr(e, t) {
2661
2722
  indexById: o
2662
2723
  };
2663
2724
  }
2664
- function mr(e) {
2725
+ function _r(e) {
2665
2726
  if (e.itemCount <= 0) return [];
2666
2727
  if (e.viewportHeight <= 0) return Array.from({ length: e.itemCount }, (e, t) => t);
2667
2728
  let t = Math.max(0, e.scrollTop - e.overscanPx), n = e.scrollTop + e.viewportHeight + e.overscanPx, r = Math.floor(t / e.bucketPx), i = Math.floor(n / e.bucketPx), a = /* @__PURE__ */ new Set();
@@ -2671,7 +2732,7 @@ function mr(e) {
2671
2732
  }
2672
2733
  return Array.from(a).sort((e, t) => e - t);
2673
2734
  }
2674
- function hr(e, t, n) {
2735
+ function vr(e, t, n) {
2675
2736
  let r = /* @__PURE__ */ new Map();
2676
2737
  for (let i of e) {
2677
2738
  let e = t.get($(i));
@@ -2681,11 +2742,11 @@ function hr(e, t, n) {
2681
2742
  }
2682
2743
  return r;
2683
2744
  }
2684
- function gr(e) {
2745
+ function yr(e) {
2685
2746
  return typeof e == "number" && Number.isFinite(e) && e > 0;
2686
2747
  }
2687
- function _r(e, t, n) {
2688
- return e.type !== "image" || n / t >= cr ? {
2748
+ function br(e, t, n) {
2749
+ return e.type !== "image" || n / t >= dr ? {
2689
2750
  width: t,
2690
2751
  height: n
2691
2752
  } : {
@@ -2695,21 +2756,21 @@ function _r(e, t, n) {
2695
2756
  }
2696
2757
  //#endregion
2697
2758
  //#region src/components/viewer-core/useMasonryMotion.ts
2698
- var vr = 300, yr = 600, br = 40, xr = 300, Sr = 400;
2699
- function Cr(e, t) {
2759
+ var xr = 300, Sr = 600, Cr = 40, wr = 300, Tr = 400;
2760
+ function Er(e, t) {
2700
2761
  return t === "top" ? [...e].reverse() : e;
2701
2762
  }
2702
- function wr(e) {
2703
- return e <= 0 ? yr : yr + Math.min((e - 1) * br, Sr);
2763
+ function Dr(e) {
2764
+ return e <= 0 ? Sr : Sr + Math.min((e - 1) * Cr, Tr);
2704
2765
  }
2705
- function Tr() {
2706
- return xr;
2766
+ function Or() {
2767
+ return wr;
2707
2768
  }
2708
- function Er(e) {
2769
+ function kr(e) {
2709
2770
  let t = e.itemHeight > 0 ? e.itemHeight : e.columnWidth;
2710
2771
  return e.direction === "top" ? e.scrollTop - t : e.scrollTop + e.viewportHeight + t;
2711
2772
  }
2712
- function Dr(e) {
2773
+ function Ar(e) {
2713
2774
  let t = D(/* @__PURE__ */ new Set()), n = D(/* @__PURE__ */ new Set()), r = D(/* @__PURE__ */ new Map()), a = D(/* @__PURE__ */ new Map()), o = D(/* @__PURE__ */ new Map()), s = D(/* @__PURE__ */ new Set()), c = D(/* @__PURE__ */ new Map()), l = D(/* @__PURE__ */ new Map()), u = D(/* @__PURE__ */ new Set()), d = /* @__PURE__ */ new Set(), f = /* @__PURE__ */ new Set(), p = i(() => Array.from(o.value.values()));
2714
2775
  L(e.visibleIndices, (i) => {
2715
2776
  if (!i.length) return;
@@ -2719,20 +2780,20 @@ function Dr(e) {
2719
2780
  !r || !t.value.has(r) || d.has(r) || (d.add(r), o.push(r));
2720
2781
  }
2721
2782
  if (!o.length) return;
2722
- let s = Cr(o, a.value.get(o[0]) ?? "bottom"), c = new Map(r.value);
2723
- for (let e = 0; e < s.length; e += 1) c.set(s[e], Math.min(e * br, Sr));
2724
- r.value = c, Or(() => {
2783
+ let s = Er(o, a.value.get(o[0]) ?? "bottom"), c = new Map(r.value);
2784
+ for (let e = 0; e < s.length; e += 1) c.set(s[e], Math.min(e * Cr, Tr));
2785
+ r.value = c, jr(() => {
2725
2786
  let e = new Set(n.value);
2726
2787
  for (let t of o) e.add(t);
2727
2788
  n.value = e;
2728
- }), kr(() => {
2789
+ }), Mr(() => {
2729
2790
  let e = new Set(t.value);
2730
2791
  for (let t of o) e.delete(t);
2731
2792
  t.value = e, S(() => {
2732
2793
  let e = new Set(n.value), t = new Map(r.value), i = new Map(a.value);
2733
2794
  for (let n of o) e.delete(n), t.delete(n), i.delete(n), d.delete(n);
2734
2795
  n.value = e, r.value = t, a.value = i;
2735
- }, wr(o.length));
2796
+ }, Dr(o.length));
2736
2797
  });
2737
2798
  }, { flush: "post" }), L(() => e.items.value.map((e) => $(e)), (e) => {
2738
2799
  if (!e.length || !o.value.size) return;
@@ -2759,7 +2820,7 @@ function Dr(e) {
2759
2820
  let e = $(t.item);
2760
2821
  p.push(e), i.set(e, t), c.delete(e), l.delete(e), u.delete(e), f.delete(e), d.delete(e);
2761
2822
  }
2762
- o.value = i, t.value = c, n.value = l, r.value = u, a.value = f, Or(() => {
2823
+ o.value = i, t.value = c, n.value = l, r.value = u, a.value = f, jr(() => {
2763
2824
  let e = new Set(s.value);
2764
2825
  for (let t of p) e.add(t);
2765
2826
  s.value = e;
@@ -2767,9 +2828,9 @@ function Dr(e) {
2767
2828
  let e = new Map(o.value), t = new Set(s.value);
2768
2829
  for (let n of p) e.delete(n), t.delete(n);
2769
2830
  o.value = e, s.value = t;
2770
- }, xr);
2831
+ }, wr);
2771
2832
  }
2772
- function g(t, n, r = vr) {
2833
+ function g(t, n, r = xr) {
2773
2834
  if (!t.size) return;
2774
2835
  let i = /* @__PURE__ */ new Map(), a = [];
2775
2836
  for (let [r, o] of t.entries()) {
@@ -2788,8 +2849,8 @@ function Dr(e) {
2788
2849
  c.value = i, u.value = /* @__PURE__ */ new Set();
2789
2850
  let o = new Map(l.value);
2790
2851
  for (let e of a) o.set(e, r);
2791
- l.value = o, Or(() => {
2792
- u.value = new Set(a), Or(() => {
2852
+ l.value = o, jr(() => {
2853
+ u.value = new Set(a), jr(() => {
2793
2854
  c.value = /* @__PURE__ */ new Map();
2794
2855
  });
2795
2856
  }), S(() => {
@@ -2800,8 +2861,8 @@ function Dr(e) {
2800
2861
  }, r);
2801
2862
  }
2802
2863
  function _(e) {
2803
- if (n.value.has(e)) return `transform ${yr}ms ease-out`;
2804
- if (u.value.has(e)) return `transform ${l.value.get(e) ?? vr}ms ease-out`;
2864
+ if (n.value.has(e)) return `transform ${Sr}ms ease-out`;
2865
+ if (u.value.has(e)) return `transform ${l.value.get(e) ?? xr}ms ease-out`;
2805
2866
  }
2806
2867
  function v(e) {
2807
2868
  if (!n.value.has(e)) return;
@@ -2818,7 +2879,7 @@ function Dr(e) {
2818
2879
  } : {
2819
2880
  dx: 0,
2820
2881
  dy: 0
2821
- }, u = s ? a.value.get(s) ?? "bottom" : "bottom", d = s && t.value.has(s) ? Er({
2882
+ }, u = s ? a.value.get(s) ?? "bottom" : "bottom", d = s && t.value.has(s) ? kr({
2822
2883
  columnWidth: e.columnWidth.value,
2823
2884
  direction: u,
2824
2885
  itemHeight: o,
@@ -2832,14 +2893,14 @@ function Dr(e) {
2832
2893
  if (!r) return {
2833
2894
  opacity: "0",
2834
2895
  transform: "translate3d(0, 0, 0) scale(0.96)",
2835
- transition: `opacity ${xr}ms ease-out, transform ${xr}ms ease-out`
2896
+ transition: `opacity ${wr}ms ease-out, transform ${wr}ms ease-out`
2836
2897
  };
2837
2898
  let i = s.value.has(n);
2838
2899
  return {
2839
2900
  height: `${r.height}px`,
2840
2901
  opacity: i ? "0" : "1",
2841
2902
  transform: `translate3d(${r.position.x}px, ${r.position.y}px, 0) scale(${i ? "0.96" : "1"})`,
2842
- transition: `opacity ${xr}ms ease-out, transform ${xr}ms ease-out`,
2903
+ transition: `opacity ${wr}ms ease-out, transform ${wr}ms ease-out`,
2843
2904
  width: `${e.columnWidth.value}px`
2844
2905
  };
2845
2906
  }
@@ -2860,28 +2921,28 @@ function Dr(e) {
2860
2921
  playFlipMoveAnimation: g
2861
2922
  };
2862
2923
  }
2863
- function Or(e) {
2924
+ function jr(e) {
2864
2925
  if (typeof requestAnimationFrame == "function") {
2865
2926
  requestAnimationFrame(() => e());
2866
2927
  return;
2867
2928
  }
2868
2929
  setTimeout(e, 0);
2869
2930
  }
2870
- function kr(e) {
2871
- Or(() => Or(e));
2931
+ function Mr(e) {
2932
+ jr(() => jr(e));
2872
2933
  }
2873
2934
  //#endregion
2874
2935
  //#region src/components/viewer-core/masonryViewport.ts
2875
- function Ar(e, t) {
2936
+ function Nr(e, t) {
2876
2937
  return e?.clientHeight || Math.round(e?.getBoundingClientRect().height ?? 0) || t || window.innerHeight || 1;
2877
2938
  }
2878
- function jr(e, t, n) {
2939
+ function Pr(e, t, n) {
2879
2940
  return e?.clientWidth || Math.round(e?.getBoundingClientRect().width ?? 0) || t || window.innerWidth || n;
2880
2941
  }
2881
- function Mr(e, t, n, r) {
2942
+ function Fr(e, t, n, r) {
2882
2943
  return (e?.scrollHeight ?? r) - (t + n);
2883
2944
  }
2884
- function Nr(e, t) {
2945
+ function Ir(e, t) {
2885
2946
  return {
2886
2947
  height: `${e}px`,
2887
2948
  transform: `translate3d(0, ${t}px, 0)`
@@ -2889,8 +2950,8 @@ function Nr(e, t) {
2889
2950
  }
2890
2951
  //#endregion
2891
2952
  //#region src/components/viewer-core/useEdgeBoundary.ts
2892
- var Pr = 250, Fr = 1e3;
2893
- function Ir(e) {
2953
+ var Lr = 250, Rr = 1e3;
2954
+ function zr(e) {
2894
2955
  let t = D(!1), n = D(!1), r = D(0), i = D(0), a = D(!1), o = D(!1), s = 0, c = null;
2895
2956
  x(() => {
2896
2957
  y();
@@ -2906,7 +2967,7 @@ function Ir(e) {
2906
2967
  function u(t) {
2907
2968
  if (!b(t) || !e.isAtBoundary()) return;
2908
2969
  let n = Date.now();
2909
- n < s || (s = n + Pr, m());
2970
+ n < s || (s = n + Lr, m());
2910
2971
  }
2911
2972
  function d() {
2912
2973
  if (!g()) return;
@@ -2940,7 +3001,7 @@ function Ir(e) {
2940
3001
  return e.hasPage.value && t.value && r.value > i.value && !e.interactionLocked?.value && !e.loading.value && !a.value && typeof e.requestPage.value == "function";
2941
3002
  }
2942
3003
  function _() {
2943
- o.value = !1, v(Fr);
3004
+ o.value = !1, v(Rr);
2944
3005
  }
2945
3006
  function v(e) {
2946
3007
  y(), a.value = !0, c = setTimeout(() => {
@@ -2963,42 +3024,42 @@ function Ir(e) {
2963
3024
  }
2964
3025
  //#endregion
2965
3026
  //#region src/components/viewer-core/useMasonryList.ts
2966
- var Lr = 600, Rr = 24, zr = 16, Br = 300, Vr = 200, Hr = 200, Ur = Rr + zr, Wr = 200, Gr = 300, Kr = 24, qr = 48, Jr = 500, Yr = 1e3;
2967
- function Xr(e) {
2968
- let t = D(null), n = D(0), r = D(typeof window > "u" ? 0 : window.innerHeight || 0), a = D(typeof window > "u" ? 0 : window.innerWidth || Br), o = D([]), s = D([]), c = D(/* @__PURE__ */ new Map()), l = D(0), u = D(/* @__PURE__ */ new Map()), d = D(null), f = D(null), p = D(!1), m = i(() => Math.max(Br, a.value - Rr * 2)), h = i(() => ur(m.value, Br)), g = i(() => dr(m.value, h.value, Br, zr)), v = i(() => Zr(e.activeIndex.value, 0, Math.max(0, e.items.value.length - 1))), y = i(() => mr({
3027
+ var Br = 600, Vr = 24, Hr = 16, Ur = 300, Wr = 200, Gr = 200, Kr = Vr + Hr, qr = 200, Jr = 300, Yr = 24, Xr = 48, Zr = 500, Qr = 1e3;
3028
+ function $r(e) {
3029
+ let t = D(null), n = D(0), r = D(typeof window > "u" ? 0 : window.innerHeight || 0), a = D(typeof window > "u" ? 0 : window.innerWidth || Ur), o = D([]), s = D([]), c = D(/* @__PURE__ */ new Map()), l = D(0), u = D(/* @__PURE__ */ new Map()), d = D(null), f = D(null), p = D(!1), m = i(() => Math.max(Ur, a.value - Vr * 2)), h = i(() => pr(m.value, Ur)), g = i(() => mr(m.value, h.value, Ur, Hr)), v = i(() => ei(e.activeIndex.value, 0, Math.max(0, e.items.value.length - 1))), y = i(() => _r({
2969
3030
  itemCount: e.items.value.length,
2970
3031
  viewportHeight: r.value,
2971
3032
  scrollTop: n.value,
2972
- overscanPx: Vr,
2973
- bucketPx: Lr,
3033
+ overscanPx: Wr,
3034
+ bucketPx: Br,
2974
3035
  buckets: c.value
2975
3036
  })), b = i(() => y.value.map((t) => ({
2976
3037
  item: e.items.value[t],
2977
3038
  index: t
2978
3039
  }))), C = i(() => {
2979
- let e = l.value + Rr * 2, t = d.value ?? 0;
2980
- return Math.max(e, t, r.value) + Wr;
2981
- }), w = i(() => e.hasNextPage.value || e.allowExhaustedNextPageRefresh.value), T = i(() => $r({
3040
+ let e = l.value + Vr * 2, t = d.value ?? 0;
3041
+ return Math.max(e, t, r.value) + qr;
3042
+ }), w = i(() => e.hasNextPage.value || e.allowExhaustedNextPageRefresh.value), T = i(() => ni({
2982
3043
  active: e.active.value,
2983
3044
  maxScrollTop: se(),
2984
3045
  progressDistancePx: n.value,
2985
- thresholdPx: Hr,
3046
+ thresholdPx: Gr,
2986
3047
  triggerEnabled: w.value
2987
- })), E = i(() => e.items.value.length > 0 ? `${v.value + 1} / ${e.items.value.length}` : "0 / 0"), O = i(() => Qr({
3048
+ })), E = i(() => e.items.value.length > 0 ? `${v.value + 1} / ${e.items.value.length}` : "0 / 0"), O = i(() => ti({
2988
3049
  active: e.active.value,
2989
3050
  maxScrollTop: se(),
2990
3051
  progressDistancePx: n.value,
2991
- thresholdPx: Ur,
3052
+ thresholdPx: Kr,
2992
3053
  triggerEnabled: e.hasPreviousPage.value
2993
- })), k = i(() => Math.max(0, r.value - Kr * 2)), A = i(() => C.value > r.value + 1 && k.value > 0), j = i(() => {
3054
+ })), k = i(() => Math.max(0, r.value - Yr * 2)), A = i(() => C.value > r.value + 1 && k.value > 0), j = i(() => {
2994
3055
  if (!A.value) return 0;
2995
3056
  let e = r.value / C.value * k.value;
2996
- return Math.min(k.value, Math.max(qr, e));
3057
+ return Math.min(k.value, Math.max(Xr, e));
2997
3058
  }), M = i(() => {
2998
- if (!A.value) return Kr;
3059
+ if (!A.value) return Yr;
2999
3060
  let e = Math.max(0, C.value - r.value);
3000
- return Kr + Math.max(0, k.value - j.value) * (e > 0 ? Zr(n.value / e, 0, 1) : 0);
3001
- }), N = Dr({
3061
+ return Yr + Math.max(0, k.value - j.value) * (e > 0 ? ei(n.value / e, 0, 1) : 0);
3062
+ }), N = Ar({
3002
3063
  items: e.items,
3003
3064
  visibleIndices: y,
3004
3065
  positions: o,
@@ -3007,27 +3068,27 @@ function Xr(e) {
3007
3068
  columnWidth: g,
3008
3069
  scrollTop: n,
3009
3070
  viewportHeight: r
3010
- }), P = Ir({
3071
+ }), P = zr({
3011
3072
  direction: "top",
3012
3073
  getAnimationLockMs(e) {
3013
- return Math.max(Jr, wr(e)) + Yr;
3074
+ return Math.max(Zr, Dr(e)) + Qr;
3014
3075
  },
3015
3076
  hasPage: e.hasPreviousPage,
3016
3077
  interactionLocked: p,
3017
3078
  isAtBoundary() {
3018
- return n.value <= Ur;
3079
+ return n.value <= Kr;
3019
3080
  },
3020
3081
  loading: e.loading,
3021
3082
  requestPage: e.requestPreviousPage
3022
- }), F = Ir({
3083
+ }), F = zr({
3023
3084
  direction: "bottom",
3024
3085
  getAnimationLockMs(e) {
3025
- return wr(e) + Yr;
3086
+ return Dr(e) + Qr;
3026
3087
  },
3027
3088
  hasPage: w,
3028
3089
  interactionLocked: p,
3029
3090
  isAtBoundary() {
3030
- return oe() <= Hr;
3091
+ return oe() <= Gr;
3031
3092
  },
3032
3093
  loading: e.loading,
3033
3094
  requestPage: e.requestNextPage
@@ -3037,7 +3098,7 @@ function Xr(e) {
3037
3098
  h,
3038
3099
  g
3039
3100
  ], async ([t], [r = []]) => {
3040
- let i = t.map((e) => $(e)), a = r ?? [], s = a.map((e) => $(e)), c = hr(a, u.value, o.value), l = X(a), d = new Set(s), f = new Set(i), p = t.filter((e) => !d.has($(e))), m = a.flatMap((e) => {
3101
+ let i = t.map((e) => $(e)), a = r ?? [], s = a.map((e) => $(e)), c = vr(a, u.value, o.value), l = X(a), d = new Set(s), f = new Set(i), p = t.filter((e) => !d.has($(e))), m = a.flatMap((e) => {
3041
3102
  let t = $(e);
3042
3103
  if (f.has(t)) return [];
3043
3104
  let n = c.get(t), r = l.get(t);
@@ -3046,8 +3107,8 @@ function Xr(e) {
3046
3107
  item: e,
3047
3108
  position: n
3048
3109
  }];
3049
- }), h = i.length > s.length && s.length > 0 && i[0] !== s[0], g = t.length === 0 && a.length > 0 && m.length > 0 && n.value > 0, y = m.length > 0 && n.value > Rr + zr, b = h && n.value > Rr + zr ? t[v.value] : null, x = b ? $(b) : null;
3050
- y && K(Tr() + Yr), g && G(), te(), m.length > 0 && N.markLeave(m), p.length > 0 && (N.markEnter(p, h ? "top" : "bottom"), h ? P.onItemsMutated(p.length) : F.onItemsMutated(p.length)), N.playFlipMoveAnimation(c, new Set(p.map((e) => $(e))), h ? Jr : void 0), x ? (await _(), ne(x, c)) : e.active.value && s.length > 0 && re();
3110
+ }), h = i.length > s.length && s.length > 0 && i[0] !== s[0], g = t.length === 0 && a.length > 0 && m.length > 0 && n.value > 0, y = m.length > 0 && n.value > Vr + Hr, b = h && n.value > Vr + Hr ? t[v.value] : null, x = b ? $(b) : null;
3111
+ y && K(Or() + Qr), g && G(), te(), m.length > 0 && N.markLeave(m), p.length > 0 && (N.markEnter(p, h ? "top" : "bottom"), h ? P.onItemsMutated(p.length) : F.onItemsMutated(p.length)), N.playFlipMoveAnimation(c, new Set(p.map((e) => $(e))), h ? Zr : void 0), x ? (await _(), ne(x, c)) : e.active.value && s.length > 0 && re();
3051
3112
  }, { immediate: !0 }), L([
3052
3113
  () => e.pendingAppendItems.value.map((e) => $(e)),
3053
3114
  h,
@@ -3064,7 +3125,7 @@ function Xr(e) {
3064
3125
  }
3065
3126
  if (i !== !1 || f.value == null) return;
3066
3127
  await _();
3067
- let o = Math.max(0, C.value - r.value), s = Zr(f.value, 0, o);
3128
+ let o = Math.max(0, C.value - r.value), s = ei(f.value, 0, o);
3068
3129
  a.scrollTop = s, n.value = s, P.syncBoundary(), F.syncBoundary();
3069
3130
  }), L(() => e.loading.value, async (t) => {
3070
3131
  !t && !e.pendingAppendItems.value.length && !z && !ee && (d.value = null), P.onLoadingChange(t), F.onLoadingChange(t), await _();
@@ -3076,16 +3137,16 @@ function Xr(e) {
3076
3137
  I?.disconnect(), I = null, window.removeEventListener("resize", Y), de(), fe(), R &&= (cancelAnimationFrame(R), 0);
3077
3138
  });
3078
3139
  function te() {
3079
- let t = pr(e.items.value, {
3140
+ let t = gr(e.items.value, {
3080
3141
  columnCount: h.value,
3081
3142
  columnWidth: g.value,
3082
- gapX: zr,
3083
- gapY: zr,
3084
- bucketPx: Lr
3143
+ gapX: Hr,
3144
+ gapY: Hr,
3145
+ bucketPx: Br
3085
3146
  });
3086
3147
  o.value = t.positions.map((e) => ({
3087
- x: e.x + Rr,
3088
- y: e.y + Rr
3148
+ x: e.x + Vr,
3149
+ y: e.y + Vr
3089
3150
  })), s.value = t.heights, c.value = t.buckets, l.value = t.contentHeight, u.value = t.indexById;
3090
3151
  }
3091
3152
  function V() {
@@ -3110,7 +3171,7 @@ function Xr(e) {
3110
3171
  let a = t.value, c = o.value[e], l = s.value[e];
3111
3172
  if (!a || !c || !l) return;
3112
3173
  let u = a.scrollTop, d = Math.max(0, C.value - r.value);
3113
- i === "center" ? u = c.y - (r.value - l) / 2 : c.y < a.scrollTop ? u = c.y - Rr : c.y + l > a.scrollTop + r.value && (u = c.y + l - r.value + Rr), a.scrollTop = Zr(u, 0, d), n.value = a.scrollTop, q();
3174
+ i === "center" ? u = c.y - (r.value - l) / 2 : c.y < a.scrollTop ? u = c.y - Vr : c.y + l > a.scrollTop + r.value && (u = c.y + l - r.value + Vr), a.scrollTop = ei(u, 0, d), n.value = a.scrollTop, q();
3114
3175
  }
3115
3176
  function ne(e, r) {
3116
3177
  let i = t.value, a = r.get(e), s = u.value.get(e), c = s == null ? null : o.value[s];
@@ -3143,7 +3204,7 @@ function Xr(e) {
3143
3204
  e.setActiveIndex(i);
3144
3205
  }
3145
3206
  function re() {
3146
- let t = n.value <= Ur, r = oe() <= Hr;
3207
+ let t = n.value <= Kr, r = oe() <= Gr;
3147
3208
  return t ? (e.setActiveIndex(0), !0) : r ? (e.setActiveIndex(Math.max(0, e.items.value.length - 1)), !0) : !1;
3148
3209
  }
3149
3210
  function J() {
@@ -3153,29 +3214,29 @@ function Xr(e) {
3153
3214
  r.value = ie(), a.value = ae();
3154
3215
  }
3155
3216
  function ie() {
3156
- return Ar(t.value, r.value);
3217
+ return Nr(t.value, r.value);
3157
3218
  }
3158
3219
  function ae() {
3159
- return jr(t.value, a.value, Br);
3220
+ return Pr(t.value, a.value, Ur);
3160
3221
  }
3161
3222
  function oe() {
3162
- return Mr(t.value, n.value, r.value, C.value);
3223
+ return Fr(t.value, n.value, r.value, C.value);
3163
3224
  }
3164
3225
  function se() {
3165
3226
  let e = Math.max(t.value?.scrollHeight ?? 0, C.value);
3166
3227
  return Math.max(0, e - r.value);
3167
3228
  }
3168
3229
  function ce() {
3169
- return Nr(j.value, M.value);
3230
+ return Ir(j.value, M.value);
3170
3231
  }
3171
3232
  function le(e) {
3172
- return e.length ? pr(e, {
3233
+ return e.length ? gr(e, {
3173
3234
  columnCount: h.value,
3174
3235
  columnWidth: g.value,
3175
- gapX: zr,
3176
- gapY: zr,
3177
- bucketPx: Lr
3178
- }).contentHeight + Rr * 2 : 0;
3236
+ gapX: Hr,
3237
+ gapY: Hr,
3238
+ bucketPx: Br
3239
+ }).contentHeight + Vr * 2 : 0;
3179
3240
  }
3180
3241
  function X(e) {
3181
3242
  let t = /* @__PURE__ */ new Map();
@@ -3197,7 +3258,7 @@ function Xr(e) {
3197
3258
  } finally {
3198
3259
  d.value = null, ee = !1;
3199
3260
  }
3200
- }, Gr));
3261
+ }, Jr));
3201
3262
  }
3202
3263
  function de() {
3203
3264
  z &&= (clearTimeout(z), null);
@@ -3224,27 +3285,27 @@ function Xr(e) {
3224
3285
  scrollViewportRef: t
3225
3286
  };
3226
3287
  }
3227
- function Zr(e, t, n) {
3288
+ function ei(e, t, n) {
3228
3289
  return Math.min(Math.max(e, t), n);
3229
3290
  }
3230
- function Qr(e) {
3291
+ function ti(e) {
3231
3292
  if (!e.active || !e.triggerEnabled) return 0;
3232
3293
  let t = Math.max(0, e.maxScrollTop - e.thresholdPx);
3233
- return t <= 0 ? 1 : Zr(1 - (e.progressDistancePx - e.thresholdPx) / t, 0, 1);
3294
+ return t <= 0 ? 1 : ei(1 - (e.progressDistancePx - e.thresholdPx) / t, 0, 1);
3234
3295
  }
3235
- function $r(e) {
3296
+ function ni(e) {
3236
3297
  if (!e.active || !e.triggerEnabled) return 0;
3237
3298
  let t = Math.max(0, e.maxScrollTop - e.thresholdPx);
3238
- return t <= 0 ? 1 : Zr(e.progressDistancePx / t, 0, 1);
3299
+ return t <= 0 ? 1 : ei(e.progressDistancePx / t, 0, 1);
3239
3300
  }
3240
3301
  //#endregion
3241
3302
  //#region src/components/viewer-core/listCardAsset.ts
3242
- function ei(e) {
3303
+ function ri(e) {
3243
3304
  if (e) try {
3244
3305
  e.removeAttribute("src"), e.src = "";
3245
3306
  } catch {}
3246
3307
  }
3247
- function ti(e) {
3308
+ function ii(e) {
3248
3309
  if (e) {
3249
3310
  try {
3250
3311
  e.currentTime = 0;
@@ -3255,12 +3316,12 @@ function ti(e) {
3255
3316
  } catch {}
3256
3317
  }
3257
3318
  }
3258
- function ni(e, t) {
3319
+ function ai(e, t) {
3259
3320
  if (t) return e.bottom > t.top && e.top < t.bottom;
3260
3321
  let n = window.innerHeight || document.documentElement.clientHeight || 0;
3261
3322
  return e.bottom > 0 && e.top < n;
3262
3323
  }
3263
- function ri(e) {
3324
+ function oi(e) {
3264
3325
  if (!e) return null;
3265
3326
  try {
3266
3327
  return new URL(e, window.location.href).href;
@@ -3270,9 +3331,9 @@ function ri(e) {
3270
3331
  }
3271
3332
  //#endregion
3272
3333
  //#region src/components/viewer-core/listPreview.ts
3273
- var ii = /\.(avif|gif|jpe?g|png|svg|webp)(\?|#|$)/i, ai = /\.(m4v|mov|mp4|mpeg|ogg|ogv|webm)(\?|#|$)/i, oi = /^(?:(?:https?:)?\/\/[^/]+)?\/api\/files\/[^/?#]+\/(?:preview|downloaded)(?:\?|#|$)/i;
3274
- function si(e) {
3275
- let t = ci(e), n = t?.url, r = lr(e), i = e.title?.trim() || Et(e.type);
3334
+ var si = /\.(avif|gif|jpe?g|png|svg|webp)(\?|#|$)/i, ci = /\.(m4v|mov|mp4|mpeg|ogg|ogv|webm)(\?|#|$)/i, li = /^(?:(?:https?:)?\/\/[^/]+)?\/api\/files\/[^/?#]+\/(?:preview|downloaded)(?:\?|#|$)/i;
3335
+ function ui(e) {
3336
+ let t = di(e), n = t?.url, r = fr(e), i = e.title?.trim() || kt(e.type);
3276
3337
  return t?.mediaType === "video" && typeof n == "string" ? {
3277
3338
  kind: "video",
3278
3339
  url: n,
@@ -3291,13 +3352,13 @@ function si(e) {
3291
3352
  width: r.width,
3292
3353
  height: r.height,
3293
3354
  label: i
3294
- } : typeof n == "string" && ui(e, n) ? {
3355
+ } : typeof n == "string" && pi(e, n) ? {
3295
3356
  kind: "video",
3296
3357
  url: n,
3297
3358
  width: r.width,
3298
3359
  height: r.height,
3299
3360
  label: i
3300
- } : typeof n == "string" && li(e, n) ? {
3361
+ } : typeof n == "string" && fi(e, n) ? {
3301
3362
  kind: "image",
3302
3363
  url: n,
3303
3364
  width: r.width,
@@ -3311,26 +3372,26 @@ function si(e) {
3311
3372
  label: i
3312
3373
  };
3313
3374
  }
3314
- function ci(e) {
3375
+ function di(e) {
3315
3376
  return e.preview?.url ? e.preview : typeof e.url != "string" || e.url.trim() === "" ? null : { url: e.url };
3316
3377
  }
3317
- function li(e, t) {
3318
- return e.type !== "image" || typeof t != "string" ? !1 : ii.test(t) || di(t);
3378
+ function fi(e, t) {
3379
+ return e.type !== "image" || typeof t != "string" ? !1 : si.test(t) || mi(t);
3319
3380
  }
3320
- function ui(e, t) {
3321
- return e.type !== "video" || typeof t != "string" ? !1 : ai.test(t) || fi(t);
3381
+ function pi(e, t) {
3382
+ return e.type !== "video" || typeof t != "string" ? !1 : ci.test(t) || hi(t);
3322
3383
  }
3323
- function di(e) {
3384
+ function mi(e) {
3324
3385
  return /^(https?:\/\/|\/\/|\/(?!\/)|\.{1,2}\/|blob:|data:)/i.test(e);
3325
3386
  }
3326
- function fi(e) {
3327
- return oi.test(e) || /^blob:/i.test(e) || /^data:video\//i.test(e);
3387
+ function hi(e) {
3388
+ return li.test(e) || /^blob:/i.test(e) || /^data:video\//i.test(e);
3328
3389
  }
3329
3390
  //#endregion
3330
3391
  //#region src/components/viewer-core/useListCardHealthCheck.ts
3331
- function pi(e) {
3392
+ function gi(e) {
3332
3393
  let t = D(null), n = i(() => {
3333
- let t = typeof e.item.value.healthCheck?.url == "string" ? ri(e.item.value.healthCheck.url) : null;
3394
+ let t = typeof e.item.value.healthCheck?.url == "string" ? oi(e.item.value.healthCheck.url) : null;
3334
3395
  return !t || t === e.attachedAssetUrl.value ? null : t;
3335
3396
  }), r = null, a = 0, o = /* @__PURE__ */ new Map();
3336
3397
  L(n, (e, n) => {
@@ -3362,7 +3423,7 @@ function pi(e) {
3362
3423
  r.refresh();
3363
3424
  return;
3364
3425
  }
3365
- r = kt.request({
3426
+ r = Mt.request({
3366
3427
  assetType: "probe",
3367
3428
  getPriority: e.getPriority,
3368
3429
  onGrant() {
@@ -3372,7 +3433,7 @@ function pi(e) {
3372
3433
  return;
3373
3434
  }
3374
3435
  let i = ++a;
3375
- rn(r).then((s) => {
3436
+ sn(r).then((s) => {
3376
3437
  if (!(i !== a || n.value !== r)) {
3377
3438
  if (o.set(r, s ?? null), !s) {
3378
3439
  t.value = null;
@@ -3408,14 +3469,14 @@ function pi(e) {
3408
3469
  }
3409
3470
  //#endregion
3410
3471
  //#region src/components/ListCard.vue?vue&type=script&setup=true&lang.ts
3411
- var mi = ["aria-label"], hi = {
3472
+ var _i = ["aria-label"], vi = {
3412
3473
  key: 0,
3413
3474
  "data-testid": "vibe-list-card-spinner",
3414
3475
  class: "pointer-events-none absolute inset-0 z-[4] grid place-items-center bg-black/18"
3415
- }, gi = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)] backdrop-blur-[18px]" }, _i = ["src", "alt"], vi = ["src"], yi = ["data-kind"], bi = { class: "grid justify-items-center gap-3 px-4 text-center" }, xi = { class: "text-[0.68rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/72" }, Si = {
3476
+ }, yi = { class: "inline-flex h-12 w-12 items-center justify-center rounded-full bg-black/45 shadow-[0_18px_40px_-18px_rgba(0,0,0,0.85)] backdrop-blur-[18px]" }, bi = ["src", "alt"], xi = ["src"], Si = ["data-kind"], Ci = { class: "grid justify-items-center gap-3 px-4 text-center" }, wi = { class: "text-[0.68rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/72" }, Ti = {
3416
3477
  key: 4,
3417
3478
  class: "grid h-full w-full place-items-center bg-[radial-gradient(circle_at_center,rgba(255,255,255,0.08),transparent_65%),linear-gradient(180deg,rgba(255,255,255,0.04),rgba(255,255,255,0.02))]"
3418
- }, Ci = { class: "inline-flex h-14 w-14 items-center justify-center border border-white/16 bg-black/20" }, wi = { class: "pointer-events-none absolute inset-0 z-[3]" }, Ti = /* @__PURE__ */ d({
3479
+ }, Ei = { class: "inline-flex h-14 w-14 items-center justify-center border border-white/16 bg-black/20" }, Di = { class: "pointer-events-none absolute inset-0 z-[3]" }, Oi = /* @__PURE__ */ d({
3419
3480
  __name: "ListCard",
3420
3481
  props: {
3421
3482
  active: {
@@ -3439,7 +3500,7 @@ var mi = ["aria-label"], hi = {
3439
3500
  },
3440
3501
  emits: ["open"],
3441
3502
  setup(e, { emit: t }) {
3442
- let n = e, r = t, l = i(() => si(n.item)), d = D(!1), f = D(!1), p = D(!1), m = D(l.value.kind === "fallback"), h = D(!1), g = D(null), _ = D(null), y = D(null), b = D(null), C = D(null), T = D(l.value.kind === "fallback"), E = i(() => T.value ? n.surfaceActive ? d.value ? l.value.url : null : l.value.url : null), O = i(() => n.surfaceActive && d.value && (l.value.kind === "image" || l.value.kind === "video") && !!l.value.url), M = i(() => l.value.kind === "image" && !!E.value), P = i(() => l.value.kind === "video" && !!E.value), F = pi({
3503
+ let n = e, r = t, l = i(() => ui(n.item)), d = D(!1), f = D(!1), p = D(!1), m = D(l.value.kind === "fallback"), h = D(!1), g = D(null), _ = D(null), y = D(null), b = D(null), C = D(null), T = D(l.value.kind === "fallback"), E = i(() => T.value ? n.surfaceActive ? d.value ? l.value.url : null : l.value.url : null), O = i(() => n.surfaceActive && d.value && (l.value.kind === "image" || l.value.kind === "video") && !!l.value.url), M = i(() => l.value.kind === "image" && !!E.value), P = i(() => l.value.kind === "video" && !!E.value), F = gi({
3443
3504
  attachedAssetUrl: E,
3444
3505
  getPriority: X,
3445
3506
  isInView: d,
@@ -3448,7 +3509,7 @@ var mi = ["aria-label"], hi = {
3448
3509
  loadErrorKind: g,
3449
3510
  reportAssetError: n.reportAssetError,
3450
3511
  surfaceActive: i(() => n.surfaceActive)
3451
- }), I = i(() => F.errorKind.value ?? g.value), R = i(() => !!I.value), z = i(() => tn(I.value)), B = i(() => O.value && !g.value && (!T.value || !m.value)), te = null, V = null, H = /* @__PURE__ */ new Set();
3512
+ }), I = i(() => F.errorKind.value ?? g.value), R = i(() => !!I.value), z = i(() => an(I.value)), B = i(() => O.value && !g.value && (!T.value || !m.value)), te = null, V = null, H = /* @__PURE__ */ new Set();
3452
3513
  L([E, () => l.value.kind], () => {
3453
3514
  let e = l.value.kind === "fallback";
3454
3515
  m.value = e, h.value = !1, g.value = null, e && (T.value = !0);
@@ -3489,7 +3550,7 @@ var mi = ["aria-label"], hi = {
3489
3550
  if (!ue(_.value)) return;
3490
3551
  let e = E.value ?? n.item.url;
3491
3552
  m.value = !1, g.value = "generic";
3492
- let t = await nn(e);
3553
+ let t = await on(e);
3493
3554
  g.value = t, n.reportAssetError?.({
3494
3555
  item: n.item,
3495
3556
  occurrenceKey: $(n.item),
@@ -3521,7 +3582,7 @@ var mi = ["aria-label"], hi = {
3521
3582
  V?.refresh();
3522
3583
  return;
3523
3584
  }
3524
- V = kt.request({
3585
+ V = Mt.request({
3525
3586
  assetType: l.value.kind,
3526
3587
  getPriority: X,
3527
3588
  onGrant() {
@@ -3538,7 +3599,7 @@ var mi = ["aria-label"], hi = {
3538
3599
  return;
3539
3600
  }
3540
3601
  if (E.value && d.value && m.value) {
3541
- e.muted = !0, e.loop = !0, e.playsInline = !0, sn(e);
3602
+ e.muted = !0, e.loop = !0, e.playsInline = !0, un(e);
3542
3603
  return;
3543
3604
  }
3544
3605
  try {
@@ -3559,7 +3620,7 @@ var mi = ["aria-label"], hi = {
3559
3620
  d.value = !0;
3560
3621
  return;
3561
3622
  }
3562
- d.value = ni(e?.boundingClientRect ?? t.getBoundingClientRect(), e?.rootBounds ?? b.value?.getBoundingClientRect() ?? null);
3623
+ d.value = ai(e?.boundingClientRect ?? t.getBoundingClientRect(), e?.rootBounds ?? b.value?.getBoundingClientRect() ?? null);
3563
3624
  }
3564
3625
  function ie(e) {
3565
3626
  if (!e) return;
@@ -3579,10 +3640,10 @@ var mi = ["aria-label"], hi = {
3579
3640
  }), g.value = null, m.value = !1, T.value = !1, J(), K();
3580
3641
  }
3581
3642
  function se() {
3582
- ei(_.value);
3643
+ ri(_.value);
3583
3644
  }
3584
3645
  function ce() {
3585
- ti(C.value);
3646
+ ii(C.value);
3586
3647
  }
3587
3648
  function X() {
3588
3649
  let e = y.value;
@@ -3596,8 +3657,8 @@ var mi = ["aria-label"], hi = {
3596
3657
  return Math.abs((t.top + t.bottom) / 2 - n);
3597
3658
  }
3598
3659
  function ue(e) {
3599
- let t = ri(E.value);
3600
- return !e || !t ? !1 : ri("currentSrc" in e && e.currentSrc || e.getAttribute("src")) === t;
3660
+ let t = oi(E.value);
3661
+ return !e || !t ? !1 : oi("currentSrc" in e && e.currentSrc || e.getAttribute("src")) === t;
3601
3662
  }
3602
3663
  function de() {
3603
3664
  r("open");
@@ -3625,8 +3686,8 @@ var mi = ["aria-label"], hi = {
3625
3686
  class: "absolute inset-0 z-[1] block h-full w-full cursor-pointer text-left focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-[#f7f1ea]",
3626
3687
  "aria-label": n.item.title || `Open item ${n.index + 1}`,
3627
3688
  onClick: de
3628
- }, null, 8, mi),
3629
- B.value ? (w(), s("div", hi, [c("span", gi, [u(N(oe), {
3689
+ }, null, 8, _i),
3690
+ B.value ? (w(), s("div", vi, [c("span", yi, [u(N(oe), {
3630
3691
  class: "h-5 w-5 animate-spin stroke-[1.9] text-[#f7f1ea]/78",
3631
3692
  "aria-hidden": "true"
3632
3693
  })])])) : o("", !0),
@@ -3640,7 +3701,7 @@ var mi = ["aria-label"], hi = {
3640
3701
  class: v(["block h-full w-full object-cover transition-opacity duration-300", m.value ? "pointer-events-none opacity-100" : "pointer-events-none opacity-0"]),
3641
3702
  onLoad: U,
3642
3703
  onError: W
3643
- }, null, 42, _i)) : P.value && E.value && !R.value ? (w(), s("video", {
3704
+ }, null, 42, bi)) : P.value && E.value && !R.value ? (w(), s("video", {
3644
3705
  key: 2,
3645
3706
  ref_key: "videoRef",
3646
3707
  ref: C,
@@ -3656,31 +3717,31 @@ var mi = ["aria-label"], hi = {
3656
3717
  onPlaying: ne,
3657
3718
  onStalled: G,
3658
3719
  onWaiting: G
3659
- }, null, 42, vi)) : R.value ? (w(), s("div", {
3720
+ }, null, 42, xi)) : R.value ? (w(), s("div", {
3660
3721
  key: 3,
3661
3722
  "data-testid": "vibe-list-card-error",
3662
3723
  "data-kind": I.value,
3663
3724
  class: "pointer-events-none relative z-[2] grid h-full w-full place-items-center bg-[radial-gradient(circle_at_center,rgba(239,68,68,0.12),transparent_65%),linear-gradient(180deg,rgba(255,255,255,0.04),rgba(255,255,255,0.02))]"
3664
- }, [c("div", bi, [
3725
+ }, [c("div", Ci, [
3665
3726
  u(N(le), {
3666
3727
  class: "h-6 w-6 stroke-[1.8] text-[#f7f1ea]/78",
3667
3728
  "aria-hidden": "true"
3668
3729
  }),
3669
- c("span", xi, j(N(en)(I.value)), 1),
3730
+ c("span", wi, j(N(rn)(I.value)), 1),
3670
3731
  z.value ? (w(), s("button", {
3671
3732
  key: 0,
3672
3733
  type: "button",
3673
3734
  class: "pointer-events-auto inline-flex items-center justify-center border border-white/14 bg-black/35 px-3 py-2 text-[0.62rem] font-bold uppercase tracking-[0.22em] text-[#f7f1ea]/82 backdrop-blur-[18px] transition hover:border-white/28 hover:bg-black/50",
3674
3735
  onClick: ee(ae, ["stop"])
3675
3736
  }, " Retry ")) : o("", !0)
3676
- ])], 8, yi)) : (w(), s("div", Si, [c("div", Ci, [k(e.$slots, "item-icon", {
3677
- icon: N(Tt)(n.item.type),
3737
+ ])], 8, Si)) : (w(), s("div", Ti, [c("div", Ei, [k(e.$slots, "item-icon", {
3738
+ icon: N(Ot)(n.item.type),
3678
3739
  item: n.item
3679
- }, () => [(w(), a(A(N(Tt)(n.item.type)), {
3740
+ }, () => [(w(), a(A(N(Ot)(n.item.type)), {
3680
3741
  class: "h-6 w-6 stroke-[1.8] text-[#f7f1ea]/78",
3681
3742
  "aria-hidden": "true"
3682
3743
  }))])])])),
3683
- c("div", wi, [k(e.$slots, "grid-item-overlay", {
3744
+ c("div", Di, [k(e.$slots, "grid-item-overlay", {
3684
3745
  active: n.active,
3685
3746
  focused: f.value,
3686
3747
  hovered: p.value,
@@ -3690,24 +3751,24 @@ var mi = ["aria-label"], hi = {
3690
3751
  })])
3691
3752
  ], 34));
3692
3753
  }
3693
- }), Ei = { class: "relative h-full min-h-0 bg-[radial-gradient(circle_at_top_center,rgba(255,255,255,0.04),transparent_28%),linear-gradient(180deg,#06070b,#05060a)]" }, Di = { class: "pointer-events-none absolute inset-x-0 top-0 z-[2] flex justify-end p-6" }, Oi = {
3754
+ }), ki = { class: "relative h-full min-h-0 bg-[radial-gradient(circle_at_top_center,rgba(255,255,255,0.04),transparent_28%),linear-gradient(180deg,#06070b,#05060a)]" }, Ai = { class: "pointer-events-none absolute inset-x-0 top-0 z-[2] flex justify-end p-6" }, ji = {
3694
3755
  "data-testid": "vibe-pagination",
3695
3756
  class: "inline-flex shrink-0 items-center gap-2 whitespace-nowrap border border-white/14 bg-black/40 px-3 py-2 text-[0.63rem] font-bold uppercase tracking-[0.12em] text-[#f7f1ea]/72 backdrop-blur-[18px] min-[721px]:gap-3 min-[721px]:px-4 min-[721px]:py-3 min-[721px]:text-[0.74rem] min-[721px]:tracking-[0.2em]"
3696
- }, ki = { class: "whitespace-nowrap" }, Ai = {
3757
+ }, Mi = { class: "whitespace-nowrap" }, Ni = {
3697
3758
  key: 0,
3698
3759
  class: "whitespace-nowrap border-l border-white/12 pl-2 text-[#f7f1ea]/56 min-[721px]:pl-3"
3699
- }, ji = [
3760
+ }, Pi = [
3700
3761
  "data-active",
3701
3762
  "data-index",
3702
3763
  "data-item-id",
3703
3764
  "data-occurrence-key"
3704
- ], Mi = ["data-item-id"], Ni = {
3765
+ ], Fi = ["data-item-id"], Ii = {
3705
3766
  key: 0,
3706
3767
  class: "pointer-events-none absolute inset-y-0 right-0 z-[3] hidden w-8 min-[1024px]:block"
3707
- }, Pi = {
3768
+ }, Li = {
3708
3769
  key: 1,
3709
3770
  class: "pointer-events-none absolute inset-x-0 bottom-0 z-[2] px-5 pb-5 sm:px-6"
3710
- }, Fi = { class: "mx-auto flex w-full justify-center" }, Ii = /* @__PURE__ */ d({
3771
+ }, Ri = { class: "mx-auto flex w-full justify-center" }, zi = /* @__PURE__ */ d({
3711
3772
  __name: "ListSurface",
3712
3773
  props: {
3713
3774
  active: {
@@ -3768,7 +3829,7 @@ var mi = ["aria-label"], hi = {
3768
3829
  "update:activeIndex"
3769
3830
  ],
3770
3831
  setup(e, { emit: n }) {
3771
- let r = e, d = F(), f = n, p = Xr({
3832
+ let r = e, d = F(), f = n, p = $r({
3772
3833
  active: M(r, "active"),
3773
3834
  allowExhaustedNextPageRefresh: M(r, "allowExhaustedNextPageRefresh"),
3774
3835
  items: M(r, "items"),
@@ -3784,11 +3845,11 @@ var mi = ["aria-label"], hi = {
3784
3845
  setActiveIndex(e) {
3785
3846
  f("update:activeIndex", e);
3786
3847
  }
3787
- }), m = i(() => Gt({
3848
+ }), m = i(() => Jt({
3788
3849
  itemCount: r.items.length,
3789
3850
  loading: r.loading,
3790
3851
  phase: r.phase
3791
- })), h = i(() => Kt({
3852
+ })), h = i(() => Yt({
3792
3853
  errorMessage: r.errorMessage,
3793
3854
  hasItems: r.items.length > 0,
3794
3855
  hasNextPage: r.hasNextPage,
@@ -3801,7 +3862,7 @@ var mi = ["aria-label"], hi = {
3801
3862
  message: h.value.message,
3802
3863
  paginationDetail: r.paginationDetail,
3803
3864
  total: r.items.length
3804
- }), x = i(() => !_.value || !d["grid-status"] ? [] : d["grid-status"](_.value)), S = i(() => Bt(x.value)), C = i(() => r.items.length + p.leavingItems.value.length), { emptyStateProps: T, showBadgeEmptyState: E, showCustomEmptyState: D, showInlineEmptyState: A } = Ut({
3865
+ }), x = i(() => !_.value || !d["grid-status"] ? [] : d["grid-status"](_.value)), S = i(() => Ut(x.value)), C = i(() => r.items.length + p.leavingItems.value.length), { emptyStateProps: T, showBadgeEmptyState: E, showCustomEmptyState: D, showInlineEmptyState: A } = Kt({
3805
3866
  emptyStateMode: M(r, "emptyStateMode"),
3806
3867
  itemCount: C,
3807
3868
  loading: M(r, "loading"),
@@ -3813,8 +3874,8 @@ var mi = ["aria-label"], hi = {
3813
3874
  nextBoundaryLoadProgress: e,
3814
3875
  previousBoundaryLoadProgress: t
3815
3876
  });
3816
- }, { immediate: !0 }), (e, n) => (w(), s("div", Ei, [
3817
- c("div", Di, [c("span", Oi, [c("span", ki, j(N(p).paginationLabel.value), 1), r.paginationDetail ? (w(), s("span", Ai, j(r.paginationDetail), 1)) : o("", !0)])]),
3877
+ }, { immediate: !0 }), (e, n) => (w(), s("div", ki, [
3878
+ c("div", Ai, [c("span", ji, [c("span", Mi, j(N(p).paginationLabel.value), 1), r.paginationDetail ? (w(), s("span", Ni, j(r.paginationDetail), 1)) : o("", !0)])]),
3818
3879
  c("div", {
3819
3880
  ref: N(p).scrollViewportRef,
3820
3881
  "data-testid": "vibe-list-scroll",
@@ -3835,7 +3896,7 @@ var mi = ["aria-label"], hi = {
3835
3896
  "data-occurrence-key": N($)(t),
3836
3897
  class: "absolute will-change-transform",
3837
3898
  style: b(N(p).getCardStyle(n))
3838
- }, [u(Ti, {
3899
+ }, [u(Oi, {
3839
3900
  active: n === N(p).resolvedActiveIndex.value,
3840
3901
  index: n,
3841
3902
  item: t,
@@ -3859,14 +3920,14 @@ var mi = ["aria-label"], hi = {
3859
3920
  "report-asset-load",
3860
3921
  "surface-active",
3861
3922
  "onOpen"
3862
- ])], 12, ji))), 128)),
3923
+ ])], 12, Pi))), 128)),
3863
3924
  (w(!0), s(t, null, O(N(p).leavingItems.value, (t) => (w(), s("article", {
3864
3925
  key: `leaving-${N($)(t.item)}`,
3865
3926
  "data-testid": "vibe-list-card-leaving",
3866
3927
  "data-item-id": t.item.id,
3867
3928
  class: "pointer-events-none absolute z-[2] will-change-[opacity,transform]",
3868
3929
  style: b(N(p).getLeavingCardStyle(t.item))
3869
- }, [u(Ti, {
3930
+ }, [u(Oi, {
3870
3931
  active: !1,
3871
3932
  index: -1,
3872
3933
  item: t.item,
@@ -3881,8 +3942,8 @@ var mi = ["aria-label"], hi = {
3881
3942
  "item",
3882
3943
  "report-asset-error",
3883
3944
  "report-asset-load"
3884
- ])], 12, Mi))), 128)),
3885
- N(A) && N(T) ? (w(), a(wn, {
3945
+ ])], 12, Fi))), 128)),
3946
+ N(A) && N(T) ? (w(), a(Dn, {
3886
3947
  key: 0,
3887
3948
  message: N(T).message,
3888
3949
  mode: N(T).mode,
@@ -3896,12 +3957,12 @@ var mi = ["aria-label"], hi = {
3896
3957
  "surface"
3897
3958
  ])) : o("", !0)
3898
3959
  ], 4)], 544),
3899
- N(p).showScrollbar.value ? (w(), s("div", Ni, [n[2] ||= c("div", { class: "absolute bottom-6 right-3 top-6 w-px bg-white/8" }, null, -1), c("div", {
3960
+ N(p).showScrollbar.value ? (w(), s("div", Ii, [n[2] ||= c("div", { class: "absolute bottom-6 right-3 top-6 w-px bg-white/8" }, null, -1), c("div", {
3900
3961
  "data-testid": "vibe-list-scrollbar-thumb",
3901
3962
  class: v(["absolute right-[0.625rem] w-1 bg-white/34 transition-[height,transform,background-color,opacity] duration-300 ease-out", r.loading ? "bg-white/52" : "bg-white/34"]),
3902
3963
  style: b(N(p).getScrollbarThumbStyle())
3903
3964
  }, null, 6)])) : o("", !0),
3904
- d["grid-footer"] ? (w(), s("div", Pi, [c("div", Fi, [k(e.$slots, "grid-footer")])])) : o("", !0),
3965
+ d["grid-footer"] ? (w(), s("div", Li, [c("div", Ri, [k(e.$slots, "grid-footer")])])) : o("", !0),
3905
3966
  _.value ? (w(), s("div", {
3906
3967
  key: 2,
3907
3968
  class: v(["pointer-events-none absolute inset-x-0 bottom-0 z-[3] flex justify-center px-6", d["grid-footer"] ? "pb-24" : "pb-6"])
@@ -3910,7 +3971,7 @@ var mi = ["aria-label"], hi = {
3910
3971
  "data-testid": "vibe-grid-status-badge",
3911
3972
  class: v(["inline-flex items-center border border-white/14 bg-black/55 px-4 py-3 text-[0.7rem] font-bold uppercase tracking-[0.18em] text-[#f7f1ea]/72 backdrop-blur-[18px]", _.value.kind === "end" ? "border-amber-300/35 text-amber-200" : _.value.kind === "failed" ? "border-rose-400/45 text-rose-100" : ""])
3912
3973
  }, j(_.value.message), 3))], 2)) : o("", !0),
3913
- N(E) && N(T) ? (w(), a(wn, {
3974
+ N(E) && N(T) ? (w(), a(Dn, {
3914
3975
  key: 3,
3915
3976
  class: v(["z-[3]", d["grid-footer"] ? "pb-24" : "pb-6"]),
3916
3977
  message: N(T).message,
@@ -3927,13 +3988,13 @@ var mi = ["aria-label"], hi = {
3927
3988
  ])) : o("", !0)
3928
3989
  ]));
3929
3990
  }
3930
- }), Li = ["data-surface-mode"], Ri = {
3991
+ }), Bi = ["data-surface-mode"], Vi = {
3931
3992
  key: 1,
3932
3993
  class: "absolute left-5 top-5 z-30 border border-amber-400/45 bg-black/35 px-4 py-2 text-xs font-medium uppercase tracking-[0.24em] text-amber-100 backdrop-blur"
3933
- }, zi = ["data-visible", "inert"], Bi = ["data-visible", "inert"], Vi = {
3994
+ }, Hi = ["data-visible", "inert"], Ui = ["data-visible", "inert"], Wi = {
3934
3995
  key: 3,
3935
3996
  class: "relative z-[1] grid h-full w-full content-center justify-items-center gap-6 px-[clamp(2rem,4vw,3rem)] py-[clamp(2rem,4vw,3rem)] text-center"
3936
- }, Hi = /* @__PURE__ */ d({
3997
+ }, Gi = /* @__PURE__ */ d({
3937
3998
  name: "VibeLayout",
3938
3999
  __name: "Layout",
3939
4000
  props: {
@@ -3958,7 +4019,7 @@ var mi = ["aria-label"], hi = {
3958
4019
  "update:surfaceMode"
3959
4020
  ],
3960
4021
  setup(e, { expose: n, emit: i }) {
3961
- let d = e, f = F(), m = i, h = Ye(d, m), g = fe((e) => {
4022
+ let d = e, f = F(), m = i, h = Qe(d, m), g = fe((e) => {
3962
4023
  m("asset-errors", e);
3963
4024
  }), _ = Z((e) => {
3964
4025
  m("asset-loads", e);
@@ -3987,7 +4048,7 @@ var mi = ["aria-label"], hi = {
3987
4048
  type: "button",
3988
4049
  class: "absolute left-5 top-5 z-30 inline-flex items-center border border-rose-400/55 bg-rose-500/18 px-4 py-2 text-xs font-medium uppercase tracking-[0.24em] text-white backdrop-blur transition hover:bg-rose-500/28",
3989
4050
  onClick: n[0] ||= (...e) => N(h).retryInitialLoad && N(h).retryInitialLoad(...e)
3990
- }, " Retry ")) : N(h).errorMessage.value && N(h).items.value.length > 0 ? (w(), s("div", Ri, j(N(h).errorMessage.value), 1)) : o("", !0), N(h).isDesktop.value ? (w(), s(t, { key: 2 }, [u(r, {
4051
+ }, " Retry ")) : N(h).errorMessage.value && N(h).items.value.length > 0 ? (w(), s("div", Vi, j(N(h).errorMessage.value), 1)) : o("", !0), N(h).isDesktop.value ? (w(), s(t, { key: 2 }, [u(r, {
3991
4052
  appear: "",
3992
4053
  "enter-active-class": "transition-[opacity,transform] duration-300 ease-out",
3993
4054
  "enter-from-class": "translate-y-3 opacity-0",
@@ -4001,7 +4062,7 @@ var mi = ["aria-label"], hi = {
4001
4062
  "data-visible": N(h).surfaceMode.value === "list" ? "true" : "false",
4002
4063
  inert: N(h).surfaceMode.value !== "list",
4003
4064
  class: "absolute inset-0 z-[2]"
4004
- }, [u(Ii, {
4065
+ }, [u(zi, {
4005
4066
  active: N(h).surfaceMode.value === "list",
4006
4067
  "allow-exhausted-next-page-refresh": N(h).canRefreshExhaustedNextPage.value,
4007
4068
  items: N(h).items.value,
@@ -4071,7 +4132,7 @@ var mi = ["aria-label"], hi = {
4071
4132
  "onBoundaryLoadProgress",
4072
4133
  "onOpenFullscreen",
4073
4134
  "onUpdate:activeIndex"
4074
- ])], 8, zi), [[I, N(h).surfaceMode.value === "list"]])]),
4135
+ ])], 8, Hi), [[I, N(h).surfaceMode.value === "list"]])]),
4075
4136
  _: 3
4076
4137
  }), u(r, {
4077
4138
  appear: "",
@@ -4087,7 +4148,7 @@ var mi = ["aria-label"], hi = {
4087
4148
  "data-visible": N(h).surfaceMode.value === "fullscreen" ? "true" : "false",
4088
4149
  inert: N(h).surfaceMode.value !== "fullscreen",
4089
4150
  class: "absolute inset-0 z-[3]"
4090
- }, [u(or, {
4151
+ }, [u(lr, {
4091
4152
  items: N(h).items.value,
4092
4153
  active: N(h).surfaceMode.value === "fullscreen",
4093
4154
  "active-index": N(h).activeIndex.value,
@@ -4156,12 +4217,12 @@ var mi = ["aria-label"], hi = {
4156
4217
  "show-back-to-list",
4157
4218
  "onBackToList",
4158
4219
  "onUpdate:activeIndex"
4159
- ])], 8, Bi), [[I, N(h).surfaceMode.value === "fullscreen"]])]),
4220
+ ])], 8, Ui), [[I, N(h).surfaceMode.value === "fullscreen"]])]),
4160
4221
  _: 3
4161
- })], 64)) : N(h).items.value.length === 0 && N(h).loading.value ? (w(), s("div", Vi, [u(N(oe), {
4222
+ })], 64)) : N(h).items.value.length === 0 && N(h).loading.value ? (w(), s("div", Wi, [u(N(oe), {
4162
4223
  class: "size-10 animate-spin text-[#f7f1ea]/82",
4163
4224
  "aria-hidden": "true"
4164
- }), n[1] ||= c("p", { class: "m-0 text-[0.9rem] font-semibold uppercase tracking-[0.22em] text-[#f7f1ea]/72" }, " Loading... ", -1)])) : (w(), a(or, {
4225
+ }), n[1] ||= c("p", { class: "m-0 text-[0.9rem] font-semibold uppercase tracking-[0.22em] text-[#f7f1ea]/72" }, " Loading... ", -1)])) : (w(), a(lr, {
4165
4226
  key: 4,
4166
4227
  items: N(h).items.value,
4167
4228
  active: !0,
@@ -4229,10 +4290,10 @@ var mi = ["aria-label"], hi = {
4229
4290
  "show-status-badges",
4230
4291
  "onBackToList",
4231
4292
  "onUpdate:activeIndex"
4232
- ]))], 8, Li));
4293
+ ]))], 8, Bi));
4233
4294
  }
4234
- }), Ui = { install(e) {
4235
- e.component("VibeLayout", Hi);
4295
+ }), Ki = { install(e) {
4296
+ e.component("VibeLayout", Gi);
4236
4297
  } };
4237
4298
  //#endregion
4238
- export { Hi as VibeLayout, Ui as VibePlugin, Ui as default };
4299
+ export { Gi as VibeLayout, Ki as VibePlugin, Ki as default };